A Rust library for reading mass spectrometry data file formats.
```rust use std::fs::File; use mzdata::io::prelude::*; use mzdata::spectrum; use mzdata::MassErrorType; use mzdata::io::MzMLReader;
let reader = MzMLReader::new(File::open("./test/data/small.mzML").unwrap()); for spectrum in reader { println!("Scan ID: {} => {} data points", spectrum.id(), spectrum.mzs().len()); for scan in iter { println!("Scan {} => BP {}", scan.id(), scan.peaks().basepeak().1); if scan.signalcontinuity() < SignalContinuity::Profile { let peakpicked = scan.intocentroid().unwrap(); println!("Matches for 579.155: {:?}", peakpicked.peaks.allpeaks_for(579.155, 0.02, MassErrorType::Exact)); } } } ```
mzML
and indexedmzML
This library was made in part to learn Rust, so it may not use the preferred idioms, patterns, or libraries. Any recommendations are welcome.