Studying how genomes express themselves

Code-Message Coevolution Models in Python

CMCpy provides an object-oriented python API, together with command-line
interface executables, that implement “Code-Message Coevolution” models.
These published evolutionary models pertain to the evolution by natural
selection of a genetic code in coevolution with a population of
protein-coding genes.

Formally, CMC models are sets of quasispecies coupled together for their
fitness through a genetic code. The system alternates between quasispecies
equilibration and adaptive hill-climbing through codon assignments and
reassignment by code mutation.

CMCpy can reproduce the statistics and results of [Ardell_and_Sella_2001],
[Sella_and_Ardell_2002], [Ardell_and_Sella_2002] and
[Sella_and_Ardell_2006]. CMCpy additionally implements additional
extensions that have not yet been studied in published work. It is easliy
feasible to extend the present code-base to implement the model studied by

CMC evolutionary trajectories are partly a sequence of eigensystem
solutions. Qualitative differences in results on different platforms can
originate from differences in convergence criteria when power method-based
eigensystem solvers are used, or from differences in floating point
representations. Python defers to the platform C library for float
representation. The default eigensystem solver is the eig() function in


CMCpy relies heavily on, and absolutely requires, numpy as a prerequisite.
You should install numpy with the easy_install framework to be detected as
installed when installing this package.

If you wish to play with an experimental CUDA-based power-method eigensystem
solver, you must install pycuda. This implementation is not faster than the
NumPy default solver for many systems.

Licensing and Attribution

The CMCpy project is distributed under the terms of the Apache License 2.0
as described in the file LICENSE.txt

Please cite Becich et al. (2012) in all scientific works that use this code.


CMCpy is free open-source software available from its page on the Python Package Index

Release Notes

The most recent version is 0.2 released December 2012.

See CHANGES.txt for version-related changes to the CMCpy code-base.


[Ardell_and_Sella_2001] D.H. Ardell and G. Sella (2001). On the evolution of redundancy in genetic codes. Journal of Molecular Evolution 53(4/5):269-281.
[Ardell_and_Sella_2002] D.H. Ardell and G. Sella (2002). No accident: genetic codes freeze in error-correcting patterns of the standard genetic code. Philosophical Transactions of the Royal Society of London B 357:1625-1642.
[Sella_and_Ardell_2002] Sella and D.H. Ardell (2002). The impact of message mutation on the fitness of a genetic code. Journal of Molecular Evolution 54(5):638-651.
[Sella_and_Ardell_2006] Sella and D.H. Ardell (2006). The coevolution of genes and genetic codes: Crick’s frozen accident revisited. J. Mol. Evol. 63(3):297-313.
[Vetsigian_et_al_2006] Vetsigian K., Woese C. R., Goldenfeld N. (2006). Collective evolution and the genetic code. Proc. Natl. Acad. Sci. U.S.A. 103, 10696-10701.