]> git.donarmstrong.com Git - bamtools.git/blob - src/api/BamConstants.h
Added BamConstants.h
[bamtools.git] / src / api / BamConstants.h
1 #ifndef BAM_CONSTANTS_H
2 #define BAM_CONSTANTS_H
3
4 #include <string>
5
6 namespace BamTools {
7 namespace Constants {
8
9 const int BAM_SIZEOF_INT = 4;
10
11 // header magic number
12 const char* const  BAM_HEADER_MAGIC = "BAM\001";
13 const unsigned int BAM_HEADER_MAGIC_SIZE = 4;
14
15 // BAM alignment core size
16 const int BAM_CORE_SIZE = 32;
17
18 // BAM alignment flags
19 const int BAM_ALIGNMENT_PAIRED              = 1;
20 const int BAM_ALIGNMENT_PROPER_PAIR         = 2;
21 const int BAM_ALIGNMENT_UNMAPPED            = 4;
22 const int BAM_ALIGNMENT_MATE_UNMAPPED       = 8;
23 const int BAM_ALIGNMENT_REVERSE_STRAND      = 16;
24 const int BAM_ALIGNMENT_MATE_REVERSE_STRAND = 32;
25 const int BAM_ALIGNMENT_READ_1              = 64;
26 const int BAM_ALIGNMENT_READ_2              = 128;
27 const int BAM_ALIGNMENT_SECONDARY           = 256;
28 const int BAM_ALIGNMENT_QC_FAILED           = 512;
29 const int BAM_ALIGNMENT_DUPLICATE           = 1024;
30
31 // CIGAR constants
32 const char* const BAM_CIGAR_LOOKUP = "MIDNSHP";
33 const int BAM_CIGAR_MATCH    = 0;
34 const int BAM_CIGAR_INS      = 1;
35 const int BAM_CIGAR_DEL      = 2;
36 const int BAM_CIGAR_REFSKIP  = 3;
37 const int BAM_CIGAR_SOFTCLIP = 4;
38 const int BAM_CIGAR_HARDCLIP = 5;
39 const int BAM_CIGAR_PAD      = 6;
40
41 const int BAM_CIGAR_SHIFT    = 4;
42 const int BAM_CIGAR_MASK     = ((1 << BAM_CIGAR_SHIFT) - 1);
43
44 // DNA bases
45 const char* const BAM_DNA_LOOKUP = "=ACMGRSVTWYHKDBN";
46
47 } // namespace Constants
48 } // namespace BamTools
49
50 #endif // BAM_CONSTANTS_H