X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=src%2Fapi%2FSamReadGroup.cpp;h=2ba75f16b46b7e7a548581a3aa04144895675097;hb=cdf4bbcb19025398d429035fe672661a8c8d1a80;hp=da50d08176241df0c199ceea9547914fb332a873;hpb=9cf50963514decd5c272f52a0a019c6289d43c63;p=bamtools.git diff --git a/src/api/SamReadGroup.cpp b/src/api/SamReadGroup.cpp index da50d08..2ba75f1 100644 --- a/src/api/SamReadGroup.cpp +++ b/src/api/SamReadGroup.cpp @@ -3,7 +3,7 @@ // Marth Lab, Department of Biology, Boston College // All rights reserved. // --------------------------------------------------------------------------- -// Last modified: 4 March 2011 (DB) +// Last modified: 18 April 2011 (DB) // --------------------------------------------------------------------------- // Provides direct read/write access to the SAM read group data fields. // *************************************************************************** @@ -17,32 +17,43 @@ using namespace std; Provides direct read/write access to the SAM read group data fields. - \sa http://samtools.sourceforge.net/SAM-1.3.pdf + \sa \samSpecURL +*/ +/*! \var SamReadGroup::Description + \brief corresponds to \@RG DS:\ +*/ +/*! \var SamReadGroup::FlowOrder + \brief corresponds to \@RG FO:\ */ /*! \var SamReadGroup::ID \brief corresponds to \@RG ID:\ + + Required for valid SAM header. */ -/*! \var SamReadGroup::Sample - \brief corresponds to \@RG SM:\ +/*! \var SamReadGroup::KeySequence + \brief corresponds to \@RG KS:\ */ /*! \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::Program + \brief corresponds to \@RG PG:\ +*/ +/*! \var SamReadGroup::Sample + \brief corresponds to \@RG SM:\ +*/ +/*! \var SamReadGroup::SequencingCenter + \brief corresponds to \@RG CN:\ +*/ /*! \var SamReadGroup::SequencingTechnology \brief corresponds to \@RG PL:\ */ @@ -51,14 +62,17 @@ using namespace std; \brief default constructor */ SamReadGroup::SamReadGroup(void) - : ID("") - , Sample("") + : Description("") + , FlowOrder("") + , ID("") + , KeySequence("") , Library("") - , Description("") , PlatformUnit("") , PredictedInsertSize("") - , SequencingCenter("") , ProductionDate("") + , Program("") + , Sample("") + , SequencingCenter("") , SequencingTechnology("") { } @@ -68,14 +82,17 @@ SamReadGroup::SamReadGroup(void) \param id desired read group ID */ SamReadGroup::SamReadGroup(const std::string& id) - : ID(id) - , Sample("") + : Description("") + , FlowOrder("") + , ID(id) + , KeySequence("") , Library("") - , Description("") , PlatformUnit("") , PredictedInsertSize("") - , SequencingCenter("") , ProductionDate("") + , Program("") + , Sample("") + , SequencingCenter("") , SequencingTechnology("") { } @@ -83,14 +100,17 @@ SamReadGroup::SamReadGroup(const std::string& id) \brief copy constructor */ SamReadGroup::SamReadGroup(const SamReadGroup& other) - : ID(other.ID) - , Sample(other.Sample) + : Description(other.Description) + , FlowOrder(other.FlowOrder) + , ID(other.ID) + , KeySequence(other.KeySequence) , Library(other.Library) - , Description(other.Description) , PlatformUnit(other.PlatformUnit) , PredictedInsertSize(other.PredictedInsertSize) - , SequencingCenter(other.SequencingCenter) , ProductionDate(other.ProductionDate) + , Program(other.Program) + , Sample(other.Sample) + , SequencingCenter(other.SequencingCenter) , SequencingTechnology(other.SequencingTechnology) { } @@ -103,17 +123,34 @@ SamReadGroup::~SamReadGroup(void) { } \brief Clears all data fields. */ void SamReadGroup::Clear(void) { + Description.clear(); + FlowOrder.clear(); ID.clear(); - Sample.clear(); + KeySequence.clear(); Library.clear(); - Description.clear(); PlatformUnit.clear(); PredictedInsertSize.clear(); - SequencingCenter.clear(); ProductionDate.clear(); + Program.clear(); + Sample.clear(); + SequencingCenter.clear(); SequencingTechnology.clear(); } +/*! \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::HasFlowOrder(void) const + \brief Returns \c true if read group contains \@RG FO:\ +*/ +bool SamReadGroup::HasFlowOrder(void) const { + return (!FlowOrder.empty()); +} + /*! \fn bool SamReadGroup::HasID(void) const \brief Returns \c true if read group contains \@RG: ID:\ */ @@ -121,11 +158,11 @@ bool SamReadGroup::HasID(void) const { return (!ID.empty()); } -/*! \fn bool SamReadGroup::HasSample(void) const - \brief Returns \c true if read group contains \@RG SM:\ +/*! \fn bool SamReadGroup::HasKeySequence(void) const + \brief Returns \c true if read group contains \@RG KS:\ */ -bool SamReadGroup::HasSample(void) const { - return (!Sample.empty()); +bool SamReadGroup::HasKeySequence(void) const { + return (!KeySequence.empty()); } /*! \fn bool SamReadGroup::HasLibrary(void) const @@ -135,13 +172,6 @@ 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:\ */ @@ -156,13 +186,6 @@ 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:\ */ @@ -170,6 +193,27 @@ bool SamReadGroup::HasProductionDate(void) const { return (!ProductionDate.empty()); } +/*! \fn bool SamReadGroup::HasProgram(void) const + \brief Returns \c true if read group contains \@RG PG:\ +*/ +bool SamReadGroup::HasProgram(void) const { + return (!Program.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::HasSequencingCenter(void) const + \brief Returns \c true if read group contains \@RG CN:\ +*/ +bool SamReadGroup::HasSequencingCenter(void) const { + return (!SequencingCenter.empty()); +} + /*! \fn bool SamReadGroup::HasSequencingTechnology(void) const \brief Returns \c true if read group contains \@RG PL:\ */