bpp-seq3  3.0.0
bpp::Sequence Class Referenceabstract

A basic implementation of the Sequence interface. More...

#include <Bpp/Seq/Sequence.h>

+ Inheritance diagram for bpp::Sequence:
+ Collaboration diagram for bpp::Sequence:

Public Types

typedef int ElementType
 
typedef int SymbolType
 

Public Member Functions

 Sequence (std::shared_ptr< const Alphabet > &alpha)
 Empty constructor: build a void Sequence with just an Alphabet. More...
 
 Sequence (const std::string &name, const std::string &sequence, std::shared_ptr< const Alphabet > &alpha)
 Direct constructor: build a Sequence object from a std::string You can use it safely for RNA, DNA and protein sequences. More...
 
 Sequence (const std::string &name, const std::string &sequence, const Comments &comments, std::shared_ptr< const Alphabet > &alpha)
 Direct constructor: build a Sequence object from a std::string. More...
 
 Sequence (const std::string &name, const std::vector< std::string > &sequence, std::shared_ptr< const Alphabet > &alpha)
 General purpose constructor, can be used with any alphabet. More...
 
 Sequence (const std::string &name, const std::vector< std::string > &sequence, const Comments &comments, std::shared_ptr< const Alphabet > &alpha)
 General purpose constructor, can be used with any alphabet. More...
 
 Sequence (const std::string &name, const std::vector< int > &sequence, std::shared_ptr< const Alphabet > &alpha)
 General purpose constructor, can be used with any alphabet. More...
 
 Sequence (const std::string &name, const std::vector< int > &sequence, const Comments &comments, std::shared_ptr< const Alphabet > &alpha)
 General purpose constructor, can be used with any alphabet. More...
 
 Sequence (const SequenceInterface &s)
 The Sequence generic copy constructor. This does not perform a hard copy of the alphabet object. More...
 
 Sequence (const Sequence &s)
 The Sequence copy constructor. This does not perform a hard copy of the alphabet object. More...
 
Sequenceoperator= (const SequenceInterface &s)
 The Sequence generic assignment operator. This does not perform a hard copy of the alphabet object. More...
 
Sequenceoperator= (const Sequence &s)
 The Sequence assignment operator. This does not perform a hard copy of the alphabet object. More...
 
virtual ~Sequence ()
 
double getStateValueAt (size_t sitePosition, int state) const override
 get value of a state at a position More...
 
virtual std::shared_ptr< const AlphabetgetAlphabet () const =0
 Get the alphabet associated to the list. More...
 
virtual const Alphabetalphabet () const =0
 Get the alphabet associated to the list. More...
 
virtual size_t size () const =0
 Get the number of elements in the list. More...
 
virtual double operator() (size_t position, int state) const =0
 get value of a state at a position More...
 
virtual const CommentsgetComments () const =0
 Get the comments. More...
 
virtual void setComments (const Comments &comments)=0
 Set the comments. More...
 
virtual void clearComments ()=0
 
const CommentsgetComments () const override
 Get the comments. More...
 
void setComments (const Comments &comments) override
 Set the comments. More...
 
void clearComments () override
 
void addElement (const std::string &c) override
 Add a character to the end of the list. More...
 
void addElement (size_t pos, const std::string &c) override
 Add a character at a certain position in the list. More...
 
void addElement (const int &v) override
 Add a character to the end of the list. More...
 
void addElement (size_t pos, const int &v) override
 Add a character at a certain position in the list. More...
 
void setElement (size_t pos, const std::string &c) override
 Set the element at position 'pos' to character 'c'. More...
 
void setElement (size_t pos, const T &v) override
 
void setElement (size_t pos, const int &v) override
 Set the element at position 'pos' to character 'c'. More...
 
double operator() (size_t siteIndex, int state) const override
 get value of a state at a position More...
 
virtual const std::vector< int > & getContent () const override
 
const int & getElement (size_t pos) const override
 Get the element at position 'pos' as a character. More...
 
const int & getValue (size_t pos) const override
 checked access to a character in list. More...
 
const int & operator[] (size_t pos) const override
 Operator [] overloaded for quick access to a character in list. More...
 
int & operator[] (size_t pos) override
 Operator [] overloaded for quick access to a character in list. More...
 
std::shared_ptr< const AlphabetgetAlphabet () const override
 Get the alphabet associated to the list. More...
 
const Alphabetalphabet () const override
 Get the alphabet associated to the list. More...
 
size_t size () const override
 Get the number of elements in the list. More...
 
void deleteElement (size_t pos) override
 Remove the element at position 'pos'. More...
 
void deleteElements (size_t pos, size_t len) override
 Remove the elements at position 'pos'. More...
 
void shuffle () override
 Randomly shuffle the content of the list, with linear complexity. More...
 
The Clonable interface
Sequenceclone () const override
 
Adjusting the size of the sequence.
void setContent (const std::string &sequence) override
 Set the whole content of the sequence. More...
 
void setContent (const std::vector< std::string > &list) override
 Set the whole content of the list. More...
 
void setContent (const std::vector< int > &list) override
 
std::string toString () const override
 Convert the list as a string. More...
 
std::string getChar (size_t pos) const override
 Get the element at position 'pos' as a character. More...
 
void setToSizeR (size_t newSize) override
 Set up the size of a sequence from the right side. More...
 
void setToSizeL (size_t newSize) override
 Set up the size of a sequence from the left side. More...
 
void append (const SequenceInterface &seq) override
 Append the content of the sequence. More...
 
void append (const std::vector< int > &content) override
 Append the specified content to the sequence. More...
 
