X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=src%2Fapi%2FSamReadGroup.h;h=093ce2d76eea1d0624e6fa075508bd56e03be8ed;hb=25a2a1f6598b6452455da96c28a7f58fd9e7ed2d;hp=14498af5fed9dd4a7f7148788dd26bab56f0e252;hpb=dc965ab6cd68e6e4b29544ae7340c571b0c7cf9f;p=bamtools.git diff --git a/src/api/SamReadGroup.h b/src/api/SamReadGroup.h index 14498af..093ce2d 100644 --- a/src/api/SamReadGroup.h +++ b/src/api/SamReadGroup.h @@ -1,12 +1,11 @@ // *************************************************************************** // SamReadGroup.h (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. +// *************************************************************************** #ifndef SAM_READGROUP_H #define SAM_READGROUP_H @@ -16,50 +15,51 @@ namespace BamTools { -class API_EXPORT SamReadGroup { +struct API_EXPORT SamReadGroup { // ctor & dtor - public: - SamReadGroup(void); - SamReadGroup(const std::string& id); - explicit SamReadGroup(const SamReadGroup& other); - ~SamReadGroup(void); + SamReadGroup(void); + SamReadGroup(const std::string& id); + SamReadGroup(const SamReadGroup& other); + ~SamReadGroup(void); - // public methods - public: + // query/modify entire read group + void Clear(void); // clears all data fields - // clear all contents - void Clear(void); + // convenience query methods + bool HasDescription(void) const; // returns true if read group has a description + bool HasFlowOrder(void) const; // returns true if read group has a flow order entry + bool HasID(void) const; // returns true if read group has a group ID + bool HasKeySequence(void) const; // returns true if read group has a key sequence + bool HasLibrary(void) const; // returns true if read group has a library name + bool HasPlatformUnit(void) const; // returns true if read group has a platform unit ID + bool HasPredictedInsertSize(void) const; // returns true if read group has a predicted insert size + bool HasProductionDate(void) const; // returns true if read group has a production date + bool HasProgram(void) const; // returns true if read group has a program entry + bool HasSample(void) const; // returns true if read group has a sample name + bool HasSequencingCenter(void) const; // returns true if read group has a sequencing center ID + bool HasSequencingTechnology(void) const; // returns true if read group has a sequencing technology ID - // convenience methods to check if SamReadGroup contains these values: - bool HasID(void) const; - bool HasSample(void) const; - bool HasLibrary(void) const; - bool HasDescription(void) const; - bool HasPlatformUnit(void) const; - bool HasPredictedInsertSize(void) const; - bool HasSequencingCenter(void) const; - bool HasProductionDate(void) const; - bool HasSequencingTechnology(void) const; - // data members - public: - std::string ID; // ID: - std::string Sample; // SM: - std::string Library; // LB: - std::string Description; // DS: - std::string PlatformUnit; // PU: - std::string PredictedInsertSize; // PI: - std::string SequencingCenter; // CN: - std::string ProductionDate; // DT: - std::string SequencingTechnology; // PL: + // data fields + std::string Description; // DS: + std::string FlowOrder; // FO: + std::string ID; // ID: *Required for valid SAM header* + std::string KeySequence; // KS: + std::string Library; // LB: + std::string PlatformUnit; // PU: + std::string PredictedInsertSize; // PI: + std::string ProductionDate; // DT: + std::string Program; // PG: + std::string Sample; // SM: + std::string SequencingCenter; // CN: + std::string SequencingTechnology; // PL: }; -// --------------------------------------------------- -// comparison operators - -// for equality: compare IDs -inline bool operator==(const SamReadGroup& lhs, const SamReadGroup& rhs) { +/*! \fn bool operator==(const SamReadGroup& lhs, const SamReadGroup& rhs) + \brief tests equality by comparing read group IDs +*/ +API_EXPORT inline bool operator==(const SamReadGroup& lhs, const SamReadGroup& rhs) { return lhs.ID == rhs.ID; }