diff --git a/public/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/VariantDataManager.java b/public/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/VariantDataManager.java index 4ccaea932..d6df4ff1b 100755 --- a/public/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/VariantDataManager.java +++ b/public/java/src/org/broadinstitute/sting/gatk/walkers/variantrecalibration/VariantDataManager.java @@ -298,7 +298,7 @@ public class VariantDataManager { attributes.put(VariantRecalibrator.VQS_LOD_KEY, String.format("%.4f", datum.lod)); attributes.put(VariantRecalibrator.CULPRIT_KEY, (datum.worstAnnotation != -1 ? annotationKeys.get(datum.worstAnnotation) : "NULL")); - VariantContextBuilder builder = new VariantContextBuilder("VQSR", datum.loc.getContig(), datum.loc.getStart(), datum.loc.getStart(), alleles).attributes(attributes); + VariantContextBuilder builder = new VariantContextBuilder("VQSR", datum.loc.getContig(), datum.loc.getStart(), datum.loc.getStop(), alleles).attributes(attributes); recalWriter.add(builder.make()); } } diff --git a/public/java/src/org/broadinstitute/sting/utils/variantcontext/VariantContext.java b/public/java/src/org/broadinstitute/sting/utils/variantcontext/VariantContext.java index c62afd284..1f0b2b054 100755 --- a/public/java/src/org/broadinstitute/sting/utils/variantcontext/VariantContext.java +++ b/public/java/src/org/broadinstitute/sting/utils/variantcontext/VariantContext.java @@ -1126,6 +1126,7 @@ public class VariantContext implements Feature { // to enable tribble integratio // --------------------------------------------------------------------------------------------------------- private boolean validate(final EnumSet validationToPerform) { + validateStop(); for (final Validation val : validationToPerform ) { switch (val) { case ALLELES: validateAlleles(); break; @@ -1138,6 +1139,20 @@ public class VariantContext implements Feature { // to enable tribble integratio return true; } + /** + * Check that getEnd() == END from the info field, if it's present + */ + private void validateStop() { + if ( hasAttribute(VCFConstants.END_KEY) ) { + final int end = getAttributeAsInt(VCFConstants.END_KEY, -1); + assert end != -1; + if ( end != getEnd() ) + throw new ReviewedStingException("Badly formed variant context at location " + getChr() + ":" + + getStart() + "; getEnd() was " + getEnd() + + " but this VariantContext contains an END key with value " + end); + } + } + private void validateReferencePadding() { if ( hasSymbolicAlleles() ) // symbolic alleles don't need padding... return; diff --git a/public/java/test/org/broadinstitute/sting/gatk/walkers/variantrecalibration/VariantRecalibrationWalkersIntegrationTest.java b/public/java/test/org/broadinstitute/sting/gatk/walkers/variantrecalibration/VariantRecalibrationWalkersIntegrationTest.java index eaed969a4..c075bb390 100755 --- a/public/java/test/org/broadinstitute/sting/gatk/walkers/variantrecalibration/VariantRecalibrationWalkersIntegrationTest.java +++ b/public/java/test/org/broadinstitute/sting/gatk/walkers/variantrecalibration/VariantRecalibrationWalkersIntegrationTest.java @@ -114,6 +114,7 @@ public class VariantRecalibrationWalkersIntegrationTest extends WalkerTest { " -tranchesFile " + getMd5DB().getMD5FilePath(params.tranchesMD5, null) + " -recalFile " + getMd5DB().getMD5FilePath(params.recalMD5, null), Arrays.asList(params.cutVCFMD5)); + spec.disableShadowBCF(); // has to be disabled because the input VCF is missing LowQual annotation executeTest("testApplyRecalibrationIndel-"+params.inVCF, spec); }