From 5d39aa90b847129fea7be0c92cb6af1a2716382f Mon Sep 17 00:00:00 2001 From: Sander Bollen <a.h.b.bollen@lumc.nl> Date: Wed, 12 Oct 2016 13:21:28 +0200 Subject: [PATCH] use Option[File] for output dir in stead of String --- .../lumc/sasc/biopet/extensions/Cnmops.scala | 22 ++++++++++++------- .../kopisu/methods/CnmopsMethod.scala | 2 +- 2 files changed, 15 insertions(+), 9 deletions(-) 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 973e65077..619ba7f9d 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 3fab95440..d3cf28866 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 -- GitLab