diff --git a/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/Cnmops.scala b/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/Cnmops.scala index 973e650774c8beec4a87a1c5f4459fefac1c133d..619ba7f9dcd2f8fed2cbb7c5611a23321229c42a 100644 --- a/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/Cnmops.scala +++ b/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/Cnmops.scala @@ -43,28 +43,34 @@ class Cnmops(val root: Configurable) extends RscriptCommandLineFunction { // output files, computed automatically from output directory @Output(doc = "Output CNV file") lazy val outputCnv: File = { - require(!outputDir.isEmpty, "Unexpected error when trying to set cn.MOPS CNV output") - new File(outputDir, "cnv.txt") + outputDir match { + case Some(dir) if dir.exists => new File(dir, "cnv.txt") + case _ => throw new IllegalArgumentException("Unexpected error when trying to set cn.MOPS CNV output") + } } @Output(doc = "Output CNR file") lazy val outputCnr: File = { - require(!outputDir.isEmpty, "Unexpected error when trying to set cn.MOPS CNR output") - new File(outputDir, "cnr.txt") + outputDir match { + case Some(dir) if dir.exists => new File(dir, "cnr.txt") + case _ => throw new IllegalArgumentException("Unexpected error when trying to set cn.MOPS CNR output") + } } @Output(doc = "Raw output") lazy val rawOutput: File = { - require(!outputDir.isEmpty, "Unexpected error when trying to set cn.MOPS raw output") - new File(outputDir, "rawoutput.txt") + outputDir match { + case Some(dir) if dir.exists => new File(dir, "rawoutput.txt") + case _ => throw new IllegalArgumentException("Unexpected error when trying to set cn.MOPS raw output") + } } /** write all output files to this directory [./] */ - var outputDir: String = _ + var outputDir: Option[File] = None override def beforeGraph = { super.beforeGraph - require(!outputDir.isEmpty, "Outputdir for cn.MOPS should not be empty") + require(outputDir.isDefined, "Outputdir for cn.MOPS should not be empty") require(input.length >= 2, "Please supply at least 2 BAM files for cn.MOPS") } diff --git a/kopisu/src/main/scala/nl/lumc/sasc/biopet/pipelines/kopisu/methods/CnmopsMethod.scala b/kopisu/src/main/scala/nl/lumc/sasc/biopet/pipelines/kopisu/methods/CnmopsMethod.scala index 3fab9544023ec3ba9ba452cc6a804beda88e4f2d..d3cf28866ad527696a1ff2a4b1f7bcbec248a74f 100644 --- a/kopisu/src/main/scala/nl/lumc/sasc/biopet/pipelines/kopisu/methods/CnmopsMethod.scala +++ b/kopisu/src/main/scala/nl/lumc/sasc/biopet/pipelines/kopisu/methods/CnmopsMethod.scala @@ -27,7 +27,7 @@ class CnmopsMethod(val root: Configurable) extends CnvMethod { case (sampleName, bamFile) => Some(bamFile) case _ => None }.toList - cnmops.outputDir = new File(outputDir, contig.getSequenceName).getAbsolutePath + cnmops.outputDir = Some(new File(outputDir, contig.getSequenceName)) cnmops.beforeGraph cnmops }).toList