Você está na página 1de 76

Introduo anlise de dados de sequenciadores de nova gerao

Verso 2.0.1
Leonardo Varuzza
Abril 2013

Sumrio
1 Introduo
1.1 O que NGS . . . . . . . . . . . . .
1.2 Como funciona o NGS . . . . . . . .
1.2.1 Preparo da amostra . . . . .
1.2.2 Amplificao de biblioteca . .
1.2.3 Sequenciamento . . . . . . .
1.2.4 Ion Torrent . . . . . . . . . .
1.2.5 SOLiD . . . . . . . . . . . . .
1.3 Aplicaes do NGS . . . . . . . . . .
1.3.1 Ressequenciamento genmico
1.3.2 Target Sequencing . . . . . .
1.3.3 RNA Seq . . . . . . . . . . .
1.3.4 Sequenciamento denovo . . .
1.3.5 Metagenoma . . . . . . . . .
2 Arquivos de Sequncia
2.1 Fasta e FastQ Files . . . . . . . . .
2.1.1 Fasta format . . . . . . . .
2.1.2 FastQ format . . . . . . . .
2.2 SFF File . . . . . . . . . . . . . . .
2.2.1 Converter arquivo SFF para
2.3 Unmapped BAM . . . . . . . . . .
2.4 XSQ Format . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

5
5
6
6
7
8
8
9
12
12
13
13
14
14

. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
Fasta ou FastQ .
. . . . . . . . . .
. . . . . . . . . .

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

15
16
16
17
18
18
21
21

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

23
23
23
26
26
28
30
30
31
32
33
34
34
35
35
37

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

3 Mapeamento de Sequncias
3.1 SAM e BAM Files . . . . . . . . . . . . . . . . . . . . . . . .
3.1.1 Estrutura do arquivo SAM . . . . . . . . . . . . . . .
3.1.2 BAM File . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.3 Samtools . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.4 Picard . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Mapeando os reads com o TMAP . . . . . . . . . . . . . . . .
3.2.1 Criando o ndice . . . . . . . . . . . . . . . . . . . . .
3.2.2 Mapeando os reads . . . . . . . . . . . . . . . . . . . .
3.2.3 Exemplo: Mapeando os reads de E. coli com o TMAP
3.2.4 Mapeando dados de Long Mate Pair . . . . . . . . . .
3.3 Bowtie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.1 Utilizando o Bowtie 2 . . . . . . . . . . . . . . . . . .
3.3.2 Utilizando o Bowtie 2 com o Ion Torrent . . . . . . . .
3.4 Visualizando arquivos BAM com o IGV . . . . . . . . . . . .
3.4.1 Importanto o genoma de referncia . . . . . . . . . . .
3

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

4 Arquivos de Anotao de Genomas


4.1 BED Formats . . . . . . . . . . . . . . . . . .
4.2 Formatos GFF e GTF . . . . . . . . . . . . .
4.3 Gerando arquivos de anotao . . . . . . . . .
4.3.1 Obtendo anotaes do UCSC Browser
4.4 Manipulando arquivos BED . . . . . . . . . .
4.4.1 Extrair sequncias da regies . . . . .

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

39
39
40
41
41
43
43

5 Deteco de Varincias
5.1 VCF Files . . . . . . . . . . . . . . . . . . .
5.1.1 Manipulando arquivos VCF . . . . .
5.1.2 Indexando as variantes . . . . . . . .
5.2 Utilizando o samtools para detectar SNPs .
5.2.1 Gerando um arquivo consenso . . . .
5.3 Utilizando o GATK . . . . . . . . . . . . .
5.3.1 Chamando Variantes no GATK . . .
5.3.2 Anotando as variantes com o dbSNP
5.4 Utilizando Ion Varriant Caller . . . . . . . .
5.5 Anotando os SNPs com o snpEff . . . . . .

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

45
45
47
47
48
48
49
49
50
50
51

6 Montagem denovo
6.1 Montando o genoma com o Mira . . . . . . . . . . . . . . . . . . . . .
6.1.1 Montando uma biblioteca de fragmentos utilizando o Mira 3.4 .
6.1.2 Montando uma biblioteca de mate-pair utilizando o Mira 3.4 .
6.1.3 Fazendo uma montagem mista com o Mira 3.4 . . . . . . . . .
6.1.4 Fazendo uma montagem mista com o Mira 3.9 . . . . . . . . .
6.1.5 Interpretando os resultados . . . . . . . . . . . . . . . . . . . .
6.1.6 Comparando a montagem com uma referncia . . . . . . . . . .
6.1.7 Visualizando a montagem no Tablet . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

55
55
56
57
57
58
59
60
61

7 Apndices
7.1 Ordem dos gentipos
7.2 Pileup format . . . .
7.3 Samtools VCF file .
7.4 Script para converter

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

65
65
65
66
67

.
.
.
.
.
.
.
.
.
.

. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
os nomes dos cromossomos em um arquivo VCF

Captulo 1

Introduo

1.1

O que NGS

Sequenciadores de DNA so equipamentos que leem uma amostra de DNA e geram um arquivo eletrnico
com simbolos que representam a sequncia de bases nitrogenadas A, C, G, T contidas na amostra. O
primeiro mtodo popular de sequenciamento da DNA foi o de terminao de cadeia de Sanger, publicado
em 1977. Em 1986 foi lanado o primeiro sequenciador automtico de DNA, o ABI 370, e em 1998, o
primeiro sequenciador de eletroforese capilar, o ABI 3700. Com a automatizao foi possvel realizar
grandes projetos de sequenciamento, como o genoma humano, do camundongo e outros. Para realizar
esses projetos foram montados grandes centros com dezenas de mquinas instaladas e ao custo de bilhes
de dolres.

O sequenciamento de nova gerao Next Generation Sequencing, em ingls, ou simplemente NGS


so processos de sequenciamento de DNA que utilizam metodologias diferentes da de Sanger, com o
objetivo de acelar e baixar o custo do processo de sequnciamento. Apesar de se diferenciarem consideravelmente entre s todos os sequenciadores de NGS se baseiam no processamento paralelo massivo de
fragmentos de DNA. Enquanto que um sequenciador de eletroforese processa, no mximo, 96 fragmentos
por vez, os sequenciadores de nova gerao podem ler at bilhes de fragmentos ao mesmo tempo.

Na figura 1.1 vemos a evoluo do custo por megabase sequenciada. Nota-se um primeiro decrsimo
em 2004, ano do lanamento do sequenciador 454 da Roche e um decrsimo mais acentuado a partir
de 2006 e 2007, anos em que foram lanados os sequenciadores de nova gerao da Illumina e da Life
Technologies. No grfico, vemos tambm qual seria a reduo de custo, se a tecnologia de sequenciamento
tivesse evoluido segundo a lei de Moore[23]. V-se que a evoluo do sequenciamento de DNA foi muito
mais acelerada do que dos processadores de computadores. A implicao disso que os sequenciadores
evoluiram muito mais rpido do que os computadores que analisam os dados gerados, da a necessidade
computacional para lidar com os dados gerados ter se tornado muito maior do que h 10 anos.
5

Figura 1.1: Evoluo do custo de sequenciamento por megabase. Fonte: http://www.genome.gov/


sequencingcosts/.
Apesar da reduo impressionante no custo por megabase, o custo por reao, tambm chamdado do
custo de apertar o boto start, ainda bastante alto, da ordem de dezenas de milhares de dlares. Ou
seja, ampliou-se muito a capacidade dos sequenciadores, permitindo at o sequenciamento de mais de um
genoma por corrida, mas sem reduzir muito o custo de operao do equipamento. Um fator limitante na
reduo desse custo o uso de reagentes caros, como bases marcadas por fluorforos. No final de 2010,
foi lanado o PGM, da Ion Torrent, o primeiro sequenciador a detectar a incorporao dos nucleotdeos
atravs de um semicondutor, reduzindo, dessa forma, a complexidade do equipamento e o custo da reao
de sequencimento.

1.2

Como funciona o NGS

Cada tecnologia de sequenciamento possui uma estratgia diferente, mas em geral podemos identificar etapas comums entre todos os sequenciadores1 : preparo da amostra, amplificao da biblioteca e
sequenciamento.

1.2.1

Preparo da amostra

Primeiro o DNA fragmentado por um processo qumico, mecnico ou enzimtica. Cada um desses
fragmentos chamado de template. No importa qual o mtodo de fragmentao escolhido, importante
que ele quebre o DNA de maneira aletria, de forma que todo o genoma seja coberto de maneira o mais
uniforme possvel2 .
Aps a fragmentao, adaptadores, sequncias artificiais conhecidas, so incorporados ao template.
Nessa etapa possvel combinar diferentes amostras em uma mesma reao de sequnciamento atravs
do uso de adaptadores com uma pequena parte , normalmente 5 ou 10 bases, diferente. Depois de ligados
esses adaptadores, as amostras so misturadas, amplificadas e sequenciadas juntas. Aps isso, no processo
de sequnciamento, essa parte do adaptador lida e as amostras so separadas computacionalmente.
Um outro tipode de biblioteca so as de Long Mate-Pair[28], ou LMP. Nesse caso, so gerados
tamplates maiores, da ordem de algumas kilobases. So ligados adaptadores complementares nas pontas
do template e ele circularizados. Em seguida feita uma digesto enzimtica que gera um nico
fragmento com as duas pontas do template separadas adaptador interno (ver figura 1.2). Apesar de ser
um processo mais trabalhoso para o preparo de uma bibliotecas simples de fragmentos, o LMP permite a
deteco de variaes estruturais em projetos de ressequenciamento e de gerao de scaffolds em projetos
de sequenciamento denovo.
1 Nos ltimos anos foram propostas tecnologias que tentam eliminar a etapa de amplificao, sequenciando diretamente
uma nica molecula de DNA, porm todas as tecnologias propostas sofreram de problemas de baixa acurcia e baixo
throughput.
2 Uma excesso essa regra o sequenciamento de amplicons, nesse caso o objetivo sequenciar pequenas regies que
tem exatamente o tamanho da leitura gerada pelo sequnciador

Figura 1.2: Processo da amostra de Long Mate Pair.


Um artefato que pode surgir nessa etapa so as duplicaes de reads causadas por artefatos de PCR.
Esses artefatos podem gerar distores na cobertura do genoma e impactar as anlises de variaes do
genoma ou de expresso do transcriptoma. Por conta disso, as pipelines de anlises normalmente possuem
uma etapa em que os reads duplicados so marcados, e consequentemente ignorados nas anlises finais.

1.2.2

Amplificao de biblioteca

A amplificao de bibliotecas tem como objetivo gerar em um pequeno espao fsico milhares de cpias
de cada fragmento de DNA produzido na etapa de preparo da amostra. O objetivo dessa amplificao
aumentar a fonte de sinal luminoso para a maioria dos sequenciadores, e inico no o caso do Ion Torrent,
que ser detectado na etapa de sequenciamento.
O primeiro processo de amplificao desenvolvido para esse propsito foi o PCR de emulso. Nele
so criados milhes de micro reatores em uma emulso de leo. Esses reatores contm todos os reagentes
necessrios para uma reao de PCR e pequenas esferas (tambm chamdas de beads ou de IonSpheres)
cobertas com a sequncia complementar ao adaptador. Esses fragmentos, servem para fixar os clones do
template na esfera e tambm como primer para a reao de PCR. Ao final do processo a esfera pode
estar em quatro estados:
1. Caso ideal: Um nico fragmento foi incorporado uma nica esfera.
2. Beads policlonais: Mltiplos fragmentos foram incorporados a uma esfera.
3. Empty bead: Nenhum fragmento foi incorporado esfera.
4. Multiple beads: Mais de uma esfera estava presente no micro reator.
O caso de Multiple beads controlado pelo tamanho do reator, de forma que caiba somente uma esfera
por reator. As empty beads so eliminadas atravs de uma operao de enriquecimento para beads com
template incorporado. Por fim, as beads policlonais so controladas por meio de um processo estatstico,
que segue uma distriuiode Poisson. Basicamente temos muito mais beads do que templates . Por
exemplo, se tivermos 10 vezes mais beads do que templates, espera-se que somente 0,47% das beads
sejam policlonais. Claro que o efeito secundrio que 90% das beads estejam vazias, porm essas beads
so eliminadas por meio do processo de enriquecimento.
O principal fator que afeta a etapa de amplificao a quantificao do DNA. Se o DNA for subquantificado, ou seja, existe mais DNA na amostra do que o reportado, o resultado vai ser um aumento da
quantidade de beads policlonais. Por outro lado, se o DNA for sobrequantificado, ou seja, se existe menos
DNA do que o reportado, o resultado vai ser uma quantidade muito pequena de beads com fragmentos.
Na tabela 1.1 vemos a porcentagem esperada de beads policlonais e empty beads, se tivermos uma relao
1 para 1 entre beads e fragmentos esperasse que mais de 26% das beads sejam policlonais.
7

Razo
10
5
4
3
2
1

Policlonal (%)
0.47
1.75
2.65
4.46
9.02
26.4

Empty (%)
90.5
81.9
77.9
71.7
60.7
36.8

Tabela 1.1: Relao entre a razo beads/fragmentos, a probabilidade de beads policlonais e a probabilidade de empty beads.

1.2.3

Sequenciamento

O sequenciador um instrumento que executa uma srie de reaes qumicas. Estes geram sinais que so
detectados e determinam a sequncia de bases template se est sendo analisado. A seguir, vamos mostra
o processo de sequenciamento de dois intrumentos que tm abordagens completamente diferentes: o Ion
Torrent e o SOLiD.

1.2.4

Ion Torrent

A maioria dos sequenciadores utiliza uma DNA polimerase para gerar a fita complementar ao template ,
bases marcadas por fluoroforos, e cmeras a deteco. O Ion Torrent diferente pois a deteco feita
diretamente. A reao de polimerizao gera naturalmente um um H +3 , ou seja, um prton, que altera
o pH do meio. Essa alterao do pH detectada por um transistor ISFET[1] e convertida em um sinal
eltrico (figura 1.3).

Figura 1.3: Reao de incorporao de uma base pela polimerase.


Outro ponto importante para determinar a sequncia sincronizar a polimerase com a deteco,
tanto no Ion Torrent quanto no 454 essa sincronizao feita pelo controle do tipo disponvel para a
polimerase. Por exemplo, suponha que o incio do fragmento que se deseja sequenciar seja AGT e que o
sequenciador disponiblize uma certa quantidade de dTTP. A polimerase vai fazer o pareamento do A com
o T e o sinal vai ser detectado pelo transitor ISFET. Para continuar a reao, a polimerase necessita de
um dCTP, porm esse reagente no est disponvel e, portanto, a reao para e a leitura da incorporao
feita. Em seguida, ocorre uma lavagem, e a base seguinte injetada, e assim por diante em uma srie
3 A reao de polimerizao tambm gerar um fosfato e esse o caminho de deteo utilizado pelo 454, com a diferena
que a emisso do fosfato no detectada diretamente, mas indiretamente atravs da ativao de uma luciferase que gera
luz

de fluxos. Podemos ver na figura 1.4 uma representao dos sinais detectados pelo sensor de um nico
poo. essa informao de intensidade de sinal que convertida depois na sequncia de bases.

Figura 1.4: Flowgram da sequncia AATCTTCGT...


Uma questo relevante para os sequenciadores que utilizam fluxos de dNTPs so os homopolmeros, sequencias contnuas de bases iguais como AAAA, CCCCC e etc4 . Nesse caso, todas as bases do
homopolmero vo ser incorporadas em um nico fluxo. Felizmente, o sensor ISFET tem uma resposta
bastante linear; portanto, se um A tem um sinal x, um AA vai ter um sinal aproximadamente 2x, e
assim por diante. Na prtica, possvel detectar com boa acurcia homopolmeros de at 6 bases.
O ltimo elemento importante, e que diferencia os sequenciadores da nova gerao em relao
anterior, o paralelismo da reao e da deteco. No Ion Torrent esse paralelismo obtido pelo uso de
chips de silcio. Utilizando o processo CMOS, o mesmo utilizado na fabricao de chips de computador
ou sensores de cmeras digitais, so construdos milhes de poos microscpicos um pouco maiores do
que as esferas com fragmentos de DNA, de forma que, em cada poo, tenha somente uma esfera. No
chip esto tambm os transitores IsFET que fazem a deteco da mudana de pH, ou seja, cada poo
possui o seu prprio pH-gmero para fazer a deteco do sinal[29].

1.2.5

SOLiD

A sigla SOLiD significa Sequencing by Ligation and Detection e descreve bem o processo de sequenciamento utilizado pelo instrumento. Ao invs de utilizar uma polimerase e detectar a incorparao de cada
uma das bases, o SOLiD utiliza octmeros marcados com fluorforos para identificar a sequncia alvo.
As primeiras 5 bases da probe garantem a especificidade da ligao da probe com o template, enquanto
que as 3 timas so inosinas que anelam de maneira inespecfica. Conectado ltima, inosina temos o
flurforo que gerar o sinal luminoso a ser detectado pelo sequenciador (ver fig 1.5).
Fluorforo

Probe

n1 n2 n3 n4 n5 x x x
Figura 1.5: Estrutura da probes utilizadas pelo SOLiD
No SOLiD, assim como no Ion Torrent, cada fragmento amplificado milhares de vezes na superfcie
de uma bead5 . Essas beads so ento depositadas e fixadas em uma lmina de vidro. muito importante
ter essa fixao, porque sabemos que o sinal luminoso que ser gerado pelo processo de sequenciamento
est vindo da mesma bead (ou seja, da mesma populao de clones geradas de um template) por meio
das coordenadas do ponto luminoso na lmina.
4 Notem

que microsatlites com mais de uma base na repetio, como ACACAC, no so homopolimeros
uma novo modelo do SOLiD, o 5500W, que no utiliza beads. A amplificao dos templates feita diretamente
na lmina.
5 Esses

A reao de sequenciamento ocorre para cada um dos milhares de clones em cada uma das centenas
de milhes de beads depositadas na lmina. As etapas dessa reao so, de maneira simplificada, as
seguintes:
1. Na etapa de construo de biblioteca, adicionado um primer em cada extremidade de cada fragmento, chamados de P1 e P2 . No processo de sequenciamento adicionado um primer complementar
P1 , chamado de PA . A ltima base desse primer alinha com a ltima base de P1 (fig 1.6 A)
2. adicionado um pool equimolar de probes. Como temos 4 bases diferentes e uma estrutura de 5
bases mais 3 inosinas, temos portanto 45 = 1024 combinaes diferentes de probes. As probes vo
se anelar ao longo do template. Aps o anelamento, adicionada uma ligase, que vai fixar somente
a probe que estiver ao lado de uma ponta 506 . Aps a fixao pela ligase ocorre uma lavagem e
todas as probes no fixadas so removidas (fig 1.6 B)
3. feita a leitura do florforo. As inosinas, as trs ltimas bases da probe, so removidas junto com
um florforo, criando assim uma ponta 50 livre para fazer a ligao da prxima probe (fig 1.6 C)
4. feita uma nova incorporao de probes e o processo se repete (fig 1.6 D)

A. Primer se liga ao template


primer

C. As 3 ltimas bases da probe (as inosinas) so


removidas junto com a probe.
primer

... p-2 p-1 p0 s1 s2 s3 s4 s5 s6 s7 ...

... p-2 p-1 p0 s1 s2 s3 s4 s5 s6 s7 ...

Template

Template

D. Uma nova probe incorporada e o processo


se repete.

B. Primeira probe anela ao template e


fluroforo lido.
Probe

primer

primer

... p-2 p-1 p0 s1 s2 s3 s4 s5 s6 s7 ...

Probe

... p-2 p-1 p0 s1 s2 s3 s4 s5 s6 s7 ...


Template

Template

Figura 1.6: Algumas etapas do processo de sequenciamento: ligao do primeiro primer.


A incorporao de probes repetida 5, 7, 10 ou 15 vezes, dependendo do tamanho desejado de leitura.
Terminado esse ciclos o sistema aquecido e a fita complementar ao template que foi gerada denatura e
eliminada. ento incorporado um novo primer, chamado de PB , que alinha uma base a esquerda de
PA . Todo o processo de incorporao de probes repetido, mas sempre com uma base esquerda (fig
1.7). Na tabela 1.3 vemos a relao entre primer, ciclo e bases lidas. Vemos que a cada ligao de probe
duas bases so lidas e que cada base lida por duas probes diferentes. Por exemplo, a base s1 lida
pelo ciclo 1 do PA e pelo ciclo 2 do PB . Essa construo chamada de Two Bases Encoding ou 2BE7 ,
e permite que se faa depois a correo de erros que aumenta a acurcia do processo de sequenciamento
e esta a principal caracterstica do SOLiD. Vale a pena tambm resaltar que na segunda ligao, a
ltima base do primer P1 sequenciada, isso muito importante para fazer depois a decodificao das
cores para bases.
probes consecutivas no ligam porque na extremidade 50 da probe tem o florforo, que impede a ligao 50 30 .
tambm uma codificao alternativa chamada de Four Bases Enconding, ou 4BE, que opcionalmente utilizada
para fazer uma segunda correo de erros chamada de Exact Call Chemistry ou ECC.
6 Duas

