#+title: Reproducible Research Notes/Journal #+startup: inlineimages indent overview * Module 2 ** 0. Introduction ** 1. Exemples récents d'études assez discutées - En 2010, suite à la crise des subprimes, les économistes Reinhart et Rogoff étudient les relations entre la dette et la croissance. Ils concluent que quand la dette d'un pays dépasse 90% du PIB les conséquences sont catastrophiques. Beaucoup de périodistes et politiciens jusitifient leurs décision d'austérité économique en s'appuyant sur leurs travaux. *** IRM fonctionnelle - Bennett et al. mettent un saumon mort dans un IRM et ils obtiennent des signaux. Ils font ça pour mettre en évindence à quel point les données brutes sont bruités dans les IRM et le grand besoin de bien calibrer la machine et d'être rigoureux dans le traitement de données. - Eklund, Nichols and Knutsson trouvent un bug dans le soft pour traiter les images qui pourrait remettre en cause 15 annnées de recherche sur le cerveau (3600 articles seraient concernées). ** 2. Pourquoi est-ce difficile ? *** Difficultés à reproduire les résultats 1. Non disponibilité des données : données brutes, choix utilisés pour l'acquisition, traitement. 2. Erreurs dûs à l'utilisation des ordinateurs. 3. Manque de rigueur et d'organisation. 4. Dimensions culturelles : - Un article est beaucoup trop succint comme format. *** Tout rendre public ? - Les papier les plus cités sont ceux qui donnent des contributions méthodologiques ou qui développent un logiciel qui devient indispensable, donc il est intéressant de donner à la communauté ce qu'on a développé. - Données sensisbles : stratégies cryptographiques, limiter l'accès. ** 3. Le document computationnel : principe - Objectifs : 1. Inspecter,jsutifier et comrpendre la démarche effectuée afin d'aboutir au résultat final. 2. Être capable de refaire facilement ce qu'on a produit. ** 4. Prise en main de l'outil - org-babel-execute-buffer : éxecuter tout le buffer, ce qui permet d'éviter des problèmes dûs à l'utilisation de sessions. *** Template pour le code python **** Simple template #+BEGIN_SRC python :results output :exports both print("Hello World") #+END_SRC #+RESULTS: : Hello World **** Session template #+BEGIN_SRC python :results output :session :exports both print("Hello World") #+END_SRC #+RESULTS: : Hello World **** Image template #+BEGIN_SRC python :results output file :session :var matplot_lib_filename="./tutu.png" :exports both import matplotlib.pyplot as plt import numpy x=numpy.linspace(-15,15) plt.figure(figsize=(10,5)) plt.plot(x,numpy.cos(x)/x) plt.tight_layout() plt.savefig(matplot_lib_filename) print(matplot_lib_filename) #+END_SRC #+RESULTS: [[file:./tutu.png]] *** Article reproductible avec org mode - Il faut compiler l'article en utilisant le makefile. - Il faut installer R et les packages pour l'utiliser avec emacs : j'ai installé le package r-base directement des dépôts ubuntu. - Si l'on décommente la ligne : # #+PROPERTY: header-args :eval never-export, cela permet d'éviter l'éxécution de tout le code lors de l'exportation. *** TODO Explorer l'ensemble des ressources données dans cette partie du cours. *** Configuration git - Pour obtenir les identifiants et mdp : M2-S7 en bas de la vidéo il y a un onglet afin d'obtenir les indentifiants. ** 5. Travailler avec les autres - Produire un document computationel demande du travail et un système bien configuré. - Pour travailler avec d'autres il faut assurer la compatibilité des outils sous différents environnements (Mac, Windows, Linux). - Dans le cas d'une approche où les co-auteurs refusent d'utiliser des nouveaux outils : 1. Avoir un document computationel séparé qui produit tous les résultats et toutes les figures. 2. Un docuemnt classique qui inclut les figures générées. Ainsi tout est conservé, documenté et recalculable dans le docuement computationel. - Site compagnons: HAL, Figshare / zenodo des outils d'archivage qui permet de mettre un PDF et des documents annexes. ** 6. Analyse comparée des outils - Pour un cours où un TD le jupyter notebook est une solution agréable. - Pour un journal, il utilise les mécanisme des tags : on peut trouver des notes biblio, des bout de codes, notes de réunion. - Un cahier de laboratoire : différents scripts utiles, une section avec des expérieces et analyses ordonnées chronologiquement (avec des liens sur les expériences sur les expériences dans la partie analyse). Ce document présente aussi des conventions qui doivent être explicitée au début du document. - Article reproductible : les tags :noexport: permettent dans les sections/soussections d'éviter qu'elles soient prise en compte dans l'export. *** Tenir un journal - Présentation de la méthodologie : https://people.irisa.fr/Martin.Quinson/Research/Students/Methodo/ - Différents exemples de cahiers de laboratoire et de journaux. - Pour le reporting vaut mieux le faire le vendredi 1-2 heures avant de partir, de même dans le cas quotidien. - Organisation d'un compte rendu d'activité : 1. Résultats : vide au début, puis elle prendra du volume au fur et à mesure que vous trouverez des choses. 2. Développement : Cette partie présente les aspect techniques de votre travail. 3. Journal : Description du travail le jour le jour : description chronologique. 4. Conclusion : section écrite la dernière semaine du stage. C'est la lettre à la prochaine personne expliquant l'état actuel du travail. - Trouvez un bon équilibre pour la partie journal : pas trop long -> perte de temps, pas trop court -> il faut que ça puisse être utile/réutilisable dans le futur. - Exemple de compte rendu d'activité. * Module 3 : La main à la pâte, une analyse réplicable ** 1. Une analyse réplicable, c'est quoi ? - Dans le cas d'une analyse traditionnelle, on se focalise sur les résultats obtenus. On présente brièvement la méthodologie adoptée, qui a permis d'obtenir les résultats. Puis l'on fini avec une discussion sur les résultats. - En constraste, une analyse de donnés répblicable remplace la présentation de la méthodologie par la totatlité du code qui a permis d'obtenir ces résultats, accompagnée d'une explication sur les différents choix effectuées. - Pourquoi faire une analyse répblicable : facile à refaire si les données changent, facile à modifier, facile à inspecter et vérifier. ** 2. Étude de cas : l'incidence de syndromes grippaux - Utilisation du site Sentinelles afin d'utiliser des données médicales. - Année et semaine en format ISO : la première semaine c'est la semaine qui contient le 4 janvier. - Aucune modification des données brutes à la main, cela rend l'analyse non replicable. Toutes les modification doivent se faire dans du code. - Format des dates ISO 8601, il y a deux façons différentes de représenter une date, considérons le 8 août 2018 : 1. 2018-08-08 : année, mois, jour du mois 2. 2018-W32-3 : année, semaine et jour de la semaine (mercredi = 3ème jour). La première semaine de l'année est celle qui contient le premier jeudi de l'année. ** 3. Importer les données avec OrgMode / Python+R - Il faut spécifier l'url de téléchargement dans le document computationel. Avec la "commande" =#+NAME:= on peut attribuer un nom à l'url et la passer dans le code par la suite. - Petit script qui permet de télécharger les données en utilisant l'url. - Les données doivent être directement traitées depuis la source sans intervention manuelle.