apostila_bioinfo_2.0.1

Embed Size (px)

Citation preview

  • Introduo anlise de dados de sequenciadores de nova geraoVerso 2.0.1

    Leonardo Varuzza

    Abril 2013

  • 2

  • Sumrio

    1 Introduo 51.1 O que NGS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.2 Como funciona o NGS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

    1.2.1 Preparo da amostra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61.2.2 Amplificao de biblioteca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.2.3 Sequenciamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.2.4 Ion Torrent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81.2.5 SOLiD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

    1.3 Aplicaes do NGS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.3.1 Ressequenciamento genmico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.3.2 Target Sequencing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.3.3 RNA Seq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.3.4 Sequenciamento denovo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141.3.5 Metagenoma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

    2 Arquivos de Sequncia 152.1 Fasta e FastQ Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

    2.1.1 Fasta format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.1.2 FastQ format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

    2.2 SFF File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.2.1 Converter arquivo SFF para Fasta ou FastQ . . . . . . . . . . . . . . . . . . . . . . 18

    2.3 Unmapped BAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.4 XSQ Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

    3 Mapeamento de Sequncias 233.1 SAM e BAM Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

    3.1.1 Estrutura do arquivo SAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233.1.2 BAM File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263.1.3 Samtools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263.1.4 Picard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

    3.2 Mapeando os reads com o TMAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.2.1 Criando o ndice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.2.2 Mapeando os reads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313.2.3 Exemplo: Mapeando os reads de E. coli com o TMAP . . . . . . . . . . . . . . . . 323.2.4 Mapeando dados de Long Mate Pair . . . . . . . . . . . . . . . . . . . . . . . . . . 33

    3.3 Bowtie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343.3.1 Utilizando o Bowtie 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343.3.2 Utilizando o Bowtie 2 com o Ion Torrent . . . . . . . . . . . . . . . . . . . . . . . . 35

    3.4 Visualizando arquivos BAM com o IGV . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353.4.1 Importanto o genoma de referncia . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

    3

  • 4 Arquivos de Anotao de Genomas 394.1 BED Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394.2 Formatos GFF e GTF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404.3 Gerando arquivos de anotao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

    4.3.1 Obtendo anotaes do UCSC Browser . . . . . . . . . . . . . . . . . . . . . . . . . 414.4 Manipulando arquivos BED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

    4.4.1 Extrair sequncias da regies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

    5 Deteco de Varincias 455.1 VCF Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

    5.1.1 Manipulando arquivos VCF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475.1.2 Indexando as variantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

    5.2 Utilizando o samtools para detectar SNPs . . . . . . . . . . . . . . . . . . . . . . . . . . . 485.2.1 Gerando um arquivo consenso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

    5.3 Utilizando o GATK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495.3.1 Chamando Variantes no GATK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495.3.2 Anotando as variantes com o dbSNP . . . . . . . . . . . . . . . . . . . . . . . . . . 50

    5.4 Utilizando Ion Varriant Caller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505.5 Anotando os SNPs com o snpEff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

    6 Montagem denovo 556.1 Montando o genoma com o Mira . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

    6.1.1 Montando uma biblioteca de fragmentos utilizando o Mira 3.4 . . . . . . . . . . . . 566.1.2 Montando uma biblioteca de mate-pair utilizando o Mira 3.4 . . . . . . . . . . . . 576.1.3 Fazendo uma montagem mista com o Mira 3.4 . . . . . . . . . . . . . . . . . . . . 576.1.4 Fazendo uma montagem mista com o Mira 3.9 . . . . . . . . . . . . . . . . . . . . 586.1.5 Interpretando os resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 596.1.6 Comparando a montagem com uma referncia . . . . . . . . . . . . . . . . . . . . . 606.1.7 Visualizando a montagem no Tablet . . . . . . . . . . . . . . . . . . . . . . . . . . 61

    7 Apndices 657.1 Ordem dos gentipos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 657.2 Pileup format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 657.3 Samtools VCF file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 667.4 Script para converter os nomes dos cromossomos em um arquivo VCF . . . . . . . . . . . 67

    4

  • Captulo 1

    Introduo

    1.1 O que NGS

    Sequenciadores de DNA so equipamentos que leem uma amostra de DNA e geram um arquivo eletrnicocom simbolos que representam a sequncia de bases nitrogenadas A, C, G, T contidas na amostra. Oprimeiro mtodo popular de sequenciamento da DNA foi o de terminao de cadeia de Sanger, publicadoem 1977. Em 1986 foi lanado o primeiro sequenciador automtico de DNA, o ABI 370, e em 1998, oprimeiro sequenciador de eletroforese capilar, o ABI 3700. Com a automatizao foi possvel realizargrandes projetos de sequenciamento, como o genoma humano, do camundongo e outros. Para realizaresses projetos foram montados grandes centros com dezenas de mquinas instaladas e ao custo de bilhesde 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 oobjetivo de acelar e baixar o custo do processo de sequnciamento. Apesar de se diferenciarem conside-ravelmente entre s todos os sequenciadores de NGS se baseiam no processamento paralelo massivo defragmentos de DNA. Enquanto que um sequenciador de eletroforese processa, no mximo, 96 fragmentospor 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 decrsimoem 2004, ano do lanamento do sequenciador 454 da Roche e um decrsimo mais acentuado a partirde 2006 e 2007, anos em que foram lanados os sequenciadores de nova gerao da Illumina e da LifeTechnologies. No grfico, vemos tambm qual seria a reduo de custo, se a tecnologia de sequenciamentotivesse evoluido segundo a lei de Moore[23]. V-se que a evoluo do sequenciamento de DNA foi muitomais acelerada do que dos processadores de computadores. A implicao disso que os sequenciadoresevoluiram muito mais rpido do que os computadores que analisam os dados gerados, da a necessidadecomputacional 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 docusto de apertar o boto start, ainda bastante alto, da ordem de dezenas de milhares de dlares. Ouseja, ampliou-se muito a capacidade dos sequenciadores, permitindo at o sequenciamento de mais de umgenoma por corrida, mas sem reduzir muito o custo de operao do equipamento. Um fator limitante nareduo 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 nucleotdeosatravs de um semicondutor, reduzindo, dessa forma, a complexidade do equipamento e o custo da reaode sequencimento.

    1.2 Como funciona o NGSCada tecnologia de sequenciamento possui uma estratgia diferente, mas em geral podemos identifi-car etapas comums entre todos os sequenciadores1: preparo da amostra, amplificao da biblioteca esequenciamento.

    1.2.1 Preparo da amostraPrimeiro o DNA fragmentado por um processo qumico, mecnico ou enzimtica. Cada um dessesfragmentos chamado de template. No importa qual o mtodo de fragmentao escolhido, importanteque ele quebre o DNA de maneira aletria, de forma que todo o genoma seja coberto de maneira o maisuniforme possvel2.

    Aps a fragmentao, adaptadores, sequncias artificiais conhecidas, so incorporados ao template.Nessa etapa possvel combinar diferentes amostras em uma mesma reao de sequnciamento atravsdo uso de adaptadores com uma pequena parte , normalmente 5 ou 10 bases, diferente. Depois de ligadosesses adaptadores, as amostras so misturadas, amplificadas e sequenciadas juntas. Aps isso, no processode 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 geradostamplates maiores, da ordem de algumas kilobases. So ligados adaptadores complementares nas pontasdo template e ele circularizados. Em seguida feita uma digesto enzimtica que gera um nicofragmento com as duas pontas do template separadas adaptador interno (ver figura 1.2). Apesar de serum processo mais trabalhoso para o preparo de uma bibliotecas simples de fragmentos, o LMP permite adeteco de variaes estruturais em projetos de ressequenciamento e de gerao de scaffolds em projetosde sequenciamento denovo.

    1Nos ltimos anos foram propostas tecnologias que tentam eliminar a etapa de amplificao, sequenciando diretamenteuma nica molecula de DNA, porm todas as tecnologias propostas sofreram de problemas de baixa acurcia e baixothroughput.

    2Uma excesso essa regra o sequenciamento de amplicons, nesse caso o objetivo sequenciar pequenas regies quetem exatamente o tamanho da leitura gerada pelo sequnciador

    6

  • 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 dogenoma ou de expresso do transcriptoma. Por conta disso, as pipelines de anlises normalmente possuemuma etapa em que os reads duplicados so marcados, e consequentemente ignorados nas anlises finais.

    1.2.2 Amplificao de bibliotecaA amplificao de bibliotecas tem como objetivo gerar em um pequeno espao fsico milhares de cpiasde 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. Neleso criados milhes de micro reatores em uma emulso de leo. Esses reatores contm todos os reagentesnecessrios 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 dotemplate na esfera e tambm como primer para a reao de PCR. Ao final do processo a esfera podeestar 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 esferapor reator. As empty beads so eliminadas atravs de uma operao de enriquecimento para beads comtemplate 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 . Porexemplo, se tivermos 10 vezes mais beads do que templates, espera-se que somente 0,47% das beadssejam policlonais. Claro que o efeito secundrio que 90% das beads estejam vazias, porm essas beadsso eliminadas por meio do processo de enriquecimento.

    O principal fator que afeta a etapa de amplificao a quantificao do DNA. Se o DNA for subquan-tificado, ou seja, existe mais DNA na amostra do que o reportado, o resultado vai ser um aumento daquantidade de beads policlonais. Por outro lado, se o DNA for sobrequantificado, ou seja, se existe menosDNA 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 relao1 para 1 entre beads e fragmentos esperasse que mais de 26% das beads sejam policlonais.

    7

  • Razo Policlonal (%) Empty (%)10 0.47 90.55 1.75 81.94 2.65 77.93 4.46 71.72 9.02 60.71 26.4 36.8

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

    1.2.3 SequenciamentoO sequenciador um instrumento que executa uma srie de reaes qumicas. Estes geram sinais que sodetectados e determinam a sequncia de bases template se est sendo analisado. A seguir, vamos mostrao processo de sequenciamento de dois intrumentos que tm abordagens completamente diferentes: o IonTorrent e o SOLiD.

    1.2.4 Ion TorrentA 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 feitadiretamente. A reao de polimerizao gera naturalmente um um H+3, ou seja, um prton, que alterao pH do meio. Essa alterao do pH detectada por um transistor ISFET[1] e convertida em um sinaleltrico (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 apolimerase. Por exemplo, suponha que o incio do fragmento que se deseja sequenciar seja AGT e que osequenciador disponiblize uma certa quantidade de dTTP. A polimerase vai fazer o pareamento do A como T e o sinal vai ser detectado pelo transitor ISFET. Para continuar a reao, a polimerase necessita deum 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

    3A reao de polimerizao tambm gerar um fosfato e esse o caminho de deteo utilizado pelo 454, com a diferenaque a emisso do fosfato no detectada diretamente, mas indiretamente atravs da ativao de uma luciferase que geraluz

    8

  • de fluxos. Podemos ver na figura 1.4 uma representao dos sinais detectados pelo sensor de um nicopoo. 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 homopolme-ros, sequencias contnuas de bases iguais como AAAA, CCCCC e etc4. Nesse caso, todas as bases dohomopolmero vo ser incorporadas em um nico fluxo. Felizmente, o sensor ISFET tem uma respostabastante linear; portanto, se um A tem um sinal x, um AA vai ter um sinal aproximadamente 2x, eassim 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 dechips de silcio. Utilizando o processo CMOS, o mesmo utilizado na fabricao de chips de computadorou sensores de cmeras digitais, so construdos milhes de poos microscpicos um pouco maiores doque as esferas com fragmentos de DNA, de forma que, em cada poo, tenha somente uma esfera. Nochip esto tambm os transitores IsFET que fazem a deteco da mudana de pH, ou seja, cada poopossui o seu prprio pH-gmero para fazer a deteco do sinal[29].

    1.2.5 SOLiDA sigla SOLiD significa Sequencing by Ligation and Detection e descreve bem o processo de sequencia-mento utilizado pelo instrumento. Ao invs de utilizar uma polimerase e detectar a incorparao de cadauma 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, enquantoque as 3 timas so inosinas que anelam de maneira inespecfica. Conectado ltima, inosina temos oflurforo que gerar o sinal luminoso a ser detectado pelo sequenciador (ver fig 1.5).

    n1 n2 n3 n4 n5 x x x

    Fluorforo

    Probe

    Figura 1.5: Estrutura da probes utilizadas pelo SOLiD

    No SOLiD, assim como no Ion Torrent, cada fragmento amplificado milhares de vezes na superfciede uma bead5. Essas beads so ento depositadas e fixadas em uma lmina de vidro. muito importanteter essa fixao, porque sabemos que o sinal luminoso que ser gerado pelo processo de sequenciamentoest vindo da mesma bead (ou seja, da mesma populao de clones geradas de um template) por meiodas coordenadas do ponto luminoso na lmina.

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

    na lmina.

    9

  • A reao de sequenciamento ocorre para cada um dos milhares de clones em cada uma das centenasde milhes de beads depositadas na lmina. As etapas dessa reao so, de maneira simplificada, asseguintes:

    1. Na etapa de construo de biblioteca, adicionado um primer em cada extremidade de cada frag-mento, 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 5bases mais 3 inosinas, temos portanto 45 = 1024 combinaes diferentes de probes. As probes vose anelar ao longo do template. Aps o anelamento, adicionada uma ligase, que vai fixar somentea probe que estiver ao lado de uma ponta 56. Aps a fixao pela ligase ocorre uma lavagem etodas 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 comum florforo, criando assim uma ponta 5 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)

    Template

    primerProbe

    primer

    Template

    Probe

    primer

    Templates1 s2p-2... ...p-1 p0 s3 s4 s5 s6s7

    5primer

    Template

    5

    s1 s2p-2... ...p-1 p0 s3 s4 s5 s6s7

    s1 s2p-2... ...p-1 p0 s3 s4 s5 s6s7

    s1 s2p-2... ...p-1 p0 s3 s4 s5 s6s7

    B. Primeira probe anela ao template euroforo lido.

    A. Primer se liga ao template C. As 3 ltimas bases da probe (as inosinas) so removidas junto com a probe.

    D. Uma nova probe incorporada e o processose repete.

    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 dePA. Todo o processo de incorporao de probes repetido, mas sempre com uma base esquerda (fig1.7). Na tabela 1.3 vemos a relao entre primer, ciclo e bases lidas. Vemos que a cada ligao de probeduas bases so lidas e que cada base lida por duas probes diferentes. Por exemplo, a base s1 lidapelo 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 sequenciamentoe esta a principal caracterstica do SOLiD. Vale a pena tambm resaltar que na segunda ligao, altima base do primer P1 sequenciada, isso muito importante para fazer depois a decodificao dascores para bases.

    6Duas probes consecutivas no ligam porque na extremidade 5 da probe tem o florforo, que impede a ligao 53.7Existe 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.

    10

  • Cor Fluorforo0 Azul FAM1 Verde Cy32 Amarelo TXR3 Vermelho 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 asbases duas vezes, temos que utilizar 5 probes, que se alinham em posies diferentes de P1 e permitemque se cubra todo o fragmento8. Veja a figura 1.8.

    Primer Ciclo Bases LidasPA 1 s1s2PA 2 s6s7PA 3 s11s12. . . . . . . . .PB 1 p0s1PB 2 s5s6PB 3 s10s11. . . . . . . . .

    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 entreas duas primeiras bases da probe, n1 e n2, e a cor do flurforo dada pela tabela 1.4. Essa tabelatem diversas propriedades interessantes: ela simtrica e nenhuma cor se repete na mesma linha ou namesma coluna (como em um jogo de Soduko). Por causa dessas propriedades temos que, se soubermosa primeira base do par e a cor fica determinada a segunda base. Suponhamos que a primeira base dopar seja um T, se a cor lida pela probe for verde, a segunda base , portano, um G. Como o primeiraprobe 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 asegunda base, e assim por diante. Podemos pensar nas cores como transformaes entre bases, e que seessas 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, portantoa primeira base da nossa sequncia um A, o que nos gera o seguinte resultado intermedirio:

    A 1 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 2ACGT 0 2ACGTT 2ACGTTC

    Portanto, a sequncia T313102 codificada em color space representa a sequncia ACGTTC em basespace.

    8Pela construo das probes sequenciaramos tambm as 5 ltimas bases de P1, o que no interessante. Por isso, apso primer PB , adicionado um espaador que desloca a posio inicial do sequenciamento 5 bases para frente.

    11

  • primer

    Template

    Probe

    primer

    Template

    5primer

    Template

    5

    Template

    primerProbe

    s1 s2p-2... ...p-1 p0 s3 s4 s5 s6s7

    s1 s2p-2... ...p-1 p0 s3 s4 s5 s6s7

    s1 s2p-2... ...p-1 p0 s3 s4 s5 s6s7

    s1 s2p-2... ...p-1 p0 s3 s4 s5 s6s7

    B. Como no primer anterior a probe se anela,porm deslocada uma base esquerda.

    A. Um novo Primer se liga ao template umaposio para dentro do primer.

    C. Novamente as inosinas e o uroforo soremovidos.

    D. E o processo segue, sempre com uma basedeslocada esquerda.

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

    n2A C G T

    n1

    A 0 1 2 3C 1 0 3 2G 2 3 0 1T 3 2 1 0

    Tabela 1.4: Codificao de bases para cores

    1.3 Aplicaes do NGSO nmero de aplicaes do NGS ilimitado. Qualquer coisa que possa ser transformada em DNA podeser sequenciada utilizando o mesmo protocolo. Por isso, se algum quiser criar uma nova anlise, bastamodificar 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 genmicoProjetos de ressequenciamento tm como objetivo descobrir diferenas entre o genoma de referncia e ogenoma de interesse. Os projetos de ressequenciamento normalmente buscam encontrar diferenas entreo genoma de uma pessoa saudvel e o genoma de uma pessoa com alguma doena, como o cncer ou umadoena hereditria. O ressequenciamento tambm tem aplicaes agropecurias: pode-se utiliza-lo paraentender 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 mosessa lista, o pesquisador pode compar-la com os genes anotados do organismo para tentar entender arelao entre gentipo e fentipo. Um parmetro importante para o ressequenciamento a coberturamdia do genoma, ou seja, quantas vezes em mdia cada base do genoma foi coberta. Suponha umgenoma de 3 Gbp: para ter uma cobertura de 20 preciso gerar 60 Gbp de dados. Para detectarvariantes germinativas recomendada uma covertura entre 20 e 30, porque essas variantes vo teruma frequncia em torno de 100% para mutaes homozigotas e 50% para variaes heterozigotas. Jpara detectar variantes somticas, necessria uma cobertura maior, porque essas variantes ocorrem

    12

  • P1PA

    PB

    PE

    PD

    PC

    5 10 15 20 250

    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 vaidepender da frequncia mnima que se deseja detectar e da acurcia das leituras geradas.

    1.3.2 Target SequencingO ressequenciamento de um genoma inteiro gera um volume enorme de dados e permite fazer uma iden-tificao completa das variaes no genoma. Porm, muitas vezes, os pesquisadores s esto interessadosnas variaes das regies codificantes, ou at mesmo num subconjunto de genes e, portanto, sequenciartodo o genoma para depois selecionar a parte que interessa bastante ineficiente. Uma alternativa aoressequenciamento completo o target sequencing, na qual a amostra tratada para selecionar somenteas regies de interesse.

    Existem duas principais abordagens para o target sequencing: captura por hibridizao, mtodo utili-zado pelos kits SureSelect da Agilent e TargetSeq da Life, e captura por amplificao como o RainStormda Rain Dance e o AmpliSeq da Life.

    Recomenda-se uma alta cobertra da regio de interesse pois, como estamos restringindo o sequencia-mento s regies de interesse, queremos garantir que todas as bases tenham cobertura suficiente para quepossamos fazer a identificao de variaes de maneira confivel. Uma recomendao corrente cobrir aregio de interesse com uma mdia de cobertura entre 80 e 100 vezes. Mesmo assim, o target sequencingoferece vantagens de custo e de processamento devido ao volume reduzido de dados, um genoma humanosequenciado a 20 gera 60Gbps de sequncias, enquanto que um exoma sequenciado a 100 gera 5Gbpsde dados.

    1.3.3 RNA SeqRNA Seq, tambm chamado the Whole Transcriptome Shotgun Sequencing, o uso de NGS para sequen-ciar cDNA com a inteno de capturar a informao do transcriptoma de um organimo. Ao contrrio deoutras tcnicas, como Microarray ou RT-PCR, o RNA Seq no necessita uma lista pre-definida dos geneque se deseja detectar. A princpio, qualquer transcrito que estiver sendo expresso pode ser detectado seo 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 transcritospolyA, uma cobertura de 20 a 25 milhes de reads curtos mapeados suficiente. Mas para detectartranscritos raros ou variaes e isoformas em uma amostra de mamferos, necessrio uma coberturade 100 a 200 milhes de reads. O projeto ENCODE tambm recomenda a realizao de duas ou maisreplicatas biolgicas. Normalmente no necessrio realizar rplicas tcnicas.

    Um dos problemas em manipular RNA a sua fragilidade. Por isso preciso tomar muito cuidadona 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 auma grande quantidade da massa de RNA de uma clula e, se no for removido da amostra no final, amaioria dos reads ser de RNA ribossomal, o que normalmente no objetivo do experimento. possvelutilizar um kit de depleo de RNA Ribossomol, como o Ribominus da Invitrogen, ou ento fazer umenriquecimento para RNA com calda polyA, como o poly(A) Purist tambm da Invitrogen. Caso hajainteresse tambm em RNAs no codificantes melhor utilizar somente o Ribominus. Caso contrrio, opoly(A) Purist mais eficiente (alguns grupos utilizam os dois para garantir a remoo dos ribossomais).

    1.3.4 Sequenciamento denovoQuando no se tem um genoma de referncia, necessrio realizar a montagem denovo. O processo demontagem denovo muito mais trabalhoso do que o mapeamento com referncia. necessrio ter umacobertura muito maior e os programas de montagem cometem muito mais erros do que os programasde mapeamento. Apesar disso, possvel obter bons resultados na montagem de genomas bacterianoscom relativo pouco esforo. Para genomas de organismos superiores, necessrio combinar diversastecnologias de sequenciamento e utilizar computadores com quantidades massivas de memria RAMpara efetuar o processo de montagem do genoma.

    1.3.5 MetagenomaA 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 sequen-ciando um nico genoma. Porm, a diversidade de micro-organismos presentes no ambiente muito maiordo 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 PCRa sequncia 16s e se compara o resultado contra um banco de dados de bactrias conhecidas. Comisso, 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 DNAextrado da amostra fragmentado e sequenciado. A anlise consiste em montar o metagenomada 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 podeser 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 identificarbases ambguas, ou seja, os casos em que no se sabe ao certo a base correta, mas se sabe que deve serum C ou T ou algo similar. O cdigo completo est na tabela 2.1.

    A AdeninaC CitosinaG GuaninaT (ou U) Timina (ou Uracila)R A ou GY C ou TS G ou CW A ou TK G ou TM A ou CB C ou G ou TD A ou G ou TH A ou C ou TV A ou C ou GN qualquer base. ou - gap

    Tabela 2.1: Cdigo IUPAC para representar o DNA

    Alm da informao da base, os sequenciadores tambm produzem uma estimativa da probablidadeda base detectada estar correta. Usualmente essa probabilidade representada pelo Phred QualityScore, assim chamado porque foi utilizado pela primeira vez no software phred[5]. A frmula paracalcular 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, temoso 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 em100 de estar errada.

    1O score phred construdo com base em uma srie de preditores de qualidade que so calibrados com dados reais paragerar uma estimativa de probabilidade de erro.

    15

  • Q Chance de erro Acurcia da base10 1 em 10 90 %20 1 em 100 99 %30 1 em 1000 99,9 %40 1 em 10000 99,99 %50 1 em 100000 99,999 %

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

    5

    10

    15

    20

    25

    30

    35

    40

    0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1

    P hr e

    d S c

    o re

    P de erro

    Phred Score

    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 acurciamaior que 40, porm, a acurcia das etapas anteriores de 99,99%, e a acurcia do processo inteiro nopode 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 deinteiros, o que adiciona de 2 a 3 bytes de dados para cada base sequenciada (1 a 2 caracteres para o valorda qualidade e um caracter como separador entre os valores). Antes do NGS essa forma de representaoera prtica porque o volume de dados era pequeno, mas recentemente se tornou necessrio criar novosformatos que economizassem bytes.

    Neste captulo, vamos analisar os formatos de representao de dados de sequenciamento mais usadose como manipul-los utilizando ferramentas gratuitas.

    2.1 Fasta e FastQ Files2.1.1 Fasta formatA forma mais universal de representar sequncias biolgicas o formato fasta. Este formato foi criadopara o programa de alinhamento de DNA e protenas FASTA[21]. Por ser um formato texto muitosimples, ele foi sendo adaptado para as mais diversas aplicaes. Mas por outro lado muitas aplicaesno 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 iniciamcom o caracter ; so consideradas comentrios, mas algumas aplicaes utilizam o caracter # para essafuno. Abaixo vemos um exemplo de arquivo fasta:

    16

  • >HSBGPG Human gene for bone gla protein (BGP) (fragment)GGCAGATTCCCCCTAGACCCGCCCGCACCATGGTCAGGCATGCCCCTCCTCATCGCTGGGCACAGCCCAGAGGGTATAAACAGTGCTGGAGGCTGGCGGGGCAGGCCAGCTGAGTCCTGAGCAGCAGCCCAGCGCAGCCACCGAGACACCATGAGAGCCCTCACACTCCTCGCCCTATTGGCCCTGGCCGCACTTTGCATCGCTGGCCAGGCAGGTGAGTGCCCCCCTGGAGCCCAGGAGGGAGGTGTGTGAGCTCAATCCGGACTGTGACGAGTTGGCTGACCACATCGGCTTTCAGGAGGCCTATCGGCGCTTCTACGGCCCGGTCTAGGGTGTCGCTCTGCTGGCCTGGCCGGCAACCCCAGTTCTGCTCCTCTCCAGGCACCCTTCTTTCCTCTTCCCCTTGCCCTTGCCCTGACCTCCCAGCCCTATGGATGTGGGGTCCCCATCATCCCAGCTGCTCCCAAATAAACTCCAGAAG>HSGLTH1 Human theta 1-globin gene (fragment)CCACTGCACTCACCGCACCCGGCCAATTTTTGTGTTTTTAGTAGAGACTAAATACCATATAGTGAACACCTAAGACGGGGGGCCTTGGATCCAGGGCGATTCAGAGGGCCCCGGTCGGAGCTGTCGGAGATTGAGCGCGCGCGGTCCCGGGATCTCCGACGAGGCCCTGGACCCCCGGGCGGCGAAGCTGCGGCGCGGCGCCCCCTGGAGGCCGCGGGACCCCTGCTTCTTGCCGTGCTCTCTCGAGGTCAGGACGCGAGAGGAAGGCGC

    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. Depoisdisso temos o corpo de cada sequncia, o padro manda que a sequncia seja quebrada em linha entre 70e 132 caracteres. No exemplo, est uma sequncia de nucleotdeos, mas o arquivo fasta pode ser utilizadopara representar qualquer tipo de sequncia biolgica.

    O arquivo fasta pode vir acompanhado de um arquivo com extenso .qual. Nesse arquivo estoos 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 separadospor espaos. Abaixo temos um exemplo de arquivo .fasta e o respectivo arquivo .qual.

    FASTA

    >RWBG8:4:5CTCATTGCCCTCAACACAGTGGAGCGAATTCCTTTGGAAAACCTGCAGATCATCAGAGGAAATATGTACTACGAAAATTCCTATGCCTTAGCAGTCTTATCTAACTATGA

    QUAL

    >RWBG8:4:523 16 31 29 30 26 31 31 32 25 32 33 33 29 32 32 31 29 29 29 33 29 31 31 33 3130 22 29 20 26 18 24 26 12 26 19 25 28 29 13 29 24 32 32 30 30 30 34 33 33 3233 33 33 33 33 33 29 33 33 25 31 31 29 29 24 24 24 24 24 24 29 29 31 31 18 2925 29 21 25 25 13 13 15 19 26 22 26 27 28 29 25 31 28 33 29 33 33 33 33 33 2933 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 "^>"

    Para contar o nmero de bases no arquivo pode-se utilizar este outro comando:

    grep -v "^[>;]" | wc -c

    2.1.2 FastQ formatO formato fasta/qual foi amplamente utilizado para representar sequncias geradas por sequenciadoresde Sanger. Porm com o aumento da capacidade dos sequenciadores os arquivos neste formato passarama ficar muito pesados. Uma maneira de reduzir o volume de dados foi a criao do formato fastQ. Nesteformato as bases e os valores de qualidade so representados no mesmo arquivo. Alm disso as qualidadesso codificadas com caracteres ASCII ao invs de uma sequncia de nmeros. Essa codificao maiseficiente 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 arquivofastQ:

    17

  • @SEQ_IDGATTTGGGGTTCAAAGCAGTATCGATCAAATAGTAAATCCATTTGTTCAACTCACAGTTT+!*((((***+))%%%++)(%%%%).1***-+*))**55CCF>>>>>>CCCCCCC65

    Nesse formato, o cabealho definido pelo caracter @, e seguido pelo identificador da sequncia. Nalinha seguinte tem-se a sequncia e, ao contrrio do formato fasta, que manda quebrar a sequncia emdiversas 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, ena 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 caracterASCII 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 phredmais 64, o que pode causar problemas para quem estiver manipulando esses arquivos. A partir da verso1.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 FileO Standard Flow Format[24], ou SFF, um arquivo binrio que foi desenvolvido em conjunto pela454 Life Science, o Whitehead Institute e pelo Sanger Institute para representar sequncias geradaspor 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. Porexemplo, a sequncia AATGG representada com o equivalente a A3 T1 G2, mas, como a relaoentre 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.1G1.5. Tal informao perdida devido aos arredondamentos executados quando se converte de SFFpara fasta, mas um programa que trabalhe diretamente com SFF pode utilizar essa informao pararesolver 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 porread. Alm de informar o nome de cada read e o tamanho, esse cabealho contm as informaes declipping de adaptador e clipping de qualidade. Tendo o arquivo SFF, possvel extrair as sequnciassem o clipping, o que pode ser til para algumas aplicaes.

    2.2.1 Converter arquivo SFF para Fasta ou FastQMuitos programas no lidam diretamente com arquivos SFF, por isso necessrio fazer a converso paraformatos mais antigos, como fasta ou fastQ2. Na tabela 2.3 est a lista de alguns conversores de SFFgratuitos.

    Nome Linguagem URLsff_extract Python http://bioinf.comav.upv.es/sff_extract/sff2fastq C https://github.com/indraniel/sff2fastqFlower Haskell 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 arquivono formato fastQ. Por fim, o Flower rpido e flexvel, mas necessita ter a linguagem de programaoHaskell instalada no sistema.

    2O Torrent Browser fornece o resultado da corrida no formato BAM, mas ele tambm gera as sequncias nos formatosSFF 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_.Renomeie para sff_extract e torne o arquivo executvel com o comando chmod +x sff_extract. Paraconverter de SFF para fasta/qual utilize o seguinte comando:

    sff_extract -o

    Onde o nome dos arquivos .fasta e .qual que vo ser gerados e onome do arquivo sff que se deseja converter. Este comando vai gerar trs arquivos:

    .fasta Com as sequncias em formato fasta .fasta.qual Com os valores de qualidade em formato phred .xml Arquivo XML com as informaes extras de cada read, em especial, as informaesde clipping de cada read.

    Abaixo temos um exemplo de um registro em um arquivo XML gerado:

    RWBG8:4:51495114

    ...

    Todos os valores de clipping so indexados a partir de 1. Para encontrar a primeira base no trimada,utiliza-se a seguinte expresso:

    first_base_position = max(1, clip_quality_left, clip_adapter_left) (2.2)

    E para achar a ltima base no clipada utiliza-se (caso os clip_adapter_right ou clip_quality_rightsejam 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 essainformao de clipagem indicada por soft clipping, ou seja, as bases do adaptador e as de baixaqualidade so indicadas em minsculas. Para fezer o hard clipping e gerar um arquivo fasta limpo,utilize o seguinte comando:

    sff_extract -c -o

    Neste caso, sero gerados os mesmos arquivos, porm o arquivo XML no ter as informaes declipping porque o clipping j foi feito nos arquivos fasta e qual.

    Para gerar o arquivo em formato FastQ, utilize:

    sff_extract -Q -o ousff_extract -c -Q -o

    Esse comando vai gerar o arquivo .fastq e .xml, e da mesma forma que noexemplo 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_crumbsfoi concebido em mdulos, que podem ser combinados de maneira muito mais verstil. Alm disso, eleutiliza a biblioteca biopython. Para baixar o programa, utilize esse endereo:

    https://github.com/JoseBlanca/seq_crumbsJ o biopython est disponvel em:http://biopython.org/wiki/DownloadPara fazer a converso de SFF para fastQ utiliza-se:

    sff_exrtract -c -o

    Note que a verso do seq_crumbs s gera arquivos em formato fastq, no tendo mais a opo degerar fasta/qual. Como no programa anterior, a opo -c pede para o programa fazer o trimming dassequncias.

    Para fazer a converso de arquivos SFF de mate-pair vemos uma diferena muito maior, pois temosque combinar o programa sff_extract com o programa split_matepairs:

    sff_extract |split_matepairs -l ION_TORRENT

    A combinao desses dois comandos equivalente ao sff_extract -l. Mas o seq_crumbs oferecemais opes de manipulao de arquivos. possvel tambm gerar dois arquivos de mates desentrelaa-dos, ou seja, um arquivo com a primeira tag e outro com a segunda. Para isso utilize:

    sff_extract |split_matepairs -l ION_TORRENT |pair_matcher -p |deinterleave_pairs -o

    O comando pair_matcher remove as tags que esto sem os seus respectivos pares e coloca noarquivo , j o deinterleave_pairs separa os pares nos arquivos e.

    Utilizando o Flower

    O Flower um utilitrio para ler arquivos SFF feito na linguagem de programao Haskell. Por seruma linguagem compilada ele muito mais do que o sff_extract, que foi escrito em Python. Duasdesvantagens que o runtime do Haskell menos ubquo do que do Python e ele no gera o arquivoXML 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 seguintemaneira:

    cabal install biosff

    Para converter um arquivo SFF para fastQ, utiliza-se:

    flower -q > saida.fastq

    Alm de converter o SFF, o flower tambm permite inspecionar o arquivo. Para visualizar o SFF emformato texto, use:

    flower entrada.sff | more

    Por fim, o flower gera uma visualizao do flow space em um formato tabulado muito til. Paragera-la:

    flower -F

    Segue um exemplo de resultado:

    20

  • ...RWBG8:9:36 81 T 1.05 Qual {unQual = 34}RWBG8:9:36 82 C 1.03 Qual {unQual = 27}RWBG8:9:36 83 G 0.00RWBG8:9:36 84 A 5.72 Qual {unQual = 27},Qual {unQual = 27},

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

    RWBG8:9:36 85 T 1.93 Qual {unQual = 27},Qual {unQual = 21}RWBG8:9:36 86 C 0.97 Qual {unQual = 26}RWBG8:9:36 87 G 0.00RWBG8:9:36 88 A 0.00...

    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 linhaadicionada para facilitar a visualizao).

    2.3 Unmapped BAMO formato BAM, discutido na seo sobre mapeamento (seo 3.1.2), um formato criado para re-presentar 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 readsno mapeados. Os campos opcionais do formato BAM permite grande flexibilidade. possvel adicionaras informaes de flow space do Ion e do 454 ou o color space do SOLiD direto no arquivo BAM, fazendodele 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 I= FASTQ=

    2.4 XSQ FormatO XSQ o formato nativo do SOLiD 5500. Ele um formato binrio que diminiu em at 60% o nmerode bytes necessrios para representar o conjunto de sequncias no formato fasta/qual. Ele utiliza comobase 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 readsnicos e pareados. Sendo um formato binrio, ele tambm permite o acesso aleatrio dos reads contidosnele. Por fim, possvel adicionar metadados sobre a corrida no prprio arquivo de sequncia, facilitandoo armazenamento e a organizao dos dados.

    As ferramentas de converso de XSQ para csfasta e vice-versa, assim como a documentao doformato, 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 converterde XSQ para csfasta utiliza-se:

    ./convertFromXSQ.sh -f -o

    Ser criado um diretrio Libraries dentro do . Dentro de Libraries, sercriado um diretrio para cada tag F3, R3, etc e dentro deste um diretrio reads com os arquivoscsfasta, qual e fastq (caso o sequenciamento tenha sido feito com ECC). A opo -f pede para o programafiltrar os reads marcados como filtrados pelo basecaller e portanto altamente recomendvel.

    Tambm possvel converter de csfasta/qual para XSQ com o comando convertToXSQ.sh. De-pendendo do tipo de biblioteca, preciso passar diferentes argumentos. Para biblioteca de fragmentosutiliza-se:

    21

  • ./convertToXSQ.sh -x --mode Fragment--c1 --q1 --libraryName --runStartTime "0000-00-00 00:00:00"

    E para biblioteca de Long Mate Pair :

    ./convertToXSQ.sh -x --mode LMP--c1 --q1 --c2 --q2 --libraryName --runStartTime "0000-00-00 00:00:00"--libraryInsertSizeMinimum --libraryInsertSizeMaximum

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

    22

  • Captulo 3

    Mapeamento de Sequncias

    Aps um experimento de NGS quase sempre necessrio fazer o mapeamento das leituras geradas emum genoma de referncia. O primeiro programa para fazer esse mapeamento foi o BLAT1, criado porJim Kenth para mapear leituras com alta similaridade contra um genoma de referncia. Porm, o BLATno consegue alinhar regies com menos de 40bp e tambm no tem performance suficiente para alinharos milhes de reads gerados por NGS. Os primeiros mapeadores open source otimizados para NGS foramo MAQ[17] e o SOAP[19], ambos mapeadores que utilizam hash tables para acelerar a busca, com adiferena que o MAQ indexa os reads enquanto o SOAP indexa o genoma de referncia. Com o aumentodo throughput, dos sequenciadores a abordagem de indexar os reads se tornou invivel e por isso osmapeadores mais recentes indexam a referncia.

    O problema do uso de hash table o uso de memria. Alguns mapeadores, como o mapreadsdo SOLiD, podem dividir a hash em partes e fazer o mapeamento em etapas de forma a permitir omapeamento de grandes genomas mesmo com pouca memria. Alternativamente, possvel utilizarum FM-Index, que indexa o genoma de referncia compactado pela Burrows-Wheeler[33, 6] e entre osprogramas 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 demismatches permitidos. Como os reads de NGS normalmente possuem uma qualidade maior no inciodo read, utiliza-se uma estratgia de seed and extend: na primeira fase pega-se o incio do read, entre 25e 30 bases, e faz-se a busca permitindo poucos erros como 2 por exemplo. Encontrada uma posio deancoramento 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 representaralinhamentos de NGS e nas prximas sees ser mostrado como utilizar alguns mapeadores.

    3.1 SAM e BAM FilesO formato SAM, Sequence Alignment/Mapping, um formato texto criado para representar o resultadodo 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 formatobinrio. 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 SAMAs primeiras linhas do arquivo SAM so o cabealho. Estas linhas comeam com o caracter @ seguidopor um cdigo de 2 caracteres que identificam o tipo de informao contina na linha. A lista de cdigosest na tabela 3.1. Depois do cabealho temos os alinhamentos propriamente ditos, um por linha, comcampos separados por TABs. Na tabela 3.2 est a lista campos de cada alinhamento.

    1O BLAST e o FASTA so programas mais antigos, mas o objetivo deles fazer buscas em bancos de sequencias e noespecificamente mapear reads em um genoma montado.

    2O BWA-long utiliza uma abordagem um pouco diferente. Em vez de fazer o seed and extend, ele realiza um alinhamentoSmith-Waterman contra o ndice BWT do genoma

    23

  • Cdigo Descrio@HD Identifica o incio do arquivo SAM e a verso dele.@SQ Identifica dada uma das sequncias no arquivo de

    referncia@RG Read group: identifica conjuntos de reads dentro do

    arquivo. Esse registro muito importante quandoso combinados os resultados mltiplas corridas emum nico arquivo.

    @PG Lista de programas utilizados no arquivo.@CO Comentrios

    Tabela 3.1: Headers do arquivo SAM

    Col. Nome Descrio1 QNAME Nome do read2 FLAG Bits indicando diversas informaes sobre o alinhamento3 RNAME Nome da sequncia na referncia4 POS Posio mais esquerda do read que se alinha na referncia5 MAPQ Qualidade do Mapeamento6 CIGAR CIGAR string7 RNEXT Referncia do prximo read no par/segmento8 PNEXT Posio do prximo read no par/segmento9 TLEN Tamanho do template observado10 SEQ Sequncia do read11 QUAL Qualidade do read codificada utilizando a conveno do fastQ do Sanger12 FIELDs 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 osignificado de cada bit est na tabela 3.3.

    0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

    M A U UM R RM F L S Q D

    Por exemplo, um read corretamente mapeado vai ter um valor de flag 2, mas se ele mapear nafita oposta a flag vai ser 2 + 16 = 18. Caso o read seja o primeiro de um par a flag vai ser1 + 2 + 16 + 64 = 83.

    3. RNAME: Nome da sequncia de referncia ou um nmero indicando qual o registro @SQ do headercom 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 em1). Se o valor for 0, o read no est alinhado.

    5. MAPQ: Qualidade do mapeamento. Este valor representado como um inteiro com interpretaosimilar ao ndice phred de qualidade, ou seja, P = 10 log10Q, onde Q a probabilidade do readestar mapeado de maneira errada.

    6. CIGAR: Sequncia de caracteres que descrevem como o read est mapeado na referncia. Osignificado de cada caracter o seguinte:

    24

  • Sim. valor DescrioM 1 Template com mltiplos segmentos, ou seja, mate-pair ou pair-

    end3.A 2 Cada segmento est corretamente alinhado.U 4 Segmento no mapeado.UM 8 Prximo segmento no mapeado.R 16 O campo SEQ o reverso complementar do read.RM 32 O campo SEQ do prximo segmento o reverso complementar do

    read.F 64 Esse segmento o primeiro do template.L 128 Esse segmento o ltimo do template.S 256 Alinhamento secundrio. Essa flag indica que existe outro alinha-

    mento desse read que considerado o primrio pelo mapeador.Q 512 Esse alinhamento no passou pelo controle de qualidade.D 1024 Esse read foi considerado uma duplicata de PCR ou tica.

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

    M Alignment Match (pode ser um match ou um mismatch)I Insero na refernciaD Deleo na refernciaN Intron (este caracter s utilizado para representar mRNAs)S Soft clipping (corta uma base presente em SEQ)H Hard clipping (corta uma base no presente em SEQ)P Padding (deleo em uma padded reference)= Sequence MatchX Sequence Mismatch

    7. RNEXT: Sequncia na referncia do prximo segmento. Se RNEXT for * ento esta informaono 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 osegmento 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 = denotauma 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

    TAG : TY PE : V ALUE

    , 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 primeiroread, r001, tem as seguintes flags 163(= 1+2+32+128) = A+M+RM +L, portanto est corretamentemapeado (A), o segundo membro de um par (M+L) e o seu par mapeia na posio 37 na fita oposta (flagRM ). O read r002 posui trs soft-clipped bases, a coordenada mostrada no arquivo SAM da primeirabase alinhada. A string CIGAR deste alinhamento contm um P (padding) que corretamente alinha asequncia inserida. A informao de padding pode ser omitida se o alinhador no suportar alinhamentomltiplo de sequncias. As ltimas 6 bases do read r003 mapeiam na posio 9, e as 5 primeiras mapeiamna posio 29 da fita reversa. O hard clipping (H) indica bases que no esto presentes na referncia. Atag 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 FileO arquivo BAM tem exatamente a mesma estrutura do arquivo SAM, porm as informaes estocodificadas em formato binrio para economizar espao em disco e na memria. Alm disso, o formatoBAM possui uma compactao em blocos chamada BGZF, que permite o acesso aleatrio ao arquivomesmo ele estando compactado. Por ter esssa estrutura de blocos, o arquivo BAM pode ser carregadoparcialmente, o que permite a visualizao de arquivos BAM muito grandes, sem exceder a capacidadeda memria RAM. Para fazer esse carregamento, o visualizador utiliza um arquivo auxiliar que indexaos blocos do arquivo BAM em relao s coordenadas genmicas. Esse arquivo tem o mesmo nome doarquivo BAM, mas com a extenso .bai, de BAM index. Ele tambm tem que estar no mesmo diretrioque o arquivo BAM.

    3.1.3 SamtoolsJunto com o formato SAM/BAM foi criada a ferramenta samtools para manipular esses arquivos. Eleest 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. Aestrutura geral de execuo do samtools est abaixo, command um dos comandos reconhecidos pelosamtools e * so as opes para cada um dos comandos.

    samtools *

    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-seo comando view:

    BAM para SAM: samtools view > SAM para BAM: samtools view -S -b >

    Visualizar o header de um arquivo BAM: Para extrair somente o header de um arquivoBAM, use:

    samtols view -H

    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 seguintecomando:

    26

  • samtools sort

    Onde 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 .X.bam.No final do processo esses arquivos vo ser combinados e um arquivo chamado .bam gerado. O valor default de -m 500000000 (500Mb). Se o computador tiver mais memriadisponvel e o arquivo BAM for bastante grande, interessante aumentar esse valor de forma aagilizar o processo de ordenao do arquivo bam. Portanto, em um computador com 8Gb de RAMpode-se utilizar algo como:

    samtools sort -m 4000000000

    Por fim, para indexar o arquivo ordenado, utiliza-se

    samtools index

    Que vai gerar o arquivo =5)

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

    27

  • 844482954 + 0 in total (QC-passed reads + QC-failed reads)225681606 + 0 duplicates688865129 + 0 mapped (81.57%:nan%)844482954 + 0 paired in sequencing422241477 + 0 read1422241477 + 0 read2345539940 + 0 properly paired (40.92%:nan%)533247304 + 0 with itself and mate mapped155617825 + 0 singletons (18.43%:nan%)178287164 + 0 with mate mapped to a different chr90834280 + 0 with mate mapped to a different chr (mapQ>=5)

    Combinar diversos arquivos BAM em um novo arquivo: Para combinar diversos arquivosbam em um novo arquivo utiliza-se:

    samtools merge ...

    Porm, essa opo vai simplesmente copiar o header do arquivo e combinar osalinhamentos de todos os arquivos, mas isso pode fazer com que as tags @SQ, @RG e @PG fiqueminconsistentes entre o header e os alinhamentos. Por isso, necessrio criar um novo header, comas informaes corretas, e utilizar o comando:

    samtools merge -rh ...

    Onde o header gerado pelo usurio. Alternativamente, o usurio podeutilizar o comando MergeSamFiles do pacote Picard (seo 3.1.4), que atualiza o header ao fazero merge.

    Substituir o header de um arquivo BAM: Para substituir o header de um arquivo BAM, crieum novo header em um arquivo texto e utilize o seguinte comando:

    samtools reheader >

    Por exemplo, se quiser modificar a tag SO de unsorted para coordinate, utilize os seguintescomandos:

    samtools view -H |sed s/SO:unsorted/SO:coordinate/ > header.txt

    samtools rehader header.txt >

    3.1.4 PicardPicard um conjunto de programas para manipular arquivos SAM/BAM escritos em Java e umexcelente complemento ao samtools. A pgina do projeto http://picard.sourceforge.net/ e umarquivo .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 /.jar

    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 doPicard, neles o path de instalao est omitido para deixar mais limpa a linha de comando.

    28

  • Argumento DescrioMAX_RECORD_IN_RAM Nmero mximo de registros serem mantidos na

    memria. Aumentando esse valor reduze-se o n-mero de operaes intermedirias de disco. Default:500.000

    TMP_DIR Diretrio temporrioCREATE_INDEX 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 oSortSam.jar:

    java -jar SortSam.jarI= O=SO=coordinateCREATE_INDEX=true

    A grande vantagem do SortSam.jar em relao ao samtools sort que esse comando atualizade maneira apropriada o header do arquivo, trocando a tag SO para coordinate. Para ordenararquivos muito grandes interessante aumentar o valor de MAX_RECORD_IN_RAM. Em uma mquinacom uma boa quantidade de RAM pode-se aumentar esse valor em 10, como por exemplo:

    java -jar SortSam.jarI= O=SO=coordinateCREATE_INDEX=trueMAX_RECORD_IN_RAM=5000000

    2. Fazer o merge de diversos arquivos BAM: O Picard tambm possui uma alternativa aocomando samtools merge

    java -jar MergeSamFiles.jarO= I= I=...MSD=trueAS=true USE_THREADING=true CREATE_INDEX=true

    Assim com o SortSam.jar, o MergeSamFiles.jar trata melhor o header do arquivo gerado do que ocomando 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 opoAS significa Assume Sorted e existe para lidar com o fato do samtools no atualizar o header doarquivo gerado, e portanto indicar como unsorted um arquivo ordenado. A opo USE_THREADINGfaz com que o programa utilize duas threads4.Quando se deseja combinar diversos arquivos BAM juntos, um pouco tedioso colocar uma argu-mento I= para cada arquivo. possvel combinar o MergeSamFiles com o comandofind do unix para combinar todos os arquivos BAM em um mesmo diretrio.

    java -jar /share/apps/picard/MergeSamFiles.jarO=USE_THREADING=true MSD=truefind -name \*.bam -printf "I=%p\n"

    4Linhas de execuo do programa. Em um sistema com mais de um processador/core essa opo aumenta a performancedo 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 visartificial da regio que originou o fragmento. Por isso, recomendado que reads suspeitos de seremduplicatas sejam marcados e ignorados nas anlises subsequentes. O MarkDuplicates.jar procurareads nos quais as posies mais 5 do alinhamento e a orientao sejam iguais. O read com amelhor qualidade no alterado e todos os outros so marcados como duplicados. Para bibliotecasde mate-pair e pair-end ocorre o mesmo, porm as cordenadas e a orientao dos dois pares de readsdevem coincidir[9]. Uma vantagem do MarkDuplicates.jar que ele consegue encontrar duplicatasmesmo se os reads do par no mapearem no mesmo cromossomo.Para executar o comando utilize:

    java -jar MarkDuplicates.jar I=O=M= AS=trueCREATE_INDEX=true

    3.2 Mapeando os reads com o TMAPO Ion Torrent possui um mapeador otimizado para o padro de erros dos dados gerados pelo sequen-ciador. Chamado de TMAP, ele foi criado por Nils Homer. O TMAP otimizado para os reads detamanho 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 combi-nados. 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. Porcomparao foi tambm colocada a performance bowtie2 e vemos que este tem uma performance umpouco 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 oquestionamento do porqu deles terem sido includos. Na figura 3.3, temos os tempos de processamentodos 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 demapeamento em estgios definidos pelo usurio. Dessa forma somente os reads que no mapearem emum estgio so passados para o estgio seguinte. Portanto, uma abordagem eficinte colocar o map1no primeiro estgio, para fazer rapidamente o mapeamento dos reads fceis, e em seguida usar o map3e o map4 para mapear o resto dos reads.

    O cdigo fonte do TMAP est disponvel no site github:https://github.com/iontorrent/TMAPPara ter uma melhor performance o TMAP pode opcionalmente utilizar o TCMalloc da gperftools

    que est disponvel em:http://code.google.com/p/gperftools/

    Algoritmo Refernciamap1 BWA Short Li and Durbin [15]map2 BWA Long Li and Durbin [16]map3 SSAHA Ning [25]map4 SMEM Li [14]

    Tabela 3.5: Algoritmos do TMAP

    3.2.1 Criando o ndiceO primeiro passo para usar o TMAP gerar o ndice do genoma de referncia. Para isso, utiliza-se ocomando index da seguinte forma:

    5Disponvel na Ion Community

    30

  • bowtie2 map1 map2 map3 map4

    6065

    7075

    80

    map

    %

    Figura 3.2: Sensitividade dos algortmos do tmap e do bowtie2 (Amostra de E. Coli O104H4)

    tmap index -f

    Caso haja bases ambguas na referncia, ser mostrada uma mensagem de aviso e as bases ambguassero trocadas, dentre as bases possves, pela de menor valor lexicogrfico. Por exemplo, a base Y, querepresenta C ou T, ser trocada por C, a base N que representa qualquer base ser trocada por A, eassim por diante. A indexao do genoma humano pode demorar 4 horas em um computador atual. Oresultado ser diversos arquivos com os ndices.

    3.2.2 Mapeando os readsO comando para aplicar um dos algoritmos :

    tmap -f -r

    Onde mapN map1, map2, map3 ou map4, nome de um arquivo fasta que j tenhasido indexado e o arquivo dos reads, que pode estar em formato, fasta, fastQ ou SFF. Comoresultado o tmap gera um arquivo SAM na sada padro. Caso se utilize um arquivo SFF, possvelpropagar a informao dos flows para o aquivo SAM por meio da opo -Y. Tambm possvel utilizardiversas threads com a opo -n .

    A opo -o X controla o formato de sada do programa, -o 0 o default e gera uma sada texto emformato SAM, -o 1 gera um resultado binrio em formato BAM, e por fim -o 2 gera um arquivo BAMno comprimido, uma opo til se o resultado for tmap vai ser enviado para um outro comando paramais processamentos, como por exemplo no comando abaixo, que combina o tmap com o samtools sort:

    tmap -f -r -o 2 |samtools sort -n -

    Normalmente, os algoritmos individuais no so utilizados, mas sim o comando mapall. Com esse co-mando 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 modoque, se um read no mapear em um determinado estgio, ele passado para o estgio seguinte. Umaestratgia colocar o map1 no primeiro estgio, porque ele mais rpido, e o map3 e o map4 no segundoestgio. Para isso, utilizamos o seguinte comando:

    31

  • map1 map2 map3 map4

    5010

    015

    0

    map

    time

    (s)

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

    tmap mapall -f -r stage1 map1 stage2 map3 map4

    Tambm possvel controlar as informaes da tag @RG atravs da opo -R. Isso importante porqueoutros programas validam essa tag ao abrir o arquivo BAM. E alm disso bom adicionar metadatasobre a amostra para facilitar a organizao dos arquivos. Algumas tags que podem ser utilizadas so:

    ID Identificador nico do read groupSM cancer Nome da amostra (sample)LB hg19 Nome da bibliotecaCN USP Nome do centro de sequencia-

    mentoPU PGM/318 A utilizao varia entre platafor-

    mas. No PGM tem sido usadopara identificar o tipo de chiputilizado.

    PL IONTORRENT Nome da plataforma de sequen-ciamento (esses valores so tabe-lados pelo formato SAM)

    Combinando todas as informaes apresentadas, uma sugesto para rodar o TMAP a seguinte:

    tmap mapall -n Y -f -r -R LB: -R CN: -R PU:PGM/-R ID: -R SM: -R PL:IONTORRENTstage1 map1 stage2 map2 map3 -o 2|samtools sort -

    3.2.3 Exemplo: Mapeando os reads de E. coli com o TMAP1. 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:IONTORRENTstage1 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; dobase=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:IONTORRENTstage1 map1 stage2 map2 map3 -o 2|samtools sort - $base ;

    done

    6. Marque os reads duplicados: utilize o comando MarkDuplicates.jar do picard para identificar osreads duplicados:

    java -jar MarkDuplicates.jarI=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; dobase=basename $file .bam ;java -jar MarkDuplicates.jarI=$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.bamls *.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 PairO TMAP tambm suporta o mapeamento de reads pareados. A principal diferena quando se utiliza omapeamento pareado ao invs do normal que no primeiro caso o mapeador vai fazer o pareamento dosreads, ou seja, ela vai indicar para cada read a posio do seu respectivo par (colunas RNEXT e PNEXTdo 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 |split_matepairs -l ION_TORRENT |pair_matcher -p |deinterleave_pairs -o

    Para fazer o mapeamento utilze o seguinte comando:

    tmap mapall -Q 1 -f -r -r -o 2stage1 map1 stage2 map3 map4 >

    importante colocar a opo -Q 1 para indicar que os dados so de mate-pair e colocar a opo -rduas vezes, uma para cada arquivo dos pares.

    3.3 BowtieO bowtie[11] um mapeador bastante popular criado para mapear short reads. Ele especialmenteeficiente 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 parareads com 100bp ou mais. Infelizmente ele no suporta mais color-space. Em termos de algoritmo, obowtie 2 muito similar ao TMAP, dividindo o mapeamento em uma primeira etapa de alinhamentosem gaps seguida de uma etapa de alinhamento Smith-Waterman. Diversos softwares utilizam o bowtiecomo mapeador, em especial o pipeline de anlise de RNA-Seq Tophat[32] e o pipeline na nuvem deressequenciamento Crossbow[13].

    3.3.1 Utilizando o Bowtie 2O 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 contidosnele 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

    Onde o prefixo do nome dos arquivos de ndice que vo ser gerados. Esse nome vai serdepois utilizado para referenciar os ndices. Para mapear um arquivo fastq utiliza-se:

    bowtie2 -p

    Onde o nmero de threads a utilizar, o prefixo usado na criao do ndicee o arquivo com os reads mapear. Diferentemente do TMAP, o bowtie2 s suportareads 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 | samtools view -Sbh -| samtools sort -m -

    Onde a quantidade de memria utilizada na ordenao dos reads e o nomedo arquivo de sada sem a exteno .bam.

    34

  • 3.3.2 Utilizando o Bowtie 2 com o Ion TorrentVamos agora mapear os mesmos dados utilizados com o TMAP (seo 3.2) com o Bowtie 2. Assimcomo no caso do TMAP, a primeira etapa indexar o genoma de referncia. Para isso, utilize o seguintecomando:

    bowtie2-build dh10b.fasta dh10b

    Como o bowtie no suporta o formato sff, preciso fazer a converso para fastQ. Para isso, utilizeum 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; dosff_extract -c $i

    done

    Em seguida, vamos usar o bowtie para fazer o mapeamento:

    for i in data/*.fastq; dob=basename $i .fastqbowtie2 -p 8 -q dh10b $i| samtools view -Suh -| samtools sort - $b.bowtie2

    done

    3.4 Visualizando arquivos BAM com o IGVA ferramenta mais popular para visualizar arquivos BAM o IGV do Broad Institute. O IGV umprograma em java disponvel para Linux, Mac OS e Windows. possvel baixar o programa como umstand-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 iniciaro IGV, o que muda entre eles a configurao de memria. Escolha a opo de acordo com a quantidadede memria disponvel no seu computador, o tipo de sistema operacional e se voc est rodando no modode 32 ou 64 bits. Alternativamente voc pode ir at a seo Binary Distribution para baixar o arquivozip com o programa. Aps baixa-lo, basta executar o programa igv.bat no Windows e o igv.sh noLinux ou Mac OS.

    Vamos demonstrar o IGV utilizando um dataset do Comprehensive Cancer Panel, disponvel em:http://ioncommunity.lifetechnologies.com/docs/DOC-3012Baixe o arquivo FLO-528.bam.gz, em seguida descompacte-o e crie o ndice .bai:

    gunzip FLO-528.bamsamtools 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. Paravisualizar 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 anotaodo genoma humano, ele vai focalizar a janela principal na regio onde se encontra o gene MTRR, no casoentre as coordenadas 7,865,776 e 7,901,794 do cromossomo 5 como pode ser visto na caixa de texto, quemudou 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 datela est dividida em duas regies: No topo, temos a barra de navegao que mostra o caritipo docromossomo 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 restoda tela so mostrados os arquivos carregados. No caso, temos o arquivo bam com os alinhamentos e naparte de baixo temos a anotao do genoma. possvel adicionar outras sees na visualizao, bastaabrir 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 mostraa cobertura, ou seja, o nmero de reads cobrindo cada base do genoma. Na parte de baixo temos o ali-nhamento 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 asleituras 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 clickduplo ser feito o zoom e a tela ser centralizada no ponto de click. Por fim, possvel mudar o zoom ea posio digitando novas coordenadas na caixa de texto. Pode-se aumentar o zoom at ser possvel osncleotdeos do genoma.

    Na figura 3.5 vemos o zoom de um dos exons do gene MTRR. Nesse nvel de zoom podemos ver cadaum dos reads alinhados na regio, representados pelas caixas cinzas. A seta na ponta do read indica osentido 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 edelees 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 mouseparado em uma posio e uma popup box ir aparecer (fig 3.6. Tambm possvel colocar o mouse sobrea cobertura e o IGV ir informar a quantidade de reads na posio indicada, assim como a quantidadede cada base, delees e inseres.

    Clicando na regio com o nome do arquivo possvel mudar a visualizao do painel com os alinha-mentos. Mudar a visualizao de Expanded para Collapsed permite ter uma viso mais geral dosalinhamentos, com menos foco em cada alinhamento individual. Na figura 3.7 vemos que o exon emquesto 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 visualizaodos genes, s que o padro t-los em Collapsed, o que dficil de visualizar se o gene tiver diversasisoformas diferentes ou se houver genes com overlap em fitas opostas. Nesses casos recomenda-se mudara 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 refernciaNa 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, frequentementetemos que trabalhar com outro genomas no disponibilizados ou at mesmo com genomas novos, criadospelo prprio grupo de pesquisa. Nesses casos preciso importar o genoma antes de poder visualizarqualquer alinhamento. Para fazer essa operao escolha o item Import Genome... no meu File. Seraberta uma caixa de dilogos com os seguintes items:

    Unique Identier Um ID para o genoma, deve ser nico para todos os genomas registrados noprograma, 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 citobandasna 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 dassequncias (cromossomos, contigs etc.) do genoma e da anotao, por exemplo, podemos ter umgenoma 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 criadocom todas as informao necessrias para a visualizao. Esse um arquivo binrio que deve ser mantidopara futuros usos do genoma criado. A criao do genoma s precisa ser feita uma vez. Aps criado, elepassa a fazer parte do menu de genomas disponveis da instalao local do IGV.

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

    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 denucleotdeos.

    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 aposio desses elementos, utiliam-se arquivos de anotao, que em geral nada mais so do que arquivostexto que associam coordenadas genmicas com caractersticas ou features. A seguir vamos descreveralguns formatos de arquivos de anotao.

    4.1 BED FormatsO formato BED foi criado pela UCSC para descrever anotaes em um genoma. Ele um formato muitoassociado ao UCSC Browser e possui diversos campos que descrevem a representao grfica da anotaopelo visualizador. Ele um formato texto, com colunas separadas por caracteres TAB que representaintervalos 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 apalavra 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 name="4477685_CCP_Designed" description="Amplicon_Insert_4477685_CCP" type=bedDetailchr1 2488068 2488201 AMPL242431688 . TNFRSF14chr1 2489144 2489273 AMPL262048751 . TNFRSF14chr1 2489772 2489907 AMPL241330530 . TNFRSF14... ... ... ... ...chr1 6528161 6528293 AMPL294026880 . PLEKHG5chr1 6528282 6528404 AMPL294029495 . PLEKHG5chr1 6528391 6528519 AMPL294044396 . PLEKHG5... ... ... ... ...

    Figura 4.1: Exemplo de arquivo bedDetail

    4.2 Formatos GFF e GTFO GFF outro formato texto utilizado para representar anotaes. O formato passou por diversasrevises, sendo a mais recente o GFF3. Originalmente, GFF significava Gene Finding Format, mas foirebatizado para Generic Feature Format para representar o aumento de escopo do formato. Alm doGFF3, 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 asua 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 termodo SOFA1 ou um cdigo do Sequence Ontology[4].

    4. start: P