]> git.donarmstrong.com Git - samtools.git/commitdiff
use float for QUAL
authorHeng Li <lh3@live.co.uk>
Tue, 17 Aug 2010 00:53:16 +0000 (00:53 +0000)
committerHeng Li <lh3@live.co.uk>
Tue, 17 Aug 2010 00:53:16 +0000 (00:53 +0000)
bcftools/bcf.c
bcftools/bcf.h
bcftools/bcf.tex

index c3313881ef90fc2930c72d218c090b35e5cf9466..e375a1fb8791cd6b3f34cfa070d53396b158133e 100644 (file)
@@ -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);
index c317440a21fafbe2334a77efd48f8b05d9d8681e..8e4ecf9b40d78335280def4db572732fc9a62162 100644 (file)
@@ -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;
index b4bec7211d8336526030a00ea713993e7f82b5cf..5ca1e282020d640733b7a88be53db8d3a26a6220 100644 (file)
@@ -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