Utilities for mzML mass spectrometry file processing, fragment ion calculation, and peak matching
Project description
mzml-utils
Utilities for mzML mass spectrometry file processing, fragment ion calculation, and peak matching.
Installation
pip install mzml-utils
For development:
git clone https://github.com/longpingfu/mzml-utils.git
cd mzml-utils
pip install -e ".[dev]"
Modules
| Module | Description |
|---|---|
reader |
mzML file I/O with indexed and sequential access |
ions |
Ion searching, mass matching, tolerance calculations |
pairing |
MS1 duty-cycle grouping, HCD-EThcD scan pairing |
fragments |
Fragment ion calculator (b/y/c/z/Y/oxonium), peak matching, false match rate |
constants |
Physical constants, amino acid masses, common ion lists |
utils |
Spectrum ID parsing, file finding, modification string parsing |
Quick Start
Read an mzML file
from mzml_utils import MzMLReader
with MzMLReader("experiment.mzML") as reader:
spec = reader.get_spectrum(12345)
print(f"Scan {spec.scan_num}: {spec.n_peaks} peaks, {spec.activation_type}")
print(f"Precursor: {spec.precursor_mz:.4f} m/z, charge {spec.precursor_charge}")
Search for diagnostic ions
from mzml_utils import search_ions, OXONIUM_IONS
results = search_ions(spec.mz, spec.intensity, OXONIUM_IONS,
tolerance=0.1, unit='Da', rel_threshold=5.0)
for name, match in results.items():
if match and match['above_threshold']:
print(f" {name}: {match['mz']:.4f} ({match['rel_intensity']:.1f}%)")
Calculate fragment ions
from mzml_utils import FragmentCalculator, match_peaks, parse_modifications
mods = parse_modifications("N-term(229.1629),4S(528.2859),19K(229.1629)")
calc = FragmentCalculator("AGYSQGATQYTQAQQTR", mods, precursor_charge=3)
theoretical = calc.get_all_ions_flat()
matched = match_peaks(theoretical, spec.mz, spec.intensity, tolerance_ppm=20.0)
print(f"Matched {len(matched)} of {len(theoretical)} theoretical ions")
False match rate estimation
from mzml_utils import calculate_false_match_rate
fmr = calculate_false_match_rate(theoretical, spec.mz, spec.intensity,
tolerance_ppm=20.0)
print(f"FMR (peaks): {fmr.fmr_peaks*100:.1f}%")
print(f"FMR (intensity): {fmr.fmr_intensity*100:.1f}%")
Pair HCD and EThcD scans
from mzml_utils import MzMLReader, group_ms1_cycles, pair_hcd_ethcd
with MzMLReader("experiment.mzML") as reader:
scans = [
{
'scan_num': s.scan_num,
'activation_type': s.activation_type,
'precursor_mz': s.precursor_mz,
'precursor_charge': s.precursor_charge,
}
for s in reader.iter_spectra()
]
cycles = group_ms1_cycles(scans)
paired = pair_hcd_ethcd(cycles, tolerance_ppm=10.0)
# paired: {hcd_scan_num: ethcd_scan_num}
Mass tolerance helpers
from mzml_utils import ppm_error, da_error, within_tolerance
print(ppm_error(204.087, 204.0864)) # ~2.9 ppm
print(within_tolerance(204.087, 204.0864, 20, 'ppm')) # True
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
mzml_utils-0.1.0.tar.gz
(19.6 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mzml_utils-0.1.0.tar.gz.
File metadata
- Download URL: mzml_utils-0.1.0.tar.gz
- Upload date:
- Size: 19.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ab78af45e80d5351ca62c9e74920e293741733eea0429ef087a58c490db6f2be
|
|
| MD5 |
a1d3c49398f1c4de5903cd5d1fdfae5e
|
|
| BLAKE2b-256 |
3e27a26526c07cb22a02bbda587b84736e7144881f6ea73163374b2ab206267d
|
File details
Details for the file mzml_utils-0.1.0-py3-none-any.whl.
File metadata
- Download URL: mzml_utils-0.1.0-py3-none-any.whl
- Upload date:
- Size: 17.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7507b21b1e76ee840478218f84cedd0b0a2926d64bc55944c77b3cbb732ec848
|
|
| MD5 |
181b22a9ca30eb791b47d85b2e6638dc
|
|
| BLAKE2b-256 |
47483c94a7065a74b99fba703374dbdbb0ec28ade4eddb8f68ff087efe6813af
|