bpp-seq3  3.0.0
bpp::WordAlphabet Class Reference

The base class for word alphabets. More...

#include <Bpp/Seq/Alphabet/WordAlphabet.h>

+ Inheritance diagram for bpp::WordAlphabet:
+ Collaboration diagram for bpp::WordAlphabet:

Public Member Functions

 WordAlphabet (const std::vector< std::shared_ptr< const Alphabet >> &vAlpha)
 Builds a new word alphabet from a vector of Alphabets. More...
 
 WordAlphabet (std::shared_ptr< const Alphabet > pAlpha, size_t num)
 Builds a new word alphabet from a pointer to number of Alphabets. More...
 
 WordAlphabet (const WordAlphabet &bia)
 
WordAlphabetoperator= (const WordAlphabet &bia)
 
WordAlphabetclone () const override
 
virtual ~WordAlphabet ()
 
bool isResolvedIn (int state1, int state2) const override
 Tells if a given (potentially unresolved) state can be resolved in another resolved state. More...
 
bool hasUniqueAlphabet () const override
 Returns True if the Alphabet of the letters in the word are the same type. More...
 
unsigned int getLength () const override
 Returns the length of the word. More...
 
unsigned int getNumberOfTypes () const override
 Returns the number of resolved states + one for unresolved. More...
 
std::string getAlphabetType () const override
 Identification method. More...
 
int getUnknownCharacterCode () const override
 
bool isUnresolved (int state) const override
 
bool isUnresolved (const std::string &state) const override
 
std::vector< int > getAlias (int state) const override
 Get all resolved states that match a generic state. More...
 
std::vector< std::string > getAlias (const std::string &state) const override
 Get all resolved states that match a generic state. More...
 
int getGeneric (const std::vector< int > &states) const override
 Get the generic state that match a set of states. More...
 
std::string getGeneric (const std::vector< std::string > &states) const override
 Get the generic state that match a set of states. More...
 
Methods redefined from Alphabet
std::string getName (const std::string &state) const override
 Get the complete name of a state given its string description. More...
 
int charToInt (const std::string &state) const override
 Give the int description of a state given its string description. More...
 
unsigned int getSize () const override
 
Word specific methods
std::shared_ptr< const AlphabetgetNAlphabet (size_t n) const override
 Get the pointer to the Alphabet at the n-position. More...
 
virtual int getWord (const Sequence &seq, size_t pos=0) const override
 Get the int code for a word given the int code of the underlying positions. More...
 
virtual int getWord (const std::vector< int > &vint, size_t pos=0) const override
 Get the int code for a word given the int code of the underlying positions. More...
 
virtual std::string getWord (const std::vector< std::string > &vpos, size_t pos=0) const override
 Get the char code for a word given the char code of the underlying positions. More...
 
int getNPosition (int word, size_t n) const override
 Get the int code of the n-position of a word given its int description. More...
 
std::vector< int > getPositions (int word) const override
 Get the int codes of each position of a word given its int description. More...
 
std::string getNPosition (const std::string &word, size_t n) const override
 Get the char code of the n-position of a word given its char description. More...
 
std::vector< std::string > getPositions (const std::string &word) const override
 Get the char codes of each position of a word given its char description. More...
 
std::unique_ptr< SequenceInterfacetranslate (const SequenceInterface &sequence, size_t=0) const override
 Translate a whole sequence from letters alphabet to words alphabet. More...
 
std::unique_ptr< SequenceInterfacereverse (const SequenceInterface &sequence) const override
 Translate a whole sequence from words alphabet to letters alphabet. More...
 
Overloaded AbstractAlphabet methods.
unsigned int getStateCodingSize () const override
 Get the size of the string coding a state. More...
 
Implement these methods from the Alphabet interface.
size_t getNumberOfStates () const
 This is a convenient alias for getNumberOfChars(), returning a size_t instead of unsigned int. More...
 
unsigned int getNumberOfChars () const
 Get the number of supported characters in this alphabet, including generic characters (e.g. return 20 for DNA alphabet). More...
 
std::string getName (int state) const
 Get the complete name of a state given its int description. More...
 
std::string intToChar (int state) const
 Give the string description of a state given its int description. More...
 
bool isIntInAlphabet (int state) const
 Tell if a state (specified by its int description) is allowed by the the alphabet. More...
 
bool isCharInAlphabet (const std::string &state) const
 Tell if a state (specified by its string description) is allowed by the the alphabet. More...
 
const std::vector< int > & getSupportedInts () const
 
const std::vector< std::string > & getSupportedChars () const
 
const std::vector< std::string > & getResolvedChars () const
 
int getGapCharacterCode () const
 
bool isGap (int state) const
 
