Predicting blood sugars while exercising.

I recently posted about how my experimenting with running using AAPS was progressing. I observed that under certain conditions there was a significant lag between the capillary blood and CGM readings at about the 30 minute mark. This sparked some interest in wanting to know if I could predict what my capillary blood sugar could be using machine learning. I’m still not sure if its entirely possible yet, but I am having fun trying, and I have learned a lot in the process. I’m currently working on the script that will allow me to overlay a lot more AAPS data during a workout, including predictions.

I am getting a lot better at managing blood sugars as I noticed the last 14 exercises I was in range (3.9-7.8) 100% of the time.

Python script data capture

I have changed my approach slightly towards eating before exercise and have piggy backed off some research done by Gary Scheiner to create a spreadsheet that estimates the carbs required and effort for a run.

https://wordpress.com/post/t1daaps.wordpress.com/482

AAPS – Run Testing 2022

I decided to try using an automation to lower insulin levels and raise my glucose target before doing cardio. This allows AAPS to start this process at 05:30am on my days of choice so that my body is ready to exercise safely and with less need to consume carbohydrates. In my limited testing the process is working well, with some slight tweaking for testing parameters needed. NOTE: I only added half the amount of carbs I consumed to the APS for tracking. This is to avoid overcorrecting by the algorithm.

Expectations

I am trying to find the ideal conditions to exercise where I can experience moderate blood glucose fluctuations and not be required to consume large amounts of carbohydrates to keep me exercising safely. In the past on MDI I used to exercise fasted with only basal on board, which allowed me to stay in range for about 40 minutes before needing carbs. I am hoping to achieve this same amount using a pump. In past experiments I was able to achieve similar results during exercise by significantly reducing basal rates but I found that post exercise I struggled with higher than usual blood glucose readings for a few hours due to lack of insulin in my body.

Automations

Blood Glucose vs. CGM

The CGM results differed during exercise an average of 25% from blood readings. This made me decide to start some research of my own into using machine learning to try and estimate my blood glucose during exercise.

Results / observations

The automation route works well if you plan your exercise far enough ahead. The next experiment I will drop the profile percentage to 60% and observe. I noted an average of about 25% difference between the results the CGM and the finger pick tests. I was however able to keep my readings in range 100% of the time using 34g of carbs for the duration of the 50 minute experiment.

Capture from Nightscout

Video

I created a video using data from my Garmin Forerunner 245 and AAPS to track the experiment. In this video I track blood glucose, insulin, carbs, basal, distance, heart rate and cadence. I noted that the algorithm the Garmin uses to determine distance does not work well while walking and didn’t register any distance until I started lightly jogging.

Capture from my GoPro during exercise

Mountain biking with Android APS (AAPS)

Preparation

In preparation for my cycle I started an automation to prepare my body for the impending exercise. This automation reduces my basal insulin ( as well as scale the rest of my management metrics) by 30% and set a temporary target (TT) of 7mmol/l. AAPS will not allow me to automate a profile % shift of more than 30%, so I reduced the profile a further 5% manually in AAPS an hour before the ride.

Exercise Metrics:

Garmin exercise stats

Blood Glucose:

Interestingly, AAPS stopped basal for a long period and allowed the IOB to runs its course.

Python script data
Garmin Connect IQ graphs (xDrip+/Spike/Nightscout Datafield)
Garmin Connect IQ data (xDrip+/Spike/Nightscout Datafield)

Outcome:

My blood glucose held quite steady despite a mixture of anaerobic and aerobic levels of activity and so I didn’t need to consume any carbohydrates. Hopefully future attempts are as successful as this one.

Video:

Loop – Day 73 – 2021 Summary

It’s been 73 days since I started looping. I have had a difficult December with a sprained wrist from a mountain bike accident and myself, my daughter and my wife had gastro which resulted in very little sleep and some abnormal readings. In fact I am still having abnormal sensitivity to insulin, resulting in frequent lows or blood sugar swings. I also had two failed Dexcom sensors and moved to the code calibration method which resulted in two days of false high CGM readings in comparison to my blood glucose readings. I’ll add the CGM stats once I am finished the analysis. Hello 2022!

Blood Glucose Stats

Blood glucose stats

