## ----setup, include = FALSE--------------------------------------------------- knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.width = 6, fig.height = 4 ) ## ----------------------------------------------------------------------------- library(pft) ## ----------------------------------------------------------------------------- patient <- data.frame( sex = "M", age = 45, height = 178 ) ref <- pft_spirometry(patient) ref[, c("fev1_pred_2022", "fev1_lln_2022", "fev1_uln_2022", "fvc_pred_2022", "fvc_lln_2022", "fvc_uln_2022")] ## ----------------------------------------------------------------------------- pft_volumes(patient)[, c("frc_pred", "tlc_pred", "rv_pred", "vc_pred")] pft_diffusion(patient)[, c("dlco_pred", "kco_tr_pred", "va_pred")] ## ----------------------------------------------------------------------------- patient_with_measurements <- data.frame( sex = "M", age = 45, height = 178, race = "Caucasian", fev1_measured = 2.5, fvc_measured = 3.8 ) out <- pft_spirometry(patient_with_measurements) out[, c("fev1_pred_2022", "fev1_zscore_2022", "fev1_pctpred_2022", "fvc_pred_2022", "fvc_zscore_2022", "fvc_pctpred_2022")] ## ----------------------------------------------------------------------------- pft_severity(c(0, -1.7, -3, -5)) ## ----------------------------------------------------------------------------- out$fev1_severity_2022 <- pft_severity(out$fev1_zscore_2022) out$fvc_severity_2022 <- pft_severity(out$fvc_zscore_2022) out[, c("fev1_zscore_2022", "fev1_severity_2022", "fvc_zscore_2022", "fvc_severity_2022")] ## ----------------------------------------------------------------------------- classification_input <- data.frame( fev1 = 2.5, fev1_lln_2022 = 3.0, fvc = 3.8, fvc_lln_2022 = 3.5, fev1fvc = 0.66, fev1fvc_lln_2022 = 0.70, tlc = 6.0, tlc_lln = 5.0 ) pft_classify(classification_input)[ , c("ats_classification", "ats_pattern_combination") ] ## ----------------------------------------------------------------------------- pft_bdr(pre = 2.5, post = 3.0, predicted = 4.0) ## ----------------------------------------------------------------------------- pft_prism(data.frame( fev1 = 2.0, fev1_lln_2022 = 2.5, fvc = 2.6, fvc_lln_2022 = 3.0, fev1fvc = 0.80, fev1fvc_lln_2022 = 0.70 )) ## ----------------------------------------------------------------------------- # z dropped from -0.5 to -2.5 over 1 year; r ≈ 0.7 for adult FEV1 pft_change(z1 = -0.5, z2 = -2.5, r = 0.7) ## ----------------------------------------------------------------------------- patient <- data.frame( sex = "M", age = 45, height = 178, race = "Caucasian", fev1_measured = 2.5, fvc_measured = 3.8, fev1fvc_measured = 2.5 / 3.8, tlc_measured = 6.0, fev1_pre = 2.5, fev1_post = 2.9 ) result <- pft_interpret(patient) # A high-level subset of the ~60 columns generated: result[, c("fev1_pred_2022", "fev1_zscore_2022", "fev1_severity_2022", "fvc_zscore_2022", "fvc_severity_2022", "ats_classification", "prism", "fev1_bdr_pct", "fev1_bdr_significant")] ## ----eval = requireNamespace("ggplot2", quietly = TRUE)----------------------- pft_plot(result) ## ----------------------------------------------------------------------------- cohort <- data.frame( sex = c("M", "F", "M"), age = c(45, 60, 30), height = c(178, 165, 175), race = c("Caucasian", "AfrAm", "Caucasian"), fev1_measured = c(2.5, 1.8, 4.0), fvc_measured = c(3.8, 2.4, 5.2), fev1fvc_measured = c(2.5/3.8, 1.8/2.4, 4.0/5.2), tlc_measured = c(6.0, 4.5, 6.8) ) interpreted <- pft_interpret(cohort) interpreted[, c("sex", "age", "fev1_zscore_2022", "fev1_severity_2022", "ats_classification", "prism")] ## ----------------------------------------------------------------------------- pft_long(interpreted)[1:6, ] ## ----------------------------------------------------------------------------- patient_dlco <- data.frame( sex = "M", age = 50, height = 178, race = "Caucasian", dlco_measured = 6, # low va_measured = 6, kco_tr_measured = 1.0 # also low -> Parenchymal pattern ) pft_interpret(patient_dlco)$diffusion_category ## ----------------------------------------------------------------------------- citation("pft")