Git et Github sont des référentiels de code qui deviennent de plus en plus importants dans les sciences de la vie, y compris la phytologie. Vous ne savez pas ce que sont Git et Github et pourquoi il y a un animal fantastique (Octocat) comme image d'en-tête de cet article sur un blog botanique ? Poursuivez votre lecture avec cette conversation avec Tjelvar Olsson, responsable du calcul scientifique au John Innes Centre.

Ian Street : Les mentions de GitHub sont de plus en plus fréquentes parmi les scientifiques. Pour ceux qui ne sont pas au courant (comme moi), qu'est-ce que c'est ?

Tjelvar Olsson : GitHub est un service basé sur le cloud pour l'hébergement du code source de logiciels open source. C'est l'un des sites les plus populaires à cet effet.

EST: OK cool! En quoi l'hébergement de code source est-il pertinent pour les biologistes ?

À: Deux raisons principales : premièrement, la biologie devient de plus en plus axée sur les données. Le séquençage, la bioimagerie et d'autres techniques génèrent de grandes quantités de données. L'extraction d'informations biologiques à partir de ces données nécessite souvent une analyse de données scénarisée et des programmes informatiques. Le code source de ces outils d'analyse de données est donc directement pertinent pour les biologistes. Deuxièmement, la science est une question de reproductibilité. En donnant accès au code source, la recherche devient plus (facilement) reproductible.

EST: Oui, reproductibilité en science est un énorme problème, et un sujet assez épineux.

À: Oui c'est le cas. Un gros problème avec les scripts et la programmation est qu'il est très facile de faire des erreurs. Parfois, cela casse simplement le script pour qu'il ne fonctionne plus, mais parfois il y a des défauts fondamentaux qui donnent des résultats trompeurs. Dans ce dernier cas, il faut connaître le code exact utilisé pour produire les résultats.

EST: Comment pouvons-nous accéder au code d'autres personnes ?

À: Eh bien, c'est le premier problème que Github résout - il permet aux gens de partager leur code avec le monde.

EST: Est-ce que cela résout le problème de savoir comment les résultats ont été produits?

À: Pas nécessairement. Supposons que j'ai utilisé l'un de mes scripts pour analyser certaines données. Ces données sont ensuite utilisées dans un manuscrit. Cependant, l'écriture est souvent laborieuse et prend du temps. En attendant, j'ai une idée astucieuse que je veux essayer. J'édite donc mon script et expérimente un peu. À ce stade, les données générées pour le manuscrit ne sont pas synchronisées avec le code source de mon script et si je n'utilise pas le contrôle de version, j'ai de gros problèmes.

EST: Le contrôle de version consiste donc à suivre les modifications du code source ?

À: C'est exact. Parce que l'industrie du logiciel est confrontée depuis longtemps à ces problèmes de reproductibilité, bien que dans un contexte légèrement différent, des outils ont été développés pour pallier le problème. Le contrôle de version est l'un de ces outils. Vous pouvez le considérer comme un bouton "annuler" infini qui vous permet de revenir aux versions précédentes de votre code.

EST: Comme Google Docs qui conserve l'historique complet d'un document. Alors GitHub est un outil de contrôle de version ?

À: Type de. L'outil de contrôle de version en question s'appelle en fait Git. Git a été développé par Linux Torvalds, la personne qui a créé Linux, le système d'exploitation sur lequel fonctionnent la plupart des logiciels de bioinformatique. Git est l'un des programmes de contrôle de version les plus populaires, ce qui signifie qu'il est utilisé par de nombreux projets open source et éditeurs de logiciels. Donc, si vous êtes un scientifique désireux d'acquérir une compétence transférable précieuse, il vaut la peine d'apprendre à l'utiliser.

EST: Comment Git et GitHub s'imbriquent-ils ?

À: Git est un moyen de garder votre code source sous contrôle de version dans ce qu'on appelle un "dépôt", essentiellement un répertoire avec des fichiers. GitHub vous permet d'héberger votre repository en ligne, donnant accès au code source et à tous les snapshots stockés dans son historique, c'est à dire toutes les versions du code.

