• Nenhum resultado encontrado

ALGORITMOS DE PROGRAMAÇÃO DINÂMICA USADOS EM MODELOS MARKOVIANOS OCULTOS (HMMs)

N/A
N/A
Protected

Academic year: 2021

Share "ALGORITMOS DE PROGRAMAÇÃO DINÂMICA USADOS EM MODELOS MARKOVIANOS OCULTOS (HMMs)"

Copied!
252
0
0

Texto

(1)

INPE-13052-TDI/1021

ALGORITMOS DE PROGRAMAÇÃO DINÂMICA USADOS EM MODELOS MARKOVIANOS OCULTOS (HMMs)

José Olimpio Ferreira

Tese de Doutorado do Curso de Pós-Graduação em Computação Aplicada, orientada pelo Dr. Solon Venâncio de Carvalho, aprovada em 29 de março de 2004.

INPE São José dos Campos

2005

(2)

519.8

FERREIRA, J. O.

Algoritmos de programação dinâmica usados em modelos markovianos ocultos (HMMs) / J. O. Ferreira. – São José dos Campos: INPE, 2004.

250p. – (INPE-13052-TDI/1021).

1.Processos estocásticos. 2.Modelos markovianos.

3.Progrramação dinâmica. 4.Modelos Markovianos Ocultos (HMMs). 5.Biologia computacional. 6.Bioinformática.

I.Título.

(3)
(4)
(5)

O engajamento na ciência (empregando a palavra na acepção geral alemã Wissenschaft) não reside na discordância sobre fatos verificados, mas sobre sua

escolha e combinação, e sobre o que se pode inferir a partir dos mesmos.

ERIC HOBSBAWN (1917-), historiador, em “Sobre Historia”.

E para que executar projetos, já que o projeto é, nele mesmo, um prazer suficiente?

CHARLES BAUDELAIRE (1821-1867), poeta francês, em “Pequenos poemas em

prosa”.

(6)
(7)

Dedico carinhosamente esta dissertação

a meus pais MANOEL e ELIZENA (g)

a meus filhos VITOR, VINICIUS e NATÁLIA

a minha esposa MARIA das GRAÇAS

e àqueles que me incentivaram e apoiaram.

(8)
(9)

AGRADECIMENTOS

Agradeço a todas pessoas que me ajudaram a vencer mais essa etapa da vida.

Agradeço à Fundação de Aperfeiçoamento de Pessoal de Nível Superior - CAPES, pelo auxilio financeiro.

Agradeço so Instituto Nacional de Pesquisas Espaciais - INPE pela oportunidade de estudos e utilização de suas instalações.

Agradeço aos professores do INPE pelo conhecimento compartilhado.

Agradeço à Universidade Católica de Goiás – UCG - por ter proporcionado as condições físicas e financeiras para que eu pudesse cursar o Doutorado em Computação Aplicada no Instituto Nacional de Pesquisas Espaciais – INPE.

Agradeço ao meu orientador Dr. Solon Venâncio de Carvalho pela sua imensa paciência e valioso incentivo na realização desta pesquisa e na confecção deste relatório.

Agradeço ao apoio de minha esposa Maria das Graças, de minha filha Natália e dos meus filhos Vitor e Vinicius que conviveram durante esse período com a minha ausência, com as minhas angústias, ansiedades e o meu nervosismo.

Agradeço a meus pais por sempre acreditarem na importância do estudo.

Agradeço, também, aos amigos e colegas que me apoiaram e incentivaram a fazer esse

curso de Doutorado em Computação Aplicada, e que me aconselharam nos momentos

mais delicados.

(10)
(11)

RESUMO

Esta tese trata dos algoritmos de programação dinâmica que são usados nos Modelos Markovianos Ocultos (HMMs), perfis-HMMs, aplicados no estudo de seqüências biológicas no campo da Bioinformática. O foco é a investigação de técnicas (métodos ou paradigmas) de economia de espaço que proporcionem a melhor economia de tempo, e que sejam adequadas para a utilização no cálculo de medidas de interesse dos HMMs.

Explorou-se a hipótese da utilização da estratégia de checkpoints em conjunto com o

princípio D&C como solução consistente para o problema de complexidade de espaço

versus complexidade de tempo dos algoritmos de programação dinâmica utilizados no

cálculo de medidas de interesse em perfis-HMMs. Propõe-se um algoritmo denominado

algoritmo de programação dinâmica com L-níveis de checkpoints bidimensionais que

pode ser usado em conjunto com procedimentos de retrocedimento parcial ou completo,

sobre a matriz de programação dinâmica. A versão com retrocedimento parcial desse

algoritmo proposto, denominada algoritmo de Viterbi com L-níveis de checkpoints

bidimensionais, com partição fixa de memória e retrocedimento restrito, foi superior em

desempenho, tanto na análise teórica, quanto nos testes de desempenho a posteriori, ao

algoritmo de Viterbi com L-níveis de checkpoints por diagonais, com partição móvel de

memória e retrocedimento restrito, considerado o estado da arte entre esses algoritmos

de programação dinâmica com a técnica de checkpoints. O desempenho desse algoritmo

proposto foi superior, nos testes a posteriori, inclusive ao próprio algoritmo de Viterbi

básico. Na simulação dos requerimentos de memória, verificou-se que os requerimentos

de memória desse algoritmo proposto são uma fração decrescente dos requerimentos de

memória do algorimo de Viterbi básico, para instâncias crescentes do problema,

indicando um comportamento assintótico dos requerimentos de memória muito

favorável para a computação de instâncias do problema que são intratáveis pelo

algoritmo de Viterbi básico.

(12)
(13)

DYNAMIC PROGRAMMING ALGORITHMS USED IN HIDDEN MARKOV MODELS (HMMs)

ABSTRACT

This thesis is about dynamic programming algorithms used in Hidden Markov Models

(HMMs) -HMM profiles - applied to biological sequence studies in bioinformatics. Its

investigation focuses on space economy techniques (methods or paradigms), that

provide best time-saving solutions, which would be adequate for use in calculating

HMM interest measures. The checkpoints paradigm use hypothesis together with the

D&C strategy, as a consistent solution for the problem of space versus time complexity

in dynamic programming algorithms which are used in the calculation of measures of

interest to the HMM profiles, is explored. An algorithm denominated dynamic

programming algorithm with L-levels of bidimensional checkpoints which can be used

together with partial or complete traceback procedures through to the dynamic

programming matrix is proposed. The version with partial traceback denominated the

Viterbi algorithm with L-levels of bidimensional checkpoints with fixed memory

partition and restricted traceback was superior in performance to the Viterbi algorithm

with L-levels of diagonals checkpoints with mobile memory partition and restricted

traceback, not only in the theoretical analysis but also in the tests a posteriori. The latter

is considered state of the art among the dynamic programming algorithms with the

checkpoints technique. In the tests a posteriori, the proposed algorithm has been proved

to be superior in performance even to the basic Viterbi algorithm. In the memory

requirement simulation, the memory requirements of the new algorithms have been

shown to be a decreasing fraction of those of the Viterbi basic algorithm for growing

instances of the problem, indicating an asymptotic behavior of memory requeriments,

very favorable to the computation of instances of the problem which are intractable by

the basic Viterbi algorithm.

(14)
(15)

SUMÁRIO

Pág.

LISTA DE FIGURAS ...17

LISTA DE TABELAS ...19

LISTA DE SÍMBOLOS ...21

LISTA DE SIGLAS E ABREVIATURAS ...25

CAPÍTULO 1 INTRODUÇÃO...27

1.1 Introdução ...27

1.2 O Problema...38

1.3 Objetivos e Hipóteses ...40

1.4 Justificativa...41

CAPÍTULO 2 CONCEITOS BÁSICOS ...47

2.1 Introdução ...47

2.2 Modelos Markovianos Ocultos (HMMs) ...47

2.2.1 Definições ...47

2.2.2 Os Três Problemas Básicos dos HMMs ...49

2.2.2.1 Soluções para o Problema 1 ...49

2.2.2.2 Soluções para o Problema 2 ...51

2.2.2.3 Soluções para o Problema 3 ...55

2.2.3 Modelo de Atribuição de Escores e Problemas Numéricos ... ...57

2.2.4 Perfis-HMMs para Seqüências Biológicas ...60

2.3 Medidas de Complexidade de Algoritmos ...68

2.3.1 Definição de Algoritmo ...68

(16)

2.3.2 Análise de Desempenho de Algoritmos e Complexidade de Problemas ...70

2.3.2.1 Análise Assintótica...75

2.4 Algoritmos de Programação Dinâmica...78

2.4.1 Estratégia de Programação Dinâmica...78

2.4.2 Métodos de Programação Dinâmica e HMMS...79

CAPÍTULO 3 ALGORITMOS DE PROGRAMAÇÃO DINÂMICA COM CHECKPOINTS USADOS EM PERFIS-HMMS...83

3.1 Introdução ...83

3.2 Revisão da Literatura...84

3.3 Algoritmos de Programação Dinâmica com Checkpoints...102

3.3.1 Algoritmo A: 2-Níveis com Partição Fixa...105

3.3.2 Algoritmo B: 2-Níveis com Partição Móvel ...106

3.3.3 Algoritmo C: 3-Níveis com Partição Móvel ...108

3.3.4 Algoritmo D: L-Níveis com Partição Móvel ...109

3.3.5 Algoritmo E: Viterbi com L-Níveis de Checkpoints por Diagonais com Retrocedimento Restrito ...112

3.3.6 Disposição Ótima de Checkpoints por Linhas (Colunas) e o Algoritmo Melhorado ...118

3.3.6.1 Algoritmo Melhorado ...119

3.3.6.2 Algoritmo Ótimo ...120

3.3.7 Disposição Ótima de Checkpoints por Diagonais e o Algoritmo de Viterbi Melhorado ...121

CAPÍTULO 4 ALGORITMOS PROPOSTOS ...123

4.1 Introdução ...123

4.2 Algoritmos de L-Níveis de Checkpoints Bidimensionais...124

(17)

4.2.1 Algoritmo F: 2-Níveis de Checkpoints Bidimensionais e Partição Fixa de

Memória ...130

4.2.2 Algoritmo G: 3-Níveis de Checkpoints Bidimensionais e Partição Fixa de Memória ...132

4.2.3 Algoritmo H: L-Níveis de Checkpoints Bidimensionais e Partição Fixa de Memória ...135

4.2.4 Algoritmo J: Viterbi com L-Níveis de Checkpoints Bidimensionais e Partição Fixa de Memória...136

CAPÍTULO 5 EXPERIMENTAÇÃO E ANÁLISE DOS RESULTADOS ...145

5.1 Introdução ...145

5.2 Metodologia de Experimentação ...145

5.3 Implementação dos Algoritmos e Realização dos Experimentos ...150

5.4 Apresentação e Análise dos Resultados da Experimentação...161

CAPÍTULO 6 CONCLUSÕES E COMENTÁRIOS...185

REFERÊNCIAS BIBLIOGRÁFICAS ...201

BIBLIOGRAFIA COMPLEMENTAR …...207

APÊNDICE 1 - ALGORITMO DE VITERBI BÁSICO ...209

APÊNDICE 2 - ALGORITMO DE VITERBI COM DE 2-NÍVEIS CHECKPOINTS POR LINHAS E PARTICIONAMENTO MÓVEL DE MEMÓRIA.217 APÊNDICE 3 - ALGORITMO DE VITERBI COM 2-NÍVEIS DE CHECKPOINTS POR DIAGONAIS, COM PARTICIONAMENTO MÓVEL DE MEMÓRIA E RETROCEDIMENTO RESTRITO...227

APÊNDICE 4 - ALGORITMO DE VITERBI COM 2-NÍVEIS DE CHECKPOINTS BIDIMENSIONAIS, PARTICIONAMENTO FIXO DE MEMÓRIA E RETROCEDIMENTO RESTRITO ...239

GLOSSÁRIO ...249

(18)
(19)

LISTA DE FIGURAS

2.1 - HMM discreto com três estados e 5 símbolos de observação... 49 2.2 - Topologia de um perfil-HMM com 4 módulos padrões (Hughey e Krogh, 1996). 62 2.3 – Taxa de crescimento do tempo de computação de funções típicas. ... 78 4.1 - Particionamento A: L-níveis de checkpoints completos e particionamento fixo de

memória... 125 4.2 - Particionamento B: L-níveis de checkpoints completos e particionamento fixo de

memória... 125 4.3 - Particionamento C: L-níveis de checkpoints completos e particionamento móvel de memória... 126 4.4 - Particionamento D: L-níveis de checkpoints parciais e particionamento fixo de

memória... 126 4.5 - Particionamento E: L-níveis de checkpoints parciais e particionamento móvel de

memória... 127 4.6 - Particionamento F: L-níveis de checkpoints parciais e particionamento fixo de

memória... 127 4.7 - Particionamento G: L-níveis de checkpoints parciais e particionamento móvel de

memória... 128 5.1 - Distribuição do tamanho das seqüências de proteínas – adaptada de figura do

Swiss-Prot group (2004)... 146 5.2 - Modelo Nulo, R, totalmente probabilístico. ... 153 5.3 – Tempos de CPU dos algoritmos Viterbi para alinhamento de seqüências de

aminoácidos a um HMM com 2000 nós... 168 5.4 – Tempos totais de execução dos algoritmos de Viterbi para alinhamentos de

seqüências de aminoácidos a um HMM com 2000 nós... 169 5.5 – Tempos de CPU dos algoritmos de Viterbi para alinhamentos de seqüências de

aminoácidos a um HMM com 2000 nós (eixos logarítmicos)... 170 5.6 – Tempos totais de execução dos algoritmos de Viterbi para alinhamentos de

seqüências de aminoácidos a um HMM com 2000 nós (eixos logarítmicos). .... 171 5.7 – Tempos de CPU dos algoritmos Viterbi para alinhamento de seqüências de

aminoácidos a um HMM com 2000 nós... 172

(20)

5.8 – Tempos totais de execução dos algoritmos Viterbi para alinhamento de seqüências de aminoácidos a um HMM com 2000 nós... 173 5.9 – Tempos de CPU para efetuar 4 execuções de computações de programação

dinâmica de seqüências de aminoácidos contra um HMM com 500 nós – extraído da Figura 3 de Tarnas e Hughey (1998). ... 174 5.10 – Tempos totais de execução para efetuar 4 execuções de computações de

programação dinâmica de seqüências de aminoácidos contra um HMM com 500 nós – extraída da Figura 3 de Tarnas e Hughey (1998)... 175 5.11 – Tempos de CPU dos algoritmos Viterbi para alinhamento de seqüências de

aminoácidos a um HMM com 368 nós... 177 5.12 – Tempos totais de execução dos algoritmos Viterbi para alinhamento de

seqüências de aminoácidos a um HMM com 368 nós... 178

(21)

LISTA DE TABELAS

2.1 - Taxas de Crescimento Típicas...77 3.1 - Resumo do Desempenho de Alguns Algoritmos de Espaço Linear para o Problema LCS ...90 5.1 - Códigos dos 20 Aminoácidos, com Uma e Três Letras. ...152 5.2 - Freqüências Dayhoff de Ocorrências de Aminoácidos do Banco de Dados

Swissprot 34 ...153 5.3 - Resultados das Estimativas dos Requerimentos de Memória para os Algoritmos de Viterbi (Valores em Mb)...163 5.4 - Resultados das Estimativas Normalizadas dos Requerimentos de Memória para os

Algoritmos de Viterbi (Básico = 1). ...164

5.5 - Resultados dos Tempos de CPU e dos Tempos Totais de Execução (Wall Time) do

Primeiro Experimento para os Algoritmos de Viterbi (Tempos em Segundos). .165

