Ex-alunos Pesquisa, carreiras e impacto além da graduação
Nesta página
Visão geral O problema estrutural O objeto dv Mecanismo de integração Qualidade do software Fluxo de trabalho reproduzível Evolução do projeto Registro de código aberto
DSTI TechBlog  /  Ex-alunos
Ex-alunos Software de pesquisa de código aberto

dbparser: de bancos de dados complexos de medicamentos para fluxos de trabalho R reproduzíveis

Um projeto estudantil tornou-se uma infraestrutura de pesquisa mantida e revisada por pares. Mohammed Ali, ex-aluno da DSTI, criou o dbparser para transformar bancos de dados farmacológicos incompatíveis em objetos R consistentes e fluxos de integração reproduzíveis.

R dbparser farmacovigilância bioinformática código aberto pesquisa reproduzível

Grandes bancos de dados farmacológicos são valiosos porque preservam relações complexas entre medicamentos, alvos, vias, produtos, efeitos adversos e interações. Eles são difíceis de analisar exatamente pelo mesmo motivo. O DrugBank chega como XML profundamente aninhado; onSides como arquivos CSV relacionais; TWOSIDES como dados de interação compactados. dbparser converte essas diferentes fontes em objetos R consistentes e fluxos de trabalho de integração rastreáveis.

Importante

Acesso e licenciamento de dadosdbparser analisa bancos de dados que o pesquisador está autorizado a acessar. Ele não redistribui o conteúdo restrito do DrugBank. A reprodutibilidade ainda requer o registro da versão do banco de dados de origem, das condições de acesso e da versão exata do pacote usado.

A abstração útil não é meramente um arquivo mais plano. É um modelo de objeto estável que preserva relacionamentos, divulga informações e procedências, ao mesmo tempo em que oferece aos analistas uma forma consistente de trabalhar.

01O problema é estrutural, não cosmético

Um banco de dados farmacológico não é uma planilha com muitas colunas. Os registros de medicamentos se conectam a alvos, enzimas, transportadores, vias, produtos, referências e identificadores externos. Um analisador que apenas nivela o arquivo pode facilitar o carregamento do resultado e, ao mesmo tempo, destruir silenciosamente as relações que dão significado aos dados.

As fontes também discordam sobre formatos e identificadores. O DrugBank usa uma grande hierarquia XML. O OnSides distribui tabelas CSV relacionadas derivadas de rótulos de medicamentos. TWOSIDES usa uma representação plana comprimida de eventos adversos associados a pares de medicamentos. Os scripts ad-hoc podem unir uma análise, mas geralmente ocultam suposições sobre uniões, versões e valores ausentes.

DrugBank XML hierarchy

Mecanismos, registros de medicamentos, alvos, vias e identificadores.

OnSides CSV tables

Eventos adversos a medicamentos extraídos dos rótulos de medicamentos da FDA.

TWOSIDES CSV.GZ

Eventos adversos associados a pares de medicamentos.

02Um objeto comum sem apagar a fonte

dbparser apresenta o dvobject—um objeto drugverse implementado como uma lista R com padrões de acesso consistentes. Ele retém tabelas organizadas para análise, metadados sobre o processo de lançamento e análise do banco de dados e mapeamentos que descrevem como as tabelas se relacionam entre si.

Para uma única liberação do DrugBank, o objeto pode expor informações sobre medicamentos, sais, produtos, referências e as estruturas conectadas transportador-enzima-alvo-transportador. Quando as fontes são mescladas, o mesmo objeto ganha componentes de banco de dados aninhados e tabelas integradas, em vez de se tornar uma coleção não documentada de uniões.

O que um objeto DV mantém unido

objeto pronto para análise
medicamentos tabelas principais de medicamentos
cett transportadores, enzimas, alvos, transportadores
produtos produtos comerciais
references artigos, links e livros
metadados liberação e proveniência

03Do analisador ao mecanismo de integração

O pacote atual usa o DrugBank como núcleo mecanístico. OnSIDES contribui com eventos adversos extraídos dos rótulos de medicamentos da FDA, enquanto TWOSIDES contribui com eventos adversos associados a combinações de medicamentos. A arquitetura hub-and-spoke reduz o número de mapeamentos de identificadores que precisam ser mantidos e torna explícito o caminho de integração.

Esse design é uma desvantagem: fluxos de trabalho de vários bancos de dados dependem dos identificadores e mapeamentos do DrugBank. Mas é uma compensação visível e testável, em vez de uma suposição implícita escondida em um caderno único.

OnSides Eventos adversos a medicamentos extraídos dos rótulos de medicamentos da FDA.
DrugBank DrugBank como centro mecanicista
TWOSIDES Eventos adversos associados a pares de medicamentos.

04A engenharia de software em torno do analisador

Um pacote de pesquisa útil precisa de mais do que funções de análise operacionais. Precisa de uma interface pública estável, testes, documentação, metadados, exemplos, versões identificadas e um processo de revisão das alterações. O dbparser é distribuído pelo CRAN, documentado pela rOpenSci, publicado sob licença MIT e mantido em um repositório público.

O pacote passou pela revisão por pares da rOpenSci, e seu artigo de software foi publicado no Journal of Open Source Software em fevereiro de 2026. Esse registro é importante porque torna verificáveis as alegações de qualidade: os usuários podem consultar o repositório, a discussão da revisão, a versão arquivada, a documentação e o rastreador de problemas.

Lançamentos versionados

Os arquivos CRAN tornam visível a evolução do pacote e a versão exata usada em uma análise.

Avaliação por pares

A revisão da rOpenSci e o registro no JOSS expõem a documentação, os testes e as decisões de projeto do software.

Entradas reproduzíveis

Os metadados mantêm as versões de origem e analisam os detalhes junto com o objeto pronto para análise.

05Um fluxo de trabalho compacto e reproduzível

O código abaixo mostra a ideia arquitetônica sem escondê-la por trás de uma interface gráfica. Cada fonte é analisada de forma independente. Os objetos resultantes são então mesclados por meio de operações explícitas e encadeáveis. O código permanece deliberadamente inalterado na documentação do pacote.

R Pipeline de integração
library(dbparser)
library(dplyr)

drugbank_db <- parseDrugBank("data/drugbank.xml")
onsides_db  <- parseOnSIDES("data/onsides/")
twosides_db <- parseTWOSIDES("data/TWOSIDES.csv.gz")

final_db <- drugbank_db %>%
  merge_drugbank_onsides(onsides_db) %>%
  merge_drugbank_twosides(twosides_db)

head(final_db$integrated_data$drug_drug_interactions)

06Do projeto estudantil à infraestrutura de pesquisa

O CRAN grava o primeiro lançamento do dbparser em dezembro de 2018. O arquivo público então mostra uma sequência de versões mantidas em vez de um upload único. Na versão 2.2.1, publicada em janeiro de 2026, o pacote foi além da análise exclusiva do DrugBank para oferecer suporte a fluxos de trabalho integrados de farmacovigilância em três fontes.

A documentação do projeto identifica o uso em mais de dez publicações revisadas por pares, abrangendo reaproveitamento de medicamentos, biomarcadores, modelagem de caminhos e análise de ensaios clínicos. A história mais forte, portanto, não é que um aluno tenha escrito um analisador. É que o trabalho sobreviveu ao contato com outros pesquisadores, à alteração dos bancos de dados de origem, à revisão de pacotes e à manutenção de longo prazo.

2018 dbparser 1.0.0 entra no CRAN.
2023–24 A série 2.x moderniza o pacote e seu modelo de dados.
2026 A versão 2.2.1 suporta integração com DrugBank, OnSides e TWOSIDES.
2026 O artigo do software é publicado no JOSS após uma revisão aberta.

07O ex-aluno por trás do projeto de código aberto

Mohammed Ali é ex-aluno de DSTI, autor e mantenedor do dbparser. Ali Ezzat é coautor do pacote e do artigo do JOSS. Seu registro público permite que os leitores inspecionem o software em vários níveis: a versão estável do CRAN, o manual de referência completo, a documentação do OpenSCI, o repositório de origem, a discussão da revisão do software e a publicação arquivada do JOSS.

Essa abertura faz parte do resultado da engenharia. Uma ferramenta de pesquisa reproduzível deve permitir rastrear não apenas a saída de uma análise, mas também a versão do software, a liberação dos dados de origem e as decisões que transformaram uma na outra.

Software, documentação e publicação

Mohammed Ali

Ex-aluno da DSTI, autor e mantenedor do dbparser. Seu trabalho reúne engenharia de software em R, integração de dados farmacológicos e infraestrutura de pesquisa reproduzível.

LinkedIn

Fonte e nota editorial: Artigo desenvolvido a partir do registro do projeto estudantil anterior na DSTI, de um manuscrito fornecido e das fontes atuais do CRAN, da rOpenSci, do repositório e do JOSS. Os nomes técnicos, as funções do pacote, o código e os títulos das publicações foram preservados com exatidão.