From 2c06b8af4e05e0c1c184fdfee631745c4c0def9f Mon Sep 17 00:00:00 2001 From: Nils Homer Date: Tue, 7 Feb 2017 10:23:54 -0700 Subject: [PATCH] Allow an optional file extension for CollectIlluminaLaneMetrics. --- .../picard/illumina/CollectIlluminaLaneMetrics.java | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/main/java/picard/illumina/CollectIlluminaLaneMetrics.java b/src/main/java/picard/illumina/CollectIlluminaLaneMetrics.java index 1ea0e7bad..913180c63 100644 --- a/src/main/java/picard/illumina/CollectIlluminaLaneMetrics.java +++ b/src/main/java/picard/illumina/CollectIlluminaLaneMetrics.java @@ -88,6 +88,9 @@ @Option(doc = ReadStructure.PARAMETER_DOC + "\nIf not given, will use the RunInfo.xml in the run directory.", shortName = "RS", optional = true) public ReadStructure READ_STRUCTURE; + @Option(shortName = "EXT", doc="Append the given file extension to all metric file names (ex. OUTPUT.illumina_lane_metrics.EXT). None if null", optional=true) + public String FILE_EXTENSION = null; + @Override protected int doWork() { final MetricsFile> laneMetricsFile = this.getMetricsFile(); @@ -115,7 +118,7 @@ protected int doWork() { } } - IlluminaLaneMetricsCollector.collectLaneMetrics(RUN_DIRECTORY, OUTPUT_DIRECTORY, OUTPUT_PREFIX, laneMetricsFile, phasingMetricsFile, READ_STRUCTURE); + IlluminaLaneMetricsCollector.collectLaneMetrics(RUN_DIRECTORY, OUTPUT_DIRECTORY, OUTPUT_PREFIX, laneMetricsFile, phasingMetricsFile, READ_STRUCTURE, FILE_EXTENSION == null ? "" : FILE_EXTENSION); return 0; } @@ -146,22 +149,24 @@ public static void main(final String[] args) { public static void collectLaneMetrics(final File runDirectory, final File outputDirectory, final String outputPrefix, final MetricsFile> laneMetricsFile, final MetricsFile> phasingMetricsFile, - final ReadStructure readStructure) { + final ReadStructure readStructure, final String fileExtension) { final Map> laneTiles = readLaneTiles(runDirectory, readStructure); - writeLaneMetrics(laneTiles, outputDirectory, outputPrefix, laneMetricsFile); - writePhasingMetrics(laneTiles, outputDirectory, outputPrefix, phasingMetricsFile); + writeLaneMetrics(laneTiles, outputDirectory, outputPrefix, laneMetricsFile, fileExtension); + writePhasingMetrics(laneTiles, outputDirectory, outputPrefix, phasingMetricsFile, fileExtension); } public static File writePhasingMetrics(final Map> laneTiles, final File outputDirectory, - final String outputPrefix, final MetricsFile> phasingMetricsFile) { + final String outputPrefix, final MetricsFile> phasingMetricsFile, + final String fileExtension) { laneTiles.entrySet().stream().forEach(entry -> IlluminaPhasingMetrics.getPhasingMetricsForTiles(entry.getKey().longValue(), entry.getValue()).forEach(phasingMetricsFile::addMetric)); - return writeMetrics(phasingMetricsFile, outputDirectory, outputPrefix, IlluminaPhasingMetrics.getExtension()); + return writeMetrics(phasingMetricsFile, outputDirectory, outputPrefix, IlluminaPhasingMetrics.getExtension() + fileExtension); } public static File writeLaneMetrics(final Map> laneTiles, final File outputDirectory, - final String outputPrefix, final MetricsFile> laneMetricsFile) { + final String outputPrefix, final MetricsFile> laneMetricsFile, + final String fileExtension) { laneTiles.entrySet().stream().forEach(entry -> { final IlluminaLaneMetrics laneMetric = new IlluminaLaneMetrics(); laneMetric.LANE = entry.getKey().longValue(); @@ -169,7 +174,7 @@ public static File writeLaneMetrics(final Map> metricsFile, final File outputDirectory,