diff --git a/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/centrifuge/Centrifuge.scala b/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/centrifuge/Centrifuge.scala index 462a0b0b79cea32a3671160357b07068544006dc..2164a195bee623b03ae04c8f8696ed86353165c8 100644 --- a/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/centrifuge/Centrifuge.scala +++ b/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/centrifuge/Centrifuge.scala @@ -9,8 +9,8 @@ import org.broadinstitute.gatk.utils.commandline.{ Input, Output } import scala.util.matching.Regex /** - * Created by pjvanthof on 19/09/16. - */ + * Created by pjvanthof on 19/09/16. + */ class Centrifuge(val root: Configurable) extends BiopetCommandLineFunction with Version { @Input(doc = "Input: FastQ or FastA", required = true) var inputR1: File = _ @@ -38,14 +38,14 @@ class Centrifuge(val root: Configurable) extends BiopetCommandLineFunction with def versionRegex: Regex = ".* version (.*)".r /** - * This function needs to be implemented to define the command that is executed - * - * @return Command to run - */ + * This function needs to be implemented to define the command that is executed + * + * @return Command to run + */ def cmdLine: String = executable + //TODO: Options optional("--threads", threads) - required("-x", index) + + required("-x", index) + (inputR2 match { case Some(r2) => required("-1", inputR1) + required("-2", r2) case _ => required("-U", inputR1) diff --git a/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/centrifuge/CentrifugeKreport.scala b/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/centrifuge/CentrifugeKreport.scala index cbf8b2242c24aae7da540f4cc2ce994b7210264c..cd8ff0be92e3d19585c19d8bd8169ef5b22671dc 100644 --- a/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/centrifuge/CentrifugeKreport.scala +++ b/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/centrifuge/CentrifugeKreport.scala @@ -7,8 +7,8 @@ import nl.lumc.sasc.biopet.utils.config.Configurable import org.broadinstitute.gatk.utils.commandline.{ Input, Output } /** - * Created by pjvanthof on 19/09/16. - */ + * Created by pjvanthof on 19/09/16. + */ class CentrifugeKreport(val root: Configurable) extends BiopetCommandLineFunction { @Input(doc = "Output files centrifuge", required = true) var centrifugeOutputFiles: List[File] = Nil diff --git a/gears/src/main/scala/nl/lumc/sasc/biopet/pipelines/gears/GearsCentrifuge.scala b/gears/src/main/scala/nl/lumc/sasc/biopet/pipelines/gears/GearsCentrifuge.scala index 7dd7a658cb21f5e3b50555e7787bb45ef77fa8b4..06f4a02b3c1cd43cc811e57bdfc72b7104ff0da5 100644 --- a/gears/src/main/scala/nl/lumc/sasc/biopet/pipelines/gears/GearsCentrifuge.scala +++ b/gears/src/main/scala/nl/lumc/sasc/biopet/pipelines/gears/GearsCentrifuge.scala @@ -8,8 +8,8 @@ import nl.lumc.sasc.biopet.utils.config.Configurable import org.broadinstitute.gatk.queue.QScript /** - * Created by pjvanthof on 19/09/16. - */ + * Created by pjvanthof on 19/09/16. + */ class GearsCentrifuge(val root: Configurable) extends QScript with SummaryQScript with SampleLibraryTag { var fastqR1: File = _ @@ -35,7 +35,7 @@ class GearsCentrifuge(val root: Configurable) extends QScript with SummaryQScrip add(centrifuge) val centrifugeKreport = new CentrifugeKreport(this) - centrifugeKreport.centrifugeOutputFiles += centrifuge.output + centrifugeKreport.centrifugeOutputFiles :+= centrifuge.output centrifugeKreport.output = new File(outputDir, s"$outputName.centrifuge.kreport") add(centrifugeKreport) diff --git a/gears/src/test/scala/nl/lumc/sasc/biopet/pipelines/gears/GearsSingleTest.scala b/gears/src/test/scala/nl/lumc/sasc/biopet/pipelines/gears/GearsSingleTest.scala index 31ffcab22c517a62264166c95564081aa431b6cc..de2cc5a0361bbce067cdeacf8f9976e508f40aa7 100644 --- a/gears/src/test/scala/nl/lumc/sasc/biopet/pipelines/gears/GearsSingleTest.scala +++ b/gears/src/test/scala/nl/lumc/sasc/biopet/pipelines/gears/GearsSingleTest.scala @@ -17,6 +17,7 @@ package nl.lumc.sasc.biopet.pipelines.gears import java.io.File import com.google.common.io.Files +import nl.lumc.sasc.biopet.extensions.centrifuge.{ Centrifuge, CentrifugeKreport } import nl.lumc.sasc.biopet.extensions.kraken.{ Kraken, KrakenReport } import nl.lumc.sasc.biopet.extensions.picard.SamToFastq import nl.lumc.sasc.biopet.extensions.samtools.SamtoolsView @@ -49,6 +50,7 @@ abstract class TestGearsSingle extends TestNGSuite with Matchers { def paired: Boolean = false def hasOutputName: Boolean = false def kraken: Option[Boolean] = None + def centrifuge: Boolean = false def qiimeClosed: Boolean = false def qiimeOpen: Boolean = false def qiimeRtax: Boolean = false @@ -61,6 +63,7 @@ abstract class TestGearsSingle extends TestNGSuite with Matchers { def testGears(): Unit = { val map = ConfigUtils.mergeMaps(Map( "gears_use_qiime_rtax" -> qiimeRtax, + "gears_use_centrifuge" -> centrifuge, "gears_use_qiime_closed" -> qiimeClosed, "gears_use_qiime_open" -> qiimeOpen, "gears_use_seq_count" -> seqCount, @@ -108,6 +111,7 @@ abstract class TestGearsSingle extends TestNGSuite with Matchers { gears.summarySettings("gear_use_qiime_open") shouldBe qiimeOpen gears.krakenScript.isDefined shouldBe kraken.getOrElse(true) + gears.centrifugeScript.isDefined shouldBe centrifuge gears.qiimeClosed.isDefined shouldBe qiimeClosed gears.qiimeOpen.isDefined shouldBe qiimeOpen gears.qiimeRatx.isDefined shouldBe qiimeRtax @@ -119,7 +123,11 @@ abstract class TestGearsSingle extends TestNGSuite with Matchers { gears.functions.count(_.isInstanceOf[Kraken]) shouldBe (if (kraken.getOrElse(true)) 1 else 0) gears.functions.count(_.isInstanceOf[KrakenReport]) shouldBe (if (kraken.getOrElse(true)) 1 else 0) - gears.functions.count(_.isInstanceOf[KrakenReportToJson]) shouldBe (if (kraken.getOrElse(true)) 1 else 0) + gears.functions.count(_.isInstanceOf[KrakenReportToJson]) shouldBe + ((if (kraken.getOrElse(true)) 1 else 0) + (if (centrifuge) 1 else 0)) + + gears.functions.count(_.isInstanceOf[Centrifuge]) shouldBe (if (centrifuge) 1 else 0) + gears.functions.count(_.isInstanceOf[CentrifugeKreport]) shouldBe (if (centrifuge) 1 else 0) } } } @@ -132,6 +140,9 @@ class GearsSingleDefaultTest extends TestGearsSingle class GearsSingleKrakenTest extends TestGearsSingle { override def kraken = Some(true) } +class GearsSingleCentrifugeTest extends TestGearsSingle { + override def centrifuge = true +} class GearsSingleQiimeClosedTest extends TestGearsSingle { override def qiimeClosed = true } @@ -149,6 +160,10 @@ class GearsSingleKrakenPairedTest extends TestGearsSingle { override def paired = true override def kraken = Some(true) } +class GearsSingleCentrifugePairedTest extends TestGearsSingle { + override def paired = true + override def centrifuge = true +} class GearsSingleQiimeClosedPairedTest extends TestGearsSingle { override def paired = true override def qiimeClosed = true @@ -168,6 +183,7 @@ class GearsSingleseqCountPairedTest extends TestGearsSingle { class GearsSingleAllTest extends TestGearsSingle { override def kraken = Some(true) + override def centrifuge = true override def qiimeClosed = true override def qiimeOpen = true override def qiimeRtax = true @@ -175,6 +191,7 @@ class GearsSingleAllTest extends TestGearsSingle { } class GearsSingleAllPairedTest extends TestGearsSingle { override def kraken = Some(true) + override def centrifuge = true override def qiimeClosed = true override def qiimeOpen = true override def qiimeRtax = true