# Journal de bord du Mooc / Mooc's logbook # Module 0 Crise de la reproductabilité [resource1](https://theconversation.com/reproduire-un-resultat-scientifique-plus-facile-a-dire-qua-faire-129848) [ressource2](https://gitlab.inria.fr/learninglab/mooc-rr/mooc-rr-ressources/blob/master//module0/ressources/ReproducibilityCrisisHistory_fr.md) [ressource3](https://journals.plos.org/plosmedicine/article?id=10.1371/journal.pmed.0020124) Difficulté à reproduire le travail des collègues, reproductibilité décrite comme l'un des piliers de la fiabilité de la recherche scientifique alors que par leur nature certains domaines ne peuvent pas avoir leur travail reproduit Rigueur et transparence sont d'autres qualité à considérer pour la fiabilité d'un travail Notions différentes entre reproductibilité, transparence # Module 1 Carnet de notes pour garder une trace Markdown : voir construction de ce Markdown Pandoc Git # Module 2 Erreurs possible au niveau de l'acquisition des données, des calculs, de la machine etc (IRM), mais aussi au niveau de l'analyse des données (statistiques, programmation) Transparence utile pour le partage aux autres et pour soi même, pour identifier les erreurs, les articles les plus cités sont ceux qui apportent une méthodologie innovante et réutilisable Sources d'erreurs possible : - Eviter point & click, tableurs, pile logicielle complexe (logiciel propriétaire boite noire) -> "mieux vaut être en mesure de déterminer, dans son analyse, si chaque brique est digne de confiance ou pas" - Manque de rigueur et d'organisation - pas de backup - pas d'historique - pas de controle qualité - Eviter outils, formats et services propriétaires : - privilégier format texte : markdown, orgmode, csv, hdf5, ... - privilégier logiciels et langages de programmation libres : scilab, R, python, ... - Eviter de stocker les données chez un hébergeur dont vous pouvez être captifs - privilégier framadrop, gitlab/github - Attention aux outils "intuitifs" : tableurs, interfaces graphiques, exploration interactive - R, python Jupyter possible de faire du R avec commande %%R et les variables sont conservées entre blocs R Markdown pour faire Markdown et code en même temps, knitR permet d'exporter en pdf R Sweave sur Rstudio pour faire du Latex Possible de faire du Python mais les variables ne sont pas conservées entre blocs de code (contrairement à Jupyter) donc tout devrait être fait dans le même bloc <- pas possible car défait un peu le but du markdown avec explications entre les blocs de codes justement **POSSIBLE DE CONNECTER RSTUDIO A GITLAB/GITHUB POUR CLONER PROJET ET CHARGER/COMMIT/PUSH LES FICHIERS DIRECTEMENT** HAL (etat français), Zenodo (CERN), figshare : outils d archivage de doc final et de docs annexes comme des images Modifier doc depuis cmd : echo texte à ajouter >> fichier.md Visualiser fichier : less fichier.md git checkout fichier -> revenir à la version précédente d'un fichier (avant git add?) Revenir à version précédente : identifier commit qui intéresse dans history du fichier dans gitlab, on peut ensuite télécharger la version antérieure du fichier, la modifier ou l'utiliser pour remplacer la version en cours # Module 3 Attention aucune modification de fichier à la main car sinon pas de traces : du code partout pour une analyse réplicable Rstudio library(parsedate) pour gérer donners format ISO 8601 Importer depuis url : ``` data_url <- "lien de téléchargement (dispo depuis historique de téléchargement)" data <- read.csv(data_url, skip = 1, #ignorer première ligne du fichier en question car contient commentaire na.strings = "-") #indique que les - doivent être considérés comme NA ``` Trouver lignes avec NA : ``` lignes_na <- apply(data, 1, # parcourir les lignes function(x) any(is.na(x))) data[lignes_na,] # visualiser les lignes avec NA ``` Conversion norme ISO 8601 ``` convert_week <- function(date){ ws <- paste(date) iso <- paste0(substring(ws, 1, 4), # 4ères lettres = annee "-W", substring(ws, 5, 6)) # 5 et 6ème lettre = mois as.character(parse_iso_8601(iso)) } data$date <- as.Date(sapply(data$week, convert_week)) # sapply sort du chr donc format date ne serait pas gardé, besoin de convertir avc as.Date après avoir converti en chr dans la fonction data <- data[order(data$date),] # ranger par ordre chronologique ``` Pics annuel ``` pic_annuel <- function(annee) { debut <- paste0(annee-1, "-08-01") # debut au 1er aout car creux du pic (alors que janvier au milieu du début de forte pente) fin <- paste0(annee, "-08-01") semaines <- data$date > debut & data$date <= fin sum(data$inc[semaines], na.rm = TRUE) } annees <- 1986:2017 # annee 1985 début en janvier au milieu du pic, pas de données de aout 1984 donc on préfére commencer en 1986 incidence_annuelle <- data.frame(annee = annees, incidence = sapply(annees, pic_annuel)) ``` Puis visualisation avec lignes, points, histo etc... Une analyse réplicable doit contenir toutes les étapes de traitement des données sous une forme executable Important d'expliquer tous les choix qui peuvent influencer les résultats Nécessite d'exposer beaucoup de détails techniques, parce que c'est à ce niveau qu'on fait des erreurs! # Module 4