Connect with us

Ciência e Saúde

“A carga pronta, metida nos contentores”: os pilares da reprodutibilidade na bioinformática e biologia computacional

Published

on

“1WK15 Terminal Kontenerowy Kąty Wrocławskie” by Travelarz via Wikimedia Commons - Creative Commons Attribution-Share Alike 3.0 Poland license.

Sendo a bioinformática uma área tão interdisciplinar, é natural que subsistam algumas lacunas na formação de quem nela trabalha. No entanto, esta realidade acabou por empurrar a disciplina para uma crise relevante: a da falta de reprodutibilidade e de manutenção do software científico.

A reprodutibilidade na ciência é o pilar fundamental do método científico e da validação do conhecimento. Quando um estudo não pode ser replicado de forma independente por outros investigadores, a descoberta não poderá ser sujeita a revisão de pares.

Além do evidente travão no progresso científico, a falta de reprodutibilidade traduz-se num desperdício de fundos públicos de investigação, tanto monetário como em recursos humanos.

“Quem muito abarca, pouco aperta”: será mesmo esse o caso?

Apesar da emergência de cursos superiores de primeiro e segundo ciclo voltados para a bioinformática e biologia computacional, a grande maioria dos alunos que os frequentam advêm de áreas como as da ciência da vida, faltando bases de engenharia de software que abrangem conceitos como a programação letrada, controlo de versão, conteinerização de código, persistent sharing e documentação apropriada.

Contudo, o ditado popular acima descreve injustamente o bioinformático enquanto profissional. Este vive, na verdade, num estado de formação mais exigente em comparação à do investigador convencional: é-lhe exigido um domínio do estado da arte em duas frentes distintas, porém complementares, obrigando-o a um equilíbrio constante entre o rigor das ciências da vida e a complexidade técnica da engenharia de software.

Os cinco pontos acima são a base da criação de ferramentas e códigos robustos o suficiente de forma a persistirem no tempo, e serão debatidos ao longo deste artigo.

O rock português e a reprodutibilidade da ciência de computadores

Um container, em ciência dos computadores, funciona de forma muito semelhante aos contentores responsáveis pelo transporte de mercadorias nos portos de mar que inspiraram a famosa banda portuguesa “Xutos e Pontapés”.

Antes da sua invenção, transportar mercadorias em barcos era um caos logístico devido aos tamanhos e formatos diferentes dos bens. Daí, a padronização dos contentores em 1955, por Malcolm McLean, revolucionou por completo o comércio mundial. Em engenharia de software, o conceito é idêntico: trata-se de encapsular uma aplicação com todas as suas dependências e configurações específicas num único pacote autónomo, garantindo que o programa se comporte da mesma forma, independentemente da máquina ou do sistema operativo onde seja executado.

Ferramentas de isolamento: como o software ganha portabilidade

Ferramentas como o Docker permitem então “empacotar” binários juntamente com todas as bibliotecas e requisitos usados pelo cientista. Isto significa que, metaforicamente, a “carga fica pronta” e isolada: o código correrá exatamente da mesma maneira em qualquer computador do mundo, hoje ou daqui a dez anos, sem o risco de atualizações de sistema corromperem os resultados.

Complementarmente, plataformas como o Conda (e o Bioconda, específico para as ciências da vida), para além de garantir controlo de versões sem conflitos de sistema, permitem aceder a repositórios exclusivos onde residem ferramentas especializadas, indisponíveis em qualquer outro canal de distribuição.

Sem este tipo de ecossistemas, a bioinformática corre o risco de desperdiçar esforços devido à impossibilidade de utilizar certas ferramentas e de lhes dar continuidade.

 

“Principais ferramentas de conteinerização” colagem por João F. Moutinho. Logos via Wikimedia Commons (Public Domain / CC BY-SA 4.0).

“Falemos a mesma língua”: o Homem e a máquina

Menos abstratamente, outro conceito vital para a reprodutibilidade do código é o da programação letrada. Esta filosofia prioriza uma sintaxe o mais amigável possível para o leitor humano, em vez de focar apenas na máquina. A programação letrada é vantajosa em múltiplas frentes, especialmente na documentação e na manutenção do código. Por possuir uma sintaxe mais clara, torna mais fácil a execução de análises biológicas in silico rotineiras, permitindo que alterações mínimas sejam realizadas com maior eficiência.

Usualmente, a programação letrada é suportada por documentos ou plataformas como a do Jupyter Notebooks, que permite a partilha de códigos analíticos intercalados com texto narrativo, permitindo que o leitor compreenda a lógica, os métodos e os resultados de forma integrada.

Controlo de versão, persistent sharing e documentação: o “colocar tudo em pratos limpos” da bioinformática

O controlo de versão permite rastrear cada alteração feita a uma ferramenta ou código, garantindo que o histórico do projeto seja preservado. Ao registar o propósito de cada modificação, facilita-se a colaboração e a recuperação de estados de análise anteriores.

A partilha persistente de dados assegura que a informação seja acessível, findável e interoperável a longo prazo. Depositar dados em repositórios especializados (usando plataformas como o Github) evita a perda de materiais e permite que outros investigadores verifiquem e reutilizem resultados com total transparência. Similarmente, a documentação apropriada atua como a cola de qualquer projeto, descrevendo métodos (como algoritmos) e requisitos essenciais. Um ficheiro explicativo detalhado, aliado a protocolos minuciosos, desmistifica o código para qualquer programador que o queira usar e entender, tornando a reprodução de análises acessível a toda a comunidade.

“Principais ferramentas de controlo de versões e documentação, que permitem aplicar os conceitos da programação letrada” colagem por João F. Moutinho. Logos via Wikimedia Commons (Public Domain / CC BY-SA 4.0).

O futuro da ciência escreve-se com boas práticas: o papel da comunidade em garantir a reprodutibilidade

Finalmente, é importante salientar que a reprodutibilidade não é um entrave, mas o selo de qualidade que transforma um dado num contributo real para a ciência. Adotar estas boas práticas é a responsabilidade coletiva necessária para garantir que o progresso de hoje perdure amanhã.

Uma ferramenta ou código é tão bom quanto a capacidade que os outros têm de o entender, escrutinar e utilizar.

Artigo redigido por João Fernandes Moutinho. Revisto por Joana Ribeiro da Silva.