XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO SOBRAPO – Sociedade Brasileira de Pesquisa Operacional Aplicações de Pesquisa Operacional à Bio Informática Um curso introdutório Samuel Jurkiewicz – UFRJ SBPO 2006 Goiânia XXXVIII SBPO [ 2479 ] XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento XXXVIII SBPO 12 a 15/09/06 Goiânia, GO [ 2480 ] XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO Antes de começar Dizer que a Biologia e a Matemática estiveram sempre ligadas não é nada original. De fato, seja na abordagem geométrica dos desenhos e proporções de homens e animais; seja na contagem (mais ou menos precisas) de poções curativas, números e procedimentos sempre estiveram ligados à Biologia. Os estudos de Mendel estabeleceram um elo (no princípio não muito percebido) com um ramo da Matemática que ainda lutava para ser reconhecido como importante – a Combinatória. E, no entanto, a Combinatória oferecia um modelo tão convincente que a Genética nunca mais foi a mesma. As idéias combinatórias em Genética colocaram os biólogos na pista certa de como a vida e as características dos viventes se transmitem, de como a evolução se processa. A descrição do modelo da dupla hélice como modelo do DNA por Watson e Crick mostrou que a Combinatória não só não mais se separaria da Biologia como também ainda tinha muito a oferecer. Como já é uma regra no mundo científico, mais do que um grupo estava a procura do modelo do DNA como por exemplo Rosalind Franklin e Maurice Wilkins – os primeiros a sugerir a forma de hélice. A comunidade da Biologia já coabitava com a Combinatória e os frutos já estavam amadurecendo. Para a colheita destes frutos muito concorreu o avanço veloz da informática. E aí nos referimos não somente às máquinas mas sobretudo à prolífica produção de conceitos, algoritmos e processos matemáticos. Entre os campos mais inovadores podemos apontar a Algorítmica e a Pesquisa Operacional. E estas idéias se agregaram às novas idéias da Genética com resultados revolucionários – e esta palavra não está sendo usada como adjetivo. Não se pode deixar de notar a contemporaneidade do trabalho de Watson e Crick (1953) e a apresentação do Algoritmo de Dijkstra (1952) para determinação de caminhos mais curtos. É este algoritmo que está na base da mais freqüente operação em Bioinformática – o alinhamento de seqüências de DNA. Neste curso (verdadeiramente mini) temos a intenção de abordar as primeiras idéias de aplicação de Pesquisa Operacional à Bioinformática. Os aspectos abordados não pressupõem maiores requisitos e são acessíveis a qualque interessado com um bom 2º grau. XXXVIII SBPO [ 2481 ] XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO Uma informação importante. O autor confessa um conhecimento apenas pedresta da Biologia envolvida. Procuramos transformar essa deficiência em vantagem. Toda a Biologia abordada depende muito mais de fatos básicos e bom censo do que de conhecimentos profundos. Isso quer dizer que esperamos que estas páginas sirvam para acender a curiosidade, tanto no que diz respeito a Biologia como à Pesquisa Operacional. É justo também advertir que a abordagem é fortemente inspirada no trabalho da DIMACS que há pelo menos 3 anos em reunindo professores da High School para atualização na área de Bioinformática. Esse trabalho sucede um projeto que já dura mais de 10 anos, também voltado para professores para difusão da Teoria de Grafos. Pude constatar que o trabalho lá apresentado fazia referência constante ao trabalho de João Meidanis e João Carlos Setúbal da Universidade de Campinas (de 1994 – depois editado em inglês). Recomendo esse texto por sua acessibilidade e completude. Enfim, espero que essa introdução seja útil e agradável. Críticas (construtivas) são, como sempre, bem vindas. Samuel Jurkiewicz – Programa de Engenharia de Produção – COPPE/UFRJ Departamento de Engenharia de Produção – Politécnica/UFRJ [email protected] XXXVIII SBPO [ 2482 ] XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO Introdução – Noções (muito) básicas O que é DNA ? DNA ( Ácido desoxiribonucléico) é o material genético da maioria dos organismos vivos. Cada cromossomo é na verdade uma molécula extremamente longa de DNA. Os blocos de construção química do DNA são nucleotídeos. Um nucleotídeo consiste de uma molécula de açúcar e uma de fosfato ligados a uma das quatro bases de DNA: Timina(T), Adenina(A), Guanina(G) e Citosina(C). O DNA de uma célula humana mede (desenrolado) cerca 1,5 m de comprimento, isto é, ele é cerca de 100 000 maior do que a própria célula. A sua forma característica é de uma dupla hélice, como se fosse uma longuíssima escada retorcida para a direita. O DNA de uma molécula humana contém cerca de 3 000 000 de nucleotídeos. Apesar de seu comprimento, o DNA é uma molécula relativamente simples. Cada lado da escada consiste de um arranjo linear de unidades (letras) A,G,T e C. Esses arranjos são aos pares, isto é, os pares que formam os degraus são sempre da forma A-T ou G-C. Por isso podemos tratar a dupla hélice como uma única seqüência: se de um lado tivermos CATTCG do outro teremos GTAAGC. O que faz o DNA ? Se o ser humano fosse uma casa, os tijolos e cimento seriam as proteínas. Além disso, algumas proteínas são catalisadores, provocam e aceleram reações. O corpo humano produz milhares de proteínas diferentes, todas codificadas pelo DNA. As proteínas constituem-se de cadeias de pequenos blocos químicos chamados aminoácidos. Existem 20 tipos diferentes de aminoácidos, cada um com propriedades únicas. As propriedades químicas de uma proteína são determinadas não apenas por sua composição de aminoácidos mas pelo modo como a cadeia de aminoácidos é curvada e dobrada em uma forma tridimensional complexa e característica. A fileira do DNA é realmente uma fileira de palavras de letras, cada palavra sendo o código de um determinado aminoácido. Assim, a seqüência ACGTTCCGATCGGTA deve ser lida ACG TTC CGA TCG GTA. XXXVIII SBPO [ 2483 ] XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO O esquema abaixo mostra que aminoácidos são codificados por qual palavra de 3 letras. Primeira posição Segunda posição G Glicina Glicina G Glicina Glicina A C T A Ácido Glutâmico Ácido Glutâmico Ácido Aspártico Ácido Aspártico C T Alanina Valina Alanina Valina Alanina Valina Alanina Valina Arginina Lisina Treonina Arginina Serina Lisina Asparagina Serina Asparagina Treonina Treonina Treonina Arginina Arginina Arginina Arginina Glutamina Glutamina Histidina Histidina Tripofano PARADA Cisteína Cisteína Metionina (INÍCIO) Isoleucina Isoleucina Terceira posição G A C T G A C Isoleucina T Leucina Leucina Leucina Leucina Leucina G A C T PARADA Prolina Prolina Prolina Prolina Serina G PARADA Tirosina Tirosina Serina Serina Serina Leucina Fenilanina Fenilanina A C T As informações a seguir foram encontradas em [3] A seqüência de aminoácidos que compõem uma proteína é o que se chama de estrutura primária desta molécula. A estrutura secundária é dada por interações entre os aminoácidos, que podem formar hélices ou folhas planas em certos trechos da molécula. A conformação tridimensional completa, incluindo pontes de hidrogênio e ligações fracas é a estrutura ternária da proteína. Além disso, certas proteínas são formadas por mais de uma cadeia. Neste caso, a especificação de como estas sub-unidades protéicas são ligadas entre si para a formação da proteína é a sua estrutura quaternária. E o caso, por exemplo, da hemoglobina, que possui quatro sub-unidades iguais duas a duas. Proteínas são muito usadas para investigar a evolução das espécies. Isto se deve ao fato de que é comum encontrar proteínas exercendo o mesmo tipo de função em organismos distintos. Por exemplo, todos os mamíferos possuem hemoglobina, embora não seja exatamente a mesma molécula. Estudando a seqüência de aminoácidos de hemoglobinas de espécies diferentes pode-se tirar conclusões sobre sua origem. XXXVIII SBPO [ 2484 ] XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO Estruturas semelhantes (sejam proteínas ou características aparentes) em seres vivos de espécies distintas podem ser homólogas ou análogas. Dizemos que são homólogas se as estruturas originaram-se de um ancestral comum; caso contrário, serão análogas. No caso da hemoglobina em mamíferos, por exemplo, há fortes evidências de que estas proteínas sejam homólogas e não simplesmente análogas. Mesmo entre proteínas homólogas, pode haver grande diversidade na sua estrutura primária. Apesar disso, há trechos das seqüências que pouco ou nada mudam. Quando uma região de uma seqüência muda pouco de proteína para proteína dizemos que a região é conservada. As enzimas, possuem via de regra em sua estrutura tridimensional certas regiões onde os reagentes se ‘encaixam”, facilitando a reação. Estes locais são chamados de sítios ativos e são geralmente bem conservados nas diferentes versões da proteína para as diferentes espécies. Regiões altamente conservadas, sejam elas sítios ativos ou não, têm provavelmente papel fundamental na atividade da proteína. XXXVIII SBPO [ 2485 ] XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO Alinhamento de seqüências A comparação de seqüências de DNA e proteínas é uma das operações mais básicas da bioinformática. Isso não é de se admirar, uma vez que é uma das operações que os computadores podem fazer com mais eficiência. Mas isso de nada serviria se essa operação não fosse significativa. Mas ela é e isso se deve ao fato de a Natureza ser extremamente conservadora. Espécies morfologicamente diferentes guardam enorme similaridade em sua estrutura genética. Basta olhar para um cão fila e um pequinês. Mais ainda, uma característica fundamental dos seres vivos é a capacidade de se replicar; de certa forma, alguma coisa nós seres humanos temos em comum com, digamos, uma folha de tabaco. E de fato, uma parte de nosso (nós e a folha de tabaco) código genético guarda enorme similaridade. Antes de comparar as seqüências (de DNA ou de proteínas) é necessário realizar um alinhamento dessas seqüências. Parece simples: combinamos as seqüências aleatoriamente, comparamos dando uma pontuação. Fazemos isso varias vezes até encontrar a melhor pontuação possível. Essa operação, evidentemente, não é simples. Escolher alinhamentos ao acaso não nos conduzirá frequentemente a um bom resultado. Nosso problema está se parecendo cada vez mais com um problema de otimização: maximizar um valor dentro de certas características. Vamos começar a olhar para este problema com os olhos da Pesquisa Operacional. Nosso modelo inicial será o mais simples possível, a saber, olhar o alinhamento como um problema de menor caminho. Um problema simples Qual o menor caminho da casa de João até a escola 5 Armazem Casa do João 6 13 11 10 Pracinha Banca de Jornal 3 6 6 3 Quitanda 4 Cancela XXXVIII SBPO 8 Escola [ 2486 ] XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO Esse problema é resolvido pelo algoritmo de Dijkstra, apresentado em 1952. Edsger Wybe Dijkstra nasceu em Roterdan, Holanda em 1930 e morreu em 2002. Foi um cientista de computação e recebeu o Turing Award de 1972 por suas contribuições fundamentais na área de linguagens de programação. O algoritmo baseia-se na observação de que não precisamos calcular globalmente a distância para encontrar o mínimo. Uma versão desse algoritmo pode ser descrita, de maneira sucinta da seguinte maneira: A Æ vértice inicial p(x,y) Æ peso da aresta xy d(x) Æ distância de A até x • Seja d(A) = 0 • Para todos outro vértice v examine os arcos (u,v) e compute a soma: d(u) + p(u,v) e faça d(v) ser o menor desse valores. Vamos fazer um exemplo bem simples: Encontrar o menor caminho de A até B andando sempre para baixo e para a direita. 3 A 1 3 4 4 8 3 2 3 7 2 2 5 7 7 6 6 8 4 8 7 5 9 5 8 4 4 9 6 9 8 9 6 5 4 2 3 4 B XXXVIII SBPO [ 2487 ] XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento X 3 A 4 3 9 4 5 8 8 9 6 5 Y 1 12 a 15/09/06 Goiânia, GO 8 4 4 7 Z 9 6 4 8 3 9 2 7 4 6 8 7 7 2 2 5 5 3 6 2 3 4 B Qual a menor distância até X ? Qual a menor distância até Y ? Qual a menor distância até Z ? Pergunta extra: Quantos caminhos mínimos existem entre A e B ? Alinhamento Global Suponha que queremos alinhar duas seqüências AGCGT e CAGT. Um alinhamento consistirá em escrever estas seqüências em ordem, de forma que elas coincidam. Como elas têm diferentes tamanhos um espaço (gap) pode ser inserido. Algumas possibilidades: AGCGT -CAGT AGCGT CAGT- AGCGT C-AGT AGCG-T C--AGT AGCGT CA-GT -AGCGT C--AGT AGCGT CAG-T AGC-GT --CAGT Qual o melhor alinhamento? Esta pergunta só faz sentido se atender aos critérios dos biólogos; isso é feito através de um critério de pontuação para avaliação da qualidade do alinhamento. Usaremos os gaps para obter o máximo de coincidência possível nos alinhamentos. GGA---GTCCACCTGTGAAACAATA ACGCGCGTCCTCCTGTGA--CAATT Um exemplo de critério: XXXVIII SBPO [ 2488 ] XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO +2 Æ Para cada alinhamento de letras iguais -1 Æ Para cada alinhamento de letras diferentes -2 Æ Para cada alinhamento de letra com um gap -500 Æ Para cada alinhamento de gap com gap A motivação dessa pontuação é clara. Gaps só devem ser utilizados com economia. Calculando a pontuação de cada um dos alinhamentos (deixado ao leitor) : Digamos que eu queira alinhar ABCDEFG e TUVWXYZ. Podemos começar: • Alinhando A com T • Alinhando A com • Alinhando - com T A segunda escolha pode ser: Enfim, para k letras teremos 3k maneiras de alinhar. Mesmo numa seqüência modesta isso geraria um custo proibitivo. Pediremos socorro ao nosso algoritmo de menor distância. XXXVIII SBPO [ 2489 ] XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO Nosso grafo de distâncias Como funciona ? Sempre para a direita e para baixo, só que aceitamos também a diagonal. Para a direita significa letra de cima alinhada com gap. Para a esquerda significa gap alinhado com letra da esquerda. Na diagonal significa letra de cima alinhada com letra da esquerda. O diagrama acima corresponde ao alinhamento AC-CA—GT— --GGCCA-TTA Num exemplo menor, podemos ver o mecanismo de assinalar as distâncias a nosso grafo: Enfim, um alinhamento ótimo será um caminho mínimo. Exemplo XXXVIII SBPO [ 2490 ] XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO Nos dá: E os caminhos ótimos são: XXXVIII SBPO [ 2491 ] XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO Temos vários caminhos ótimos. Para efeito de algoritmo podemos privilegiar a fronteira direita, preferindo fazer o "caminho de volta" principalmente para cima, depois em diagonal e em último caso para a esquerda; mas essa escolha é arbitrária. Alinhamento semi-global Agora que já temos um modelo de algoritmo básico, podemos começar a melhorálo. É natural imaginar que é melhor que os gaps se concentrem nas extremidades, mesmo que a pontuação básica indique outro alinhamento. Isso significa: • Não penalizar gaps no começo da seqüência 1 • Não penalizar gaps no começo da seqüência 2 • Não penalizar gaps no fim da seqüência 1 • Não penalizar gaps no fim da seqüência 2 • Qualquer combinação dessas opções Qual o reflexo no nosso algoritmo ? XXXVIII SBPO [ 2492 ] XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO No exemplo acima não penalizamos os gaps no início entradas na seqüência 2. Se quisermos não penalizar os gaps no final da seqüência 1 escolhemos a melhor entrada da última coluna (no caso 2). Nossa melhor pontuação indicaria então: ACCGG----CGATTT XXXVIII SBPO [ 2493 ] XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO Alinhamento com penalidade menor para sequencias de gaps É um fato da Biologia que as mutações que acrescentam ou retiram nucleotídeos são mais raras do que mutações que trocam nucleotídeos. Isso justifica a maior penalização dos gaps do que da diferença de letras no alinhamento. Mas também é observado que a presença de gaps é menos significativa do que o tamanho do gap. Isso sugere uma penalização maior para o primeiro gap de uma seqüência de gaps do que para os seguintes. Como isso afetará o algoritmo? Considere a seguinte penalização: +1 Æ Para cada alinhamento de letras iguais -1 Æ Para cada alinhamento de letras diferentes -3 Æ Para cada alinhamento de letra com um primeiro gap -1 Æ Para cada alinhamento de letra com os gaps seguintes -500 Æ Para cada alinhamento de gap com gap Nosso esquema ficará mais complicado. Cada célula terá quatro compartimentos: Seq 1 letra Seq 1 gap Seq 2 letra -a- Seq 2 letra -b- Seq 1 letra Seq 2 gap -c- As setas indicam de onde virão os valores para os compartimentos. A seguir um exemplo; observe que nas entradas colocamos um número negativo "grande" (-99) a título de infinito. XXXVIII SBPO [ 2494 ] XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO Alinhamento local (Algoritmo Smith-Waterman) Esse problema também aparece de forma natural. Dadas duas seqüências ATGCTGACACGTA ACTACGACACAC Selecionar uma subseqüência de cada uma tal que a pontuação do alinhamento seja a maior possível. Dessa vez voltamos ao algoritmo básico, com a diferença que, sempre que o valor de uma casa se tornar negativo, fazemos ele ficar igual a 0. Ao refazer o caminho, procuramos a seqüência mais longa, sem incluir a casa com o 0. Um exemplo simples: XXXVIII SBPO [ 2495 ] XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO E um mais complexo: Algoritmo BLAST O algoritmo BLAST – Basic Alignment Search Tool é usado para procurar em grandes bases de dados seqüências com bom alinhamento local com uma dada seqüência. O BLAST procura pequenas seqüências e depois tenta expandi-las. Informação do site do BLAST: A procura inicial é feita para uma palavra de tamanho W que pontue no mínimo T quando comparada à seqüência dada, usando uma matriz de substituição. A palavra é então estendida nas duas direções gerando alinhamentos que não excedam um valor S. Os parâmetros determinam a sensibilidade e a velocidade da busca. XXXVIII SBPO [ 2496 ] XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO Do mesmo modi como tratamos os nucleotídeos, podemos tratar as proteínas. A lista de proteínas: 1 2 3 A C D Ala Cys Asp Alanina Cisteína Ácido Aspártico 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 E F G H I K L M N P Q R S T V W Y Glu Phe Gly His Ile Lys Leu Met Asn Pro Gln Arg Ser Thr Val Trp Tyr Ácido Aspártico Fenilanina Glicina Histidina Isoleucina Lisina Leucina Metionina Aspargina Prolina Glutamina Arginina Serina Treonina Valina Tripofano Tirosina Matriz de substituição – Matriz usada pelos biólogos para a pontuação de alinhamentos. Baseia-se na freqüência observada de mutações entre proteínas. Abaixo temos uma porção da matriz BLOSUM62 XXXVIII SBPO [ 2497 ] XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO Matrizes PAM PAM é acrônimo de "Point Accepted Mutation" ou "Percent Accepted Mutation". Ela se refere a situações em que 1% dos amino ácidos numa seqüência protéica foram mutados. Por simplicidade usaremos uma matriz de substituição fictícia reduzida, mostrando a probabilidade de transição de uma proteína para outra (ou permanência) durante um certo período de tempo. M- A C D E A 0,99 0,002 0,003 0,005 C 0,002 0,99 0,005 0,003 D 0,003 0,005 0,99 0,002 E 0,005 0,003 0,002 0,99 1 Observamos que se trata de uma matriz estocástica e regular. A matriz PAM-1 é uma matriz usada para pontuar alinhamentos entre seqüências de proteínas. Ela é calculada tomando cada entrada de M-1 e: • Multiplicando por 4 • Tomando o log na base 10 • Multiplicando por 10 • Arredondando para o inteiro mais próximo. PAM-1 A C D E A 6 -21 -19 -17 C -21 6 -17 -19 D -19 -17 6 -21 E -17 -19 -21 6 A matriz PAM-2 é obtida a partir de M-2, a matriz que dá a as probabilidades de transição depois de 2 unidades de tempo. Portanto M-2 = (M-1)2. XXXVIII SBPO [ 2498 ] XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO PAM-2 A C D E A 6 -18 -16 -14 C -18 6 -14 -16 D -16 -14 6 -18 E -14 -16 -18 6 PAM-250 A C D E A 5 -6 -5 -3 C -6 5 -3 -5 D -5 -3 5 -6 E -3 -5 -6 5 Como se originam de matrizes regulares, as potências de M-1 tendem para um limite e é natural que cada vez menos as diferenças de proteínas sejam menos penalizadas. XXXVIII SBPO [ 2499 ] XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO Reconstruindo Filogenias Árvores qualitativas Segundo o Dicionário Aurélio Filogenia é a história evolucionária das espécies. A estrutura universal para representar a filogenia são as árvores. Uma árvore filogenética é, portanto, uma representação gráfica da filogenia. Digamos que queremos determinar a filogenia de bois, porcos, ratos, camundongos e humanos. Uma pessoa distraída poderia fazer uma árvore como essa: Não parece sensato juntar ratos e porcos de um lado e camundongos e homens do outro. Este exemplo é exagerado, mas podemos imaginar diferenças mais sutis. Até o começo do século, essa classificação era feita cm base na aparência ou em características visíveis ou observáveis. Hoje podemos começar observando proteínas de funcionalidade comum. Abaixo temos uma comparação entre proteínas específicas desses organismos. XXXVIII SBPO [ 2500 ] XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO Sem maiores exames constatamos que há suficientes semelhanças para que imaginemos que há ancestrais comuns. Gostaríamos de reconstruir a filogenia dessas criaturas. Será que, do estudo dessas partes do DNA, poderemos inferir a história evolucionária das espécies envolvidas? Tecnicamente, não, pois uma seqüência pequena como essa não é suficiente. Mas é razoável pensar que, com um número maior de seqüências estudadas poderemos tentar reconstruir as bifurcações da evolução. Para isso estamos supondo que as mudanças se processam em uma única direção (as mutações não formam ciclos) e que os galhos se dão unicamente por bifurcação. Vamos começar alinhando (no exemplo temos também galinhas, ovelhas e lebres). Um método simples é o UPGMA – Unweighted Pair Group Method with Arithmetic Mean. Como o nome diz, será usada a media aritmética. Começamos usando uma matriz de distância, usando por exemplo a pontuação dos alinhamentos, calculada de forma percentual. Procuramos os organismos que tem menor diferença e substituímos por uma única linha/coluna, e sua distância pela média aritmética das distâncias. XXXVIII SBPO [ 2501 ] XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO Prosseguimos e construímos uma árvore mais coerente: Outro tipo de árvore é a Árvore de PHYLIP – as distâncias reproduzem a distância entre os alinhamentos: Será que sempre poderemos fazer uma árvore assim? XXXVIII SBPO [ 2502 ] XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO Um método para a construção dessas árvores, um pouco mais complexa, é baseada no método de Studier e Kepler. Ai está a matriz, agora com as somas para cada organismo. 1. Computamos Si,j para cada par i,j de espécies: 2. Selecionamos o par que nos dá a menor quantidade e ligamos esse par na árvore; substituímos os dois elementos por um único u na matriz. 3. Refazemos a matriz usando a fórmula de recalculo de peso: E calculamos o tamanho dos galhos da árvore: 4. Iteramos até o final. No nosso exemplo: XXXVIII SBPO [ 2503 ] XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO Calculando o valor de Si,j O valor escolhido é Rato-Camundongo. Calculamos as distâncias: A nova matriz de distâncias é: E a nova matriz Si,j: Há um empate, escolhemos aleatoriamente Boi-Porco. Calculamos os L´s. Nova matriz de distância XXXVIII SBPO [ 2504 ] XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO Nova matriz Si,j E finalmente: e A árvore construída: XXXVIII SBPO [ 2505 ] XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO Árvore de Sufixos Suponha que você tem uma seqüência como ACGCGCAGGCA e queremos encontrar sua ocorrência em uma seqüência de 3 000 000 000 de letras. Quanto tempo leva? Sem pré-processamento isso levaria muito tempo, mas com um tratamento anterior isso pode ser bem facilitado. Na verdade isso exigiria 11 passos (o comprimento da cadeia a estudar). Claro que pré-processar leva muito tempo, mas algumas seqüências são muito requisitadas. Por exemplo, pré-processar o genoma humano pode valer a pena. A estrutura que faz esse trabalho é a árvore de sufixos. De fato, dada uma seqüência S, de tamanho |S| e pequenas seqüências Q1, Q2 ,... de tamanho |Qj| , se préprocessarmos S a busca de ocorrência de Qj nos tom |Qj| passos. Árvores de sufixo são largamente estudadas em Ciência da Computação o que só faz aumentar sua praticidade para a Bioinformática. Um exemplo de árvore de sufixo – ATGCCAGCCACTTG Exemplo e utilidade: 1) Encontrar todas as ocorrências da seqüência CCA. • Comece na raiz • Procure o último galho que contém CCA, o que é fácil, basta seguir: CÆCÆA 2) Encontre todas as ocorrências da letra T Como se constrói a árvore? Construindo. Começa-se pela seqüência mais longa, isto é, a seqüência completa (acrescentando um símbolo de terminação $). Corta-se a primeira letra. Aloca-se o sufixo produzido aproveitando os prefixos existentes. Exemplo: Se já colocamos AGCCACTTG e queremos colocar ACTTG a bifurcação produzida é: AGCCACTTG$ CTTG$ XXXVIII SBPO 5 10 [ 2506 ] XXXVIII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL Pesquisa Operacional na Sociedade: Educação, Meio Ambiente e Desenvolvimento 12 a 15/09/06 Goiânia, GO Bibliografia [1] Brookes, M.; Fique por dentro da Genética; Editora Cosac & Naif, 2001 [2] Gibas,C.; Jambeck,P.; Desenvolvendo a Bioinformática; Editora Campus, 2001. [3] Meidanis, J.; Setúbal,J.C.; Uma introdução à Biologia Computacional UFPE,1994. [4] Silverstein, A. & V.; The Code of Life; Ed. Dover, 2004. [5] 2006 - The DIMACS Bio-Math Connect Institute – sítio internet http://dimacs.rutgers.edu/dci/2006/ - consultado em 1/9/2006 XXXVIII SBPO [ 2507 ]