+
+ // prepare ref, alt, filter, info, format
+ memset(&s, 0, sizeof(kstring_t)); kputc('\0', &s);
+ kputs(b->ref, &s); kputc('\0', &s);
+ kputs(b->alt, &s); kputc('\0', &s); kputc('\0', &s);
+ {
+ kstring_t info; memset(&info, 0, sizeof(kstring_t));
+ int an=0, nalts=0;
+ for (i=0; i<nals; i++)
+ {
+ an += ac[i];
+ if ( i>0 && ac[i] ) nalts++;
+ }
+ ksprintf(&info, "AN=%d;", an);
+ if ( nalts )
+ {
+ kputs("AC=", &info);
+ for (i=1; i<nals; i++)
+ {
+ if ( !(gts&1<<i) ) continue;
+ nalts--;
+ ksprintf(&info,"%d", ac[i]);
+ if ( nalts>0 ) kputc(',', &info);
+ }
+ kputc(';', &info);
+ }
+ kputs(b->info, &info);
+ info.l -= remove_tag(info.s, "I16=", ';');
+ info.l -= remove_tag(info.s, "QS=", ';');
+ kputc('\0', &info);
+ kputs(info.s, &s); kputc('\0', &s);
+ free(info.s);
+ }
+ kputs(b->fmt, &s); kputc('\0', &s);
+ free(b->str);
+ b->m_str = s.m; b->l_str = s.l; b->str = s.s;
+ b->qual = -4.343*(log(1-exp(max_lk-lk_sum)));
+ if ( b->qual>999 ) b->qual = 999;