use clap::Parser;
use rustdf::sim::dia::TimsTofSyntheticsFrameBuilderDIA;
use std::path::Path;
#[derive(Parser, Debug)]
#[command(author, version, about, long_about = None)]
struct Args {
#[arg(short, long)]
path: String,
#[arg(short, long, default_value_t = 64)]
num_threads: usize,
#[arg(short, long, default_value_t = false)]
fragment: bool,
#[arg(short, long, default_value_t = 256)]
batch_size: usize,
#[arg(short, long, default_value_t = 4096)]
num_frames: usize,
}
fn main() {
let args = Args::parse();
let db_path_str = args.path;
let path = Path::new(&db_path_str);
let num_threads = args.num_threads;
let fragment = args.fragment;
let experiment = TimsTofSyntheticsFrameBuilderDIA::new(path, false, 4).unwrap();
let first_frames = experiment
.precursor_frame_builder
.frames
.iter()
.map(|x| x.frame_id.clone())
.skip(100)
.take(args.num_frames)
.collect::<Vec<_>>();
for frame_batch in first_frames.chunks(args.batch_size) {
let frames = experiment.build_frames(
frame_batch.to_vec(),
fragment,
false,
true,
5.0,
false,
5.0,
false,
num_threads,
);
for frame in frames {
println!("frame_id: {}", frame.frame_id);
println!("frame: {}", frame);
}
}
}