###Analyse Trastuzumab_dxd et IMC
##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)
##chargement des données globales


data_julie <- read_excel("C:/datar/data_julie.xlsx")
## New names:
## • `Statut HER 2 (0=neg;1=pos;2=low)` -> `Statut HER 2 (0=neg;1=pos;2=low)...29`
## • `Détail ligne 2` -> `Détail ligne 2...36`
## • `Détail ligne 2` -> `Détail ligne 2...37`
## • `Détail autre` -> `Détail autre...42`
## • `Détail autre` -> `Détail autre...51`
## • `Statut HER 2 (0=neg;1=pos;2=low)` -> `Statut HER 2 (0=neg;1=pos;2=low)...82`
##chargement des données description des tooxicités

data_tox <- read_excel("C:/datar/data_tox.xlsx")
## New names:
## • `Statut HER 2 (0=neg;1=pos;2=low)` -> `Statut HER 2 (0=neg;1=pos;2=low)...29`
## • `Détail ligne 2` -> `Détail ligne 2...36`
## • `Détail ligne 2` -> `Détail ligne 2...37`
## • `Détail autre` -> `Détail autre...42`
## • `Détail autre` -> `Détail autre...51`
## • `Statut HER 2 (0=neg;1=pos;2=low)` -> `Statut HER 2 (0=neg;1=pos;2=low)...82`
##recodage des variables et bases de données le cas échéant----
data_julie$imc25<-ifelse(data_julie$imc>25, 1, 0)
data_julie$imc30<-ifelse(data_julie$imc>30, 1, 0)
data_julie$poidslourds<-ifelse(data_julie$poids>71, 1, 0)
data_tox$imc25<-ifelse(data_tox$imc>25, 1, 0)
data_tox$imc30<-ifelse(data_tox$imc>30, 1, 0)
tdxd<-filter(data_julie, c(eligible=="oui" ))
her2low<-filter(tdxd, c(her2_status=="low" ))
her2pos<-filter(tdxd, c(her2_status=="positive" ))
tox<-filter(data_tox, c(eligible=="oui" ))
toxher2low<-filter(tox, c(her2_status=="low" ))
toxher2pos<-filter(tox, c(her2_status=="positive" ))





##description population 
tbl_summary(
  tdxd, include = c("age", "poids", "taille", "imc", "imc25", "imc30", "her2_status", "rh", "Score ECOG", "oms.cat", "meta_liver", "meta_brain", "meta_lung", "previous_lines", "chemotherapy", "HER2i", "icdk4_6", "endocrine_therapy", "immunotherapy", "sacituzumab_govitecan", "hypoalbuminemie", "hyperbilirubinemie", "asat3n", "concession_initiale"),
)
Characteristic N = 931
age 59 (48, 66)
poids 61 (52, 71)
taille 162 (158, 166)
imc 23.6 (20.0, 26.2)
imc25 33 (35%)
imc30 7 (7.5%)
her2_status
    low 45 (48%)
    positive 48 (52%)
rh
    0 18 (19%)
    1 74 (80%)
    NR 1 (1.1%)
Score ECOG
    0 22 (24%)
    0/1 1 (1.1%)
    1 52 (56%)
    2 14 (15%)
    3 1 (1.1%)
    NR 3 (3.2%)
oms.cat 15 (17%)
    Unknown 3
meta_liver 54 (58%)
meta_brain 23 (25%)
meta_lung 28 (30%)
previous_lines
    1 12 (13%)
    2 19 (20%)
    3 13 (14%)
    4 et + 49 (53%)
chemotherapy 92 (99%)
HER2i 45 (48%)
icdk4_6 44 (47%)
endocrine_therapy 67 (72%)
immunotherapy 5 (5.4%)
sacituzumab_govitecan 6 (6.5%)
hypoalbuminemie 26 (41%)
    Unknown 29
hyperbilirubinemie 2 (2.8%)
    Unknown 22
asat3n 12 (15%)
    Unknown 12
concession_initiale 19 (20%)
1 Median (IQR); n (%)
##description population caracteristiques patients 
tbl_summary(
  tdxd, include = c("age", "poids", "Dose prescrite (mg)", "taille", "imc", "imc25", "imc30", "Score ECOG", "oms.cat", "hypoalbuminemie", "hyperbilirubinemie", "asat3n", "concession_initiale"),
)
Characteristic N = 931
age 59 (48, 66)
poids 61 (52, 71)
Dose prescrite (mg) 320 (280, 360)
taille 162 (158, 166)
imc 23.6 (20.0, 26.2)
imc25 33 (35%)
imc30 7 (7.5%)
Score ECOG
    0 22 (24%)
    0/1 1 (1.1%)
    1 52 (56%)
    2 14 (15%)
    3 1 (1.1%)
    NR 3 (3.2%)
