이 프로젝트는 제2형 당뇨병 발병 위험을 계산하기 위한 R 패키지입니다. 패키지는 처음에 C++ 프로그래밍 언어를 사용하여 ClinRisk에서 파생된 QDiabetes 알고리즘의 R 구현을 사용합니다. QDiabetes 패키지는 QDiabetes-2013 및 QDiabetes-2018로 구성되지만, QDiabetes의 이전 버전(최종 최신 버전)이 향후 릴리스에 포함될 수 있습니다.
ClinRisk는 이 코드 승인을 지원하지 않습니다. 최종 사용자는 원본 C++ 소스를 '최고의 표준' 오픈 소스 구현으로 보아야 합니다. QDiabetes R 패키지는 과학적 목적으로만 연구 도구로 만들어졌습니다. QDiabetes R 패키지는 MHRA(의약 및 건강 관리 제품 규제 기관)에서 의료 기기로 승인을 받지 않았으므로 개별 위험 평가의 일부로 사용해서는 안 됩니다.
최초의 QDiabetes 알고리즘(당시 "QDScore"라고 함)은 2009년에 발표되었습니다 1 . 2011년에는 알고리즘이 허용하는 연령 범위를 25~79세에서 25~84세로 확대하고, 흡연 상태 변수를 2단계(현재 흡연자와 비흡연자)에서 5단계로 확장하는 등 두 가지 실질적인 변화가 있었습니다. 비흡연자, 이전 흡연자, 가벼운 흡연자(1~9/일), 중간 흡연자(10~19/일) 및 심한 흡연자(≥20/일)]. 2012년에 QDiabetes-2013이 출시되었으며, 2013년부터 2016년까지 알고리즘 계수가 주기적으로 업데이트되어 보다 광범위한 QDiabetes-2018 알고리즘이 출시된 2017년까지 업데이트되었습니다 2 . 어느 시점에서 QDiabetes는 2001년의 타운센드 결핍 데이터 소스에서 2011년 영국 인구 조사로 전환했지만, 이것이 발생한 시점은 명확하지 않습니다. 현재로서 확실히 말할 수 있는 것은 원래 2009년 QDScore 알고리즘이 2001년 영국 인구 조사의 타운센드 데이터를 사용한 반면, QDiabetes-2018은 2011년 영국 인구 조사의 타운센드 데이터를 사용했다는 것입니다. QDiabetes-2013 및 QDiabetes-2018에 사용된 변수에 대한 자세한 내용은 다음 섹션에서 확인할 수 있습니다.
QDiabetes-2013 알고리즘은 두 개의 개별 위험 예측 모델(성별당 하나씩)로 구성되며, 다음 11개 변수를 사용하여 위험을 계산합니다.
성별 [ sex
]
여성 — "Female"
남성 — "Male"
나이 [ age
], 년 단위
체질량 지수 [ bmi
], kg/m 2
인종 [ ethn
], 9개 카테고리:
흰색인지 여부는 명시되지 않음 — "WhiteNA"
인도인 — "Indian"
파키스탄어 - "Pakistani"
방글라데시 — "Bangladeshi"
블랙 캐리비안 - "BlackCaribbean"
흑인 아프리카 — "BlackAfrican"
중국어 — "Chinese"
기타 아시아인 — "OtherAsian"
기타 인종 그룹 — "Other"
흡연 상태 [ smoke
], 5개 수준:
비흡연자 - "Non"
전 흡연자 — "Ex"
가벼운 흡연자(1~9/일) — "Light"
보통 흡연자(10~19/일) — "Moderate"
심한 흡연자(≥20/일) - "Heavy"
박탈 [ tds
], 타운센드 점수로 측정. 값이 높을수록 박탈 수준이 높음을 나타냄
1촌 친척의 당뇨병 가족력 [ fhdm
]
고혈압 치료 병력 [ htn
], 고혈압 진단 및 적어도 하나의 고혈압 약물 치료
허혈성 심장 질환, 뇌졸중 또는 일과성 허혈 발작으로 정의되는 심혈관 질환 [ cvd
] 의 병력
영국 국립 규정집 6.3.2장에 나열된 코르티코스테로이드 사용 이력 ster
프레드니솔론, 베타메타손, 코르티손, 데포메드론, 덱사메타손, 데플라자코르트, 에프코르테솔, 하이드로코르티손, 메틸프레드니솔론 또는 트리암시놀론)
생존 시간 [ surv
]은 제2형 당뇨병 발병 위험이 계산되는 기간입니다.
QDiabetes-2013 알고리즘은 QDiabetes 패키지의 QDR2013()
함수 내에서 구현됩니다.
QDiabetes-2018 알고리즘은 실제로 6개의 개별 위험 예측 모델(3개의 하위 모델, 성별로 세분화됨)입니다.
기본(핵심) 모델인 '모델 A'는 QDiabetes-2013과 동일한 위험 예측 변수를 사용하며 생존 시간 변수는 생략되고(고정된 10년 생존 창을 선호) 다음 6가지가 추가됩니다. 변수:
임신성 당뇨병 병력 [ gdm
] (여성만 해당)
다낭성 난소 증후군의 병력 [ pcos
] (여성만 해당)
학습장애의 역사 [ learn
]
정신분열증 또는 양극성 정서 장애의 병력 [ psy
]
스타틴 사용 이력 [ stat
]
아미설프라이드, 아리피프라졸, 클로자핀, 루라시돈, 올란자핀, 팔리페리돈, 퀘티아핀, 리스페리돈, 세르틴돌, 조테핀을 포함한 2세대 "비정형" 항정신병약물 apsy
) 사용 이력
QDiabetes-2018 알고리즘의 모델 A는 QDiabetes 패키지의 QDR2018A()
함수 내에서 구현됩니다.
'모델 B'는 다음을 추가하여 모델 A와 동일한 변수를 사용합니다.
공복 혈장 포도당 수준 [ fpg
](mmol/L 단위)
QDiabetes-2018 알고리즘의 모델 B는 QDiabetes 패키지의 QDR2018B()
함수 내에서 구현됩니다.
'모델 C'는 다음을 추가하여 모델 A와 동일한 변수를 사용합니다.
당화혈색소 A 1c 값 [ hba1c
], mmol/mol 단위
QDiabetes-2018 알고리즘의 모델 C는 QDiabetes 패키지의 QDR2018C()
함수 내에서 구현됩니다.
다음을 사용하여 CRAN에서 출시된 QDiabetes 버전을 설치할 수 있습니다.
install.packages("QDiabetes")
또는 다음을 사용하여 GitHub에서 개발 버전을 설치할 수 있습니다.
if (!{"remotes" %in% install.packages()}) install.packages("remotes")remotes::install_github("Feakster/qdiabetes")
이 패키지를 구축하면서 우리는 작성이 간단하고 유지 관리가 쉽고(KISS 원칙) 성능이 뛰어나지만 R의 최신 및 이전 버전과 호환되는 패키지를 만들고 싶었습니다. 이를 염두에 두고 이 패키지를 다음과 같이 작성했습니다. 최소한의 종속성을 사용하여 가능한 한 R의 핵심 언어에 충실합니다. 따라서 여기서는 Rcpp를 찾을 수 없습니다. 대신, 모든 함수는 완전히 기본 R로 작성되었습니다. 유일한 예외는 stats 패키지의 median()
함수를 사용하는 getTDS()
함수입니다(비록 어느 시점에서 이것을 다시 작성할 수는 있지만). 설명 파일의 "제안" 아래에 나열된 다른 모든 패키지는 예제나 삽화 또는 패키지 테스트에서 QDiabetes 의 사용을 설명하기 위한 용도로만 사용됩니다. 이전 버전의 R과 패키지의 호환성을 제한하는 주요 요인은 CRAN이 getTDS()
함수의 데이터 프레임 백엔드에 사용하도록 요구하는 데이터 저장 방법입니다. 이 개체의 메모리 공간(약 200MB)으로 인해 XZ 압축을 사용하여 패키지의 전체 크기를 최대한 줄여야 합니다. XZ 압축은 R 버전 2.10에서 처음 구현되었습니다.
이 패키지의 위험 예측 기능에 사용된 기본값 중 다수는 영국 인구를 대표하도록 선택되었습니다. 이러한 값은 탐색적 방식으로 위험 예측 기능을 사용할 때 필요한 입력 양을 최소화하기 위한 것입니다. 연구 환경에서는 유용하지 않을 수 있으며, 정확한 위험 예측을 위해서는 모든 기능 매개변수에 할당할 정확한 값을 알아야 합니다. 따라서 sex
, age
및 bmi
만 지정하여 QDR2013()
및 QDR2018A()
함수에서 위험 예측을 얻을 수 있지만 백인 또는 누락된 민족, 비흡연 상태, 타운센드 박탈 점수 0을 가정하게 됩니다. 및 관련된 병력/상태 및 병용 약물 요법이 전혀 없음. QDR2013()
의 경우 10년의 위험 기간이 바람직하다고 가정할 수도 있습니다.
다음은 QDiabetes 패키지를 사용하는 몇 가지 매우 간단한 예입니다. 편의상 BMI [ bmi
] 또는 키 [ ht
] 및 체중 [ wt
]가 이 패키지의 위험 예측 함수에 지정될 수 있습니다.
삶을 좀 더 쉽게 만들기 위해 조회 테이블을 사용하여 전체 또는 부분 영국 우편번호에서 타운센드 박탈 점수를 얻는 getTDS()
도우미 함수가 패키지에 추가되었습니다.
### 패키지 네임스페이스 로드 ###library(QDiabetes)### 단순 사용법 ###QDR2013(sex = "여성", age = 35, bmi = 25)# [1] 0.6324508QDR2018A(sex = "Male", 나이 = 45, BMI = 35)# [1] 9.88593QDR2018B(성별 = "여성", 연령 = 65, bmi = 30, fpg = 6)# [1] 18.43691QDR2018C(성별 = "남성", 연령 = 25, bmi = 40, hba1c = 42)# [1] 8.226301### 활용하기 getTDS() 도우미 함수 ###getTDS("OX2 6GG")# [1] 2.022583QDR2013(sex = "여성", age = 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(성별 = "여성", 나이 = 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 = 나이, ht = ht, wt = wt, ethn = ethn, smoke = smoke, tds = tds, htn = htn, cvd = cvd, ster = ster))## dplyr 사용 ##library(dplyr)df_qdr <- as_tibble(dat_qdr)df_qdr < - df_qdr %>% mutate(risk = QDR2013(sex = sex,age = age,ht = ht,wt = wt,ethn = ethn,smoke = 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 = 성별, age = 나이, ht = ht, wt = wt, ethn = ethn, smoke = smoke, tds = tds, htn = htn, cvd = cvd, ster = ster)]
QDiabetes GitHub 저장소의 문제를 참조하세요.
QRISK3: ClinRisk의 QRISK3 위험 예측 알고리즘을 R로 구현한 것입니다.
이 프로젝트는 국립 보건 연구소(NIHR) 일차 의료 연구 학교(SPCR)[프로젝트 번호: 412]의 자금 지원을 받았습니다. 표현된 견해는 저자의 견해이며 반드시 NIHR이나 보건사회복지부의 견해는 아닙니다.
1: Hippisley-Cox J, Coupland C, Robson J, Sheikh A & Brindle P. (2009). 잉글랜드와 웨일스의 제2형 당뇨병 위험 예측: QDScore의 전향적 도출 및 검증. BMJ 338 , b880
2: Hippisley-Cox J & Coupland C.(2017). 제2형 당뇨병의 미래 위험을 추정하기 위한 QDiabetes-2018 위험 예측 알고리즘의 개발 및 검증: 코호트 연구. BMJ 359 , j5019