1 // ***************************************************************************
2 // SamSequence.cpp (c) 2010 Derek Barnett
3 // Marth Lab, Department of Biology, Boston College
4 // All rights reserved.
5 // ---------------------------------------------------------------------------
6 // Last modified: 20 March 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.
21 \sa http://samtools.sourceforge.net/SAM-1.3.pdf
23 /*! \var SamSequence::Name
24 \brief corresponds to \@SQ SN:\<Name\>
26 /*! \var SamSequence::Length
27 \brief corresponds to \@SQ LN:\<Length\>
29 /*! \var SamSequence::AssemblyID
30 \brief corresponds to \@SQ AS:\<AssemblyID\>
32 /*! \var SamSequence::Checksum
33 \brief corresponds to \@SQ M5:\<Checksum\>
35 /*! \var SamSequence::URI
36 \brief corresponds to \@SQ UR:\<URI\>
38 /*! \var SamSequence::Species
39 \brief corresponds to \@SQ SP:\<Species\>
42 /*! \fn SamSequence::SamSequence(void)
43 \brief default constructor
45 SamSequence::SamSequence(void)
54 /*! \fn SamSequence::SamSequence(const std::string& name, const int& length)
55 \brief constructs sequence with \a name and \a length
57 \param name desired sequence name
58 \param length desired sequence length (numeric value)
60 SamSequence::SamSequence(const std::string& name, const int& length)
72 /*! \fn SamSequence::SamSequence(const SamSequence& other)
73 \brief copy constructor
75 SamSequence::SamSequence(const SamSequence& other)
77 , Length(other.Length)
78 , AssemblyID(other.AssemblyID)
79 , Checksum(other.Checksum)
81 , Species(other.Species)
84 /*! \fn SamSequence::~SamSequence(void)
87 SamSequence::~SamSequence(void) { }
89 /*! \fn void SamSequence::Clear(void)
90 \brief Clears all data fields.
92 void SamSequence::Clear(void) {
101 /*! \fn bool SamSequence::HasName(void) const
102 \brief Returns \c true if sequence contains \@SQ SN:\<Name\>
104 bool SamSequence::HasName(void) const {
105 return (!Name.empty());
108 /*! \fn bool SamSequence::HasLength(void) const
109 \brief Returns \c true if sequence contains \@SQ LN:\<Length\>
111 bool SamSequence::HasLength(void) const {
112 return (!Length.empty());
115 /*! \fn bool SamSequence::HasAssemblyID(void) const
116 \brief Returns \c true if sequence contains \@SQ AS:\<AssemblyID\>
118 bool SamSequence::HasAssemblyID(void) const {
119 return (!AssemblyID.empty());
122 /*! \fn bool SamSequence::HasChecksum(void) const
123 \brief Returns \c true if sequence contains \@SQ M5:\<Checksum\>
125 bool SamSequence::HasChecksum(void) const {
126 return (!Checksum.empty());
129 /*! \fn bool SamSequence::HasURI(void) const
130 \brief Returns \c true if sequence contains \@SQ UR:\<URI\>
132 bool SamSequence::HasURI(void) const {
133 return (!URI.empty());
136 /*! \fn bool SamSequence::HasSpecies(void) const
137 \brief Returns \c true if sequence contains \@SQ SP:\<Species\>
139 bool SamSequence::HasSpecies(void) const {
140 return (!Species.empty());