Este projeto é um pacote R para calcular o risco de desenvolver diabetes tipo 2. O pacote usa implementações R dos algoritmos QDiabetes, que foram inicialmente derivados pelo ClinRisk usando a linguagem de programação C++. O pacote QDiabetes inclui QDiabetes-2013 e QDiabetes-2018, embora versões mais antigas (e eventualmente mais recentes) de QDiabetes possam ser incluídas em versões futuras.
ClinRisk não apoia ou endossa este código. Os usuários finais devem ver a fonte C++ original como a implementação de código aberto 'padrão ouro'. Observe que o pacote QDiabetes R foi criado como uma ferramenta de pesquisa apenas para fins científicos. O pacote QDiabetes R não recebeu aprovação da Agência Reguladora de Medicamentos e Produtos de Saúde (MHRA) como dispositivo médico e, portanto, não deve ser usado como parte de qualquer avaliação de risco individualizada.
O primeiro algoritmo QDiabetes (denominado “QDScore” na época) foi publicado em 2009 1 . Em 2011, duas mudanças substanciais foram feitas, em que a faixa etária permitida pelo algoritmo foi ampliada de 25-79 para 25-84, e a variável status de tabagismo foi ampliada de dois níveis [fumante atual e não fumante] para cinco níveis [ não fumante, ex-fumante, fumante leve (1–9/dia), fumante moderado (10–19/dia) e fumante inveterado (≥20/dia)]. Em 2012, foi lançado o QDiabetes-2013, e de 2013 a 2016 os coeficientes do algoritmo foram atualizados periodicamente, até 2017, quando foi publicado o algoritmo mais expansivo QDiabetes-2018 2 . Em algum momento ao longo do caminho, a QDiabetes deixou de obter dados de privação de Townsend do Censo do Reino Unido de 2001 para o Censo do Reino Unido de 2011, no entanto, o ponto em que isto ocorreu não é claro. Por enquanto, tudo o que se pode dizer com certeza é que o algoritmo QDScore original de 2009 usou dados de Townsend do Censo do Reino Unido de 2001, enquanto o QDiabetes-2018 usa dados de Townsend do Censo do Reino Unido de 2011. Mais detalhes sobre as variáveis utilizadas no QDiabetes-2013 e QDiabetes-2018 podem ser encontrados nas seções a seguir.
O algoritmo QDiabetes-2013 consiste em dois modelos de previsão de risco separados (um por género), nos quais são utilizadas as seguintes 11 variáveis para calcular o risco:
Gênero [ sex
]
Feminino - "Female"
Masculino - "Male"
Idade [ age
], em anos
Índice de massa corporal [ bmi
], em kg/m 2
Etnia [ ethn
], nove categorias:
Branco ou não declarado - "WhiteNA"
Índio - "Indian"
Paquistanês - "Pakistani"
Bangladesh - "Bangladeshi"
Caribe Negro - "BlackCaribbean"
Negro Africano - "BlackAfrican"
Chinês - "Chinese"
Outro Asiático - "OtherAsian"
Outro grupo étnico - "Other"
Status de tabagismo [ smoke
], cinco níveis:
Não fumante - "Non"
Ex-fumante - "Ex"
Fumante leve (1–9/dia) — "Light"
Fumante moderado (10–19/dia) — "Moderate"
Fumante inveterado (≥20/dia) — "Heavy"
Privação [ tds
], medida pelas pontuações de Townsend, onde valores mais elevados indicam níveis mais elevados de privação
História familiar de diabetes em parente de primeiro grau [ fhdm
]
História de hipertensão tratada [ htn
], sendo diagnóstico de hipertensão e tratamento com pelo menos um medicamento hipertensivo
História de doença cardiovascular [ cvd
], definida como: doença cardíaca isquêmica, acidente vascular cerebral ou ataque isquêmico transitório
História de uso de corticosteróides [ ster
] listados no British National Formulary capítulo 6.3.2, incluindo orais ou injeções sistêmicas: prednisolona, betametasona, cortisona, depo-medrona, dexametasona, deflazacort, efcortesol, hidrocortisona, metilprednisolona ou triancinolona
Tempo de sobrevivência [ surv
], sendo o período de tempo durante o qual o risco de desenvolver diabetes tipo 2 deve ser calculado.
O algoritmo QDiabetes-2013 é implementado dentro da função QDR2013()
do pacote QDiabetes .
O algoritmo QDiabetes-2018 consiste, na verdade, em seis modelos separados de previsão de risco (três submodelos, subdivididos por sexo).
O modelo básico (principal), 'modelo A', utiliza os mesmos preditores de risco do QDiabetes-2013, com a omissão da variável Tempo de sobrevivência (em favor de uma janela fixa de sobrevivência de 10 anos) e a adição dos seguintes 6 variáveis:
História de diabetes gestacional [ gdm
] (somente mulheres)
História de síndrome dos ovários policísticos [ pcos
] (somente mulheres)
História de dificuldades de aprendizagem [ learn
]
História de esquizofrenia ou transtorno afetivo bipolar [ psy
]
História de uso de estatinas [ stat
]
História de uso de antipsicóticos "atípicos" de segunda geração [ apsy
], incluindo: amisulprida, aripiprazol, clozapina, lurasidona, olanzapina, paliperidona, quetiapina, risperidona, sertindol e zotepina
O modelo A do algoritmo QDiabetes-2018 é implementado dentro da função QDR2018A()
do pacote QDiabetes .
'Modelo B', utiliza as mesmas variáveis do modelo A, com a adição de:
Nível de glicose plasmática em jejum [ fpg
], em mmol/L
O modelo B do algoritmo QDiabetes-2018 é implementado dentro da função QDR2018B()
do pacote QDiabetes .
'Modelo C', utiliza as mesmas variáveis do modelo A, com a adição de:
Valor de hemoglobina glicada A 1c [ hba1c
], em mmol/mol
O modelo C do algoritmo QDiabetes-2018 é implementado dentro da função QDR2018C()
do pacote QDiabetes .
Você pode instalar a versão lançada do QDiabetes do CRAN com:
install.packages("QDiabetes")
Alternativamente, a versão de desenvolvimento pode ser instalada no GitHub com:
if (!{"remotes" %in% instalado.packages()}) install.packages("remotes")remotes::install_github("Feakster/qdiabetes")
Ao construir este pacote, queríamos fazer algo que fosse simples de escrever e fácil de manter (princípios KISS), de alto desempenho, mas compatível com as versões mais recentes e antigas do R. Com isso em mente, escrevemos este pacote para ser tão fiel possível à linguagem principal do R, usando dependências mínimas. Portanto, você não encontrará nenhum Rcpp aqui. Em vez disso, todas as funções foram escritas inteiramente na base R; a única exceção é a função getTDS()
, que usa a função median()
do pacote stats (embora possamos reescrever isso em algum momento). Todos os outros pacotes listados em “Sugestões” no arquivo DESCRIÇÃO servem apenas para ilustrar o uso do QDiabetes em exemplos ou vinhetas, ou no teste do pacote. O principal fator que limita a compatibilidade do pacote com versões mais antigas do R é o método de armazenamento de dados que o CRAN exige que usemos para o backend do quadro de dados da função getTDS()
. Devido ao consumo de memória deste objeto (≈200 MB), precisamos usar a compactação XZ para reduzir o tamanho geral do pacote tanto quanto possível. A compactação XZ foi implementada pela primeira vez no R versão 2.10.
Muitos dos valores padrão utilizados nas funções de previsão de risco deste pacote foram selecionados para serem representativos de uma população do Reino Unido. Esses valores destinam-se apenas a minimizar a quantidade de digitação necessária ao usar as funções de previsão de risco de maneira exploratória. É improvável que sejam úteis em um ambiente de pesquisa, e você precisaria saber os valores exatos a serem atribuídos a todos os parâmetros de função para fazer uma previsão de risco precisa. Portanto, embora você possa obter previsões de risco das funções QDR2013()
e QDR2018A()
por meio da especificação apenas de sex
, age
e bmi
, você estaria assumindo etnia branca ou ausente, status de não fumante, uma pontuação de privação Townsend de 0 , e a completa ausência de qualquer histórico/condições médicas relevantes e terapias medicamentosas concomitantes. No caso de QDR2013()
, você também estaria assumindo que uma janela de risco de 10 anos é desejada.
Abaixo estão alguns exemplos muito simples usando o pacote QDiabetes . Observe que, por conveniência, o IMC [ bmi
] ou a altura [ ht
] e o peso [ wt
] podem ser especificados em qualquer uma das funções de previsão de risco neste pacote.
No interesse de tornar a vida um pouco mais fácil, uma função auxiliar getTDS()
foi adicionada ao pacote, que usa uma tabela de consulta para obter pontuações de privação de Townsend de códigos postais completos ou parciais do Reino Unido.
### Carregar Namespace do Pacote ###library(QDiabetes)### Uso Simples ###QDR2013(sex = "Female", idade = 35, bmi = 25)# [1] 0.6324508QDR2018A(sex = "Masculino", idade = 45, IMC = 35)# [1] 9.88593QDR2018B(sexo = "Mulher", idade = 65, IMC = 30, fpg = 6)# [1] 18.43691QDR2018C(sexo = "Masculino", idade = 25, IMC = 40, hba1c = 42)# [1] 8.226301### Fazendo Uso da função auxiliar getTDS() ###getTDS("OX2 6GG")# [1] 2.022583QDR2013(sexo = "Feminino", idade = 41, ht = 1,65, peso = 60, tds = getTDS("OX3 9DU"))# [1] 0.5004499QDR2018A(sexo = "Masculino", idade = 33 , imc = 26, tds = getTDS("OX3 7LF"))# [1] 0.6472644### Fazendo uso de vetorização ###getTDS(c("OX3 7LF", "OX2 6NW", "OX2 6GG", "OX1 4AR"))# OX37LF OX26NW OX26GG OX14AR# -1,032394 1,640422 2,022583 2,309777QDR2013 (sexo = "feminino", idade = 35, bmi = seq (20, 40, 5)) # 20 25 30 35 40 # 0,1801226 0,6324508 1,7885233 3,8983187 6.2964702QDR2018A (sexo = "Feminino", idade = seq (25, 75, 10), bmi = 35) # 25 35 45 55 65 75 # 1,085179 2,921454 5,893499 9,082108 10,713717 9.567516QDR2018B (sexo = "Masculino", idade = 65, IMC = 35, fpg = 2: 6) # 2 3 4 5 6 # 0,9123063 0,5911511 1,8416081 7,8554831 30,8096968QDR2018C (sexo = "Mulher", idade = 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### Uso de quadro de dados ###data(dat_qdr) # Dados de amostra sintética## Usando base R ##dat_qdr[["risk"]] <- with(dat_qdr, QDR2013(sex = sex, age = age , ht = ht, peso = peso, ethn = ethn, smoke = smoke, tds = tds, htn = htn, cvd = cvd, ster = ster))## Usando 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))## Usando data.table ##library(data.table)dt_qdr <- as.data.table(dat_qdr)dt_qdr[, risco:= QDR2013(sexo = sexo, idade = idade, ht = ht, peso = peso, ethn = ethn, fumaça = fumaça, tds = tds, htn = htn, cvd = cvd, ester = ester)]
Consulte Problemas no repositório GitHub do QDiabetes.
QRISK3: Uma implementação R dos algoritmos de previsão de risco QRISK3 do ClinRisk.
Este projeto foi financiado pela Escola de Pesquisa em Cuidados Primários (SPCR) do Instituto Nacional de Pesquisa em Saúde (NIHR) [número do projeto: 412]. As opiniões expressas são de responsabilidade do(s) autor(es) e não necessariamente do NIHR ou do Departamento de Saúde e Assistência Social.
1: Hippisley-Cox J, Coupland C, Robson J, Sheikh A e Brindle P. (2009). Predição do risco de diabetes tipo 2 na Inglaterra e no País de Gales: derivação prospectiva e validação do QDScore. BMJ338 , b880
2: Hippisley-Cox J e Coupland C. (2017). Desenvolvimento e validação do algoritmo de predição de risco QDiabetes-2018 para estimar o risco futuro de diabetes tipo 2: estudo de coorte. BMJ359 , j5019