SlideShare uma empresa Scribd logo
1 de 19
Comparar sequências
 Recuperação de Informação: dada uma chave, buscar em um
dicionário por palavras que se assemelham à chave.
 Biologia Molecular: dadas duas sequências de DNA, identificar se
são semelhantes.
 Para que serve?
 Por que alinhamos sequências ?
Comparar genes de DNA
Estudar a estrutura de proteínas
 Estudar evolução molecular
Detecção de doenças, vírus, etc.
Um alinhamento de duas sequências de caracteres α e β é
obtido inserindo-se espaços (gaps) nas sequências e então
colocando-se uma sobre a outra de modo que cada
caractere ou espaço esteja emparelhado a um único
caractere (ou a um espaço) da outra cadeia.
• Exemplo:
• Sequências:
• α = AAACTGCACAATCTTAATGCCCTTTTAT
• β = GCGGATCAACTTATTCCATCTCTT
• Alinhamento:
• α′ = AAACTGCA-CAATCTTAATGCC--CTTTTAT
• β ′ =--GC-GGATCAA-CTT-ATTCCATCTCTT--
Ex: match +1 (good)
mismatch -1 (bad)
gap -2 (worse)
G A - C G G A T T A G
G A T C G G A A T A G
score = 9 ·1+ 1·(-1) + 1·(-2) = 6
O score que é a soma dos valores associados a cada posição, de
acordo com o grau de similaridade entre os elementos
correspondentes.
 Cálculo do Score
Problema: Alinhamento de duas cadeias de caracteres.
Entrada: Duas cadeias de caracteres
Saída: O alinhamento ideal das cadeias, possivelmente
incluindo as lacunas “gap’s”.
1. Subestrutura Ótima
Sendo assim, há três alternativas possíveis para resolver o problema:
i) (m, n) M∈
ii) a m-ésima posição de X M∉
iii) a n-ésima posiçao de Y M∉
Caso ocorra o caso (i), teremos
OPT(m, n) = αXmYn + OPT(m -1, n -1).
Caso ocorra o caso (ii), teremos que “pagar” o custo de um intervalo desde a m-
ésima posição de X que não foi encontrada e alinhar X1, X2, ..., Xm-1 bem como Y1, Y2,
..., Yn. Deste modo teremos:
OPT(m, n) = δ + OPT(m -1, n).
Caso ocorra o caso (iii), será semelhante ao caso (ii), porém: OPT(m, n) = δ +
OPT(m, n -1).
2. Expressão Recursiva
i *δ se j=0
j *δ se i=0
OPT(i,j)
MAX [αXiYj + OPT(i -1, j -1), δ
+ OPT(i -1, j), δ + OPT(i, j -1)]
δ – gap (custo pelo espaço)
αXiYj – custo de emparelhar Xi e Yj
3. Algoritmo utilizando a força bruta (RECURSIVO)
1. Alinhamento_recursivo(X,m,Y,n)
2. If m = 0
3. then return n*δ
4. If n = 0
5. then return m*δ
6. A = αXiYj + Alinhamento_recursivo(X,m-1,Y,n-1)
7. B = δ + Alinhamento_recursivo(X,m-1,Y,n)
8. C = δ + Alinhamento_recursivo(X,m,Y,n-1)
9. return max (A,B,C)
• A complexidade para o algoritmo alinhamento_recursivo(X,i,Y,j) baseado
na expressão recursiva é:
T(m,n) = T(m-1,n-1) + T(m,n-1) + T(m-1,n) + Θ(1)
T(m,n) ≥ 3T(m-1,n-1) + Θ(1)
T(m,n) = Ω(3min(m,n)
)
 Ordem exponencial!
