Você está na página 1de 15

Anais do XXVI Congresso da SBC

14 a 20 de julho de 2006

WBC l Workshop de Biologia Computacional

Campo Grande, MS

Algumas Pesquisas em Bancos de Dados e Bioinforma tica


Sergio Lifschitz1
1

Departamento de Informatica
Pontifcia Universidade Catolica do Rio de Janeiro (PUC-Rio)
sergio@inf.puc-rio.br

Resumo. As pesquisas na a rea de biologia vem produzindo um grande volume


de dados e estes precisam ser bem organizados e estruturados para serem depois gerenciados e acessados pelos usua rios potenciais. Em particular, o gerenciamento eficaz e eficiente dos dados envolvidos faz com que as pesquisas
em bancos de dados ganhem novos rumos e aplicaco es. Desde a modelagem
e construca o de bancos de dados ate o processamento eficiente de consultas,
passando pela integraca o de dados, varios sao os trabalhos em andamento,
com alguns bons resultados ja comprovados. Nesse artigo, busca-se listar algumas das oportunidades de pesquisa em bancos de dados relacionadas com a
bioinformatica. Destaque e dado aos trabalhos realizados no Departamento de
Informatica da PUC-Rio.

1. Introduca o
A a rea de bioinformatica vem atraindo bastante interesse de pesquisadores de origens
diversas, incluindo naturalmente aqueles da ciencia da computaca o. Nao somente buscase aplicar resultados conhecidos de outros domnios em bioinformatica, como tambem ha
o surgimento de novas demandas em computaca o.
Projetos que visam sequenciar o genoma de varias especies tem gerado grande
quantidade de informaco es. As seque ncias obtidas sao representadas por longas cadeias
de caracteres. Essas tem sido armazenadas em bancos de dados, nao necessariamente
controlados por um Sistema Gerenciador de Bancos de Dados (SGBD), ja que tem aumentado consideravelmente de volume nos u ltimos anos, devido ao grande interesse no
conhecimento do genoma e a` s novas tecnologias sendo disponibilizadas.
Apenas para citar uns exemplos, o projeto Genoma Humano engloba tres bilhoes
de pares de bases para cada individuo, nao includas a as anotaco es. Se ha alguma duvida
de que o problema de banco de dados existe, seguem alguns fatos: a base EMBL contem
algumas centenas de gigabytes, com crescimento que significa quadruplicar de tamanho
a cada ano em termos de numero de seque ncias. No Sanger Center ja existem algumas
dezenas de terabytes ao todo, e com as pesquisas em micro-arrays, existe a expectativa de
crescimento de volume de dados da ordem de 1 petabyte por ano.
Apesar do rapido crescimento dos dados genomicos, a velocidade na qual os
usuarios conseguem interpretar estes dados ainda e insatisfatoria, exigindo mecanismos

eficientes de armazenamento e analise. Muitas das pesquisas nesta a rea sao apoiadas
computacionalmente atraves da utilizaca o de bancos de dados de biologia molecular e de
diversos algoritmos de comparaca o e analise dos dados genomicos.
Um dos problemas atuais desta a rea ocorre devido a` inexistencia de um Sistema
Gerenciador de Bancos de Dados (SGBD) especfico para aplicaco es de Bioinformatica.
A maioria das ferramentas criadas acessam dados diretamente de arquivos textos ou
binarios, sem a utilizaca o de um SGBD, o que os impede de beneficiar-se de mecanismos eficazes de armazenamento, acesso eficiente a disco e gerenciamento inteligente da
memoria, entre outros.
Embora tecnicas de sistemas de bancos de dados tenham sido pouco utilizadas no
tratamento e manipulaca o de bases de dados de biologia molecular, alguns trabalhos que
empregam conceitos de bancos de dados, como definico es de modelos de dados e geraca o
de ndices tem surgido. Ja ha pesquisas em integraca o de fontes de dados, armazenamento
especfico para dados ditos cientficos, linguagens de acesso aos dados, modelos de bancos de dados ad-hoc e evoluca o de esquemas, alem de transaco es e sistemas de workflow (ex.: [Davidson et al. 1995, Bornberg-Bauer and Paton 2002, Buneman et al. 2004,
Lemos 2004, Cavalcanti et al. 2005]).
E fato que existem hoje em dia varios trabalhos com foco em bancos de dados
e aplicaco es em bioinformatica. Dado que essa a rea e vasta e dinamica, com o termo
bioinformatica sendo bem abrangente, nao e possvel listar por completo todas as linhas
e grupos de pesquisa relevantes no Brasil e no mundo. Alem do mais, nao e objetivo
desse trabalho descrever o estado da arte em pesquisas relacionando bancos de dados e
bioinformatica, inclusive por limitaco es de espaco.
Assim, pretende-se neste artigo listar alguns alguns dos principais topicos de pesquisa no domnio de bancos de dados relacionadas a` s oportunidades de aplicaco es em
bioinformatica. Inicialmente sao descritos aspectos do contexto de sistemas de bancos
de dados, caractersticas de dados biologicos e uso de SGBDs na a rea. Em um segundo
momento, os trabalhos que vem sendo realizados no Departamento de Informatica da
PUC-Rio sao explicados com mais detalhes. O artigo se encerra com observaco es sobre
trabalhos em andamento e oportunidades futuras.

2. Contexto de Bancos de Dados e Bioinforma tica


A bioinformatica objetiva, entre outros, o gerenciamento e analise dos dados biologicos
usando tecnicas avancadas de computaca o, especialmente importantes na analise dos dados sobre pesquisa do genoma. Os cientistas sao auxiliados na criaca o e manutenca o de
bancos de dados para armazenamento das informaco es biologicas sobre sequencias de
DNA, sntese de RNA e geraca o de protenas. Porem, avancos metodologicos na analise
de dados sao necessarios para transformar tecnicas experimentais - ex.: microscopia moderna, nanotecnologia - em conhecimento.
Neste contexto, tecnicas para gerenciamento de dados possuem um papel funda-

mental para o desenvolvimento de aplicaco es biologicas porque elas fornecem abstraco es


adequadas para projetar, acessar e gerenciar os dados. Cabe observar que as tecnicas
de gerenciamento de dados tradicionais podem nao ser adequadas para lidar com dados
biologicos.
A comunidade de banco de dados tem estudando esses problemas e um grande
esforco tem sido feito neste sentido, tentando propor ferramentas adequadas ao domnio.
A maioria dos trabalhos em gerenciamento de dados para ciencias da vida, apresentados
na literatura, tem se focado na integraca o de dados biologicos. Pouca atenca o tem sido
dada na representaca o e manipulaca o de dados biologicos, no problema da persistencia
de dados e estruturas de acesso eficientes, entre outras questoes pertinentes a` s pesquisas
na a rea de bancos de dados.
Sistemas de Informaca o e Bancos de Dados
Um sistema de banco de dados e tipicamente parte de um sistema de informaca o, o qual
inclui todos os componentes que sao envolvidos na organizaca o dos recursos. Esses incluem os proprios dados, o software do SGBD, o hardware do sistema, a mdia de armazenamento e os aplicativos que acessam e atualizam os dados. Desta forma, o sistema
de banco de dados e parte importante da organizaca o de um sistema de informaca o. Por
isto, o ciclo de vida um sistema de informaca o deve tambem incluir o ciclo de vida de um
banco de dados.
Um banco de dados pode ser definido como uma coleca o compartilhada de dados logicamente relacionados, projetado para atender as necessidades de informaca o de
multiplos usuarios em uma organizaca o. Os banco de dados armazenam dados relativos a
um domnio particular e representam algum aspecto do mundo real, chamado de Universo
de Discurso (UoD), o qual deve ser mantido consistente dentro do banco de dados.
Um sistema gerenciador de banco de dados (SGBD) e uma coleca o de componentes de software para criar, gerenciar e consultar um banco de dados. Um SGBD pode
conter diversos bancos de dados, e cada um deles pode ter um administrador de banco de
dados diferente (DBA - database administrator).
O processo de criaca o de um banco de dados se inicia com a analise de quais
informaco es o banco de dados deve representar. Em seguida, a estrutura do banco de
dados deve ser especificada atraves da declaraca o de tipos de dados, relacionamentos
entre as informaco es, e restrico es que devem ser mantidas para qualquer instancia.
Depois, e preciso popular o banco de dados em alguma mdia para armazenamento que e controlada pelo SGBD. Entao pode-se manipular o banco de dados usando
operaco es, tais como: consultar o banco dados para buscar dados especficos, atualizar os
dados para refletir mudancas do mundo real, e gerar relatorios a partir das informaco es
presentes no banco de dados.
O objetivo do projeto de um banco de dados e especificar a estrutura logica e fsica
de um ou mais banco de dados. Esta estrutura deve acomodar a informaca o necessaria

