diff --git a/protected/gatk-protected/src/test/java/org/broadinstitute/sting/gatk/walkers/variantutils/ValidateVariantsIntegrationTest.java b/protected/gatk-protected/src/test/java/org/broadinstitute/sting/gatk/walkers/variantutils/ValidateVariantsIntegrationTest.java index 0e12ae937..13ba2f58a 100644 --- a/protected/gatk-protected/src/test/java/org/broadinstitute/sting/gatk/walkers/variantutils/ValidateVariantsIntegrationTest.java +++ b/protected/gatk-protected/src/test/java/org/broadinstitute/sting/gatk/walkers/variantutils/ValidateVariantsIntegrationTest.java @@ -63,10 +63,21 @@ public class ValidateVariantsIntegrationTest extends WalkerTest { } public static String baseTestString(String file, String type, String region, String reference) { - final String typeArgString = type.startsWith("-") ? " --validationTypeToExclude " + type.substring(1) : " --validationType " + type; + final String typeArgString = type.startsWith("-") ? " --validationTypeToExclude " + type.substring(1) : excludeValidationTypesButString(type); return "-T ValidateVariants -R " + reference + " -L " + region + " --variant:vcf " + privateTestDir + file + typeArgString; } + private static String excludeValidationTypesButString(String type) { + if (type == "ALL") + return ""; + final ValidateVariants.ValidationType vtype = ValidateVariants.ValidationType.valueOf(type); + final StringBuilder sbuilder = new StringBuilder(); + for (final ValidateVariants.ValidationType t : ValidateVariants.ValidationType.CONCRETE_TYPES) + if (t != vtype) + sbuilder.append(" --validationTypeToExclude " + t.toString()); + return sbuilder.toString(); + } + @Test public void testGoodFile() { WalkerTestSpec spec = new WalkerTestSpec( @@ -124,12 +135,11 @@ public class ValidateVariantsIntegrationTest extends WalkerTest { @Test public void testBadID() { - WalkerTestSpec spec = new WalkerTestSpec( + final WalkerTestSpec spec = new WalkerTestSpec( baseTestString("validationExampleBad.vcf", "IDS") + " --dbsnp " + b36dbSNP129, 0, UserException.FailsStrictValidation.class ); - executeTest("test bad RS ID", spec); } @@ -158,7 +168,7 @@ public class ValidateVariantsIntegrationTest extends WalkerTest { @Test public void testNoValidation() { WalkerTestSpec spec = new WalkerTestSpec( - baseTestString("validationExampleBad.vcf", "NONE"), + baseTestString("validationExampleBad.vcf", "-ALL"), 0, Arrays.asList(emptyMd5) ); @@ -187,7 +197,7 @@ public class ValidateVariantsIntegrationTest extends WalkerTest { @Test(description = "Checks '''bug''' reported in story https://www.pivotaltracker.com/story/show/68725164") public void testUnusedAlleleError() { WalkerTestSpec spec = new WalkerTestSpec( - baseTestString("validationUnusedAllelesBugFix.vcf","ALL","1:1-739000",b37KGReference),0, UserException.FailsStrictValidation.class); + baseTestString("validationUnusedAllelesBugFix.vcf","ALLELES","1:1-739000",b37KGReference),0, UserException.FailsStrictValidation.class); executeTest("test unused allele bug fix", spec); } } diff --git a/public/gatk-framework/src/main/java/org/broadinstitute/sting/gatk/walkers/variantutils/ValidateVariants.java b/public/gatk-framework/src/main/java/org/broadinstitute/sting/gatk/walkers/variantutils/ValidateVariants.java index 59e9c8723..a9a4cfd53 100644 --- a/public/gatk-framework/src/main/java/org/broadinstitute/sting/gatk/walkers/variantutils/ValidateVariants.java +++ b/public/gatk-framework/src/main/java/org/broadinstitute/sting/gatk/walkers/variantutils/ValidateVariants.java @@ -53,43 +53,37 @@ import java.util.*; * *
* ValidateVariants is a GATK tool that takes a VCF file and validates much of the information inside it. - * In addition to standard adherence to the VCF specification, this tool performs extra checks to make ensure - * the information contained within the file is correct. Checks include: - * >p> - *
+ *
--dbsnp as show in examples below.- * By default it will apply all the strict validations unless you indicate which one you want to perform - * using --validationType as indicated above. - * You can request this explicitly using --validationType ALL but this is not necessary. - *
- * + * By default it will apply all the strict validations unless you indicate which one you want you want to exclude + * using-Xtype|--validationTypeToExclude <code>, where code is one of the listed above. You
+ * can exclude as many types as you want
* - * If you are looking simply to test the adherence to the VCF specification, use --validationType NONE. - *
- * - *
- * If you want to perform all strict validations but a few you can list the ones to exclude adding
- * as many '--validationTypeToExclude TYPE_ID' to the command line as needed.
- * This is only possible when the validation type is the default 'ALL'.
- * An attempt to combine --validationTypeToExclude with
- * any other validation type will result in an error.
+ * Yo can exclude all strict validations with the special code ALL. In this case the tool will only
+ * test the adherence to the VCF specification.
*
- * A variant set to validate.
+ * A variant set to validate using -V or --variant as shown below.
*
To perform VCF format and all strict validations:
+ * ** java -Xmx2g -jar GenomeAnalysisTK.jar \ * -R ref.fasta \ @@ -98,6 +92,27 @@ import java.util.*; * --dbsnp dbsnp.vcf ** + *
To perform only VCF format tests:
+ * + *+ * java -Xmx2g -jar GenomeAnalysisTK.jar \ + * -R ref.fasta \ + * -T ValidateVariants \ + * --validationTypeToExclude ALL \ + * --variant input.vcf + *+ * + *
To perform all validations except the strict ALLELE validation:
+ * + *+ * java -Xmx2g -jar GenomeAnalysisTK.jar \ + * -R ref.fasta \ + * -T ValidateVariants \ + * --validationTypeToExclude ALLELES + * --variant input.vcf \ + * --dbsnp dbsnp.vcf + *+ * */ @DocumentedGATKFeature( groupName = HelpConstants.DOCS_CAT_VALIDATION, extraDocs = {CommandLineGATK.class} ) @Reference(window=@Window(start=0,stop=100)) @@ -110,8 +125,9 @@ public class ValidateVariants extends RodWalker
These are all types except {@link #ALL}.
*/ - NONE - } + public final static Set