use timsrust::TimsTofPath;
const PREVIEW_LIMIT: usize = 5;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let raw_path = std::env::args()
.nth(1)
.expect("usage: read_spectra <path-to-data>");
let path = TimsTofPath::new(&raw_path)?;
let spectrum_reader = path.spectrum_reader()?;
println!("Loaded {} spectra from {raw_path}", spectrum_reader.len());
for index in 0..spectrum_reader.len().min(PREVIEW_LIMIT) {
let spectrum = spectrum_reader.get(index)?;
let precursor_mz = spectrum
.precursor()
.as_ref()
.map(|p| p.mz().to_string())
.unwrap_or_else(|| "<none>".to_string());
println!(
" [{:>4}] precursor m/z = {precursor_mz}, {} peaks",
spectrum.index(),
spectrum.len(),
);
}
Ok(())
}