para usuarios de uma organizaca o e um conjunto definido de aplicaco es. Esses objetivos
nao sao faceis de se alcancar porque, enquanto o processo de projeto inicia com os requisitos definidos informalmente, o seu resultado deve ser um esquema de banco de dados
formal e bem definido. Alem disso, o processo de projeto envolve um balanceamento
entre a compreensao do modelo e seu desempenho.
Dados Biologicos
A analise de seque ncias atraves da comparaca o de seque ncias por similaridade, tornouse uma das operaco es mais importantes na biologia computacional, cujos resultados dao
origem a novos tipos de dados biologicos, como as anotaco es, ou ainda sao entradas para
muitas outras operaco es mais elaboradas, como a busca de padroes.
Na decada de 90 surgiu a famlia de programas BLAST - Basic Local Alignment
Search Tool - especializada no alinhamento e comparaca o entre biosseque ncias. Os programas desta famlia sao baseados em heursticas, o que trouxe uma grande melhora nos
tempos de respostas. Antes do BLAST, outros programas incluram heursticas para realizar comparaca o de biosseque ncias, como a famlia de programas FASTA. A famlia
FASTA apresenta maior precisao nos resultados, no entanto, a heurstica BLAST, por ser
mais rapida, e a mais popular e largamente utilizada. Por esta razao, melhoras nestas
estrategias, ou em estruturas do banco de dados, que facilitem a execuca o de buscas e
analises diversas sao muito importantes.
Outra tarefa essencial e a interpretaca o dos dados obtidos experimentalmente, buscando gerar conhecimento biologico a partir deles. Os pesquisadores fazem anotaco es
manuais de acordo com as informaco es da sua experimentaca o e podem tambem contar
com anotaco es automaticas, resultantes da execuca o de programas de analise.
A escolha por SGBDs como meio para armazenar e gerenciar dados biologicos
pode ser vista como um caminho natural ja que, devido aos avancos da tecnologia, houve
um aumento do volume de dados armazenados. A opca o pelo uso de arquivos texto em
relaca o a outros modos de persistencia, apresenta desvantagens exaustivamente discutidas
na literatura.
Realizar analise de dados biologicos em bancos de dados simplifica o gerenciamento dos dados e minimiza o movimento dos mesmos dos discos para a memoria, e
vice-versa, permitindo aplicaca o de filtros previos e pos-processamento de conjunto de
dados. Alem do fato de garantir um ambiente seguro e de alta disponibilidades para os
dados.
Utilizaca o de SGBDs
Alguns dos bancos de dados biologicos utilizam sistemas baseados no modelo relacional, sistemas orientados a objetos ou ainda alguns gerenciadores especficos. No EMBL,
SwissProt, TrEMBL, o SGBD Oracle foi adotado como repositorio mas sao utilizados
arquivos texto para troca de dados. Na maioria dos casos onde gerenciadores de banco

