diff --git a/biopet-core/src/main/scala/nl/lumc/sasc/biopet/core/report/ReportBuilder.scala b/biopet-core/src/main/scala/nl/lumc/sasc/biopet/core/report/ReportBuilder.scala index 8365cc946ef6395409744f612eec2d9e3b6b52af..eb3a51b54f3d050cbf6c9766e3eef81b1c8607c7 100644 --- a/biopet-core/src/main/scala/nl/lumc/sasc/biopet/core/report/ReportBuilder.scala +++ b/biopet-core/src/main/scala/nl/lumc/sasc/biopet/core/report/ReportBuilder.scala @@ -132,7 +132,7 @@ trait ReportBuilder extends ToolCommand { logger.info("Start") val argsParser = new OptParser - val cmdArgs: Args = argsParser.parse(args, Args()) getOrElse(throw new IllegalArgumentException) + val cmdArgs: Args = argsParser.parse(args, Args()) getOrElse (throw new IllegalArgumentException) require(cmdArgs.outputDir.exists(), "Output dir does not exist") require(cmdArgs.outputDir.isDirectory, "Output dir is not a directory") diff --git a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/AnnotateVcfWithBed.scala b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/AnnotateVcfWithBed.scala index e80887e8edcb5e8f2c73cfa268964fb39cf326c8..13d579930cc0d5faa0979498a87440f62453b6ba 100644 --- a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/AnnotateVcfWithBed.scala +++ b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/AnnotateVcfWithBed.scala @@ -80,7 +80,7 @@ object AnnotateVcfWithBed extends ToolCommand { logger.info("Start") val argsParser = new OptParser - val cmdArgs: Args = argsParser.parse(args, Args()) getOrElse(throw new IllegalArgumentException) + val cmdArgs: Args = argsParser.parse(args, Args()) getOrElse (throw new IllegalArgumentException) val fieldType = cmdArgs.fieldType match { case "Integer" => VCFHeaderLineType.Integer diff --git a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/BaseCounter.scala b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/BaseCounter.scala index 6bba497ca162ca63574fb99f048cba119f9e9cf6..66b8af4b3eab2dcc3d4b6469c7cae27e2c26bc26 100644 --- a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/BaseCounter.scala +++ b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/BaseCounter.scala @@ -53,7 +53,7 @@ object BaseCounter extends ToolCommand { def main(args: Array[String]): Unit = { val argsParser = new OptParser - val cmdArgs: Args = argsParser.parse(args, Args()) getOrElse(throw new IllegalArgumentException) + val cmdArgs: Args = argsParser.parse(args, Args()) getOrElse (throw new IllegalArgumentException) //Sets picard logging level htsjdk.samtools.util.Log.setGlobalLogLevel(htsjdk.samtools.util.Log.LogLevel.valueOf(logger.getLevel.toString)) diff --git a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/BastyGenerateFasta.scala b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/BastyGenerateFasta.scala index 100209b1d266bd326c91c543631a8b4dfd78c10d..cb482e6706a5f1a4632d75ad9bccff43e1633474 100644 --- a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/BastyGenerateFasta.scala +++ b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/BastyGenerateFasta.scala @@ -113,7 +113,7 @@ object BastyGenerateFasta extends ToolCommand { */ def main(args: Array[String]): Unit = { val argsParser = new OptParser - cmdArgs = argsParser.parse(args, Args()) getOrElse(throw new IllegalArgumentException) + cmdArgs = argsParser.parse(args, Args()) getOrElse (throw new IllegalArgumentException) if (cmdArgs.outputVariants != null) { writeVariantsOnly() diff --git a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/BedToInterval.scala b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/BedToInterval.scala index b82b7b74286258ac5bdd11a796c1924bd1c3d4af..6461d5417aaabe4a8481bdbc9d2c213dba7228a4 100644 --- a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/BedToInterval.scala +++ b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/BedToInterval.scala @@ -47,7 +47,7 @@ object BedToInterval extends ToolCommand { */ def main(args: Array[String]): Unit = { val argsParser = new OptParser - val commandArgs: Args = argsParser.parse(args, Args()) getOrElse(throw new IllegalArgumentException) + val commandArgs: Args = argsParser.parse(args, Args()) getOrElse (throw new IllegalArgumentException) val writer = new PrintWriter(commandArgs.outputFile) diff --git a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/BedtoolsCoverageToCounts.scala b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/BedtoolsCoverageToCounts.scala index 40ad0b93b3ad8404382be17ff8fa862851db961a..c5509721ad6375aefd3f1deb586fb6bfe193528e 100644 --- a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/BedtoolsCoverageToCounts.scala +++ b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/BedtoolsCoverageToCounts.scala @@ -39,7 +39,7 @@ object BedtoolsCoverageToCounts extends ToolCommand { */ def main(args: Array[String]): Unit = { val argsParser = new OptParser - val commandArgs: Args = argsParser.parse(args, Args()) getOrElse(throw new IllegalArgumentException) + val commandArgs: Args = argsParser.parse(args, Args()) getOrElse (throw new IllegalArgumentException) if (!commandArgs.input.exists) throw new IllegalStateException("Input file not found, file: " + commandArgs.input) diff --git a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/BiopetFlagstat.scala b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/BiopetFlagstat.scala index 51f1c1cbecba4e079534eaa380f8be072950c3d1..5d53f2ef8ab2be24fff67af1fee6504181dac0e7 100644 --- a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/BiopetFlagstat.scala +++ b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/BiopetFlagstat.scala @@ -50,7 +50,7 @@ object BiopetFlagstat extends ToolCommand { */ def main(args: Array[String]): Unit = { val argsParser = new OptParser - val commandArgs: Args = argsParser.parse(args, Args()) getOrElse(throw new IllegalArgumentException) + val commandArgs: Args = argsParser.parse(args, Args()) getOrElse (throw new IllegalArgumentException) val inputSam = SamReaderFactory.makeDefault.open(commandArgs.inputFile) val iterSam = if (commandArgs.region.isEmpty) inputSam.iterator else { diff --git a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/CheckAllelesVcfInBam.scala b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/CheckAllelesVcfInBam.scala index fccebd08aa15ea28c90f6b64af57e196e6091e55..ff7a9036c189fa2f89488ffb8b281537e65e6a6e 100644 --- a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/CheckAllelesVcfInBam.scala +++ b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/CheckAllelesVcfInBam.scala @@ -71,7 +71,7 @@ object CheckAllelesVcfInBam extends ToolCommand { def main(args: Array[String]): Unit = { val argsParser = new OptParser - val commandArgs: Args = argsParser.parse(args, Args()) getOrElse(throw new IllegalArgumentException) + val commandArgs: Args = argsParser.parse(args, Args()) getOrElse (throw new IllegalArgumentException) if (commandArgs.bamFiles.size != commandArgs.samples.size) logger.warn("Number of samples is different from number of bam files: additional samples or bam files will not be used") diff --git a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/FastqSplitter.scala b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/FastqSplitter.scala index f0214b3392255f2c4e81de571c35a152343a86d5..b85a935b1e49b1545bb3dd6ed28c782a98a97be1 100644 --- a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/FastqSplitter.scala +++ b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/FastqSplitter.scala @@ -45,7 +45,7 @@ object FastqSplitter extends ToolCommand { */ def main(args: Array[String]): Unit = { val argsParser = new OptParser - val commandArgs: Args = argsParser.parse(args, Args()) getOrElse(throw new IllegalArgumentException) + val commandArgs: Args = argsParser.parse(args, Args()) getOrElse (throw new IllegalArgumentException) val groupSize = 100 val output = for (file <- commandArgs.outputFile) yield new AsyncFastqWriter(new BasicFastqWriter(file), groupSize) diff --git a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/FindRepeatsPacBio.scala b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/FindRepeatsPacBio.scala index 92c8782a75707b646e9cc10e3a97f822a2f53ae0..4daee3d96b843926bf26da0717b69ebe1c176291 100644 --- a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/FindRepeatsPacBio.scala +++ b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/FindRepeatsPacBio.scala @@ -46,7 +46,7 @@ object FindRepeatsPacBio extends ToolCommand { def main(args: Array[String]): Unit = { val argsParser = new OptParser - val commandArgs: Args = argsParser.parse(args, Args()) getOrElse(throw new IllegalArgumentException) + val commandArgs: Args = argsParser.parse(args, Args()) getOrElse (throw new IllegalArgumentException) val bamReader = SamReaderFactory.makeDefault .validationStringency(ValidationStringency.SILENT) .open(commandArgs.inputBam) diff --git a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/GvcfToBed.scala b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/GvcfToBed.scala index fcb302c3c7b9e551d9a7190d14c4d9f29ce48478..bb9e239480906d6390b76644a349440056aca2ec 100644 --- a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/GvcfToBed.scala +++ b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/GvcfToBed.scala @@ -57,7 +57,7 @@ object GvcfToBed extends ToolCommand { def main(args: Array[String]): Unit = { val argsParser = new OptParser - val cmdArgs = argsParser.parse(args, Args()) getOrElse(throw new IllegalArgumentException) + val cmdArgs = argsParser.parse(args, Args()) getOrElse (throw new IllegalArgumentException) logger.debug("Opening reader") val reader = new VCFFileReader(cmdArgs.inputVcf, false) diff --git a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/MergeAlleles.scala b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/MergeAlleles.scala index 8187064d10ddbfda5a4642a821b30b23e56bfbe4..a64a8e8fd92bf6c35120109fd8be8f22c43ec2e3 100644 --- a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/MergeAlleles.scala +++ b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/MergeAlleles.scala @@ -50,7 +50,7 @@ object MergeAlleles extends ToolCommand { */ def main(args: Array[String]): Unit = { val argsParser = new OptParser - val commandArgs: Args = argsParser.parse(args, Args()) getOrElse(throw new IllegalArgumentException) + val commandArgs: Args = argsParser.parse(args, Args()) getOrElse (throw new IllegalArgumentException) val readers = commandArgs.inputFiles.map(new VCFFileReader(_, true)) val referenceFile = new FastaSequenceFile(commandArgs.reference, true) diff --git a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/MergeOtuMaps.scala b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/MergeOtuMaps.scala index f853d66a5018559569a02b5ded85a04e19d57711..4caf55ab0ebdde7f861e8582d32c0715cabf8169 100644 --- a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/MergeOtuMaps.scala +++ b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/MergeOtuMaps.scala @@ -41,7 +41,7 @@ object MergeOtuMaps extends ToolCommand { */ def main(args: Array[String]): Unit = { val argsParser = new OptParser - val commandArgs: Args = argsParser.parse(args, Args()) getOrElse(throw new IllegalArgumentException) + val commandArgs: Args = argsParser.parse(args, Args()) getOrElse (throw new IllegalArgumentException) var map: Map[Long, String] = Map() diff --git a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/MpileupToVcf.scala b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/MpileupToVcf.scala index df159c33dd4c05af042ea8f6cfc5a1735cac6013..cb0dbce5a01fc56a0ef0a615327ea5a4ea2972bd 100644 --- a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/MpileupToVcf.scala +++ b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/MpileupToVcf.scala @@ -62,7 +62,7 @@ object MpileupToVcf extends ToolCommand { */ def main(args: Array[String]): Unit = { val argsParser = new OptParser - val commandArgs: Args = argsParser.parse(args, Args()) getOrElse(throw new IllegalArgumentException) + val commandArgs: Args = argsParser.parse(args, Args()) getOrElse (throw new IllegalArgumentException) if (commandArgs.input != null && !commandArgs.input.exists) throw new IllegalStateException("Input file does not exist") val writer = new PrintWriter(commandArgs.output) diff --git a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/PrefixFastq.scala b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/PrefixFastq.scala index 6be7f11fb878af4e6679f661327f9b85cc3ab4a3..23a981d516fd80ba1d676645b5da268e78d598bf 100644 --- a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/PrefixFastq.scala +++ b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/PrefixFastq.scala @@ -52,7 +52,7 @@ object PrefixFastq extends ToolCommand { logger.info("Start") val argsParser = new OptParser - val cmdArgs: Args = argsParser.parse(args, Args()) getOrElse(throw new IllegalArgumentException) + val cmdArgs: Args = argsParser.parse(args, Args()) getOrElse (throw new IllegalArgumentException) val writer = new AsyncFastqWriter(new BasicFastqWriter(cmdArgs.output), 3000) val reader = new FastqReader(cmdArgs.input) diff --git a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/RegionAfCount.scala b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/RegionAfCount.scala index 4af0fc390709c0e7e5ac7f3fc7e3fdeb0c48e8a1..bb93144eba8fc32e2b076ada8b15542336307af0 100644 --- a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/RegionAfCount.scala +++ b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/RegionAfCount.scala @@ -49,7 +49,7 @@ object RegionAfCount extends ToolCommand { def main(args: Array[String]): Unit = { val argsParser = new OptParser - val cmdArgs: Args = argsParser.parse(args, Args()) getOrElse(throw new IllegalArgumentException) + val cmdArgs: Args = argsParser.parse(args, Args()) getOrElse (throw new IllegalArgumentException) logger.info("Start") logger.info("Reading bed file") diff --git a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/SageCountFastq.scala b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/SageCountFastq.scala index 0ea5fcc73ff7f1c5caed520ce8360d1d2c1dd820..66d4f2e1db1bfeadbadd24d30c3a482985455188 100644 --- a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/SageCountFastq.scala +++ b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/SageCountFastq.scala @@ -41,7 +41,7 @@ object SageCountFastq extends ToolCommand { */ def main(args: Array[String]): Unit = { val argsParser = new OptParser - val commandArgs: Args = argsParser.parse(args, Args()) getOrElse(throw new IllegalArgumentException) + val commandArgs: Args = argsParser.parse(args, Args()) getOrElse (throw new IllegalArgumentException) if (!commandArgs.input.exists) throw new IllegalStateException("Input file not found, file: " + commandArgs.input) diff --git a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/SageCreateLibrary.scala b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/SageCreateLibrary.scala index 71dfbbacb788829a98821e00fe51d28f47830423..2b0c203e3da70a88dd6ed899772c3d876e93e58f 100644 --- a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/SageCreateLibrary.scala +++ b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/SageCreateLibrary.scala @@ -74,7 +74,7 @@ object SageCreateLibrary extends ToolCommand { */ def main(args: Array[String]): Unit = { val argsParser = new OptParser - val commandArgs: Args = argsParser.parse(args, Args()) getOrElse(throw new IllegalArgumentException) + val commandArgs: Args = argsParser.parse(args, Args()) getOrElse (throw new IllegalArgumentException) if (!commandArgs.input.exists) throw new IllegalStateException("Input file not found, file: " + commandArgs.input) diff --git a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/SageCreateTagCounts.scala b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/SageCreateTagCounts.scala index 2ae201ea18512c2f3ee5a6b7c05efad3015b3cba..58b3976f1534bc744ff732fe5f8befbbb0171150 100644 --- a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/SageCreateTagCounts.scala +++ b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/SageCreateTagCounts.scala @@ -52,7 +52,7 @@ object SageCreateTagCounts extends ToolCommand { */ def main(args: Array[String]): Unit = { val argsParser = new OptParser - val commandArgs: Args = argsParser.parse(args, Args()) getOrElse(throw new IllegalArgumentException) + val commandArgs: Args = argsParser.parse(args, Args()) getOrElse (throw new IllegalArgumentException) if (!commandArgs.input.exists) throw new IllegalStateException("Input file not found, file: " + commandArgs.input) diff --git a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/SamplesTsvToJson.scala b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/SamplesTsvToJson.scala index 4d1f2b82d865cbed58ee329c6f985646df6ed5e3..36ec914e31445381dd8cf4850bbf26727f5f3f16 100644 --- a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/SamplesTsvToJson.scala +++ b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/SamplesTsvToJson.scala @@ -46,7 +46,7 @@ object SamplesTsvToJson extends ToolCommand { /** Executes SamplesTsvToJson */ def main(args: Array[String]): Unit = { val argsParser = new OptParser - val cmdArgs: Args = argsParser.parse(args, Args()) getOrElse(throw new IllegalArgumentException) + val cmdArgs: Args = argsParser.parse(args, Args()) getOrElse (throw new IllegalArgumentException) val jsonString = stringFromInputs(cmdArgs.inputFiles, cmdArgs.tagFiles) cmdArgs.outputFile match { diff --git a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/SquishBed.scala b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/SquishBed.scala index 413d335ab01b3897e7d4a2eff2205923cd06fc6b..b6b1780a56249d49700dde42fc62c38ec4540f88 100644 --- a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/SquishBed.scala +++ b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/SquishBed.scala @@ -46,7 +46,7 @@ object SquishBed extends ToolCommand { */ def main(args: Array[String]): Unit = { val argsParser = new OptParser - val cmdArgs: Args = argsParser.parse(args, Args()) getOrElse(throw new IllegalArgumentException) + val cmdArgs: Args = argsParser.parse(args, Args()) getOrElse (throw new IllegalArgumentException) if (!cmdArgs.input.exists) throw new IllegalStateException("Input file not found, file: " + cmdArgs.input) diff --git a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/SummaryToTsv.scala b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/SummaryToTsv.scala index 084a8cf693a0dbb9fd9708dd624df60c3c2629ed..44519d087f20f38fea420ef2b4dba326c6bf0e43 100644 --- a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/SummaryToTsv.scala +++ b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/SummaryToTsv.scala @@ -61,7 +61,7 @@ object SummaryToTsv extends ToolCommand { def main(args: Array[String]): Unit = { val argsParser = new OptParser - val cmdArgs: Args = argsParser.parse(args, Args()) getOrElse(throw new IllegalArgumentException) + val cmdArgs: Args = argsParser.parse(args, Args()) getOrElse (throw new IllegalArgumentException) val summary = new Summary(cmdArgs.summary) diff --git a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/ValidateFastq.scala b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/ValidateFastq.scala index 975a6dbd13e4741e93a1709f8f02e01283f216b1..76c55043e4b379d7d9b071895d6f10af69f0ed5c 100644 --- a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/ValidateFastq.scala +++ b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/ValidateFastq.scala @@ -51,7 +51,7 @@ object ValidateFastq extends ToolCommand { //parse all possible options into OptParser val argsParser = new OptParser - val cmdArgs: Args = argsParser.parse(args, Args()) getOrElse(throw new IllegalArgumentException) + val cmdArgs: Args = argsParser.parse(args, Args()) getOrElse (throw new IllegalArgumentException) //read in fastq file 1 and if present fastq file 2 val readFq1 = new FastqReader(cmdArgs.input) diff --git a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/VcfFilter.scala b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/VcfFilter.scala index 3897c3c9e577e9bb81e0075ba3729b8aa52d7ce3..8833ad596defb0179ed5ad75544afb5a1ea45c44 100644 --- a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/VcfFilter.scala +++ b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/VcfFilter.scala @@ -137,7 +137,7 @@ object VcfFilter extends ToolCommand { def main(args: Array[String]): Unit = { logger.info("Start") val argsParser = new OptParser - val cmdArgs = argsParser.parse(args, Args()) getOrElse(throw new IllegalArgumentException) + val cmdArgs = argsParser.parse(args, Args()) getOrElse (throw new IllegalArgumentException) val reader = new VCFFileReader(cmdArgs.inputVcf, false) val header = reader.getFileHeader diff --git a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/VcfStats.scala b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/VcfStats.scala index 677b4d739621f718b0d4c1d1f9f5531ca465ee7f..09a251ad381fee30896d48e07dc2fe6fb1291045 100644 --- a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/VcfStats.scala +++ b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/VcfStats.scala @@ -206,7 +206,7 @@ object VcfStats extends ToolCommand { def main(args: Array[String]): Unit = { logger.info("Started") val argsParser = new OptParser - cmdArgs = argsParser.parse(args, Args()) getOrElse(throw new IllegalArgumentException) + cmdArgs = argsParser.parse(args, Args()) getOrElse (throw new IllegalArgumentException) val reader = new VCFFileReader(cmdArgs.inputFile, true) val header = reader.getFileHeader diff --git a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/VcfToTsv.scala b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/VcfToTsv.scala index a86eb7c630f4a605c9f4c96a56f8c8e2ea7e89e0..0a03991ed928d9aa3a9795bdd1f7dbf6526ab2f5 100644 --- a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/VcfToTsv.scala +++ b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/VcfToTsv.scala @@ -72,7 +72,7 @@ object VcfToTsv extends ToolCommand { def main(args: Array[String]): Unit = { val argsParser = new OptParser - val commandArgs: Args = argsParser.parse(args, Args()) getOrElse(throw new IllegalArgumentException) + val commandArgs: Args = argsParser.parse(args, Args()) getOrElse (throw new IllegalArgumentException) // Throw exception if separator and listSeparator are identical if (commandArgs.separator == commandArgs.listSeparator) throw new IllegalArgumentException( diff --git a/mapping/src/main/scala/nl/lumc/sasc/biopet/pipelines/mapping/MultisampleMappingTrait.scala b/mapping/src/main/scala/nl/lumc/sasc/biopet/pipelines/mapping/MultisampleMapping.scala similarity index 97% rename from mapping/src/main/scala/nl/lumc/sasc/biopet/pipelines/mapping/MultisampleMappingTrait.scala rename to mapping/src/main/scala/nl/lumc/sasc/biopet/pipelines/mapping/MultisampleMapping.scala index f0d3c7313cef6f247ede75d1d2eab235f1d3bb7d..306152341be07d1e22aba08b7eacc977f7365435 100644 --- a/mapping/src/main/scala/nl/lumc/sasc/biopet/pipelines/mapping/MultisampleMappingTrait.scala +++ b/mapping/src/main/scala/nl/lumc/sasc/biopet/pipelines/mapping/MultisampleMapping.scala @@ -43,7 +43,7 @@ trait MultisampleMappingTrait extends MultiSampleQScript /** With this method the merge strategy for libraries to samples is defined. This can be overriden to fix the merge strategy. */ def mergeStrategy: MergeStrategy.Value = { val value: String = config("merge_strategy", default = "preprocessmarkduplicates") - MergeStrategy.values.find(_.toString.toLowerCase == value) match { + MergeStrategy.values.find(_.toString.toLowerCase == value.toLowerCase) match { case Some(v) => v case _ => throw new IllegalArgumentException(s"merge_strategy '$value' does not exist") } @@ -151,10 +151,9 @@ trait MultisampleMappingTrait extends MultiSampleQScript try { header.getSequenceDictionary.assertSameDictionary(referenceFile.getSequenceDictionary) } catch { - case e: AssertionError => { + case e: AssertionError => logger.error(e.getMessage) oke = false - } } oke } @@ -172,8 +171,7 @@ trait MultisampleMappingTrait extends MultiSampleQScript "Sample readgroup and/or library of input bamfile is not correct, file: " + bamFile + "\nPlease note that it is possible to set 'correct_readgroups' to true in the config to automatic fix this") if (!dictOke) Logging.addError( - "Sequence dictionary in the bam file is not the same as the reference, file: " + bamFile + - "\nPlease note that it is possible to set 'correct_dict' to true in the config to automatic fix this") + "Sequence dictionary in the bam file is not the same as the reference, file: " + bamFile) if (!readGroupOke && correctReadgroups) { logger.info("Correcting readgroups, file:" + inputBam.get) diff --git a/mapping/src/test/resources/empty.sam b/mapping/src/test/resources/empty.sam new file mode 100644 index 0000000000000000000000000000000000000000..26ac25ee2cd79105b11d4896ea684edcb89f8c41 --- /dev/null +++ b/mapping/src/test/resources/empty.sam @@ -0,0 +1,4 @@ +@HD VN:1.5 SO:coordinate +@SQ SN:chr1 LN:9 UR:file:/home/pjvan_thof/pipelines/biopet/public/mapping/src/test/resources/ref.fa M5:fe15dbbd0900310caf32827f6da57550 +@RG ID:001 SM:sample3 LB:lib1 +r02 0 chr1 210 60 10M * 0 0 TACGTACGTA EEFFGGHHII RG:Z:001 diff --git a/mapping/src/test/scala/nl/lumc/sasc/biopet/pipelines/mapping/MappingTest.scala b/mapping/src/test/scala/nl/lumc/sasc/biopet/pipelines/mapping/MappingTest.scala index 7b8f289df558dfa2667fd44cbdcfc0b3874926b6..cc2ba1b9e76a2bb2d460e46c0adbd953af44db9f 100644 --- a/mapping/src/test/scala/nl/lumc/sasc/biopet/pipelines/mapping/MappingTest.scala +++ b/mapping/src/test/scala/nl/lumc/sasc/biopet/pipelines/mapping/MappingTest.scala @@ -18,6 +18,7 @@ package nl.lumc.sasc.biopet.pipelines.mapping import java.io.{ File, FileOutputStream } import com.google.common.io.Files +import nl.lumc.sasc.biopet.extensions.kraken.Kraken import nl.lumc.sasc.biopet.pipelines.flexiprep.Fastqc import nl.lumc.sasc.biopet.utils.ConfigUtils import nl.lumc.sasc.biopet.utils.config.Config @@ -25,7 +26,7 @@ import org.apache.commons.io.FileUtils import org.broadinstitute.gatk.queue.QSettings import org.scalatest.Matchers import org.scalatest.testng.TestNGSuite -import org.testng.annotations.{ BeforeClass, AfterClass, DataProvider, Test } +import org.testng.annotations.{ AfterClass, BeforeClass, DataProvider, Test } /** * Test class for [[Mapping]] @@ -42,14 +43,15 @@ abstract class AbstractTestMapping(val aligner: String) extends TestNGSuite with } } + def paired = Array(true, false) + def chunks = Array(1, 5) + def skipMarkDuplicates = Array(true, false) + def skipFlexipreps = Array(true, false) + def zipped = Array(true, false) + def unmappedToGears = false + @DataProvider(name = "mappingOptions") def mappingOptions = { - val paired = Array(true, false) - val chunks = Array(1, 5) - val skipMarkDuplicates = Array(true, false) - val skipFlexipreps = Array(true, false) - val zipped = Array(true, false) - for ( pair <- paired; chunk <- chunks; @@ -68,7 +70,8 @@ abstract class AbstractTestMapping(val aligner: String) extends TestNGSuite with "aligner" -> aligner, "number_chunks" -> chunks, "skip_markduplicates" -> skipMarkDuplicate, - "skip_flexiprep" -> skipFlexiprep + "skip_flexiprep" -> skipFlexiprep, + "unmapped_to_gears" -> unmappedToGears ), Map(executables.toSeq: _*)) val mapping: Mapping = initPipeline(map) @@ -85,6 +88,8 @@ abstract class AbstractTestMapping(val aligner: String) extends TestNGSuite with //Flexiprep mapping.functions.count(_.isInstanceOf[Fastqc]) shouldBe (if (skipFlexiprep) 0 else if (paired) 4 else 2) + + mapping.functions.count(_.isInstanceOf[Kraken]) shouldBe (if (unmappedToGears) 1 else 0) } val outputDir = Files.createTempDir() @@ -133,6 +138,8 @@ abstract class AbstractTestMapping(val aligner: String) extends TestNGSuite with "bowtie2" -> Map("exe" -> "test"), "stampy" -> Map("exe" -> "test", "genome" -> "test", "hash" -> "test"), "samtools" -> Map("exe" -> "test"), + "kraken" -> Map("exe" -> "test", "db" -> "test"), + "krakenreport" -> Map("exe" -> "test", "db" -> "test"), "md5sum" -> Map("exe" -> "test") ) @@ -151,3 +158,13 @@ class MappingBowtie2Test extends AbstractTestMapping("bowtie2") class MappingStampyTest extends AbstractTestMapping("stampy") class MappingGsnapTest extends AbstractTestMapping("gsnap") class MappingTophatTest extends AbstractTestMapping("tophat") + +class MappingGearsTest extends AbstractTestMapping("bwa-mem") { + override def unmappedToGears = true + + override def paired = Array(true) + override def chunks = Array(1) + override def skipMarkDuplicates = Array(true) + override def skipFlexipreps = Array(true) + override def zipped = Array(true) +} diff --git a/mapping/src/test/scala/nl/lumc/sasc/biopet/pipelines/mapping/MultisampleMappingTest.scala b/mapping/src/test/scala/nl/lumc/sasc/biopet/pipelines/mapping/MultisampleMappingTest.scala new file mode 100644 index 0000000000000000000000000000000000000000..beac59c9c68d1168a4a40408408e63378287b217 --- /dev/null +++ b/mapping/src/test/scala/nl/lumc/sasc/biopet/pipelines/mapping/MultisampleMappingTest.scala @@ -0,0 +1,226 @@ +package nl.lumc.sasc.biopet.pipelines.mapping + +import java.io.{ File, FileOutputStream } + +import com.google.common.io.Files +import nl.lumc.sasc.biopet.extensions.kraken.Kraken +import nl.lumc.sasc.biopet.extensions.picard.{ MarkDuplicates, MergeSamFiles } +import nl.lumc.sasc.biopet.utils.ConfigUtils +import nl.lumc.sasc.biopet.utils.config.Config +import org.broadinstitute.gatk.queue.QSettings +import org.scalatest.Matchers +import org.scalatest.testng.TestNGSuite +import org.testng.annotations.{ DataProvider, Test } + +/** + * Created by pjvanthof on 15/05/16. + */ +trait MultisampleMappingTestTrait extends TestNGSuite with Matchers { + def initPipeline(map: Map[String, Any]): MultisampleMapping = { + new MultisampleMapping() { + override def configNamespace = "multisamplemapping" + override def globalConfig = new Config(ConfigUtils.mergeMaps(map, MultisampleMappingTestTrait.config)) + qSettings = new QSettings + qSettings.runName = "test" + } + } + + def mergeStrategies = MultisampleMapping.MergeStrategy.values + def bamToFastq = false + def correctReadgroups = false + def unmappedToGears = false + def sample1 = Array(true, false) + def sample2 = Array(true, false) + def sample3 = false + def sample4 = false + + @DataProvider(name = "mappingOptions") + def mappingOptions = { + for ( + merge <- mergeStrategies.toArray; s1 <- sample1; s2 <- sample2 + ) yield Array(merge, s1, s2) + } + + @Test(dataProvider = "mappingOptions") + def testMultisampleMapping(merge: MultisampleMapping.MergeStrategy.Value, sample1: Boolean, sample2: Boolean): Unit = { + val map: Map[String, Any] = { + var m: Map[String, Any] = MultisampleMappingTestTrait.config + if (sample1) m = ConfigUtils.mergeMaps(MultisampleMappingTestTrait.sample1, m) + if (sample2) m = ConfigUtils.mergeMaps(MultisampleMappingTestTrait.sample2, m) + if (sample3) m = ConfigUtils.mergeMaps(MultisampleMappingTestTrait.sample3, m) + if (sample4) m = ConfigUtils.mergeMaps(MultisampleMappingTestTrait.sample4, m) + m ++ Map( + "merge_strategy" -> merge.toString, + "bam_to_fastq" -> bamToFastq, + "correct_readgroups" -> correctReadgroups, + "unmapped_to_gears" -> unmappedToGears + ) + } + + if (!sample1 && !sample2 && !sample3 && !sample4) { // When no samples + intercept[IllegalArgumentException] { + initPipeline(map).script() + } + } else if (sample4 && !bamToFastq && !correctReadgroups) { + intercept[IllegalStateException] { + initPipeline(map).script() + } + } else { + val pipeline = initPipeline(map) + pipeline.script() + + val numberFastqLibs = (if (sample1) 1 else 0) + (if (sample2) 2 else 0) + (if (sample3 && bamToFastq) 1 else 0) + (if (sample4 && bamToFastq) 1 else 0) + val numberSamples = (if (sample1) 1 else 0) + (if (sample2) 1 else 0) + + import MultisampleMapping.MergeStrategy + pipeline.functions.count(_.isInstanceOf[MarkDuplicates]) shouldBe (numberFastqLibs + + (if (sample2 && (merge == MergeStrategy.MarkDuplicates || merge == MergeStrategy.PreProcessMarkDuplicates)) 1 else 0)) + pipeline.functions.count(_.isInstanceOf[MergeSamFiles]) shouldBe ( + (if (sample2 && (merge == MergeStrategy.MergeSam || merge == MergeStrategy.PreProcessMergeSam)) 1 else 0)) + pipeline.samples.foreach { + case (sampleName, sample) => + if (merge == MergeStrategy.None) sample.bamFile shouldBe None + sample.summaryStats shouldBe Map() + sample.libraries.foreach { + case (libraryId, library) => + library.summaryStats shouldBe Map() + } + } + + pipeline.functions.count(_.isInstanceOf[Kraken]) shouldBe (if (unmappedToGears) (numberFastqLibs + numberSamples) else 0) + + pipeline.summarySettings.get("merge_strategy") shouldBe Some(merge.toString) + } + } +} + +class MultisampleMappingTest extends MultisampleMappingTestTrait { + override def sample1 = Array(true) +} + +class MultisampleMappingNoSamplesTest extends MultisampleMappingTestTrait { + override def sample1 = Array(false) + override def sample2 = Array(false) + override def mergeStrategies = MultisampleMapping.MergeStrategy.values.filter(_ == MultisampleMapping.MergeStrategy.PreProcessMarkDuplicates) +} + +class MultisampleMappingGearsTest extends MultisampleMappingTestTrait { + override def sample1 = Array(true) + override def sample2 = Array(false) + override def unmappedToGears = true + override def mergeStrategies = MultisampleMapping.MergeStrategy.values.filter(_ == MultisampleMapping.MergeStrategy.PreProcessMarkDuplicates) +} + +class MultisampleMappingBamTest extends MultisampleMappingTestTrait { + override def sample1 = Array(false) + override def sample2 = Array(false) + override def sample3 = true + override def mergeStrategies = MultisampleMapping.MergeStrategy.values.filter(_ == MultisampleMapping.MergeStrategy.PreProcessMarkDuplicates) +} + +class MultisampleMappingWrongBamTest extends MultisampleMappingTestTrait { + override def sample1 = Array(false) + override def sample2 = Array(false) + override def sample4 = true + override def mergeStrategies = MultisampleMapping.MergeStrategy.values.filter(_ == MultisampleMapping.MergeStrategy.PreProcessMarkDuplicates) +} + +class MultisampleMappingCorrectBamTest extends MultisampleMappingTestTrait { + override def sample1 = Array(false) + override def sample2 = Array(false) + override def correctReadgroups = true + override def sample4 = true + override def mergeStrategies = MultisampleMapping.MergeStrategy.values.filter(_ == MultisampleMapping.MergeStrategy.PreProcessMarkDuplicates) +} + +class MultisampleMappingBamToFastqTest extends MultisampleMappingTestTrait { + override def sample1 = Array(false) + override def sample2 = Array(false) + override def bamToFastq = true + override def sample3 = true + override def sample4 = true + override def mergeStrategies = MultisampleMapping.MergeStrategy.values.filter(_ == MultisampleMapping.MergeStrategy.PreProcessMarkDuplicates) +} + +object MultisampleMappingTestTrait { + val outputDir = Files.createTempDir() + outputDir.deleteOnExit() + new File(outputDir, "input").mkdirs() + def inputTouch(name: String): File = { + val file = new File(outputDir, "input" + File.separator + name).getAbsoluteFile + Files.touch(file) + file + } + + private def copyFile(name: String): Unit = { + val is = getClass.getResourceAsStream("/" + name) + val os = new FileOutputStream(new File(outputDir, name)) + org.apache.commons.io.IOUtils.copy(is, os) + os.close() + } + + copyFile("ref.fa") + copyFile("ref.dict") + copyFile("ref.fa.fai") + copyFile("empty.sam") + + val config = Map( + "name_prefix" -> "test", + "cache" -> true, + "dir" -> "test", + "vep_script" -> "test", + "output_dir" -> outputDir, + "reference_fasta" -> (outputDir + File.separator + "ref.fa"), + "fastqc" -> Map("exe" -> "test"), + "input_alleles" -> "test", + "fastqc" -> Map("exe" -> "test"), + "seqtk" -> Map("exe" -> "test"), + "sickle" -> Map("exe" -> "test"), + "cutadapt" -> Map("exe" -> "test"), + "bwa" -> Map("exe" -> "test"), + "samtools" -> Map("exe" -> "test"), + "igvtools" -> Map("exe" -> "test"), + "wigtobigwig" -> Map("exe" -> "test"), + "kraken" -> Map("exe" -> "test", "db" -> "test"), + "krakenreport" -> Map("exe" -> "test", "db" -> "test"), + "md5sum" -> Map("exe" -> "test") + ) + + val sample1 = Map( + "samples" -> Map("sample1" -> Map("libraries" -> Map( + "lib1" -> Map( + "R1" -> inputTouch("1_1_R1.fq"), + "R2" -> inputTouch("1_1_R2.fq") + ) + ) + ))) + + val sample2 = Map( + "samples" -> Map("sample3" -> Map("libraries" -> Map( + "lib1" -> Map( + "R1" -> inputTouch("2_1_R1.fq"), + "R2" -> inputTouch("2_1_R2.fq") + ), + "lib2" -> Map( + "R1" -> inputTouch("2_2_R1.fq"), + "R2" -> inputTouch("2_2_R2.fq") + ) + ) + ))) + + val sample3 = Map( + "samples" -> Map("sample3" -> Map("libraries" -> Map( + "lib1" -> Map( + "bam" -> (outputDir + File.separator + "empty.sam") + ) + ) + ))) + + val sample4 = Map( + "samples" -> Map("sample4" -> Map("libraries" -> Map( + "lib1" -> Map( + "bam" -> (outputDir + File.separator + "empty.sam") + ) + ) + ))) +} diff --git a/shiva/src/main/scala/nl/lumc/sasc/biopet/pipelines/shiva/ShivaVariantcalling.scala b/shiva/src/main/scala/nl/lumc/sasc/biopet/pipelines/shiva/ShivaVariantcalling.scala index 4f84d061198ee9449811cd414c72e661ee1e501b..d99948e4b61abe97d085410c26c6aeda2c379136 100644 --- a/shiva/src/main/scala/nl/lumc/sasc/biopet/pipelines/shiva/ShivaVariantcalling.scala +++ b/shiva/src/main/scala/nl/lumc/sasc/biopet/pipelines/shiva/ShivaVariantcalling.scala @@ -179,8 +179,8 @@ class ShivaVariantcalling(val root: Configurable) extends QScript /** Settings for the summary */ def summarySettings = Map( "variantcallers" -> configCallers.toList, - "regions_of_interest" -> roiBedFiles.map(_.getName.stripSuffix(".bed")), - "amplicon_bed" -> ampliconBedFile.map(_.getName.stripSuffix(".bed")) + "regions_of_interest" -> roiBedFiles.map(_.getName), + "amplicon_bed" -> ampliconBedFile.map(_.getAbsolutePath) ) /** Files for the summary */ diff --git a/shiva/src/test/scala/nl/lumc/sasc/biopet/pipelines/shiva/ShivaVariantcallingTest.scala b/shiva/src/test/scala/nl/lumc/sasc/biopet/pipelines/shiva/ShivaVariantcallingTest.scala index 8c9dcb1e5496d3e43792bcc83d56644396eaeee6..2904d79a6f8abb6890dc5597c318464b57ec79d3 100644 --- a/shiva/src/test/scala/nl/lumc/sasc/biopet/pipelines/shiva/ShivaVariantcallingTest.scala +++ b/shiva/src/test/scala/nl/lumc/sasc/biopet/pipelines/shiva/ShivaVariantcallingTest.scala @@ -11,9 +11,10 @@ import com.google.common.io.Files import nl.lumc.sasc.biopet.core.BiopetPipe import nl.lumc.sasc.biopet.extensions.Freebayes import nl.lumc.sasc.biopet.extensions.bcftools.{ BcftoolsCall, BcftoolsMerge } -import nl.lumc.sasc.biopet.extensions.gatk.{ CombineVariants, HaplotypeCaller, UnifiedGenotyper } +import nl.lumc.sasc.biopet.extensions.gatk.{ CombineVariants, GenotypeConcordance, HaplotypeCaller, UnifiedGenotyper } import nl.lumc.sasc.biopet.utils.config.Config import nl.lumc.sasc.biopet.extensions.tools.{ MpileupToVcf, VcfFilter, VcfStats } +import nl.lumc.sasc.biopet.extensions.vt.{ VtDecompose, VtNormalize } import nl.lumc.sasc.biopet.utils.ConfigUtils import org.broadinstitute.gatk.queue.QSettings import org.scalatest.Matchers @@ -47,6 +48,12 @@ trait ShivaVariantcallingTestTrait extends TestNGSuite with Matchers { def haplotypeCaller: Boolean = false def freebayes: Boolean = false def varscanCnsSinglesample: Boolean = false + def referenceVcf: Option[File] = None + def roiBedFiles: List[File] = Nil + def ampliconBedFile: Option[File] = None + + def normalize = false + def decompose = false @DataProvider(name = "shivaVariantcallingOptions") def shivaVariantcallingOptions = { @@ -79,7 +86,12 @@ trait ShivaVariantcallingTestTrait extends TestNGSuite with Matchers { if (haplotypeCaller) callers.append("haplotypecaller") if (freebayes) callers.append("freebayes") if (varscanCnsSinglesample) callers.append("varscan_cns_singlesample") - val map = Map("variantcallers" -> callers.toList) + val map = Map( + "variantcallers" -> callers.toList, + "execute_vt_normalize" -> normalize, + "execute_vt_decompose" -> decompose, + "regions_of_interest" -> roiBedFiles.map(_.getAbsolutePath) + ) ++ referenceVcf.map("reference_vcf" -> _) ++ ampliconBedFile.map("amplicon_bed" -> _.getAbsolutePath) val pipeline = initPipeline(map) pipeline.inputBams = (for (n <- 1 to bams) yield n.toString -> ShivaVariantcallingTest.inputTouch("bam_" + n + ".bam")).toMap @@ -105,7 +117,14 @@ trait ShivaVariantcallingTestTrait extends TestNGSuite with Matchers { (if (haplotypeCallerAllele) 1 else 0) + (if (haplotypeCallerGvcf) bams else 0) pipeline.functions.count(_.isInstanceOf[UnifiedGenotyper]) shouldBe (if (unifiedGenotyper) 1 else 0) + (if (unifiedGenotyperAllele) 1 else 0) - pipeline.functions.count(_.isInstanceOf[VcfStats]) shouldBe (1 + callers.size) + pipeline.functions.count(_.isInstanceOf[VcfStats]) shouldBe (1 + callers.size + (roiBedFiles ++ ampliconBedFile).length * (1 + callers.size)) + pipeline.functions.count(_.isInstanceOf[VtNormalize]) shouldBe (if (normalize) callers.size else 0) + pipeline.functions.count(_.isInstanceOf[VtDecompose]) shouldBe (if (decompose) callers.size else 0) + pipeline.functions.count(_.isInstanceOf[GenotypeConcordance]) shouldBe (if (referenceVcf.isDefined) 1 + callers.size else 0) + + pipeline.summarySettings.get("variantcallers").map(_.asInstanceOf[List[String]].toSet) shouldBe Some(callers.toSet) + pipeline.summarySettings.get("amplicon_bed") shouldBe Some(ampliconBedFile.map(_.getAbsolutePath)) + pipeline.summarySettings.get("regions_of_interest") shouldBe Some(roiBedFiles.map(_.getAbsolutePath)) } } } @@ -153,6 +172,27 @@ class ShivaVariantcallingFreebayesTest extends ShivaVariantcallingTestTrait { class ShivaVariantcallingVarscanCnsSinglesampleTest extends ShivaVariantcallingTestTrait { override def varscanCnsSinglesample: Boolean = true } +class ShivaVariantcallingNormalizeTest extends ShivaVariantcallingTestTrait { + override def unifiedGenotyper: Boolean = true + override def normalize = true +} +class ShivaVariantcallingDecomposeTest extends ShivaVariantcallingTestTrait { + override def unifiedGenotyper: Boolean = true + override def decompose = true +} +class ShivaVariantcallingNormalizeDecomposeTest extends ShivaVariantcallingTestTrait { + override def unifiedGenotyper: Boolean = true + override def normalize = true + override def decompose = true +} +class ShivaVariantcallingReferenceVcfTest extends ShivaVariantcallingTestTrait { + override def unifiedGenotyper: Boolean = true + override def referenceVcf = Some(new File("ref.vcf")) +} +class ShivaVariantcallingAmpliconTest extends ShivaVariantcallingTestTrait { + override def unifiedGenotyper: Boolean = true + override def ampliconBedFile = Some(new File("amplicon.bed")) +} object ShivaVariantcallingTest { val outputDir = Files.createTempDir() @@ -189,6 +229,7 @@ object ShivaVariantcallingTest { "bgzip" -> Map("exe" -> "test"), "tabix" -> Map("exe" -> "test"), "input_alleles" -> "test.vcf.gz", - "varscan_jar" -> "test" + "varscan_jar" -> "test", + "vt" -> Map("exe" -> "test") ) } \ No newline at end of file