diff --git a/public/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/Flash.scala b/public/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/Flash.scala index 730d28177b51a8376b9819c6cbf83eaee8469232..4013b8aeada8962ebe5893bed017e95056715317 100644 --- a/public/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/Flash.scala +++ b/public/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/Flash.scala @@ -2,15 +2,15 @@ package nl.lumc.sasc.biopet.extensions import java.io.File -import nl.lumc.sasc.biopet.core.{Version, BiopetCommandLineFunction} +import nl.lumc.sasc.biopet.core.{ Version, BiopetCommandLineFunction } import nl.lumc.sasc.biopet.utils.config.Configurable import org.broadinstitute.gatk.utils.commandline.Input import scala.util.matching.Regex /** - * Created by pjvanthof on 16/12/15. - */ + * Created by pjvanthof on 16/12/15. + */ class Flash(val root: Configurable) extends BiopetCommandLineFunction with Version { executable = config("exe", default = "flash", freeVar = false) @@ -47,7 +47,7 @@ class Flash(val root: Configurable) extends BiopetCommandLineFunction with Versi var compressProgArgs: Option[String] = config("compress_prog_args") var outputSuffix: Option[String] = config("output_suffix") - private def suffix = outputSuffix.getOrElse("fastq") + (if(compress) ".gz" else "") + private def suffix = outputSuffix.getOrElse("fastq") + (if (compress) ".gz" else "") def combinedFastq = new File(outputDirectory, s"$outputPrefix.extendedFrags.$suffix") def notCombinedR1 = new File(outputDirectory, s"$outputPrefix.notCombined_1.$suffix") diff --git a/public/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/qiime/PickClosedReferenceOtus.scala b/public/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/qiime/PickClosedReferenceOtus.scala index 0a2e307fc8733851ea4003d42548ff22fd80ccbb..46f502b08fc76e5167b7b3873714a2972667c72c 100644 --- a/public/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/qiime/PickClosedReferenceOtus.scala +++ b/public/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/qiime/PickClosedReferenceOtus.scala @@ -2,7 +2,7 @@ package nl.lumc.sasc.biopet.extensions.qiime import java.io.File -import nl.lumc.sasc.biopet.core.{BiopetCommandLineFunction, Version} +import nl.lumc.sasc.biopet.core.{ BiopetCommandLineFunction, Version } import nl.lumc.sasc.biopet.utils.config.Configurable import org.broadinstitute.gatk.utils.commandline.Input @@ -36,6 +36,11 @@ class PickClosedReferenceOtus(val root: Configurable) extends BiopetCommandLineF var print_only: Boolean = config("print_only", default = false) var suppress_taxonomy_assignment: Boolean = config("suppress_taxonomy_assignment", default = false) + override def beforeGraph(): Unit = { + super.beforeGraph() + jobOutputFile = new File(outputDir, "std.log") + } + def cmdLine = executable + required("-i", inputFasta) + required("-o", outputDir) + diff --git a/public/gears/src/main/scala/nl/lumc/sasc/biopet/pipelines/gears/GearsQiimeClosed.scala b/public/gears/src/main/scala/nl/lumc/sasc/biopet/pipelines/gears/GearsQiimeClosed.scala new file mode 100644 index 0000000000000000000000000000000000000000..d034314dfad826d301c96783b28a570ee5309493 --- /dev/null +++ b/public/gears/src/main/scala/nl/lumc/sasc/biopet/pipelines/gears/GearsQiimeClosed.scala @@ -0,0 +1,52 @@ +package nl.lumc.sasc.biopet.pipelines.gears + +import nl.lumc.sasc.biopet.core.{ BiopetQScript, SampleLibraryTag } +import nl.lumc.sasc.biopet.extensions.Flash +import nl.lumc.sasc.biopet.extensions.qiime._ +import nl.lumc.sasc.biopet.utils.config.Configurable +import org.broadinstitute.gatk.queue.QScript + +/** + * Created by pjvan_thof on 12/4/15. + */ +class GearsQiimeClosed(val root: Configurable) extends QScript with BiopetQScript with SampleLibraryTag { + + var fastqR1: File = _ + + var fastqR2: Option[File] = None + + override def defaults = Map( + "splitlibrariesfastq" -> Map( + "barcode_type" -> "not-barcoded" + ) + ) + + def init() = { + require(fastqR1 != null) + } + + def biopetScript() = { + + val fastqFile = fastqR2 match { + case Some(r2) => + val flash = new Flash(this) + flash.outputDirectory = new File(outputDir, "combine_reads_flash") + flash.fastqR1 = fastqR1 + flash.fastqR2 = r2 + add(flash) + flash.combinedFastq + case _ => fastqR1 + } + + val splitLib = new SplitLibrariesFastq(this) + splitLib.input :+= fastqFile + splitLib.outputDir = new File(outputDir, "split_libraries_fastq") + sampleId.foreach(splitLib.sample_ids :+= _) + add(splitLib) + + val closedReference = new PickClosedReferenceOtus(this) + closedReference.inputFasta = splitLib.outputSeqs + closedReference.outputDir = new File(outputDir, "pick_closed_reference_otus") + add(closedReference) + } +} diff --git a/public/gears/src/main/scala/nl/lumc/sasc/biopet/pipelines/gears/GearsSingle.scala b/public/gears/src/main/scala/nl/lumc/sasc/biopet/pipelines/gears/GearsSingle.scala index 4794010dfa31b11eff90cfb10f0c79f4395abf1d..1a020e32afe9b2370d164559913b95b6f1c33ce2 100644 --- a/public/gears/src/main/scala/nl/lumc/sasc/biopet/pipelines/gears/GearsSingle.scala +++ b/public/gears/src/main/scala/nl/lumc/sasc/biopet/pipelines/gears/GearsSingle.scala @@ -43,6 +43,7 @@ class GearsSingle(val root: Configurable) extends QScript with SummaryQScript wi var gearsUseKraken: Boolean = config("gears_use_kraken", default = true) var gearsUserQiimeRtax: Boolean = config("gear_use_qiime_rtax", default = false) + var gearsUserQiimeClosed: Boolean = config("gear_use_qiime_closed", default = false) /** Executed before running the script */ def init(): Unit = { @@ -120,6 +121,16 @@ class GearsSingle(val root: Configurable) extends QScript with SummaryQScript wi addAll(qiimeRatx.functions) } + if (gearsUserQiimeClosed) { + val qiimeClosed = new GearsQiimeClosed(this) + qiimeClosed.outputDir = new File(outputDir, "qiime_rtax") + qiimeClosed.fastqR1 = flexiprep.fastqR1Qc + qiimeClosed.fastqR2 = flexiprep.fastqR2Qc + qiimeClosed.init() + qiimeClosed.biopetScript() + addAll(qiimeClosed.functions) + } + addSummaryJobs() }