USO DE PROGRAMAÇÃO
DINÂMICA
EM DOBRAMENTO
DE RNA
DYNAMIC
PROGRAMMING
USE IN RNA FOLDING
Luiz Carlos da Silva Rozante
IMES - Universidade Municipal de Ensino Superior de São Caetano do Sul Instituto de Matemática e Estatística - uSP - Universidade de São Paulo
11
DJ.DOO1.0J,J,DJ.OU10U1o01o0UOOD01.0J,O),],],oOJ.OJ.QJ.OOOJ.0010UDOJ.OOOlO),),OJ.D1.],),O],],],QJ.OUOD001010),),},D0101.0J.00010DJ.OU0010D01.Q),),01.0),),1.0),),],01.0),),00J.01.100011),),01.O),),OOOO),OlO),),),OOJ.01.OJ.OOO1.IJO),(I),),OO),(lDDJ.OUD1.D1.UOU1.D1.0UOOD01.0J.OUJ.oOJ.01.O),OOO1.0D1.0),],OOlDOOJ,OU01.01.),),O),),),01.D1.1.0OOO1.D1.0UJ,(01O),01.),OJ,ODl,OUO
--D
'
DJ,OOOJ.DJ,1.0l0),),),OU10],OllDOOD1.D1DUlDOl010),(I(]OlOO1.Dl1DOlOD01D1l0l0U10U1D10J,lOOOO).OlOUJ,DOJ,O],DJ,DOOlDIJ),OU0010001,01l,DJ,OU10J.U01DUOOOO\'O],IJU10D10],OlOOO),OD],O),),C01DOO],O),).OlOlOJ.],),001 1 Ar t 1.
9O
11DJ.O),J,OOOOJ,OJ.OU1001DJ.OlOOD1D01DUOOJ.OOOJ.OU0101J,J.OJ,U01011DOOOJ.010U1001.0101D0010010],],0010D01.0110J.OlUO],],],D10UODD010101U00101010001DOlOJ.),001D001011001D100101DOODOJ.010),),1001010
1. INTRODUÇÃO
Uma molécula de RNAconsiste em uma cadeia de
nucleotídeos conectados por ligações covalentes. Cada
nucleotídeo contém um grupo fosfato, um açúcar
(ribose) e uma base. Essa molécula de RNA é um polímero e é formado pela ligação de grupos fosfato. Somente as bases diferem e elas são quatro: Adenina
(A), Citosina (C), Guanina (G) e Uracil (U).
Sob condições naturais, uma cadeia de RNA do-bra-se sobre si mesma, através da formação de
pon-tes de hidrogênio entrebases com plementares (Acom
V e C com G) e entre bases wobble (V com G). As
bases complementares formam pares de bases
está-veis, através da criação de pontes de hidrogênio en-treelas, que são ditos pares de bases de Watson-Crick.
Além disso, é possível considerar também (e
geral-mente o é) o par G-U, cuja ligação é mais fraca e que
é denominado par de base oscilante ou instável (em
inglês wobble). Os pares de bases de Watson-Crick,
juntamente com os oscilantes, são denominados
pa-res de bases canônicos.
A estrutura secundária de uma molécula de RNA é
o
conjunto de pares de bases canônicos
- ousimplificadamente pares
de bases
-, que ocorrem na"dobradura" natural da molécula.
1.1. Representação e conceituação matemática
Deum modo maisformal, uma molécula de RNAé
representada
como uma seqüênciade n
caracteresR = r" r2, ...,rn,onde ri E {A, V, C, G}representa
oi-ésimo nucleotídeo. Uma
estrutura secundária
damolécula
- cuja noção topológica está ilustrada naFigura 1 - é um conjunto 5 de pares de inteiros, tal que cada par (i,j) E 5, com 1 ::; i <j ::; n, satisfaz as seguintes restrições:
Restrição
1: ri e fj é um par debase
canônico;Restrição 2: j - i > t, onde tipicamente t= 4 ou t= 3; Restrição 3: se i < i' e (i',j'), E 5, então somente
um dos casosocorre:
Caso 2: i < j < i' <j' ; Caso 3: i < i' <j' <j.
Se (i,j) E 5 dizemos que rie fj são bases pareadas.
A
Restrição2 modela um fato da realidade biológica, observadoexperimentalmente, que consistena
im-possibilidade de uma molécula dobrar-se sobre si
mes-ma - em algumes-ma parte - de formes-ma pontiaguda.A Figura 2 ilustra um exemplo onde temos t
=
4.Os Casos 2 e 3 excluem uma configuração natural
chamadapseudo-nó.Dizemos que ocorre umpseudo-nó
quando existem Pares (r., r.), (r.", J I r.,) E 5 comJ
i < i' <j<j'. Sua exclusão simplifica o problema. Alguns
tipos de pseudo-nós foram tratados no algoritmo de Rivese Eddy, cujas complexidades de tempo e espaço são, respectivamente, O(n6)e O(n4)para uma molécula
com n
bases.
Entretanto, Lynas e Pedersen2mostraramrecentemente que o problema geral é NP-difícil. Poderíamos ser levados a conceber um algoritmo trivial que enumerasse todas as possíveis candidatas a estruturas e depois simplesmente escolhesse, en~ tre aquelas que podem ser estruturas secundárias, aquela que correspondesse à estrutura mais estável
(baseada num critério termodinâmico, por exemplo).
No entanto, o número possível de candidatas a
estru-turas é de pelo menos 2n, para seqüências de n
nucleotídeos. Isto, evidentemente, torna tal algoritmo inviável para seqüências de tamanho razoável.
tn da mi bu ou la(
2.
ini gi. te: SI M I B H P d qBacillussubtilis RNase P RNA ,
a dE - multiloop - interior loop - bulge loop - hairpin loop
se
se
er
~. FiFigura 1: Exemplo de estrutura secundária do RNAna sua representação normal. Obtida em http:// www.ibc.wustl.edu/_zuker/Bio-5495/RNAfold-html.
,
RIVASE.; EDDYS.A dynamic programming algorithm for RNAstructure prediction including pseudoknots. Journal of Molecular Biology,(285):2053-2068, 1999.,
LYNGS R. B.; PEDERSENC. N. S. Pseudoknots in RNA secondary structUre. In Proc. 4rd InL Conf. Computational Molecular Biology (RECOMB'OO). ACM, Apr. 2000.II
J.OOOJ.O],},01.01.),1.0),),],OJ.O),],OOOOlOlO),U00101.0J,ODOJ.00101.J.OO1000101.].01.01010),011.1.01.0),),00001010],),),001010100010010),),001.000101.10100],],),01),1.01.0],],0. ..2. USANDO CÁLCULO DE ENERGIA LIVRE MíNIMA
Aestratégia mais difundida para se predizer a es-trutura secundária de uma molécula de RNA é basea-dano cálculo da estrutura secundária de energia livre mínima.Tal estratégia utiliza-se da idéia de se atri-buir uma energia a cada um de seus pares de bases, ou a seus elementos formadores estruturais, como laçosinternos, barrigas, arcos, hélices e multilaços3.
2.1. Algoritmo básico
Um modelo simplificado do problema, cuja idéia inicialfoi proposta por Nussinov4, supõe que as ener-giasde cada um dos pares de bases são independen-tesentre si, de maneira que a energia total da estrutura
5 pode ser escrita como
Energia(S)=
L
(i,j) E 5a(r., r.), onde á(r., r.) < O.I i I i
Ou seja, pressupõe-se existir uma função
á
tal queá(ri,
f)) é definida como a energia de ligação do parde bases (r., r.).I i
Estaidéia permite-nos modelar o problema como
segue.Seja a seqüência R=rl' rz,..., rnpara a qual
de-sejamos encontrar uma estrutura secundária S de
energialivre mínima. Definimos
E(R) = min {Energia(S)},
5
onde Svaria em todas as estruturas secundárias de R.
A.
e
S
Ge G
e G
Figura 2: Umexemplo de "arco" formado com quatro (t=4) bases do tipo 'A'.
Tomando a subseqüência R.,.=r., r'i I 1+1,.,., r., 1si <i
J
' s nparaa qual desejamos encontrar a estrutura secun-dária Si'jcorrespondente de energia livre mínima, há quatro possibilidades a serem tratadas:
1. Se ri não ébase pareada
em nenhuma
estrutu-ra de energia mínima,
então E(Ri) = E(Ri+l');
2. Se r. não é
base pareadaem nenhumaestrutu-ra de energia mínima,então E(R. .)I,)=
E(R. .-1);'d3. Seem alguma estrutura de energia
mínima, ri e f) sãobases
pareadas, mas nãoentre
si, entãoE(R.
"
)
= min
k{E(R.I,I<!) +E(Rk I+ ,j.)},para i + t < k <j - t;4. Se f) é pareada com ri em alguma estrutura de
energia mínima, então E(R..)= E(R.I.) 1+ ,J.1./)+
a
(r, r.),I J De modo mais formal, reescrevemos então assitua-ções (modelo) acima como
E(R.I,
) =
O, sej-ist
{
E(R.... ,i1 .),
. E(R..), caso (2)
mm mi~iI+t<k<j-t. {E(R.I,I!) +
E(R
\j k+l,j)11}' contrário.r/,a(r,,.rr.) + E(R.1+,J-1.1)
A Expressão 2 é resolvida por programação dinâ-mica. Resolvemos esta recorrência através de um algoritmo interativo, o qual preenche uma matriz de energias E,onde cada célula E[i]lj] armazena E(R..),I,i
1si <j s n.Atribuímos E[i]lj]+- O para valores iniciais
j
-
is t. Lembremos que o parâmetro t relaciona-se àimpossibilidade da molécula dobrar-se, sobre si mes-ma, de forma demasiado pontiaguda (Figura 2 da
Se-ção 1.1). Este algoritmo é de complexidade O(n3).
Uma vez calculado E[1UnI,a computação (identifi-cação) do dobramento de energia mínima S/," é feita
através de um algoritmo rastreador (do inglês
traceback).
2.2. Incorporação de laços
Infelizmente, a abordagem citada é insuficiente
para capturar e representar algumas situações que concretamente ocorrem na definição das estruturas secundárias, pois não leva em consideração a
influ-ência que a energia de um par de bases exerce sobre
outro, notadamente os pares adjacentes; tampouco contabiliza as energias associadas a estruturas deno-minadas laços, definidos a seguir e ilustrados na Fi-gura 3.5,6,7,8
,M. Zuker and D. 5ankoff. RNAsecondary structures and their prediction. Buli. Math. Biol., (46):591-621, 1984.
.
R.Nussinov.G.Pieczenik, J. R. Griggs, and D. J. Kleitman. AI90ritms for loop matchings. SIAM). appl. Math.. (35):68-82, 1978. ,M. Zuker and D. 5ankoff. RNA secondary structures and their prediction. Buli.Math.Biol., (46):591-621. 1984.,D. 5ankoff. 5imultaneous solution of the mRNA folding. alignment and protosequense problems. SIAMj. Appl. Math.,(5): 1-3 5, 1985.
7M. 5. Waterman and T. F. 5mith. Rapid dynamic programming algorithms for RNAsecondary structure. Advances in Applied Mathematics. (7):455-464, 1986.
· M. Zuker and C. D. H. Turner. Algorithms and thermodynamics for RNA secondary structUre prediction: A practical guide. (333):333-344, 1999.a
l'moul AnO I Q 1
.
/ ' 2 OO5 I01.0DOJ.OU01.O],],l,OJ,U010l,1.0000J,OJ,OlUOO1.0J.o),ooOJ.OOJ,OUD01.000J,oUO),O],],1.OU],01.0),),OODOJ,O),O),),),ODJoDJoDJoDDDJoDDJoDJoJoDDJoDDDJoDJoJooJoouJoDJoJoJooJoDJoJoDDJoDJoJoDoDJoII
-Rm1
'
OJ,OOOlOJ,lD1DUJ.OJ.UOJ.OUOODOJ.01.0U1.0D1.D1.0J,OOOJ,OO1.01.1.DDJ,OOOJ.O1.1.010J.UOU1.0J.OJ.1.00001010UJ.OO1.D1.0J,DDOJ.OOJ.OUODJ.DD010),),OlDlUOU1010UOOD01DJ,D1U0010J.Ol0D01D01DUOOlOOD10UD1010U1DOJ. 1 Ar t 1.
9O mla011. 1 U010UOOOD1010UJ.OD:LOJ,D1D0010D10UOOJ.OOOJ.O:u.010111CJ1.UOJ.OUODOOlOlOU1001010100010010J.1DOJ.DO010UDlD1UCI1.1J,OWU.OOOOl0101U00101010D01DD10U001DD0101100J,010Dl010DO0010W11J.D0101D ~.010 i+
1. z j-1J d 9 d LA: Laço Interno B: Laço Hélice (ou Empilhamento) C: Laço Arco
d d vi
i+k+1
r==r
j-1
'"
r=:r
/D: Laço Barriga em ; E: Laço Barriga em j F: Multilaço (4-laço)
Figura 3: Vários tipos de laços. As linhas simples representam as ligações covalentes e as duplas as pontes de hidrogênio.9
Seja OJ) E 5 e sejam i', v e j' posições tais que
i < i' < v <j' <j. Então dizemos que:
1. v é acessível aO, j) se O', j') EE5 para todo i' e j' ;
2. O',j') é acessível a O,j) se O',j') E 5 e i' e j' são
acessíveis a
O,j);3.
o conjunto formado pelas bases dos pares de
bases acessíveis a O,j)e pelas bases não pareadas - também acessíveis aO, j) - é o laço fechado por O,j), ou simplesmente laço.4. o laço formado por k pares de bases (o par de
fechamento O,j) juntamente com (k
-
1) paresde bases acessíveis a O,j) e por k' bases não
pareadas é chamado k-Iaço(ou k-ciclo)de
ta-manho k' fechado por O,j).
5. umabase nãopareadanão pertencentea nenhum
laço é uma base externa; um par de bases
pareadas não pertencente a nenhum laço é
de-nominado par externo. A coleção formada
pe-las bases externas e pares externos é
denomi-nado laçoexterno.
Umaestrutura secundária 5 induz uma
decompo-sição de R em uma coleção de laços disjuntos
Laçol' Laçoz'...Laçom'onde m > O,se e somente se,
5"* 0. Energiassão atribuídas aos k-Iaçose a energia
da estrutura 5 passa a ser escrita como
m
Energia(5)=
L
E (Laço),;=1
(3) onde E é uma função que fornece a energia de um
k-Iaço Laço;.
Para atribuir energias aos seis tipos de laços, são definidas as seguintes funções:
EhO,j) é a energia do laço arco fechado pelo
par
O,j);Ei(i,j) é a energia mínima de um laço interno
fechado por O,j);
EbiO,j) é a energia mínima de um laço barriga
em i fechado por O,j);
EbjO,j)é a energia mínima de um laço barriga
em j fechado por O, j);
EsO,j) é a energia de empilhamento de dois
pares de bases adjacentes O,j) e (i + 1, j -1);
EmO,j) é a energia mínima de um k-Iaço de
ta-manho k', com k >2 (multilaço), fechado por
O,j).
Novamente usamos a estratégia de programação dinâmica para resolver o problema. Seja a seqüência
R
= r" r2,...,rn,para a qual desejamos encontrar a
es-trutura secundária 5, de energia
livremínima.Consi-d
eremos a su seb
quencla R. .- r., r...A,n . I,)_ I 1+I, ...,r., 1 - I JJ < . < . <_ n,
para a qual desejamos encontrar a estruturasecun-G
101
"1 I
,j. C. Setubal andJ. Meidanis. Introduct;on to Computat;onal Molecular Biology. ICUNICAMP/PWS,1997.
11
1.000J,OU01.0U10J.UOIoD1.1.00001010J,UOO1.0W1.00D1.00J,OJ,l,OOJ,OOO10U0101].].OU10101o),00001010),),100101.010001001.01100100001o0),1.010IoU01U01011.01
imes
dáriaS. . de energia livre mínima. Como na modela-I,)
gemanterior, há quatro possibilidades a serem trata-das,diferenciando-se apenas na situação 4:
O, sej-i~t
{
E(R"I .),,)
. E(R"j.I)'
mm mino, < <)k .(E(R.I,k!) + E(Rk I+ r).)}, L(R,)
L(R.I,) = min
caso contrário, onde
L(R,) = {Eh(i, j), Ei(i, j), Ebi(i, j), Ebj(i, j), (5) Es(i,j), Em(i, j)}.
Podemos então caracterizar os cálculos
associa-dos a L(R;) para cada uma das configurações
ilustra-dasna Figura 3, cuja opção correspondente pode ser vistana Expressão 5. Assim sendo,
.
se L. . é um laço arco, entãoI,)
L[iJU1- L(R.I,
)
= Eh(i, j), ((j - i - 1)..
se L. .é uma região empilhada (ou hélice), entãoI,)
L [iJU1- L(R,) = Es(i, j) = 17+ L [i + 1] [j - 1].
.
se L. .é uma barriga em i, entãoI,)L [iJ1j]- L(R.
)
= Ebi(i,j) = min (13(k)+ L [i + k + 1n.I, h7
.
se L. . é uma barriga em j, entãoI,)L [iJ1j]- L(R;)= Ebj(i,j)= L [i + 1]
U
- k - l]}.min + {fJ (k) +
k-z7
. se L. . é um laço interno, entãoI,)
L [iJU1- L(R.) = Ei(i,j) = min {r (k, + kz) +
I, k,. k2-z7
L [i + 1+k,]
U
- 1 - kz]}..
se L. . é um multilaço, entãoI,)L[iJ1j]- L(R.
)
= Em(i,j) = min {G [i + 1][k] +I, i<k<J-l G [k + l]U - 1] + a }, onde
{
L [iJ1j]+ b G[iJlj]=min{
G [i][h] + (j-
h) x c (6) mini<h<imin G [i][h] + G [h + 1] U] (h - i + 1) x c + G [h+ 1UJl. (4)sendo que a, b e c são constantes onde a re-presenta a contribuição do par de fechamento
(i, j) do multilaço, b a contribuição de cada par
acessível a (i,j) e c a contribuição de cada base não pareada acessível a (i, j).
As funções (, 17,13,e r nas expressões dadas são
determinadas experimentalmente. A complexidade
deste algo ritmo é O(n4) e a computação (identifica-ção) do dobramento de energia mínima S"n é feita através de algo ritmos recursivos.
2.3. Melhoria da eficiência em laços
internos
Os laços internos são as estruturas que dominam
assintoticamente no algoritmo geral apresentado na
seção anterior. A partir deste fato, esforços foram
empreendidos a fim de melhorar a complexidade do algoritmo como um todo, por meio da melhoria da complexidade dos laços internos.
Assumindo que a estabilidade de um laço interno depende apenas do seu tamanho, Waterman e SmithlO mostraram como reduzir o tempo de computação do algoritmo geral para O(n3).
No entanto, o cálculo da energia associada ao laço interno fechado por (i, j) e (i', /) é determinado por quatro fatores:
.
Contribuição entrópica, que depende dotama-nho do laço;
.
Contribuição referente ao par terminal nãopareado adjacente a (i, j);
.
Contribuição referente ao par terminal nãopareado adjacente a (i',/);
.
Penalidade associada a assimetria do laço.Lyngs et aI.II propuseram um algoritmo que
exe-cuta o algoritmo geral em tempo O(n3)- otimizando o cálculo de laços internos para O(n) - mas com a
vantagem de incorporar todos os fatores acima. A fim de simplificar sua descrição, adotaremos uma matriz denotada por LI para armazenar as energias associadas aos laços internos. Desta forma, a energia do laço interno fechado por (i, j) e (i', /) pode ser escrita como
LI [iJU1= min {L[i'Ui'] + eL (i, j, i', /), (7) i<l </ <J
l-i+j-/-2~ 2
"M. S.Waterman and T. F. Smith. Rapid dynamic programming algorithms for RNA secondary structure. Advances in Applied Mathematics, (7):455-464,1986.
11R.B.Lyngs,M. Zuker,and C. N. S.Pedersen.Internalloops in RNAsecondarystructure prediction.In Proc.3rd Int. Conf Computational MolecularBiology
(RECOMB'99).ACM, Apr. 1999.
"""
I A I Q 1
.
/.
2OO5 I.10"'.".10"''''101'''''''10'''''''101010''10'''''..'.''''''''.'''''''''.''''..'.'''''..'.101...,,,,"',,,,,,,, ,,,,...,,,,...I!II
-_
.
D1.DOOJ.O],10101UO],],],Ol,OUOOOO1.0),OU100J.0101.0001D010UOOJ.OCO),O],),OlOl,),),01.],),OlO),],OOOOJ.OJ,OUJ.OOJ.O),OlOOOJ.OO1.0],],OO1.DOO1.01101.0),),1.01.1).0101100001.01.01),1.00:l.010J.000],0010UOO1.000),0},1.0101.0U1.001. I Ar t "o,~ 1.9O IIJ1010 UOJ.O],],OOOOlOlO1.1.1.D01.010100010010),),[J010a010),],01.0U],O],),),O10],),0000),01.0),],],0010101,0001.0010),],00],00010),),01.0],],],0],),1010),),00001.010),],1.0010),0),00010010),),001,01]010},],0010),OO1.0),OOOOOJ.010},],],00101.0 ~IIonde
{
tamanho (i' - i + j - j' - 2) + eL (i j i' j')=
empilha (i,j) + , " em pilha (i', j') + assimetria (i' - i - 1, j - j' - 1).Papanicolaou et afiz propuseram uma função para a assimetria, que adotamos na implementação tanto do algoritmo de Lyngs e Zuker quanto na do algoritmo de Waterman e Smith, que é da forma
assimetria (nl , n2) = min {K,n
xf(m)},onde n = Inl - n21e m = min {nl, n2, c}.As constan-tes K, Ce a função {são assim definidas: c= 5, K= 6, ( (1) = 0.7; {(2) = 0.6; {(3) = 0.4; {(4) = 0.2 e {(5) = 0.1 .
Peritz et aI.
13redefinirama constantec comosendo
c = 1. Em nossa implementação utilizamos a versão de Peritz para c.
Lyngs et afl4observaram que a função assimetria ( ) pode ser dividida em dois termos:
assimetria (nl , n2) = desbalanço (nl , n2) + (9)
tamanho' (nl + n2),
onde desbalanço (nl, n2) = Inl - n21e tamanho'( ) representa a influênciaque o tamanho do laço (indicado pelo valor nl + n2) exerce sobre a função assimetria ().
Se definirmos 9 (nl + n2) = tamanho (nl + 1+ n2 + 1)
-
tamanho' (nl + n2) e observarmos que desbalanço(nl + 1, n2 + 1)= desbalanço(nl , n2), então
assimetria
(nl + 1, n2 + 1) = desbalanço(nl + " n2 + 1) + tamanho' (nl + 1 + n2 + 1) = desbalanço (nl, n2) + tamanho' (nl + 1 + n2 + 1) = desbalanço (nl, n2) + tamanho' (nl + n2) + g(nl , n2) = assimetria (nl, n2) + g(nl + n2).Estadependência do tamanho da função assimetria (), representada por tamanho' ( ), pode ser movida para a função tamanho ( ). Em outras palavras, a variação na função assimetria ( ) quando variamos os valores da função tamanho' ( ) e mantemos constante o valor de desbalanço () depende apenas do tamanho do laço. (8)
Esta dependência do tamanho da função de assimetria pode ser transferida para a função tamanho ( ), que ajuda a compor o cálculo geral da energia do laço interno (indicada no primeiro item da Expressão 8).
A partir disto, é possível então fazer a observação chave de que se fixamos o desbalanço ( ), a penalida-de assimetria ( ) não se altera com o tamanho, isto é,
assimetria (nl + 1, n2 + 1) = assimetria (nl , n2).
Interno (i, j)
Para a= Oaté 1 faça .
E-oo
I
J
Para/ =2
-
a até min {i-
I, n-
j-
a}faça \aux1
-
L li-
/ + 1]U-/ + 1] + assimetria (0,2/ + a-
2) + empilhamento (i-
/ + 1, j -/ + 1) aux2-
L li + a + /-
1]U+ a + /-
1] + assimetria (0,2/ + a-
2,0) + empilhamento (i + a + /-1, j + a + /-1)E
-
min {E,aux1, aux2}aux1- LIli - / lij + a + / ]
aux2 - E + tamanho (2/+ a
-
2) +empilhamento (i
-
/, + a + /)LI li -/ li j + a + / ]
-
min {aux1, aux2} L li li j]-
LI Ii)[j ]Figura 4: Algoritmo para cálculo de laços internos conforme Lyngs e Zuker (O(W».
Definimos a matriz LI' [illj][I] como sendo a energia mínima de uma laço interno fechado por (i, j) de ta-manho I.
Se a Equação 9 mantém-se, então para I ~ 2
{
LI' [i+l][j - 1][/- 2] + tamanho
(/)-LI' [iJlj][I]= tamanho (/ - 2) + empilha (i, j) - (1O)
empilha (i + 1,j
-
1)A Expressão 10 fornece a recursão necessária para
computar cada entrada
de LI' em tempo constante.Observemos que LI'contém O(n3)entradas e que U
pode ser calculado a partir de LI' como
LI [iJlj]
-
min {LI' [iJlj][/j}, (11)/
onde cada uma das O(nZ)entradas de LIsão
computa-das em tempo O(n).A Figura 5 ilustra asentradas da matriz LI que são preenchidas pelo algoritmo.
Infelizmente, a matriz LI' requer espaço O(n3),o
que praticamente inviabilizaria o método. Entretan-to, podemos observar que precisamos de LI' [iJlj][IJ
apenas em dois momentos:
"c. Papanicolaou, M. Gouy, and J. Ninio. An energy model that predicts the correct folding of both the tRNAs and the 55 RNA molecules. Nuc1eic Acids Res., (21):31-44, 1984.
"A. E. Peritz, R. Kierzek, N. 5ugimoto, and D. Turner. Thermodynamic study of internalloops in oligoribonucleotides: symmetric loops are more stable than ., asymmetric loops. Biochemistry, (30):6428-6436, 1991.
I4R. 8. Lyngs, M. Zuker, and C. N. S. Pedersen. Internalloops in RNA secondary structUre prediction. In Proc. 3rd Int. Conf Computational Molecular Biology (RECOMB'99). ACM, Apr 1999.
11
),OOO1.0UDJ.D1.1.1.DU101.0UDDOO1.01.0J.11.00J.OlOJ.OOO1.001.0UOOJ.ODOJ.011.0),0],],1.01].1010),),00001010],11.001010).00010010],),00).0001.0),:100101),],0111.01.0110 ],],D1.D1.1.00001010J.UOOlO),OlOOOlOOlOUOO1.D00101.1.01.0U1.0J.),101.0),],000010101.11001.010100010010),],00100010),),0101.1.1.0),],1010),),000OJ.01.01UOOlO1.01.1~OJ.DUI
.
Imes
.
Quando queremos determinar se ele é um
can-didato a LI
[iJlj];.
No cálculo do valor de LI'[i - 7][j + 7][1+ 2]. Isto é utilizado no algo ritmo representado pela Figura4, para evitar a manutenção da matriz LI'.2.4. Geração de soluções subótimas
Uma consideração importante que deve ser feita com relação às modelagens vistas e aos respectivos algoritmos, é que elas nos fornecem uma única solu-ção, que pode não ser necessariamente a estrutura verdadeira. Édesejável, então, que se tenha um con-junto de soluções, onde algumas delas representem valores subótimos, no que se refere à energia livre. Zuker15descreve um algoritmo que oferece soluções sub-ótimas.
Wuchtyet ap6apresentaram um algo ritmo que gera todas as estruturas secundárias subótimas dentro de umintervalo energético definido pela energia livre mí-nimada estrutura ótima e um limite superior arbitrário.
Figura5: Os círculos representam as entradas da matriz LI que são preenchidas no algo ritmo de Lyngs e Zuker para um dado par (i,j).
3. MELHORIA DA EFICIÊNCIA PARA CLASSES ESPECIAIS DE FUNÇÕES
Com o intuito de melhorar o desempenho do
algoritmo geral, alguns esforços foram empreendi-dos a partir de suposições acerca do comportamento
das funções de desestabilização dos laços. Alguns
algo ritmos melhoram sensivelmente a complexidade
de tempo supondo linearidade, convexidade ou
concavidade destas funções. Infelizmente estas su-posições não refletem de maneira confiável a realida-de biológica; ou seja, estas funções na prática não são lineares, convexas ou côncavas. De qualquer modo, estes algo ritmos representam avanços no cam-po estrito da computação.
3.1. Melhoria da eficiência
para funções
lineares
Caso façamos a suposição de que as funções de desestabilização 9 sejam lineares no tamanho k do laço, isto é, quando explicitamente fazemos g(k) = a + bk, então é possível reduzir o tempo de computação de barrigas e laços interiores para uma constante.
Isto leva a um algoritmo geral de complexidade de tempo O(n2)17,caso não consideremos os multilaços. Se nos cálculos levarmos em conta os multilaços, en-tão a complexidade de tempo do algoritmo geral é O(n3). Lembremos quejá estamos supondo a linearidade para os multilaços. Lembremos também que, como vimos na Seção 2.2, as expressões associadas ao cálculo de barrigas em i, barrigas em j e laços internos são
Ebi(i, j) = min {{3(k) + L(R. k I . _ I)}'
k;?7 1+ + ,j
Ebj(i, j) = min {{3(k) + L(Ri +1j._ k-/)}
k~1 '
e
Ei(i,j) = min {y(kI+ k) + L(Ri+ 1 + kl,j - 1-k2)}'
k,. kz ~1
respectivamente.
Analisando a expressão acima para Ebi(i,j), consi-derando {3linear e assumindo, por conveniência, que {3(k) = a + b (k -1), temos que Ebi(i,j) = min {a + L (R. 2 . 1), min {{3(k) + L(R. k , . I)}} 1+ ,j- k~2 1+ + ,j-= min {a + L (R. 2. 1), min {{3(/ + 1) + L(R. / 2 . I)}} I+,j- 1~1 I++,j-= min {a + L (R. 2 .
,
), min {{3(/) + L(R. / 2 . I)} + b} 1 + ,j-
I~ 1 1+ + ,j-= min {a + L (Ri+2,j_I)' Ebi(i + 1,j) + b}. "M. Zuker. On finding ali suboptimal foldings of an RNA molecule. Science, (244):48-52, 1989."5. Wuchty,W. Fontana, I. L. Hofacker, and P. Schuster. Complete suboptimal folding of RNAand the stability of secondary structUres. Biopo/ymers, (49):145-165, 1999. "M. S. Waterman and T. F. Smith. Rapid dynamic programming algorithms for RNA secondary structure. Advances in Applied Mathematics, (7):455-464, 1986.
r"u l AnO I nQ 1 J
.
a n/ J.
Un 2 OO5 I01.0001.0U010],],1.01.).1.0},Ol1.00001010Ul0D10J,01.0001.001.0UOOJ,OO01.0),1.010),),10],],],0101.1.00001.0101,),],00101.(1),0001001011.001.000),OU010),],],D1.1.1.0l0),),D01.0],],OOO1. -18t1111O I t 11.01.01.1.00001.DJ.DJ.J.J.DDJ.DJ.DJ.DDDJ.DDJ.DJ.J.DDJ.DDDJ.DUDJ.D),),J.DJ.J.J.DJ.DJ.1.DDDD1.D1.D1.1.1.DD1.D1.DJ.DDDJ.DD1.DJ.1.DD1.DDD1.D),),D1.DJ.),),D1.J.J.D1.DJ.J.DDDD1.D1.D1.1.J.DD1.DJ.DUD1.DD1.D1.J.D'iIiII f"-f"-I'"'"
f"-'" f"-'" "".
'" '" '"
. .
""'"
.
.
'"
""'"
. .
""'"
.
"" "" I"'-i,j
'" '" '"
"
'" '"
'" '"
""'"
""'"
'"
"""
'" '"
'"
"" '" '" '"'" '" ,'"
'" '"
""
D
"D1000J,OUD1o0U1D111oDIoOUOOOD1.D10U1.DD1.0J.O),OOOJ,OO1.0UD010DOJ.O],),01.0],),),O),),],010],],ODDOJ,01.0U1001010J.00010010l1.DD1D0010U0101.U01U010UOOD0101DU100101010D01.0010U00100010110J.0101UOQ1.
. 01 U01.0UOOOD1010),11DOJ,OlOl0001DOJ,IJ1.1D010001.0J.},OJ.01U01U0101100001010UJ,DOJ,010J.0001DOJ.DU0010001DJ.},OlOlU011J.DJ.OUOOD01.010],1,1(10).010).000),001011(10),0001011001.0100101.0000010101,),1001010 I A r t 1 9 o f~O),~Portanto,
ebi(i, j) = min {a + L (Ri+Z,j-,), ebi(i, + 1, j) + b}. (12)
Para barriga em j, de forma similar ao tratamento acima, obtemos que
ebjO,j) = min {a + L (Ri+I,j-z)' ebjO,j - 1) + b}. (13)
No caso de laços internos, a função ei O,j) pode ser reescrita da forma
{
minkl ="k2;;,'{Y(l + k) + L(Ri+1+1,j-l-J}, ei(i,j)= min minkl;;,I,k2~I{Y (k, + 1)+ L(Ri+l+kl,j-l-1)}' (14)
minkl >"k2>,{Y (k, + k) + L(Ri+1+kl,j-l-J},
Os dois primeiros casos da Expressão 14 são equi-valentes aos casos barriga em i (Expressão 12) e
bar-riga em j (Expressão 13), respectivamente.
Assumindo que y (k)
= c + d(k - 2), temos para o
terceiro termo da Expressão 14 queminkl> I, k2> 1{y (k, + kz) + L(Ri+ 1+k',j-l - kZ)}'
= minl;;,"k2>I{y(l + 1+ k) + L(Ri+2+I,j-l-J},
=d+ei(i+1,j),
Portanto, se supomos que as funções f3 e y são lineares, como indicado acima, então o tempo de
com-putação do algoritmo geral - se excluírmos os
multilaços - consome tempo e espaço O(nZ).
3.2. Melhoria da eficiência para funções
côncavas e convexas
Dizemosque umafunçãow(x,y)é
côncavaquan-do elasatisfaza desigualdadequadrangular
wO,j) + wO',j') ~ wO', j) + wO,j' ),
para todo. i ~ i' ~ j ~/. De forma similar, dizemos que
w(x, y) é convexa quando -w(x, y) é côncava, ou seja: wO,j) + wO',j') ~ wO', j) + wO,j').
3.2.1. Algoritmo de Eppstein
Proposto por Eppstein, Galil e Giancarlol8,neste
algoritmofaz-sea suposiçãode que
nãoocorremmulti-laços na estrutura, bem como a função que fornece o
custo (contribuiçãoenergética)de um laço, denotada
por g(k), onde k é o número de bases acessíveis ao
laço, é convexa. Assim sendo, a Expressão (5)
(excetuando-seos multilaços)pode ser reescritacomo
V[ i, j] +- E(L. .) = min {eh O,j), C [i, jU,r,} onde
C [i,j] = min {V[i',/] + g((i' - i) +
ü -i))}.
i< i'<j'<j (1 5)
u K
Para simplificar a apresentação do algoritmo, a
recorrência (15) é modificada através da mudança de algumas variáveis. Especificamente, fazemos E [i,j] =
C [n- i-I, j], O [i,j] = V [n - i-I, j], e w(x, y) = g(y - x).
Daí a recorrência (1 5) torna-se
E[i,j]= min {O[i',j']+w((i'-j',i+j)}. (16)
o~i'< i O~}'<j
A restrição i' < j' presente em (15) não está con-templada em (16). Isto pode ser tratado com a atri-buição V[i,j] +-00 quando i+j> n+ 1 ou reescrevendo a recorrência (16) da seguinte forma
E [i,j] = min {O[i',j'] + w((i' + /, i + j)}. (17)
i' < i }'<j i' + }' >n+ 1 si P P (r p e a t( j' J] 9 p f\I fê d
A partir desta modelagem, Eppstein, Galil e
Giancarl018formularam um algoritmo com tempo de execução O(nzlog2n).
3.2.2. Algoritmo de larmore e Schieber
Larmoree Schieber19melhoraram o tempo de
exe-cução para O(nZ)no caso de funções côncavas.
Apre-sentaram ainda um algoritmo cujo crescimento
assintótico é expresso por O(n2a (n)no caso de
fun-ções convexas, onde
a
(n) é uma função comcresci-mento extremamente lento (inversa da função de
Ackermann).
Lembremos que o objetivo em questão é resolver o problema de programação dinâmica bidimensional representado pela recorrência (16). Para fazê-Io, o
algoritmode Larmoree Schieberutilizacomo
módulo um outroalgoritmoque resolveumproblemade
pro-gramação dinâmica unidimensionalsimilar
represen-tado pela recorrência
E[I]= min {O[i']+wO',i)IO~i'~C.}. (18)
l~~n I
o~c,~...~Cn~n
Este algoritmo que resolve o problema de progra-mação dinâmica unidimensional faz uso de duas su-posições:
1. Os valores de O [j] paraj = Ci_, + 1, ..., C;são facilmente computados a partir dos valores de
E [ i-I ]. Por conveniência definimos Co=O;
9 q ti V C q fi s t t r s s (
;-"D. Eppstein, z. Galil, and R. Giancarlo. Speeding up dynamic programming. In 28th Symposium on the Foundations of Compu ter Science, pages 488-495,1988. 19L.Lamore and B. Schieber. On-line dynamic programming with applications to the prediction of RNA secondary structure. In First ACM-SIAM Symposium on
Discrete Algorithms, pages 503-512, 1990.
II
.OOD1.0UD1.DJ,UO),),),OJ.O),),OOOOJ.OJ.OU100101.010D01.00101.1.DOJ.OD010),],OlO),],),O),),),010J.J,uoao),01.OJ.1.J.OO),O),OlOOOJ.OOJ.OJ.1.001000lOU010UJ.OJ.U010),),° 1 R.
t d I f át ' A 1.
d 10.1oul
t
. Artigo2. A função w é côncava.
Para o caso de w ser convexa, Larmore e Schieber
utilizam-se de outro algoritmo, desenvolvido por
Klawee Kleitman20, para resolver a recorrência 18. O problema de programação dinâmica unidimen-sional,mencionado acima, pode ser visto como um problema de busca em matriz. O algoritmo descrito
porLarmore e Schieber não resolve
este
problema(recorrência18) diretamente. Elestratam-no como um problema de busca em matriz. Para que possamos
enunciar este problema equivalente é necessário,
antesque façamos algumas definições.
Uma matriz n x m triangular M é dita ser monotônica totalmente côncava se para todo 1.::;; i < i' .::;;n e O .::;;j'::;;
j' <m, a desigualdade M [i,Jl >M [i,/] implica que M [i',
J1>M [i',j']. De forma similar uma matriz nx m
trian-gularMédita ser monotônica totalmente convexa se
paratodo 1.::;;i < i' .::;;n e O.::;;j.::;;/< m, a desigualdade M[i, Jl < M [i, /] im plica que M [i', Jl < M [i' J']. Para facilitar, assume-se que todos os elementos finitos deM são distintos.
Uma matriz n x m é dita ser triangular superior
generalizada se existem O.::;;
C,
.::;;C2.::;;Cn=m - 1 talqueM [i, Jl = 00 para todo C;< j < m. Uma matriz
triangular superior generalizada é côncava (ou
con-vexa) totalmente monotônica, se a condição de
concavidade(ou convexidade) acima mantém-se para qualquerquatro entradas não infinitas de M, as quais formam uma submatriz retangular.
O problema de programação dinâmica unidimsionalrepresentado pela recorrência 18 pode ser, en-tão,traduzido em um problema de busca em uma
ma-triz triangular superior generalizada totalmente
monotônica. Definimos uma matriz
n x m
triangularsuperior M por
M[i, i'] = D[i'] + w(i', i) 1.::;;i.::;;n, O .::;;
i'
.::;;C..I (19) O resto dos elementos de M são definidos comosendo00. Então resolver a recorrência 18 é equiva-lente a encontrar o elemento mínimo em cada linha damatriz M.
Éinteressante notarmos que a suposição de que w é côncava traduz a condição de que M é côncava
totalmente monotônica. Da mesma forma, supor que w é convexa traduz a condição imposta de que M é conve-xa totalmente monotônica. é interessante observarmos também que a restrição - atribuída aos elementos das colunas C;_,+ 1,..., C; de M (que não
estão
definidos como00) - que determina que estes devem estardispo-níveis apenas depois do elemento mínimo na
linha i-1 ter sido calculado, implica que não necessita-mos de todas as entradas da matriz D o tempo todo.
Vamos então definir o problema equivalente de busca em matriz. Seja M uma matriz n x m triangular superior generalizada totalmente monotônica. As li-nhas de M são indexadas no intervalo 1,..., n e as
colunas no intervalo O,..., m - 1. Paracada 1.::;;i.::;;n existe uma coluna C;_,'::;; C; < m tal que M [i, Jl = 00, para todo j > C;. Queremos então encontrar o ele-mento mínimo em cada linha de M considerando a seguinte restrição: para i> 10 valor de c; dos
elemen-tos das colunas C;_,+ 1,..., C; de M (que não
estão
definidos como00) estarão disponíveis apenas depois
de calculado o elemento mínimo na linha i
- 1.
Larmore e Schieber conceberam então um
algoritmo linear para resolver o problema definido
acima. Isto levou à formulação de um algoritmo para
resolver o problema de programação dinâmica
bidimensional- representadopela
recorrência16-que consome tem po O(n2),no
caso
de w ser côncava.Klawe e Kleitman21construíram um algoritmo para o problema off-line de busca em uma matriz triangu-lar superior generalizada totalmente monotônica que consome tempo O(n a(n)), onde aé a inversa da
fun-ção de Ackermann. Larmore e Schieber utilizaram este
algoritmo
para resolver o respectivo problema on-line e, a partir daí, formularam um algoritmo para opro-blema de programação dinâmica bidimensional
(recorrência 16), que consome tempo O(n2a(n)), no
caso
de w ser convexa.4. IMPLEMENTAÇÃO E CONCLUSÕES
Desenvolvemos implementações eficientes dos
algoritmos mais expressivos baseados em cálculo de energia livre mínima, tanto do ponto de vista da comple-xidade computacional (de tempo e espaço), quanto da
representatividade do modelo termodinâmico:22, 23,24,2S.
"M.M. Klawe and D. j. Kleitman. An almost linear time algorithmfor generalizedmatrix searching. InTechnical Report R} 6275, IBM - Research Division, Almaden
Research Center, 1988.
/!M.M.Klawe and D. j. Kleitman. An almost linear time algorithmfor generalizedmatrix searching. InTechnical Report R} 6275, IBM - Research Division, Almaden
Research Center, 1988.
R. Nussinov, G. Pieczenik, j. R. Griggs, and D. j. Kleitman. AIgoritms for loop matchings. SIAM}. appl. Math., (35):68-82, 1978.
M. Zuker and C. D. H. Turner. Algorithms and thermodynamics for RNA secondary structure prediction: A practical guide. (333):333-344, 1999.a
M. 5. Waterman and T. F. 5mith. Rapid dynamic programming algorithms for RNAsecondary structure. Advances in Applied Mathematics, (7):455-464, 1986. R. B. Lyngs, M. Zuker, and C. N. S. Pedersen. Internal loops in RNA secondary structure prediction. In Proc.3rd Int. Con(. Computational Molecular 8iology
(RECOM8'99). ACM, Apr 1999.
,li AnO I nQ 1
J
.
a n / J.
Un 2 OO5 IOlODOJ.OU01.o),),),oUJ.01.o),),oOOO1.01.011,1.DD1.D1.D1.DOD1.DD1.D),),OO1.DD01.0J.1010),),),D1.U01.0),),OOOOJ.01DUJ.OOJ.0101.DOO1,DD1.01.1.DOlOOO1.01,1.01.01.uoUJ.OJ.01.1.DD10UOOO1. I!I!!I-RIm
!OlODD1.D1.1.0},O),),],OJ.J,J.01.DJ.J.DDDOJ,D1.DUJ,001.0J.OJ,OOOlOOJ.OUOOJ,OD01.0),:l.01.011).01U010110000),010111.001.0).010001001.01.).001000),OUO1.01olJ.O),},),OJ.O),),OOOOlOJ.OU1.00J,OlOJ,OOOlOO1.0UOOJ,DOO1oOUOJ.OJ,OJ,U001
I Ar t 1
.
9O lI~n.D)')UOJ.OUDOOD1,OJ.01U0010J,DJ,ODOJ.OOJ,OJ,J,OOJ.OOOJ.OUO),01],J.O],),),OlOUDDOOJ.OJ.OJ.UOO1,OlOJ,OOO),OOlQ),),OOJ.00010UOJ.O),],),OU10J,O),),OOOD1.OJ.OlUD010J.OJ.OOO),OO}.Q],],OOJ,0001.0UOOJ.OJ,OOJ,OlODODOJ,OJ.01UOOJ.010 1L~),o],IJ
Estas implementações tiveram como propósito
possibilitaro entendimento, preciso e detalhado,
des-tes métodos e modelos. Ocódigo C gerado, os
arqui-vos de dados e demais arquiarqui-vos necessários à
execução dos programas estão disponíveis e podem
ser acessados no endereço http://www.ime.usp.br/
dcc/posgrad/teses/rozante.
Nesteendereço encontra-setambém disponívelum
arquivo no formato dvi/ps, contendo um documento
com mais detalhes a respeito dos métodos, modelos
e implementação em questão. Este documento foi
construído sob a filosofialiterate programming
(am-biente CWEB26),
de modo que inserimos, de forma
"di-luída",código C ao longo do texto principal.Ou seja,
à medida em que os conceitos e métodos são
apre-sentados, incluímos,no ponto da apresentação, o
có-digo correspondente ao conceito ou método.
A precisão dos resultados
fornecidos pelos
algoritmosbaseados em minimizaçãode energia
ten-dem a melhorar, na proporção em que os parâmetros
termodinâmicos se tornam mais precisos. Neste
con-texto, os parâmetros de energia tendem a incorporar
cada vez mais casos especiais que surgem à medida
em que avança o conhecimento sobre as
proprieda-des físico-químicasdos ácidos nucléicos.
Emrelaçãoàs soluçõesfornecidas pelosalgoritmos
baseados em cálculo de energia livre mínima,
pode-mos dizer que essas soluções podem não descrever
adequadamente a situação real. Emoutras palavras,
o modelo adotado para descrever as interações
termodinâmicas pode não capturar a totalidade das
situações que efetivamenteocorrem na natureza. Isto
ocorre por dois motivos.
Primeiro,os parâmetros de energia com os quais
os algoritmos trabalham são inevitavelmente
impre-cisos. Logo,a estrutura de energia livremínima pode
ser sub-ótima em relação aos parâmetros usados. O
mesmo pode ocorrer em função do não
conhecimen-to (ou não tratamenconhecimen-to) de alguma restrição biológica
que pode alterar as energias relativas, tornando/I
e-vando a uma outra estrutura sub-ótima entre as mais favoráveis. Estes fatos justificam o desenvolvimento de algoritmos que forneçam várias soluções.
Os algoritmos de Eppstein e Larmore representam importantes avanços no campo estrito da computa-ção para o problema. No entanto, eles não
represen-tam um avanço importante do ponto de vista da
contribuição biológica, pois, na natureza, as funções
de desestabilização de laços não são convexas nem
côncavas. Além disto, a suposição de não existência de multilaços não é razoável.
Como a suposição de linearidade é ainda mais restritiva do que a de convexidade e a de concavidade, não acreditamos que algoritmos baseados nesta su-posição representem contribuições significativas para o problema.
Algoritmos baseados em minimização energética conseguem operar sobre uma única seqüência e, em relação à qual, não é necessário conhecer qualquer informação filogenética. Isto representa uma vanta-gem desta estratégia em relação àquela baseada em análise comparativa, já esta última, exige que se dis-ponha de um conjunto de moléculas homólogas como entrada, o que nem sempre é possível.
No entanto, parece razoável supor que, com o tem-po, o acúmulo de informação nas bases de dados de bioseqüências pode levar a um estado onde raramen-te, para um dada seqüência, não se disponha de um conjunto de homólogos.
Os métodos baseados em análise comparativa con-seguem detectar interações terciárias (pseudonós) na estrutura. Isto representa uma vantagem desta estra-tégia em relação àquela baseada no cálculo de
ener-gia livre mínima. Esses métodos, geralmente, são
insensíveis a pequenas variações na seqüência de
nucleotídeos, enquanto nos métodos baseados em cálculo de energia livre mínima, pode-se chegar a es-truturas muito diferentes a partir de seqüências que variam em poucas bases.
~
Artigo"" ,
(REFERÊNCIAS BIBLIOGRÁFICAS
F-~
PERITZ,A. E.;KIERZEK,R.; SUGIMOTO, N.; TURNER, D.
Thermodynamicstudy ofinternalloops in oJigoribonucleotides: symmetricloops are"morestable than asymmetricloops.
Biochemistrv.(30):6428-6436,1991.
GOlJY,M.; NIt;jIO,
J.
An energy model that ding of both the tRNAsand the 5S.RNAids Res.,(21):31-44,1984.
KNUTH,D. E.;LEW,S.The CWEBSystemof Structured
Documentation. Reading, Massachusetts: Addison-Wesley, 1993. EPPSTEIN,D.; GALlL,Z.; GIANCARLO,R.Speedingupdynamjc
programming.In28th Symposium on the Foundations of ComputerScience, pages488-495, 1988.
SANKOFF,D. Simultaneoussolution of themRNAfolding, alignmehtand protosequenseproblems.SIAMj.Appl. Math., (5):1-35,1985.
RIVAS,E; EDDY,S.A dynamic programming algorithmfor RNA
structureprediction including pseudoknots.journal of Molecular Biology, (285):2053-2068, 1999.
EIDA~JS,
J.
Introducti,o!,! to Computational y. )CUNICAMP/PWS, 1997.LAMORE,L.;SCHIEBER,B.On-linedynamicprogrammingwith
applicationsto the preclictionof RNAsecondarystructúre.In
FirstACM-SIAMSymposium on DiscreteAlgorhhms, pages
503-512,1990.
-...
,
~
l.J.
Analrnostlineartime algorithmfor Technical ReportRj 6275, IBMesearcl:1Center, 1988.
. 5 and thermodynamics iction: Apractical guide.
ZUKER,M.Onfinding ali molecúle. Science,(244):4
ai foldings of an RNA 989.
ZUKER,M.;.SANKOFF,D. RNAsecondary structures andtheir
prediction. Buli. Math. Biol., (46):591-621, 1984.
, T. F. Rapiddynamic programming dary strúctúre. Advances in Applied 5-464, 1986.
LYNGS,Ri secondary MolecíJJa
DERSEN, C. N. S. pseudoknots in RNA
ture. In Proc. 4rd Int. Conf. Computational
gy (RECOMB'OO). ACM, Apr 2000..
NUSSINOV,'R.;PIECZEN)K, G.; GRIGGS,J. R.; KLEITMAN, D.J,
Algoritms forloop ma!.éhings. SIAMj. appl. Math., (35):68-82, 1978. LYNGS"R.B.;ZUKER, secondarystructúre Computational Moi S. Internalloops inRNA 3rdlrit. Conf; PMB'99). ACM, Apr 1999.
WUCHTY, S.; FONTANA, W.;HOFACKER, I. L.; SCHUSTER, P. Complete suboptimal folding of RNAand the stabilityof
secondarystructures.Biopolymers,(49):145-165,1999.
11
o .. 010D01oDJ,).O},01.1.1.DUl010U000010101UDOJ,OJ,OJ,DOO),OD1.0UD01.0DD],Ou.OJ,01.1,1.01U01.D),1.00001.0l0U10010},OJ,OD01.DO},01.1.DO),OOO1.O),),010UI.01.1.1010U001011.0001.