7 Existe

10

0
1
2
3

Cor
Azul
Verde
Amarelo
Vermelho

Fluorforo
FAM
Cy3
TXR
Cy5

Tabela 1.2: Codificao das cores em nmeros.


Pelo processo de sequenciamento, cada probe 2 de cada 5 bases cobertas por ela, para cobrir todas as
bases duas vezes, temos que utilizar 5 probes, que se alinham em posies diferentes de P1 e permitem
que se cubra todo o fragmento8 . Veja a figura 1.8.
Primer
PA
PA
PA
...
PB
PB
PB
...

Ciclo
1
2
3
...
1
2
3
...

Bases Lidas
s1 s2
s6 s7
s11 s12
...
p0 s1
s5 s6
s10 s11
...

Tabela 1.3: Leitura de bases pelas probes do SOLiD


O resultado do sequenciamento codificado em nmeros de acordo com a tabela 1.2. A relao entre
as duas primeiras bases da probe, n1 e n2 , e a cor do flurforo dada pela tabela 1.4. Essa tabela
tem diversas propriedades interessantes: ela simtrica e nenhuma cor se repete na mesma linha ou na
mesma coluna (como em um jogo de Soduko). Por causa dessas propriedades temos que, se soubermos
a primeira base do par e a cor fica determinada a segunda base. Suponhamos que a primeira base do
par seja um T, se a cor lida pela probe for verde, a segunda base , portano, um G. Como o primeira
probe do primer PB l a ltima base do adaptar P1 , que conhecida, podemos portanto descobrir qual
a primeira base da leitura. Tendo a primeira base da leitura e a segunda cor, podemos descobrir a
segunda base, e assim por diante. Podemos pensar nas cores como transformaes entre bases, e que se
essas transformaes forem encadeads, podemos gerar todas as bases da leitura.
Suponha que a ltima base de P1 seja um T, e que a seguinte sequncia de cores tenha sido obtida:
3 1 3 1 0 2 . Se consultarmos a tabela 1.2, temos que T na primeira base com 3 gera um A, portanto
a primeira base da nossa sequncia um A, o que nos gera o seguinte resultado intermedirio:
A1 3 1 0 2
Vendo agora, a combinao de A com 1 gera um C, e o nosso segundo resultado intermedirio :
AC 3 1 0 2
Continuando a aplicar as transformaes chegamos aos seguintes resultados:

ACG 1 0 2
ACGT 0 2
ACGT T 2
ACGT T C
Portanto, a sequncia T313102 codificada em color space representa a sequncia ACGTTC em base
space.
8 Pela construo das probes sequenciaramos tambm as 5 ltimas bases de P , o que no interessante. Por isso, aps
1
o primer PB , adicionado um espaador que desloca a posio inicial do sequenciamento 5 bases para frente.

11

C. Novamente as inosinas e o fluroforo so


removidos.

A. Um novo Primer se liga ao template uma


posio para dentro do primer.
primer
5

primer

... p-2 p-1 p0 s1 s2 s3 s4 s5 s6 s7 ...

... p-2 p-1 p0 s1 s2 s3 s4 s5 s6 s7 ...


Template

Template

D. E o processo segue, sempre com uma base


deslocada esquerda.

B. Como no primer anterior a probe se anela,


porm deslocada uma base esquerda.
primer

Probe

Probe

primer

... p-2 p-1 p0 s1 s2 s3 s4 s5 s6 s7 ...


Template

... p-2 p-1 p0 s1 s2 s3 s4 s5 s6 s7 ...


Template

Figura 1.7: Algumas etapas do processo de sequenciamento: Ligao do segundo primer.

n1

n2
A
C
G
T

A
0
1
2
3

C
1
0
3
2

G
2
3
0
1

T
3
2
1
0

Tabela 1.4: Codificao de bases para cores

1.3

Aplicaes do NGS

O nmero de aplicaes do NGS ilimitado. Qualquer coisa que possa ser transformada em DNA pode
ser sequenciada utilizando o mesmo protocolo. Por isso, se algum quiser criar uma nova anlise, basta
modificar a etapa de preparo de biblioteca e de anlise e teremos uma nova aplicao. Mesmo assim,
existe um grupo de aplicaes que mais utilizado pela comunidade cientfica.

1.3.1

Ressequenciamento genmico

Projetos de ressequenciamento tm como objetivo descobrir diferenas entre o genoma de referncia e o


genoma de interesse. Os projetos de ressequenciamento normalmente buscam encontrar diferenas entre
o genoma de uma pessoa saudvel e o genoma de uma pessoa com alguma doena, como o cncer ou uma
doena hereditria. O ressequenciamento tambm tem aplicaes agropecurias: pode-se utiliza-lo para
entender a diferena entre genomas de raas de animais, cultivares de plantas ou isolados de bactrias.
O resultado de um projeto de ressequenciamento a lista das variantes detectadas. Tendo em mos
essa lista, o pesquisador pode compar-la com os genes anotados do organismo para tentar entender a
relao entre gentipo e fentipo. Um parmetro importante para o ressequenciamento a cobertura
mdia do genoma, ou seja, quantas vezes em mdia cada base do genoma foi coberta. Suponha um
genoma de 3 Gbp: para ter uma cobertura de 20 preciso gerar 60 Gbp de dados. Para detectar
variantes germinativas recomendada uma covertura entre 20 e 30, porque essas variantes vo ter
uma frequncia em torno de 100% para mutaes homozigotas e 50% para variaes heterozigotas. J
para detectar variantes somticas, necessria uma cobertura maior, porque essas variantes ocorrem
12

P1

10

15

20

25

PA
PB

PC
PD

PE

Figura 1.8: Esquema de cobertura do template pelos probes para uma leitura de 25 bp.
com frequncias menores do que as variantes germinativas. A capacidade de deteco da variante vai
depender da frequncia mnima que se deseja detectar e da acurcia das leituras geradas.

1.3.2

Target Sequencing

O ressequenciamento de um genoma inteiro gera um volume enorme de dados e permite fazer uma identificao completa das variaes no genoma. Porm, muitas vezes, os pesquisadores s esto interessados
nas variaes das regies codificantes, ou at mesmo num subconjunto de genes e, portanto, sequenciar
todo o genoma para depois selecionar a parte que interessa bastante ineficiente. Uma alternativa ao
ressequenciamento completo o target sequencing, na qual a amostra tratada para selecionar somente
as regies de interesse.
Existem duas principais abordagens para o target sequencing: captura por hibridizao, mtodo utilizado pelos kits SureSelect da Agilent e TargetSeq da Life, e captura por amplificao como o RainStorm
da Rain Dance e o AmpliSeq da Life.
Recomenda-se uma alta cobertra da regio de interesse pois, como estamos restringindo o sequenciamento s regies de interesse, queremos garantir que todas as bases tenham cobertura suficiente para que
possamos fazer a identificao de variaes de maneira confivel. Uma recomendao corrente cobrir a
regio de interesse com uma mdia de cobertura entre 80 e 100 vezes. Mesmo assim, o target sequencing
oferece vantagens de custo e de processamento devido ao volume reduzido de dados, um genoma humano
sequenciado a 20 gera 60Gbps de sequncias, enquanto que um exoma sequenciado a 100 gera 5Gbps
de dados.

1.3.3

RNA Seq

RNA Seq, tambm chamado the Whole Transcriptome Shotgun Sequencing, o uso de NGS para sequenciar cDNA com a inteno de capturar a informao do transcriptoma de um organimo. Ao contrrio de
outras tcnicas, como Microarray ou RT-PCR, o RNA Seq no necessita uma lista pre-definida dos gene
que se deseja detectar. A princpio, qualquer transcrito que estiver sendo expresso pode ser detectado se
o experimento tiver cobertura suficiente. Alm disso, o RNA Seq permite detectar, alm da expresso,
eventos de splicing alternativo e expresso de genes desconhecidos.
Segundo as diretrizes do projeto ENCODE[27], para estudar somente a expresso de transcritos
polyA, uma cobertura de 20 a 25 milhes de reads curtos mapeados suficiente. Mas para detectar
transcritos raros ou variaes e isoformas em uma amostra de mamferos, necessrio uma cobertura
de 100 a 200 milhes de reads. O projeto ENCODE tambm recomenda a realizao de duas ou mais
replicatas biolgicas. Normalmente no necessrio realizar rplicas tcnicas.
Um dos problemas em manipular RNA a sua fragilidade. Por isso preciso tomar muito cuidado
na manipulao da amostra e tambm preciso avaliar a sua qualidade antes de fazer o sequenciamento
(utilizando, por exemplo, o BioAnalyzer da Agilent). Caso a amostra esteja degradada, o resultado
13

uma taxa muito baixa de reads mapeados. Outro problema o RNA Ribossomal, ele corresponde a
uma grande quantidade da massa de RNA de uma clula e, se no for removido da amostra no final, a
maioria dos reads ser de RNA ribossomal, o que normalmente no objetivo do experimento. possvel
utilizar um kit de depleo de RNA Ribossomol, como o Ribominus da Invitrogen, ou ento fazer um
enriquecimento para RNA com calda polyA, como o poly(A) Purist tambm da Invitrogen. Caso haja
interesse tambm em RNAs no codificantes melhor utilizar somente o Ribominus. Caso contrrio, o
poly(A) Purist mais eficiente (alguns grupos utilizam os dois para garantir a remoo dos ribossomais).

1.3.4

Sequenciamento denovo

Quando no se tem um genoma de referncia, necessrio realizar a montagem denovo. O processo de


montagem denovo muito mais trabalhoso do que o mapeamento com referncia. necessrio ter uma
cobertura muito maior e os programas de montagem cometem muito mais erros do que os programas
de mapeamento. Apesar disso, possvel obter bons resultados na montagem de genomas bacterianos
com relativo pouco esforo. Para genomas de organismos superiores, necessrio combinar diversas
tecnologias de sequenciamento e utilizar computadores com quantidades massivas de memria RAM
para efetuar o processo de montagem do genoma.

1.3.5

Metagenoma

A metagenmica o estudo do material gentico extrado diretamente do ambiente. Normalmente,


quando se quer estudar o genoma de uma bactria, feita uma cultura para garantir que se est sequenciando um nico genoma. Porm, a diversidade de micro-organismos presentes no ambiente muito maior
do que possvel acessar via sequenciamento individual de bactrias. Por isso, o estudo do metagenoma
importante.
Existem dois tipos de estudo de metagenomas:
1. Estudo de diversidade utilizando o gene ribossomal 16s: Nesse tipo de estudo amplifica-se por PCR
a sequncia 16s e se compara o resultado contra um banco de dados de bactrias conhecidas. Com
isso, possvel avaliar e comparar a diversidade de bactrias presentes na amostra.
2. Shotgun Metagenomics: Nesse segundo caso no se faz nenhuma seleo de alvo. Todo o DNA
extrado da amostra fragmentado e sequenciado. A anlise consiste em montar o metagenoma
da amostra para tentar identificar, alm da diversidade de genomas, novos genes.
A metagenmica uma rea muito ativa de pesquisa e os mtodos de anlise ainda so muito manuais.

14

Captulo 2

Arquivos de Sequncia
Em princpio, bastante simples representar uma sequncia de DNA em formato texto. Cada base pode
ser presentada por um caracter: A para Adenina, C para Citosina, G para Guanina e T para timina.
O cdigo oficial para representar DNA mantido pela IUPAC e inclui tambm cdigos para identificar
bases ambguas, ou seja, os casos em que no se sabe ao certo a base correta, mas se sabe que deve ser
um C ou T ou algo similar. O cdigo completo est na tabela 2.1.
A
C
G
T (ou U)
R
Y
S
W
K
M
B
D
H
V
N
. ou -

Adenina
Citosina
Guanina
Timina (ou Uracila)
A ou G
C ou T
G ou C
A ou T
G ou T
A ou C
C ou G ou T
A ou G ou T
A ou C ou T
A ou C ou G
qualquer base
gap

Tabela 2.1: Cdigo IUPAC para representar o DNA


Alm da informao da base, os sequenciadores tambm produzem uma estimativa da probablidade
da base detectada estar correta. Usualmente essa probabilidade representada pelo Phred Quality
Score, assim chamado porque foi utilizado pela primeira vez no software phred[5]. A frmula para
calcular os valores de phred :
Q = 10 log10 Perro

(2.1)

Onde Perro a probabilidade da base ter sido identificada de maneira errada1 . Na figura 2.1, temos
o grfico da funo que calcula o phred score e na tabela 2.2 temos exemplos de alguns valors de phred.
Nela vemos que, por exemplo, uma base com phred 20 tem 99% de acurcia, ou seja, uma chance em
100 de estar errada.
1 O score phred construdo com base em uma srie de preditores de qualidade que so calibrados com dados reais para
gerar uma estimativa de probabilidade de erro.

15

Q
10
20
30
40
50

Chance de erro
1 em 10
1 em 100
1 em 1000
1 em 10000
1 em 100000

Acurcia da base
90 %
99 %
99,9 %
99,99 %
99,999 %

Tabela 2.2: Valores de qualidade phred, probabilidades de erro e acurcia

Phred Score
40

35

Phred Score

30

25

20

15

10

5
0

0.01

0.02

0.03

0.04

0.05
P de erro

0.06

0.07

0.08

0.09

0.1

Figura 2.1: Grfico da funo que calcula o Phred Score


Tipicamente, os valores de phred score esto entre 1 e 40. At possvel sequenciar com uma acurcia
maior que 40, porm, a acurcia das etapas anteriores de 99,99%, e a acurcia do processo inteiro no
pode ser maior do que da parte menos acurada, o que uma consequncia da propagao derros.
A maneira mais simples de representar os valores de qualidade em formato texto uma lista de
inteiros, o que adiciona de 2 a 3 bytes de dados para cada base sequenciada (1 a 2 caracteres para o valor
da qualidade e um caracter como separador entre os valores). Antes do NGS essa forma de representao
era prtica porque o volume de dados era pequeno, mas recentemente se tornou necessrio criar novos
formatos que economizassem bytes.
Neste captulo, vamos analisar os formatos de representao de dados de sequenciamento mais usados
e como manipul-los utilizando ferramentas gratuitas.

2.1
2.1.1

Fasta e FastQ Files


Fasta format

A forma mais universal de representar sequncias biolgicas o formato fasta. Este formato foi criado
para o programa de alinhamento de DNA e protenas FASTA[21]. Por ser um formato texto muito
simples, ele foi sendo adaptado para as mais diversas aplicaes. Mas por outro lado muitas aplicaes
no seguem o padro de maneira estrita.
De maneira geral, um arquivo fasta contm uma srie de cabealhos seguidos pelo texto da sequncia.
Cada cabealho definido por uma linha que se inicia com o caracter >. Pelo padro, linhas que iniciam
com o caracter ; so consideradas comentrios, mas algumas aplicaes utilizam o caracter # para essa
funo. Abaixo vemos um exemplo de arquivo fasta:
16

>HSBGPG Human gene for bone gla protein (BGP) (fragment)


GGCAGATTCCCCCTAGACCCGCCCGCACCATGGTCAGGCATGCCCCTCCTCATCGCTGGGCACAGCCCAGAGGGT
ATAAACAGTGCTGGAGGCTGGCGGGGCAGGCCAGCTGAGTCCTGAGCAGCAGCCCAGCGCAGCCACCGAGACACC
ATGAGAGCCCTCACACTCCTCGCCCTATTGGCCCTGGCCGCACTTTGCATCGCTGGCCAGGCAGGTGAGTGCCCC
CCTGGAGCCCAGGAGGGAGGTGTGTGAGCTCAATCCGGACTGTGACGAGTTGGCTGACCACATCGGCTTTCAGGA
GGCCTATCGGCGCTTCTACGGCCCGGTCTAGGGTGTCGCTCTGCTGGCCTGGCCGGCAACCCCAGTTCTGCTCCT
CTCCAGGCACCCTTCTTTCCTCTTCCCCTTGCCCTTGCCCTGACCTCCCAGCCCTATGGATGTGGGGTCCCCATC
ATCCCAGCTGCTCCCAAATAAACTCCAGAAG
>HSGLTH1 Human theta 1-globin gene (fragment)
CCACTGCACTCACCGCACCCGGCCAATTTTTGTGTTTTTAGTAGAGACTAAATACCATATAGTGAACACCTAAGA
CGGGGGGCCTTGGATCCAGGGCGATTCAGAGGGCCCCGGTCGGAGCTGTCGGAGATTGAGCGCGCGCGGTCCCGG
GATCTCCGACGAGGCCCTGGACCCCCGGGCGGCGAAGCTGCGGCGCGGCGCCCCCTGGAGGCCGCGGGACCCCTG
CTTCTTGCCGTGCTCTCTCGAGGTCAGGACGCGAGAGGAAGGCGC

Neste exemplo, vemos duas sequencias: uma identificada com HSBGPG e outra como HSGLTH1.
Depois de cada identificador temos um espao e em seguida um comentrio sobre a sequncia. Depois
disso temos o corpo de cada sequncia, o padro manda que a sequncia seja quebrada em linha entre 70
e 132 caracteres. No exemplo, est uma sequncia de nucleotdeos, mas o arquivo fasta pode ser utilizado
para representar qualquer tipo de sequncia biolgica.
O arquivo fasta pode vir acompanhado de um arquivo com extenso .qual. Nesse arquivo esto
os valores de qualidade associados com cada base. Ele tem basicamente o mesmo formato do arquivo
.fasta, porm, no lugar da sequncia de bases, ele tem os valores de qualidade na escala phred separados
por espaos. Abaixo temos um exemplo de arquivo .fasta e o respectivo arquivo .qual.
FASTA
>RWBG8:4:5
CTCATTGCCCTCAACACAGTGGAGCGAATTCCTTTGGAAAACCTGCAGATCATCAGAGGAAATATGTACT
ACGAAAATTCCTATGCCTTAGCAGTCTTATCTAACTATGA
QUAL
>RWBG8:4:5
23 16 31 29 30 26 31 31 32 25 32 33 33 29 32 32 31 29 29 29 33 29 31 31 33 31
30 22 29 20 26 18 24 26 12 26 19 25 28 29 13 29 24 32 32 30 30 30 34 33 33 32
33 33 33 33 33 33 29 33 33 25 31 31 29 29 24 24 24 24 24 24 29 29 31 31 18 29
25 29 21 25 25 13 13 15 19 26 22 26 27 28 29 25 31 28 33 29 33 33 33 33 33 29
33 33 34 34 30 30

Como o fasta um formato de texto, possvel utilizar ferramentas padro do unix para manipul-lo.
Para contar o nmero de sequncias em um arquivo fasta, usa-se o seguinte comando:
grep -c "^>" <arquivo.fasta>
Para contar o nmero de bases no arquivo pode-se utilizar este outro comando:
grep -v "^[>;]" <arquivo.fasta> | wc -c

2.1.2

FastQ format

O formato fasta/qual foi amplamente utilizado para representar sequncias geradas por sequenciadores
de Sanger. Porm com o aumento da capacidade dos sequenciadores os arquivos neste formato passaram
a ficar muito pesados. Uma maneira de reduzir o volume de dados foi a criao do formato fastQ. Neste
formato as bases e os valores de qualidade so representados no mesmo arquivo. Alm disso as qualidades
so codificadas com caracteres ASCII ao invs de uma sequncia de nmeros. Essa codificao mais
eficiente porque cada valor de qualidade precisa em geral de 3 bytes, dois digitos do valor mais o espao,
enquanto que no fastQ cada qualidade precisa de somente 1 byte. Abaixo temos um exemplo de arquivo
fastQ:
17

@SEQ_ID
GATTTGGGGTTCAAAGCAGTATCGATCAAATAGTAAATCCATTTGTTCAACTCACAGTTT
+
!*((((***+))%%%++)(%%%%).1***-+*))**55CCF>>>>>>CCCCCCC65
Nesse formato, o cabealho definido pelo caracter @, e seguido pelo identificador da sequncia. Na
linha seguinte tem-se a sequncia e, ao contrrio do formato fasta, que manda quebrar a sequncia em
diversas linhas, no fastQ deve-se ter somente uma linha (mas muitas vezes essa regra no respeitada).
Na linha seguinte tem-se o caracter + que pode ser seguido pelo identificador da sequncia novamente, e
na ltima linha tem-se os valores de qualidade representados em ASCII.
Para converter o valor de qualidade phred para fastQ adiciona-se 33 a ele e procura-se o caracter
ASCII correspondente. Este o padro definido pelo Sanger Institute e mais utilizado atualmente.
Porm as primeiras verses da pipeline de anlise da Illumina definem o valor de qualidade como phred
mais 64, o que pode causar problemas para quem estiver manipulando esses arquivos. A partir da verso
1.8 da pipeline de anlises a Illumina tambm passou a adotar o padro do Sanger.
Para converter de fastQ para fasta pode-se utiliar o programa seqtk que vem junto com o samtools:
seqtk fq2fa in.fastq > out.fasta

