##chargement des packages----
library(questionr)
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.1 ✔ readr 2.1.4
## ✔ forcats 1.0.0 ✔ stringr 1.5.0
## ✔ ggplot2 3.4.2 ✔ tibble 3.2.1
## ✔ lubridate 1.9.2 ✔ tidyr 1.3.0
## ✔ purrr 1.0.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(tableone)
library(labelled)
library(gtsummary)
## #BlackLivesMatter
library(GGally)
## Registered S3 method overwritten by 'GGally':
## method from
## +.gg ggplot2
library(readxl)
library(effects)
## Le chargement a nécessité le package : carData
## lattice theme set by effectsTheme()
## See ?effectsTheme for details.
library(survival)
library(survminer)
## Le chargement a nécessité le package : ggpubr
##
## Attachement du package : 'survminer'
##
## L'objet suivant est masqué depuis 'package:survival':
##
## myeloma
library(ggplot2)
library(dplyr)
library(knitr)
library(cowplot)
##
## Attachement du package : 'cowplot'
##
## L'objet suivant est masqué depuis 'package:ggpubr':
##
## get_legend
##
## L'objet suivant est masqué depuis 'package:lubridate':
##
## stamp
##chargement des données
data_leila <- read_excel("~/FAC/2024-2025/theses/leila/data_leila.xlsx")
## New names:
## • `tgp` -> `tgp...56`
## • `tgp` -> `tgp...57`
data_beam<-filter(data_leila, c(patientcohorte==1))
##recodage des variables et bases de données le cas échéant----
data_beam$surpoids<-ifelse(data_beam$imc>25, 1, 0)
data_beam$old65<-ifelse(data_beam$age>65, 1, 0)
data_beam$ligne_cat2<-ifelse(data_beam$nombre_de_ligne_antérieur>1, 1, 0)
data_beam$ligne_cat3<-ifelse(data_beam$nombre_de_ligne_antérieur>2, 1, 0)
data_beam$ligne_cat4<-ifelse(data_beam$nombre_de_ligne_antérieur>3, 1, 0)
##renommer des variables pour présentation dans les tableaux de résultats
library(labelled)
var_label(data_beam$old65) <- "Patients de + de 65 ans"
var_label(data_beam$surpoids) <- "Patients avec IMC >25"
var_label(data_beam$obesite) <- "Patients avec IMC >30"
var_label(data_beam$poids_chimio_avant_conditionnement) <- "Poids"
var_label(data_beam$surface_corporelle) <- "Surface corporelle calculée"
var_label(data_beam$sc_utilisee_si_capee) <- "Surface corporelle utilisée pour calcul des doses"
var_label(data_beam$oms.cat) <- "Score OMS 0 vs 1 et +"
var_label(data_beam$pathologie) <- "Type d'hémopathie"
var_label(data_beam$nombre_de_ligne_antérieur) <- "Nombre de lignes antérieures"
var_label(data_beam$ligne_cat2) <- "1 ligne anterieure et +"
var_label(data_beam$ligne_cat3) <- "2 lignes anterieures et +"
var_label(data_beam$ligne_cat4) <- "3 lignes anterieures et +"
var_label(data_beam$reponse_maladie_avant_beam) <- "Statut réponse avant autogreffe"
var_label(data_beam$conditionnement_utilise) <- "Protocole intensification"
var_label(data_beam$hb) <- "Hb avant BEAM (g/dl)"
var_label(data_beam$plaquettes) <- "Taux de plaquettes avant BEAM (G/l)"
var_label(data_beam$leucocyte) <- "GB avant BEAM (g/dl)"
var_label(data_beam$pnn) <- "PNN avant BEAM (G/l)"
var_label(data_beam$foie_sans_anomalie) <- "Bilan hépatique sans anomalie"
var_label(data_beam$rein_sans_anomalie) <- "Bilan rénal sans anomalie"
var_label(data_beam$transfusion_cg) <- "Patients avec trasnfusion CG"
var_label(data_beam$transfusion_cp) <- "Patients avec trasnfusion CP"
var_label(data_beam$gcsf) <- "Patients avec G_CSF"
var_label(data_beam$duree_leucopenie_grade3) <- "Durée de Leucopénie Grade_3 postBEAM"
var_label(data_beam$duree_leucopenie_grade4) <- "Durée de Leucopénie Grade_4 postBEAM"
##création de variables à plusieurs catégorie selon valeurs variable continue
#na
##tableau descriptif patients selon obesite ----
tbl_summary(
data_beam, include = c("age",
"old65",
"sexe",
"poids_chimio_avant_conditionnement",
"surpoids",
"surface_corporelle",
"sc_utilisee_si_capee",
"oms.cat",
"pathologie"
),
by="obesite",
digits=all_categorical()~ c(0,1)
)%>%
add_p(
pvalue_fun = scales::label_pvalue(accuracy = .001)
)%>%
add_overall(last = TRUE)
## Warning for variable 'poids_chimio_avant_conditionnement':
## simpleWarning in wilcox.test.default(x = DATA[[1L]], y = DATA[[2L]], ...): impossible de calculer la p-value exacte avec des ex-aequos
## Warning for variable 'surface_corporelle':
## simpleWarning in wilcox.test.default(x = DATA[[1L]], y = DATA[[2L]], ...): impossible de calculer la p-value exacte avec des ex-aequos
## Warning for variable 'sc_utilisee_si_capee':
## simpleWarning in wilcox.test.default(x = DATA[[1L]], y = DATA[[2L]], ...): impossible de calculer la p-value exacte avec des ex-aequos
Characteristic |
0, N = 33 |
1, N = 33 |
p-value |
Overall, N = 66 |
age |
56 (38, 64) |
56 (45, 58) |
0.868 |
56 (42, 63) |
Patients de + de 65 ans |
6 (18.2%) |
5 (15.2%) |
0.741 |
11 (16.7%) |
sexe |
|
|
0.800 |
|
F |
13 (39.4%) |
12 (36.4%) |
|
25 (37.9%) |
M |
20 (60.6%) |
21 (63.6%) |
|
41 (62.1%) |
Poids |
70 (63, 77) |
96 (89, 105) |
<0.001 |
84 (70, 96) |
Patients avec IMC >25 |
12 (36.4%) |
33 (100.0%) |
<0.001 |
45 (68.2%) |
Surface corporelle calculée |
1.83 (1.75, 1.91) |
2.10 (1.98, 2.30) |
<0.001 |
1.96 (1.82, 2.10) |
Unknown |
1 |
0 |
|
1 |
Surface corporelle utilisée pour calcul des doses |
1.83 (1.71, 1.90) |
2.00 (1.98, 2.00) |
<0.001 |
1.95 (1.81, 2.00) |
Score OMS 0 vs 1 et + |
11 (34.4%) |
16 (51.6%) |
0.167 |
27 (42.9%) |
Unknown |
1 |
2 |
|
3 |
Type d'hémopathie |
|
|
0.131 |
|
L hodgkin |
14 (42.4%) |
8 (24.2%) |
|
22 (33.3%) |
L_plasmablastique |
1 (3.0%) |
0 (0.0%) |
|
1 (1.5%) |
LBDGC |
7 (21.2%) |
12 (36.4%) |
|
19 (28.8%) |
LF |
1 (3.0%) |
2 (6.1%) |
|
3 (4.5%) |
lnh manteau |
6 (18.2%) |
10 (30.3%) |
|
16 (24.2%) |
LT anaplasique |
2 (6.1%) |
0 (0.0%) |
|
2 (3.0%) |
LTAI |
2 (6.1%) |
0 (0.0%) |
|
2 (3.0%) |
Poppema |
0 (0.0%) |
1 (3.0%) |
|
1 (1.5%) |
##tableau descriptif traitements selon obesite ----
tbl_summary(
data_beam, include = c("conditionnement_utilise",
"nombre_de_ligne_antérieur",
"ligne_cat2",
"ligne_cat3",
"ligne_cat4",
"reponse_maladie_avant_beam",
"gcsf",
),
by="obesite",
digits=all_categorical()~ c(0,1)
)%>%
add_p(
pvalue_fun = scales::label_pvalue(accuracy = .001)
)%>%
add_overall(last = TRUE)
## There was an error in 'add_p()/add_difference()' for variable 'gcsf', p-value omitted:
## Error in stats::chisq.test(x = structure(c(1, 1, 1, NA, 1, 1, 1, 1, 1, : 'x' et 'y' doivent avoir au moins 2 niveaux
Characteristic |
0, N = 33 |
1, N = 33 |
p-value |
Overall, N = 66 |
Protocole intensification |
|
|
0.159 |
|
BEAM 5 jours |
11 (33.3%) |
6 (18.2%) |
|
17 (25.8%) |
BEAM 6 jours |
22 (66.7%) |
27 (81.8%) |
|
49 (74.2%) |
Nombre de lignes antérieures |
|
|
0.507 |
|
1 |
8 (24.2%) |
11 (33.3%) |
|
19 (28.8%) |
2 |
18 (54.5%) |
11 (33.3%) |
|
29 (43.9%) |
3 |
5 (15.2%) |
6 (18.2%) |
|
11 (16.7%) |
4 |
1 (3.0%) |
3 (9.1%) |
|
4 (6.1%) |
5 |
1 (3.0%) |
2 (6.1%) |
|
3 (4.5%) |
1 ligne anterieure et + |
25 (75.8%) |
22 (66.7%) |
0.415 |
47 (71.2%) |
2 lignes anterieures et + |
7 (21.2%) |
11 (33.3%) |
0.269 |
18 (27.3%) |
3 lignes anterieures et + |
2 (6.1%) |
5 (15.2%) |
0.427 |
7 (10.6%) |
Statut réponse avant autogreffe |
|
|
0.641 |
|
NR |
5 (15.2%) |
1 (3.0%) |
|
6 (9.1%) |
RC |
4 (12.1%) |
5 (15.2%) |
|
9 (13.6%) |
RC1 |
7 (21.2%) |
5 (15.2%) |
|
12 (18.2%) |
RC2 |
12 (36.4%) |
13 (39.4%) |
|
25 (37.9%) |
RC3 |
4 (12.1%) |
6 (18.2%) |
|
10 (15.2%) |
RP |
0 (0.0%) |
1 (3.0%) |
|
1 (1.5%) |
RP4 |
1 (3.0%) |
1 (3.0%) |
|
2 (3.0%) |
RP5 |
0 (0.0%) |
1 (3.0%) |
|
1 (1.5%) |
Patients avec G_CSF |
32 (100.0%) |
28 (100.0%) |
|
60 (100.0%) |
Unknown |
1 |
5 |
|
6 |
##tableau descriptif bilans bio selon obesite ----
tbl_summary(
data_beam, include = c("foie_sans_anomalie",
"rein_sans_anomalie",
"hb",
"plaquettes",
"leucocyte",
"pnn",
),
by="obesite",
digits=all_categorical()~ c(0,1)
)%>%
add_p(
pvalue_fun = scales::label_pvalue(accuracy = .001)
)%>%
add_overall(last = TRUE)
## Warning for variable 'hb':
## simpleWarning in wilcox.test.default(x = DATA[[1L]], y = DATA[[2L]], ...): impossible de calculer la p-value exacte avec des ex-aequos
## Warning for variable 'plaquettes':
## simpleWarning in wilcox.test.default(x = DATA[[1L]], y = DATA[[2L]], ...): impossible de calculer la p-value exacte avec des ex-aequos
## Warning for variable 'leucocyte':
## simpleWarning in wilcox.test.default(x = DATA[[1L]], y = DATA[[2L]], ...): impossible de calculer la p-value exacte avec des ex-aequos
## Warning for variable 'pnn':
## simpleWarning in wilcox.test.default(x = DATA[[1L]], y = DATA[[2L]], ...): impossible de calculer la p-value exacte avec des ex-aequos
Characteristic |
0, N = 33 |
1, N = 33 |
p-value |
Overall, N = 66 |
Bilan hépatique sans anomalie |
12 (36.4%) |
7 (21.9%) |
0.199 |
19 (29.2%) |
Unknown |
0 |
1 |
|
1 |
Bilan rénal sans anomalie |
24 (72.7%) |
23 (69.7%) |
0.786 |
47 (71.2%) |
Hb avant BEAM (g/dl) |
11.10 (10.20, 12.20) |
11.60 (10.40, 12.80) |
0.308 |
11.35 (10.40, 12.50) |
Taux de plaquettes avant BEAM (G/l) |
199 (160, 261) |
212 (180, 265) |
0.870 |
212 (161, 262) |
Unknown |
0 |
1 |
|
1 |
GB avant BEAM (g/dl) |
5.39 (4.66, 6.84) |
6.55 (5.09, 7.78) |
0.168 |
5.91 (4.69, 7.32) |
PNN avant BEAM (G/l) |
3.40 (2.70, 4.30) |
4.50 (3.40, 5.50) |
0.047 |
4.05 (2.80, 5.38) |
##tableau descriptif toxicités selon obesite ----
tbl_summary(
data_beam, include = c("transfusion_cg",
"transfusion_cp",
"duree_leucopenie_grade3",
"duree_leucopenie_grade4",
),
by="obesite",
digits=all_categorical()~ c(0,1)
)%>%
add_p(
pvalue_fun = scales::label_pvalue(accuracy = .001)
)%>%
add_overall(last = TRUE)
## Warning for variable 'transfusion_cg':
## simpleWarning in stats::chisq.test(x = structure(c(1, 1, 1, 1, 1, 1, 1, 1, 1, : L’approximation du Chi-2 est peut-être incorrecte
## Warning for variable 'duree_leucopenie_grade3':
## simpleWarning in wilcox.test.default(x = DATA[[1L]], y = DATA[[2L]], ...): impossible de calculer la p-value exacte avec des ex-aequos
## Warning for variable 'duree_leucopenie_grade4':
## simpleWarning in wilcox.test.default(x = DATA[[1L]], y = DATA[[2L]], ...): impossible de calculer la p-value exacte avec des ex-aequos
Characteristic |
0, N = 33 |
1, N = 33 |
p-value |
Overall, N = 66 |
Patients avec trasnfusion CG |
27 (84.4%) |
26 (83.9%) |
0.956 |
53 (84.1%) |
Unknown |
1 |
2 |
|
3 |
Patients avec trasnfusion CP |
31 (93.9%) |
32 (100.0%) |
0.492 |
63 (96.9%) |
Unknown |
0 |
1 |
|
1 |
Durée de Leucopénie Grade_3 postBEAM |
11.0 (9.0, 13.0) |
10.0 (8.0, 12.0) |
0.548 |
10.0 (8.2, 12.0) |
Durée de Leucopénie Grade_4 postBEAM |
8.00 (7.00, 9.00) |
8.00 (7.00, 9.00) |
0.902 |
8.00 (7.00, 9.00) |
##Analyse des facteurs de risques de neutropénie grade 3
#Analyse univariée
data_beam |>
tbl_uvregression(
y = duree_leucopenie_grade3,
include = c(sexe, age, old65, ligne_cat2, ligne_cat3, ligne_cat4, obesite, surpoids,
sc_utilisee_si_capee, gcsf, oms.cat ),
method = glm,
pvalue_fun = scales::label_pvalue(accuracy = .001),
exponentiate = TRUE
) |>
bold_labels()
Characteristic |
N |
exp(Beta) |
95% CI |
p-value |
age |
66 |
1.00 |
0.94, 1.06 |
0.889 |
sexe |
66 |
|
|
|
F |
|
— |
— |
|
M |
|
0.15 |
0.03, 0.67 |
0.016 |
Patients avec IMC >30 |
66 |
0.76 |
0.16, 3.60 |
0.732 |
Surface corporelle utilisée pour calcul des doses |
66 |
0.19 |
0.01, 3.39 |
0.260 |
Score OMS 0 vs 1 et + |
63 |
4.09 |
0.85, 19.7 |
0.085 |
Patients avec G_CSF |
60 |
|
|
|
Patients avec IMC >25 |
66 |
2.07 |
0.39, 10.9 |
0.394 |
Patients de + de 65 ans |
66 |
2.35 |
0.29, 18.7 |
0.423 |
1 ligne anterieure et + |
66 |
2.18 |
0.40, 12.0 |
0.373 |
2 lignes anterieures et + |
66 |
1.89 |
0.33, 10.8 |
0.474 |
3 lignes anterieures et + |
66 |
3.33 |
0.27, 40.9 |
0.350 |