5.6 - Resultados dos Tempos de CPU e dos Tempos Totais de Execução (Wall Time) do

Segundo Experimento para os Algoritmos de Viterbi (Tempos em Segundos)..167

5.7 - Resultados dos Tempos de CPU e dos Tempos Totais de Execução (Wall Time) do

Terceiro Experimento para os Algoritmos de Viterbi (Tempos em Segundos). .176

(22)
(23)

LISTA DE SÍMBOLOS

A - Matriz de probabilidades de transição de estados

A - Matriz de estimativas das probabilidades de transição de estados

(A

ij

) - Número de vezes que cada transição ocorre no conjunto de observações de treinamento

a

ij

- Probabilidade de transição do estado i para o estado j

a

ij

- Estimativa da probabilidade de transição do estado i para o estado j b

t

(i) - Variável backward, definida como a probabilidade de um certo sufixo

até um determinado estado, dado o modelo λ

( )

R n

C ,

- Quantidade mínima de computações de linhas da matriz de PD ou o custo de computar n linhas da matriz de PD com R linhas de memória c - Distância entre dois checkpoints sucessivos

D

j

- O j-ésimo estado D (delete)

d - Número de pares de pontos concordantes + indels, ou valor do escore E - Matriz de probabilidades de emissão de símbolos

E - Matriz de estimativas das probabilidades de emissão de símbolos (E

i

(k)) - Número de vezes que cada emissão ocorre no conjunto de observações

de treinamento

e

i

- Estimativa da probabilidade de emissão do símbolo k no estado j e

j

(k) - Probabilidade de emissão do símbolo k no estado j

) (t

FjD

- Escore forward em log-odds dos caminhos terminando com O

i

sendo emitido pelo estado D

j

) (t

FjI

- Escore forward em log-odds dos caminhos terminando com O

i

sendo emitido pelo estado I

j

) (t

FjM

- Escore forward em log-odds dos caminhos terminando com O

i

sendo emitido pelo estado M

j

f

t

(i) - Variável forward, definida como a probabilidade de um certo prefixo até um determinado estado, dado o modelo λ

G(v

k

|O) - Probabilidade a posteriori do símbolo v

k

vir de um estado num conjunto especificado

I

j

- O j-ésimo estado I (insert)

(24)

K - Número de símbolos de um alfabeto discreto e finito L - Número de níveis de checkpoints

l - Operação elementar

M

j

- O j-ésimo estado M (match)

m - Comprimento de uma dada string ou seqüência de observações N - Número de estados

n - Comprimento do HMM ou de uma dada string ou seqüência de observações

O - Seqüência de observações

O(n) - Notação big-O para comparação do crescimento assintótico de funções o(n) - Notação little-o para comparação do crescimento assintótico de funções P(O/λ) - Probabilidade de ocorrência de uma certa seqüência de observações O

dado o modelo λ p - Tamanho da LCS

Q - Seqüência ou caminho de Estados de um HMM Q

*

- Caminho de estados mais provável

q

t

- Processo estocástico que indica o estado do modelo no instante t q - Número de pontos concordantes dominantes

R - Número de linhas (colunas ou diagonais) da matriz de PD que podem ser armazenadas como checkpoints

R

bd

- Linhas de memória de checkpoints bidimensionais

R

cp

- Linhas de memória R destinadas a armazenar os checkpoints

R

tb

- Linhas de memória R destinadas ao cálculo de seções da matriz de PD

( )

R

rL

- Número máximo de linhas da matriz de PD, que podem ser computadas com o algoritmo de L-níveis

r - Número de pares de pontos concordantes

(25)

S - Conjunto de estados de um HMM S

i

- i-ésimo estado do HMM

( )

n

SL

- Espaço necessário para armazenar os checkpoints de nível L s - Tamanho do alfabeto

T - Número de épocas ou tempo

( )

n

TL

- Estimativa do tempo total gasto pelo algoritmo com L-níveis de checkpoints

( ) t

TB

Xj

- Vetor para guardar o argumento que maximiza

VjX(t)

,

X

{

D,I,M

} , para t e j

t - Instante de tempo (época)

V - Conjunto de símbolos que constitui um alfabeto discreto e finito

)

(t

VjD

- Escore Viterbi em log-odds do melhor caminho terminando com O

i

sendo emitido pelo estado D

j

) (t

VjI

- Escore Viterbi em log-odds do melhor caminho terminando com O

i

sendo emitido pelo estado I

j

) (t

VjM

- Escore Viterbi em log-odds do melhor caminho terminando com O

i

sendo emitido pelo estado M

j

v

i

- i-ésimo símbolo de um conjunto de símbolos que constitui um alfabeto discreto e finito

v

t

(i) - Variável Viterbi, definida como a mais alta pontuação (mais alta probabilidade) ao longo de um caminho até o instante t

w - Tamanho das palavras da máquina (8, 16, 32, ou 64 bits) γ

t

(i) - Probabilidade a posteriori do estado S

i

no instante t, λ - Parâmetros do modelo, também, designa o próprio modelo

λ - Estimativa dos parâmetros do modelo

π - Vetor de probabilidades para o estado inicial de um HMM

π - Vetor de estimativas das probabilidades para o estado inicial de um HMM

π

i

- Probabilidade para o estado inicial i de um HMM

π

i

- Estimativa da probabilidade para o estado inicial i de um HMM

(26)

ψ

t

(j) - Vetor para guardar, para cada t e j, o argumento que maximiza v

t

(i)

)) ( (f n

- Notação big- Ω para comparação do crescimento assintótico de funções

)) ( (f n

ω

- Notação little- ω para comparação do crescimento assintótico de funções

)) ( (f n

Θ

- Notação big- Θ para comparação do crescimento assintótico de funções Σ - Alfabeto composto pelos símbolos dos aminoácidos (proteínas)

Σ

d

- Alfabeto degenerado para as proteínas

(27)

LISTA DE SIGLAS E ABREVIATURAS ADN - Ácidos desoxirribonucléicos

ANSI - American National Standards Institute

API - Interface de programação da aplicação (application program interface) ARN - Ácidos ribonucléicos

ARNm - Ácidos ribonucléicos mensageiros bp - Pares de bases

CPU - Unidade de processamento central D&C - Dividir e conquistar

ECG - Eletrocardiograma

GCC - Coleção de compiladores da GNU

GNU - a recursive acronym for "GNU's Not Unix"

HMMpro - Pacote de propósito geral para simulação e modelagem de HMMs para a análise de seqüências biológicas

KDE - ambiente gráfico para estações Linux e Unix MLE - Estimativa de máxima verossimilhança HMM - Modelo markoviano oculto

L2 - Nível 2

LCS - Maior subseqüência comum LL - log likelihood

Mb - Mega bytes

mb - Milhões de pares de bases

MEM - Memória

(28)

ML - Máxima verossimilhança pb - Pares de bases

PC - Computador pessoal

PD - Programação dinâmica

Pfam - Banco de dados de famílias de proteinas, de alinhamentos e de HMMs (Protein families database of alignments and HMMs)

RAM - Memória de acesso aleatório (Randon Memory Access)

SAM - Sistema de modelagem e alinhamento de seqüências (Sequence Alignment and Modeling Systems)

(29)

CAPÍTULO 1 INTRODUÇÃO

1.1 Introdução

Esse trabalho trata de algoritmos de programação dinâmica que são usados em Bioinformática (ou Biologia Computacional), mais precisamente nos Modelos Markovianos Ocultos (HMMs) com topologias lineares, por exemplo nos perfis-HMMs.

O foco é a investigação de técnicas (métodos ou paradigmas) de economia de espaço, que proporcionem a melhor economia de tempo e, que sejam adequadas para a utilização no cálculo de medidas de interesse dos HMMs, mas que sejam, também, adequadas no processo de treinamento destes modelos.

Nos organismos ou seres vivos são encontradas duas famílias de macromoléculas que são especialmente estudadas, devido a sua importância no ciclo de vida destes organismos ou seres: as proteínas e os ácidos nucléicos (ácidos ribonucléicos - RNA - e ácidos desoxirribonucléicos - DNA). Essas macromoléculas são por conveniência tratadas como seqüências biológicas, que são strings de um alfabeto finito de resíduos.

A estrutura primária das proteínas são vistas como seqüências (polímeros, cadeias) compostas, geralmente, pelo encadeamento dos 20 aminoácidos. Os ácidos nucléicos são vistos como seqüências compostas, geralmente, pelo encadeamento de 4 nucleotídeos.

A principal função das moléculas ou seqüências de DNA é armazenar e transmitir a informação genética ou hereditária. Uma molécula de DNA contém vários genes, que são as unidades funcionais e físicas básicas da hereditariedade. Cada gene é uma seqüência específica de nucleotídeos que contém a informação necessária para a síntese de uma determinada proteína. As moléculas de DNA estão organizadas em estruturas que são denominadas cromossomos e o conjunto de todos os cromossomos de um ser vivo constitui o seu genoma (ou genótipo), que em princípio codifica quase toda a informação de sua biologia. Cada cromossomo é constituído por proteínas e DNA em partes aproximadamente iguais. Estima-se que o genoma humano contenha 3 bilhões de

27

(30)

pares de bases (bp) agrupados em cerca de 30.000 a 40.000 genes e, que cada cromossomo contenha entre 50 e 250 milhões de bp (mb). O genoma de outros organismos vivos como o rato tem cerca de 3 bilhões de pares de bases e as bactérias cerca de 600 mb.

As moléculas ou seqüências de RNA intervêm no processo de síntese das proteínas, através do RNA mensageiro - RNAm – e do RNA transportador - RNAt. Já as proteínas são elementos constituintes fundamentais das células e dos diversos tecidos dos seres vivos, além de participarem de diversos mecanismos celulares como: catálise de reações bioquímicas, transporte de outras moléculas, transmissão de mensagens, etc..

O estudo dos genes, da expressão gênica, da síntese protéica e das próprias proteínas provê informações sobre o crescimento, a comunicação e a organização celular, guiando-nos na elucidação e aprendizado do complexo funcionamento dos seres vivos.

Os biólogos estão interessados na função molecular que leva ao fenótipo – o conjunto de características de um indivíduo, determinado pelo seu genótipo (ou genoma) e pelo ambiente. Eles estão interessados no fluxo de informação entre o genótipo (ou genoma) e o fenótipo. Esse processo principal que transforma a informação contida no DNA genômico para os aspectos funcionais do organismo é conhecido em biologia como o dogma central da genética molecular. Resumidamente diz-se que, com a intervenção de determinados mecanismos celulares, do DNA fabrica-se RNA e deste RNA fabrica-se proteína.

1) Existe um processo de desencadeamento, tratamento e manipulação da informação contida na seqüência genômica antes que essa produza concretamente um efeito biológico. São considerados cinco passos básicos no processo de síntese protéica, nesse processo de transformação da informação contida na seqüência genômica em função. Esses passos são:

2) Transcrição da informação contida na seqüência de DNA e síntese do(s) fragmento(s) de pré-RNAm;

