Bonito é um basecaller de pesquisa de código aberto para leituras de Oxford Nanopore.
Para qualquer coisa que não seja treinamento de basecaller ou desenvolvimento de método, use dorado.
$ pip install --upgrade pip
$ pip install ont-bonito
$ bonito basecaller [email protected] /data/reads > basecalls.bam
Bonito suporta escrita alinhada/não alinhada {fastq, sam, bam, cram}
.
$ bonito basecaller [email protected] --reference reference.mmi /data/reads > basecalls.bam
Bonito irá baixar e armazenar em cache o modelo de chamada de base automaticamente no primeiro uso, mas todos os modelos podem ser baixados com -
$ bonito download --models --show # show all available models
$ bonito download --models # download all available models
O pacote bonito.transformer
requer flash-attn.
Deve ser instalado manualmente, pois o sistema de empacotamento flash-attn
evita que seja listado como uma dependência normal.
Definir CUDA_HOME
para o diretório da biblioteca relevante ajudará a evitar incompatibilidades de versão CUDA entre pacotes.
A chamada de base modificada é tratada por Remora.
$ bonito basecaller [email protected] /data/reads --modified-bases 5mC --reference ref.mmi > basecalls_with_mods.bam
Veja os modelos básicos modificados disponíveis com o comando remora model list_pretrained
.
Para treinar um modelo usando suas próprias leituras, primeiro baseie as leituras com o sinalizador --save-ctc
adicional e use o diretório de saída como diretório de entrada para treinamento.
$ 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
Além de treinar um novo modelo do zero, você também pode ajustar facilmente um dos modelos pré-treinados.
bonito train --epochs 1 --lr 5e-4 --pretrained [email protected] --directory /data/training/ctc-data /data/training/fine-tuned-model
Se você estiver interessado no desenvolvimento de métodos e não tiver seu próprio conjunto de leituras, será fornecido um conjunto pré-preparado.
$ bonito download --training
$ bonito train /data/training/model-dir
Todas as chamadas de treinamento usam Precisão Mista Automática para acelerar o treinamento. Para desativar isso, defina o sinalizador --no-amp
como 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
As dependências opcionais ont-bonito[cu118]
e ont-bonito[cu121]
podem ser usadas, junto com o --extra-index-url
correspondente, para garantir que o pacote PyTorch corresponda à configuração CUDA local.
bonito view
- visualize uma arquitetura de modelo para um determinado arquivo .toml
e o número de parâmetros na rede.bonito train
- treine um modelo bonito.bonito evaluate
- avaliar o desempenho de um modelo.bonito download
- baixe modelos pré-treinados e conjuntos de dados de treinamento.bonito basecaller
- basecaller ( .fast5
-> .bam
) .(c) 2019 Oxford Nanopore Technologies Ltd.
Bonito é distribuído sob os termos da Licença Pública Oxford Nanopore Technologies, Ltd., v. Se uma cópia da Licença não foi distribuída com este arquivo, você poderá obter uma em http://nanoporetech.com
Os lançamentos de pesquisas são fornecidos como demonstradores de tecnologia para fornecer acesso antecipado a recursos ou estimular o desenvolvimento comunitário de ferramentas. O suporte para este software será mínimo e fornecido apenas diretamente pelos desenvolvedores. Solicitações de recursos, melhorias e discussões são bem-vindas e podem ser implementadas por meio de solicitações de bifurcação e pull. Por mais que queiramos corrigir todos os problemas e comentários que os usuários possam ter, os desenvolvedores podem ter recursos limitados para suporte deste software. Os lançamentos de pesquisas podem ser instáveis e sujeitos a rápida iteração pela 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.}
}