bpp-seq  2.2.0
bpp::NumericAlphabet Class Reference

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

+ Inheritance diagram for bpp::NumericAlphabet:
+ Collaboration diagram for bpp::NumericAlphabet:

Public Member Functions

 NumericAlphabet (const UniformDiscreteDistribution &)
 
virtual ~NumericAlphabet ()
 
 NumericAlphabet (const NumericAlphabet &)
 
NumericAlphabetoperator= (const NumericAlphabet &)
 
NumericAlphabetclone () const
 
void setState (size_t pos, AlphabetState *st) throw (Exception)
 Set a state in the Alphabet. More...
 
void registerState (AlphabetState *st) throw (Exception)
 Add a state to the Alphabet. More...
 
bool containsGap (const std::string &state) const throw (BadCharException)
 
unsigned int getSize () const
 Get the number of resolved states in the alphabet (e.g. return 4 for DNA alphabet). This is the method you'll need in most cases. More...
 
unsigned int getNumberOfTypes () const
 Get the number of distinct states in alphabet (e.g. return 15 for DNA alphabet). This is the number of integers used for state description. More...
 
int getUnknownCharacterCode () const
 
bool isGap (int state) const
 
std::vector< int > getAlias (int state) const throw (BadIntException)
 Get all resolved states that match a generic state. More...
 
std::vector< std::string > getAlias (const std::string &state) const throw (BadCharException)
 Get all resolved states that match a generic state. More...
 
bool isUnresolved (int state) const
 
bool isUnresolved (const std::string &state) const
 
std::string getAlphabetType () const
 Identification method. More...
 
AlphabetNumericStategetStateAt (size_t stateIndex) throw (IndexOutOfBoundsException)
 Get a state at a position in the alphabet_ vector. More...
 
const AlphabetNumericStategetStateAt (size_t stateIndex) const throw (IndexOutOfBoundsException)
 Get a state at a position in the alphabet_ vector. More...
 
double getDelta () const
 Returns the difference between successive values. More...
 
double intToValue (int state) const throw (BadIntException)
 Returns the value for the character number. More...
 
size_t getValueIndex (double value) const
 Returns the CategoryIndex of the category to which the value belongs. More...
 
void remap ()
 Re-update the maps. 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 (const std::string &state) const throw (BadCharException)
 Get the complete name of a state given its string description. More...
 
std::string getName (int state) const throw (BadIntException)
 Get the complete name of a state given its int description. More...
 
int charToInt (const std::string &state) const throw (BadCharException)
 Give the int description of a state given its string description. More...
 
std::string intToChar (int state) const throw (BadIntException)
 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...
 
int getGeneric (const std::vector< int > &states) const throw (BadIntException)
 Get the generic state that match a set of states. More...
 
std::string getGeneric (const std::vector< std::string > &states) const throw (AlphabetException)
 Get the generic state that match a set of states. More...
 
const std::vector< int > & getSupportedInts () const
 
const std::vector< std::string > & getSupportedChars () const
 
int getGapCharacterCode () const
 
bool isGap (const std::string &state) const
 
Specific methods to access AlphabetState
const AlphabetStategetState (const std::string &letter) const throw (BadCharException)
 Get a state by its letter. More...
 
AlphabetStategetState (const std::string &letter) throw (BadCharException)
 
const AlphabetStategetState (int num) const throw (BadIntException)
 Get a state by its num. More...
 
AlphabetStategetState (int num) throw (BadIntException)
 
int getIntCodeAt (size_t stateIndex) const throw (IndexOutOfBoundsException)
 
const std::string & getCharCodeAt (size_t stateIndex) const throw (IndexOutOfBoundsException)
 
size_t getStateIndex (int state) const throw (BadIntException)
 
size_t getStateIndex (const std::string &state) const throw (BadCharException)
 

Protected Member Functions

void resize (size_t size)
 Resize the private alphabet_ vector. More...
 
unsigned int getStateCodingSize () const
 Get the size of the string coding a state. More...
 
bool equals (const Alphabet &alphabet) const
 Comparison of alphabets. More...
 

Protected Attributes

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 Attributes

const UniformDiscreteDistribution * pdd_
 
std::map< double, size_t > values_
 

Detailed Description

Definition at line 58 of file NumericAlphabet.h.

Constructor & Destructor Documentation

◆ NumericAlphabet() [1/2]

NumericAlphabet::NumericAlphabet ( const UniformDiscreteDistribution &  pd)

Definition at line 52 of file NumericAlphabet.cpp.

References pdd_, and registerState().

Referenced by clone().

◆ ~NumericAlphabet()

virtual bpp::NumericAlphabet::~NumericAlphabet ( )
inlinevirtual

Definition at line 69 of file NumericAlphabet.h.

References pdd_.

◆ NumericAlphabet() [2/2]

NumericAlphabet::NumericAlphabet ( const NumericAlphabet na)

Definition at line 66 of file NumericAlphabet.cpp.

Member Function Documentation

◆ charToInt()

int AbstractAlphabet::charToInt ( const std::string &  state) const
throw (BadCharException
)
virtualinherited

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.

Implements bpp::Alphabet.

Reimplemented in bpp::WordAlphabet, bpp::LetterAlphabet, and bpp::RNY.

Definition at line 178 of file AbstractAlphabet.cpp.

Referenced by bpp::RNY::charToInt(), bpp::WordAlphabet::charToInt(), and bpp::AbstractAlphabet::isGap().

◆ clone()

NumericAlphabet* bpp::NumericAlphabet::clone ( ) const
inlinevirtual

Implements bpp::AbstractAlphabet.

Definition at line 75 of file NumericAlphabet.h.

References NumericAlphabet().

◆ containsGap()

bool NumericAlphabet::containsGap ( const std::string &  state) const
throw (BadCharException
)

Definition at line 127 of file NumericAlphabet.cpp.

◆ 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 268 of file AbstractAlphabet.h.

References bpp::Alphabet::getAlphabetType().

◆ getAlias() [1/2]

vector< int > NumericAlphabet::getAlias ( int  state) const
throw (BadIntException
)
virtual

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 106 of file NumericAlphabet.cpp.

◆ getAlias() [2/2]

vector< string > NumericAlphabet::getAlias ( const std::string &  state) const
throw (BadCharException
)
virtual

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 113 of file NumericAlphabet.cpp.

◆ getAlphabetType()

std::string bpp::NumericAlphabet::getAlphabetType ( ) const
inlinevirtual

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 95 of file NumericAlphabet.h.

◆ getCharCodeAt()

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

Implements bpp::Alphabet.

Definition at line 220 of file AbstractAlphabet.h.

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

◆ getDelta()

double NumericAlphabet::getDelta ( ) const

Returns the difference between successive values.

@ brief Specific methods

Definition at line 165 of file NumericAlphabet.cpp.

References pdd_.

◆ getGapCharacterCode()

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

Implements bpp::Alphabet.

Definition at line 159 of file AbstractAlphabet.h.

Referenced by bpp::SequenceTools::replaceStopsWithGaps().

◆ getGeneric() [1/2]

int AbstractAlphabet::getGeneric ( const std::vector< int > &  states) const
throw (BadIntException
)
virtualinherited

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.

Implements bpp::Alphabet.

Reimplemented in bpp::WordAlphabet, bpp::ProteicAlphabet, bpp::DNA, and bpp::RNA.

Definition at line 232 of file AbstractAlphabet.cpp.

◆ getGeneric() [2/2]

std::string AbstractAlphabet::getGeneric ( const std::vector< std::string > &  states) const
throw (AlphabetException
)
virtualinherited

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.

Implements bpp::Alphabet.

Reimplemented in bpp::WordAlphabet, bpp::ProteicAlphabet, bpp::DNA, and bpp::RNA.

Definition at line 258 of file AbstractAlphabet.cpp.

◆ getIntCodeAt()

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

Implements bpp::Alphabet.

Definition at line 216 of file AbstractAlphabet.h.

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

◆ getName() [1/2]

std::string AbstractAlphabet::getName ( const std::string &  state) const
throw (BadCharException
)
virtualinherited

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

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

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

Implements bpp::Alphabet.

Reimplemented in bpp::WordAlphabet.

Definition at line 164 of file AbstractAlphabet.cpp.

Referenced by bpp::WordAlphabet::getName().

◆ getName() [2/2]

std::string AbstractAlphabet::getName ( int  state) const
throw (BadIntException
)
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 171 of file AbstractAlphabet.cpp.

◆ 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 146 of file AbstractAlphabet.h.

References bpp::AbstractAlphabet::alphabet_.

Referenced by bpp::WordAlphabet::getNumberOfTypes(), bpp::WordAlphabet::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 funcion is typically used il loops over all states of an alphabet.

Implements bpp::Alphabet.

Definition at line 145 of file AbstractAlphabet.h.

References bpp::AbstractAlphabet::alphabet_.

◆ getNumberOfTypes()

unsigned int NumericAlphabet::getNumberOfTypes ( ) const
virtual

Get the number of distinct states in alphabet (e.g. return 15 for DNA alphabet). This is the number of integers used for state description.

Returns
The number of distinct states.

Implements bpp::Alphabet.

Definition at line 147 of file NumericAlphabet.cpp.

References values_.

◆ getSize()

unsigned int NumericAlphabet::getSize ( ) const
virtual

Get the number of resolved states in the alphabet (e.g. return 4 for DNA alphabet). This is the method you'll need in most cases.

Returns
The number of resolved states.

Implements bpp::Alphabet.

Definition at line 142 of file NumericAlphabet.cpp.

References values_.

Referenced by remap().

◆ getState() [1/4]

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

Get a state by its letter.

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

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

Implements bpp::Alphabet.

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

Definition at line 94 of file AbstractAlphabet.cpp.

Referenced by bpp::CaseMaskedAlphabet::CaseMaskedAlphabet(), bpp::ProteicAlphabet::getState(), and bpp::NucleicAlphabet::getState().

◆ getState() [2/4]

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

Definition at line 130 of file AbstractAlphabet.cpp.

◆ getState() [3/4]

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

Get a state by its num.

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

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

Implements bpp::Alphabet.

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

Definition at line 112 of file AbstractAlphabet.cpp.

◆ getState() [4/4]

AlphabetState & AbstractAlphabet::getState ( int  num)
throw (BadIntException
)
inherited

Definition at line 139 of file AbstractAlphabet.cpp.

◆ getStateAt() [1/2]

AlphabetNumericState & NumericAlphabet::getStateAt ( size_t  stateIndex)
throw (IndexOutOfBoundsException
)
virtual

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 corect type.

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

Reimplemented from bpp::AbstractAlphabet.

Definition at line 181 of file NumericAlphabet.cpp.

References bpp::AbstractAlphabet::getStateAt().

Referenced by remap().

◆ getStateAt() [2/2]

const AlphabetNumericState & NumericAlphabet::getStateAt ( size_t  stateIndex) const
throw (IndexOutOfBoundsException
)
virtual

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 corect type.

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

Reimplemented from bpp::AbstractAlphabet.

Definition at line 186 of file NumericAlphabet.cpp.

References bpp::AbstractAlphabet::getStateAt().

◆ getStateCodingSize()

unsigned int bpp::AbstractAlphabet::getStateCodingSize ( ) const
inlineprotectedvirtualinherited

Get the size of the string coding a state.

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

Implements bpp::Alphabet.

Reimplemented in bpp::WordAlphabet.

Definition at line 266 of file AbstractAlphabet.h.

◆ getStateIndex() [1/2]

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

Implements bpp::Alphabet.

Definition at line 121 of file AbstractAlphabet.cpp.

Referenced by bpp::AAIndex2Entry::getIndex().

◆ getStateIndex() [2/2]

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

Implements bpp::Alphabet.

Definition at line 103 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 301 of file AbstractAlphabet.cpp.

Referenced by bpp::CaseMaskedAlphabet::CaseMaskedAlphabet().

◆ 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 284 of file AbstractAlphabet.cpp.

◆ getUnknownCharacterCode()

int bpp::NumericAlphabet::getUnknownCharacterCode ( ) const
inlinevirtual
Returns
The int code for unknown characters.

Implements bpp::Alphabet.

Definition at line 88 of file NumericAlphabet.h.

◆ getValueIndex()

size_t NumericAlphabet::getValueIndex ( double  value) const

Returns the CategoryIndex of the category to which the value belongs.

Definition at line 175 of file NumericAlphabet.cpp.

References pdd_, and values_.

◆ intToChar()

◆ intToValue()

double NumericAlphabet::intToValue ( int  state) const
throw (BadIntException
)

Returns the value for the character number.

Definition at line 170 of file NumericAlphabet.cpp.

◆ 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 202 of file AbstractAlphabet.cpp.

◆ isGap() [1/2]

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

Reimplemented from bpp::AbstractAlphabet.

Definition at line 122 of file NumericAlphabet.cpp.

◆ isGap() [2/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 161 of file AbstractAlphabet.h.

References bpp::AbstractAlphabet::charToInt().

◆ 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 192 of file AbstractAlphabet.cpp.

◆ isUnresolved() [1/2]

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

Implements bpp::Alphabet.

Definition at line 137 of file NumericAlphabet.cpp.

◆ isUnresolved() [2/2]

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

Implements bpp::Alphabet.

Definition at line 132 of file NumericAlphabet.cpp.

◆ operator=()

NumericAlphabet & NumericAlphabet::operator= ( const NumericAlphabet na)

Definition at line 72 of file NumericAlphabet.cpp.

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

◆ registerState()

void NumericAlphabet::registerState ( AlphabetState st)
throw (Exception
)
virtual

Add a state to the Alphabet.

Parameters
stThe state to add.
Exceptions
ExceptionIf a wrong alphabet state is provided.

Reimplemented from bpp::AbstractAlphabet.

Definition at line 93 of file NumericAlphabet.cpp.

References bpp::AbstractAlphabet::registerState().

Referenced by NumericAlphabet().

◆ remap()

void 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 253 of file AbstractAlphabet.h.

References bpp::AbstractAlphabet::alphabet_.

Referenced by bpp::IntegerAlphabet::IntegerAlphabet().

◆ setState()

void NumericAlphabet::setState ( size_t  pos,
AlphabetState st 
)
throw (Exception
)
virtual

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 from bpp::AbstractAlphabet.

Definition at line 81 of file NumericAlphabet.cpp.

References bpp::AbstractAlphabet::setState().

Member Data Documentation

◆ charList_

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

Definition at line 99 of file AbstractAlphabet.h.

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

◆ intList_

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

Definition at line 100 of file AbstractAlphabet.h.

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

◆ pdd_

const UniformDiscreteDistribution* bpp::NumericAlphabet::pdd_
private

◆ values_

std::map<double, size_t> bpp::NumericAlphabet::values_
private

Definition at line 63 of file NumericAlphabet.h.

Referenced by getNumberOfTypes(), getSize(), getValueIndex(), and remap().


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