Ce projet est un package R permettant de calculer le risque de développer un diabète de type 2. Le package utilise des implémentations R des algorithmes QDiabetes, initialement dérivés par ClinRisk à l'aide du langage de programmation C++. Le package QDiabetes comprend QDiabetes-2013 et QDiabetes-2018, bien que des versions plus anciennes (et éventuellement plus récentes) de QDiabetes puissent être incluses dans les versions futures.
ClinRisk ne prend pas en charge l'approbation de ce code. Les utilisateurs finaux doivent considérer la source C++ d'origine comme l'implémentation open source « de référence ». Veuillez noter que le package QDiabetes R a été créé comme outil de recherche à des fins scientifiques uniquement. Le package QDiabetes R n’a pas reçu l’approbation de l’Agence de réglementation des médicaments et des produits de santé (MHRA) en tant que dispositif médical et ne doit donc pas être utilisé dans le cadre d’une évaluation des risques individualisée.
Le premier algorithme QDiabetes (appelé à l'époque « QDScore ») a été publié en 2009 1 . En 2011, deux changements substantiels ont été apportés, par lesquels la tranche d'âge autorisée par l'algorithme a été élargie de 25 à 79 ans à 25 à 84 ans, et la variable du statut tabagique a été élargie de deux niveaux [fumeur actuel et non-fumeur] à cinq niveaux [ non-fumeur, ex-fumeur, fumeur léger (1 à 9/jour), fumeur modéré (10 à 19/jour) et gros fumeur (≥20/jour)]. En 2012, QDiabetes-2013 a été publié, et de 2013 à 2016, les coefficients de l'algorithme ont été périodiquement mis à jour, jusqu'en 2017, lorsque l'algorithme plus étendu QDiabetes-2018 a été publié 2 . À un moment donné, QDiabetes est passé des données de privation de Townsend du recensement britannique de 2001 au recensement britannique de 2011, mais le moment auquel cela s'est produit n'est pas clair. Pour l’instant, tout ce que l’on peut dire avec certitude, c’est que l’algorithme QDScore original de 2009 utilisait les données de Townsend du recensement britannique de 2001, tandis que QDiabetes-2018 utilise les données de Townsend du recensement britannique de 2011. Plus de détails sur les variables utilisées dans QDiabetes-2013 et QDiabetes-2018 peuvent être trouvés dans les sections suivantes.
L'algorithme QDiabetes-2013 se compose de deux modèles de prédiction du risque distincts (un par sexe), dans lesquels les 11 variables suivantes sont utilisées pour calculer le risque :
Genre [ sex
]
Femelle — "Female"
Mâle — "Male"
Âge [ age
], en années
Indice de masse corporelle [ bmi
], en kg/m 2
Origine ethnique [ ethn
], neuf catégories :
Blanc ou non déclaré — "WhiteNA"
Indien - "Indian"
Pakistanais — "Pakistani"
Bangladais - "Bangladeshi"
Caraïbes noires — "BlackCaribbean"
Africain noir - "BlackAfrican"
Chinois — "Chinese"
Autre asiatique — "OtherAsian"
Autre groupe ethnique — "Other"
Statut de tabagisme [ smoke
], cinq niveaux :
Non-fumeur — "Non"
Ex-fumeur - "Ex"
Fumeur léger (1 à 9/jour) — "Light"
Fumeur modéré (10 à 19/jour) — "Moderate"
Gros fumeur (≥20/jour) — "Heavy"
Privation [ tds
], telle que mesurée par les scores de Townsend, où des valeurs plus élevées indiquent des niveaux de privation plus élevés
Antécédents familiaux de diabète chez un parent au premier degré [ fhdm
]
Antécédents d'hypertension traitée [ htn
], c'est-à-dire diagnostic d'hypertension et traitement avec au moins un médicament antihypertenseur
Antécédents de maladie cardiovasculaire [ cvd
], définis comme : cardiopathie ischémique, accident vasculaire cérébral ou accident ischémique transitoire
Antécédents d'utilisation de corticostéroïdes [ ster
] répertoriés dans le chapitre 6.3.2 du British National Formulary, y compris par voie orale ou par injection de systémique : prednisolone, bétaméthasone, cortisone, depo-médrone, dexaméthasone, déflazacort, efcortesol, hydrocortisone, méthylprednisolone ou triamcinolone
Temps de survie [ surv
], étant la période de temps sur laquelle doit être calculé le risque de développer un diabète de type 2.
L'algorithme QDiabetes-2013 est implémenté dans la fonction QDR2013()
du package QDiabetes .
L'algorithme QDiabetes-2018 est en fait composé de six modèles de prédiction des risques distincts (trois sous-modèles, subdivisés par sexe).
Le modèle de base (de base), « modèle A », utilise les mêmes prédicteurs de risque que QDiabetes-2013, avec l'omission de la variable de temps de survie (en faveur d'une fenêtre de survie fixe de 10 ans) et l'ajout des 6 éléments suivants. variables :
Antécédents de diabète gestationnel [ gdm
] (femmes uniquement)
Antécédents de syndrome des ovaires polykystiques [ pcos
] (femmes uniquement)
Antécédents de troubles d'apprentissage [ learn
]
Antécédents de schizophrénie ou de trouble affectif bipolaire [ psy
]
Antécédents d'utilisation des statines [ stat
]
Antécédents d'utilisation d'antipsychotiques « atypiques » de deuxième génération [ apsy
], notamment : amisulpride, aripiprazole, clozapine, lurasidone, olanzapine, palipéridone, quétiapine, rispéridone, sertindole et zotépine
Le modèle A de l'algorithme QDiabetes-2018 est implémenté dans la fonction QDR2018A()
du package QDiabetes .
Le « Modèle B » utilise les mêmes variables que le modèle A, avec l'ajout de :
Glycémie plasmatique à jeun [ fpg
], en mmol/L
Le modèle B de l'algorithme QDiabetes-2018 est implémenté dans la fonction QDR2018B()
du package QDiabetes .
Le « Modèle C » utilise les mêmes variables que le modèle A, avec l'ajout de :
Valeur d'hémoglobine glyquée A 1c [ hba1c
], en mmol/mol
Le modèle C de l'algorithme QDiabetes-2018 est implémenté dans la fonction QDR2018C()
du package QDiabetes .
Vous pouvez installer la version publiée de QDiabetes depuis CRAN avec :
install.packages("QDiabetes")
Alternativement, la version de développement peut être installée depuis GitHub avec :
if (!{"remotes" %in% Installé.packages()}) install.packages("remotes")remotes::install_github("Feakster/qdiabetes")
En construisant ce package, nous voulions créer quelque chose de simple à écrire et facile à maintenir (principes KISS), performant, mais compatible avec les versions les plus récentes et les plus anciennes de R. Dans cet esprit, nous avons écrit ce package pour qu'il soit aussi fidèle au langage principal de R, en utilisant un minimum de dépendances. Par conséquent, vous ne trouverez aucun Rcpp ici. Au lieu de cela, toutes les fonctions ont été entièrement écrites en base R ; la seule exception étant la fonction getTDS()
, qui utilise la fonction median()
du package stats (bien que nous puissions réécrire cela à un moment donné). Tous les autres packages répertoriés sous « Suggestions » dans le fichier DESCRIPTION servent uniquement à illustrer l'utilisation de QDiabetes dans des exemples ou des vignettes, ou pour tester le package. Le principal facteur limitant la compatibilité du package avec les anciennes versions de R est la méthode de stockage de données que CRAN nous oblige à utiliser pour le backend de trame de données de la fonction getTDS()
. En raison de l'empreinte mémoire de cet objet (≈200 Mo), nous devons utiliser la compression XZ pour réduire autant que possible la taille globale du package. La compression XZ a été implémentée pour la première fois dans la version R 2.10.
La plupart des valeurs par défaut utilisées dans les fonctions de prévision des risques de ce package ont été sélectionnées pour être représentatives d'une population britannique. Ces valeurs visent uniquement à minimiser la quantité de typage requise lors de l'utilisation des fonctions de prédiction des risques de manière exploratoire. Il est peu probable qu'ils soient utiles dans un contexte de recherche, et vous auriez besoin de connaître les valeurs exactes à attribuer à tous les paramètres de fonction afin de faire une prévision précise des risques. Par conséquent, même si vous pouvez obtenir des prévisions de risque à partir des fonctions QDR2013()
et QDR2018A()
en spécifiant uniquement sex
, age
et bmi
, vous supposeriez que l'origine ethnique est blanche ou manquante, le statut de non-fumeur, un score de privation de Townsend de 0. , et l'absence totale de tout antécédent médical pertinent et de tout traitement médicamenteux concomitant. Dans le cas de QDR2013()
, vous supposeriez également qu'une fenêtre de risque de 10 ans est souhaitée.
Vous trouverez ci-dessous quelques exemples très simples utilisant le package QDiabetes . Notez que pour plus de commodité, l'IMC [ bmi
] ou la taille [ ht
] et le poids [ wt
] peuvent être spécifiés dans l'une des fonctions de prédiction des risques de ce package.
Dans le but de rendre la vie un peu plus facile, une fonction d'assistance getTDS()
a été ajoutée au package, qui utilise une table de recherche pour obtenir les scores de privation de Townsend à partir de codes postaux britanniques complets ou partiels.
### Charger l'espace de noms du package ###library(QDiabetes)### Utilisation simple ###QDR2013(sexe = "Femme", âge = 35, IMC = 25)# [1] 0.6324508QDR2018A(sexe = "Homme", âge = 45, IMC = 35)# [1] 9.88593QDR2018B(sexe = "Femme", âge = 65, IMC = 30, fpg = 6)# [1] 18.43691QDR2018C(sexe = "Homme", âge = 25, IMC = 40, hba1c = 42)# [1] 8.226301### Utilisation de getTDS() Fonction d'assistance ###getTDS("OX2 6GG")# [1] 2.022583QDR2013(sexe = "Femme", âge = 41, ht = 1,65, poids = 60, tds = getTDS("OX3 9DU"))# [1 ] 0,5004499QDR2018A(sexe = "Homme", âge = 33, bmi = 26, tds = getTDS("OX3 7LF"))# [1] 0.6472644### Utilisation de la vectorisation ###getTDS(c("OX3 7LF", "OX2 6NW", "OX2 6GG", "OX1 4AR"))#OX37LF OX26NW OX26GG OX14AR# -1.032394 1,640422 2,022583 2,309777QDR2013(sexe = "Femme", âge = 35, IMC = seq(20, 40, 5))# 20 25 30 35 40# 0,1801226 0,6324508 1,7885233 3.8983187 6.2964702QDR2018A(sexe = "Femme", âge = seq(25, 75, 10), IMC = 35)# 25 35 45 55 65 75# 1.085179 2.921454 5.893499 9.082108 10,713717 9,567516QDR2018B(sexe = "Homme", âge = 65, IMC = 35, fpg = 2:6)# 2 3 4 5 6# 0,9123063 0,5911511 1,8416081 7,8554831 30.8096968QDR2018C(sexe = "Femme", âge = 80, IMC = 28, hba1c = seq(15, 45, 5))# 15 20 25 30 35 40 45# 0,008084487 0,033019655 0,121238952 0.412396004 1.320727239 4.005759509 11.409509026### Utilisation de la trame de données ###data(dat_qdr) # Échantillon de données synthétiques## Utilisation de la base R ##dat_qdr[["risk"]] <- with(dat_qdr, QDR2013(sex = sex, age = âge, ht = ht, wt = wt, ethn = ethn, smoke = smoke, tds = tds, htn = htn, cvd = cvd, ster = ster))## Utilisation de dplyr ##library(dplyr)df_qdr <- as_tibble(dat_qdr) df_qdr <- df_qdr %>% muter (risque = QDR2013 (sexe = sexe, âge = âge, ht = ht, poids = poids, ethn = ethn, fumée = fumée, tds = tds, htn = htn, cvd = cvd, ster = ster))## Utilisation data.table ##library(data.table)dt_qdr <- as.data.table(dat_qdr)dt_qdr[, risque := QDR2013(sexe = sexe, âge = âge, ht = ht, poids = poids, ethn = ethn, fumée = fumée, tds = tds, htn = htn, cvd = cvd, ster = ster)]
Voir Problèmes sur le référentiel QDiabetes GitHub.
QRISK3 : une implémentation R des algorithmes de prédiction des risques QRISK3 de ClinRisk.
Ce projet a été financé par l'École de recherche sur les soins primaires (SPCR) de l'Institut national de recherche en santé (NIHR) [numéro de projet : 412]. Les opinions exprimées sont celles du ou des auteurs et pas nécessairement celles du NIHR ou du ministère de la Santé et des Affaires sociales.
1 : Hippisley-Cox J, Coupland C, Robson J, Sheikh A et Brindle P. (2009). Prédire le risque de diabète de type 2 en Angleterre et au Pays de Galles : dérivation prospective et validation de QDScore. BMJ338 , b880
2 : Hippisley-Cox J et Coupland C. (2017). Développement et validation de l'algorithme de prédiction du risque QDiabetes-2018 pour estimer le risque futur de diabète de type 2 : étude de cohorte. BMJ359 , j5019