1use std::{fs::File, io::BufReader, time::Instant};
2
3use imzml::{
4 imzml::{
5 writer::{ImzMLWriter, RectangleImage},
6 ImzMLWritableSpectrumIterator,
7 },
8 ImzMLReader,
9};
10
11fn main() {
12 let filename = "test/only_ms2_mzml.mzML";
13
14 let start = Instant::now();
15 let file = File::open(filename).unwrap();
16 let header_reader = BufReader::new(file);
17
18 let data_file = File::open(filename).unwrap();
19 let data_reader = BufReader::new(data_file);
20
21 let parser = ImzMLReader::new(header_reader, data_reader).unwrap();
22
23 let duration = start.elapsed();
24
25 for error in parser.errors() {
26 println!("{:?}", error);
27 }
28 println!("Time elapsed when parsing is: {:?}", duration);
29
30 let spectrum = parser.spectrum(0).unwrap();
31 let mzs = spectrum.mz_array().unwrap();
32 println!("Data: {:?}", mzs.as_f64());
33
34 let start = Instant::now();
35
36 let mut writer = ImzMLWriter::from_parser(&parser);
37
38 writer
39 .write(
40 "test/only_ms2_mzml.imzML",
41 ImzMLWritableSpectrumIterator::new(&parser),
42 RectangleImage::new(10, 10),
43 )
44 .unwrap();
45
46 let duration = start.elapsed();
59 println!("Time elapsed when writing is: {:?}", duration);
60}