annotate BEDTools-Version-2.14.3/src/utils/BamTools/src/api/BamConstants.h @ 0:dfcd8b6c1bda

Uploaded
author aaronquinlan
date Thu, 03 Nov 2011 10:25:04 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
1 // ***************************************************************************
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
2 // BamConstants.h (c) 2011 Derek Barnett
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
3 // Marth Lab, Department of Biology, Boston College
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
4 // All rights reserved.
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
5 // ---------------------------------------------------------------------------
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
6 // Last modified: 19 April 2011 (DB)
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
7 // ---------------------------------------------------------------------------
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
8 // Provides basic constants for handling BAM files.
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
9 // ***************************************************************************
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
10
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
11 #ifndef BAM_CONSTANTS_H
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
12 #define BAM_CONSTANTS_H
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
13
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
14 #include <string>
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
15
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
16 /*! \namespace BamTools::Constants
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
17 \brief Provides basic constants for handling BAM files.
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
18 */
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
19
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
20 namespace BamTools {
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
21 namespace Constants {
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
22
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
23 const int BAM_SIZEOF_INT = 4;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
24
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
25 // header magic number
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
26 const char* const BAM_HEADER_MAGIC = "BAM\1";
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
27 const unsigned int BAM_HEADER_MAGIC_LENGTH = 4;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
28
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
29 // BAM alignment core size
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
30 const int BAM_CORE_SIZE = 32;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
31 const int BAM_CORE_BUFFER_SIZE = 8;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
32
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
33 // BAM alignment flags
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
34 const int BAM_ALIGNMENT_PAIRED = 0x0001;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
35 const int BAM_ALIGNMENT_PROPER_PAIR = 0x0002;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
36 const int BAM_ALIGNMENT_UNMAPPED = 0x0004;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
37 const int BAM_ALIGNMENT_MATE_UNMAPPED = 0x0008;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
38 const int BAM_ALIGNMENT_REVERSE_STRAND = 0x0010;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
39 const int BAM_ALIGNMENT_MATE_REVERSE_STRAND = 0x0020;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
40 const int BAM_ALIGNMENT_READ_1 = 0x0040;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
41 const int BAM_ALIGNMENT_READ_2 = 0x0080;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
42 const int BAM_ALIGNMENT_SECONDARY = 0x0100;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
43 const int BAM_ALIGNMENT_QC_FAILED = 0x0200;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
44 const int BAM_ALIGNMENT_DUPLICATE = 0x0400;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
45
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
46 // CIGAR constants
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
47 const char* const BAM_CIGAR_LOOKUP = "MIDNSHP=X";
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
48 const int BAM_CIGAR_MATCH = 0;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
49 const int BAM_CIGAR_INS = 1;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
50 const int BAM_CIGAR_DEL = 2;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
51 const int BAM_CIGAR_REFSKIP = 3;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
52 const int BAM_CIGAR_SOFTCLIP = 4;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
53 const int BAM_CIGAR_HARDCLIP = 5;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
54 const int BAM_CIGAR_PAD = 6;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
55 const int BAM_CIGAR_SEQMATCH = 7;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
56 const int BAM_CIGAR_MISMATCH = 8;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
57
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
58 const char BAM_CIGAR_MATCH_CHAR = 'M';
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
59 const char BAM_CIGAR_INS_CHAR = 'I';
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
60 const char BAM_CIGAR_DEL_CHAR = 'D';
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
61 const char BAM_CIGAR_REFSKIP_CHAR = 'N';
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
62 const char BAM_CIGAR_SOFTCLIP_CHAR = 'S';
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
63 const char BAM_CIGAR_HARDCLIP_CHAR = 'H';
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
64 const char BAM_CIGAR_PAD_CHAR = 'P';
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
65 const char BAM_CIGAR_SEQMATCH_CHAR = '=';
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
66 const char BAM_CIGAR_MISMATCH_CHAR = 'X';
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
67
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
68 const int BAM_CIGAR_SHIFT = 4;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
69 const int BAM_CIGAR_MASK = ((1 << BAM_CIGAR_SHIFT) - 1);
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
70
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
71 // BAM tag types
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
72 const char BAM_TAG_TYPE_ASCII = 'A';
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
73 const char BAM_TAG_TYPE_UINT8 = 'c';
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
74 const char BAM_TAG_TYPE_INT8 = 'C';
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
75 const char BAM_TAG_TYPE_UINT16 = 's';
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
76 const char BAM_TAG_TYPE_INT16 = 'S';
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
77 const char BAM_TAG_TYPE_UINT32 = 'i';
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
78 const char BAM_TAG_TYPE_INT32 = 'I';
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
79 const char BAM_TAG_TYPE_FLOAT = 'f';
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
80 const char BAM_TAG_TYPE_STRING = 'Z';
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
81 const char BAM_TAG_TYPE_HEX = 'H';
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
82 const char BAM_TAG_TYPE_ARRAY = 'B';
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
83
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
84 const size_t BAM_TAG_TAGSIZE = 2;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
85 const size_t BAM_TAG_TYPESIZE = 1;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
86 const int BAM_TAG_ARRAYBASE_SIZE = 8;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
87
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
88 // DNA bases
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
89 const char* const BAM_DNA_LOOKUP = "=ACMGRSVTWYHKDBN";
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
90 const unsigned char BAM_BASECODE_EQUAL = 0;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
91 const unsigned char BAM_BASECODE_A = 1;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
92 const unsigned char BAM_BASECODE_C = 2;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
93 const unsigned char BAM_BASECODE_G = 4;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
94 const unsigned char BAM_BASECODE_T = 8;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
95 const unsigned char BAM_BASECODE_N = 15;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
96
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
97 const char BAM_DNA_EQUAL = '=';
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
98 const char BAM_DNA_A = 'A';
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
99 const char BAM_DNA_C = 'C';
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
100 const char BAM_DNA_G = 'G';
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
101 const char BAM_DNA_T = 'T';
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
102 const char BAM_DNA_N = 'N';
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
103 const char BAM_DNA_DEL = '-';
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
104 const char BAM_DNA_PAD = '*';
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
105
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
106 // zlib constants
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
107 const int GZIP_ID1 = 31;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
108 const int GZIP_ID2 = 139;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
109 const int CM_DEFLATE = 8;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
110 const int FLG_FEXTRA = 4;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
111 const int OS_UNKNOWN = 255;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
112 const int BGZF_XLEN = 6;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
113 const int BGZF_ID1 = 66;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
114 const int BGZF_ID2 = 67;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
115 const int BGZF_LEN = 2;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
116 const int GZIP_WINDOW_BITS = -15;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
117 const int Z_DEFAULT_MEM_LEVEL = 8;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
118
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
119 // BZGF constants
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
120 const int BGZF_BLOCK_HEADER_LENGTH = 18;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
121 const int BGZF_BLOCK_FOOTER_LENGTH = 8;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
122 const int BGZF_MAX_BLOCK_SIZE = 65536;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
123 const int BGZF_DEFAULT_BLOCK_SIZE = 65536;
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
124
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
125 } // namespace Constants
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
126 } // namespace BamTools
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
127
dfcd8b6c1bda Uploaded
aaronquinlan
parents:
diff changeset
128 #endif // BAM_CONSTANTS_H