X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=src%2Fapi%2FSamReadGroup.cpp;h=da50d08176241df0c199ceea9547914fb332a873;hb=8c80d760637f8df39262683cd2570f0589423d36;hp=8debc58c7a3f70024aec903ec2ab8295681535d5;hpb=577b6032aa3d85616047c8aba6061dd8dad20cfc;p=bamtools.git diff --git a/src/api/SamReadGroup.cpp b/src/api/SamReadGroup.cpp index 8debc58..da50d08 100644 --- a/src/api/SamReadGroup.cpp +++ b/src/api/SamReadGroup.cpp @@ -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 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:\ +*/ +/*! \var SamReadGroup::Sample + \brief corresponds to \@RG SM:\ +*/ +/*! \var SamReadGroup::Library + \brief corresponds to \@RG LB:\ +*/ +/*! \var SamReadGroup::Description + \brief corresponds to \@RG DS:\ +*/ +/*! \var SamReadGroup::PlatformUnit + \brief corresponds to \@RG PU:\ +*/ +/*! \var SamReadGroup::PredictedInsertSize + \brief corresponds to \@RG PI:\ +*/ +/*! \var SamReadGroup::SequencingCenter + \brief corresponds to \@RG CN:\ +*/ +/*! \var SamReadGroup::ProductionDate + \brief corresponds to \@RG DT:\ +*/ +/*! \var SamReadGroup::SequencingTechnology + \brief corresponds to \@RG PL:\ +*/ + +/*! \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:\ +*/ +bool SamReadGroup::HasID(void) const { + return (!ID.empty()); +} + +/*! \fn bool SamReadGroup::HasSample(void) const + \brief Returns \c true if read group contains \@RG SM:\ +*/ +bool SamReadGroup::HasSample(void) const { + return (!Sample.empty()); +} + +/*! \fn bool SamReadGroup::HasLibrary(void) const + \brief Returns \c true if read group contains \@RG LB:\ +*/ +bool SamReadGroup::HasLibrary(void) const { + return (!Library.empty()); +} + +/*! \fn bool SamReadGroup::HasDescription(void) const + \brief Returns \c true if read group contains \@RG DS:\ +*/ +bool SamReadGroup::HasDescription(void) const { + return (!Description.empty()); +} + +/*! \fn bool SamReadGroup::HasPlatformUnit(void) const + \brief Returns \c true if read group contains \@RG PU:\ +*/ +bool SamReadGroup::HasPlatformUnit(void) const { + return (!PlatformUnit.empty()); +} + +/*! \fn bool SamReadGroup::HasPredictedInsertSize(void) const + \brief Returns \c true if read group contains \@RG PI:\ +*/ +bool SamReadGroup::HasPredictedInsertSize(void) const { + return (!PredictedInsertSize.empty()); +} + +/*! \fn bool SamReadGroup::HasSequencingCenter(void) const + \brief Returns \c true if read group contains \@RG CN:\ +*/ +bool SamReadGroup::HasSequencingCenter(void) const { + return (!SequencingCenter.empty()); +} + +/*! \fn bool SamReadGroup::HasProductionDate(void) const + \brief Returns \c true if read group contains \@RG DT:\ +*/ +bool SamReadGroup::HasProductionDate(void) const { + return (!ProductionDate.empty()); +} + +/*! \fn bool SamReadGroup::HasSequencingTechnology(void) const + \brief Returns \c true if read group contains \@RG PL:\ +*/ +bool SamReadGroup::HasSequencingTechnology(void) const { + return (!SequencingTechnology.empty()); +}