/** * Get the GenotypeLikelihoods with the least strong corresponding GQ value * @param gl1 first to consider (cannot be null) * @param gl2 second to consider (cannot be null) * @return gl1 or gl2, whichever has the worst GQ */ protected final GenotypeLikelihoods getGLwithWorstGQ(final GenotypeLikelihoods gl1, final GenotypeLikelihoods gl2) { return gl1.getLog10GQ(GenotypeType.HOM_REF) > gl2.getLog10GQ(GenotypeType.HOM_REF) ? gl1 : gl2; }
public double getLog10GQ(Genotype genotype, List<Allele> vcAlleles ) { return getLog10GQ(genotype.getAlleles(),vcAlleles); }
public double getLog10GQ(Genotype genotype, List<Allele> vcAlleles ) { return getLog10GQ(genotype.getAlleles(),vcAlleles); }
public double getLog10GQ(Genotype genotype, VariantContext context) { return getLog10GQ(genotype,context.getAlleles()); }
public double getLog10GQ(Genotype genotype, VariantContext context) { return getLog10GQ(genotype,context.getAlleles()); }
public double getLog10GQ(Genotype genotype, List<Allele> vcAlleles ) { return getLog10GQ(genotype.getAlleles(),vcAlleles); }
public double getLog10GQ(Genotype genotype, VariantContext context) { return getLog10GQ(genotype,context.getAlleles()); }
public void testGetQualFromLikelihoodsMultiAllelicBroken() { GenotypeLikelihoods gl = GenotypeLikelihoods.fromLog10Likelihoods(triAllelic); double actualGQ = gl.getLog10GQ(GenotypeType.HET); double expectedGQ = 1.6; Assert.assertEquals(actualGQ,expectedGQ); }
@Test public void testGetLog10GQ(){ GenotypeLikelihoods gl = GenotypeLikelihoods.fromPLField(vPLString); //GQ for the best guess genotype Assert.assertEquals(gl.getLog10GQ(GenotypeType.HET),-3.9); double[] test = GeneralUtils.normalizeFromLog10(gl.getAsVector()); //GQ for the other genotypes Assert.assertEquals(gl.getLog10GQ(GenotypeType.HOM_REF), Math.log10(1.0 - test[GenotypeType.HOM_REF.ordinal()-1])); Assert.assertEquals(gl.getLog10GQ(GenotypeType.HOM_VAR), Math.log10(1.0 - test[GenotypeType.HOM_VAR.ordinal()-1])); //Test missing likelihoods gl = GenotypeLikelihoods.fromPLField("."); Assert.assertEquals(gl.getLog10GQ(GenotypeType.HOM_REF),Double.NEGATIVE_INFINITY); Assert.assertEquals(gl.getLog10GQ(GenotypeType.HET),Double.NEGATIVE_INFINITY); Assert.assertEquals(gl.getLog10GQ(GenotypeType.HOM_VAR),Double.NEGATIVE_INFINITY); }
@Test public void testIndelLikelihoods() { GenotypeLikelihoods prev = model.getIndelPLs(HomoSapiensConstants.DEFAULT_PLOIDY,0); Assert.assertEquals(prev.getAsPLs(), new int[]{0, 0, 0}); Assert.assertEquals(-10 * prev.getLog10GQ(GenotypeType.HOM_REF), 0.0); for ( int i = 1; i <= ReferenceConfidenceModel.MAX_N_INDEL_INFORMATIVE_READS; i++ ) { final GenotypeLikelihoods current = model.getIndelPLs(HomoSapiensConstants.DEFAULT_PLOIDY,i); final double prevGQ = -10 * prev.getLog10GQ(GenotypeType.HOM_REF); final double currGQ = -10 * current.getLog10GQ(GenotypeType.HOM_REF); Assert.assertTrue(prevGQ < currGQ, "GQ Failed with prev " + prev + " curr " + current + " at " + i); Assert.assertTrue(prev.getAsPLs()[1] < current.getAsPLs()[1], "het PL failed with prev " + prev + " curr " + current + " at " + i); Assert.assertTrue(prev.getAsPLs()[2] < current.getAsPLs()[2], "hom-var PL Failed with prev " + prev + " curr " + current + " at " + i); // logger.warn("result at " + i + " is " + current); prev = current; } }
public void testGetQualFromLikelihoodsMultiAllelic() { GenotypeLikelihoods gl = GenotypeLikelihoods.fromLog10Likelihoods(triAllelic); Allele ref = Allele.create((byte)'A',true); Allele alt1 = Allele.create((byte)'C'); Allele alt2 = Allele.create((byte)'T'); List<Allele> allAlleles = Arrays.asList(ref,alt1,alt2); List<Allele> gtAlleles = Arrays.asList(alt1,alt2); GenotypeBuilder gtBuilder = new GenotypeBuilder(); gtBuilder.alleles(gtAlleles); double actualGQ = gl.getLog10GQ(gtBuilder.make(),allAlleles); double expectedGQ = 1.6; Assert.assertEquals(actualGQ,expectedGQ); }
log10Error = genotype.getLog10PError(); else log10Error = genotype.getLikelihoods().getLog10GQ(phasedGenotype.getType());