31 releases (8 stable)

new 1.0.8 Mar 8, 2025
1.0.6 Jan 25, 2025
1.0.1 Dec 24, 2024
0.23.0 Nov 10, 2024
0.1.0 Jul 31, 2021

#198 in Data structures

Download history 234/week @ 2024-11-18 202/week @ 2024-11-25 103/week @ 2024-12-02 242/week @ 2024-12-09 151/week @ 2024-12-16 248/week @ 2024-12-23 37/week @ 2024-12-30 27/week @ 2025-01-06 160/week @ 2025-01-13 606/week @ 2025-01-20 123/week @ 2025-01-27 465/week @ 2025-02-03 266/week @ 2025-02-10 153/week @ 2025-02-17 171/week @ 2025-02-24 181/week @ 2025-03-03

798 downloads per month
Used in 9 crates (7 directly)

Apache-2.0

350KB
9K SLoC

mzpeaks

Latest Version

mzpeaks implements the building blocks and machinery for representing peaks in a mass spectrum.

It's meant to be used as a building block for other tools and does not provide any I/O machinery for peak lists

Usage

use mzpeaks::{CentroidPeak, PeakSet, PeakCollection, Tolerance};

let peaks = PeakSet::new(vec![
    CentroidPeak::new(186.04, 522.0, 0),
    CentroidPeak::new(204.07, 9800.0, 1),
    CentroidPeak::new(205.07, 150.0, 2)
]);

assert_eq!(peaks.search(204.05, Tolerance::Da(0.02)).unwrap(), 1);

let peak = match peaks.has_peak(204.05, Tolerance::Da(0.02)) {
    Some(p) => p,
    None => panic!("Failed to retrieve peak!")
};

assert!((peak.mz - 204.07).abs() < 1e-6);

lib.rs:

mzpeaks implements the building blocks and machinery for representing peaks in a mass spectrum.

It's meant to be used as a building block for other tools and does not provide any I/O machinery for peak lists. For that, consider mzdata

use mzpeaks::{CentroidPeak, PeakSet, PeakCollection, Tolerance};

let peaks = PeakSet::new(vec![
    CentroidPeak::new(186.04, 522.0, 0),
    CentroidPeak::new(204.07, 9800.0, 1),
    CentroidPeak::new(205.07, 150.0, 2)
]);

assert_eq!(peaks.search(204.05, Tolerance::Da(0.02)).unwrap(), 1);

let peak = match peaks.has_peak(204.05, Tolerance::Da(0.02)) {
    Some(p) => p,
    None => panic!("Failed to retrieve peak!")
};

assert!((peak.mz - 204.07).abs() < 1e-6);

Dependencies

~91–570KB
~11K SLoC