25 个重大版本发布

0.26.0 2024 年 8 月 10 日
0.25.0 2024 年 7 月 26 日
0.24.0 2024 年 7 月 18 日
0.13.0 2024 年 3 月 29 日
0.3.0 2021 年 7 月 23 日

#582解析器实现

Download history 271/week @ 2024-05-03 37/week @ 2024-05-10 212/week @ 2024-05-17 411/week @ 2024-05-24 87/week @ 2024-05-31 22/week @ 2024-06-07 9/week @ 2024-06-14 1/week @ 2024-06-21 157/week @ 2024-06-28 34/week @ 2024-07-05 340/week @ 2024-07-12 83/week @ 2024-07-19 169/week @ 2024-07-26 8/week @ 2024-08-02 140/week @ 2024-08-09 31/week @ 2024-08-16

每月 353 次下载
用于 4 crates

Apache-2.0

1MB
26K SLoC

mzdata

Latest Version docs.rs

一个用于读取质谱数据文件格式的 Rust 库。

快速入门

use std::fs;
use mzdata::prelude::*;
use mzpeaks::Tolerance;
use mzdata::MzMLReader;
use mzdata::spectrum::SignalContinuity;

fn main() {
    let mut ms1_count = 0;
    let mut msn_count = 0;
    let reader = MzMLReader::new(fs::File::open("./test/data/small.mzML").unwrap());
    for spectrum in reader {
        if spectrum.ms_level() == 1 {
            ms1_count += 1;
        } else {
            msn_count += 1;
        }
        println!("Scan {} => BP {}", spectrum.id(), spectrum.peaks().base_peak().mz);
        if spectrum.signal_continuity() == SignalContinuity::Centroid {
            let peak_picked = spectrum.into_centroid().unwrap();
            println!("Matches for 579.155: {:?}", peak_picked.peaks.all_peaks_for(579.155, Tolerance::Da(0.02)));
        }
    }
    println!("MS1 Count: {}\nMSn Count: {}", ms1_count, msn_count);
    assert_eq!(ms1_count, 14);
    assert_eq!(msn_count, 34);
}


支持的格式

  1. mzMLindexedmzML
  2. MGF
  3. mzMLb
  4. Thermo RAW

免责声明

该库部分是为了学习 Rust 而制作的,因此它可能不会使用首选的惯用方法、模式或库。欢迎提出建议。

依赖项

~7–36MB
~453K SLoC