Alinhamento de Cadeias de DNA COMPARAÇÃO DE SEQÜÊNCIAS

Slides:



Advertisements
Apresentações semelhantes
Aquiles Burlamaqui AULA 09
Advertisements

LISTAS Dilvan Moreira, parcialmente baseado em material do prof. Ricardo Campello.
Python: Recursão Claudio Esperança.
ALINHAMENTOS LOCAIS E SEMI-GLOBAIS
Análise de Complexidade
Aula 10 Algoritmos de Busca
Recursividade Prof. Alex F. V. Machado
Algoritmos e Programação Estruturada Conceitos básicos
PROCEDIMENTOS COM RECURSIVIDADE
1 Complexidade de Algoritmos Complexidade de pior caso Complexidade de melhor caso de uso bem menos freqüente em algumas situações específicas Complexidade.
Pesquisa em Memória Primária
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
Medida do Tempo de Execução de um Programa
Medida do Tempo de Execução de um Programa
Automato de Pilha.
Pesquisa em Memória Primária
LISTAS “LINKADAS” No Mapeamento Seqüencial tem-se o problema de
Programação Dinámica Análise de algoritmos UNISUL
Ponteiros em Pascal Variáveis ponteiros são aquelas que guardam o endereço de outra, possibilitando o acesso a seu conteúdo. Declaração em Pascal:  var.
Introdução à Programação
Intr. à Biologia Computacional
Intr. à Biologia Computacional ALINHAMENTO DE SEQÜÊNCIAS.
Pesquisa em memória primária: hashing
TRABALHO MATEMÁTICA DISCRETA
Recursividade Programação II.
Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação
UNIDADE 6 - complemento Funções recursivas
Aula 03 – BCC202 Análise de Algoritmos (Parte 1) Túlio Toffolo www
Bioinformática (Alinhamento de Seqüências)
ALINHAMENTOS LOCAIS E SEMI-GLOBAIS
Abordagens para problemas NP-completos
Mergesort Katia Guimarães.
Indução Matemática Recursão
Algoritmos e Estruturas de Dados I – Recursão
Algoritmos e Estruturas de Dados RECURSIVIDADE. O que é recursividade? Recursividade significa algo ser definido em termos de sí próprio. Em termos de.
Programação e Aplicações Gráficas
Distância Mínima de Edição Profa. Sandra de Amo Bacharelado em Ciência da Computação - UFU.
Aula 10 Algoritmos de Busca
Definições e tipos de alinhamento. O uso do BLAST
Como analisar um algoritmo
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo IX Subprogramação e Recursividade.
Programação Dinâmica.
Recursividade Profs. De Prog2 e Lab2.
INE Fundamentos de Matemática Discreta para a Computação
Intr. à Biologia Computacional ALINHAMENTOS ÓTIMOS GLOBAIS.
Estruturas de Dados e Algoritmos para Inferência de Motifs Katia Guimarães.
Complexidade de Computação Katia Guimarães. Avaliando a Qualidade de um Algoritmo É preciso ter bem definido –O que é dado de entrada e –O que é esperado.
Solved Exercises 1. Finding the Peak. Let A= a 1,…,a n be a sequence of n numbers with the following property: there is p in {1,…,n} for which (i) the.
Multiplicação de Cadeia de Matrizes
Equipe: Aluno 1 Matrícula Aluno 2 Matrícula Aluno 3 Matrícula Cálculo Numérico Título da Apresentação.
Setembro 2004Projeto e Análise de Algoritmos - Celso Carneiro Ribeiro1 Projeto e Análise de Algoritmos Celso Carneiro Ribeiro
Análise e Síntese de Algoritmos
O Problema do Corte Unidimensional
Linguagem de Programação II Parte VI Professora: Flávia Balbino da Costa.
Principais algoritmos de alinhamento de sequências genéticas
Alinhamentos Múltiplos
Análise e Síntese de Algoritmos Algoritmos GreedyCLRS, Cap. 16.
Ciência da Computação 1 PROGRAMAÇÃO ESTRUTURADA II Profª. Noeli.
Algoritmo e Estrutura de Dados I
Professor Luiz José Hoffmann Filho
Heaps Katia S. Guimarães
Programação Dinâmica IF672 - Algoritmos e Estruturas de Dados CIn - UFPE Átila Valgueiro Malta Moreira Juliana Medeiros de Lucena Rafael Alberto Gomes.
Alinhamento Global de Seqüências Katia Guimarães.
CENTRO DE GENOMICA E FITOMELHORAMENTO Introdução à Bioinformática
Ordenação (Sorting) Ordenar é dispor os elementos de um conjunto numa ordem ascendente ou descendente. Problema: Dados n números, arranjá-los em ordem.
Aula Prática 5 Recursão Monitoria  Na linguagem C, como em muitas outras linguagens, uma função pode chamar a si própria.  Uma função assim.
Abordagens para Problemas Intratáveis Katia S. Guimarães
Recursividade e análise Cristiano Arbex Valle Vinicius Fernandes dos Santos
Intr. à Biologia Computacional
Transcrição da apresentação:

Alinhamento de Cadeias de DNA COMPARAÇÃO DE SEQÜÊNCIAS Katia Guimarães

Montagem de Fragmentos de DNA katia@cin.ufpe.br

Montagem de Fragmentos de DNA katia@cin.ufpe.br

Montagem de Fragmentos de DNA katia@cin.ufpe.br

