Upload
internet
View
113
Download
0
Embed Size (px)
Citation preview
Alinhamento de Sequências de Transcritos Gênicos
Daniel Guariz Pinheiro, PhD.Laboratório de Genética Molecular e BioinformáticaDepartamento de GenéticaFaculdade de Medicina de Ribeirão PretoUniversidade 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. RNA-Seq) 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
“(…) In mid-September 2010, the
SRA contained >500 billion reads consisting of 60 trillion base pairs 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 submitted base pairs, respectively.(…)”(Leinonen R et. al., 2011)
“We’re growing by about 1 Tb/month.”NCBI’s staff scientist Martin Shumway
InternationalNucleotideSequenceDatabaseCollaboration
• 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
Modelo de Dados
[http://trace.ddbj.nig.ac.jp/dra/documentation_e.shtml]
Formato Fasta
>SEQUENCE_1cagtcagcatactcagtcagtcatgcatgctgagtcacttgcatgacgtcatgactgcatgactgc
sequence.fa
Extensões: .fa, .fasta, .fna
>SEQUENCE_11 9 7 15 20 21 16 26 31 37 38 ...31 13 23 29 31 33 35 30 29 34 ...
sequence.qual
Qualidade
O que queremos dizer com qualidade ?
>SEQUENCE_11 9 7 15 20 21 16 26 31 37 38 ...31 13 23 29 31 33 35 30 29 34 ...
)(log10 10 errorphred PQ
Score Perro
10 0.1
20 0.01
30 0.001
Formato fastq
@SOLEXA01:1:1:27:1992#0/1AGTACAAGAGACAGACATTCTTTTTTTTGACACAAG+SOLEXA01:1:1:27:1992#0/1\FFFMXPYDDHJSUMVUJLPSNFRXZEDLNLHKHIT
Identificador padrão Illumina
sequence.fastq
Extensões: .fastq
Qualidade codificada como um único caracter da tabela ASCII.
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)
)1(log10 10
error
errorsolexa P
PQ
)(log10 10 errorphred PQ
F = 70 (ascii) = 70-64 = 6 (Qphred) = 0,25 (Perror)
Color Space
>9_62_1919_F3T01231033313313303131110311003330000
sequence.csfasta
>9_62_1919_F3TGATGGCGCATACGCCGTACACCGTGGGCGCCCCC
sequence.fasta
T0 = T => T1 = G => G2 = A => ...
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
(Kor
bel e
t al.
, 200
7)
>SOLEXA01:1:1:27:1992#0/1 >SOLEXA01:1:1:27:1992#0/2
Referência:~ 128 bp a ~428 bp
paired-ends
36 bp 36 bp
>SOLEXA02:1:1:11:1992#0/1 >SOLEXA02:1:1:11:1992#0/2
Referência:~ 1928 bp a 4928 bp
mate-pair
36 bp 36 bp
Sequenciamento em pares (Illumina)
http://www.illumina.com/technology/paired_end_sequencing_assay.ilmnhttp://www.illumina.com/technology/mate_pair_sequencing_assay.ilmn
Mat
e Pa
ir Li
brar
y Se
quen
cing
for L
ong
Inse
rts
paire
d-En
d Se
quen
cing
ALINHAMENTO DE SEQUÊNCIASIntrodução
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)>seq1gcagtcagtcacacatgtca...>seq2cgcgcatgcGcgtactctat...>seq3tcgagcatcatcagtcgtca...>seq4tatgctttatagcgagtcat........
>chrXatcacacatgtcacatggtcagggcatcagtcagtcagtcatgcgcgcgcatgcCcgtactctatctcatgcgtcagtcatgcatgcgagcagtcatgcatgcatcgcactgcatcatacgtcatgcatgaa.....
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)
ACAGTACGACAGTACGACCAGTACGATAGCAGTACGATACGACCGA TCCAGTACGATAGCAGTACGATCAG GCACAGTACGACCAGTACGATACAGGAAC CAGGTACGATACGACGGACGGGGACAGTACGACAGTACGAAAC GTACGACCAGTACGATACACT AACGACAGTACGAAACGGG TATAGGTACGATACGACGGAC
Consensus :Seq ASeq BSeq CSeq DSeq ESeq FSeq G
ALGORITMOS PARA ALINHAMENTO DE SEQUÊNCIAS
Introdução
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: ACGT
||G-GT
Scores:Match: 2Mismatch (S): -1Gap(I): -2Gap(D): -2
Score (4-2-1): 12 matches: 41 gap: -21 mismatch: -1
Soluções
• Matrix de pontos (dot matrix)– Informação qualitativa;
Drosophila Dystrobrevin and Mouse ortholog
[Gol
dste
in e
Gun
awar
dena
a, 2
000]
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
Exemplo: ACGT ||G-GT
Scores:Match: 2Mismatch (S): -1Gap(I): -2Gap(D): -2
Score (4-2-1): 12 matches: 41 gap: -21 mismatch: -1
D(i, j) = maxD(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)
D(i-1,j-1) D(i-1,j)
D(i,j-1) D(i,j)
traceback
GG A
> Score (-2-1): -31 gap: -21 mismatch: -1
> Score(-1-2): -31 mismatch: -11 gap: -2
> Score(-4-2): -62 gaps: -41 gap: -2
GGA
GG A
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: 35bp-100bp/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;
NEXT-GENERATIONIntrodução
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:
genoma: acggcacgaggaactcgaatctgacgcatgcagtacta| ||| ||
read: agtcgtat
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
--tc--at
--tcgt--
ag--gt--
ag----at
----gtat
agtc----
5
2
4
6
3
1
00110011
00111100
11001100
11000011
00001111
11110000
Hash Tables
[Chen et al., 2009]
1
2
3
4
5
6
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: LOLMismatches permitidos: 1Match: 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 AllRotations
Sort theRows Output
^BANANA@
^BANANA@@^BANANAA@^BANANNA@^BANAANA@^BANNANA@^BAANANA@^BBANANA@^
ANANA@^BANA@^BANA@^BANANBANANA@^NANA@^BANA@^BANA^BANANA@@^BANANA
BNN^AA@A
Inverse Transformation BWT(T) => T
Input
BNN^AA@A
Add 1 Sort 1 Add 2 Sort 2
BNN^AA@A
AAABNN^@
BANANA^BANAN@^A@
ANANA@BANANA^B@^
Add 3 Sort 3 Add 4 Sort 4
BANNANNA@^BAANAANA@^BA@^
ANAANAA@^BANNANNA@^BA@^B
BANANANANA@^^BANANANANA@@^BAA@^B
ANANANA@A@^BBANANANANA@^^BAN@^BA
Add 5 Sort 5 Add 6 Sort 6
BANANNANA@NA@^B^BANAANANAANA@^@^BANA@^BA
ANANAANA@^A@^BABANANNANA@NA@^B^BANA@^BAN
BANANANANA@^NA@^BA^BANANANANA@ANA@^B @^BANAA@^BAN
ANANA@ANA@^BA@^BANBANANANANA@^NA@^BA^BANAN@^BANA
Add 7 Sort 7 Add 8 Sort 8
BANANA@NANA@^BNA@^BAN^BANANAANANA@^ANA@^BA@^BANANA@^BANA
ANANA@^ANA@^BAA@^BANABANANA@NANA@^BNA@^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
[Li and Durbin, 2009] Array de sufixos
Transformação de Burrows Wheeler
Sequência
Rotações
LF mappingA ordem de ocorrência de um caracter na última coluna é a mesma ordem de ocorrência na primeira coluna.
(a) T => BWT(T)(b) BWT(T) => T(c) Exact Match
ponteirosSuffix Array
Quando dois ponteiros se encontram: match
[Langmead et al., 2009]
BWT
Reconstrução da sequência original
Match exato (aac)
Inexact Matching
Backtracks
[Langmead et al., 2009]
depth-first-traversalBowtie
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
A - Árvore de sufixos ‘GOOGOL’;B – Grafo Direcionado Acíclico de Palavras (DAWG) ‘GOOGOL’;
Sequência da leitura(query)
Sequência Referência(reference)
representação implícita
• Percorre as duas estruturas de índices de sufixos (para a leitura e para a referência) alinhando-as utilizando programação dinâmica;
• Utiliza heurísticas para não percorrertoda a estrutura (Z-best strategy),identificando seeds de alinhamento com o maiorscore;
• Utiliza o algoritmo de Smith-Waterman paraextender 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/basenameOptions: -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 /data/hg18.fa hg18
$BOWTIE_INDEXES=“/data/indexes”
hg18.1.ebwthg18.2.ebwthg18.3.ebwthg18.4.ebwthg18.rev.1.ebwthg18.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> Number of characters across in FASTA output (default: 60) -n/--names Print reference sequence names only -s/--summary Print summary incl. ref names, lengths, index properties -e/--ebwt-ref Reconstruct reference from ebwt (slow, preserves colors) -v/--verbose Verbose output (for debugging) -h/--help print detailed description of tool and its options --help print this usage message
[/data/indexes]$ bowtie-inspect -s hg18
Bowtie Aligner: bowtieReporting: -k <int> report up to <int> good alignments per read (default: 1) -a/--all report all alignments per read (much slower than low -k) -m <int> suppress all alignments if > <int> exist (def: no limit) -M <int> like -m, but reports 1 random hit (MAPQ=0); requires --best --best hits guaranteed best stratum; ties broken by quality --strata hits in sub-optimal strata aren't reported (requires --best)Output: -t/--time print wall-clock time taken by search phases -B/--offbase <int> leftmost ref offset = <int> in bowtie output (default: 0) --quiet print nothing but the alignments --refout write alignments to files refXXXXX.map, 1 map per reference --refidx refer to ref. seqs by 0-based index rather than name --al <fname> write aligned reads/pairs to file(s) <fname> --un <fname> write unaligned reads/pairs to file(s) <fname> --max <fname> write reads/pairs over -m limit to file(s) <fname> --suppress <cols> suppresses given columns (comma-delim'ed) in default output --fullref write entire ref name (default: only up to 1st space)Colorspace: --snpphred <int> Phred penalty for SNP when decoding colorspace (def: 30) or --snpfrac <dec> approx. fraction of SNP bases (e.g. 0.001); sets --snpphred --col-cseq print aligned colorspace seqs as colors, not decoded bases --col-cqual print original colorspace quals, not decoded quals --col-keepends keep nucleotides at extreme ends of decoded alignmentSAM: -S/--sam write hits in SAM format --mapq <int> default mapping quality (MAPQ) to print for SAM alignments --sam-nohead supppress header lines (starting with @) for SAM output --sam-nosq supppress @SQ header lines for SAM output --sam-RG <text> add <text> (usually "lab=value") to @RG line of SAM headerPerformance: -o/--offrate <int> override offrate of index; must be >= index's offrate -p/--threads <int> number of alignment threads to launch (default: 1) --mm use memory-mapped I/O for index; many 'bowtie's can share --shmem use shared mem for index; many 'bowtie's can shareOther: --seed <int> seed for random number generator --verbose verbose output (for debugging) --version print version information and quit -h/--help print this usage message
Usage: bowtie [options]* <ebwt> {-1 <m1> -2 <m2> | --12 <r> | <s>} [<hit>]
<m1> Comma-separated list of files containing upstream mates (or the sequences themselves, if -c is set) paired with mates in <m2> <m2> Comma-separated list of files containing downstream mates (or the sequences themselves if -c is set) paired with mates in <m1> <r> Comma-separated list of files containing Crossbow-style reads. Can be a mixture of paired and unpaired. Specify "-" for stdin. <s> Comma-separated list of files containing unpaired reads, or the sequences themselves, if -c is set. Specify "-" for stdin. <hit> File to write hits to (default: stdout) Input: -q query input files are FASTQ .fq/.fastq (default) -f query input files are (multi-)FASTA .fa/.mfa -r query input files are raw one-sequence-per-line -c query sequences given on cmd line (as <mates>, <singles>) -C reads and index are in colorspace -Q/--quals <file> QV file(s) corresponding to CSFASTA inputs; use with -f -C --Q1/--Q2 <file> same as -Q, but for mate files 1 and 2 respectively -s/--skip <int> skip the first <int> reads/pairs in the input -u/--qupto <int> stop after first <int> reads/pairs (excl. skipped reads) -5/--trim5 <int> trim <int> bases from 5' (left) end of reads -3/--trim3 <int> trim <int> bases from 3' (right) end of reads --phred33-quals input quals are Phred+33 (default) --phred64-quals input quals are Phred+64 (same as --solexa1.3-quals) --solexa-quals input quals are from GA Pipeline ver. < 1.3 --solexa1.3-quals input quals are from GA Pipeline ver. >= 1.3 --integer-quals qualities are given as space-separated integers (not ASCII)Alignment: -v <int> report end-to-end hits w/ <=v mismatches; ignore qualities or -n/--seedmms <int> max mismatches in seed (can be 0-3, default: -n 2) -e/--maqerr <int> max sum of mismatch quals across alignment for -n (def: 70) -l/--seedlen <int> seed length for -n (default: 28) --nomaqround disable Maq-like quality rounding for -n (nearest 10 <= 30) -I/--minins <int> minimum insert size for paired-end alignment (default: 0) -X/--maxins <int> maximum insert size for paired-end alignment (default: 250) --fr/--rf/--ff -1, -2 mates align fw/rev, rev/fw, fw/fw (default: --fr) --nofw/--norc do not align to forward/reverse-complement reference strand --maxbts <int> max # backtracks for -n 2/3 (default: 125, 800 for --best) --pairtries <int> max # attempts to find mate for anchor hit (default: 100) -y/--tryhard try hard to find valid alignments, at the expense of speed --chunkmbs <int> max megabytes of RAM for best-first search frames (def: 64)
[/data]$ bowtie hg18 \ > -c "AGGAATTGCGGGAGGAAAATGGGTAGTTAGCTATTT,AGGGCCCATAGCAACAGATTTCTAGCCCCCTGAAGA" > --best --strata --tryhard -m 1
Principais parâmetros do BowtieAlignment:-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 Build color-space index. The input fast should be in nucleotide space. -p STR Prefix of the output database [same as db filename] -a STR Algorithm for constructing BWT index. Available options are:
is 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. bwtsw 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.
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 has more than INT hits, the XA tag will not be written. [3]
-N INT Maximum number of alignments to output in the XA tag for disconcordant read pairs (excluding singletons). If a read has more than INT hits, the XA tag will not be written. [10]
-s Disable Smith-Waterman for the unmapped mate;
[/data/input]$ bwa samse –f out.sam /data/hg19.fa out.sai in.fastq
[/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 speed. [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
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 Field Description
1 QNAME Query (pair) NAME2 FLAG bitwise FLAG3 RNAME Reference sequence NAME4 POS 1-based leftmost POSition/coordinate of clipped sequence5 MAPQ MAPping Quality (Phred-scaled)6 CIGAR extended CIGAR string7 MRNM Mate Reference sequence NaMe (‘=’ if same as RNAME)8 MPOS 1-based Mate POSistion9 ISIZE Inferred insert SIZE
10 SEQ query SEQuence on the same strand as the reference11 QUAL query QUALity (ASCII-33 gives the Phred base quality)12 OPT 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
pile-up
SAM
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
Flag (Hex) Description0x0001 the read is paired in sequencing0x0002 the read is mapped in a proper pair0x0004 the query sequence itself is unmapped0x0008 the mate is unmapped0x0010 strand of the query (1 for reverse)0x0020 strand of the mate0x0040 the read is the first read in a pair0x0080 the read is the second read in a pair0x0100 the alignment is not primary0x0200 QC failure0x0400 optical or PCR duplicate
9911000110000
Exemplo: FLAG 2 alinhamentos de leituras paired-endFLAGs: 99 (00001100011 ) 147 (00010010011 )
1471100
1
0
0
1000
Formato BEDFormato flexível para definição de dados de anotação. Os três primerio campos são requeridos:
• chrom – Nome do cromossomo• chromStart – Início da coordenada no cromossomo• chromEnd – Final da coordenada no cromossomo
• name – Nome da linha de anotação• score – Pontuação entre 0 e 1000• strand – Fita do DNA + ou -• thickStart – Início da coordenada de destaque (por ex. start codon)• thickEnd – Fim da coordenada de destaque (por ex. stop codon)• itemRgb – Valor RGB no formato R,G,B (e.g. 255,0,0) ; cor no Genome Browser• blockCount – Número de blocos de alinhamento (por ex. exons)• blockSizes – Lista (separada por vírgula) de tamanho dos blocos• blockStarts – Lista (separada por vírgula) com o iníco da coordenada dos blocos
Exemplo
chr1 34610 36081 NR_026818 0 - 36081 36081 0 3 564,205,361, 0,666,1110,chr1 803450 812182 NR_027055 0 - 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 Conversão de SAM-para-BAM– view Conversão de BAM-para-SAM e recuperação de
subalinhamentos – sort Ordenação (posição nos cromossomos) – merge união de múltiplos alinhamentos ordenados – index Indexação de alinhamentos ordenados – faidx Indexação de arquivos FASTA e recuperação de subsequências – tview Visualização do alinhamento – pileup 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