X-Git-Url: http://woldlab.caltech.edu/gitweb/?p=samtools.git;a=blobdiff_plain;f=bam_maqcns.c;h=99310362afa0dfa216b7b678b04f2d69d2103150;hp=2f3fc082be79aa0fa3feae9c1d9a03ad44592877;hb=9f4bebab2e0917c676ae739b2d05cb22ad6c4ed5;hpb=62781a2daa24d74a3c590e2669fad1fa7cabf933 diff --git a/bam_maqcns.c b/bam_maqcns.c index 2f3fc08..9931036 100644 --- a/bam_maqcns.c +++ b/bam_maqcns.c @@ -22,8 +22,6 @@ typedef struct { uint32_t c[4]; } glf_call_aux_t; -char bam_nt16_nt4_table[] = { 4, 0, 1, 4, 2, 4, 4, 4, 3, 4, 4, 4, 4, 4, 4, 4 }; - /* P() = \theta \sum_{i=1}^{N-1} 1/i P(D|) = \sum_{k=1}^{N-1} p_k 1/2 [(k/N)^n_2(1-k/N)^n_1 + (k/N)^n1(1-k/N)^n_2] @@ -154,7 +152,7 @@ glf1_t *bam_maqcns_glfgen(int _n, const bam_pileup1_t *pl, uint8_t ref_base, bam const bam_pileup1_t *p = pl + i; uint32_t q, x = 0, qq; uint16_t y = 0; - if (p->is_del || (p->b->core.flag&BAM_FUNMAP)) continue; + if (p->is_del || p->is_refskip || (p->b->core.flag&BAM_FUNMAP)) continue; q = (uint32_t)bam1_qual(p->b)[p->qpos]; if (q < bm->min_baseQ) continue; x |= (uint32_t)bam1_strand(p->b) << 18 | q << 8 | p->b->core.qual; @@ -166,7 +164,7 @@ glf1_t *bam_maqcns_glfgen(int _n, const bam_pileup1_t *pl, uint8_t ref_base, bam y |= q << 5; qq = bam1_seqi(bam1_seq(p->b), p->qpos); q = bam_nt16_nt4_table[qq? qq : ref_base]; - if (!p->is_del && q < 4) x |= 1 << 21 | q << 16, y |= q; + if (!p->is_del && !p->is_refskip && q < 4) x |= 1 << 21 | q << 16, y |= q; bm->aux->info16[n] = y; bm->aux->info[n++] = x; }