2.2

SFF File

O Standard Flow Format[24], ou SFF, um arquivo binrio que foi desenvolvido em conjunto pela
454 Life Science, o Whitehead Institute e pelo Sanger Institute para representar sequncias geradas
por um sequenciador baseado em fluxos como o 454 ou o Ion Torrent. Nesse arquivo a sequncia
representada em termos de fluxos, ou seja, as bases e o tamanho normalizado do sinal detectado. Por
exemplo, a sequncia AATGG representada com o equivalente a A3 T1 G2, mas, como a relao
entre o sinal e o tamanho do homopolmero no totalmente exata, o comprimento dos homopolmeros
representado por nmeros fracionados. Assim, o exemplo anterior pode ser algo como: A2.9 T1.1
G1.5. Tal informao perdida devido aos arredondamentos executados quando se converte de SFF
para fasta, mas um programa que trabalhe diretamente com SFF pode utilizar essa informao para
resolver ambiguidades. Essa informao em termos de intensidade de sinal para cada fluxo tambm
chamada de flow space em oposio sequncia pura que est em base space.
O arquivo SFF contm um cabealho com informaes da corrida, assim como um cabealho por
read. Alm de informar o nome de cada read e o tamanho, esse cabealho contm as informaes de
clipping de adaptador e clipping de qualidade. Tendo o arquivo SFF, possvel extrair as sequncias
sem o clipping, o que pode ser til para algumas aplicaes.

2.2.1

Converter arquivo SFF para Fasta ou FastQ

Muitos programas no lidam diretamente com arquivos SFF, por isso necessrio fazer a converso para
formatos mais antigos, como fasta ou fastQ2 . Na tabela 2.3 est a lista de alguns conversores de SFF
gratuitos.
Nome
sff_extract
sff2fastq
Flower

Linguagem
Python
C
Haskell

URL
http://bioinf.comav.upv.es/sff_extract/
https://github.com/indraniel/sff2fastq
http://biohaskell.org/

Tabela 2.3: Conversores de SFF


O conversor mais fcil de utilizar o sff_extract, pois ele somente um script em python. Porm,
ele o conversor mais lento. O sff2fastq o mais rpido, porm menos flexvel, pois s gera arquivo
no formato fastQ. Por fim, o Flower rpido e flexvel, mas necessita ter a linguagem de programao
Haskell instalada no sistema.
2 O Torrent Browser fornece o resultado da corrida no formato BAM, mas ele tambm gera as sequncias nos formatos
SFF e fastQ por meio de plugins.

18

Converter utilizando o sff_extract


Para utilzar o sff_extract voc precisa baixar o script. O nome do arquivo ser sff_extract_<verso>.
Renomeie para sff_extract e torne o arquivo executvel com o comando chmod +x sff_extract. Para
converter de SFF para fasta/qual utilize o seguinte comando:
sff_extract -o <prefixo> <entrada.sff>
Onde <prefixo> o nome dos arquivos .fasta e .qual que vo ser gerados e <entrada.sff> o
nome do arquivo sff que se deseja converter. Este comando vai gerar trs arquivos:
<prefixo>.fasta Com as sequncias em formato fasta
<prefixo>.fasta.qual Com os valores de qualidade em formato phred
<prefixo>.xml Arquivo XML com as informaes extras de cada read, em especial, as informaes
de clipping de cada read.
Abaixo temos um exemplo de um registro em um arquivo XML gerado:
<?xml version="1.0"?>
<trace_volume>
<trace>
<trace_name>RWBG8:4:5</trace_name>
<clip_quality_right>149</clip_quality_right>
<clip_vector_left>5</clip_vector_left>
<clip_vector_right>114</clip_vector_right>
</trace>
...
</trace_volume>
Todos os valores de clipping so indexados a partir de 1. Para encontrar a primeira base no trimada,
utiliza-se a seguinte expresso:
f irst_base_position = max(1, clip_quality_lef t, clip_adapter_lef t)

(2.2)

E para achar a ltima base no clipada utiliza-se (caso os clip_adapter_right ou clip_quality_right


sejam 0, o valor substitudo pelo nmero total de bases no read):
last_base_position = min(clip_quality_right, clip_adapter_right)

(2.3)

Portanto, o read no exemplo acima possui bases no clipadas entre as posies 5 e 114. Toda essa
informao de clipagem indicada por soft clipping, ou seja, as bases do adaptador e as de baixa
qualidade so indicadas em minsculas. Para fezer o hard clipping e gerar um arquivo fasta limpo,
utilize o seguinte comando:
sff_extract -c -o <prefixo> <entrada.sff>
Neste caso, sero gerados os mesmos arquivos, porm o arquivo XML no ter as informaes de
clipping porque o clipping j foi feito nos arquivos fasta e qual.
Para gerar o arquivo em formato FastQ, utilize:
sff_extract -Q -o <prefixo> <entrada.sff>
ou
sff_extract -c -Q -o <prefixo> <entrada.sff>
Esse comando vai gerar o arquivo <prefixo>.fastq e <prefixo>.xml, e da mesma forma que no
exemplo anterior, se for adicionada a opo -c, o resultado ser com hard clipping.
19

Utilizando o seq_crumbs
O sff_extract foi suplantado pelo pacote seq_crumbs. Diferentemente do programa anterior, o seq_crumbs
foi concebido em mdulos, que podem ser combinados de maneira muito mais verstil. Alm disso, ele
utiliza a biblioteca biopython. Para baixar o programa, utilize esse endereo:
https://github.com/JoseBlanca/seq_crumbs
J o biopython est disponvel em:
http://biopython.org/wiki/Download
Para fazer a converso de SFF para fastQ utiliza-se:
sff_exrtract -c -o <output> <entrada.sff>
Note que a verso do seq_crumbs s gera arquivos em formato fastq, no tendo mais a opo de
gerar fasta/qual. Como no programa anterior, a opo -c pede para o programa fazer o trimming das
sequncias.
Para fazer a converso de arquivos SFF de mate-pair vemos uma diferena muito maior, pois temos
que combinar o programa sff_extract com o programa split_matepairs:
sff_extract <entrada.sff> |
split_matepairs -l ION_TORRENT
A combinao desses dois comandos equivalente ao sff_extract -l. Mas o seq_crumbs oferece
mais opes de manipulao de arquivos. possvel tambm gerar dois arquivos de mates desentrelaados, ou seja, um arquivo com a primeira tag e outro com a segunda. Para isso utilize:
sff_extract <entrada.sff> |
split_matepairs -l ION_TORRENT |
pair_matcher -p <orphan.fastq> |
deinterleave_pairs -o <out.1.fastq> <out.2.fastq>
O comando pair_matcher remove as tags que esto sem os seus respectivos pares e coloca no
arquivo <orpha.fastq>, j o deinterleave_pairs separa os pares nos arquivos <out.1.fastq> e
<out.2.fastq>.
Utilizando o Flower
O Flower um utilitrio para ler arquivos SFF feito na linguagem de programao Haskell. Por ser
uma linguagem compilada ele muito mais do que o sff_extract, que foi escrito em Python. Duas
desvantagens que o runtime do Haskell menos ubquo do que do Python e ele no gera o arquivo
XML com as informaes de clipagem necessrias para o Mira (ver 6.1).
Tendo instalado o Haskell, muito fcil instalar o Flower. Basta utilizar o programa Cabal da seguinte
maneira:
cabal install biosff
Para converter um arquivo SFF para fastQ, utiliza-se:
flower -q <entrada.sff> > saida.fastq
Alm de converter o SFF, o flower tambm permite inspecionar o arquivo. Para visualizar o SFF em
formato texto, use:
flower entrada.sff | more
Por fim, o flower gera uma visualizao do flow space em um formato tabulado muito til. Para
gera-la:
flower -F <entrada.sff>
Segue um exemplo de resultado:
20

...
RWBG8:9:36
RWBG8:9:36
RWBG8:9:36
RWBG8:9:36

RWBG8:9:36
RWBG8:9:36
RWBG8:9:36
RWBG8:9:36
...

81
82
83
84

T
C
G
A

85
86
87
88

T
C
G
A

1.05 Qual {unQual = 34}


1.03 Qual {unQual = 27}
0.00
5.72 Qual {unQual = 27},Qual
Qual
Qual
1.93 Qual {unQual = 27},Qual
0.97 Qual {unQual = 26}
0.00
0.00

{unQual
{unQual
{unQual
{unQual

=
=
=
=

27},
27},Qual {unQual = 27},
27},Qual {unQual = 7}
21}

Note que mesmo os fluxos que no tiveram sinal so registrados no arquivo SFF e tambm que,
para os homopolmeros, temos uma estimativa de qualidade para cada uma das bases (quebra de linha
adicionada para facilitar a visualizao).

2.3

Unmapped BAM

O formato BAM, discutido na seo sobre mapeamento (seo 3.1.2), um formato criado para representar o mapeamento dos reads de NGS em um genoma de referncia. Ele um formato binrio,
compactado, indexvel e amplamento suportado que pode representar tanto reads mapeados como reads
no mapeados. Os campos opcionais do formato BAM permite grande flexibilidade. possvel adicionar
as informaes de flow space do Ion e do 454 ou o color space do SOLiD direto no arquivo BAM, fazendo
dele uma alternativa para os formatos nativos.
Para converter de Unmapped BAM para fastQ, pode-se utizar o comando SamToFastq do Picard
(ver seo 3.1.4) da sequinte maneira:
java -jar SamToFastq.jar

2.4

I=<input.bam> FASTQ=<out.fastq>

XSQ Format

O XSQ o formato nativo do SOLiD 5500. Ele um formato binrio que diminiu em at 60% o nmero
de bytes necessrios para representar o conjunto de sequncias no formato fasta/qual. Ele utiliza como
base o HDF5, que um formato criado para armazenar grandes volumes de dados numricos.
Esse formato permite representar os reads tanto em base quanto em color space assim como reads
nicos e pareados. Sendo um formato binrio, ele tambm permite o acesso aleatrio dos reads contidos
nele. Por fim, possvel adicionar metadados sobre a corrida no prprio arquivo de sequncia, facilitando
o armazenamento e a organizao dos dados.
As ferramentas de converso de XSQ para csfasta e vice-versa, assim como a documentao do
formato, esto disponveis em:
http://www.lifetechnologies.com/us/en/home/technical-resources/software-downloads/xsq-software.
html
Porm, esses conversores s esto disponveis para Linux CentOS ou RedHat 4 ou 5. Para converter
de XSQ para csfasta utiliza-se:
./convertFromXSQ.sh -f -o <diretorio de sida>

<in.xsq>

Ser criado um diretrio Libraries dentro do <diretrio de sada>. Dentro de Libraries, ser
criado um diretrio para cada tag F3, R3, etc e dentro deste um diretrio reads com os arquivos
csfasta, qual e fastq (caso o sequenciamento tenha sido feito com ECC). A opo -f pede para o programa
filtrar os reads marcados como filtrados pelo basecaller e portanto altamente recomendvel.
Tambm possvel converter de csfasta/qual para XSQ com o comando convertToXSQ.sh. Dependendo do tipo de biblioteca, preciso passar diferentes argumentos. Para biblioteca de fragmentos
utiliza-se:
21

./convertToXSQ.sh

-x <out.xsq> --mode Fragment


--c1 <F3.csfasta> --q1 <F3.QV.qual>
--libraryName <libname> --runStartTime "0000-00-00 00:00:00"

E para biblioteca de Long Mate Pair:


./convertToXSQ.sh

-x <out.xsq> --mode LMP


--c1 <F3.csfasta> --q1 <F3.QV.qual>
--c2 <R3.csfasta> --q2 <R3.QV.qual>
--libraryName <libname> --runStartTime "0000-00-00 00:00:00"
--libraryInsertSizeMinimum <inserto min.>
--libraryInsertSizeMaximum <inserto mx.>

Nesse caso temos que informar, alm dos campos do arquivo utilizados no caso da biblioteca de
fragmentos, o arquivos do de sequncia e qualidade do mate e, o tamanho mnimo do e mximo do
inserto.

22

Captulo 3

Mapeamento de Sequncias
Aps um experimento de NGS quase sempre necessrio fazer o mapeamento das leituras geradas em
um genoma de referncia. O primeiro programa para fazer esse mapeamento foi o BLAT1 , criado por
Jim Kenth para mapear leituras com alta similaridade contra um genoma de referncia. Porm, o BLAT
no consegue alinhar regies com menos de 40bp e tambm no tem performance suficiente para alinhar
os milhes de reads gerados por NGS. Os primeiros mapeadores open source otimizados para NGS foram
o MAQ[17] e o SOAP[19], ambos mapeadores que utilizam hash tables para acelerar a busca, com a
diferena que o MAQ indexa os reads enquanto o SOAP indexa o genoma de referncia. Com o aumento
do throughput, dos sequenciadores a abordagem de indexar os reads se tornou invivel e por isso os
mapeadores mais recentes indexam a referncia.
O problema do uso de hash table o uso de memria. Alguns mapeadores, como o mapreads
do SOLiD, podem dividir a hash em partes e fazer o mapeamento em etapas de forma a permitir o
mapeamento de grandes genomas mesmo com pouca memria. Alternativamente, possvel utilizar
um FM-Index, que indexa o genoma de referncia compactado pela Burrows-Wheeler[33, 6] e entre os
programas que implementam esta tcnica esto o BWA[15, 16],bowtie[11] e o SOAPv2[20].
Para aumentar a eficincia os algoritmos citados diminuem a sensibilidade, limitando o nmero de
mismatches permitidos. Como os reads de NGS normalmente possuem uma qualidade maior no incio
do read, utiliza-se uma estratgia de seed and extend: na primeira fase pega-se o incio do read, entre 25
e 30 bases, e faz-se a busca permitindo poucos erros como 2 por exemplo. Encontrada uma posio de
ancoramento do read feita a extenso do alinhamento de modo a maximizar o score de alinhamento2 .
Na seo seguinte explorado o format SAM/BAM, que o formato universal para representar
alinhamentos de NGS e nas prximas sees ser mostrado como utilizar alguns mapeadores.

3.1

SAM e BAM Files

O formato SAM, Sequence Alignment/Mapping, um formato texto criado para representar o resultado
do alinhamento dos reads de NGS contra um genoma de referncia[8, 18]. A verso binria no SAM
chamado de BAM, de Binary SAM, e contm exatamente as mesmas informaes, mas em formato
binrio. Alm do formato binrio ser mais eficiente, o arquivo BAM tambm compactado em blocos,
o que permite ao mesmo tempo a reduo do uso de armazemento e o carregamento parcial do arquivo,
o que muito importante para programas de visualizao.

3.1.1

Estrutura do arquivo SAM

As primeiras linhas do arquivo SAM so o cabealho. Estas linhas comeam com o caracter @ seguido
por um cdigo de 2 caracteres que identificam o tipo de informao contina na linha. A lista de cdigos
est na tabela 3.1. Depois do cabealho temos os alinhamentos propriamente ditos, um por linha, com
campos separados por TABs. Na tabela 3.2 est a lista campos de cada alinhamento.
1 O BLAST e o FASTA so programas mais antigos, mas o objetivo deles fazer buscas em bancos de sequencias e no
especificamente mapear reads em um genoma montado.
2 O BWA-long utiliza uma abordagem um pouco diferente. Em vez de fazer o seed and extend, ele realiza um alinhamento
Smith-Waterman contra o ndice BWT do genoma

23

Cdigo
@HD
@SQ
@RG

@PG
@CO

Descrio
Identifica o incio do arquivo SAM e a verso dele.
Identifica dada uma das sequncias no arquivo de
referncia
Read group: identifica conjuntos de reads dentro do
arquivo. Esse registro muito importante quando
so combinados os resultados mltiplas corridas em
um nico arquivo.
Lista de programas utilizados no arquivo.
Comentrios
Tabela 3.1: Headers do arquivo SAM

Col.
1
2
3
4
5
6
7
8
9
10
11
12

Nome
QNAME
FLAG
RNAME
POS
MAPQ
CIGAR
RNEXT
PNEXT
TLEN
SEQ
QUAL
FIELDs

Descrio
Nome do read
Bits indicando diversas informaes sobre o alinhamento
Nome da sequncia na referncia
Posio mais esquerda do read que se alinha na referncia
Qualidade do Mapeamento
CIGAR string
Referncia do prximo read no par/segmento
Posio do prximo read no par/segmento
Tamanho do template observado
Sequncia do read
Qualidade do read codificada utilizando a conveno do fastQ do Sanger
Campos opcionais
Tabela 3.2: Alinhamento no arquivo SAM

Abaixo segue uma descrio mais detalha de cada um dos campos:


1. QNAME: Nome do read ou * para indicar que a informao no est disponvel.
2. FLAG: Bits descrevendo algumas propriedades do alinhamento. o layout dos bits esta abaixo e o
significado de cada bit est na tabela 3.3.
0

U UM R RM F

10

11

12

13

14

15

Por exemplo, um read corretamente mapeado vai ter um valor de flag 2, mas se ele mapear na
fita oposta a flag vai ser 2 + 16 = 18. Caso o read seja o primeiro de um par a flag vai ser
1 + 2 + 16 + 64 = 83.
3. RNAME: Nome da sequncia de referncia ou um nmero indicando qual o registro @SQ do header
com a correspondente sequncia. Um read no mapeado tem o valor * neste campo.
4. POS: Posio mais esquerda do alinhamento do read com a referncia (valores comeando em
1). Se o valor for 0, o read no est alinhado.
5. MAPQ: Qualidade do mapeamento. Este valor representado como um inteiro com interpretao
similar ao ndice phred de qualidade, ou seja, P = 10 log10 Q, onde Q a probabilidade do read
estar mapeado de maneira errada.
6. CIGAR: Sequncia de caracteres que descrevem como o read est mapeado na referncia. O
significado de cada caracter o seguinte:
24

Sim.
M
A
U
UM
R
RM

valor
1
2
4
8
16
32

F
L
S

64
128
256

Q
D

512
1024

Descrio
Template com mltiplos segmentos, ou seja, mate-pair ou pairend3 .
Cada segmento est corretamente alinhado.
Segmento no mapeado.
Prximo segmento no mapeado.
O campo SEQ o reverso complementar do read.
O campo SEQ do prximo segmento o reverso complementar do
read.
Esse segmento o primeiro do template.
Esse segmento o ltimo do template.
Alinhamento secundrio. Essa flag indica que existe outro alinhamento desse read que considerado o primrio pelo mapeador.
Esse alinhamento no passou pelo controle de qualidade.
Esse read foi considerado uma duplicata de PCR ou tica.

Tabela 3.3: Significado e valor de cada flag do format SAM.


M
I
D
N
S
H
P
=
X

Alignment Match (pode ser um match ou um mismatch)


Insero na referncia
Deleo na referncia
Intron (este caracter s utilizado para representar mRNAs)
Soft clipping (corta uma base presente em SEQ)
Hard clipping (corta uma base no presente em SEQ)
Padding (deleo em uma padded reference)
Sequence Match
Sequence Mismatch

7. RNEXT: Sequncia na referncia do prximo segmento. Se RNEXT for * ento esta informao
no est presente e se for = RNEXT tem o mesmo valor e RNAME.
8. PNEXT: Posio do prximo segmento, 0 caso esta informao no esteja disponvel.
9. TLEN: Tamanho do inserto entre os segmentos. O segmento esquerda tem sinal positivo e o
segmento direita tem sinal negativo, o valor 0 indica que essa informao no est presente.
10. SEQ: Sequncia do segmento. Pode ser * se o valor no tiver sido armazenado. Um = denota
uma base idntica da referncia.
11. QUAL: Qualidade das bases de SEQ em formato Sanger FastQ.
Aps os campos obrigatrios, pode haver campos opcionais. Esses campos tm o formato
T AG : T Y P E : V ALU E
, onde tag uma sequncia de 2 caracteres que inidcam o campo, TYPE indica o tipo de dado e VALUE
o valor do campo, para a documentao completa veja a especificao do formato SAM[8].
Na figura 3.1 vemos alguns alinhamentos e as entradas equivalentes em formato SAM. O primeiro
read, r001, tem as seguintes flags 163(= 1 + 2 + 32 + 128) = A + M + RM + L, portanto est corretamente
mapeado (A), o segundo membro de um par (M +L) e o seu par mapeia na posio 37 na fita oposta (flag
RM ). O read r002 posui trs soft-clipped bases, a coordenada mostrada no arquivo SAM da primeira
base alinhada. A string CIGAR deste alinhamento contm um P (padding) que corretamente alinha a
sequncia inserida. A informao de padding pode ser omitida se o alinhador no suportar alinhamento
mltiplo de sequncias. As ltimas 6 bases do read r003 mapeiam na posio 9, e as 5 primeiras mapeiam
na posio 29 da fita reversa. O hard clipping (H) indica bases que no esto presentes na referncia. A
tag opcional NM indica o nmero de mismatches no alinhamento. O read r004 alinha sobre um intron,
fato indicado pelo caracter N.
25

Figura 3.1: Exemplos de alinhamentos e os respectivos registros em formato SAM[18].

3.1.2

BAM File

O arquivo BAM tem exatamente a mesma estrutura do arquivo SAM, porm as informaes esto
codificadas em formato binrio para economizar espao em disco e na memria. Alm disso, o formato
BAM possui uma compactao em blocos chamada BGZF, que permite o acesso aleatrio ao arquivo
mesmo ele estando compactado. Por ter esssa estrutura de blocos, o arquivo BAM pode ser carregado
parcialmente, o que permite a visualizao de arquivos BAM muito grandes, sem exceder a capacidade
da memria RAM. Para fazer esse carregamento, o visualizador utiliza um arquivo auxiliar que indexa
os blocos do arquivo BAM em relao s coordenadas genmicas. Esse arquivo tem o mesmo nome do
arquivo BAM, mas com a extenso .bai, de BAM index. Ele tambm tem que estar no mesmo diretrio
que o arquivo BAM.

3.1.3

Samtools

Junto com o formato SAM/BAM foi criada a ferramenta samtools para manipular esses arquivos. Ele
est disponvel no site:http://samtools.sourceforge.net/. Para baixar o cdigo fonte do programa,
v para a URL:
http://sourceforge.net/projects/samtools/files/samtools/0.1.18/
Aps baixar o cdigo fonte compile, com o comando make, ser gerado um executvel chamado
samtools o qual voc pode copiar para o diretrio que quiser, como por exemplo /usr/local. A
estrutura geral de execuo do samtools est abaixo, command um dos comandos reconhecidos pelo
samtools e <arg>* so as opes para cada um dos comandos.
samtools <command> <arg>*
A seguir, uma lista de receitas teis para manipular arquivos SAM/BAM:
Converter entre SAM e BAM: Para fazer a converso entre a verso binria e texto utiliza-se
o comando view:
BAM para SAM: samtools view <input.bam> > <output.sam>
SAM para BAM: samtools view -S -b <input.sam> > <output.bam>
Visualizar o header de um arquivo BAM: Para extrair somente o header de um arquivo
BAM, use:
samtols view -H <arquivo.bam>
Ordenar e indexar um arquivo BAM: Para visualizar e tambm para realizar diversas anlises
preciso ordenar os alinhamentos de acordo com a posio genmica. Para isso utiliza-se o seguinte
comando:
26

samtools sort <arquivo.bam> <novo.nome>


Onde <novo.nome> o prefixo do nome do novo arquivo que vai ser gerado com os reads ordenados.
Esse nome no pode ser o mesmo do arquivo original e no precisa colocar a extenso .bam.
Ela adicionada automaticamente, e se voc coloc-la no final vai ter um arquivo com extenso
.bam.bam, o que no muito elegante. Caso o arquivo bam no caiba na memria disponvel
(que controlada pela opo -m), ser gerado um arquivo temporrio com o <novo.nome>.X.bam.
No final do processo esses arquivos vo ser combinados e um arquivo chamado <nome.nome>.bam
gerado. O valor default de -m 500000000 (500Mb). Se o computador tiver mais memria
disponvel e o arquivo BAM for bastante grande, interessante aumentar esse valor de forma a
agilizar o processo de ordenao do arquivo bam. Portanto, em um computador com 8Gb de RAM
pode-se utilizar algo como:
samtools sort -m 4000000000 <arquivo.bam> <novo.nome>
Por fim, para indexar o arquivo ordenado, utiliza-se
samtools index <novo.nome.bam>
Que vai gerar o arquivo <novo.nome.bai.
Existe um problema no samtools, o comando sort no altera a tag SO, que indica se o arquivo est
ordenado ou no. Desse modo se o arquivo original tiver SO:unsorted, o arquivo gerado ordena
tambm vai conter SO:unsorted. Alguns programas esto conscientes desse problemas e lidam
com ele, porm caso seja necessrio corrigir essa tag preciso utilizar o comando reheader do
samtools (veja detalhes sobre esse comando mais abaixo).
Gerar um relatrio sobre o mapeamento:
Para conseguir um relatrio dos reads mapeados em arquivo BAM, utiliza-se o comando flagstat
da seguinte maneira:
samtools flagstat <input.bam>
Se for aplicado em um BAM file gerado pelo PGM vai gerar um resultado como este:
99525
0 + 0
81284
0 + 0
0 + 0
0 + 0
0 + 0
0 + 0
0 + 0
0 + 0
0 + 0

+ 0 in total (QC-passed reads + QC-failed reads)


duplicates
+ 0 mapped (81.67%:-nan%)
paired in sequencing
read1
read2
properly paired (-nan%:-nan%)
with itself and mate mapped
singletons (-nan%:-nan%)
with mate mapped to a different chr
with mate mapped to a different chr (mapQ>=5)

Os valores so classificados como QC-passed reads e QC-failed reads de acordo com o valor da flag
Q(512) do campo FLAGS. Todos os valores esto divididos nessas duas categorias. Esse exemplo
no tem nenhum read marcado com QC-failed e portanto os valores no segundo grupo so todos
zero. A maioria dos valores nesse relatrio diz respeito a bibliotecas de reads pareados, e como
essa era uma biblioteca de fragmentos, ento o valor mais importante o nmero e porcentagem
de reads mapeados, no caso 81.284, 81,67% do total de 99.525 reads. Abaixo vemos o resultado do
flagstat em um arquivo de reads mate-pair do SOLiD:
27

844482954 + 0 in total (QC-passed reads + QC-failed reads)


225681606 + 0 duplicates
688865129 + 0 mapped (81.57%:nan%)
844482954 + 0 paired in sequencing
422241477 + 0 read1
422241477 + 0 read2
345539940 + 0 properly paired (40.92%:nan%)
533247304 + 0 with itself and mate mapped
155617825 + 0 singletons (18.43%:nan%)
178287164 + 0 with mate mapped to a different chr
90834280 + 0 with mate mapped to a different chr (mapQ>=5)
Combinar diversos arquivos BAM em um novo arquivo: Para combinar diversos arquivos
bam em um novo arquivo utiliza-se:
samtools merge <out.bam> <input1.bam> <input2.bam> ...
Porm, essa opo vai simplesmente copiar o header do arquivo <input1.bam> e combinar os
alinhamentos de todos os arquivos, mas isso pode fazer com que as tags @SQ, @RG e @PG fiquem
inconsistentes entre o header e os alinhamentos. Por isso, necessrio criar um novo header, com
as informaes corretas, e utilizar o comando:
samtools merge -rh <novo.header.txt> <out.bam>
<input1.bam> <input2.bam> ...
Onde <novo.header.txt> o header gerado pelo usurio. Alternativamente, o usurio pode
utilizar o comando MergeSamFiles do pacote Picard (seo 3.1.4), que atualiza o header ao fazer
o merge.
Substituir o header de um arquivo BAM: Para substituir o header de um arquivo BAM, crie
um novo header em um arquivo texto e utilize o seguinte comando:
samtools reheader <novo.header.txt> <arquivo.bam> > <novo.arquivo.bam>
Por exemplo, se quiser modificar a tag SO de unsorted para coordinate, utilize os seguintes
comandos:
samtools view -H <arquivo.bam> |
sed s/SO:unsorted/SO:coordinate/ > header.txt
samtools rehader header.txt <arquivo.bam> > <fixed.bam>

3.1.4

Picard

Picard um conjunto de programas para manipular arquivos SAM/BAM escritos em Java e um


excelente complemento ao samtools. A pgina do projeto http://picard.sourceforge.net/ e um
arquivo .tar.gz, com os pacotes jar j compilados pode ser baixado em:
http://sourceforge.net/projects/picard/files/picard-tools/1.67/
O pacote est estruturado como uma srie de arquivos jar, sendo que cada jar um comando. A
estrutura geral para executar um comando a seguinte:
java -jar <path de instalao>/<comando>.jar <args*>
Cada ferramenta tem um conjunto prprio de argumentos, porm, alguns argumentos que so comuns
todas as ferramentas podem ser visualizados na tabela 3.4. Abaixo temos alguns comandos teis do
Picard, neles o path de instalao est omitido para deixar mais limpa a linha de comando.
28

Argumento
MAX_RECORD_IN_RAM

TMP_DIR
CREATE_INDEX

Descrio
Nmero mximo de registros serem mantidos na
memria. Aumentando esse valor reduze-se o nmero de operaes intermedirias de disco. Default:
500.000
Diretrio temporrio
Cria arquivo de ndice .bai.

Tabela 3.4: Argumentos comuns a todos os comandos do Picard.


1. Ordenar um arquivo BAM: O Picard possui um comando similar ao samtools sort, que o
SortSam.jar:
java -jar SortSam.jar
I=<entrada.bam> O=<sorted.bam>
SO=coordinate
CREATE_INDEX=true
A grande vantagem do SortSam.jar em relao ao samtools sort que esse comando atualiza
de maneira apropriada o header do arquivo, trocando a tag SO para coordinate. Para ordenar
arquivos muito grandes interessante aumentar o valor de MAX_RECORD_IN_RAM. Em uma mquina
com uma boa quantidade de RAM pode-se aumentar esse valor em 10, como por exemplo:
java -jar SortSam.jar
I=<entrada.bam> O=<sorted.bam>
SO=coordinate
CREATE_INDEX=true
MAX_RECORD_IN_RAM=5000000
2. Fazer o merge de diversos arquivos BAM: O Picard tambm possui uma alternativa ao
comando samtools merge
java -jar MergeSamFiles.jar
O=<resultado.bam> I=<input1.bam> I=<input2.bam>...
MSD=true
AS=true USE_THREADING=true CREATE_INDEX=true
Assim com o SortSam.jar, o MergeSamFiles.jar trata melhor o header do arquivo gerado do que o
comando equivalente do samtools. Por default ele gera corretamente as tags @RG e @PG no header,
e com a opo MERGE_SEQUENCE_DICTIONARIES, ele tambm gera as tags @SQ corretas. A opo
AS significa Assume Sorted e existe para lidar com o fato do samtools no atualizar o header do
arquivo gerado, e portanto indicar como unsorted um arquivo ordenado. A opo USE_THREADING
faz com que o programa utilize duas threads 4 .
Quando se deseja combinar diversos arquivos BAM juntos, um pouco tedioso colocar uma argumento I=<file.bam> para cada arquivo. possvel combinar o MergeSamFiles com o comando
find do unix para combinar todos os arquivos BAM em um mesmo diretrio.
java -jar /share/apps/picard/MergeSamFiles.jar
O=<out.bam>
USE_THREADING=true MSD=true
find -name \*.bam -printf "I=%p\n"
4 Linhas de execuo do programa. Em um sistema com mais de um processador/core essa opo aumenta a performance
do programa, podendo reduzir o tempo de processamento em 20%

29

3. Identificar Read Duplicados:


Durante o preparo de biblioteca pode ocorrer a duplicao de um fragmento, o que causa um vis
artificial da regio que originou o fragmento. Por isso, recomendado que reads suspeitos de serem
duplicatas sejam marcados e ignorados nas anlises subsequentes. O MarkDuplicates.jar procura
reads nos quais as posies mais 5 do alinhamento e a orientao sejam iguais. O read com a
melhor qualidade no alterado e todos os outros so marcados como duplicados. Para bibliotecas
de mate-pair e pair-end ocorre o mesmo, porm as cordenadas e a orientao dos dois pares de reads
devem coincidir[9]. Uma vantagem do MarkDuplicates.jar que ele consegue encontrar duplicatas
mesmo se os reads do par no mapearem no mesmo cromossomo.
Para executar o comando utilize:
java -jar MarkDuplicates.jar I=<input.bam>
O=<input.dups.bam>
M=<input.dups_report.txt> AS=true
CREATE_INDEX=true

3.2

Mapeando os reads com o TMAP

O Ion Torrent possui um mapeador otimizado para o padro de erros dos dados gerados pelo sequenciador. Chamado de TMAP, ele foi criado por Nils Homer. O TMAP otimizado para os reads de
tamanho varivel e tambm para lidar com erros de homopolmeros gerados pelo Ion Torrent. Para isso,
ele implementa quatro algoritmos de mapeamento que podem ser utilizados individualmente ou combinados. A lista de algoritmos est na tabela 3.5. Na figura 3.2 temos uma comparao da sensitividade
(porcentagem de reads mepados) dos algoritmos do TMAP para o dataset de E. Coli O104H45 . Por
comparao foi tambm colocada a performance bowtie2 e vemos que este tem uma performance um
pouco superior ao map1, porm inferior a todos os outros algoritmos (pelo menos para esse dataset).
V-se que o desempenho de map3 e map4 foi bem superior aos outros dois algoritmos, o que gera o
questionamento do porqu deles terem sido includos. Na figura 3.3, temos os tempos de processamento
dos mesmos dados da figura anterior. Podemos notar que o map1, apesar de menos eficiente em relao
porcentagem de reads mapeados, mais rpido do que map3 e map4.
Para equilibrar sensitividade e performance, temos o comando mapall. Ele aplica cada algoritmo de
mapeamento em estgios definidos pelo usurio. Dessa forma somente os reads que no mapearem em
um estgio so passados para o estgio seguinte. Portanto, uma abordagem eficinte colocar o map1
no primeiro estgio, para fazer rapidamente o mapeamento dos reads fceis, e em seguida usar o map3
e o map4 para mapear o resto dos reads.
O cdigo fonte do TMAP est disponvel no site github:
https://github.com/iontorrent/TMAP
Para ter uma melhor performance o TMAP pode opcionalmente utilizar o TCMalloc da gperftools
que est disponvel em:
http://code.google.com/p/gperftools/

map1
map2
map3
map4

Algoritmo
BWA Short
BWA Long
SSAHA
SMEM

Referncia
Li and Durbin [15]
Li and Durbin [16]
Ning [25]
Li [14]

Tabela 3.5: Algoritmos do TMAP

3.2.1

Criando o ndice

O primeiro passo para usar o TMAP gerar o ndice do genoma de referncia. Para isso, utiliza-se o
comando index da seguinte forma:
5 Disponvel

na Ion Community

30

80
75
map %

70
65
60

bowtie2

map1

map2

map3

map4

Figura 3.2: Sensitividade dos algortmos do tmap e do bowtie2 (Amostra de E. Coli O104H4)
tmap index -f <referecen.fasta>
Caso haja bases ambguas na referncia, ser mostrada uma mensagem de aviso e as bases ambguas
sero trocadas, dentre as bases possves, pela de menor valor lexicogrfico. Por exemplo, a base Y, que
representa C ou T, ser trocada por C, a base N que representa qualquer base ser trocada por A, e
assim por diante. A indexao do genoma humano pode demorar 4 horas em um computador atual. O
resultado ser diversos arquivos com os ndices.

3.2.2

Mapeando os reads

O comando para aplicar um dos algoritmos :


tmap <mapN> -f <reference> -r <reads>
Onde mapN map1, map2, map3 ou map4, <reference> nome de um arquivo fasta que j tenha
sido indexado e <reads> o arquivo dos reads, que pode estar em formato, fasta, fastQ ou SFF. Como
resultado o tmap gera um arquivo SAM na sada padro. Caso se utilize um arquivo SFF, possvel
propagar a informao dos flows para o aquivo SAM por meio da opo -Y. Tambm possvel utilizar
diversas threads com a opo -n <num threads>.
A opo -o X controla o formato de sada do programa, -o 0 o default e gera uma sada texto em
formato SAM, -o 1 gera um resultado binrio em formato BAM, e por fim -o 2 gera um arquivo BAM
no comprimido, uma opo til se o resultado for tmap vai ser enviado para um outro comando para
mais processamentos, como por exemplo no comando abaixo, que combina o tmap com o samtools sort:
tmap <mapN> -f <reference> -r <reads> -o 2 |
samtools sort -n <memoria> - <output>
Normalmente, os algoritmos individuais no so utilizados, mas sim o comando mapall. Com esse comando voc pode combinar os algoritmos em estgios adicionando argumentos no formato stageM mapX*
que define quais algoritmos sero utilizados em cada estgio. possvel definir diversos estgios de modo
que, se um read no mapear em um determinado estgio, ele passado para o estgio seguinte. Uma
estratgia colocar o map1 no primeiro estgio, porque ele mais rpido, e o map3 e o map4 no segundo
estgio. Para isso, utilizamos o seguinte comando:
31

150
100

map time (s)

50

map1

map2

map3

map4

Figura 3.3: Performance dos algoritmos do tmap (Amostra de E. Coli O104H4)

tmap mapall -f <reference> -r <reads>


stage1 map1 stage2 map3 map4
Tambm possvel controlar as informaes da tag @RG atravs da opo -R. Isso importante porque
outros programas validam essa tag ao abrir o arquivo BAM. E alm disso bom adicionar metadata
sobre a amostra para facilitar a organizao dos arquivos. Algumas tags que podem ser utilizadas so:
ID
Identificador nico do read group
SM cancer
Nome da amostra (sample)
LB hg19
Nome da biblioteca
CN USP
Nome do centro de sequenciamento
PU PGM/318
A utilizao varia entre plataformas. No PGM tem sido usado
para identificar o tipo de chip
utilizado.
PL IONTORRENT Nome da plataforma de sequenciamento (esses valores so tabelados pelo formato SAM)
Combinando todas as informaes apresentadas, uma sugesto para rodar o TMAP a seguinte:
tmap mapall -n <num threads> Y -f <reference> -r <reads.sff>
-R LB:<LB> -R CN:<CN> -R PU:PGM/<chip>
-R ID:<ID> -R SM:<SM> -R PL:IONTORRENT
stage1 map1 stage2 map2 map3 -o 2|
samtools sort - <output>

3.2.3

Exemplo: Mapeando os reads de E. coli com o TMAP

1. Faa o download do arquivo SFF com os reads no site da Ion Community: http://lifetech-it.
hosted.jivesoftware.com/docs/DOC-1518
2. Descompacte o arquivo zip com os reads.
32

3. Faa o download da referncia no site do NCBI:http://www.ncbi.nlm.nih.gov/nuccore/NC_


010473.1 em formato fasta e renomeie o arquivo dh10b.fasta
4. Indexe a referncia: tmap index -f dh10b.fasta
5. Utilize o TMAP para mapear os reads na referncia. Para mapear uma amostra utilize:
tmap mapall -Y -f dh10b.fasta -r 64.sff
-R LB:O104H4 -R CN:uni-munster -R PU:PGM/314
-R ID:64 -R SM:ecoli -R PL:IONTORRENT
stage1 map1 stage2 map2 map3 -o 2 |
samtools sort - 64
Para mapear todas as amostras voc pode utilizar o comando for do bash:
for file in *.sff; do
base=basename $file .sff ;
tmap mapall -Y -f dh10b.fasta -r $file
-R LB:O104H4 -R CN:uni-munster -R PU:PGM/314
-R ID:$base -R SM:ecoli -R PL:IONTORRENT
stage1 map1 stage2 map2 map3 -o 2|
samtools sort - $base ;
done
6. Marque os reads duplicados: utilize o comando MarkDuplicates.jar do picard para identificar os
reads duplicados:
java -jar MarkDuplicates.jar
I=64.bam O=64.dups.bam M=64.dups.txt AS=true
Ou utilize o for para processar todos os arquivos bam:
for file in *.bam; do
base=basename $file .bam ;
java -jar MarkDuplicates.jar
I=$file O=$base.dups.bam M=$base.dups.txt AS=true
done
7. Faa o merge dos arquivos bam utilizando o MergeSamFiles.jar do Picard:
java -jar MergeSamFiles.jar O=O104H4.bam
ls *.dups.bam | sed s/^/I=/
USE_THREADING=TRUE SO=coordinate MSD=true
8. Verifique os parmtros do resultado utilizando o comando flagstat do samtools:
samtools flagstat O104H4.bam

3.2.4

Mapeando dados de Long Mate Pair

O TMAP tambm suporta o mapeamento de reads pareados. A principal diferena quando se utiliza o
mapeamento pareado ao invs do normal que no primeiro caso o mapeador vai fazer o pareamento dos
reads, ou seja, ela vai indicar para cada read a posio do seu respectivo par (colunas RNEXT e PNEXT
do arquivo BAM).
Para fazer o mapeamento preciso primeiro separar as tags do mate-pair utilizando o seq_crumbs
(veja seo 2.2.1). O comando para fazer a extrao :
33

