A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Combinatorial Pattern Matching BLAST. Tópicos Introdução Repetições Gênicas Combinatorial Pattern Matching – Exact Pattern Matching – Approximate Pattern.

Apresentações semelhantes


Apresentação em tema: "Combinatorial Pattern Matching BLAST. Tópicos Introdução Repetições Gênicas Combinatorial Pattern Matching – Exact Pattern Matching – Approximate Pattern."— Transcrição da apresentação:

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/


Carregar ppt "Combinatorial Pattern Matching BLAST. Tópicos Introdução Repetições Gênicas Combinatorial Pattern Matching – Exact Pattern Matching – Approximate Pattern."

Apresentações semelhantes


Anúncios Google