
Git e Github são repositórios de código que estão se tornando cada vez mais importantes nas ciências da vida, incluindo a ciência das plantas. Não tem certeza do que são Git e Github e por que há um animal fantástico (Octocat) como a imagem de cabeçalho desta postagem em um blog botânico? Continue lendo esta conversa com Tjelvar Olsson, gerente de computação científica do John Innes Centre.
Rua Ian: As menções ao GitHub ocorrem cada vez mais entre os cientistas. Para quem não sabe (como eu), o que é?
Tjelvar Olsson: GitHub é um serviço baseado em nuvem para hospedagem de código-fonte de software de código aberto. É um dos sites mais populares para esse fim.
É: OK legal! Como a hospedagem de código-fonte é relevante para os biólogos?
TO: Duas razões principais: primeiro, a biologia está se tornando cada vez mais orientada por dados. Sequenciamento, bioimagem e outras técnicas estão gerando grandes quantidades de dados. A extração de informações biológicas desses dados geralmente requer análise de dados com script e programas de computador. O código-fonte dessas ferramentas de análise de dados é, portanto, diretamente relevante para os biólogos. Em segundo lugar, a ciência tem tudo a ver com reprodutibilidade. Ao dar acesso ao código-fonte, a pesquisa torna-se mais (facilmente) reproduzível.
É: Sim, reprodutibilidade na ciência é um grande problema, e um assunto bastante espinhoso.
TO: É sim. Um grande problema com scripts e programação é que é muito fácil cometer erros. Às vezes, isso simplesmente quebra o script para que não funcione mais, mas às vezes há falhas fundamentais que fornecem resultados enganosos. No último caso, é preciso saber o código exato usado para produzir os resultados.
É: Como podemos acessar o código de outras pessoas?
TO: Bem, esse é o primeiro problema que o Github resolve – ele permite que as pessoas compartilhem seu código com o mundo.
É: Isso resolve o problema de saber como os resultados foram produzidos?
TO: Não necessariamente. Suponha que eu usei um de meus scripts para analisar alguns dados. Esses dados são então usados em um manuscrito. No entanto, escrever costuma ser trabalhoso e demorado. Enquanto isso, tenho uma ideia inteligente que quero experimentar. Então eu edito meu roteiro e experimento um pouco. Nesse ponto, os dados gerados para o manuscrito estão fora de sincronia com o código-fonte em meu script e, se eu não estiver usando o controle de versão, estarei em apuros.
É: Então, o controle de versão trata de rastrear alterações no código-fonte?
TO: Isso mesmo. Como a indústria de software já enfrenta esses problemas de reprodutibilidade há muito tempo, embora em um contexto um pouco diferente, ferramentas foram desenvolvidas para amenizar o problema. O controle de versão é uma dessas ferramentas. Você pode pensar nisso como um botão “desfazer” infinito que permite voltar às versões anteriores do seu código.
É: Como o Google Docs, mantendo históricos inteiros de um documento. Então o GitHub é uma ferramenta de controle de versão?
TO: Tipo de. A ferramenta de controle de versão em questão é na verdade chamada Git. O Git foi desenvolvido por Linux Torvalds, a pessoa que criou o Linux, o sistema operacional no qual a maioria dos softwares de bioinformática é executada. O Git é um dos programas de controle de versão mais populares, o que significa que é usado por muitos projetos de código aberto e empresas de software. Portanto, se você é um cientista que deseja adquirir uma habilidade transferível valiosa, vale a pena aprender como usá-la.
É: Como o Git e o GitHub se encaixam?
TO: Git é um meio de manter seu código-fonte sob controle de versão no que é chamado de “repositório”, basicamente um diretório com arquivos. O GitHub permite hospedar seu repositório online, dando acesso ao código-fonte e a todos os instantâneos armazenados em seu histórico, ou seja, todas as versões do código.
É: Isso soa um pouco complicado. É difícil aprender e usar o Git/GitHub?
TO: Não, na verdade é muito fácil. Você só precisa de alguns comandos para começar. Ok, então você precisa ser capaz de usar a linha de comando, mas se estiver executando e/ou criando scripts de análise de dados, é improvável que seja novidade para você.
É: Quanto custa usar o Git e o GitHub?
TO: O Git é um software de código aberto, portanto é gratuito. Se você estiver usando um Mac, provavelmente já está instalado em seu computador. O GitHub também é gratuito se você compartilhar seu código com o mundo. É disso que se trata! Hospedar seus scripts no GitHub também é uma maneira ideal de fazer backup de seu código.
É: Posso fazer backup dos meus dados no GitHub também?
TO: Não, você não deveria fazer isso. GitHub é sobre compartilhar e colaborar em seu código. Não é um repositório de dados. Na verdade, não permitirá que você envie arquivos maiores que 100 MB.
É: Ok, então o GitHub é sobre código-fonte e não sobre dados. No entanto, você acabou de mencionar que o GitHub era sobre colaboração. Você poderia expandir isso?
TO: Claro. Até agora falamos sobre reprodutibilidade porque é uma grande preocupação para os cientistas e é um dos problemas que o Git resolve. No entanto, as pessoas que desenvolvem software também têm problemas de colaboração no código. Se duas pessoas editarem o mesmo arquivo, como essas alterações podem ser mescladas? É análogo ao problema enfrentado pelo autor principal tentando incorporar as mudanças díspares fornecidas por seus colaboradores. O Git fornece ferramentas para resolver esses tipos de problemas e o GitHub fornece um meio fácil para as pessoas colaborarem no mesmo projeto, dando-lhes acesso ao repositório Git onde quer que tenham uma conexão com a Internet.
É: Isso tudo parece ótimo. Quais são alguns bons recursos para aprender sobre o Git?
TO: Há um bom artigo de John D. Blischak , Emily R. Davenport e Greg Wilson em PLOS Computational Biology chamado “A Quick Introduction to Version Control with Git and GitHub” (10.1371/journal.pcbi.1004668). Há também um curso on-line gratuito de Git na Codecademy (Aprenda Git). Meu livro, guia do biólogo para computação tem capítulos sobre Git (Acompanhando seu trabalho) e GitHub (Colaborando em projetos). Codificação feliz!

Tjelvar Olsson é um biólogo que se envolveu com a computação.
Ele fez sua graduação e doutorado em bioquímica. Durante o doutorado, viu-se mudando o foco do trabalho de laboratório para a análise computacional de dados. Esse processo foi amplamente guiado por tentativa e erro e foi bastante árduo. Na época, não havia muitos recursos para ajudar biólogos a aprenderem sobre computação.
Após o doutorado, ele quis aprender mais sobre desenvolvimento de software profissional (e química) e conseguiu um emprego como cientista de aplicações no Centro de Dados Cristalográficos de Cambridge, onde trabalhou em projetos de desenvolvimento de software e bancos de dados para a indústria farmacêutica. Durante esse período, teve a sorte de trabalhar com pessoas incríveis e aprendeu muito sobre codificação, boas práticas de programação e processos de desenvolvimento de software.
Após seis anos, o fascínio pela biologia e pelo meio acadêmico se tornou irresistível, e ele conseguiu um emprego como gerente de laboratório de computação científica no John Innes Centre. No JIC, ele dedica grande parte do seu tempo ao desenvolvimento de software científico e à automatização de serviços científicos.
