From: Heng Li Date: Tue, 17 Aug 2010 00:53:16 +0000 (+0000) Subject: use float for QUAL X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=af4483bd3b8b7da708baf521a75b6531a0a8bd0a;p=samtools.git use float for QUAL --- diff --git a/bcftools/bcf.c b/bcftools/bcf.c index c331388..e375a1f 100644 --- a/bcftools/bcf.c +++ b/bcftools/bcf.c @@ -146,13 +146,12 @@ int bcf_sync(int n_smpl, bcf1_t *b) int bcf_write(bcf_t *bp, const bcf_hdr_t *h, const bcf1_t *b) { - uint32_t x; int i, l = 0; if (b == 0) return -1; bgzf_write(bp->fp, &b->tid, 4); bgzf_write(bp->fp, &b->pos, 4); - x = b->qual<<24 | b->l_str; - bgzf_write(bp->fp, &x, 4); + bgzf_write(bp->fp, &b->qual, 4); + bgzf_write(bp->fp, &b->l_str, 4); bgzf_write(bp->fp, b->str, b->l_str); l = 12 + b->l_str; for (i = 0; i < b->n_gi; ++i) { @@ -165,12 +164,11 @@ int bcf_write(bcf_t *bp, const bcf_hdr_t *h, const bcf1_t *b) int bcf_read(bcf_t *bp, const bcf_hdr_t *h, bcf1_t *b) { int i, l = 0; - uint32_t x; if (b == 0) return -1; if (bgzf_read(bp->fp, &b->tid, 4) == 0) return -1; bgzf_read(bp->fp, &b->pos, 4); - bgzf_read(bp->fp, &x, 4); - b->qual = x >> 24; b->l_str = x << 8 >> 8; + bgzf_read(bp->fp, &b->qual, 4); + bgzf_read(bp->fp, &b->l_str, 4); if (b->l_str > b->m_str) { b->m_str = b->l_str; kroundup32(b->m_str); diff --git a/bcftools/bcf.h b/bcftools/bcf.h index c317440..8e4ecf9 100644 --- a/bcftools/bcf.h +++ b/bcftools/bcf.h @@ -14,8 +14,8 @@ typedef struct { typedef struct { int32_t tid, pos; - uint32_t qual:8, l_str:24; - int m_str; + int32_t l_str, m_str; + float qual; char *str, *ref, *alt, *flt, *info, *fmt; // fmt, ref, alt and info point to str int n_gi, m_gi; bcf_ginfo_t *gi; diff --git a/bcftools/bcf.tex b/bcftools/bcf.tex index b4bec72..5ca1e28 100644 --- a/bcftools/bcf.tex +++ b/bcftools/bcf.tex @@ -24,7 +24,8 @@ \multicolumn{5}{|c|}{\it \color{gray}{List of records until the end of the file}}\\\cline{2-5} & {\tt seq\_id} & Reference sequence ID & {\tt int32\_t} & \\\cline{2-5} & {\tt pos} & Position & {\tt int32\_t} & \\\cline{2-5} -& {\tt qual\_slen} & {\tt varQual\char60\char60 24 | slen} & {\tt uint32\_t} & \\\cline{2-5} +& {\tt qual} & Variant quality & {\tt float} & \\\cline{2-5} +& {\tt l\_str} & Length of str & {\tt int32\_t} & \\\cline{2-5} & {\tt str} & {\tt ID+REF+ALT+FILTER+INFO+FORMAT}, {\tt NULL} padded & {\tt char[slen]} &\\\cline{2-5} & \multicolumn{4}{c|}{Blocks of data; \#blocks and formats defined by {\tt FORMAT} (table below)}\\ \hline