diff --git a/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/picard/CollectMultipleMetrics.scala b/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/picard/CollectMultipleMetrics.scala index 1dba561d044f5a66d8a762054861b1f3e8f16bd9..9ea2f61f23afef28d870cf80416e12fdb8df66d2 100644 --- a/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/picard/CollectMultipleMetrics.scala +++ b/biopet-extensions/src/main/scala/nl/lumc/sasc/biopet/extensions/picard/CollectMultipleMetrics.scala @@ -87,30 +87,31 @@ class CollectMultipleMetrics(val root: Configurable) extends Picard with Summari repeat("PROGRAM=", program, spaceSeparated = false) override def addToQscriptSummary(qscript: SummaryQScript, name: String): Unit = { - program.foreach(p => { - val stats: Any = p match { - case _ if p == Programs.CollectAlignmentSummaryMetrics.toString => - Picard.getMetrics(new File(outputName + ".alignment_summary_metrics"), groupBy = Some("CATEGORY")) - case _ if p == Programs.CollectInsertSizeMetrics.toString => - Map( - "metrics" -> Picard.getMetrics(new File(outputName + ".insert_size_metrics")), - "histogram" -> Picard.getHistogram(new File(outputName + ".insert_size_metrics")) - ) - case _ if p == Programs.QualityScoreDistribution.toString => - Picard.getHistogram(new File(outputName + ".quality_distribution_metrics")) - case _ if p == Programs.MeanQualityByCycle.toString => - Picard.getHistogram(new File(outputName + ".quality_by_cycle_metrics")) - case _ if p == Programs.CollectBaseDistributionByCycle.toString => - Picard.getHistogram(new File(outputName + ".base_distribution_by_cycle_metrics"), tag = "METRICS CLASS") - case _ => None + program + .filterNot(_ == Programs.CollectInsertSizeMetrics.toString && !new File(outputName + ".insert_size_metrics").exists()) + .foreach { p => + val stats: Any = p match { + case _ if p == Programs.CollectAlignmentSummaryMetrics.toString => + Picard.getMetrics(new File(outputName + ".alignment_summary_metrics"), groupBy = Some("CATEGORY")) + case _ if p == Programs.CollectInsertSizeMetrics.toString => + Map( + "metrics" -> Picard.getMetrics(new File(outputName + ".insert_size_metrics")), + "histogram" -> Picard.getHistogram(new File(outputName + ".insert_size_metrics")) + ) + case _ if p == Programs.QualityScoreDistribution.toString => + Picard.getHistogram(new File(outputName + ".quality_distribution_metrics")) + case _ if p == Programs.MeanQualityByCycle.toString => + Picard.getHistogram(new File(outputName + ".quality_by_cycle_metrics")) + case _ if p == Programs.CollectBaseDistributionByCycle.toString => + Picard.getHistogram(new File(outputName + ".base_distribution_by_cycle_metrics"), tag = "METRICS CLASS") + case _ => None + } + val sum = new Summarizable { + override def summaryStats = stats + override def summaryFiles: Map[String, File] = Map() + } + qscript.addSummarizable(sum, p) } - val sum = new Summarizable { - override def summaryStats = stats - override def summaryFiles: Map[String, File] = Map() - } - qscript.addSummarizable(sum, p) - }) - } def summaryStats = Map()