3.1 Análise do algoritmo alinhamento_ recursivo
3.2 Algoritmo Utilizando Programação Dinâmica
1. Alinhamento_PD(X,Y,δ)
2. Initialize A[i,0] = i*δ for i = 0, ..., m
3. Initialize A[0,j] = j*δ for j = 1, ..., n
4. For i = 1, ..., m
5. For j = 1, ..., n
6. A[i,j] = max (αXiYj + A[i -1, j -1], δ + A[i -1, j], δ + A[i, j -1])
7. Endfor
8. Endfor
9. Return A[m,n]
 A complexidade para o algoritmo Alinhamento_PD é Θ(m*n), pois é o
tempo de preencher a matriz A.
 Este custo está expresso nas linhas 3 à 5 do algoritmo
Alinhamento_PD(X,Y,δ). As demais linhas têm tempo constante, ou
seja, Θ(1).
 O espaço ocupado é Θ(m*n), pois o tamanho da matriz é (m+1)*(n+1).
 Tempo de execução Θ(m*n)
3.3 Análise do algoritmo Alinhamento_PD(X,Y,δ)
4. Algoritmo para mostrar a solução ótima
Matches: (+1)
Mismatches: (-1)
Gaps: (-1)
Para alinhar as sequencias (traceback) começa-se na última entrada da matriz, onde está
o score, e percorre-se a matriz pelos precedentes diretos de cada célula, até a posição
inicial da matriz. As regras de alinhamento são dadas pela orientação relativa das setas:

• Diagonal: xi alinha com yi;
• Vertical: yi alinha com espaço;
• Horizontal: xi alinha com espaço.
entrada rec pd
5 0,01 0,011
10 0,086 0,011
15 406,265 0,01
16 2290,402 0,011
17 12069,45 0,012
18   0,011
19   0,01
20   0,011
• Diferentes aplicações, diferentes formas de 
solução.
• Algoritmo recursivo tem tempo exponencial.
• Programação Dinâmica oferece uma solução 
em tempo polinomial.
• T. H. Cormen, C. E. Leiserson, and R. L. Rivest, Introduction to algorithms, 1st 
ed., The MIT Press, 1990.
• V.  Bafna,  E.  L.  Lawler,  and  P.  A.  Pevzner,  Approximation  algorithms  for 
multiple sequence alignment, Theoretical Computer Science 182 (1997), 233–
244.
• Freitas, Ana T., Alinhamento de Sequências, Guia do 2o Laboratório de 
Biologia Computacional, Outubro de 2007.
• P. Bonizzoni and G. D. Vedova, The complexity of multiple sequence 
alignment with SP-score that is a metric, Theoretical Computer Science 259 
(2001), 63–79.

Mais conteúdo relacionado

Mais procurados

57701066 matematica-discreta-exercicios-resolvidos
57701066 matematica-discreta-exercicios-resolvidos57701066 matematica-discreta-exercicios-resolvidos
57701066 matematica-discreta-exercicios-resolvidos
HAROLDO MIRANDA DA COSTA JR
 
Introdução de tecnicas de diagnostico molecular
Introdução de tecnicas de diagnostico molecular Introdução de tecnicas de diagnostico molecular
Introdução de tecnicas de diagnostico molecular
Safia Naser
 
Biologia e metodo cientifico
Biologia e metodo cientificoBiologia e metodo cientifico
Biologia e metodo cientifico
Marcia Bantim
 
Apresentação metodologia do trabalho científico
Apresentação metodologia do trabalho científicoApresentação metodologia do trabalho científico
Apresentação metodologia do trabalho científico
Larissa Almada
 
Revisão ENEM V - Endemias
Revisão ENEM V - EndemiasRevisão ENEM V - Endemias
Revisão ENEM V - Endemias
emanuel
 
Aprendizado de Máquina
Aprendizado de MáquinaAprendizado de Máquina
Aprendizado de Máquina
butest
 

Mais procurados (20)

Herança Genética
Herança GenéticaHerança Genética
Herança Genética
 
Método científico
Método científicoMétodo científico
Método científico
 
57701066 matematica-discreta-exercicios-resolvidos
57701066 matematica-discreta-exercicios-resolvidos57701066 matematica-discreta-exercicios-resolvidos
57701066 matematica-discreta-exercicios-resolvidos
 
Analise Algoritmos
Analise AlgoritmosAnalise Algoritmos
Analise Algoritmos
 
Terapia gênica
Terapia gênicaTerapia gênica
Terapia gênica
 
Introdução de tecnicas de diagnostico molecular
Introdução de tecnicas de diagnostico molecular Introdução de tecnicas de diagnostico molecular
Introdução de tecnicas de diagnostico molecular
 
Biologia e metodo cientifico
Biologia e metodo cientificoBiologia e metodo cientifico
Biologia e metodo cientifico
 
Fixismo / Evolucionismo
Fixismo / EvolucionismoFixismo / Evolucionismo
Fixismo / Evolucionismo
 
Estrutura de Procedimento da Pesquisa Qualitativa
Estrutura de Procedimento da Pesquisa QualitativaEstrutura de Procedimento da Pesquisa Qualitativa
Estrutura de Procedimento da Pesquisa Qualitativa
 
Apresentação metodologia do trabalho científico
Apresentação metodologia do trabalho científicoApresentação metodologia do trabalho científico
Apresentação metodologia do trabalho científico
 
PCR
PCRPCR
PCR
 
Probabilidade genética
Probabilidade genética Probabilidade genética
Probabilidade genética
 
Evolução
EvoluçãoEvolução
Evolução
 
Alterações cromossomiais
Alterações cromossomiaisAlterações cromossomiais
Alterações cromossomiais
 
Engenharia genética
Engenharia genéticaEngenharia genética
Engenharia genética
 
Imunologia
ImunologiaImunologia
Imunologia
 
A historia da biologia
A historia da biologiaA historia da biologia
A historia da biologia
 
Revisão ENEM V - Endemias
Revisão ENEM V - EndemiasRevisão ENEM V - Endemias
Revisão ENEM V - Endemias
 
Bioinformática
BioinformáticaBioinformática
Bioinformática
 
Aprendizado de Máquina
Aprendizado de MáquinaAprendizado de Máquina
Aprendizado de Máquina
 

Destaque

MODELAGEM DAS DINÂMICAS DA FORMAÇÃO DA GOTA E TRANSFERÊNCIA DE MASSA EM PROCE...
MODELAGEM DAS DINÂMICAS DA FORMAÇÃO DA GOTA E TRANSFERÊNCIA DE MASSA EM PROCE...MODELAGEM DAS DINÂMICAS DA FORMAÇÃO DA GOTA E TRANSFERÊNCIA DE MASSA EM PROCE...
MODELAGEM DAS DINÂMICAS DA FORMAÇÃO DA GOTA E TRANSFERÊNCIA DE MASSA EM PROCE...
Cristiano Rafael Steffens
 
Introdução ao processamento de imagens com OpenCV (cont)
Introdução ao processamento de imagens com OpenCV (cont)Introdução ao processamento de imagens com OpenCV (cont)
Introdução ao processamento de imagens com OpenCV (cont)
Cristiano Rafael Steffens
 
Sistema de Reconhecimento de Placas de Carro (Brasil) - Visão Computacional/O...
Sistema de Reconhecimento de Placas de Carro (Brasil) - Visão Computacional/O...Sistema de Reconhecimento de Placas de Carro (Brasil) - Visão Computacional/O...
Sistema de Reconhecimento de Placas de Carro (Brasil) - Visão Computacional/O...
Richiely Paiva
 

Destaque (9)

Um sistema de detecção de chamas utilizando RF e SVM (Short Version)
Um sistema de detecção de chamas utilizando RF e SVM (Short Version)Um sistema de detecção de chamas utilizando RF e SVM (Short Version)
Um sistema de detecção de chamas utilizando RF e SVM (Short Version)
 
