Pipeline de exoma completo - parte 2 (alinhamento/mapeamento das sequências)
Autor: Leandro Lima | Publicado: 2014-12-01T11:13:00-08:00

# 2_alinhamento.sh
# Criado em 15/08/2014
# Modificado em 27/11/2014
# Autor: Leandro Lima &lt;llima@ime.usp.br&gt;

# Baixando o programa para alinhar as sequências (bwa)
# A versão mais nova pode ser encontrada aqui:
# http://sourceforge.net/projects/bio-bwa/files/
cd $mydir/tools
# Quando fiz esse tutorial, a versão mais nova era a 0.7.10
wget http://downloads.sourceforge.net/project/bio-bwa/bwa-0.7.10.tar.bz2
tar -xvjf bwa-0.7.10.tar.bz2
cd bwa-0.7.10
make # para compilar o programa na sua máquina

# Para ficar mais fácil de encontrarmos o bwa, vamos criar uma variável
# para acessar a localização dele na sua máquina. Se você souber o que
# significa adicionar o programa ao PATH, fique à vontade para fazer isso.
BWA=$mydir/tools/bwa-0.7.10/bwa


# O 'bwa' precisa que a referência tenha um índice (index), para que as
# sequência sejam localizadas mais facilmente. A boa notícia é que o
# próprio bwa é usado para criar esse índice.

# Comando para criar o arquivo de índices do genoma.
# Isso pode levar alguns minutos.
$BWA index $hg19

# Instalando o 'samtools', para visualização de arquivos sam/bam
# http://sourceforge.net/projects/samtools/files/latest/download
cd $mydir/tools
wget http://downloads.sourceforge.net/project/samtools/samtools/1.0/samtools-1.0.tar.bz2
tar -xvjf samtools-1.0.tar.bz2
cd samtools-1.0
make
SAMTOOLS=$mydir/tools/samtools-1.0/samtools

# Agora vamos para a parte do alinhamento.
cd $mydir/results
mkdir 2_aln
cd 2_aln

# ALINHAMENTO
# Isso também vai levar bastante tempo, dependendo do número de sequências
# a serem mapeadas. Basicamente é a parte mais demorada do pipeline.
# O 'bwa' gera um arquivo de saída que contem informações sobre todas as
# sequências usadas no alinhamento (como: onde foram mapeadas, se foram
# mapeadas perfeitamente ou se houve inclusão, remoção ou troca de bases,
# e até mesmo se a sequência não foi mapeada em nenhum lugar). Esse arquivo
# (SAM, de "Sequence Alignment/Map") é bem grande, já que guarda bastante
# informações sobre as sequências. No entanto, ele tem uma versão compactada,
# ou binária (BAM), que pode ser gerada usando-se o programa samtools.
# As 4 próximas linhas, que estão comentadas, equivalem exatamente às próximas
# linhas que vêm neste script. Vamos usar o 'bwa' para mapear as sequências,
# e depois pegar a saída do mapeamento (arquivo SAM) e transformar num
# arquivo BAM. A diferença é que os comandos não comentados fazem isso sem
# precisar guardar o arquivo SAM (grande), economizando espaço em disco.
# Isso é muito bom, ainda contando com o fato de que o arquivo SAM pode ser
# gerado usando-se o arquivo BAM através do programa 'samtools'.

# Saiba mais sobre o 'bwa':
# http://bio-bwa.sourceforge.net/bwa.shtml

# Saiba mais sobre o 'samtools':
# http://samtools.sourceforge.net/samtools.shtml

# Você não precisa rodar as 4 linhas abaixo!
# $BWA mem -t 4 $hg19 $SINGLE &gt; aln_se.sam
# $BWA mem -t 4 $hg19 $R1 $R2 &gt; aln_pe.sam
# $SAMTOOLS view -Sb aln_se.sam &gt; aln_se.bam
# $SAMTOOLS view -Sb aln_pe.sam &gt; aln_pe.bam

# Como explicado anteriormente, os comandos abaixo irão mapear
# as sequências usando o 'bwa' (com 4 threads, ou seja, seu
# mapeamento será executada em 4 processos paralelamente),
# depois a saída desse alinhamento é passada como entrada
# para o programa 'samtools' com a opção 'view', que irá pegar
# um arquivo SAM (argumento 'S') e gerar um arquivo binário
# (argumento 'b').
$BWA mem -t 4 $hg19 $SINGLE | $SAMTOOLS view - -Sb &gt; aln_se.bam
$BWA mem -t 4 $hg19 $R1 $R2 | $SAMTOOLS view - -Sb &gt; aln_pe.bam

# Depois, iremos juntar as sequências pareadas (método "paired-end")
# com as sequências não-pareadas (método "single-end") usando
# o programa 'samtools' com a opção 'merge'.
$SAMTOOLS merge aln_se_pe.bam aln_se.bam aln_pe.bam

# Agora, vamos visualizar algumas informaçõe sobre os arquivos
# usando o programa 'samtools' com a opção 'view'.

# Primeiramente, vamos entender como funciona um arquivo SAM.
# Um arquivo SAM (ou BAM) contem algumas colunas com diversas
# informações sobre cada sequência.
# Coluna 1: o nome da sequência (que originalmente estava no
# arquivo "fastq").
# Coluna 2: contem um número inteiro que é a soma de diversos
# valores menores que apresentam características da sequência
# e seu alinhamento.
# Coluna 3: nome da sequência que serviu de referência para o
# alinhamento (nesse caso, um cromossomo).
# Coluna 4: a posição, na referência (cromossomo), em que o
# alinhamento começou.
# Coluna 5: qualidade do alinhamento/mapeamento

# Saiba mais sobre as especificações dos arquivos SAM/BAM:
# http://samtools.sourceforge.net/samtools.shtml#5

# Quant. de sequências pareadas no arquivo de single-end
$SAMTOOLS view -f 0x1 aln_se.bam | wc -l 

# Quant. de sequências pareadas no arquivo de paired-end
$SAMTOOLS view -f 0x1 aln_pe.bam | wc -l 

# Quant. de sequências pareadas no arquivo com todas as sequências (merge)
$SAMTOOLS view -f 0x1 aln_se_pe.bam | wc -l 

# Quant. de sequências mapeadas
$SAMTOOLS view -F 0x4 aln_se.bam | wc -l 
# Quant. de sequências não-mapeadas
$SAMTOOLS view -f 0x4 aln_se.bam | wc -l 

# Obs: a soma do número de sequências mapeadas com o número de sequências
# não-mapeadas sempre deve ser igual ao total de sequências
$SAMTOOLS view aln_se.bam | wc -l 

$SAMTOOLS view -F 0x4 aln_pe.bam | wc -l 
$SAMTOOLS view -F 0x4 aln_se_pe.bam | wc -l 

# Observe que o número de seqs. mapeadas do arquivo com todas as seqs.
# deve ser a soma das seqs. single-end (189558) com as seqs. paired-end (14797410)
# 189558 + 14797410 = 14986968

# Depois de ver essas estatísticas, podemos remover os arquivos
# separados, para economizar espaço em disco.
rm aln_se.bam aln_pe.bam



Acesse aqui o pipeline completo: http://www.estudarcomputacao.com/2014/09/pipeline-de-exoma-completo-parte-0.html