28

(31)

3) Splicing - Remoção dos Introns do pré-RNAm e junção dos diversos segmentos Exons produzindo o RNAm. Esse processo está presente somente nos eucariotes – organismos de mais alta ordem, como os humanos;

4) Tradução do RNAm em proteína;

5) Dobramento da proteína recém-sintetizada;

6) Função final da proteína produzida.

Essa manipulação da informação só é bem entendida para o processo de tradução. Para os processos de transcrição e splicing existe um entendimento parcial do processo bio- molecular que produz essa manipulação. Já para os processos de dobramento da proteína e função final da proteína produzida existe um entendimento precário, que está muito distante do ideal. Desta forma, dentre os vários desafios ou apostas da biologia nos dias atuais é de interesse destacar os seguintes: a elucidação e compreensão da informação genética, a cura através da modificação da informação genética, a elucidação da expressão gênica e a compreensão e identificação das funções das proteínas.

Esses desafios da biologia estão intimamente relacionados com diversos projetos do genoma de espécies animais e vegetais. O objetivo primário dos Projetos do Genoma Humano e de outros seres vivos é fazer uma série de mapas (diagramas descritivos) de cada cromossomo com resoluções crescentemente mais finas. O processo de mapeamento consiste de:

1) Dividir os cromossomos em fragmentos menores que possam ser multiplicados e caracterizados (descritos);

2) Mapeamento - ordená-los para corresponder às suas localizações respectivas nos cromossomos;

3) Determinar a seqüência de bases de cada um dos fragmentos de DNA ordenados.

29

(32)

O objetivo final da pesquisa do genoma é encontrar todos os genes na seqüência de DNA e desenvolver ferramentas para usar essa informação seja no estudo da biologia humana e medicina, seja no estudo de animais e plantas de interesse agropecuário, seja no interesse ecológico ou de preservação de espécies ameaçadas.

Para o sucesso destes projetos de elucidação do genoma de determinadas espécies é necessário um investimento continuado em ferramentas analíticas e em banco de dados novos e correntes. As ferramentas analíticas e os bancos de dados correntes precisam ser constantemente adaptados para atender a evolução das necessidades da comunidade científica. Além disso são necessárias novas ferramentas analíticas e bancos de dados novos para as atividades que se encontram em expansão – expressão gênica e análise funcional das proteínas, armazenamento e análise de dados de variação de uma dada seqüência, e modelagem de redes biológicas complexas e de interações. Esses novos métodos e tecnologias que estão revolucionando a pesquisa biológica, foram criados para responder aos desafios explícitos ou gerados no seio destes projetos. Os métodos experimentais diretos, que formam o ferramental clássico de pesquisa biológica, talvez fossem capazes de resolver os problemas apresentados por esses projetos, mas a custos impraticáveis e tempos inaceitavelmente longos, além dos problemas éticos que são colocados pela sua utilização principalmente em seres humanos.

Desta forma, têm sido desenvolvidas novas técnicas de sequenciamento (sequencing) e métodos de investigação por analogia para responder as desafios de redução de custo e de tempo, e de superação do problema ético. Esses métodos permitem tirar os princípios gerais a partir da comparação das seqüências entre si; por exemplo, determinar a função de uma proteína a partir de sua estrutura química (primária) ou física (forma).

Entretanto esses métodos e técnicas são essencialmente modelos matemáticos que necessitam ser implementados através de algoritmos que possam ser executados em computadores, devido à sua natureza iterativa e/ou à grande quantidade de processamento exigido.

Esses novos métodos e técnicas têm gerado uma quantidade crescente de informações sobre seqüências biológicas - a produção de dados do genoma cresce diariamente -, o

30

(33)

que reforça a necessidade do uso de modelos matemáticos e de métodos computacionais de análise para tratar essas informações. Mas impõe, também, a necessidade de investigação desses e de novos modelos matemáticos capazes de analisar grande quantidades de dados, bem como a investigação de técnicas computacionais que dêem suporte a esses métodos.

Dentre os novos desafios que estão sendo visualizados pelos projetos do genoma humano e de outros organismos vivos, que possivelmente serão o foco de explorações biológicas nesse século e nos vindouros, se destaca o uso desse enorme estoque de dados para explorar como o DNA, as proteínas e o ambiente se interagem para criarem sistemas de vida dinâmicos e complexos. Essas explorações englobam os seguintes estudos:

• Transcriptoma – refere-se ao genoma funcional ou genoma expresso. Análise em grande escala de RNAm para determinar quando, onde e sob que condições ocorrem a expressão dos genes;

• Proteoma – o estudo da função e da expressão das proteínas e a geração de estruturas 3-D de uma ou mais proteínas de cada família de proteínas;

• Sequenciamento – uso de métodos laboratoriais e computacionais para a aquisição da estrutura dita primária de uma dada seqüência biológica;

