X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=src%2Fapi%2FSamReadGroup.cpp;h=ce022ab5d3d84759f096fb5235abb31b0dc90b1d;hb=9f1ce8c47aeadb6dc1320b52ee671c3341b97935;hp=8debc58c7a3f70024aec903ec2ab8295681535d5;hpb=dc965ab6cd68e6e4b29544ae7340c571b0c7cf9f;p=bamtools.git diff --git a/src/api/SamReadGroup.cpp b/src/api/SamReadGroup.cpp index 8debc58..ce022ab 100644 --- a/src/api/SamReadGroup.cpp +++ b/src/api/SamReadGroup.cpp @@ -1,81 +1,221 @@ // *************************************************************************** // SamReadGroup.cpp (c) 2010 Derek Barnett // Marth Lab, Department of Biology, Boston College -// All rights reserved. // --------------------------------------------------------------------------- -// Last modified: 23 December 2010 (DB) +// Last modified: 10 October 2011 (DB) // --------------------------------------------------------------------------- -// Provides functionality for querying/manipulating read group data -// ************************************************************************** +// Provides direct read/write access to the SAM read group data fields. +// *************************************************************************** -#include +#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 \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::KeySequence + \brief corresponds to \@RG KS:\ +*/ +/*! \var SamReadGroup::Library + \brief corresponds to \@RG LB:\ +*/ +/*! \var SamReadGroup::PlatformUnit + \brief corresponds to \@RG PU:\ +*/ +/*! \var SamReadGroup::PredictedInsertSize + \brief corresponds to \@RG PI:\ +*/ +/*! \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:\ +*/ + +/*! \fn SamReadGroup::SamReadGroup(void) + \brief default constructor +*/ SamReadGroup::SamReadGroup(void) - : ID("") - , Sample("") + : Description("") + , FlowOrder("") + , ID("") + , KeySequence("") , Library("") - , Description("") , PlatformUnit("") , PredictedInsertSize("") - , SequencingCenter("") , ProductionDate("") + , Program("") + , Sample("") + , SequencingCenter("") , SequencingTechnology("") { } -// ctor with provided ID -SamReadGroup::SamReadGroup(const string& id) - : ID(id) - , Sample("") +/*! \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) + : Description("") + , FlowOrder("") + , ID(id) + , KeySequence("") , Library("") - , Description("") , PlatformUnit("") , PredictedInsertSize("") - , SequencingCenter("") , ProductionDate("") + , Program("") + , Sample("") + , SequencingCenter("") , SequencingTechnology("") { } -// copy ctor +/*! \fn SamReadGroup::SamReadGroup(const SamReadGroup& other) + \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) { } -// 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) { + 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(); } -// 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::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:\ +*/ +bool SamReadGroup::HasID(void) const { + return (!ID.empty()); +} + +/*! \fn bool SamReadGroup::HasKeySequence(void) const + \brief Returns \c true if read group contains \@RG KS:\ +*/ +bool SamReadGroup::HasKeySequence(void) const { + return (!KeySequence.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::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::HasProductionDate(void) const + \brief Returns \c true if read group contains \@RG DT:\ +*/ +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:\ +*/ +bool SamReadGroup::HasSequencingTechnology(void) const { + return (!SequencingTechnology.empty()); +}