โครงการนี้เป็นแพ็คเกจ R สำหรับคำนวณความเสี่ยงต่อการเกิดโรคเบาหวานประเภท 2 แพ็คเกจนี้ใช้การใช้งาน R ของอัลกอริธึม QDiabetes ซึ่งเริ่มแรกได้รับมาจาก ClinRisk โดยใช้ภาษาการเขียนโปรแกรม C++ แพ็คเกจ QDiabetes ประกอบด้วย QDiabetes-2013 และ QDiabetes-2018 แม้ว่า QDiabetes เวอร์ชันเก่า (และล่าสุดกว่านั้น) อาจรวมอยู่ในการเปิดตัวในอนาคตก็ตาม
ClinRisk ไม่รองรับการรับรองรหัสนี้ ผู้ใช้ควรเห็นซอร์ส C++ ดั้งเดิมเป็นการใช้งานโอเพ่นซอร์ส 'มาตรฐานทองคำ' โปรดทราบว่าแพ็คเกจ QDiabetes R ได้รับการสร้างขึ้นเพื่อเป็นเครื่องมือวิจัยเพื่อวัตถุประสงค์ทางวิทยาศาสตร์เท่านั้น แพ็คเกจ QDiabetes R ไม่ได้รับการอนุมัติจากหน่วยงานกำกับดูแลผลิตภัณฑ์ยาและผลิตภัณฑ์ดูแลสุขภาพ (MHRA) ให้เป็นอุปกรณ์ทางการแพทย์ ดังนั้นจึงไม่ควรใช้เป็นส่วนหนึ่งของการประเมินความเสี่ยงรายบุคคล
อัลกอริธึม QDiabetes แรก (เรียกว่า "QDScore" ในขณะนั้น) ได้รับการเผยแพร่ในปี 2552 1 ในปี พ.ศ. 2554 มีการเปลี่ยนแปลงที่สำคัญสองครั้ง โดยช่วงอายุที่อัลกอริทึมอนุญาตได้ขยายจาก 25–79 เป็น 25–84 และตัวแปรสถานะการสูบบุหรี่ได้ขยายจากสองระดับ [ผู้สูบบุหรี่ในปัจจุบันและผู้ไม่สูบบุหรี่] เป็นห้าระดับ [ ผู้ไม่สูบบุหรี่ อดีตผู้สูบบุหรี่ ผู้สูบบุหรี่เล็กน้อย (1-9 คนต่อวัน) ผู้สูบบุหรี่ปานกลาง (10-19 คนต่อวัน) และผู้สูบบุหรี่จัด (≥20 คนต่อวัน)] ในปี 2012 QDiabetes-2013 เปิดตัว และตั้งแต่ปี 2013 ถึง 2016 ค่าสัมประสิทธิ์ของอัลกอริทึมได้รับการอัปเดตเป็นระยะ จนถึงปี 2017 เมื่อมีการเผยแพร่อัลกอริทึม QDiabetes-2018 ที่ขยายตัวมากขึ้น 2 ในบางจุดระหว่างทาง QDiabetes เปลี่ยนจากการจัดหาข้อมูลการกีดกันของ Townsend จากปี 2544 เป็นการสำรวจสำมะโนประชากรของสหราชอาณาจักรในปี 2554 อย่างไรก็ตาม ประเด็นที่เกิดขึ้นนี้ยังไม่ชัดเจน สำหรับตอนนี้ สิ่งที่สามารถพูดได้ทั้งหมดก็คืออัลกอริทึม QDScore ดั้งเดิมปี 2009 ใช้ข้อมูล Townsend จากการสำรวจสำมะโนประชากรของสหราชอาณาจักรในปี 2001 ในขณะที่ QDiabetes-2018 ใช้ข้อมูล Townsend จากการสำรวจสำมะโนประชากรของสหราชอาณาจักรปี 2011 รายละเอียดเพิ่มเติมเกี่ยวกับตัวแปรที่ใช้ใน QDiabetes-2013 และ QDiabetes-2018 สามารถพบได้ในส่วนต่อไปนี้
อัลกอริธึม QDiabetes-2013 ประกอบด้วยแบบจำลองการทำนายความเสี่ยงสองแบบแยกกัน (หนึ่งแบบต่อเพศ) ซึ่งใช้ตัวแปร 11 ตัวต่อไปนี้ในการคำนวณความเสี่ยง:
เพศ [ sex
]
หญิง — "Female"
ชาย - "Male"
อายุ [ age
] เป็นปี
ดัชนีมวลกาย [ bmi
] มีหน่วยเป็น กก./ ลบ .ม
เชื้อชาติ [ ethn
] เก้าประเภท:
สีขาวหรือไม่ระบุ — "WhiteNA"
อินเดีย — "Indian"
ปากีสถาน — "Pakistani"
บังคลาเทศ — "Bangladeshi"
แบล็คแคริบเบียน — "BlackCaribbean"
แอฟริกันผิวดำ — "BlackAfrican"
จีน — "Chinese"
เอเชียอื่นๆ — "OtherAsian"
กลุ่มชาติพันธุ์อื่น — "Other"
สถานะการสูบบุหรี่ [ smoke
] ห้าระดับ:
ไม่สูบบุหรี่ — "Non"
อดีตผู้สูบบุหรี่ — "Ex"
สูบบุหรี่เล็กน้อย (1–9 ครั้งต่อวัน) — "Light"
ผู้สูบบุหรี่ปานกลาง (10–19 ครั้งต่อวัน) — "Moderate"
สูบบุหรี่จัด (≥20/วัน) — "Heavy"
การกีดกัน [ tds
] ซึ่งวัดโดยคะแนนทาวน์เซนด์ โดยที่ค่าที่สูงกว่าบ่งชี้ถึงระดับการกีดกันที่สูงกว่า
ประวัติครอบครัวเป็นเบาหวานในระดับญาติลำดับที่ 1 [ fhdm
]
ประวัติความดันโลหิตสูงที่ได้รับการรักษา [ htn
] โดยวินิจฉัยโรคความดันโลหิตสูง และให้การรักษาด้วยยาความดันโลหิตสูงอย่างน้อย 1 ชนิด
ประวัติโรคหัวใจและหลอดเลือด [ cvd
] หมายถึง: โรคหัวใจขาดเลือด โรคหลอดเลือดสมอง หรือภาวะขาดเลือดชั่วคราว
ประวัติการใช้ corticosteroids [ ster
] ที่ระบุไว้ใน British National Formulary บทที่ 6.3.2 รวมถึงช่องปากหรือการฉีดทั้งระบบ: prednisolone, betamethasone, cortisone, depo-medrone, dexamethasone, deflazacort, efcortesol, hydrocortisone, methylprednisolone หรือ triamcinolone
เวลารอดชีวิต [ surv
] ซึ่งเป็นช่วงเวลาที่ต้องคำนวณความเสี่ยงในการเป็นโรคเบาหวานประเภท 2
อัลกอริธึม QDiabetes-2013 ถูกนำมาใช้ภายในฟังก์ชัน QDR2013()
ของแพ็คเกจ QDiabetes
อัลกอริธึม QDiabetes-2018 จริงๆ แล้วเป็นแบบจำลองการคาดการณ์ความเสี่ยง 6 แบบแยกกัน (แบบจำลองย่อย 3 แบบ แบ่งย่อยตามเพศ)
โมเดลพื้นฐาน (หลัก) "โมเดล A" ใช้ตัวพยากรณ์ความเสี่ยงเดียวกันกับ QDiabetes-2013 โดยละเว้นตัวแปร เวลาการรอดชีวิต (เพื่อสนับสนุนกรอบเวลาการอยู่รอด 10 ปีคงที่) และการเพิ่ม 6 ต่อไปนี้ ตัวแปร:
ประวัติเบาหวานขณะตั้งครรภ์ [ gdm
] (สตรีเท่านั้น)
ประวัติกลุ่มอาการรังไข่มีถุงน้ำหลายใบ [ pcos
] (สตรีเท่านั้น)
ประวัติความบกพร่องทางการเรียนรู้ [ learn
]
ประวัติโรคจิตเภทหรือโรคอารมณ์สองขั้ว ( psy
)
ประวัติการใช้ยากลุ่มสแตติน [ stat
]
ประวัติการใช้ยารักษาโรคจิตรุ่น "ผิดปรกติ" รุ่นที่สอง ( apsy
) ได้แก่ amisulpride, aripiprazole, clozapine, lurasidone, olanzapine, paliperidone, quetiapine, risperidone, sertindole และ zotepine
โมเดล A ของอัลกอริธึม QDiabetes-2018 ได้รับการปรับใช้ภายในฟังก์ชัน QDR2018A()
ของแพ็คเกจ QDiabetes
'รุ่น B' ใช้ตัวแปรเดียวกันกับรุ่น A โดยมีการเพิ่ม:
ระดับกลูโคสในพลาสมาขณะอดอาหาร [ fpg
] ในหน่วยมิลลิโมล/ลิตร
โมเดล B ของอัลกอริธึม QDiabetes-2018 ได้รับการปรับใช้ภายในฟังก์ชัน QDR2018B()
ของแพ็คเกจ QDiabetes
'รุ่น C' ใช้ตัวแปรเดียวกันกับรุ่น A โดยมีการเพิ่ม:
ค่า Glycated hemoglobin A 1c [ hba1c
] ในหน่วย mmol/mol
โมเดล C ของอัลกอริทึม QDiabetes-2018 ถูกนำมาใช้ภายในฟังก์ชัน QDR2018C()
ของแพ็คเกจ QDiabetes
คุณสามารถติดตั้ง QDiabetes เวอร์ชันที่วางจำหน่ายจาก CRAN ด้วย:
install.packages("QDiabetes")
หรืออาจติดตั้งเวอร์ชันการพัฒนาจาก GitHub ด้วย:
if (!{"remotes" %in%install.packages()}) install.packages("remotes")remotes::install_github("Feakster/qdiabetes")
ในการสร้างแพ็คเกจนี้ เราต้องการสร้างบางสิ่งที่เขียนง่ายและบำรุงรักษาง่าย (หลักการ KISS) มีประสิทธิภาพ แต่เข้ากันได้กับ R เวอร์ชันล่าสุดและเก่ากว่า ด้วยเหตุนี้ เราจึงเขียนแพ็คเกจนี้ให้เป็น ซื่อสัตย์ต่อภาษาหลักของ R มากที่สุดเท่าที่จะเป็นไปได้ โดยใช้การพึ่งพาน้อยที่สุด ดังนั้น คุณจะไม่พบ Rcpp ใด ๆ ที่นี่ แต่ฟังก์ชันทั้งหมดถูกเขียนด้วย ฐาน R ทั้งหมด ข้อยกเว้นเพียงอย่างเดียวคือฟังก์ชัน getTDS()
ซึ่งใช้ฟังก์ชัน median()
จากแพ็คเกจ สถิติ (แม้ว่าเราอาจเขียนสิ่งนี้ใหม่ในบางจุดก็ตาม) แพ็คเกจอื่น ๆ ทั้งหมดที่อยู่ในรายการ "คำแนะนำ" ในไฟล์คำอธิบายมีไว้เพื่อแสดงการใช้ QDiabetes ในตัวอย่างหรือบทความสั้น ๆ หรือในการทดสอบแพ็คเกจเท่านั้น ปัจจัยหลักที่จำกัดความเข้ากันได้ของแพ็คเกจกับ R เวอร์ชันเก่าคือวิธีการจัดเก็บข้อมูลที่ CRAN กำหนดให้เราต้องใช้สำหรับแบ็กเอนด์เฟรมข้อมูลของฟังก์ชัน getTDS()
เนื่องจากพื้นที่หน่วยความจำของวัตถุนี้ (200MB) เราจึงจำเป็นต้องใช้การบีบอัด XZ เพื่อลดขนาดโดยรวมของแพ็คเกจให้มากที่สุด การบีบอัด XZ ถูกนำมาใช้ครั้งแรกใน R เวอร์ชัน 2.10
ค่าเริ่มต้นหลายค่าที่ใช้ในฟังก์ชันการทำนายความเสี่ยงของแพ็คเกจนี้ได้รับเลือกให้เป็นตัวแทนของประชากรในสหราชอาณาจักร ค่าเหล่านี้มีจุดมุ่งหมายเพื่อลดจำนวนการพิมพ์ที่จำเป็นเมื่อใช้ฟังก์ชันการทำนายความเสี่ยงในลักษณะเชิงสำรวจเท่านั้น สิ่งเหล่านี้ไม่น่าจะมีประโยชน์ในการวิจัย และคุณจะต้องทราบค่าที่แน่นอนเพื่อกำหนดให้กับพารามิเตอร์ฟังก์ชันทั้งหมดเพื่อให้สามารถคาดการณ์ความเสี่ยงได้อย่างแม่นยำ ดังนั้น แม้ว่าคุณจะได้รับการคาดการณ์ความเสี่ยงจากฟังก์ชัน QDR2013()
และ QDR2018A()
ผ่านข้อกำหนดเฉพาะ sex
age
และ bmi
คุณจะถือว่าคนผิวขาวหรือไม่มีเชื้อชาติ สถานะไม่สูบบุหรี่ คะแนน Townsend deprivation เป็น 0 และไม่มีประวัติทางการแพทย์/สภาวะที่เกี่ยวข้องใดๆ และการรักษาด้วยยาร่วมด้วยโดยสมบูรณ์ ในกรณีของ QDR2013()
คุณจะต้องสมมติว่าต้องการกรอบเวลาความเสี่ยง 10 ปี
ด้านล่างนี้คือตัวอย่างง่ายๆ บางส่วนที่ใช้แพ็คเกจ QDiabetes โปรดทราบว่าเพื่อความสะดวก อาจระบุ BMI [ bmi
] หรือส่วนสูง [ ht
] และน้ำหนัก [ wt
] ในฟังก์ชันการทำนายความเสี่ยงใดๆ ในแพ็คเกจนี้
เพื่อให้ชีวิตง่ายขึ้นอีกนิด เราได้เพิ่มฟังก์ชันตัวช่วย getTDS()
ลงในแพ็คเกจ ซึ่งใช้ตารางค้นหาเพื่อรับคะแนนการกีดกันของ Townsend จากรหัสไปรษณีย์ในสหราชอาณาจักรแบบเต็มหรือบางส่วน
### โหลดเนมสเปซแพ็คเกจ ###library(QDiabetes)### การใช้งานอย่างง่าย ###QDR2013(เพศ = "หญิง", อายุ = 35, bmi = 25)# [1] 0.6324508QDR2018A(เพศ = "ชาย", อายุ = 45, bmi = 35)# [1] 9.88593QDR2018B(เพศ = "เพศหญิง", อายุ = 65, bmi = 30, fpg = 6)# [1] 18.43691QDR2018C(sex = "Male", อายุ = 25, bmi = 40, hba1c = 42)# [1] 8.226301### การใช้ฟังก์ชันตัวช่วย getTDS() ###getTDS("OX2 6GG")# [1] 2.022583QDR2013(เพศ = "หญิง" อายุ = 41, ht = 1.65, wt = 60, tds = getTDS("OX3 9DU"))# [1] 0.5004499QDR2018A(เพศ = "ชาย" อายุ = 33 , bmi = 26, tds = getTDS("OX3 7LF"))# [1] 0.6472644### การใช้เวกเตอร์ ###getTDS(c("OX3 7LF", "OX2 6NW", "OX2 6GG", "OX1 4AR"))# OX37LF OX26NW OX26GG OX14AR# -1.032394 1.640422 2.022583 2.309777QDR2013(เพศ = "เพศหญิง", อายุ = 35, bmi = seq(20, 40, 5))# 20 25 30 35 40# 0.1801226 0.6324508 1.7885233 3.8983187 6.2964702QDR2018A(sex = "Female", age = seq(25, 75, 10), bmi = 35)# 25 35 45 55 65 75# 1.085179 2.921454 5.893499 9.082108 10.713717 9.567516QDR2018B(เพศ = "ชาย", อายุ = 65, bmi = 35, fpg = 2:6)# 2 3 4 5 6# 0.9123063 0.5911511 1.8416081 7.8554831 30.8096968QDR2018C(เพศ = "เพศหญิง" อายุ = 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### การใช้เฟรมข้อมูล ###data(dat_qdr) # ข้อมูลตัวอย่างสังเคราะห์## การใช้ฐาน R ##dat_qdr[["risk"]] <- with(dat_qdr, QDR2013(sex = sex, age = age , ht = ht, wt = wt, ชาติพันธุ์ = ethn, ควัน = ควัน, tds = tds, htn = htn, cvd = cvd, ster = ster))## การใช้ dplyr ##library(dplyr)df_qdr <- as_tibble(dat_qdr)df_qdr <- df_qdr %>% กลายพันธุ์ (ความเสี่ยง = QDR2013(เพศ = เพศ,อายุ = อายุ,ht = ht,wt = wt,ethn = ethn,smoke = ควัน,tds = tds,htn = htn,cvd = cvd,ster = ster))## การใช้ data.table ##library(data.table)dt_qdr <- as.data.table(dat_qdr)dt_qdr[, ความเสี่ยง := QDR2013(sex = เพศ, อายุ = อายุ, ht = ht, wt = wt, ethn = ethn, ควัน = ควัน, tds = tds, htn = htn, cvd = CVD, สเตอร์ = สเตอร์)]
ดูปัญหาบนพื้นที่เก็บข้อมูล QDiabetes GitHub
QRISK3: การใช้งาน R ของอัลกอริธึมการทำนายความเสี่ยง QRISK3 ของ ClinRisk
โครงการนี้ได้รับทุนจากสถาบันวิจัยสุขภาพแห่งชาติ (NIHR) โรงเรียนเพื่อการวิจัยการดูแลเบื้องต้น (SPCR) [หมายเลขโครงการ: 412] ความคิดเห็นที่แสดงออกมาเป็นความคิดเห็นของผู้เขียน และไม่จำเป็นต้องเป็นความคิดเห็นของ NIHR หรือกระทรวงสาธารณสุขและการดูแลสังคม
1: ฮิปปิสลีย์-ค็อกซ์ เจ, คูปแลนด์ ซี, ร็อบสัน เจ, ชีค เอ และ บรินเดิล พี. (2009) การทำนายความเสี่ยงของโรคเบาหวานประเภท 2 ในอังกฤษและเวลส์: การได้มาในอนาคตและการตรวจสอบความถูกต้องของ QDScore บีเอ็มเจ 338 , b880
2: ฮิปปิสลีย์-ค็อกซ์ เจ & คูปแลนด์ ซี. (2017) การพัฒนาและการตรวจสอบอัลกอริธึมการทำนายความเสี่ยง QDiabetes-2018 เพื่อประเมินความเสี่ยงในอนาคตของโรคเบาหวานประเภท 2: การศึกษาตามรุ่น บีเอ็มเจ 359 , j5019