|
|
@@ -945,6 +945,37 @@ pub fn run_clairs_chunked(id: &str, config: &Config, n_parts: usize) -> anyhow::
|
|
|
merge_clairs_parts(&base, actual_n_parts)?;
|
|
|
merge_clairs_germline_parts(&base, actual_n_parts)?;
|
|
|
|
|
|
+ if !config.clairs_keep_parts {
|
|
|
+ let somatic_final = config.clairs_passed_vcf(id);
|
|
|
+ let germline_final = config.clairs_germline_passed_vcf(id);
|
|
|
+
|
|
|
+ anyhow::ensure!(
|
|
|
+ Path::new(&somatic_final).exists(),
|
|
|
+ "Refusing to clean up parts: merged somatic VCF not found at {}",
|
|
|
+ somatic_final
|
|
|
+ );
|
|
|
+ anyhow::ensure!(
|
|
|
+ Path::new(&germline_final).exists(),
|
|
|
+ "Refusing to clean up parts: merged germline VCF not found at {}",
|
|
|
+ germline_final
|
|
|
+ );
|
|
|
+
|
|
|
+ let base_dir = config.clairs_output_dir(id);
|
|
|
+ for i in 1..=actual_n_parts {
|
|
|
+ let part_dir = format!("{base_dir}/part{i}");
|
|
|
+ if Path::new(&part_dir).exists() {
|
|
|
+ fs::remove_dir_all(&part_dir)
|
|
|
+ .with_context(|| format!("Failed to remove part directory: {part_dir}"))?;
|
|
|
+ debug!("Removed part directory: {part_dir}");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ info!(
|
|
|
+ "Cleaned up {} part directories for {}",
|
|
|
+ actual_n_parts, id
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
info!(
|
|
|
"ClairS completed for {}: {} parts merged (somatic + germline)",
|
|
|
id, actual_n_parts
|