{"id":13710029,"url":"https://github.com/nanoporetech/bonito","last_synced_at":"2026-02-20T12:01:21.980Z","repository":{"id":38360974,"uuid":"222706260","full_name":"nanoporetech/bonito","owner":"nanoporetech","description":"A PyTorch Basecaller for Oxford Nanopore Reads","archived":false,"fork":false,"pushed_at":"2025-11-16T11:08:05.000Z","size":810,"stargazers_count":428,"open_issues_count":5,"forks_count":132,"subscribers_count":28,"default_branch":"master","last_synced_at":"2025-12-07T15:54:29.811Z","etag":null,"topics":["basecalling","nanopore","pytorch"],"latest_commit_sha":null,"homepage":"https://nanoporetech.com/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nanoporetech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"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-11-19T13:46:22.000Z","updated_at":"2025-11-27T05:08:50.000Z","dependencies_parsed_at":"2023-02-15T09:46:03.974Z","dependency_job_id":"89dd70bb-3d9b-4edc-9ac8-3d96624a5fb6","html_url":"https://github.com/nanoporetech/bonito","commit_stats":{"total_commits":799,"total_committers":25,"mean_commits":31.96,"dds":0.2916145181476846,"last_synced_commit":"f19c8c9a8fffec17822e9cd98cb7d7a93c4e2274"},"previous_names":[],"tags_count":31,"template":false,"template_full_name":null,"purl":"pkg:github/nanoporetech/bonito","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nanoporetech%2Fbonito","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nanoporetech%2Fbonito/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nanoporetech%2Fbonito/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nanoporetech%2Fbonito/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nanoporetech","download_url":"https://codeload.github.com/nanoporetech/bonito/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nanoporetech%2Fbonito/sbom","scorecard":{"id":674075,"data":{"date":"2025-08-11","repo":{"name":"github.com/nanoporetech/bonito","commit":"1eb0c1c2d31a1c99a428cf61eaf449b41a47a2e9"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.3,"checks":[{"name":"Maintained","score":9,"reason":"4 commit(s) and 7 issue activity found in the last 90 days -- score normalized to 9","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","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":"Dangerous-Workflow","score":-1,"reason":"no workflows found","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":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"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":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"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":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"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":"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":"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":"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":"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":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENCE.txt:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"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":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"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":"Vulnerabilities","score":0,"reason":"17 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: PYSEC-2018-34 / GHSA-2fc2-6r4j-p65h","Warn: Project is vulnerable to: PYSEC-2021-856 / GHSA-5545-2q6w-2gh6","Warn: Project is vulnerable to: PYSEC-2019-108 / GHSA-9fq2-x9r6-wfmf","Warn: Project is vulnerable to: PYSEC-2018-33 / GHSA-cw6w-4rcx-xphc","Warn: Project is vulnerable to: PYSEC-2021-857 / GHSA-f7c7-j99h-c22f","Warn: Project is vulnerable to: GHSA-fpfv-jqm9-f5jm","Warn: Project is vulnerable to: PYSEC-2017-1 / GHSA-frgw-fgh6-9g52","Warn: Project is vulnerable to: PYSEC-2020-73","Warn: Project is vulnerable to: PYSEC-2014-14 / GHSA-652x-xj99-gmcc","Warn: Project is vulnerable to: GHSA-9hjg-9r4m-mvj7","Warn: Project is vulnerable to: GHSA-9wx4-h78v-vm56","Warn: Project is vulnerable to: PYSEC-2014-13 / GHSA-cfj3-7x9c-4p3h","Warn: Project is vulnerable to: PYSEC-2018-28 / GHSA-x84v-xcm2-53pg","Warn: Project is vulnerable to: GHSA-3749-ghw9-m3mg","Warn: Project is vulnerable to: GHSA-887c-mr87-cxwp","Warn: Project is vulnerable to: PYSEC-2017-74","Warn: Project is vulnerable to: PYSEC-2022-43017 / GHSA-qwmp-2cf2-g9g6"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-21T21:00:14.541Z","repository_id":38360974,"created_at":"2025-08-21T21:00:14.541Z","updated_at":"2025-08-21T21:00:14.541Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29650503,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-20T09:27:29.698Z","status":"ssl_error","status_checked_at":"2026-02-20T09:26:12.373Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["basecalling","nanopore","pytorch"],"created_at":"2024-08-02T23:00:50.935Z","updated_at":"2026-02-20T12:01:21.971Z","avatar_url":"https://github.com/nanoporetech.png","language":"Python","funding_links":[],"categories":["Software packages"],"sub_categories":["Basecalling"],"readme":"# Bonito\n\n[![PyPI version](https://badge.fury.io/py/ont-bonito.svg)](https://badge.fury.io/py/ont-bonito)\n[![py310](https://img.shields.io/badge/python-3.10-brightgreen.svg)](https://img.shields.io/badge/python-3.10-brightgreen.svg)\n[![py311](https://img.shields.io/badge/python-3.11-brightgreen.svg)](https://img.shields.io/badge/python-3.11-brightgreen.svg)\n[![py312](https://img.shields.io/badge/python-3.12-brightgreen.svg)](https://img.shields.io/badge/python-3.12-brightgreen.svg)\n[![py313](https://img.shields.io/badge/python-3.13-brightgreen.svg)](https://img.shields.io/badge/python-3.13-brightgreen.svg)\n[![py314](https://img.shields.io/badge/python-3.14-brightgreen.svg)](https://img.shields.io/badge/python-3.14-brightgreen.svg)\n[![cu128](https://img.shields.io/badge/cuda-12.8-blue.svg)](https://img.shields.io/badge/cuda-12.8-blue.svg)\n[![cu130](https://img.shields.io/badge/cuda-13.0-blue.svg)](https://img.shields.io/badge/cuda-13.0-blue.svg)\n\nBonito is an open source research basecaller for Oxford Nanopore reads.\n\nFor anything other than basecaller training or method development please use [dorado](https://github.com/nanoporetech/dorado).\n\n```bash\n$ pip install --upgrade pip\n$ pip install ont-bonito\n$ bonito basecaller dna_r10.4.1_e8.2_400bps_hac@v5.0.0 /data/reads \u003e basecalls.bam\n```\n\nBonito supports writing aligned/unaligned `{fastq, sam, bam, cram}`.\n\n```bash\n$ bonito basecaller dna_r10.4.1_e8.2_400bps_hac@v5.0.0 --reference reference.mmi /data/reads \u003e basecalls.bam\n```\n\nBonito will download and cache the basecalling model automatically on first use but all models can be downloaded with -\n\n``` bash\n$ bonito download --models --show  # show all available models\n$ bonito download --models         # download all available models\n```\n\n## Modified Bases\n\nFor modified-base calling with ont-supported mods please use [dorado](https://github.com/nanoporetech/dorado)\nFor development of modified base calling models please see [remora](https://github.com/nanoporetech/remora).\n\n## Training your own model\n\nFor detailed information on the training process, please see the [Training Documentation](documentation/training.md).\n\n## Developer Quickstart\n\n```bash\n$ git clone https://github.com/nanoporetech/bonito.git  # or fork first and clone that\n$ cd bonito\n$ python3 -m venv venv3\n$ source venv3/bin/activate\n(venv3) $ pip install --upgrade pip\n(venv3) $ pip install -e .[cu128] --extra-index-url https://download.pytorch.org/whl/cu128\n```\n\nThe `ont-bonito[cu128]` and `ont-bonito[cu130]` optional dependencies can be used, along\nwith the corresponding `--extra-index-url`, to ensure the PyTorch package matches the\nlocal CUDA setup.\n\n## Interface\n\n - `bonito view` - view a model architecture for a given `.toml` file and the number of parameters in the network.\n - `bonito train` - train a bonito model.\n - `bonito evaluate` - evaluate a model performance.\n - `bonito download` - download pretrained models and training datasets.\n - `bonito basecaller` - basecaller *(`.pod5` -\u003e `.bam`)*.\n\n### References\n\n - [Sequence Modeling With CTC](https://distill.pub/2017/ctc/)\n - [Quartznet: Deep Automatic Speech Recognition With 1D Time-Channel Separable Convolutions](https://arxiv.org/pdf/1910.10261.pdf)\n - [Pair consensus decoding improves accuracy of neural network basecallers for nanopore sequencing](https://www.biorxiv.org/content/10.1101/2020.02.25.956771v1.full.pdf)\n\n### Licence and Copyright\n(c) 2019 Oxford Nanopore Technologies Ltd.\n\nBonito is distributed under the terms of the Oxford Nanopore\nTechnologies, Ltd.  Public License, v. 1.0.  If a copy of the License\nwas not distributed with this file, You can obtain one at\nhttp://nanoporetech.com\n\n### Research Release\n\nResearch releases are provided as technology demonstrators to provide early access to features or stimulate Community development of tools. Support for this software will be minimal and is only provided directly by the developers. Feature requests, improvements, and discussions are welcome and can be implemented by forking and pull requests. However much as we would like to rectify every issue and piece of feedback users may have, the developers may have limited resource for support of this software. Research releases may be unstable and subject to rapid iteration by Oxford Nanopore Technologies.\n\n### Citation\n\n```\n@software{bonito,\n  title = {Bonito: A PyTorch Basecaller for Oxford Nanopore Reads},\n  author = {{Chris Seymour, Oxford Nanopore Technologies Ltd.}},\n  year = {2019},\n  url = {https://github.com/nanoporetech/bonito},\n  note = {Oxford Nanopore Technologies, Ltd. Public License, v. 1.0},\n  abstract = {Bonito is an open source research basecaller for Oxford Nanopore reads. It provides a flexible platform for training and developing basecalling models using PyTorch.}\n}\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnanoporetech%2Fbonito","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnanoporetech%2Fbonito","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnanoporetech%2Fbonito/lists"}