cogent3
is a mature python library for analysis of genomic sequence data. We endeavour to provide a first-class experience within Jupyter notebooks, but the algorithms also support parallel execution on compute systems with 1000's of processors.
cogent3
is unique in providing numerous non-stationary Markov models for modelling sequence evolution, including codon models. cogent3
also includes an extensive collection of time-reversible models (again including novel codon models). We have done more than just invent these new methods, we have established the most robust algorithms for their implementation and their suitability for real data. Additionally, there are novel signal processing methods focussed on statistical estimation of integer period signals.
Beyond our novel methods, cogent3
provides an extensive suite of capabilities for manipulating and analysing sequence data. For instance, the ability to read standard biological data formats, manipulate sequences by their annotations, to perform multiple sequence alignment using any of our substitution models, phylogenetic reconstruction and tree manipulation, manipulation of tabular data, visualisation of phylogenies and much more.
Our cogent3.app
module provides a very different approach to using the library capabilities. Notably, a functional programming style interface lowers the barrier to entry for using cogent3
's advanced capabilities. It also supports building pipelines suitable for large-scale analysis. Individuals comfortable with R should find this interface pretty easy to use.
$ pip install cogent3
NOTE: Only available in the development version until release ≥2020.3
The extra
group includes python libraries required for visualisation (i.e. plotly and psutil plus pandas (optional)
$ pip install cogent3[extra]
The dev
group includes python libraries required for development of cogent3
.
$ pip install cogent3[dev]
$ pip install git+https://github.com/cogent3/cogent3.git@develop#egg=cogent3
cogent3
is released under the BSD-3 license, documentation for cogent3
is on readthedocs, while cogent3
code is on GitHub. If you would like to contribute (and we hope you do!), we have created a companion c3dev
GitHub repo which provides details on how to contribute and some useful tools for doing so.
cogent3
is a descendant of PyCogent. While there is much in common with PyCogent, the amount of change has been substantial, motivating a new name cogent3
. This name has been chosen because cogent
was always the import name (dating back to PyEvolve in 2004) and it's Python 3 only.
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 and PyCogent publications.
Compared to PyCogent version 1.9, there has been a massive amount of changes. These include integration of many of the new developments on algorithms and modelling published by the Huttley lab over the last decade. We have also modernised our dependencies. For example, we now use plotly
for visualisation, tqdm
for progress bar display, concurrent.futures
and mpi4py.futures
for parallel process execution, tox
and pytest
for unit testing.