de dados relacionais sao utilizados como repositorios de seque ncias (DNA ou protenas),
estas sao armazenadas como cadeias de caracteres. Arquivos texto sao diretamente persistidos como objetos grandes, por exemplo, do tipo CLOB. Isto facilita a carga dos repositorios a partir de arquivos texto, porem o acesso aos dados e limitado aos operadores
tradicionais.
O SGBD Oracle versao 10g merece uma atenca o em particular devido ao grande
numero de funcionalidades includas para facilitar o trabalho dos pesquisadores na a rea
de ciencias da vida, principalmente no sentido de acesso a dados provenientes de diversas
fontes, algo muito comum na biologia computacional. O Oracle 10g incorpora o BLAST
como funca o. Tambem consultas em linguagem SQL para pre-filtrar as seque ncias ou
ainda pos-processar os resultados obtidos sao permitidas.
Outra estrategia semelhante foi colocada em pratica utilizando o gerenciador de
dados PostgreSQL. Esta implementaca o, chamada de BlastGres, tambem incorpora o programa BLAST ao gerenciador de banco de dados. Alem disto, foram criados novos tipos
de dados para representar segmentos de seque ncia, em conjunto com um novo tipo de
ndice para acelerar o acesso a uma regiao de uma seque ncia e as propriedades correspondentes. No entanto, nesta abordagem as seque ncias sao guardadas como cadeias de
caracteres. A ideia e representar um segmento de seque ncia com o tipo de dados range,
numeros indicando o inicio e fim de um segmento de seque ncia, e um tipo location, onde
um valor de range e associado ao identificador de uma seque ncia, podendo ainda utilizar
um ndice para realizar a busca de uma regiao de uma seque ncia dada - o atributo do tipo
location.
Outro exemplo de sucesso e bastante usado e o sistema ACeDB. O ACeDB esta
baseado no modelo orientado a objetos mas conta com um modulo de gerenciamento
de banco de dados, em um modelo flexvel, projetado especificamente para manipular
informaco es biologicas. No ACeDB (A Caenorhabditis elegans Data Base) sao armazenados os resultados de projetos de sequenciamento e mapeamento de larga escala.
O ACeDB representa internamente os dados em forma de a rvore, em formato
binario. A entrada e sada dos dados e feita via arquivos texto denominados ACE files,
onde as informaco es sao representadas de acordo com uma sintaxe especfica, semelhante
a` XML. A base do AceDB e utilizada para outras pesquisas, como e o caso do TcruziDB,
coordenado pelo DBBM da FIOCRUZ, Rio de Janeiro.

3. Pesquisas com Enfase


em Bancos de Dados
Nesta Seca o sao descritas brevemente algumas das pesquisas desenvolvidas no Departamento de Informatica da PUC-Rio envolvendo bancos de dados e bioinformatica. Os
temas sao: gerencia de memoria principal e buffers, projeto de distribuica o e alocaca o
de dados, processamento paralelo, integraca o de fontes de dados e aplicaco es, e por fim,
modelos conceituais de dados.

Gerencia de Memoria
Como ja visto anteriormente, a famlia de programas BLAST e a mais utilizada pelos
pesquisadores e existem diversos stios WWW que disponibilizam os programas para os
usuarios, podendo ocorrer diversos acessos simultaneos. Os programas de comparaca o de
biosseque ncias objetivam ser ao mesmo tempo rapidos e confiaveis. Como sao largamente
usados, mesmo pequenas melhoras nestes podem trazer grandes benefcios.
No caso, uma possvel melhora e a inclusao de um gerenciamento de buffer adequado, tornando mais rapidos seus tempos de execuca o. Uma estrategia de gerenciamento de buffer para o BLAST foi publicada em [Lemos and Lifschitz 2003], sugerindo
o uso de estruturas de armazenamento de seque ncias na memoria denominadas aneis. Ja
em [Lifschitz and Mauro 2005], sugere-se a implementaca o de uma arquitetura de driver
para realizar este gerenciamento de buffer. Outros programas podem ser beneficiados por
essas tecnicas.
Ha dois modos de implementar o gerenciamento de buffer para o BLAST, de
maneira intrusiva no codigo e de maneira nao-intrusiva. A maneira intrusiva de implementar e atraves da substituica o, no codigo, de cada chamada a` s funco es de leitura de
seque ncias por outras funco es que se comunicam com um processo que ira realizar o
gerenciamento de buffer. A maneira nao-intrusiva de implementar e nao modificando o
codigo do BLAST, o que pode ser feito atraves da criaca o de um driver que simule o funcionamento dos arquivos do banco de dados e realize ao mesmo tempo o gerenciamento
de buffer.
Aqui sera descrito brevemente como se da a implementaca o de maneira naointrusiva atraves de um driver [Noronha 2006]. Este e um programa que possibilita a
comunicaca o de aplicativos com dispositivos de hardware e software, escondendo a maneira como e realizada a comunicaca o direta com os mesmos. O uso de um driver para
implementar o gerenciamento de buffer para o BLAST traz grandes vantagens, pois ele
nao exige modificaco es no codigo fonte e pode ser utilizado para diferentes versoes do
BLAST com poucas modificaco es (ou nenhuma) no codigo do driver. Alem disso, esta
estrategia de implementaca o e uma abordagem de bancos de dados, pois o driver pode
ser considerado um servidor de dados que realiza o gerenciamento de buffer.
Em sistemas operacionais Linux, os drivers devem ser implementados como
modulos do kernel. Para implementar um driver que simula o comportamento de um arquivo, devem ser redefinidas as funco es executadas em arquivos, como open, read, write,
seek e close. A Figura 1 mostra a arquitetura do driver para o BLAST.
Devido a` s limitaco es existentes para implementaco es de modulos do kernel,
optou-se por criar um processo provedor, com o qual o processo do driver ira se comunicar, que acessara os arquivos do banco de dados e fara o gerenciamento de buffer. Como
pode ser visto na Figura 1, os processos BLAST realizarao leituras dos falsos arquivos do
banco de dados, executando a funca o de leitura do driver, e informando deste modo quais
paginas desejam ler do banco de dados.


Figura 1. Driver para Gerencia
de Buffer

O driver ira comunicar-se com o processo provedor, enviando as novas requisico es. O processo provedor possuira os aneis de buffer, alem das posico es do arquivo de
seque ncias a partir das quais cada processo iniciou a leitura. Estas posico es serao usadas
para o calculo da posica o real do arquivo que sera lida por cada processo quando este
requisitar novas paginas, somando-se a posica o da pagina requisitada com a posica o a
partir da qual o processo iniciou a leitura. O processo provedor podera acessar o banco de
dados diretamente, e fornecera ao driver as seque ncias desejadas, lidas do banco ou dos
aneis em memoria, ao executar a funca o de escrita do driver. Finalmente, ao receber os
dados do provedor, o driver ira envia-los aos processos.
Distribuica o e Paralelismo
Como alternativa para obtenca o de melhor desempenho, a utilizaca o de ambientes paralelos para a resoluca o de problemas complexos tem sido amplamente estudada. Os avancos
nas tecnologias de microcomputadores e de redes fez com que o emprego de maquinas de
arquitetura de memoria distribuda se tornasse viavel. Esse e o caso dos clusters de PCs,
que tem sido cada vez mais utilizados, pois apresentam uma relaca o custo vs. desempenho
bastante atrativa [Costa and Lifschitz 2003].
A principal desvantagem na aplicaca o de maquinas da arquitetura de memoria
distribuda com relaca o a outras arquiteturas encontra-se na dificuldade no equilbrio de
carga. Quando algum processador/disco e mais frequentemente acessado, este pode se
tornar um ponto de estrangulamento para todo o sistema. A realizaca o de alteraco es na
poltica de distribuica o de dados aos nos e uma possvel soluca o para este problema.
Para a execuca o do BLAST em maquinas de memoria distribuda, uma primeira

Arquivo de Entrada

Arquivo de Entrada

Seqncia 1
Seqncia 2

Seqncia 1
Seqncia 2

N Mestre

...

Seqncia k

Seqncia 1
Seqncia 2

Seqncia i+1
Seqncia i+2

...

...

Seqncia i

Seqncia j

N 1

Seqncia l+1
Seqncia l+2

Seqncia 1
Seqncia 2

Seqncia 1
Seqncia 2

...

...

...

...

Seqncia k

Seqncia k

Seqncia k

Seqncia k

N 2

N N

Rplica 2

N 1

Rplica N

Fragmento 1

Resultados do BLAST

Arquivo de
Sada

Seqncia 1
Seqncia 2

N 2

N N

...

...
Rplica 1

N Mestre

...

Seqncia k

N Mestre
Montagem da Sada

(a) Esquema com Replicao da Base de Dados

Fragmento 2

Fragmento N

Resultados do BLAST
Arquivo de
Sada

N Mestre
Montagem da Sada

(b) Esquema com Fragmentao da Base de Dados

e Alocacao
de Dados
Figura 2. Esquemas de Distribuicao

abordagem consiste na replicaca o da base de dados em todos os nos. Para este caso,
apresentamos um esquema mestre-escravo, conforme apresentado na Figura 2(a). As
requisico es (seque ncias para comparaca o com a base de dados) sao submetidas ao no que
desempenha o papel de mestre. Cada requisica o recebida pelo no mestre pode conter
uma ou mais seque ncias. Em cada no escravo existira uma replica de toda a base de
dados. Alem disso, os nos escravos terao o algoritmo BLAST devidamente implementado
e configurado, pronto para execuca o. Assim, cada no escravo tera a possibilidade de
executar a operaca o de BLAST sobre a base de dados local, independentemente dos
outros.
O no mestre deve distribuir as seque ncias recebidas pelos diversos nos, alocando,
assim, tarefas aos nos escravos. Esta alocaca o deve fazer com que a carga de trabalho
de cada um dos nos escravos seja semelhante. Para a distribuica o de tarefas, adotaremos,
inicialmente uma estrategia circular semelhante a tradicional. Uma tarefa a ser atribuda
a um no escravo e a de realizar a comparaca o de uma dada seque ncia com a base de
dados. Apos a distribuica o das seque ncias pelos nos escravos estes devem executar o
BLAST para cada uma das seque ncias recebidas. Varios resultados serao gerados. Cada
um deles devera ser remetido ao no mestre. Este recebera todos os resultados e montara
um resultado u nico para a solicitaca o recebida.
Para a execuca o do BLAST, considerando um particionamento da base de dados
com a devida alocaca o dos fragmentos pelos diversos nos, e proposto, tambem, um esquema mestre-escravo, apresentado na Figura 2(b). O no mestre e o responsavel por receber as requisico es e encaminha-las aos nos escravos, os quais realizam o BLAST. Porem,
nesta etapa, cada no escravo contera somente uma parte da base de dados e nao toda ela,
como no caso anterior. A principal dificuldade desta abordagem reside, justamente, na

geraca o dos fragmentos.


Na distribuica o das tarefas surge outra diferenca entre a estrategia replicada e
a fragmentada. Na estrategia fragmentada, para completitude do resultado final, cada
seque ncia submetida ao no mestre deve ser repassada a todos os nos escravos, para que
o BLAST seja executado sobre toda a base de dados original. Apos a realizaca o do
BLAST em cada no, os resultados sao enviados para o no mestre. Este e responsavel
pela montagem do resultado final e apresentaca o ao usuario. A montagem do resultado
final e mais uma etapa mais complexa para o caso com fragmentaca o da base de dados do
que para o caso com replicaca o pois, no esquema com fragmentaca o, existirao para cada
seque ncia submetida, n resultados de BLAST, onde n vale o numero de fragmentos da
base de dados.
Varios testes foram realizados em um cluster de 32 PCs disponvel no Laboratorio
de Paralelismo da PUC-Rio. Tres bases de dados foram utilizadas nos testes: Ecoli.aa,
SwissProt e nr. Sao varios os fatores que influenciam no desempenho da implantaca o
do algoritmo BLAST em maquinas de memoria distribuda. O desvio de carga foi apresentado como um dos problemas a ser resolvido. Caractersticas como similaridade das
seque ncias de entrada com as da base de dados, comprimento das seque ncias de entrada
e das formadoras de fragmentos da bases de dados, entre outras, mostraram-se causadoras de desvios. Diferentes propostas de correca o para os desvios podem ser consideradas
em funca o da forma de distribuica o dos dados considerada. Maiores detalhes podem ser
obtidos em [Costa 2002].
Integraca o de Fontes de Dados e Aplicaco es
As principais ferramentas utilizadas pelos pesquisadores em biologia molecular sao associadas a dezenas de arquivos e bancos de dados publicos contendo informaco es relativas
a sub-domnios especficos do conhecimento. Em muitos casos estas informaco es sao
produzidas por um u nico laboratorio e suas informaco es sao u nicas, isto e , nao estao
replicadas nos repositorios publicos. Todas essas fontes de dados relevantes para os pesquisadores contem informaco es biologicas (ex.: homologias, estrutura e similaridades) e
afins (ex.: anotaco es relevantes e artigos cientficos.
Em sua maioria estas fontes de dados diferem na forma de armazenamento de dados e nas informaco es relevantes a` pesquisa. Tambem estao associadas a aplicativos que
diferem nos servicos oferecidos: de visualizaca o dos dados, de busca, de alinhamentos, de
comparaca o de seque ncias, entre outros. Ha implementaco es de sistemas que armazenam
informaco es biologicas em arquivos texto (ex.: GenBank), em bancos de dados relacionais (ex.: Swiss-Prot) e em sistemas orientados a objetos persistentes (ex.: AceDB).
No entanto, como a pesquisa na a rea esta em constante evoluca o, ha a necessidade de alteraca o dos esquemas ja implantados, sugerindo a adoca o de modelos de dados
mais flexveis. Isto porque novas informaco es biologicas surgem a cada momento e e
fundamental que elas possam ser representadas nas fontes de dados existentes.

