Oxford Nanopore: Controle de Qualidade, Montagem e Anotação de genomas microbianos

Frederico Schmitt Kremer
omixdata
Published in
4 min readSep 15, 2021

Olá pessoal! Neste tutorial mostrarei como podemos realizar o controle de qualidade, montagem e anotação de genomas microbianos a partir de dados gerados pela plataforma Oxford Nanopore.

Oxford Nanopore

É uma tecnologia de sequenciamento de terceira geração que permite a geração de leituras longas (long reads) de DNA e RNA, sendo baseada no detecção de sinais elétricos gerados a partir da excitação de um poro proteico a partir da passagem de uma molécula de interesse. Este sinal é então processado em um processo de base calling para reconstruir a sequência original. Apesar de inicialmente ter possuir uma taxa de erro alta (>10%), a confiabilidade desta tecnologia tem aumentado expressivamente nos últimos anos, e tem sido preferida no sequenciamento de vários organismos, incluindo os isolados mais recentes de SARS-Cov-2. Para saber mais sobre esta e outras plataformas de NGS, confira nossa série Entendendo o NGS.

Obtenção dos dados

Para este tutorial utilizaremos dados de sequenciamento de um isolado de Mycobacterium tuberculosis, disponíveis no banco de dados Sequence Read Archive (SRA) do NCBI sob o código de acesso SRR12395090. Estes dados podem ser obtidos com o comando fastq-dump do pacote SRA Toolkit.

Controle de Qualidade

Após o download de dados brutos, é necessário o controle de qualidade de modo a se identificar problemas na distribuição de qualidade Phred ao longo das bases das leituras, bem como eventuais contaminações com adaptadores. Para isso, podemos utilizar a ferramenta FastQC, com visto em nosso post anterior.

O FastQC permite uma, dentre outras coisas, a análise da distribuição de qualidade das bases sequenciadas ao longo dos fragmentos, informando diferentes medidas de tendência central e dispersão de forma visual. Como podemos ver abaixo, há uma tendência de queda na qualidade ao longo dos fragmentos.

$ fastqc --nano SRR12395090.fastq

Para tentar contornar isso, podemos utilizar a ferramenta NanoFilt, que fornece um conjunto de funções para fazer a trimmagem das leituras, incluindo remoção de leituras com qualidade abaixo de um certo valor médio (-q), remoção de uma quantidade fixa de bases do final (--tailcrop), dentre outras. Para remover leituras com qualidade abaixo de Q10 e as últimas 1000 bases de cada leituras podemos utilizar o seguinte comando:

$ pip install nanofilt
$ NanoFilt -q 10 SRR12395090.fastq \
--tailcrop 1000 > SRR12395090_filtered.fastq

Com os dados trimmados, podemos realizar um novo controle de qualidade para verificar se os critérios adotados conseguiram contornar a queda de qualidade no final das leituras.

$ fastqc --nano SRR12395090_filtered.fastq

Como pode ser visto, o processamento com o NanoFilt reduziu o decaimento de qualidade na extremidade final dos fragmentos.

O processo de montagem de genomas

Flye é um montador de novo que incorpora alguns princípios dos montadores baseados em OLC, mas com etapas de refinamento para reduzir artefatos decorrentes de ruído nas leituras, sendo próprio para a montagem de genomas sequenciamento com as plataformas Oxford Nanopore e PacBio. Para este tutorial, vamos utilizar a opção --nano-raw para informar que os dados são de Oxford Nanopore e não são polidos, além das opçõe --threads para informar o número de núcleos a serem utilizados e --out-dir o diretório onde os resultados serão salvos.

$ flye --nano-raw SRR12395090_filtered.fastq \
--out-dir assembly \
--threads 2

Durante a sua execução, o flye salvará arquivos intermediários e resultados de montagem na posta informada com o --out-dir. O arquivo assembly.fasta, localizado na raiz do diretório, contêm as contigs produzidas.

. 
├── 00-assembly
│ ├── draft_assembly.fasta
│ └── draft_assembly.fasta.fai
├── 10-consensus
│ ├── consensus.fasta
│ ├── minimap.bam.bai
│ └── minimap.stderr
├── 20-repeat
│ ├── graph_after_rr.gv
│ ├── graph_before_rr.fasta
│ ├── graph_before_rr.gv
│ ├── read_alignment_dump
│ ├── repeat_graph_dump
│ └── repeat_graph_edges.fasta
├── 30-contigger
│ ├── contigs.fasta
│ ├── contigs.fasta.fai
│ ├── contigs_stats.txt
│ ├── graph_final.fasta
│ ├── graph_final.gfa
│ ├── graph_final.gv
│ └── scaffolds_links.txt
├── 40-polishing
│ ├── contigs_stats.txt
│ ├── edges_aln.bam.bai
│ ├── filtered_contigs.fasta
│ ├── filtered_contigs.fasta.fai
│ ├── filtered_stats.txt
│ ├── minimap_1.bam.bai
│ ├── minimap.stderr
│ └── polished_edges.gfa
├── assembly.fasta
├── assembly_graph.gfa
├── assembly_graph.gv
├── assembly_info.txt
├── flye.log
└── params.json

Anotação

Como vimos anteriormente no nosso post sobre montagem e anotação de genomas microbianos, a ferramenta Prokka pode ser utilizada para a anotação automática de genomas de bactérias. Depois de configurar a ferramenta e seus bancos de dados, é possível realizar a anotação com o seguinte comando:

$ prokka \
--genus Mycobacterium \
--species tuberculosis \
--gcode 11 \
--compliant \
--outdir annotation \
--force assembly/assembly.fasta

O resultado do Prokka ficará disponível na pasta annotation, que conterá os arquivo listados abaixo, contendo a identificação de genes e outras regiões funcionais em diferentes formatos.

. 
├── errorsummary.val
├── PROKKA_09142021.err
├── PROKKA_09142021.faa
├── PROKKA_09142021.ffn
├── PROKKA_09142021.fixedproducts
├── PROKKA_09142021.fna
├── PROKKA_09142021.fsa
├── PROKKA_09142021.gbf
├── PROKKA_09142021.gff
├── PROKKA_09142021.log
├── PROKKA_09142021.sqn
├── PROKKA_09142021.tbl
├── PROKKA_09142021.tsv
├── PROKKA_09142021.txt
└── PROKKA_09142021.val

Notebook

Todas estas análises podem ser executadas no notebook abaixo através da plataforma Google Colab.

--

--