Montagem de reads longos com Canu ( Nanopore e PacBio) - lmigueel/Bioinformatica GitHub Wiki

1. Sobre

Sequenciamento de reads longos (long-reads) irão revolucionar a bioinformática, se já não estão, então saber lidar com este tipo de dado é essencial.

O sequenciamento de Nanopore é uma tecnologia única e escalonável que permite a análise direta e em tempo real de longos fragmentos de DNA ou RNA. Ele funciona monitorando as mudanças em uma corrente elétrica conforme os ácidos nucléicos são passados por um nanoporo de proteína. O sinal resultante é decodificado para fornecer a sequência específica de DNA ou RNA. Veja o vídeo bem massa deles aqui.

O sequenciamento PacBio oferece a visão mais abrangente de genomas, transcriptomas e epigenomas - incluindo o espectro completo de variação genética - fornecendo os maiores comprimentos médios de reads, maior precisão de consenso e cobertura mais uniforme de qualquer tecnologia de sequenciamento no mercado hoje. Ideal para montagem do genoma de novo e caracterização da variação genética de humanos, animais, plantas e micróbios, este sistema apresenta ótica de alto desempenho, manuseio automatizado de líquidos e um sistema operacional intuitivo e inteligente. Da uma olhadinha nas aplicações e tecnologias deles aqui.

Segundo um artigo que comparou as tecnologias de sequenciamento de reads longos em "bacteria and fly genomes", a melhor é PacBio Sequel II. Os scripts usados você pode acessar aqui.

Canu é um fork do Celera Assembler, projetado para sequenciamento de molécula única de alto ruído (como o PacBio RS II / Sequel ou Oxford Nanopore MinION).

Canu é um pipeline de montagem hierárquico executado em quatro etapas:

  • Detectar sobreposições em sequências de alto ruído usando MHAP
  • Gerar consenso de sequência corrigida
  • Cortar sequências corrigidas
  • Montar sequências corrigidas trimadas

2. Instalação

Você pode instalar pela boa e velha ANACONDA:

conda install -c conda-forge -c bioconda -c defaults canu

ou através de cloning:

  git clone https://github.com/marbl/canu.git
  cd canu/src
  make -j <number of threads>

Segura o help:

canu -options

3. Exemplo de uso

Vamos primeiro baixar dois exemplos de sequenciamento long-reads:

PacBio

curl -L -o pacbio.fastq http://gembox.cbcb.umd.edu/mhap/raw/ecoli_p6_25x.filtered.fastq

Nanopore

Você deve acessar um dataset de E. Coli aqui. Logo depois basta baixar o arquivo ecolk12mg1655_R10_3_guppy_345_HAC.fastq.gz e extrair com o gunzip.

A E. Coli k12 possui tamanho estimado para seu genoma de 4.8Mb. Então, vou mostrar o canu para ambos os dados (PacBio e Nanopore):

Para Pacbio

canu -p ecoli -d ecoli-pacbio genomeSize=4.8m -pacbio pacbio.fastq

Para Nanopore

canu -p ecoli -d ecoli-oxford genomeSize=4.8m maxInputCoverage=100 -nanopore ecolk12mg1655_R10_3_guppy_345_HAC.fastq

Agora vamos as ponderações. Bem, uma das grandes vantagens do canu é ter a correção de reads. Você pode obter os reads com a correção se executar com a flag -correct. Inclusive, a saída dos reads corrigidos pode ser usada novamente no CANU.

Os arquivos de saída e intermediários estarão nos diretórios 'ecoli-pacbio' e 'ecoli-nanopore', respectivamente. Arquivos intermediários são gravados em diretórios de 'correction', 'trimming' and 'unitigging' para os respectivos estágios. Os arquivos de saída são nomeados usando o prefixo '-p', como 'ecoli.contigs.fasta', 'ecoli.unitigs.gfa', etc. Consulte a seção Outputs para obter mais detalhes sobre as saídas (arquivos intermediários não são documentados).

3.1 Montagem com o HiCanu

HiCanu tem suporte para dados PacBio HiFi compactando homopolímeros, corrigindo erros isolados e mascarando erros sistemáticos. Essa tecnologia é mais atual. Vamos agora montar um conjunto de dados HiFi de E. coli k12 sequenciado pela PacBio disponível no NCBI SRA (3 GB). Ao montar, usamos -pacbio-hifi para especificar as reads de entrada:

curl -L -o ecoli.fastq https://sra-pub-src-1.s3.amazonaws.com/SRR10971019/m54316_180808_005743.fastq.1

canu -p asm -d ecoli_hifi genomeSize=4.8m -pacbio-hifi ecoli.fastq

3.2 Segundo exemplo com a opção pacbio-raw

Neste caso, e na maioria das vezes, temos dados que precisam ser executadas as correções e trimagens. Quando executamos o CANU com a opção -pacbio-raw, ele exxecuta a correção e trimagem. Também existe a opção -nanopore-raw, que faz o mesmo efeito. Vamos ao exemplo:

Dados do SRA:

wget ftp://ftp.sra.ebi.ac.uk/vol1/fastq/SRR104/013/SRR10405213/SRR10405213_subreads.fastq.gz

canu  useGrid=false maxThreads=8 maxMemory=24g -p ecoli -d project1/ecoli_run genomeSize=4.6m  -pacbio-raw SRR10405213_subreads.fastq.gz >& canu.log &

E vamos as explicações:

  • Execute "canu -options" para ver todos os parâmetros.
  • Com o parâmetro "-pacbio-raw", canu faria a correção de erros de leitura e a montagem.
  • A opção genomeSize é necessária. Você pode fornecer o tamanho estimado do genoma e não precisa ser preciso.
  • Defina "maxThreads" "maxMemory" se você compartilhar o computador com outros usuários. O padrão será ser todos os threads e memória disponíveis.
  • -p: nome do arquivo de saída;
  • -d diretório de saída.
  • Os contigs montados estarão no diretório ecoli_run.

Executamos previamente o software canu. Os resultados estão no arquivo canu_results.tar.gz. Você pode extrair com tar -xzvf canu_results.tar.gz.

Você veria até três arquivos fasta:

  • *.contigs.fasta: Resultado final da montagem filtrada. Se houver dois alelos para o genoma diplóide, apenas um alelo está incluído neste arquivo.
  • *.unitigs.fasta: este arquivo inclui todos os caminhos alternativos, por exemplo, haplótipos alélicos são representados como duas sequências.
  • *.unassembled.fasta: Um arquivo fasta de contigs com suporte insuficiente e não incluído em *.contigs.fasta.

Há também um arquivo *.report que fornece as estatísticas dos dados brutos e montagem final, incluindo N50 para as reads brutas, reads corrigidas de erros e montagem, bem como o comprimento total do conjunto.

4. Extras: opções de montagem segundo os reads

Os reads são fornecidas ao CANU por opções que descrevem como as reads foram geradas e qual o nível de qualidade em que estão, por exemplo, -pacbio-raw indica que as leituras foram geradas em um instrumento PacBio RS II e não tiveram processamento feito para eles. Cada arquivo de leituras fornecido desta forma torna-se uma "biblioteca" de reads. As leituras deveriam ter sido (fisicamente) geradas todas ao mesmo tempo usando as mesmas etapas, mas talvez sequenciadas em vários batches. Em CANU, cada biblioteca tem um conjunto de opções que definem vários parâmetros algorítmicos, por exemplo, o quão devemos trimar.

Por padrão, todas as tarefas de top-level necessárias são realizadas (as opções -pacbio e -nanopore assumem os reads como brutos e não cortados, enquanto -pacbio-hifi são considerados corrigidos e trimados). É possível executar exatamente uma tarefa especificando suas características dos reads. Essas opções podem ser úteis se você deseja corrigir as leituras uma vez e tentar muitos assemblies diferentes, como mencionei logo acima com o uso da opção -correct.

5. Referências

https://github.com/marbl/canu

Koren S, Walenz BP, Berlin K, Miller JR, Phillippy AM. Canu: scalable and accurate long-read assembly via adaptive k-mer weighting and repeat separation. Genome Research. (2017). doi:10.1101/gr.215087.116

TVEDTE, Eric S. et al. Comparison of long read sequencing technologies in interrogating bacteria and fly genomes. G3 Genes| Genomes| Genetics, 2021.