Microbioma: Análise de dados de Whole Metagenome Sequencing (WMS) com Kraken2 e Krona

Frederico Schmitt Kremer
omixdata
Published in
5 min readJul 7, 2021

Olá pessoal! No post desta semana vamos abordar a análise de dados de sequenciamento completo de metagenomas (Whole Metagenome Sequencing — WGS), com o objetivo de se identificar o perfil microbiano presente em uma amostra ambiental.

O que é metagenoma?

O metagenoma, DNA ambiental (eDNA) ou genoma ambiental é o material genético total presente em uma amostra complexa, geralmente contendo milhares de microrganismos diferentes (ex: bactérias, fungos e vírus). Além disso, Muitos destes organismos (>99%) são incultiváveis in vitro, o que impediria o uso de técnicas clássicas de microbiologia na caracterização destas amostras, bem como o sequenciamento do genoma de cada espécie individualmente. De modo a contorna isso, o sequenciamento do eDNA, derivado de uma extração de DNA total da amostra, passou a ser empregado na caracterização de amostras complexas.

A partir do metagenoma é possível se estimar o conjunto e as proporções de espécies de microrganismos presentes em uma amostra, sendo este denominado microbioma. A partir destes análises é possível se analisar a diversidade de espécies em uma amostra e entre diferentes amostras, derivando-se as métricas de diversidade alfa, beta e gama. Este tipo de análise tem uma grande relevância em estudos de ecologia e também pode ser empregada em análises de microbioma aplicados à saúde (ex: caracterização de amostras clínicas, como de fezes), industriais (ex: caracterização de microbiota associada a certos alimentos) e agricultura (ex: caracterização da microbiota do solo).

Ao se realizar uma análise de microbiomas, cada leitura de sequenciamento é analisada de modo a se atribuir um grupo taxonômico, seja este derivado do sistema taxonômico de Linnaeus, a partir da taxonomia molecular ou simplesmente a partir da clusterização de sequências que possuem um certo threshold de similaridade. Particularmente neste caso de clusterização, estes grupos taxonômicos são denominados Unidade Taxonômicas Operacionais (operational taxonomic units, OTUs).

A caracterização dos grupos taxonômicos presentes em uma amostra pode ser feita tanto a partir do sequenciamento do metagenoma completo (whole metagenome sequencing), quanto a partir de amplicons gerados a partir de marcadores taxonômicos conservados em um grupo de organismos, como os genes das subunidades ribossomais 16S e 18S, bem como as regiões de ITS. Cada abordagem tem suas vantagens e introduz um certo enviesamento (bias) nos resultados.

A partir da análise do metagenoma é também possível se analisar os genes codificados em uma determinada amostra de modo a se entender vias metabólicas, processos biológicos associados a um determinado ambiente, bem como se prospectar moléculas com potencial aplicação biotecnológica (ex: enzimas com aplicação industrial).

Por fim, o conceito de metagenoma possui também contrapartes em outras áreas das ciências ômicas além da genômica, sendo comum também análises baseadas em metatranscriptomas e metaproteomas.

Configurando as ferramentas

Para a obter os dados de sequenciamento de metagenoma vamos utilizar a ferramenta fastq-dump do pacote SRA Toolkit, que nos permitirá baixar datasets no formato .fastq a partir do banco de dados Sequence Read Archive (SRA) do NCBI.

$ apt install sra-toolkit

Agora vamos instalar a ferramenta kraken2, que precisa ser baixada e compilada a partir do código fonte. Esta ferramenta realizará a identificação taxonômica das

$ wget http://github.com/DerrickWood/kraken2/archive/v2.0.8-beta.tar.gz
$ tar -xvf v2.0.8-beta.tar.gz
$ cd kraken2-2.0.8-beta
$ bash install_kraken2.sh ../kraken2
$ cd ..

O Kraken2 necessidade um banco de dados, que pode ser baixado já formatada ou preparado do zero a partir de um conjunto de sequências. No nosso caso utilizaremos um banco de dados pré-formatado chamado minikraken2, que pode ser baixado com o seguinte comando:

!wget ftp://ftp.ccb.jhu.edu/pub/data/kraken2_dbs/old/minikraken2_v1_8GB_201904.tgz
!tar -xvf minikraken2_v1_8GB_201904.tgz

Para processar os resultados do kraken2 vamos utilizar um conjunto de scripts denominado KrakenTools, que pode ser obtido a partir do repositório https://github.com/jenniferlu717/KrakenTools.

$ git clone https://github.com/jenniferlu717/KrakenTools

Agora vamos clona o repositório do Krona, que será utilizado posteriormente para a criação de uma visualização interativa do metagenoma. Dentro do diretório clonado temos um subdiretório KronaTools, que contêm um script de instalação install.pl feito em Perl. Além disso, temos também alguns shell scripts que são utilizados para o download de dados de taxonomia e códigos de acesso do NCBI. É necessário que estes 3 scripts sejam executados de modo que possamos utilizar a ferramenta apropriadamente.

$ git clone https://github.com/marbl/Krona
$ cd Krona/KronaTools/
$ mkdir -p taxonomy
$ perl install.pl
$ bash updateTaxonomy.sh
$ bash updateAccessions.sh
$ cd ../..

Obtendo os dados de WMS

Para este tutorial utilizarmos dados de metagenoma derivados de amostras de água de uma estação de tratamento na China, disponíveis no NCBI SRA sob o código de acesso SRR1106691.

$ fastq-dump --split-3 SRR1106691

Realizando a identificação de espécies

Com os dados de sequenciamento, podemos utilizar o kraken2 para fazer a atribuição de cada leitura a um dos grupos taxonômicos indexados no banco de dados do minikraken2.

$ kraken2/./kraken2 \
--db minikraken2_v1_8GB \
--report SRR1106691.kreport \
--paired SRR1106691_1.fastq \
SRR1106691_2.fastq > SRR1106691.kraken

O arquivo .kreport contêm um relatório com a identificação taxonômica atribuída a cada leitura. Com uso do script kreport2krona.py do pacote KrakenTools podemos converter este report em um formato compatível com o krona.

$ python KrakenTools/kreport2krona.py \
-r SRR1106691.kreport \
-o SRR1106691.krona

O arquivo gerado, com a extensão .krona, contêm o número de leituras identificadas para cada nível taxonômico e também para cada um de seus subníveis. O nome de cara contêm um prefixo composto por uma letra e dois underscores (“underline”). A letra presente no prefixo indica o nome no nível taxonômico (ex: k para kingdom, p para phylum, c para class, etc).

$ ktImportText SRR1106691.krona \
-o SRR1106691.krona.html

O arquivo .html gerado pelo comando ktImportText contêm uma representação interativa da distribuição de espécies identificadas pelo Kraken2.

Jupyter Notebook

Um notebook contendo os comandos necessário para realizar esta análise está disponível no GitHub Gist e pode ser executado no Google Colab 😃

--

--