• Estudos knockout – são métodos experimentais que pretendem entender a função de seqüências de DNA e descobrir quais as proteínas que elas codificam. Os pesquisadores têm como estratégia a inativação de genes em organismos vivos e o monitoramento de quaisquer mudanças que poderiam revelar a função de genes específicos;

• Genoma comparativo – análise comparativa (side by side) de padrões de seqüências de DNA humanos e de organismos bem estudados, denominados modelos. Esse tipo de investigação tem revelado ser uma das mais poderosas

31

(34)

estratégias para a identificação de genes humanos e interpretação de suas funções.

Uma nova disciplina ou campo de pesquisa tem se estruturado no seio da comunidade científica internacional, para fazer face a esses desafios, como um esforço conjunto de cientistas de várias áreas de pesquisa incluindo: Biologia, Computação, Matemática, Tecnologia da Informação, Química, Física e Engenharia. Bioinformática ou Biologia Computacional são os termos forjados para esse novo campo para gerenciar e analisar os dados de seqüências biológicas, com os objetivos principais de modelagem e de entendimento de sistemas viventes ou biológicos. Desta forma a Bioinformática ligou duas ciências que vêm crescendo de forma exponencial nos últimos 20 anos, Biologia e Computação.

Nesse ponto é importante salientar que existe um choque de culturas entre estes cientistas com formação essencialmente numérica ou quantitativa (matemáticos, físicos, engenheiros e cientistas da computação) e os biólogos. Os cientistas do campo numérico ou quantitativo estão mais familiarizados com uma ciência com regras bem definidas e com uma fundamentação matemática. Os biólogos tratam com uma ciência que tem poucas regras e muitas exceções. Mas este choque tem provocado uma troca de experiência positiva entre os dois campos de pesquisa.

Os termos Biologia Computacional e Bioinformática têm sido empregados, com predominância do primeiro, a cada vez que se fala das mais recentes conquistas feitas nas áreas relacionadas ao genoma, ao proteoma e à expressão de proteínas. Embora nunca tenha existido uma definição única e precisa para os termos Biologia Computacional e Bioinformática, esses termos têm sido utilizados para se referir às questões científicas e às questões de tecnologia e infra-estrutura computacional, respectivamente. Biologia Computacional tem se referido a atividades concentradas na construção de algoritmos para tratar problemas com relevância biológica, ao estudo de sistemas moleculares naturais e artificiais, bem como aos novos paradigmas de computação baseada em DNA. Bioinformática tradicionalmente tem se referido às atividades concentradas na construção e no uso de ferramentas computacionais para a

32

(35)

análise de dados biológicos disponíveis, geralmente provenientes dos diversos projetos de genomas, a fim de elucidar processos biológicos complexos.

Entretanto, é importante salientar que essa distinção serve principalmente para realçar a área de concentração principal do estudo e, que, na prática, os dois termos são usados indistintamente. Mas o que mais se popularizou foi Bioinformática, que hoje é empregado indistintamente para ambas as designações, pois ele tem sido usado para designar tanto o que tradicionalmente se conhece por Bioinformática quanto o que historicamente era conhecido como Biologia Computacional. O uso do termo Bioinformática, no seu sentido mais amplo, parece cada vez mais convergir para a designação de uma agregação de tecnologias.

De um ponto de vista computacional as atividades inerentes à Bioinformática vão desde a construção de ferramentas para problemas biológicos específicos, utilizando teoria algorítmica, ao trabalho experimental, onde um laboratório com tubos de testes e microscópios são substituídos por um computador, com grande capacidade computacional e de armazenamento, e um disco rígido cheio de ferramentas computacionais projetadas para analisar grandes quantidades de dados biológicos para provar ou descartar uma dada hipótese. Dentre os desafios que a Bioinformática tenta dar respostas, atualmente, podem ser arrolados os seguintes questões ou problemas:

1) Filogenia – Trata-se da construção de árvores filogenéticas baseadas em observações nos organismos existentes para modelar a evolução das espécies. Os organismos que têm sido estudados até o momento apresentam similaridades suficientemente fortes nos mecanismos moleculares, que induz a suposição da existência de um ancestral comum para todos os organismos na Terra. Duas seqüências que compartilham um ancestral comum são ditas homólogas. Essas árvores podem servir como guias na comparação (alinhamento) de seqüências, permitindo medidas de similaridades biologicamente mais significativas.

2) Sequenciamento (sequencing) – Trata do uso de técnicas laboratoriais e de técnicas computacionais para a aquisição da estrutura dita primária de uma dada seqüência, geralmente de DNA.

33

(36)

3) Determinação da função e da estrutura tridimensional da proteína – Trata-se do uso de métodos e técnicas computacionais para determinar a função e a estrutura tridimensional das proteínas. Até o momento, não é possível deduzir a forma tridimensional de uma dada proteína somente a partir de sua cadeia de aminoácidos. A estrutura tridimensional fornece muito mais informações sobre a função da proteína que o simples encadeamento linear de aminoácidos (estrutura primária das proteínas). Parece ser necessário levar em conta tanto a estrutura secundária, terciária e quaternária da proteína, quanto a sua filogenia.

4) Comparação e alinhamento de seqüências – Trata-se de técnicas e métodos de análise de seqüências por analogia, em que os princípios gerais são tirados a partir da comparação das seqüências entre si. Estes métodos, que são baseados nos conceitos de homologia e similaridade, permitem:

• Estimar a diferença ou similaridade entre duas seqüências;

• Construir um alinhamento para mostrar graficamente as diferenças e similaridades das seqüências, arranjando lado-a-lado em filas os elementos concordantes, os discordantes e as lacunas;

• Verificar o grau de similaridade de uma dada seqüência a um certo conjunto de seqüências;

• Criar um modelo representativo de um dado conjunto de seqüências (família, domínio, etc.);

• Determinar a função de uma proteína (ou de uma outra dada estrutura, ou de uma família de proteínas) a partir da similaridade de suas estruturas químicas e/ou físicas;

• Buscar num banco de dados por seqüências pertencentes a uma dada família ou domínio, ou buscar por seqüências que sejam similares a um dado conjunto de seqüências.

34

(37)

Os organismos vivos evoluem através de gerações por mutação e seleção natural.

Dizemos que duas estruturas (proteínas ou ácidos nucléicos), aqui representadas por sua seqüência de resíduos, são homólogas se elas descendem de um ancestral comum. Desta forma a evolução de seqüências biológicas acumula adições, remoções e substituições de resíduos. Então a avaliação da similaridade entre duas seqüências biológicas inicia-se pela determinação de um alinhamento plausível entre elas e passa pela avaliação de sua significância (ou relevância) biológica.

A abordagem de programação dinâmica (PD) é atualmente o método mais popular para comparação e alinhamento rigoroso de seqüências de ácidos nucléicos e proteínas. Esse método fornece o resultado da comparação e encontra um alinhamento entre duas seqüências com o mais alto escore possível para vários esquemas de atribuição de escores úteis, incluindo funções afins de atribuição de escores com lacunas (affine gap scores). Praticamente todos os métodos de comparação de seqüências biológicas encontram o melhor alinhamento entre duas strings sob um determinado esquema de atribuição de escores. A relevância (ou significância) biológica de um alinhamento está intimamente relacionada ao esquema de atribuição de escores adotado. Além da utilização da PD em métodos de comparação e/ou alinhamento de seqüências biológicas, a abordagem da PD tem sido utilizada em um grande número de outros problemas computacionais em Bioinformática.

A abordagem de PD constitui o corpo principal de praticamente todos os algoritmos e métodos utilizados para a comparação de seqüências biológicas. Os algoritmos que empregam a abordagem de PD são usados em Bioinformática para alinhamento de pares de seqüências ou de múltiplas seqüências entre si (perfil), para alinhamento de uma ou múltiplas seqüências a um perfil-HMM ou para treinamento de um perfil-HMM. Esses algoritmos podem ser utilizados, com diversos critérios de otimização (funções de custo), para encontrar um alinhamento ótimo (de custo mínimo ou de score máximo) ou calcular outras medidas de interesse. Em biologia molecular as funções de custo típicas incluem, em ordem crescente de complexidade:

