1 // ***************************************************************************
2 // SamSequence.cpp (c) 2010 Derek Barnett
3 // Marth Lab, Department of Biology, Boston College
4 // ---------------------------------------------------------------------------
5 // Last modified: 18 April 2011 (DB)
6 // ---------------------------------------------------------------------------
7 // Provides direct read/write access to the SAM sequence data fields.
8 // ***************************************************************************
10 #include <api/SamSequence.h>
12 using namespace BamTools;
15 /*! \struct BamTools::SamSequence
16 \brief Represents a SAM sequence entry.
18 Provides direct read/write access to the SAM sequence data fields.
22 /*! \var SamSequence::AssemblyID
23 \brief corresponds to \@SQ AS:\<AssemblyID\>
25 /*! \var SamSequence::Checksum
26 \brief corresponds to \@SQ M5:\<Checksum\>
28 /*! \var SamSequence::Length
29 \brief corresponds to \@SQ LN:\<Length\>
31 Required for valid SAM header.
33 /*! \var SamSequence::Name
34 \brief corresponds to \@SQ SN:\<Name\>
36 Required for valid SAM header.
38 /*! \var SamSequence::Species
39 \brief corresponds to \@SQ SP:\<Species\>
41 /*! \var SamSequence::URI
42 \brief corresponds to \@SQ UR:\<URI\>
45 /*! \fn SamSequence::SamSequence(void)
46 \brief default constructor
48 SamSequence::SamSequence(void)
57 /*! \fn SamSequence::SamSequence(const std::string& name, const int& length)
58 \brief constructs sequence with \a name and \a length
60 \param name desired sequence name
61 \param length desired sequence length (numeric value)
63 SamSequence::SamSequence(const std::string& name,
76 /*! \fn SamSequence::SamSequence(const std::string& name, const std::string& length)
77 \brief constructs sequence with \a name and \a length
79 \param name desired sequence name
80 \param length desired sequence length (string value)
82 SamSequence::SamSequence(const std::string& name,
83 const std::string& length)
92 /*! \fn SamSequence::SamSequence(const SamSequence& other)
93 \brief copy constructor
95 SamSequence::SamSequence(const SamSequence& other)
96 : AssemblyID(other.AssemblyID)
97 , Checksum(other.Checksum)
98 , Length(other.Length)
100 , Species(other.Species)
104 /*! \fn SamSequence::~SamSequence(void)
107 SamSequence::~SamSequence(void) { }
109 /*! \fn void SamSequence::Clear(void)
110 \brief Clears all data fields.
112 void SamSequence::Clear(void) {
121 /*! \fn bool SamSequence::HasAssemblyID(void) const
122 \brief Returns \c true if sequence contains \@SQ AS:\<AssemblyID\>
124 bool SamSequence::HasAssemblyID(void) const {
125 return (!AssemblyID.empty());
128 /*! \fn bool SamSequence::HasChecksum(void) const
129 \brief Returns \c true if sequence contains \@SQ M5:\<Checksum\>
131 bool SamSequence::HasChecksum(void) const {
132 return (!Checksum.empty());
135 /*! \fn bool SamSequence::HasLength(void) const
136 \brief Returns \c true if sequence contains \@SQ LN:\<Length\>
138 bool SamSequence::HasLength(void) const {
139 return (!Length.empty());
142 /*! \fn bool SamSequence::HasName(void) const
143 \brief Returns \c true if sequence contains \@SQ SN:\<Name\>
145 bool SamSequence::HasName(void) const {
146 return (!Name.empty());
149 /*! \fn bool SamSequence::HasSpecies(void) const
150 \brief Returns \c true if sequence contains \@SQ SP:\<Species\>
152 bool SamSequence::HasSpecies(void) const {
153 return (!Species.empty());
156 /*! \fn bool SamSequence::HasURI(void) const
157 \brief Returns \c true if sequence contains \@SQ UR:\<URI\>
159 bool SamSequence::HasURI(void) const {
160 return (!URI.empty());