An R package for the Monte Carlo simulation of sequence evolution
Failed to load latest commit information.
PAMLdat Added ECM PAML dat files. Jan 6, 2014
RData Relaoded empirical models. Jan 7, 2014
cons_test Added consistency test results for the .Internal-less code. Feb 6, 2012
examples Added example for ToleranceSubstitution. Apr 25, 2014
misc Added script to recreate empirical codon models. Jan 6, 2014
pkg DESCRIPTION update. Apr 25, 2014
.gitignore * .gitignore update. Oct 27, 2010
Alphabet.R Documentation read-through for Alphabet class Oct 8, 2010
AminoAcidMatrices.R Class documentation read-through for AminoAcidMatrices.R Oct 8, 2010
AminoAcidSubst.R Fixed PAMLdat path. Jan 6, 2014
BinarySubst.R Class documentation read-through for BinarySubst.R Oct 8, 2010
BrownianInsertor.R Fixed example line lengths. Jun 12, 2013
COPYING Initial git commit. May 27, 2009
COPYLEFT Added GPL v3 file. May 27, 2009
CodonAlphabet.R CodonAlphabet is now ordered by the translation table - standard code Jan 6, 2014
CodonModels.R Fix to decrease the runtime of the GY94 example. Mar 20, 2013
CodonSubst.R Doc fix. Jan 6, 2014
ContinuousDeletor.R Class documentation read-through for ContinuousDeletor.R Oct 8, 2010
ContinuousInsertor.R Class documentation read-through for ContinuousInsertor.R Oct 8, 2010
DiscreteDeletor.R Class documentation read-through for DiscreteDeletor.R Oct 8, 2010
DiscreteInsertor.R Class documentation read-through for DiscreteInsertor.R Oct 8, 2010
EmpiricalCodonMatrices.R Added classes handling empirical codon models. Jan 6, 2014
Event.R Fixed example line lengths. Jun 12, 2013
FieldDeletor.R Removed explicit loading of the compoisson package. Jan 7, 2014
GeneralInDel.R Fixed example line lengths. Jun 12, 2013
GeneralSubstitution.R Added accept/reject handling to substitution processes. May 6, 2014
Makefile Version 3.0.0 Apr 25, 2014
NucleotideModels.R Class documentation read-through for NucleotideModels.R Oct 8, 2010
PSRoot.R updated get<ethodsList.PSRoot in order to be compatible with upcoming Dec 3, 2012
PhyloSim.R Added accept/reject handling to substitution processes. May 6, 2014
PopularAlphabets.R Class documentation read-through for PopularAlphabets.R Oct 8, 2010
PopularSequences.R Removed scaleWithOmega. Oct 11, 2010
Process.R Removed clone.PSRoot, using clone.Object instead. Jan 31, 2012
QMatrix.R Class documentation read-through for QMatrix.R Oct 8, 2010 Added GSR link. Apr 30, 2013
Sequence.R Fixed example line lengths. Jun 12, 2013
Site.R * Simplified cumulative rate calculation. Oct 13, 2010
ToleranceSubstitution.R Added Rd for ToleranceSubstitution. Apr 25, 2014

Gillespie algorithm


PhyloSim is an extensible object-oriented framework for the Monte Carlo simulation of sequence evolution written in 100 percent R. It is built on the top of the R.oo and ape packages and uses the Gillespie algorithm to simulate substitutions, insertions and deletions.

PhyloSim was brought to you by the Goldman group from EMBL-EBI.

Catalogued on GSR


Botond Sipos, Tim Massingham, Gregory E Jordan and Nick Goldman (2011) PhyloSim - Monte Carlo simulation of sequence evolution in the R statistical computing environment - BMC Bioinformatics 12:104 doi:10.1186/1471-2105-12-104

Download an install

The released packages are available from CRAN.

Key features

  • Simulation of the evolution of a set of discrete characters with arbitrary states evolving by a continuous-time Markov process with an arbitrary rate matrix.

  • Explicit implementations of the most popular substitution models (nucleotide, amino acid and codon substitution models).

  • Simulation under the popular models of among-sites rate variation, like the gamma (+G) and invariant sites plus gamma (+I+G) models.

  • The possibility to simulate under arbitrarily complex patterns of among-sites rate variation by setting the site specific rates according to any R expression.

  • Simulation of one or more separate insertion and/or deletion processes acting on the sequences and which sample the insertion/deletion length from an arbitrary discrete distribution or an R expression (so all the probability distributions implemented in R are readily available for this purpose).

  • Simulation of the effects of variable functional constraints over the sites by site-process specific insertion and deletion tolerance parameters which determine the rejection probability of a proposed insertion/deletion.

  • The possibility of having a different set of processes and site-process specific parameters for every site, which allows for an arbitrary number of partitions in the simulated data.

  • The possibility to evolve sites by a combination of substitution processes along a single branch.

  • Simulation of heterotachy and other cases of non-homogeneous evolution by allowing the user to set "node hook" functions altering the site properties at internal nodes.

  • The possibility to export the counts of various events ("branch statistics") as phylo objects (see the man page of exportStatTree.PhyloSim).

  • See the man page of the PhyloSim class and the package vignette for more features and examples.

Building from source

The package can be built from the source by issuing make pack on a *nix system. The building process need the standard unix tools, Perl and R with the ape, R.oo, ggplot2 and compoisson packages installed.