Proyek ini merupakan paket R untuk menghitung risiko terkena diabetes tipe 2. Paket ini menggunakan implementasi R dari algoritma QDiabetes, yang awalnya diturunkan oleh ClinRisk menggunakan bahasa pemrograman C++. Paket QDiabetes terdiri dari QDiabetes-2013 dan QDiabetes-2018, meskipun versi QDiabetes yang lebih lama (dan akhirnya lebih baru) mungkin disertakan dalam rilis mendatang.
ClinRisk tidak mendukung atau mendukung kode ini. Pengguna akhir harus melihat sumber C++ asli sebagai implementasi sumber terbuka 'standar emas'. Perlu diketahui bahwa paket QDiabetes R dibuat sebagai alat penelitian untuk tujuan ilmiah saja. Paket QDiabetes R belum mendapatkan persetujuan Badan Pengatur Obat dan Produk Kesehatan (MHRA) sebagai perangkat medis, dan oleh karena itu, tidak boleh digunakan sebagai bagian dari penilaian risiko individual.
Algoritme QDiabetes pertama (disebut “QDScore” pada saat itu) diterbitkan pada tahun 2009 1 . Pada tahun 2011, dua perubahan besar dilakukan, yaitu rentang usia yang diperbolehkan oleh algoritma diperluas dari 25–79 menjadi 25–84, dan variabel status merokok diperluas dari dua level [perokok dan bukan perokok] menjadi lima level [ bukan perokok, mantan perokok, perokok ringan (1–9/hari), perokok sedang (10–19/hari) dan perokok berat (≥20/hari)]. Pada tahun 2012, QDiabetes-2013 dirilis, dan dari tahun 2013 hingga 2016 koefisien algoritma diperbarui secara berkala, hingga tahun 2017, ketika algoritma QDiabetes-2018 yang lebih luas diterbitkan 2 . Pada suatu saat, QDiabetes beralih dari sumber data kekurangan Townsend dari Sensus Inggris tahun 2001 ke Sensus Inggris tahun 2011, namun titik terjadinya hal ini tidak jelas. Untuk saat ini, yang dapat dikatakan dengan pasti adalah bahwa algoritma QDScore asli 2009 menggunakan data Townsend dari Sensus Inggris 2001, sedangkan QDiabetes-2018 menggunakan data Townsend dari Sensus Inggris 2011. Detail lebih lanjut mengenai variabel yang digunakan pada QDiabetes-2013 dan QDiabetes-2018 dapat dilihat pada bagian berikut.
Algoritma QDiabetes-2013 terdiri dari dua model prediksi risiko terpisah (satu model per gender), yang mana 11 variabel berikut digunakan untuk menghitung risiko:
Jenis kelamin [ sex
]
Perempuan — "Female"
Laki-laki — "Male"
Usia [ age
], dalam tahun
Indeks massa tubuh [ bmi
], dalam kg/m 2
Etnisitas [ ethn
], sembilan kategori:
Putih atau tidak disebutkan — "WhiteNA"
India — "Indian"
Pakistan — "Pakistani"
Bangladesh — "Bangladeshi"
Karibia Hitam — "BlackCaribbean"
Afrika Hitam — "BlackAfrican"
Cina — "Chinese"
Orang Asia Lainnya — "OtherAsian"
Kelompok etnis lain — "Other"
Status merokok [ smoke
], lima tingkatan:
Bukan perokok — "Non"
Mantan perokok — "Ex"
Perokok ringan (1–9/hari) — "Light"
Perokok sedang (10–19/hari) — "Moderate"
Perokok berat (≥20/hari) — "Heavy"
Deprivasi [ tds
], yang diukur dengan skor Townsend, dimana nilai yang lebih tinggi menunjukkan tingkat deprivasi yang lebih tinggi
Riwayat keluarga diabetes pada kerabat tingkat pertama [ fhdm
]
Riwayat hipertensi yang diobati [ htn
], diagnosis hipertensi dan pengobatan dengan setidaknya satu obat hipertensi
Riwayat penyakit kardiovaskular [ cvd
], didefinisikan sebagai: penyakit jantung iskemik, stroke, atau serangan iskemik transien
Riwayat penggunaan kortikosteroid [ ster
] tercantum dalam British National Formulary bab 6.3.2, termasuk oral atau suntikan sistemik: prednisolon, betametason, kortison, depo-medrone, deksametason, deflazacort, efcortesol, hidrokortison, metilprednisolon, atau triamsinolon
Waktu bertahan hidup [ surv
], yaitu periode waktu di mana risiko terkena diabetes tipe-2 harus dihitung.
Algoritma QDiabetes-2013 diimplementasikan dalam fungsi QDR2013()
dari paket QDiabetes .
Algoritma QDiabetes-2018 sebenarnya terdiri dari enam model prediksi risiko terpisah (tiga sub-model, dibagi lagi berdasarkan gender).
Model dasar (inti), 'model A', menggunakan prediktor risiko yang sama seperti QDiabetes-2013, dengan menghilangkan variabel waktu kelangsungan hidup (mendukung jendela kelangsungan hidup 10 tahun yang tetap), dan penambahan 6 variabel berikut. variabel:
Riwayat diabetes gestasional [ gdm
] (khusus wanita)
Riwayat sindrom ovarium polikistik [ pcos
] (khusus wanita)
Sejarah ketidakmampuan belajar [ learn
]
Riwayat skizofrenia atau gangguan afektif bipolar [ psy
]
Sejarah penggunaan statin [ stat
]
Sejarah penggunaan antipsikotik "atipikal" generasi kedua [ apsy
], termasuk: amisulpride, aripiprazole, clozapine, lurasidone, olanzapine, paliperidone, quetiapine, risperidone, sertindole, dan zotepine
Model A dari algoritma QDiabetes-2018 diimplementasikan dalam fungsi QDR2018A()
dari paket QDiabetes .
'Model B', menggunakan variabel yang sama dengan model A, dengan tambahan:
Kadar glukosa plasma puasa [ fpg
], dalam mmol/L
Model B dari algoritma QDiabetes-2018 diimplementasikan dalam fungsi QDR2018B()
dari paket QDiabetes .
'Model C', menggunakan variabel yang sama dengan model A, dengan tambahan:
Nilai hemoglobin terglikasi A 1c [ hba1c
], dalam mmol/mol
Model C dari algoritma QDiabetes-2018 diimplementasikan dalam fungsi QDR2018C()
dari paket QDiabetes .
Anda dapat menginstal QDiabetes versi rilis dari CRAN dengan:
install.paket("QDiabetes")
Alternatifnya, versi pengembangan dapat diinstal dari GitHub dengan:
if (!{"remotes" %in% install.packages()}) install.packages("remotes")remotes::install_github("Feakster/qdiabetes")
Dalam membangun paket ini, kami ingin membuat sesuatu yang sederhana untuk ditulis dan dipelihara (prinsip KISS), berkinerja baik, namun kompatibel dengan versi R terbaru dan lama. Dengan pemikiran ini, kami telah menulis paket ini sebagai setia pada bahasa inti R, menggunakan ketergantungan minimal. Oleh karena itu, Anda tidak akan menemukan Rcpp apa pun di sini. Sebaliknya, semua fungsi telah ditulis seluruhnya dalam basis R; satu-satunya pengecualian adalah fungsi getTDS()
, yang menggunakan fungsi median()
dari paket stats (meskipun kami mungkin akan menulis ulang fungsi ini suatu saat nanti). Semua paket lain yang terdaftar di bawah “Saran” di file DESKRIPSI hanya berfungsi untuk mengilustrasikan penggunaan QDiabetes dalam contoh atau sketsa, atau dalam pengujian paket. Faktor utama yang membatasi kompatibilitas paket dengan versi R yang lebih lama adalah metode penyimpanan data yang diminta CRAN untuk kita gunakan sebagai backend bingkai data dari fungsi getTDS()
. Karena jejak memori objek ini (≈200MB), kita perlu menggunakan kompresi XZ untuk mengurangi ukuran keseluruhan paket sebanyak mungkin. Kompresi XZ pertama kali diimplementasikan di R versi 2.10.
Banyak nilai default yang digunakan dalam fungsi prediksi risiko paket ini dipilih untuk mewakili populasi Inggris. Nilai-nilai ini hanya dimaksudkan untuk meminimalkan jumlah pengetikan yang diperlukan saat menggunakan fungsi prediksi risiko secara eksploratif. Nilai-nilai tersebut kemungkinan tidak akan berguna dalam pengaturan penelitian, dan Anda perlu mengetahui nilai pasti yang akan ditetapkan ke semua parameter fungsi agar dapat membuat prediksi risiko yang akurat. Oleh karena itu, meskipun Anda bisa mendapatkan prediksi risiko dari fungsi QDR2013()
dan QDR2018A()
melalui spesifikasi hanya sex
, age
, dan bmi
, Anda akan mengasumsikan etnis kulit putih atau hilang, status tidak merokok, skor perampasan Townsend sebesar 0 , dan tidak adanya riwayat/kondisi medis yang relevan serta terapi obat yang bersamaan. Dalam kasus QDR2013()
, Anda juga akan berasumsi bahwa jendela risiko 10 tahun diinginkan.
Di bawah ini adalah beberapa contoh sederhana penggunaan paket QDiabetes . Perhatikan bahwa demi kenyamanan, BMI [ bmi
] atau tinggi [ ht
] dan berat [ wt
] dapat ditentukan dalam salah satu fungsi prediksi risiko dalam paket ini.
Untuk membuat hidup lebih mudah, fungsi pembantu getTDS()
telah ditambahkan ke paket, yang menggunakan tabel pencarian untuk mendapatkan skor perampasan Townsend dari kode pos Inggris penuh atau sebagian.
### Muat Package Namespace ###library(QDiabetes)### Penggunaan Sederhana ###QDR2013(sex = "Female", age = 35, bmi = 25)# [1] 0.6324508QDR2018A(sex = "Pria", umur = 45, bmi = 35)# [1] 9.88593QDR2018B(jenis kelamin = "Perempuan", umur = 65, bmi = 30, fpg = 6)# [1] 18.43691QDR2018C(jenis kelamin = "Pria", umur = 25, bmi = 40, hba1c = 42)# [1] 8.226301### Memanfaatkan Fungsi Helper getTDS() ###getTDS("OX2 6GG")# [1] 2.022583QDR2013(jenis kelamin = "Wanita", umur = 41, ht = 1.65, berat = 60, tds = getTDS("OX3 9DU"))# [1] 0.5004499QDR2018A(jenis kelamin = "Pria", umur = 33 , bmi = 26, tds = getTDS("OX3 7LF"))# [1] 0.6472644### Memanfaatkan Vektorisasi ###getTDS(c("OX3 7LF", "OX2 6NW", "OX2 6GG", "OX1 4AR"))# OX37LF OX26NW OX26GG OX14AR# -1,032394 1,640422 2,022583 2.309777QDR2013(jenis kelamin = "Wanita", umur = 35, bmi = seq(20, 40, 5))# 20 25 30 35 40# 0.1801226 0.6324508 1.7885233 3.8983187 6.2964702QDR2018A(jenis kelamin = "Wanita", umur = seq(25, 75, 10), bmi = 35)# 25 35 45 55 65 75# 1.085179 2.921454 5.893499 9.082108 10.713717 9.567516QDR2018B(jenis kelamin = "Pria", umur = 65, bmi = 35, fpg = 2:6)# 2 3 4 5 6# 0.9123063 0.5911511 1.8416081 7.8554831 30.8096968QDR2018C(jenis kelamin = "Wanita", umur = 80, bmi = 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### Penggunaan Bingkai Data ###data(dat_qdr) # Data sampel sintetis## Menggunakan basis R ##dat_qdr[["risiko"]] <- with(dat_qdr, QDR2013(sex = sex, age = age , ht = ht, wt = wt, etn = ethn, asap = asap, tds = tds, htn = htn, cvd = cvd, ster = ster))## Menggunakan dplyr ##library(dplyr)df_qdr <- as_tibble(dat_qdr)df_qdr <- df_qdr %>% bermutasi(risiko = QDR2013(jenis kelamin = jenis kelamin,usia = usia,ht = ht,wt = wt,ethn = ethn,smoke = asap,tds = tds,htn = htn,cvd = cvd,ster = ster))## Menggunakan data.tabel ##library(data.tabel)dt_qdr <- as.data.table(dat_qdr)dt_qdr[, risiko := QDR2013(jenis kelamin = jenis kelamin, umur = umur, ht = ht, wt = wt, ethn = ethn, asap = asap, tds = tds, htn = htn, cvd = cvd, saudara = saudara)]
Lihat Masalah pada repositori GitHub QDiabetes.
QRISK3: Implementasi R dari algoritma prediksi risiko QRISK3 ClinRisk.
Proyek ini didanai oleh Sekolah Penelitian Perawatan Primer (SPCR) Institut Penelitian Kesehatan Nasional (NIHR) [nomor proyek: 412]. Pandangan yang diungkapkan adalah milik penulis dan belum tentu milik NIHR atau Departemen Kesehatan dan Pelayanan Sosial.
1: Hippisley-Cox J, Coupland C, Robson J, Sheikh A & Brindle P. (2009). Memprediksi risiko diabetes tipe 2 di Inggris dan Wales: derivasi prospektif dan validasi QDScore. BMJ 338 , b880
2: Hippisley-Cox J & Coupland C. (2017). Pengembangan dan validasi algoritma prediksi risiko QDiabetes-2018 untuk memperkirakan risiko diabetes tipe 2 di masa depan: studi kohort. BMJ 359 , j5019