Remove variant contig order check
This commit is contained in:
parent
c57c32b915
commit
ed933013fe
|
|
@ -198,12 +198,12 @@ public class ValidateVariantsIntegrationTest extends WalkerTest {
|
|||
}
|
||||
|
||||
@Test(description = "Checks out of order header contigs")
|
||||
public void testOutOfOrderHeaderContigsError() {
|
||||
|
||||
public void testOutOfOrderHeaderContigs() {
|
||||
WalkerTestSpec spec = new WalkerTestSpec(
|
||||
baseTestString("complexEvents-outOfOrder.vcf", "ALL", DEFAULT_REGION, b37KGReference),
|
||||
0, UserException.LexicographicallySortedSequenceDictionary.class);
|
||||
executeTest("test out of order header contigs error", spec);
|
||||
0,
|
||||
Arrays.asList(EMPTY_MD5));
|
||||
executeTest("test out of order header contigs", spec);
|
||||
}
|
||||
|
||||
@Test(description = "Fixes '''bug''' reported in story https://www.pivotaltracker.com/story/show/68725164")
|
||||
|
|
|
|||
|
|
@ -893,7 +893,7 @@ public class GenomeAnalysisEngine {
|
|||
|
||||
// compare the reads to the reference
|
||||
SequenceDictionaryUtils.validateDictionaries(logger, getArguments().unsafe, "reads", readsDictionary,
|
||||
"reference", referenceDictionary, true, intervals);
|
||||
"reference", referenceDictionary, true, intervals, true);
|
||||
}
|
||||
|
||||
for (ReferenceOrderedDataSource rod : rods)
|
||||
|
|
|
|||
|
|
@ -111,6 +111,7 @@ public class SequenceDictionaryUtils {
|
|||
* @param dict2 the sequence dictionary dict2
|
||||
* @param isReadsToReferenceComparison true if one of the dictionaries comes from a reads data source (eg., a BAM),
|
||||
* and the other from a reference data source
|
||||
* @param enableContigOrderCheck enable checking the dictionary contig order
|
||||
* @param intervals the user-specified genomic intervals: only required when isReadsToReferenceComparison is true,
|
||||
* otherwise can be null
|
||||
*/
|
||||
|
|
@ -121,9 +122,10 @@ public class SequenceDictionaryUtils {
|
|||
final String name2,
|
||||
final SAMSequenceDictionary dict2,
|
||||
final boolean isReadsToReferenceComparison,
|
||||
final GenomeLocSortedSet intervals ) {
|
||||
final GenomeLocSortedSet intervals,
|
||||
final boolean enableContigOrderCheck ) {
|
||||
|
||||
final SequenceDictionaryCompatibility type = compareDictionaries(dict1, dict2);
|
||||
final SequenceDictionaryCompatibility type = compareDictionaries(dict1, dict2, enableContigOrderCheck);
|
||||
|
||||
switch ( type ) {
|
||||
case IDENTICAL:
|
||||
|
|
@ -227,10 +229,12 @@ public class SequenceDictionaryUtils {
|
|||
*
|
||||
* @param dict1 first sequence dictionary
|
||||
* @param dict2 second sequence dictionary
|
||||
* @param enableContigOrderCheck enable checking the dictionary contig order
|
||||
* @return A SequenceDictionaryCompatibility enum value describing the compatibility of the two dictionaries
|
||||
*/
|
||||
public static SequenceDictionaryCompatibility compareDictionaries( final SAMSequenceDictionary dict1, final SAMSequenceDictionary dict2) {
|
||||
if ( nonCanonicalHumanContigOrder(dict1) || nonCanonicalHumanContigOrder(dict2) )
|
||||
public static SequenceDictionaryCompatibility compareDictionaries( final SAMSequenceDictionary dict1, final SAMSequenceDictionary dict2, final boolean enableContigOrderCheck) {
|
||||
|
||||
if ( enableContigOrderCheck && (nonCanonicalHumanContigOrder(dict1) || nonCanonicalHumanContigOrder(dict2)) )
|
||||
return SequenceDictionaryCompatibility.NON_CANONICAL_HUMAN_ORDER;
|
||||
|
||||
final Set<String> commonContigs = getCommonContigsByName(dict1, dict2);
|
||||
|
|
@ -239,7 +243,7 @@ public class SequenceDictionaryUtils {
|
|||
return SequenceDictionaryCompatibility.NO_COMMON_CONTIGS;
|
||||
else if ( ! commonContigsHaveSameLengths(commonContigs, dict1, dict2) )
|
||||
return SequenceDictionaryCompatibility.UNEQUAL_COMMON_CONTIGS;
|
||||
else if ( ! commonContigsAreInSameRelativeOrder(commonContigs, dict1, dict2) )
|
||||
else if ( enableContigOrderCheck && ! commonContigsAreInSameRelativeOrder(commonContigs, dict1, dict2) )
|
||||
return SequenceDictionaryCompatibility.OUT_OF_ORDER;
|
||||
else if ( commonContigs.size() == dict1.size() && commonContigs.size() == dict2.size() )
|
||||
return SequenceDictionaryCompatibility.IDENTICAL;
|
||||
|
|
|
|||
|
|
@ -108,7 +108,7 @@ public class IndexDictionaryUtils {
|
|||
Set<String> trackSequences = new TreeSet<String>();
|
||||
for (SAMSequenceRecord dictionaryEntry : trackDict.getSequences())
|
||||
trackSequences.add(dictionaryEntry.getSequenceName());
|
||||
SequenceDictionaryUtils.validateDictionaries(logger, validationExclusionType, trackName, trackDict, "reference", referenceDict, false, null);
|
||||
SequenceDictionaryUtils.validateDictionaries(logger, validationExclusionType, trackName, trackDict, "reference", referenceDict, false, null, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -182,7 +182,7 @@ public class RMDTrackBuilder { // extends PluginManager<FeatureCodec> {
|
|||
final SAMSequenceDictionary vcfDictionary = new SAMSequenceDictionary(vcfContigRecords);
|
||||
final SAMSequenceDictionary sequenceDictionary = new SAMSequenceDictionary(dict.getSequences());
|
||||
|
||||
SequenceDictionaryUtils.validateDictionaries(logger, validationExclusionType, name, vcfDictionary, "sequence", sequenceDictionary, false, null);
|
||||
SequenceDictionaryUtils.validateDictionaries(logger, validationExclusionType, name, vcfDictionary, "sequence", sequenceDictionary, false, null, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -181,7 +181,8 @@ public class SequenceDictionaryUtilsUnitTest extends BaseTest {
|
|||
"secondDictionary",
|
||||
secondDictionary,
|
||||
isReadsToReferenceComparison,
|
||||
intervals);
|
||||
intervals,
|
||||
true);
|
||||
}
|
||||
catch ( Exception e ) {
|
||||
exceptionThrown = e;
|
||||
|
|
@ -218,7 +219,7 @@ public class SequenceDictionaryUtilsUnitTest extends BaseTest {
|
|||
SequenceDictionaryUtils.getDictionaryAsString(secondDictionary));
|
||||
|
||||
final SequenceDictionaryUtils.SequenceDictionaryCompatibility reportedCompatibility =
|
||||
SequenceDictionaryUtils.compareDictionaries(firstDictionary, secondDictionary);
|
||||
SequenceDictionaryUtils.compareDictionaries(firstDictionary, secondDictionary, true);
|
||||
|
||||
Assert.assertTrue(reportedCompatibility == dictionaryCompatibility,
|
||||
String.format("Dictionary comparison should have returned %s but instead returned %s. %s",
|
||||
|
|
|
|||
Loading…
Reference in New Issue