--- title: "MOOC RR RMarkdown" author: "Marc" date: "02/04/2020" output: html_document: default pdf_document: default word_document: default --- ```{r setup, include=FALSE} knitr::opts_chunk$set(echo = TRUE) ``` # Module 1 : Cahier de notes, cahier de laboratoire Titre d'une section avec _dièse espace_ Titre d'une sous-section avec _double dièse espace_ Conversion en html, PDF ou docx par Pandoc Pandoc installé par le site pandoc Fichier texte en UTF-8 pour être lu sur tous les ordis et pérenne Retour chariot avec double espaces italique : _s_ ou *s* gras : __s__ chasse fixe : 's' barré : ~~s~~ hyperlien : [titre] url entre parenthèse Commentaire : image : ![légende] adresse url ou locale entre parenthèse Mettre du code dans une ligne : avec des guillemets (Altgr + 7) --> `code` Ajouter un bloc de code entre 3 guillemets : ``` Bloc de code ``` Listes : - - - Enumération : 1. 2. 3. Imbrication avec tabulation ## Utilisation Pandoc Avec la console. Se mettre dans le dossier avec cd. Conversion en pls formats : pandoc fichier.md -o fichier.extension (html, pdf, docx) Utiliser __Emacs__ ou __Vim__ pour passer d'un logiciel à l'autre ## TEI : texte encoding initiative --> format de balisage standard Plutôt pour les SHS ## Git Git est un logiciel permettant la gestion des versions pérennes. ### Commandes _git add_ --> indiquer les modifs que l'on souhaite conserver pour intégrer les parties de modifications logiques _git commit_ --> faire un checkpoint (version) _git diff_ --> pour voir la différence entre 2 versions _git checkout_ --> revenir à l'état antérieur Etape : 1. Créer un projet sur Gitlab 2. Commande _git clone_ pour récupérer un historique vierge sur son ordinateur 3. Travailler avec _git add_ et git commit pour créer pls versions 4. Commande _git push_ pour propager ses modifs sur le serveur Gitlab Uniquement de la branche d'historique principale (sauf si on le spécifie autrement) On synchronise des branches en échangeant des morceaux d'historique. ### Collaborer à pls - Si travail séquentiel 1. Bob fait un _git push_ pour synchroniser sa version master avec le serveur Gitlab 2. Alice fait _git __pull__ _ pour récupérer du serveur la bonne version master. - Si ils travaillent en même temps sur parties différentes 1. Bob et Alice modifient de parties différentes 2. Alice fait un _git push_ 3. Bob fait _git push_ --> erreur : d'abord _git pull_ puis _git push_ --> Fusion des modifications - Si ils travaillent en même temps sur parties identiques 4. Bob va avoir conflit avec son _git pull_ --> gestion du conflit --> _git push_ ### autres sur git Afficher historique : _git log_ Merge : _git merge_ Hébergement Git, interfaces web Github et Gitlab Possibilité de déversement vers des archives telle que Zenodo. Interfaces graphiques : Jupyter, RStudio, Emacs org-mode ### Installation de git dans RStudio Installation de _Git_ sur le site web de [Git](https://git-scm.com/downloads). Interface graphique par défaut de Git est Notepad++ mais possibilité d'utilisé autre logiciel (comme RStudio). ### Configuration de Git Dans le terminal : _git config --global user.name "marc.oudart"_ _git config --global user.email "marc.oudart@college-de-france.fr"_ ### Dans RStudio 1. _Tools --> Global options --> Git_ 2. _OK_ 3. _Create new project_ 4. __Check _Create a git repository for this project_ __ A droite dans RStudio --> onglet Git. Check les fichiers pour stagged (comme _git add_). Commit. Donner un titre au commit. Créer nouveau fichier RMarkdown. Commit. _Knit_ en html. Commit. ## Etiquetage et indexation ### DocFetcher Installation de _DocFetcher_ sur internet [DocFetcher](http://docfetcher.sourceforge.net/fr/download.html) - Ajouter des étiquettes en commentaires en Markdown. Le mot sera encadré par des ";" pour ne pas que DocFetcher confonde l'étiquette avec un vrai mot. - Utilisation DocFetcher : Dire à gauche quel dossier indexer (et préciser si .md et .org sont à considérer comme fichiers textes). Puis rechercher un mot clé. ### ExifTool Rajouter des étiquettes sur des images ou des fichiers PDF en ligne de commande : _exiftool -comment: ";étiquette;" (adresse de l'image) # Module 2 : Document computationnel avec RStudio On peut insérer bout de code avec l'onglet _insert_ Pour du calcul avec variable qui dépend des bouts de codes précédents --> peut créer des incohérences. Solution : onglet _run_ --> _Run all chunks above_ On peut replier des zones ou des sections avec la petite flèche à gauche de cette zone ou de cette section. Onglet _knit_ pour compiler en html. Pour que le code ne soit pas exporter il faut changer les paramètres entre accolades à côté des apostrophes de début. Exemple _echo = FALSE_ ne renvoit pas le bloc en export. C'est ici que la taille des graphiques peut être changé également. Pour faire du LaTeX dans RStudio --> fichier --> nouveau ___RSweave___ On peut faire du python avec _insert_ --> _python_. Mais attention ! Pas de persistence entre les blocs de codes ! Une variable définie sera oubliée et ne pourra être rappelée. Besoin de faire un seul bloc python ? ## Travailler avec les autres Le mieux est d'avoir son document computationnel + un document classique qui sera distribuer aux autres. S'il y a besoin de modifs --> changement du document computationnel et changement du format classique. Partage et publication avec Gitlab. Possibilité de rendre public son dossier mais attention ! Tout l'historique sera public ! Soit on construit son dossier dés le départ sans cette optique. Soit on fait le ménage en utilisant un site compagnon : - archivage d'articles : HAL - archivage de code et données : figshare, zenodo, dataverse ?? ## Comparaison des outils - Jupyter : pour un TD ou un tutoriel - Emacs/Org-mode : Pour un journal, 1 seul auteur, chronologique. Prise de notes ! Mode d'étiquettage très simple où on peut retrouver facilement des mots clés. Egalement pour un cahier de laboratoire avec classement par thèmes et étiquettages. Enfin, pour un article reproductible. - RStudio : possibilité de faire article et facile d'accès. Navigation limitée. ## Rendre compte de son activité 1. Le reporting Compte rendu d'activité pour décrire à peu près tout ce qu'on fait pour que le tuteur puisse suivre et aider, pour faire un rapport ou article, pour que les travaux continus, pour la science ouverte. 2. Logistique Avoir un dépot en ligne (Github/Gitlab). Rendu public. Faire les reporting tant que les infos sont fraiches. 3. Organisation du CRA Structure : - Résultats : ref biblio mais PAS ToDo list. - Développement : - Journal : Reporting. - Travail effectué - Points bloquants et questions. C'est cette partie auquelle le référant peut apporter sa contribution. - Travaux prévus - Conclusion : A la fin du stage. Quoi faire ensuite ? Comment j'ai tenu ce journal ? Comment continuer mon travail ? Comme un cahier de labo, il ne faut pas éditer ce qu'on a déjà écrit ou alors il faut le préciser avec une petite marque __edit__. ### Templates RMarkdown pour articles scientifiques ```{r} install.packages("rticles") ``` Ensuite _File_ --> _New file_ --> _RMarkdown_ --> _From template_ ## Suite sur git et Gitlab dans RStudio Création d'un compte Gitlab. Identifiants : marc-oudart. Création d'un nouveau projet. Cloner son projet sur son ordi avec _git clone_. Créer un nouveau fichier et ajouter au versionnage avec _git add_. Commit avec _git commit_. Pousser avec _git push_. Rentrer ses identifiants et mots de passe. On peut sauvegarder ses id et mdp avec : ```{bash} git config credential.helper store ``` Toutes les opérations au dessus peuvent se faire avec des boutons clickables dans RStudio. __Problèmes de identifiants et mots de passe : Ouvrir un terminal (possible dans RStudio à côté de la console) en mode _administrateur_. ```{bash} git config --system --unset credential.helper ``` ## Retour en arrière de versions sur Gitlab Sur Gitlab, aller sur un fichier et dans l'onglet _history_. Rechercher le commit antérieur d'intérêt et faire _browse file_. _Download_ dans le dossier. Repartir de là pour remplacer le fichier. ## Exercices module 2 Tout est dans le dossier des modules 2. Notamment le fichier de l'exercice 4. - Exercice 5 : Done dans le dossier associé. # Module 3 : La main à la pate - une analyse réplicable ## L'étude de cas : Grippe Téléchargement des données hebdomadaires des cas de syndrome grippaux depuis 1985 sur le site du [réseau sentinnelles](https://www.sentiweb.fr/france/fr/?page=table). S'il y a des données manquantes dans le fichier --> __NE JAMAIS LES MODIFIER A LA MAIN mais toujours dans du code pour les personnes voulant réutiliser l'étude puissent comprendre pourquoi la ligne a été supprimée.__ # Importation des données Voir le document RMardown _Analyse syndrome grippal_.