1 // ***************************************************************************
2 // SamSequence.cpp (c) 2010 Derek Barnett
3 // Marth Lab, Department of Biology, Boston College
4 // All rights reserved.
5 // ---------------------------------------------------------------------------
6 // Last modified: 18 April 2011 (DB)
7 // ---------------------------------------------------------------------------
8 // Provides direct read/write access to the SAM sequence data fields.
9 // ***************************************************************************
11 #include <api/SamSequence.h>
13 using namespace BamTools;
16 /*! \struct BamTools::SamSequence
17 \brief Represents a SAM sequence entry.
19 Provides direct read/write access to the SAM sequence data fields.
23 /*! \var SamSequence::AssemblyID
24 \brief corresponds to \@SQ AS:\<AssemblyID\>
26 /*! \var SamSequence::Checksum
27 \brief corresponds to \@SQ M5:\<Checksum\>
29 /*! \var SamSequence::Length
30 \brief corresponds to \@SQ LN:\<Length\>
32 Required for valid SAM header.
34 /*! \var SamSequence::Name
35 \brief corresponds to \@SQ SN:\<Name\>
37 Required for valid SAM header.
39 /*! \var SamSequence::Species
40 \brief corresponds to \@SQ SP:\<Species\>
42 /*! \var SamSequence::URI
43 \brief corresponds to \@SQ UR:\<URI\>
46 /*! \fn SamSequence::SamSequence(void)
47 \brief default constructor
49 SamSequence::SamSequence(void)
58 /*! \fn SamSequence::SamSequence(const std::string& name, const int& length)
59 \brief constructs sequence with \a name and \a length
61 \param name desired sequence name
62 \param length desired sequence length (numeric value)
64 SamSequence::SamSequence(const std::string& name,
77 /*! \fn SamSequence::SamSequence(const std::string& name, const std::string& length)
78 \brief constructs sequence with \a name and \a length
80 \param name desired sequence name
81 \param length desired sequence length (string value)
83 SamSequence::SamSequence(const std::string& name,
84 const std::string& length)
93 /*! \fn SamSequence::SamSequence(const SamSequence& other)
94 \brief copy constructor
96 SamSequence::SamSequence(const SamSequence& other)
97 : AssemblyID(other.AssemblyID)
98 , Checksum(other.Checksum)
99 , Length(other.Length)
101 , Species(other.Species)
105 /*! \fn SamSequence::~SamSequence(void)
108 SamSequence::~SamSequence(void) { }
110 /*! \fn void SamSequence::Clear(void)
111 \brief Clears all data fields.
113 void SamSequence::Clear(void) {
122 /*! \fn bool SamSequence::HasAssemblyID(void) const
123 \brief Returns \c true if sequence contains \@SQ AS:\<AssemblyID\>
125 bool SamSequence::HasAssemblyID(void) const {
126 return (!AssemblyID.empty());
129 /*! \fn bool SamSequence::HasChecksum(void) const
130 \brief Returns \c true if sequence contains \@SQ M5:\<Checksum\>
132 bool SamSequence::HasChecksum(void) const {
133 return (!Checksum.empty());
136 /*! \fn bool SamSequence::HasLength(void) const
137 \brief Returns \c true if sequence contains \@SQ LN:\<Length\>
139 bool SamSequence::HasLength(void) const {
140 return (!Length.empty());
143 /*! \fn bool SamSequence::HasName(void) const
144 \brief Returns \c true if sequence contains \@SQ SN:\<Name\>
146 bool SamSequence::HasName(void) const {
147 return (!Name.empty());
150 /*! \fn bool SamSequence::HasSpecies(void) const
151 \brief Returns \c true if sequence contains \@SQ SP:\<Species\>
153 bool SamSequence::HasSpecies(void) const {
154 return (!Species.empty());
157 /*! \fn bool SamSequence::HasURI(void) const
158 \brief Returns \c true if sequence contains \@SQ UR:\<URI\>
160 bool SamSequence::HasURI(void) const {
161 return (!URI.empty());