Abbott FreeStyle Libre initial impressions

Human body is an amazing machine (consisting of many different, interconnected machines) and I’m really curious about processes that happen in it. I also love measuring, quantifying and modeling things (as my wife can attest). So, I’ve been very excited to get my hands on the Libre.

Abbott FreeStyle Libre is a CGR (continous glucose recording) device, which measures glucose in interstitial fluid (a solution that bathes and surrounds the cells), or to say it another way the glucose in the subcutaneous fatty tissue. More info about Libre can be found in this diaTribe article.

I bought only the sensor without the reader, but thanks to CTAPP Software there’s a free Android app called Glimp, which can be used to read current values from Libre with a NFC equipped phone. I use Samsung Note 3. The sensor has to be activated first using another app called Glimp S.

Maybe now’s the time to mention that I’m not diabetic. However my father is, and apparently I don’t tolerate carbohydrates very well. So far my pancreas appears to work just fine. I have to keep it low carb (<130 g/day) if I want to maintain lean body composition.

Accuracy:

I used Abbott Optium Xceed (with blood glucose strips) for comparison. I’m well aware that it’s not super precise either, but since it’s the standard used for insulin dosing it’s good enough for me.

I did 20 fingerprick tests in 8 days, and here are the corresponding pairs:

Glimp mmol/l Optium Xceed Diff
6.2 6.6 −0.4
6.4 6.0 0.4
6.9 6.9 0.0
6.1 5.4 0.7
5.4 5.4 0.0
6.3 5.7 0.6
6.5 5.2 1.3
6.5 6.0 0.5
6.5 5.3 1.2
8.1 7.1 1.0
6.3 6.4 −0.1
6.5 5.6 0.9
5.9 5.5 0.4
7.4 5.6 1.8
5.7 5.6 0.1
6.8 6.7 0.1
6.8 5.5 1.3
7.0 6.1 0.9
6.8 5.7 1.1
7.3 6.1 1.2

Some variations are to be expected, because the two devices measure different things and Libre only tries to convert its results to blood glucose equivalent. Also there’s an inherent lag (delay) of about 5-10 minutes for glucose change in the interstitial fluid compared to blood glucose. Still, the variation I see is too big to be used directly. I read that other users have better accuracy and even use Libre data for insulin dosing. Maybe it’s interpersonal variation or maybe my sensor is not up to par. Another possibility is that I didn’t insert the sensor at the best possible place – I used the back of the upper arm as advised but maybe I’ve hit some internal anatomy (blood capillary?). I also don’t know if Libre’s original reader is smarter than Glimp and compensates in some way.

So, here we go with some more analysis of the variation I see.

First, a diagram of the raw BG (blood glucose) pairs:

glimp-vs-xceed

Libre often (but not always) reads about 0.5 mmol/l higher. Here’s the polynomial regression of the pairs:

glimp-vs-xceed-regression

Seems like the higher the reading, the bigger the error.  Here’s the % deviation for all Glimp values I have:

glimp-vs-xceed-deviation

If I use the coefficient calculated in the polynomial regression above to adjust raw Glimp values and then calculate deviation, it looks like this:

glimp-vs-xceed-deviation-mmol

And finally this is how my adjusted blood sugar trend looked yesterday (probably :-)):

glimp-bg-trend-adj

I have another unopened sensor and I plan to try it in a few weeks and compare data with this one.

That’s all folks.

Posted in Misc | Leave a comment

2015 cycling in re(ar)view

Moving with my bicycle through 2015 I’ve produced more than 126000 kJ of mechanical energy, which translates to approximately 35 kW/h. I didn’t have my power meter with me on several occasions and few rides data got corrupted or missing for various reasons, so 126 MJ is a conservative figure. “Обиколката на Витоша” 2015 cost me 2468 kJ, so overall it’s like doing 51 rounds of it or in other words doing it every week.

Due to many other commitments (it was crazy year for sure!) I didn’t have the opportunity to ride outside as much as I liked, so many of the rides were on the indoors trainer. Also my primary discipline is MTB, and that’s another reason for my unimpressive accumulated distance of 4853 km (compared to road cycling). Still, I climbed 44570 meters. That’s roughly the elevation gain equivalent of doing “Велорали Черни Връх” 28 times.

Ultimately, despite all obstacles this is my fastest year ever! 🙂 Using “Обиколката на Витоша” as benchmark, because it’s both the first bike race I’ve participated back in 2007 as well the most popular mountain bike race in Bulgaria (xcm), here’s how I did through the years:

Year Time
2007 10:30
2010 7:57
2012 6:22
2013 6:10
2014 7:16
2015 5:23

To be fair I didn’t think of 5h23m as a possibility. I just hoped I can go slightly bellow 6 hours. This was also the year where I participated in the biggest number of races – I think I stood at the start line of at least 13 races.

I’ve also learned that if you smile more you’ll enjoy things more.

So, cycling-wise 2015 was a good year 🙂

Looking forward to 2016 with high hopes!

And now some pictures, each worth more than thousand words of course:

velo-viewer-2015

2015 Ride locations

Posted in Misc | Leave a comment

Remote ssh command escaping

I often have to run non-interactive commands on remote machines (thanks ndenev and famzah). Dealing with quoting and escaping could become quite cumbersome at times. Here’s a very simple example:

for n in "$(cat some\ file.txt |cut -d: -f2)";do echo "$n" |awk '{print $2}' ;done

The thing is, you often debug something on a single server constructing the on-liner iteratively and interactively with no intention to run in on many servers. But then at some point you realize you’d better check on other servers for this problem you’ve been debugging. And you usually find out that your already quite lengthy one-liner must be properly quoted and escaped. One easy way out is to just let CPAN String::ShellQuote do the work for you:

perl -MString::ShellQuote -ne 'chomp; print shell_quote($_),"\n";'

for n in "$(cat some\ file.txt |cut -d: -f2)";do echo "$n" |awk '{print $2}' ;done

'for n in "$(cat some\ file.txt |cut -d: -f2)";do echo "$n" |awk '\''{print $2}'\'' ;done'

Posted in Misc | Leave a comment