Combinatorial Pattern Matching BLAST Tpicos Introduo Repeties Gnicas
Combinatorial Pattern Matching BLAST
Tópicos • Introdução • Repetições Gênicas • Combinatorial Pattern Matching – Exact Pattern Matching – Approximate Pattern Matching – Query Matching • BLAST
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
Gen. Bank Crescimento do Gen. Bank Seqüências 16. 000 15 milhões 14. 000 24 h Europeu 12. 000 Japonês 10. 000 8. 000 6. 000 4. 000 2. 000 606 19 8 19 2 8 19 3 8 19 4 8 19 5 8 19 6 8 19 7 8 19 8 8 19 9 9 19 0 9 19 1 9 19 2 9 19 3 9 19 4 9 19 5 9 19 6 9 19 7 9 19 8 9 20 9 0 20 0 01 0 Ano
História
Repetições gências – Motivação • Rearranjamentos 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
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 exato) ou aproximados (permitem substituições e às vezes gaps) • Existem ainda algoritmos que buscam múltiplos padrões em um texto (Multiple Pattern Matching)
EXACT PATTERN MATCHING
Descrição • 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
Algoritmo e Complexidade • Geralmente O(m) • Pior caso: O(m. n)
Problema • Problema: – Se n for grande demais, o algoritmo torna-se impraticável • Exemplo: – Padrão: AAAAAA. . . AAA – Texto: AAAAAAAA. . . AAAAA
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
Keyword Tree / Suffix Tree (. . .
Keyword Tree • Um conjunto de padrões colocados numa árvore com uma raíz – 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
Keyword Tree – Construção • Apple
Keyword Tree – Construção • Apple • Apropos
Keyword Tree – Construção • Apple • Apropos • Banana
Keyword Tree – Construção • • Apple Apropos Banana Bandana
Keyword Tree – Construção • • • Apple Apropos Banana Bandana Orange
Busca na Keyword Tree • Busca por “Appeal” – appeal
Busca na Keyword Tree • Busca por “Appeal” – appeal
Busca na Keyword Tree • Busca por “Appeal” – appeal
Busca na Keyword Tree • Busca por “Appeal” – appeal
Busca na Keyword Tree • Busca por “Apple” – apple
Busca na Keyword Tree • Busca por “Apple” – apple
Busca na Keyword Tree • Busca por “Apple” – apple
Busca na Keyword Tree • Busca por “Apple” – apple
Busca na Keyword Tree • Busca por “Apple” – apple
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)
Complexidade (cont) • Um texto de tamanho m tem 1 + 2 +. . . + sufixos • Tempo quadrático – O(m 2) • Ruim para ser construída • Mas. . .
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
Exemplo
Suffix Tree . . . )
Busca com Suffix Tree ATGCATACATGG 1 TGCATACATGG 2 GCATACATGG 3 CATACATGG 4 ATACATGG 5 TACATGG 6 ACATGG 7 CATGG 8 ATGG 9 Suffix Tree para o texto ATGCATACATGG 10 GG 11 G 12
Multiple Pattern Matching • Dado um conjunto de padrões p 1, p 2, . . . , pk 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
APPROXIMATE PATTERN MATCHING / QUERY MATCHING
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
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
Matriz de pontos • Mostra a similaridade entre duas strings
Matriz de pontos • Diagonais indicam matches exatos • Buscamos por diagonais respeitando o limite de mismatches
Matriz de pontos • Estendendo as diagonais encontramos alinhamentos locais aproximados
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
Query Matching • Quando n é igual ao tamanho do padrão p o problema de Query Pattern Matching se transforma no Aproximate Query Matching
Comparação
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
FASTA
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 ktuplas.
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
BLAST
BLAST • Basic Local Alignment Search Tool – Melhor algoritmo conhecido até hoje – Grande ganho de performance em troca de uma pequena perda de sensibilidade • Funciona similar a uma Query Matching
Algoritmo (cont) • Fragmenta a query em words (l-mers) – Por defalult, 3 -mers para proteínas – e 11 -mers para nucleotídeos MEFPGLGSLGTSEPLPQFVDPALVSS MEF EFP FPG PGL GLG ACGTCGATCGTACGTAGCTTCA ACGTCGATCGTA • Encontra words similares até um limiar (parâmetro) – Utiliza alguma matriz de substituição (Blosum, PAM)
Algoritmo (cont)
Algoritmo (cont) • PAM 250
Algoritmo (cont) word Query: KRHRKVLRDNIQGITKPAIRRLARRGGVKRISGLIYEETRGVLKIFLENVIRD GVK 18 GAK 16 words vizinhos GIK 16 GGK 14 vizinhos GLK 13 (limiar T = 13) GNK 12 GRK 11 GEK 11 GDK 11 Query: 22 VLRDNIQGITKPAIRRLARRGGVKRISGLIYEETRGVLK 60 +++DN +G + IR L G+K I+ L+ E+ RG++K Sbjct: 226 IIKDNGRGFSGKQIRNLNYGIGLKVIADLV-EKHRGIIK 263
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
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)
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
Exemplos • Suffix tree – http: //cspeople. bu. edu/lisap/CS 549%20 Final%20 Project%20 Webpage%20 Applet. html – http: //pauillac. inria. fr/~quercia/documents-info/Luminy 98/albert/JAVA+html/Suffix. Tree. Grow. html • Exact Pattern Matching – http: //www-igm. univ-mlv. fr/~lecroq/string/ • BLAST – http: //www. ncbi. nlm. nih. gov/Education/BLASTinfo/tut 1. html
Referências • http: //www. qualidata. com. br/~fabricio/tbo 20051 suffixtree-fabricio. pdf • http: //www. cs. unc. edu/Courses/comp 590 -090 f 07/ • http: //bioinf. ucsd. edu/~jung/beng 202/ • http: //biotec. icb. ufmg. br/cabi/aulas/
- Slides: 59