]> git.donarmstrong.com Git - samtools.git/blobdiff - bam_md.c
added "const" to bcf_p1_cal()
[samtools.git] / bam_md.c
index 1fa903e8a401ea960d8ea48f6d7289b157e2eea5..02d6c5bf7ea5b595709a5840bca387fef4d66add 100644 (file)
--- a/bam_md.c
+++ b/bam_md.c
@@ -9,6 +9,8 @@
 #include "kaln.h"
 #include "kprobaln.h"
 
+char bam_nt16_nt4_table[] = { 4, 0, 1, 4, 2, 4, 4, 4, 3, 4, 4, 4, 4, 4, 4, 4 };
+
 void bam_fillmd1_core(bam1_t *b, char *ref, int is_equal, int max_nm)
 {
        uint8_t *seq = bam1_seq(b);
@@ -221,8 +223,10 @@ int bam_prob_realn_core(bam1_t *b, const char *ref, int flag)
                s = calloc(c->l_qseq, 1);
                for (i = 0; i < c->l_qseq; ++i) s[i] = bam_nt16_nt4_table[bam1_seqi(seq, i)];
                r = calloc(xe - xb, 1);
-               for (i = xb; i < xe; ++i)
+               for (i = xb; i < xe; ++i) {
+                       if (ref[i] == 0) { xe = i; break; }
                        r[i-xb] = bam_nt16_nt4_table[bam_nt16_table[(int)ref[i]]];
+               }
                state = calloc(c->l_qseq, sizeof(int));
                q = calloc(c->l_qseq, 1);
                kpa_glocal(r, xe-xb, s, c->l_qseq, qual, &conf, state, q);