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

Slides:



Advertisements
Apresentações semelhantes
Operações sobre o Texto
Advertisements

Clustal-W Oscar Miranda.
HISTÓRICO A Análise de Balanços surgiu e desenvolveu-se dentro do sistema bancário que foi até hoje, seu principal usuário. Seu início remonta ao final.
Instituto de Computação
Métodos Iterativos.
Especificação de Consultas
Matrizes para Análise de Similaridade entre Seqüências.
PROBLEMA DE ROTEAMENTO DE VEíCULOS COM DIVISÃO DE ENTREGA
Seqüenciamento parcial de transcritos
Dárlinton B. Feres Carvalho
Medida do Tempo de Execução de um Programa
Reconhecimento de Padrões Dissimilaridade
FACENS – Engenharia da Computação Lógica Computacional II
A FAST APRIORI implementation
Mining Frequent Patterns without Candidate Generation
Problemas NP-completo
Análise Computacional de Seqüências Nucleotídicas e Protéicas
Algoritmos de ordenação
Informática Teórica Engenharia da Computação
Intr. à Biologia Computacional ALINHAMENTO DE SEQÜÊNCIAS.
Paradigma de Divisão e Conquista
[Clayton J Pereira] [Leonilson Kiyoshi] [Prof. Dr. Vitor Leite]
Sistemas Operacionais
VALORES ESPERADOS.
Algoritmos paralelos eficientes para alguns problemas de processamento de Cadeia de Caracteres Alunos: Diego Alencar dos Santos Melo Felipe Formagini Brant.
Modularização de um programa em C
Gramáticas Livres de Contexto
Trie Nuno Campos N.º Nuno Campos - N.º
Aula 03 – BCC202 Análise de Algoritmos (Parte 1) Túlio Toffolo www
Bioinformática (Alinhamento de Seqüências)
ALINHAMENTOS LOCAIS E SEMI-GLOBAIS
1 A COMPUTAÇÃO MODERNA Valdemar W. Setzer Depto. de Ciência da Computação da USP
Bancos de Dados.
Construção e Análise de Algoritmos
Experimentação Algorítmica
Criando uma formatação
Uma Visão Geral Sobre Reconstrução Filogenética
Ceça Moraes – Introdução à Programação SI1
Filtragem Colaborativa
Busca Combinatorial e Métodos de Heurística
Banco de Dados Biológicos
Introdução à complexidade de algoritmos Luiz Gonzaga da Silveira Junior.
Curso Intensivo de Anotação de ESTs de Crinipellis perniciosa Eduardo Fernandes Formighieri Laboratório de Genômica e Expressão / UNICAMP Fevereiro
Análise Computacional de Seqüências Nucleotídicas e Protéicas
Distância Mínima de Edição Profa. Sandra de Amo Bacharelado em Ciência da Computação - UFU.
RepeatMasker Aluno: Fred Ulisses maranhão Professora: Kátia S. Guimarães Algoritmos p/ processamento de Cadeias, Cin, UFPE - 1/2001.
Cin-UFPE String Matching
Definições e tipos de alinhamento. O uso do BLAST
PSI e PHI BLAST Eduardo Sampaio Rocha. BLAST Basic Local Alignment Search Tool –Desenvolvido por Altschul, Gish, Miller, Myers e Lipman em 1990 –Conjunto.
Sequenciamento de Genomas
Alinhamento de sequências Almir R. Pepato. Homologia primária e secundária 1- Estabelecimento da matriz de caracteres (observações a respeito dos semaforontes.
Gene Projects Marcelo Falsarella Carazzolle Laboratório de Genômica e Proteômica Unicamp.
Marcelo Falsarella Carazzolle Laboratório de Genômica e Proteômica
Algoritmos FPT para o Problema da k-Cobertura por Vértices
Análise Computacional de Seqüências Nucleotídicas e Protéicas BLAST Antonio Basílio de Miranda 24/11/2004 Adaptado por Marcos Catanho 10/05/2005.
Alinhamento de Cadeias de DNA COMPARAÇÃO DE SEQÜÊNCIAS
Biometria Reconhecimento de Assinaturas
Mecanismo de sugestão e processo de caracterização de redes sociais
Estruturas de Dados e Algoritmos para Inferência de Motifs Katia Guimarães.
Domínios, Motivos, Padrões e Perfis
Exercícios de Fluxo em Redes
Algoritmos e Heurísticas para Seqüenciamento de DNA
Principais algoritmos de alinhamento de sequências genéticas
Alinhamentos Múltiplos
Computação Evolutiva Nome dado ao estudo de algoritmos cuja inspiração é o processo de evolução natural das espécies. Origem: trabalho de um pesquisador.
Programação Dinâmica IF672 - Algoritmos e Estruturas de Dados CIn - UFPE Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes.
Alinhamentos e Busca de Similaridade Ariane Machado Lima.
Taís Sineiro Herig Laboratório de Genômica e Expressão / UNICAMP
ANÁLISE EM LARGA ESCALA DE EXPRESSÃO GÊNICA DIFERENCIAL ENTRE DIVERSAS
Comportamento Assintótico
Transcrição da apresentação:

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/