void append (const std::vector< std::string > &content) override
 Append the specified content to the sequence. More...
 
void append (const std::string &content) override
 Append the specified content to the sequence. More...
 
void addElement (const std::string &c) override
 
void addElement (size_t pos, const std::string &c) override
 
void addElement (const T &v) override
 
void addElement (size_t pos, const T &v) override
 
Acting on the content of the list.
virtual void setContent (const std::vector< T > &list)=0
 Set the whole content of the list. More...
 
Acting on the content of the list.
virtual void setContent (const std::vector< T > &list)=0
 Set the whole content of the list. More...
 
virtual const std::vector< T > & getContent () const =0
 
Setting/getting the name of the sequence.
virtual const std::string & getName () const =0
 Get the name of this sequence. More...
 
virtual void setName (const std::string &name)=0
 Set the name of this sequence. More...
 
Edition methods.
virtual void deleteElement (size_t pos)=0
 Remove the element at position 'pos'. More...
 
virtual void deleteElements (size_t pos, size_t len)=0
 Remove the elements at position 'pos'. More...
 
Provide direct access to the list content.
Warning
These operators allow you to modify the list content. No alphabet checking is performed for your modifications, so use with care, or consider using the setContent() method.
virtual void shuffle ()=0
 Randomly shuffle the content of the list, with linear complexity. More...
 
Edition methods.
virtual void addElement (const std::string &c)=0
 Add a character to the end of the list. More...
 
virtual void addElement (size_t pos, const std::string &c)=0
 Add a character at a certain position in the list. More...
 
virtual void setElement (size_t pos, const std::string &c)=0
 Set the element at position 'pos' to character 'c'. More...
 
virtual void setElement (size_t pos, const T &c)=0
 Set the element at position 'pos' to character 'c'. More...
 
Edition methods.
virtual void addElement (const T &c)=0
 Add a character to the end of the list. More...
 
virtual void addElement (size_t pos, const T &c)=0
 Add a character at a certain position in the list. More...
 
virtual void setElement (size_t pos, const T &c)=0
 Set the element at position 'pos' to character 'c'. More...
 
virtual const T & getElement (size_t pos) const =0
 Get the element at position 'pos' as a character. More...
 
Provide direct access to the list content.
Warning
These operators allow you to modify the list content. No alphabet checking is performed for your modifications, so use with care, or consider using the setContent() method.
virtual const T & getValue (size_t pos) const =0
 checked access to a character in list. More...
 
virtual const T & operator[] (size_t pos) const =0
 Operator [] overloaded for quick access to a character in list. More...
 
virtual T & operator[] (size_t pos)=0
 Operator [] overloaded for quick access to a character in list. More...
 
Setting/getting the name of the sequence.
const std::string & getName () const override
 Get the name of this sequence. More...
 
void setName (const std::string &name) override
 Set the name of this sequence. More...
 

Protected Attributes

Comments comments_
 
std::vector< int > content_
 The list content. More...
 

Private Attributes

std::string name_
 The sequence name. More...
 
std::shared_ptr< const Alphabetalphabet_
 The Alphabet attribute must be initialized in constructor and then can never be changed. More...
 

Detailed Description

A basic implementation of the Sequence interface.

This is a general purpose container, containing an ordered list of states. The states that allowed to be present in the sequence are defined by an alphabet object, which is passed to the sequence constructor by a pointer.

For programming convenience, the states are stored as integers, but the translation toward and from a char description is easily performed with the Alphabet classes.

Sequence objects also contain a name attribute and potentially several comment lines.

See also
Alphabet

Definition at line 113 of file Sequence.h.

Member Typedef Documentation

◆ ElementType

typedef int bpp::SequenceInterface::ElementType
inherited

Definition at line 36 of file Sequence.h.

◆ SymbolType

Definition at line 31 of file IntSymbolList.h.

Constructor & Destructor Documentation

◆ Sequence() [1/9]

bpp::Sequence::Sequence ( std::shared_ptr< const Alphabet > &  alpha)
inline

Empty constructor: build a void Sequence with just an Alphabet.

You can use it safely for all type of Alphabet in order to build an empty Sequence i.e. without name nor sequence data.

Parameters
alphaA pointer toward the Alphabet to be used with this Sequence.

Definition at line 127 of file Sequence.h.

Referenced by clone().

◆ Sequence() [2/9]

bpp::Sequence::Sequence ( const std::string &  name,
const std::string &  sequence,
std::shared_ptr< const Alphabet > &  alpha 
)
inline

Direct constructor: build a Sequence object from a std::string You can use it safely for RNA, DNA and protein sequences.

It can be used with codon sequences too, the std::string will be cut into parts of size 3. But for more complicated alphabets, you should use one complete constructors.

Parameters
nameThe sequence name.
sequenceThe whole sequence to be parsed as a std::string.
alphaA pointer toward the alphabet to be used with this sequence.

Definition at line 146 of file Sequence.h.

References bpp::IntSymbolListInterface::setContent().

◆ Sequence() [3/9]

bpp::Sequence::Sequence ( const std::string &  name,
const std::string &  sequence,
const Comments comments,
std::shared_ptr< const Alphabet > &  alpha 
)
inline

Direct constructor: build a Sequence object from a std::string.

You can use it safely for RNA, DNA and protein sequences.

It can be used with codon sequences too, the std::string will be cut into tokens of size 3. But for more complicated alphabets, you should use one complete constructors.

Parameters
nameThe sequence name.
sequenceThe whole sequence to be parsed as a std::string.
commentsComments to add to the sequence.
alphaA pointer toward the alphabet to be used with this sequence.

Definition at line 173 of file Sequence.h.