A marginal improvement in December over the fist two months, but I still have a lot of work to do to get to my goal of a 5.5% A1C. Interestingly enough, after the gastro I am now 40% more sensitive to insulin, so hopefully now that I am aware of this I can get back to better blood glucose readings. I will also need to run in open-loop when changing Dexcom sensors to avoid all the issues I was previously having with false high blood glucose readings causing my Loop to micro-bolus incorrectly or increase my basal in error. Still not sure how I will handle protein in open-loop.

Exercise Stats 2021-2015

Total distance exercised
Total time spend exercising

I more than doubled (55%) the amount of hours I spent exercising in 2021, mostly as I was working from home which allowed me to spend more time exercising. As my A1C lowered, my fitness levels improved dramatically.

A diabetic (T1D) guide to running/cycling.

Disclaimer: The information contained within this blog post are my thoughts and do not constitute medical advice. Please consult your medical team before making any changes to your diet or program.

This guide is based on past experience, information obtained from other diabetics and input from a multitude of websites.

I have broken this guide up into 3 sections;

  1. Pre-exercise (preparation)
  2. Exercise
  3. Post-exercise

Step 1: Pre-exercise

PUMP: BASAL: If you are on a pump, this usually involves setting a temp basal around an hour prior to exercise, but a multitude of factors will govern the % basal rate and how early you will start it. It seems a general rule of thumb is 30-70% depending on the intensity and duration of the exercise, the longer you exercise the more sensitive to insulin you will become. The faster (think Fiasp) your insulin responds to change, the shorter the waiting period prior to starting exercise could be. Short acting Insulin has a DIA (duration of insulin action) that usually lasts several hours (3-7ish), and any insulin you may have on-board (circulating within your body) will become more potent as you exercise, thus increasing the risk of a severe hypo.

MDI: BASAL: For most exercise under 40 minutes I would keep my basal the same and ensure I exercised in the morning, reducing the risk of a hypo by being fasted and by exercising during a period in time where we are more resistant to insulin. Of course you can exercise at any time you choose, but you need to be aware that if you did not adjust your basal according to your length and vigour of activity you are more likely to experience a hypo.

Snack and snack timing: If you exercise in the morning I prefer to exercise fasted provided the activity is under 40 minutes in duration. If the activity is over 40 minutes then I will have a small snack (under 15g of carbs) just before I set out. The carbohydrate requirements for individuals will differ according to your body composition (ie. smaller people require less fuel to achieve the same results as larger people would, or the more muscle you have the more fuel you will need). If I am exercising more than two hours after I woke up, I will require a snack to sustain me for the duration of the activity. I have found that 20-30 minutes after my snack seems to be my ideal time (snacks with higher protein / fat will digest more slowly than high carb snacks) to begin exercise. Its very much a process of monitoring and evaluating until you find what works for you.

Hypo treatments: Glucose, dextrose or sucrose in liquid form is by far the quickest and most precise way to treat an impending hypo. Its important to note that liquid is absorbed much faster than solid foods according to the Manhattan gastroenterology website. Ingesting solids foods during activity can result in post-exercise hyperglycaemia as the foods begin to digest soon after exercise stops.

“Exercise and digestion can be mutually exclusive. When you exercise, your body isn’t using its energy for digestion. Instead, it slows any digestion currently taking place so it can divert as much blood as it can to feed your muscles and your lungs.”

https://www.manhattangastroenterology.com/exercise-affects-digestion/
I use a Camelbak Podium bum bag to store my pump, glucose gels and Powerade.

Other items to consider:

  • Cannula placement; If the cannula is in the muscle group you plan to train, you may need to reduce basal further.
  • Sleep; If you are sleep deprived you may require more insulin.
  • Wake up period; If you are training within two hours of waking up, you may be more insulin resistant and require less pre-training fuel.
  • Pump suspension; If you suspended your pump you will need to consider the period of time that your pump is suspended as you will have missed that basal insulin.

Step 2: Exercise

In my opinion, the most important things to do whilst exercising is to monitor and respond as required. I take my blood sugar at 15 minute internals when doing cardio ( I have a CGM attached to me at all times, but I prefer to use blood as its more accurate), which as you become more comfortable and attuned to your body, you could probably push to between 30 and 60 minutes to match testing to glycogen store depletion.