Programação Dinâmica Metodologia para resolver problemas que consiste na construção de uma tabela contendo soluções de subproblemas de tamanho crescente. Exemplo clássico: Fatorial katia@cin.ufpe.br

Fatorial Abordagem Recursiva function fatorial (n:integer):integer if n > 1 then fatorial:=n * fatorial(n-1) else fatorial:= 1 Implicações desta abordagem em termos de custo? katia@cin.ufpe.br

Fatorial - Abordagem Recursiva function fat (n:integer):integer if n > 1 then fat := n * fat (n-1) else fat := 1 Muitas chamadas recursivas desnecessárias: ... Fat(1) Fat(10) Fat(9) Fat(8) katia@cin.ufpe.br

Fatorial - Abordagem Iterativa function fat (n:integer):integer i := 1; fat := 1; while i < n do { i := i+1; fat := fat * i } ... 1 2 6 24 120 720 katia@cin.ufpe.br

Fibonacci - Abordagem Recursiva Function fib (integer n): integer if (n ≤ 2) then return (1) else return (fib(n-1) + fib(n-2)) Implicações desta abordagem em termos de custo? katia@cin.ufpe.br

Fibonacci - Abordagem Recursiva / \ F(4) F(3) / \ / \ F(3) F(2) F(2) F(1) / \ F(2) F(1) katia@cin.ufpe.br

Fibonacci - Abordagem Iterativa Function fib (integer n) int a = 1, b = 1, c; for (int i = 3; i ≤ n; i++) { c := a + b; a := b; b := c } return (b); ... 1 1 2 3 5 8 11 katia@cin.ufpe.br

Alinhamento de Seqüências Problema: Dadas duas seqüências sobre o mesmo alfabeto, com aproximadamente o mesmo tamanho, encontrar o melhor alinhamento entre estas duas seqüências. katia@cin.ufpe.br

Alinhamento de Seqüências O melhor alinhamento entre duas seqüências: G A - C G G A T T A G G A T C G G A AT A G é dado por um score que é a soma dos valores associados a cada posição, de acordo com o critério pré-definido. katia@cin.ufpe.br

Alinhamento de Seqüências O score que é a soma dos valores associados a cada posição, de acordo com o grau de similaridade entre os elementos correspondentes. Ex: match +1 mismatch -1 space -2 katia@cin.ufpe.br

Score de um Alinhamento Ex: match +1 (good) mismatch -1 (bad) space -2 (worse) G A - C G G A T T A G G A T C G G A AT A G score = 9 ·1+ 1·(-1) + 1·(-2) = 6 katia@cin.ufpe.br

Programação Dinâmica Abordagem alternativa: Sejam s e t O número de possíveis alinhamentos é exponencial no tamanho das seqüências. (Logo, não podemos experimentar todos.) Abordagem alternativa: Sejam s e t duas seqüências, com |s|=m e |t|=n, construir uma matriz (m+1) x (n+1), onde M(i, j) contém a similaridade entre s[1..i] e t[1..j]. katia@cin.ufpe.br

Programação Dinâmica G A T C A AT G Esta é uma abordagem indutiva, onde são definidos os scores para as seqüências menores, e a partir dessas, novos scores são computados os scores de cadeias maiores. Ex: G A - C A T T G G A T C A AT G   G custa -2;   GA custa -4; G  G custa +1; G  GA custa -1; katia@cin.ufpe.br

Programação Dinâmica  0 -2 -4 -6 -8 -10 -12 -14 G -2 A -4 T -6 C -8 1a. linha e1a. coluna fáceis de computar:  G A C A T T G  0 -2 -4 -6 -8 -10 -12 -14 G -2 A -4 T -6 C -8 A -10 A -12 T -14 G -16 katia@cin.ufpe.br

Programação Dinâmica Dado que eu sei computar os scores dos melhores alinhamentos entre prefixos de s e t com tamanhos menores que i e j, respectivamente, como eu posso calcular o melhor alinhamento de s[1..i] com t[1..j]? katia@cin.ufpe.br

Programação Dinâmica Um passo pode ser I (inserção), R (remoção), O score do melhor alinhamento será calculado em função do último passo de uma transformação de s[1..i] em t[1..j]. Um passo pode ser I (inserção), R (remoção), S (substituição) ou M (match) katia@cin.ufpe.br

Programação Dinâmica 1. Se do último passo for I (inserção): Ex: G A G C A T T C G A - C A A T C G Solução: Alinhe s[1..i] com t[1..j-1] e case um espaço com t[j]. 1 .................................. i s: G A G C A T T C t: G A - C A A T C G 1 ................................ j-1 j katia@cin.ufpe.br

Programação Dinâmica 2. Se do último passo for M (match) ou S (substituição): Solução: Alinhe s[1..i-1] com t[1..j-1] e case s[i] com t[j]. 1 ........................... i-1 i s: G A G C A T T C t: G A - C A A T C 1 ........................... j-1 j katia@cin.ufpe.br

Programação Dinâmica 3. Se do último passo for R (remoção): Solução: Alinhe s[1..i-1] com t[1..j] e case s[i] com um espaço. 1 ................................. i-1 i s: G A G C A T T C G t: G A - C A A T C 1 ........................... j-1 j katia@cin.ufpe.br

Programação Dinâmica M (i, j) = max M (i, j-1) - 2 (último passo = I) M (i-1, j-1) + p(i,j) (último passo = S/M) M (i-1, j) - 2 (último passo =R) katia@cin.ufpe.br