bool isGap (const std::string &state) const
 
Specific methods to access AlphabetState
virtual AlphabetStategetStateAt (size_t stateIndex)
 Get a state at a position in the alphabet_ vector. More...
 
virtual const AlphabetStategetStateAt (size_t stateIndex) const
 Get a state at a position in the alphabet_ vector. More...
 
const AlphabetStategetState (const std::string &letter) const
 Get a state by its letter. More...
 
AlphabetStategetState (const std::string &letter)
 
const AlphabetStategetState (int num) const
 Get a state by its num. More...
 
AlphabetStategetState (int num)
 
int getIntCodeAt (size_t stateIndex) const
 
const std::string & getCharCodeAt (size_t stateIndex) const
 
size_t getStateIndex (int state) const
 
size_t getStateIndex (const std::string &state) const
 

Protected Member Functions

virtual void registerState (AlphabetState *st)
 Add a state to the Alphabet. More...
 
virtual void setState (size_t pos, AlphabetState *st)
 Set a state in the Alphabet. More...
 
void resize (size_t size)
 Resize the private alphabet_ vector. More...
 
void remap ()
 Re-update the maps using the alphabet_ vector content. More...
 
bool equals (const Alphabet &alphabet) const
 Comparison of alphabets. More...
 

Protected Attributes

std::vector< std::shared_ptr< const Alphabet > > vAbsAlph_
 
Available codes

These vectors will be computed the first time you call the getAvailableInts or getAvailableChars method.

std::vector< std::string > charList_
 
std::vector< int > intList_
 

Private Member Functions

void updateMaps_ (size_t pos, const AlphabetState &st)
 Update the private maps letters_ and nums_ when adding a state. More...
 
Inner utilitary functions
bool containsUnresolved (const std::string &state) const override
 
bool containsGap (const std::string &state) const override
 
void build_ ()
 

Private Attributes

std::vector< AlphabetState * > alphabet_
 Alphabet: vector of AlphabetState. More...
 
maps used to quick search for letter and num.
std::map< std::string, size_t > letters_
 
std::map< int, size_t > nums_
 

Detailed Description

The base class for word alphabets.

These alphabets are compounds of several alphabets. The only constraint on these alphabets is that their words have length one (so it is not possible to make WordAlphabets from other WordAlphabets). The construction is made from a vector of pointers to AbstractAlphabets.

The strings of the WordAlphabet are concatenations of the strings of the Alphabets. They are made from the resolved letters of the Alphabets.

Definition at line 148 of file WordAlphabet.h.

Constructor & Destructor Documentation

◆ WordAlphabet() [1/3]

WordAlphabet::WordAlphabet ( const std::vector< std::shared_ptr< const Alphabet >> &  vAlpha)

Builds a new word alphabet from a vector of Alphabets.

The unit alphabets are not owned by the world alphabet, and won't be destroyed when this instance is destroyed.

Parameters
vAlphaThe vector of Alphabets to be used.

Definition at line 16 of file WordAlphabet.cpp.

References build_().

Referenced by clone().

◆ WordAlphabet() [2/3]

WordAlphabet::WordAlphabet ( std::shared_ptr< const Alphabet pAlpha,
size_t  num 
)

Builds a new word alphabet from a pointer to number of Alphabets.

Parameters
pAlphaThe Pointer to the Alphabet to be used.
numthe length of the words.

Definition at line 23 of file WordAlphabet.cpp.

References build_(), and vAbsAlph_.

◆ WordAlphabet() [3/3]

bpp::WordAlphabet::WordAlphabet ( const WordAlphabet bia)
inline

Definition at line 176 of file WordAlphabet.h.

◆ ~WordAlphabet()

virtual bpp::WordAlphabet::~WordAlphabet ( )
inlinevirtual

Definition at line 190 of file WordAlphabet.h.

Member Function Documentation

◆ build_()

void WordAlphabet::build_ ( )
private

Definition at line 35 of file WordAlphabet.cpp.

References getSize(), bpp::AbstractAlphabet::registerState(), and vAbsAlph_.

Referenced by WordAlphabet().

◆ charToInt()

int bpp::WordAlphabet::charToInt ( const std::string &  state) const
inlineoverridevirtual

Give the int description of a state given its string description.

Parameters
stateThe string description.
Returns
The int description.
Exceptions
BadCharExceptionWhen state is not a valid char description.

Reimplemented from bpp::AbstractAlphabet.

Definition at line 210 of file WordAlphabet.h.

References bpp::AbstractAlphabet::charToInt(), containsGap(), containsUnresolved(), getSize(), and vAbsAlph_.

Referenced by getNPosition(), getPositions(), getWord(), and isUnresolved().

