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 Apple silicon. Native builds are also tested on ARM64 Windows and Linux. 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.

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.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.2

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.2
File Size Uploaded
isodec-2.0.2.tar.gz 58.5 MB Details

Built distributions (wheels)

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

Total release size: 157.0 MB

Release files / isodec-2.0.2.tar.gz

Download URL isodec-2.0.2.tar.gz
Size 58.5 MB
Tags Source
SHA-256 checksum
How to use checksums
79dc33acf7105d10641f0065ca364b85c91bb2431c5b5480765ec06968c32b36
BLAKE2b-256 checksum
How to use checksums
483d548dd4cf7add61b2f1c554b4e8d9fc512b61dfa4aeaddc223a73088bdc82
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 22, 2026.

Transparency log

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

Download URL isodec-2.0.2-py3-none-win_amd64.whl
Size 23.3 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
50328ba26fd482640de8a0aedc69c6c4843b712341cdb414da4766779d14ff0e
BLAKE2b-256 checksum
How to use checksums
b0b816433350e2c4d7dae4bf9f07cb04b652ae6f5d0cbc32cde07c4c0ed7357f
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 22, 2026.

Transparency log

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

Download URL isodec-2.0.2-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
f6a2bc23bf584a5adf10ca06bea12e3520a43ae83a67d624ef2345a2d4dde3ed
BLAKE2b-256 checksum
How to use checksums
bd1a3c36d41982ff75d97158729519e1824cd03f97f9a8e9773311fe659c72ee
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 22, 2026.

Transparency log

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

Download URL isodec-2.0.2-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
46440aac2c8ce7537c91c59a51151d73c4095233b50fa1a916330f6bc9b14460
BLAKE2b-256 checksum
How to use checksums
ebd0d5b5b1fb6067664044d6f540f7826b1f2e00509d5b0a7c08f2c6828a1131
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 22, 2026.

Transparency log

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

Download URL isodec-2.0.2-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
cb148f06b7edb92b56e38f6e7e0f4b6207215e0adfe7b16b7e2919de12043aa2
BLAKE2b-256 checksum
How to use checksums
077c783a5082d90dfcf1c0c6976f7c1891e3a4f984fafb5f644e960e9c070fbb
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 22, 2026.

Transparency log

Release history Release notifications | RSS feed

2.0.3

5 release files

This release

2.0.2 This release

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