References bpp::IntSymbolListInterface::setContent().

◆ Sequence() [4/9]

bpp::Sequence::Sequence ( const std::string &  name,
const std::vector< std::string > &  sequence,
std::shared_ptr< const Alphabet > &  alpha 
)
inline

General purpose constructor, can be used with any alphabet.

You should note that the sequence is stored as a std::vector of int. Hence each std::string in the std::vector will be translated using the alphabet object.

Parameters
nameThe sequence name.
sequenceThe sequence content.
alphaA pointer toward the alphabet to be used with this sequence.

Definition at line 197 of file Sequence.h.

◆ Sequence() [5/9]

bpp::Sequence::Sequence ( const std::string &  name,
const std::vector< std::string > &  sequence,
const Comments comments,
std::shared_ptr< const Alphabet > &  alpha 
)
inline

General purpose constructor, can be used with any alphabet.

You should note that the sequence is stored as a std::vector of int. Hence each std::string in the std::vector will be translated using the alphabet object.

Parameters
nameThe sequence name.
sequenceThe sequence content.
commentsComments to add to the sequence.
alphaA pointer toward the alphabet to be used with this sequence.

Definition at line 218 of file Sequence.h.

◆ Sequence() [6/9]

bpp::Sequence::Sequence ( const std::string &  name,
const std::vector< int > &  sequence,
std::shared_ptr< const Alphabet > &  alpha 
)
inline

General purpose constructor, can be used with any alphabet.

Parameters
nameThe sequence name.
sequenceThe sequence content.
alphaA pointer toward the alphabet to be used with this sequence.

Definition at line 236 of file Sequence.h.

◆ Sequence() [7/9]

bpp::Sequence::Sequence ( const std::string &  name,
const std::vector< int > &  sequence,
const Comments comments,
std::shared_ptr< const Alphabet > &  alpha 
)
inline

General purpose constructor, can be used with any alphabet.

Parameters
nameThe sequence name.
sequenceThe sequence content.
commentsComments to add to the sequence.
alphaA pointer toward the alphabet to be used with this sequence.

Definition at line 254 of file Sequence.h.

◆ Sequence() [8/9]

bpp::Sequence::Sequence ( const SequenceInterface s)
inline

The Sequence generic copy constructor. This does not perform a hard copy of the alphabet object.

Definition at line 268 of file Sequence.h.

◆ Sequence() [9/9]

bpp::Sequence::Sequence ( const Sequence s)
inline

The Sequence copy constructor. This does not perform a hard copy of the alphabet object.

Definition at line 278 of file Sequence.h.

◆ ~Sequence()

virtual bpp::Sequence::~Sequence ( )
inlinevirtual

Definition at line 311 of file Sequence.h.

Member Function Documentation

◆ addElement() [1/12]

void bpp::AbstractTemplateSymbolList< int >::addElement ( const T &  c)
inlineoverrideinherited

Add a character to the end of the list.

Parameters
cThe character to add.

Definition at line 152 of file SymbolList.h.

◆ addElement() [2/12]

void bpp::IntSymbolList::addElement ( const std::string &  c)
inlineoverridevirtualinherited

Add a character to the end of the list.

Parameters
cThe character to add, given as a string.

Implements bpp::IntSymbolListInterface.

Reimplemented in bpp::EventDrivenIntSymbolList.

Definition at line 185 of file IntSymbolList.h.

References bpp::AbstractTemplateSymbolList< int >::content_, and bpp::AbstractTemplateSymbolList< int >::getAlphabet().

◆ addElement() [3/12]

void bpp::IntSymbolList::addElement
inlineoverride

Definition at line 185 of file IntSymbolList.h.

◆ addElement() [4/12]

virtual void bpp::IntSymbolListInterface::addElement ( const std::string &  c)
pure virtualinherited

Add a character to the end of the list.

Parameters
cThe character to add, given as a string.

Implemented in bpp::EventDrivenIntSymbolList, and bpp::IntSymbolList.

◆ addElement() [5/12]

template<class T >
virtual void bpp::TemplateCoreSymbolListInterface< T >::addElement ( const T &  c)
pure virtualinherited

Add a character to the end of the list.

Parameters
cThe character to add.

Implemented in bpp::AbstractTemplateEventDrivenSymbolList< T >, and bpp::AbstractTemplateSymbolList< T >.

◆ addElement() [6/12]

void bpp::AbstractTemplateSymbolList< T >::addElement
inlineoverride

Definition at line 190 of file SymbolList.h.

◆ addElement() [7/12]

void bpp::AbstractTemplateSymbolList< int >::addElement ( size_t  pos,
const T &  c 
)
inlineoverrideinherited

Add a character at a certain position in the list.

Parameters
posThe position where to insert the element.
cThe character to add.

Definition at line 157 of file SymbolList.h.

◆ addElement() [8/12]

void bpp::IntSymbolList::addElement ( size_t  pos,
const std::string &  c 
)
inlineoverridevirtualinherited

Add a character at a certain position in the list.

Parameters
posThe position where to insert the element.
cThe character to add, given as a string.

Implements bpp::IntSymbolListInterface.

Reimplemented in bpp::EventDrivenIntSymbolList.

Definition at line 192 of file IntSymbolList.h.

References bpp::AbstractTemplateSymbolList< int >::content_, bpp::AbstractTemplateSymbolList< int >::getAlphabet(), and bpp::AbstractTemplateSymbolList< int >::size().

◆ addElement() [9/12]

void bpp::IntSymbolList::addElement
inlineoverride

Definition at line 192 of file IntSymbolList.h.

◆ addElement() [10/12]

