Skip to content

Commit

Permalink
mise a jour cours 5
Browse files Browse the repository at this point in the history
  • Loading branch information
vcameron1 committed Mar 23, 2024
1 parent 0fe7300 commit dec32c3
Show file tree
Hide file tree
Showing 6 changed files with 79 additions and 73 deletions.
4 changes: 2 additions & 2 deletions bloc2/01_head.Rmd
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: BIO500
author: "Dominique Gravel"
date: "Hiver 2022"
author: "Victor Cameron"
date: "Hiver 2024"
output:
xaringan::moon_reader:
css: [default, ../assets/bio500.css, "hygge"]
Expand Down
47 changes: 10 additions & 37 deletions bloc2/03_rmarkdown.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ class: title-slide, middle

<div class="lab-logo"></div>

# Séance 4
# Séance 5

<hr width="65%" align="left" size="0.3" color="orange"></hr>

Expand Down Expand Up @@ -102,7 +102,7 @@ Il est recommandé de bien organiser ses fichiers afin de s'y retrouver plus fac
---
# Le fichier RMarkdown

Vous pouvez suivre à l'aide du fichier `rmd_de_base.Rmd` accessible sur [Moodle](https://moodle.usherbrooke.ca).
Vous pouvez suivre à l'aide du livre [Chapitre 8 RMarkdown](https://econumuds.github.io/BIO500/markdown1.html#anatomie-du-rmarkdown).

---
# Le YAML (metadata)
Expand Down Expand Up @@ -369,6 +369,14 @@ str(knitr::opts_chunk$get())
```
]

---

# Exercice : Reproduire le document suivant

.center[
![:scale 70%](assets/img/exercice_rmd.png)
]

---
# L'univers RMarkdown

Expand All @@ -385,39 +393,4 @@ str(knitr::opts_chunk$get())
- RMarkdown gallery [https://rmarkdown.rstudio.com/gallery.html](https://rmarkdown.rstudio.com/gallery.html)
- ResearchDown [https://insileco.github.io/ResearchDown/](https://insileco.github.io/ResearchDown/)

---
class: inverse, center, middle

# Évaluation formative #2

<hr width="65%" size="0.3" color="orange" style="margin-top:-20px;"></hr>

## Structurer sa base de données

---

## Évaluation formative #2

**À remettre pour le 1er avril sur Moodle**

Vous avez à soumettre vos scripts qui servent à créer votre base de données. Vos scripts doivent contenir les commandes `R` et `SQL` pour créer la base de données, ses tables et injecter les données.

## La grille d'évaluation est diponible sur Moodle

[Grille d'évaluation](https://github.com/EcoNumUdS/BIO500/blob/master/ressources/bd_grille_de_correction.pdf)

---

## Évaluation formative #2

**Un membre par équipe** aura à remettre un dossier .zip contenant les scripts nécessaires pour créer la base de donnée et y injecter les données.

- Remise par un seul membre par équipe
- Spécifiez pour quel jeu de donnée la bd est conçue
- Commentez vos scripts pour que votre processus soit évident aux autres
- Diviser les tâches en fonctions distinctes
- Un script pour une fonction
- Un script principal qui décrit le processus et fait appel aux fonctions qui exécutent les tâches
- Vos scripts doivent produire une base de données avec les tables, le type de chacun des champs, les clés primaires et secondaires et les contraintes

---
84 changes: 52 additions & 32 deletions bloc2/04_target.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ La programmation d'une séquence d'instructions permet de formaliser ce processu

# Quel outil utiliser ?

Le `makefile` est sans contredit l'outil le plus commun et le plus puissant. Spécifique au système d'exploitation UNIX, il peut seulement être utilisé sur les Mac, Linux, et des machines virtuelles. Pas pratique pour les utilisateurs Windows !
<!-- Le `makefile` est sans contredit l'outil le plus commun et le plus puissant. Spécifique au système d'exploitation UNIX, il peut seulement être utilisé sur les Mac, Linux, et des machines virtuelles. Pas pratique pour les utilisateurs Windows ! -->

Nous utiliserons la librairie `targets` pour assurer la reproductibilité de la démarche entreprise dans le cours. L'ensemble des instructions nécessaires à la production du rapport, de la création de la base de données à la compilation du document écrit, seront contenues dans une séquence d'instructions, plus généralement appelée 'workflow' ou 'pipeline'.

Expand All @@ -41,10 +41,22 @@ Nous utiliserons la librairie `targets` pour assurer la reproductibilité de la
2. Faire une régression linéaire
3. Faire une figure et l'enregistrer

## Vous pouvez suivre avec le [chapitre 9](https://econumuds.github.io/BIO500/targets.html) du livre

---

# La structure de fichiers sur votre ordinateur

```md
├── data # Dossier de données
│ ├── data.txt # Jeu de données

