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}