X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=bcftools%2Fprob1.c;h=5051cc3cece3770e4e4e61e1934c8cfff79998dc;hb=70c740facc966321754c6bfcc6d61ea056480638;hp=e3d6b5eb42fee41bb3b2e8f392b5ae38d1934bc5;hpb=a71383ee344af03b1d8084a7ed8752a12f68e8e7;p=samtools.git diff --git a/bcftools/prob1.c b/bcftools/prob1.c index e3d6b5e..5051cc3 100644 --- a/bcftools/prob1.c +++ b/bcftools/prob1.c @@ -300,10 +300,12 @@ int call_multiallelic_gt(bcf1_t *b, bcf_p1aux_t *ma, double threshold) int isample, ibb = (ib+1)*(ib+2)/2-1, iab = iaa - ia + ib; for (isample=0; isamplen; isample++) { - if ( b->ploidy && b->ploidy[isample]==1 ) continue; double *p = pdg + isample*npdg; //assert( log(fa*p[iaa] + fb*p[ibb] + fab*p[iab]) <= 0 ); - lk_tot += log(fa*p[iaa] + fb*p[ibb] + fab*p[iab]); + if ( b->ploidy && b->ploidy[isample]==1 ) + lk_tot += log(fa*p[iaa] + fb*p[ibb]); + else + lk_tot += log(fa*p[iaa] + fb*p[ibb] + fab*p[iab]); } if ( max_lkn; isample++) { - if ( b->ploidy && b->ploidy[isample]==1 ) continue; double *p = pdg + isample*npdg; //assert( log(fa*p[iaa] + fb*p[ibb] + fc*p[icc] + fab*p[iab] + fac*p[iac] + fbc*p[ibc]) <= 0 ); - lk_tot += log(fa*p[iaa] + fb*p[ibb] + fc*p[icc] + fab*p[iab] + fac*p[iac] + fbc*p[ibc]); + if ( b->ploidy && b->ploidy[isample]==1 ) + lk_tot += log(fa*p[iaa] + fb*p[ibb] + fc*p[icc]); + else + lk_tot += log(fa*p[iaa] + fb*p[ibb] + fc*p[icc] + fab*p[iab] + fac*p[iac] + fbc*p[ibc]); } if ( max_lk