// 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.
// ***************************************************************************
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:\<Description\>
+*/
+/*! \var SamReadGroup::FlowOrder
+ \brief corresponds to \@RG FO:\<FlowOrder\>
*/
/*! \var SamReadGroup::ID
\brief corresponds to \@RG ID:\<ID\>
+
+ Required for valid SAM header.
*/
-/*! \var SamReadGroup::Sample
- \brief corresponds to \@RG SM:\<Sample\>
+/*! \var SamReadGroup::KeySequence
+ \brief corresponds to \@RG KS:\<KeySequence\>
*/
/*! \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::Program
+ \brief corresponds to \@RG PG:\<Program\>
+*/
+/*! \var SamReadGroup::Sample
+ \brief corresponds to \@RG SM:\<Sample\>
+*/
+/*! \var SamReadGroup::SequencingCenter
+ \brief corresponds to \@RG CN:\<SequencingCenter\>
+*/
/*! \var SamReadGroup::SequencingTechnology
\brief corresponds to \@RG PL:\<SequencingTechnology\>
*/
\brief default constructor
*/
SamReadGroup::SamReadGroup(void)
- : ID("")
- , Sample("")
+ : Description("")
+ , FlowOrder("")
+ , ID("")
+ , KeySequence("")
, Library("")
- , Description("")
, PlatformUnit("")
, PredictedInsertSize("")
- , SequencingCenter("")
, ProductionDate("")
+ , Program("")
+ , Sample("")
+ , SequencingCenter("")
, SequencingTechnology("")
{ }
\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("")
{ }
\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)
{ }
\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:\<Description\>
+*/
+bool SamReadGroup::HasDescription(void) const {
+ return (!Description.empty());
+}
+
+/*! \fn bool SamReadGroup::HasFlowOrder(void) const
+ \brief Returns \c true if read group contains \@RG FO:\<FlowOrder\>
+*/
+bool SamReadGroup::HasFlowOrder(void) const {
+ return (!FlowOrder.empty());
+}
+
/*! \fn bool SamReadGroup::HasID(void) const
\brief Returns \c true if read group contains \@RG: ID:\<ID\>
*/
return (!ID.empty());
}
-/*! \fn bool SamReadGroup::HasSample(void) const
- \brief Returns \c true if read group contains \@RG SM:\<Sample\>
+/*! \fn bool SamReadGroup::HasKeySequence(void) const
+ \brief Returns \c true if read group contains \@RG KS:\<KeySequence\>
*/
-bool SamReadGroup::HasSample(void) const {
- return (!Sample.empty());
+bool SamReadGroup::HasKeySequence(void) const {
+ return (!KeySequence.empty());
}
/*! \fn 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\>
*/
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\>
*/
return (!ProductionDate.empty());
}
+/*! \fn bool SamReadGroup::HasProgram(void) const
+ \brief Returns \c true if read group contains \@RG PG:\<Program\>
+*/
+bool SamReadGroup::HasProgram(void) const {
+ return (!Program.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::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::HasSequencingTechnology(void) const
\brief Returns \c true if read group contains \@RG PL:\<SequencingTechnology\>
*/