virtual void bpp::IntSymbolListInterface::addElement ( size_t  pos,
const std::string &  c 
)
pure virtualinherited

Add a character at a certain position in the list.

Parameters
posThe position where to insert the element.
cThe character to add, given as a string.

Implemented in bpp::EventDrivenIntSymbolList, and bpp::IntSymbolList.

◆ addElement() [11/12]

template<class T >
virtual void bpp::TemplateCoreSymbolListInterface< T >::addElement ( size_t  pos,
const T &  c 
)
pure virtualinherited

Add a character at a certain position in the list.

Parameters
posThe position where to insert the element.
cThe character to add.

Implemented in bpp::AbstractTemplateEventDrivenSymbolList< T >, and bpp::AbstractTemplateSymbolList< T >.

◆ addElement() [12/12]

void bpp::AbstractTemplateSymbolList< T >::addElement
inlineoverride

Definition at line 190 of file SymbolList.h.

◆ alphabet() [1/2]

◆ alphabet() [2/2]

const Alphabet& bpp::AbstractTemplateSymbolList< int >::alphabet ( ) const
inlineoverridevirtualinherited

Get the alphabet associated to the list.

Returns
A const reference to the alphabet.
See also
Alphabet class.

Implements bpp::CruxSymbolListInterface.

Definition at line 122 of file SymbolList.h.

◆ append() [1/4]

void Sequence::append ( const SequenceInterface seq)
overridevirtual

Append the content of the sequence.

Parameters
seqThe sequence to append.
Exceptions
AlphabetMismatchExceptionIf the alphabet of the specified sequence does not match the current alphabet.

Implements bpp::SequenceInterface.

Definition at line 73 of file Sequence.cpp.

References bpp::CruxSymbolListInterface::getAlphabet(), and bpp::TemplateCoreSymbolListInterface< T >::getContent().

◆ append() [2/4]

void Sequence::append ( const std::string &  content)
overridevirtual

Append the specified content to the sequence.

Parameters
contentThe content to append to the sequence.
Exceptions
BadCharExceptionIf the content does not match the current alphabet.

Implements bpp::SequenceInterface.

Definition at line 115 of file Sequence.cpp.

References bpp::StringSequenceTools::codeSequence().

◆ append() [3/4]

void Sequence::append ( const std::vector< int > &  content)
overridevirtual

Append the specified content to the sequence.

Parameters
contentThe content to append to the sequence.
Exceptions
BadIntExceptionIf the content does not match the current alphabet.

Implements bpp::SequenceInterface.

Definition at line 84 of file Sequence.cpp.

◆ append() [4/4]

void Sequence::append ( const std::vector< std::string > &  content)
overridevirtual

Append the specified content to the sequence.

Parameters
contentThe content to append to the sequence.
Exceptions
BadCharExceptionIf the content does not match the current alphabet.

Implements bpp::SequenceInterface.

Definition at line 99 of file Sequence.cpp.

◆ clearComments() [1/2]

void bpp::SimpleCommentable::clearComments ( )
inlineoverridevirtualinherited

Implements bpp::Commentable.

Definition at line 88 of file Commentable.h.

References bpp::SimpleCommentable::comments_.

◆ clearComments() [2/2]

virtual void bpp::Commentable::clearComments ( )
pure virtualinherited

Implemented in bpp::SimpleCommentable.

◆ clone()

Sequence* bpp::Sequence::clone ( ) const
inlineoverridevirtual

Implements bpp::AbstractCoreSequence.

Definition at line 319 of file Sequence.h.

References Sequence().

Referenced by bpp::SiteContainerTools::alignNW().

◆ deleteElement() [1/2]

void bpp::AbstractTemplateSymbolList< int >::deleteElement ( size_t  pos)
inlineoverridevirtualinherited

Remove the element at position 'pos'.

Parameters
posThe position of the element to remove.

Implements bpp::CruxSymbolListInterface.

Reimplemented in bpp::AbstractTemplateEventDrivenSymbolList< int >.

Definition at line 138 of file SymbolList.h.

◆ deleteElement() [2/2]

virtual void bpp::CruxSymbolListInterface::deleteElement ( size_t  pos)
pure virtualinherited

◆ deleteElements() [1/2]

void bpp::AbstractTemplateSymbolList< int >::deleteElements ( size_t  pos,
size_t  len 
)
inlineoverridevirtualinherited

Remove the elements at position 'pos'.

Parameters
posThe position of the first element to remove.
lenThe length of the region to remove.

Implements bpp::CruxSymbolListInterface.

Reimplemented in bpp::AbstractTemplateEventDrivenSymbolList< int >.

Definition at line 145 of file SymbolList.h.

◆ deleteElements() [2/2]

virtual void bpp::CruxSymbolListInterface::deleteElements ( size_t  pos,
size_t  len 
)
pure virtualinherited

Remove the elements at position 'pos'.

Parameters
posThe position of the first element to remove.
lenThe length of the region to remove.

Implemented in bpp::AbstractTemplateEventDrivenSymbolList< T >, bpp::AbstractTemplateEventDrivenSymbolList< int >, bpp::AbstractTemplateSymbolList< T >, bpp::AbstractTemplateSymbolList< int >, and bpp::ProbabilisticSymbolList.

◆ getAlphabet() [1/2]

virtual std::shared_ptr<const Alphabet> bpp::CruxSymbolListInterface::getAlphabet ( ) const
pure virtualinherited

Get the alphabet associated to the list.

Returns
A const pointer to the alphabet.
See also
Alphabet class.

Implemented in bpp::AbstractTemplateSymbolList< T >, bpp::AbstractTemplateSymbolList< int >, and bpp::ProbabilisticSymbolList.

Referenced by append(), bpp::SequenceWithAnnotation::append(), bpp::SequenceTools::areSequencesIdentical(), bpp::SymbolListTools::areSymbolListsIdentical(), bpp::SequenceTools::bowkerTest(), bpp::SymbolListTools::changeGapsToUnknownCharacters(), bpp::SymbolListTools::changeUnresolvedCharactersToGaps(), bpp::SequenceTools::combineSequences(), bpp::SequenceWithQualityTools::complement(), bpp::SequenceTools::complement(), bpp::SiteContainerTools::computeSimilarity(), bpp::SequenceTools::concatenate(), bpp::SequenceWithQualityTools::concatenate(), bpp::SequenceTools::findFirstOf(), bpp::SequenceTools::getCDS(), bpp::SequenceTools::getComplement(), bpp::SymbolListTools::getCountsResolveUnknowns(), bpp::SymbolListTools::getGCContent(), bpp::SymbolListTools::getNumberOfDistinctPositions(), bpp::SymbolListTools::getNumberOfPositionsWithoutGap(), bpp::SequenceTools::getNumberOfUnresolvedSites(), bpp::SequenceTools::getPercentIdentity(), bpp::SequenceTools::getPutativeHaplotypes(), bpp::SequenceTools::getSequenceWithoutGaps(), bpp::SequenceTools::getSequenceWithoutStops(), bpp::SymbolListTools::hasGap(), bpp::SymbolListTools::hasUnknown(), bpp::SymbolListTools::hasUnresolved(), bpp::SequenceTools::invertComplement(), bpp::SymbolListTools::isComplete(), bpp::SymbolListTools::isConstant(), bpp::SymbolListTools::isGapOnly(), bpp::SymbolListTools::isGapOrUnresolvedOnly(), bpp::SymbolListTools::jointEntropy(), bpp::SequenceWithAnnotation::merge(), bpp::SymbolListTools::mutualInformation(), bpp::SymbolListTools::numberOfGaps(), bpp::SymbolListTools::numberOfUnresolved(), bpp::ProbabilisticSymbolList::operator=(), bpp::AbstractTemplateSymbolList< T >::operator=(), bpp::SequenceWithQualityTools::removeGaps(), bpp::SequenceTools::removeGaps(), bpp::SequenceTools::removeStops(), bpp::SequenceTools::replaceStopsWithGaps(), bpp::WordAlphabet::reverse(), bpp::NucleicAcidsReplication::reverse(), bpp::SequenceWithQualityTools::reverseTranscript(), bpp::SequenceTools::RNYslice(), bpp::SequenceTools::subseq(), bpp::SequenceWithQualityTools::subseq(), bpp::SequenceTools::subtractHaplotype(), bpp::SequenceWithQualityTools::transcript(), bpp::NucleicAcidsReplication::translate(), bpp::AbstractTransliterator::translate(), bpp::WordAlphabet::translate(), and bpp::SymbolListTools::variabilityShannon().

◆ getAlphabet() [2/2]

std::shared_ptr<const Alphabet> bpp::AbstractTemplateSymbolList< int >::getAlphabet ( ) const
inlineoverridevirtualinherited

Get the alphabet associated to the list.

Returns
A const pointer to the alphabet.
See also
Alphabet class.

Implements bpp::CruxSymbolListInterface.

Definition at line 120 of file SymbolList.h.

◆ getChar()

std::string bpp::Sequence::getChar ( size_t  pos) const
inlineoverridevirtual

Get the element at position 'pos' as a character.

Parameters
posThe position of the character to retrieve.

Reimplemented from bpp::IntSymbolList.

Definition at line 346 of file Sequence.h.

References bpp::IntSymbolList::getChar().

Referenced by bpp::SiteContainerTools::resolveDottedAlignment(), and bpp::Fasta::writeSequence().

◆ getComments() [1/2]

◆ getComments() [2/2]

◆ getContent() [1/2]

◆ getContent() [2/2]

virtual const std::vector<int >& bpp::AbstractTemplateSymbolList< int >::getContent ( ) const
inlineoverridevirtualinherited

Implements bpp::TemplateCoreSymbolListInterface< T >.

Definition at line 131 of file SymbolList.h.

◆ getElement() [1/2]

template<class T >
virtual const T& bpp::TemplateCoreSymbolListInterface< T >::getElement ( size_t  pos) const
pure virtualinherited

Get the element at position 'pos' as a character.

Parameters
posThe position of the character to retrieve.

Implemented in bpp::AbstractTemplateSymbolList< T >, bpp::AbstractTemplateSymbolList< int >, and bpp::ProbabilisticSymbolList.

◆ getElement() [2/2]

const int & bpp::AbstractTemplateSymbolList< int >::getElement ( size_t  pos) const
inlineoverridevirtualinherited

Get the element at position 'pos' as a character.

Parameters
posThe position of the character to retrieve.

Implements bpp::TemplateCoreSymbolListInterface< T >.

Definition at line 173 of file SymbolList.h.

◆ getName() [1/2]

◆ getName() [2/2]

◆ getStateValueAt()

double bpp::Sequence::getStateValueAt ( size_t  position,
int  state 
) const
inlineoverridevirtual

get value of a state at a position

Parameters
positionposition in the list
statestate in the alphabet
Returns
The state value at the given position.

Reimplemented from bpp::IntSymbolList.

Definition at line 366 of file Sequence.h.

References bpp::AbstractTemplateSymbolList< int >::getAlphabet(), and bpp::AbstractTemplateSymbolList< int >::size().

Referenced by bpp::Pasta::writeSequence().

