Skip to content

Commit 320c613

Browse files
committed
Use absolute paths for input PDB and output prefix in native RFDiffusion
runs
1 parent ec52db4 commit 320c613

File tree

1 file changed

+16
-7
lines changed

1 file changed

+16
-7
lines changed

src/app/rfdiffusion.rs

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,25 +22,34 @@ pub fn native_spec(mut app_args: Vec<String>, working_dir: &Path) -> NativeRunSp
2222
const INPUT_PDB_PREFIX: &str = "inference.input_pdb=";
2323
const OUTPUT_PREFIX: &str = "inference.output_prefix=";
2424

25+
let mut output_prefix_present = false;
2526
for arg in &mut app_args {
2627
if arg.starts_with(INPUT_PDB_PREFIX) {
2728
let input_pdb = arg.split_at(INPUT_PDB_PREFIX.len()).1;
2829

2930
let input_pdb_path = PathBuf::from(input_pdb);
3031
if !input_pdb_path.is_absolute() {
3132
let abs_input_pdb = working_dir.join(input_pdb_path);
32-
arg.replace_range(
33-
..,
34-
&format!("inference.input_pdb={}", abs_input_pdb.to_str().unwrap()),
33+
*arg = format!("inference.input_pdb={}", abs_input_pdb.to_str().unwrap());
34+
}
35+
} else if arg.starts_with(OUTPUT_PREFIX) {
36+
let output_prefix = arg.split_at(OUTPUT_PREFIX.len()).1;
37+
38+
let output_prefix_path = PathBuf::from(output_prefix);
39+
if !output_prefix_path.is_absolute() {
40+
let abs_output_prefix = working_dir.join(output_prefix_path);
41+
*arg = format!(
42+
"inference.output_prefix={}",
43+
abs_output_prefix.to_str().unwrap()
3544
);
3645
}
37-
38-
// let input_pdb = arg.split_once('=').unwrap().1;
39-
// arg.replace_range(.., format!("inference.input_pdb={input_pdb}"));
46+
output_prefix_present = true;
4047
}
4148
}
4249

43-
app_args.extend_from_slice(&[format!("{OUTPUT_PREFIX}{}", working_dir.to_str().unwrap())]);
50+
if !output_prefix_present {
51+
app_args.extend_from_slice(&[format!("{OUTPUT_PREFIX}{}/", working_dir.to_str().unwrap())]);
52+
}
4453

4554
NativeRunSpec::new(include_asset!("pixi/rfdiffusion.toml"), app_args)
4655
}

0 commit comments

Comments
 (0)