63
Introduc ¸˜ ao Alinhamento de duas sequ ˆ encias (pairwise) Alinhamento M ´ ultiplo Refer ˆ encias etodos computacionais e algoritmos de comparac ¸˜ ao de sequ ˆ encias Maria Emilia M. T. Walter Tutores: Daniel S. Souza e Jo˜ ao Victor A. Oliveira Universidade de Bras´ ılia Tain ´ a Raiol Alencar Fiocruz Amaz ˆ onia/Instituto Le ˆ onidas e Maria Deane Universidade Federal de Goi´ as Goi ˆ ania, 21 a 23 de setembro de 2015 Maria Emilia Walter e Tain´ a Raiol RNAs n ˜ ao-codificadores: Algoritmos

Métodos computacionais e algoritmos de comparação de

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Metodos computacionais e algoritmos decomparacao de sequencias

Maria Emilia M. T. WalterTutores: Daniel S. Souza e Joao Victor A. Oliveira

Universidade de Brasılia

Taina Raiol AlencarFiocruz Amazonia/Instituto Leonidas e Maria Deane

Universidade Federal de GoiasGoiania, 21 a 23 de setembro de 2015

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 2: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Topicos

Introducao

Alinhamento de duas sequencias (pairwise)Algoritmos baseados em Programacao DinamicaAlgoritmo baseado em heurısticas

Alinhamento Multiplo

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 3: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Investigando sequencias biologicas (Shifra Ben-Dor eIrit Or, Weizmann Institute of Science/Israel)

I Temos uma sequencia de DNA. O que e possıvelinvestigar sobre essa sequencia?

I possıveis regioes codificadorasI possıveis regioes regulatorias

I Temos uma sequencia de proteına. O que e possıvelinvestigar sobre ela?

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 4: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Investigando sequencias biologicas (Shifra Ben-Dor eIrit Or, Weizmann Institute of Science/Israel)

I Temos uma sequencia de DNA. O que e possıvelinvestigar sobre essa sequencia?

I possıveis regioes codificadorasI possıveis regioes regulatorias

I Temos uma sequencia de proteına. O que e possıvelinvestigar sobre ela?

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 5: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Comparacao de sequencias

I De forma generica: sequencias determinam estruturas eestruturas determinam funcoes

I Por meio de similaridade de sequencias, esperamosencontrar correlacoes entre a sequencia que queremosestudar e outras que possuem estruturas ou funcoesconhecidas

I Esse enfoque e bastante utilizado, com sucesso. Noentanto, muitas moleculas apresentam baixa similaridade,com estrutura e/ou funcao similares

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 6: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Comparacao de sequencias

I Motivos/Domınios: similaridade entre pequenossegmentos (pedacos) das sequencias

I Famılias de sequencias: similaridades entre sequenciaslongas

I Essas comparacoes podem nos apoiar em investigacoesde:

I estrutura (por meio da determinacao da correspondenciaentre resıduos)

I funcao (por meio da observacao de padroes conservados)I evolucao (inferencia de relacoes filogeneticas)

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 7: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Comparacao de sequencias

Questoes que podem ser respondidas com comparacoes desequencias:

I as sequencias sao relacionadas (homologas)?I podemos qualificar suas similaridades?I elas possuem segmentos similares?

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 8: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Comparacao de sequencias

Terminologia:

I HomologiaI IdentidadeI Similaridade

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 9: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Comparacao de sequencias

Homologia:

I Ancestral comumI Conservacao de sequencias e normalmente de estruturasI Homologia nao e uma quantidade mensuravelI Homologia pode ser inferida, em condicoes apropriadas

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 10: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Comparacao de sequencias

Identidade:

I Objetiva e bem definidaI Pode ser quantificada por metodos diferentes:

I porcentagemI numero de casamentos exatos (matches) dividido pelo

tamanho da regiao alinhada

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 11: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Comparacao de sequencias

Similaridade:

I Metodo mais comumente utilizadoI Nao e tao bem definidaI Depende dos parametros utilizados (alfabeto, matriz de

escores, etc...)

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 12: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Comparacao de sequencias

O que estamos comparando?

I DNA ou RNAI 4 acidos nucleicos (conjunto basico)

I ProteınaI 20 aminoacidos (conjunto basico)

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 13: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Algoritmos baseados em Programacao DinamicaAlgoritmo baseado em heurısticas

Conceitos basicos

I Para comparar duas ou mais sequencias, primeiro epreciso determinar as correspondencias entrenucleotıdeos ou aminoacidos nas posicoescorrespondentes

I Alinhamento de sequencias: posicionamento dassequencias, com indicacao das posicoes em que assequencias sao iguais e das que sao diferentes,preservando a ordem dos nucleotıdeos ou aminoacidosdentro de cada sequencia

I Estamos interessados no alinhamento otimo: o maximo desimilaridade e o mınimo de diferencas

I Alinhamento: ferramenta basica da bioinformatica

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 14: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Algoritmos baseados em Programacao DinamicaAlgoritmo baseado em heurısticas

Elementos do alinhamento

I Tipos de alinhamentos:I DNA x ProteınaI Alinhamento de duas sequencias x multiploI Alinhamento global x local

I Modelos de pontuacao para alinhamentos:I SubstituicoesI Gaps (insercoes, delecoes)I Matriz de substituicao e penalidades para gaps

I Algoritmos:I Programacao dinamicaI Heurısticas

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 15: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Algoritmos baseados em Programacao DinamicaAlgoritmo baseado em heurısticas

Elementos do alinhamento

I Tipos de alinhamentos:I DNA x ProteınaI Alinhamento de duas sequencias x multiploI Alinhamento global x local

I Modelos de pontuacao para alinhamentos:I SubstituicoesI Gaps (insercoes, delecoes)I Matriz de substituicao e penalidades para gaps

I Algoritmos:I Programacao dinamicaI Heurısticas

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 16: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Algoritmos baseados em Programacao DinamicaAlgoritmo baseado em heurısticas

Elementos do alinhamento

I Tipos de alinhamentos:I DNA x ProteınaI Alinhamento de duas sequencias x multiploI Alinhamento global x local

I Modelos de pontuacao para alinhamentos:I SubstituicoesI Gaps (insercoes, delecoes)I Matriz de substituicao e penalidades para gaps

I Algoritmos:I Programacao dinamicaI Heurısticas

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 17: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Algoritmos baseados em Programacao DinamicaAlgoritmo baseado em heurısticas

DNA x Proteına

I Sensibilidade: Habilidade de detectar todas ascorrespondencias verdadeiras entre caracteres.Comparacao mais sensıvel detecta numero maior decorrespondencias verdadeiras, mas tambem pode detectarmuitos falsos positivos

I Especificidade: Habilidade de rejeitar todos os falsospositivos. A comparacao mais especıfica detecta apenascorrespondencias verdadeiras, mas pode tambemidentificar muitos falsos negativos

I DNA formado por 4 caracteres (A, C, T, G): pelo menos25% dos nucleotıdeos nao relacionados de duassequencias serao identicos, levando a maior sensibilidade

I Proteına formada por 20 caracteres (aminoacidos):especificidade da comparacao e maior

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 18: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Algoritmos baseados em Programacao DinamicaAlgoritmo baseado em heurısticas

DNA x Proteına

I Sensibilidade: Habilidade de detectar todas ascorrespondencias verdadeiras entre caracteres.Comparacao mais sensıvel detecta numero maior decorrespondencias verdadeiras, mas tambem pode detectarmuitos falsos positivos

I Especificidade: Habilidade de rejeitar todos os falsospositivos. A comparacao mais especıfica detecta apenascorrespondencias verdadeiras, mas pode tambemidentificar muitos falsos negativos

I DNA formado por 4 caracteres (A, C, T, G): pelo menos25% dos nucleotıdeos nao relacionados de duassequencias serao identicos, levando a maior sensibilidade

I Proteına formada por 20 caracteres (aminoacidos):especificidade da comparacao e maior

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 19: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Algoritmos baseados em Programacao DinamicaAlgoritmo baseado em heurısticas

Definicao dos metodos

I Multiplas possibilidades:I Podem ser permitidos gaps, ou nao

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 20: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Algoritmos baseados em Programacao DinamicaAlgoritmo baseado em heurısticas

Metricas associadas a alinhamento de sequencias

I Como definir metricas associadas a alinhamentos?I Devemos examinar todos os alinhamentos possıveis,

sistematicamenteI Devemos definir uma pontuacao que reflita a qualidade de

cada alinhamento possıvelI Devemos identificar o alinhamento com a melhor

pontuacaoI Muitos alinhamentos podem ter a mesma melhor

pontuacaoI Existem muitas maneiras de se pontuar um alinhamento

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 21: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Algoritmos baseados em Programacao DinamicaAlgoritmo baseado em heurısticas

Comparacao de duas sequencias

I Problema de comparar duas sequencias: encontrar omelhor alinhamento entre duas sequencias

I Metodo de programacao dinamica tem dois casos, muitoutilizados:

I inteiras: comparacao global (algoritmo deNeedleman-Wunsch)

I segmentos (substrings) das duas sequencias: comparacaolocal (algoritmo de Smith-Waterman)

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 22: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Algoritmos baseados em Programacao DinamicaAlgoritmo baseado em heurısticas

Alinhamento local x global

Alinhamento Global (Needleman, 1970)

Alinhamento Local (Smith and Waterman, 1981)

(Pennacchio et al., 2003)

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 23: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Algoritmos baseados em Programacao DinamicaAlgoritmo baseado em heurısticas

Alinhamento local x global

Alinhamento Global (Needleman, 1970)

Alinhamento Local (Smith and Waterman, 1981)

(Pennacchio et al., 2003)

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 24: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Algoritmos baseados em Programacao DinamicaAlgoritmo baseado em heurısticas

Programacao Dinamica

I Modelo de desenvolvimento de algoritmos:I solucao otima do problema inteiro contem solucoes para

subproblemas menores e nao existe um numero ”grande”de solucoes diferentes para os subproblemas

I nosso caso: se um alinhamento e otimo para duassequencias, entao todos os ”subalinhamentos” contidosnesse alinhamento tambem sao otimos para ascorrespondentes subsequencias

I Armazena e reutiliza resultados intermediarios em umamatriz (de programacao dinamica)

I Tres etapas:I inıcioI preenchimento da matriz (pontuacao)I rastreamento do caminho com menores penalidades:

produz um alinhamento

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 25: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Algoritmos baseados em Programacao DinamicaAlgoritmo baseado em heurısticas

Detalhando o metodo de programacao dinamica(Setubal e Meidanis, 1997)

I Exemplo: tomar duas sequencias GACGGATTAG eGATCGGAATAG

I Um alinhamento possıvel:I G A C G G A T T A G (espaco em branco: −)I G A T C G G A A T A G

I G A − C G G A T T A GI G A T C G G A A T A G

I algoritmo: tomar duas sequencias e determinar o melhoralinhamento entre elas

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 26: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Algoritmos baseados em Programacao DinamicaAlgoritmo baseado em heurısticas

Detalhando o metodo de programacao dinamica(Setubal e Meidanis, 1997)

I Exemplo: tomar duas sequencias GACGGATTAG eGATCGGAATAG

I Um alinhamento possıvel:I G A C G G A T T A G (espaco em branco: −)I G A T C G G A A T A G

I G A − C G G A T T A GI G A T C G G A A T A G

I algoritmo: tomar duas sequencias e determinar o melhoralinhamento entre elas

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 27: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Algoritmos baseados em Programacao DinamicaAlgoritmo baseado em heurısticas

Detalhando o metodo de programacao dinamica

I Definicoes:I alinhamentos podem conter espacosI alinhamento: insercao de espacos nas sequencias para

que ambas fiquem de mesmo tamanhoI explicitar o alinhamento:

I colocamos uma sequencia com espacos, acima da outraI fazemos corresponder caracteres/espacos da primeira com

caracteres/espacos da segunda sequenciaI nao podemos alinhar espaco/espacoI podem aparecer espacos nas extremidades das

sequencias

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 28: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Algoritmos baseados em Programacao DinamicaAlgoritmo baseado em heurısticas

Detalhando o metodo de programacao dinamica

I Dado um alinhamento entre duas sequencias, associamosum escore a ele:

I cada coluna recebe um valor:I +1: casamento (match), caracteres identicosI −1: nao-casamento (mismatch), caracteres diferentesI −2: espaco (gap), representado por −

I escore total: soma dos valores associados a cada colunaI melhor alinhamento: maximo escoreI maximo escore: similaridade das sequencias s e t ,

denotado por sim(s, t)

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 29: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Algoritmos baseados em Programacao DinamicaAlgoritmo baseado em heurısticas

Detalhando o metodo de programacao dinamica

I alinhamento anterior:I G A − C G G A T T A GI G A T C G G A A T A GI +1 +1 -2 +1 +1 +1 +1 -1 +1 +1 +1

I escore: 9x(+1) + 1x(−2) + 1x(−1) = 6I escolha de +1, -1, -2:

I comumente usado, mas pode ser modificado

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 30: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Algoritmos baseados em Programacao DinamicaAlgoritmo baseado em heurısticas

Detalhando o metodo de programacao dinamica

I gerar todos os possıveis alinhamentos e escolher omelhor: tempo exponencial

I tecnica: programacao dinamicaI dadas duas sequencias s e t :

I construımos solucoes determinando todas as similaridadesentre prefixos de s e prefixos de t

I inıcio: computamos prefixos menoresI depois: usamos valores previamente calculados para

resolver o problema para prefixos maiores

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 31: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Algoritmos baseados em Programacao DinamicaAlgoritmo baseado em heurısticas

Detalhando o metodo de programacao dinamica

I |s| = m, m + 1 prefixos (incluindo ε: substring vazia)I |t | = n, n + 1 prefixos (incluindo ε)I criamos uma matriz (m + 1)x(n + 1) tal que:

I (i , j) = sim(s[1..i], t [1..j])

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 32: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Algoritmos baseados em Programacao DinamicaAlgoritmo baseado em heurısticas

I inicializacao: multiplos das penalidades de gaps (-2),razao: unico alinhamento possıvel com uma dassequencias vazia e adicionar −

I exemplo: s = AAAC e t = ε

I alinhamento:I A A A CI − − − −I −2 −2 −2 −2 = −8

I escore do alinhamento: −2k , k : tamanho da sequencianao-vazia

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 33: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Algoritmos baseados em Programacao DinamicaAlgoritmo baseado em heurısticas

Detalhando o metodo de programacao dinamica

I Tomando s = A A A C e t = A G C

//[5cm]

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 34: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Algoritmos baseados em Programacao DinamicaAlgoritmo baseado em heurısticas

Detalhando o metodo de programacao dinamica

I para construir (i , j), basta examinar tres entradas:I (i − 1, j): posicao anterior na verticalI (i − 1, j − 1): posicao anterior na diagonalI (i , j − 1): posicao anterior na horizontalI porque para obter o alinhamento entre s[1..i] e t [1..j]:

I alinhar s[1..i] com t [1..j − 1] e alinhar −/t [j] ouI alinhar s[1..i − 1] com t [1..j − 1] e alinhar s[i]/t [j] ouI alinhar s[1..i − 1] com t [1..j] e alinhar s[i]/−I observacao: nao se pode alinhar −/−

I

sim(s[1..i], t [1..j]) = max(sim(s[1..i], t [1..j − 1]) - 2,sim(s[1..i − 1], t [1..j − 1]) + p(i , j),sim(s[1..i − 1], t [1..j]) - 2)

I onde p(i , j) = +1, se s[i] = t [j] or −1, se s[i] 6= t [j]

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 35: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Algoritmos baseados em Programacao DinamicaAlgoritmo baseado em heurısticas

Detalhando o metodo de programacao dinamicaI

sim(s[1..i], t[1..j]) = max(sim(s[1..i], t[1..j − 1]) - 2,

sim(s[1..i − 1], t[1..j − 1]) + p(i, j),

sim(s[1..i − 1], t[1..j]) - 2)

I Denotando a matriz por a:I

a[i, j] = max(a[i, j − 1]− 2,

a[i − 1, j − 1] + p(i, j),

a[i − 1, j]− 2)

I onde p(i, j) = +1, se s[i] = t[j] or −1, se s[i] 6= t[j]I Calculamos:

I linha (esquerda para direita) ou coluna (cima para baixo)I a[i , j − 1], a[i − 1, j − 1] e a[i − 1, j] tenham sido calculadas

quando a[i , j] for calculadaMaria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 36: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Algoritmos baseados em Programacao DinamicaAlgoritmo baseado em heurısticas

Detalhando o metodo de programacao dinamica

a[1,1] = max(a[1,0]− 2,a[0,0] + p(1,1),a[0,1]− 2)= max(−2 − 2, 0 + 1, − 2 − 2)= max(−4, + 1, − 4)= +1

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 37: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Algoritmos baseados em Programacao DinamicaAlgoritmo baseado em heurısticas

Detalhando o metodo de programacao dinamica

I Tomando s = A A A C e t = A G C

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 38: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Algoritmos baseados em Programacao DinamicaAlgoritmo baseado em heurısticas

Obter alinhamentos otimos

I Como usar as setas:I inıcio: posicao a(m,n)I seguir as setasI final: posicao a(0,0)

I Cada seta indica uma coluna do alinhamento:I seta horizontal a esquerda←: alinhamento −/t [j]I seta vertical para cima ↑: alinhamento s[i]/−I seta diagonal↖: alinhamento s[i]/t [j]

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 39: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Algoritmos baseados em Programacao DinamicaAlgoritmo baseado em heurısticas

Obter alinhamentos otimos

I Escolhendo a seta no sentido anti-horario:I A A A CI A G − CI +1 −1 −2 +1 = −1 = a[m,n]I A A A CI − A G CI −2 +1 −1 +1 = −1 = a[m,n]

I nao precisa implementar seta:I basta testar se a[i , j] = max(a[i − 1, j]− 2,

a[i − 1, j − 1] + p(i , j), a[i , j − 1]− 2) (sentido anti-horario)I custo computacional do algoritmo:

I construir a matriz:I tempo: O(mn), e quando |s| = |t | = n, entao O(n2)I espaco: O(mn), e quando |s| = |t | = n, entao O(n2)

I construir o alinhamento: tempo e espaco: O(m + n), equando |s| = |t | = n, entao O(n)

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 40: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Algoritmos baseados em Programacao DinamicaAlgoritmo baseado em heurısticas

Comparacao local

I alinhamento local entre s e t :I alinhamento entre substring de s e substring de t

I algoritmo: variante do algoritmo basicoI estrutura de dados: matriz (m + 1)x(n + 1)I (i , j) = maior escore entre sufixo(s[1..i]) e sufixo(t [1..j])

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 41: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Algoritmos baseados em Programacao DinamicaAlgoritmo baseado em heurısticas

I linha 1 e coluna 1: inicializadas com 0I sempre existe alinhamento entre sufixos vazios de s[1..i] e

t [1..j] com escore 0, entao (i , j) = 0I

a[i , j] = max(a[i , j − 1]− 2,a[i − 1, j − 1] + p(i , j),a[i − 1, j]− 2,0)

I encontrar a maior entrada (escore de um alinhamentolocal otimo) da matriz:

I inıcio de um alinhamento local otimoI pode aparecer em mais de 1 posicao da matriz

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 42: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Algoritmos baseados em Programacao DinamicaAlgoritmo baseado em heurısticas

Alinhamento Local

I Para s =AAAC e t =AGC, temos os alinhamentos locais:I C/C: s[4]/t[3]I A/A: s[3]/t[1], s[2]/t[1], s[1]/t[1]

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 43: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Algoritmos baseados em Programacao DinamicaAlgoritmo baseado em heurısticas

Matriz de Substituicao e penalidades

I Outra forma de computar o valor de um alinhamento:atribuımos ganhos ou penalidades para cada alinhamentoentre dois resıduos em uma matriz de pontuacao

I Alinhamento: obtido ao achar o caminho otimo (de menorpenalidade) em uma matriz de penalidades

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 44: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Algoritmos baseados em Programacao DinamicaAlgoritmo baseado em heurısticas

Matriz de Substituicao e penalidades - Nucleotıdeos

I Um sistema simples de pontuacao:I match +1; mismatch -1; gap -2

I Pode-se penalizar mais determinadas trocas:I transicoes (Pu↔ Pu e Py↔ Py) sao menos penalizadas

que transversoes (Pu↔ Py)

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 45: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Algoritmos baseados em Programacao DinamicaAlgoritmo baseado em heurısticas

Matriz de Substituicao e penalidades - Aminoacidos

I Matrizes de Pontuacao Posicao Independentes:I Matrizes PAM (Percent Accepted Mutation) (Dayhoff et al., 1972):

I baseada em distancias evolutivas: matrizes derivadas desequencias muito relacionadas e em suas mutacoes

I Matrizes BLOSUM (BLOck SUbstitution Matrices) (Henikoff and

Henikoff, 1992):I baseada em sequencias relacionadas de forma mais

distante: numero de cada matriz e a porcentagem deidentidade

I Matrizes de Pontuacao Posicao Especıfica (PositionSpecific Score Matrices - PSSMs)

I usadas no PSI-BLAST

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 46: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Algoritmos baseados em Programacao DinamicaAlgoritmo baseado em heurısticas

PAM

I PAM1: 1% de mutacoes aceitas ou seja as sequenciastem 99% de similaridade (aminoacidos identicos)

I Dado um tempo evolutivo, calcula-se a probabilidade deum aminoacido ser substituıdo por outro

I As analises estatısticas de pares de sequencias muitorelacionadas permitem gerar uma matriz de substituicao

I As matrizes PAM foram baseadas em um numero pequenode substituicoes (∼ 1.500)

I PAM250: 20% de similaridade (melhor para sequenciasmenos relacionadas)

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 47: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Algoritmos baseados em Programacao DinamicaAlgoritmo baseado em heurısticas

BLOSUM

I Mais sensıvel para detectar relacionamentos distantesI Gerada a partir de regioes de proteınas relacionadas

alinhadas sem gapsI BLOSUM62: mais comumente utilizada, foi criada pela

comparacao de sequencias com mais de 62% deidentidade

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 48: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Algoritmos baseados em Programacao DinamicaAlgoritmo baseado em heurısticas

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 49: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Algoritmos baseados em Programacao DinamicaAlgoritmo baseado em heurısticas

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 50: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Algoritmos baseados em Programacao DinamicaAlgoritmo baseado em heurısticas

Blast

I Basic Local Alignment Search Tool (Altschul et al., 1990)

I Abordagem heurıstica:I Passo 1: acha palavras curtas e monta tabela hashI Passo 2: procura palavras curtas em um banco de dados e

estende hitsI Passo 3: calcula estatısticas do alinhamento

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 51: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Algoritmos baseados em Programacao DinamicaAlgoritmo baseado em heurısticas

Passo 1

I Compila palavras (strings) curtas com alto valor de escore

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 52: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Algoritmos baseados em Programacao DinamicaAlgoritmo baseado em heurısticas

Passo 1

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 53: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Algoritmos baseados em Programacao DinamicaAlgoritmo baseado em heurısticas

