From 6483fd1fec6b42435a523b9c2854608ad450a520 Mon Sep 17 00:00:00 2001
From: Wai Yi Leung <w.y.leung@lumc.nl>
Date: Thu, 29 Oct 2015 13:38:11 +0100
Subject: [PATCH] Remove sambamba and use samtools for extracting pairs of
 unmapped reads (not the advanced query)

---
 .../sasc/biopet/pipelines/gears/Gears.scala   | 28 +++++++++++++------
 1 file changed, 19 insertions(+), 9 deletions(-)

diff --git a/public/gears/src/main/scala/nl/lumc/sasc/biopet/pipelines/gears/Gears.scala b/public/gears/src/main/scala/nl/lumc/sasc/biopet/pipelines/gears/Gears.scala
index 895ad38ad..d25d04f84 100644
--- a/public/gears/src/main/scala/nl/lumc/sasc/biopet/pipelines/gears/Gears.scala
+++ b/public/gears/src/main/scala/nl/lumc/sasc/biopet/pipelines/gears/Gears.scala
@@ -19,7 +19,7 @@ import nl.lumc.sasc.biopet.core.summary.SummaryQScript
 import nl.lumc.sasc.biopet.core.{PipelineCommand, SampleLibraryTag}
 import nl.lumc.sasc.biopet.extensions.kraken.{Kraken, KrakenReport}
 import nl.lumc.sasc.biopet.extensions.picard.SamToFastq
-import nl.lumc.sasc.biopet.extensions.sambamba.SambambaView
+import nl.lumc.sasc.biopet.extensions.samtools.SamtoolsView
 import nl.lumc.sasc.biopet.extensions.tools.{FastqSync, KrakenReportToJson}
 import nl.lumc.sasc.biopet.utils.config.Configurable
 import org.broadinstitute.gatk.queue.QScript
@@ -73,17 +73,27 @@ class Gears(val root: Configurable) extends QScript with SummaryQScript with Sam
   def biopetScript(): Unit = {
     val fastqFiles: List[File] = bamFile.map { bamfile =>
 
-      // sambamba view -f bam -F "unmapped or mate_is_unmapped" <alnFile> > <extracted.bam>
-      val samFilterUnmapped = new SambambaView(this)
-      samFilterUnmapped.input = bamfile
-      samFilterUnmapped.filter = Some("(unmapped or mate_is_unmapped) and not (secondary_alignment) and [XH] == null")
-      samFilterUnmapped.output = new File(outputDir, s"$outputName.unmapped.bam")
-      samFilterUnmapped.isIntermediate = false
-      add(samFilterUnmapped)
+//      // sambamba view -f bam -F "unmapped or mate_is_unmapped" <alnFile> > <extracted.bam>
+//      val samFilterUnmapped = new SambambaView(this)
+//      samFilterUnmapped.input = bamfile
+//      samFilterUnmapped.filter = Some("(unmapped or mate_is_unmapped) and not (secondary_alignment) and [XH] == null")
+//      samFilterUnmapped.output = new File(outputDir, s"$outputName.unmapped.bam")
+//      samFilterUnmapped.isIntermediate = false
+//      add(samFilterUnmapped)
+
+
+      val samtoolsViewSelectUnmapped = new SamtoolsView(this)
+      samtoolsViewSelectUnmapped.input = bamfile
+      samtoolsViewSelectUnmapped.b = true
+      samtoolsViewSelectUnmapped.output = new File(outputDir, s"$outputName.unmapped.bam")
+      samtoolsViewSelectUnmapped.f = List("4")
+      samtoolsViewSelectUnmapped.F = List("8")
+      samtoolsViewSelectUnmapped.isIntermediate = true
+      add(samtoolsViewSelectUnmapped)
 
       // start bam to fastq (only on unaligned reads) also extract the matesam
       val samToFastq = new SamToFastq(this)
-      samToFastq.input = samFilterUnmapped.output
+      samToFastq.input = samtoolsViewSelectUnmapped.output
       samToFastq.fastqR1 = new File(outputDir, s"$outputName.unmapped.R1.fq.gz")
       samToFastq.fastqR2 = new File(outputDir, s"$outputName.unmapped.R2.fq.gz")
       samToFastq.fastqUnpaired = new File(outputDir, s"$outputName.unmapped.singleton.fq.gz")
-- 
GitLab