oms.cat 15 (17%)
    Unknown 3
hypoalbuminemie 26 (41%)
    Unknown 29
hyperbilirubinemie 2 (2.8%)
    Unknown 22
asat3n 12 (15%)
    Unknown 12
concession_initiale 19 (20%)
1 Median (IQR); n (%)
##description population caracteristiques patients selon imc >25
tbl_summary(
  tdxd, include = c("age", "poids", "Dose prescrite (mg)", "taille","Score ECOG", "oms.cat", "hypoalbuminemie", "hyperbilirubinemie", "asat3n", "concession_initiale"),
  by="imc25", 
  digits=all_categorical()~ c(0,1)
)%>%
  add_p()
Characteristic 0, N = 601 1, N = 331 p-value2
age 60 (50, 66) 55 (46, 66) 0.5
poids 55 (48, 61) 74 (68, 80) <0.001
Dose prescrite (mg) 290 (260, 320) 380 (360, 440) <0.001
taille 162 (157, 166) 161 (160, 166) 0.9
Score ECOG 0.10
    0 16 (26.7%) 6 (18.2%)
    0/1 1 (1.7%) 0 (0.0%)
    1 30 (50.0%) 22 (66.7%)
    2 12 (20.0%) 2 (6.1%)
    3 0 (0.0%) 1 (3.0%)
    NR 1 (1.7%) 2 (6.1%)
oms.cat 12 (20.3%) 3 (9.7%) 0.2
    Unknown 1 2
hypoalbuminemie 15 (34.9%) 11 (52.4%) 0.2
    Unknown 17 12
hyperbilirubinemie 1 (2.1%) 1 (4.3%) 0.5
    Unknown 12 10
asat3n 6 (12.0%) 6 (19.4%) 0.5
    Unknown 10 2
concession_initiale 13 (21.7%) 6 (18.2%) 0.7
1 Median (IQR); n (%)
2 Wilcoxon rank sum test; Fisher’s exact test; Pearson’s Chi-squared test
##description population caracteristiques patients selon poids>71
tbl_summary(
  tdxd, include = c("age", "poids", "Dose prescrite (mg)", "taille","Score ECOG", "oms.cat", "hypoalbuminemie", "hyperbilirubinemie", "asat3n", "concession_initiale"),
  by="poidslourds", 
  digits=all_categorical()~ c(0,1)
)%>%
  add_p()
Characteristic 0, N = 711 1, N = 221 p-value2
age 59 (48, 66) 54 (46, 64) 0.5
poids 57 (50, 64) 78 (75, 81) <0.001
Dose prescrite (mg) 300 (260, 340) 420 (385, 440) <0.001
taille 161 (157, 165) 164 (161, 166) 0.039
Score ECOG 0.4
    0 18 (25.4%) 4 (18.2%)
    0/1 1 (1.4%) 0 (0.0%)
    1 36 (50.7%) 16 (72.7%)
    2 13 (18.3%) 1 (4.5%)
    3 1 (1.4%) 0 (0.0%)
    NR 2 (2.8%) 1 (4.5%)
oms.cat 14 (20.3%) 1 (4.8%) 0.2
    Unknown 2 1
hypoalbuminemie 20 (39.2%) 6 (46.2%) 0.6
    Unknown 20 9
hyperbilirubinemie 2 (3.5%) 0 (0.0%) >0.9
    Unknown 14 8
asat3n 9 (14.8%) 3 (15.0%) >0.9
    Unknown 10 2
concession_initiale 15 (21.1%) 4 (18.2%) >0.9
1 Median (IQR); n (%)
2 Wilcoxon rank sum test; Fisher’s exact test; Pearson’s Chi-squared test
##description pathologies
tbl_summary(
  tdxd, include = c("her2_status", "rh", "meta_liver", "meta_brain", "meta_lung", "previous_lines", "chemotherapy", "HER2i", "icdk4_6", "endocrine_therapy", "immunotherapy", "sacituzumab_govitecan"),
)
Characteristic N = 931
her2_status
    low 45 (48%)
    positive 48 (52%)
rh
    0 18 (19%)
    1 74 (80%)
    NR 1 (1.1%)
meta_liver 54 (58%)
meta_brain 23 (25%)
meta_lung 28 (30%)
previous_lines
    1 12 (13%)
    2 19 (20%)
    3 13 (14%)
    4 et + 49 (53%)
chemotherapy 92 (99%)
HER2i 45 (48%)
icdk4_6 44 (47%)
endocrine_therapy 67 (72%)
immunotherapy 5 (5.4%)
sacituzumab_govitecan 6 (6.5%)
1 n (%)
##description pathologies selon imc>25
tbl_summary(
  tdxd, include = c("her2_status", "rh", "meta_liver", "meta_brain", "meta_lung", "previous_lines", "chemotherapy", "HER2i", "icdk4_6", "endocrine_therapy", "immunotherapy", "sacituzumab_govitecan"),
  by="imc25", 
  digits=all_categorical()~ c(0,1)
)%>%
  add_p()