The average non-diabetic athlete has between 350-500g of stored glycogen when fully stocked (think high carb diets, the body stores less on lower carb diets) and up and 50% less glycogen just after waking up. These glycogen stores get fully depleted at around 90 minutes or 45 minutes if you exercise in the mornings . A Medivizor study suggested that diabetics have up to 21% less glycogen stores than the average person. If we consider the aforementioned statement regarding diabetics reduced capacity to store glycogen we realise that early morning exercise could lead to glycogen stores being depleted in as little as 35 minutes for the athletic individual, earlier if you are on a low carb diet or are untrained as your body uses glycogen less efficiently.

The Portland clinic advises that;

“During the first 15 minutes of exercise most of the
sugar for fuel comes from either the blood stream
or the muscle glycogen which is converted back to
sugar. After 15 minutes of exercise, however, the
fuel starts to come more from the glycogen stored
in the liver. After 30 minutes of exercise, the body
begins to get more of its energy from the free fatty
acids”.

http://www.theportlandclinic.com/wp-content/uploads/2014/05/7807.pdf?1a1979

My personal experience seems to correlate to these findings and that’s why I test at 15 minute intervals, especially when starting a new routine, or restarting an old one. Also consider that you need insulin to utilise glycogen.

Effort levels can also influence blood glucose. Exercising at higher intensity levels can increase blood glucose due to stress hormones being released.

I use the formula 220-age to calculate my maximum heartrate. Then I can calculate effort from the below chart. I can then use this information to keep an eye on my heart rate during exercise and adjust my training effort as required. I also use this information to adjust my subsequent insulin doses as I am more sensitive to insulin an hour or two after exercise ( or directly post exercise when on MDI)

Starting Insulin recommendations in-line with activity durations

An example of how to use the table above would be if I had exercised at a moderate pace for 40 minutes, I could then experiment by decreasing my insulin dose by 67% and adjusting further if needed. Its easy to do this in Loop with temporary over-rides.

Temporary over-ride in Loop

An example of what I do to prepare for a run with Android Artificial Pancreas System (AAPS).

Step 3: Post Exercise

PUMP: I am not experiencing the sudden insulin sensitivity increase I did while on MDI. I believe this to be due to the fact that on MDI I cant reduce basal, but with the pump I can decrease basal as required. Be careful not to decrease your basal too much as your blood sugar will increase due to an inability to utilise glucose effectively. If you are using Loop then you could start a temporary over-ride to adjust insulin delivery for the remainder of the day. AAPS is capable of adjusting insulin requirements using a function called autosens which monitors deviations in insulin requirement. Below is a chart of insulin sensitivity post exercise grouped by exercise type.

MDI: I would generally be around 40% more sensitive to insulin immediately after a moderate run or cycle. This reason the onset of the sensitivity seems more rapid is due to the already circulating basal insulin now being super-charged. I found that exercising on MDI lacks some of the flexibility that pumps users have to adjust training duration or time period around your basal dose. On MDI I would the Spike app to adjust my meal time doses according according to the duration and intensity of the exercise. Spike is a very handy app for Apple MDI users to use as it can track meals, insulin and exercise. As well as have the functionality to calculate and adjust adjust insulin doses based on carbs and exercise input.

Screen capture of the the Spike-app.

NOTE: The Spike app is still available, it just requires a developer license and a significant time investment to install as its not available on test flight or the Apple store.

Day 57 – Loop – Gym and December progress

I am finally starting to return back to normality after starting to pump/Loop. Its taken a few weeks of focusing my efforts on running to gain the experience I wanted to acquire in terms of keeping myself mostly in range while I exercise, so I feel like its time to shift my focus towards cycling and gym again.

Gym (resistance training)

The first gym session back was mostly good, the only issue being Dexcom not registering a pretty severe (2.9 mmol/l) hypo. My body would usually register a hypo way in advance but I was pretty tired from the exercise.

Muscles groups trained: Biceps / Triceps

A gruelling 40 minutes with 5.2 Tons of weight being moved (at least according to Garmin’s calculation from me inputting exercise name and weight), which as expected is less than my last arm session where I moved 5.6 Tons. I’m fairly impressed I did as much as I did, as I was expecting much less.

December blood glucose stats

December 2021 Blood glucose stats are looking better.

My December update is quite pleasing. I am almost at 90% in range (3.9 – 7.8) and I am eating about 30% more carbs than I ate previously to achieve these numbers. I am not sure if I mentioned this before but I did a 30 day muscle building challenge about 3 months ago and one of the difficulties I experienced was eating more calories (to gain muscle) and staying in range. I am very happy with the 5.5% A1C and the standard deviation of 1.4. I would prefer to be 1 or under but with the introduction of more carbs that’s rather difficult to achieve at the moment.

I also wake up in range a lot more frequently these days. I am noticing a few more lows creeping in, perhaps a result of me needing to retune the Loop with the introduction of more frequent exercise?

Recently I feel as though my Dexcom is letting me down. I had two sensors fail back to back, which resulted me being without a CGM for a few days. Also Dexcom seems to be so delayed that by the time it alerts me of a hypo I have already corrected it in most cases. I am using the finger prick calibration method rather than the code calibration, which is supposed to be more accurate. Perhaps I need to adjust my calibration schedule to see if that helps.

Feeling the pump after a long rest period.

Day 52 – Loop – Exercise – Run 11 – Success

Today was a good day! After much trial and more research (through Facebook groups and medical literature) I finally figured out my recipe for staying in my range during cardio. It turns out I may have been too ambitious with my expectations of not eating before some heavy cardio.

The Process I followed was:

  1. Set a temporary over-ride for my basal (40% reduction) and increase my target to 7.

2. I ate a pre-run snack in the form of low carb granola and yogurt.

3. Waited for my glucose to rise above 6 ( I started at 6.8mmol/l)

4. Ran. I kept the loop closed as I wanted to see what would transpire. All in all I think it went well 🙂

Day 41 – Loop progress

I have now been Looping for 41 days and I wanted to reflect on the reasons I started looping and the goals I wanted to achieve while Looping.

