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
GenBank
História
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
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)
EXACT PATTERN MATCHING
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
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: AAAAAAAAAAAAAAA...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 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
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 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 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
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
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 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 k- tuplas.
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 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
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
Algoritmo (cont)
PAM 250
Algoritmo (cont) Query: 22 VLRDNIQGITKPAIRRLARRGGVKRISGLIYEETRGVLK 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
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 < genes homológos ou idênticos – E < 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 – people.bu.edu/lisap/CS549%20Final%20Project%20 Webpage%20Applet.html people.bu.edu/lisap/CS549%20Final%20Project%20 Webpage%20Applet.html – info/Luminy- 98/albert/JAVA+html/SuffixTreeGrow.html info/Luminy- 98/albert/JAVA+html/SuffixTreeGrow.html Exact Pattern Matching – BLAST – o/tut1.html o/tut1.html
Referências 51-suffixtree-fabricio.pdfhttp:// 51-suffixtree-fabricio.pdf f07/ 090-f07/