Characteristic 0, N = 601 1, N = 331 p-value2
her2_status >0.9
    low 29 (48.3%) 16 (48.5%)
    positive 31 (51.7%) 17 (51.5%)
rh 0.2
    0 10 (16.7%) 8 (24.2%)
    1 50 (83.3%) 24 (72.7%)
    NR 0 (0.0%) 1 (3.0%)
meta_liver 34 (56.7%) 20 (60.6%) 0.7
meta_brain 14 (23.3%) 9 (27.3%) 0.7
meta_lung 22 (36.7%) 6 (18.2%) 0.063
previous_lines 0.4
    1 10 (16.7%) 2 (6.1%)
    2 11 (18.3%) 8 (24.2%)
    3 7 (11.7%) 6 (18.2%)
    4 et + 32 (53.3%) 17 (51.5%)
chemotherapy 59 (98.3%) 33 (100.0%) >0.9
HER2i 29 (48.3%) 16 (48.5%) >0.9
icdk4_6 28 (46.7%) 16 (48.5%) 0.9
endocrine_therapy 43 (71.7%) 24 (72.7%) >0.9
immunotherapy 4 (6.7%) 1 (3.0%) 0.7
sacituzumab_govitecan 3 (5.0%) 3 (9.1%) 0.7
1 n (%)
2 Pearson’s Chi-squared test; Fisher’s exact test
##description pathologies selon poids >71
tbl_summary(
  tdxd, include = c("her2_status", "rh", "meta_liver", "meta_brain", "meta_lung", "previous_lines", "chemotherapy", "HER2i", "icdk4_6", "endocrine_therapy", "immunotherapy", "sacituzumab_govitecan"),
  by="poidslourds", 
  digits=all_categorical()~ c(0,1)
)%>%
  add_p()
Characteristic 0, N = 711 1, N = 221 p-value2
her2_status 0.8
    low 35 (49.3%) 10 (45.5%)
    positive 36 (50.7%) 12 (54.5%)
rh 0.3
    0 14 (19.7%) 4 (18.2%)
    1 57 (80.3%) 17 (77.3%)
    NR 0 (0.0%) 1 (4.5%)
meta_liver 42 (59.2%) 12 (54.5%) 0.7
meta_brain 16 (22.5%) 7 (31.8%) 0.4
meta_lung 24 (33.8%) 4 (18.2%) 0.2
previous_lines 0.7
    1 10 (14.1%) 2 (9.1%)
    2 13 (18.3%) 6 (27.3%)
    3 9 (12.7%) 4 (18.2%)
    4 et + 39 (54.9%) 10 (45.5%)
chemotherapy 70 (98.6%) 22 (100.0%) >0.9
HER2i 33 (46.5%) 12 (54.5%) 0.5
icdk4_6 34 (47.9%) 10 (45.5%) 0.8
endocrine_therapy 51 (71.8%) 16 (72.7%) >0.9
immunotherapy 5 (7.0%) 0 (0.0%) 0.3
sacituzumab_govitecan 4 (5.6%) 2 (9.1%) 0.6
1 n (%)
2 Pearson’s Chi-squared test; Fisher’s exact test
##description toxicités
tbl_summary(
  tox, include = c("introduction_gcsf", "neutropenie", "neutropenie_gcsf2","neurotoxicite", "infection","thrombopenie","anemie","diarrhee","nausees","vomissements","rgo_dyspepsie","hepatotoxicite","cholecystite","toxicite_cutanee","toxicite_muqueuse","neurotoxicite","fatigue","perte_poids","arthralgies","toux_dyspnee","pneumopathies interstitelle","cardiaque"),
  by="grade_tox",
)
Characteristic cliniquement_significatif, N = 931 tout_grade, N = 931
introduction_gcsf 4 (4.3%) 14 (15%)
neutropenie 12 (13%) 15 (16%)
neutropenie_gcsf2 16 (17%) 19 (20%)
neurotoxicite 1 (1.1%) 9 (9.7%)
infection 1 (1.1%) 1 (1.1%)
thrombopenie 5 (5.4%) 7 (7.5%)
anemie 1 (1.1%) 11 (12%)
diarrhee 5 (5.4%) 46 (49%)
nausees 8 (8.6%) 62 (67%)
vomissements 2 (2.2%) 22 (24%)
rgo_dyspepsie 3 (3.2%) 11 (12%)
hepatotoxicite 3 (3.2%) 46 (49%)
cholecystite 1 (1.1%) 1 (1.1%)
toxicite_cutanee 0 (0%) 2 (2.2%)
toxicite_muqueuse 1 (1.1%) 1 (1.1%)
fatigue 20 (22%) 83 (89%)
perte_poids 3 (3.2%) 26 (28%)
arthralgies 0 (0%) 17 (18%)
toux_dyspnee 1 (1.1%) 22 (24%)
pneumopathies interstitelle 7 (7.5%) 7 (7.5%)
cardiaque 1 (1.1%) 1 (1.1%)
1 n (%)
##description des consequences cliniques des toxicités
tbl_summary(
  tdxd, include = c("total_diminution_dose", "total_report_cure", "total_arret_tt", "total_prophylaxie_gscf", "total_transfusion_cp", "total_transfusion_gr", "total_hospitalisation"),
)
Characteristic N = 931
total_diminution_dose 32 (34%)
total_report_cure 18 (19%)
total_arret_tt 12 (13%)
total_prophylaxie_gscf 12 (13%)
total_transfusion_cp 1 (1.1%)
total_transfusion_gr 1 (1.1%)
total_hospitalisation 3 (3.2%)
1 n (%)
##durée de traitement 
km_tt<-survfit(Surv(tdxd$durtt, tdxd$evtt)~1)
km_tt
## Call: survfit(formula = Surv(tdxd$durtt, tdxd$evtt) ~ 1)
## 
##       n events median 0.95LCL 0.95UCL
## [1,] 93     48    9.1    7.13    11.2
##motifs d'arrêt 
tbl_summary(
  tdxd, include = c("motif_arret"),
)
Characteristic N = 931
motif_arret
    0 44 (47%)
    DECES 3 (3.2%)
    PERDU DE VUE 1 (1.1%)
    Perdu de vue (rappatriement en géorgie) 1 (1.1%)
    PROGRESSION 32 (34%)
    TOXICITE 12 (13%)
