From 88b6f3aa50675cd212b69b968806d4e22975aa5a Mon Sep 17 00:00:00 2001 From: Laura Gauthier Date: Mon, 5 Jan 2015 09:57:56 -0500 Subject: [PATCH 1/2] Change []-type arrays to lists so argument parsing works in VCF header commandline output --- .../walkers/variantrecalibration/TrancheManager.java | 6 +++--- .../variantrecalibration/VariantRecalibrator.java | 12 ++++++------ .../VariantGaussianMixtureModelUnitTest.java | 6 +++--- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/protected/gatk-tools-protected/src/main/java/org/broadinstitute/gatk/tools/walkers/variantrecalibration/TrancheManager.java b/protected/gatk-tools-protected/src/main/java/org/broadinstitute/gatk/tools/walkers/variantrecalibration/TrancheManager.java index 52b5c923c..636dd8ece 100644 --- a/protected/gatk-tools-protected/src/main/java/org/broadinstitute/gatk/tools/walkers/variantrecalibration/TrancheManager.java +++ b/protected/gatk-tools-protected/src/main/java/org/broadinstitute/gatk/tools/walkers/variantrecalibration/TrancheManager.java @@ -165,12 +165,12 @@ public class TrancheManager { } } - public static List findTranches( final List data, final double[] tranches, final SelectionMetric metric, final VariantRecalibratorArgumentCollection.Mode model ) { + public static List findTranches( final List data, final List tranches, final SelectionMetric metric, final VariantRecalibratorArgumentCollection.Mode model ) { return findTranches( data, tranches, metric, model, null ); } - public static List findTranches( final List data, final double[] trancheThresholds, final SelectionMetric metric, final VariantRecalibratorArgumentCollection.Mode model, final File debugFile ) { - logger.info(String.format("Finding %d tranches for %d variants", trancheThresholds.length, data.size())); + public static List findTranches( final List data, final List trancheThresholds, final SelectionMetric metric, final VariantRecalibratorArgumentCollection.Mode model, final File debugFile ) { + logger.info(String.format("Finding %d tranches for %d variants", trancheThresholds.size(), data.size())); Collections.sort( data, new VariantDatum.VariantDatumLODComparator() ); metric.calculateRunningMetric(data); diff --git a/protected/gatk-tools-protected/src/main/java/org/broadinstitute/gatk/tools/walkers/variantrecalibration/VariantRecalibrator.java b/protected/gatk-tools-protected/src/main/java/org/broadinstitute/gatk/tools/walkers/variantrecalibration/VariantRecalibrator.java index 4a3a3535d..0d7127ede 100644 --- a/protected/gatk-tools-protected/src/main/java/org/broadinstitute/gatk/tools/walkers/variantrecalibration/VariantRecalibrator.java +++ b/protected/gatk-tools-protected/src/main/java/org/broadinstitute/gatk/tools/walkers/variantrecalibration/VariantRecalibrator.java @@ -216,7 +216,7 @@ public class VariantRecalibrator extends RodWalker USE_ANNOTATIONS = new ArrayList(); /** * Add truth sensitivity slices through the call set at the given values. The default values are 100.0, 99.9, 99.0, and 90.0 @@ -224,12 +224,12 @@ public class VariantRecalibrator extends RodWalker TS_TRANCHES = new ArrayList(Arrays.asList(100.0, 99.9, 99.0, 90.0)); /** * For this to work properly, the -ignoreFilter argument should also be applied to the ApplyRecalibration command. */ @Argument(fullName="ignore_filter", shortName="ignoreFilter", doc="If specified, the variant recalibrator will also use variants marked as filtered by the specified filter name in the input VCF file", required=false) - private String[] IGNORE_INPUT_FILTERS = null; + private List IGNORE_INPUT_FILTERS = new ArrayList(); @Argument(fullName="ignore_all_filters", shortName="ignoreAllFilters", doc="If specified, the variant recalibrator will ignore all input filters. Useful to rerun the VQSR from a filtered output file.", required=false) private boolean IGNORE_ALL_FILTERS = false; @Output(fullName="rscript_file", shortName="rscriptFile", doc="The output rscript file generated by the VQSR to aid in visualization of the input data and learned model", required=false, defaultToStdout=false) @@ -263,7 +263,7 @@ public class VariantRecalibrator extends RodWalker(Arrays.asList(USE_ANNOTATIONS)), VRAC ); + dataManager = new VariantDataManager( new ArrayList<>(USE_ANNOTATIONS), VRAC ); if (RSCRIPT_FILE != null && !RScriptExecutor.RSCRIPT_EXISTS) Utils.warnUser(logger, String.format( @@ -271,7 +271,7 @@ public class VariantRecalibrator extends RodWalker TRUTH_SENSITIVITY_CUTS = new ArrayList(Arrays.asList(99.9, 99.0, 97.0, 95.0)); private final File EXPECTED_TRANCHES_NEW = new File(privateTestDir + "tranches.6.txt"); private final File EXPECTED_TRANCHES_OLD = new File(privateTestDir + "tranches.4.txt"); @@ -136,7 +136,7 @@ public final class VariantGaussianMixtureModelUnitTest extends BaseTest { } } - private static List findMyTranches(ArrayList vd, double[] tranches) { + private static List findMyTranches(ArrayList vd, List tranches) { final int nCallsAtTruth = TrancheManager.countCallsAtTruth( vd, Double.NEGATIVE_INFINITY ); final TrancheManager.SelectionMetric metric = new TrancheManager.TruthSensitivityMetric( nCallsAtTruth ); return TrancheManager.findTranches(vd, tranches, metric, VariantRecalibratorArgumentCollection.Mode.SNP); @@ -153,6 +153,6 @@ public final class VariantGaussianMixtureModelUnitTest extends BaseTest { @Test(expectedExceptions = {UserException.class}) public final void testBadFDR() { ArrayList vd = readData(); - List tranches = findMyTranches(vd, new double[]{-1}); + List tranches = findMyTranches(vd, new ArrayList(Arrays.asList(-1.0))); } }