]> git.donarmstrong.com Git - bamtools.git/blob - src/api/SamReadGroup.cpp
Added SAM header-handling classes for read/write/validate.
[bamtools.git] / src / api / SamReadGroup.cpp
1 // ***************************************************************************
2 // SamReadGroup.cpp (c) 2010 Derek Barnett
3 // Marth Lab, Department of Biology, Boston College
4 // All rights reserved.
5 // ---------------------------------------------------------------------------
6 // Last modified: 23 December 2010 (DB)
7 // ---------------------------------------------------------------------------
8 // Provides functionality for querying/manipulating read group data
9 // **************************************************************************
10
11 #include <api/SamReadGroup.h>
12 using namespace BamTools;
13 using namespace std;
14
15 // default ctor
16 SamReadGroup::SamReadGroup(void)
17     : ID("")
18     , Sample("")
19     , Library("")
20     , Description("")
21     , PlatformUnit("")
22     , PredictedInsertSize("")
23     , SequencingCenter("")
24     , ProductionDate("")
25     , SequencingTechnology("")
26 { }
27
28 // ctor with provided ID
29 SamReadGroup::SamReadGroup(const string& id)
30     : ID(id)
31     , Sample("")
32     , Library("")
33     , Description("")
34     , PlatformUnit("")
35     , PredictedInsertSize("")
36     , SequencingCenter("")
37     , ProductionDate("")
38     , SequencingTechnology("")
39 { }
40
41 // dtor
42 SamReadGroup::~SamReadGroup(void) {
43     Clear();
44 }
45
46 // clear all contents
47 void SamReadGroup::Clear(void) {
48     ID.clear();
49     Sample.clear();
50     Library.clear();
51     Description.clear();
52     PlatformUnit.clear();
53     PredictedInsertSize.clear();
54     SequencingCenter.clear();
55     ProductionDate.clear();
56     SequencingTechnology.clear();
57 }
58
59 // convenience methods to check if SamReadGroup contains these values:
60 bool SamReadGroup::HasID(void) const                   { return (!ID.empty());                   }
61 bool SamReadGroup::HasSample(void) const               { return (!Sample.empty());               }
62 bool SamReadGroup::HasLibrary(void) const              { return (!Library.empty());              }
63 bool SamReadGroup::HasDescription(void) const          { return (!Description.empty());          }
64 bool SamReadGroup::HasPlatformUnit(void) const         { return (!PlatformUnit.empty());         }
65 bool SamReadGroup::HasPredictedInsertSize(void) const  { return (!PredictedInsertSize.empty());  }
66 bool SamReadGroup::HasSequencingCenter(void) const     { return (!SequencingCenter.empty());     }
67 bool SamReadGroup::HasProductionDate(void) const       { return (!ProductionDate.empty());       }
68 bool SamReadGroup::HasSequencingTechnology(void) const { return (!SequencingTechnology.empty()); }