The genotypeCounts array wasn't always being initialized before it was accessed, leading to a NPE (which got caught and thrown as a JEXL expression when used in selection). Added unit test to cover all genotype count methods.
This commit is contained in:
parent
db41d10f54
commit
05b44dd017
|
|
@ -922,6 +922,7 @@ public class VariantContext implements Feature { // to enable tribble intergrati
|
||||||
* @return number of hom var calls
|
* @return number of hom var calls
|
||||||
*/
|
*/
|
||||||
public int getHomVarCount() {
|
public int getHomVarCount() {
|
||||||
|
calculateGenotypeCounts();
|
||||||
return genotypeCounts[Genotype.Type.HOM_VAR.ordinal()];
|
return genotypeCounts[Genotype.Type.HOM_VAR.ordinal()];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -931,6 +932,7 @@ public class VariantContext implements Feature { // to enable tribble intergrati
|
||||||
* @return number of mixed calls
|
* @return number of mixed calls
|
||||||
*/
|
*/
|
||||||
public int getMixedCount() {
|
public int getMixedCount() {
|
||||||
|
calculateGenotypeCounts();
|
||||||
return genotypeCounts[Genotype.Type.MIXED.ordinal()];
|
return genotypeCounts[Genotype.Type.MIXED.ordinal()];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -468,6 +468,28 @@ public class VariantContextUnitTest extends BaseTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
public void testGetGenotypeCounts() {
|
||||||
|
List<Allele> alleles = Arrays.asList(Aref, T);
|
||||||
|
Genotype g1 = new Genotype("AA", Arrays.asList(Aref, Aref));
|
||||||
|
Genotype g2 = new Genotype("AT", Arrays.asList(Aref, T));
|
||||||
|
Genotype g3 = new Genotype("TT", Arrays.asList(T, T));
|
||||||
|
Genotype g4 = new Genotype("A.", Arrays.asList(Aref, Allele.NO_CALL));
|
||||||
|
Genotype g5 = new Genotype("..", Arrays.asList(Allele.NO_CALL, Allele.NO_CALL));
|
||||||
|
|
||||||
|
// we need to create a new VariantContext each time
|
||||||
|
VariantContext vc = new VariantContextBuilder("foo", snpLoc, snpLocStart, snpLocStop, alleles).genotypes(g1,g2,g3,g4,g5).make();
|
||||||
|
Assert.assertEquals(1, vc.getHetCount());
|
||||||
|
vc = new VariantContextBuilder("foo", snpLoc, snpLocStart, snpLocStop, alleles).genotypes(g1,g2,g3,g4,g5).make();
|
||||||
|
Assert.assertEquals(1, vc.getHomRefCount());
|
||||||
|
vc = new VariantContextBuilder("foo", snpLoc, snpLocStart, snpLocStop, alleles).genotypes(g1,g2,g3,g4,g5).make();
|
||||||
|
Assert.assertEquals(1, vc.getHomVarCount());
|
||||||
|
vc = new VariantContextBuilder("foo", snpLoc, snpLocStart, snpLocStop, alleles).genotypes(g1,g2,g3,g4,g5).make();
|
||||||
|
Assert.assertEquals(1, vc.getMixedCount());
|
||||||
|
vc = new VariantContextBuilder("foo", snpLoc, snpLocStart, snpLocStop, alleles).genotypes(g1,g2,g3,g4,g5).make();
|
||||||
|
Assert.assertEquals(1, vc.getNoCallCount());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
public void testVCFfromGenotypes() {
|
public void testVCFfromGenotypes() {
|
||||||
List<Allele> alleles = Arrays.asList(Aref, T, del);
|
List<Allele> alleles = Arrays.asList(Aref, T, del);
|
||||||
Genotype g1 = new Genotype("AA", Arrays.asList(Aref, Aref));
|
Genotype g1 = new Genotype("AA", Arrays.asList(Aref, Aref));
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue