--- title: "getting_started" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{getting_started} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ``` ```{r setup} library(bodycompref) ``` # Using bodycompref ## Purpose _bodycompref_ aims to provide a fast, batch-compatible way to calculate different versions of reference values of CT-assessed skeletal muscle and adipose tissue. Briefly, the underlying LMSP models model the distribution of a body composition metric (e.g. cross-sectional skeletal muscle area at the T5 vertebral level) based on age. Separate models are available for females and males. For more information about the underlying research and a visual representation please visit https://bodycomp-metrics.mgh.harvard.edu If you use this package, please make sure you credit us with a citation: ```{r} citation("bodycompref") ``` ## Installation To install the package from CRAN use the usual installation: ```{r, eval=FALSE} install.packages("bodycompref") ``` Alternatively, install directly from github: ```{r, eval = FALSE} install.packages("devtools") devtools::install_github("p-mq/bodycompref") ``` Since CRAN has strict limits on file size, the reference LMSP models for the reference values are stored in their own data repositories. Install these using the following commands: ```{r, eval=FALSE} # Models for adipose tissue, ~60Mb install.packages("adiposerefdata", repos="https://p-mq.github.io/drat") # Models for skeletal muscle, ~45Mb install.packages("musclerefdata", repos="https://p-mq.github.io/drat") ``` Note that this option might require installation of the *drat* package. Alternatively, version 1.0.0 and 1.1.0 still contain all the models inside the main package are still available on [GitHub](https://github.com/p-mq/bodycompref/releases) ## Usage You can use a dedicated method to calculate each of the four possible transformations: + _reference_percentile_ calculates the percentile of a given measurement, i.e. how many out of 100 evenly distributed values would be lower + _reference_z_scores_ calculates how many standard deviations above (positive values) or below (negative values) the median a given value is + _percent_predicted_ calculates how many percent of the _expected_ (i.e. median) value a given value is, e.g. 200 for a value double that of the median + _reference_values_ reverses these transformations and returns the absolute measurement value corresponding to a given input (either a percentile or a z-score) Alternatively, you can use the wrapper _bodycomp_reference_, which wraps all four of these functions, and specify the desired return. Input parameters are mostly equal among all functions. Data inputs can be passed as vectors to use batch-processing. Naturally, vectors need to be of equal length: + metric: A character (vector), body composition metric. Available metrics are "CSMA", "SMI", "SMRA", "SMG", "CSFA", "SATI", "SATRA", "SATG", "CSVFA", "VATI", "VATRA", "VATG", "TAT", "TATI", and "VAT_SAT_ratio" + sex: A character (vector), ""Female" or "Male" + level: A character (vector), target vertebral level, options are "T5", "T8", "T10", "L3". Please note that for metrics derived from visceral adipose tissue only L3 is available. + age: An integer (vector), age. Please not that the age range is restricted to 39-79 (see citation paper for more information) + measurement: A numeric (vector), raw value of measurement _reference_values_ replaces the input 'measurement' with one of the following: + percentile: A numeric (vector), percentile to return value for. If both percentile and z_score are given, only percentile is evaluated + z_score numeric (vector), z score to return value for. If both percentile and z_score are given, only percentile is evaluated In a practical setting, batch-calculation of percent of predicted value for cross-sectional fat area of a 40-yo Female and a 60-yo male might look like this: ```{r, eval = requireNamespace("adiposerefdata", quietly = TRUE)} # Creating example data metric <- c("CSFA", "CSFA") sex <- c("Female", "Male") level <- c("T5", "T8") age <- c(40, 60) measurement <- c(109, 220) # Actual calculation bodycompref::percent_predicted(metric, sex, level, age, measurement) ```