1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
//! mzdata provides basic access to raw and processed mass spectrometry data formats in
//! Rust.
//!
//! The library currently supports reading:
//!   1. MGF files using [`MGFReader`] in [`crate::io::mgf`]
//!   2. mzML files using [`MzMLReader`] in [`crate::io::mzml`]
//!
//! It also includes a set of representation layers for spectra in [`crate::spectrum`]
//!
//! # Example
//! ```
//! use std::fs;
//! use mzdata::io::prelude::*;
//! use mzdata::io::mzml::MzMLReader;
//!
//! let mut ms1_count = 0;
//! let mut msn_count = 0;
//! let mut reader = MzMLReader::new_indexed(fs::File::open("./test/data/small.mzML").unwrap());
//! for scan in reader {
//!     if scan.ms_level() == 1 {
//!         ms1_count += 1;
//!     } else {
//!         msn_count += 1;
//!     }
//! }
//! println!("MS1 Count: {}\nMSn Count: {}", ms1_count, msn_count);
//! assert_eq!(ms1_count, 14);
//! assert_eq!(msn_count, 34);
//! ```
//!
//! It also provides a sorted data structure for representing peak lists, [`PeakSet`]
//! and a trait implementing the majority of the logic, [`PeakCollection`].
pub mod io;
pub mod mass_error;
pub mod meta;
pub mod params;
pub mod peaks;
pub mod spectrum;

pub use crate::peaks::coordinate::{CoordinateDimension, CoordinateLike, Mass, MZ};

pub use crate::mass_error::MassErrorType;
pub use crate::peaks::peak::{CentroidPeak, DeconvolutedPeak};
pub use crate::peaks::{PeakCollection, PeakSet};

pub use crate::io::mgf::MGFReader;
pub use crate::io::mzml::MzMLReader;

pub use crate::spectrum::{CentroidSpectrum, RawSpectrum, SpectrumBehavior};