1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
use biodivine_lib_param_bn::BooleanNetwork;
fn main() {
let benchmarks = std::fs::read_dir("./sbml_models/real_world").unwrap();
for bench_dir in benchmarks {
let bench_dir = bench_dir.unwrap();
if !bench_dir.file_type().unwrap().is_dir() {
eprintln!("SKIP: {} is not a directory.", bench_dir.path().display());
continue;
}
let readme_path = bench_dir.path().join("model.txt");
if !readme_path.exists() {
eprintln!("ERROR: Missing README in {}.", bench_dir.path().display());
}
let sbml_model_path = bench_dir.path().join("model.sbml");
let model_string = std::fs::read_to_string(sbml_model_path).unwrap();
let model = BooleanNetwork::try_from_sbml(&model_string);
let model = match model {
Err(err) => {
eprintln!(
"ERROR: Invalid SBML model in {}.",
bench_dir.path().display()
);
eprintln!("{}", err);
continue;
}
Ok((model, _)) => model,
};
let aeon_model_path = bench_dir.path().join("model.aeon");
std::fs::write(aeon_model_path, model.to_string()).unwrap();
}
}