Bonito 是 Oxford Nanopore 读数的开源研究基地呼叫者。
对于碱基调用者培训或方法开发以外的任何内容,请使用 dorado。
$ pip install --upgrade pip
$ pip install ont-bonito
$ bonito basecaller [email protected] /data/reads > basecalls.bam
Bonito 支持编写对齐/未对齐的{fastq, sam, bam, cram}
。
$ bonito basecaller [email protected] --reference reference.mmi /data/reads > basecalls.bam
Bonito 将在首次使用时自动下载并缓存基本调用模型,但所有模型都可以通过以下方式下载 -
$ bonito download --models --show # show all available models
$ bonito download --models # download all available models
bonito.transformer
包需要 flash-attn。
必须手动安装它,因为flash-attn
打包系统会阻止它被列为正常依赖项。
将CUDA_HOME
设置为相关的库目录将有助于避免包之间的 CUDA 版本不匹配。
修饰碱基检出由 Remora 处理。
$ bonito basecaller [email protected] /data/reads --modified-bases 5mC --reference ref.mmi > basecalls_with_mods.bam
使用remora model list_pretrained
命令查看可用的修改基础模型。
要使用您自己的读取来训练模型,请首先使用附加的--save-ctc
标志对读取进行基本调用,然后使用输出目录作为训练的输入目录。
$ bonito basecaller [email protected] --save-ctc --reference reference.mmi /data/reads > /data/training/ctc-data/basecalls.sam
$ bonito train --directory /data/training/ctc-data /data/training/model-dir
除了从头开始训练新模型之外,您还可以轻松地微调预训练模型之一。
bonito train --epochs 1 --lr 5e-4 --pretrained [email protected] --directory /data/training/ctc-data /data/training/fine-tuned-model
如果您对方法开发感兴趣并且没有自己的读数集,那么我们会提供预先准备的读数集。
$ bonito download --training
$ bonito train /data/training/model-dir
所有训练调用都使用自动混合精度来加速训练。要禁用此功能,请将--no-amp
标志设置为 True。
$ git clone https://github.com/nanoporetech/bonito.git # or fork first and clone that
$ cd bonito
$ python3 -m venv venv3
$ source venv3/bin/activate
(venv3) $ pip install --upgrade pip
(venv3) $ pip install -e .[cu118] --extra-index-url https://download.pytorch.org/whl/cu118
可以使用ont-bonito[cu118]
和ont-bonito[cu121]
可选依赖项以及相应的--extra-index-url
,以确保 PyTorch 包与本地 CUDA 设置匹配。
bonito view
- 查看给定.toml
文件的模型架构以及网络中的参数数量。bonito train
- 训练 bonito 模型。bonito evaluate
- 评估模型性能。bonito download
- 下载预训练模型和训练数据集。bonito basecaller
- 碱基调用者( .fast5
-> .bam
) 。(c) 2019 牛津纳米孔技术有限公司。
Bonito 根据 Oxford Nanopore Technologies, Ltd. 公共许可证 v. 1.0 的条款进行分发。如果许可证副本未随此文件一起分发,您可以从 http://nanoporetech.com 获取一份
研究版本作为技术演示提供,以提供对功能的早期访问或刺激社区工具的开发。对该软件的支持将是最少的,并且仅由开发人员直接提供。欢迎功能请求、改进和讨论,并且可以通过分叉和拉取请求来实现。尽管我们非常希望纠正用户可能提出的每个问题和反馈,但开发人员支持该软件的资源可能有限。研究发布可能不稳定,并且会受到 Oxford Nanopore Technologies 快速迭代的影响。
@software{bonito,
title = {Bonito: A PyTorch Basecaller for Oxford Nanopore Reads},
author = {{Chris Seymour, Oxford Nanopore Technologies Ltd.}},
year = {2019},
url = {https://github.com/nanoporetech/bonito},
note = {Oxford Nanopore Technologies, Ltd. Public License, v. 1.0},
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.}
}