◆ getValue() [1/2]

◆ getValue() [2/2]

const int & bpp::AbstractTemplateSymbolList< int >::getValue ( size_t  pos) const
inlineoverridevirtualinherited

checked access to a character in list.

Parameters
posThe position to retrieve.
Returns
The T value of character at position pos.

Implements bpp::TemplateCoreSymbolListInterface< T >.

Definition at line 180 of file SymbolList.h.

◆ operator()() [1/2]

virtual double bpp::CruxSymbolListInterface::operator() ( size_t  position,
int  state 
) const
pure virtualinherited

get value of a state at a position

Short-cut for getStateValueAt.

Parameters
positionposition in the list
statestate in the alphabet
Returns
The state value at the given position.

Implemented in bpp::ProbabilisticSymbolList, and bpp::IntSymbolList.

◆ operator()() [2/2]

double bpp::IntSymbolList::operator() ( size_t  position,
int  state 
) const
inlineoverridevirtualinherited

get value of a state at a position

Short-cut for getStateValueAt.

Parameters
positionposition in the list
statestate in the alphabet
Returns
The state value at the given position.

Implements bpp::CruxSymbolListInterface.

Definition at line 218 of file IntSymbolList.h.

References bpp::AbstractTemplateSymbolList< int >::content_, and bpp::AbstractTemplateSymbolList< int >::getAlphabet().

◆ operator=() [1/2]

Sequence& bpp::Sequence::operator= ( const Sequence s)
inline

The Sequence assignment operator. This does not perform a hard copy of the alphabet object.

Returns
A ref toward the assigned Sequence.

Definition at line 303 of file Sequence.h.

References bpp::AbstractCoreSequence::operator=(), and bpp::IntSymbolList::operator=().

◆ operator=() [2/2]

Sequence& bpp::Sequence::operator= ( const SequenceInterface s)
inline

The Sequence generic assignment operator. This does not perform a hard copy of the alphabet object.

Returns
A ref toward the assigned Sequence.

Definition at line 290 of file Sequence.h.

References bpp::TemplateCoreSymbolListInterface< T >::getContent(), bpp::AbstractCoreSequence::operator=(), and bpp::IntSymbolListInterface::setContent().

◆ operator[]() [1/4]

template<class T >
virtual const T& bpp::TemplateCoreSymbolListInterface< T >::operator[] ( size_t  pos) const
pure virtualinherited

Operator [] overloaded for quick access to a character in list.

Parameters
posThe position to retrieve.
Returns
The T value of character at position pos.

Implemented in bpp::AbstractTemplateSymbolList< T >, bpp::AbstractTemplateSymbolList< int >, and bpp::ProbabilisticSymbolList.

◆ operator[]() [2/4]

const int & bpp::AbstractTemplateSymbolList< int >::operator[] ( size_t  pos) const
inlineoverridevirtualinherited

Operator [] overloaded for quick access to a character in list.

Parameters
posThe position to retrieve.
Returns
The T value of character at position pos.

Implements bpp::TemplateCoreSymbolListInterface< T >.

Definition at line 187 of file SymbolList.h.

◆ operator[]() [3/4]

int & bpp::AbstractTemplateSymbolList< int >::operator[] ( size_t  pos)
inlineoverridevirtualinherited

Operator [] overloaded for quick access to a character in list.

Parameters
posThe position to retrieve.
Returns
The T value of character at position pos.

Implements bpp::TemplateCoreSymbolListInterface< T >.

Definition at line 189 of file SymbolList.h.

◆ operator[]() [4/4]

template<class T >
virtual T& bpp::TemplateCoreSymbolListInterface< T >::operator[] ( size_t  pos)
pure virtualinherited

Operator [] overloaded for quick access to a character in list.

Parameters
posThe position to retrieve.
Returns
The T value of character at position pos.

Implemented in bpp::AbstractTemplateSymbolList< T >, bpp::AbstractTemplateSymbolList< int >, and bpp::ProbabilisticSymbolList.

◆ setComments() [1/2]

◆ setComments() [2/2]

virtual void bpp::Commentable::setComments ( const Comments comments)
pure virtualinherited

◆ setContent() [1/5]

void Sequence::setContent ( const std::string &  sequence)
overridevirtual

Set the whole content of the sequence.

Parameters
sequenceThe new content of the sequence.
See also
The Sequence constructor for information about the way sequences are internally stored.

Implements bpp::SequenceInterface.

Definition at line 20 of file Sequence.cpp.

References bpp::StringSequenceTools::codeSequence(), and bpp::TextTools::removeWhiteSpaces().

Referenced by bpp::PhredPoly::nextSequence(), bpp::Fasta::nextSequence(), and bpp::PhredPhd::nextSequence().

◆ setContent() [2/5]

void bpp::Sequence::setContent ( const std::vector< int > &  list)
inlineoverridevirtual

Reimplemented from bpp::IntSymbolList.

Definition at line 336 of file Sequence.h.

References bpp::IntSymbolListInterface::setContent().

◆ setContent() [3/5]

void bpp::Sequence::setContent ( const std::vector< std::string > &  list)
inlineoverridevirtual

Set the whole content of the list.

Parameters
listThe new content of the list.
See also
The list constructor for information about the way lists are internally stored.

Reimplemented from bpp::IntSymbolList.

Definition at line 331 of file Sequence.h.

References bpp::IntSymbolListInterface::setContent().

◆ setContent() [4/5]

template<class T >
virtual void bpp::TemplateCoreSymbolListInterface< T >::setContent ( const std::vector< T > &  list)
pure virtualinherited

Set the whole content of the list.

