Package: cogent3
cogent3is 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.Who is it for?Anyone who wants to analyse sequence divergence using robust statistical modelscogent3is unique in providing numerousnon-stationary Markov modelsfor modelling sequence evolution,including codon models.cogent3also includes an extensive collection of time-reversible models (again includingnovel codon models). We have done more than just invent these new methods, we haveestablished the most robust algorithmsfor their implementation and theirsuitability for real data. Additionally, there are novel signal processing methods focussed on statistical estimation ofinteger period signals.🎬 Demo non-reversible substitution modelAnyone who wants to undertake exploratory genomic data analysisBeyond our novel methods,cogent3provides an extensive suite of capabilities for manipulating and analysing sequence data. You can manipulate sequences by their annotations, e.g.🎬 Demo sequences with annotationsPlus, you can read standard tabular and biological data formats, perform multiple sequence alignment using anycogent3substitution models, phylogenetic reconstruction and tree manipulation, manipulation of tabular data, visualisation of phylogenies and much more.Beginner friendly approach to genomic data analysisOurcogent3.appmodule provides a very different approach to using the library capabilities. Expertise in structural programming concepts is not essential!🎬 Demo friendly codingInstallation?$pipinstallcogent3Installextra-- adds visualisation supportTheextragroup includes python libraries required for visualisation, i.e.plotly,kaleido,psutilandpandas.$pipinstall"cogent3[extra]"Installdev-- addscogent3development related librariesThedevgroup includes python libraries required for development ofcogent3.$pipinstall"cogent3[dev]"Install the development version$pipinstallgit+https://github.com/cogent3/cogent3.git@develop#egg=cogent3Project Informationcogent3is released under the BSD-3 license, documentation is atcogent3.org, whilecogent3code is on GitHub. If you would like to contribute (and we hope you do!), we have created a companionc3devGitHubrepo which provides details on how to contribute and some useful tools for doing so.Project Historycogent3is a descendant ofPyCogent. While there is much in common with PyCogent, the amount of change has been substantial, motivating the name change tocogent3. This name has been chosen becausecogentwas always the import name (dating back toPyEvolve 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. Many of these contributors were also co-authors on the originalPyEvolveandPyCogentpublications. Individual contributions can be seen by using "view git blame" on individual lines of code on GitHub , through git log in the terminal, and more recently the changelog.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 theHuttley labover the last decade. We have also modernised our dependencies. For example, we now useplotlyfor visualisation,tqdmfor progress bar display,concurrent.futuresandmpi4py.futuresfor parallel process execution,noxandpytestfor unit testing.FundingCogent3 has received funding support from the Australian National University and anEssential Open Source Software for Science Grantfrom the Chan Zuckerberg Initiative.