├── R # Dossier de scripts R
│ ├── figure.R # Fonction utilisée comme targets
│ ├── analyse.R # Fonction utilisée comme targets

├── _targets.R # Fichier targets qui définit le pipeline
```

---

Expand Down Expand Up @@ -91,11 +103,11 @@ Quatre éléments peuvent être modifiés :

Une `target` est une étape de la séquence d'instructions.

Une `target` est au minimum une cible (nom d'un objet) et une dépendance (commande R)
Une `target` est au minimum une _cible_ (nom d'un objet) et une _dépendance_ (commande R)

Une `target` produit un objet R qui est enregistré dans la mémoire de la session

Une dépendance est une expression qui dépent d'une `target` précédente
Une _dépendance_ est une expression qui dépent d'une `target` précédente

Le package `targets` exécute seulement les targets qui ne sont pas à jour.

Expand All @@ -108,7 +120,7 @@ Le package `targets` exécute seulement les targets qui ne sont pas à jour.
library(targets)
source("exemple_targets/R/analyse.R")
source("exemple_targets/R/figure.R")
tar_option_set(packages = c("MASS", "igraph"))
tar_option_set(packages = c("MASS"))
list(
tar_target(
data, # Le nom de l'objet
Expand Down Expand Up @@ -137,30 +149,22 @@ Une target est exécutée seulement lorsque la `target` dont elle dépend est pl

---

# Construction de la séquence
# La séquence

On peut visualiser la séquence :
## 1. On peut visualiser la séquence

```{r eval = FALSE}
source("exemple_targets/_targets.R")
tar_glimpse()
```

---

# Exécuter la séquence
## 2. Exécuter la séquence

```{r eval = FALSE}
tar_make()
```

De nombreuses informations utiles sont générées automatiquement lors de l'opération.

---

# Quelles étapes sont à jour ?

Il est possible de visualiser les étapes qui sont à jour et celles qui ne le sont pas.
## 3. Visualiser les étapes qui sont à jour et celles qui ne le sont pas

```{r eval = FALSE}
tar_visnetwork()
Expand Down Expand Up @@ -219,20 +223,12 @@ Manuel de targets [https://books.ropensci.org/targets/](https://books.ropensci.o

---

# Nettoyage du dépôt en fin de script

Il arrive que certains scripts génèrent des fichiers temporaires qui ne doivent pas être conservés inutilement et être poussés sur github.

Le fichier `.gitignore` vous permet d'identifier les fichiers qui ne doivent pas être versés sur le serveur.

---

# Exercice

Construire un script `targets` qui contient les étapes suivantes :

1. Tirer au hasard 1000 valeurs d'une distribution normale avec une moyenne de 1 et un écart-type de 1
2. Faire un histogramme de ces 1000 valeurs
1. Tirer au hasard 1000 valeurs d'une distribution normale avec une moyenne de 1 et un écart-type de 1 `rnorn(1000, 1, 1)`
2. Faire un histogramme de ces 1000 valeurs `hist()`
3. Produire un document html avec RMarkdown

Note : la commande pour compiler du markdown est `render("mon_rmarkdown.Rmd")`
Expand All @@ -241,6 +237,14 @@ Note : Alternativement, `tar_render()` peut être utilisé à la place de `rende

---

# Nettoyage du dépôt en fin de script

Il arrive que certains scripts génèrent des fichiers temporaires qui ne doivent pas être conservés inutilement et être poussés sur github.

Le fichier `.gitignore` vous permet d'identifier les fichiers qui ne doivent pas être versés sur le serveur.

---

class: inverse, center, middle

# Travail pour la semaine
Expand All @@ -254,7 +258,7 @@ class: inverse, center, middle
- Identifiez clairement vos questions de recherche
- Planifiez les requêtes à réaliser pour traiter les données
- Créez un dépôt github pour votre projet
- Créez un cahier de laboratoire où sont notées toutes vos étapes
- Créez un cahier de laboratoire où sont notées toutes vos étapes
- Versez votre travail sur le dépôt en ligne
- Construire le `_targets.R` au fur et à mesure de vos progrès

Expand All @@ -269,12 +273,28 @@ class: inverse, center, middle

---

## Évaluation formative #2
# Évaluation formative #2

**À remettre pour le 1er avril sur Moodle**

Vous avez à soumettre vos scripts qui servent à créer votre base de données. Vos scripts doivent contenir les commandes `R` et `SQL` pour créer la base de données, ses tables et injecter les données.

## La grille d'évaluation est diponible sur Moodle

[Grille d'évaluation](https://github.com/EcoNumUdS/BIO500/blob/master/ressources/bd_grille_de_correction.pdf)

---

# Évaluation formative #2

Chaque équipe doit évaluer les scripts d'une autre équipe
**Un membre par équipe** aura à remettre un dossier .zip contenant les scripts nécessaires pour créer la base de donnée et y injecter les données.

- À compléter pour le **8 avril**
- La personne qui a remis le travail est responsable d'entrer l'évaluation
- Tous les commentaires doivent être formulés comme une question
- Remise par un seul membre par équipe
- Spécifiez pour quel jeu de donnée la bd est conçue
- Commentez vos scripts pour que votre processus soit évident aux autres
- Diviser les tâches en fonctions distinctes
- Un script pour une fonction
- Un script principal qui décrit le processus et fait appel aux fonctions qui exécutent les tâches
- Vos scripts doivent produire une base de données avec les tables, le type de chacun des champs, les clés primaires et secondaires et les contraintes

---
5 changes: 3 additions & 2 deletions bloc2/05-essai.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ L'objectif d'un essai est de présenter une perspective sur un enjeu scientifiqu

# Mise en situation

Le journal Québec Science vous a invité à titre de chercheur à écrire l'éditorial du mois sur cet enjeu. Plus spécifiquement, on vous demande de vous exprimer sur l'importance de la *transparence* et des standards de *reproductibilité* dans un contexte où il y a une accélération de la recherche par l'utilisation d'intelligence artificielle. Cette invitation fait suite à la publication d'un article paru dans le dernier numéro du journal :
Le journal Québec Science vous a invité à titre de chercheur à écrire l'éditorial du mois sur cet enjeu. Plus spécifiquement, on vous demande de vous exprimer sur l'importance de la *transparence* et des standards de *reproductibilité* dans un contexte où il y a une accélération de la recherche par l'utilisation de l'intelligence artificielle. Cette invitation fait suite à la publication d'un article paru dans le dernier numéro du journal :

[ChatGPT en science : alerte à l’imposteur!](https://www.quebecscience.qc.ca/edito/chatgpt-science-alerte-imposteur/)

Expand All @@ -32,9 +32,9 @@ Québec Science est un journal destiné à un grand public, alors je vous invite

- Le texte doit faire au maximum 1200 mots et doit être accompagné d'un résumé court, provocateur de 100 mots. Le document peut être supporté par une figure et/ou un tableau.
- L'argumentaire doit être supporté de littérature scientifique appropriée. Vous pouvez utiliser les références discutées en classe, celles disponible sur le dépôt git et vous devez également trouver de **nouvelles références** pour appuyer vos propos.
- Pour chaque argument (positif ou negatif) amené, vous devez en **donner un exemple personnel et concret** prenant place dans le cadre d'un travail scolaire.
- Le texte peut être structuré en sections afin de permettre au lecteur de suivre le développement de l'argumentaire.
- La section finale doit résumer les principaux points.
- Utiliser RMarkdown pour la mise en forme du document.

---

Expand All @@ -47,6 +47,7 @@ Québec Science est un journal destiné à un grand public, alors je vous invite
+ Identification de l'apport de l'intelligence artificielle
+ Identification des problèmes
+ Proposition de solutions
+ Qualité de la mise en contexte personnelle (exemples)
- Originalité
- Mise en page
- Bibliographie
Expand Down
Binary file added bloc2/assets/img/exercice_rmd.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
12 changes: 12 additions & 0 deletions livre/markdown1.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,18 @@ Hyperlien.
Voici le [lien](https://github.com/EcoNumUdS/BIO500) pour le GitHub du cours BIO500.
```

Une table

```
| Time | Session | Topic |
|:--------------|:--------:|--------:|
| *left* | *center* | *right* |
| 01:00 - 01:50 | 1 | Anatomy |
| 01:50 - 02:00 | | *Break* |
| 02:00 - 02:45 | 2 | Tables |
| 02:45 - 03:00 | | *Break* |
```

### Blocs de code

Un bloc de code peut être ajouté au document en sélectionnant l'icône verte du panneau RStudio. Le code R doit être à l'intérieur d'un bloc de code (*code chunk*). Par exemple:
Expand Down

0 comments on commit dec32c3

Please sign in to comment.