Skip to main content

IsoDec

IsoDec assigns charge states and deconvolves isotopically resolved mass spectrometry data. Its native core uses IsoGen for peptide and RNA isotope distributions.

Installation

Install a published wheel:

python -m pip install isodec

IsoDec supports Python 3.9 and newer on 64-bit Windows, Linux, and macOS, including Windows ARM64 and Apple silicon. Native builds are also tested on ARM64 Linux; the Windows ARM64 wheel is tested with Python 3.14. Compatible wheels include the native IsoDec and IsoGen libraries. A source build requires CMake 3.22.1 or newer, a C/C++ compiler, FFTW, and an initialized IsoGen submodule:

git clone --recurse-submodules https://github.com/michaelmarty/IsoDec.git
python -m pip install ./IsoDec

Python usage

import numpy as np
from isodec import IsoDecRuntime

spectrum = np.loadtxt("spectrum.txt")
engine = IsoDecRuntime()
peaks = engine.batch_process_spectrum(spectrum, centroided=True)

for peak in peaks:
    print(peak.mz, peak.z, peak.monoiso, peak.matchedintensity)

TXT, DAT, CSV, and NPZ single-scan spectra are supported without UniDec. Raw vendor files, mzML/mzXML, and I2MS import use UniDec's extensive importer stack:

python -m pip install "isodec[unidec]"

Command line

isodec spectrum.txt --centroided -o assigned_peaks.tsv
python -m isodec --help

Development

git submodule update --init --recursive
python -m pip install -e ".[test]"
python -m pytest

Documentation sources live in docs/ and are built with MkDocs. Release and wheel-building details are in PUBLISHING.md.

Fragment matching

Match deconvolved neutral masses to theoretical protein fragments with a 5 ppm default tolerance:

from isodec import match_fragments

match_fragments(pks, "PEPTIDE", ion_types="by", monoisotopic=True)
print(pks.fragment_match_percent, pks.sequence_coverage)
print(pks.fragment_matches)

Each matched peak receives a sequence_match annotation such as "b6". Pass allow_duplicate_assignments=True to retain every valid annotation as a list instead of selecting the assignment with the smallest ppm error. Pass match_multiple_monoisotopics=False to match only each peak's monoiso mass instead of all masses in monoisos.

To view matches along a wrapped sequence, run python tests/show_fragment_matches.py from the IsoDec directory. The demo uses IsoGen's carbonic anhydrase ETD masses. For an embedded view, call plot_fragment_matches(ax, sequence, pks) from isodec.fragment_view with an existing Matplotlib axis. Modified residues are shown in red. The standalone view is sized for a two-column figure; save the returned Matplotlib figure as SVG or PDF for publication.

License and citation

IsoDec is released under the BSD 3-Clause License. See THIRD_PARTY_NOTICES.md for IsoGen, FFTW, and Intel runtime notices. When using IsoDec, please cite Pavek et al., “A Fast Neural Network for Isotopic Charge State Assignment,” J. Am. Chem. Soc. 2025, 147, 21610–21620. Machine-readable metadata is provided in CITATION.cff.

Changelog

2.0.4

  • Added Windows and Linux ARM64 wheels built and tested on native ARM hardware.

2.0.3

  • Added fragment matching viewer.

2.0.2

  • Added fragmentation matching options.
  • Updated to IsoGen 1.1.1 for ProForma fragment masses and corrected z-ion annotations.

2.0.1

  • Improved native processing performance with optimized AVX matrix operations, linear-time peak detection, faster isotope matching, and reusable work buffers.
  • Moved installed native libraries and executables into isodec/bin; Windows binaries are included with the package.
  • Added processing-time and matched-peak reporting for native spectrum runs.
  • Added automated MSVC-versus-IntelLLVM performance benchmarking.

2.0.0

  • Split IsoDec from UniDec into the standalone isodec package, with IsoGen as a submodule and an independent version and release cycle.
  • Added experimental charge-state assignment directly from profile-mode data.
  • Added cross-platform tests—including native ARM64 Windows and Linux coverage—documentation, and automated wheel and source distribution publishing.

1.0.0

  • Initial IsoDec release with IsoGen integration for isotopic charge-state assignment and deconvolution of mass spectrometry data, distributed as part of UniDec.