Existem diferentes abordagens na literatura para tratar o problema de integraca o


de informaco es de fontes de dados distribudas e heterogeneas. A primeira trata da
integraca o de bancos de dados atraves de um Sistema Gerenciador de Bancos de Dados
Distribudos e Heterogeneos. Essa abordagem nao e adequada para integraca o de dados
da biologia molecular pois as fontes de dados, em sua maioria, se constituem de arquivos
texto, com alguma estruturaca o. Tambem, nao existe um esquema global pactuado entre
os diferentes laboratorios. Uma segunda abordagem lida com multiplas fontes de dados
via Multidatabase. Essa proposta tambem nao e adequada pois as fontes de dados componentes (locais) podem estar indisponveis no momento da consulta, alem do problema
de desempenho em ambientes distribudos. Outra abordagem usa a tecnologia de Data
Warehouse, que implementa uma visao materializada do esquema das fontes de dados
componentes da integraca o. Esta forma de integraca o tambem nao atende a` integraca o
de informaco es biologicas com relaca o a` atualizaca o dos esquemas e das instancias de
dados.
As limitaco es das arquiteturas de integraca o existentes nos levaram a propor uma
arquitetura de software baseada em um framework orientado a objetos, de forma a prover
flexibilidade e extensibilidade.
Foi desenvolvida entao a ferramenta Bio-AXS [Seibel and S.Lifschitz 2001].
Trata-se de uma arquitetura flexvel e extensvel que permite aos usuarios capturarem
os esquemas das fontes de dados - normalmente disponveis na web - para instanciar uma
base de dados especfica. O esquema desta base podera evoluir atraves de manipulaco es
efetuadas pelos proprios usuarios, utilizando-se uma interface adequada. Para tanto, a
arquitetura necessita integrar dados presentes nas fontes pre-existentes, sendo que o processo de integraca o pode exigir uma ontologia para fornecer descrico es semanticas. A
arquitetura fornece ainda para os usuarios uma interface entre a base de dados instanciada
e os diversos aplicativos da biologia.
Um framework e um (sub)sistema de software parcialmente completo que define uma arquitetura para uma famlia de sistemas e fornece blocos basicos para a sua
construca o. E composto de classes abstratas e concretas e sua instanciaca o consiste de
composica o e heranca de classes. Um framework contem frozen spots que definem a
arquitetura global de um sistema de software, os seus componentes basicos e o relacionamento entre eles, devendo permanecer imutaveis em qualquer instanciaca o. Um framework tambem contem hot spots (ou pontos de flexibilizaca o) que representam as partes
do framework que sao especficas para cada instanciaca o. Assim, os frameworks sao geradores de aplicaco es que estao relacionadas com uma determinada classe de problemas.
Como sao criados para gerar aplicaco es para um dado domnio, os hot spots sao customizados de acordo com aplicaco es especficas, cada uma solucionando um problema
particular.
O framework que foi proposto (Figura 3) se propoe a integrar dados de qualquer
fonte de dados de biologia molecular. O projeto inclui wrappers que capturam o esquema

