{"id":44831724,"url":"https://github.com/cogent3/cogent3","last_synced_at":"2026-04-20T02:09:39.967Z","repository":{"id":38106705,"uuid":"208198667","full_name":"cogent3/cogent3","owner":"cogent3","description":"Comparative Genomics Toolkit 3","archived":false,"fork":false,"pushed_at":"2026-04-12T21:45:24.000Z","size":48927,"stargazers_count":134,"open_issues_count":34,"forks_count":67,"subscribers_count":9,"default_branch":"develop","last_synced_at":"2026-04-12T23:25:34.667Z","etag":null,"topics":["bioinformatics","biological-sequence-analysis","biology","biopython","data-science","evolution","genomics","markov-chain","maximum-likelihood","molecular-evolution","non-stationary","parallel","phylogenetic-trees","phylogenetics","pycogent","python","sequence-alignment","signal-processing","statistics"],"latest_commit_sha":null,"homepage":"https://cogent3.org","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cogent3.png","metadata":{"files":{"readme":"README.md","changelog":"changelog.d/README.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-09-13T05:02:18.000Z","updated_at":"2026-04-12T21:45:22.000Z","dependencies_parsed_at":"2026-02-26T03:06:29.646Z","dependency_job_id":null,"html_url":"https://github.com/cogent3/cogent3","commit_stats":{"total_commits":7677,"total_committers":96,"mean_commits":79.96875,"dds":0.4629412530936564,"last_synced_commit":"6c5c6657dfcac96888223cf7ca5420d73e833710"},"previous_names":[],"tags_count":95,"template":false,"template_full_name":null,"purl":"pkg:github/cogent3/cogent3","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cogent3%2Fcogent3","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cogent3%2Fcogent3/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cogent3%2Fcogent3/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cogent3%2Fcogent3/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cogent3","download_url":"https://codeload.github.com/cogent3/cogent3/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cogent3%2Fcogent3/sbom","scorecard":{"id":298667,"data":{"date":"2025-08-11","repo":{"name":"github.com/cogent3/cogent3","commit":"9262c4ee626a5aa5373c97a163831d3ffb192e1e"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":5.6,"checks":[{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":10,"reason":"30 commit(s) and 3 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'actions' permission set to 'read': .github/workflows/codeql.yml:29","Info: jobLevel 'contents' permission set to 'read': .github/workflows/codeql.yml:30","Warn: no topLevel permission defined: .github/workflows/codeql.yml:1","Warn: no topLevel permission defined: .github/workflows/linters.yml:1","Warn: no topLevel permission defined: .github/workflows/release.yml:1","Warn: no topLevel permission defined: .github/workflows/testing_develop.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Code-Review","score":4,"reason":"Found 3/7 approved changesets -- score normalized to 4","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: BSD 3-Clause \"New\" or \"Revised\" License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'develop'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql.yml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/cogent3/cogent3/codeql.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql.yml:46: update your workflow using https://app.stepsecurity.io/secureworkflow/cogent3/cogent3/codeql.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql.yml:60: update your workflow using https://app.stepsecurity.io/secureworkflow/cogent3/cogent3/codeql.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql.yml:73: update your workflow using https://app.stepsecurity.io/secureworkflow/cogent3/cogent3/codeql.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/linters.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/cogent3/cogent3/linters.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/linters.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/cogent3/cogent3/linters.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/linters.yml:31: update your workflow using https://app.stepsecurity.io/secureworkflow/cogent3/cogent3/linters.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/cogent3/cogent3/release.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/cogent3/cogent3/release.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/cogent3/cogent3/release.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:44: update your workflow using https://app.stepsecurity.io/secureworkflow/cogent3/cogent3/release.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:48: update your workflow using https://app.stepsecurity.io/secureworkflow/cogent3/cogent3/release.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:66: update your workflow using https://app.stepsecurity.io/secureworkflow/cogent3/cogent3/release.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:70: update your workflow using https://app.stepsecurity.io/secureworkflow/cogent3/cogent3/release.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:83: update your workflow using https://app.stepsecurity.io/secureworkflow/cogent3/cogent3/release.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:100: update your workflow using https://app.stepsecurity.io/secureworkflow/cogent3/cogent3/release.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:106: update your workflow using https://app.stepsecurity.io/secureworkflow/cogent3/cogent3/release.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:120: update your workflow using https://app.stepsecurity.io/secureworkflow/cogent3/cogent3/release.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:126: update your workflow using https://app.stepsecurity.io/secureworkflow/cogent3/cogent3/release.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/testing_develop.yml:26: update your workflow using https://app.stepsecurity.io/secureworkflow/cogent3/cogent3/testing_develop.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/testing_develop.yml:31: update your workflow using https://app.stepsecurity.io/secureworkflow/cogent3/cogent3/testing_develop.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/testing_develop.yml:36: update your workflow using https://app.stepsecurity.io/secureworkflow/cogent3/cogent3/testing_develop.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/testing_develop.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/cogent3/cogent3/testing_develop.yml/develop?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/testing_develop.yml:67: update your workflow using https://app.stepsecurity.io/secureworkflow/cogent3/cogent3/testing_develop.yml/develop?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/linters.yml:24","Warn: pipCommand not pinned by hash: .github/workflows/linters.yml:27","Warn: pipCommand not pinned by hash: .github/workflows/release.yml:54","Warn: pipCommand not pinned by hash: .github/workflows/release.yml:55","Warn: pipCommand not pinned by hash: .github/workflows/release.yml:76","Warn: pipCommand not pinned by hash: .github/workflows/release.yml:77","Info:   0 out of  17 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   7 third-party GitHubAction dependencies pinned","Info:   0 out of   6 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/release.yml:90"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"SAST","score":10,"reason":"SAST tool is run on all commits","details":["Info: SAST configuration detected: CodeQL","Info: all commits (29) are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-17T20:09:57.000Z","repository_id":38106705,"created_at":"2025-08-17T20:09:57.000Z","updated_at":"2025-08-17T20:09:57.000Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32029862,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-20T00:18:06.643Z","status":"online","status_checked_at":"2026-04-20T02:00:06.527Z","response_time":94,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bioinformatics","biological-sequence-analysis","biology","biopython","data-science","evolution","genomics","markov-chain","maximum-likelihood","molecular-evolution","non-stationary","parallel","phylogenetic-trees","phylogenetics","pycogent","python","sequence-alignment","signal-processing","statistics"],"created_at":"2026-02-17T00:06:11.116Z","updated_at":"2026-04-20T02:09:39.960Z","avatar_url":"https://github.com/cogent3.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\u003cp align=\"left\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/cogent3/cogent3.github.io/e72df8c155c100f502b6a7009347d1821ab3adef/doc/_static/c3-logo.svg\" width=\"300\"\u003e\n\u003c/p\u003e\n\n[![PyPI version](https://badge.fury.io/py/cogent3.svg)](https://badge.fury.io/py/cogent3)\n[![PyPI Downloads](https://pepy.tech/badge/cogent3/month)](https://pepy.tech/project/cogent3)\n[![Anaconda-Server Badge](https://anaconda.org/bioconda/cogent3/badges/downloads.svg)](https://anaconda.org/bioconda/cogent3)\n\n[![Build Status](https://github.com/cogent3/cogent3/workflows/CI/badge.svg?branch=develop)](https://github.com/cogent3/cogent3/actions?workflow=CI)\n[![coverall](https://coveralls.io/repos/github/cogent3/cogent3/badge.svg?branch=develop)](https://coveralls.io/github/cogent3/cogent3?branch=develop)\n\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/cogent3)\n[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)\n\n[![CodeQL](https://github.com/cogent3/cogent3/actions/workflows/codeql.yml/badge.svg)](https://github.com/cogent3/cogent3/actions/workflows/codeql.yml)\n[![Codacy Badge](https://app.codacy.com/project/badge/Grade/e80e3441de59449bb1a4d8ad1fdea4fa)](https://app.codacy.com/gh/cogent3/cogent3/dashboard?utm_source=gh\u0026utm_medium=referral\u0026utm_content=\u0026utm_campaign=Badge_grade)\n\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.15067121.svg)](https://doi.org/10.5281/zenodo.15067121)\n\n[![CZI's Essential Open Source Software for Science](https://img.shields.io/badge/funded%20by-EOSS-FF414B)](https://czi.co/EOSS)\n\n`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. A plugin system enables custom extensions to expand the library capabilities.\n\n## 📣 Features \u0026 Announcements 📣\n\n\u003cdetails\u003e\n  \u003csummary\u003eApp foundations and more have a new home -- scinexus!\u003c/summary\u003e\n\nThe `cogent3` apps and plugin architecture remain the same, but we have extracted the app infrastructure into a new project called [scinexus](https://pypi.org/project/scinexus/). The objective is to make this powerful framework available beyond cogent3. We also migrated the data stores and many generally useful utilities. e.g. `open_`, deserialisation of objects, and progress bars. Check out the documentation of scinexus to see what it provides.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eTracking citations of apps\u003c/summary\u003e\n\nWe have built a mechanism for defining and tracking citations for apps, making it easier for users to correctly acknowledge app developer efforts. See the announcement on the home page for more details.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eDrawing annotations from an annotation database\u003c/summary\u003e\n\nThe new function `cogent3.draw_annotations()` can take an annotation database instance and returns a Drawable. This is useful for exploration of genome features without needing to load sequences.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eThe cogent3 code-sharing site 📚🔌\u003c/summary\u003e\n\nShare your [cogent3 ecosystem code solutions](https://github.com/cogent3/c3codeshare) for others to benefit from your awesomeness 😎. Or, just read / use the contributions from others.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e We now support third-party plugins for annotation databases 📚🔌 \u003c/summary\u003e\n\nIf you want to contribute a third-party backend, [get in touch](https://github.com/cogent3/cogent3/discussions)!\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e diverse-seq has been rewritten in rust 🚀! \u003c/summary\u003e\n\nThe sequence sampling tool [diverse-seq](diverse-seq.readthedocs.io), which provides multiple apps for sampling representative sequences, just got faster! The performance critical code has been rewritten in Rust. Give it a try 😀.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e A new rust-based plugin for k-mer counting \u003c/summary\u003e\n\nWe recently added a new `count_kmers()` method to the `SequenceCollection` and `Sequence` classes. Then, the developers of [Pykmertools](https://github.com/anuradhawick/kmertools) (with a bit of help from us) have released a `cogent3-pykmertools` app which makes their rust-based python module for counting k-mers available as `seqs.count_kmers(k=k, use_hook=\"cogent3_pykmertools\")`. Install it with `pip install cogent3-pykmertools` and give it a try. And add a star to the [Pykmertools](https://github.com/anuradhawick/kmertools) repo!\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e Major advances in our progress towards a fully plugin-based architecture! \u003c/summary\u003e\n\n### Cogent3 supports sequence storage plugins 📦🔌🚀\n\nWe have implemented the infrastructure to support alternative sequence storage plugins. These provide the backend storage for the new type sequence collections. We have implemented a proof-of-principle plugin [cogent3-h5seqs](https://pypi.org/project/cogent3-h5seqs/) for sequence storage based on the HDF5 format. This allows efficient storage of very large sequence collections (aligned or unaligned). See the readme for that project on how to use it.\n\n### Cogent3 supports sequence format parser and writer plugins 👓✍️🔌\n\nWe have implemented the infrastructure to support third-party provision of every bioinformaticians favourite game -- parsing / writing the multitude of sequence file formats.  All builtin format parsers / writers are implemented as plugins. We use third-party versions by default.\n\n### Cogent3 implements plugin hooks 🔌🪝🎉\n\nWe have implemented the infrastructure to support hook-style plugins. We have defined a single hook now -- the new type `Alignment.quick_tree()` method checks for an external plugin for calculation. The developers of [piqtree](https://pypi.org/project/piqtree) have made the rapid-NJ algorithm available for this hook! Once installed, it is used as `aln.quick_tree(use_hook=\"piqtree\")`.\n\n\u003e **Note**\n\u003e For assistance in writing your own plugins, contact us via the [cogent3 discussions page](https://github.com/cogent3/cogent3/discussions).\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003e Now distributed with sample data! \u003c/summary\u003e\n\n  We have added sample data sets for quick testing of different features. Check out `cogent3.available_datasets()` to see the available datasets. You can load one using `cogent3.get_dataset(name)`.\n\n\u003c/details\u003e\n\n## Who is it for?\n\n### Anyone who wants to analyse sequence divergence using robust statistical models\n\n`cogent3` is unique in providing numerous [non-stationary Markov models](http://www.ncbi.nlm.nih.gov/pubmed/25503772) for modelling sequence evolution, [including codon models](https://www.ncbi.nlm.nih.gov/pubmed/28175284). `cogent3` also includes an extensive collection of time-reversible models (again including [novel codon models](https://www.ncbi.nlm.nih.gov/pubmed/19815689)). We have done more than just invent these new methods, we have [established the most robust algorithms](https://www.ncbi.nlm.nih.gov/pubmed/19099591) for their implementation and their [suitability for real data](https://www.ncbi.nlm.nih.gov/pubmed/23935949). Additionally, there are novel signal processing methods focussed on statistical estimation of [integer period signals](https://www.ncbi.nlm.nih.gov/pubmed/21527008).\n\n\u003cdetails\u003e\n  \u003csummary\u003e 🎬 Demo non-reversible substitution model \u003c/summary\u003e\n    \u003cvideo src=\"https://user-images.githubusercontent.com/3102996/253845402-f511af2c-c2e2-48bc-8f6e-f9b0f05697e9.mp4\" controls=\"controls\" style=\"max-height:640px\"\u003e\n    \u003c/video\u003e\n\u003c/details\u003e\n\n### Anyone who wants to undertake exploratory genomic data analysis\n\nBeyond our novel methods, `cogent3` provides an extensive suite of capabilities for manipulating and analysing sequence data. You can manipulate sequences by their annotations, e.g.\n\n\u003cdetails\u003e\n  \u003csummary\u003e 🎬 Demo sequences with annotations \u003c/summary\u003e\n    \u003cvideo src=\"https://user-images.githubusercontent.com/3102996/253847297-2611cda8-e078-4b86-a269-43fbf6ced14c.mp4\" controls=\"controls\" style=\"max-height:640px\"\u003e\n    \u003c/video\u003e\n\u003c/details\u003e\n\nPlus, you can read standard tabular and biological data formats, perform multiple sequence alignment using any `cogent3` substitution models, phylogenetic reconstruction and tree manipulation, manipulation of tabular data, visualisation of phylogenies and much more.\n\n### Beginner friendly approach to genomic data analysis\n\nOur `cogent3.app` module provides a very different approach to using the library capabilities. Expertise in structural programming concepts is not essential!\n\n\u003cdetails\u003e\n  \u003csummary\u003e 🎬 Demo friendly coding \u003c/summary\u003e\n    \u003cvideo src=\"https://user-images.githubusercontent.com/3102996/253849168-a821de1a-1aad-4761-970f-e365f6b3b1cd.mp4\" controls=\"controls\" style=\"max-height:640px\"\u003e\n    \u003c/video\u003e\n\u003c/details\u003e\n\n## Installation\n\nFor most users we recommend\n\n```bash\n$ pip install \"cogent3[extra]\"\n```\n\nwhich installs support for data visualisation (which requires [Plotly](https://pypi.org/project/plotly/)) and extensions for jupyter notebooks.\n\n\u003e **Note:** In order to write Plotly figures to static image files you will need to [install Chrome](https://plotly.com/python/static-image-export/#install-dependencies).\n\n### Minimal installation\n\nIf you're running on a high-performance computing system we recommend\n\n```bash\n$ pip install cogent3\n```\n\nwhich skips the data visualisation and notebook support.\n\n### Install with developer tools\n\nEverything we use for `cogent3` development.\n\n```bash\n$ pip install \"cogent3[dev]\"\n```\n\n\u003e **Note:** Installs all dependencies that can be installed using `pip`.\n\n### Installing the development version\n\n```bash\n$ pip install git+https://github.com/cogent3/cogent3.git@develop#egg=cogent3\n```\n\n\u003e **Warning:** The interface can change without warning on the development branch.\n\n### Installing using conda / mamba\n\nActivate your [conda](https://docs.conda.io/en/latest/miniconda.html) environment, then\n\n```bash\n(myenv) $ conda install bioconda::cogent3\n```\n\n## Project Information\n\n`cogent3` is released under the BSD-3 license, documentation is at [cogent3.org](https://cogent3.org), while [`cogent3` code is on GitHub](https://github.com/cogent3/cogent3). If you would like to contribute (and we hope you do!), we have created a companion [`c3dev` GitHub](https://github.com/cogent3/c3dev) repo which provides details on how to contribute and some useful tools for doing so.\n\n## Project History\n\n`cogent3` is a descendant of [PyCogent](https://github.com/pycogent/pycogent.github.com). While there is much in common with PyCogent, the amount of change has been substantial, motivating the name change to `cogent3`. This name has been chosen because `cogent` was always the import name (dating back to [PyEvolve in 2004](https://www.ncbi.nlm.nih.gov/pubmed/14706121)) and it's Python 3 only.\n\nGiven 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 original [PyEvolve](https://www.ncbi.nlm.nih.gov/pubmed/14706121) and [PyCogent](https://www.ncbi.nlm.nih.gov/pubmed/17708774) publications. 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.\n\n## Funding\n\nCogent3 has received funding support from the Australian National University and an [Essential Open Source Software for Science Grant](https://chanzuckerberg.com/eoss/proposals/cogent3-python-apis-for-iq-tree-and-graphbin-via-a-plug-in-architecture/) from the Chan Zuckerberg Initiative.\n\n\u003cp align=\"center\"\u003e\n  \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003cimg src=\"https://webstyle.anu.edu.au/_anu/4/images/logos/2x_anu_logo_small.svg\" height=\"100\"\u003e\n  \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\n  \u003cimg src=\"https://chanzuckerberg.com/wp-content/themes/czi/img/logo.svg\" height=\"110\"\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcogent3%2Fcogent3","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcogent3%2Fcogent3","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcogent3%2Fcogent3/lists"}