Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouAníbal Philippi Bonilha Alterado mais de 8 anos atrás
1
Combinatorial Pattern Matching BLAST
2
Tópicos Introdução Repetições Gênicas Combinatorial Pattern Matching – Exact Pattern Matching – Approximate Pattern Matching – Query Matching BLAST
3
Introdução Genomas seqüenciados geram bases de dados gigantescas, que crescem a cada dia É importante comparar cada novo com os já existentes, em busca de similaridades e respostas Muitas doenças podem ser identificadas através do genoma, o que aumenta ainda mais essa necessidade Algoritmos cada vez mais eficientes são necessários para atender à essa demanda crescente de comparações e para se adequar aos computadores atuais
4
GenBank
5
História
6
Repetições gênicas – Motivação Rearranjos gênicos geralmente são associados a repetições Revelam segredos evolutivos Muitos tumores são caracterizados por explosões de repetições ATGGTCTAGGTCCTAGTGGTC ATGGTCTAGGACCTAGTGTTC Pode ser bem difícil encontrar repetições, principalmente não exatas
7
Combinatorial Pattern Matching – Motivação Um grande problema em biologia computacional é buscar por um padrão numa grande base de dados Combinatorial Pattern Matching engloba vários algoritmos que fazem esse tipo de busca / comparação Entre os algoritmos existem aqueles que são exatos (buscam pelo padrão sem erros) ou aproximados (permitem substituições e às vezes gaps) Existem ainda algoritmos que buscam múltiplos padrões em um texto (Multiple Pattern Matching)
8
EXACT PATTERN MATCHING
9
Descrição do Problema Dado um padrão p e um texto t, encontrar todas as ocorrências exatas de p em t. Algoritmo de força bruta: – Padrão GCAT – Texto CGCATC GCAT CGCATC GCAT CGCATC GCAT CGCATC GCAT CGCATC GCAT
10
Algoritmo e Complexidade Geralmente O( m ) Pior caso: O( m.n )
11
Problema Problema: – Se n for grande demais, o algoritmo torna-se impraticável Exemplo: – Padrão: AAAAAA...AAA – Texto: AAAAAAAAAAAAAAA...AAAAA
12
Solução Solução: – 1973, Peter Weiner: Uma nova estrutura de dados: Suffix Trees – Resolvem este problema em O( m + n ) para qualquer texto e qualquer padrão Suffix Tree para ATCATG
13
(... Keyword Tree / Suffix Tree
14
Keyword Tree Um conjunto de padrões colocados numa árvore com uma raiz – Cada aresta é rotulada com uma letra do alfabeto – Duas arestas vizinhas têm rótulos diferentes – Cada padrão pode ser lido varrendo-se a árvore da raiz até uma folha
15
Keyword Tree – Construção Apple
16
Keyword Tree – Construção Apple Apropos
17
Keyword Tree – Construção Apple Apropos Banana
18
Keyword Tree – Construção Apple Apropos Banana Bandana
19
Keyword Tree – Construção Apple Apropos Banana Bandana Orange
20
Busca na Keyword Tree Busca por “Appeal” – appeal
21
Busca na Keyword Tree Busca por “Appeal” – appeal
22
Busca na Keyword Tree Busca por “Appeal” – appeal
23
Busca na Keyword Tree Busca por “Appeal” – appeal
24
Busca na Keyword Tree Busca por “Apple” – apple
25
Busca na Keyword Tree Busca por “Apple” – apple
26
Busca na Keyword Tree Busca por “Apple” – apple
27
Busca na Keyword Tree Busca por “Apple” – apple
28
Busca na Keyword Tree Busca por “Apple” – apple
29
Complexidade A complexidade do tempo de construção da Keyword Tree é no melhor caso O( N ), onde N é o tamanho de todos os padrões juntos Como utilizar Keyword Tree para fazer busca mais rapidamente? – Um padrão pode ser lido simplesmente lendo-se da raiz até alguma folha – Então, buscar um padrão leva tempo O( n ), n sendo o tamanho do padrão Melhor que O( m.n )
30
Complexidade (cont) Um texto de tamanho m tem 1 + 2 +... + sufixos Tempo quadrático – O( m 2 ) Ruim para ser construída Mas...
31
Suffix Tree Estrutura de dados mais eficiente para buscas de padrões Derivada da Keyword Tree Pode ser construída em tempo O( m ) – m é o tamanho do texto – Muito melhor que O( m 2 ) Buscas em O( n ) – Assim como na Keyword Tree
32
Exemplo
33
...) Suffix Tree
34
Busca com Suffix Tree Suffix Tree para o texto ATGCATACATGG ATGCATACATGG 1 TGCATACATGG 2 GCATACATGG 3 CATACATGG 4 ATACATGG 5 TACATGG 6 ACATGG 7 CATGG 8 ATGG 9 TGG 10 GG 11 G 12
35
Multiple Pattern Matching Dado um conjunto de padrões p 1, p 2,..., p k e um texto t, encontrar se algum dos padrões aparece no texto Motivação – Buscar numa base de dados por k padrões conhecidos – Uma das estratégias do BLAST Pode ser reduzido à k Pattern Matching
36
APPROXIMATE PATTERN MATCHING / QUERY MATCHING
37
Approximate Pattern Matching Dado um padrão p, um texto t e um inteiro k, encontrar todas as ocorrências de p em t com no máximo k substituições Faz muito mais sentido biologicamente falando – Mutações – Evolução Utiliza-se heurísticas para aproximação
38
Buscas Heurísticas Normalmente há um trecho bem conservado, idêntico ou com pequenas variações. Muitas heurísticas são baseadas na idéia de filtragem – Encontrar uma “semente”, um pequeno trecho que é idêntico (ou muito parecido) – Estender essa semente enquanto tiver menos que k substituições Query: 22 VLRDNIQGITKPAIRRLARRGGVKRISGLIYEETRGVLK 60 +++DN +G + IR L G+K I+ L+ E+ RG++K Sbjct: 226 IIKDNGRGFSGKQIRNLNYGIGLKVIADLV-EKHRGIIK 263
39
Matriz de pontos Mostra a similaridade entre duas strings
40
Matriz de pontos Diagonais indicam matches exatos Buscamos por diagonais respeitando o limite de mismatches
41
Matriz de pontos Estendendo as diagonais encontramos alinhamentos locais aproximados
42
Query Matching Dado um padrão q, um texto t, um inteiro k e um inteiro n, encontrar pares de posições ( i, j ) tais que a substring de tamanho n de q começada em i casa com a substring de tamanho n de t começada em j com no máximo k substituições Generalização do Approximate Pattern Matching Recebe um parâmetro a mais: um n referente ao “tamanho da janela”, que representa o tamanho médio dos matches
43
Query Matching Quando n é igual ao tamanho do padrão p o problema de Query Pattern Matching se transforma no Aproximate Query Matching
44
Comparação
45
Query Matching Idéia central – Buscar por alinhamentos pequenos – Filtragem Duas etapas – 1. Detecção de matches potenciais Divide a query em substrings de tamanho n ( words ) e busca por essas words no texto – 2. Verificação desses matches potenciais Estende para a esquerda e para a direita enquanto o número de mismatches (substituições) seja menor que k
46
FASTA
47
FASTA Desenvolvido por Pearson e Lipman Apresenta os alinhamentos locais da seqüência analisada com as seqüências do banco Procura por um número de k consecutivas letras (aminoácidos ou nucleotídeos), palavras ou k- tuplas.
48
Algoritmo O algoritmo é dividido em 4 etapas: – Seleção das 10 melhores regiões – Re-classificação das 10 melhores regiões – Seleção das seqüências mais semelhantes – Alinhamentos das seqüências selecionadas
49
BLAST
50
BLAST B asic L ocal A lignment S earch T ool – Melhor algoritmo conhecido até hoje – Grande ganho de performance em troca de uma pequena perda de sensibilidade Funciona similar a uma Query Matching
51
Algoritmo (cont) Fragmenta a query em words ( l -mers) – Por defalult, 3-mers para proteínas – e 11-mers para nucleotídeos Encontra words similares até um limiar (parâmetro) – Utiliza alguma matriz de substituição (Blosum, PAM) MEF EFP FPG PGL GLG MEFPGLGSLGTSEPLPQFVDPALVSS ACGTCGATCGT CGTCGATCGTA ACGTCGATCGTACGTACGTAGCTTCA
52
Algoritmo (cont)
53
PAM 250
54
Algoritmo (cont) Query: 22 VLRDNIQGITKPAIRRLARRGGVKRISGLIYEETRGVLK 60 +++DN +G + IR L G+K I+ L+ E+ RG++K Sbjct: 226 IIKDNGRGFSGKQIRNLNYGIGLKVIADLV-EKHRGIIK 263 Query: KRHRKVLRDNIQGITKPAIRRLARRGGVKRISGLIYEETRGVLKIFLENVIRD word GVK 18 GAK 16 GIK 16 GGK 14 GLK 13 GNK 12 GRK 11 GEK 11 GDK 11 vizinhos (limiar T = 13) words vizinhos
55
Algoritmo (cont) Procura por alguma dessas palavras na base de dados ( hit ) Estende os hits BLAST original: – Extensão feita para ambas as direções – Não permitia gaps BLAST atual: – Utiliza uma matriz de pontos – Permite gaps
56
Algoritmo (cont) Retém somente os HSPs ( High Score Pairs ) com score acima de um limiar (parâmetro) Determina estatisticamente a relevância de cada resultado – p-value ≈ 1 – – e-value ≈ 1 – Mais usado: – E < 10 -100 genes homológos ou idênticos – E < 10 -3 genes podem estar relacionados – E > 1 genes provavelmente sem relação – 0,5 < E < 1 Twilight Zone (não há garantia de homologia ou não homologia)
57
BLAST Existem diversas implementações do BLAST – blastn Compara uma seqüência de nucleotídeos com um banco de nucleotídeos – blastp Seqüência de aminoácidos num banco de proteínas – blastx Seqüência de nucleotídeos (traduzidos em proteínas) com um banco de proteínas – tblastn Seqüência de proteínas com um banco de nucleotídeos (traduzidos em real time) – tblastx
58
Exemplos Suffix tree – http://cs- people.bu.edu/lisap/CS549%20Final%20Project%20 Webpage%20Applet.html http://cs- people.bu.edu/lisap/CS549%20Final%20Project%20 Webpage%20Applet.html – http://pauillac.inria.fr/~quercia/documents- info/Luminy- 98/albert/JAVA+html/SuffixTreeGrow.html http://pauillac.inria.fr/~quercia/documents- info/Luminy- 98/albert/JAVA+html/SuffixTreeGrow.html Exact Pattern Matching – http://www-igm.univ-mlv.fr/~lecroq/string/ http://www-igm.univ-mlv.fr/~lecroq/string/ BLAST – http://www.ncbi.nlm.nih.gov/Education/BLASTinf o/tut1.html http://www.ncbi.nlm.nih.gov/Education/BLASTinf o/tut1.html
59
Referências http://www.qualidata.com.br/~fabricio/tbo200 51-suffixtree-fabricio.pdfhttp://www.qualidata.com.br/~fabricio/tbo200 51-suffixtree-fabricio.pdf http://www.cs.unc.edu/Courses/comp590- 090-f07/http://www.cs.unc.edu/Courses/comp590- 090-f07/ http://bioinf.ucsd.edu/~jung/beng202/ http://biotec.icb.ufmg.br/cabi/aulas/
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.