]> git.donarmstrong.com Git - bamtools.git/blob - src/api/SamConstants.h
Fixed: sorting order lost during merge step of sort tool, if input BAM
[bamtools.git] / src / api / SamConstants.h
1 // ***************************************************************************
2 // SamConstants.h (c) 2010 Derek Barnett
3 // Marth Lab, Department of Biology, Boston College
4 // ---------------------------------------------------------------------------
5 // Last modified: 27 March 2012 (DB)
6 // ---------------------------------------------------------------------------
7 // Provides constants for SAM header
8 // ***************************************************************************
9
10 #ifndef SAM_CONSTANTS_H
11 #define SAM_CONSTANTS_H
12
13 #include "api/api_global.h"
14 #include <string>
15
16 namespace BamTools {
17 namespace Constants {
18
19 // basic char constants used in SAM format
20 const char SAM_COLON  = ':';
21 const char SAM_EQUAL  = '=';
22 const char SAM_PERIOD = '.';
23 const char SAM_STAR   = '*';
24 const char SAM_TAB    = '\t';
25 const std::string SAM_DIGITS = "0123456789";
26
27 const std::string SAM_CURRENT_VERSION = "1.4";
28
29 // HD entries
30 const std::string SAM_HD_BEGIN_TOKEN    = "@HD";
31 const std::string SAM_HD_VERSION_TAG    = "VN";
32 const std::string SAM_HD_SORTORDER_TAG  = "SO";
33 const std::string SAM_HD_GROUPORDER_TAG = "GO";
34
35 // SQ entries
36 const std::string SAM_SQ_BEGIN_TOKEN    = "@SQ";
37 const std::string SAM_SQ_ASSEMBLYID_TAG = "AS";
38 const std::string SAM_SQ_CHECKSUM_TAG   = "M5";
39 const std::string SAM_SQ_LENGTH_TAG     = "LN";
40 const std::string SAM_SQ_NAME_TAG       = "SN";
41 const std::string SAM_SQ_SPECIES_TAG    = "SP";
42 const std::string SAM_SQ_URI_TAG        = "UR";
43
44 // RG entries
45 const std::string SAM_RG_BEGIN_TOKEN             = "@RG";
46 const std::string SAM_RG_DESCRIPTION_TAG         = "DS";
47 const std::string SAM_RG_FLOWORDER_TAG           = "FO";
48 const std::string SAM_RG_ID_TAG                  = "ID";
49 const std::string SAM_RG_KEYSEQUENCE_TAG         = "KS";
50 const std::string SAM_RG_LIBRARY_TAG             = "LB";
51 const std::string SAM_RG_PLATFORMUNIT_TAG        = "PU";
52 const std::string SAM_RG_PREDICTEDINSERTSIZE_TAG = "PI";
53 const std::string SAM_RG_PRODUCTIONDATE_TAG      = "DT";
54 const std::string SAM_RG_PROGRAM_TAG             = "PG";
55 const std::string SAM_RG_SAMPLE_TAG              = "SM";
56 const std::string SAM_RG_SEQCENTER_TAG           = "CN";
57 const std::string SAM_RG_SEQTECHNOLOGY_TAG       = "PL";
58
59 // PG entries
60 const std::string SAM_PG_BEGIN_TOKEN         = "@PG";
61 const std::string SAM_PG_COMMANDLINE_TAG     = "CL";
62 const std::string SAM_PG_ID_TAG              = "ID";
63 const std::string SAM_PG_NAME_TAG            = "PN";
64 const std::string SAM_PG_PREVIOUSPROGRAM_TAG = "PP";
65 const std::string SAM_PG_VERSION_TAG         = "VN";
66
67 // CO entries
68 const std::string SAM_CO_BEGIN_TOKEN = "@CO";
69
70 // HD:SO values
71 const std::string SAM_HD_SORTORDER_COORDINATE = "coordinate";
72 const std::string SAM_HD_SORTORDER_QUERYNAME  = "queryname";
73 const std::string SAM_HD_SORTORDER_UNKNOWN    = "unknown";
74 const std::string SAM_HD_SORTORDER_UNSORTED   = "unsorted";
75
76 // HD:GO values
77 const std::string SAM_HD_GROUPORDER_NONE      = "none";
78 const std::string SAM_HD_GROUPORDER_QUERY     = "query";
79 const std::string SAM_HD_GROUPORDER_REFERENCE = "reference";
80
81 // SQ:LN values
82 const unsigned int SAM_SQ_LENGTH_MIN = 1;
83 const unsigned int SAM_SQ_LENGTH_MAX = 536870911; // 2^29 - 1
84
85 // RG:PL values
86 const std::string SAM_RG_SEQTECHNOLOGY_CAPILLARY  = "CAPILLARY";
87 const std::string SAM_RG_SEQTECHNOLOGY_HELICOS    = "HELICOS";
88 const std::string SAM_RG_SEQTECHNOLOGY_ILLUMINA   = "ILLUMINA";
89 const std::string SAM_RG_SEQTECHNOLOGY_IONTORRENT = "IONTORRENT";
90 const std::string SAM_RG_SEQTECHNOLOGY_LS454      = "LS454";
91 const std::string SAM_RG_SEQTECHNOLOGY_PACBIO     = "PACBIO";
92 const std::string SAM_RG_SEQTECHNOLOGY_SOLID      = "SOLID";
93
94 } // namespace Constants
95 } // namespace BamTools
96
97 #endif // SAM_CONSTANTS_H