The iglu package includes two single page reports - an ambulatory glucose profile (AGP), and an episode calculation report.
The iglu package allows one to generate an Ambulatory Glucose Profile (AGP) report - see Johnson (2019) “Utilizing the ambulatory glucose profile to standardize and implement continuous glucose monitoring in clinical practice.”. Below is an example report for Subject 1, which includes information on data collection period, time spent in standardized glycemic ranges (cutoffs of 54, 70, 180 and 250 mg/dL) displayed as a stacked bar chart, glucose variability as measured by %CV, and visualization of quantiles of the glucose profile across days together with daily glucose views.
The episode_Calculation function measures the number of hypoglycemia and hyperglycemia episodes or events.
episode_calculation(example_data_1_subject,lv2_hypo = 70, lv1_hypo = 120, lv2_hyper = 180, dur_length = 15) #> # A tibble: 5 × 6 #> id type level avg_ep_per_day avg_ep_duration avg_ep_gl #> <fct> <chr> <chr> <dbl> <dbl> <dbl> #> 1 Subject 1 hypo lv1 3.33 257. 105. #> 2 Subject 1 hypo lv2 0.0899 35 68.6 #> 3 Subject 1 hypo extended 1.71 437. 101. #> 4 Subject 1 hyper lv1 1.44 80.3 200. #> 5 Subject 1 hyper lv2 1.44 80.3 200.
In this example, example_data_1_subject contains multiple days, and episode_calculation function calculate the episodes across all days.
DataFrame object with column names “id”, “time”, and “gl”.
Users can set certain thresholds for the hypo and hyperglycemia by passing parameters, lv1_hypo, lv2_hypo, hy1_hyper, lv2_hpyer. Level 2 indicates more severe states than level 1 so the threshold value for the lv2_hypo value should be lower than hy1_hypo value, and the threshold for the lv2_hyper value should higher than lv1_hyper value.
By setting a duration length to 15 minutes (the last parameter), the function will count the number of episodes that glucose values go below or above the thresholds more than 15 minutes.
The function returns a dataframe for average number of episodes, average episode duration, and average glucose in episodes. Optionally, the function can return the input data with interpolation and episode labeling added.
Visualization of the metrics produced by the
episode_calculation() function is done with the function
epicalc_profile(). This function takes the
episode_calculation() output and displays it as a tables of
the episode metrics as well as plots that visualizes the subject’s
episodes. This function is designed to work with one subject data at a
time, and the structure of the function output is shown below.