10

Administrator
Biology
Model

Application
Drivers

Biology
Algorithms

Fasta
txt

.Ace

Reg
Swiss
Prot

Captor
Converter (Wrappers)
ACEDB

GenBank

Swiss
Prot

AceDB

GenBank

Swiss
Prot

XML
Data

XML Schema
Schemas

Biology Data Sources

Figura 3. Arquitetura Bio-AXS de integracao

e os dados das fontes que participam da integraca o. Tanto os esquemas como os dados sao
armazenados em um repositorio que utiliza o modelo de dados semi-estruturado. Assim,
os esquemas sao armazenados em XMLSchema e os dados em XML. Os wrappers tem
ainda a funca o de traduzir os esquemas obtidos nas fontes de dados para XMLSchema e
os dados para XML. Este framework inova ao tratar da integraca o de esquemas baseada
em um meta-modelo. A integraca o e feita atraves de um mediador que captura os esquemas e dados das fontes, faz as conversoes necessarias e materializa as informaco es no
repositorio.
A arquitetura do framework esta subdividida em quatro modulos, cuja interdependencia esta esquematizada na Figura 3. O modulo Administrador realiza a interface
com os usuarios, de forma a prover as seguintes funco es: permitir gerenciar o modelo da
biologia e esquemas especficos, solicitar a captura de esquemas e/ou de dados, permitir
a formulaca o de consultas, permitir a execuca o dos programas instanciados no proprio
framework e a execuca o de aplicaco es externas. Este modulo contem um repositorio,
que armazena o modelo global da biologia. O modulo Capturador administra o repositorio de dados e de esquemas da arquitetura. Os Wrappers implementam o acesso a` s
fontes de dados de biologia, efetuando a traduca o dos esquemas das fontes de dados para
XML Schema e dos dados para XML. Os Drivers implementam a conversao dos dados
do formato interno do framework (XML) para o formato esperado pelas aplicaco es. Os
detalhes da arquitetura de cada modulo, suas classes e metodos, e seus relacionamentos,
sao descritos em [Seibel 2002].
Fruto de resultados ja disponveis, cabe aqui relatar que a ferramenta Bio-AXS

11

vem sendo utilizada como infra-estrutura para o sistema de anotaca o do genoma do Trypanosoma Cruzi (FIOCRUZ) e para o sistema de anotaca o do genoma da Gluconacetobacter diazotrophicus (UFRJ). Uma outra ferramenta de anotaca o especfica foi gerada
entao, chamada Bio-Notes [Lemos et al. 2003].
Modelagem de Dados
Para que a soluca o de integraca o baseada em frameworks possa ser aplicada ao
domnio da biologia molecular e necessario dispor de um modelo conceitual de dados
[Seibel et al. 2003]. Este e obtido por meio de um processo de projeto, como descrito anteriormente, que enriquece a comunicaca o entre o projetista e o especialista do domnio,
facilitando futuras mudancas na aplicaca o ou na implementaca o do banco de dados.
O resultado do processo do projeto conceitual de banco de dados e um esquema
conceitual de dados. Sao dois os objetivos dos modelos conceituais. Primeiro, os modelos
conceituais sao usados para descrever a informaca o a ser manipulada por um sistema de
informaca o. Segundo, os esquemas conceituais sao traduzidos em esquemas de dados
logicos que serao usados para implementar um banco de dados.
O processo de criaca o de esquemas conceituais durante o projeto de banco de
dados e geralmente referenciado como modelagem conceitual, embora possam ser dados
outros nomes dependendo da disciplina na qual isto se aplique.
Em [Macedo 2005] foram listados os requisitos para um novo modelo conceitual
de dados para a biologia molecular. Esses requisitos sao baseados nos problemas encontrados durante a modelagem de dados da biologia molecular utilizando linguagens de
modelagem conceitual de dados tradicionais, como ER e UML. A Tabela 1 descreve esses
requisitos.
Assim, e proposta em [Macedo 2005] uma nova linguagem de modelagem de dados orientada a objetos denominada BioConceptual. A linguagem BioConceptual foi
projetada para atender a todos os requisitos da Tabela 1. O objetivo e oferecer ao projetista do banco de dados uma linguagem mais expressiva para projetar esquemas de dados
para aplicaco es biologicas facilitando a sua construca o. A BioConceptual tenta trazer o
modelo de dados mais perto para o domnio da biologia mantendo distante dos aspectos
de implementaca o. Desta forma, a linguagem BioConceptual e definida como conceitual
visto que nao utiliza qualquer tipo de construtor que sugere a forma como este modelo
sera implementado.
Apos analisar diversos paradigmas de modelagem, decidimos usar um modelo de
dados orientado a objetos como base para a nossa linguagem de modelagem conceitual de
dados. Sao dois os maiores benefcios para o uso de uma abordagem orientada a objetos:
Um modelo orientado a objetos tem bastante expressividade para especificar
representaco es complexas e permite a unificaca o do desenvolvimento da aplicaca o
e do banco de dados em um ambiente sem divisoes entre o banco de dados e a linguagem de programaca o;

12

Tabela 1. Requisitos de um modelo de dados conceitual para biologia molecular

Requisito
#1
#2
#3
#4
#5
#6
#7
#8
#9
#10
#11
#12

Descrica o
Representar relacionamentos com ordem complexa e padroes.
Incluir propriedades em conceitos denominados de alto-nvel sem
necessidade de alterar os conceitos de base ou de baixo-nvel
Enriquecer a semantica dos modelos conceituais usando ontologias
Permitir explicitar as semantica dos relacionamentos
Representar funco es e estruturas biologicas de forma distinta
Representar heranca nao-monotonica
Representar relacionamentos probabilsticos e empricos
Representar restrico es complexas
Permitir a definica o de visoes sobre o modelo conceitual
Permitir representar hierarquias grandes e multi-nvel
Representar aspectos espaciais e temporais do processos biologicos
Definir construtores de alto-nvel baseados nas definico es de
construtores de baixo nvel

As aplicaco es requerem menos codigo, usam mais naturalmente a modelagem de


dados, e os codigos sao mais faceis de manter. Desenvolvedores de sistemas orientados a objeto podem criar aplicaco es completas de banco de dados sem muito
esforco.
Como conseque ncia desta decisao, foi decidido usar e estender a especificaca o
do padrao ODMG 3.0para incorporar as necessidades da nova linguagem. A adoca o do
padrao ODMG facilita a compreensao do modelo e a compatibilidade com outras linguagens de modelagem orientadas a objetos como UML, linguagens de programaca o
usando objetos (ex. Java), bancos de dados objeto-relacional e bancos de dados puramente orientados a objetos. Os detalhes da linguagem proposta devem ser consultados
em [Macedo 2005].

4. Conclusoes
Nesse artigo, procuramos evidenciar a necessidade de pesquisas na a rea de bancos de
dados que deem suporte a` s pesquisas na a rea de bioinformatica. Sao varios aspectos
importantes e tambem fundamentais que devem ser considerados, como a persistencia de
dados, indexaca o e modelagem conceitual. Como ja comentado, nao se trata de um estado
da arte na a rea mas sim, um conjunto especfico, porem significativo, de trabalhos na a rea.
No que diz respeito aos trabalhos em andamento e futuros, podemos mencionar as
pesquisas em persistencia de dados, onde se utilizam tecnicas especficas de compactaca o
de dados, alem de adaptaco es de estruturas de armazenamento conhecidas, como as

