]> git.donarmstrong.com Git - bamtools.git/blobdiff - src/api/SamReadGroup.cpp
Major update to BamTools version 1.0
[bamtools.git] / src / api / SamReadGroup.cpp
index 8debc58c7a3f70024aec903ec2ab8295681535d5..da50d08176241df0c199ceea9547914fb332a873 100644 (file)
@@ -3,16 +3,53 @@
 // Marth Lab, Department of Biology, Boston College
 // All rights reserved.
 // ---------------------------------------------------------------------------
-// Last modified: 23 December 2010 (DB)
+// Last modified: 4 March 2011 (DB)
 // ---------------------------------------------------------------------------
-// Provides functionality for querying/manipulating read group data
-// **************************************************************************
+// Provides direct read/write access to the SAM read group data fields.
+// ***************************************************************************
 
 #include <api/SamReadGroup.h>
 using namespace BamTools;
 using namespace std;
 
-// default ctor
+/*! \struct BamTools::SamReadGroup
+    \brief Represents a SAM read group entry.
+
+    Provides direct read/write access to the SAM read group data fields.
+
+    \sa http://samtools.sourceforge.net/SAM-1.3.pdf
+*/
+/*! \var SamReadGroup::ID
+    \brief corresponds to \@RG ID:\<ID\>
+*/
+/*! \var SamReadGroup::Sample
+    \brief corresponds to \@RG SM:\<Sample\>
+*/
+/*! \var SamReadGroup::Library
+    \brief corresponds to \@RG LB:\<Library\>
+*/
+/*! \var SamReadGroup::Description
+    \brief corresponds to \@RG DS:\<Description\>
+*/
+/*! \var SamReadGroup::PlatformUnit
+    \brief corresponds to \@RG PU:\<PlatformUnit\>
+*/
+/*! \var SamReadGroup::PredictedInsertSize
+    \brief corresponds to \@RG PI:\<PredictedInsertSize\>
+*/
+/*! \var SamReadGroup::SequencingCenter
+    \brief corresponds to \@RG CN:\<SequencingCenter\>
+*/
+/*! \var SamReadGroup::ProductionDate
+    \brief corresponds to \@RG DT:\<ProductionDate\>
+*/
+/*! \var SamReadGroup::SequencingTechnology
+    \brief corresponds to \@RG PL:\<SequencingTechnology\>
+*/
+
+/*! \fn SamReadGroup::SamReadGroup(void)
+    \brief default constructor
+*/
 SamReadGroup::SamReadGroup(void)
     : ID("")
     , Sample("")
@@ -25,8 +62,12 @@ SamReadGroup::SamReadGroup(void)
     , SequencingTechnology("")
 { }
 
-// ctor with provided ID
-SamReadGroup::SamReadGroup(const string& id)
+/*! \fn SamReadGroup::SamReadGroup(const std::string& id)
+    \brief constructs read group with \a id
+
+    \param id desired read group ID
+*/
+SamReadGroup::SamReadGroup(const std::string& id)
     : ID(id)
     , Sample("")
     , Library("")
@@ -38,7 +79,9 @@ SamReadGroup::SamReadGroup(const string& id)
     , SequencingTechnology("")
 { }
 
-// copy ctor
+/*! \fn SamReadGroup::SamReadGroup(const SamReadGroup& other)
+    \brief copy constructor
+*/
 SamReadGroup::SamReadGroup(const SamReadGroup& other)
     : ID(other.ID)
     , Sample(other.Sample)
@@ -51,12 +94,14 @@ SamReadGroup::SamReadGroup(const SamReadGroup& other)
     , SequencingTechnology(other.SequencingTechnology)
 { }
 
-// dtor
-SamReadGroup::~SamReadGroup(void) {
-    Clear();
-}
+/*! \fn SamReadGroup::~SamReadGroup(void)
+    \brief destructor
+*/
+SamReadGroup::~SamReadGroup(void) { }
 
-// clear all contents
+/*! \fn void SamReadGroup::Clear(void)
+    \brief Clears all data fields.
+*/
 void SamReadGroup::Clear(void) {
     ID.clear();
     Sample.clear();
@@ -69,13 +114,65 @@ void SamReadGroup::Clear(void) {
     SequencingTechnology.clear();
 }
 
-// convenience methods to check if SamReadGroup contains these values:
-bool SamReadGroup::HasID(void) const                   { return (!ID.empty());                   }
-bool SamReadGroup::HasSample(void) const               { return (!Sample.empty());               }
-bool SamReadGroup::HasLibrary(void) const              { return (!Library.empty());              }
-bool SamReadGroup::HasDescription(void) const          { return (!Description.empty());          }
-bool SamReadGroup::HasPlatformUnit(void) const         { return (!PlatformUnit.empty());         }
-bool SamReadGroup::HasPredictedInsertSize(void) const  { return (!PredictedInsertSize.empty());  }
-bool SamReadGroup::HasSequencingCenter(void) const     { return (!SequencingCenter.empty());     }
-bool SamReadGroup::HasProductionDate(void) const       { return (!ProductionDate.empty());       }
-bool SamReadGroup::HasSequencingTechnology(void) const { return (!SequencingTechnology.empty()); }
+/*! \fn bool SamReadGroup::HasID(void) const
+    \brief Returns \c true if read group contains \@RG: ID:\<ID\>
+*/
+bool SamReadGroup::HasID(void) const {
+    return (!ID.empty());
+}
+
+/*! \fn bool SamReadGroup::HasSample(void) const
+    \brief Returns \c true if read group contains \@RG SM:\<Sample\>
+*/
+bool SamReadGroup::HasSample(void) const {
+    return (!Sample.empty());
+}
+
+/*! \fn bool SamReadGroup::HasLibrary(void) const
+    \brief Returns \c true if read group contains \@RG LB:\<Library\>
+*/
+bool SamReadGroup::HasLibrary(void) const {
+    return (!Library.empty());
+}
+
+/*! \fn bool SamReadGroup::HasDescription(void) const
+    \brief Returns \c true if read group contains \@RG DS:\<Description\>
+*/
+bool SamReadGroup::HasDescription(void) const {
+    return (!Description.empty());
+}
+
+/*! \fn bool SamReadGroup::HasPlatformUnit(void) const
+    \brief Returns \c true if read group contains \@RG PU:\<PlatformUnit\>
+*/
+bool SamReadGroup::HasPlatformUnit(void) const {
+    return (!PlatformUnit.empty());
+}
+
+/*! \fn bool SamReadGroup::HasPredictedInsertSize(void) const
+    \brief Returns \c true if read group contains \@RG PI:\<PredictedInsertSize\>
+*/
+bool SamReadGroup::HasPredictedInsertSize(void) const {
+    return (!PredictedInsertSize.empty());
+}
+
+/*! \fn bool SamReadGroup::HasSequencingCenter(void) const
+    \brief Returns \c true if read group contains \@RG CN:\<SequencingCenter\>
+*/
+bool SamReadGroup::HasSequencingCenter(void) const {
+    return (!SequencingCenter.empty());
+}
+
+/*! \fn bool SamReadGroup::HasProductionDate(void) const
+    \brief Returns \c true if read group contains \@RG DT:\<ProductionDate\>
+*/
+bool SamReadGroup::HasProductionDate(void) const {
+    return (!ProductionDate.empty());
+}
+
+/*! \fn bool SamReadGroup::HasSequencingTechnology(void) const
+    \brief Returns \c true if read group contains \@RG PL:\<SequencingTechnology\>
+*/
+bool SamReadGroup::HasSequencingTechnology(void) const {
+    return (!SequencingTechnology.empty());
+}