1) custos simples, onde cada custo de mutação é uma constante;

35

(38)

2) custos lineares de lacunas (gaps) e custos lineares de lacunas afins, onde inclusões e remoções são orçadas através de uma função linear;

3) custos lineares por partes de lacunas e custos côncavos de lacunas.

A qualidade de um algoritmo é, tradicionalmente, medida através de metodologia algorítmica padrão em termos de recursos que esse requer para resolver o problema, principalmente tempo e espaço. Entretanto, tratando-se de algoritmos para a resolução de problemas com relevância biológica, a qualidade destes deve ser avaliada através da combinação de seu tempo de execução, de seu requerimento de espaço e da relevância biológica das respostas que esse produz. Desta forma a construção de bons algoritmos em Bioinformática envolve um intercâmbio entre a modelagem biológica e a construção do algoritmo até que um balanço razoável entre os requerimentos de espaço, de tempo e de relevância biológica seja alcançado.

Os HMMs são modelos estocásticos sofisticados e flexíveis utilizados como uma ferramenta para o estudo e análise de sinais. Esses modelos muitas vezes são referidos na literatura como fontes de informações Markovianas (sources Markov) ou como funções probabilísticas de cadeias de Markov. Os HMMs fornecem uma estrutura geral para a análise estatística de uma grande variedade de modelos de sinais. Dentre as diversas aplicações dos HMMs destacam-se: reconhecimento ou processamento de fala, veja, por exemplo, Rabiner (1989); processamento de sinais; processamento de imagens e visão por computador (computer vision); reconhecimento de texto e manuscritos;

acústica (reconhecimento de ruídos e sons), veja, por exemplo, Couvreur et al. (1998);

climatologia (padrões atmosféricos e precipitações); controle; comunicações;

reconhecimento de sinais de ECG (eletrocardiograma), veja, por exemplo, Koski (1996); discriminação entre surtos de corrente e falha interna de corrente em transformadores de potência, veja, por exemplo, Ma e Shi (2000); biologia computacional – comparação, reconhecimento, discriminação e busca na modelagem de seqüências nucléicas (DNAs ou RNAs) e proteínas (genoma), veja, por exemplo, Hughey e Krogh (1996), Kehagias (1996), Karplus et al. (1998), Koski (1999) e Cuesta

36

(39)

et al. (2003). Para uma boa lista bibliográfica abrangendo essas diversas aplicações veja Cappé (2001).

Os HMMs têm um grande potencial para modelagem de seqüências de nucleotídeos ou de aminoácidos em biologia molecular. A idéia básica é construir um modelo que descreva um conjunto de seqüências e, então, usá-lo para comparar uma seqüência contra o modelo, para encontrar seqüências relacionadas, ou para examinar o modelo e determinar propriedades das seqüências. Ou seja, responder a questões como ‘Quais seqüências num banco de dados se ajustam a um modelo?’ ou ‘Quão bem elas ajustam?’ ou ‘Qual de um conjunto de modelos melhor descreve um conjunto de seqüências?' (Durbin et al., 1998).

A modelagem utilizando os HMMs apresenta vantagens significativas:

• Proporcionam a construção de um modelo probabilístico explícito para um determinado conjunto de seqüências biológicas.

• Os parâmetros são específicos para cada posição no modelo, enquanto outros modelos de comparação de seqüências usam estatísticas gerais para a probabilidade de ocorrência dos símbolos.

Entretanto a modelagem utilizando os HMMs apresenta algumas desvantagens:

• O número de parâmetros do modelo depende do tamanho das seqüências pertencentes ao conjunto que está sendo modelado. Como as seqüências biológicas freqüentemente chegam a dezenas de milhares de resíduos, o número de parâmetros do HMM pode tornar-se suficientemente grande para que o processo de estimação destes parâmetros se torne impraticável na maioria dos sistemas computacionais uni-processados (PCs, WorkStations) que se encontram ativos nos laboratórios de pesquisa.

• A modelagem de um problema complexo (difícil) de otimização usando HMMs, freqüêntemente, produz um modelo muito complexo.

37

(40)

Os algoritmos de PD são utilizados na solução dos três problemas básicos na modelagem usando HMMs:

• Determinação da probabilidade de ocorrência de uma certa seqüência de observações O dado o modelo λ, P(O/λ);

• Determinação da seqüência de estados Q que melhor elucida a seqüência de observações O;

• Treinamento do modelo, que nada mais é do que o processo iterativo de determinação dos parâmetros do modelo para que a P(O/λ) seja maximizada.

Esse trabalho foi organizado da seguinte forma. Nas demais seções deste capítulo são apresentadas: a formalização do problema, os objetivos e hipóteses e uma justificativa deste estudo. No capítulo 2 são apresentados as definições e os conceitos básicos da teoria dos HMMs, dos HMMs lineares – mais precisamente os perfis-HMMs que têm sido usados na análise de seqüências biológicas –, da teoria de análise de complexidade de algoritmos e dos algoritmos de programação dinâmica. No capítulo 3 é feita uma revisão da literatura sobre algoritmos de PD com economia de espaço, seguida de uma conceituação básica dos algoritmos de PD que fazem uso do paradigma de checkpoints.

No capítulo 4 apresenta-se os algoritmos alternativos propostos nesse trabalho. No capítulo 5 apresenta-se a metodologia de experimentação, os resultados da experimentação e faz-se a análise destes resultados. No capítulo 6 apresenta-se as conclusões e comentários.

1.2 O Problema

O sujeito deste trabalho é constituído dos HMMs (lineares ou perfis) utilizados no estudo de seqüências biológicas no campo da Bioinformática. O objeto deste trabalho é constituído do estudo de algoritmos de programação dinâmica, sob a ótica da complexidade de espaço e de tempo, que possam ser utilizados nos HMMs para o cálculo de P(O/λ), para decifrar (ou revelar) o caminho de estados Q que melhor elucida

38

(41)

a produção da seqüência de observações O pelo modelo λ e para o treinamento do modelo λ.

A complexidade de espaço e de tempo dos algoritmos de PD são, respectivamente, de ordem O(n

2

) bytes e O(n

3

) operações, considerando-se que as strings e o HMM são de comprimentos similares, digamos ~n, ou tomando-se o comprimento maior. Com relação à complexidade de tempo, uma outra interpretação usada por Grice et al. (1997), Tarnas e Hughey (1998) e Wheeler e Hughey (2000), considera um tempo unitário para efetuar os cálculos de uma célula de PD. Sob essa ótica a complexidade de tempo seria de ordem O(n

2

) unidades de tempo. Nesse trabalho foi adotada essa ótica alternativa para expressar a complexidade de tempo, principalmente para facilitar as comparações com os resultados obtidos em Tarnas e Hughey (1998).

Uma seqüência biológica típica pode conter de centenas a dezenas de milhares de símbolos de um dado alfabeto – com pelo menos 4 símbolos para seqüências de DNAs (ou RNAs) e 20 símbolos para seqüências de aminoácidos. Os algoritmos padrões de programação dinâmica utilizados para computar medidas de interesse, requerem muito espaço de armazenamento (memória de trabalho ou RAM) e gastam muito tempo de execução (tempo de CPU e/ou wall time), limitando, portanto, o comprimento máximo de seqüências biológicas que podem ser analisadas nas máquinas seriais comercializadas atualmente (PCs e Workstations).

O espaço requerido para armazenar a matriz completa de PD pode exceder a capacidade física da máquina, mesmo desconsiderando os requerimentos de espaço para o Sistema Operacional e o próprio programa que executa o algoritmo de PD. Desta forma, o tempo de execução pode ser agravado pela ineficiência no uso do sistema de memória. A execução destes algoritmos de PD em máquinas seriais pode até mesmo se tornar impraticável para seqüências não muito longas (na casa de dezenas de milhares).

