private double getLog10GQ(List<Allele> genotypeAlleles,List<Allele> contextAlleles) { int allele1Index = contextAlleles.indexOf(genotypeAlleles.get(0)); int allele2Index = contextAlleles.indexOf(genotypeAlleles.get(1)); int plIndex = calculatePLindex(allele1Index,allele2Index); return getGQLog10FromLikelihoods(plIndex,getAsVector()); }
private double getLog10GQ(List<Allele> genotypeAlleles,List<Allele> contextAlleles) { int allele1Index = contextAlleles.indexOf(genotypeAlleles.get(0)); int allele2Index = contextAlleles.indexOf(genotypeAlleles.get(1)); int plIndex = calculatePLindex(allele1Index,allele2Index); return getGQLog10FromLikelihoods(plIndex,getAsVector()); }
/** * This is really dangerous and returns completely wrong results for genotypes from a multi-allelic context. * Use getLog10GQ(Genotype,VariantContext) or getLog10GQ(Genotype,List<Allele>) in place of it. * * If you **know** you're biallelic, use getGQLog10FromLikelihoods directly. * @param genotype - actually a genotype type (no call, hom ref, het, hom var) * @return an unsafe quantity that could be negative. In the bi-allelic case, the GQ resulting from best minus next best (if the type is the best). */ @Deprecated public double getLog10GQ(GenotypeType genotype){ return getGQLog10FromLikelihoods(genotype.ordinal() - 1 /* NO_CALL IS FIRST */, getAsVector()); }
@Requires({"genotypeAlleles != null","genotypeAlleles.size()==2","contextAlleles != null","contextAlleles.size() >= 1"}) private double getLog10GQ(List<Allele> genotypeAlleles,List<Allele> contextAlleles) { int allele1Index = contextAlleles.indexOf(genotypeAlleles.get(0)); int allele2Index = contextAlleles.indexOf(genotypeAlleles.get(1)); int plIndex = calculatePLindex(allele1Index,allele2Index); return getGQLog10FromLikelihoods(plIndex,getAsVector()); }
@Test public void testgetQualFromLikelihoods() { double[] likelihoods = new double[]{-1, 0, -2}; // qual values we expect for each possible "best" genotype double[] expectedQuals = new double[]{-0.04100161, -1, -0.003930294}; for ( int i = 0; i < likelihoods.length; i++ ) { Assert.assertEquals(GenotypeLikelihoods.getGQLog10FromLikelihoods(i, likelihoods), expectedQuals[i], 1e-6, "GQ value for genotype " + i + " was not calculated correctly"); } }
/** * This is really dangerous and returns completely wrong results for genotypes from a multi-allelic context. * Use <code>getLog10GQ(Genotype,VariantContext)</code> * or <code>getLog10GQ(Genotype,List<Allele>)</code> in place of it. * * If you <strong>know</strong> you're biallelic, use <code>getGQLog10FromLikelihoods</code> directly. * @param genotype - actually a genotype type (no call, hom ref, het, hom var) * @return an unsafe quantity that could be negative. In the bi-allelic case, the GQ resulting from best minus next best (if the type is the best). * * @deprecated since 2/5/13 use * {@link GenotypeLikelihoods#getLog10GQ(Genotype, VariantContext)} or * {@link GenotypeLikelihoods#getLog10GQ(Genotype, List)} */ @Deprecated public double getLog10GQ(GenotypeType genotype){ return getGQLog10FromLikelihoods(genotype.ordinal() - 1 /* NO_CALL IS FIRST */, getAsVector()); }
/** * This is really dangerous and returns completely wrong results for genotypes from a multi-allelic context. * Use <code>getLog10GQ(Genotype,VariantContext)</code> * or <code>getLog10GQ(Genotype,List<Allele>)</code> in place of it. * * If you <strong>know</strong> you're biallelic, use <code>getGQLog10FromLikelihoods</code> directly. * @param genotype - actually a genotype type (no call, hom ref, het, hom var) * @return an unsafe quantity that could be negative. In the bi-allelic case, the GQ resulting from best minus next best (if the type is the best). * * @deprecated since 2/5/13 use * {@link GenotypeLikelihoods#getLog10GQ(Genotype, VariantContext)} or * {@link GenotypeLikelihoods#getLog10GQ(Genotype, List)} */ @Deprecated public double getLog10GQ(GenotypeType genotype){ return getGQLog10FromLikelihoods(genotype.ordinal() - 1 /* NO_CALL IS FIRST */, getAsVector()); }
gb.log10PError(GenotypeLikelihoods.getGQLog10FromLikelihoods(PLindex, newLikelihoods));
gb.log10PError(GenotypeLikelihoods.getGQLog10FromLikelihoods(PLindex, newLikelihoods));
gb.log10PError(GenotypeLikelihoods.getGQLog10FromLikelihoods(PLindex, newLikelihoods));
private boolean checkGQIsGood(Genotype genotype) { if ( genotype.hasGQ() ) { return genotype.getGQ() >= minGenotypeQuality; } else if ( genotype.hasLikelihoods() ) { double log10gq = GenotypeLikelihoods.getGQLog10FromLikelihoods(genotype.getType().ordinal()-1,genotype.getLikelihoods().getAsVector()); return QualityUtils.phredScaleLog10ErrorRate(log10gq) >= minGenotypeQuality; } return minGenotypeQuality <= 0; }
newLog10GQ = GenotypeLikelihoods.getGQLog10FromLikelihoods(indexOfMostLikely, GenotypeLikelihoods.fromPLs(newPLs).getAsVector()); } else { newPLs = null;
newLog10GQ = GenotypeLikelihoods.getGQLog10FromLikelihoods(indexOfMostLikely, GenotypeLikelihoods.fromPLs(newPLs).getAsVector()); } else { newPLs = null;
gb.PL(newLikelihoods); final int PLindex = MathUtils.maxElementIndex(newLikelihoods); gb.log10PError(GenotypeLikelihoods.getGQLog10FromLikelihoods(PLindex, newLikelihoods));