Merge pull request #978 from broadinstitute/dr_rev_htsjdk_and_picard

Rev htsjdk to version 1.132 and picard to version 1.131, and switch to using the versions in maven central
This commit is contained in:
Geraldine Van der Auwera 2015-05-14 21:08:19 -04:00
commit dee66b06fa
28 changed files with 122 additions and 108 deletions

View File

@ -48,7 +48,7 @@
</dependency> </dependency>
<!-- Tribble codecs & the variant package (VCF, BCF, and VariantContext) --> <!-- Tribble codecs & the variant package (VCF, BCF, and VariantContext) -->
<dependency> <dependency>
<groupId>samtools</groupId> <groupId>com.github.samtools</groupId>
<artifactId>htsjdk</artifactId> <artifactId>htsjdk</artifactId>
</dependency> </dependency>
<!-- Workaround - depend on the logger impl required by JEXL --> <!-- Workaround - depend on the logger impl required by JEXL -->

View File

@ -42,7 +42,7 @@
<artifactId>log4j</artifactId> <artifactId>log4j</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>picard</groupId> <groupId>com.github.broadinstitute</groupId>
<artifactId>picard</artifactId> <artifactId>picard</artifactId>
</dependency> </dependency>
<!-- <!--

View File

@ -47,7 +47,7 @@
</dependency> </dependency>
<!-- Picard --> <!-- Picard -->
<dependency> <dependency>
<groupId>picard</groupId> <groupId>com.github.broadinstitute</groupId>
<artifactId>picard</artifactId> <artifactId>picard</artifactId>
</dependency> </dependency>
<!-- JavaMail --> <!-- JavaMail -->

View File

@ -187,7 +187,10 @@ final class HomRefBlock {
} }
public VCFHeaderLine toVCFHeaderLine() { public VCFHeaderLine toVCFHeaderLine() {
return new VCFHeaderLine("GVCFBlock", "minGQ=" + getGQLowerBound() + "(inclusive),maxGQ=" + getGQUpperBound() + "(exclusive)"); // Need to uniquify the key for the header line using the min/max GQ, since
// VCFHeader does not allow lines with duplicate keys.
final String key = String.format("GVCFBlock%d-%d", getGQLowerBound(), getGQUpperBound());
return new VCFHeaderLine(key, "minGQ=" + getGQLowerBound() + "(inclusive),maxGQ=" + getGQUpperBound() + "(exclusive)");
} }
/** /**

View File

@ -67,7 +67,7 @@ public class BeagleIntegrationTest extends WalkerTest {
"--beagleR2:BEAGLE " + beagleValidationDataLocation + "inttestbgl.r2 " + "--beagleR2:BEAGLE " + beagleValidationDataLocation + "inttestbgl.r2 " +
"--beagleProbs:BEAGLE " + beagleValidationDataLocation + "inttestbgl.gprobs " + "--beagleProbs:BEAGLE " + beagleValidationDataLocation + "inttestbgl.gprobs " +
"--beaglePhased:BEAGLE " + beagleValidationDataLocation + "inttestbgl.phased " + "--beaglePhased:BEAGLE " + beagleValidationDataLocation + "inttestbgl.phased " +
"-o %s --no_cmdline_in_header -U LENIENT_VCF_PROCESSING", 1, Arrays.asList("989449fa3e262b88ba126867fa3ad9fb")); "-o %s --no_cmdline_in_header -U LENIENT_VCF_PROCESSING", 1, Arrays.asList("1c4f2fed1d452368fa4dfe3e209ebb57"));
spec.disableShadowBCF(); spec.disableShadowBCF();
executeTest("test BeagleOutputToVCF", spec); executeTest("test BeagleOutputToVCF", spec);
} }

View File

@ -77,10 +77,10 @@ public class HaplotypeCallerGVCFIntegrationTest extends WalkerTest {
// this functionality can be adapted to provide input data for whatever you might want in your data // this functionality can be adapted to provide input data for whatever you might want in your data
tests.add(new Object[]{NA12878_PCRFREE, ReferenceConfidenceMode.NONE, PCRFreeIntervals, "3e440b1b755a21d7bd3ecb093af8f43e"}); tests.add(new Object[]{NA12878_PCRFREE, ReferenceConfidenceMode.NONE, PCRFreeIntervals, "3e440b1b755a21d7bd3ecb093af8f43e"});
tests.add(new Object[]{NA12878_PCRFREE, ReferenceConfidenceMode.BP_RESOLUTION, PCRFreeIntervals, "ebe078a1e209a5b231aeeba6deebcb8a"}); tests.add(new Object[]{NA12878_PCRFREE, ReferenceConfidenceMode.BP_RESOLUTION, PCRFreeIntervals, "ebe078a1e209a5b231aeeba6deebcb8a"});
tests.add(new Object[]{NA12878_PCRFREE, ReferenceConfidenceMode.GVCF, PCRFreeIntervals, "b6d3cbc4eecb8d295898d94335be54c2"}); tests.add(new Object[]{NA12878_PCRFREE, ReferenceConfidenceMode.GVCF, PCRFreeIntervals, "2ad9b5d87416c466292c2b97480e1f5c"});
tests.add(new Object[]{NA12878_WEx, ReferenceConfidenceMode.NONE, WExIntervals, "6ca1e6cb78157273a4a96ba00e6d4713"}); tests.add(new Object[]{NA12878_WEx, ReferenceConfidenceMode.NONE, WExIntervals, "6ca1e6cb78157273a4a96ba00e6d4713"});
tests.add(new Object[]{NA12878_WEx, ReferenceConfidenceMode.BP_RESOLUTION, WExIntervals, "8645c191ca5dbbae8dcb1389717f985a"}); tests.add(new Object[]{NA12878_WEx, ReferenceConfidenceMode.BP_RESOLUTION, WExIntervals, "8645c191ca5dbbae8dcb1389717f985a"});
tests.add(new Object[]{NA12878_WEx, ReferenceConfidenceMode.GVCF, WExIntervals, "82f2efd1e9ec6197344d9001b653c7fb"}); tests.add(new Object[]{NA12878_WEx, ReferenceConfidenceMode.GVCF, WExIntervals, "9606db453f9e8beae27669afcea288a1"});
return tests.toArray(new Object[][]{}); return tests.toArray(new Object[][]{});
} }
@ -96,11 +96,11 @@ public class HaplotypeCallerGVCFIntegrationTest extends WalkerTest {
// this functionality can be adapted to provide input data for whatever you might want in your data // this functionality can be adapted to provide input data for whatever you might want in your data
tests.add(new Object[]{NA12878_PCRFREE, ReferenceConfidenceMode.NONE, PCRFreeIntervals, "92c7415dd1a5793161032d839b88fc28"}); tests.add(new Object[]{NA12878_PCRFREE, ReferenceConfidenceMode.NONE, PCRFreeIntervals, "92c7415dd1a5793161032d839b88fc28"});
tests.add(new Object[]{NA12878_PCRFREE, ReferenceConfidenceMode.BP_RESOLUTION, PCRFreeIntervals, "b90d7c900ff4a8b5e58d6bd4ad64d750"}); tests.add(new Object[]{NA12878_PCRFREE, ReferenceConfidenceMode.BP_RESOLUTION, PCRFreeIntervals, "b90d7c900ff4a8b5e58d6bd4ad64d750"});
tests.add(new Object[]{NA12878_PCRFREE, ReferenceConfidenceMode.GVCF, PCRFreeIntervals, "7abdd32f0d11cbf43f5bceeca946a428"}); tests.add(new Object[]{NA12878_PCRFREE, ReferenceConfidenceMode.GVCF, PCRFreeIntervals, "8a1dcc091cb28e1fbbc86a1de85dfd4c"});
tests.add(new Object[]{NA12878_WEx, ReferenceConfidenceMode.NONE, WExIntervals, "7e84e4562d8df6e593e58f017f697355"}); tests.add(new Object[]{NA12878_WEx, ReferenceConfidenceMode.NONE, WExIntervals, "7e84e4562d8df6e593e58f017f697355"});
tests.add(new Object[]{NA12878_WEx, ReferenceConfidenceMode.BP_RESOLUTION, WExIntervals, "307ce5ada7c68e2f08664937bafa6281"}); tests.add(new Object[]{NA12878_WEx, ReferenceConfidenceMode.BP_RESOLUTION, WExIntervals, "307ce5ada7c68e2f08664937bafa6281"});
final String NA12878bandedResolutionMD5 = "74f728f1c42e3014776197606ddf5116"; final String NA12878bandedResolutionMD5 = "d51df38ad52cf2b0ecbce362e60fb24e";
tests.add(new Object[]{NA12878_WEx, ReferenceConfidenceMode.GVCF, WExIntervals, NA12878bandedResolutionMD5}); tests.add(new Object[]{NA12878_WEx, ReferenceConfidenceMode.GVCF, WExIntervals, NA12878bandedResolutionMD5});
tests.add(new Object[]{NA12878_WEx + " -I " + privateTestDir + "NA20313.highCoverageRegion.bam -sn NA12878", tests.add(new Object[]{NA12878_WEx + " -I " + privateTestDir + "NA20313.highCoverageRegion.bam -sn NA12878",
ReferenceConfidenceMode.GVCF, WExIntervals, NA12878bandedResolutionMD5}); ReferenceConfidenceMode.GVCF, WExIntervals, NA12878bandedResolutionMD5});
@ -119,10 +119,10 @@ public class HaplotypeCallerGVCFIntegrationTest extends WalkerTest {
// this functionality can be adapted to provide input data for whatever you might want in your data // this functionality can be adapted to provide input data for whatever you might want in your data
tests.add(new Object[]{NA12878_PCRFREE, ReferenceConfidenceMode.NONE, PCRFreeIntervals, "f441aab92b07591281fa44748b7bd71e"}); tests.add(new Object[]{NA12878_PCRFREE, ReferenceConfidenceMode.NONE, PCRFreeIntervals, "f441aab92b07591281fa44748b7bd71e"});
tests.add(new Object[]{NA12878_PCRFREE, ReferenceConfidenceMode.BP_RESOLUTION, PCRFreeIntervals, "d54d7988552a13de90977ba06b094b74"}); tests.add(new Object[]{NA12878_PCRFREE, ReferenceConfidenceMode.BP_RESOLUTION, PCRFreeIntervals, "d54d7988552a13de90977ba06b094b74"});
tests.add(new Object[]{NA12878_PCRFREE, ReferenceConfidenceMode.GVCF, PCRFreeIntervals, "a1e2f104c50c89b9c562045daebf07ca"}); tests.add(new Object[]{NA12878_PCRFREE, ReferenceConfidenceMode.GVCF, PCRFreeIntervals, "c3c12414059390f3d6e3e533502c1869"});
tests.add(new Object[]{NA12878_WEx, ReferenceConfidenceMode.NONE, WExIntervals, "91164cf1247f5b187ad133b280aa1fd2"}); tests.add(new Object[]{NA12878_WEx, ReferenceConfidenceMode.NONE, WExIntervals, "91164cf1247f5b187ad133b280aa1fd2"});
tests.add(new Object[]{NA12878_WEx, ReferenceConfidenceMode.BP_RESOLUTION, WExIntervals, "b5c1b79550a8d8bb479895e2be38d945"}); tests.add(new Object[]{NA12878_WEx, ReferenceConfidenceMode.BP_RESOLUTION, WExIntervals, "b5c1b79550a8d8bb479895e2be38d945"});
tests.add(new Object[]{NA12878_WEx, ReferenceConfidenceMode.GVCF, WExIntervals, "48b737b4f1739edd275eb347c6ca5997"}); tests.add(new Object[]{NA12878_WEx, ReferenceConfidenceMode.GVCF, WExIntervals, "79e913ab2ddf19b3cae75f2da9394239"});
return tests.toArray(new Object[][]{}); return tests.toArray(new Object[][]{});
} }
@ -137,10 +137,10 @@ public class HaplotypeCallerGVCFIntegrationTest extends WalkerTest {
// this functionality can be adapted to provide input data for whatever you might want in your data // this functionality can be adapted to provide input data for whatever you might want in your data
tests.add(new Object[]{NA12878_PCRFREE, ReferenceConfidenceMode.NONE, PCRFreeIntervals, "081d943a092b7ad71d1f1fa6ec191ace"}); tests.add(new Object[]{NA12878_PCRFREE, ReferenceConfidenceMode.NONE, PCRFreeIntervals, "081d943a092b7ad71d1f1fa6ec191ace"});
tests.add(new Object[]{NA12878_PCRFREE, ReferenceConfidenceMode.BP_RESOLUTION, PCRFreeIntervals, "93f95c7a51741f8e527f1308ffd91052"}); tests.add(new Object[]{NA12878_PCRFREE, ReferenceConfidenceMode.BP_RESOLUTION, PCRFreeIntervals, "93f95c7a51741f8e527f1308ffd91052"});
tests.add(new Object[]{NA12878_PCRFREE, ReferenceConfidenceMode.GVCF, PCRFreeIntervals, "a6e858123e40efece5a9a43a0c05bdb2"}); tests.add(new Object[]{NA12878_PCRFREE, ReferenceConfidenceMode.GVCF, PCRFreeIntervals, "1f2e5b5c06cb6d1196315c4308421f6d"});
tests.add(new Object[]{NA12878_WEx, ReferenceConfidenceMode.NONE, WExIntervals, "3d8f4f849df0b9cddb1ec61279e91a83"}); tests.add(new Object[]{NA12878_WEx, ReferenceConfidenceMode.NONE, WExIntervals, "3d8f4f849df0b9cddb1ec61279e91a83"});
tests.add(new Object[]{NA12878_WEx, ReferenceConfidenceMode.BP_RESOLUTION, WExIntervals, "1fbe1435b860400ecae3115141453c9a"}); tests.add(new Object[]{NA12878_WEx, ReferenceConfidenceMode.BP_RESOLUTION, WExIntervals, "1fbe1435b860400ecae3115141453c9a"});
tests.add(new Object[]{NA12878_WEx, ReferenceConfidenceMode.GVCF, WExIntervals, "af7f383fd675d2edfaba7f67a96e67c7"}); tests.add(new Object[]{NA12878_WEx, ReferenceConfidenceMode.GVCF, WExIntervals, "fe9e1992cc28b798dd3ee66aaba726aa"});
return tests.toArray(new Object[][]{}); return tests.toArray(new Object[][]{});
} }
@ -254,7 +254,7 @@ public class HaplotypeCallerGVCFIntegrationTest extends WalkerTest {
public void testWrongGVCFNonVariantRecordOrderBugFix() { public void testWrongGVCFNonVariantRecordOrderBugFix() {
final String commandLine = String.format("-T HaplotypeCaller --pcr_indel_model NONE -pairHMMSub %s %s -R %s -I %s -L %s -ERC GVCF --no_cmdline_in_header -variant_index_type %s -variant_index_parameter %d", final String commandLine = String.format("-T HaplotypeCaller --pcr_indel_model NONE -pairHMMSub %s %s -R %s -I %s -L %s -ERC GVCF --no_cmdline_in_header -variant_index_type %s -variant_index_parameter %d",
HMM_SUB_IMPLEMENTATION, ALWAYS_LOAD_VECTOR_HMM, b37KGReference, WRONG_GVCF_RECORD_ORDER_BUGFIX_BAM, WRONG_GVCF_RECORD_ORDER_BUGFIX_INTERVALS, GATKVCFUtils.DEFAULT_GVCF_INDEX_TYPE, GATKVCFUtils.DEFAULT_GVCF_INDEX_PARAMETER); HMM_SUB_IMPLEMENTATION, ALWAYS_LOAD_VECTOR_HMM, b37KGReference, WRONG_GVCF_RECORD_ORDER_BUGFIX_BAM, WRONG_GVCF_RECORD_ORDER_BUGFIX_INTERVALS, GATKVCFUtils.DEFAULT_GVCF_INDEX_TYPE, GATKVCFUtils.DEFAULT_GVCF_INDEX_PARAMETER);
final WalkerTestSpec spec = new WalkerTestSpec(commandLine + " -o %s", Arrays.asList("ae90a1b5c40f19df38e8ac58c3844ed5")); final WalkerTestSpec spec = new WalkerTestSpec(commandLine + " -o %s", Arrays.asList("7fa0578150ea8ef333cb141f78cf4a5a"));
spec.disableShadowBCF(); spec.disableShadowBCF();
executeTest("testMissingGVCFIndexingStrategyException", spec); executeTest("testMissingGVCFIndexingStrategyException", spec);
} }
@ -271,7 +271,7 @@ public class HaplotypeCallerGVCFIntegrationTest extends WalkerTest {
public void testNoCallGVCFMissingPLsBugFix() { public void testNoCallGVCFMissingPLsBugFix() {
final String commandLine = String.format("-T HaplotypeCaller --pcr_indel_model NONE -pairHMMSub %s %s -R %s -I %s -L %s -ERC GVCF --no_cmdline_in_header -variant_index_type %s -variant_index_parameter %d", final String commandLine = String.format("-T HaplotypeCaller --pcr_indel_model NONE -pairHMMSub %s %s -R %s -I %s -L %s -ERC GVCF --no_cmdline_in_header -variant_index_type %s -variant_index_parameter %d",
HMM_SUB_IMPLEMENTATION, ALWAYS_LOAD_VECTOR_HMM, b37KGReference, NOCALL_GVCF_BUGFIX_BAM, NOCALL_GVCF_BUGFIX_INTERVALS, GATKVCFUtils.DEFAULT_GVCF_INDEX_TYPE, GATKVCFUtils.DEFAULT_GVCF_INDEX_PARAMETER); HMM_SUB_IMPLEMENTATION, ALWAYS_LOAD_VECTOR_HMM, b37KGReference, NOCALL_GVCF_BUGFIX_BAM, NOCALL_GVCF_BUGFIX_INTERVALS, GATKVCFUtils.DEFAULT_GVCF_INDEX_TYPE, GATKVCFUtils.DEFAULT_GVCF_INDEX_PARAMETER);
final WalkerTestSpec spec = new WalkerTestSpec(commandLine + " -o %s", Arrays.asList("bf6325fbc06c80893f3170668cfbed06")); final WalkerTestSpec spec = new WalkerTestSpec(commandLine + " -o %s", Arrays.asList("befa4bf150099b3faf44130a6c9cdbb9"));
spec.disableShadowBCF(); spec.disableShadowBCF();
executeTest("testNoCallGVCFMissingPLsBugFix", spec); executeTest("testNoCallGVCFMissingPLsBugFix", spec);
} }

View File

@ -84,7 +84,7 @@ public class ValidationSiteSelectorIntegrationTest extends WalkerTest {
WalkerTestSpec spec = new WalkerTestSpec( WalkerTestSpec spec = new WalkerTestSpec(
baseTestString(sampleNone + freqUnif + "--variant " + testfile), baseTestString(sampleNone + freqUnif + "--variant " + testfile),
1, 1,
Arrays.asList("658c70cbb93faed8ca18e51cd6dd593f") Arrays.asList("19fe0e3297bfd502911608490222a2fd")
); );
executeTest("testNoSampleSelectionFreqUniform--" + testfile, spec); executeTest("testNoSampleSelectionFreqUniform--" + testfile, spec);
@ -96,7 +96,7 @@ public class ValidationSiteSelectorIntegrationTest extends WalkerTest {
WalkerTestSpec spec = new WalkerTestSpec( WalkerTestSpec spec = new WalkerTestSpec(
baseTestString(sampleNone + freqAF + "--variant " + testfile), baseTestString(sampleNone + freqAF + "--variant " + testfile),
1, 1,
Arrays.asList("90411433ea42846352b767da735af53b") Arrays.asList("91a7f3bf452241040646e61ee6ab1a23")
); );
executeTest("testNoSampleSelectionFreqAF--" + testfile, spec); executeTest("testNoSampleSelectionFreqAF--" + testfile, spec);
@ -108,7 +108,7 @@ public class ValidationSiteSelectorIntegrationTest extends WalkerTest {
WalkerTestSpec spec = new WalkerTestSpec( WalkerTestSpec spec = new WalkerTestSpec(
baseTestString(sampleGT + freqUnif + "--variant " + testfile), baseTestString(sampleGT + freqUnif + "--variant " + testfile),
1, 1,
Arrays.asList("2afabd447185cf017f60c85380902117") Arrays.asList("faae3baf1feb76877fcb81c01b5d44f3")
); );
executeTest("testPolyGTFreqUniform--" + testfile, spec); executeTest("testPolyGTFreqUniform--" + testfile, spec);
@ -120,7 +120,7 @@ public class ValidationSiteSelectorIntegrationTest extends WalkerTest {
WalkerTestSpec spec = new WalkerTestSpec( WalkerTestSpec spec = new WalkerTestSpec(
baseTestString(sampleGT + freqAF + "--variant " + testfile), baseTestString(sampleGT + freqAF + "--variant " + testfile),
1, 1,
Arrays.asList("381e1a2f0e1908b4d7cba5d6361cf5aa") Arrays.asList("d2ba4e3e76f87e2c1a12d82e7a3dc595")
); );
executeTest("testPolyGTFreqAF--" + testfile, spec); executeTest("testPolyGTFreqAF--" + testfile, spec);
@ -132,7 +132,7 @@ public class ValidationSiteSelectorIntegrationTest extends WalkerTest {
WalkerTestSpec spec = new WalkerTestSpec( WalkerTestSpec spec = new WalkerTestSpec(
baseTestString(sampleGL + freqAF + "--variant " + testfile), baseTestString(sampleGL + freqAF + "--variant " + testfile),
1, 1,
Arrays.asList("381e1a2f0e1908b4d7cba5d6361cf5aa") Arrays.asList("d2ba4e3e76f87e2c1a12d82e7a3dc595")
); );
executeTest("testPolyGLFreqAF--" + testfile, spec); executeTest("testPolyGLFreqAF--" + testfile, spec);

View File

@ -167,4 +167,10 @@ public class HomRefBlockUnitTest extends BaseTest {
final VariantContext testVC = new VariantContextBuilder(vc).chr(contig).start(pos).stop(pos).make(); final VariantContext testVC = new VariantContextBuilder(vc).chr(contig).start(pos).stop(pos).make();
Assert.assertEquals(band.isContiguous(testVC), expected); Assert.assertEquals(band.isContiguous(testVC), expected);
} }
@Test
public void testToVCFHeaderLine() {
final HomRefBlock band = new HomRefBlock(vc, 10, 20, HomoSapiensConstants.DEFAULT_PLOIDY);
Assert.assertEquals(band.toVCFHeaderLine().getKey(), "GVCFBlock10-20", "Wrong key for HomRefBlock " + band);
}
} }

View File

@ -155,7 +155,7 @@
</includes> </includes>
</filter> </filter>
<filter> <filter>
<artifact>samtools:htsjdk</artifact> <artifact>com.github.samtools:htsjdk</artifact>
<includes> <includes>
<include>**</include> <include>**</include>
</includes> </includes>

View File

@ -27,7 +27,7 @@ package org.broadinstitute.gatk.engine.datasources.providers;
import htsjdk.samtools.util.PeekableIterator; import htsjdk.samtools.util.PeekableIterator;
import htsjdk.samtools.SAMFileHeader; import htsjdk.samtools.SAMFileHeader;
import htsjdk.tribble.BasicFeature; import htsjdk.tribble.SimpleFeature;
import htsjdk.tribble.Feature; import htsjdk.tribble.Feature;
import org.broadinstitute.gatk.utils.BaseTest; import org.broadinstitute.gatk.utils.BaseTest;
import org.broadinstitute.gatk.utils.commandline.RodBinding; import org.broadinstitute.gatk.utils.commandline.RodBinding;
@ -109,35 +109,35 @@ public class IntervalReferenceOrderedViewUnitTest extends BaseTest {
public void initializeTests() { public void initializeTests() {
final List<Feature> handPickedFeatures = new ArrayList<Feature>(); final List<Feature> handPickedFeatures = new ArrayList<Feature>();
handPickedFeatures.add(new BasicFeature(contig, 1, 1)); handPickedFeatures.add(new SimpleFeature(contig, 1, 1));
handPickedFeatures.add(new BasicFeature(contig, 2, 5)); handPickedFeatures.add(new SimpleFeature(contig, 2, 5));
handPickedFeatures.add(new BasicFeature(contig, 4, 4)); handPickedFeatures.add(new SimpleFeature(contig, 4, 4));
handPickedFeatures.add(new BasicFeature(contig, 6, 6)); handPickedFeatures.add(new SimpleFeature(contig, 6, 6));
handPickedFeatures.add(new BasicFeature(contig, 9, 10)); handPickedFeatures.add(new SimpleFeature(contig, 9, 10));
handPickedFeatures.add(new BasicFeature(contig, 10, 10)); handPickedFeatures.add(new SimpleFeature(contig, 10, 10));
handPickedFeatures.add(new BasicFeature(contig, 10, 11)); handPickedFeatures.add(new SimpleFeature(contig, 10, 11));
handPickedFeatures.add(new BasicFeature(contig, 13, 20)); handPickedFeatures.add(new SimpleFeature(contig, 13, 20));
createTestsForFeatures(handPickedFeatures); createTestsForFeatures(handPickedFeatures);
// test in the present of a large spanning element // test in the present of a large spanning element
{ {
List<Feature> oneLargeSpan = new ArrayList<Feature>(handPickedFeatures); List<Feature> oneLargeSpan = new ArrayList<Feature>(handPickedFeatures);
oneLargeSpan.add(new BasicFeature(contig, 1, 30)); oneLargeSpan.add(new SimpleFeature(contig, 1, 30));
createTestsForFeatures(oneLargeSpan); createTestsForFeatures(oneLargeSpan);
} }
// test in the presence of a partially spanning element // test in the presence of a partially spanning element
{ {
List<Feature> partialSpanStart = new ArrayList<Feature>(handPickedFeatures); List<Feature> partialSpanStart = new ArrayList<Feature>(handPickedFeatures);
partialSpanStart.add(new BasicFeature(contig, 1, 6)); partialSpanStart.add(new SimpleFeature(contig, 1, 6));
createTestsForFeatures(partialSpanStart); createTestsForFeatures(partialSpanStart);
} }
// test in the presence of a partially spanning element at the end // test in the presence of a partially spanning element at the end
{ {
List<Feature> partialSpanEnd = new ArrayList<Feature>(handPickedFeatures); List<Feature> partialSpanEnd = new ArrayList<Feature>(handPickedFeatures);
partialSpanEnd.add(new BasicFeature(contig, 10, 30)); partialSpanEnd.add(new SimpleFeature(contig, 10, 30));
createTestsForFeatures(partialSpanEnd); createTestsForFeatures(partialSpanEnd);
} }

View File

@ -40,7 +40,7 @@
<artifactId>log4j</artifactId> <artifactId>log4j</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>picard</groupId> <groupId>com.github.broadinstitute</groupId>
<artifactId>picard</artifactId> <artifactId>picard</artifactId>
</dependency> </dependency>
<!-- <!--

View File

@ -44,8 +44,8 @@
<test.listeners>org.testng.reporters.FailedReporter,org.testng.reporters.JUnitXMLReporter,org.broadinstitute.gatk.utils.TestNGTestTransformer,org.broadinstitute.gatk.utils.GATKTextReporter,org.uncommons.reportng.HTMLReporter</test.listeners> <test.listeners>org.testng.reporters.FailedReporter,org.testng.reporters.JUnitXMLReporter,org.broadinstitute.gatk.utils.TestNGTestTransformer,org.broadinstitute.gatk.utils.GATKTextReporter,org.uncommons.reportng.HTMLReporter</test.listeners>
<!-- Version numbers for picard and htsjdk --> <!-- Version numbers for picard and htsjdk -->
<htsjdk.version>1.128.1696</htsjdk.version> <htsjdk.version>1.132</htsjdk.version>
<picard.version>1.128.1678</picard.version> <picard.version>1.131</picard.version>
</properties> </properties>
<!-- Dependency configuration (versions, etc.) --> <!-- Dependency configuration (versions, etc.) -->
@ -67,7 +67,7 @@
<version>1.0-r139</version> <version>1.0-r139</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>samtools</groupId> <groupId>com.github.samtools</groupId>
<artifactId>htsjdk</artifactId> <artifactId>htsjdk</artifactId>
<version>${htsjdk.version}</version> <version>${htsjdk.version}</version>
<exclusions> <exclusions>
@ -82,7 +82,7 @@
</exclusions> </exclusions>
</dependency> </dependency>
<dependency> <dependency>
<groupId>picard</groupId> <groupId>com.github.broadinstitute</groupId>
<artifactId>picard</artifactId> <artifactId>picard</artifactId>
<version>${picard.version}</version> <version>${picard.version}</version>
</dependency> </dependency>

View File

@ -43,9 +43,9 @@ public class SplitSamFileIntegrationTest extends WalkerTest {
" --outputRoot " + prefix, " --outputRoot " + prefix,
Collections.<String>emptyList() Collections.<String>emptyList()
); );
addSplitOutput(spec, prefix, "NA12878", "b1a57327a3f0bdbe167dbc7d547f1247"); addSplitOutput(spec, prefix, "NA12878", "ffb8a1e76798fa78c9ffe46abc02e92f");
addSplitOutput(spec, prefix, "NA12891", "3bb331fd468fc91c548f38857473f399"); addSplitOutput(spec, prefix, "NA12891", "42154dc36451dfe98922a579d329bbe2");
addSplitOutput(spec, prefix, "NA12892", "ac61ae9cd168ac15e3a03fe7ab51fb22"); addSplitOutput(spec, prefix, "NA12892", "6abb5d11e615310987da22212dd9fc84");
executeTest("testSplitSamFile", spec); executeTest("testSplitSamFile", spec);
} }

View File

@ -22,7 +22,7 @@
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>samtools</groupId> <groupId>com.github.samtools</groupId>
<artifactId>htsjdk</artifactId> <artifactId>htsjdk</artifactId>
</dependency> </dependency>
<dependency> <dependency>

View File

@ -44,15 +44,22 @@ public class BeagleFeature implements Feature {
Allele AlleleA; Allele AlleleA;
Allele AlleleB; Allele AlleleB;
@Override
public String getChr() { public String getChr() {
return getContig();
}
@Override
public String getContig() {
return chr; return chr;
} }
@Override
public int getStart() { public int getStart() {
return start; return start;
} }
@Override
public int getEnd() { public int getEnd() {
return end; return end;
} }

View File

@ -106,6 +106,14 @@ public class RawHapMapFeature implements Feature {
* @return a string representing the contig * @return a string representing the contig
*/ */
public String getChr() { public String getChr() {
return getContig();
}
/**
* get the contig value
* @return a string representing the contig
*/
public String getContig() {
return contig; return contig;
} }