Existem técnicas usualmente referidas como métodos de espaço linear, que alinham um par de seqüências, ou uma seqüência a um HMM, usando memória limitada. Alguns destes algoritmos fazem uso do princípio dividir e conquistar (D&C) e requerem espaço

39

(42)

da ordem de

O

(

m+n

) ao invés de O ( m × n ) , ao preço de dobrar o tempo de execução (Hirschberg, 1975). Há outros, que são denominados algoritmos com -níveis de checkpoints e fazem uso de uma técnica que armazena linhas, colunas ou diagonais da matriz de PD (checkpoints) para que a computação de seções da matriz de PD possa ser refeita sem a necessidade de re-iniciar a computação desde a primeira iteração, que, em geral, requerem espaço da ordem de

L

(

L

n × m )

O , ao preço de aumentar o tempo de execução por um fator de para alinhar um par de seqüências (Grice et al., 1997), (Tarnas e Hughey, 1998) e (Wheeler e Hughey, 2000). Existem outros, como o algoritmo de Powell, que recorrem a esses dois princípios (Powell et al., 1999).

L

No processo de treinamento de HMMs lineares (ou perfis) é necessário recuperar toda a matriz de PD, o que descarta o uso de técnicas ou estratégias tradicionais que empregam o princípio D&C, bem como o uso da estratégia adotada em Powell et al. (1999) para a redução do espaço de armazenamento nos algoritmos de PD.

Os algoritmos que adotam a técnica ou estratégia de checkpoints possibilitam economia de espaço (memória) e podem ser usados para a redução da complexidade de espaço nos HMMs lineares (ou perfis). Apesar do potencial de uso destes algoritmos em HMMs lineares (ou perfis), esses não têm sido, ainda, completamente investigados.

1.3 Objetivos e Hipóteses

Esse trabalho tem o propósito de fazer um estudo dos algoritmos de PD que recorrem à estratégia de checkpoints como técnica de economia de espaço, que formam o núcleo do treinamento e da computação das medidas de interesse nos HMMs e, que são utilizados em máquinas seriais. Pretende-se analisar as soluções para o problema da complexidade de espaço levando-se em consideração o impacto destas soluções no desempenho destes algoritmos.

Tem-se como objetivos a proposição de algoritmos novos através da exploração de alterações nesses algoritmos de PD com checkpoints que iguale ou reduza os requerimentos de espaço e melhore o desempenho em relação ao estado da arte destes algoritmos, ou pelo menos não provoque aumentos consideráveis nos requerimentos de

40

(43)

tempo de execução destes algoritmos. Mais precisamente, a proposição de algoritmos novos baseados na exploração da hipótese de utilização da estratégia de checkpoints em conjunto com o princípio D&C como solução consistente para o problema de complexidade de espaço versus complexidade de tempo dos algoritmos de PD utilizados no cálculo de medidas de interesse em HMMs lineares (ou perfis).

Essa hipótese da utilização da estratégia (ou paradigma) de checkpoints em conjunto com o princípio de D&C nos algoritmos de PD já foi explorada, ainda que de forma não explícita, utilizando-se checkpoints por diagonais com retrocedimento restrito. Mas parece ser mais promissora utilizando-se explicitamente o principio D&C em conjunto com o paradigma de checkpoints em duas dimensões da matriz de PD, por linhas e por colunas, simultaneamente.

1.4 Justificativa

Os melhoramentos introduzidos no algoritmo de PD básico proporcionam requerimentos de memória da ordem de O(n) ou O ( n × n ) , que em termos práticos apresentam pouca ou nenhuma queda no desempenho quando comparados ao algoritmo de PD padrão. Apesar destes melhoramentos, os requerimentos de espaço em conjunto com os requerimentos de tempo continuam sendo um gargalo na avaliação de seqüências de aminoácidos ou de nucleotídeos em biologia molecular, pois as seqüências, freqüentemente, podem atingir a casa dos milhões e a memória disponível é sempre limitada.

É bom lembrar que os recursos de memória são sempre limitados e constituem um gargalo nos sistemas computacionais. O desenvolvimento tecnológico e a conseqüente redução de custos e aumento da capacidade dos recursos computacionais, possibilitam a superação de limitações com relação a solução computacional de instâncias de determinados problemas, mas, por outro lado, possibilitam o tratamento computacional de outros problemas, novas fronteiras, que estavam fora do alcance do poder computacional imediatamente anterior, possivelmente tornando esses novos recursos computacionais novamente limitados. Adicionalmente, deve ser considerado, também,

41

(44)

que nas máquinas atuais o acesso: à memória cache requer 1 ciclo de clock, à memória principal de 10 a 20 ciclos, e ao disco rígido cerca de um milhão de ciclos (Tarnas e Hughey, 1998). Desta forma execuções com requerimentos de memória maiores do que o tamanho da memória principal, podem tornar o custo de paginação da memória virtual muito alto, tornando a computação, efetivamente, inviável.

Esses fatos por si só já são bastante significativos para realçar a necessidade de investimentos em pesquisas para melhorar o desempenho destes algoritmos ou buscar outros algoritmos alternativos. Desta forma, o estudo se concentra, a princípio, nos algoritmos que adotam a estratégia de checkpoints com requerimentos reduzidos de memória.

Os algoritmos alternativos baseados na estratégia D&C e no algoritmo rápido de Ukkonen apresentados em Powell et al. (1999), que requerem espaço linear sem causar queda de desempenho nos algoritmos de PD, podem ser acelerados aumentando os recursos de memória. Entretanto eles somente são apropriados para determinar melhor o alinhamento entre seqüências, que requer apenas o retrocedimento parcial sobre a matriz de PD, mas não são apropriados para utilização no treinamento de HMMs ou qualquer uso em conjunto com o algoritmo forward-backward requerendo todos os caminhos, que exigem procedimentos de retrocedimento completo sobre a matriz de PD. Isto acaba se tornando uma grande desvantagem quando o interesse reside justamente em desenvolver um pacote de ferramentas de modelagem de HMMs, pois não poderíamos ter um algoritmo base que fosse o núcleo de todo o processamento de PD.

Deve-se considerar, também, que as funções de custo freqüentemente usadas nos HMMs em biologia molecular não geram matrizes de PD com diagonais não- decrescentes, pois essas funções usam atribuição de escores em log-probabilidades (log- odds scoring), impedindo a utilização de algoritmos que exploram essa característica para acelerar o desempenho computacional. Muitas vezes, ao invés de se usar os escores em log-probabilidades (log-odds score) relativos ao modelo aleatório, o logaritmo da probabilidade da seqüência dado o modelo é usado diretamente, que é denominado

42

(45)

escore LL (de log likelihood score), entretanto o LL score é fortemente dependente do tamanho das seqüências, apresentando uma dependência não linear.

O método de PD com checkpoints apresenta alguns méritos: a sua forte independência do algoritmo subjacente; a redução do requerimento de espaço da ordem de

O

(

nm

) para

( ) m

L

n

O ; e a possibilidade de se aumentar o desempenho em troca de um aumento na constante de espaço. Além disso eles são a única alternativa de economia de espaço apropriada para o treinamento de HMMs ou para qualquer outro uso em conjunto com o algoritmo forward-backward requerendo todos os caminhos.

Dessa família de algoritmos de PD com checkpoints, aquele por diagonais com o processo de retrocedimento restrito, que alia a técnica (ou paradigma) de checkpoints com o princípio D&C, é o que, segundo Tarnas e Hughey (1998), apresentou melhor desempenho no alinhamento de seqüências. Entretanto foi observado, com base nos experimentos realizados e na experiência anterior com esses algoritmos, que a complexidade das condições de contorno, adicionadas quando se processa diagonais, não proporcionou um retorno equivalente no ganho de performance. Desta forma, com base nos resultados obtidos eles planejaram reimplementar o loop interno do pacote SAM (Hughey, 2003) com checkpoints por linhas. É importante salientar que a complexidade das condições de contorno foi agravada pelo uso da técnica de retrocedimento restrito. Com base nestas conclusões o grupo de pesquisadores responsáveis pelo pacote SAM buscou alternativas para melhorar o desempenho destes algoritmos com checkpoints por linhas.