1 n (%)
##Survie sans progression 
km_pfs<-survfit(Surv(tdxd$pfs, tdxd$evtpfs)~1)
km_pfs
## Call: survfit(formula = Surv(tdxd$pfs, tdxd$evtpfs) ~ 1)
## 
##       n events median 0.95LCL 0.95UCL
## [1,] 93     37   10.3    8.63      NA
ggsurvplot(km_pfs, data = tdxd,
           risk.table=TRUE,
           surv.scale="percent",
           break.time.by=3,
           surv.median.line = "hv"
)

##Survie globale 
km_os<-survfit(Surv(tdxd$os, tdxd$evtos)~1)
km_os
## Call: survfit(formula = Surv(tdxd$os, tdxd$evtos) ~ 1)
## 
##    1 observation effacée parce que manquante 
##       n events median 0.95LCL 0.95UCL
## [1,] 92     16   24.7    22.3      NA
ggsurvplot(km_os, data = tdxd,
           risk.table=TRUE,
           surv.scale="percent",
           break.time.by=3,
           surv.median.line = "hv"
)

##Survie sans toxicité significative 
km_toxfs<-survfit(Surv(tdxd$toxfs, tdxd$evttox)~1)
km_toxfs
## Call: survfit(formula = Surv(tdxd$toxfs, tdxd$evttox) ~ 1)
## 
##       n events median 0.95LCL 0.95UCL
## [1,] 93     51   3.85    2.55    15.5
ggsurvplot(km_toxfs, data = tdxd,
           risk.table=TRUE,
           surv.scale="percent",
           break.time.by=3,
           surv.median.line = "hv"
)

## Influence de IMC>25 sur survie sans toxicité significative 
km_toxfsimc<-survfit(Surv(toxfs, evttox)~imc25, data=tdxd)

ggsurvplot(km_toxfsimc, data = tdxd,
           risk.table=TRUE,
           surv.scale="percent",
           break.time.by=3,
           surv.median.line = "hv"
)

## Influence de poids >3eme quartile sur survie sans toxicité significative 
km_toxfspoids<-survfit(Surv(toxfs, evttox)~poidslourds, data=tdxd)

ggsurvplot(km_toxfspoids, data = tdxd,
           risk.table=TRUE,
           surv.scale="percent",
           break.time.by=3,
           surv.median.line = "hv"
)

#modele de cox effet de imc25
modsurv<-coxph(Surv(toxfs, evttox)~imc25, data=tdxd)
modsurv%>%tbl_regression(exponentiate = TRUE)
Characteristic HR1 95% CI1 p-value
imc25 1.05 0.59, 1.88 0.9
1 HR = Hazard Ratio, CI = Confidence Interval
#modele de cox effet de poids>71
modsurv<-coxph(Surv(toxfs, evttox)~poidslourds, data=tdxd)
modsurv%>%tbl_regression(exponentiate = TRUE)
Characteristic HR1 95% CI1 p-value
poidslourds 1.88 1.02, 3.46 0.042
1 HR = Hazard Ratio, CI = Confidence Interval