# Module 2 : La vitrine et l'envers du décor : le document computationnel ## 0. Introduction **Objectifs** - Extension de la traçabilité aux calculs et à ses résultats - Intégration du code et des résultats dans un document du type rapport technique / article scientifique - Présentation de 3 outils pour écrire un document computationnel: - Jupyter, pour python - RStudio, pour R - Emacs/Org-mode, pour plusieurs langage Ces envionnements: - Améliore la traçabilité des calculs - Permet de présenter facilement ses travaux aux collègues - Accéder à l'ensemble des calculs sous-jacents à une analyse ## 1. Exemple récents d'études assez discutées **Exemple** - Reinhart et Rogoff : si dette > 90% PIB -> croissance /2. Erreurs de calculs, pratiques douteuses ... mais travaux ont eu de l'impact car les données n'étaient pas mise à disposition - Geoffrey Chang Un code avait mal était fait, code transmit par d'autre lavboratoire. Causant de mauvais calcul de structure proteique -> manque de rigueur et de transparence ## 2. Pourquoi est-ce difficile ? ### Manque d'informations Il faut expliciter: - sources et données données indisponibles = resultats difficile à vérifier - choix choix non expliqués = choix suspicieux Le cahier de labo peut aider ### L'ordinateur, source d'erreurs - point and click (on ne sait pas trop ce qui se passe, boite noire) - les tableurs - nom de gène : MARCH1 -> 2016-03-01 ... - Pile logicielle complexe - logiciel propriétaire - bug ### Le manque de rigueur et d'organisation - pas de backup - pas d'historique - pas de contrôle qualité ### Dimension cuturelle et sociale Article = version simplifié de la procédure Données trop grosses pour être mise à disposition Les traitements informatique ne sont expliqué que succintement Beaucoup de travail pour tout partager et après tout pourquoi s'embéter si personne ne les demandent ? ### Tout rendre public ? - les faiblesses deviendraient évidentes ? oui mais c'est la réalité - Quelqu'un pourrait trouver une erreur ? Mais ca permet de les corriger - Quelqu'un pourrait en tirer avantage à ma place ? - les articles les plus cité sont des articles méthodologiques/logiciel - montrer ce que l'on fait c'est probablement le meilleur moyen de mettre en avant la propriété intellectuelle - Les données peuvent être sensible - outil de cryptographie "facile d'accés" ### Les outils à éviter et alternatives - outils, formats, et services propriétaires - open source pour - format texte - stocker les données dans des services libres - Attention au outil intuitif - plus difficile pour le suivi ### Changement de paradigme 1. Manque d'information, problème d'accès aux données 2. Erreurs de calcul 3. Manque de rigueur scientifique et technique **Expliquer augmente les chances de trouver les erreurs et de les élimineré** Exigence de la part de la société civil de publication des différentes sources dans le but d'améliorer la recherche et gagner la confiance avec tout le monde ;p ## 3. Le document computationnel : principe ### La science moderne La science se passe de plus en plus derrière un ordinateur Données -> analyses visualisations -> publication Article est la partie immergée de l'iceberg ### Objectif méthodologique Garder les trace afin de : - **inspecter** : justifier / comprendre - **refaire** : vérifier / corriger / réutiliser Notebook : la vitrine (document computationnel) et l'envers du décors (source) Un document computationnel contient: - des commentaires - du code - un aperçu des données - les résultats de calculs - des liens hypertextes - des images Il permet de: - inspecter les calculs - réexécuter facilement les calculs si l'environnement d'origine est disponible - Documenter le code - Expliquer les choix faits - Utiliser plusieur langages (mais c'est un peu compliqué) ## 4. Prise en main des outils ## 4B. Prise en main de l'outil RStudio ## 5. Travailler avec les autres ### Préparer un document pour un jounal **pdf** *LaTex* bien installé Expliciter les cellules a afficher Besoin de beaucoup de travailler pour avoir un environnement parfaitement configuré pour générer le pdf ### Convaincre vos co-auteurs plusieurs réaction: - bonne idée ! - pas le temps - pourquoi changer ? **bonne idée** Il faut assurer le service après-vente - crossplatform - gérer la complexité Si plusieurs co-auteur utilise le même type environnement permet de s'assurer que le fichier est correcte **pas le temps** investissement minima édition du fichier de publication **pourquoi changer** un document computationnel séparé produit tous les résultats et toutes les figures un autre document "classique" intégré ces figures mais tout est **concervé, documenté et recalculable** dans votre document computationnel ## Publier / partager votre document **Rpubs ** - parfait pour partage rapide mais pas pérenne **Dropbox, et autres** - ~~pérénité~~, accés ?? .. **Gitlab / github / ...** 1. Rendre public (**même l'historique**) 2. le prendre en compte dés le départ 3. faire le ménage et archiver l'état dans un site compagnon **Sites compagnons** service d'hébergement - runmycode, éditeurs, ... **Archive ouverte** - Article: HAL; code et données : Figshare / zenodo Faire en fonction de: - co-auteurs - contrainte techniques - contraintes de confidentialité / copyright Préparation d'un document pour un journal ou pour une conférence De quoi aurez-vous besoin pour produire un document pdf: - En interne: pandoc, knitr ou emacs/org-mode. - LaTeX devra aussi être installé ## 6. Analyse comparé des différents outils jupyter : Facile car tout en ligne, dynamique Orgmode : recherche par regex -> pratiique pour les étiquettes donc pour un journal Cas d'un cahier de laboratoire Article reproductible ``` | | Origine | technologie | utilisation | navigation | format | article? | |-----------------|-----------|--------------------|---------------|------------|--------|-----------| | jupyter | 2001 | web, app, python | facile | limitée | JSON | Difficile | | Rstudio / knitr | 2011/2014 | IDE, java/R | facile | limitée | Rmd | oui | | Org-Mode | 1976/2008 | Editeur, EmacsLisp | plus complexe | puissante | org | oui | ``` ### Galerie de Notebooks [galerie](https://lms.fun-mooc.fr/courses/course-v1:inria+41016+self-paced/courseware/66bc811404b8481da5f794de54681c5e/ca6911afc7154c699007475bf818071d/) ## 7. Installation , configurations ### git Comment revenir en arrière ! ``` git checkout -- ``` sur gitlab -> icon history pour avoir l'historique des modifications et la possibilité de les télécharger [Livre Pro Git](https://git-scm.com/book/fr/v2) [Apprendre le "branchage"](https://learngitbranching.js.org/?locale=fr_FR) ### latex windows -> [TeX Live](https://tug.org/texlive/) ou [MikTeX](https://miktex.org/) Voir [tinyTex](https://yihui.org/tinytex/) pour R