Skip to main content

readme/
readme.rs

1use mzdata::prelude::*;
2use mzdata::spectrum::SignalContinuity;
3use mzpeaks::Tolerance;
4use std::io;
5
6fn main() -> io::Result<()> {
7    let reader = mzdata::MZReader::open_path("./test/data/small.mzML")?;
8
9    let mut ms1_count = 0;
10    let mut msn_count = 0;
11    for spectrum in reader {
12        if spectrum.ms_level() == 1 {
13            ms1_count += 1;
14        } else {
15            msn_count += 1;
16        }
17        println!(
18            "Scan {} => BP {}",
19            spectrum.id(),
20            spectrum.peaks().base_peak().mz
21        );
22        if spectrum.signal_continuity() < SignalContinuity::Profile {
23            let peak_picked = spectrum.into_centroid().unwrap();
24            println!(
25                "Matches for 579.155: {:?}",
26                peak_picked
27                    .peaks
28                    .all_peaks_for(579.155, Tolerance::Da(0.02))
29            );
30        }
31    }
32    println!("MS1 Count: {}\nMSn Count: {}", ms1_count, msn_count);
33    assert_eq!(ms1_count, 14);
34    assert_eq!(msn_count, 34);
35    Ok(())
36}