View File

@ -309,14 +309,22 @@ public class RefSeqFeature implements Transcript, Feature {
this.name = name; this.name = name;
} }
@Override
public String getChr() { public String getChr() {
return getContig();
}
@Override
public String getContig() {
return transcript_interval.getContig(); return transcript_interval.getContig();
} }
@Override
public int getStart() { public int getStart() {
return transcript_interval.getStart(); return transcript_interval.getStart();
} }
@Override
public int getEnd() { public int getEnd() {
return transcript_interval.getStop(); return transcript_interval.getStop();
} }

View File

@ -66,7 +66,13 @@ public class SAMPileupFeature implements Feature {
*/ */
SAMPileupFeature() {} SAMPileupFeature() {}
@Override
public String getChr() { public String getChr() {
return getContig();
}
@Override
public String getContig() {
return contig; return contig;
} }
@ -74,6 +80,7 @@ public class SAMPileupFeature implements Feature {
this.contig = chr; this.contig = chr;
} }
@Override
public int getStart() { public int getStart() {
return start; return start;
} }
@ -82,6 +89,7 @@ public class SAMPileupFeature implements Feature {
this.start = start; this.start = start;
} }
@Override
public int getEnd() { public int getEnd() {
return stop; return stop;
} }

View File

@ -150,6 +150,14 @@ public class SAMReadFeature implements Feature {
* @return Aligned contig name. * @return Aligned contig name.
*/ */
public String getChr() { public String getChr() {
return getContig();
}
/**
* An alias for getReferenceName, required by Feature interface.
* @return Aligned contig name.
*/
public String getContig() {
return getReferenceName(); return getReferenceName();
} }

View File

@ -53,6 +53,11 @@ public class TableFeature implements Feature {
@Override @Override
public String getChr() { public String getChr() {
return getContig();
}
@Override
public String getContig() {
return position.getContig(); return position.getContig();
} }

View File

@ -82,7 +82,13 @@ public abstract class GATKFeature implements Feature, HasGenomeLocation {
/** Return the features reference sequence name, e.g chromosome or contig */ /** Return the features reference sequence name, e.g chromosome or contig */
@Override @Override
public String getChr() { public String getChr() {
return feature.getChr(); return getContig();
}
/** Return the features reference sequence name, e.g chromosome or contig */
@Override
public String getContig() {
return feature.getContig();
} }
/** Return the start position in 1-based coordinates (first base is 1) */ /** Return the start position in 1-based coordinates (first base is 1) */

View File

@ -29,8 +29,8 @@ package org.broadinstitute.gatk.utils;
import htsjdk.samtools.SAMFileHeader; import htsjdk.samtools.SAMFileHeader;
import htsjdk.samtools.SAMSequenceDictionary; import htsjdk.samtools.SAMSequenceDictionary;
import htsjdk.samtools.SAMSequenceRecord; import htsjdk.samtools.SAMSequenceRecord;
import htsjdk.tribble.BasicFeature;
import htsjdk.tribble.Feature; import htsjdk.tribble.Feature;
import htsjdk.tribble.SimpleFeature;
import org.broadinstitute.gatk.utils.BaseTest; import org.broadinstitute.gatk.utils.BaseTest;
import org.broadinstitute.gatk.utils.exceptions.ReviewedGATKException; import org.broadinstitute.gatk.utils.exceptions.ReviewedGATKException;
import org.broadinstitute.gatk.utils.exceptions.UserException; import org.broadinstitute.gatk.utils.exceptions.UserException;
@ -421,7 +421,7 @@ public class GenomeLocParserUnitTest extends BaseTest {
@Test @Test
public void testCreationFromFeature() { public void testCreationFromFeature() {
final Feature feature = new BasicFeature("chr1", 1, 5); final Feature feature = new SimpleFeature("chr1", 1, 5);
final GenomeLoc loc = genomeLocParser.createGenomeLoc(feature); final GenomeLoc loc = genomeLocParser.createGenomeLoc(feature);
Assert.assertEquals(loc.getContig(), feature.getChr()); Assert.assertEquals(loc.getContig(), feature.getChr());
Assert.assertEquals(loc.getStart(), feature.getStart()); Assert.assertEquals(loc.getStart(), feature.getStart());

View File

@ -1046,7 +1046,18 @@ public class IntervalUtilsUnitTest extends BaseTest {
}; };
} }
@Test(dataProvider="invalidIntervalTestData") /*
* This test is disabled because its assumption that we will not throw an error
* upon parsing invalid Picard intervals is no longer true, as htsjdk has added
* extra protection against invalid intervals to IntervalList.add().
*
* We should reconsider our decision in IntervalUtils.intervalFileToList() to
* silently ignore invalid intervals when parsing Picard interval files, as it's
* inconsistent with the way we handle invalid intervals for GATK interval files
* (throw a UserException, covered by testInvalidGATKFileIntervalHandling() below),
* and update this test accordingly.
*/
@Test(dataProvider="invalidIntervalTestData", enabled = false)
public void testInvalidPicardIntervalHandling(GenomeLocParser genomeLocParser, public void testInvalidPicardIntervalHandling(GenomeLocParser genomeLocParser,
String contig, int intervalStart, int intervalEnd ) throws Exception { String contig, int intervalStart, int intervalEnd ) throws Exception {

View File

@ -316,6 +316,11 @@ class FakeRODatum extends GATKFeature implements ReferenceOrderedDatum {
@Override @Override
public String getChr() { public String getChr() {
return getContig();
}
@Override
public String getContig() {
return location.getContig(); return location.getContig();
} }

View File

@ -1,34 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>picard</groupId>
<artifactId>picard</artifactId>
<version>1.128.1678</version>
<name>picard</name>
<dependencies>
<dependency>
<groupId>samtools</groupId>
<artifactId>htsjdk</artifactId>
<version>1.128.1696</version>
</dependency>
<!-- TODO: Picard is using a custom zip with just ant's BZip2 classes. See also: http://www.kohsuke.org/bzip2 -->
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.8.2</version>
<exclusions>
<exclusion>
<groupId>org.apache.ant</groupId>
<artifactId>ant-launcher</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.sun</groupId>
<artifactId>tools.jar</artifactId>
<version>1.5</version>
<scope>system</scope>
<systemPath>${java.home}/../lib/tools.jar</systemPath>
</dependency>
</dependencies>
</project>

View File

@ -1,27 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>samtools</groupId>
<artifactId>htsjdk</artifactId>
<version>1.128.1696</version>
<name>htsjdk</name>
<dependencies>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>5.5</version>
<classifier>jdk15</classifier>
</dependency>
<dependency>
<groupId>org.xerial.snappy</groupId>
<artifactId>snappy-java</artifactId>
<version>1.0.3-rc3</version>
</dependency>
<!-- TODO: This artifact is only in the GATK local repo, not in central, yet. -->
<dependency>
<groupId>com.google.code.cofoja</groupId>
<artifactId>cofoja</artifactId>
<version>1.0-r139</version>
</dependency>
</dependencies>
</project>