private static File writeMetrics(final MetricsFile<MetricBase, Comparable<?>> metricsFile, final File outputDirectory, final String outputPrefix, final String outputExtension) { final File outputFile = new File(outputDirectory, String.format("%s.%s", outputPrefix, outputExtension)); LOG.info(String.format("Writing %s lane metrics to %s ...", metricsFile.getMetrics().size(), outputFile)); metricsFile.write(outputFile); return outputFile; }
@Override protected void finish() { final MetricsFile<TagSummaryMetrics, Integer> metrics = getMetricsFile(); tags.values().stream() .sorted(Comparator.comparing(m -> m.TAG)) .forEach(metric -> { metrics.addMetric(metric); }); metrics.write(OUTPUT); } }
private static File writeMetrics(final MetricsFile<MetricBase, Comparable<?>> metricsFile, final File outputDirectory, final String outputPrefix, final String outputExtension) { final File outputFile = new File(outputDirectory, String.format("%s.%s", outputPrefix, outputExtension)); LOG.info(String.format("Writing %s lane metrics to %s ...", metricsFile.getMetrics().size(), outputFile)); metricsFile.write(outputFile); return outputFile; }
@Override protected void finish() { // TODO: build histograms? final MetricsFile<CigarDetailMetrics, Integer> metrics = getMetricsFile(); cigar.values().stream().flatMap(c -> c.stream()).forEach(metric -> { metrics.addMetric(metric); }); metrics.write(OUTPUT); } }
@Override public void finish() { final MetricsFile<IdsvMetrics, Integer> metricsFile = getMetricsFile(); metricsFile.addMetric(idsv); metricsFile.write(OUTPUT); } }
@Override public void finish() { final MetricsFile<StructuralVariantReadMetrics, Integer> metricsFile = getMetricsFile(); metricsFile.addMetric(metrics); metricsFile.write(OUTPUT); } @Override
@Override protected void finish() { final MetricsFile<QualityYieldMetrics, Integer> metricsFile = getMetricsFile(); this.collector.finish(); this.collector.addMetricsToFile(metricsFile); metricsFile.write(OUTPUT); }
@Override protected void finish() { collector.finish(); final MetricsFile<AlignmentSummaryMetrics, Comparable<?>> file = getMetricsFile(); collector.addAllLevelsToFile(file); file.write(OUTPUT); }
@Override protected void finish() { collector.finish(); final MetricsFile<AlignmentSummaryMetrics, Comparable<?>> file = getMetricsFile(); collector.addAllLevelsToFile(file); file.write(OUTPUT); }
@Override protected void finish() { final MetricsFile<QualityYieldMetrics, Integer> metricsFile = getMetricsFile(); this.collector.finish(); this.collector.addMetricsToFile(metricsFile); metricsFile.write(OUTPUT); }
@Override protected int doWork() { // Before we do anything, make sure the UMI_METRICS_FILE can be written to. IOUtil.assertFileIsWritable(UMI_METRICS_FILE); // Perform Mark Duplicates work final int retval = super.doWork(); // Add results in metrics to the metricsFile final MetricsFile<UmiMetrics, Double> metricsFile = getMetricsFile(); for (final UmiMetrics metric : metrics.values()) { metricsFile.addMetric(metric); } metricsFile.write(UMI_METRICS_FILE); return retval; }
@Override protected void finish() { multiCollector.finish(); final MetricsFile<MapqMetrics, Integer> file = getMetricsFile(); multiCollector.addAllLevelsToFile(file); file.write(OUTPUT); if (Histogram_FILE != null) { final int rResult = RExecutor.executeFromClasspath( Histogram_R_SCRIPT, OUTPUT.getAbsolutePath(), Histogram_FILE.getAbsolutePath(), INPUT.getName()); if (rResult != 0) { throw new PicardException("R script " + Histogram_R_SCRIPT + " failed with return code " + rResult); } } } }
public void finish(ProcessingContext processContext, File source) { MetricsFile<InsertSizeMetrics, Integer> isMetricsFile = processContext.<InsertSizeMetrics, Integer>createMetricsFile(); MetricsFile<IdsvMetrics, Integer> idsvMetricsFile = processContext.<IdsvMetrics, Integer>createMetricsFile(); MetricsFile<CigarDetailMetrics, Integer> scMetricsFile = processContext.<CigarDetailMetrics, Integer>createMetricsFile(); MetricsFile<MapqMetrics, Integer> mapqMetricsFile = processContext.<MapqMetrics, Integer>createMetricsFile(); finish(isMetricsFile, idsvMetricsFile, mapqMetricsFile, scMetricsFile); isMetricsFile.write(processContext.getFileSystemContext().getInsertSizeMetrics(source)); idsvMetricsFile.write(processContext.getFileSystemContext().getIdsvMetrics(source)); scMetricsFile.write(processContext.getFileSystemContext().getCigarMetrics(source)); mapqMetricsFile.write(processContext.getFileSystemContext().getMapqMetrics(source)); } public void finish(MetricsFile<InsertSizeMetrics, Integer> isMetricsFile, MetricsFile<IdsvMetrics, Integer> idsvMetricsFile, MetricsFile<MapqMetrics, Integer> mapqMetricsFile, MetricsFile<CigarDetailMetrics, Integer> scMetricsFile) {
@Override protected int doWork() { // Before we do anything, make sure the UMI_METRICS_FILE can be written to. IOUtil.assertFileIsWritable(UMI_METRICS_FILE); // Perform Mark Duplicates work final int retval = super.doWork(); // Add results in metrics to the metricsFile final MetricsFile<UmiMetrics, Double> metricsFile = getMetricsFile(); for (final UmiMetrics metric : metrics.values()) { metricsFile.addMetric(metric); } metricsFile.write(UMI_METRICS_FILE); return retval; }
@Override protected void finish() { final MetricsFile<BaseDistributionByCycleMetrics, ?> metrics = getMetricsFile(); hist.addToMetricsFile(metrics); metrics.write(OUTPUT); if (hist.isEmpty()) { log.warn("No valid bases found in input file. No plot will be produced."); } else { final int rResult = RExecutor.executeFromClasspath("picard/analysis/baseDistributionByCycle.R", OUTPUT.getAbsolutePath(), CHART_OUTPUT.getAbsolutePath(), INPUT.getName(), plotSubtitle); if (rResult != 0) { throw new PicardException("R script nucleotideDistributionByCycle.R failed with return code " + rResult); } } }
/** Helper method to persist metrics to file and read them back again. */ private <METRIC extends MetricBase> MetricsFile<METRIC, Integer> writeThenReadBack(MetricsFile<METRIC,Integer> in) throws IOException { File f = File.createTempFile("test", ".metrics"); f.deleteOnExit(); FileWriter out = new FileWriter(f); in.write(out); MetricsFile<METRIC,Integer> retval = new MetricsFile<METRIC,Integer>(); retval.read(new FileReader(f)); return retval; }
@Override protected int doWork() { IOUtil.assertFileIsReadable(INPUT); if(OUTPUT != null) IOUtil.assertFileIsWritable(OUTPUT); final MetricsFile<CrosscheckMetric, ?> metricsFile = getMetricsFile(); try { metricsFile.read(new FileReader(INPUT)); } catch (FileNotFoundException e) { e.printStackTrace(); return 1; } clusterMetrics(metricsFile.getMetrics()).write(OUTPUT); return 0; }
@Override protected int doWork() { IOUtil.assertFileIsReadable(INPUT); if(OUTPUT != null) IOUtil.assertFileIsWritable(OUTPUT); final MetricsFile<CrosscheckMetric, ?> metricsFile = getMetricsFile(); try { metricsFile.read(new FileReader(INPUT)); } catch (FileNotFoundException e) { e.printStackTrace(); return 1; } clusterMetrics(metricsFile.getMetrics()).write(OUTPUT); return 0; }
/** * Given a "full" BaseCalculator, get all of its metrics and put them in the appropriate Metrics file. * * @param locusAggregator a BaseCalculator that has been "loaded up" with bases. */ private void writeMetricsFileForAggregator(final BaseErrorAggregation locusAggregator) { final MetricsFile<ErrorMetric, Integer> file = getMetricsFile(); ErrorMetric.setPriorError(QualityUtil.getErrorProbabilityFromPhredScore(PRIOR_Q)); for (final ErrorMetric metric : locusAggregator.getMetrics()) { metric.calculateDerivedFields(); file.addMetric(metric); } file.write(new File(OUTPUT + "." + locusAggregator.getSuffix())); }
/** * Given a "full" BaseCalculator, get all of its metrics and put them in the appropriate Metrics file. * * @param locusAggregator a BaseCalculator that has been "loaded up" with bases. */ private void writeMetricsFileForAggregator(final BaseErrorAggregation locusAggregator) { final MetricsFile<ErrorMetric, Integer> file = getMetricsFile(); ErrorMetric.setPriorError(QualityUtil.getErrorProbabilityFromPhredScore(PRIOR_Q)); for (final ErrorMetric metric : locusAggregator.getMetrics()) { metric.calculateDerivedFields(); file.addMetric(metric); } file.write(new File(OUTPUT + "." + locusAggregator.getSuffix())); }