1 #ifndef BAM_CONSTANTS_H
2 #define BAM_CONSTANTS_H
6 /*! \namespace BamTools::Constants
7 \brief Contains most of the constants used throughout BamTools.
13 const int BAM_SIZEOF_INT = 4;
15 // header magic number
16 const char* const BAM_HEADER_MAGIC = "BAM\1";
17 const unsigned int BAM_HEADER_MAGIC_LENGTH = 4;
19 // BAM alignment core size
20 const int BAM_CORE_SIZE = 32;
21 const int BAM_CORE_BUFFER_SIZE = 8;
23 // BAM alignment flags
24 const int BAM_ALIGNMENT_PAIRED = 1;
25 const int BAM_ALIGNMENT_PROPER_PAIR = 2;
26 const int BAM_ALIGNMENT_UNMAPPED = 4;
27 const int BAM_ALIGNMENT_MATE_UNMAPPED = 8;
28 const int BAM_ALIGNMENT_REVERSE_STRAND = 16;
29 const int BAM_ALIGNMENT_MATE_REVERSE_STRAND = 32;
30 const int BAM_ALIGNMENT_READ_1 = 64;
31 const int BAM_ALIGNMENT_READ_2 = 128;
32 const int BAM_ALIGNMENT_SECONDARY = 256;
33 const int BAM_ALIGNMENT_QC_FAILED = 512;
34 const int BAM_ALIGNMENT_DUPLICATE = 1024;
37 const char* const BAM_CIGAR_LOOKUP = "MIDNSHP";
38 const int BAM_CIGAR_MATCH = 0;
39 const int BAM_CIGAR_INS = 1;
40 const int BAM_CIGAR_DEL = 2;
41 const int BAM_CIGAR_REFSKIP = 3;
42 const int BAM_CIGAR_SOFTCLIP = 4;
43 const int BAM_CIGAR_HARDCLIP = 5;
44 const int BAM_CIGAR_PAD = 6;
46 const char BAM_CIGAR_MATCH_CHAR = 'M';
47 const char BAM_CIGAR_INS_CHAR = 'I';
48 const char BAM_CIGAR_DEL_CHAR = 'D';
49 const char BAM_CIGAR_REFSKIP_CHAR = 'N';
50 const char BAM_CIGAR_SOFTCLIP_CHAR = 'S';
51 const char BAM_CIGAR_HARDCLIP_CHAR = 'H';
52 const char BAM_CIGAR_PAD_CHAR = 'P';
54 const int BAM_CIGAR_SHIFT = 4;
55 const int BAM_CIGAR_MASK = ((1 << BAM_CIGAR_SHIFT) - 1);
58 const char BAM_TAG_TYPE_ASCII = 'A';
59 const char BAM_TAG_TYPE_UINT8 = 'c';
60 const char BAM_TAG_TYPE_INT8 = 'C';
61 const char BAM_TAG_TYPE_UINT16 = 's';
62 const char BAM_TAG_TYPE_INT16 = 'S';
63 const char BAM_TAG_TYPE_UINT32 = 'i';
64 const char BAM_TAG_TYPE_INT32 = 'I';
65 const char BAM_TAG_TYPE_FLOAT = 'f';
66 const char BAM_TAG_TYPE_STRING = 'Z';
67 const char BAM_TAG_TYPE_HEX = 'H';
69 const size_t BAM_TAG_TAGSIZE = 2;
70 const size_t BAM_TAG_TYPESIZE = 1;
73 const char* const BAM_DNA_LOOKUP = "=ACMGRSVTWYHKDBN";
74 const unsigned char BAM_BASECODE_EQUAL = 0;
75 const unsigned char BAM_BASECODE_A = 1;
76 const unsigned char BAM_BASECODE_C = 2;
77 const unsigned char BAM_BASECODE_G = 4;
78 const unsigned char BAM_BASECODE_T = 8;
79 const unsigned char BAM_BASECODE_N = 15;
81 const char BAM_DNA_EQUAL = '=';
82 const char BAM_DNA_A = 'A';
83 const char BAM_DNA_C = 'C';
84 const char BAM_DNA_G = 'G';
85 const char BAM_DNA_T = 'T';
86 const char BAM_DNA_N = 'N';
87 const char BAM_DNA_DEL = '-';
88 const char BAM_DNA_PAD = '*';
91 const int GZIP_ID1 = 31;
92 const int GZIP_ID2 = 139;
93 const int CM_DEFLATE = 8;
94 const int FLG_FEXTRA = 4;
95 const int OS_UNKNOWN = 255;
96 const int BGZF_XLEN = 6;
97 const int BGZF_ID1 = 66;
98 const int BGZF_ID2 = 67;
99 const int BGZF_LEN = 2;
100 const int GZIP_WINDOW_BITS = -15;
101 const int Z_DEFAULT_MEM_LEVEL = 8;
104 const int BGZF_BLOCK_HEADER_LENGTH = 18;
105 const int BGZF_BLOCK_FOOTER_LENGTH = 8;
106 const int BGZF_MAX_BLOCK_SIZE = 65536;
107 const int BGZF_DEFAULT_BLOCK_SIZE = 65536;
109 } // namespace Constants
110 } // namespace BamTools
112 #endif // BAM_CONSTANTS_H