◆ clone()

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

Implements bpp::AbstractAlphabet.

Definition at line 185 of file WordAlphabet.h.

References WordAlphabet().

◆ containsGap()

bool WordAlphabet::containsGap ( const std::string &  state) const
overrideprivatevirtual

Implements bpp::CoreWordAlphabet.

Definition at line 144 of file WordAlphabet.cpp.

References bpp::AbstractAlphabet::isGap(), and vAbsAlph_.

Referenced by charToInt(), and getName().

◆ containsUnresolved()

bool WordAlphabet::containsUnresolved ( const std::string &  state) const
overrideprivatevirtual

Implements bpp::CoreWordAlphabet.

Definition at line 126 of file WordAlphabet.cpp.

References isUnresolved(), and vAbsAlph_.

Referenced by charToInt(), and getName().

◆ equals()

bool bpp::AbstractAlphabet::equals ( const Alphabet alphabet) const
inlineprotectedvirtualinherited

Comparison of alphabets.

Returns
true If the two instances are of the same class.

Implements bpp::Alphabet.

Definition at line 243 of file AbstractAlphabet.h.

References bpp::Alphabet::getAlphabetType().

◆ getAlias() [1/2]

std::vector< std::string > WordAlphabet::getAlias ( const std::string &  state) const
overridevirtual

Get all resolved states that match a generic state.

If the given state is not a generic code then the output vector will contain this unique code.

Parameters
stateThe alias to resolve.
Returns
A vector of resolved states.
Exceptions
BadCharExceptionWhen state is not a valid char description.

Reimplemented from bpp::AbstractAlphabet.

Definition at line 215 of file WordAlphabet.cpp.

References getSize(), bpp::AbstractAlphabet::intToChar(), bpp::AbstractAlphabet::isCharInAlphabet(), bpp::TextTools::toUpper(), and vAbsAlph_.

◆ getAlias() [2/2]

std::vector< int > WordAlphabet::getAlias ( int  state) const
overridevirtual

Get all resolved states that match a generic state.

If the given state is not a generic code then the output vector will contain this unique code.

Parameters
stateThe alias to resolve.
Returns
A vector of resolved states.
Exceptions
BadIntExceptionWhen state is not a valid integer.

Reimplemented from bpp::AbstractAlphabet.

Definition at line 191 of file WordAlphabet.cpp.

References getSize(), and bpp::AbstractAlphabet::isIntInAlphabet().

◆ getAlphabetType()

std::string WordAlphabet::getAlphabetType ( ) const
overridevirtual

Identification method.

Used to tell if two alphabets describe the same type of sequences. For instance, this method is used by sequence containers to compare two alphabets and allow or deny addition of sequences.

Returns
A text describing the alphabet.

Implements bpp::Alphabet.

Definition at line 99 of file WordAlphabet.cpp.

References bpp::TextTools::toString(), and vAbsAlph_.

Referenced by hasUniqueAlphabet(), and reverse().

◆ getCharCodeAt()

const std::string& bpp::AbstractAlphabet::getCharCodeAt ( size_t  stateIndex) const
inlinevirtualinherited
Returns
The char code of a given state.
Parameters
stateIndexThe index of the state to fetch.

Implements bpp::Alphabet.

Definition at line 192 of file AbstractAlphabet.h.

References bpp::AlphabetState::getLetter(), and bpp::AbstractAlphabet::getStateAt().

◆ getGapCharacterCode()

int bpp::AbstractAlphabet::getGapCharacterCode ( ) const
inlinevirtualinherited
Returns
The int code for gap characters.

Implements bpp::Alphabet.

Definition at line 130 of file AbstractAlphabet.h.

◆ getGeneric() [1/2]

int WordAlphabet::getGeneric ( const std::vector< int > &  states) const
overridevirtual

Get the generic state that match a set of states.

If the given states contain generic code, each generic code is first resolved and then the new generic state is returned. If only a single resolved state is given the function return this state.

Parameters
statesA vector of states to resolve.
Returns
A int code for the computed state.
Exceptions
BadIntExceptionWhen a state is not a valid integer.

Reimplemented from bpp::AbstractAlphabet.

Definition at line 247 of file WordAlphabet.cpp.

◆ getGeneric() [2/2]

std::string WordAlphabet::getGeneric ( const std::vector< std::string > &  states) const
overridevirtual

Get the generic state that match a set of states.

If the given states contain generic code, each generic code is first resolved and then the new generic state is returned. If only a single resolved state is given the function return this state.

Parameters
statesA vector of states to resolve.
Returns
A string code for the computed state.
Exceptions
BadCharExceptionwhen a state is not a valid char description.
CharStateNotSupportedExceptionwhen the alphabet does not support Char state for unresolved state.

Reimplemented from bpp::AbstractAlphabet.

Definition at line 254 of file WordAlphabet.cpp.

◆ getIntCodeAt()

int bpp::AbstractAlphabet::getIntCodeAt ( size_t  stateIndex) const
inlinevirtualinherited
Returns
The int code of a given state.
Parameters
stateIndexThe index of the state to fetch.

Implements bpp::Alphabet.

Definition at line 187 of file AbstractAlphabet.h.

References bpp::AlphabetState::getNum(), and bpp::AbstractAlphabet::getStateAt().

◆ getLength()

unsigned int bpp::WordAlphabet::getLength ( ) const
inlineoverridevirtual

Returns the length of the word.

Implements bpp::CoreWordAlphabet.

Definition at line 242 of file WordAlphabet.h.

References vAbsAlph_.

Referenced by translate().

◆ getNAlphabet()

std::shared_ptr<const Alphabet> bpp::WordAlphabet::getNAlphabet ( size_t  n) const
inlineoverridevirtual

Get the pointer to the Alphabet at the n-position.

Parameters
nThe position in the word (starting at 0).
Returns
The pointer to the Alphabet of the n-position.

Implements bpp::CoreWordAlphabet.

Definition at line 299 of file WordAlphabet.h.

References vAbsAlph_.

Referenced by reverse().

◆ getName() [1/2]

std::string WordAlphabet::getName ( const std::string &  state) const
overridevirtual

Get the complete name of a state given its string description.

In case of undefined characters (i.e. N and X for nucleic alphabets), this method will return the name of the undefined word.

Parameters
stateThe string description of the given state.
Returns
The name of the state.
Exceptions
BadCharExceptionWhen state is not a valid char description.

Reimplemented from bpp::AbstractAlphabet.

Definition at line 161 of file WordAlphabet.cpp.

References containsGap(), containsUnresolved(), bpp::AlphabetState::getName(), bpp::AbstractAlphabet::getName(), getSize(), bpp::AbstractAlphabet::getStateAt(), and vAbsAlph_.

◆ getName() [2/2]

std::string AbstractAlphabet::getName ( int  state) const
virtualinherited

Get the complete name of a state given its int description.

In case of several states with identical number (i.e. N and X for nucleic alphabets), this method returns the name of the first found in the vector.

Parameters
stateThe int description of the given state.
Returns
The name of the state.
Exceptions
BadIntExceptionWhen state is not a valid integer.

Implements bpp::Alphabet.

Definition at line 146 of file AbstractAlphabet.cpp.

◆ getNPosition() [1/2]

std::string bpp::WordAlphabet::getNPosition ( const std::string &  word,
size_t  n 
) const
inlineoverridevirtual

Get the char code of the n-position of a word given its char description.

Parameters
wordThe char description of the word.
nThe position in the word (starting at 0).
Returns
The char description of the n-position of the word.

Implements bpp::CoreWordAlphabet.

Definition at line 385 of file WordAlphabet.h.

References charToInt(), and vAbsAlph_.

◆ getNPosition() [2/2]

int bpp::WordAlphabet::getNPosition ( int  word,
size_t  n 
) const
inlineoverridevirtual

Get the int code of the n-position of a word given its int description.

Parameters
wordThe int description of the word.
nThe position in the word (starting at 0).
Returns
The int description of the n-position of the word.

Implements bpp::CoreWordAlphabet.

Definition at line 352 of file WordAlphabet.h.

References bpp::AbstractAlphabet::intToChar(), and vAbsAlph_.

◆ getNumberOfChars()

unsigned int bpp::AbstractAlphabet::getNumberOfChars ( ) const
inlinevirtualinherited

Get the number of supported characters in this alphabet, including generic characters (e.g. return 20 for DNA alphabet).

Returns
The total number of supported character descriptions.

Implements bpp::Alphabet.

Definition at line 115 of file AbstractAlphabet.h.

References bpp::AbstractAlphabet::alphabet_.

Referenced by bpp::LexicalAlphabet::getNumberOfTypes(), bpp::AllelicAlphabet::getNumberOfTypes(), getNumberOfTypes(), bpp::LexicalAlphabet::getSize(), bpp::AllelicAlphabet::getSize(), getSize(), and bpp::NucleicAlphabet::registerState().

◆ getNumberOfStates()

size_t bpp::AbstractAlphabet::getNumberOfStates ( ) const
inlinevirtualinherited

This is a convenient alias for getNumberOfChars(), returning a size_t instead of unsigned int.

This function is typically used il loops over all states of an alphabet.

Implements bpp::Alphabet.

Definition at line 114 of file AbstractAlphabet.h.

References bpp::AbstractAlphabet::alphabet_.

Referenced by bpp::LexicalAlphabet::getAlphabetType().

◆ getNumberOfTypes()

unsigned int bpp::WordAlphabet::getNumberOfTypes ( ) const
inlineoverridevirtual

Returns the number of resolved states + one for unresolved.

Implements bpp::Alphabet.

Definition at line 252 of file WordAlphabet.h.

References bpp::AbstractAlphabet::getNumberOfChars().

◆ getPositions() [1/2]

std::vector<std::string> bpp::WordAlphabet::getPositions ( const std::string &  word) const
inlineoverridevirtual

Get the char codes of each position of a word given its char description.

Parameters
wordThe char description of the word.
Returns
The char description of the three positions of the word.

Implements bpp::CoreWordAlphabet.

Definition at line 402 of file WordAlphabet.h.

References charToInt().

◆ getPositions() [2/2]

std::vector<int> bpp::WordAlphabet::getPositions ( int  word) const
inlineoverridevirtual

Get the int codes of each position of a word given its int description.

Parameters
wordThe int description of the word.
Returns
The int description of the positions of the codon.

Implements bpp::CoreWordAlphabet.

Definition at line 367 of file WordAlphabet.h.

References charToInt(), bpp::AbstractAlphabet::intToChar(), and vAbsAlph_.

Referenced by reverse().

◆ getResolvedChars()

const std::vector< std::string > & AbstractAlphabet::getResolvedChars ( ) const
virtualinherited
Returns
A list of all resolved character codes.

Note for developers of new alphabets: we return a const reference here since the list is supposed to be stored within the class and should not be modified outside the class.

Implements bpp::Alphabet.

Definition at line 327 of file AbstractAlphabet.cpp.

◆ getSize()

unsigned int bpp::WordAlphabet::getSize ( ) const
inlineoverridevirtual

◆ getState() [1/4]

AlphabetState & AbstractAlphabet::getState ( const std::string &  letter)
inherited

Definition at line 101 of file AbstractAlphabet.cpp.

◆ getState() [2/4]

const AlphabetState & AbstractAlphabet::getState ( const std::string &  letter) const
virtualinherited

Get a state by its letter.

This method must be overloaded in specialized classes to send back a reference of the correct type.

Parameters
letterThe letter of the state to find.
Exceptions
BadCharExceptionIf the letter is not in the Alphabet.

Implements bpp::Alphabet.

Reimplemented in bpp::ProteicAlphabet, and bpp::NucleicAlphabet.

Definition at line 61 of file AbstractAlphabet.cpp.

Referenced by bpp::AllelicAlphabet::getAlias(), bpp::NucleicAlphabet::getState(), bpp::ProteicAlphabet::getState(), bpp::RNY::intToChar(), and bpp::NumericAlphabet::intToValue().

◆ getState() [3/4]

AlphabetState & AbstractAlphabet::getState ( int  num)
inherited

Definition at line 111 of file AbstractAlphabet.cpp.

◆ getState() [4/4]

const AlphabetState & AbstractAlphabet::getState ( int  num) const
virtualinherited

Get a state by its num.

This method must be overloaded in specialized classes to send back a reference of the correct type.

Parameters
numThe num of the state to find.
Exceptions
BadIntExceptionIf the num is not in the Alphabet.

Implements bpp::Alphabet.

Reimplemented in bpp::ProteicAlphabet, and bpp::NucleicAlphabet.

Definition at line 81 of file AbstractAlphabet.cpp.

◆ getStateAt() [1/2]

AlphabetState & AbstractAlphabet::getStateAt ( size_t  stateIndex)
virtualinherited

Get a state at a position in the alphabet_ vector.

This method must be overloaded in specialized classes to send back a reference of the correct type.

Parameters
stateIndexThe index of the state in the alphabet_ vector.
Exceptions
IndexOutOfBoundsExceptionIf the index is invalid.

Reimplemented in bpp::NumericAlphabet, bpp::NucleicAlphabet, and bpp::ProteicAlphabet.

Definition at line 121 of file AbstractAlphabet.cpp.

Referenced by bpp::LexicalAlphabet::getAlphabetType(), bpp::AbstractAlphabet::getCharCodeAt(), bpp::AbstractAlphabet::getIntCodeAt(), getName(), bpp::ProteicAlphabet::getStateAt(), bpp::NumericAlphabet::getStateAt(), and bpp::NucleicAlphabet::getStateAt().

◆ getStateAt() [2/2]

const AlphabetState & AbstractAlphabet::getStateAt ( size_t  stateIndex) const
virtualinherited

Get a state at a position in the alphabet_ vector.

This method must be overloaded in specialized classes to send back a reference of the correct type.

Parameters
stateIndexThe index of the state in the alphabet_ vector.
Exceptions
IndexOutOfBoundsExceptionIf the index is invalid.

Implements bpp::Alphabet.

Reimplemented in bpp::NumericAlphabet, bpp::NucleicAlphabet, and bpp::ProteicAlphabet.

Definition at line 130 of file AbstractAlphabet.cpp.

◆ getStateCodingSize()

unsigned int bpp::WordAlphabet::getStateCodingSize ( ) const
inlineoverridevirtual

Get the size of the string coding a state.

Returns
The size of the string coding each states in the Alphabet.
Author
Sylvain Gaillard

Reimplemented from bpp::AbstractAlphabet.

Definition at line 441 of file WordAlphabet.h.

References vAbsAlph_.

◆ getStateIndex() [1/2]

size_t AbstractAlphabet::getStateIndex ( const std::string &  state) const
virtualinherited
Returns
The index of the state with corresponding char code.

Implements bpp::Alphabet.

Definition at line 71 of file AbstractAlphabet.cpp.

◆ getStateIndex() [2/2]

size_t AbstractAlphabet::getStateIndex ( int  state) const
virtualinherited
Returns
The indices of the states with corresponding int code.

Implements bpp::Alphabet.

Definition at line 91 of file AbstractAlphabet.cpp.

◆ getSupportedChars()

const std::vector< std::string > & AbstractAlphabet::getSupportedChars ( ) const
virtualinherited
Returns
A list of all supported character codes.

Note for developers of new alphabets: we return a const reference here since the list is supposed to be stored within the class and should not be modified outside the class.

Implements bpp::Alphabet.

Definition at line 310 of file AbstractAlphabet.cpp.

Referenced by bpp::AllelicAlphabet::getAlias().

◆ getSupportedInts()

const std::vector< int > & AbstractAlphabet::getSupportedInts ( ) const
virtualinherited
Returns
A list of all supported int codes.

Note for developers of new alphabets: we return a const reference here since the list is supposed to be stored within the class and should not be modified outside the class.

Implements bpp::Alphabet.

Definition at line 293 of file AbstractAlphabet.cpp.

Referenced by bpp::AllelicAlphabet::getAlias().

◆ getUnknownCharacterCode()

int bpp::WordAlphabet::getUnknownCharacterCode ( ) const
inlineoverridevirtual
Returns
The int code for unknown characters.

Implements bpp::Alphabet.

Definition at line 259 of file WordAlphabet.h.

References getSize().

Referenced by isUnresolved().

◆ getWord() [1/3]

int WordAlphabet::getWord ( const Sequence seq,
size_t  pos = 0 
) const
overridevirtual

Get the int code for a word given the int code of the underlying positions.

The int code of each position must match the corresponding alphabet specified at this position.

Parameters
seqdescription for all the positions as a Sequence object.
posthe start position to match in the vector.
Returns
The int code of the word.
Exceptions
IndexOutOfBoundsExceptionIn case of wrong position.

Implements bpp::CoreWordAlphabet.

Definition at line 261 of file WordAlphabet.cpp.

References charToInt(), bpp::AbstractAlphabet::intToChar(), bpp::AbstractTemplateSymbolList< T >::size(), and vAbsAlph_.

Referenced by getWord(), and translate().

◆ getWord() [2/3]

int WordAlphabet::getWord ( const std::vector< int > &  vint,
size_t  pos = 0 
) const
overridevirtual

Get the int code for a word given the int code of the underlying positions.

The int code of each position must match the corresponding alphabet specified at this position.

Parameters
vintdescription for all the positions.
posthe start position to match in the vector.
Returns
The int code of the word.
Exceptions
IndexOutOfBoundsExceptionIn case of wrong position.

Implements bpp::CoreWordAlphabet.

Definition at line 278 of file WordAlphabet.cpp.

References charToInt(), getWord(), bpp::AbstractAlphabet::intToChar(), and vAbsAlph_.

◆ getWord() [3/3]

std::string WordAlphabet::getWord ( const std::vector< std::string > &  vpos,
size_t  pos = 0 
) const
overridevirtual

Get the char code for a word given the char code of the underlying positions.

The char code of each position must match the corresponding alphabet specified at this position.

Parameters
vposvector description for all the positions.
posthe start position to match in the vector.
Returns
The string of the word.
Exceptions
IndexOutOfBoundsExceptionIn case of wrong position.

Implements bpp::CoreWordAlphabet.

Definition at line 294 of file WordAlphabet.cpp.

References charToInt(), and vAbsAlph_.

◆ hasUniqueAlphabet()

bool WordAlphabet::hasUniqueAlphabet ( ) const
overridevirtual

Returns True if the Alphabet of the letters in the word are the same type.

Implements bpp::CoreWordAlphabet.

Definition at line 115 of file WordAlphabet.cpp.

References getAlphabetType(), and vAbsAlph_.

Referenced by reverse(), and translate().

◆ intToChar()

std::string AbstractAlphabet::intToChar ( int  state) const
virtualinherited

Give the string description of a state given its int description.

Parameters
stateThe int description.
Returns
The string description.
Exceptions
BadIntExceptionWhen state is not a valid integer.

Implements bpp::Alphabet.

Reimplemented in bpp::RNY.

Definition at line 160 of file AbstractAlphabet.cpp.

Referenced by bpp::RNY::getAlias(), getAlias(), bpp::CaseMaskedAlphabet::getMaskedEquivalentState(), getNPosition(), bpp::NucleicAlphabet::getOverlap(), getPositions(), getWord(), bpp::BinaryAlphabet::isResolvedIn(), and bpp::NucleicAlphabet::subtract().

◆ isCharInAlphabet()

bool AbstractAlphabet::isCharInAlphabet ( const std::string &  state) const
virtualinherited

Tell if a state (specified by its string description) is allowed by the the alphabet.

Parameters
stateThe string description.
Returns
'true' if the state in known.

Implements bpp::Alphabet.

Reimplemented in bpp::LetterAlphabet.

Definition at line 177 of file AbstractAlphabet.cpp.

Referenced by bpp::BinaryAlphabet::getAlias(), bpp::RNY::getAlias(), bpp::AllelicAlphabet::getAlias(), and getAlias().

◆ isGap() [1/2]

bool bpp::AbstractAlphabet::isGap ( const std::string &  state) const
inlinevirtualinherited
Parameters
stateThe state to test.
Returns
'True' if the state is a gap.

Implements bpp::Alphabet.

Definition at line 132 of file AbstractAlphabet.h.

References bpp::AbstractAlphabet::charToInt().

◆ isGap() [2/2]

bool bpp::AbstractAlphabet::isGap ( int  state) const
inlinevirtualinherited
Parameters
stateThe state to test.
Returns
'True' if the state is a gap.

Implements bpp::Alphabet.

Reimplemented in bpp::RNY, and bpp::NumericAlphabet.

Definition at line 131 of file AbstractAlphabet.h.

Referenced by containsGap().

◆ isIntInAlphabet()

bool AbstractAlphabet::isIntInAlphabet ( int  state) const
virtualinherited

Tell if a state (specified by its int description) is allowed by the the alphabet.

Parameters
stateThe int description.
Returns
'true' if the state in known.

Implements bpp::Alphabet.

Definition at line 167 of file AbstractAlphabet.cpp.

Referenced by bpp::BinaryAlphabet::getAlias(), bpp::RNY::getAlias(), bpp::AllelicAlphabet::getAlias(), getAlias(), bpp::CaseMaskedAlphabet::getMaskedEquivalentState(), bpp::BinaryAlphabet::isResolvedIn(), bpp::RNY::isResolvedIn(), bpp::AllelicAlphabet::isResolvedIn(), and isResolvedIn().

◆ isResolvedIn()

bool WordAlphabet::isResolvedIn ( int  state1,
int  state2 
) const
overridevirtual

Tells if a given (potentially unresolved) state can be resolved in another resolved state.

Parameters
state1The alias to resolve.
state2The candidate for resolution.
Returns
A boolean
Exceptions
BadIntExceptionWhen state is not a valid integer.

Reimplemented from bpp::AbstractAlphabet.

Definition at line 175 of file WordAlphabet.cpp.

References getSize(), bpp::AbstractAlphabet::isIntInAlphabet(), and isUnresolved().

◆ isUnresolved() [1/2]

bool bpp::WordAlphabet::isUnresolved ( const std::string &  state) const
inlineoverridevirtual
Parameters
stateThe state to test.
Returns
'True' if the state is unresolved.

Implements bpp::Alphabet.

Definition at line 265 of file WordAlphabet.h.

References charToInt(), and getUnknownCharacterCode().

◆ isUnresolved() [2/2]

bool bpp::WordAlphabet::isUnresolved ( int  state) const
inlineoverridevirtual
Parameters
stateThe state to test.
Returns
'True' if the state is unresolved.

Implements bpp::Alphabet.

Definition at line 264 of file WordAlphabet.h.

References getUnknownCharacterCode().

Referenced by containsUnresolved(), and isResolvedIn().

◆ operator=()

WordAlphabet& bpp::WordAlphabet::operator= ( const WordAlphabet bia)
inline

Definition at line 178 of file WordAlphabet.h.

References bpp::AbstractAlphabet::operator=(), and vAbsAlph_.

◆ registerState()

void AbstractAlphabet::registerState ( AlphabetState st)
protectedvirtualinherited

◆ remap()

void bpp::AbstractAlphabet::remap ( )
inlineprotectedinherited

Re-update the maps using the alphabet_ vector content.

Definition at line 231 of file AbstractAlphabet.h.

References bpp::AbstractAlphabet::alphabet_, bpp::AbstractAlphabet::letters_, bpp::AbstractAlphabet::nums_, and bpp::AbstractAlphabet::updateMaps_().

Referenced by bpp::NumericAlphabet::remap().

◆ resize()

void bpp::AbstractAlphabet::resize ( size_t  size)
inlineprotectedinherited

Resize the private alphabet_ vector.

Parameters
sizeThe new size of the Alphabet.

Definition at line 226 of file AbstractAlphabet.h.

References bpp::AbstractAlphabet::alphabet_.

◆ reverse()

unique_ptr< SequenceInterface > WordAlphabet::reverse ( const SequenceInterface sequence) const
overridevirtual

Translate a whole sequence from words alphabet to letters alphabet.

Parameters
sequenceA sequence in words alphabet.
Returns
The corresponding sequence in letters alphabet.
Exceptions
AlphabetMismatchExceptionIf the sequence alphabet do not match the target alphabet.
ExceptionOther kind of error, depending on the implementation.

Implements bpp::CoreWordAlphabet.

Definition at line 335 of file WordAlphabet.cpp.

References bpp::CruxSymbolListInterface::getAlphabet(), getAlphabetType(), getNAlphabet(), bpp::CoreSequenceInterface::getName(), getPositions(), hasUniqueAlphabet(), and bpp::CruxSymbolListInterface::size().

◆ setState()

void AbstractAlphabet::setState ( size_t  pos,
AlphabetState st 
)
protectedvirtualinherited

Set a state in the Alphabet.

Parameters
posThe index of the state in the alphabet_ vector.
stThe new state to put in the Alphabet.
Exceptions
ExceptionIf a wrong alphabet state is provided.
IndexOutOfBoundsExceptionIf an incorrect index is provided.

Reimplemented in bpp::NumericAlphabet, bpp::NucleicAlphabet, and bpp::LetterAlphabet.

Definition at line 46 of file AbstractAlphabet.cpp.

Referenced by bpp::LetterAlphabet::setState(), and bpp::NumericAlphabet::setState().

◆ translate()

unique_ptr< SequenceInterface > WordAlphabet::translate ( const SequenceInterface sequence,
size_t  pos = 0 
) const
overridevirtual

Translate a whole sequence from letters alphabet to words alphabet.

Parameters
sequenceA sequence in letters alphabet.
posthe start position (default 0)
Returns
The corresponding sequence in words alphabet.
Exceptions
AlphabetMismatchExceptionIf the sequence alphabet do not match the source alphabet.
ExceptionOther kind of error, depending on the implementation.

Implements bpp::CoreWordAlphabet.

Definition at line 311 of file WordAlphabet.cpp.

References bpp::CruxSymbolListInterface::getAlphabet(), getLength(), bpp::CoreSequenceInterface::getName(), getWord(), hasUniqueAlphabet(), bpp::CruxSymbolListInterface::size(), and vAbsAlph_.

◆ updateMaps_()

void AbstractAlphabet::updateMaps_ ( size_t  pos,
const AlphabetState st 
)
privateinherited

Update the private maps letters_ and nums_ when adding a state.

Parameters
posThe index of the state in the alphabet_ vector.
stThe state that has been added or modified

Definition at line 22 of file AbstractAlphabet.cpp.

References bpp::AlphabetState::getLetter(), and bpp::AlphabetState::getNum().

Referenced by bpp::AbstractAlphabet::remap().

Member Data Documentation

◆ alphabet_

◆ charList_

std::vector<std::string> bpp::AbstractAlphabet::charList_
mutableprotectedinherited

Definition at line 63 of file AbstractAlphabet.h.

Referenced by bpp::AbstractAlphabet::operator=().

◆ intList_

std::vector<int> bpp::AbstractAlphabet::intList_
mutableprotectedinherited

Definition at line 64 of file AbstractAlphabet.h.

Referenced by bpp::AbstractAlphabet::operator=().

◆ letters_

std::map<std::string, size_t> bpp::AbstractAlphabet::letters_
privateinherited

◆ nums_

std::map<int, size_t> bpp::AbstractAlphabet::nums_
privateinherited

◆ vAbsAlph_


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