Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE
MIT
LICENSE.md
NotificationsYou must be signed in to change notification settings

lshpaner/kfre_r

Repository files navigation

CRAN statusCRAN checksDOI

Table of Contents

KFRE Risk Prediction Tools (R)

kfre is an R implementation of helpers around the Kidney Failure Risk Equation (KFRE), including:

  • Vectorized and per-person KFRE predictions (4-, 6-, and 8-variable models; 2- and 5-year horizons)
  • Convenience wrappers to add KFRE risk columns to a data.frame
  • uPCR → uACR conversion utility
  • CKD stage labeling utilities
  • Evaluation helpers (AUC-ROC, Average Precision, Brier, etc.)
  • Publication-style ROC and Precision–Recall plots

Installation

install.packages("kfre")

GitHub (Development)

# install.packages("remotes")remotes::install_github("lshpaner/kfre_r")

Dependencies

Core imports:R6,stats,ggplot2,pROC,precrecSuggested for tests/vignettes:testthat (>= 3.0.0),knitr,rmarkdown

Quick Start

1. Toy data

toy<-data.frame(age= c(55,72),sex_txt= c("male","female"),eGFR= c(45,28),uACR= c(120,800),dm= c(1,0),htn= c(1,1),albumin= c(4.2,3.4),phosphorous= c(3.3,4.6),bicarbonate= c(24,22),calcium= c(9.1,9.8),stringsAsFactors=FALSE)cols<-list(age="age",sex="sex_txt",eGFR="eGFR",uACR="uACR",dm="dm",htn="htn",albumin="albumin",phosphorous="phosphorous",bicarbonate="bicarbonate",calcium="calcium")

2. Vectorized predictions withRiskPredictor

rp<-RiskPredictor$new(df=toy,columns=cols)# 4-variable KFRE (2-year), North America constantsp4_2y<-rp$predict_kfre(years=2,is_north_american=TRUE,use_extra_vars=FALSE,num_vars=4)# 6-variable KFRE (5-year)p6_5y<-rp$predict_kfre(years=5,is_north_american=TRUE,use_extra_vars=TRUE,num_vars=6)# 8-variable KFRE (2-year)p8_2y<-rp$predict_kfre(years=2,is_north_american=TRUE,use_extra_vars=TRUE,num_vars=8)p4_2yp6_5yp8_2y

3. Single-person predictions

# Male, 55yo, 2-year risk (4-var)rp$kfre_person(age=55,is_male=TRUE,eGFR=45,uACR=120,is_north_american=TRUE,years=2)# Female, 72yo, 5-year risk (6-var)rp$kfre_person(age=72,is_male=FALSE,eGFR=28,uACR=800,is_north_american=TRUE,years=5,dm=0,htn=1)# Female, 72yo, 2-year risk (8-var)rp$kfre_person(age=72,is_male=FALSE,eGFR=28,uACR=800,is_north_american=TRUE,years=2,albumin=3.4,phosphorous=4.6,bicarbonate=22,calcium=9.8)

4. Add KFRE risk columns to adata.frame

toy_kfre<- add_kfre_risk_col(df=toy,age_col="age",sex_col="sex_txt",eGFR_col="eGFR",uACR_col="uACR",dm_col="dm",htn_col="htn",albumin_col="albumin",phosphorous_col="phosphorous",bicarbonate_col="bicarbonate",calcium_col="calcium",num_vars= c(4,6,8),years= c(2,5),is_north_american=TRUE,copy=TRUE)names(toy_kfre)head(toy_kfre)# Adds:# kfre_4var_2year, kfre_4var_5year,# kfre_6var_2year, kfre_6var_5year,# kfre_8var_2year, kfre_8var_5year

5. CKD staging & ESRD outcome labels

# ESRD outcome within 2 years (duration is in days → converted to years)out<-data.frame(eGFR= c(95,25),ESRD_flag= c(1,1),followup_days= c(200,1000))out<- class_esrd_outcome(df=out,col="ESRD_flag",years=2,duration_col="followup_days",prefix="esrd",create_years_col=TRUE)# Adds: ESRD_duration_years and esrd_2_year_outcome# CKD stage labelsout<- class_ckd_stages(df=out,egfr_col="eGFR",stage_col="stage",combined_stage_col="stage_combined")table(out$stage)table(out$stage_combined)

6. uPCR → uACR conversion

df_pcr<-data.frame(sex= c("female","male","female"),dm= c(1,0,1),htn= c(1,1,0),pcr= c(150,600,50))acr<- upcr_uacr(df_pcr,sex_col="sex",diabetes_col="dm",hypertension_col="htn",upcr_col="pcr",female_str="female")acr

7. Evaluation metrics (AUC-ROC, AP, Brier…)

Your data.frame must include:

  • Outcome columns named like*_2_year_outcome /*_5_year_outcome
  • Prediction columns namedkfre_{n}var_{year}year, e.g.kfre_4var_2year
met<- eval_kfre_metrics(df=toy_kfre,# must contain truth + prediction columnsn_var_list= c(4,6,8),outcome_years= c(2,5),decimal_places=4)met# Rows: Metrics; Cols: "{2_year|5_year}_{4|6|8}_var_kfre"

8. Plot ROC / PR curves

# Basic: compute & plot both ROC and PR (no files written)plot_kfre_metrics(df=toy_kfre,num_vars= c(4,6,8),plot_type="all_plots",mode="both",# compute + plotshow_years= c(2,5))# Save to disk (PNG/SVG)plot_kfre_metrics(df=toy_kfre,num_vars= c(4,6),plot_type="auc_roc",mode="both",show_years= c(2,5),save_plots=TRUE,image_path_png="plots",image_prefix="kfre")

Running Tests

If you’ve cloned the repo:

library(devtools)devtools::load_all(".")devtools::test()

You should see unit tests for both the end-to-end flow and the evaluation utilities.

API surface (exports)

  • RiskPredictor (R6)
    • $predict_kfre(years, is_north_american, use_extra_vars, num_vars)
    • $kfre_person(...)
  • Wrappers:
    • predict_kfre(df, columns, years, is_north_american, use_extra_vars, num_vars)
    • add_kfre_risk_col(...)
  • Utilities:
  • upcr_uacr(...)
  • perform_conversions(...)
  • class_esrd_outcome(...)
  • class_ckd_stages(...)
  • eval_kfre_metrics(...)
  • plot_kfre_metrics(...)

Notes on parity with Python

The R implementations are designed to mirror the Python versions (naming, shapes,and expected columns). Where packages differ (e.g., ROC/PR computation), we usepROC andprecrec to maintain metric parity.

References

  • Tangri N, Grams ME, Levey AS, et al. (2016). Multinational assessment ofaccuracy of equations for predicting risk of kidney failure: A meta-analysis.JAMA, 315(2), 164–174. doi:10.1001/jama.2015.18202

  • Tangri N, Stevens LA, Griffith J, et al. (2011). A predictive model forprogression of chronic kidney disease to kidney failure. JAMA, 305(15),1553–1559. doi:10.1001/jama.2011.451

  • Sumida K, Nadkarni GN, Grams ME, et al. (2020). Conversion of urineprotein-creatinine ratio or urine dipstick protein to urine albumin-creatinineratio for use in CKD screening and prognosis. Ann Intern Med, 173(6), 426–435.doi:10.7326/M20-0529

License

kfre is distributed under the MIT License. SeeLICENSE for more information.

About

Resources

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE
MIT
LICENSE.md

Stars

Watchers

Forks

Packages

No packages published

Languages


[8]ページ先頭

©2009-2025 Movatter.jp