X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=src%2Fapi%2FSamSequence.cpp;h=dea176bd1f5438ebcbf1c680d474546ab2042f67;hb=9f1ce8c47aeadb6dc1320b52ee671c3341b97935;hp=055460436e068b34ad2a51a37a44148600038286;hpb=ff5f2ec7c437660185a406d01739f42534105412;p=bamtools.git diff --git a/src/api/SamSequence.cpp b/src/api/SamSequence.cpp index 0554604..dea176b 100644 --- a/src/api/SamSequence.cpp +++ b/src/api/SamSequence.cpp @@ -1,46 +1,161 @@ // *************************************************************************** // SamSequence.cpp (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 sequence data -// ************************************************************************* +// Provides direct read/write access to the SAM sequence data fields. +// *************************************************************************** -#include +#include "api/SamSequence.h" +#include using namespace BamTools; using namespace std; -// ctor -SamSequence::SamSequence(const string& name) - : Name(name) +/*! \struct BamTools::SamSequence + \brief Represents a SAM sequence entry. + + Provides direct read/write access to the SAM sequence data fields. + + \sa \samSpecURL +*/ +/*! \var SamSequence::AssemblyID + \brief corresponds to \@SQ AS:\ +*/ +/*! \var SamSequence::Checksum + \brief corresponds to \@SQ M5:\ +*/ +/*! \var SamSequence::Length + \brief corresponds to \@SQ LN:\ + + Required for valid SAM header. +*/ +/*! \var SamSequence::Name + \brief corresponds to \@SQ SN:\ + + Required for valid SAM header. +*/ +/*! \var SamSequence::Species + \brief corresponds to \@SQ SP:\ +*/ +/*! \var SamSequence::URI + \brief corresponds to \@SQ UR:\ +*/ + +/*! \fn SamSequence::SamSequence(void) + \brief default constructor +*/ +SamSequence::SamSequence(void) + : AssemblyID("") + , Checksum("") , Length("") - , AssemblyID("") + , Name("") + , Species("") + , URI("") +{ } + +/*! \fn SamSequence::SamSequence(const std::string& name, const int& length) + \brief constructs sequence with \a name and \a length + + \param name desired sequence name + \param length desired sequence length (numeric value) +*/ +SamSequence::SamSequence(const std::string& name, + const int& length) + : AssemblyID("") , Checksum("") + , Name(name) + , Species("") , URI("") +{ + stringstream s(""); + s << length; + Length = s.str(); +} + +/*! \fn SamSequence::SamSequence(const std::string& name, const std::string& length) + \brief constructs sequence with \a name and \a length + + \param name desired sequence name + \param length desired sequence length (string value) +*/ +SamSequence::SamSequence(const std::string& name, + const std::string& length) + : AssemblyID("") + , Checksum("") + , Length(length) + , Name(name) , Species("") + , URI("") { } -// dtor -SamSequence::~SamSequence(void) { - Clear(); -} +/*! \fn SamSequence::SamSequence(const SamSequence& other) + \brief copy constructor +*/ +SamSequence::SamSequence(const SamSequence& other) + : AssemblyID(other.AssemblyID) + , Checksum(other.Checksum) + , Length(other.Length) + , Name(other.Name) + , Species(other.Species) + , URI(other.URI) +{ } + +/*! \fn SamSequence::~SamSequence(void) + \brief destructor +*/ +SamSequence::~SamSequence(void) { } -// clear all contents +/*! \fn void SamSequence::Clear(void) + \brief Clears all data fields. +*/ void SamSequence::Clear(void) { - Name.clear(); - Length.clear(); AssemblyID.clear(); Checksum.clear(); - URI.clear(); + Length.clear(); + Name.clear(); Species.clear(); + URI.clear(); +} + +/*! \fn bool SamSequence::HasAssemblyID(void) const + \brief Returns \c true if sequence contains \@SQ AS:\ +*/ +bool SamSequence::HasAssemblyID(void) const { + return (!AssemblyID.empty()); } -// convenience methods to check if SamSequence contains these values: -bool SamSequence::HasName(void) const { return (!Name.empty()); } -bool SamSequence::HasLength(void) const { return (!Length.empty()); } -bool SamSequence::HasAssemblyID(void) const { return (!AssemblyID.empty()); } -bool SamSequence::HasChecksum(void) const { return (!Checksum.empty()); } -bool SamSequence::HasURI(void) const { return (!URI.empty()); } -bool SamSequence::HasSpecies(void) const { return (!Species.empty()); } +/*! \fn bool SamSequence::HasChecksum(void) const + \brief Returns \c true if sequence contains \@SQ M5:\ +*/ +bool SamSequence::HasChecksum(void) const { + return (!Checksum.empty()); +} + +/*! \fn bool SamSequence::HasLength(void) const + \brief Returns \c true if sequence contains \@SQ LN:\ +*/ +bool SamSequence::HasLength(void) const { + return (!Length.empty()); +} + +/*! \fn bool SamSequence::HasName(void) const + \brief Returns \c true if sequence contains \@SQ SN:\ +*/ +bool SamSequence::HasName(void) const { + return (!Name.empty()); +} + +/*! \fn bool SamSequence::HasSpecies(void) const + \brief Returns \c true if sequence contains \@SQ SP:\ +*/ +bool SamSequence::HasSpecies(void) const { + return (!Species.empty()); +} + +/*! \fn bool SamSequence::HasURI(void) const + \brief Returns \c true if sequence contains \@SQ UR:\ +*/ +bool SamSequence::HasURI(void) const { + return (!URI.empty()); +}