sff_extract <entrada.sff> |
split_matepairs -l ION_TORRENT |
pair_matcher -p <orphan.fastq> |
deinterleave_pairs -o <out.1.fastq> <out.2.fastq>
Para fazer o mapeamento utilze o seguinte comando:
tmap mapall -Q 1 -f <ref.fasta> -r <out.1.fastq> -r <out.2.fastq> -o 2
stage1 map1 stage2 map3 map4 > <out.bam>
importante colocar a opo -Q 1 para indicar que os dados so de mate-pair e colocar a opo -r
duas vezes, uma para cada arquivo dos pares.

3.3

Bowtie

O bowtie[11] um mapeador bastante popular criado para mapear short reads. Ele especialmente
eficiente para reads com 50bp ou menos. O bowtie suporta dados tanto em base quanto color space.
A verso mais nova, bowtie 2[12], suporta alinhamentos com gaps e por isso mais adequado para
reads com 100bp ou mais. Infelizmente ele no suporta mais color-space. Em termos de algoritmo, o
bowtie 2 muito similar ao TMAP, dividindo o mapeamento em uma primeira etapa de alinhamento
sem gaps seguida de uma etapa de alinhamento Smith-Waterman. Diversos softwares utilizam o bowtie
como mapeador, em especial o pipeline de anlise de RNA-Seq Tophat[32] e o pipeline na nuvem de
ressequenciamento Crossbow[13].

3.3.1

Utilizando o Bowtie 2

O bowtie2 est disponvel na seguinte URL:


http://bowtie-bio.sourceforge.net/bowtie2/index.shtml
possvel baixar tanto os binrios para Mac ou Linux quanto o cdigo fonte do programa. Aps
descompactar o pacote, adicione o diretrio do bowtie2 ao path ou faa um link dos binrios contidos
nele para um /usr/local/bin ou outro diretrio que j esteja no path.
O uso do bowtie2 muito similar ao tmap, at porque ambos se baseiam nos mesmos princpios.
Inicialmente, necessrio indexar a referncia utilizando o comando bowtie2-index da seguinte forma:
bowtie2-build -f <ref.fasta> <prefix>
Onde <prefix> o prefixo do nome dos arquivos de ndice que vo ser gerados. Esse nome vai ser
depois utilizado para referenciar os ndices. Para mapear um arquivo fastq utiliza-se:
bowtie2 -p <threads> <prefix> <reads.fastq>
Onde <threads> o nmero de threads a utilizar, <prefix> o prefixo usado na criao do ndice
e <reads.fastq> o arquivo com os reads mapear. Diferentemente do TMAP, o bowtie2 s suporta
reads em formato fasta ou fastq, no em SFF. Para gerar diretamente os alinhamentos em formato BAM,
combina-se o bowtie com o samtools:
bowtie2 -p <threads> <prefix> <reads.fastq>
| samtools view -Sbh | samtools sort -m <memory> - <output>
Onde <memory> a quantidade de memria utilizada na ordenao dos reads e <output> o nome
do arquivo de sada sem a exteno .bam.
34

3.3.2

Utilizando o Bowtie 2 com o Ion Torrent

Vamos agora mapear os mesmos dados utilizados com o TMAP (seo 3.2) com o Bowtie 2. Assim
como no caso do TMAP, a primeira etapa indexar o genoma de referncia. Para isso, utilize o seguinte
comando:
bowtie2-build dh10b.fasta dh10b
Como o bowtie no suporta o formato sff, preciso fazer a converso para fastQ. Para isso, utilize
um do programas descritos na seo 2.2, como por exemplo o sff_extract:
sff_exract -c 64.sff
Ou ento empregue o comando for para converter todos os arquivos:
for i in *.sff; do
sff_extract -c $i
done
Em seguida, vamos usar o bowtie para fazer o mapeamento:
for i in data/*.fastq; do
b=basename $i .fastq
bowtie2 -p 8 -q dh10b $i
| samtools view -Suh | samtools sort - $b.bowtie2
done

3.4

Visualizando arquivos BAM com o IGV

A ferramenta mais popular para visualizar arquivos BAM o IGV do Broad Institute. O IGV um
programa em java disponvel para Linux, Mac OS e Windows. possvel baixar o programa como um
stand-alone, assim como via Java Web Start. Ele est disponvel no seguinte link:
http://www.broadinstitute.org/software/igv/download
possvel iniciar o IGV utilizando a tecnologia de WebStart, que cuida automaticamente do download
do aplicativo e o inicia no computador do usurio. Na pgina sero mostrados quatro cones para iniciar
o IGV, o que muda entre eles a configurao de memria. Escolha a opo de acordo com a quantidade
de memria disponvel no seu computador, o tipo de sistema operacional e se voc est rodando no modo
de 32 ou 64 bits. Alternativamente voc pode ir at a seo Binary Distribution para baixar o arquivo
zip com o programa. Aps baixa-lo, basta executar o programa igv.bat no Windows e o igv.sh no
Linux ou Mac OS.
Vamos demonstrar o IGV utilizando um dataset do Comprehensive Cancer Panel, disponvel em:
http://ioncommunity.lifetechnologies.com/docs/DOC-3012
Baixe o arquivo FLO-528.bam.gz, em seguida descompacte-o e crie o ndice .bai:
gunzip FLO-528.bam
samtools index FLO-528.bam
No IGV, v para o menu File, escolha Load from File... e selecione o arquivo FLO-528.bam.
Inicialmente o IGV no vai mostrar nenhuma informao porque o nvel de zoom est muito alto. Para
visualizar os alinhamentos necessrio selecionar uma das regies capturadas pelo ampliseq. Para isso,
v na caixa de texto na toolbox superior e coloque o nome do gene MTRR. Como o IGV tem a anotao
do genoma humano, ele vai focalizar a janela principal na regio onde se encontra o gene MTRR, no caso
entre as coordenadas 7,865,776 e 7,901,794 do cromossomo 5 como pode ser visto na caixa de texto, que
mudou de MTRR para as coordenadas da regio mostrada.
Na figura 3.5 vemos o um screenshot do IGV mostrando a regio selecionada. A parte principal da
tela est dividida em duas regies: No topo, temos a barra de navegao que mostra o caritipo do
cromossomo que est sendo exibida e a regio que est sendo mostrada, que indicada por uma pequena
35

barra vermelha no caritipo. Logo abaixo temos uma escala com as coordenadas da regio. No resto
da tela so mostrados os arquivos carregados. No caso, temos o arquivo bam com os alinhamentos e na
parte de baixo temos a anotao do genoma. possvel adicionar outras sees na visualizao, basta
abrir novos arquivos e a tela ser subdividida verticalmente para acomodar as novas visualizaes.
A visualizao do arquivo bam est dividade em duas regies. No topo temos um grfico que mostra
a cobertura, ou seja, o nmero de reads cobrindo cada base do genoma. Na parte de baixo temos o alinhamento de cada read. No nvel e zoom do gene inteiro podemos ver poucos detalhes dos alinhamentos,
mas pelo grfico de cobertura j possvel verificar a eficincia do processo de captura. Vemos que as
leituras esto nas regies do exons, o que exatamente o objetivo do processo de captura.

Figura 3.4: IGV mostrando os alinhamentos do reads na regio do gene MTRR

possvel mudar o nvel de zoom atravs dos botes - e + no canto superior direito da tela.
Tambm possvel aumentar o nvel de zoom com um click duplo em um ponto de interesse. Com o click
duplo ser feito o zoom e a tela ser centralizada no ponto de click. Por fim, possvel mudar o zoom e
a posio digitando novas coordenadas na caixa de texto. Pode-se aumentar o zoom at ser possvel os
ncleotdeos do genoma.
Na figura 3.5 vemos o zoom de um dos exons do gene MTRR. Nesse nvel de zoom podemos ver cada
um dos reads alinhados na regio, representados pelas caixas cinzas. A seta na ponta do read indica o
sentido do alinhamento. Todas as posies em cinza indicam que a base no read igual da referncia,
qualquer troca indicada como um retngulo colorido, j inseres so indicadas como um I azul e
delees so indicadas como uma quebra com um trao preto no read.
Podemos obter mais informaes sobre cada read e cada posio basta deixar o ponteiro do mouse
parado em uma posio e uma popup box ir aparecer (fig 3.6. Tambm possvel colocar o mouse sobre
a cobertura e o IGV ir informar a quantidade de reads na posio indicada, assim como a quantidade
de cada base, delees e inseres.
Clicando na regio com o nome do arquivo possvel mudar a visualizao do painel com os alinhamentos. Mudar a visualizao de Expanded para Collapsed permite ter uma viso mais geral dos
alinhamentos, com menos foco em cada alinhamento individual. Na figura 3.7 vemos que o exon em
questo est coberto por reads vindos de dois amplicons diferentes com um pequeno overlap no meio.
Vemos tambm mais claramente duas trocas nucleotdicas. possvel tambm mudar a visualizao
dos genes, s que o padro t-los em Collapsed, o que dficil de visualizar se o gene tiver diversas
isoformas diferentes ou se houver genes com overlap em fitas opostas. Nesses casos recomenda-se mudar
a visualizao dos genes para Expanded.
36

Figura 3.5: IGV mostrando os alinhamentos dos reads na regio do gene MTRR

3.4.1

Importanto o genoma de referncia

Na seo anterior trabalhamos com dados de humano mapeados contra a verso hg19 do genoma, que
um dos genomas distribudos pelo Broad Institute para utilizar com o IGV. Porm, frequentemente
temos que trabalhar com outro genomas no disponibilizados ou at mesmo com genomas novos, criados
pelo prprio grupo de pesquisa. Nesses casos preciso importar o genoma antes de poder visualizar
qualquer alinhamento. Para fazer essa operao escolha o item Import Genome... no meu File. Ser
aberta uma caixa de dilogos com os seguintes items:
Unique Identier Um ID para o genoma, deve ser nico para todos os genomas registrados no
programa, por exemplo human_hg19.
Descriptive Name Um nome descritivo, que vai aparecer na lista de genomas do menu pull down.
FASTA File Arquivo fasta com o genoma.
opcional Cytoband file Arquivo com as informaes. Ele permite gerar a ilustrao das citobandas
na rea superior do IGV.
opcional Gene file Arquivo com a anotao do genoma em formato BED ou GFF.
opcional Alias file Um arquivo com duas colunas que determina uma relao entre os nomes das
sequncias (cromossomos, contigs etc.) do genoma e da anotao, por exemplo, podemos ter um
genoma cuja sequncia se chame chr9, mas no arquivo de genes est somente 96 .
Aps preencher todos os campos o IGV ir perguntar onde salvar o arquvo .genome que ser criado
com todas as informao necessrias para a visualizao. Esse um arquivo binrio que deve ser mantido
para futuros usos do genoma criado. A criao do genoma s precisa ser feita uma vez. Aps criado, ele
passa a fazer parte do menu de genomas disponveis da instalao local do IGV.

6 Uma exceo para essa regra so os nomes no formato NCBI, se por exemplo a sequncia do genoma tiver a forma
gi|125745044|ref|NC_002229.3|, mas na anotao estiver a forma curta NC_002229.3, o IGV far a associo entre as duas
automaticamente.

37

Figura 3.6: Popup boxes do IGV. A) Popup que aparece quando se deixa o cursor sobre um dos reads.
B) popup mostrado quando se deixa o cursor sobre o grfico de cobertura.

Figura 3.7: IGV com os alinhamentos no modo colapsado. Destaque para duas posies com trocas de
nucleotdeos.

38

Captulo 4

Arquivos de Anotao de Genomas


A sequncia linear de bases que formam o genoma somente o primeiro nvel de informao gentica.
Codificados nela esto os genes e os elementos de regulao de expresso gnica. Para identificar a
posio desses elementos, utiliam-se arquivos de anotao, que em geral nada mais so do que arquivos
texto que associam coordenadas genmicas com caractersticas ou features. A seguir vamos descrever
alguns formatos de arquivos de anotao.

4.1

BED Formats

O formato BED foi criado pela UCSC para descrever anotaes em um genoma. Ele um formato muito
associado ao UCSC Browser e possui diversos campos que descrevem a representao grfica da anotao
pelo visualizador. Ele um formato texto, com colunas separadas por caracteres TAB que representa
intervalos no genoma associados anotao ou feature[7].
Existem trs variaes do formato BED, a verso padro, a verso bedDetail e a verso bedGraph,
alm de uma verso binria chamada de bigBed.
Em comum, todos os formatos tm as seguintes colunas:
1. chrom: Nome do cromossomo ou scaffold.
2. chromStart: Posio incial da anotao (iniciando em 0)
3. chromEnd: Posio final da anotao.
Alm das linhas descrevendo as features, um arquivo bed pode ter um cabealho que comea com a
palavra track e descreve outros atributos utilizados na representao grfica das regies.
No formato bedDetail se adicionam mais duas colunas, tendo assim a seguinte estrutura:
1. chrom: Nome do cromossomo ou scaffold.
2. chromStart: Posio incial da anotao (iniciando em 0)
3. chromEnd: Posio final da anotao.
4. Nome: Nome da regio
5. Description: Descrio da regio
O formato bedDetail utilizado pelo Ampliseq Designer para informar as regies cobertas pelo painel.
Na figura 4.1, vemos um exemplo de bedDetail file gerado pelo programa.
39

track
chr1
chr1
chr1
...
chr1
chr1
chr1
...

name="4477685_CCP_Designed" description="Amplicon_Insert_4477685_CCP" type=bedDetail


2488068 2488201 AMPL242431688 . TNFRSF14
2489144 2489273 AMPL262048751 . TNFRSF14
2489772 2489907 AMPL241330530 . TNFRSF14
...
...
...
...
6528161 6528293 AMPL294026880 . PLEKHG5
6528282 6528404 AMPL294029495 . PLEKHG5
6528391 6528519 AMPL294044396 . PLEKHG5
...
...
...
...
Figura 4.1: Exemplo de arquivo bedDetail

4.2

Formatos GFF e GTF

O GFF outro formato texto utilizado para representar anotaes. O formato passou por diversas
revises, sendo a mais recente o GFF3. Originalmente, GFF significava Gene Finding Format, mas foi
rebatizado para Generic Feature Format para representar o aumento de escopo do formato. Alm do
GFF3, tambm comumente utilizado o formato GTF (tambm chamado de GFF2.5). O formato GFF
mantido pelo projeto Sequency Ontology[31].
A estrutura do GFF bastante similar ao do formato BED mas com alguns campos que refletem a
sua origen ligada a programas de gene finfing:
1. SeqId: Identificao do cromossomo ou sequncia da qual a anotao faz parte.
2. Source: Programa ou algortmo que gerou a anotao.
3. type: Descreve a natureza biolgica da anotao, como gene ou exon. Tem que ser um termo
do SOFA1 ou um cdigo do Sequence Ontology[4].
4. start: Posio inicial da anotao em relao sequncia identificada na primeira coluna. O
sistema de coordenadas comea em 1.
5. end: Final da anotao, tem de ser um valor igual ou maior que start.
6. score: Nas verses iniciais, esse campo no estava bem definido. Atualmente se recomenda que
se utilize o p-value para predio de genes ou o e-value para mapeamento.
7. strand: Fita da anotao, + para a fita positiva e para a fita negativa.
8. phase: Para anotaes como CDS, essa coluna indica o incio da anotao em relao ao frame
de leitura. O valor de 0 indica que o prximo cdon comea na primeira base, 1 que preciso pular
uma base e assim por diante at 2.
9. attributes: Lista de pares tag=valor. Os pares so separados por ;. A lista de tags que podem
ser utilizadas aberta, mas algumas tm semntica predefinida.
A lista das tags predefinidas para a coluna atributos est na pgina do formato, vale resaltar algumas:
ID: Identificador da anotao, tem que ser nico no arquivo.
Parent: ID da anotao pai.
Com as tags ID e Parente possvel definir qualquer estrutura hierrquica no genoma, como por
exemplo a relao genetranscritoexon. Abaixo temos um exemplo de anotaes em GFF:
1 Sequence

Ontology Feature Annotatio

40

ctg123 example mRNA 1300 9950 . + . ID=t_012143;gene_name=EDEN


ctg123 example exon 1300 1500 . + . Parent=t_012143
ctg123 example exon 3000 3902 . + . Parent=t_012143
ctg123 example exon 5000 5500 . + . Parent=t_012143
ctg123 example exon 7000 9000 . + . Parent=t_012143
ctg123 example exon 9400 9950 . + . Parent=t_012143
ctg123 example CDS 3301 3902 . + 0 Parent=t_012143
ctg123 example CDS 5000 5500 . + 1 Parent=t_012143
ctg123 example CDS 7000 7600 . + 1
Parent=t_012143
Uma outra abordagem para representao de genes e transcritos o formato GTF. Este formato
quase idntico ao GFF3, s mudando a coluna attributes. Em vez de utilzar o formato tag=valor, ele
utiliza tag "valor", e em vez de usar uma estrutura genrica de pai e filho entre as anotaes, ele exige
os seguintes atributos:
gene_id: ID do gene associado esta anotao
transcript_id: ID do transcrito
Utilizando um mesmo valor de gene_id e variando o trascript_id possvel representar as informaes de splicing alternativo. Essa uma soluo bem menos flexvel do que a do GFF3. Abaixo um
exemplo de anotao em formato GTF:
381
381
381
381
381

Twinscan
Twinscan
Twinscan
Twinscan
Twinscan

CDS
CDS
CDS
start_codon
stop_codon

380
501
700
380
708

401
650
707
382
710

.
.
.
.
.

+
+
+
+
+

0
2
2
0
0

gene_id
gene_id
gene_id
gene_id
gene_id

"001";
"001";
"001";
"001";
"001";

transcript_id
transcript_id
transcript_id
transcript_id
transcript_id

"001.1";
"001.1";
"001.1";
"001.1";
"001.1";

possvel converter de GTF para GFF utilizando o comando gffread que faz parte do cufflinks2 :
gffread <in.gtf> -o <out.gff>
E tambm de GFF pra GTF:
gffread -T <in.gff> -o <out.gtf>

4.3

Gerando arquivos de anotao

Pode-se obter os arquivos de anotaes de genomas bem estudados, pode-se usar os servios dos bancos
de dados de anotaes, como o UCSC ou o Ensembl. Caso o genoma de interesse no esteja nessas bases
de dados, possvel encontrar informaes de anotaes, normalmente feitas automaticamente por um
programa, na pgina do projeto de montagem do genoma.

4.3.1

Obtendo anotaes do UCSC Browser

O UCSC Browser possui um servio chamado Table Browser[10] que permite exportar as informaes de
sua base de dados para diversos formatos, entre eles o bed e o GTF. Essa ferramenta est disponvel em:
http://genome.ucsc.edu/cgi-bin/hgTables
Na figura 4.2 vemos tela de seleo de informaes do site. Na primeira linha de combo boxes
escolhe-se o genoma de interesse e a verso deste, por default ser mostrado o genoma humano na verso
hg19. Abaixo pode-se escolhe o grupo e a track de anotaes, no caso vamos deixar no grupo Genes
and Gene Prediction e na track UCSC Genes. Por fim, podemos escolher qual tabela que queremos
exportar. No caso vamos escolher a tabela knownGene. Existem diversas opes de filtragem e
at possvel fazer operaes de bancos de dados com as anotaes, mas o que nos interessa o seletor
2 http://cufflinks.cbcb.umd.edu/

41

Figura 4.2: UCSC Table Browser site


Output Format (ver figura 4.2) que permite escolher, entre outros formatos, GTF e BED. Logo abaixo
possvel esolher um nome para o arquivo que vai ser gerado e tambm escolher para que o arquivo seja
enviado j comprimido com o programa gzip, reduzindo assim o tamanho do download. Por fim, clica-se
em Get Output para fazer o download das anotaes.

Figura 4.3: Escolha de regies ao exportar arquivo BED


Caso se escolha gerar um arquivo em formato BED, ser mostrada uma outra tela que permite escolher
as regies do gene que sero includas no arquivo gerado (ver figura 4.3). So oferecidas as seguintes
opes:
Whole Gene
Upstream by X bases
Exons plus X bases at each end
42

Introns plus X bases at each end


5 UTR Exons
Coding Exons
3 UTR Exons
Downstream by X
Na figure 4.4 podemos ver graficamente os diferentes tipos de arquivos BED gerados.

4.4

Manipulando arquivos BED

Uma ferramenta muito til para manipular arquivos de anotao o bedtools. Apesar do nome, a
ferramente suporta tanto formato BED quanto GFF, GTF, VCF, SAM e BAM. O cdigo est disponvel
em:
https://code.google.com/p/bedtools/

4.4.1

Extrair sequncias da regies

Para extrair a sequncia das regies indicadas pelo arquivo bed utiliza o comando getfasta do bedtools:
bedtools getfasta -fi <genome.fasta> -bed <file.bed> -fo <regions.fasta>

43

44

Figura 4.4: Diferena entre os tipos de arquivos BED gerados pelo UCSC Table Browser.

Captulo 5

Deteco de Varincias
Em um projeto de sequenciamento, o passo natural seguinte ao mapeamento a deteco de diferenas
entre o genoma sequenciado e o genoma de referncia. Com uma biblioteca de fragmentos possvel
detectar Single Nucleotide Polymorphism, normalmente chamados de SNPs (se pronuncia esnipe), e
pequenas inseres/delees (usualmente chamados de indels).
Com uma biblioteca de mate-pair, tambm possvel detectar variaes estruturais como grandes
indels e inverses. Neste captulo vamos abordar somente a deteco de SNPs e de small-indels.

5.1

VCF Files

O formato VCF (Variant Call Format), assim como o formato BAM, foi criado pelo 1000 Genomes
Project para representar as variaes detectadas[26]. O arquivo VCF um arquivo texto. No topo do
arquivo, h um cabealho, indicado pelas linhas que comeam com #. Depois do cabealho, uma lista
de VCF Records, um por linha. Cada campo do registro colocado em uma coluna, a lista das colunas
est abaixo:
1. CHROM: Cromossomo ou contig da variante.
2. POS: Posio da variante iniciando a contagem por 1.
3. REF: Bases da referncia.
4. ALT: Bases alternativas. Se houver mais de uma alternativa, elas sero listadas separadas por
vrgulas.
5. QUAL: Score da variante em escala phred.
6. FILTER: Se a variante passou pelos controles de qualidade: PASS; caso contrrio uma lista de
cdigos separos por vrgulas descrevendo por que ela foi rejeitada.
7. INFO: Lista de valores separados por dois pontos com estatsticas sobre as variantes. Os valores
esto na forma <chave>=<valor>, onde chave uma string curta que identifica o valor. Abaixo,
temos uma lista de chaves definidas pelo padro. Todas elas so opcionais e os usurios podem
tambm adicionar chaves extras. No entanto as chaves abaixo so reservadas:
AA: Alelo Ancestral
AC: Contagem por alelos
AF: Frequncia de cada alelo
AN: Nmero total de alelos
BQ: RMS1 da qualidade para essa posio

1 Root

CIGAR: Cigar String descrevendo como um alelo alternativo se alinha no alelo de referncia
pP
2

Mean Square:

xi

45

DB: Membro do dbSNP


DP: Cobertura para todas as amostras
END: Posio final da variante descrita nesse registro
H2: Membro do hapmap2
H3: Membro do hapmap3
MQ: RMS do mapping quality
MQ0: Nmero de reads com M Q = 0
NS: Nmero de samples
SB: Strand Bias nessa posio
SOMATIC: Indica que essa variante somtica
VALIDATED: Validado por outro experimento
1000G: Membro do 1000 Genomes
Um exemplo com as 8 primeiras colunas de um arquivo VCF est na tabela 5.1. Depois da 8a coluna
podemos encontrar informaes de gentipo. Primeiro temos uma coluna chamada FORMAT, a qual
define uma lista com tipos de dados (separados por dois pontos). Em seguida temos uma coluna para
cada amostra com os valores definidos por FORMAT, e no cabealho est o nome de cada amostra.
Vemos um exemplo na tabela 5.2. Neste, caso temos a informao de gentipos para duas amostras,
NA000001 e NA000002.
#CHROM
20
20
20
20

POS
14370
17330
1230237
1234567

ID
rs6054257
.
.
microsat1

REF
G
T
T
GTC

ALT
A
A
.
G,GTCT

QUAL
29
3
47
50

FILTER
PASS
q10
PASS
PASS

INFO
NS=3;DP=14;AF=0.5
NS=3;DP=11;AF=0.017
NS=3;DP=13;AA=T
NS=3;DP=9;AA=G

Tabela 5.1: Exemplo de lista de variantes em arquivo VCF (parte obrigatria).

FORMAT
GT:GQ:DP:HQ
GT:GQ:DP:HQ
GT:GQ:DP:HQ
GT:GQ:DP

NA00001
0|0:48:1:51,51
0|0:49:3:58,50
0|0:54:7:56,60
0/1:35:4

NA00002
1|0:48:8:51,51
0|1:3:5:65,3
0|0:48:4:51,51
0/2:17:2

Tabela 5.2: Exemplo de lista de variantes em arquivo VCF (definio de gentipos).


Assim como para o campo INFO, existem diversas chaves predefinidas para o gentipo. Abaixo temos
a lista definida pelo padro:
GT: Gentipo, codificado como valores de alelo separados por / ou |. O alelo da referncia
indicado por 0, o primeiro alelo em ALT indicado por 1, o segundo por 2, e assim por diante.
Para um genoma diplide esse campo pode ser 0/1, 1|0, 1/2 e assim por diante. Para um genoma
monoplide, somente um valor deve ser dado, e para um genoma triplide podemos ter algo como
0|0|1. A diferena dos separadores que / indica gentipos fora de fase e | indica genpicos em
fase.
FT: A mesma coisa que o campo FILTER, porm individual para a amostra.
GL: log10 da verossimillhana para possvel gentipo. Se A for o alelo de referncia e B o alelo
alternativo, a ordem dos gentipos AA,AB e BB (a frmula geral para a ordem dos gentipos
est explicada no apndice 7.1).
GLE: Verossimilhana do gentipo usado quando existe incerteza de copy mumber.
46

PL: Valores de GL em scala phred.


GP: Probabilidade posteriori dos gentipos em escala phred.
CQ: Probabilidade condicional do gentipo estar errado, dado que o locus variante (em escala
phred):
10 log10 p(gentipo est errado|locus variante)
(5.1)
HQ: qualidade dos haltipos, dois valores separados por vrgula em escala phred.
PS: Phase Set, definido como o conjunto de gentipos em fase que este gentipo pertence.
PQ: Qualidade da atribuio de fase do gentipo, em escala phred.
EC: Lista separada por vrgulas do valor esperado da contagem de cada alelo alternativo listado
na coluna ALT.
MQ: RMS do mapping quality, similar encontrada na coluna INFO.
Alm dos registros VCF, o arquivo contm um header. Esse header bastante til porque adiciona
uma descrio texto para vrios campos contidos no arquivo. Para os campos padro pode-se consultar
a especificao do padro, mas para campos especficos de algum programa a descrio no arquivo
bastante til. Em especial as linhas INFO e FORMAT descrevem as chaves das colunas INFO e
FORMAT no arquivo. Abaixo temos um exemplo de VCF header:
##fileformat=VCFv4.1
##fileDate=20090805
##source=myImputationProgramV3.1
##reference=file:///seq/references/1000GenomesPilot-NCBI36.fasta
##contig=<ID=20,length=62435964,assembly=B36,
md5=f126cdf8a6e0c7f379d618ff66beb2da,species="Homo sapiens",taxonomy=x>
##phasing=partial
##INFO=<ID=NS,Number=1,Type=Integer,Description="Number of Samples With Data">
##INFO=<ID=DP,Number=1,Type=Integer,Description="Total Depth">
##INFO=<ID=AF,Number=A,Type=Float,Description="Allele Frequency">
##INFO=<ID=AA,Number=1,Type=String,Description="Ancestral Allele">
##INFO=<ID=DB,Number=0,Type=Flag,Description="dbSNP membership, build 129">
##INFO=<ID=H2,Number=0,Type=Flag,Description="HapMap2 membership">
##FILTER=<ID=q10,Description="Quality below 10">
##FILTER=<ID=s50,Description="Less than 50% of samples have data">
##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Read Depth">
##FORMAT=<ID=HQ,Number=2,Type=Integer,Description="Haplotype Quality">

5.1.1

Manipulando arquivos VCF

Como o arquivo VCF uma tabela com colunas separadas por tabulao, pode facilmente ser lido (no
caso de um arquivo de tamanho razovel) em um planilha eletrnica como o Excel ou Open Office Calc.
Tambm pode ser facilmente manipulado utilizando scripts e utilitrios do unix.

5.1.2

Indexando as variantes

Para visualizar o arquivo vcf no IGV necessrio comprimi-lo e index-lo primeiro. Para isso utilizamse duas ferramenta criadas pelo grupo do samtools: o bgzip e o tabix, ambos disponveis no seguinte
endereo:
http://sourceforge.net/projects/samtools/files/tabix
O bgzip um compactador de blocos2 e o que ele faz aplicar o algoritmo de compresso em blocos
do arquivo de entrada. J o tabix cria um ndice que permite que o visualizador carregue na memria
somente as variantes associadas regio que est sendo mostrada na tela. Para utiliz-los no arquivo
VCF:
2 Esse

o mesmo formato de compactao utilizado pelo arquivo BAM

47

bgzip <var.vcf>
tabix -p vcf var.vcf.bgz

5.2

Utilizando o samtools para detectar SNPs

O samtools uma ferramenta geral para a manipulao de arquivos BAM e j foi abordada na seo
3.1.3. Ele tambm permite fazer anlises simples de SNPs atravs do comando mpileup. Nessa seo
vamos mostar como usar o samtools gerar um arquivo em formato BCF3 e depois fazer a chamda de
SNPs. Para mais detalhes sobre o formato pileup, veja o apndice 7.2. Para gerar o arquivo BCF,
usa-se4 :
samtools mpileup -d <max cov> -f <ref.fasta>
-g <align.bam> > <out.bcf>
Esse resultado no uma lista de SNPs, mas sim um BCF intermedirio que ser utilizado para fazer
a chamada. possvel visualizar esse arquivo com o seguinte comando:
bcftool view <out.bcf> | less
A descrio dos campos do arquivo intermedirio est no apndice 7.3. Finalmente para aplicar o
modelo estatstico e fazer a chamada de SNPs utilizamos o bcftools da seguinte maneira:
bcftools view -D<cobertura> -c -v -b <out.bcf> > <var.raw.bcf>
A opo -c pede para o bcftools fazer a chamada de SNPs, a opo -v pede para o programa gerar
somente os stios com variantes e a opo -b pede para gerar o resutado em formato BCF. Se voc utilizar
a opo -g em vez de -c tambm gerada a informao de gentipos.
O algoritmo do bcftools no muito restritivo, por isso recomendvel filtrar a lista de SNPs. Junto
com o samtools vem o script vcfutils.pl que tem uma opo varFilter para fazer isso:
bcftools view -c -v <var.raw.bcf> | vcfutils.pl varFilter > <vars.vcf>
possvel mudar valores dos parmetros de filtragem atravs dessas opes:
Default
Opo Descrio
-Q
minimum RMS mapping quality for SNPs
10
-d
minimum read depth
2
-D
maximum read depth
10000000
-a
minimum number of alternate bases
2
-w
SNP within INT bp around a gap to be filtered 3
-W
window size for filtering adjacent gaps
10
-1
min P-value for strand bias (given PV4)
0.0001
-2
min P-value for baseQ bias
1e-100
-3
min P-value for mapQ bias
0
-4
min P-value for end distance bias
0.0001
-e
min P-value for HWE (plus F<0)
0.0001

5.2.1

Gerando um arquivo consenso

Muitas vezes deseja-se um arquivo fasta com o consenso das regies cobertas, para isso possvel utilizar
o vcfutils.pl da sequinte maneira:
samtools mpileup -uf <ref.fa> <aln.bam> |
bcftools view -cg - |
vcfutils.pl vcf2fq > consensus.fastq
O resultado um arquivo fastQ, para convert-lo para fasta utiliza-se o comando seqtk5 :
seqtk fq2fa consensus.fastq > consensus.fasta
3 Binary

VCF
gerar um arquivo BCF no comprimido, troca-se o -g por -u.
5 ver seo 2.1.2
4 Para

48

5.3

Utilizando o GATK

O GATK, Genome Analysis Toolkit um software desenvolvido pelo Broad Institute para anlise de
dados de nova gerao, com nfase na anlise de variantes e genotipagem. Ele est disponvel em:
http://www.broadinstitute.org/gatk/download
O programa tem uma estrutura modular, sendo dividio em diversas anlises, todas empacotadas junto
com o framework em um arquivo jar. Para ter a lista de anlises utiliza-se o comando:
java -jar GenomeAnalysisTK.jar
Para executar uma anlise especfica:
java -jar GenomeAnalysisTK.jar -T <analysis> <args*>
Na proxima seo vamos mostrar a utilizao do GATK para fazer uma chamada de variantes em
dataset de ampliseq.

5.3.1

Chamando Variantes no GATK

Para demonstar a chamada de variantes com o GATK vamos utilizar um dataset do comprehensive
cancer panel. As estapas da anlise so as seguintes:
1. Fazer o download dos arquivos FLO-528.bam.gz e CCP.bed.gz em:
http://ioncommunity.lifetechnologies.com/docs/DOC-3012
Tendo os arquivos, necessrio decompact-los e indexar o arquivo bam com os seguintes comandos:
gunzip FLO-528.bam.gz
gunzip CCP.bed.gz
samtools index FLO-528.bam
2. Recriar o genoma de referncia utilizado no mapeamento. A sequncias dos cromossomos est
disponvel no UCSC:
http://hgdownload.cse.ucsc.edu/goldenPath/hg19/bigZips/chromFa.tar.gz
Porm, a sequncia mitocondrial utilizada est no Genbank:
http://www.ncbi.nlm.nih.gov/nuccore/NC_012920
preciso baix-la em formato fasta e salvar com o nome de chrM.fa. Depois, preciso editar esse
arquivo, mudando o header para:
>chrM
Em seguida, preciso descompactar os cromossos e concaten-los junto com o genoma mitocondrial
em um nico arquivo:
tar zxvf chromFa.tar.gz
cat chr[1-9].fa chr[12][0-9].fa chrX.fa chrY.fa chrM.fa
> hg19.fasta
Por fim, preciso indexar o arquivo fasta utilizando o samtools:
samtools faidx hg19.fasta
E criar o dicionrio de sequncias do arquivo com o o Picard:
java -jar CreateSequenceDictionary.jar
R=hg19.fasta O=hg19.dict
49

3. Fazer a chamada de variantes:


java -jar
-I
-L
-o

GenomeAnalysisTK.jar -T UnifiedGenotyper
FLO-528.bam -R hg19.fasta
CCP.bed
SNP1.vcf

O resultado o arquivo SNP1.vcf, com a lista de SNP encontrados.

5.3.2

Anotando as variantes com o dbSNP

Uma das primeiras anlises a ser feite com uma lista de variantes comparar elas com a base de SNPs
comnhecidas do NCBI, o dnSNP. Para isso, necessrio baixar o arquivo vcf com o dbSNP:
ftp://ftp.ncbi.nih.gov/snp/organisms/human_9606/VCF/00-All.vcf.gz
A princpio, seria muito fcil utilizar esse arquivo para anotar o arquivo de variantes gerado pelo
variant caller. O problema a diferena nos nomes dos cromossomos, o dbSNP utiliza 1, 2, 3 etc nos
nomes dos cromossomos e a referncia que utilizamos para fazer a chamada utiliza o padro da UCSC:
chr1, chr2 etc. Para resolver essas discrepncias podemos utilizar um script que mude os nomes dos
cromossomos no dbSNP. O script est disponvel no apndice 7.4. Para fazer a converso:
gzcat 00-All.vcf.gz | addchr.pl

> dbsnp-chr.vcf

O passo seguinte indexar o arquivo vcf gerado. A melhor alternativa para isso utilizar o igvtools:
igvtools index dbsnp-chr.vcf
Por fim faz-se a anotao:
gatk -T VariantAnnotator -R hg19.fasta -D dbsnp-chr.vcf
-V FLO-528.vcf -o FLO-528.ann.vcf
O resultado vai ser um novo arquivo vcf chamado FLO-528.ann.vcf, com o rsID dos SNPs conhecidos
no campo ID.

5.4

Utilizando Ion Varriant Caller

possvel baixar o plugin Torrent Suite Variant Caller (TSVC) na Ion Community e utiliz-lo para
fazer a chamada de variantes em um outro computador. A verso 2.2 do plugin est disponvel em:
http://ioncommunity.lifetechnologies.com/docs/DOC-2936
Deve-se baixar o Offiline Installer, que nada mais do que um arquivo zip chamado:
variantCaller-2.2.3.31037.zip
Descompacte esse arquivo no mesmo diretrio dos dados6 :
unzip -x variantCaller-2.2.3.31037.zip
Vai ser criado um diretrio chamado variantCaller com o programa. O comando para fazer a
chamada de variantes o seguinte:
mkdir FLO-528-tsvc ;
./variantCaller/variantCaller.py
-r ./variantCaller/
-p ./variantCaller/paramFiles/ampliseq.Somatic.json
-b CCP.bed
FLO-528-tsvc
hg19.fasta
FLO-528.sorted.bam
6 possvel instalar em qualquer diretrio que se queira, basta depois mudar a linha de comando para refletir essa
mudana.

50

necessrio criar o diretrio onde os resultados vo ser escritos, o programa no faz isso sozinho,
por isso a primeira linha. preciso tambm passar o diretrio onde o TSVC est instalado com a
opo -r. Em seguida, informa-se qual o arquivo com os parmetros para a chamada de variantes,
no caso escolhemos o arquivo ampliseq.Somatic.json, o nome do arquivo a combinao do tipo de
biblioteca com o nvel de estringncia desejado, no caso uma biblioteca de ampliseq com a estringncia
para variantes somticas, ou de baixa frequncia. Os arquivos de parmetros disponveis esto na tabela
5.3. O parmetro -p informa o arquivo .bed com as regies que foram capturadas. Por fim, temos os
seguintes argumentos: diretrio de sada, genoma de referncia e arquivo .bam. Os arquivos com os
resultados vo ser:
FLO-528-tsvc/SNP_variants.vcf: Somente os SNPs chamados.
FLO-528-tsvc/indel_variants.vcf: Somente os indels chamados.
FLO-528-tsvc/TSVC_variants.vcf: Ambos os arquivos combinados.
Tipo de biblioteca

Estringncia

ampliseq
ampliseq
targetseq
targetseq
fullgenome
fullgenome

Germ Line
Somatic
Germ Line
Somatic
Germ Line
Somatic

Tabela 5.3: Lista de parmetros para Torrent Suite Variant Caller (TSVC)

5.5

Anotando os SNPs com o snpEff

O snpEff uma ferramenta muito til para comparar um arquivo VCF com as anotaes de um genoma.
Ele est disponvel em:
http://snpeff.sourceforge.net/
Aps baix-lo o primeiro passo baixar o arquivo binrio com as anotaes do genoma desejado. O
arquivo snpEff.config contm a lista dos genomas disponveis. Para baixar as anotaes do hg19:
java -jar snpEff.jar -c snpEff.config

download hg19

Os arquivos vo ser gravados no diretrio ~/snpEff/data/hg19. A localizao desses dados pode ser
mudada editando o arquivo de configurao snpEff.config. Para anotar um arquivo VCF utiliza-se:
java -jar snpEff.jar eff
-c snpEff.config
hg19 SNP_variants.vcf >
SNP_variants.snpeff.vcf
O resultado vai ser um novo arquivo VCF com uma tag EFF no campo INFO, descrevendo o efeito
do SNP. Essa tag contm uma lista de registros com a seguinte estrutura:
Effect ( Effefct_Impact | Codon_Change | Amino_Acid_change |
Gene_Name | Gene_BioType | Coding | Transcript |
Rank [ | ERRORS | WARNINGS ] )
Abaixo vemos um exemplo de um registro:
NON_SYNONYMOUS_CODING(MODERATE|MISSENSE|Aag/Gag|K1222E|2240|PDE4DIP||CODING|NM_001198832.1|29|1)
51

Ele mostra um mutao no sinnimo no transcrito MN_001198832.1 do gene K122E. A descrio de


cada um dos campos :
1. Effect: Efeito da variantes. A lista dos efeitos que o programa detecta est na tabela 5.4.
2. Effect impact: Impacto do efeito. Pode ter os seguintes valores: High, Moderate, Low, Modifier.
3. Functional class: Classe funcional: NONE, SILENT, MISSENSE, NONSENSE.
4. Codon_Change: Mudana de cdon, no formato: codon original/novo codon.
5. Amino_Acid_change: Mudana de aminocido, no formato: AA antigo posio novo AA (ex:
E30K)
6. Amino_Acid_length: Tamanho da protena em aminocidos (tamanho do transcrito dividido por
3).
7. Gene_name: Nome do gene.
8. Gene_bioType: bioType do gene, se disponvel. Segue as convenes do ENSEMBL. Por exemplo:
protein_coding.
9. Gene_Coding: Pode ser CODING ou NON_CODING. Caso o gene esteja marcado como codante de
protena ou no.
10. Trancript: ID do transcrito (usualmente ENSEMBL IDs)
11. Exon/Intron Rank: Posio do Exon ou do Intron (ex: 1 para o primeiro exon, 2 para o segundo
etc)
12. Genotype: Nmero do gentipo desse efeito (ex: 2 se o efeito corresponde ao segundo ALT)
13. Warnings / Errors: Qualquer aviso ou erro (no mostrado se estiver vazio).
Efeito
INTERGENIC
UPSTREAM
UTR_5_PRIME
UTR_5_DELETED
START_GAINED
SPLICE_SITE_ACCEPTOR
SPLICE_SITE_DONOR
START_LOST
SYNONYMOUS_START
CDS
GENE
TRANSCRIPT
EXON
EXON_DELETED
NON_SYNONYMOUS_CODING
SYNONYMOUS_CODING
FRAME_SHIFT

Descrio
A variante est na regio intergnica
Regio Upstream do gene (por default at 5k bases)
Variante na regio 5UTR
A variante deleta um exon que est na regio 5UTR.
A variante na regio 5UTR produz um sequncia de 3 bases que
pode ser um START cdon.
A variante est em um splice acceptor site (definido como as duas
bases antes do incio do exon, exceto para o primeiro exon).
A variante est em um Splice donor site (definido como as duas
bases depois do exon, exceto para o ltimo exon).
Variante converte um start codon em um non-start codon. Ex:
aTg/aGg, M/R)
Variante converte um start codon em outro start codon. Ex:
Ttg/Ctg, L/L (TTG and CTG can be START codons)
A variante est em um CDS.
A variante est em um gene.
A variante est em um transcrito.
A variante est em um exon.
Uma deleo que remove um exon.
A variante faz o cdon gerar um amino cido diferente. Ex:
Tgg/Cgg, W/R
A variante mudao o cdon, mas no o amino cido. Ex: Ttg/Ctg,
L/L
Uma insero ou deleo que gera um frame shift, por exemplo
um indel que no seja mltiplo de 3.
52

Um ou mais cdons so modificados. Por exemplo, um MNP7 de


tamanho mltiplo de 3.
CODON_INSERTION
Um ou mais cdons inseridos, por exemplo uma insero mltipla
de 3 na fronteira de um cdon.
CODON_CHANGE_PLUS_CODON_INSERTION Um cdon foi modificado e um ou mais foram inseridos. Ex: uma
insero mltipla de 3, mas no na fronteira do cdon.
CODON_DELETION
Um ou vrios cdons foram deletados. Ex: Uma deleo mltipla
de trs na fronteira do cdon.
CODON_CHANGE_PLUS_CODON_DELETION
Um cdon foi modificado e um ou mais foram deletados. Ex: Uma
deleo mltipla de trs, mas no na fronteira do cdon.
STOP_GAINED
Variante gera um STOP codon. Ex: Cag/Tag, Q/*
SYNONYMOUS_STOP
Variante modifica um STOP codon em outro STOP codon. Ex:
taA/taG, */*
STOP_LOST
Variante muta um STOP codon em um no STOP codon. Ex:
Tga/Cga, */R
INTRON
A variante atinge um intron. Tecnicamente, ele no atinge um
exon no transcrito.
UTR_3_PRIME
A variante atinge a regio 3UTR.
UTR_3_DELETED
A variante apaga um exon que est na regio 3UTR do transcrito.
DOWNSTREAM
Downstream do gene (por default at 5K bases).
INTRON_CONSERVED
A variante est em uma regio intrnica altamente conservada.
INTERGENIC_CONSERVED
A variante est em uma regio intergnica altamente conservada.
INTRAGENIC
A variante atinge um gene, mas nenhum transcrito nesse gene.
RARE_AMINO_ACID
A variante atinge um aminocido raro, portanto tem grandes
chances de produzir uma perda de funo.
NON_SYNONYMOUS_START
Variante muta um start codon em outro start start codon (o novo
cdon produz um AA diferente). Ex: Atg/Ctg, M/L (ATG e CTG
podem ser START codons)
Tabela 5.4: Lista de efeitos preditos pelo snpEff
CODON_CHANGE