EST: Cela semble un peu compliqué. Est-il difficile de prendre en main et d'utiliser Git/GitHub ?

À: Non, c'est en fait très facile. Vous n'avez besoin que d'une poignée de commandes pour commencer. D'accord, vous devez donc pouvoir utiliser la ligne de commande, mais si vous exécutez et/ou créez des scripts d'analyse de données, il est peu probable que ce soit nouveau pour vous.

EST: Combien coûte l'utilisation de Git et GitHub ?

À: Git est un logiciel open source donc gratuit. Si vous utilisez un Mac, il est probablement déjà installé sur votre ordinateur. GitHub est également gratuit si vous partagez votre code avec le monde. C'est de cela qu'il s'agit ! L'hébergement de vos scripts sur GitHub est également un moyen idéal de sauvegarder votre code.

EST: Puis-je également sauvegarder mes données sur GitHub ?

À: Non, tu ne devrais pas faire ça. GitHub consiste à partager et à collaborer sur votre code. Ce n'est pas un référentiel de données. En fait, il ne vous permettra pas de télécharger des fichiers de plus de 100 Mo.

EST: D'accord, donc GitHub concerne le code source et non les données. Cependant, vous venez de mentionner que GitHub était une question de collaboration. Pourriez-vous développer ceci?

À: Bien sûr. Jusqu'à présent, nous avons parlé de reproductibilité car c'est une grande préoccupation pour les scientifiques et c'est l'un des problèmes que Git résout. Cependant, les personnes qui développent des logiciels ont également un problème de collaboration sur le code. Si deux personnes modifient le même fichier, comment ces modifications peuvent-elles être fusionnées ? C'est analogue au problème rencontré par l'auteur principal essayant d'incorporer les changements disparates fournis par ses collaborateurs. Git fournit des outils pour résoudre ces types de problèmes et GitHub permet aux utilisateurs de collaborer facilement sur le même projet en leur donnant accès au référentiel Git partout où ils disposent d'une connexion Internet.

EST: Tout cela sonne bien. Quelles sont les bonnes ressources pour en savoir plus sur Git ?

À: Il y a un bon article de John D. Blischak , Emily R. Davenport et Greg Wilson dans PLOS Computational Biology intitulé « A Quick Introduction to Version Control with Git and GitHub » (10.1371/journal.pcbi.1004668). Il existe également un cours Git en ligne gratuit sur Codecademy (Apprenez Git). Mon livre, Guide du biologiste à l'informatique a des chapitres à la fois sur Git (Suivi de votre travail) et GitHub (Collaborer sur des projets). Bon codage !

Tjelvar Olsson est un biologiste qui s'est lancé dans l'informatique.

Il a obtenu sa licence et son doctorat en biochimie. Durant son doctorat, il s'est progressivement orienté du travail en laboratoire vers l'analyse informatique des données. Ce processus, largement guidé par l'expérimentation, s'est avéré particulièrement difficile. À l'époque, les ressources permettant aux biologistes de se familiariser avec l'informatique étaient rares.

Après son doctorat, il souhaitait approfondir ses connaissances en développement logiciel professionnel (et en chimie) et a obtenu un poste de scientifique d'application au Centre de données cristallographiques de Cambridge, où il a travaillé sur des projets de développement de logiciels et de bases de données pour l'industrie pharmaceutique. Durant cette période, il a eu la chance de collaborer avec des personnes formidables et d'acquérir de solides compétences en programmation, en bonnes pratiques de développement et en processus de développement logiciel.

Au bout de six ans, l'attrait de la biologie et du monde universitaire est devenu trop fort et il a accepté un poste de responsable de laboratoire de calcul scientifique au Centre John Innes. Au JIC, il consacre une grande partie de son temps au développement de logiciels scientifiques et à l'automatisation des services scientifiques.