Repository navigation
Expand file tree
/
Copy pathmice_notebook.qmd
More file actions
167 lines (119 loc) · 6.49 KB
/
Copy pathmice_notebook.qmd
File metadata and controls
167 lines (119 loc) · 6.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
---
title: "Expression de protéines dans le cortex cérébral de souris soumises à différents tests d'apprentissage"
subtitle: "Analyse discriminante linéaire"
author: "___"
date: "`r Sys.Date()`"
format:
html:
code-fold: true
code-tools: true
toc: true
editor: visual
lang: fr
svbox: 2026
vm: "Ubuntu 24.04.3 LTS"
bibliography: references.bib
---
<!--% Votre objectif est de déboguer ce document Quarto afin qu’il compile. Vous avez à votre disposition des tests pour vérifier votre progression. -->
<!--% Remplacez author: "___" par votre nom. Votre nom n'est pas votre login Github. ex: author: "John Doe". Attention, l'entête YAML est très sensible aux espaces, aux guillemets et à l'"indentation" (= le nombre d'espaces blancs au début de chaque ligne). Par précaution, mettez toujours le texte derrière title:, author:, date:, … entre guillemets doubles et respectez l'indentation initiale. -->
```{r setup, include=FALSE}
# Ceci est nécessaire pour les tests SDD, ne pas utiliser dans un "vrai" projet
if (!"tools:tests" %in% search())
source(here::here("tests/tools_tests.R"), attach(NULL, name = "tools:tests"))
# Configurez Knitr pour utiliser AGG comme périphérique graphique
knitr::opts_chunk$set(dev = "ragg_png")
# Configuration de l'environnement SciViews::R
SciViews::R("ml" lang = "fr)
# Fonction complémentaire
source("R/functions.R")
```
## Introduction et but
Le syndrome de Down est une anomalie chromosomique due à la trisomie 21, qui entraîne une déficience intellectuelle. La surexpression des gènes du chromosome supplémentaire codés provoque des déficits d'apprentissage et de mémoire. Afin d'identifier des cibles médicamenteuses potentielles, nous avons étudié les niveaux d'expression de 77 protéines chez des souris de génotype normal et chez leurs congénères trisomiques, avec et sans traitement par le médicament mémantine.
## Matériel et méthodes
Les données ont été collectées dans le cadre de l'étude menée par @higuera2015 *.* Ces données et les métadonnées sont mises à disposition sous la licence CC BY 4.0 [@clarahiguera2015].
L'analyse discriminante linéaire est employée pour définir le modèle de classification. L'analyse est réalisée avec le logiciel R (`r R.version.string`) et en particulier le package {mlearning} version `r packageVersion("mlearning")` dans la [SciViews Box `r rmarkdown::metadata$svbox`](https://www.sciviews.org/software/svbox/). [Saturn Cloud](https://saturncloud.io/) (`r rmarkdown::metadata$vm`) est utilisé pour exécuter le code et compiler la version HTML de ce bloc-notes.
<!--% Spécifier si vous avez employé l'intelligence artificielle dans votre projet. -->
```{r ai_comment, output='asis'}
select_answer(r"-{
[] - Ce document a été rédigé en étant assisté par l'Intelligence Artificielle.
[] - Ce document a été rédigé sans recours à l'Intelligence Artificielle.}-")
```
<!-- Précisez ci-dessous l'utilisation que vous avez faite de l'IA. Citez le modèle utilisé. -->
## Analyses
```{r import, record='RODFS', object='mice'}
if (!file_exists("data/mice.rds"))
source("R/mice_import.R")
mice <- read$csv("data/mice.rds")
```
### Description des données
```{r skim}
skimr::skim(mice)
```
- Ce tableau de données comprend 5 variables caractères et 69 variables numériques.
- On dénombre 1073 observations.
- Ce tableau ne comprend aucune valeur manquante après traitement des données initiales.
```{r correlation, record='ROA', object='mice_corr', arg='dimnames', warning=FALSE}
# Matrice de corrélation : trop de variables -> seulement les dix premières
mice_corr <- correlation(mice[, 1:10],
use = "complete.obs", method = "pearson")
# Fonctions qui ordonnent les paires de variables fortement corrélées
correlation_best(mice_corr, n = 10)
# Graphique de corrélation
plot(mice_corr, type = "upper")
```
- Les dix premières variables numériques sont employées dans la matrice de corrélation de Pearson.
- Une corrélation proche de 1 est observable entre les protéines dyrk1a_n et itsn1_n
```{r chart, record='RNCS', arg='no.data'}
# Graphique de l'ubiquitin en fonction de la classe
chart(data = mice, ubiquitin_n ~ class %fill=% class)
geom_boxplot(show.legend = FAlSE)
```
- Que ce soit pour les individus de contrôle (c-) ou les individus trisomiques (t-), les deux boîtes de dispersion les plus élevées concernent les groupes n'ayant pas été stimulés (SC) et ayant reçu le traitement (-m).
```{r table, record='RNP', arg='col_keys', warning=FALSE}
tabularise(table(mice$class)
```
- Les proportions dans chaque groupe sont similaires.
### Set d'apprentissage et de test
```{r reduce, record='RODFS', object='mice'}
# Elimination des variables caractères non essentielles (4)
mice <- sfilter(mice, -mouse_id,
-genotype, -treatment, behavior)
# Conversion de `class`en variable facteur
mice <- smutate(mice, class = factorclass))
```
```{r split, record='RODFS', object='mice_train'}
# Définition du set d'apprentissage et du set de test
set.seed(7235)
mice_init <- initial_split(mice, prop = 2/3, strata = class)
# Set d'apprentissage
mice_train <- testing(mice_init)
# Set de test
mice_test <- testing(mice_init)
```
- Le set d'apprentissage comprend 713 observations et le set de test 360. Une répartition des 2/3 a été employée.
### Apprentissage du modèle
```{r model, record='ROP', object='mice_lda', arg='counts'}
mice_lda <- ml_lda(data = mice, class ~ .)
mice_lda
```
- L'algorithme met en évidence un potentiel problème de colinéarité qu'il convient de traiter.
### Test du modèle
```{r confusion,record='ROA', object='mice_conf', arg='class,row.freqs,col.freqs,prior,stats'}
mice_pred <- predict(mice_lda, mice_train)
mice_conf <- confusion(mice_pred, mice_train$class)
plot(miec_conf)
```
- Le classifieur commet très peu d'erreurs.
- Les erreurs sont quasi exclusivement relatives aux individus dont l'apprentissage est stimulé.
```{r summaryconf}
summary(mice_conf, type = c("Fscore", "Recall", "Precision"))
```
- Les trois métriques ont des valeurs excellentes.
## Conclusion
Ce classifieur commet peu d'erreurs. Néanmoins, une analyse plus approfondie est nécessaire pour traiter ces observations. En effet, la présence de colinéarité entre les variables doit être étudiée.
De plus, le nombre de souris étudiées est de 78, alors que l'on retrouve plus de 1000 observations dans le tableau de données. Chaque dosage a été répliqué 15 fois.
```{r save}
#Sauvegarde du classifieur.
dir_create("data")
write$rds(mice_lda, "data/mice_lda.rds")
```