mzpeaks 1.0.9

A library representing peaks in mass spectrometry data
Documentation
use std::fs;
use std::io;
use std::io::prelude::*;

use crate::peak::CentroidPeak;
use crate::peak_set::{PeakCollectionMut, PeakSet};

pub(crate) fn read_peaks_from_file(path: &str) -> io::Result<PeakSet> {
    let reader = io::BufReader::new(fs::File::open(path)?);
    let mut peak_set = PeakSet::empty();
    for (i, line) in reader.lines().enumerate() {
        let line = line.unwrap();
        let pref = line.trim();
        let chunks: Vec<&str> = pref.split(' ').collect();
        let mz = chunks[0].parse::<f64>().expect("Expected number for m/z");
        let intensity = chunks[1]
            .parse::<f32>()
            .expect("Expected number for intensity");
        let peak = CentroidPeak {
            mz,
            intensity,
            index: i as u32,
        };
        peak_set.push(peak);
    }
    Ok(peak_set)
}