Release files for isodec 2.0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for isodec 2.0.4
File Size Uploaded
isodec-2.0.4.tar.gz 58.5 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for isodec 2.0.4
File
isodec-2.0.4-py3-none-win_arm64.whl Python 3 none Windows ARM64 Details
isodec-2.0.4-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
isodec-2.0.4-py3-none-manylinux_2_31_x86_64.whl Python 3 none Linux glibc 2.31+ x86-64 Details
isodec-2.0.4-py3-none-manylinux_2_31_aarch64.whl Python 3 none Linux glibc 2.31+ ARM64 Details
isodec-2.0.4-py3-none-macosx_15_0_x86_64.whl Python 3 none macOS 15.0+ x86-64 Details
isodec-2.0.4-py3-none-macosx_14_0_arm64.whl Python 3 none macOS 14.0+ ARM64 Details

Total release size: 204.5 MB

Release files / isodec-2.0.4.tar.gz

Download URL isodec-2.0.4.tar.gz
Size 58.5 MB
Tags Source
SHA-256 checksum
How to use checksums
f3e2504311fc6ce8227c3a9467be722d9cef1314252f6e518d47a325abcb0478
BLAKE2b-256 checksum
How to use checksums
554496646c9909bd079c1251fc04c8f7728676d581a476a2f956f5c03e164b55
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release files / isodec-2.0.4-py3-none-win_arm64.whl

Download URL isodec-2.0.4-py3-none-win_arm64.whl
Size 22.9 MB
Tags Python 3 Windows ARM64
SHA-256 checksum
How to use checksums
eb52178497b909eb3ccb3d95f4ce75662e399e80809d908dd4cfc76c41fde09c
BLAKE2b-256 checksum
How to use checksums
b7b94b77d5fd940ec24b09f3e777086daa770784f04e591ebbc66779df6c3058
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release files / isodec-2.0.4-py3-none-win_amd64.whl

Download URL isodec-2.0.4-py3-none-win_amd64.whl
Size 23.3 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
dbafbe2d7fc67c13318901c64c5c091de02c9ae576c47c149428678ee9e6f235
BLAKE2b-256 checksum
How to use checksums
8416fe5dac5713647ea1ca61a1e95a268016c502b7acaa28426793fb31943a54
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release files / isodec-2.0.4-py3-none-manylinux_2_31_x86_64.whl

Download URL isodec-2.0.4-py3-none-manylinux_2_31_x86_64.whl
Size 25.2 MB
Tags Linux glibc 2.31+ x86-64 Python 3
SHA-256 checksum
How to use checksums
acd0278fe8769541f7b320457c91f386fa75e684dc5256a88ffa814ab18ae905
BLAKE2b-256 checksum
How to use checksums
8290362d9669d0aa0138605d831940d2a47392730a44ab60aafab0e1ef27b44d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release files / isodec-2.0.4-py3-none-manylinux_2_31_aarch64.whl

Download URL isodec-2.0.4-py3-none-manylinux_2_31_aarch64.whl
Size 24.6 MB
Tags Linux glibc 2.31+ ARM64 Python 3
SHA-256 checksum
How to use checksums
69a3eaa255c16c6283583a787fe90321608271325ed194f878ec57aba2ba7133
BLAKE2b-256 checksum
How to use checksums
a335d8b621a510bb022384e6e0aa79c424e4660a50ba2a21cc28d1d592ccce94
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release files / isodec-2.0.4-py3-none-macosx_15_0_x86_64.whl

Download URL isodec-2.0.4-py3-none-macosx_15_0_x86_64.whl
Size 25.4 MB
Tags Python 3 macOS 15.0+ x86-64
SHA-256 checksum
How to use checksums
48e023d66c6ec65334fa1991f233da90b71dc0f9431978d93de7cf71f222e91c
BLAKE2b-256 checksum
How to use checksums
94a220b36cf354ad0b73e8bf252b694d7013da7941595fba6c3f92f9946a40d9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release files / isodec-2.0.4-py3-none-macosx_14_0_arm64.whl

Download URL isodec-2.0.4-py3-none-macosx_14_0_arm64.whl
Size 24.6 MB
Tags Python 3 macOS 14.0+ ARM64
SHA-256 checksum
How to use checksums
cecd4b897bdf8a17688f76bf9d39bca3dcdd84f1f002bca83125ceea0dead01e
BLAKE2b-256 checksum
How to use checksums
13bfff4ea50e0f3a72e53a6474d558523d2668a30126912870f023ca69e0cbb9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 25, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2.0.4 This release

7 release files

2.0.3

5 release files

2.0.2

5 release files

2.0.1

5 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page