7 Multiple

nucleotide polimorphism

53

54

Captulo 6

Montagem denovo
Nos captulos anteriores foram discutidas tcnicas de anlise que envolvem o mapeamento das sequncias
obtidas em um genoma de referncia, porm, quando no se tem o genoma de referncia do organismo
estudado preciso gerar, ou montar, esse genoma de novo, ou seja, pela primeira vez. Ao contrrio do
mapeamento em que os algoritmos esto muito bem estabelecidos, a rea de montagem de genomas
muito mais experimental e ainda um campo muito ativo de pesquisa[3, 30].
Neste captulo vamos mostrar como usar o montador Mira[2] para montar genomas bacterianos com
dados do Ion Torrent PGM.

6.1

Montando o genoma com o Mira

O Mira est disponvel no sourceforge. Atualmente existem duas verses disponveis, a 3.4 estvel e a 3.9
em desenvolvimento. Normalmente, melhor utilizar sempre a verso estvel, porm um dos focos da
verso em desenvolvimento o suporte ao ion torrent, motivo pelo qual vamos abordar as duas verses.
Ambas as verses esto disponveis em seus respectivos diretrios em:
http://sourceforge.net/projects/mira-assembler/files/MIRA/
possvel baixar o cdigo fonte e tambm verses precompiladas para Linux. Tambm necessrio
baixar o programa sff_extract (ver 2.2.1). Para fazer a montagem, vamos utilizar o dataset disponvel
em:
http://ioncommunity.lifetechnologies.com/docs/DOC-2265
Nessa pgina, esto disponveis os arquivos SFF de trs corridas do PGM, uma de fragmentos e duas
de mate-pair. Tambm est disponvel o genoma de referncia, para podermos comparar a montagem,
e o arquivo com a sequncia dos linkers, que precisamos para extrair os dados de mate-pair. Para a
demonstrao, baixe os seguintes arquivos:
C11-127_40X.sff.zip
Corrida de fragmentos (subsampled)
FRA-257_40X.sff.zip
Corrida de mate pair de 3.5kbp (subsampled)
C28-140_40X.sff.zip
Corrida de mate pair de 8.9kbp (subsampled)
MG1655.fasta.gz
Genoma de referncia
LMP_Linkers.fasta.gz Sequncia dos linkers
No caso, sugere-se utilizar as verses que foram subsampled para que a cobertura fosse somente 40
vezes o tamanho do genoma. Nota-se que utilizar uma coberutra muito alta geralmente piora a qualidade
de montagem, pois os erros se acumulam e geram muitos pequenos contigs.
A primera etapa transformar o arquivo sff em fastq, mas para isso preciso utilizar o programa
sff_extract. Deve-se utilizar esse programa e no os outros citados na seo 2.2.1 porque ele gera
tambm um arquivo XML com as informaes de clipagem das sequncias. Um ponto muito importante
seguir a conveno de nomes do Mira, o arquivo de sequncias tem que ter o seguinte nome:
<proj>_in.<platform>.fastq
J o arquivo XML tem que ter este nome:
<proj>_traceinfo_in.<platform>.xml
55

No caso do Ion Torrent <platform> tem que ser iontor e <proj> o nome escolhido para o projeto.
O comando para fazer a converso tem a seguinte estrutura:
sff_extract -s <proj>_in.iontor.fastq
-x <proj>_traceinfo_in.iontor.xml
<arquivo.sff*>
A frmula geral para executar o mira a seguinte:
mira
--project=frag
--job=denovo,genome,accurate,iontor
Na opo --project utilizamos o mesmo nome dos arquivos, e com isso o Mira vai utilizar os arquivos
corretos. Na opo --job descrevemos o job de montageme as opes so: denovo ou mapping, genome
ou est, accurate ou draft e a lista de tecnologias serem utilizadas.
Alm dessas, possvel adicionar uma srie de outras opes que fazem o ajuste do algoritmo e do
comportamento do programa, alguns exemplos so:
-GE:not=x
Ajusta o nmero de threads do programa para x. O Mira utiliza 2 threads
por default. Aumentar esse valor agiliza o processo, mas somente em uma das
etapas, o algoritmo SKIM.
-OUT:ora=1 Pede para o Mira gerar um arquivo .ace como sada da montagem. Esse arquivo
pode depois ser utilizado para visualizar a posio dos reads nos contigs.
Os resultados vo estar em um diretrio chamado <project>_assembly, e dentro deste vo estar os
seguintes diretrios:
<project>_d_info Diretrio com informaes sobre a montagem. Normalmente, o primeiro arquivo se verificar aps o trmino do programa o <project>_info_assembly.txt, que contm
as estatsticas mais relevantes sobre a montagem.
<project>_d_results Diretrio com os arquivos da montagem, contm os seguintes arquivos:
<project>_out.unpadded.fasta (e .qual) Arquivo com os contigs montados e respectivo
arquivo de qualidade.
<project>_out.padded.fasta (e .qual) Verso do arquivo anterior com * adicionados em
posies nas quais exista uma pequena evidncia de bases adicionais.
<project>_out.maf Montagem no formato nativo do Mira.
<project>_out.caf Montagem no formato CAF, criado pelo Sanger1 .
<project>_out.ace Arquivo .ace compatvel com diversos visualizadores de montagem. Gerado pela opo -OUT:ora=1. Tambm pode ser gerado com o comando convert_project
do prprio mira.
<project>_d_chkpt Checkpoint do montador, pode ser apagado aps o trmino da montagem.
<project>_d_tmp Diretrio com arquivos temporrios, tambm pode ser apagado.
Na proximas sees vamos detalhar como utilizar o Mira em diferentes situaes.

6.1.1

Montando uma biblioteca de fragmentos utilizando o Mira 3.4

Vamos primeiro demonstrar como fazer a montagem utilizando somente um arquivo de fragmentos.
Iniciando pela gerao do arquivo fastq:
sff_extract

-s frag_in.iontor.fastq
-x frag_traceinfo_in.iontor.xml
C11-127_40X.sff

1 http://www.sanger.ac.uk/resources/software/caf/

56

Note que o nome do projeto frag. Em seguida, execute o Mira com o seguinte comando:
mira
--project=frag
--job=denovo,genome,accurate,iontor
-GE:not=4 -OUT:ora=1
IONTOR_SETTINGS -AS:mrpc=100
Em relao ao comando apresentado na seo anterior, adicionamos as opes especficas de cada
plataforma, para isso colocamos IONTOR_SETTINGS seguido das opes para o Ion Torrent, no caso
-AS:mrpc=100 que diz para filtrar todos os contigs com menos de 100 reads.

6.1.2

Montando uma biblioteca de mate-pair utilizando o Mira 3.4


tag1

IA

tag2

Figura 6.1: Estrutura do read de mate-pair do Ion Torrent


Na figura 6.1 vemos a estrutura do read gerado pela tcnica de mate-pair no Ion Torrent. Pela construo
temos a tag1 seguida pelo adaptador interno (IA) e a tag2 . O sentido de leitura est indicado pela seta.
Por conta dessa estrutura preciso separar as tags utilizando a sequncia do adaptador interno, o que
feito na converso de sff para fastq. O sff_extract utiliza o mapeador SSAHA2 para mapear o IA e
gerar as tags. Portanto, preciso instalar o SSAHA2, que est disponivel em:
http://www.sanger.ac.uk/resources/software/ssaha2/
preciso colocar os programas SSAHA2 no path e em seguida utiliza-se o seguinte comando para
gerar os arquivos:
sff_extract

-l LMP_Linkers.fasta
-s lmp35_in.iontor.fastq
-x lmp35_traceinfo_in.iontor.xml
FRA-257_40X.sff

A opo -l fornece um arquivo com a sequncia do IA e do seu reverso complementar, no caso, para
o Ion Torrent as sequncias so:
>IA
CTGCTGTACCGTACATCCGCCTTGGCCGTACAGCAG
>IA_revcom
CTGCTGTACGGCCAAGGCGGATGTACGGTACAGCAG
mira
--project=frag
--job=denovo,genome,accurate,iontor
-GE:not=4 -OUT:ora=1
IONTOR_SETTINGS -AS:mrpc=100
-GE:tismin=3000 -GE:tismax=4000

6.1.3

Fazendo uma montagem mista com o Mira 3.4

Agora vamos montar a biblioteca de fragmentos junto com as duas bibliotecas de mate-pair. Para isso
vamos iniciar o processo extraindo os reads de fragmentos:
sff_extract

-s mix_in.iontor.fastq
-x mix_traceinfo_in.iontor.xml
C11-127_40X.sff
57

Em seguida, vamos extrair os dados de primeira biblioteca de mate-pair, devemos prestar muita
atena opo -a, que pede para que os novos reads extrados sejam anexados ao arquivo criado na
etapa anterior.
sff_extract

-a -l LMP_Linkers.fasta
-s mix_in.iontor.fastq
-x mix_traceinfo_in.iontor.xml
-i "insert_size:3500,insert_stdev:500"
FRA-257_40X.sff

Outro ponto importante a opo -i, que adiciona as informaes do inserto ao arquivo XML, no
caso ns adicionamos o tamanho do inserto e o desvio padro deste, respectivamente, 3500 e 500 bp.
Repetimos o mesmo processo com a segunda biblioteca de mate-pair, no caso alterando o tamanho do
inserto para 8900 bp.
sff_extract

-a -l LMP_Linkers.fasta
-s mix_in.iontor.fastq
-x mix_traceinfo_in.iontor.xml
-i "insert_size:8900,insert_stdev:500"
C28-140_40X.sff

Por fim, executamos a montagem com o mesmo comando do mira:


mira
--project=frag
--job=denovo,genome,accurate,iontor
-GE:not=4 -OUT:ora=1
IONTOR_SETTINGS -AS:mrpc=100
Note que no informamos o tamanho do inserto pois essa informao j est embutida no arquivo
xml. O resultado de todas as configuraes de montagem para o Mira 3.4 est na tabela 6.1.
frag

LMP 3.5

LMP 8.9

todos

Contigs Grandes
Nmero de contigs
Consenso
Cobertura (%):
Maior Contig
N50
N90
N95

76
4,606,198
98%
358,908
119,555
41,691
31,604

1,617
4,878,703
104%
7,696
3,928
1,950
1,223

2,766
4,156,500
89%
26,661
1,950
667
578

349
4,936,678
105%
414,460
167,387
31,608
1,861

Todos
Nmero de contigs
Consenso
Maior Contig
N50
N90
N95
Leituras Utilizadas

76
4,606,198
358,908
119,555
41,691
31,604
1,085,429

1,716
4,915,162
7,696
3,923
1,869
1,128
2,235,506

5,987
5,133,612
26,661
1,422
334
255
4,384,827

2,753
6,509,621
414,460
126,091
616
506
2,906,577

Tabela 6.1: Resultados das montagens do Mira

6.1.4

Fazendo uma montagem mista com o Mira 3.9

Apesar de ainda estar em desenvolvimento, a verso do Mira 3.9 oferece um melhor suporte a dados do
Ion Torrent alm de um novo formato de arquivo de configurao para as corridas, que facilita muito a
execuo de corridas que combinam diferentes bibliotecas.
58

Para montar o dataset de fragmentos utiliza-se o seguinte arquivo, chamado frag.manifest. Exemplo:
project = frag
job = genome,denovo,accurate
parameters = -GE:not=4 IONTOR_SETTINGS -AS:mrpc=100
readgroup = fragment
technology = iontor
data = frag_in.iontor.fastq frag_traceinfo_in.iontor.xml
Note que os parmetros esto definidos no topo do arquivo, mas o nome dos arquivos esto definidos
na seo readgroup em vez de serem determinados pela conveno de nomes. Mantivemos os mesmos
nomes de arquivos dos exemplos do mira 3.4, mas poderamos t-los chamado de qualquer outro nome
que quisssemos. Para executar a montagem digita-se o comando:
mira frag.manifest
O uso do arquivo de configurao se torna mais til quando temos mais de um readgroup:
project = mix
job = genome,denovo,accurate
parameters = -GE:not=4 IONTOR_SETTINGS -AS:mrpc=100
readgroup = frag
data = C11-127_40X.fastq C11-127_40X.xml
technology = iontor
readgroup = lmp89
data = C28-140_40X.fastq C28-140_40X.xml
technology = iontor
templatesize = 8328 9774
segmentplacement = ---> --->
readgroup = lmp35
data = FRA-257_40X.fastq FRA-257_40X.xml
technology = iontor
templatesize = 3075 3863
segmentplacement = ---> --->
Note que definimos 3 readgroups, um para cada tipo de biblioteca. Definimos tambm o intevalo
vlido para o tamanho do inserto das bibliotecas de mate-pair, assim como a sua orientao. Veja que
dessa vez utilizamos uma conveno de nomes completamente diferente, algo que no seria possvel no
mira 3.4.
Na tabela 6.2 podemos ver os resultados da montagem de diferentes combinaes de bibliotecas.
Number of contigs: Total consensus: Largest contig: N50 contig size: N90 contig size: N95 contig
size:

6.1.5

Interpretando os resultados

Na tabela 6.1 vemos os resultados da montagem para as diferentes bibliotecas e tambm a montagem
mista que utiliza todas elas. As estatsticas esto divididas em duas sees: Contigs Grandes e Todos.
A primeira mostra as estatsticas somente dos contigs com mais de 500 bp e que satisfazem certos critrios
de cobertura, j a segunda seo mostra as estatsticas de todos os contigs gerados, independentemente do
tamanho e da cobertura2 . Para avaliar a montagem podemos comear olhando para o Total Consensus,
para verificar se o valor est de acordo com o tamanho esperado do genoma. Em seguida, verifica-se o
2 Com

exceo dos contigs filtrados pelos critrios estabelecidos no momento da montagem

59

frag

lmp35

lmp35 + frag

lmp89

lmp89 + frag

Contigs Grandes
Nmero de Contigs
Consenso
Cobertura (%)
Maior contig
N50
N90
N95

79
4,633,751
99,9%
231,197
93,793
35,799
26,409

223
4,573,815
98,6%
188,021
40,235
11,397
7,035

55
4,632,400
99,8%
590,852
204,781
46,501
36,041

348
4,562,390
98,3%
99,306
30,520
5,929
3,710

54
4629,730
99,8%
540,324
185,223
55,558
45,094

Todos
Nmero de Contigs
Consenso
Cobertura (%)
Maior Contig
N50
N90
N95
Leituras utilizadas

79
4,633,751
99,9%
231,197
93,793
35,799
26,409
1,022,516

260
4,585,603
98,8%
188,021
40,235
11,378
6,703
2,302,069

146
4,770,620
102,8%
590,852
179,289
40,957
32,292
3,246,379

410
4,586,296
98,8%
99,306
30,520
5,811
3,502
2,319,887

104
4,714,793
101,6%
540,324
185,146
51,490
41,464
3,300,475

Tabela 6.2: Resultados da montagem do Mira 3.9


nmero total de contigs. Quanto maior esse nmero, mais fragmentada est a montagem e mais gaps
ela apresenta.
Outra estatstica muito importante so os Nxx: N50, N90 etc. O N50 representa o tamanho do
contig tal qual 50% do Total Consensus est representado por contigs iguais ou de mesmo tamanho.
De maneira similar se define o N90, o N95 ou qualquer outro que se queira. Na figura 6.2 vemos o grfico
da soma dos tamanhos dos contigs: do maior para o menor, esto indicados os pontos em que a soma
do tamanho representa 50%, 90% e 95% da soma total, e os respectivos valores de N50, N90 e N95. O
N50 normalmente reportado nas publicaes que tratam de montagem de genomas porque ele um
compromisso entre a capacidade do montador de gerar grandes contigs mas tambm em no fragmentar
muito o genoma.
Analisando os dados da tabela 6.2, vemos que a combinao de uma biblioteca de mate-pair com
uma de fragmentos gera contigs maiores (o N50 aumenta aproximadamente 5), e um nmero menor de
contigs grandes. Por outro lado, se olharmos para os dotplots gerados para todos esses datasets (6.3),
vemos que o nmero de contigs que se alinham fora da diagonal aumenta, o que indica um maior nmero
de misassemblies.

6.1.6

Comparando a montagem com uma referncia

Quando se faz a montagem de um genoma conhecido, possvel avaliar a qualidade de montagem


alinhando os contigs contra esse genoma. Uma ferramenta para fazer isso o MUMmer, disponvel em:
http://mummer.sourceforge.net/
Utiliza-se para fazer o alinhamento o comando nucmer, que um alinhador muito rpido para um
pequeno conjunto de sequncias:
nucmer -maxmatch -c 100 -p <name> ref.fasta conrigs.fasta
Esse comando vai gerar um arquivo chamado <name>.delta que contm todos, alinhamentos entre os
contigs e a referncia codificados em um formato compacto, propcio para o processamento por software.
Ou seja, no um formato para ser visualizado diretamente por pessoas. As opo -maxmatch pede para
o programa tentar todas as ancras de alinhamento, mesmo se elas no forem nicas, e a opo -c 100
pede para remover alinhamentos muito curtos, com menos de 100bps.
Em seguida, utiliza-se o comando delta-filter para filtrar os alinhamentos e tornar a visualizao mais
simples:
delta-filter -r <name>.delta > <name>.delta.r
60

