Thomas преди 2 години
родител
ревизия
f540f8fe11
променени са 1 файла, в които са добавени 31 реда и са изтрити 28 реда
  1. 31 28
      src/lib.rs

+ 31 - 28
src/lib.rs

@@ -461,7 +461,7 @@ pub fn write_fasta(fasta_path: &str, d: &Vec<(String, String)>) {
 
 pub fn create_bam(ref_path: &str, reads_path: &str, bam_path: &str) -> Result<()> {
     let rg_id = uuid::Uuid::new_v4();
-    let mm2 = Command::new("minimap2")
+    let mut mm2 = Command::new("minimap2")
         .arg("-t")
         .arg("128")
         .arg("-ax")
@@ -472,35 +472,38 @@ pub fn create_bam(ref_path: &str, reads_path: &str, bam_path: &str) -> Result<()
         ))
         .arg(ref_path)
         .arg(reads_path)
-        .stdout(Stdio::piped())
-        .spawn()
-        .expect("Minimap2 failed to start");
-
-    let view = Command::new("sambamba")
-        .arg("view")
-        .arg("-h")
-        .arg("-S")
-        .arg("-t")
-        .arg("20")
-        .arg("--format=bam")
-        .arg("/dev/stdin")
-        .stdin(Stdio::from(mm2.stdout.unwrap()))
-        .stdout(Stdio::piped())
-        .spawn()
-        .expect("Sambamba view failed to start");
-
-    let mut sort = Command::new("sambamba")
-        .arg("sort")
-        .arg("-t")
-        .arg("20")
-        .arg("/dev/stdin")
-        .arg("-o")
+        .arg(" | sambamba view -h -S --format=bam /dev/stdin | sambamba sort /dev/stdin -o")
         .arg(bam_path)
-        .stdin(Stdio::from(view.stdout.unwrap()))
+        // .stdout(Stdio::piped())
         .spawn()
-        .expect("Sambamba sort failed to start");
-
-    sort.wait().unwrap();
+        .expect("Minimap2 failed to start");
+    mm2.wait();
+
+    // let view = Command::new("sambamba")
+    //     .arg("view")
+    //     .arg("-h")
+    //     .arg("-S")
+    //     .arg("-t")
+    //     .arg("20")
+    //     .arg("--format=bam")
+    //     .arg("/dev/stdin")
+    //     .stdin(Stdio::from(mm2.stdout.unwrap()))
+    //     .stdout(Stdio::piped())
+    //     .spawn()
+    //     .expect("Sambamba view failed to start");
+    //
+    // let mut sort = Command::new("sambamba")
+    //     .arg("sort")
+    //     .arg("-t")
+    //     .arg("20")
+    //     .arg("/dev/stdin")
+    //     .arg("-o")
+    //     .arg(bam_path)
+    //     .stdin(Stdio::from(view.stdout.unwrap()))
+    //     .spawn()
+    //     .expect("Sambamba sort failed to start");
+
+    // sort.wait().unwrap();
     Ok(())
 }