Parameters
listThe new content of the list.
See also
The list constructor for information about the way lists are internally stored.

Implemented in bpp::AbstractTemplateEventDrivenSymbolList< T >, and bpp::AbstractTemplateSymbolList< T >.

◆ setContent() [5/5]

virtual void bpp::TemplateCoreSymbolListInterface< T >::setContent
inherited

Set the whole content of the list.

Parameters
listThe new content of the list.
See also
The list constructor for information about the way lists are internally stored.

Referenced by bpp::EventDrivenIntSymbolList::EventDrivenIntSymbolList(), bpp::IntSymbolList::IntSymbolList(), bpp::SequenceWithAnnotation::operator=(), operator=(), Sequence(), bpp::SequenceWithAnnotation::SequenceWithAnnotation(), setContent(), and bpp::SequenceWithAnnotation::setContent().

◆ setElement() [1/6]

void bpp::AbstractTemplateSymbolList< int >::setElement ( size_t  pos,
const T &  c 
)
inlineoverrideinherited

Set the element at position 'pos' to character 'c'.

Parameters
posThe position of the character to set.
cThe value of the element.

Definition at line 165 of file SymbolList.h.

◆ setElement() [2/6]

void bpp::IntSymbolList::setElement ( size_t  pos,
const std::string &  c 
)
inlineoverridevirtualinherited

Set the element at position 'pos' to character 'c'.

Parameters
posThe position of the character to set.
cThe value of the element, given as a string.

Implements bpp::IntSymbolListInterface.

Reimplemented in bpp::EventDrivenIntSymbolList.

Definition at line 201 of file IntSymbolList.h.

References bpp::AbstractTemplateSymbolList< int >::content_, bpp::AbstractTemplateSymbolList< int >::getAlphabet(), and bpp::AbstractTemplateSymbolList< int >::size().

◆ setElement() [3/6]

virtual void bpp::IntSymbolListInterface::setElement ( size_t  pos,
const std::string &  c 
)
pure virtualinherited

Set the element at position 'pos' to character 'c'.

Parameters
posThe position of the character to set.
cThe value of the element, given as a string.

Implemented in bpp::EventDrivenIntSymbolList, and bpp::IntSymbolList.

Referenced by bpp::SequenceTools::complement(), bpp::SequenceTools::invert(), bpp::SequenceTools::invertComplement(), and bpp::SequenceTools::replaceStopsWithGaps().

◆ setElement() [4/6]

template<class T >
virtual void bpp::TemplateCoreSymbolListInterface< T >::setElement ( size_t  pos,
const T &  c 
)
pure virtualinherited

Set the element at position 'pos' to character 'c'.

Parameters
posThe position of the character to set.
cThe value of the element.

Implemented in bpp::AbstractTemplateEventDrivenSymbolList< T >, and bpp::AbstractTemplateSymbolList< T >.

◆ setElement() [5/6]

virtual void bpp::TemplateCoreSymbolListInterface< T >::setElement
inherited

Set the element at position 'pos' to character 'c'.

Parameters
posThe position of the character to set.
cThe value of the element.

◆ setElement() [6/6]

void bpp::AbstractTemplateSymbolList< T >::setElement
inlineoverrideinherited

Definition at line 165 of file SymbolList.h.

◆ setName() [1/2]

void bpp::AbstractCoreSequence::setName ( const std::string &  name)
inlineoverridevirtualinherited

Set the name of this sequence.

Parameters
nameThe new name of the sequence.

Implements bpp::CoreSequenceInterface.

Definition at line 172 of file CoreSequence.h.

References bpp::AbstractCoreSequence::name_.

Referenced by bpp::Pasta::nextSequence(), bpp::PhredPoly::nextSequence(), bpp::Fasta::nextSequence(), bpp::PhredPhd::nextSequence(), and bpp::SequenceWithAnnotation::operator=().

◆ setName() [2/2]

virtual void bpp::CoreSequenceInterface::setName ( const std::string &  name)
pure virtualinherited

Set the name of this sequence.

Parameters
nameThe new name of the sequence.

Implemented in bpp::AbstractCoreSequence.

◆ setToSizeL()

void Sequence::setToSizeL ( size_t  newSize)
overridevirtual

Set up the size of a sequence from the left side.

All new characters are filled with gaps. If the specified size is < to the sequence size, the sequence will be truncated.

Parameters
newSizeThe new size of the sequence.

Implements bpp::CoreSequenceInterface.

Definition at line 51 of file Sequence.cpp.

◆ setToSizeR()

void Sequence::setToSizeR ( size_t  newSize)
overridevirtual

Set up the size of a sequence from the right side.

All new characters are filled with gaps. If the specified size is < to the sequence size, the sequence will be truncated.

Parameters
newSizeThe new size of the sequence.

Implements bpp::CoreSequenceInterface.

Definition at line 30 of file Sequence.cpp.

◆ shuffle() [1/2]

void bpp::AbstractTemplateSymbolList< int >::shuffle ( )
inlineoverridevirtualinherited

Randomly shuffle the content of the list, with linear complexity.

Implements bpp::CruxSymbolListInterface.

Definition at line 191 of file SymbolList.h.

◆ shuffle() [2/2]

virtual void bpp::CruxSymbolListInterface::shuffle ( )
pure virtualinherited

Randomly shuffle the content of the list, with linear complexity.

Implemented in bpp::AbstractTemplateSymbolList< T >, bpp::AbstractTemplateSymbolList< int >, and bpp::ProbabilisticSymbolList.

◆ size() [1/2]

virtual size_t bpp::CruxSymbolListInterface::size ( ) const
pure virtualinherited