13

a rvores balanceadas [Rosa 2006]. Ja no que diz respeito a` s pesquisas na linha de projeto e
alocaca o de bancos de dados ja estao sendo avaliados estudos de tecnicas de fragmentaca o
mista de dados com polticas de distribuica o de dados sob demanda [Sousa 2006].
Em todos esses trabalhos mencionados, e fundamental citar a importancia das
interaco es e pesquisas realizadas em conjunto com pesquisadores que nao sao oriundos da
ciencia da computaca o. Este e o caso do grupo do DBBM - Departamento de Bioqumica
e Biologia Molecular da FIOCRUZ no Rio de Janeiro, com destaque especial para os
pesquisadores Wim Degrave e Antonio Baslio de Miranda.
Por fim, cabe observar que diversas partes desse trabalho sao originadas ou se referem a` s pesquisas, teses e dissertaco es do Departamento de Informatica da PUC-Rio realizadas desde 1997. Particularmente, as teses de doutorado de Luiz Fernando Bessa Seibel
[Seibel 2002] e Jose Antonio Fernandes de Macedo [Macedo 2005], e as dissertaco es de
mestrado de Melissa Lemos [Lemos 2000], Rogerio Lus de Carvalho Costa [Costa 2002],
Mara Ferreira de Noronha [Noronha 2006], Janana Oleinik Moura Rosa [Rosa 2006] e
Daniel Xavier de Sousa [Sousa 2006].