MODELAGEM DAS DINÂMICAS DA FORMAÇÃO DA GOTA E TRANSFERÊNCIA DE MASSA EM PROCE...
MODELAGEM DAS DINÂMICAS DA FORMAÇÃO DA GOTA E TRANSFERÊNCIA DE MASSA EM PROCE...MODELAGEM DAS DINÂMICAS DA FORMAÇÃO DA GOTA E TRANSFERÊNCIA DE MASSA EM PROCE...
MODELAGEM DAS DINÂMICAS DA FORMAÇÃO DA GOTA E TRANSFERÊNCIA DE MASSA EM PROCE...
 
Simpósio Unicruz: OpenCV + Python (parte 1)
Simpósio Unicruz: OpenCV + Python (parte 1)Simpósio Unicruz: OpenCV + Python (parte 1)
Simpósio Unicruz: OpenCV + Python (parte 1)
 
Reconhecimento Automático de Emoções
Reconhecimento Automático de EmoçõesReconhecimento Automático de Emoções
Reconhecimento Automático de Emoções
 
Introdução ao processamento de imagens com OpenCV (cont)
Introdução ao processamento de imagens com OpenCV (cont)Introdução ao processamento de imagens com OpenCV (cont)
Introdução ao processamento de imagens com OpenCV (cont)
 
Sistema de Reconhecimento de Placas de Carro (Brasil) - Visão Computacional/O...
Sistema de Reconhecimento de Placas de Carro (Brasil) - Visão Computacional/O...Sistema de Reconhecimento de Placas de Carro (Brasil) - Visão Computacional/O...
Sistema de Reconhecimento de Placas de Carro (Brasil) - Visão Computacional/O...
 
Introdução OpenCV (Pt-Br) com exemplos
Introdução OpenCV (Pt-Br) com exemplosIntrodução OpenCV (Pt-Br) com exemplos
Introdução OpenCV (Pt-Br) com exemplos
 
Compilando e Usando OpenCV v. 3.0.0
Compilando e Usando OpenCV v. 3.0.0Compilando e Usando OpenCV v. 3.0.0
Compilando e Usando OpenCV v. 3.0.0
 
APLICATIVO MÓVEL PARA AFERIÇÃO DA FREQUÊNCIA CARDÍACA E ACOMPANHAMENTO MÉDICO...
APLICATIVO MÓVEL PARA AFERIÇÃO DA FREQUÊNCIA CARDÍACA E ACOMPANHAMENTO MÉDICO...APLICATIVO MÓVEL PARA AFERIÇÃO DA FREQUÊNCIA CARDÍACA E ACOMPANHAMENTO MÉDICO...
APLICATIVO MÓVEL PARA AFERIÇÃO DA FREQUÊNCIA CARDÍACA E ACOMPANHAMENTO MÉDICO...
 

Semelhante a Alinhamento de Sequencia DNA

Aula 1 fic
Aula 1   ficAula 1   fic
Aula 1 fic
BUIAR
 
Algebra linear apostila i prof inacio
Algebra linear apostila i   prof inacioAlgebra linear apostila i   prof inacio
Algebra linear apostila i prof inacio
Eng Amb
 

Semelhante a Alinhamento de Sequencia DNA (20)

Ex algebra (14)
Ex algebra  (14)Ex algebra  (14)
Ex algebra (14)
 
Aula 1 fic
Aula 1   ficAula 1   fic
Aula 1 fic
 
Aula 1 fic
Aula 1   ficAula 1   fic
Aula 1 fic
 
Equação de Recorrência - I (Otimização)
Equação de Recorrência - I (Otimização)Equação de Recorrência - I (Otimização)
Equação de Recorrência - I (Otimização)
 
Tadeu
TadeuTadeu
Tadeu
 
Gabarito pa
Gabarito paGabarito pa
Gabarito pa
 
Capítulo4 interpolação
Capítulo4 interpolaçãoCapítulo4 interpolação
Capítulo4 interpolação
 
Pa E Pg Feito Por Min
Pa E Pg Feito Por MinPa E Pg Feito Por Min
Pa E Pg Feito Por Min
 
