590 likes | 787 Views
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
E N D
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 Crescimento do GenBank Seqüências 16.000.000 15 milhões 14.000.000 24h 12.000.000 10.000.000 Europeu Japonês 8.000.000 6.000.000 4.000.000 2.000.000 606 0 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 Ano
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 bemdifícilencontrarrepetições, principalmentenãoexatas
CombinatorialPatternMatching –Motivação • Um grande problema em biologia computacional é buscar por um padrão numa grande base de dados • CombinatorialPatternMatching 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 (MultiplePatternMatching)
Descrição • Dado um padrão p e um texto t, encontrar todas as ocorrências exatas de p em t. GCAT CGCATC GCAT • Algoritmo de forçabruta: • PadrãoGCAT • TextoCGCATC CGCATC GCAT 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: 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 paraATCATG
KeywordTree • Um conjunto de padrõescolocados numa árvore comuma raíz • Cada aresta é rotulada comuma letra do alfabeto • Duas arestas vizinhas têmrótulos diferentes • Cada padrão pode ser lidovarrendo-se a árvore da raizaté uma folha
KeywordTree – Construção • Apple
KeywordTree – Construção • Apple • Apropos
KeywordTree – Construção • Apple • Apropos • Banana
KeywordTree – Construção • Apple • Apropos • Banana • Bandana
KeywordTree – Construção • Apple • Apropos • Banana • Bandana • Orange
Busca na KeywordTree • Busca por “Appeal” • appeal
Busca na KeywordTree • Busca por “Appeal” • appeal
Busca na KeywordTree • Busca por “Appeal” • appeal
Busca na KeywordTree • Busca por “Appeal” • appeal
Busca na KeywordTree • Busca por “Apple” • apple
Busca na KeywordTree • Busca por “Apple” • apple
Busca na KeywordTree • Busca por “Apple” • apple
Busca na KeywordTree • Busca por “Apple” • apple
Busca na KeywordTree • 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 tem1 + 2 + ... + sufixos • Tempo quadrático • O(m2) • Ruim para ser construída • Mas...
SuffixTree • 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(m2) • Buscas em O(n) • Assim como na Keyword Tree
Suffix Tree ...)
Busca com SuffixTree ATGCATACATGG 1 TGCATACATGG 2 GCATACATGG 3 CATACATGG 4 ATACATGG 5 TACATGG 6 ACATGG 7 CATGG 8 ATGG 9 Suffix Tree para o texto ATGCATACATGG TGG 10 GG 11 G 12
Multiple Pattern Matching • Dado um conjunto de padrões p1, p2, ..., 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
ApproximatePatternMatching • 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 indicammatches exatos • Buscamos por diagonaisrespeitando o limitede mismatches
Matriz de pontos • Estendendo as diagonaisencontramos alinhamentos locaisaproximados
QueryMatching • 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
QueryMatching • Quando n é igual ao tamanho do padrão p o problema de Query Pattern Matching se transforma no Aproximate Query Matching
QueryMatching • 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 • 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 • 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