Skip to content

Commit d329d26

Browse files
committed
Learnrs modules 9 & 10 ready for 2023-2024
1 parent 76f4cfe commit d329d26

File tree

5 files changed

+48
-44
lines changed

5 files changed

+48
-44
lines changed

DESCRIPTION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
Package: BioDataScience2
2-
Version: 2023.8.0
2+
Version: 2023.9.0
33
Title: A Series of Learnr Documents for Biological Data Science 2
44
Description: Interactive documents using learnr for studying biological data science (second course).
55
Authors@R: c(

NEWS.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
# BioDataScience2 2023.9.0
2+
3+
- Learnrs **B09La_db**, **B09Lb_mds** and **B10La_som** revised for 2023-2024.
4+
15
# BioDataScience2 2023.8.0
26

37
- Learnrs **B08La_mfa** and **B08Lb_bigd** revised for 2023-2024.

inst/tutorials/B09La_db/B09La_db.Rmd.inactive renamed to inst/tutorials/B09La_db/B09La_db.Rmd

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ author: "Guyliann Engels & Philippe Grosjean"
44
description: "**SDD II Module 9** Bases de données."
55
tutorial:
66
id: "B09La_db"
7-
version: 2.0.7/0
7+
version: 2.0.7/7
88
output:
99
learnr::tutorial:
1010
progressive: true
@@ -38,18 +38,18 @@ captures <- dtx(
3838
)
3939
4040
sleft_join(captures, stations) %>.%
41-
sselect(., -id_station) %->%
41+
sselect(., -id_station) ->
4242
bees
4343
4444
bees_db <- dbConnect(duckdb::duckdb())
4545
dbWriteTable(bees_db, "stations", stations)
4646
dbWriteTable(bees_db, "captures", captures)
4747
48-
bees_dm <- dm_from_src(bees_db) %>.%
48+
bees_dm <- dm_from_con(bees_db, learn_keys = FALSE) %>.%
4949
dm_set_colors(., red = stations, orange = captures)
5050
bees_dm %>.%
5151
dm_add_pk(., captures, id) %>.%
52-
dm_add_pk(., stations, id_station) %->%
52+
dm_add_pk(., stations, id_station) ->
5353
bees_dm1
5454
bees_dm2 <- dm_add_fk(bees_dm1, captures, id_station, stations)
5555
```
@@ -68,7 +68,7 @@ BioDataScience2::learnr_server(input, output, session)
6868

6969
Une base de données est un ensemble structuré de données, avec un accès facile et rapide pour des applications logicielles et des utilisateurs autorisés. Elle peut être considérée comme un grand conteneur **organisé** pour stocker des informations de manière **structurée**.
7070

71-
Parmi les différents types de bases de données, nous allons nous intéresser aux bases de données relationnelles. Une base de données **relationnelle** est une collection de données structurées qui sont organisées en tables liées entre elles par des relations. Les bases de données relationnelles sont très répandues et utilisées dans de nombreux domaines, notamment dans la gestion des entreprises, les services financiers, l'administration publique et la recherche scientifique. Elles sont conçues pour gérer des quantités massives de données de manière fiable et cohérente. Ce tutoriel vous permettra de :
71+
Parmi les différents types de bases de données, nous allons nous intéresser aux bases de données relationnelles. Une base de données **relationnelle** est une collection de tables liées entre elles par des relations. Les bases de données relationnelles sont très répandues et utilisées dans de nombreux domaines, notamment dans la gestion des entreprises, les services financiers, l'administration publique et la recherche scientifique. Elles sont conçues pour gérer des quantités massives de données de manière fiable et cohérente. Ce tutoriel vous permettra de :
7272

7373
- créer une base de données relationnelle
7474
- normaliser les données dans votre base
@@ -99,22 +99,22 @@ Les colonnes de ce tableau sont les suivantes :
9999
- **station :** le lieu précis de la collecte
100100
- **localisation :** les coordonnées de la station (WGS84)
101101

102-
Utilisez la zone de code R ci-dessous pour explorez le jeu de données `bees` comme bon vous semble afin de répondre aux questions ci-dessous (utilisez le bouton **Run Code** uniquement).
102+
Utilisez la zone de code R ci-dessous pour explorez le jeu de données `bees` comme bon vous semble afin de répondre aux questions plus bas (utilisez le bouton **Run Code** uniquement).
103103

104104
```{r explo_noscore, exercise=TRUE}
105105
106106
```
107107

108108
```{r qu_db}
109109
quiz(
110-
question("Est-ce que la tableau présenté ci-dessus peut être ajouté comme une table dand une base de données relationnelle ?",
110+
question("Est-ce que la tableau présenté ci-dessus peut être ajouté comme une table dans une base de données relationnelle ?",
111111
answer("Oui", correct = TRUE),
112112
answer("Non"),
113113
allow_retry = TRUE,
114114
random_answer_order = TRUE,
115115
correct = "Ce tableau correspond bien à un format cas par variable. Il est donc possible de l'utiliser dans une base de données. Il n'est cependant pas normalisé."
116116
),
117-
question("Sélectionnez parmi les variables suivantes celles présentant de la redondance optimisable via normalisation niveau 3 (déependance transitive).",
117+
question("Sélectionnez parmi les variables suivantes celles présentant de la redondance optimisable par une normalisation niveau 3 (déependance transitive).",
118118
answer("country", correct = TRUE, , message = "Il n'est pas utile de répliquer le nom de pays d'une station pour chaque collecte."),
119119
answer("localisation", correct = TRUE, message = "Il n'est pas utile de répliquer les coordonnées d'une station pour chaque collecte."),
120120
answer("id", message = "La variable 'id' est un identifiant unique pour chaque individu collecté. Cette variable n'est pas redondante."),
@@ -125,7 +125,7 @@ quiz(
125125

126126
## Base de données et schéma
127127

128-
Suite à votre exploration du tableau `bees`, vous avez pu observer que son schéma peut être optimisé. Deux tables sont réalisées afin d'assurer une normalisation au niveau 3 de la base. Vous pouvez observer qu'une colonne 'id_station' a été ajoutée.
128+
Suite à votre exploration du tableau `bees`, vous avez pu observer que son schéma peut être optimisé. Deux tables sont réalisées pour assurer une normalisation au niveau 3 de la base. Vous pouvez observer qu'une colonne 'id_station' a été ajoutée.
129129

130130
```{r, echo=TRUE}
131131
head(stations)
@@ -177,13 +177,13 @@ dbListTables(bees_db)
177177
grade_code("Vous venez de créer une base de données en mémoire avec deux tables.")
178178
```
179179

180-
Il est à présent temps de dé"finir des clés pour ces deux tables. Vous allez pour ce faire employer le package {dm}.
180+
Il est à présent temps de définir des clés pour ces deux tables. Vous allez pour ce faire employer le package {dm}.
181181

182182
Créez un objet **dm** associé à votre base de données (`bees_db`) et nommez-le `bees_dm`. Indiquez ensuite que vous voulez utiliser la couleur rouge pour la table `stations` et la couleur orange pour la table `captures`. Terminez par visualiser le schéma de la base en l'état.
183183

184184
```{r dm, exercise=TRUE}
185185
# Création d'un objet `dm`
186-
bees_dm <- ___(___)
186+
bees_dm <- ___(___, learn_keys = FALSE)
187187
bees_dm
188188
# Ajout d'un couleur pour chaque table
189189
bees_dm <- ___(bees_dm, red = ___, orange = ___)
@@ -194,7 +194,7 @@ ___(___, view_type = "all")
194194
```{r dm-solution}
195195
## Solution ##
196196
# Création d'un objet `dm`
197-
bees_dm <- dm_from_src(bees_db)
197+
bees_dm <- dm_from_con(bees_db, learn_keys = FALSE)
198198
bees_dm
199199
# Ajout d'un couleur pour chaque table
200200
bees_dm <- dm_set_colors(bees_dm, red = stations, orange = captures)
@@ -215,7 +215,7 @@ ___(___, ____)
215215
# Ajout des clés primaires
216216
bees_dm %>.%
217217
___(___, ___, ___) %>.%
218-
___(___, ___, ___) %->%
218+
___(___, ___, ___) ->
219219
bees_dm1
220220
bees_dm1
221221
```
@@ -227,7 +227,7 @@ ___(___, ___)
227227
# Ajout des clés primaires
228228
bees_dm %>.%
229229
dm_add_pk(., ___, ___) %>.%
230-
___(., ___, ___) %->%
230+
___(., ___, ___) ->
231231
bees_dm1
232232
bees_dm1
233233
@@ -242,7 +242,7 @@ dm_enum_pk_candidates(bees_dm, stations)
242242
# Ajout des clés primaires
243243
bees_dm %>.%
244244
dm_add_pk(., captures, id) %>.%
245-
dm_add_pk(., stations, id_station) %->%
245+
dm_add_pk(., stations, id_station) ->
246246
bees_dm1
247247
bees_dm1
248248
```
@@ -253,7 +253,7 @@ grade_code("Votre objet bees_dm1 comprend à présent deux clés primaires, une
253253

254254
Définissez maintenant une clé étrangère qui fait le lien entre vos deux tables (`captures` et `stations`) selon une relation un à plusieurs en partant de l'objet `bees_dm1` et placez le résultat dans `bees_dm2`. Enfin, visualisez le schéma de la base depuis `bees_dm2`.
255255

256-
```{r fk, exercise =TRUE, , paged.print=FALSE}
256+
```{r fk, exercise=TRUE, , paged.print=FALSE}
257257
# Clés étrangères potentiels
258258
___(___, ___, ___)
259259
# Ajout de la clé étrangère
@@ -342,12 +342,12 @@ bees_request %>.%
342342
```
343343

344344
```{r request_h2-check}
345-
grade_code("L'espèce la plus présente est *Bombus pascorum*. La mise en place d'un schéma avec {dm} a permis de réaliser une requête sur deux tables et de les combiner facilement. Vous avez ensuite résumé ces observations. Vous avez réalisé tout cela directement sur votre base de données et sans vous préoccuper de l'écriture de la requête. En effet, {dbplyr} que vous avez utilisé ici vous permet d'écrire du code Tidyverse classique et il vous le traduit en requête SQL lorsque vous collectez le résultat avec `collect_dtx()`.")
345+
grade_code("L'espèce la plus présente est *Bombus pascorum*. La mise en place d'un schéma avec {dm} a permis de réaliser une requête sur deux tables et de les combiner facilement. Vous avez ensuite résumé ces observations. Vous avez réalisé tout cela directement dans votre base de données et sans vous préoccuper de l'écriture de la requête. En effet, {dbplyr} que vous avez utilisé ici vous permet d'écrire du code Tidyverse classique et il vous le traduit en requête SQL lorsque vous collectez le résultat avec `collect_dtx()`.")
346346
```
347347

348348
## Conclusion
349349

350-
Félicitation ! Vous avez créé une base de données relationnelle avec DuckDB. Ensuite, vous l'avez retravaillée en deux tables et défini les clés primaires et secondaires pour arriver à une normalisation des données au niveau 3 en limitant la redondance. Enfin, vous avez défini un schéma clair de la base avec le package {dm}. Enfin, vous avez réalisé une requête multitable avec les fonctions du package {dm} et de {dbplyr}.
350+
Félicitation ! Vous avez créé une base de données relationnelle avec DuckDB. Ensuite, vous l'avez retravaillée en deux tables et défini les clés primaires et secondaires pour arriver à une normalisation des données au niveau 3 en limitant la redondance. Vous avez ensuite défini un schéma clair de la base avec le package {dm}. Enfin, vous avez réalisé une requête multitable avec les fonctions du package {dm} et de {dbplyr}.
351351

352352
Maintenant que vous avez compris les grands principes des bases de données relationnelles et que vous êtes capable d'écrire le code permettant de réaliser une requête, vous pouvez appliquer cette technique par vous-même.
353353

inst/tutorials/B09Lb_mds/B09Lb_mds.Rmd.inactive renamed to inst/tutorials/B09Lb_mds/B09Lb_mds.Rmd

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ runtime: shiny_prerendered
1313

1414
```{r setup, include=FALSE}
1515
BioDataScience2::learnr_setup()
16-
SciViews::R("explore")
16+
SciViews::R("explore", lang = "fr")
1717
1818
# Chargement du jeu de données
1919
bci <- read("BCI", package = "vegan")
@@ -36,19 +36,19 @@ Ce tutoriel consacré au positionnement multidimensionnel (MDS) vise à :
3636
- Vérifier que vous avez bien compris les différentes étapes pour la réalisation d'une MDS : calcul de la matrice de distance, calcul du positionnement des points, réalisation de la carte et vérification de sa validité, choix entre MDS métrique ou non métrique.
3737
- Vous préparer à analyser et interpréter de manière autonome un jeu de données multivariées à l'aide des MDS.
3838

39-
Vous devez avoir compris le contenu du [module 9](https://wp.sciviews.org/sdd-umons2/?iframe=wp.sciviews.org/sdd-umons2-2022/db-mds.html) du cours et en particulier la [section 9.2](https://wp.sciviews.org/sdd-umons2/?iframe=wp.sciviews.org/sdd-umons2-2022/positionnement-multidimensionnel-mds.html). Assurez-vous d'avoir réalisé les exercices H5P qui s'y trouvent avant de vous lancer dans ce tutoriel Learnr et de bien maîtriser les notions sur les matrices de distances vue dans le [module 6](https://wp.sciviews.org/sdd-umons2/?iframe=wp.sciviews.org/sdd-umons2-2022/distance-entre-individus.html).
39+
Vous devez avoir compris le contenu du [module 9](https://wp.sciviews.org/sdd-umons2/?iframe=wp.sciviews.org/sdd-umons2-2023/db-mds.html) du cours et en particulier la [section 9.2](https://wp.sciviews.org/sdd-umons2/?iframe=wp.sciviews.org/sdd-umons2-2023/positionnement-multidimensionnel-mds.html). Assurez-vous d'avoir réalisé les exercices H5P qui s'y trouvent avant de vous lancer dans ce tutoriel Learnr et de maîtriser les notions sur les matrices de distances vue dans le [module 6](https://wp.sciviews.org/sdd-umons2/?iframe=wp.sciviews.org/sdd-umons2-2023/distance-entre-individus.html).
4040

4141
## Barro Colorado Island
4242

43-
Barro Colorado est une île artificielle située sur le lac Gatùn, au centre du Panama. Elle représente un lieu de recherche scientifique intensive axée sur l'écologie de la forêt tropicale.
43+
Barro Colorado est une île artificielle située sur le lac Gatùn, au centre du Panama. Elle représente un lieu de recherche scientifique intensive axée sur l'écologie des forêts tropicales.
4444

4545
![Ile de Barro Colorado](images/bci_carte.png)
4646

47-
Une surface permanente de 50 hectares a été définie par l'Institut de recherche tropicale Smithsonian et l'Université de Princeton pour étudier la dynamique de la végétation. Cette surface est divisée en 50 parcelles de 1 ha, qui s'alignent les unes sur les autres. Dans chaque parcelle, le dénombrement de toutes les espèces forestières a été enregistré (seules les plantes avec un DHP \>= 10 cm [Diamètre mesuré à plus ou moins 1,3m] sont disponibles dans cet ensemble de données). Au total, 225 espèces différentes ont été observées.
47+
Une surface permanente de 50 hectares a été définie par l'Institut de recherche tropicale Smithsonian et l'Université de Princeton pour étudier la dynamique de la végétation. Cette surface est divisée en 50 parcelles de 1 ha qui s'alignent les unes sur les autres. Dans chaque parcelle, le dénombrement de toutes les espèces forestières a été réalisé (seules les plantes avec un DHP \>= 10 cm [Diamètre mesuré à plus ou moins 1,3m] sont disponibles dans cet ensemble de données). Au total, 225 espèces différentes ont été observées.
4848

4949
![Foret tropicale de l'ile de Barro Colorado](images/bci_forest.jpg)
5050

51-
Les données peuvent être chargées à partir de `BCI` dans le package {vegan} et se présentent comme ceci :
51+
Les données peuvent être chargées à partir de `BCI` du package {vegan} et se présentent comme ceci :
5252

5353
```{r, echo=TRUE}
5454
bci <- read("BCI", package = "vegan")
@@ -190,7 +190,7 @@ grade_code("La représentation que nous obtenons est assez différente de celle
190190

191191
La MDS non métrique est assortie d'indicateurs permettant d'évaluer d'une part la qualité de l'ajustement et d'autre part la fonction de stress appliquée. Comme pour la PCoA, vous pouvez utiliser la fonction `glance()` pour obtenir une mesure de l'ajustement global de la MDS.
192192

193-
Analyser les indicateurs de l'objet `bci_nmds` que vous venez de créer et répondez à la question ci-dessous.
193+
Analysez les indicateurs de l'objet `bci_nmds` que vous venez de créer et répondez à la question ci-dessous.
194194

195195
```{r ajust_prep}
196196
bci_dist <- dissimilarity(bci, method = "bray")

0 commit comments

Comments
 (0)