Pa E Pg Feito Por Min
Pa E Pg Feito Por MinPa E Pg Feito Por Min
Pa E Pg Feito Por Min
 
Pa E Pg Feito Por Min
Pa E Pg Feito Por MinPa E Pg Feito Por Min
Pa E Pg Feito Por Min
 
Progressões
ProgressõesProgressões
Progressões
 
Dp lista matematica 1º 2013
Dp lista matematica 1º 2013Dp lista matematica 1º 2013
Dp lista matematica 1º 2013
 
Dp lista matematica 1º 2013
Dp lista matematica 1º 2013Dp lista matematica 1º 2013
Dp lista matematica 1º 2013
 
euclides primos
euclides primoseuclides primos
euclides primos
 
Módulo 01 - 9 ano- Matemática / Ens.Fundamental
Módulo 01 - 9 ano- Matemática  / Ens.FundamentalMódulo 01 - 9 ano- Matemática  / Ens.Fundamental
Módulo 01 - 9 ano- Matemática / Ens.Fundamental
 
Metódos de Pesquisa em C
Metódos de Pesquisa em CMetódos de Pesquisa em C
Metódos de Pesquisa em C
 
Aula 1 a 15 vol1
Aula 1 a 15 vol1Aula 1 a 15 vol1
Aula 1 a 15 vol1
 
Algebra linear apostila i prof inacio
Algebra linear apostila i   prof inacioAlgebra linear apostila i   prof inacio
Algebra linear apostila i prof inacio
 
PA e PG
PA e PGPA e PG
PA e PG
 
Teste Derivadas
Teste DerivadasTeste Derivadas
Teste Derivadas
 

Mais de Adilmar Dantas

Mais de Adilmar Dantas (20)

Querying nosql stores
Querying nosql storesQuerying nosql stores
Querying nosql stores
 
Programação Android Phonegap 1
Programação Android Phonegap 1Programação Android Phonegap 1
Programação Android Phonegap 1
 
Potenciação Divide and Conquer
Potenciação Divide and ConquerPotenciação Divide and Conquer
Potenciação Divide and Conquer
 
Cinta de expansão torácica utilizando Arduino aplicado na fisioterapia respir...
Cinta de expansão torácica utilizando Arduino aplicado na fisioterapia respir...Cinta de expansão torácica utilizando Arduino aplicado na fisioterapia respir...
Cinta de expansão torácica utilizando Arduino aplicado na fisioterapia respir...
 
Análise de Técnicas Computacionais para Classificação de Emoções
Análise de Técnicas Computacionais para Classificação de EmoçõesAnálise de Técnicas Computacionais para Classificação de Emoções
Análise de Técnicas Computacionais para Classificação de Emoções
 
Reconhecimento automático de emoções
Reconhecimento automático de emoçõesReconhecimento automático de emoções
Reconhecimento automático de emoções
 
Detecção de Faces - Redes Neurais *MLP
Detecção de Faces - Redes Neurais *MLPDetecção de Faces - Redes Neurais *MLP
Detecção de Faces - Redes Neurais *MLP
 
Rede Neural MLP para reconhecimento de Faces
Rede Neural MLP para reconhecimento de FacesRede Neural MLP para reconhecimento de Faces
Rede Neural MLP para reconhecimento de Faces
 
ALgoritmo Genético - Escalonamento
ALgoritmo Genético - EscalonamentoALgoritmo Genético - Escalonamento
ALgoritmo Genético - Escalonamento
 
BIODATA: SOFTWARE WEB PARA GERENCIAMENTO DE COLETA DE DADOS BIOMÉDICOS
BIODATA: SOFTWARE WEB PARA GERENCIAMENTO DE COLETA DE DADOS BIOMÉDICOSBIODATA: SOFTWARE WEB PARA GERENCIAMENTO DE COLETA DE DADOS BIOMÉDICOS
BIODATA: SOFTWARE WEB PARA GERENCIAMENTO DE COLETA DE DADOS BIOMÉDICOS
 