Get the number of elements in the list.

Returns
The number of sites in the list.

Implemented in bpp::AbstractTemplateSymbolList< T >, bpp::AbstractTemplateSymbolList< int >, and bpp::ProbabilisticSymbolList.

Referenced by bpp::AbstractTemplateSymbolList< T >::AbstractTemplateSymbolList(), bpp::SequenceWithQuality::addElement(), bpp::SequenceWithAnnotation::append(), bpp::SequenceTools::areSequencesIdentical(), bpp::SymbolListTools::areSymbolListsIdentical(), bpp::SequenceTools::bowkerTest(), bpp::SymbolListTools::changeGapsToUnknownCharacters(), bpp::SymbolListTools::changeUnresolvedCharactersToGaps(), bpp::SequenceTools::combineSequences(), bpp::SequenceTools::complement(), bpp::SiteContainerTools::computeSimilarity(), bpp::SequenceTools::concatenate(), bpp::SequenceTools::findFirstOf(), bpp::SequenceTools::getCDS(), bpp::GeneticCode::getCodingSequence(), bpp::SymbolListTools::getCounts(), bpp::SymbolListTools::getCountsResolveUnknowns(), bpp::SymbolListTools::getFrequencies(), bpp::SymbolListTools::getGCContent(), bpp::SymbolListTools::getMajorAllele(), bpp::SymbolListTools::getMajorAlleleFrequency(), bpp::SymbolListTools::getMinorAllele(), bpp::SymbolListTools::getMinorAlleleFrequency(), bpp::SequenceTools::getNumberOfCompleteSites(), bpp::SymbolListTools::getNumberOfDistinctCharacters(), bpp::SymbolListTools::getNumberOfDistinctPositions(), bpp::SymbolListTools::getNumberOfPositionsWithoutGap(), bpp::SequenceTools::getNumberOfSites(), bpp::SequenceTools::getNumberOfUnresolvedSites(), bpp::SequenceTools::getPercentIdentity(), bpp::SequenceTools::getPutativeHaplotypes(), bpp::SequenceTools::getSequenceWithCompleteSites(), bpp::SequenceTools::getSequenceWithoutGaps(), bpp::SequenceTools::getSequenceWithoutStops(), bpp::SymbolListTools::hasGap(), bpp::SymbolListTools::hasSingleton(), bpp::SymbolListTools::hasUnknown(), bpp::SymbolListTools::hasUnresolved(), bpp::SymbolListTools::heterozygosity(), bpp::SequenceTools::invert(), bpp::SequenceTools::invertComplement(), bpp::SymbolListTools::isComplete(), bpp::SymbolListTools::isConstant(), bpp::SymbolListTools::isDoubleton(), bpp::SymbolListTools::isGapOnly(), bpp::SymbolListTools::isGapOrUnresolvedOnly(), bpp::SymbolListTools::isParsimonyInformativeSite(), bpp::SymbolListTools::isTriplet(), bpp::SequenceMask::isValidWith(), bpp::SequenceQuality::isValidWith(), bpp::SymbolListTools::jointEntropy(), bpp::SymbolListTools::mutualInformation(), bpp::SymbolListTools::numberOfGaps(), bpp::SymbolListTools::numberOfUnresolved(), bpp::AbstractTemplateSymbolList< T >::operator=(), bpp::SiteInterface::operator==(), bpp::SequenceWithQualityTools::removeGaps(), bpp::SequenceTools::removeGaps(), bpp::SequenceTools::removeStops(), bpp::SequenceTools::replaceStopsWithGaps(), bpp::CodonAlphabet::reverse(), bpp::WordAlphabet::reverse(), bpp::NucleicAcidsReplication::reverse(), bpp::AbstractReverseTransliterator::reverse(), bpp::SequenceTools::RNYslice(), bpp::SequenceWalker::SequenceWalker(), bpp::SequenceTools::subseq(), bpp::SequenceWithQualityTools::subseq(), bpp::SequenceTools::subtractHaplotype(), bpp::NucleicAcidsReplication::translate(), bpp::AbstractTransliterator::translate(), bpp::CodonAlphabet::translate(), bpp::WordAlphabet::translate(), bpp::SymbolListTools::variabilityFactorial(), and bpp::SymbolListTools::variabilityShannon().

◆ size() [2/2]

size_t bpp::AbstractTemplateSymbolList< int >::size ( ) const
inlineoverridevirtualinherited

Get the number of elements in the list.

Returns
The number of sites in the list.

Implements bpp::CruxSymbolListInterface.

Definition at line 124 of file SymbolList.h.

◆ toString()

std::string bpp::Sequence::toString ( ) const
inlineoverridevirtual

Convert the list as a string.

This method is useful for dumping a list to a file or to the screen for display.

Returns
The whole list as a string.

Reimplemented from bpp::IntSymbolList.

Definition at line 341 of file Sequence.h.

References bpp::IntSymbolList::toString().

Referenced by bpp::SequenceWithAnnotationTools::createMaskAnnotation().

Member Data Documentation

◆ alphabet_

std::shared_ptr<const Alphabet> bpp::AbstractTemplateSymbolList< int >::alphabet_
privateinherited

The Alphabet attribute must be initialized in constructor and then can never be changed.

To apply another alphabet to a list you'll have to create a new list.

Definition at line 41 of file SymbolList.h.

◆ comments_

◆ content_

std::vector<int > bpp::AbstractTemplateSymbolList< int >::content_
protectedinherited

The list content.

Definition at line 47 of file SymbolList.h.

◆ name_

std::string bpp::AbstractCoreSequence::name_
privateinherited

The documentation for this class was generated from the following files: