Этот проект представляет собой пакет R для расчета риска развития диабета 2 типа. В пакете используются R-реализации алгоритмов QDiabetes, которые изначально были разработаны ClinRisk с использованием языка программирования C++. Пакет QDiabetes включает QDiabetes-2013 и QDiabetes-2018, хотя более старые (и, в конечном итоге, более свежие) версии QDiabetes могут быть включены в будущие выпуски.
ClinRisk не поддерживает и не поддерживает этот код. Конечные пользователи должны рассматривать исходный код C++ как «золотой стандарт» реализации с открытым исходным кодом. Обратите внимание, что пакет QDiabetes R был создан как исследовательский инструмент только для научных целей. Пакет QDiabetes R не получил одобрения Агентства по регулированию лекарственных средств и товаров медицинского назначения (MHRA) в качестве медицинского устройства и, следовательно, не должен использоваться в рамках какой-либо индивидуальной оценки риска.
Первый алгоритм QDiabetes (в то время называвшийся «QDScore») был опубликован в 2009 году 1 . В 2011 году были внесены два существенных изменения: допустимый алгоритмом возрастной диапазон был расширен с 25–79 до 25–84, а переменная статуса курения была расширена с двух уровней [текущий курильщик и некурящий] до пяти уровней [ некурящий, бывший курильщик, легкий курильщик (1–9/день), умеренный курильщик (10–19/день) и заядлый курильщик (≥20/день)]. В 2012 году был выпущен QDiabetes-2013, а с 2013 по 2016 годы коэффициенты алгоритма периодически обновлялись, вплоть до 2017 года, когда был опубликован более обширный алгоритм QDiabets-2018 2 . В какой-то момент QDiabetes перешла от сбора данных о депривации Таунсенда из переписи населения Великобритании 2001 года к переписи населения Великобритании 2011 года, однако момент, когда это произошло, не ясен. На данный момент можно сказать наверняка, что исходный алгоритм QDScore 2009 года использовал данные Таунсенда из переписи населения Великобритании 2001 года, а QDiabetes-2018 использует данные Таунсенда из переписи населения Великобритании 2011 года. Более подробную информацию о переменных, используемых в QDiabetes-2013 и QDiabetes-2018, можно найти в следующих разделах.
Алгоритм QDiabetes-2013 состоит из двух отдельных моделей прогнозирования риска (по одной для каждого пола), в которых для расчета риска используются следующие 11 переменных:
Пол [ sex
]
Женский — "Female"
Мужской — "Male"
Возраст [ age
], в годах
Индекс массы тела [ bmi
], в кг/м 2
Этническая принадлежность [ ethn
], девять категорий:
Белый или не указано — "WhiteNA"
Индийский — "Indian"
Пакистанский — "Pakistani"
Бангладешский — "Bangladeshi"
Черный Карибский бассейн — "BlackCaribbean"
Черный африканец — "BlackAfrican"
Китайский — "Chinese"
Другой азиат — "OtherAsian"
Другая этническая группа — "Other"
Статус курения [ smoke
], пять уровней:
Некурящий — "Non"
Бывший курильщик — "Ex"
Легкий курильщик (1–9 раз в день) — "Light"
Умеренный курильщик (10–19/день) — "Moderate"
Заядлый курильщик (≥20/день) — "Heavy"
Депривация [ tds
] по шкале Таунсенда, где более высокие значения указывают на более высокий уровень депривации.
Семейный анамнез диабета у родственника первой степени родства [ fhdm
]
История лечения гипертензии [ htn
] включает диагноз гипертонии и лечение хотя бы одним гипертензивным препаратом.
Сердечно-сосудистые заболевания в анамнезе [ cvd
], определяемые как: ишемическая болезнь сердца, инсульт или транзиторная ишемическая атака.
История использования кортикостероидов [ ster
], перечисленных в главе 6.3.2 Британского национального формуляра, включая пероральные или системные инъекции: преднизолон, бетаметазон, кортизон, депомедрон, дексаметазон, дефлазакорт, эфкортезол, гидрокортизон, метилпреднизолон или триамцинолон.
Время выживания [ surv
] — период времени, в течение которого необходимо рассчитывать риск развития диабета 2 типа.
Алгоритм QDiabetes-2013 реализован в функции QDR2013()
пакета QDiabetes .
Алгоритм QDiabetes-2018 на самом деле представляет собой шесть отдельных моделей прогнозирования риска (три подмодели, разделенные по полу).
Базовая (основная) модель, «модель А», использует те же предикторы риска, что и QDiabetes-2013, с исключением переменной времени выживания (в пользу фиксированного 10-летнего окна выживания) и добавлением следующих 6 переменные:
История гестационного диабета [ gdm
] (только для женщин)
История синдрома поликистозных яичников [ pcos
] (только для женщин)
История проблем с обучаемостью [ learn
]
История шизофрении или биполярного аффективного расстройства [ psy
]
История использования статинов [ stat
]
История использования «атипичных» антипсихотиков второго поколения [ apsy
], включая: амисульприд, арипипразол, клозапин, луразидон, оланзапин, палиперидон, кветиапин, рисперидон, сертиндол и зотепин.
Модель A алгоритма QDiabetes-2018 реализована в функции QDR2018A()
пакета QDiabetes .
«Модель B» использует те же переменные, что и модель A, с добавлением:
Уровень глюкозы в плазме натощак [ fpg
], в ммоль/л
Модель B алгоритма QDiabetes-2018 реализована в функции QDR2018B()
пакета QDiabetes .
«Модель C» использует те же переменные, что и модель A, с добавлением:
Значение гликированного гемоглобина A 1c [ hba1c
], ммоль/моль
Модель 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()
из пакета stats (хотя в какой-то момент мы можем ее переписать). Все остальные пакеты, перечисленные в разделе «Предложения» в файле ОПИСАНИЕ, служат только для иллюстрации использования QDiabetes в примерах или эпизодах или при тестировании пакета. Основным фактором, ограничивающим совместимость пакета со старыми версиями R, является метод хранения данных, который CRAN требует от нас использовать для бэкэнда фрейма данных функции getTDS()
. Из-за занимаемого этим объектом объема памяти (≈200 МБ) нам необходимо использовать сжатие XZ, чтобы максимально уменьшить общий размер пакета. Сжатие XZ было впервые реализовано в R версии 2.10.
Многие значения по умолчанию, используемые в функциях прогнозирования рисков этого пакета, были выбраны так, чтобы они были репрезентативными для населения Великобритании. Эти значения предназначены только для минимизации количества ввода, необходимого при использовании функций прогнозирования рисков в исследовательском порядке. Они вряд ли будут полезны в исследовательских целях, и вам нужно будет знать точные значения, которые следует присвоить всем параметрам функции, чтобы сделать точный прогноз риска. Следовательно, хотя вы можете получить прогнозы риска с помощью функций QDR2013()
и QDR2018A()
, указав только sex
, age
и bmi
, вы будете предполагать, что вы белый или отсутствует этническая принадлежность, статус некурящего, показатель депривации Таунсенда, равный 0. и полное отсутствие какой-либо соответствующей истории болезни/состояний и сопутствующей лекарственной терапии. В случае с QDR2013()
вы также предполагаете, что желательно 10-летнее окно риска.
Ниже приведены несколько очень простых примеров использования пакета QDiabetes . Обратите внимание, что для удобства в любой из функций прогнозирования риска в этом пакете можно указать ИМТ [ bmi
] или рост [ ht
] и вес [ wt
].
Чтобы сделать жизнь немного проще, в пакет была добавлена вспомогательная функция getTDS()
, которая использует таблицу поиска для получения оценок депривации Таунсенда из полных или частичных почтовых индексов Великобритании.
### Загрузка пространства имен пакета ###library(QDiabetes)### Простое использование ###QDR2013(sex = "Female", age = 35, bmi = 25)# [1] 0.6324508QDR2018A(sex = "Male", возраст = 45, ИМТ = 35)# [1] 9.88593QDR2018B(пол = "Женский", возраст = 65, ИМТ = 30, fpg = 6)# [1] 18.43691QDR2018C(пол = "Мужской", возраст = 25, ИМТ = 40, hba1c = 42)# [1] 8.226301### Использование getTDS() Вспомогательная функция ###getTDS("OX2 6GG")# [1] 2.022583QDR2013(пол = "Женский", возраст = 41, рост = 1,65, вес = 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, ИМТ = seq(20, 40, 5))# 20 25 30 35 40# 0.1801226 0.6324508 1.7885233 3.8983187 6.2964702QDR2018A(пол = "Женский", возраст = seq(25, 75, 10), ИМТ = 35)# 25 35 45 55 65 75# 1.085179 2.921454 5.893499 9.082108 10.713717 9.567516QDR2018B(пол = «Мужской», возраст = 65, ИМТ = 35, fpg = 2:6)# 2 3 4 5 6# 0.9123063 0.5911511 1.8416081 7.8554831 30.8096968QDR2018C(пол = "Женский", возраст = 80, ИМТ = 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 = 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 = пол, возраст = возраст, ht = ht, wt = wt, ethn = ethn, дым = дым, tds = tds, htn = htn, cvd = cvd, стер = стер)]
См. раздел «Проблемы» в репозитории QDiabetes на GitHub.
QRISK3: реализация R алгоритмов прогнозирования рисков QRISK3 компании ClinRisk.
Этот проект финансировался Школой исследований первичной медицинской помощи (SPCR) Национального института медицинских исследований (NIHR) [номер проекта: 412]. Выраженные мнения принадлежат автору(ам), а не обязательно мнению NIHR или Министерства здравоохранения и социального обеспечения.
1: Хипписли-Кокс Дж., Коупленд С., Робсон Дж., Шейх А. и Бриндл П. (2009). Прогнозирование риска диабета 2 типа в Англии и Уэльсе: проспективное получение и проверка QDScore. БМЖ 338 , б880
2: Хипписли-Кокс Дж. и Коупленд К. (2017). Разработка и валидация алгоритма прогнозирования риска QDiabetes-2018 для оценки будущего риска диабета 2 типа: когортное исследование. БМЖ 359 , j5019