Wheeler e Hughey (2000) apresentaram um algoritmo melhorado de (1,2)-níveis de checkpoints por linhas que, assintoticamente, efetua até 50% menos cálculos quando comparado ao original com checkpoints por linhas. Entretanto na prática os resultados mostraram que o algoritmo melhorado, na avaliação de todos os caminhos, é 3 a 12%

mais rápido que o de 2-níveis original, independente do tamanho do HMM. É importante lembrar que o algoritmo de PD de 2-níveis original, com checkpoints por linhas, tem requerimentos de memória da ordem de O ( ) m n , ao custo de uma queda de desempenho por um fator de 2 com relação ao algoritmo de PD padrão. Nesse ponto

43

(46)

deve ser salientado que esses melhoramentos relatados por Wheeler e Hughey (2000) podem ser utilizados, quando for conveniente, juntamente com outros melhoramentos nos diversos algoritmos membros desta família de algoritmos com checkpoints.

Deve-se salientar também que, talvez, o mais importante a ser considerado nessas técnicas de uso de espaço de armazenamento restrito seja o comportamento assintótico da redução dos requerimentos de memória, pois elas são, a princípio, úteis justamente para seqüências longas, ou seja, quando os requerimentos de memória crescem com o tamanho destas seqüências. Desta forma, a redução dos requerimentos de memória da ordem de O(mn) para O ( ) m n e para O(m) possuem um comportamentos assintóticos bastante semelhante, para m e n suficientemente grandes.

Considerando-se, portanto, o tradeoff entre a redução dos requerimentos de espaço e a performance dos algoritmos de PD de L-níveis com checkpoints e o comportamento assintótico com relação à complexidade de tempo, da ordem de O(mn), do algoritmo de PD de 2-níveis com checkpoints por colunas ou linhas, quando determinando um alinhamento entre duas seqüências ou calculando o melhor caminho simples de estados através de um HMM, verifica-se que ainda há necessidade de investimento em pesquisa para explorar alternativas que melhorem o desempenho destes algoritmos.

Portanto, ainda existe necessidade de se explorar alterações nessa família de algoritmos de PD que usam checkpoints e reavaliação, que tiram vantagem do uso de espaço linear através da armazenagem de checkpoints, mas ao custo de uma queda no desempenho, devido à reavaliação, quando comparados com o algoritmo PD tradicional. É necessário explorar novos algoritmos que mantenham a complexidade de espaço linear e cause um impacto menor na queda de desempenho.

Esse trabalho contribui para o campo de Bioinformática investigando e propondo novos algoritmos alternativos que utilizam a estratégia (ou paradigma) de checkpoints em conjunto com o princípio D&C como solução para o problema de complexidade de espaço dos algoritmos de PD usados nos HMMs, levando-se em consideração o

44

(47)

aumento dos requerimentos de tempo para execução, provocado pela necessidade de reavaliação de partes da matriz de PD.

Até onde se tem conhecimento não existe nenhuma investigação relatada na literatura pertinente, que trate da hipótese levantada nesse trabalho.

45

(48)

46

(49)

CAPÍTULO 2 CONCEITOS BÁSICOS

2.1 Introdução

Nesse capítulo é feita uma revisão da teoria básica de complexidade de algoritmos e da classe de HMMs. Essa revisão é focada principalmente nos tópicos de interesse deste trabalho, deixando de abordar aqueles que não são de interesse direto para a pesquisa em foco. Na segunda seção são apresentados os conceitos fundamentais dos HMMs e as definições de interesse para a Bioinformática. Na terceira seção são apresentados alguns conceitos fundamentais de complexidade de algoritmos. Na quarta seção são apresentados conceitos e descrições dos algoritmos de programação dinâmica.

2.2 Modelos Markovianos Ocultos (HMMs)

Os conceitos e definições apresentados nessa seção estão fundamentados principalmente nos tutoriais de Rabiner (1989) e de Grate et al. (1999), no manual de Durbin et al.

(1998), no curso de Koski (1999), nos manuais de usuário dos pacotes HMMER (Eddy, 2003) e SAM (Hughey et al, 2003) e nos artigos de Krogh et al (1993), de Haussler et al (1993), de Hughey e Krogh (1996), de Barret et al. (1997), de Eddy (1998), de Birney (2001) e de Sato et al. (2003). Na seção 2.2.1 é apresentada uma definição formal para os HMMs. Na seção 2.2.2 são abordados os três problemas fundamentais dos HMMs e as soluções apresentadas para esses problemas. Na seção 2.2.3 é esboçada a classe de HMMs lineares que têm sido estudados em biologia molecular

2.2.1 Definições

Os HMMs estendem o conceito de modelos markovianos para incluir o caso onde a observação (situação observável) é uma função probabilística do estado. Um HMM refere-se a um processo estocástico cujas transições entre estados obedecem a uma cadeia de Markov não observável (daí o nome escondido ou oculto) e que a cada estado visitado emite (ou produz) um símbolo observável (uma observação) conforme uma distribuição de probabilidades (estado discreto) ou uma função densidade (estado

47

(50)

contínuo). Os HMMs consistem de cinco blocos (ou elementos) básicos que são definidos formalmente, como:

1) Um conjunto finito de N estados, designado por S = {S1, S2, ..., SN}, no qual define-se um processo estocástico qt que indica o estado do modelo no instante t

(

t=0,1,2,3,L

) .

2) Um alfabeto discreto e finito correspondente a K símbolos distintos de observações (ou de emissões), designado por V = {v1, v2, ..., vK}. Os símbolos de observações correspondem à saída física do sistema que está sendo modelado.

3) Uma distribuição de probabilidades de transição de estados denotada por A = {aij}, onde aij = P [qt+1 = Sj | qt = Si], 1 i, j N.

4) Uma distribuição de probabilidade de observação (ou emissão) do símbolo vk quando o processo atinge o estado j, designada por E = { ej(k) }, onde ej(k)

= P [ Ot = vk | qt = Si ], 1 j N e 1 k K.

5) Uma distribuição de probabilidade para o estado inicial π = { πi }, onde πi

= P [q1 = Si] e 1 ≤i ≤ N.

Desta forma uma especificação completa de um HMM requer a especificação dos parâmetros N e K, a especificação dos símbolos de observação (ou emissão) e a especificação das três distribuições de probabilidade: A, E e π. Mas, por conveniência usa-se uma notação compacta designada por λ = (A, E, π) para indicar o conjunto de parâmetros do modelo. Um exemplo de um HMM discreto com 3 estados e 5 símbolos de observação é mostrado na Figura 2.1.

48

Referências

Documentos relacionados

Assim, o presente trabalho surgiu com o objetivo de analisar e refletir sobre como o uso de novas tecnologias, em especial o data show, no ensino de Geografia nos dias atuais

Este trabalho se justifica pelo fato de possíveis aportes de mercúrio oriundos desses materiais particulados utilizados no tratamento de água, resultando no lodo

No prazo de 10 dias contada da deliberação, para os condóminos presentes, ou contada da sua comunicação, para os condómino ausentes, pode ser exigida ao administrador a convocação

Neste caso, embora possam existir nestes locais, forrageiras de alta qualidade, como o capim-de-capivara (Hymenachne amplexicaulis), a disponibilidade de recursos forrageiros vai

E, confiando nos princípios que sempre nortearam a SME São Paulo na seleção para aquisição de obras literárias para o projeto Minha Biblioteca nos últimos anos, a LIBRE espera

Mas, como patrocinador, ele também não deixa de ser só um torcedor, que tem de torcer para o time ir bem, mas que pode cobrar com um pouco mais de peso se o resultado não

Em média, a Vivo forneceu a melhor velocidade de download para os seus clientes em 2020... A Vivo progrediu em especial a partir de abril

Se você vai para o mundo da fantasia e não está consciente de que está lá, você está se alienando da realidade (fugindo da realidade), você não está no aqui e