3ª maratona de games – facom ufu
3ª maratona de games – facom  ufu3ª maratona de games – facom  ufu
3ª maratona de games – facom ufu
 
Monitor Cardíaco usando Arduino
Monitor Cardíaco usando Arduino Monitor Cardíaco usando Arduino
Monitor Cardíaco usando Arduino
 
Algoritmo clique maximo - Analise de Algoritmos
Algoritmo clique maximo  - Analise de AlgoritmosAlgoritmo clique maximo  - Analise de Algoritmos
Algoritmo clique maximo - Analise de Algoritmos
 
Servidores Web
Servidores WebServidores Web
Servidores Web
 
TCC: WebLab Laboratório de Experimentação Remota
TCC: WebLab Laboratório de Experimentação RemotaTCC: WebLab Laboratório de Experimentação Remota
TCC: WebLab Laboratório de Experimentação Remota
 
Weblab TCC
Weblab TCCWeblab TCC
Weblab TCC
 
Engenharia de software testes
Engenharia de software  testesEngenharia de software  testes
Engenharia de software testes
 
Qualidade de Software Web
Qualidade de Software WebQualidade de Software Web
Qualidade de Software Web
 
Compilador analise lexica
Compilador analise lexicaCompilador analise lexica
Compilador analise lexica
 
Software Quality Software Testing Laboratory
Software Quality Software Testing Laboratory Software Quality Software Testing Laboratory
Software Quality Software Testing Laboratory
 

Último

Último (6)

ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 

