Dan Chaltiel
Team Oncostat, Gustave Roussy

Petite introduction
La science ouverte, ou open science, est un mouvement dont l’objectif est de rendre universellement accessibles les résultats de la recherche scientifique (publications et données de recherche, notamment).
But: publier avec l’article les données et le code d’analyse, de manière à ce que n’importe qui puisse reproduire nos résultats.
On entend de plus en plus parler de fraudes et publications falsifiées.
Beaucoup de lanceurs d’alerte, quelques retraits d’articles, très peu de mesures disciplinaires…
“Paper mills”, les industries des fausses publications (plus d’infos dans nature, mdpi, lqdm, …)
Pas forcément de la malhonnêteté : le publish or perish pousse à publier vite. Prendre le temps de tout vérifier n’est pas valorisé partout.
Quand partager les données et le code d’analyse avec un article sera la norme,
il sera plus compliqué de falsifier les études.
on se rendra compte plus vite d’éventuelles erreurs et biais dans les études.
BONUS: même sans erreurs, il y a les problèmes inhérents à la méthode scientifique : risques alpha/beta, biais multiples…
Suivez Elisabeth Bik sur tweeter! @MicrobiomDigest


Enfin, on y vient!
GitHub est une plateforme d’hébergement de code pour la gestion de versions et la collaboration. Cette plateforme vous permet de travailler avec d’autres personnes sur des projets depuis n’importe où. (source)
En pratique, GitHub est un Hub de dépots Git.
Commençons déjà par expliquer ce qu’est Git.
Git est un système de contrôle de version (VCS).
Imaginons un projet contenant des données, du code, des figures, des rapports…
Git va permettre de faire des “photographies” du projet à un instant t , appelé commits.
Chaque commit est ajouté à une base de données interne.
On peut synchroniser cette base de données à un serveur centralisé (e.g. GitHub).
Chaque commit contient l’information de tous les fichiers changés (diff), l’auteur, et une petite description des changements.

Parce que j’imagine que c’est encore un peu flou…
On va avoir besoin de plusieures choses :
Prenons l’exemple de mon package crosstable pour R.
Les puristes utilisent Git en ligne de commande, mais nous on va utiliser un logiciel avec une GUI.
Ici, j’utilise GitHub Desktop :

Petit cas pratique d’utilisation :
J’en suis au 855ème commit sur mon projet crosstable.
J’ai fait quelques modifications sur RStudio
Ces modifications concernent deux points : le fichier NAMESPACE et les tests
On va aller sur GitHub Desktop pour faire un commit.

Dépot centralisé de mes commits (si pushed), ici hébergé sur https://github.com:
Git permet de gérer les versions
Evite d’avoir 6 copies de projet_v3_final_pour_de_vrai_cette_fois
Utile pour les petits et les grands projets
Grâce à GitHub, on va pouvoir publier nos codes et utiliser Git dans des projets collaboratifs.
Github est surtout un formidable outil de collaboration, particulièrement adapté à l’encadrement.
En plus du versionning, GitHub c’est :
Un outil de partage de code
Mais c’est surtout un espace collaboratif très puissant :
Pas forcément open-source (on peut garder un repo private)
Si deux personnes travaillent en parallèle à partir du même commit, on peut résoudre les conflits très facilement.

Projet : faire ses simulations sur GitHub
6h par job, 35 jours par workflow, 20 jobs en parallèle
queue de 500 workflows
job matrix de max 256 jobs
Encore plus avec un compte pro (lien)
Confidentialité des bases de données, RGPD ?
Modération des issues
Utiliser GitHub plutôt que GitLab, FramaGit, …
We collect and preserve software in source code form, because software embodies our technical and scientific knowledge and humanity cannot afford the risk of losing it.
Collecte massive sur GitHub, permet l’archivage pérenne des codes sources.
Non exhaustif : s’inscrire ici pour s’assurer que son code est sauvegardé.
N’hésitez pas si vous avez des questions.
Le code source de cette présentation est disponible sur GitHub.