Referencias
Bornberg-Bauer, E. and Paton, N. (2002). Conceptual data modelling for bioinformatics.
Briefings in Bioinformatics, pages 166180.
Buneman, P., Khanna, S., Tajima, K., and Tan, W. C. (2004). Archiving scientific data.
ACM Transactions on Database System, pages 24.
Cavalcanti, M. C., Targino, R., Baiao, F. A., Rossle, S. C., Bisch, P. M., Pires, P. F.,
Campos, M. L. M., and Mattoso, M. (2005). Managing structural genomic workflows
using web services. Data and Knowledge Engineering, 53(1):4574.
Costa, R. L. C. (2002). Alocaca o de dados e distribuica o de carga para execuca o paralela
da estrategia blast de comparaca o de sequencia. Masters thesis, Departamento de
Informatica da PUC-Rio.
Costa, R. L. C. and Lifschitz, S. (2003). Database allocation strategies for parallel blast
evaluation on clusters. Distributed and Parallel Databases, 13(1):99127.
Davidson, S. B., Overton, G. C., and Buneman, P. (1995). Challenges in integrating
biological data sources. Journal of Computational Biology, 4:557572.
Lemos, M. (2000). Gerenciamento de memoria para comparaca o de biossequencias. Masters thesis, Departamento de Informatica da PUC-Rio.
Lemos, M. (2004). Workflow para Bioinforma tica. PhD thesis, Departamento de Informatica da PUC-Rio.
Lemos, M. and Lifschitz, S. (2003). A study of a multi-ring buffer management for blast.
In International Workshop on Biological Data Management (BIDM), pages 59.

14

Lemos, M., Seibel, L. F. B., and Casanova, M. A. (2003). Bionotes: A system for biosequence annotation. In BioNotes: A System for Biosequence Annotation, pages 1620.
Lifschitz, S. and Mauro, R. C. (2005). An i/o device driver for bioinformatics tools:
the case for blast. Genetics and Molecular Research (GMR), 4(1):563570. versao
revisada WOB 2004.
Macedo, J. A. F. (2005). Um Modelo Conceitual para Biologia Molecular. PhD thesis,
Departamento de Informatica da PUC-Rio.
Noronha, M. F. (2006). Implementaca o e avaliaca o de desempenho de um driver para
gerencia de e/s em aplicaco es de bioinformatic. Masters thesis, Departamento de
Informatica da PUC-Rio.
Rosa, J. O. M. (2006). Estruturas de armazenamento e persistencia de seque ncias e dados
biologicos. Masters thesis, Departamento de Informatica da PUC-Rio. (previsao).
Seibel, L., Macedo, J., Lemos, M., Lifschitz, S., Miranda, A., Alves, M., and Degrave,
W. (2003). A conceptual model for molecular biology information. In II Workshop
Brasileiro de Bioinformatica (WOB), pages 4756.
Seibel, L. F. B. (2002). BioAXS: Uma Arquitetura para Integraca o de Fontes de Dados
e Aplicaco es da Biologia Molecular. PhD thesis, Departamento de Informatica da
PUC-Rio.
Seibel, L. F. B. and S.Lifschitz (2001). A genome databases framework. In International
Conference on Database and Expert Systems Applications (DEXA), pages 319329.
Sousa, D. (2006). rategias de fragmentaca o mista para bancos de dados de sequencias
genomicas. Masters thesis, Departamento de Informatica da PUC-Rio. (previsao).

15