Skip to main content

timsrust_centroid/
lib.rs

1//! # timsrust_centroid
2//!
3//! `timsrust_centroid` provides fast centroiding and peak picking for Bruker timsTOF data.
4//!
5//! ## Features
6//! - Fast centroiding algorithms
7//! - Optional CLI and Parquet writer
8//!
9//! ## Examples
10//!
11//! ### Creating and using a PeakReader
12//! ```ignore
13//! use timsrust_centroid::{PeakReader, Peak};
14//! // Construct a FrameReader from a format-specific crate (e.g. timsrust-tdf)
15//! // and pass it together with minimum ion counts for MS1 and MS2.
16//! let frame_reader = /* e.g. TdfFrameReader::new("example.d").unwrap() */;
17//! let reader = PeakReader::new(frame_reader, 10.0, 5.0).unwrap();
18//! let peaks = reader.get_peaks_from_frame(100).unwrap();
19//! for peak in peaks.iter() {
20//!     println!("peak: {:?}", peak);
21//! }
22//! ```
23//!
24//! ### Creating and using a SpectrumReader
25//! ```ignore
26//! use timsrust_centroid::spectrum_reader::SpectrumReader;
27//! // Construct a FrameReader and converters from format-specific crates (e.g. timsrust-tdf).
28//! // Pass minimum ion counts for MS1, MS2, minimum spectrum size, precursor flag, and converters.
29//! let frame_reader = /* e.g. TdfFrameReader::new("example.d").unwrap() */;
30//! let im_converter = /* e.g. from TDF calibration */;
31//! let mz_converter = /* e.g. from TDF calibration */;
32//! let reader = SpectrumReader::new(frame_reader, 10.0, 2.0, 5, false, im_converter, mz_converter).unwrap();
33//! let spectra = reader.get_spectra_from_frame(100);
34//! for spectrum in spectra.iter() {
35//!     println!("spectrum: {:?}", spectrum);
36//! }
37//! ```
38//!
39//! ### Error handling
40//! ```no_run
41//! use timsrust_centroid::{TimsResult, TimsError};
42//! fn do_something() -> TimsResult<()> {
43//!     // ... your code ...
44//!     Ok(())
45//! }
46//! ```
47//!
48mod buffer;
49mod centroider;
50mod error;
51mod peakbuffer;
52mod peaks;
53// mod runner;
54mod smoothing;
55pub mod spectrum_reader;
56
57pub use error::{TimsError, TimsResult};
58pub use peaks::{
59    Peak, PeakReader, get_average_ms1_peak, get_best_peak_for_frame,
60};
61// pub use runner::run;