Alinhamento de Sequencia DNA

  • 1.
  • 2. Comparar sequências  Recuperação de Informação: dada uma chave, buscar em um dicionário por palavras que se assemelham à chave.  Biologia Molecular: dadas duas sequências de DNA, identificar se são semelhantes.  Para que serve?
  • 3.  Por que alinhamos sequências ? Comparar genes de DNA Estudar a estrutura de proteínas  Estudar evolução molecular Detecção de doenças, vírus, etc.
  • 4. Um alinhamento de duas sequências de caracteres α e β é obtido inserindo-se espaços (gaps) nas sequências e então colocando-se uma sobre a outra de modo que cada caractere ou espaço esteja emparelhado a um único caractere (ou a um espaço) da outra cadeia. • Exemplo: • Sequências: • α = AAACTGCACAATCTTAATGCCCTTTTAT • β = GCGGATCAACTTATTCCATCTCTT • Alinhamento: • α′ = AAACTGCA-CAATCTTAATGCC--CTTTTAT • β ′ =--GC-GGATCAA-CTT-ATTCCATCTCTT--
  • 5.
  • 6. Ex: match +1 (good) mismatch -1 (bad) gap -2 (worse) G A - C G G A T T A G G A T C G G A A T A G score = 9 ·1+ 1·(-1) + 1·(-2) = 6 O score que é a soma dos valores associados a cada posição, de acordo com o grau de similaridade entre os elementos correspondentes.  Cálculo do Score
  • 7. Problema: Alinhamento de duas cadeias de caracteres. Entrada: Duas cadeias de caracteres Saída: O alinhamento ideal das cadeias, possivelmente incluindo as lacunas “gap’s”.
  • 8. 1. Subestrutura Ótima Sendo assim, há três alternativas possíveis para resolver o problema: i) (m, n) M∈ ii) a m-ésima posição de X M∉ iii) a n-ésima posiçao de Y M∉ Caso ocorra o caso (i), teremos OPT(m, n) = αXmYn + OPT(m -1, n -1). Caso ocorra o caso (ii), teremos que “pagar” o custo de um intervalo desde a m- ésima posição de X que não foi encontrada e alinhar X1, X2, ..., Xm-1 bem como Y1, Y2, ..., Yn. Deste modo teremos: OPT(m, n) = δ + OPT(m -1, n). Caso ocorra o caso (iii), será semelhante ao caso (ii), porém: OPT(m, n) = δ + OPT(m, n -1).
  • 9. 2. Expressão Recursiva i *δ se j=0 j *δ se i=0 OPT(i,j) MAX [αXiYj + OPT(i -1, j -1), δ + OPT(i -1, j), δ + OPT(i, j -1)] δ – gap (custo pelo espaço) αXiYj – custo de emparelhar Xi e Yj
  • 10. 3. Algoritmo utilizando a força bruta (RECURSIVO) 1. Alinhamento_recursivo(X,m,Y,n) 2. If m = 0 3. then return n*δ 4. If n = 0 5. then return m*δ 6. A = αXiYj + Alinhamento_recursivo(X,m-1,Y,n-1) 7. B = δ + Alinhamento_recursivo(X,m-1,Y,n) 8. C = δ + Alinhamento_recursivo(X,m,Y,n-1) 9. return max (A,B,C)
  • 11. • A complexidade para o algoritmo alinhamento_recursivo(X,i,Y,j) baseado na expressão recursiva é: T(m,n) = T(m-1,n-1) + T(m,n-1) + T(m-1,n) + Θ(1) T(m,n) ≥ 3T(m-1,n-1) + Θ(1) T(m,n) = Ω(3min(m,n) )  Ordem exponencial! 3.1 Análise do algoritmo alinhamento_ recursivo
  • 12. 3.2 Algoritmo Utilizando Programação Dinâmica 1. Alinhamento_PD(X,Y,δ) 2. Initialize A[i,0] = i*δ for i = 0, ..., m 3. Initialize A[0,j] = j*δ for j = 1, ..., n 4. For i = 1, ..., m 5. For j = 1, ..., n 6. A[i,j] = max (αXiYj + A[i -1, j -1], δ + A[i -1, j], δ + A[i, j -1]) 7. Endfor 8. Endfor 9. Return A[m,n]
  • 13.  A complexidade para o algoritmo Alinhamento_PD é Θ(m*n), pois é o tempo de preencher a matriz A.  Este custo está expresso nas linhas 3 à 5 do algoritmo Alinhamento_PD(X,Y,δ). As demais linhas têm tempo constante, ou seja, Θ(1).  O espaço ocupado é Θ(m*n), pois o tamanho da matriz é (m+1)*(n+1).  Tempo de execução Θ(m*n) 3.3 Análise do algoritmo Alinhamento_PD(X,Y,δ)
  • 14. 4. Algoritmo para mostrar a solução ótima
  • 15. Matches: (+1) Mismatches: (-1) Gaps: (-1) Para alinhar as sequencias (traceback) começa-se na última entrada da matriz, onde está o score, e percorre-se a matriz pelos precedentes diretos de cada célula, até a posição inicial da matriz. As regras de alinhamento são dadas pela orientação relativa das setas:  • Diagonal: xi alinha com yi; • Vertical: yi alinha com espaço; • Horizontal: xi alinha com espaço.
  • 16.
  • 17. entrada rec pd 5 0,01 0,011 10 0,086 0,011 15 406,265 0,01 16 2290,402 0,011 17 12069,45 0,012 18   0,011 19   0,01 20   0,011
  • 19. • T. H. Cormen, C. E. Leiserson, and R. L. Rivest, Introduction to algorithms, 1st  ed., The MIT Press, 1990. • V.  Bafna,  E.  L.  Lawler,  and  P.  A.  Pevzner,  Approximation  algorithms  for  multiple sequence alignment, Theoretical Computer Science 182 (1997), 233– 244. • Freitas, Ana T., Alinhamento de Sequências, Guia do 2o Laboratório de  Biologia Computacional, Outubro de 2007. • P. Bonizzoni and G. D. Vedova, The complexity of multiple sequence  alignment with SP-score that is a metric, Theoretical Computer Science 259  (2001), 63–79.