Passo 1

I Monta tabela hash

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 54: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Algoritmos baseados em Programacao DinamicaAlgoritmo baseado em heurısticas

Passo 2

I Procura por hits: cada hit gera uma semente (seed)I Hit = High Scoring Segment Pair (HSP)I As sementes sao estendidas

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 55: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Algoritmos baseados em Programacao DinamicaAlgoritmo baseado em heurısticas

Passo 3

I A extensao e interrompida quando o e − value(dependente do score S) torna-se menor do que umdeterminado limite

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 56: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Algoritmos baseados em Programacao DinamicaAlgoritmo baseado em heurısticas

Saıda do Blast

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 57: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Alinhamento Multiplo: comentarios gerais

I Existem dezenas de metodos disponıveis, sendo oalinhamento multiplo progressivo um dos mais utilizados

I As principais caracterısticas desse tipo de alinhamentosao:

I pontuacao dada aos alinhamentos par-a-parI metodo de agrupamento (clustering)I tratamento de gaps

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 58: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Metodo de alinhamento progressivo

Passo 1: Alinhamentos par-a-par sao feitos entre todas assequencias do grupo que esta sendo estudo

I Pontuacoes sao utilizadas para construir uma matriz dedistancias

I Para calcular essa matriz, considera-se a divergenciaentre as sequencias

Passo 2: Uma arvore-guia (filogenetica) e construıda apartir da matriz de distancias utilizando o metodo deneighbour-joining

I a arvore-guia tem ramos de diferentes tamanhos, e seutamanho e proporcional a divergencia estimada ao longode cada ramo

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 59: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Metodo de alinhamento progressivo

Passo 1: Alinhamentos par-a-par sao feitos entre todas assequencias do grupo que esta sendo estudo

I Pontuacoes sao utilizadas para construir uma matriz dedistancias

I Para calcular essa matriz, considera-se a divergenciaentre as sequencias

Passo 2: Uma arvore-guia (filogenetica) e construıda apartir da matriz de distancias utilizando o metodo deneighbour-joining

I a arvore-guia tem ramos de diferentes tamanhos, e seutamanho e proporcional a divergencia estimada ao longode cada ramo

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 60: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Metodo de alinhamento progressivo

Passo 3: O alinhamento progressivo das sequencias efeito, seguindo a ordem dos ramos na arvore-guia

I As sequencias sao alinhadas a partir das extremidadesate a raiz

I Este alinhamento e feito de acordo com as relacoesfilogeneticas encontradas na arvore-guia

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 61: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Um exemplo de saıda de alinhamento multiplo

http://www.compbio.dundee.ac.uk/papers/ccp4_98b/node18.html

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 62: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Bibliography I

Altschul, S., Gish, W., Miller, W., Myers, E., Lipman, D., et al.(1990). Basic local alignment search tool. Journal ofmolecular biology, 215(3):403–410.

Dayhoff, M., Schwartz, R., and Orcutt, B. (1972). 22 a model ofevolutionary change in proteins. Atlas of protein sequenceand structure, 5:345–352.

Henikoff, S. and Henikoff, J. (1992). Amino acid substitutionmatrices from protein blocks. Proceedings of the NationalAcademy of Sciences, 89(22):10915.

Needleman, S. (1970). Needleman–Wunsch global alignment.J Mol Biol, 48:443–453.

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos

Page 63: Métodos computacionais e algoritmos de comparação de

IntroducaoAlinhamento de duas sequencias (pairwise)

Alinhamento MultiploReferencias

Bibliography II

Pennacchio, L., Rubin, E., et al. (2003). Comparative genomictools and databases: providing insights into the humangenome. Journal of Clinical Investigation, 111(8):1099–1106.

Smith, T. and Waterman, M. (1981). Local homologiesalgorithm to align sequences. Adv. Appl. Math, 2:482–489.

Maria Emilia Walter e Taina Raiol RNAs nao-codificadores: Algoritmos