<ul class="<style> li {text-align: center;} p div
  • A1C of below 5.5%
  • Time-in-Range exceeding 80% (3.9mmol/l -7.8 mmol/l)
  • Reduce diabetic burden
  • Decrease food anxiety whilst increasing food options.
  • Improved time-in-range during exercise with decreased exercise anxiety
  • Lets start with A1C and Time-in-Range (TIR)

    If we look at my stats just prior to looping, I had an A1C of 5.6% and a time-in-range (TIR) of 78.5%. The GVI and PGS stats were also really decent (more on these metrics here https://bionicwookiee.com/2020/02/26/cgm-metrics-gvi-pgs/), with a GVI of 1.2 (non-diabetic) and a PGS of 29 (non-diabetic). A decent average of 6.4 mmol/l, and 3.4 % (1h4min) of time in the 3.0 mmol/l – 3.9 mmol/l range.

    Now we look at my last month while on Loop. In order to reflect the learning curve involved from switching to a pump, I broke the stats into two (2) fortnightly blocks.

    First two (2) weeks on Loop
    Last two (2) weeks on Loop

    As can be seen in the charts above, some slight improvements are seen in all metrics discussed above with a 7.6% reduction in TIR and a 4.5% (-0.3) reduction in average blood glucose. The GVI and PGS metrics reflect modest variability and good control, as opposed to the previous non-diabetic results. I spent 22min (2%) in the 3-3.9 mmol/l range, down 10min from the previous periods 32min.

    Reduce diabetic burden

    This goal is subjective and difficult to quantify. Loop does make it easy to administer insulin, enable an over-ride, track carbohydrate absorption ( I was doing this with Spike) correct a hypo/hyper and even just wake up in-range. It does come with its own challenges and hurdles to overcome, like ensuring you have an up-to-date version, checking certificate expiry, ensuring your CGM is calibrated accurately, and then the challenges of constant site changes, reservoir and battery changes, insulin mixing and exercise.

    Decrease food anxiety while increasing food options

    It definitely feels like less of a burden to experiment with food or eat more carbs, as Loop can pick up any slack due to incorrect bolus calculations, or adjustments after exercise. I used to have 3.4 % (1h4min) hypos (3.0 mmol/l – 3.9 mmol/l) in a month due to incorrect dosing after exercise, but this number has significantly reduced to 2% (22min) while using Loop, as basal can be dynamically adjusted to fluctuations in blood glucose. Post prandial (meal) hyperglycaemia has also significantly been reduced, but I think in part due to Fiasp as it starts working immediately once injected.

    MDI Average Carbs per day: 92.6 (*excluding ‘fake carbs’)

    Loop Average Carbs per day: 121 (*including ‘fake carbs’)

    *’Fake carbs’ are entered into Loop to manage the blood sugar spikes from gluconeogenesis (fat/protein synthesis into glucose)

    Improve time-in-range (TIR) during exercise with decreased exercise anxiety

    Unfortunately since switching to Loop the Python code I wrote to analyse blood glucose broke with the switch to Loop, so I only have the pre-loop analysis. I was quite happy with the control I had during exercise while on MDI.

    I have included the table I have been updating while I work on the Python code, which doesn’t seem to accurately reflect the amount of hypo events I have experienced while running. On the whole cardio has been the item on my list I have struggled with the most, and has been a significant source of anxiety. I am quite certain that after a few months I will have a strategy nailed down and the anxiety associated with exercise will wane. As can be seen in the below table, I am currently focusing on running as its the exercise I am struggling to gain control over the most. I was able to stay in range for the entire duration of all my weight sessions.

    I’ll write a follow up post in the next month before I start my Android APS experiment. Good luck fellow Loopers!!

    Day 36 – Loop – Exercise – Run

    An interesting development from moving over to a pump has been exercise. Whilst resistance training hasn’t resulted in any issues controlling blood glucose (BG), aerobic (cardio) training seems to be heavily impacted by the fast acting insulin being used as basal. My previous strategy was to have no insulin on board (IOB) and fasted, this approach doesn’t work as well when pumping. My ability to stay in range during runs are improving by including fast acting carbs (preferably in liquid form) prior to running, but there is still much tuning to be done. My strategy yesterday was ingesting about 25g of carbs before the run and injecting .3 units just prior to running. I wanted to try this because it was raining and I wanted to disconnect the pump when I ran, as apposed to how I was managing it by reducing basal (50%) 30 min prior to running and for the duration of the run. It was a terrible idea!

    I ended up having a little low during the run and then rebounding from adrenaline ( I had a little race with my running partner) from sprinting. This resulted in me needing to wait an extra hour to bring my glucose back into range before lunch.

    Time in Range was calculated at <3.9 mmol/l AND >7.8 mmol/l

    The daily stats are definitely improving as can be seen by my time in range (TIR) stats above. The morning basal testing revealed that I needed to increase by basal from about 6am up from .8 U/hour to at least 1.1. U/hour, further testing is still required in order to confirm these numbers. I had around 100g of carbs, including ‘fake carbs’ which is added into Loop as 25% of protein and 10% of fat per meal. I’m still not convinced that Loop is particularly effective at managing gluconeogenesis (the conversation of protein and fat into carbohydrates) as I find that if I use 4 hour digestion times I go low and 5 hour digestion times I spike slightly. I suppose more testing in needed 🙂

    15 days into starting my Anubis transmitter with Dexcom sensor and so far its working fairly well. I’m interested to see how these sensors hold up on other parts of the body in comparison.

    Day 35 – Loop

    TIR is calculated using min=3.9 AND max=7.8

    My A1C is still hovering at 6% ( avg 6.9mmol/l), a fair bit higher than the 5.6% (avg 6.3 mmol/l) I was before looping, but I am finding more days with improved time in range (TIR). One really interesting outcome has been the discovery that I need a really large amount of basal (compared to other days) at around 7am in the morning. I am still keen to try Android APS and evaluate the pro/cons between the two, but I like the idea I have to do comprehensive testing to complete objectives. This, I believe, will result in better looping outcomes.

    On Monday I was extremely sensitive to Insulin, I can only assume due to cycling on Saturday. I attempted to go MDI for the duration of the cycle but failed to take into account the massive amounts of basal I am seeing I need at 7am, so I am thinking I may need in excess of 1 unit of insulin prior to riding.

    I have also started creating a survey which I believe would result in interesting findings.