Package: pft 1.0.1

Pat Johnson

pft: Pulmonary Function Test Interpretation per ERS/ATS 2022

Computes predicted values and lower/upper limits of normal for pulmonary function tests according to American Thoracic Society ('ATS') and European Respiratory Society ('ERS') reference standards. Supports spirometry (Global Lung Function Initiative 'GLI' 2012, Quanjer et al. (2012) <doi:10.1183/09031936.00080312>; and the race-neutral 'GLI' 2022 / 'GLI Global' equations, Bowerman et al. (2023) <doi:10.1164/rccm.202205-0963OC>), static lung volumes ('GLI' 2021, Hall et al. (2021) <doi:10.1183/13993003.00289-2020>), and the carbon monoxide transfer factor / diffusion capacity ('GLI' 2017, Stanojevic et al. (2017) <doi:10.1183/13993003.00010-2017>, including the 2020 author correction <doi:10.1183/13993003.50010-2017>). Also assigns interpretive pattern labels (Normal, Non-specific, Obstructed, Restricted, Mixed) from spirometry and lung-volume measurements following the 'ERS'/'ATS' 2022 interpretation algorithm, Stanojevic et al. (2022) <doi:10.1183/13993003.01499-2021>.

Authors:Pat Johnson [aut, cre], Scott Helgeson [aut], Zach Quicksall [ctb], Jairo Pena [ctb]

pft_1.0.1.tar.gz
pft_1.0.1.tar.gz(r-4.7-any)pft_1.0.1.tar.gz(r-4.6-any)
pft_1.0.1.tgz(r-4.6-emscripten)
manual.pdf |manual.html
DESCRIPTION |NEWS
card.svg |card.png
pft/json (API)

# Install 'pft' in R:
install.packages('pft', repos = c('https://cran.r-universe.dev', 'https://cloud.r-project.org'))

Bug tracker:https://github.com/overdodactyl/pft/issues

Datasets:

On CRAN:

Conda:

3.48 score 20 exports 10 dependencies

Last updated from:d172ea94a7. Checks:4 OK. Indexed: yes.

TargetResultTimeFilesSyslog
linux-devel-x86_64OK191
source / vignettesOK235
linux-release-x86_64OK133
wasm-releaseOK114

Exports:as_tibblepft_bdrpft_bdr_2005pft_changepft_classifypft_diffusionpft_diffusion_interpretpft_dlco_hb_correctpft_fev1qpft_goldpft_interpretpft_longpft_plotpft_prismpft_qualitypft_severitypft_severity_2005pft_spirometrypft_volume_subpatternpft_volumes

Dependencies:cligluelifecyclemagrittrpillarpkgconfigrlangtibbleutf8vctrs

Diffusion capacity (DLCO / TLCO): reference, Hb correction, interpretation
1. Reference values | 2. Hemoglobin correction | 3. Clinical sub-pattern (Hughes & Pride 2012) | 4. How VA shapes the classifier output | 5. Cohort-level diffusion summaries | See also

Last update: 2026-07-11
Started: 2026-07-11

Getting started with pft
1. Reference values from demographics alone | 2. Z-scores and percent predicted from measured values | 3. Severity grading | 4. ATS pattern classification | 5. Bronchodilator response | 6. PRISm screening | 7. Serial change | 8. The one-call workflow | 9. Visualisation | 10. Cohort analyses | 11. Long-form tidier for downstream analysis | 12. Diffusion clinical category | Citations

Last update: 2026-07-11
Started: 2026-07-11

Glossary
Measure abbreviations | Statistical terms | Patterns and clinical entities | Tests and gradings | Notation: the 4-character pattern combination | Race / ancestry categories (GLI 2012 only) | Common validation errors

Last update: 2026-07-11
Started: 2026-07-11

Input data format
Required vs. optional columns | Units and types | Using non-canonical column names | Common errors

Last update: 2026-07-11
Started: 2026-07-11

Interpretation reference: severity bands, patterns, and standards
Severity bands | Pattern decision tree | When to use 2022 vs 2005 | Worked examples | Example 1: low FEV1/FVC with low FEV1 | Example 2: low TLC with preserved KCO | Example 3: PRISm without TLC | Applying vector helpers inside a data-frame workflow | See also

Last update: 2026-07-11
Started: 2026-07-11

Longitudinal PFT analysis: change and FEV1Q
1. Two-point conditional change score: pft_change() | 2. FEV1Q in adults: pft_fev1q() | 3. Plotting trajectories | See also

Last update: 2026-07-11
Started: 2026-07-11