Assembly Statistics
105

4,750,000

100
4,500,000

95
4,250,000

90
4,000,000

85

3,750,000

75

3,500,000

70

3,250,000

65

3,000,000

60

2,750,000

55

2,500,000

50

2,250,000

N95=30,290 bp
N90=36,060 bp

45

2,000,000

40

1,750,000

35
1,500,000

30
1,250,000

N50=119,186 bp

25

1,000,000

20

750,000

15
10

500,000

250,000

10

15

20

25

30

35

40

45

50

55

60

65

70

75

80

Contig Number

Figura 6.2: Grfico da soma do tamanho dos contigs para o dataset de fragmentos.
A opo -r diz para o programa escolher o melhor alinhamento em relao referncia. possvel
tambm filtrar pelo tamanho do alinhamento, com a opo -l. Por exemplo, -l 1000 vai mostrar
somente os alinhamentos 1kbp ou mais.
Por fim utilize o comando mummerplot para gerar o grfico de comparao dos contigs contra a
referncia:
mummerplot -large -layout -p <name> <name>.delta.r
O mummerplot utiliza o gnuplot para gerar os grficos, por isso necessrio que esse programa esteja
instalado. Tambm possvel gerar um arquivo de imagem com a opo --png ou um Postscript com
--ps. Podemos ver o resultado do mmumerplot na figura 6.4.

6.1.7

Visualizando a montagem no Tablet

possvel visualizar a montagem dos contigs, ou seja, a posio de cada read nos contigs, utilizando o
programa Tablet[22], que est disponvel em:
http://bioinf.scri.ac.uk/tablet/
Esse programa possui instalador grfico e suporta alguns formatos de alinhamento, entre eles o
formato ACE que pode ser gerado pelo Mira com a opo -OUT:ora=1. Caso o Mira no tenha rodado
com essa opo, fcil converter o arquivo .maf em .ace com o comando:
convert_project

-f maf -t ace <input>.maf <output>

Tendo o arquivo .ace basta clicar em Open Assembly e escolh-lo na janela de dilogo. No painel
da esquerda est a lista de contigs. Quando se clica em um deles o painel central mostra os alinhamentos
(ver figura 6.5).

61

Cumulative Length

Cumulative Length (%)

80

+ Frag
Frag
3.5 kbp
8.9 kbp
Figura 6.3: Dotplot de todas as bibliotecas montadas com o mira 3.9. Na primeira coluna vemos o dotplot
das bibliotecas de fragmentos, LMP 3.5kbp e LMP 8.9 kbp, e na segunda coluna vemos a combinao
desses bibliotecas junto com a de fragmentos.
62

Figura 6.4: Dotplot da montagem do dataset de fragmentos deita pelo mummerplot.

Figura 6.5: Visualizador de montagem Tablet

63

64

Captulo 7

Apndices
7.1

Ordem dos gentipos

O formato VCF define a seguinte expresso para ordenar os gentipos nos campos GL e PL:
F (j, k) = k (k + 1) + j

(7.1)

Para aplicar a frmula, associamos a base da referncia com o valor 0, e as bases alternativas com os
valores 1, 2, 3, .... Depois, geramos todos os pares distintos (para uma combinao A,B e B,A, mantemos
somente A,B) e os ordenamos de acordo com a funo F . A ordem para 2,3 e 4 gentipos :
2 AA, AB, BB
3 AA, AB, BB, AC, BC, CC
4 AA, AB, BB, AC, BC, CC, AD, BD, CD, DD
Por exemplo, se a referncia for A e a variante for T, a ordem dos gentipos :
AA,AT,TT
E se a referncia for A e os gentipos as variantes forem C e T, a ordem :
AA,AT,TT,AC,CT,CC

7.2

Pileup format

Podemos pensar que o arquivo BAM organizado em torno dos reads, mas muitas vezes estamos interessados na informao de alinhamento base-a-base. O formato pileup faz uma representao texto
organizada em torno das posies genmicas. Em outras palavras, para cada base do genoma ele empilha as bases dos reads. O resultado uma tabela como a mostrada abaixo:
ecoli 1 A 7
^b.^.^O,^E,^D,^A,^J, 9?4===5
ecoli 2 G 8
..,,,,,^t,
9?)===-)
ecoli 3 C 10 ..,,,,,,^w.^>.
5?,=7=5)B8
ecoli 4 T 10 ..,,,,,,..
5?$(&(($B8
ecoli 5 T 13 ..,,,,,,..^j.^j,^E,
5?4=7=5)B8;!!
ecoli 6 T 13 ..,,,,,,...,,
5?4=7=5)B8;!!
ecoli 7 T 13 ..,,,,,,...,,
((4=7=5)((2!!
ecoli 8 C 14 ..,,,,,,...,,^g.
:?6=7=5)>1=!!=
ecoli 9 A 15 ..,,,,,,...,,.^w.
;?6;975+A4;!!=A
O significado de cada coluna o seguinte:
1. Contig: Nome do contig/cromossomo
2. Posio: Posio no contig/cromossomo (iniciando em 1)
3. Referncias: Base na referncia
4. Reads: Nmero de reads mapeados na posio
5. Bases: Esse o campo mais complexo do arquivo, os smbolos tm os seguintes significados:
65

. Indica que o read possui a mesma base que a referncia


, Indica que o read possui a mesma base na fita reversa da referncia
ACGTN Indica uma troca pela base indicada
acgtn Indica uma troca pela base indicada na fita reversa
+[num][bases] Indica uma insero de tamanho [num], com as bases [bases]. Por exemplo:
+2AG representa uma insero das bases AG, j +2AGTC representa uma insero das bases
AG seguida de duas substituies
-[num][bases] Indica uma deleo de tamanho [num], com as bases [bases]. Por exemplo:
-2AG representa a deleo das bases AG.
^[Q] Indica o incio do read, o caracter seguinte ao ^ indica o mapping quality em codificao
fastQ
$ Indica o final do read

6. Qualidades: Qualidade das bases em codificao fastQ

Para gerar o pileup de um BAM utiliza-se o comando mpileup do samtools da seguinte maneira:

samtools mpileup -f <referencia> <align.bam> > result.pileup

Se o arquivo possuir regies com cobertura muito alta, preciso especificar o parmetro -d <max cov>,
cujo default 250.

7.3

Samtools VCF file

O resultado do comando mpileup do samtools no uma lista de SNPs, mas sim um BCF intermedirio
que ser utilizado para fazer a chamada. Nesse arquivo, vale ressaltar o campo I16, que uma lista de 16
estatsticas que podem ser utilizadas no variant calling (tabela 7.1). Nessa tabela vemos a quantidade de
bases que concordam com a referncia e as que esto diferentes da referncia (non-ref) em ambas as fitas,
vemos tambm as somas das qualidades ref e non-ref, a soma dos quadrados das qualidades, tambm
vemos a soma dos mapping qualities e os quadrados dos mapping qualities. Nos ltimos campos temos
a soma tail-distance, que a distncia da posio do read em relao aos extremos dele. Suponha a base
na posio k do read de comprimento l, a tail distance nesse caso min(k, l k).
Tambm podemos ver uma coluna chamada FORMAT, seguida por uma coluna para cada amostra.
A coluna FORMAT descreve o formato da informao de gentipo e nas colunas seguintes temos os
valores de gentipo para cada amostra. No caso temos o formato PL, que mostra a probabilidade de
cada gentipo em escala phred. A ordem dos gentipos definida pelo formato VCF. Para mais detalhes
veja a seo5.1.
66

Pos.
1
2
3
4

Descrio
number of
number of
number of
number of

reference Q13 bases on the forward strand


reference Q13 bases on the reverse strand
non-ref Q13 bases on the forward strand
non-ref Q13 bases on the reverse strand

5
6
7
8

sum
sum
sum
sum

of
of
of
of

reference base qualities


squares of reference base qualities
non-ref base qualities
squares of non-ref base qualities

9
10
11
12

sum
sum
sum
sum

of
of
of
of

ref mapping qualities


squares of ref mapping qualities
non-ref mapping qualities
squares of non-ref mapping qualities

13
14
15
16

sum
sum
sum
sum

of
of
of
of

tail distance for ref bases


squares of tail distance for ref bases
tail distance for non-ref bases
squares of tail distance for non-ref

Tabela 7.1: Descrio dos valores do campo I16 gerado pelo samtools mpileup

7.4

Script para converter os nomes dos cromossomos em um


arquivo VCF

Cdigo do script addchr.pl, utilizado para mudar o nome dos cromossomos no arquivo VCF do dbSNP:
#!/usr/bin/env perl
sub addchr {
my $line=shift;
if($line =~ /^(\d+|X|Y)/) {
$line="chr$line";
}elsif($line =~ /^MT/) {
$line =~ s/(^MT)/chrM/;
}
return $line;
}
while(<>) {
if(/^#/) {
if (/##contig=<ID=(.*?),(.*)/) {
#
print "1=$1 2=$2\n";
print "##contig=<ID=",addchr($1),",$2\n";
} else {
print;
}
} else {
print addchr($_);
}
}

67

68

Referncias

69

70

Lista de Figuras
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8

Evoluo do custo de sequenciamento por megabase. Fonte: http://www.genome.gov/


sequencingcosts/. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Processo da amostra de Long Mate Pair. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Reao de incorporao de uma base pela polimerase. . . . . . . . . . . . . . . . . . . . . 8
Flowgram da sequncia AATCTTCGT... . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Estrutura da probes utilizadas pelo SOLiD . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Algumas etapas do processo de sequenciamento: ligao do primeiro primer. . . . . . . . . 10
Algumas etapas do processo de sequenciamento: Ligao do segundo primer. . . . . . . . 12
Esquema de cobertura do template pelos probes para uma leitura de 25 bp. . . . . . . . . 13

2.1

Grfico da funo que calcula o Phred Score . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.1
3.2
3.3
3.4
3.5
3.6

Exemplos de alinhamentos e os respectivos registros em formato SAM[18]. . . . . . . . . .


Sensitividade dos algortmos do tmap e do bowtie2 (Amostra de E. Coli O104H4) . . . . .
Performance dos algoritmos do tmap (Amostra de E. Coli O104H4) . . . . . . . . . . . . .
IGV mostrando os alinhamentos do reads na regio do gene MTRR . . . . . . . . . . . . .
IGV mostrando os alinhamentos dos reads na regio do gene MTRR . . . . . . . . . . . .
Popup boxes do IGV. A) Popup que aparece quando se deixa o cursor sobre um dos reads.
B) popup mostrado quando se deixa o cursor sobre o grfico de cobertura. . . . . . . . .
IGV com os alinhamentos no modo colapsado. Destaque para duas posies com trocas
de nucleotdeos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

26
31
32
36
37

4.1
4.2
4.3
4.4

Exemplo de arquivo bedDetail . . . . . . . . . . .


UCSC Table Browser site . . . . . . . . . . . . .
Escolha de regies ao exportar arquivo BED . . .
Diferena entre os tipos de arquivos BED gerados

.
.
.
.

40
42
42
44

6.1
6.2
6.3

Estrutura do read de mate-pair do Ion Torrent . . . . . . . . . . . . . . . . . . . . . . . .


Grfico da soma do tamanho dos contigs para o dataset de fragmentos. . . . . . . . . . . .
Dotplot de todas as bibliotecas montadas com o mira 3.9. Na primeira coluna vemos o
dotplot das bibliotecas de fragmentos, LMP 3.5kbp e LMP 8.9 kbp, e na segunda coluna
vemos a combinao desses bibliotecas junto com a de fragmentos. . . . . . . . . . . . . .
Dotplot da montagem do dataset de fragmentos deita pelo mummerplot. . . . . . . . . . .
Visualizador de montagem Tablet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

57
61

3.7

6.4
6.5

71

. . .
. . .
. . .
pelo

. . . . . . . . . . . . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
UCSC Table Browser.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

38
38

62
63
63

72

Lista de Tabelas
1.1
1.2
1.3
1.4

Relao entre a razo beads/fragmentos,


bilidade de empty beads. . . . . . . . . .
Codificao das cores em nmeros. . . .
Leitura de bases pelas probes do SOLiD
Codificao de bases para cores . . . . .

a probabilidade de
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .

2.1
2.2
2.3

Cdigo IUPAC para representar o DNA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15


Valores de qualidade phred, probabilidades de erro e acurcia . . . . . . . . . . . . . . . . 16
Conversores de SFF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.1
3.2
3.3
3.4
3.5

Headers do arquivo SAM . . . . . . . . . . . . . . .


Alinhamento no arquivo SAM . . . . . . . . . . . . .
Significado e valor de cada flag do format SAM. . . .
Argumentos comuns a todos os comandos do Picard.
Algoritmos do TMAP . . . . . . . . . . . . . . . . .

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

24
24
25
29
30

5.1
5.2
5.3
5.4

Exemplo de lista de variantes em arquivo VCF (parte obrigatria). . . .


Exemplo de lista de variantes em arquivo VCF (definio de gentipos).
Lista de parmetros para Torrent Suite Variant Caller (TSVC) . . . . .
Lista de efeitos preditos pelo snpEff . . . . . . . . . . . . . . . . . . . .

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

46
46
51
53

6.1
6.2

Resultados das montagens do Mira . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58


Resultados da montagem do Mira 3.9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

7.1

Descrio dos valores do campo I16 gerado pelo samtools mpileup . . . . . . . . . . . . . . 67

73

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

beads policlonais
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

e
.
.
.
.

a
.
.
.
.

proba. . . . . 8
. . . . . 11
. . . . . 11
. . . . . 12

74

Referncias Bibliogrficas
[1] P. Bergveld. Thirty years of isfetology: What happened in the past 30 years and what may happen
in the next 30 years. Sensors and Actuators B: Chemical, 88(1):1 20, 2003. ISSN 0925-4005.
doi: 10.1016/S0925-4005(02)00301-5. URL http://www.sciencedirect.com/science/article/
pii/S0925400502003015.
[2] B Chevreux, T Pfisterer, B Drescher, A J Driesel, W E G Mller, T Wetter, and S Suhai. Using
the miraEST assembler for reliable and automated mRNA transcript assembly and SNP detection
in sequenced ESTs. Genome Research, 14(6):11471159, 2004.
[3] D Earl, K Bradnam, J S John, A Darling, D Lin, J Fass, H O K Yu, V Buffalo, D R Zerbino, and
M Diekhans. Assemblathon 1: A competitive assessment of de novo short read assembly methods.
Genome Research, 21(12):22242241, 2011.
[4] Karen Eilbeck, Suzanna E Lewis, Christopher J Mungall, Mark Yandell, Lincoln Stein, Richard
Durbin, and Michael Ashburner. The Sequence Ontology: a tool for the unification of genome
annotations. Genome Biol, 6(5):R44, 2005.
[5] B Ewing, L D Hillier, M C Wendl, and P Green. Base-calling of automated sequencer traces
usingPhred. I. Accuracy assessment. Genome Research, 8(3):175185, 1998.
[6] Paolo Ferragina and Giovanni Manzini. An experimental study of an opportunistic index. Society
for Industrial and Applied Mathematics, January 2001.
[7] UCSC Genome. Bed format. http://genome.ucsc.edu/FAQ/FAQformat#format1, 2012.
[8] The SAM Format Speciation Working Group. The sam format speciation (v1.4-r985). http:
//samtools.sourceforge.net/SAM1.pdf, 2012.
[9] Broad Institute. Picard faq.
title=Main_Page, 2012.

http://sourceforge.net/apps/mediawiki/picard/index.php?

[10] D Karolchik, A S Hinrichs, T S Furey, K M Roskin, C W Sugnet, D Haussler, and W J Kent. The
UCSC Table Browser data retrieval tool. Nucleic Acids Research, 32(suppl 1):D493D496, 2004.
[11] B. Langmead, C Trapnell, M. Pop, and S L Salzberg. Ultrafast and memory-efficient alignment of
short DNA sequences to the human genome. Genome Biol, 10(3):R25, 2009.
[12] Ben Langmead and Steven L Salzberg. Fast gapped-read alignment with Bowtie 2. Nat Meth, 9(4):
357359, March 2012.
[13] Ben Langmead, Michael C Schatz, Jimmy Lin, Mihai Pop, and Steven L Salzberg. Searching for
SNPs with cloud computing. Genome Biol, 10(11):R134, 2009.
[14] H Li. Exploring single-sample SNP and INDEL calling with whole-genome de novo assembly.
Bioinformatics, 28(14):18381844, July 2012.
[15] H Li and R Durbin. Fast and accurate short read alignment with Burrows-Wheeler transform.
Bioinformatics, 25(14):17541760, July 2009.
[16] H Li and R Durbin. Fast and accurate long-read alignment with BurrowsWheeler transform.
Bioinformatics, 26(5):589595, 2010.
75

[17] H Li, J Ruan, and R Durbin. Mapping short DNA sequencing reads and calling variants using
mapping quality scores. Genome Research, 18(11):18511858, November 2008.
[18] H Li, B Handsaker, A Wysoker, T Fennell, J Ruan, N Homer, G Marth, G Abecasis, R Durbin,
and 1000 Genome Project Data Processing Subgroup. The Sequence Alignment/Map format and
SAMtools. Bioinformatics, 25(16):20782079, August 2009.
[19] R Li, Y Li, K Kristiansen, and J Wang. SOAP: short oligonucleotide alignment program. Bioinformatics, 24(5):713714, February 2008.
[20] R Li, C Yu, Y Li, T W Lam, S M Yiu, K Kristiansen, and J Wang. SOAP2: an improved ultrafast
tool for short read alignment. Bioinformatics, 25(15):19661967, July 2009.
[21] D Lipman and W Pearson. Rapid and sensitive protein similarity searches. Science, 227(4693):
14351441, March 1985.
[22] I Milne, M Bayer, L Cardle, P Shaw, G Stephen, F Wright, and D Marshall. Tabletnext generation
sequence assembly visualization. Bioinformatics, 26(3):401402, February 2010.
[23] Gordon Moore. Lei de moore. http://en.wikipedia.org/wiki/Moores_law, 2012.
[24] NCBI. Standard flow format. http://www.ncbi.nlm.nih.gov/Traces/trace.cgi?cmd=show&f=
formats&m=doc&s=format#sff, 2012.
[25] Z Ning. SSAHA: A Fast Search Method for Large DNA Databases. Genome Research, 11(10):
17251729, October 2001.
[26] 1000 Genomes Project. Variant call format specification version 4.1. http://www.1000genomes.
org/wiki/Analysis/Variant%20Call%20Format/vcf-variant-call-format-version-41, 2012.
[27] ENCODE Project. Standards, guidelines and best practices for rna-seq. http://encodeproject.
org/ENCODE/protocols/dataStandards/ENCODE_RNAseq_Standards_V1.0.pdf, 2012.
[28] J.C. Roach, C. Boysen, K. Wang, and L. Hood. Pairwise end sequencing: a unified approach to
genomic mapping and sequencing. Genomics, 26(2):345353, 1995.
[29] Jonathan M Rothberg, Wolfgang Hinz, Todd M Rearick, Jonathan Schultz, William Mileski, Mel
Davey, John H Leamon, Kim Johnson, Mark J Milgrew, Matthew Edwards, Jeremy Hoon, Jan F
Simons, David Marran, Jason W Myers, John F Davidson, Annika Branting, John R Nobile, Bernard P Puc, David Light, Travis A Clark, Martin Huber, Jeffrey T Branciforte, Isaac B Stoner,
Simon E Cawley, Michael Lyons, Yutao Fu, Nils Homer, Marina Sedova, Xin Miao, Brian Reed,
Jeffrey Sabina, Erika Feierstein, Michelle Schorn, Mohammad Alanjary, Eileen Dimalanta, Devin
Dressman, Rachel Kasinskas, Tanya Sokolsky, Jacqueline A Fidanza, Eugeni Namsaraev, Kevin J
Mckernan, Alan Williams, G Thomas Roth, and James Bustillo. An integrated semiconductor device
enabling non-optical genome sequencing. Nature, 475(7356):348352, April 2104.
[30] S L Salzberg, A M Phillippy, A Zimin, D Puiu, T Magoc, S Koren, T J Treangen, M C Schatz,
A L Delcher, and M Roberts. GAGE: A critical evaluation of genome assemblies and assembly
algorithms. Genome Research, 22(3):557567, 2012.
[31] Lincoln Stein. http://www.sequenceontology.org/gff3.shtml, February 2013.
[32] Cole Trapnell, Lior Pachter, and Steven L Salzberg. TopHat: discovering splice junctions with
RNA-Seq. Bioinformatics, 25(9):11051111, April 2009.
[33] D. Wheeler and M Burrows. A block-sorting lossless data compression algorithm. Digital Systems
Research Center Report, 124, 1994.

76

Você também pode gostar