Alinhamento de Sequências de Transcritos Gênicos Daniel Guariz Pinheiro, PhD. Laboratório de Genética Molecular e Bioinformática Departamento de Genética Faculdade de Medicina de Ribeirão Preto Universidade de São Paulo Planejamento • Introdução • Sequências – Formatos dos arquivos • Alinhamento de Sequências • Algoritmos para Alinhamento de Sequências • Softwares para Alinhamento de Sequências no Genoma – Bowtie – BWA • Software s auxiliares – Identificar as sequências • intersectBED – Manipular saída de alinhamento (next-generation) • samtools – Navegar no genoma • Integrative Genomics Viewer - IGV • Exercícios Introdução • Mapeamento genômico de transcritos – Alinhamento das sequências de cDNA obtidas de experimentos (e.g. RNASeq) no genoma referência; • Identidade aceitável; – Desafio: qualidade das sequências e configuração dos parâmetros do software de alinhamento; • Não ambígua (há uma única identidade); – Desafio: mapeamentos em regiões repetitivas; – Identificação das sequências alinhadas em relação a elementos já mapeados no genoma (e.g. transcritos conhecidos); • Interseção entre coordenadas de alinhamento; – Desafio: configuração dos parâmetros para a interseção; • Identificação de novas regiões com evidências de transcrição; – Agrupamento de sequências em uma região onde não há transcritos conhecidos; – Desafio: isolar o que é “ruído”, ou seja, artefatos da técnica; – Integrar essas informações; • Relacionar informações de diversas fontes (e.g. expressão gênica, SNPs, regiões regulatórias, alternative splicing, ...); • Inspeção visual; • Utilização de um browser de genoma (e.g. Genome Browser, GBrowse, Integrative Genomics Viewer (IGV), Gaggle Browser, ... ) Sequências Genéticas Sequence Read Archive • SRA (NCBI Sequence Read Archive): http://www.ncbi.nlm.nih.gov/sra • ENA (EBI European Nucleotide Archive): http://www.ebi.ac.uk/ena/ • DRA (DDBJ Sequence Read Archive): http://trace.ddbj.nig.ac.jp/dra/index_e.shtml “(…) In mid-September 2010, the SRA contained >500 billion reads consisting of 60 trillion base pairs International Nucleotide Sequence Database Collaboration available for download (…) Almost 80% of the sequencing data are derived from the Illumina GA platform. The SOLiD™ and Roche/454 platforms account for 15% and 5% of “We’re growing by about 1 Tb/month.” submitted base pairs, respectively.(…)” NCBI’s staff scientist Martin Shumway (Leinonen R et. al., 2011) Modelo de Dados [http://trace.ddbj.nig.ac.jp/dra/documentation_e.shtml] Formato Fasta sequence.fa sequence.qual >SEQUENCE_1 cagtcagcatactcagtcagtcatgcatgctga gtcacttgcatgacgtcatgactgcatgactgc >SEQUENCE_1 1 9 7 15 20 21 16 26 31 37 38 ... 31 13 23 29 31 33 35 30 29 34 ... Extensões: .fa, .fasta, .fna Qualidade O que queremos dizer com qualidade ? >SEQUENCE_1 1 9 7 15 20 21 16 26 31 37 38 ... 31 13 23 29 31 33 35 30 29 34 ... Score Perro Qphred 10log10 (Perror ) 10 0.1 20 0.01 30 0.001 Formato fastq Identificador padrão Illumina sequence.fastq @SOLEXA01:1:1:27:1992#0/1 AGTACAAGAGACAGACATTCTTTTTTTTGACACAAG +SOLEXA01:1:1:27:1992#0/1 \FFFMXPYDDHJSUMVUJLPSNFRXZEDLNLHKHIT Qualidade codificada como um único caracter da tabela ASCII. F = 70 (ascii) = 70-64 = 6 (Qphred) = 0,25 (Perror) Extensões: .fastq SOLEXA01 the unique instrument name 1 flowcell lane (8 lanes) 1 tile number within the flowcell lane 27 'x'-coordinate of the cluster within the tile 1992 'y'-coordinate of the cluster within the tile #0 index number for a multiplexed sample (0 for no indexing) /1 the member of a pair, /1 or /2 (paired-end or mate-pair reads only) P Qsolexa 10log10 ( error ) 1 Perror Qphred 10log10 (Perror ) Color Space sequence.csfasta >9_62_1919_F3 T01231033313313303131110311003330000 T0 = T => T1 = G => G2 = A => ... sequence.fasta >9_62_1919_F3 TGATGGCGCATACGCCGTACACCGTGGGCGCCCCC sff • “sff” refere-se a “Standard Flowgram Format”. Os arquivos gerados por uma corrida de Roche-454. • Os arquivos sff contêm: – um cabeçalho manifesto, no início, o qual descreve informações sobre a corrida; – valores referentes às intensidades dos sinais para cada base; • Formato binário (pirograma) que pode ser convertido para o formato FASTA; – Programa “sffinfo”. Sequenciamento em pares • Sequenciamento em pares mate-pair paired-ends (Korbel et al. , 2007) – – 36 bp Referência: >SOLEXA01:1:1:27:1992#0/1 >SOLEXA02:1:1:11:1992#0/1 36 bp ~ ~1928 128bp bpaa4928 ~428bp bp paired-ends mate-pair >SOLEXA01:1:1:27:1992#0/2 >SOLEXA02:1:1:11:1992#0/2 http://www.illumina.com/technology/mate_pair_sequencing_assay.ilmn paired-End Sequencing Mate Pair Library Sequencing for Long Inserts Sequenciamento em pares (Illumina) http://www.illumina.com/technology/paired_end_sequencing_assay.ilmn Introdução ALINHAMENTO DE SEQUÊNCIAS Alinhamento de Sequências Em Bioinformática, alinhamento de sequências é uma forma de dispor as sequências de DNA, RNA, ou proteínas para identificar regiões de similaridade que podem ser consequência de relacionamentos funcionais, estruturais ou relações evolutivas entre elas. Significado Biológico do Alinhamento de Sequências • Definição de 3 termos importantes: – identidade: refere-se à fração de aminoácidos ou nucleotídeos idênticos entre pares de sequências após um alinhamento dessas sequências; – similaridade: refere-se à fração de aminoácidos ou nucleotídeos similares (com propriedades físico-químicas semelhantes – aminoácidos conservados) entre pares de sequências após um alinhamento dessas sequências; – homologia: representa uma relação evolutiva entre as sequências; • Homólogos – Parálogos; – Ortólogos; Há uma referência? • Resequenciamento – Existem sequências produzidas a partir de um genoma/transcriptoma da mesma espécie da amostra ou de uma espécie relacionada que podem ser usadas como referências. Alinhamento com a referência. • Sequenciamento de novo – Não há sequências que podem ser usadas como referências. Este tipo de sequenciamento exigirá uma montagem (assembly) das sequências, utilizando apenas os dados obtidos desse sequenciamento. Alinhamento entre as sequencias geradas, que permitirá a obtenção de um consenso. Identificação das sequências • Resequenciamento – Alinhamento: Conjunto de Sequências X Sequências Referências (Ex.: Genoma) >seq1 gcagtcagtcacacatgtca... >seq2 cgcgcatgcGcgtactctat... >seq3 tcgagcatcatcagtcgtca... >seq4 tatgctttatagcgagtcat... ..... >chrX atcacacatgtcacatggtcag ggcatcagtcagtcagtcatgc gcgcgcatgcCcgtactctatc tcatgcgtcagtcatgcatgcg agcagtcatgcatgcatcgcac tgcatcatacgtcatgcatgaa ..... Objetivos: - Eliminar as sequência sem hit - Eliminar as sequência com hits múltiplos (ambiguous) - Identificar as sequência com hit único (unambiguous) Montagem de sequências • Sequenciamento de novo – Alinhamentos: • Conjunto de Sequências X Conjunto de Sequências (alinhamento pareado) • Alinhamento Múltiplo de Sequências (MSA) Consensus : Seq A Seq B Seq C Seq D Seq E Seq F Seq G ACAGTACGACAGTACGACCAGTACGATAGCAGTACGATACGACCGA TCCAGTACGATAGCAGTACGATCAG GCACAGTACGACCAGTACGATACAGGAAC CAGGTACGATACGACGGACGGGG ACAGTACGACAGTACGAAAC GTACGACCAGTACGATACACT AACGACAGTACGAAACGGG TATAGGTACGATACGACGGAC Introdução ALGORITMOS PARA ALINHAMENTO DE SEQUÊNCIAS Problema básico • Transformar uma sequência de caracteres em outra: – Operações: • inserção • deleção • substituição – Custo de operação: • Score de substituição • Penalidade para Gaps (inserção/deleção) – Qual é a quantidade de operações mínima ? – Como achar a séries de operações que vai garantir que usamos a quantidade de operações mínima ? Exemplo: Scores: Match: 2 Mismatch (S): -1 Gap(I): -2 Gap(D): -2 ACGT || G-GT Score (4-2-1): 1 2 matches: 4 1 gap: -2 1 mismatch: -1 Soluções • Matrix de pontos (dot matrix) [Goldstein e Gunawardenaa, 2000] – Informação qualitativa; Drosophila Dystrobrevin and Mouse ortholog Soluções • Matrix de pontos (dot matrix) – Informação qualitativa; • Algoritmos de Programação Dinâmica – Smith-Waterman; Needleman-Wunsch; • SW é um algoritmo para achar o alinhamento mais provável com uma estrutura certa; Alinhamentos de Sequências • Alinhamento Global (e.g. Algoritmo de Needleman-Wunsch) • As sequências envolvidas devem ser alinhadas de um extremo ao outro. Adequado quando as sequências possuem aproximadamente o mesmo tamanho. Seq X : C A T T A G C A G C C T | | | | | | Seq Y : - A G T A – - A G C - - • Alinhamento Local (e.g. Algoritmo de Smith–Waterman) • Procura-se alinhar apenas as regiões mais similares, independente da localização relativa de cada região. Seq X [4,10]: T A G C A G C | | | | | Seq Y [3,7]: T A - - A G C Alinhamentos (Global/Local) (DNA/Protein) • FASTA (http://fasta.bioch.virginia.edu/fasta_www2/fasta_list2.shtml) • EMBOSS Align (http://www.ebi.ac.uk/Tools/emboss/align/) Matriz de Programação Dinâmica GG A > Score (-2-1): -3 1 gap: -2 1 mismatch: -1 GG A > Score(-1-2): -3 1 mismatch: -1 1 gap: -2 GG > Score(-4-2): -6 2 gaps: -4 1 gap: -2 A D(i, j) = max D(i-1, j-1) + s(xi, yj) (diagonal -> match/mismatch) D(i -1, j) + g (acima -> gap acima) D(i, j -1) + g (esquerda -> gap esquerda) Exemplo: Scores: Match: 2 Mismatch (S): -1 Gap(I): -2 Gap(D): -2 ACGT || G-GT D(i-1,j-1) D(i-1,j) D(i,j-1) D(i,j) traceback Score (4-2-1): 1 2 matches: 4 1 gap: -2 1 mismatch: -1 Solução • Matrix de pontos (dot matrix) – Informação qualitativa; • Algoritmos de Programação Dinâmica – Smith-Waterman; Needleman-Wunsch; • SW é um algoritmo para achar o alinhamento mais provável com uma estrutura certa; • Por razões de tempo e espaço, não pode ser usado para alinhamento de sequências de larga escala; • Utilizações de aproximações (heurísticas); • Geralmente, quanto mais rápida for a aproximação, mais distante estará a resposta da solução “correta”; Desafios • Eficiência; – velocidade; – sensibilidade; – especificidade; • Ambiguidade causada por sequências repetitivas; • Erros inerentes às técnicas de sequenciamento. BLAST • • • Basic Local Alignment Search Tool http://blast.ncbi.nlm.nih.gov/ Heurística: dicionário de palavras (hash) – k-word – Constrói dicionário de palavras de cada k-mer da consulta (score threshold) e as procura nas referências por uma correspondência exata (match exato); E-value (S): número de diferentes alinhamentos com scores equivalentes ou melhores que S que são esperados ocorrer ao acaso em buscas em um banco de dados aleatório, do mesmo tamanho, com a mesma composição de bases; QUANTO MENOR... MELHOR!!! NÃO CONFUNDIR COM P-value (probabilidade) BLAT • BLAT—The BLAST-Like Alignment Tool • http://genome.ucsc.edu/ • Estruturalmente diferente (BLAST) – Além de outros pontos, o Blat constrói o dicionário de palavras de tamanho k (k-mers) do banco de dado de sequências referências (database) e faz as buscas nas sequências as quais se deseja consultar (query); • • • • Blat é mais rápido, porém menos sensível; Possui código especialmente para lidar com intros em alinhamentos RNA/DNA; Comumente utilizado para localizar uma determinada sequência no genoma ou determinar a estrutura de exons de um RNA; Pode ser utilizado para alinhar sequências de Roche/454; Alinhamento de sequências curtas • BLAST/BLAT são lentos demais para alinhar milhões de sequências (Illumina: 35bp100bp/SOLiD: ) • Considerações: – Não precisamos de um alinhamento sofisticado como SW; – Não precisamos de estatísticas com e-value; – Normalmente, sabemos a quantidade de mismatches máximas que queremos; Introdução NEXT-GENERATION Introdução à nova geração de algoritmos de alinhamento Alinhamentos: construção de índices (referências ou sequências) Dependendo da propriedade do índice. Os algoritmos podem ser classificados em 3 categorias: – Tabelas hash – Índices de sufixos/prefixos (Árvores/Arranjos) – merge-sorting • slider (Malhis et al., 2009) Implementações • Alinhadores para leituras longas (>200bp): – BLAT, SSAHA2, BWA-SW, gsMapper. • Alinhadores para leituras curtas: – Bfast, BioScope, Bowtie, BWA, CLC bio, CloudBurst, Eland/Eland2, GenomeMapper, GnuMap, Karma, MAQ, MOM, Mosaik, MrFAST/MrsFAST, NovoAlign, PASS, PerM, RazerS, RMAP, SSAHA2, Segemehl, SeqMap, SHRiMP, Slider/SliderII, SOAP/SOAP2, Srprism, Stampy, vmatch, ZOOM, ... Variação na Eficiência [Lunter et al., 2010] Introdução à nova geração de algoritmos de alinhamento – Tabelas hash • Paradigma: seed-and-extend – – – – – seed: correspondência (match) exata tabela hash: índice (chave) é uma string (sequência k-mer) chave: k-mer (k = 11 – BLAST default) extensão (Smith Waterman – BLAST) spaced-seed (match não consecutivo, baseado em um template 111011001110111) » número de matches do seed é o seu peso (weight) • Constrói Hash table das leituras e procura na referência – ELAND (Anthony. J. Cox, 2006, unpublished data) – MAQ (Li H et al., 2008) • Constrói Hash table das referências e procura nas leituras – SOAP (Li R et al., 2008) Alinhamentos baseados em Hashing table • Idéia dos algoritmos de alinhamentos baseados em hashing tables com spaced-seeds: read: agtcgtat | ||| || genoma: acggcacgaggaactcgaatctgacgcatgcagtacta Se admitirmos 2 mismatches entre a minha sequência e o genoma. Se separados em 4 fragmentos, vão existir pelo menos 2 fragmentos sem mismatches, ou seja, com matches exatos ! spaced-seeds • 6 possibilidades de seeds (templates), com no mínimo 2 fragmentos com match perfeito (ELAND) read: agtcgtat 1 agtc---- 11110000 2 --tcgt-- 00111100 3 ----gtat 00001111 4 ag--gt-- 11001100 5 --tc--at 00110011 6 ag----at 11000011 Hash Tables [Chen et al., 2009] Alinhamento de Sequências com hashing • Softwares – ELAND (Anthony. J. Cox, 2006, unpublished data), – MAQ (Li H et al., 2008) – SOAP (Li R et al., 2008) • Características: – Para detectar sequências com mais mismatches, precisamos de mais seeds: • Mais mismatches => mais tempo – Algoritmo mais sofisticado para o alinhamento vai requerer mais tempo: • Indels/gaps => mais tempo • Problemas com hashing: – Memória e tempo • Precisa de múltiplos processadores e muita memória. – Necessidade de métodos menos “glutões” Introdução à nova geração de algoritmos de alinhamento – Índices de sufixos/prefixos (Árvores/Arranjos) • Estrutura de dados que permite a representação de todos os sufixos/prefixos de um determinada string S. Possibilitando encontrar as ocorrências de um determinado padrão (sequência); • Alinhamento: encontrar os matches exatos no índice, utilizando representações: – Árvore de sufixos (Suffix tree) – Arranjo de sufixos (Suffix array) » Índice-FM (FM-index) (Ferragina and Manzini, 2000) – BWT • Alinhadores de sequências: • Bowtie (Langmead et al., 2009) • BWA • BWA-SHORT (Li and Durbin, 2009) • BWA-SW (Li and Durbin, 2010) Árvore de sufixos String indexada: ^GOOGOL$ String procurada: LOL Mismatches permitidos: 1 Match: GOL [Li and Durbin, 2009] Transformação de Burrows–Wheeler • FM-Index (Ferragina e Manzini, 2000); – Burrows-Wheeler Transform (BWT) • Algoritmo usado normalmente em softwares de compressão (.bzip2); • Ideia básica: dada uma sequência S de n símbolos, reordenar os símbolos formando outra sequência L, que verifica duas condições: – – a probabilidade de um símbolo ser igual ao anterior é muito elevada; é possível reconstruir S a partir de L e de mais alguma informação (primary index); Transformation T => BWT(T) Input ^BANANA@ All Rotations Sort the Rows ^BANANA@ @^BANANA A@^BANAN NA@^BANA ANA@^BAN NANA@^BA ANANA@^B BANANA@^ ANANA@^B ANA@^BAN A@^BANAN BANANA@^ NANA@^BA NA@^BANA ^BANANA@ @^BANANA Output BNN^AA@A Inverse Transformation BWT(T) => T Input BNN^AA@A Add 1 Sort 1 Add 2 Sort 2 B N N ^ A A @ A A A A B N N ^ @ BA NA NA ^B AN AN @^ A@ AN AN A@ BA NA NA ^B @^ Add 3 Sort 3 Add 4 Sort 4 BAN NAN NA@ ^BA ANA ANA @^B A@^ ANA ANA A@^ BAN NAN NA@ ^BA @^B BANA NANA NA@^ ^BAN ANAN ANA@ @^BA A@^B ANAN ANA@ A@^B BANA NANA NA@^ ^BAN @^BA Add 5 Sort 5 Add 6 Sort 6 BANAN NANA@ NA@^B ^BANA ANANA ANA@^ @^BAN A@^BA ANANA ANA@^ A@^BA BANAN NANA@ NA@^B ^BANA @^BAN BANANA NANA@^ NA@^BA ^BANAN ANANA@ ANA@^B @^BANA A@^BAN ANANA@ ANA@^B A@^BAN BANANA NANA@^ NA@^BA ^BANAN @^BANA Add 7 Sort 7 Add 8 Sort 8 BANANA@ NANA@^B NA@^BAN ^BANANA ANANA@^ ANA@^BA @^BANAN A@^BANA ANANA@^ ANA@^BA A@^BANA BANANA@ NANA@^B NA@^BAN ^BANANA @^BANAN BANANA@^ NANA@^BA NA@^BANA ^BANANA@ ANANA@^B ANA@^BAN @^BANANA A@^BANAN ANANA@^B ANA@^BAN A@^BANAN BANANA@^ NANA@^BA NA@^BANA ^BANANA@ @^BANANA Output ^BANANA@ FM-Index Rotações Transformação de Burrows Wheeler Sequência [Li and Durbin, 2009] Array de sufixos LF mapping A ordem de ocorrência de um caracter na última coluna é a mesma ordem de ocorrência na primeira coluna. Match exato (aac) BWT ponteiros Suffix Array Reconstrução da sequência original (a) T => BWT(T) (b) BWT(T) => T (c) Exact Match Quando dois ponteiros se encontram: match [Langmead et al., 2009] Inexact Matching depth-first-traversal Bowtie Backtracks [Langmead et al., 2009] BWA-SW • Heurísticas + Smith-Waterman-like • Apropriado para sequências longas (> 100 pb) – Mais acurado e ~10 vezes mais rápido que o BLAT Sequência Referência (reference) Sequência da leitura (query) • Percorre as duas estruturas de índices de sufixos (para a leitura e para a referência) alinhandoas utilizando programação dinâmica; • Utiliza heurísticas para não percorrer toda a estrutura (Z-best strategy), identificando seeds de alinhamento com o maior score; representação implícita A - Árvore de sufixos ‘GOOGOL’; B – Grafo Direcionado Acíclico de Palavras (DAWG) ‘ GOOGOL’; • Utiliza o algoritmo de Smith-Waterman para extender o alinhamento das seeds identificadas; Bowtie • http://bowtie-bio.sourceforge.net – Burrows-Wheeler; • Reduz a quantidade de memória e de tempo para alinhar sequências curtas; • Podem ser usadas sequências Illumina e SOLiD – Deficiências: • Não tem garantia de retornar todos os hits com mismatches (exceto com opção --best) • Limite de 3 mismatches (demora mais) • Reads longos reduz a velocidade • Não permite alinhamento com gaps Bowtie Index Builder: bowtie-build Usage: bowtie-build [options]* <reference_in> <ebwt_outfile_base> reference_in comma-separated list of files with ref sequences ebwt_outfile_base write Ebwt data to files with this dir/basename Options: -f reference files are Fasta (default) -c reference sequences given on cmd line (as <seq_in>) -C/--color build a colorspace index -a/--noauto disable automatic -p/--bmax/--dcv memory-fitting -p/--packed use packed strings internally; slower, uses less mem -B build both letter- and colorspace indexes --bmax <int> max bucket sz for blockwise suffix-array builder --bmaxdivn <int> max bucket sz as divisor of ref len (default: 4) --dcv <int> diff-cover period for blockwise (default: 1024) --nodc disable diff-cover (algorithm becomes quadratic) -r/--noref don't build .3/.4.ebwt (packed reference) portion -3/--justref just build .3/.4.ebwt (packed reference) portion -o/--offrate <int> SA is sampled every 2^offRate BWT chars (default: 5) -t/--ftabchars <int> # of chars consumed in initial lookup (default: 10) --ntoa convert Ns in reference to As --seed <int> seed for random number generator -q/--quiet verbose output (for debugging) -h/--help print detailed description of tool and its options --usage print this usage message --version print version information and quit [/data/indexes]$ bowtie-build $BOWTIE_INDEXES=“/data/indexes” /data/hg18.fa hg18 hg18.1.ebwt hg18.2.ebwt hg18.3.ebwt hg18.4.ebwt hg18.rev.1.ebwt hg18.rev.2.ebwt Bowtie Index Inspector: bowtie-inspect Usage: bowtie-inspect [options]* <ebwt_base> <ebwt_base> ebwt filename minus trailing .1.ebwt/.2.ebwt By default, prints FASTA records of the indexed nucleotide sequences to standard out. With -n, just prints names. With -s, just prints a summary of the index parameters and sequences. With -e, preserves colors if applicable. Options: -a/--across <int> -n/--names -s/--summary -e/--ebwt-ref -v/--verbose -h/--help --help Number of characters across in FASTA output (default: 60) Print reference sequence names only Print summary incl. ref names, lengths, index properties Reconstruct reference from ebwt (slow, preserves colors) Verbose output (for debugging) print detailed description of tool and its options print this usage message [/data/indexes]$ bowtie-inspect -s hg18 Bowtie Aligner: bowtie Usage: bowtie [options]* <ebwt> {-1 <m1> -2 <m2> | --12 <r> | <s>} [<hit>] <m1> <m2> <r> <s> Comma-separated list of files containing upstream mates (or the sequences themselves, if -c is set) paired with mates in <m2> Comma-separated list of files containing downstream mates (or the sequences themselves if -c is set) paired with mates in <m1> Comma-separated list of files containing Crossbow-style reads. Can be a mixture of paired and unpaired. Specify "-" for stdin. Comma-separated list of files containing unpaired reads, or the sequences themselves, if -c is set. Specify "-" for stdin. File to write hits to (default: stdout) <hit> Input: -q -f -r -c -C -Q/--quals <file> --Q1/--Q2 <file> -s/--skip <int> -u/--qupto <int> -5/--trim5 <int> -3/--trim3 <int> --phred33-quals --phred64-quals --solexa-quals --solexa1.3-quals --integer-quals Alignment: -v <int> or -n/--seedmms <int> -e/--maqerr <int> -l/--seedlen <int> --nomaqround -I/--minins <int> -X/--maxins <int> --fr/--rf/--ff --nofw/--norc --maxbts <int> --pairtries <int> -y/--tryhard --chunkmbs <int> query input files are FASTQ .fq/.fastq (default) query input files are (multi-)FASTA .fa/.mfa query input files are raw one-sequence-per-line query sequences given on cmd line (as <mates>, <singles>) reads and index are in colorspace QV file(s) corresponding to CSFASTA inputs; use with -f -C same as -Q, but for mate files 1 and 2 respectively skip the first <int> reads/pairs in the input stop after first <int> reads/pairs (excl. skipped reads) trim <int> bases from 5' (left) end of reads trim <int> bases from 3' (right) end of reads input quals are Phred+33 (default) input quals are Phred+64 (same as --solexa1.3-quals) input quals are from GA Pipeline ver. < 1.3 input quals are from GA Pipeline ver. >= 1.3 qualities are given as space-separated integers (not ASCII) report end-to-end hits w/ <=v mismatches; ignore qualities max mismatches in seed (can be 0-3, default: -n 2) max sum of mismatch quals across alignment for -n (def: 70) seed length for -n (default: 28) disable Maq-like quality rounding for -n (nearest 10 <= 30) minimum insert size for paired-end alignment (default: 0) maximum insert size for paired-end alignment (default: 250) -1, -2 mates align fw/rev, rev/fw, fw/fw (default: --fr) do not align to forward/reverse-complement reference strand max # backtracks for -n 2/3 (default: 125, 800 for --best) max # attempts to find mate for anchor hit (default: 100) try hard to find valid alignments, at the expense of speed max megabytes of RAM for best-first search frames (def: 64) Reporting: -k <int> -a/--all -m <int> -M <int> --best --strata Output: -t/--time -B/--offbase <int> --quiet --refout --refidx --al <fname> --un <fname> --max <fname> --suppress <cols> --fullref Colorspace: --snpphred <int> or --snpfrac <dec> --col-cseq --col-cqual --col-keepends SAM: -S/--sam --mapq <int> --sam-nohead --sam-nosq --sam-RG <text> Performance: -o/--offrate <int> -p/--threads <int> --mm --shmem Other: --seed <int> --verbose --version -h/--help report up to <int> good alignments per read (default: 1) report all alignments per read (much slower than low -k) suppress all alignments if > <int> exist (def: no limit) like -m, but reports 1 random hit (MAPQ=0); requires --best hits guaranteed best stratum; ties broken by quality hits in sub-optimal strata aren't reported (requires --best) print wall-clock time taken by search phases leftmost ref offset = <int> in bowtie output (default: 0) print nothing but the alignments write alignments to files refXXXXX.map, 1 map per reference refer to ref. seqs by 0-based index rather than name write aligned reads/pairs to file(s) <fname> write unaligned reads/pairs to file(s) <fname> write reads/pairs over -m limit to file(s) <fname> suppresses given columns (comma-delim'ed) in default output write entire ref name (default: only up to 1st space) Phred penalty for SNP when decoding colorspace (def: 30) approx. fraction of SNP bases (e.g. 0.001); sets --snpphred print aligned colorspace seqs as colors, not decoded bases print original colorspace quals, not decoded quals keep nucleotides at extreme ends of decoded alignment write hits in SAM format default mapping quality (MAPQ) to print for SAM alignments supppress header lines (starting with @) for SAM output supppress @SQ header lines for SAM output add <text> (usually "lab=value") to @RG line of SAM header override offrate of index; must be >= index's offrate number of alignment threads to launch (default: 1) use memory-mapped I/O for index; many 'bowtie's can share use shared mem for index; many 'bowtie's can share seed for random number generator verbose output (for debugging) print version information and quit print this usage message [/data]$ bowtie hg18 \ > -c "AGGAATTGCGGGAGGAAAATGGGTAGTTAGCTATTT,AGGGCCCATAGCAACAGATTTCTAGCCCCCTGAAGA" > --best --strata --tryhard -m 1 Principais parâmetros do Bowtie Alignment: -n <int>: número máximo de mismatches na seed [1..3] (2) – Mutuamente exclusivo (-v); -v <int>: número máximo de mismatches em todo o alinhamento, ignorando qualidade; -l <int>: tamanho da seed [5..*] (28); -e <int>: total valor qualidade [10..30] máximo para as posições onde há mismatch, considerando o alinhamento todo (70); --maxbts <int> : número máximo de backtracks permitidos (125, 800 com --best); --pairtries <int>: número máximo de tentativas de encontrar sequências em pares; --try_hard: equivalente p/ valores altos de --maxbts e –pairtries Reporting: --best: reporta os melhores alinhamentos considerando número de mismatches na seed e o valor de qualidade dessas bases; (1 mismatch qual 40 é melhor que 2 mismatches qual 10) -a: reporta todos os alinhamentos válidos; -k <int>: reporta até k alinhamentos válidos; -m <int>: suprime os alinhamentos múltiplos de uma leitura se há mais que m alinhamentos válidos; BWA • http://bio-bwa.sourceforge.net/ • Dois algoritmos baseados na Transformação de Burrows-Wheeler (BWT) – sequências pequenas (queries) até ~200bp com baixa taxa de erro (<3%) • Alinhamento global (FM-index) com respeito às queries, suporta sequências paired-ends. • BWA (Li and Durbin, 2009) – sequências longas (queries) com taxa de erro maior • Alinhamento local = heurísticas+Smith-Waterman-like em árvores de sufixos, não suporta sequências paired-ends. Lento para sequências pequenas. • BWA-SW (Li and Durbin, 2010) BWA (index) bwa index [-p prefix] [-a algoType] [-c] <in.db.fasta> Index database sequences in the FASTA format. Constrói os índices das sequências de referência que serão utilizadas no alinhamento. OPTIONS: -c -p STR -a STR is bwtsw Build color-space index. The input fast should be in nucleotide space. Prefix of the output database [same as db filename] Algorithm for constructing BWT index. Available options are: IS linear-time algorithm for constructing suffix array. - requires 5.37*N (N = size of the database) - IS is moderately fast, but does not work with database larger than 2GB. Algorithm implemented in BWT-SW. - does not work with database smaller than 10MB and it is usually slower than IS. [/data/indexes]$ bwa index –a bwtsw /data/hg19.fa BWA (aln) bwa aln [-n maxDiff] [-o maxGapO] [-e maxGapE] [-d nDelTail] [-i nIndelEnd] [-k maxSeedDiff] [-l seedLen] [-t nThrds] [-cRN] [-M misMsc] [-O gapOsc] [-E gapEsc] [-q trimQual] [-f <out.sai>] <in.db.fasta> <in.query.fq> Encontra as coordenadas das leituras no array de sufixos; MAIN OPTIONS: • -I The input is in the Illumina 1.3+ read format; • -n NUM Maximum edit distance (maxDiff). Máximo de diferenças permitidas no alinhamento todo. Se inteiro é a distância de edição, se ponto flutuante, automaticamente seleciona essa distância de edição com base nos valores de taxa de erro (uniforme) 2%, tamanho das sequências e NUM (threshold) [0.04]; • -l INT Take the first INT subsequence as seed (seedLen) – Tamanho da primeira semente de alinhamento. Se INT maior que o tamanho das sequências, desabilita seeding [32]; • -k INT Maximum edit distance in the seed (maxSeedDiff) – Número máximo de diferenças permitidas na primeira semente de alinhamento (seed) [2]; • -t INT Number of threads (multi-threading mode) [1]; • -o INT Maximum number of gap opens [1] • -e INT Maximum number of gap extensions, -1 for k-difference mode (disallowing long gaps) [-1] • -d INT Disallow a long deletion within INT bp towards the 3’-end [16] • -i INT Disallow an indel within INT bp towards the ends [5] • -N Disable iterative search. All hits with no more than maxDiff differences will be found. This mode is much slower than the default. • -q INT Parameter for read trimming (soft clipping). [/data/input]$ bwa aln –f out.sai /data/hg19.fa in.fastq BWA (samse/sampe) bwa samse [-n maxOcc] –f <out.sam> <in.db.fasta> <in.sai> <in.fq> Gera alinhamentos no formato SAM a partir de leituras single-end. Hits repetitivos são escolhidos aleatoriamente. [/data/input]$ bwa samse –f out.sam /data/hg19.fa out.sai in.fastq bwa sampe [-a maxInsSize] [-o maxOcc] [-n maxHitPaired] [-N maxHitDis] [-P] -f <out.sam> <in.db.fasta> <in1.sai> <in2.sai> <in1.fq> <in2.fq> Gera alinhamentos no formato SAM a partir de leituras paired-end. Hits de pares repetitivos são escolhidos aleatoriamente. MAIN OPTIONS: -n INT Maximum number of alignments to output in the XA tag for reads paired properly. If a read than INT hits, the XA tag will not be written. [3] has more -N INT Maximum number of alignments to output in the XA tag for disconcordant read pairs singletons). If a read has more than INT hits, the XA tag will not be written. [10] (excluding -s Disable Smith-Waterman for the unmapped mate; [/data/input]$ bwa sampe –f outpe.sam /data/hg19.fa out1.sai out2.sai \ > in1.fastq in2.fastq BWA (bwasw) bwa bwasw [-a matchScore] [-b mmPen] [-q gapOpenPen] [-r gapExtPen] [-t nThreads] [-w bandWidth] [-T thres] [-s hspIntv] [-z zBest] [-N nHspRev] [-c thresCoef] –f <out.sam> <in.db.fasta> <in.fq> Gera alinhamento de sequências longas no formato SAM. MAIN OPTIONS: -t INT Number of threads in the multi-threading mode [1] -z INT Z-best heuristics. Higher -z increases accuracy at the cost of [1] -s INT Maximum SA interval size for initiating a seed. Higher -s increases accuracy at the cost of speed. [3] [/data/input]$ bwa bwasw –f out.sam /data/hg19.fa in.fastq speed. The Sequence Alignment Map • Formato genérico para armazenar o resultado dos alinhamentos de sequências de leituras contra sequências de referência; – (Li et al., 2009) • Suporta o armazenamento de dados das mais variadas plataformas de sequenciamento; – Há duas seções: • cabeçalho (iniciadas por @) • corpo (alinhamentos); – O alinhamento é representado no corpo por linhas com campos (11 mandatórios) delimitados por TAB; Formato SAM (1) Col 1 2 3 4 5 6 7 8 9 10 11 12 Field QNAME FLAG RNAME POS MAPQ CIGAR MRNM MPOS ISIZE SEQ QUAL OPT Description Query (pair) NAME bitwise FLAG Reference sequence NAME 1-based leftmost POSition/coordinate of clipped sequence MAPping Quality (Phred-scaled) extended CIGAR string Mate Reference sequence NaMe (‘=’ if same as RNAME) 1-based Mate POSistion Inferred insert SIZE query SEQuence on the same strand as the reference query QUALity (ASCII-33 gives the Phred base quality) variable OPTional fields in the format TAG:VTYPE:VALUE Mapping Quality • Qualidade do mapeamento – escala Phred de qualidade (Li et al., 2008); Formato SAM (2) C SAM pile-up forward match (.) mismatch (base in lower case) reverse match (,) mismatch (base in upper case) insertion +<LENGTH><BASES> deletion -<LENGTH><BASES> missing * start read alignent ^ end read alignment $ Bitwise FLAG Exemplo: FLAG 2 alinhamentos de leituras paired-end FLAGs: 99 (00001100011 ) 147 (00010010011 ) Flag (Hex) 0x0001 0x0002 0x0004 0x0008 0x0010 0x0020 0x0040 0x0080 0x0100 0x0200 0x0400 Description the read is paired in sequencing the read is mapped in a proper pair the query sequence itself is unmapped the mate is unmapped strand of the query (1 for reverse) strand of the mate the read is the first read in a pair the read is the second read in a pair the alignment is not primary QC failure optical or PCR duplicate 99 1 1 0 0 0 1 1 0 0 0 0 147 1 1 0 0 1 0 0 1 0 0 0 Formato BED Formato flexível para definição de dados de anotação. Os três primerio campos são requeridos: • • • chrom chromStart chromEnd – Nome do cromossomo – Início da coordenada no cromossomo – Final da coordenada no cromossomo • • • • • • • • • name score strand thickStart thickEnd itemRgb blockCount blockSizes blockStarts – Nome da linha de anotação – Pontuação entre 0 e 1000 – Fita do DNA + ou – Início da coordenada de destaque (por ex. start codon) – Fim da coordenada de destaque (por ex. stop codon) – Valor RGB no formato R,G,B (e.g. 255,0,0) ; cor no Genome Browser – Número de blocos de alinhamento (por ex. exons) – Lista (separada por vírgula) de tamanho dos blocos – Lista (separada por vírgula) com o iníco da coordenada dos blocos Exemplo chr1 34610 36081 NR_026818 0 chr1 803450 812182 NR_027055 0 - 36081 36081 0 3 564,205,361, 0,666,1110, 812182 812182 0 3 605,1044,57, 0,6041,8675, BEDtools • http://code.google.com/p/bedtools/ • Conjunto de utilitários que permitem executar tarefas comuns em genômica, tais como encontrar coordenadas de alinhamentos que possuem sobreposição; • Funcionalidades – bamToBed Converte alinhamentos no formato BAM para o formato BED – intersectBed Retorna as sobreposições entre dois arquivos no formato BED – ... samtools • http://samtools.sourceforge.net/ • Provê várias ferramentas para manipulação dos alinhamentos no formato SAM/BAM • Funcionalidades – import – view – – – – – – sort merge index faidx tview pileup Conversão de SAM-para-BAM Conversão de BAM-para-SAM e recuperação de subalinhamentos Ordenação (posição nos cromossomos) união de múltiplos alinhamentos ordenados Indexação de alinhamentos ordenados Indexação de arquivos FASTA e recuperação de subsequências Visualização do alinhamento Gera arquivo de cobertura por posição goby • http://campagnelab.org/software/goby/ • Sistema computacional para manipulação de dados da nova geração de sequenciamento, com aplicações que facilitam a implementação de “pipelines” de análise de dados; • Funcionalidades – Filtragem de leituras redunantes; – Criação de arquivos nos formatos wiggle/bed para visualização; – Análise de expressão gênica diferencial; – Detecção de variações; –… Integrative Genomics Viewer • IGV (Genome Browser) – http://www.broadinstitute.org/software/igv/home – Download – ~10Mb (.zip) – Permissão execução p/ todos – chmod a+x igv_linux.sh – Aumentar espaço de alocação de memória – Editar arquivo igv_linux.sh (-Xmx1200m) – Necessita acesso à internet! Referências • • • • • • • • Cock PJ, Fields CJ, Goto N, Heuer ML, Rice PM. The Sanger FASTQ file format for sequences with quality scores, and the Solexa/Illumina FASTQ variants. Nucleic Acids Res. 2010 Apr;38(6):1767-71. Epub 2009 Dec 16. Review. PubMed PMID: 20015970; PubMed Central PMCID: PMC2847217; Li H, Homer N. A survey of sequence alignment algorithms for next-generation sequencing. Brief Bioinform. 2010 Sep;11(5):473-83. Epub 2010 May 11. Review. PubMed PMID: 20460430; PubMed Central PMCID: PMC2943993; Li H, Durbin R. Fast and accurate short read alignment with Burrows-Wheeler transform. Bioinformatics. 2009 Jul 15;25(14):1754-60. Epub 2009 May 18. PubMed PMID: 19451168; PubMed Central PMCID: PMC2705234; Li H, Durbin R. Fast and accurate long-read alignment with Burrows-Wheeler transform. Bioinformatics. 2010 Mar 1;26(5):589-95. Epub 2010 Jan 15. PubMed PMID: 20080505; PubMed Central PMCID: PMC2828108; Langmead B, Trapnell C, Pop M, Salzberg SL. Ultrafast and memory-efficient alignment of short DNA sequences to the human genome. Genome Biol. 2009;10(3):R25. Epub 2009 Mar 4. PubMed PMID: 19261174; PubMed Central PMCID: PMC2690996; Li H, Ruan J, Durbin R. Mapping short DNA sequencing reads and calling variants using mapping quality scores. Genome Res. 2008 Nov;18(11):1851-8. Epub 2008 Aug 19. PubMed PMID: 18714091; PubMed Central PMCID: PMC2577856; Robinson JT, Thorvaldsdóttir H, Winckler W, Guttman M, Lander ES, Getz G, Mesirov JP. Integrative genomics viewer. Nat Biotechnol. 2011 Jan;29(1):24-6. PubMed PMID: 21221095; Li H, Handsaker B, Wysoker A, Fennell T, Ruan J, Homer N, Marth G, Abecasis G, Durbin R; 1000 Genome Project Data Processing Subgroup. The Sequence Alignment/Map format and SAMtools. Bioinformatics. 2009 Aug 15;25(16):2078-9. Epub 2009 Jun 8. PubMed PMID: 19505943; PubMed Central PMCID: PMC2723002; Daniel Guariz Pinheiro [email protected]