Project History#

cogent3 is a descendant of PyCogent. While there is much in common with PyCogent, the amount of change has been substantial, motivating the new name [*].

Given this history, we are grateful to the multitude of individuals who have made contributions over the years. These individuals are explicitly acknowledged in all the files they contributed to and were co-authors on the original PyEvolve [1] and PyCogent [2] publications.

Compared to PyCogent version 1.9, there have been massive changes. These include:

  • integration of many of the new developments on algorithms and modelling published by the Huttley lab over the last decade

  • an experimental module that presents a functional programming style interface to cogent3

  • modernised our dependencies including using plotly for visualisation, tqdm for progress bar display, concurrent.futures and mpi4py.futures for parallel process execution, tox and pytest for unit testing

  • switched to calendar based versioning

The rewrite has been a massive amount of work and unfortunately the changes to the API are only indirectly documented by virtue of having the documentation match the library state. Thus, the best way to get older PyCogent scripts working is to check the Library documentation related to your code. More explicitly, you can also search in the repository history.

cogent3 no longer includes module x, what do I do?#

The PyCogent module was concerned with wrapping external applications. There are multple 3rd party alternatives to this, for example click, burrito, etc.. The module is very different being focussed on providing a functional style interface to cogent3 capabilities.


This has been turned into a standalone project, EnsemblDb3.


For querying NCBI via their EUtils interface. A replacement is biocommons/eutils.


For manipulating 3D structures. We know of no replacements.


A subset of k-mer analyses. No direct replacements.


See the sequence simulation capabilities in cogent3.evolve and


The microbiome related functions are now in scikit-bio.


[1] (1,2)

A Butterfield, V Vedagiri, E Lang, C Lawrence, M J Wakefield, A Isaev, and G A Huttley. PyEvolve: a toolkit for statistical modelling of molecular evolution. BMC Bioinformatics, 5:1, 2004. URL:


R Knight, P Maxwell, A Birmingham, J Carnes, J G Caporaso, B C Easton, M Eaton, M Hamady, H Lindsay, Z Liu, C Lozupone, D McDonald, M Robeson, R Sammut, S Smit, M J Wakefield, J Widmann, S Wikman, S Wilson, H Ying, and G A Huttley. PyCogent: a toolkit for making sense from sequence. Genome Biol, 8:R171, 2007. URL: