• Nenhum resultado encontrado

ALGORITMOS DE ALINHAMENTO DE SEQÜÊNCIAS MOLECULARES

N/A
N/A
Protected

Academic year: 2021

Share "ALGORITMOS DE ALINHAMENTO DE SEQÜÊNCIAS MOLECULARES"

Copied!
8
0
0

Texto

(1)

ALGORITMOS DE ALINHAMENTO

DE SEQÜÊNCIAS MOLECULARES

MOLECULAR SEQUENCES ALIGNMENT ALGORITHMS

E. Bilha, E. di Grazia, L.T. Ono, M.R. Cardoso,

M.C. Smynniuk, L.C. Rozante

[email protected]

IOlOD01D],],01.01,J,1.0],),),01.0J,],OOOO1.010UJ,001.01.01.00010010UOOlOOOlOUOJ.01.1.J.OJ,),),OlO1.1.0D00101.D1.1.1.001.0],(I1.0001.00J.O],],OOlO0010),),0101],10],),),0101],0010],),0001

11I

U0101.1.DD001DJ.DUJ.OO1.01.0J,OOQ).OD1.D),),OO1.00010UDJ,O),],101.1.1.01.OUOODOlOlO),),),OO1.01.0J,ODOJ,OO),01.),D01.0001.0),J,D1.0U1.D),],),OJ,O),],OOOOlOlO],],],OD1.0l0U.OJ,001.01.l,O

(2)

.

..

1. INTRODUÇÃO

Hoje, sabemos que o DNAé o material genético de toda a vida na Terra. O DNAé formado por três com-ponentes, sendo: um grupo açúcar (desoxirribose), um agrupamento fosfato e uma base nitrogenada, que pode ser de quatro tipos: Adenina (A), Guanina (G), Citosina (C)e Timina (T).

A cada dia, é anunciada namídia

uma nova

desco-berta, trazendo à tona esperanças em relação à cura de doenças, à melhoria do processo de justiça crimi-nal e à prevenção de problemas ambientais, entre outros. Porém, para a concretização de muitas das

expectativas recentemente criadas, ainda há muito

estudo e investimentos pela frente, o que poderá con-sumir décadas de pesquisas.

No entanto, o ritmo das descobertas científicas vem aumentando, pois os cientistas estão usando as ferra-mentas da bioinformática na busca de soluções para os problemas em todos os ramos da biologia, desde biolo-gia molecular até ecolobiolo-gia e evolução, por exemplo.

A abrangência da bioinformática/biologia

computacional é muito extensa, de modo

que o foco

deste trabalho se restringirá à comparação de

bioseqüências e suas aplicações.

Dentre as diversas pesquisas na área, podemos des-tacar também o desenvolvimento de técnicas e

méto-dos de armazenamento em bases de dados de

bioseqüências, em particular as seqüências de ácidos nucléicos e aminoácidos e suas respectivas anotações.

O alinhamento de bioseqüências tem por objetivo comparar uma seqüência a outra(s) obtendo trechos semelhantes entre elas. Isto pode ter várias aplicacões:

.

Métodos para determinação de grau de

paren-tesco, tais como testes de paternidade;

.

Métodos para identificação de pessoa específica,

por exemplo, no caso de identificação criminal;

.

Métodos para classificaçãode espécies, por

exem-plo, com a descoberta de um novo organismo. O objetivo principal deste trabalho é o estudo de algoritmos de alinhamento de bioseqüências, basea-dos em programação dinâmica. O problema de ali-nhamento pode ser formulado em termos da pesquisa de similaridade entre uma dada seqüência específica e outras depositadas na base de dados. Isto implica, dependendo do tamanho das entradas, em um razo-ável custo de computação [Meidanis, 1994]. Esta

ope-ração (cálculo de similaridade) tem como função

encontrar trechos semelhantes de seqüências

moleculares, o que, aparentemente, representa uma

tarefa simples. Porém, devemos observar que há vári-os problemas distintvári-os, com formalizações diversas, em sua maioria, exigindo algoritmos e estruturas de dados próprias para a execução eficiente.

Como o algoritmo básico de alinhamento possui

complexidade quadrática [Meidanis, 1994], vários

métodos alternativos tipo heurística foram desenvol-vidos para obter menor tempo de execução, pois à medida que o volume de dados a ser analisado au-menta, o tempo de execução se torna crítico.

Existem vários algoritmos de alinhamento, que são divididos em famílias; por exemplo, os da família FAST e os da família BLAST.Essas famílias representam métodos largamente utilizados por pesquisadores da área [Meidanis, 1997].

Este trabalho está organizado da seguinte forma:

na Seção 2, são apresentadas as definições sobre

ali-nhamento de moléculas e seus principais problemas; na Seção 3, descrevemos alguns algo ritmos envolvi-dos na comparação de biosseqüências em banco de dados, com suas respectivas complexidades; na

Se-ção 4, são apresentadas informações relacionadas à

implementação que desenvolvemos, as conclusões e expectativas de trabalhos futuros.

2. DEFINiÇÕES

Definimoscomo seqüência ou cadeia uma

justa-posição de caracteres de um dado alfabeto S. Assim,

se S = {A,C,T,G},então AAACe AGCsão exemplos de seqüências [Meidanis, 1994].

Dada uma seqüência k, uma subseqüência de k é uma seqüência que poderá ser obtida a partir de um

fracionamento de k, por exemplo, ACG é uma

subseqüência de ACGTe ACT não o é. Uma subcadeia é uma seqüência obtida a partir da segmentação de uma cadeia, por exemplo, ACG é uma subcadeia de

ACGT e AGC não o é. Toda subseqüência é uma

subcadeia, mas, o inverso não o é.

Dadas duas seqüências distintas, k e y, obtemos a concatenação de ambas justapondo os caracteres de k aos de y, por exemplo, dada uma regra na forma

w = k X y, dizemos que k é sufixo de w, y é prefixo de we x é um fator de w [Meidanis, 1994].

Um buraco é um símbolo que não pertence ao al-fabeto S, que neste trabalho será representado pelo

caractere

·-' [Meidanis, 1994].

2.1. Dados

Com o avanço das pesquisas e o número de

bioseqüências cadastradas crescendo

exponencial-mente, tornou-se necessário a utilizaçãode sistemas

(3)

.

Imes

gerenciadores de bancos de dados (5GBD),que são

mais adequados para o gerenciamento de grandes

volumes de dados [Doolitle, 1990]. A grande maioria das informações sobre bioseqüências estão armaze-nadas em bancos de dados relacionais ou sistemas orientados a objeto. Temos como exemplo o GenBank [Benson, 2000], que é um banco de dados público de bioseqüências, que contém as informações biológi-cas e bibliográfibiológi-cas e é produzido pelo National Center for Biotecnology Information [NCBI].

Em um banco de dados bioMolecular (BDBM),o vo-lume de dados que será armazenado tornou-se um ponto critico, já que a massa de dados vem crescendo rapidamente, principalmente com o sequenciamento do genoma de vários organismos, inclusive do homem.

3. ALGORITMOS

Osalgoritmosmais utilizados na atualidade são os

da família BLA5T(Basic Local Alignment 5earch Too~ [Meidanis, 1994], que estão baseados em programa-ção dinâmica [Cormen, 1990]. Na implementaprograma-ção des-tes, existem alguns parâmetros que variam de acordo com o banco de dados que está sendo pesquisado (se-qüência de proteínas ou de DNA).

O BLA5Tutiliza como entrada um banco de dados, que nada mais é do que um arquivo texto organizado em um formato chamado FA5TA,contendo as seqüên-cias e seus respectivos cabeçalhos; cada cabeçalho possui algumas informações da bioseqüência que o segue.

A seguir, a Figura 1 ilustra um trecho de um arqui-vo em formato FA5TA:

>9i12983882 K+ transport protein homolo9

MVKKLNPSRTLLFSFSLlILVGALLLYLPISTTRPISFLDALFTATSAVTVTGLAVLDTYSDFTLFGKLV ILFLlQVGGLGYMTLSTFFLVLLGRRIGLKERLlLAESLEYPSMHGLlRFLKRVFSFVFITELTGAILLS IYFSLKGVEDPVFNGIFHSVSAFNNAGFSTFKNGLLDFRGDLFVNLVISFUILGGIGFFWNDIYLWYT KKVPRlSVHTKLVMITSVWLlGTVGUFTEFGNYKGLWQYDWYERJLSSYFMSVSSRTAGFSTVDUD MSESSQFLlMILMFIGASPGGTGGGIKTTTFWILlAVYSFVRGREQSVIFERSVPESTIKKALVILSLS IFFINFVNLMLDKFENKDFLYTMFEWSAFSTVGLSIGNPEGLSFCADFSPLGKIVIIITMLVGRLGILG FALALTGRSEVQRIKYPEARILV

Figura 1: Exemplo de arquivo FASTA.

Para melhor esclarecer o funcionamento dos

algo ritmos BLA5T,vamos utilizar um exemplo: consi-dere o problema de obter o alinhamento ótimo para o par de seqüências AAACe AGe. Como pode haver mais de um alinhamento, o propósito básico desses algoritmos é determinar qual o alinhamento ótimo.

AAAC AG C AAAC-AG C AAAC

AGC-Figura 2: Possibilidades de alinhamento de última coluna.

Como pode ser visto na Figura 2 existem três possi-bilidades para a última coluna: alinhar C com C, C com buraco ou buraco com e.

Após identificar essas possibilidades, podemos

calcular o score para cada uma delas. Poderíamos

executar o mesmo procedimento, recursivamente,

para cada uma das possíveis subseqüências (de cada uma das seqüências originais) restantes. Este

méto-do apresenta o problema de gerar um número

exponencial de chamadas recursivas, sendo muitas delas redundantes.

Não há necessidade de calcular mais de uma vez o

score do alinhamento de duas colunas em duas

subseqüências, desde que os resultados sejam

guar-dados de maneira que possam ser consultados pos-teriormente (e rapidamente). Este é o princípio básico

da programação dinâmica. Em geral é usada uma

matriz para guardar os resultados parciais.

3.1. Matriz de pontuação

Como dissemos, usamos programação dinâmica

para evitar cálculos redundantes; para isso, é

neces-sária uma estrutura de dados que armazene os resul-tados parciais para consultas posteriores, no caso,

uma matriz de pontuação.

Para ilustrar, vejamos a matriz da Figura 3: a se-gunda linha representa a primeira seqüência, 51 (no exemplo é a AGC), a segunda coluna representa a segunda seqüência, 52 (no exemplo é a AAAC).Um tamanho genérico m é atribuído à seqüência 51 por

isso, será representada por 51 [1...m], da mesma for-ma, para a seqüência 52 é atribuído um tamanho

ge-nérico n e é representada por 52[1...n]. Quando o

prefixo de comprimento i da seqüência 51 for

consi-derado, será representado por 51 [1...i], da mesma

forma em 52 será representado por 52[1...j]' Os

valo-res de i e j são exibidos na primeira linha e primeira coluna da matriz, sendo que 1 ~ i ~ n e 1 ~ j ~ n.

Cada célula (i,j) da matriz representa a pontuação (score) do alinhamento de melhor pontuação entre dois prefixos de 51[1...i] e 52[1...j]; veja na Figura 3

as subseqüências consideradas para cada célula (i,J)

da matriz de pontuação correspondente ao exemplo da Figura 2.

101.01.1.

1 A I o 1

.

/

.

2 OO5 101.0001.O),},01.OJ,uoUJ.01.01.),oooOJ.OJ.O),),J.oOJ.OJ.OJ.OOO1.OOJ.OJ.1.0010DD1.D],],OlO),],),OU1.01.0UOOOO),OlOJ,1.1.00),01.01.0001.001.0UOO1.DDOJ.O),:l.0),0],],101U01.0),1.001011000),

M

(4)

-

.

OlODOJ.OU010U1.0],),),DJ.OUOOOO].01,01.:u,001.DJ,01.0001.0010J.1.D01.0001.0UOJ,01.],),01.),),OJ.O),),ODD01010U1.001.0J.01000J,001.0UOOJ,OOOJ,Q),),OlOI,),),OU1.01.0],],ODOD1.010UJ,OOJ,O),OlODO),OO1.0UOOJ.OOOJ,OU,OlOJ,O1],),001 1 Ar t 1

.

9O 8:110001 ].1010],),000010101),1.001010100010010),),001.00010U0101,),),0].11010],),OOOOlO1.0],],1.D0101.0J,OOOJ,0010),),OO1.ooO),OU01.0U1.DU1010),],OD001.01.OU],OOJ,01.DJ,0001.0010UOOJ.000101.1.DOJ,OlOOJ,01.000IJOl010J.],),00J.010 11.l01Gl

o

score de A

I

AAA é calculado da seguinte forma na matriz:

.

Soma-se o score (-1) de A I AA a (-2). Isto porque

o a\\nnamento da ú\tima coluna que foi feito em A \ AAApara se obter A I AAfoi A 1-, cujo score é -2.

.

50ma-se o score (-6) de - I AAAa (-2). Isto

por-que o alinhamento da última coluna por-que foi

fei-to em A

I

AAApara se obter

-I

AAA foi

- I

A, cujo

score é -2.

.

Soma-se o score (-4) de -I AA a (+ 1). Isto porque

o alinhamento da última coluna que foi feito

em A

I

AAApara se obter -

I

AA foi A

I

A, cujo

score é + 1.

A maior das somas acima será o score de A

I

AAA.

No caso, teríamos os valores -3, -8 e -3, sendo assim

o score de A

I

AAA é -3.

O pseudo código da Figura 4 descreve com maior precisão o funcionamento deste algoritmo no preen-chimento de cada célula. Os cálculos devem ser efetuados, de modo que os valores de células anteri-ores, necessários para determinar o valor de uma cé-lula, estejam disponíveis no momento certo. Este

algoritmo calcula a pontuação entre 51 [1...m] e

52[1...n], dependendo de um parâmetro 9 que indica o peso de um buraco (no caso o valor -2) e de uma função p para pares de caracteres (no caso foi usado

p(x,y)= 1 sex=yep(x,y)=-1 sex;t y).

Sim(Sl,S2)j* IS11= m,IS21= n *j Parai+-O até mfaça

a[i,O] +- i * g

Fim para

Para j +- Oaté n faça a[Oj] +-j * 9 Fim para

Para i +- 1 até m faça Para j +- 1 até n faça

ali, j] +- Max{a[j-1j] + g, a[i-1j-1] + p(i, j) , a[ij-1] + g} Fim para

Fim para

Figura 4: Algoritmo básico de programação dinâmica para comparação de seqüências.

3.2 Algoritmo

traceback

Quando as pontuações de todas as células forem calculadas, é então possível obter o alinhamento óti-mo; para isso, é necessário percorrer as células da matriz. Neste percurso, cada movimento de uma cé-lula para outra corresponde a uma coluna do alinha-mento. Genericamente, estando na célula ali, j), é possível ir para as células a[i-l ,j], a[iJ-l] ou a[i-l J-l]. Se o passo for de a[i,j] para a[iJ-l], significa que está sendo considerado o alinhamento de um buraco em 52[1...j) e um caractere em 51[1...i]. Se o passo for de a[i,j] para a[i-l J], significa que está sendo considera-do o alinhamento de um buraco em 51[1...i] e um caractere em 52[1...j). 5e o passo for de ali, j) para

Il

Io00010J.1.01.0J.UO],},],OlO1.),OOOO1.01.0],],],OOlOlOJ.000100J.OUOD1.D001.0),),01.0),),),01},1.010),),00001010),),},0010J.010001.00:l.01.],0010001.0),),01011.1.01.1.1.010),),°

1ReV1'sta de In formát 1

.

ca Ap11

.

cada 10101 J.01D110aOOJ.010U1001D1D1D001DD1D11.DD1DOD1D1J.01.0111DJ,UO\.01.1.000010101.),),00101.01.000).00101.100100010),),010],),),01.),1.01.0),),00001010),),100101.01 UO

j 151[1...m]

52[1...n]

I -

I

A

I

G

I

C

I

-I-

A 1-

AGI-

AGCI-O I

-

I51[0]

I 51[1]

I 51[1...2]

I 51[1...3]

52[0]

52[0]

52[O]

52[0]

-I A

AIA

AGIA

AGCIA

A

I 51[0]

I 51[1]

I 51[1...2]

I 51[1...3]

52[1]

52[1]

52[1]

52[1]

-I AA

AIAA

AGIAA

AGCIAA

2

I

A

I 51[O]

I 51[1]

I 51[1...2]

I 51[1...3]

52[1...2]

52[1...2]

52[1...2]

52[]...2]

-I AAA

AIAAA

AGI AAA

AGCIAAA

3

I

A

I51[0]

I 51[1]

I 51[1...2]

I 51[1...3]

52[1...3]

52[1...3]

52[1...3]

52[1...3]

- IAAAC

A 1AMC AG I AAAC

AGCI AMC

4

I

C

I51[0]

I 51[1]

I 51[1...2]

I 51[1...3]

52[1...4]

52[1...4]

52[1...4]

52[1...4]

(5)

.

a[i-lj-l], significa que está sendo considerado o ali-nhamentode um caractere em S2[1...j] e um caractere emSI(I...i/.

Seguindo este raciocínio, é construído o alinhamen-to ótimo percorrendo a matriz, calculada anteriormen-te, a partir da célula da posição [m, n].

Nesta etapa, estando em uma célula (ij), precisa-mos descobrir como foi obtido o score da célula (ij), segundo as regras descritas. Para isto, basta fazer as somas dos scores das células vizinhas (a[i-l j), a[ij-l} ou a[i-lj-l}) com p(i, j) ou 9 (dependendo do caso) e encontrar qual das somas é igual ao score procurado. Descobrindo a célula vizinha responsável pelo score da célula que está sendo tratada - (i,j), descobre-se também o alinhamento de uma determinada coluna, o próximo passo é fazer a mesma análise para esta célulavizinha escolhida, desta forma a matriz vai sen-do percorrida.

É possível que mais de uma célula vizinha possa ser a responsável pelo score da célula que está sendo tratada, neste caso, qualquer uma delas é válida, fica

a critério do programador determinar o caminho a

seguir. Para ilustrar, apliquemos esta idéia ao exem-plo da Figura 2, para verificarmos o alinhamento

óti-mo de AGC e AAAe.

Figura5: Vetor com resultado do alinhamento.

Siga as setas na matriz apresentada na Figura 6 e os passos a seguir:

.

A análise se inicia na última célula da matriz,

que corresponde às seqüências AGCe AMe.

Testa-se como o score desta célula é -1 . Asoma da vizinha acima seria (-1-2) = -3, da diagonal esquerda seria (-2+ 1) = -1, e da esquerda seria

(-4-2)

=

-6. Então o score é igual à soma da

vizi-nha da diagonal esquerda, que corresponde ao

alinhamento da última coluna de AGC

I

AMC,

que é C

I

C (lembrando que os outros casos

tratados eram C 1- e -I C),

passando a analisar

a vizinha da diagonaJ esquerda;

.

A análise continua na célula das seqüências AG

I

AAA,

vendo que o score desta célula é -2. A

soma da vizinha acima seria (0-2) = -2, da diagonal esquerda seria (-1-1) = -2, e da esquer-da seria (-3-2) = -5. Então o score é igual à soma da vizinha da diagonal esquerda (ou da vizinha acima, mas será escolhido aqui a diagonal

es-querda), que corresponde ao alinhamento da

última coluna de AG

I

AAA, que é G

I

A

(lem-brando que os outros casos tratados eram G

1-e -I

A), passando a analisar a vizinha da diagonal

esquerda;

.

A análise continua na célula das seqüências A

I

AA, testa-se que o score desta célula é -1. A soma

da vizinha acima seria

(+1-2) = -1, da diagonal

esquerda seria (-2+1) = -1, e da

esquerda seria

,0101.1

1 A I o 1

.

/

.

2 OO5 Io,oo,,"uo,omomo,ouoooo,o,omOO1O'O'OOO,OO,...OO>OOO'OU01omomo,ou0000mOU'001010,000'00,OUOO'000>oU01...>om010,,"O>OUOOO1 11I

HnUlO no I n- I Jan Jun uOJ,ouoooO),01.0),UOO1.DJ.OJ.OOO1.001.0UDO),OOOJ,OU01.O],),),O),},lO),01.lODOOJ.01.0U1.IJO),O),OlOOOJ.0010UOO1.00D1.DUDJ.01UOU1.0J,O),),ooooJ.OlOJ.1.1.00J.01.0UD1.001.0J.1.o--'

o

" m'

1

j

I

S1[l...m]S2[1...n] -

I

A

I

G

I

C

O I - 10

I-I At

-4AGI- -6AGC

- 1-

1--2 +1 -1 -1

A

'-I A +1AIA -1GIA -3AGCIA

-4 +1 II -1

2 I A

I-I AA 1-1AIAA OAG IAA -2GCIAA

-6 +1 -1 -1

3 I A

I-I AAA I

-3

-2

-1

AIAAA AG I AAA AGC I AAA

-8 -1 +1

4 I C

I _I AAAC -4 -1

. A

I

AAAC AG

I

AMC AGC

I

AAAC

(6)

CIm

A D'

Ol000100UD:LDUJ.OlUOlO},],OOOD1.0),OUJ.OD1.01.01000J.OO],OUOO1.DOOJ.O),),01.O),),),OJ.U01.01.J.OODOJ.010U1.D01.0J.OJ.OD01.00J,OUODJ,OOOJ,O),),OJ,D1.U01U01.0J.l,OD0010],OU1.001010J.OD01.001.D],],OOlOD01D1.J.01.0J.OU1001

I Ar t1

.

9O .""'.

UDJ,onDOOD1.01.DU),OOlO1.0J.DDOJ.OOJ.OUOO1.0DOJ.O),),OJ,01.UDU1.D10J.}.ODDOJ.DJ.O],],),OOlOJ.OJ.OD01001.0J,J.OD1.DOO),O),),OlOUJ,OU1010),],OOOOJ.O),OUlOO},01.0).DOO],OO1.011,OO1.0001.0UOOJ.OJ,DDJ.D10DOOOJ.O},DJ,U0010],0 11101

(-4-2)= -6. Então o score é igual à soma da vizi-nha da diagonal esquerda (ou da vizivizi-nha acima, mas será escolhido aqui a diagonal esquerda), que corresponde ao alinhamento da última

co-luna de A1M, que é A

I

A. Mas é igual também

à soma da vizinha acima, que corresponde ao

alinhamento de A

I-.

Neste momento qualquer

um dos casos poderia ser seguido. Suponha que o algo ritmo implementado dê prioridade para a análise da vizinha da diagonal esquerda;

.

A análise continua na célula das seqüências

-I A,

esta é umacélulaque correspondeà base

da recursão, verificandoque o score desta

cé-lula é -2, neste caso só existe a cécé-lula vizinha

acima, e a soma dela deve ser igual à -2. Como

esperado, a matriz mostra que a soma é

(0-2) = -2, portanto, retoma-se a base da

recursão, que é o alinhamento - IA;

.

Finalizando, construímos as tabelas 51 e 52

esquematizadas na Figura 3.

O algo ritmo do alinhamento está representado na Figura 7.

alin(i, j, t)

Se i = O e j = O então t+-O

Se i > O e ali, j] = ali-l j] + g então alin(i-l j,t)

t+-t+l S l[t] +- Sl[i] S2[t] +- S2U1

Se i > O and j > Oe ali, j] = ali-l j-l] + p(i, j) então alin(i-l j-l ,t)

t+-t+l

SI [tI +- SI [i] S2 [tI +- S2 UI

Se j > O e ali, j] = a[ij-l) + g então alin(ij-l ,t)

t+-t+l Sl[t] +- '-'

S2 [tI +- S2 UI

Figura 7: Algoritmo de alinhamento.

3.3. Complexidade

do algo ritmo

O algoritmo que preenche a matriz com os valores das pontuações possui quatro laços de repetição; os dois primeiros consomem tempo O(m) e O(n),respec-tivamente. Os dois últimos laços de repetição são encaixados e consomem O(mn) unidades de tempo, ou seja, esta é a parte do algoritmo que domina assintoticamente. O espaço utilizado também é pro-porcional ao tamanho da matriz, logo, o algoritmo possui complexidade de espaço O(mn). O algoritmo que calcula o alinhamento a partir da matriz conso-me tempo O(t), onde t é o tamanho do alinhaconso-mento

retomado. Neste algoritmo há essencialmente uma

chamada recursiva por coluna de alinhamento e cada

chamada consome tempo 0(1).

3.4. Alinhamento

Múltiplo

Os algoritmos descritos tratam do alinhamento

entre duas seqüências. Em muitos casos, é de

inte-resse promover o alinhamento de k seqüências

51,52,...5k conforme ilustrado na Figura8.

Figura 8: Alinhamento múltiplo.

Algoritmos exatos para alinhamento múltiplo têm

complexidade exponencial. Uma alternativa que é

freqüentemente usada é o desenvolvimento de heurís-ticas, que apesar de não garantirem a optimalidade do alinhamento resultante, podem fornecer respos-tas rápidas e razoavelmente boas.

Uma heurística bastante conhecida e utilizada é o método de alinhamento estrela [Meidanis, 1997], que está baseada na fixação de uma seqüência, denomi-nada centro da estrela, cuja determinação está des-crita nos pseudo códigos das Figuras 10,11 e 12. Para estabelecer qual das seqüências contidas no banco será fixada como centro, são calculadas as pontua-ções entre os pares de seqüências (5i,5)), 1 ~ i,j ~ k, i*-j. Estas pontuações são armazenadas em uma ma-triz. Depois, as colunas desta matriz são analisadas de modo a obter a coluna de maior somatório, que terá o seu índice utilizado para fixar o centro da es-trela, e as demais seqüências passarão a ser as pon-tas. O algoritmo que calcula o centro da estrela (centro) é definido em três passos:

Passo 1: Calcula a pontuação do alinhamento ótimo de cada par de seqüência (5i,5)), 1 ~ i, j ~ k, i *-j, onde a[n,m] representa a pontuação do alinhamen-to ótimo das subseqüências 5i[n]e 5j[m].O pseudo código da Figura 9 descreve melhor esse passo.

j+-O Enquanto i < n faça }+-i+l Enquanto } < n faça Sim (Si{1...n],Si (1...m]) Matriz[iJ) +- a{n,m] MatrizU,/) +- a{n,m] }+-}+1 Fim-enquanto i +- i + 1 Fim-enquanto

Figura 9: Algoritmo para cálculo de pontuações entre cada par de seqüências.

11

.

1.00010U01.01.1.1.D1.),),01.D1.1.0000),01.0),),1.0010J,01.0001.001.OUooJ.ooOJ.OU01.0J.UOU),DJ.O],],ODOO1.01.0J,1.1.001.01.01000100101.1.001Q0010U.0101U01U01.D11D

I R

.

t d I f át ' Ap1

.

d I0100a 110).01.).0000101.0),),1.001.0:l.01.0001.0010),],00100010110101110U101OUOOOO1.0\.0111,001.0).01.0001.00:l.011001000101,101.01o],:l.O:l.].10:l.01.},00001.0101110010101 eV1S a e n orm Ica Ica a ),],011 ...

Sl = A A G ... T

S2 = A A A ... C

...

...

...

...

...

...

(7)

Passo 2: Calcula, para cada seqüência 5i, i 1 ~ i ~ k,

a soma das pontuações de cada seqüência

(repre-sentadas pelas colunas de Matriz), obtidas no pas-so anterior. A Figura 10 descreve melhor esse paspas-so.

j--

o

Enquantoj < n faça soma!J1=O i -- O Enquanto i < n faça Se (i !=J)

soma li] <- soma li] + Matriz [iJ] Fim se

i<-i + 1

Fim-enquanto

j<-j+l

Fim-enquanto

Figura10:Algoritmo para cálculo das somas das pontuações das colunas de Matriz.

Passo 3: Seleciona o centro da estrela. A Figura 11 descreve melhor esse passo.

max<-soma [O] (--o

i <- 1

Enquanto i < n faça Se (max < soma [I])

max<-soma [I]

( <- i Fim se

i = i + 1

Fim-enquanto

Figura 11: Algoritmo para selecionar o centro.

A seguir, é observado como estes algo ritmos fun-cionam sobre um conjunto seqüências hipotéticas. Sejam as seqüências abaixo:

51 = A T T G C C A T T 52 = A T G G C C A T T 53 = A T C C A A T T T T 54 = A T C T T C T T 55 = A C T G A C C

Na Figura 12, é mostrada a Matriz com as pontua-ções obtidas nas comparapontua-ções entre estas seqüências.

Figura 12: Matriz de pontuação.

A coluna 51 obteve o maior somatório, desta for-ma, passará a ser o centro da estrela, enquanto 52, 53, 54 e 55 passarão a ser as pontas.

Ao selecionarmos o centro, estaremos escolhendo um índice c, 1 ~ c ~ k,. Para cada índice i diferente de c, podemos obter um alinhamento ótimo - utilizando os algoritmos de programação dinãmica padrão

dis-cutidos anteriormente - entre as seqüências 5i e 5e.

Porexemplo,

para

o conjunto de seqüências citado,

são obtidos os seguintes alinhamentos para cada par de seqüências:

ATTGCCATT

ATGGCCATT

ATTGCCATT

ATC-CAATTTT

ATTGCCATT

ATCTTC-TT

ATTGCCATT

ACTGACC--Devido ao tamanho de S3, para demonstrar ade-quadamente o resultado deste alinhamento, é

neces-sário incluir buracos no final de cada seqüência

resultante, assim, não será alterado o resultado do alinhamento; o algoritmo da Figura 13 descreve esse passo:

T<-o

Enquanto não for fim do arquivo Faça Se T < Tamanho registro

T <- Tamanho do registro

FimSe

Fim-enquanto

Enquanto não for fim do arquivo Faça

K <- Tamanho do registro

SeK < T

Para i <- K + 1 até T Faça

S[i] <- "_"

Fim Para

FimSe

Fim-enquanto

Figura 13: Algoritmo de ajuste das seqüências alinhadas.

o resultado da execução do algoritmo pode ser

observado abaixo:

ATTGCCATT ATGGCCATT ATC-CAATTTT ATCTCC-TT AC T G A C C

-11

O},OD01.0],],01.O),],),O),),],OlOllDODQlOJ.OJ,UOOJ.01.0J.OD01.001.DUDD1.DO01.0),],OlO],],1.01UO],Q),),ODOO1.0),OJ.UOO1.01.0J.000100Io01.1.DOIoDOO1.0U01.0U10U1.01.0UOO1.01.J.OOO1. 1],),01.0),),OOOOlO1.0U1.00101.DJ.DD01001.0},1.0010001.0],1.01.D1.UO),UO1.01.1.0000J.OlOUlOO1.01.0),OOOl,OOlOUOO1.0001.01.1.DJ,01.UO],],],OJ.ouoOOO),D1.0],],],OO),O),01.J.01.001.0UO

~!8t!1Ano l, nQ 1, jan/ jun 2005

S1

52

53

54

SS

51

7

-2

O

-3

52

7

-2

O

-4

S3

-2

-2

O

-7

54

O

O

O

-3

SS

-3

-4

-7

-3

(8)

1m

!

o Iooao100101.010),), ],01110).01,),OOOU1.0 J.OU1.00],01.010001001.0 1.1.00 100010), 1.01.0),1,1.01.),1.01.0),],DOD01.0],0 U 1.001.01.0 J.OOO),OOJ,OUOO1.000101. lUlO),], 1.0U],0 1.01.1.0DDO1.0 1.0U1.0D 1.01.0),OD0100 J.OUOD:101]0010011.01010),),1.001 . 01.

1.],D),OUODOO1.01.0},),],OD1.01.01.000J.OO1.0UOOl,DOO1.0J.1.DJ.01.],),OJ.UOJ.0},],0000101.01],100],010],000).00),0],],001.0001.0],],01.0],),),0],],],O:l.01J.ODDOJ,01.0U1.DOJ.01.0J.OOOJ.OOJ.OUDOJ,ODOJ,OJ,),00101.D01D),OOOOO1.01.0),),100101.0 I A r t 1 9 o ~=O],I

4. IMPLEMENTAÇÃO E CONCLUSÕES Na implementação dos algo ritmos de alinhamen-to, foi criado um aplicativo com interface visual de-senvolvido em Visual Basic Professional versão 6.0, onde o usuário pode escolher entre três tipos de ali-nhamento, conforme descrição abaixo:

.

Alinhamento 1 X 1 (um para um), que compara

duas seqüências individualmente, demonstran-do o alinhamento e a pontuação entre as duas seqüências;

.

Alinhamento 1 X N (um para N), que compara

uma seqüência selecionada com N seqüências

contidas em um arquivo, demonstrando os

ali-nhamentos e as pontuações obtidas, um de cada vez, conforme parâmetros fornecidos pelo usu-ário;

.

Alinhamento N X N (N para N), opção que

reali-za um alinhamento múltiplo de N seqüências, segundo o método de alinhamento estrela. Lê as seqüências de um arquivo (do tipo FASTA)e demonstra em tela o alinhamento obtido.

Durante as simulações foi observado que para

um

micro com 64 MBde memória principal, pode-se

ali-BENSON,D.;KARSCH-MIZRACHI,I.; LlPMAN,D. J.; OSTEll, j.;

I RAPP, B. A.; WHEELER,D.L. Genbank. Núcleic Acids Research, 2000.

CORMEN, T. H.; lEISERSON, C. E.; RIVEST,R. L. Introduction to Algorithms. MIT Press, 1990.

DOOllTlE, R, F. Molecular Evolution: Compute r Analisys of Protein and Nucleic Acid Sequences. Methods in

Enzimology. Academic Press, 1990.

nhar seqüências de até três mil caracteres. Para micros com 128 MBde memória, alinhamentos de até cinco mil caracteres e, para micros com 256 MBde memória alinhamentos de até dez mil caracteres. Para seqüên-cias acima de três mil caracteres em micros com 64 MB e acima de cinco mil caracteres em micros com 128 MB e acima de dez mil caracteres em micros com 256 MB não obtivemos sucesso, pois ocorreu stack overflow. Não efetuamos medidas precisas de desempenho de tempo, porém, para as entradas acima executadas com sucesso, nas três máquinas consideradas, observamos tempos entre 1 e 5 minutos.

O propósito geral deste trabalho foi estudar, des-crever e implementar um dos algo ritmos básicos de alinhamento de seqüências moleculares. Para atingir este objetivo estudamos uma técnica geral de desen-volvimento de algo ritmos (programação dinâmica) e métodos de alinhamento baseados nesta técnica, além de implementar um algo ritmo de alinhamento global entre duas seqüências e o método de alinhamento múltiplo estrela.

Também foi necessário fazer um estudo relativo a conceitos básicos de biologia molecular a fim de

me-lhor compreender o contexto de aplicações destes

métodos.

NGBI

-

The National Center for Bioteénology Information. http://www.ncbi.nlm.nih.gov.

NHGRI- The National Human Genome Research Institute. http://www.nhgrLnih.gov.

MEIDANIS,j.; SETOBAl,J. C. Uma Introdução à Biologia Computaciona. Escola de Computação. Recife, 1994. MEIDANIS,j.; SETOBAL,j. C. Introdution in to Computational Molecular Biology. PWSPublishing Company, 1997.

.. 10001.0],),010).1.),0).),),010),),00001.010].).1.00101.01.0001.00101.1.00).00OlO),],OlO),),],O),),},O),Ol1.DOOOJ,OlO},),),OO1.01.0),OOO1.001.0],),OO1.000J,01.),O),01.UO),),),01.0),),O... 0),01

Referências

Documentos relacionados

Apoiar ações de cooperação internacional em temas relacionados ao bioquerosene e hidrocarbonetos renováveis para a viação, com países que possuem experiência na área

ele será desclassificado e advertido pela ABQM, em caso de reincidência o competidor perderá a condição de jovem por 3 anos;  Se o competidor jovem apresentar animais

Percebida como item de coleção pela qualidade gráfica e linha editorial atemporais - com destaque para entrevistas suculentas - S.A.X iniciou série de capas autorais assinadas

A complexidade de tempo destes algoritmos é quadrática, o que faz com que eles se tornem inviáveis para algumas aplicações, como a comparação de uma seqüência nova com todas

Os resultados obtidos demonstram que: (i) há evidências de ocorrência de transbordamentos espaciais entre os municípios analisados; (ii) ocorrem nítidas diferenças entre

Consequentemente nas figuras 4 e 5 destacam-se os dados dNBR para a área queimada, e com a aplicação dos transectos foi possível avaliar os valores, para tanto, destacam-se picos

Com isso os responsáveis pela geração dos relatórios gerenciais se vêm com o desafio de adotar um novo sistema para realizar velhas tarefas, este artigo tem como objetivo

A) A nota mínima para aprovação em cada etapa será 7,0 (sete) e a classificação dos candidatos aprovados será feita pela média aritmética das provas de