calculate_isi_belfiore: Belfiore Insulin Sensitivity Index Calculation (from standard...

View source: R/calculate_isi_belfiore.R

calculate_isi_belfioreR Documentation

Belfiore Insulin Sensitivity Index Calculation (from standard 75g OGTT)

Description

This function calculates the Belfiore Insulin Sensitivity Index using glucose and insulin sampled during a standard 75g oral glucose tolerance test. Methods described in Belfiore et al..

Usage

calculate_isi_belfiore(
  time,
  glucose,
  insulin,
  time_units = "min",
  glucose_units = "mg/dl",
  insulin_units = "uU/ml"
)

Arguments

time

Vector of time values (in minutes)

glucose

Vector of glucose values (in mg/dL)

insulin

Vector of insulin values (in uU/mL)

time_units

if units are not in "min", can indicate here for unit conversion (options "min" or "hr")

glucose_units

if units are not in "mg/dl", can indicate here for unit conversion (options "mg/dl" or "mmol/l")

insulin_units

if units are not in "uU/ml", can indicate here for unit conversion (options "uU/ml" or "pmol/l")

Details

Note the formula uses a population normalization factor representing a Normal average value for Glucose x Insulin during the OGTT, which does not have a commonly accepted standard. This function returns a value that is not adjusted for any population values.

Standard timepoints are 0, 60, and 120 min. Note: insulin unit conversion may differ differ depending on assay. Insulin (pmol/l) = insulin (uU/ml)*6

'calculate_isi_belfiore()' accepts 3 separate vectors for time, glucose, insulin.

Value

Insulin Sensitivity-Gutt (mL/kg/min) as a single value

Examples

# individual objects for each item
time=c(0, 30, 60, 90, 120)              # minutes
glucose=c(93, 129, 178, 164, 97)        # mg/dL
insulin=c(12.8, 30.7, 68.5, 74.1, 44.0) # uU/mL
calculate_isi_belfiore(time, glucose, insulin)

# handling data stored in a dataframe
ogtt1 <- data.frame(time=c(0, 30, 60, 90, 120),              # minutes
                    glucose=c(93, 129, 178, 164, 97),        # mg/dL
                    insulin=c(12.8, 30.7, 68.5, 74.1, 44.0)) # uU/mL
calculate_isi_belfiore(ogtt1$time, ogtt1$glucose, ogtt1$insulin)

# example from Gutch et al 2015
ogtt2 <- data.frame(time=c(0, 30, 60, 90, 120),              # minutes
                    glucose=c(100, 160, 160, 160, 140),      # mg/dL
                    insulin=c(5, 10, 10, 10, 5))             # uU/mL
calculate_isi_belfiore(ogtt2$time, ogtt2$glucose, ogtt2$insulin)
calculate_isi_matsuda(ogtt2$time, ogtt2$glucose, ogtt2$insulin)

# Convert units
ogtt5 <- data.frame(time = c(0,0.5,1,1.5,2), # time in hours
                    glucose = c(5.167, 7.167, 9.889, 9.111, 5.3889), # glucose in mmol/l
                    insulin = c(76.8,184.2,411,444.6,264)) # insulin in pmol/l

calculate_isi_belfiore(time =  ogtt5$time,
                        glucose = ogtt5$glucose,
                        insulin = ogtt5$insulin,
                        time_units = "hr", insulin_units = "pmol/l", glucose_units = "mmol/l")

JMLuther/tabletools documentation built on April 14, 2025, 3:09 a.m.