From 33306d2e201288b87c6ecf63c9dde84a2243bd96 Mon Sep 17 00:00:00 2001 From: Eric Banks Date: Wed, 4 Jul 2012 00:21:21 -0400 Subject: [PATCH] Changing the logic of the -standard argument; the way it stands currently one can never turn off the cycle or context covariates. Now they are on by default and users must opt out of them to turn them off. --- .../gatk/walkers/bqsr/RecalDataManager.java | 4 ++-- .../bqsr/RecalibrationArgumentCollection.java | 17 ++++++++++------- .../gatk/walkers/bqsr/RecalibrationReport.java | 2 +- public/testdata/exampleGRP.grp | 2 +- 4 files changed, 14 insertions(+), 11 deletions(-) diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/bqsr/RecalDataManager.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/bqsr/RecalDataManager.java index 80e8b574a..876ce585a 100644 --- a/public/java/src/org/broadinstitute/sting/gatk/walkers/bqsr/RecalDataManager.java +++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/bqsr/RecalDataManager.java @@ -170,7 +170,7 @@ public class RecalDataManager { final ArrayList requiredCovariates = addRequiredCovariatesToList(requiredClasses); // add the required covariates ArrayList optionalCovariates = new ArrayList(); - if (argumentCollection.USE_STANDARD_COVARIATES) + if (!argumentCollection.DO_NOT_USE_STANDARD_COVARIATES) optionalCovariates = addStandardCovariatesToList(standardClasses); // add the standard covariates if -standard was specified by the user if (argumentCollection.COVARIATES != null) { // parse the -cov arguments that were provided, skipping over the ones already specified @@ -180,7 +180,7 @@ public class RecalDataManager { if (requestedCovariateString.equalsIgnoreCase(covClass.getSimpleName())) { // -cov argument matches the class name for an implementing class foundClass = true; if (!requiredClasses.contains(covClass) && - (!argumentCollection.USE_STANDARD_COVARIATES || !standardClasses.contains(covClass))) { + (argumentCollection.DO_NOT_USE_STANDARD_COVARIATES || !standardClasses.contains(covClass))) { try { final Covariate covariate = covClass.newInstance(); // now that we've found a matching class, try to instantiate it optionalCovariates.add(covariate); diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/bqsr/RecalibrationArgumentCollection.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/bqsr/RecalibrationArgumentCollection.java index 22b26317b..2688fe655 100755 --- a/public/java/src/org/broadinstitute/sting/gatk/walkers/bqsr/RecalibrationArgumentCollection.java +++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/bqsr/RecalibrationArgumentCollection.java @@ -71,16 +71,19 @@ public class RecalibrationArgumentCollection { public boolean LIST_ONLY = false; /** - * Covariates to be used in the recalibration. Each covariate is given as a separate cov parameter. ReadGroup and ReportedQuality are required covariates and are already added for you. See the list of covariates with -list. + * Note that the ReadGroup and QualityScore covariates are required and do not need to be specified. + * Also, unless --no_standard_covs is specified, the Cycle and Context covariates are standard and are included by default. + * Use the --list argument to see the available covariates. */ - @Argument(fullName = "covariate", shortName = "cov", doc = "Covariates to be used in the recalibration. Each covariate is given as a separate cov parameter. ReadGroup and ReportedQuality are required covariates and are already added for you.", required = false) + @Argument(fullName = "covariate", shortName = "cov", doc = "One or more covariates to be used in the recalibration. Can be specified multiple times", required = false) public String[] COVARIATES = null; /* - * Use the standard set of covariates in addition to the ones listed using the -cov argument + * The Cycle and Context covariates are standard and are included by default unless this argument is provided. + * Note that the ReadGroup and QualityScore covariates are required and cannot be excluded. */ - @Argument(fullName = "standard_covs", shortName = "standard", doc = "Use the standard set of covariates in addition to the ones listed using the -cov argument", required = false) - public boolean USE_STANDARD_COVARIATES = true; + @Argument(fullName = "no_standard_covs", shortName = "noStandard", doc = "Do not use the standard set of covariates, but rather just the ones listed using the -cov argument", required = false) + public boolean DO_NOT_USE_STANDARD_COVARIATES = false; ///////////////////////////// // Debugging-only Arguments @@ -172,8 +175,8 @@ public class RecalibrationArgumentCollection { argumentsTable.addColumn(RecalDataManager.ARGUMENT_VALUE_COLUMN_NAME); argumentsTable.addRowID("covariate", true); argumentsTable.set("covariate", RecalDataManager.ARGUMENT_VALUE_COLUMN_NAME, (COVARIATES == null) ? "null" : Utils.join(",", COVARIATES)); - argumentsTable.addRowID("standard_covs", true); - argumentsTable.set("standard_covs", RecalDataManager.ARGUMENT_VALUE_COLUMN_NAME, USE_STANDARD_COVARIATES); + argumentsTable.addRowID("no_standard_covs", true); + argumentsTable.set("no_standard_covs", RecalDataManager.ARGUMENT_VALUE_COLUMN_NAME, DO_NOT_USE_STANDARD_COVARIATES); argumentsTable.addRowID("run_without_dbsnp", true); argumentsTable.set("run_without_dbsnp", RecalDataManager.ARGUMENT_VALUE_COLUMN_NAME, RUN_WITHOUT_DBSNP); argumentsTable.addRowID("solid_recal_mode", true); diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/bqsr/RecalibrationReport.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/bqsr/RecalibrationReport.java index c49ff8b47..9c6460320 100644 --- a/public/java/src/org/broadinstitute/sting/gatk/walkers/bqsr/RecalibrationReport.java +++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/bqsr/RecalibrationReport.java @@ -247,7 +247,7 @@ public class RecalibrationReport { RAC.COVARIATES = value.toString().split(","); else if (argument.equals("standard_covs")) - RAC.USE_STANDARD_COVARIATES = Boolean.parseBoolean((String) value); + RAC.DO_NOT_USE_STANDARD_COVARIATES = Boolean.parseBoolean((String) value); else if (argument.equals("solid_recal_mode")) RAC.SOLID_RECAL_MODE = RecalDataManager.SOLID_RECAL_MODE.recalModeFromString((String) value); diff --git a/public/testdata/exampleGRP.grp b/public/testdata/exampleGRP.grp index 619d6b212..2ec55ec57 100644 --- a/public/testdata/exampleGRP.grp +++ b/public/testdata/exampleGRP.grp @@ -11,11 +11,11 @@ insertions_default_quality 45 low_quality_tail 2 mismatches_context_size 2 mismatches_default_quality -1 +no_standard_covs false quantizing_levels 16 run_without_dbsnp false solid_nocall_strategy THROW_EXCEPTION solid_recal_mode SET_Q_ZERO -standard_covs true #:GATKTable:3:94:::; #:GATKTable:Quantized:Quality quantization map