bpp-phyl  2.1.0
bpp::SimpleMutationProcess Class Reference

Generally used mutation process model. More...

#include <Bpp/Phyl/Simulation/MutationProcess.h>

+ Inheritance diagram for bpp::SimpleMutationProcess:
+ Collaboration diagram for bpp::SimpleMutationProcess:

List of all members.

Public Member Functions

 SimpleMutationProcess (const SubstitutionModel *model)
 Build a new SimpleMutationProcess object.
virtual ~SimpleMutationProcess ()
int evolve (int initialState, double time) const
 Method redefinition for better performance.
int mutate (int state) const
 Mutate a character in state i.
int mutate (int state, unsigned int n) const
 Mutate a character in state i n times.
double getTimeBeforeNextMutationEvent (int state) const
 Get the time before next mutation event.
MutationPath detailedEvolve (int initialState, double time) const
 Simulation a character evolution during a specified time according to the given substitution model and send the total path with all intermediate states and times between mutation events.
const SubstitutionModelgetSubstitutionModel () const
 Get the substitution model associated to the mutation process.

Protected Attributes

const SubstitutionModelmodel_
 The substitution model to use:
size_t size_
 The number of states allowed for the character to mutate.
VVdouble repartition_
 The repartition function for states probabilities.

Detailed Description

Generally used mutation process model.

This builds a MutationProcess according to a given SubstitutionModel. The underlying mutation process is the following:

  1. Draw a random time $ t $ from an exponential law with parameter $ - \lambda_i $,
  2. Mutate the initial state. The probability of mutating state $i$ to state $j$ is:

    \[ \frac{Q_{i,j}}{\sum_k Q_{i,k}}. \]

Definition at line 341 of file MutationProcess.h.


Constructor & Destructor Documentation

Definition at line 148 of file MutationProcess.cpp.


Member Function Documentation

MutationPath AbstractMutationProcess::detailedEvolve ( int  initialState,
double  time 
) const [virtual, inherited]

Simulation a character evolution during a specified time according to the given substitution model and send the total path with all intermediate states and times between mutation events.

Parameters:
initialStateThe state before beginning evolution.
timeThe time during which evolution must occure.
Returns:
The resulting mutation path.

Implements bpp::MutationProcess.

Definition at line 98 of file MutationProcess.cpp.

References bpp::SubstitutionModel::getAlphabet(), bpp::AbstractMutationProcess::getTimeBeforeNextMutationEvent(), bpp::AbstractMutationProcess::model_, and bpp::AbstractMutationProcess::mutate().

int SimpleMutationProcess::evolve ( int  initialState,
double  time 
) const [virtual]

Method redefinition for better performance.

Parameters:
initialStateThe state before beginning evolution.
timeThe time during which evolution must occure.
Returns:
The resulting state after evolution is completed.

Reimplemented from bpp::AbstractMutationProcess.

Definition at line 151 of file MutationProcess.cpp.

References bpp::RandomTools::giveRandomNumberBetweenZeroAndEntry(), bpp::AbstractMutationProcess::model_, bpp::SubstitutionModel::Pij_t(), bpp::AbstractMutationProcess::size_, and bpp::TextTools::toString().

const SubstitutionModel* bpp::AbstractMutationProcess::getSubstitutionModel ( ) const [inline, virtual, inherited]

Get the substitution model associated to the mutation process.

Returns:
The SubstitutionModel associated to this instance.

Implements bpp::MutationProcess.

Definition at line 325 of file MutationProcess.h.

References bpp::AbstractMutationProcess::model_.

double AbstractMutationProcess::getTimeBeforeNextMutationEvent ( int  state) const [virtual, inherited]

Get the time before next mutation event.

Parameters:
stateThe actual state of the chain;
Returns:
A random time before next mutation event.

Implements bpp::MutationProcess.

Definition at line 78 of file MutationProcess.cpp.

References bpp::AbstractMutationProcess::model_, bpp::SubstitutionModel::Qij(), and bpp::RandomTools::randExponential().

Referenced by bpp::AbstractMutationProcess::detailedEvolve(), and bpp::AbstractMutationProcess::evolve().

int AbstractMutationProcess::mutate ( int  state) const [virtual, inherited]
int AbstractMutationProcess::mutate ( int  state,
unsigned int  n 
) const [virtual, inherited]

Mutate a character in state i n times.

Parameters:
stateThe current state of the character.
nThe number of mutations to perform.

Implements bpp::MutationProcess.

Definition at line 59 of file MutationProcess.cpp.

References bpp::RandomTools::giveRandomNumberBetweenZeroAndEntry(), bpp::AbstractMutationProcess::repartition_, and bpp::AbstractMutationProcess::size_.


Member Data Documentation

The repartition function for states probabilities.

repartition_[i][j] = probability that, being in state i at time t, we'll be in state <= j at time t+1.

Definition at line 298 of file MutationProcess.h.

Referenced by bpp::AbstractMutationProcess::mutate(), bpp::AbstractMutationProcess::operator=(), bpp::SelfMutationProcess::SelfMutationProcess(), and SimpleMutationProcess().

size_t bpp::AbstractMutationProcess::size_ [protected, inherited]

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Friends