Identificação de variante em SARS-CoV-2

Para identificar as variantes, iremos mapear as sequências ao genoma referência, identificar os pontos de mutação e caracterizar a variante.

Primeiro vamos ativar o ambiente que tem os programas instalados:

micromamba activate mapping

Escolha sua amostra

Amostras Amostras Amostras Amostras Amostras
IRR1820_S1 IRR1821_S2 IRR1822_S3 IRR1823_S4 IRR1824_S5
IRR1825_S6 IRR1826_S7 IRR1827_S8 IRR1828_S9 IRR1829_S10
IRR1830_S11 IRR1831_S12 IRR1832_S13 IRR1833_S14 IRR1834_S15
IRR1835_S16 IRR1836_S17 IRR1837_S18 IRR1838_S19 IRR1839_S20
IRR1840_S21 IRR1841_S22 IRR1842_S23 IRR1843_S24 IRR1844_S25
IRR1845_S26 IRR1846_S27 IRR1847_S28 IRR1848_S29 IRR1849_S30
mkdir sars
cd sars

#Variável guarda o nome da sua amostra
export AMOSTRA="AMOSTRA_ESCOLHIDA" #Substitua o conteúdo entre aspas pelo código da amostra da tabela que escolheu
cp ~/big/input/map/$AMOSTRA*.fastq.gz .

Controle de qualidade

Trimmomatic vai retirar as regiões de baixa qualidade, remover os adaptadores e filtrar sequências curtas. Dando um ls repare como usando $AMOSTRA você completa o nome do arquivo R1 e R2 com a variável exportada que tem o código da sua.

trimmomatic PE -threads 4 $AMOSTRA\_L001_R1_001.fastq.gz $AMOSTRA\_L001_R2_001.fastq.gz Paired_R1.fastq.gz Unpaired_R1.fastq.gz Paired_R2.fastq.gz Unpaired_R2.fastq.gz ILLUMINACLIP:~/big/ref/adapters.fasta:2:30:10:2:keepBothReads LEADING:5 TRAILING:5 SLIDINGWINDOW:4:20 MINLEN:50

Mapeamento ao genoma referência

Antes de mapear, precisamos criar um índice que o programas BWA consiga utilizar. Usamos o genoma de referência para criar o índice.

Em seguida, mapeamos os reads ao índice, criando um alinhamento no formato binário "bam" ("sam" daria pra ler, "bam" só computador lê). Vamos usar somente as saídas "Paired" do Trimmomatic, os reads R1 e R2 que produziram forward e reverse.

#Cria o índice usando o arquivo FASTA de referência
bwa index ~/big/ref/Sars_cov_2.ASM985889v3.dna.toplevel.fa
#Mapeia os reads ao indice
bwa mem ~/big/ref/Sars_cov_2.ASM985889v3.dna.toplevel.fa Paired_R1.fastq.gz Paired_R2.fastq.gz > map.bam

Ordenar o mapeamento e empilhar as sequências

Para facilitar a identificação de variantes, é importante ordenarmos os reads e empilharmos para olharmos a informação que cobre cada base. Para isso, usaremos a ferramenta samtools, que trabalha com um arquivo BAM.

A função sort serve para ordenar. E a função mpileup serve empilhar as sequências em relação ao genoma de referência.

samtools sort map.bam -o map.sorted.bam
# > = salva como arquivo de saída

samtools mpileup -d 50000 --reference ~/big/ref/Sars_cov_2.ASM985889v3.dna.toplevel.fa -a -Q 30 map.sorted.bam > pile.bam
# -d = número máximo de sequências empilhadas em uma mesma posição.
# --reference = referência utilizada no mapeamento
# -a = reportar até as regiões que não tiveram nenhuma sequência cobrindo.
# -Q = qualidade mínima do mapeamento
# > = "Salvar como" pile.bam

Identificação das variantes

Compara as sequências mapeadas com a referência, e aplica teste estatístico para eliminar a hipótese de acaso. Para realizar esse teste, usamos a ferramenta ivar, embora existam diversas outras que fazer abordagens semelhantes.

cat pile.bam | ivar variants -p variant -q 30 -t 0.1 -r ~/big/ref/Sars_cov_2.ASM985889v3.dna.toplevel.fa -g ~/big/ref/Sars_cov_2.ASM985889v3.101.gff3

# cat pile.bam | = usar o conteúdo do arquivo como entrada para o próximo comando
# variants = função para chamada de SNV
# -p = prefixo do nome do seu arquivo de saída
# -q = qualidade mínima do mapeamento para ser considerada na chamada de variante
# -t = proporção mínima de uma variante para ser chamada de "SNV"
# -r = FASTA do genoma de referência
# -g = GFF (arquivo de anotações) para predição do impacto na tradução dos genes

cat pile.bam | ivar consensus -p variant -q 30 -t 0.5 -m 30 -n N

# consensus = função para construção de um FASTA
# -p = prefixo do nome do arquivo de saída
# -q = qualidade mínima do mapeamento para o cálculo do consenso
# -t = proporção mínima de uma variante para ser incluída na sequência consenso.
# -m = quantidade mínima de reads na posição para definir qual base será escrita
# -n = caracter da base a ser incluída quandos os critérios mínimos não forem satisfeitos

Identificar a variante de SARS-CoV-2

Uma das utilizadades da identificação de SNV é a caracterização de variantes de virus. No exemplo, usaremos o pangolin que é uma ferramenta que agrupa diversos modelos para identificação das variantes de SARS-CoV-2 a partir da sequência de nucleotídeos deles.

pangolin variant.fa

## Para verificar de forma mais limpa os resultados das variantes
cat lineage_report.csv | awk -F "," '{print $2"\t"$4"\t"$5}'