Starting the work on next package update.
[samtools.git] / bcftools / bcf.tex
1 \documentclass[10pt,pdftex]{article}
2 \usepackage{color}
3 \definecolor{gray}{rgb}{0.7,0.7,0.7}
4
5 \setlength{\topmargin}{0.0cm}
6 \setlength{\textheight}{21.5cm}
7 \setlength{\oddsidemargin}{0cm} 
8 \setlength{\textwidth}{16.5cm}
9 \setlength{\columnsep}{0.6cm}
10
11 \begin{document}
12
13 \begin{center}
14 \begin{tabular}{|l|l|l|l|l|}
15 \hline
16 \multicolumn{2}{|c|}{\bf Field} & \multicolumn{1}{c|}{\bf Descrption} & \multicolumn{1}{c|}{\bf Type} & \multicolumn{1}{c|}{\bf Value} \\\hline\hline
17 \multicolumn{2}{|l|}{\sf magic} & Magic string & {\tt char[4]} & {\tt BCF\char92 4} \\\hline
18 \multicolumn{2}{|l|}{\sf l\_seqnm} & Length of concatenated sequence names & {\tt int32\_t} & \\\hline
19 \multicolumn{2}{|l|}{\sf seqnm} & Concatenated names, {\tt NULL} padded & {\tt char[{\sf l\_seqnm}]} & \\\hline
20 \multicolumn{2}{|l|}{\sf l\_smpl} & Length of concatenated sample names & {\tt int32\_t} & \\\hline
21 \multicolumn{2}{|l|}{\sf smpl} & Concatenated sample names & {\tt char[{\sf l\_smpl}]} & \\\hline
22 \multicolumn{2}{|l|}{\sf l\_meta} & Length of the meta text (double-hash lines)& {\tt int32\_t} & \\\hline
23 \multicolumn{2}{|l|}{\sf meta} & Meta text, {\tt NULL} terminated & {\tt char[{\sf l\_meta}]} & \\\hline
24 \multicolumn{5}{|c|}{\it \color{gray}{List of records until the end of the file}}\\\cline{2-5}
25 & {\sf seq\_id} & Reference sequence ID & {\tt int32\_t} & \\\cline{2-5}
26 & {\sf pos} & Position & {\tt int32\_t} & \\\cline{2-5}
27 & {\sf qual} & Variant quality & {\tt float} & \\\cline{2-5}
28 & {\sf l\_str} & Length of {\sf str} & {\tt int32\_t} & \\\cline{2-5}
29 & {\sf str} & {\tt ID+REF+ALT+FILTER+INFO+FORMAT}, {\tt NULL} padded & {\tt char[{\sf l\_str}]} &\\\cline{2-5}
30 & \multicolumn{4}{c|}{Blocks of data; \#blocks and formats defined by {\tt FORMAT} (table below)}\\
31 \hline
32 \end{tabular}
33 \end{center}
34
35 \begin{center}
36 \begin{tabular}{clp{9cm}}
37 \hline
38 \multicolumn{1}{l}{\bf Field} & \multicolumn{1}{l}{\bf Type} & \multicolumn{1}{l}{\bf Description} \\\hline
39 {\tt DP} & {\tt uint16\_t[n]} & Read depth \\
40 {\tt GL} & {\tt float[n*G]} & Log10 likelihood of data; $G=\frac{A(A+1)}{2}$, $A=\#\{alleles\}$\\
41 {\tt GT} & {\tt uint8\_t[n]} & {\tt missing\char60\char60 7 | phased\char60\char60 6 | allele1\char60\char60 3 | allele2} \\
42 {\tt \_GT} & {\tt uint8\_t+uint8\_t[n*P]} & {Generic GT; the first int equals the max ploidy $P$. If the highest bit is set,
43         the allele is not present (e.g. due to different ploidy between samples).} \\
44 {\tt GQ} & {\tt uint8\_t[n]} & {Genotype quality}\\
45 {\tt HQ} & {\tt uint8\_t[n*2]} & {Haplotype quality}\\
46 {\tt \_HQ} & {\tt uint8\_t+uint8\_t[n*P]} & {Generic HQ}\\
47 {\tt IBD} & {\tt uint32\_t[n*2]} & {IBD}\\
48 {\tt \_IBD} & {\tt uint8\_t+uint32\_t[n*P]} & {Generic IBD}\\
49 {\tt PL} & {\tt uint8\_t[n*G]} & {Phred-scaled likelihood of data}\\
50 {\tt PS} & {\tt uint32\_t[n]} & {Phase set}\\
51 %{\tt SP} & {\tt uint8\_t[n]} & {Strand bias P-value (bcftools only)}\\
52 \emph{Integer} & {\tt int32\_t[n*X]} & {Fix-sized custom Integer; $X$ defined in the header}\\
53 \emph{Numeric} & {\tt double[n*X]} & {Fix-sized custom Numeric}\\
54 \emph{String} & {\tt uint32\_t+char*} & {\tt NULL} padded concat. strings (int equals to the length) \\
55 \hline
56 \end{tabular}
57 \end{center}
58
59 \begin{itemize}
60 \item A BCF file is in the {\tt BGZF} format.
61 \item All multi-byte numbers are little-endian.
62 \item In a string, a missing value `.' is an empty C string ``{\tt
63     \char92 0}'' (not ``{\tt .\char92 0}'')
64 \item For {\tt GL} and {\tt PL}, likelihoods of genotypes appear in the
65   order of alleles in {\tt REF} and then {\tt ALT}. For example, if {\tt
66     REF=C}, {\tt ALT=T,A}, likelihoods appear in the order of {\tt
67     CC,CT,TT,CA,TA,AA} (NB: the ordering is different from the one in the original
68         BCF proposal).
69 \item Predefined {\tt FORMAT} fields can be missing from VCF headers, but custom {\tt FORMAT} fields
70         are required to be explicitly defined in the headers.
71 \item A {\tt FORMAT} field with its name starting with `{\tt \_}' is specific to BCF only.
72         It gives an alternative binary representation of the corresponding VCF field, in case
73         the default representation is unable to keep the genotype information,
74         for example, when the ploidy is not 2 or there are more than 8 alleles.
75 \end{itemize}
76
77 \end{document}