diff --git a/bammetrics/src/main/scala/nl/lumc/sasc/biopet/pipelines/bammetrics/BamMetrics.scala b/bammetrics/src/main/scala/nl/lumc/sasc/biopet/pipelines/bammetrics/BamMetrics.scala index 78bf5f309f77ea2916715a0681640b4d1400cd72..67240e7ed0dc80ac33eee75c9fb0c8f25ba0f6f4 100644 --- a/bammetrics/src/main/scala/nl/lumc/sasc/biopet/pipelines/bammetrics/BamMetrics.scala +++ b/bammetrics/src/main/scala/nl/lumc/sasc/biopet/pipelines/bammetrics/BamMetrics.scala @@ -17,15 +17,16 @@ package nl.lumc.sasc.biopet.pipelines.bammetrics import java.io.File -import nl.lumc.sasc.biopet.core.annotations.{ RibosomalRefFlat, AnnotationRefFlat } +import nl.lumc.sasc.biopet.core.annotations.{ AnnotationRefFlat, RibosomalRefFlat } import nl.lumc.sasc.biopet.utils.config.Configurable import nl.lumc.sasc.biopet.core.summary.SummaryQScript -import nl.lumc.sasc.biopet.core.{ Reference, BiopetFifoPipe, PipelineCommand, SampleLibraryTag } +import nl.lumc.sasc.biopet.core.{ BiopetFifoPipe, PipelineCommand, Reference, SampleLibraryTag } import nl.lumc.sasc.biopet.extensions.bedtools.{ BedtoolsCoverage, BedtoolsIntersect } import nl.lumc.sasc.biopet.extensions.picard._ import nl.lumc.sasc.biopet.extensions.samtools.SamtoolsFlagstat import nl.lumc.sasc.biopet.pipelines.bammetrics.scripts.CoverageStats import nl.lumc.sasc.biopet.extensions.tools.BiopetFlagstat +import nl.lumc.sasc.biopet.utils.intervals.BedCheck import org.broadinstitute.gatk.queue.QScript class BamMetrics(val root: Configurable) extends QScript @@ -72,6 +73,8 @@ class BamMetrics(val root: Configurable) extends QScript /** executed before script */ def init(): Unit = { inputFiles :+= new InputFile(inputBam) + ampliconBedFile.foreach(BedCheck.checkBedFileToReference(_, referenceFasta(), biopetError = true)) + roiBedFiles.foreach(BedCheck.checkBedFileToReference(_, referenceFasta(), biopetError = true)) } /** Script to add jobs */ diff --git a/bammetrics/src/test/scala/nl/lumc/sasc/biopet/pipelines/bammetrics/BamMetricsTest.scala b/bammetrics/src/test/scala/nl/lumc/sasc/biopet/pipelines/bammetrics/BamMetricsTest.scala index 4a75d99e00d3a21324c8d5459d891e6435691185..6da49168e2166189dd05fb481ded00ccff66b43a 100644 --- a/bammetrics/src/test/scala/nl/lumc/sasc/biopet/pipelines/bammetrics/BamMetricsTest.scala +++ b/bammetrics/src/test/scala/nl/lumc/sasc/biopet/pipelines/bammetrics/BamMetricsTest.scala @@ -61,9 +61,9 @@ class BamMetricsTest extends TestNGSuite with Matchers { def testBamMetrics(rois: Int, amplicon: Boolean, rna: Boolean, wgs: Boolean) = { val map = ConfigUtils.mergeMaps(Map("output_dir" -> BamMetricsTest.outputDir, "rna_metrics" -> rna, "wgs_metrics" -> wgs), Map(BamMetricsTest.executables.toSeq: _*)) ++ - (if (amplicon) Map("amplicon_bed" -> "amplicon.bed") else Map()) ++ + (if (amplicon) Map("amplicon_bed" -> BamMetricsTest.ampliconBed.getAbsolutePath) else Map()) ++ (if (rna) Map("annotation_refflat" -> "transcripts.refFlat") else Map()) ++ - Map("regions_of_interest" -> (1 to rois).map("roi_" + _ + ".bed").toList) + Map("regions_of_interest" -> (1 to rois).map(BamMetricsTest.roi(_).getAbsolutePath).toList) val bammetrics: BamMetrics = initPipeline(map) bammetrics.inputBam = BamMetricsTest.bam @@ -94,6 +94,14 @@ object BamMetricsTest { val bam = new File(outputDir, "input" + File.separator + "bla.bam") Files.touch(bam) + val ampliconBed = new File(outputDir, "input" + File.separator + "amplicon_bed.bed") + Files.touch(ampliconBed) + + def roi(i: Int): File = { + val roi = new File(outputDir, "input" + File.separator + s"roi${i}.bed") + Files.touch(roi) + roi + } private def copyFile(name: String): Unit = { val is = getClass.getResourceAsStream("/" + name) diff --git a/biopet-core/src/main/scala/nl/lumc/sasc/biopet/core/BiopetFifoPipe.scala b/biopet-core/src/main/scala/nl/lumc/sasc/biopet/core/BiopetFifoPipe.scala index 16626532ce11401652fef73d9320b689a8dc138d..8c044f719aa4516f519705ee37476ff7c0c7c4b9 100644 --- a/biopet-core/src/main/scala/nl/lumc/sasc/biopet/core/BiopetFifoPipe.scala +++ b/biopet-core/src/main/scala/nl/lumc/sasc/biopet/core/BiopetFifoPipe.scala @@ -73,6 +73,8 @@ class BiopetFifoPipe(val root: Configurable, _pipesJobs :::= commands _pipesJobs = _pipesJobs.distinct + + analysisName = commands.map(_.analysisName).mkString("_") } override def beforeCmd(): Unit = { 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 43af927eb622b8831a1a0343b9eecb761de433d8..8365cc946ef6395409744f612eec2d9e3b6b52af 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 sys.exit(1) + 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 5eedb3db7c718a6b5293fab25bff182c629e3909..e80887e8edcb5e8f2c73cfa268964fb39cf326c8 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 sys.exit(1) + 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 0add274bfbc477ab771466f9b4b5cdfc2024a1f1..6bba497ca162ca63574fb99f048cba119f9e9cf6 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,10 +53,7 @@ object BaseCounter extends ToolCommand { def main(args: Array[String]): Unit = { val argsParser = new OptParser - val cmdArgs: Args = argsParser.parse(args, Args()) match { - case Some(x) => x - case _ => 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 2ad247900d7a1537e93c3f20b039cf1962d1fa42..100209b1d266bd326c91c543631a8b4dfd78c10d 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 sys.exit(1) + 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 f9646c4c9ebe7473e5ccb39e833d8ae87176b84a..b82b7b74286258ac5bdd11a796c1924bd1c3d4af 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 sys.exit(1) + 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 b9ef718165ff3a7f2b67853c83c3e7d0fbbbe297..40ad0b93b3ad8404382be17ff8fa862851db961a 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 sys.exit(1) + 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 4d98bda24b5c4eb1072cd5d1739efbf242d4a1bf..51f1c1cbecba4e079534eaa380f8be072950c3d1 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 sys.exit(1) + 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 141633c5358a21c931555d5efbd18c615b7c6f77..fccebd08aa15ea28c90f6b64af57e196e6091e55 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 sys.exit(1) + 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/ExtractAlignedFastq.scala b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/ExtractAlignedFastq.scala index b02074875b2e27021e123139da7ef42d1bce8700..622c4a9c4cc9807e67a15719561d94eba3970355 100644 --- a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/ExtractAlignedFastq.scala +++ b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/ExtractAlignedFastq.scala @@ -242,7 +242,7 @@ object ExtractAlignedFastq extends ToolCommand { def parseArgs(args: Array[String]): Args = new OptParser() .parse(args, Args()) - .getOrElse(sys.exit(1)) + .getOrElse(throw new IllegalArgumentException) def main(args: Array[String]): Unit = { 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 46a4abd0cac604dedc239845565f5d1acdd85b72..f0214b3392255f2c4e81de571c35a152343a86d5 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 sys.exit(1) + 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/FastqSync.scala b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/FastqSync.scala index e56393b38eb62499c39469b452baefc818812e28..7b364d1ffb36ab8879236d125196119813cbadb8 100644 --- a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/FastqSync.scala +++ b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/FastqSync.scala @@ -151,7 +151,7 @@ object FastqSync extends ToolCommand { */ def parseArgs(args: Array[String]): Args = new OptParser() .parse(args, Args()) - .getOrElse(sys.exit(1)) + .getOrElse(throw new IllegalArgumentException) def main(args: Array[String]): Unit = { 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 f752e3be6863928122bf233b9b911b2d50b8a432..92c8782a75707b646e9cc10e3a97f822a2f53ae0 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 sys.exit(1) + 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 e9b24a378eef5b06a0a1e10832943b07852985c1..fcb302c3c7b9e551d9a7190d14c4d9f29ce48478 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 sys.exit(1) + 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/KrakenReportToJson.scala b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/KrakenReportToJson.scala index ee59a22aaab5a1b21ad8565a74f41d432cde096b..ce47b649de633d0db2cdf497421c972d43fe32bb 100644 --- a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/KrakenReportToJson.scala +++ b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/KrakenReportToJson.scala @@ -90,7 +90,7 @@ object KrakenReportToJson extends ToolCommand { */ def parseArgs(args: Array[String]): Args = new OptParser() .parse(args, Args()) - .getOrElse(sys.exit(1)) + .getOrElse(throw new IllegalArgumentException) /** * Takes a line from the kraken report, converts into Map with taxonID and 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 02f4b4709398e244a40ba13139993d2230d54fd3..8187064d10ddbfda5a4642a821b30b23e56bfbe4 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 sys.exit(1) + 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 15b76aa44063bbeeb3f79606225d88b0d4666ed3..f853d66a5018559569a02b5ded85a04e19d57711 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 sys.exit(1) + 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/MergeTables.scala b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/MergeTables.scala index 426043c4b92ff49a1f987c418658ffd4180ba702..07de8a2b895e9c6b079087dae3844a084b5380a3 100644 --- a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/MergeTables.scala +++ b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/MergeTables.scala @@ -188,7 +188,7 @@ object MergeTables extends ToolCommand { /** Parses the command line argument */ def parseArgs(args: Array[String]): Args = new OptParser() .parse(args, Args()) - .getOrElse(sys.exit(1)) + .getOrElse(throw new IllegalArgumentException) /** Transforms the input file seq into a seq of [[InputTable]] objects */ def prepInput(inFiles: Seq[File], ext: String, columnNames: Option[Seq[String]]): Seq[InputTable] = { 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 91761c1965510f240af328bb54f4408d6388a75b..df159c33dd4c05af042ea8f6cfc5a1735cac6013 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 sys.exit(1) + 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 a5040a24f735e88d0c0877b7e2e0923c1e5de2c8..6be7f11fb878af4e6679f661327f9b85cc3ab4a3 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 sys.exit(1) + 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 bdfb0be7f8e51495fed176ac7ab386104a04948e..4af0fc390709c0e7e5ac7f3fc7e3fdeb0c48e8a1 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 sys.exit(1) + 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 e559f22216b5f08fd625b24931251694733a81c4..0ea5fcc73ff7f1c5caed520ce8360d1d2c1dd820 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 sys.exit(1) + 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 f5ffa5e5a43e63c95d6610ca9e58c1170ae44369..71dfbbacb788829a98821e00fe51d28f47830423 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 sys.exit(1) + 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 9ff037eae73d81cd39345d6028e903af220ae35c..2ae201ea18512c2f3ee5a6b7c05efad3015b3cba 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 sys.exit(1) + 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 d9b1d25fd67b51b76e52d62bca776dd3773417e4..4d1f2b82d865cbed58ee329c6f985646df6ed5e3 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 sys.exit(1) + 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/SeqStat.scala b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/SeqStat.scala index fe59522374391b9ed5af74df61ed34d58db15339..3c39667cbff6ce005b9e45d411c410cd3bed4eae 100644 --- a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/SeqStat.scala +++ b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/SeqStat.scala @@ -76,7 +76,7 @@ object SeqStat extends ToolCommand { */ def parseArgs(args: Array[String]): Args = new OptParser() .parse(args, Args()) - .getOrElse(sys.exit(1)) + .getOrElse(throw new IllegalArgumentException) /** * 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 0941da9e512949c19ebcd10991d29ad56d30ca85..413d335ab01b3897e7d4a2eff2205923cd06fc6b 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 sys.exit(1) + 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 9c4629bd45d0111657f871e9587ed09faa6dd611..084a8cf693a0dbb9fd9708dd624df60c3c2629ed 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 sys.exit(1) + 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 b2e1aeb9651cc9690ad7926ecb76f4f4a5627d8c..975a6dbd13e4741e93a1709f8f02e01283f216b1 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 sys.exit(1) + 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 cffe91f625699a517d0a7b07a60cd171d805917f..3897c3c9e577e9bb81e0075ba3729b8aa52d7ce3 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 sys.exit(1) + 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 62b04375f630ab59fea18d9c1d974bdf038cb767..677b4d739621f718b0d4c1d1f9f5531ca465ee7f 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 sys.exit(1) + 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 20a15dacacba466b41235f32e77062179ad5f0a4..a86eb7c630f4a605c9f4c96a56f8c8e2ea7e89e0 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 sys.exit(1) + 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/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/VepNormalizer.scala b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/VepNormalizer.scala index 89d87c2825ee2b730d698deea8b6e3cad5a1dd27..feee8e280c1a9314da92dd183e6d23560395228a 100644 --- a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/VepNormalizer.scala +++ b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/VepNormalizer.scala @@ -39,7 +39,7 @@ object VepNormalizer extends ToolCommand { def main(args: Array[String]): Unit = { val commandArgs: Args = new OptParser() .parse(args, Args()) - .getOrElse(sys.exit(1)) + .getOrElse(throw new IllegalArgumentException) val input = commandArgs.inputVCF val output = commandArgs.outputVCF diff --git a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/WipeReads.scala b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/WipeReads.scala index 082ad2626b1667d4438857b64f6579cfc725f4af..882cb649df599b4ef492a9653dd7f1cb99c58cb9 100644 --- a/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/WipeReads.scala +++ b/biopet-tools/src/main/scala/nl/lumc/sasc/biopet/tools/WipeReads.scala @@ -399,7 +399,7 @@ object WipeReads extends ToolCommand { /** Parses the command line argument */ def parseArgs(args: Array[String]): Args = new OptParser() .parse(args, Args()) - .getOrElse(sys.exit(1)) + .getOrElse(throw new IllegalArgumentException) def main(args: Array[String]): Unit = { diff --git a/biopet-utils/src/main/scala/nl/lumc/sasc/biopet/utils/intervals/BedCheck.scala b/biopet-utils/src/main/scala/nl/lumc/sasc/biopet/utils/intervals/BedCheck.scala new file mode 100644 index 0000000000000000000000000000000000000000..c432fbab3c20a28ed6f3dc7f759b07feb248e03e --- /dev/null +++ b/biopet-utils/src/main/scala/nl/lumc/sasc/biopet/utils/intervals/BedCheck.scala @@ -0,0 +1,27 @@ +package nl.lumc.sasc.biopet.utils.intervals + +import java.io.File +import scala.collection.mutable.Set + +import nl.lumc.sasc.biopet.utils.Logging + +/** + * Created by pjvanthof on 14/05/16. + */ +object BedCheck { + private val cache: Set[(File, File)] = Set() + + def checkBedFileToReference(bedFile: File, reference: File, biopetError: Boolean = false, ignoreCache: Boolean = false): Unit = { + if (ignoreCache || !cache.contains((bedFile, reference))) { + cache.add((bedFile, reference)) + val bedrecords = BedRecordList.fromFile(bedFile) + if (biopetError) { + try { + bedrecords.validateContigs(reference) + } catch { + case e: IllegalArgumentException => Logging.addError(e.getMessage + s", Bedfile: $bedFile") + } + } else bedrecords.validateContigs(reference) + } + } +}