a) Cleanups/bug fixes to previous commit to CombineVariants.
b) Change md5 to reflect records that are now merged correctly. c) Change unit merge alleles test to reflect the fact that a null non-variant vc object is not valid and not supported because there's no way to codify such object in a vcf. The code correctly converts this to a non-variant single-base event with whatever the reference is at that location.
This commit is contained in:
parent
cd058dd10f
commit
203517fbb7
|
|
@ -233,7 +233,7 @@ public class CombineVariants extends RodWalker<Integer, Integer> {
|
||||||
|
|
||||||
if (minimumN > 1 && (vcs.size() - numFilteredRecords < minimumN))
|
if (minimumN > 1 && (vcs.size() - numFilteredRecords < minimumN))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
List<VariantContext> mergedVCs = new ArrayList<VariantContext>();
|
List<VariantContext> mergedVCs = new ArrayList<VariantContext>();
|
||||||
Map<VariantContext.Type, List<VariantContext>> VCsByType = VariantContextUtils.separateVariantContextsByType(vcs);
|
Map<VariantContext.Type, List<VariantContext>> VCsByType = VariantContextUtils.separateVariantContextsByType(vcs);
|
||||||
// iterate over the types so that it's deterministic
|
// iterate over the types so that it's deterministic
|
||||||
|
|
@ -248,7 +248,6 @@ public class CombineVariants extends RodWalker<Integer, Integer> {
|
||||||
// only operate at the start of events
|
// only operate at the start of events
|
||||||
if ( mergedVC == null )
|
if ( mergedVC == null )
|
||||||
continue;
|
continue;
|
||||||
System.out.println(mergedVC.toString());
|
|
||||||
|
|
||||||
HashMap<String, Object> attributes = new HashMap<String, Object>(mergedVC.getAttributes());
|
HashMap<String, Object> attributes = new HashMap<String, Object>(mergedVC.getAttributes());
|
||||||
// re-compute chromosome counts
|
// re-compute chromosome counts
|
||||||
|
|
|
||||||
|
|
@ -1495,7 +1495,7 @@ public class VariantContext implements Feature { // to enable tribble intergrati
|
||||||
|
|
||||||
// Do not change the filter state if filters were not applied to this context
|
// Do not change the filter state if filters were not applied to this context
|
||||||
Set<String> inputVCFilters = inputVC.filtersWereAppliedToContext ? inputVC.getFilters() : null;
|
Set<String> inputVCFilters = inputVC.filtersWereAppliedToContext ? inputVC.getFilters() : null;
|
||||||
return new VariantContext(inputVC.getSource(), inputVC.getChr(), inputVC.getStart(), inputVC.getEnd(), alleles, genotypes, inputVC.getNegLog10PError(), inputVCFilters, inputVC.getAttributes());
|
return new VariantContext(inputVC.getSource(), inputVC.getChr(), inputVC.getStart(), inputVC.getEnd(), alleles, genotypes, inputVC.getNegLog10PError(), inputVCFilters, inputVC.getAttributes(),refByte);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return inputVC;
|
return inputVC;
|
||||||
|
|
|
||||||
|
|
@ -789,6 +789,7 @@ public class VariantContextUtils {
|
||||||
// vc has a type different than otherVC and its alleles are a subset of VC: add vc to otherVC's type list and don't add to its own
|
// vc has a type different than otherVC and its alleles are a subset of VC: add vc to otherVC's type list and don't add to its own
|
||||||
mappedVCs.get(type).add(vc);
|
mappedVCs.get(type).add(vc);
|
||||||
addtoOwnList = false;
|
addtoOwnList = false;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -110,7 +110,7 @@ public class CombineVariantsIntegrationTest extends WalkerTest {
|
||||||
" -priority NA19240_BGI,NA19240_ILLUMINA,NA19240_WUGSC,denovoInfo" +
|
" -priority NA19240_BGI,NA19240_ILLUMINA,NA19240_WUGSC,denovoInfo" +
|
||||||
" -genotypeMergeOptions UNIQUIFY -L 1"),
|
" -genotypeMergeOptions UNIQUIFY -L 1"),
|
||||||
1,
|
1,
|
||||||
Arrays.asList("212d9d3df10bb29e2c7fb226da422dc0"));
|
Arrays.asList("b14f8cbb5d03a2e613b12da4da9efd9a"));
|
||||||
executeTest("threeWayWithRefs", spec);
|
executeTest("threeWayWithRefs", spec);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ import java.io.FileNotFoundException;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
public class VariantContextUtilsUnitTest extends BaseTest {
|
public class VariantContextUtilsUnitTest extends BaseTest {
|
||||||
Allele Aref, T, C, delRef, ATC, ATCATC;
|
Allele Aref, T, C, delRef, Cref, ATC, ATCATC;
|
||||||
private GenomeLocParser genomeLocParser;
|
private GenomeLocParser genomeLocParser;
|
||||||
|
|
||||||
@BeforeSuite
|
@BeforeSuite
|
||||||
|
|
@ -54,6 +54,7 @@ public class VariantContextUtilsUnitTest extends BaseTest {
|
||||||
|
|
||||||
// alleles
|
// alleles
|
||||||
Aref = Allele.create("A", true);
|
Aref = Allele.create("A", true);
|
||||||
|
Cref = Allele.create("C", true);
|
||||||
delRef = Allele.create("-", true);
|
delRef = Allele.create("-", true);
|
||||||
T = Allele.create("T");
|
T = Allele.create("T");
|
||||||
C = Allele.create("C");
|
C = Allele.create("C");
|
||||||
|
|
@ -94,7 +95,7 @@ public class VariantContextUtilsUnitTest extends BaseTest {
|
||||||
int stop = start; // alleles.contains(ATC) ? start + 3 : start;
|
int stop = start; // alleles.contains(ATC) ? start + 3 : start;
|
||||||
return new VariantContext(source, "1", start, stop, alleles,
|
return new VariantContext(source, "1", start, stop, alleles,
|
||||||
genotypes == null ? null : VariantContext.genotypeCollectionToMap(new TreeMap<String, Genotype>(), genotypes),
|
genotypes == null ? null : VariantContext.genotypeCollectionToMap(new TreeMap<String, Genotype>(), genotypes),
|
||||||
1.0, filters, null, (byte)'C');
|
1.0, filters, null, Cref.getBases()[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// --------------------------------------------------------------------------------
|
// --------------------------------------------------------------------------------
|
||||||
|
|
@ -148,8 +149,10 @@ public class VariantContextUtilsUnitTest extends BaseTest {
|
||||||
Arrays.asList(Aref, C),
|
Arrays.asList(Aref, C),
|
||||||
Arrays.asList(Aref, C, T)); // sorted by allele
|
Arrays.asList(Aref, C, T)); // sorted by allele
|
||||||
|
|
||||||
|
// The following is actually a pathological case - there's no way on a vcf to represent a null allele that's non-variant.
|
||||||
|
// The code converts this (correctly) to a single-base non-variant vc with whatever base was there as a reference.
|
||||||
new MergeAllelesTest(Arrays.asList(delRef),
|
new MergeAllelesTest(Arrays.asList(delRef),
|
||||||
Arrays.asList(delRef)); // todo -- FIXME me GdA
|
Arrays.asList(Cref));
|
||||||
|
|
||||||
new MergeAllelesTest(Arrays.asList(delRef),
|
new MergeAllelesTest(Arrays.asList(delRef),
|
||||||
Arrays.asList(delRef, ATC),
|
Arrays.asList(delRef, ATC),
|
||||||
|
|
@ -186,6 +189,14 @@ public class VariantContextUtilsUnitTest extends BaseTest {
|
||||||
inputs, priority,
|
inputs, priority,
|
||||||
VariantContextUtils.FilteredRecordMergeType.KEEP_IF_ANY_UNFILTERED,
|
VariantContextUtils.FilteredRecordMergeType.KEEP_IF_ANY_UNFILTERED,
|
||||||
VariantContextUtils.GenotypeMergeType.PRIORITIZE, false, false, "set", false, false);
|
VariantContextUtils.GenotypeMergeType.PRIORITIZE, false, false, "set", false, false);
|
||||||
|
System.out.println("expected:");
|
||||||
|
System.out.println(cfg.expected.toString());
|
||||||
|
System.out.println("inputs");
|
||||||
|
for (VariantContext vc:inputs)
|
||||||
|
System.out.println(vc.toString());
|
||||||
|
System.out.println("merged:");
|
||||||
|
System.out.println(merged.toString());
|
||||||
|
|
||||||
Assert.assertEquals(merged.getAlleles(), cfg.expected);
|
Assert.assertEquals(merged.getAlleles(), cfg.expected);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue