|
bpp-phyl
2.1.0
|
Partial implementation of the Markov-modulated class of substitution models. More...
#include <Bpp/Phyl/Model/MarkovModulatedSubstitutionModel.h>
Inheritance diagram for bpp::MarkovModulatedSubstitutionModel:
Collaboration diagram for bpp::MarkovModulatedSubstitutionModel:Public Member Functions | |
| MarkovModulatedSubstitutionModel (ReversibleSubstitutionModel *model, bool normalizeRateChanges, const std::string &prefix) | |
| Build a new MarkovModulatedSubstitutionModel object. | |
| MarkovModulatedSubstitutionModel (const MarkovModulatedSubstitutionModel &model) | |
| MarkovModulatedSubstitutionModel & | operator= (const MarkovModulatedSubstitutionModel &model) |
| virtual | ~MarkovModulatedSubstitutionModel () |
| MarkovModulatedSubstitutionModel * | clone () const =0 |
| const Alphabet * | getAlphabet () const |
| size_t | getNumberOfStates () const |
| Get the number of states. | |
| const Vdouble & | getFrequencies () const |
| const Matrix< double > & | getExchangeabilityMatrix () const |
| const Matrix< double > & | getGenerator () const |
| const Matrix< double > & | getPij_t (double t) const |
| const Matrix< double > & | getdPij_dt (double t) const |
| const Matrix< double > & | getd2Pij_dt2 (double t) const |
| const Vdouble & | getEigenValues () const |
| const Vdouble & | getIEigenValues () const |
| bool | isDiagonalizable () const |
| bool | isNonSingular () const |
| const Matrix< double > & | getRowLeftEigenVectors () const |
| const Matrix< double > & | getColumnRightEigenVectors () const |
| double | freq (size_t i) const |
| double | Sij (size_t i, size_t j) const |
| double | Qij (size_t i, size_t j) const |
| double | Pij_t (size_t i, size_t j, double t) const |
| double | dPij_dt (size_t i, size_t j, double t) const |
| double | d2Pij_dt2 (size_t i, size_t j, double t) const |
| double | getInitValue (size_t i, int state) const throw (IndexOutOfBoundsException, BadIntException) |
| void | setFreqFromData (const SequenceContainer &data, double pseudoCount=0) |
| Set equilibrium frequencies equal to the frequencies estimated from the data. | |
| const std::vector< int > & | getAlphabetChars () const |
| int | getAlphabetChar (size_t i) const |
| Get the char in the alphabet corresponding to a given state in the model. | |
| std::vector< size_t > | getModelStates (int i) const |
| Get the state in the model corresponding to a particular char in the alphabet. | |
| const ReversibleSubstitutionModel * | getNestedModel () const |
| size_t | getRate (size_t i) const |
| Get the rate category corresponding to a particular state in the compound model. | |
| double | getRate () const |
| Get the rate. | |
| void | setRate (double rate) |
| Set the rate of the model (must be positive). | |
| double | getScale () const |
| Get the scalar product of diagonal elements of the generator and the frequencies vector. If the generator is normalized, then scale=1. Otherwise each element must be multiplied by 1/scale. | |
| void | setScale (double scale) |
| Set the rate of the generator, defined as the scalar product of diagonal elements of the generator and the frequencies vector. | |
| void | enableEigenDecomposition (bool yn) |
| Set if eigenValues and Vectors must be computed. | |
| bool | enableEigenDecomposition () |
| Tell if eigenValues and Vectors must be computed. | |
| virtual void | fireParameterChanged (const ParameterList ¶meters) |
| Tells the model that a parameter value has changed. | |
| void | setNamespace (const std::string &prefix) |
| virtual std::string | getName () const =0 |
| Get the name of the model. | |
| virtual void | addRateParameter ()=0 |
| virtual void | setFreq (std::map< int, double > &frequencies) |
| Set equilibrium frequencies. | |
| virtual const FrequenciesSet * | getFrequenciesSet () const |
| If the model owns a FrequenciesSet, returns a pointer to it, otherwise return 0. | |
| virtual size_t | getNumberOfIndependentParameters () const =0 |
| virtual void | aliasParameters (const std::string &p1, const std::string &p2)=0 |
| virtual void | unaliasParameters (const std::string &p1, const std::string &p2)=0 |
| virtual const ParameterList & | getIndependentParameters () const =0 |
| virtual std::vector< std::string > | getAlias (const std::string &name) const =0 |
| virtual bool | hasParameter (const std::string &name) const =0 |
| virtual const ParameterList & | getParameters () const =0 |
| virtual const Parameter & | getParameter (const std::string &name) const =0 |
| virtual double | getParameterValue (const std::string &name) const =0 |
| virtual void | setAllParametersValues (const ParameterList ¶meters)=0 |
| virtual void | setParameterValue (const std::string &name, double value)=0 |
| virtual void | setParametersValues (const ParameterList ¶meters)=0 |
| virtual bool | matchParametersValues (const ParameterList ¶meters)=0 |
| virtual size_t | getNumberOfParameters () const =0 |
| virtual std::string | getNamespace () const =0 |
| virtual std::string | getParameterNameWithoutNamespace (const std::string &name) const =0 |
| const ParameterList & | getIndependentParameters () const |
| size_t | getNumberOfIndependentParameters () const |
| void | aliasParameters (const std::string &p1, const std::string &p2) |
| void | unaliasParameters (const std::string &p1, const std::string &p2) |
| std::vector< std::string > | getAlias (const std::string &name) const |
| std::string | getFrom (const std::string &name) const |
| bool | hasParameter (const std::string &name) const |
| const ParameterList & | getParameters () const |
| const Parameter & | getParameter (const std::string &name) const |
| double | getParameterValue (const std::string &name) const |
| void | setAllParametersValues (const ParameterList ¶meters) |
| void | setParameterValue (const std::string &name, double value) |
| void | setParametersValues (const ParameterList ¶meters) |
| bool | matchParametersValues (const ParameterList ¶meters) |
| size_t | getNumberOfParameters () const |
| std::string | getNamespace () const |
| std::string | getParameterNameWithoutNamespace (const std::string &name) const |
Protected Member Functions | |
| virtual void | updateMatrices () |
| virtual void | updateRatesModel ()=0 |
| Update the rates vector, generator and equilibrium frequencies. | |
| void | addParameter_ (Parameter *parameter) |
| void | addParameters_ (const ParameterList ¶meters) |
| void | deleteParameter_ (size_t index) |
| void | resetParameters_ () |
| Parameter & | getParameter_ (const std::string &name) |
| Parameter & | getParameter_ (size_t index) |
| const Parameter & | getParameter_ (size_t index) const |
| Parameter & | getParameterWithNamespace_ (const std::string &name) |
| const Parameter & | getParameterWithNamespace_ (const std::string &name) const |
| ParameterList & | getParameters_ () |
Protected Attributes | |
| ReversibleSubstitutionModel * | model_ |
| size_t | nbStates_ |
| size_t | nbRates_ |
| RowMatrix< double > | ratesGenerator_ |
| std::vector< int > | chars_ |
| The list of supported chars. | |
| RowMatrix< double > | generator_ |
The generator matrix of the model. | |
| RowMatrix< double > | exchangeability_ |
The exchangeability matrix of the model. | |
| RowMatrix< double > | leftEigenVectors_ |
The matrix made of left eigen vectors (by row). | |
| RowMatrix< double > | rightEigenVectors_ |
The matrix made of right eigen vectors (by column). | |
| Vdouble | eigenValues_ |
| The vector of real parts of eigen values. | |
| Vdouble | iEigenValues_ |
| The vector of imaginary parts of the eigen values (zero in case of reversible pmodel). | |
| bool | eigenDecompose_ |
| Tell if the eigen decomposition should be performed. | |
| RowMatrix< double > | pijt_ |
| These ones are for bookkeeping: | |
| RowMatrix< double > | dpijt_ |
| RowMatrix< double > | d2pijt_ |
| Vdouble | freq_ |
| The vector of equilibrium frequencies. | |
| bool | normalizeRateChanges_ |
| std::string | nestedPrefix_ |
Rate generator. | |
These variables must be initialized in the constructor of the derived class. | |
| RowMatrix< double > | rates_ |
| RowMatrix< double > | ratesExchangeability_ |
| Vdouble | ratesFreq_ |
Partial implementation of the Markov-modulated class of substitution models.
This class wraps a substitution model and provide a matrix describing rate changes. The rate matrix must be initialized by derived classes of this class. Using these matrices, the diagonalization procedure of Galtier and Jean-Marie is used.
Such models can be described using two matrices: a substitution matrix,
, with size
, which is a "standard" substitution model of any alphabet type, and a rate matrix
of size
. The generator of the markov-modulated model,
can be written using Kronecker matrix operands:
where
is the diagonal matrix of all rates, and
is the identity matrix of size
.
This generator is normalized so that branch lengths are measured in unit of mean number of substitutions per site, where susbstitution here means "change of alphabet state". Rate changes are not counted.
Galtier N. and Jean-Marie A., Markov-modulated Markov chains and the covarion process of molecular evolution (2004). _Journal of Computational Biology_, 11:727-33.
Definition at line 75 of file MarkovModulatedSubstitutionModel.h.
| bpp::MarkovModulatedSubstitutionModel::MarkovModulatedSubstitutionModel | ( | ReversibleSubstitutionModel * | model, |
| bool | normalizeRateChanges, | ||
| const std::string & | prefix | ||
| ) | [inline] |
Build a new MarkovModulatedSubstitutionModel object.
| model | The substitution model to use. Can be of any alphabet type, and will be owned by this instance. |
| normalizeRateChanges | Tells if the branch lengths must be computed in terms of rate and state |
| prefix | The parameter namespace to be forwarded to the AbstractParametrizable constructor. changes instead of state change only. NB: In most cases, this parameter should be set to false. |
Definition at line 164 of file MarkovModulatedSubstitutionModel.h.
References bpp::AbstractParameterAliasable::addParameters_(), bpp::ParameterAliasable::getIndependentParameters(), model_, nestedPrefix_, and bpp::ParameterAliasable::setNamespace().
| MarkovModulatedSubstitutionModel::MarkovModulatedSubstitutionModel | ( | const MarkovModulatedSubstitutionModel & | model | ) |
Definition at line 51 of file MarkovModulatedSubstitutionModel.cpp.
| virtual bpp::MarkovModulatedSubstitutionModel::~MarkovModulatedSubstitutionModel | ( | ) | [inline, virtual] |
Definition at line 180 of file MarkovModulatedSubstitutionModel.h.
References model_.
| virtual void bpp::SubstitutionModel::addRateParameter | ( | ) | [pure virtual, inherited] |
Implemented in bpp::AbstractSubstitutionModel, bpp::G2001, bpp::AbstractBiblioSubstitutionModel, and bpp::TS98.
Referenced by bpp::AbstractBiblioSubstitutionModel::addRateParameter().
| MarkovModulatedSubstitutionModel* bpp::MarkovModulatedSubstitutionModel::clone | ( | ) | const [pure virtual] |
Implements bpp::AbstractParameterAliasable.
Implemented in bpp::G2001, and bpp::TS98.
| double bpp::MarkovModulatedSubstitutionModel::d2Pij_dt2 | ( | size_t | i, |
| size_t | j, | ||
| double | t | ||
| ) | const [inline, virtual] |
Implements bpp::SubstitutionModel.
Definition at line 220 of file MarkovModulatedSubstitutionModel.h.
References getd2Pij_dt2().
| double bpp::MarkovModulatedSubstitutionModel::dPij_dt | ( | size_t | i, |
| size_t | j, | ||
| double | t | ||
| ) | const [inline, virtual] |
Implements bpp::SubstitutionModel.
Definition at line 219 of file MarkovModulatedSubstitutionModel.h.
References getdPij_dt().
| void bpp::MarkovModulatedSubstitutionModel::enableEigenDecomposition | ( | bool | yn | ) | [inline, virtual] |
Set if eigenValues and Vectors must be computed.
Implements bpp::SubstitutionModel.
Definition at line 280 of file MarkovModulatedSubstitutionModel.h.
References eigenDecompose_.
| bool bpp::MarkovModulatedSubstitutionModel::enableEigenDecomposition | ( | ) | [inline, virtual] |
Tell if eigenValues and Vectors must be computed.
Implements bpp::SubstitutionModel.
Definition at line 282 of file MarkovModulatedSubstitutionModel.h.
References eigenDecompose_.
| virtual void bpp::MarkovModulatedSubstitutionModel::fireParameterChanged | ( | const ParameterList & | parameters | ) | [inline, virtual] |
Tells the model that a parameter value has changed.
This updates the matrices consequently.
Reimplemented from bpp::AbstractParameterAliasable.
Reimplemented in bpp::G2001.
Definition at line 289 of file MarkovModulatedSubstitutionModel.h.
References bpp::ParameterAliasable::matchParametersValues(), model_, updateMatrices(), and updateRatesModel().
| double bpp::MarkovModulatedSubstitutionModel::freq | ( | size_t | i | ) | const [inline, virtual] |
Implements bpp::SubstitutionModel.
Definition at line 214 of file MarkovModulatedSubstitutionModel.h.
References freq_.
| const Alphabet* bpp::MarkovModulatedSubstitutionModel::getAlphabet | ( | ) | const [inline, virtual] |
Implements bpp::SubstitutionModel.
Definition at line 191 of file MarkovModulatedSubstitutionModel.h.
References bpp::SubstitutionModel::getAlphabet(), and model_.
| int bpp::MarkovModulatedSubstitutionModel::getAlphabetChar | ( | size_t | i | ) | const [inline, virtual] |
Get the char in the alphabet corresponding to a given state in the model.
In most cases, this method will return i.
| i | The index of the state. |
Implements bpp::SubstitutionModel.
Definition at line 235 of file MarkovModulatedSubstitutionModel.h.
References chars_.
| const std::vector<int>& bpp::MarkovModulatedSubstitutionModel::getAlphabetChars | ( | ) | const [inline, virtual] |
Implements bpp::SubstitutionModel.
Definition at line 230 of file MarkovModulatedSubstitutionModel.h.
References chars_.
| const Matrix<double>& bpp::MarkovModulatedSubstitutionModel::getColumnRightEigenVectors | ( | ) | const [inline, virtual] |
Implements bpp::SubstitutionModel.
Definition at line 212 of file MarkovModulatedSubstitutionModel.h.
References rightEigenVectors_.
| const Matrix< double > & MarkovModulatedSubstitutionModel::getd2Pij_dt2 | ( | double | t | ) | const [virtual] |
Implements bpp::SubstitutionModel.
Definition at line 196 of file MarkovModulatedSubstitutionModel.cpp.
References d2pijt_, eigenValues_, bpp::VectorTools::exp(), leftEigenVectors_, bpp::MatrixTools::mult(), rightEigenVectors_, and bpp::NumTools::sqr().
Referenced by d2Pij_dt2().
| const Matrix< double > & MarkovModulatedSubstitutionModel::getdPij_dt | ( | double | t | ) | const [virtual] |
Implements bpp::SubstitutionModel.
Definition at line 190 of file MarkovModulatedSubstitutionModel.cpp.
References dpijt_, eigenValues_, bpp::VectorTools::exp(), leftEigenVectors_, bpp::MatrixTools::mult(), and rightEigenVectors_.
Referenced by dPij_dt().
| const Vdouble& bpp::MarkovModulatedSubstitutionModel::getEigenValues | ( | ) | const [inline, virtual] |
Implements bpp::SubstitutionModel.
Definition at line 205 of file MarkovModulatedSubstitutionModel.h.
References eigenValues_.
| const Matrix<double>& bpp::MarkovModulatedSubstitutionModel::getExchangeabilityMatrix | ( | ) | const [inline, virtual] |
. Implements bpp::SubstitutionModel.
Definition at line 197 of file MarkovModulatedSubstitutionModel.h.
References exchangeability_.
| const Vdouble& bpp::MarkovModulatedSubstitutionModel::getFrequencies | ( | ) | const [inline, virtual] |
Implements bpp::SubstitutionModel.
Definition at line 195 of file MarkovModulatedSubstitutionModel.h.
References freq_.
| virtual const FrequenciesSet* bpp::SubstitutionModel::getFrequenciesSet | ( | ) | const [inline, virtual, inherited] |
If the model owns a FrequenciesSet, returns a pointer to it, otherwise return 0.
Reimplemented in bpp::JCprot, bpp::AbstractBiblioSubstitutionModel, bpp::UserProteinSubstitutionModel, bpp::WAG01, bpp::DSO78, bpp::JTT92, bpp::LG08, bpp::AbstractCodonPhaseFrequenciesSubstitutionModel, and bpp::AbstractCodonFrequenciesSubstitutionModel.
Definition at line 463 of file SubstitutionModel.h.
Referenced by bpp::AbstractBiblioSubstitutionModel::getFrequenciesSet(), and bpp::BppOSubstitutionModelFormat::write().
| const Matrix<double>& bpp::MarkovModulatedSubstitutionModel::getGenerator | ( | ) | const [inline, virtual] |
, meaning that $
, and (ii)
. This means that, under normalization, the mean rate of replacement at equilibrium is 1 and that time
are measured in units of expected number of changes per site. Additionnaly, the rate_ attibute provides the possibility to increase or decrease this mean rate.See Kosiol and Goldman (2005), Molecular Biology And Evolution 22(2) 193-9.
Implements bpp::SubstitutionModel.
Definition at line 199 of file MarkovModulatedSubstitutionModel.h.
References generator_.
| const Vdouble& bpp::MarkovModulatedSubstitutionModel::getIEigenValues | ( | ) | const [inline, virtual] |
Implements bpp::SubstitutionModel.
Definition at line 206 of file MarkovModulatedSubstitutionModel.h.
References iEigenValues_.
| double MarkovModulatedSubstitutionModel::getInitValue | ( | size_t | i, |
| int | state | ||
| ) | const throw (IndexOutOfBoundsException, BadIntException) [virtual] |
This method is used to initialize likelihoods in reccursions. It typically sends 1 if i = state, 0 otherwise, where i is one of the possible states of the alphabet allowed in the model and state is the observed state in the considered sequence/site.
| i | the index of the state in the model. |
| state | An observed state in the sequence/site. |
| IndexOutOfBoundsException | if array position is out of range. |
| BadIntException | if states are not allowed in the associated alphabet. |
Implements bpp::SubstitutionModel.
Definition at line 204 of file MarkovModulatedSubstitutionModel.cpp.
References bpp::Alphabet::getAlias(), and bpp::BadIntException::getAlphabet().
| std::vector<size_t> bpp::MarkovModulatedSubstitutionModel::getModelStates | ( | int | i | ) | const [inline, virtual] |
Get the state in the model corresponding to a particular char in the alphabet.
| i | The alphabet char to check. |
Implements bpp::SubstitutionModel.
Definition at line 240 of file MarkovModulatedSubstitutionModel.h.
References bpp::SubstitutionModel::getModelStates(), model_, nbRates_, and nbStates_.
| virtual std::string bpp::SubstitutionModel::getName | ( | ) | const [pure virtual, inherited] |
Get the name of the model.
Implemented in bpp::YpR_Gen, bpp::YpR_Sym, bpp::F84, bpp::HKY85, bpp::JCprot, bpp::T92, bpp::K80, bpp::RN95, bpp::CodonDistanceFrequenciesSubstitutionModel, bpp::GTR, bpp::TN93, bpp::RE08, bpp::MixtureOfSubstitutionModels, bpp::JCnuc, bpp::CodonDistancePhaseFrequenciesSubstitutionModel, bpp::CodonDistanceFitnessPhaseFrequenciesSubstitutionModel, bpp::RN95s, bpp::BinarySubstitutionModel, bpp::CodonDistanceSubstitutionModel, bpp::UserProteinSubstitutionModel, bpp::MixtureOfASubstitutionModel, bpp::LLG08_EX3, bpp::WAG01, bpp::WordSubstitutionModel, bpp::LLG08_EHO, bpp::LLG08_UL3, bpp::SSR, bpp::L95, bpp::DSO78, bpp::JTT92, bpp::LGL08_CAT, bpp::LLG08_EX2, bpp::LLG08_UL2, bpp::gBGC, bpp::LG08, bpp::CodonRateFrequenciesSubstitutionModel, bpp::G2001, bpp::YNGKP_M1, bpp::YNGKP_M8, bpp::TS98, bpp::YNGKP_M7, bpp::GY94, bpp::YNGKP_M2, bpp::YNGKP_M3, bpp::TripletSubstitutionModel, bpp::YN98, bpp::CodonRateSubstitutionModel, bpp::MG94, bpp::Coala, bpp::LLG08_EX3::EmbeddedModel, bpp::LLG08_EHO::EmbeddedModel, bpp::LLG08_UL3::EmbeddedModel, bpp::LGL08_CAT::EmbeddedModel, bpp::LLG08_EX2::EmbeddedModel, and bpp::LLG08_UL2::EmbeddedModel.
Referenced by bpp::AbstractCodonFitnessSubstitutionModel::AbstractCodonFitnessSubstitutionModel(), bpp::AbstractSubstitutionModel::fireParameterChanged(), bpp::gBGC::getName(), bpp::MixtureOfSubstitutionModels::getSubmodelNumbers(), bpp::BppOSubstitutionModelFormat::readMixed_(), bpp::AbstractWordSubstitutionModel::updateMatrices(), bpp::AbstractBiblioSubstitutionModel::updateMatrices(), and bpp::BppOSubstitutionModelFormat::write().
| const ReversibleSubstitutionModel* bpp::MarkovModulatedSubstitutionModel::getNestedModel | ( | ) | const [inline] |
Definition at line 250 of file MarkovModulatedSubstitutionModel.h.
References model_.
Referenced by bpp::BppOSubstitutionModelFormat::write().
| size_t bpp::MarkovModulatedSubstitutionModel::getNumberOfStates | ( | ) | const [inline, virtual] |
Get the number of states.
For most models, this equals the size of the alphabet.
Implements bpp::SubstitutionModel.
Definition at line 193 of file MarkovModulatedSubstitutionModel.h.
| const Matrix< double > & MarkovModulatedSubstitutionModel::getPij_t | ( | double | t | ) | const [virtual] |
Implements bpp::SubstitutionModel.
Definition at line 181 of file MarkovModulatedSubstitutionModel.cpp.
References eigenValues_, bpp::VectorTools::exp(), leftEigenVectors_, bpp::MatrixTools::mult(), nbRates_, nbStates_, pijt_, and rightEigenVectors_.
Referenced by Pij_t().
| size_t bpp::MarkovModulatedSubstitutionModel::getRate | ( | size_t | i | ) | const [inline] |
Get the rate category corresponding to a particular state in the compound model.
| i | The state. |
Definition at line 259 of file MarkovModulatedSubstitutionModel.h.
References nbStates_.
| double bpp::MarkovModulatedSubstitutionModel::getRate | ( | ) | const [inline, virtual] |
Get the rate.
Implements bpp::SubstitutionModel.
Reimplemented in bpp::G2001, and bpp::TS98.
Definition at line 264 of file MarkovModulatedSubstitutionModel.h.
References bpp::SubstitutionModel::getRate(), and model_.
| const Matrix<double>& bpp::MarkovModulatedSubstitutionModel::getRowLeftEigenVectors | ( | ) | const [inline, virtual] |
Implements bpp::SubstitutionModel.
Definition at line 211 of file MarkovModulatedSubstitutionModel.h.
References leftEigenVectors_.
| double bpp::MarkovModulatedSubstitutionModel::getScale | ( | ) | const [inline, virtual] |
Get the scalar product of diagonal elements of the generator and the frequencies vector. If the generator is normalized, then scale=1. Otherwise each element must be multiplied by 1/scale.
Implements bpp::SubstitutionModel.
Definition at line 268 of file MarkovModulatedSubstitutionModel.h.
References bpp::MatrixTools::diag(), freq_, and generator_.
| bool bpp::MarkovModulatedSubstitutionModel::isDiagonalizable | ( | ) | const [inline, virtual] |
Implements bpp::SubstitutionModel.
Definition at line 208 of file MarkovModulatedSubstitutionModel.h.
| bool bpp::MarkovModulatedSubstitutionModel::isNonSingular | ( | ) | const [inline, virtual] |
Implements bpp::SubstitutionModel.
Definition at line 209 of file MarkovModulatedSubstitutionModel.h.
| MarkovModulatedSubstitutionModel & MarkovModulatedSubstitutionModel::operator= | ( | const MarkovModulatedSubstitutionModel & | model | ) |
Definition at line 77 of file MarkovModulatedSubstitutionModel.cpp.
References chars_, bpp::ReversibleSubstitutionModel::clone(), d2pijt_, dpijt_, eigenDecompose_, eigenValues_, exchangeability_, freq_, generator_, iEigenValues_, leftEigenVectors_, model_, nbRates_, nbStates_, nestedPrefix_, normalizeRateChanges_, pijt_, rates_, ratesExchangeability_, ratesFreq_, ratesGenerator_, and rightEigenVectors_.
| double bpp::MarkovModulatedSubstitutionModel::Pij_t | ( | size_t | i, |
| size_t | j, | ||
| double | t | ||
| ) | const [inline, virtual] |
Implements bpp::SubstitutionModel.
Definition at line 218 of file MarkovModulatedSubstitutionModel.h.
References getPij_t().
| double bpp::MarkovModulatedSubstitutionModel::Qij | ( | size_t | i, |
| size_t | j | ||
| ) | const [inline, virtual] |
Implements bpp::SubstitutionModel.
Definition at line 216 of file MarkovModulatedSubstitutionModel.h.
References generator_.
| virtual void bpp::SubstitutionModel::setFreq | ( | std::map< int, double > & | frequencies | ) | [inline, virtual, inherited] |
Set equilibrium frequencies.
| frequencies | The map of the frequencies to use. |
Reimplemented in bpp::AbstractSubstitutionModel, bpp::F84, bpp::HKY85, bpp::MixtureOfSubstitutionModels, bpp::T92, bpp::AbstractWordSubstitutionModel, bpp::GTR, bpp::CodonDistanceFrequenciesSubstitutionModel, bpp::RN95, bpp::TN93, bpp::CodonDistancePhaseFrequenciesSubstitutionModel, bpp::RN95s, bpp::CodonDistanceFitnessPhaseFrequenciesSubstitutionModel, bpp::MixtureOfASubstitutionModel, bpp::AbstractBiblioSubstitutionModel, bpp::BinarySubstitutionModel, bpp::SSR, bpp::L95, bpp::CodonRateFrequenciesSubstitutionModel, bpp::AbstractCodonPhaseFrequenciesSubstitutionModel, bpp::AbstractCodonFrequenciesSubstitutionModel, and bpp::AbstractCodonFitnessSubstitutionModel.
Definition at line 455 of file SubstitutionModel.h.
Referenced by bpp::AbstractBiblioSubstitutionModel::setFreq().
| void bpp::MarkovModulatedSubstitutionModel::setFreqFromData | ( | const SequenceContainer & | data, |
| double | pseudoCount = 0 |
||
| ) | [inline, virtual] |
Set equilibrium frequencies equal to the frequencies estimated from the data.
| data | The sequences to use. |
| pseudoCount | A quantity to add to adjust the observed values in order to prevent issues due to missing states on small data set. The corrected frequencies shall be computed as
|
Implements bpp::SubstitutionModel.
Definition at line 224 of file MarkovModulatedSubstitutionModel.h.
References model_, bpp::SubstitutionModel::setFreqFromData(), and updateMatrices().
| void MarkovModulatedSubstitutionModel::setNamespace | ( | const std::string & | prefix | ) | [virtual] |
Reimplemented from bpp::AbstractParameterAliasable.
Reimplemented in bpp::G2001.
Definition at line 221 of file MarkovModulatedSubstitutionModel.cpp.
References model_, nestedPrefix_, and bpp::ParameterAliasable::setNamespace().
| void bpp::MarkovModulatedSubstitutionModel::setRate | ( | double | rate | ) | [inline, virtual] |
Set the rate of the model (must be positive).
| rate | must be positive. |
Implements bpp::SubstitutionModel.
Reimplemented in bpp::G2001, and bpp::TS98.
Definition at line 266 of file MarkovModulatedSubstitutionModel.h.
References model_, and bpp::SubstitutionModel::setRate().
| void bpp::MarkovModulatedSubstitutionModel::setScale | ( | double | scale | ) | [inline, virtual] |
Set the rate of the generator, defined as the scalar product of diagonal elements of the generator and the frequencies vector.
When the generator is normalized, scale=1. Otherwise each element is multiplied such that the correct scale is set.
Implements bpp::SubstitutionModel.
Definition at line 275 of file MarkovModulatedSubstitutionModel.h.
References model_, bpp::SubstitutionModel::setScale(), and updateMatrices().
| double bpp::MarkovModulatedSubstitutionModel::Sij | ( | size_t | i, |
| size_t | j | ||
| ) | const [inline, virtual] |
By definition Sij(i,j) = Sij(j,i).
Implements bpp::SubstitutionModel.
Definition at line 215 of file MarkovModulatedSubstitutionModel.h.
References exchangeability_.
| void MarkovModulatedSubstitutionModel::updateMatrices | ( | ) | [protected, virtual] |
Definition at line 107 of file MarkovModulatedSubstitutionModel.cpp.
References bpp::MatrixTools::add(), chars_, d2pijt_, bpp::MatrixTools::diag(), dpijt_, eigenValues_, exchangeability_, freq_, generator_, bpp::SubstitutionModel::getAlphabetChars(), bpp::SubstitutionModel::getColumnRightEigenVectors(), bpp::SubstitutionModel::getEigenValues(), bpp::SubstitutionModel::getExchangeabilityMatrix(), bpp::SubstitutionModel::getFrequencies(), bpp::SubstitutionModel::getGenerator(), bpp::RowMatrix< Scalar >::getNumberOfColumns(), bpp::SubstitutionModel::getNumberOfStates(), bpp::EigenValue< Real >::getRealEigenValues(), bpp::EigenValue< Real >::getV(), iEigenValues_, bpp::MatrixTools::inv(), bpp::MatrixTools::kroneckerMult(), bpp::VectorTools::kroneckerMult(), leftEigenVectors_, model_, bpp::MatrixTools::mult(), nbRates_, nbStates_, normalizeRateChanges_, pijt_, rates_, ratesExchangeability_, ratesFreq_, ratesGenerator_, bpp::VectorTools::rep(), bpp::RowMatrix< Scalar >::resize(), rightEigenVectors_, and bpp::MatrixTools::scale().
Referenced by fireParameterChanged(), bpp::G2001::G2001(), setFreqFromData(), setScale(), and bpp::TS98::TS98().
| virtual void bpp::MarkovModulatedSubstitutionModel::updateRatesModel | ( | ) | [protected, pure virtual] |
Update the rates vector, generator and equilibrium frequencies.
This method must be implemented by the derived class. It is called by the fireParameterChanged() method.
Implemented in bpp::G2001, and bpp::TS98.
Referenced by fireParameterChanged().
std::vector<int> bpp::MarkovModulatedSubstitutionModel::chars_ [protected] |
The list of supported chars.
Definition at line 100 of file MarkovModulatedSubstitutionModel.h.
Referenced by getAlphabetChar(), getAlphabetChars(), operator=(), and updateMatrices().
RowMatrix<double> bpp::MarkovModulatedSubstitutionModel::d2pijt_ [mutable, protected] |
Definition at line 143 of file MarkovModulatedSubstitutionModel.h.
Referenced by getd2Pij_dt2(), operator=(), and updateMatrices().
RowMatrix<double> bpp::MarkovModulatedSubstitutionModel::dpijt_ [mutable, protected] |
Definition at line 142 of file MarkovModulatedSubstitutionModel.h.
Referenced by getdPij_dt(), operator=(), and updateMatrices().
bool bpp::MarkovModulatedSubstitutionModel::eigenDecompose_ [protected] |
Tell if the eigen decomposition should be performed.
Definition at line 136 of file MarkovModulatedSubstitutionModel.h.
Referenced by enableEigenDecomposition(), and operator=().
The vector of real parts of eigen values.
Definition at line 125 of file MarkovModulatedSubstitutionModel.h.
Referenced by getd2Pij_dt2(), getdPij_dt(), getEigenValues(), getPij_t(), operator=(), and updateMatrices().
RowMatrix<double> bpp::MarkovModulatedSubstitutionModel::exchangeability_ [protected] |
The exchangeability matrix
of the model.
Definition at line 110 of file MarkovModulatedSubstitutionModel.h.
Referenced by getExchangeabilityMatrix(), operator=(), Sij(), and updateMatrices().
Vdouble bpp::MarkovModulatedSubstitutionModel::freq_ [protected] |
The vector of equilibrium frequencies.
Definition at line 148 of file MarkovModulatedSubstitutionModel.h.
Referenced by freq(), getFrequencies(), getScale(), operator=(), and updateMatrices().
RowMatrix<double> bpp::MarkovModulatedSubstitutionModel::generator_ [protected] |
The generator matrix
of the model.
Definition at line 105 of file MarkovModulatedSubstitutionModel.h.
Referenced by getGenerator(), getScale(), operator=(), Qij(), and updateMatrices().
The vector of imaginary parts of the eigen values (zero in case of reversible pmodel).
Definition at line 131 of file MarkovModulatedSubstitutionModel.h.
Referenced by getIEigenValues(), operator=(), and updateMatrices().
RowMatrix<double> bpp::MarkovModulatedSubstitutionModel::leftEigenVectors_ [protected] |
The
matrix made of left eigen vectors (by row).
Definition at line 115 of file MarkovModulatedSubstitutionModel.h.
Referenced by getd2Pij_dt2(), getdPij_dt(), getPij_t(), getRowLeftEigenVectors(), operator=(), and updateMatrices().
Definition at line 81 of file MarkovModulatedSubstitutionModel.h.
Referenced by fireParameterChanged(), getAlphabet(), getModelStates(), getNestedModel(), getRate(), MarkovModulatedSubstitutionModel(), operator=(), setFreqFromData(), setNamespace(), setRate(), setScale(), updateMatrices(), and ~MarkovModulatedSubstitutionModel().
size_t bpp::MarkovModulatedSubstitutionModel::nbRates_ [protected] |
Definition at line 83 of file MarkovModulatedSubstitutionModel.h.
Referenced by bpp::G2001::G2001(), getModelStates(), getNumberOfStates(), getPij_t(), operator=(), bpp::TS98::TS98(), updateMatrices(), and bpp::G2001::updateRatesModel().
size_t bpp::MarkovModulatedSubstitutionModel::nbStates_ [protected] |
Definition at line 82 of file MarkovModulatedSubstitutionModel.h.
Referenced by getModelStates(), getNumberOfStates(), getPij_t(), getRate(), operator=(), and updateMatrices().
std::string bpp::MarkovModulatedSubstitutionModel::nestedPrefix_ [protected] |
Definition at line 152 of file MarkovModulatedSubstitutionModel.h.
Referenced by MarkovModulatedSubstitutionModel(), operator=(), and setNamespace().
bool bpp::MarkovModulatedSubstitutionModel::normalizeRateChanges_ [protected] |
Definition at line 150 of file MarkovModulatedSubstitutionModel.h.
Referenced by operator=(), and updateMatrices().
RowMatrix<double> bpp::MarkovModulatedSubstitutionModel::pijt_ [mutable, protected] |
These ones are for bookkeeping:
Definition at line 141 of file MarkovModulatedSubstitutionModel.h.
Referenced by getPij_t(), operator=(), and updateMatrices().
RowMatrix<double> bpp::MarkovModulatedSubstitutionModel::rates_ [protected] |
Definition at line 91 of file MarkovModulatedSubstitutionModel.h.
Referenced by bpp::G2001::G2001(), operator=(), bpp::TS98::TS98(), updateMatrices(), bpp::TS98::updateRatesModel(), and bpp::G2001::updateRatesModel().
RowMatrix<double> bpp::MarkovModulatedSubstitutionModel::ratesExchangeability_ [protected] |
Definition at line 92 of file MarkovModulatedSubstitutionModel.h.
Referenced by bpp::G2001::G2001(), operator=(), bpp::TS98::TS98(), updateMatrices(), bpp::TS98::updateRatesModel(), and bpp::G2001::updateRatesModel().
Definition at line 93 of file MarkovModulatedSubstitutionModel.h.
Referenced by bpp::G2001::G2001(), operator=(), bpp::TS98::TS98(), updateMatrices(), and bpp::TS98::updateRatesModel().
RowMatrix<double> bpp::MarkovModulatedSubstitutionModel::ratesGenerator_ [protected] |
Definition at line 95 of file MarkovModulatedSubstitutionModel.h.
Referenced by operator=(), and updateMatrices().
RowMatrix<double> bpp::MarkovModulatedSubstitutionModel::rightEigenVectors_ [protected] |
The
matrix made of right eigen vectors (by column).
Definition at line 120 of file MarkovModulatedSubstitutionModel.h.
Referenced by getColumnRightEigenVectors(), getd2Pij_dt2(), getdPij_dt(), getPij_t(), operator=(), and updateMatrices().