Tuesday, August 20, 2019

VO2 max slow component vs metabolic cart error

In the last post, the VO2 max curve showed a significant elevation on the final stage.  I originally interpreted this as a manifestation of the "slow component".  However, on looking at this again, I just felt something was amiss.  I decided to ask one of the world experts on VO2 max testing as well as the slow component, namely David Poole.  He was kind enough to look over my data and together we figured out the issue.

Let's go back to the original VO2 ramp over time, with a regression line starting at the first stage and statistically stopping at the point of LT2 (but extending the line to the end of the test).

My question to Dr Poole was - is this a slow component issue, and if so, where do we decide to label VO2 max?

His response was that this is not a typical slow component tracing and he felt that there was an error in the gas exchange data at the end, particularly in ventilation:
My feeling, from experience, is that the ventilations may be either falsely high or that the gas concentrations were miss-aligned somehow with the flow profiles.  I have seen this with some metabolic systems that otherwise function very well up to those high respiratory frequencies.  I worked extensively with  MedGraphics in the mid-1980’s to try and circumvent these problems.  Although I have seen on a few % of occasions with VO2 increasing more steeply at the end of tests, this is not classic slow-component behavior – at least to this extent and with the rapidity yours developed.

This was a very testable hypothesis since I was wearing my Hexoskin shirt, and had ventilation data for the entire test.  I then went back to the last 6 minutes (300w and 330w stages) of the test and compared the Ve data from the Hexoskin (from chest/abdominal expansion) to that of the measured gas exchange.

The gas exchange test:
  • We can see that the ventilation in the blue box takes off midway through the last stage as does the VO2 in the red box.

However, the Hexoskin actually shows the ventilation decreasing at the same point:

  • The bottom line here is that the gas exchange is presumably wrong (as Dr Poole thought) and the VO2 max is at the early part of the last stage (54 ml/kg/min which was what it was officially).

Another lesson here is an illustration of the metoboreflex - a redistribution of blood away from the active muscles (RF muscle O2 saturation was very low) during extreme load as well as perhaps diaphragm fatigue as well (with resultant diminished volume per breath).   

I think the issue has been cleared up and it was an interesting problem to solve.

My thanks to Dr Poole for the help!

Sunday, August 18, 2019

VO2 max by gas exchange Vs Garmin/Firstbeat - my data

In several previous posts we have discussed various prediction equations and methods for estimating VO2 max.  Recently, I had a classic gas exchange cycling ramp study done (with blood lactate).  This provided a great opportunity to see how close the VO2 estimates were to the true value.  
This post also may help guide others who have undergone the testing, better understand their data.  Since VO2 concepts have been reviewed before, I'm going to get right into the test data.  

The ramp study was done at the University of Florida Sports Performance Center.  The staff was very accommodating, allowing the use my own bike, riding with my preferred cadence (75 rpm) as well as giving me ample time to warm up.  If you have never done the test and are concerned with wearing the mask, don't be - it wasn't too bad.  It is important for there to be no air leaks, so let the staff do their job to get the seal just right.  Unfortunately, the protocol does not allow a fan to blow on you for fear of gas dilution, so be prepared to sweat. I was wearing a Humon Hex NIRS muscle O2 sensor on the L rectus femoris, Polar OH1 on the L forearm (for the Garmin Marq watch VO2 estimate) and best of all - the Hexoskin shirt for ventilation/ECG comparison.  After the warmup, a typical ramp protocol was done starting at 100w, increasing by about 30w every 3 minutes.  Finger-stick lactate was done at the end of each stage with a Lactate Plus (with no interruption of pedaling).  A continuous full ECG was run throughout as well as occasional blood pressure.  Ramp was terminated at exhaustion (the last stage was fully completed). 

I had several goals for the test.  Getting a true gas exchange VO2 max was of course one but several other opportunities were also available.
  • Confirmation of my LT1 and LT2 thresholds recently done.
  • Identification of the VT1 ("ventilatory threshold") and VT2 (respiratory compensation point).
  • Comparison of ventilation rates by the calibrated lab equipment and the Hexoskin.
  • Fat and carbohydrate fuel usage crossover - good endurance athletes will utilize fatty acids as fuel at higher work rates than non athletes.  Given my genetics and need for carbs during long rides, I was very curious about this.
I did quite well with a measured VO2 max of 54 ml/min/kg, however this rose even higher over the last stage to 76 ml/kg/ml.  This was probably due to an exaggerated VO2 slow component that will be discussed below.
Here is a summary-

Why the very high VO2 max?  
Edit- This issue was figured out (with the help of Dr David Poole)- Read this for what happened.
The VO2 max of 79 is probably related to the VO2 slow component.  This is a phenomenon where, either due to muscular fatigue, local chemical changes or additional fiber recruitment (Type 2 fibers), the VO2 rises near the test termination.  

The VO2/work relation should be linear but at near termination several patterns can occur:

A nice review by Poole and Jones covers the slow component issue nicely.

The Vo2sc is generated principally within the exercising
muscle(s) at supra-LT or GET metabolic rates (330, 606)
where: (a) metabolite/ion accumulation within select fibers
increases ATP requirements to sustain the required power
output (consistent with 571, 675, 725) and (b) fibers experiencing
fatigue reduce their power contribution (but not necessarily
their ˙V o2) which necessitates either increased power
generation from already recruited motor units or recruitment
of additional motor units (most likely type II but possibly
also type I)


 And indeed toward the end of my ramp the VO2 dramatically increased:

                                Time              HR (less accurate at high rates)   VO2

Corresponding with this was a drop in rectus femoris O2 saturation to the lowest levels I've ever seen with the Humon Hex:

The usual O2 saturation nadir of the RF muscle is about 30% at the end of a maximal 1 to 3 minute interval.  I was surprised to see it reach 11% at ramp termination and it actually dropped further to 3% about 30 seconds later.  
The Fick equation states that the VO2 max is related to cardiac output and arterial-venous O2 extraction (from the Wikipedia):

The increased O2 extraction with presumably a stable cardiac output (same heart rate and stroke vol) should lead to a higher VO2 - and it does.  
  • The very high ending VO2 max could be from enhanced muscle O2 extraction at work rates near exhaustion.

Anaerobic threshold:
The calculation for anaerobic threshold or the "first" ventilatory threshold involves the relation of VO2 and Ventilation.  As work rate rises above a certain point, the ratio of ventilation/VO2 rises (whether or not this is related to lactate is not clear).
Later on in the ramp, the ratio of ventilation/VCO2 rises, which represents the respiratory compensation point:

Display and calculation options are many:
Determination of the AT (Panels 3, 4, 7)The first and probably best known publication on the determination of the AT was published in 1986 (16). In this panel,_VO2 is plotted on the x-axisand_VCO2isplotted on they-axis, with a scaling aspect of 1:1 (Figure 5A). When anaerobic metabolism occurs, the slope of the VO2versus VCO2graph exceeds a value of 1.With an identical scaling of the x-axis and they-axis, a reference line with an angle of 45 degrees (slope = 1) may help to identify this point. The same phenomenon is visualized in a plot of_VE/_VO2over time (Figure 5B), or PETO2over time (Figure 5C), as suggested by the European Association for Cardiovascular Prevention and Rehabilitation guidelines(9). The ratio of VE/VO2, as well as PETO2,decreases during exercise and reaches a nadir value just below the AT. After the onset of anaerobic metabolism, the VE/ VO2ratio and PETO2 start increasing from their nadir values. The AT is expressed as the VO2 value at the time point of VE/ VO2or PETO2 increase. All methods of AT determination should lead to an equal result.
Let's go through them one at a time 
The simplest - There is a relation between ventilation and work rate (shown in my Hexoskin data) but the breakpoints are just too hazy or not existent to make out.  Although this should yield a value, it can be quite difficult to appreciate.
 Here is my Ve to VO2 (similar to Ve/work rate):
There is a computer generated inflection point - precision unclear.

Ventilation to VO2 and VCO2:
From the excellent review by Hopker:
However, it became apparent that the plot of VE against work rate
(or time) in an incremental test was not strictly bilinear
(which would make it easy to model and identify the
‘break-point’) but rather curvilinear (where VE rises
smoothly with no single break-point; Fig. 2b).
To overcome this limitation and more directly to
take account of the concept of ‘excess CO2 production’,
Wasserman et al. plotted the ratio VE ⁄ VO2 and
the ratio VE ⁄ VCO2 against work rate [23] (Fig. 3).

These ratios were termed ‘ventilatory equivalents’ for
O2 and CO2, respectively, and they found that a
break-point could be identified more clearly using
VE ⁄ VO2.

And the second ventilatory threshold follows:
At work rates higher
than this, lactic acid production overwhelms blood
buffers, the pH of blood declines and this constitutes
an extra drive to ventilation. The ratio VE ⁄ VCO2 thus
rises. Some authors have argued that this second
change (termed the ‘respiratory compensation point’)
should define the anaerobic threshold
[14, 25, 26], so
it is a matter of debate as to which of these two
break-points (i.e. in VE ⁄ VO2 or in VE ⁄ VCO2) should
properly constitute the true ‘anaerobic threshold’
 Here is my Ve/VO2 and Ve/CO2 plot from the testing:

There is a computer generated estimation of the VT1 on the vertical line.

The V slope technique:
A widely used method for anaerobic threshold determination is something called the "V slope".  The data from figure 3 above is arranged differently with regression lines drawn from different parts of the curve for Ve/VCO2.
 To this:

Here is my V slope plot:
The "percent Actual peak VO2" is based on the falsely high VO2 slow component measure.

The prefix "Pet" refers to the Pressure end tidal (at expiration) of either O2 or CO2 (the concentration of O2 or CO2).  This brings up yet another method of looking at VT1:
VT1 was determined using the criteria of an increase in both ventilatory equivalent of oxygen (VE/VO2) and end-tidal pressure of oxygen (PETO2) with no concomitant increase in  ventilatory equivalent of carbon dioxide (VE/VCO2). VT2 was determined using the criteria of an increase in both the VE/VO2 and VE/VCO2 and a decrease in PETCO2

 My PetO2/CO2:

In this case the graph is combined with the VT1 given as corresponding rates of Ve (ventilation), VO2 and heart rate.

Relation of heart rate to VO2:

The Firstbeat formulas rely on this heavily to estimate your VO2max.  As work rate or VO2 rises, then so shall heart rate.

My chart:
It's certainly not a straight line, although it seems to be a linear relationship until the end where the VO2 slow component arises.  However, given the heart rate scatter, no wonder the Firstbeat method has difficulty even under optimal circumstances.

VO2 max and putting it all together:
Here is the final print out of my report:
Stage by stage assessment -

Since VT1 is measured at 31.5 ml/kg/min (see PetO2/CO2 report), what power level was that corresponding with on the ramp?

  • The VO2 at the VT1 corresponds to the 172 watt zone and heart rate range of 130-135 bpm:

A relationship of lactate with ventilation and heart rate was present:

The Lactate thresholds LT1 and LT2:

The figures to the right were obtained by visual inspection by the lab director.  I could not resist a more rigorous statistical treatment and plugged the numbers into the Newell, "R based" equations and came up with this:

The visual determination of 280w for LT2 agrees nicely with the OBLA 4 mmol of 285w by the Newell formula.  In addition the LT1 of 225w is virtually identical to the LT(log-log) of 224w.  Job well done UF lab director!

For comparison, here is a lactate test I did 3 weeks ago with 5 minute ramp stages:
  • The loglog and OBLA are very similar to the VO2 max ramp results (210w, 270w).

Fuel selection:
No surprises here. Knowing your strengths and weaknesses is always helpful - I am a pure carb burner:

Here is a more typical curve:

  • Despite a pretty fair VO2 max, LT2, peak heart rate, there is preferential use of carbs even at trivial work rates.
  • At my VT1/LT1 the carb/fat usage is 70/30.
  • Even more to note, above a heart rate of 155 (about LT2) there is no fatty acid usage.
Lastly a look at ECG at peak heart rate signal quality - Hexoskin vs official ECG:

Here is the official 12 lead ECG at max heart rate:

And this is the Hexoskin raw tracing (single lead) at the same time:

  • Although at rest the 12 lead tracing is perfect, during motion there is physical motion of the actual lead cables, creating noise.  This is minimized with the Hexoskin.

Summary of results:

Power at VT1 - 172w
Power at LT1 - 225w

Power at VT2 - not provided
Power at LT2 - 280w

VO2 max - 54 ml/min/kg

Comparison to previous estimates :
  • Astrand and Ryhming's - 54ml/kg/min
  • Storer equation - 50 ml/kg/min
  • Heart rate min to max ratio - estimate based on max HR 171 was 55 but with 179 bpm max seen here the value would be 57 ml/kg/min
  • Garmin/Firstbeat (the week prior to and after the test) - 48 ml/kg/min
A Closer look at the Firstbeat data:
Over the past few weeks I had been training in the heat and humidity as well as indoors.
Despite what I though of as good fitness, the Garmin/Firstbeat data was not improving:

The above was reported after the VO2 max test was done.  Heart rate during the VO2 max test was recorded using the Polar OH1 via the Garmin Marq Athlete watch.  Heart rate correlation to both the Hexoskin and ECG was within 1-2 bpms, including at max efforts.
Yes, inaccurate heart rate measurements can affect the Garmin /Firstbeat method but this is not the case here:

 Historical results:

Over the past few months each cycling session using my Garmin watch was done with a Polar H10 HRM, so heart rate was spot on.  It had been hot and humid so I attributed the "false" drop to that, but Firstbeat claims they take that into account.  For the most part, Garmin/Firstbeat estimates for me have been between 48-50 ml/kg/min.

All of the prediction equations were close except that of Firstbeat, which underestimated the value by 10%.  Given their claims on improving the accuracy of VO2 max prediction with neural networks, heart rate variability, temperature correction and VO2 on/off kinetics, the result was quite disappointing.  The simplest model (which does not even require a power meter), namely heart rate max/min ratio was far better.   In addition, the Garmin/Firstbeat method has never approached my true value historically, so one can not attribute the error to day to day variability.

Take home points:
  • A typical gas exchange cycling ramp study was done with a VO2 max of 54 ml/kg/min.  I believe this was truly a maximal effort on my part with the highest heart rate I've seen in a decade or more.
  • A sizable VO2 slow component was seen on the last stage, associated with a sharp drop in rectus femoris O2 saturation.
  • Lactate thresholds both 1 and 2 were calculated by Dr Newell's method as well as by inspection with the laboratory director - they were very close.
  • LT2 (OBLA-MLSS approximation) was very close to my 5 minute ramp tests done recently.  Some investigators have criticized the use of ramps less than 5 minutes for poor accuracy, but that does not seem to be case here.
  • LT1 was substantially higher than VT1, showing that they are not always at the same work rate, outlined in my recent review.
  • Since VT1 is now known, a ceiling on "easy", zone 1 riding can be implemented.
  • Predictive equations were compared to the true gas exchange VO2 max value.  In my case, the Garmin/Firstbeat method (using their latest algorithm) was the least accurate and about 11% too low.  
  • Be wary of trusting training decisions and your physiologic status to the Garmin/Firstbeat data.
  • Edit - I did not want to alter this post, but in a separate entry explain why the VO2 max increased at the end to such a high value
Other posts in this area:
 Lactate related

 VO2 max related

Many thanks to the staff at UF for doing my test!

Thursday, August 8, 2019

Analysis of Hexoskin binary RR interval and respiratory .wav data

The Hexoskin device has been discussed on this blog may times over the past year.  It is capable of accelerometry,  single lead ECG, as well as measuring thoracic and abdominal respiration.  Usually the extracted data is downloaded as a .csv file containing the processed final output such as heart rate, total ventilation rate and motion.  However, there may be times when you would like to see the actual raw recordings of each parameter.  Initially, I felt this was too difficult to do but on a closer look, it is fairly easy.  In addition, looking at or analyzing the raw data may provide you with insights not possible from the processed totals.  This post will review how to download, sort through, process and display the raw "binary" files from the Hexoskin web site.

Let's start with the download:
Go to the "record" of the session of interest on the Hexoskin website and choose download.  The type of file is "binary".

After downloading the zip file, open it.  This is a listing of the contents:

I have highlighted the files of interest.
The activity.wav will give us an idea of where the intervals are to align with a cycling power record.  The ECG_1 is the single lead ECG, respiration_thoracic and abdominal are the raw records of each part of the ventilation data.

RR intervals
As reviewed in the last post, the Hexoskin is a great method to get artifact free ECG tracings for HRV studies.  Here is a tutorial how to get the RR intervals into Kubios.

Start by extracting then opening the RR_interval file in a spreadsheet program:
We have - time (in seconds column A) and a strange number in column B.  The number in B needs to be divided by 256 to get the proper RR interval.  
From the Hexoskin api (ignore the typo 205/256 - it should be 207/256):
You also need to delete the first row with a zero in column B.

Then create a function (see the post on data processing) to divide by 256:

Then copy and paste the formula the entire way down to the last value to get a full RR output computation (remember to delete the row with a zero in it):

Getting this into Kubios:
Open Kubios, select "open file" but don't choose anything yet.  We will need to open our file of course but must alert Kubios to handle this output appropriately.

Here is the open dialog of Kubios and yes, I want to open the RR_interval file but make sure you choose "Custom ASCI file" in the drop down menu just above the open button (in yellow).

When you open the file (Custom ASCI file) the Kubios gives you options on where each data field is:

With the way we saved the RR_interval file, the time is column 1 and the RR intervals are column 3.  The time units are in seconds.
After the correct choices are made we are ready to open:
Here we go.  I did highlight (in yellow) an artifact during the selected interval (in blue, top).  Notice the DFA a1 complexity shift on the bottom panel as discussed in the last post.

Wav files
Some of the Hexoskin files are presented as .wav records.  Before getting too overwhelmed with yet another format, recall that a .wav file is simply a lossless method of audio recording.  So these files should be able to be visualized by any software designed to display audio signals.  A good free software tool that I will use is called Audacity.  Download and install it before the next step.

Raw activity data.
The activity file is helpful to see where in time the interval occurred.  We can eventually match this up with power intervals.

Open Audacity and open the activity.wav file from the binary download.
This is what it will look like:

Right now it's not much to look at.  First drag the bottom window bar to the bottom of the page to expand the view.

Next, we need to magnify the signal and zoom in the time for a more realistic look:

Right clicking in the left axis will zoom the amplitude of the wave and pressing the + button on top (in red) will zoom time.

Here I have zoomed to my 3 minute interval:

With a further zoom gets even better definition:
We also want to get the time of the interval, look at the time display at the bottom (in yellow):

We will need this time to review and analyze the respiratory and raw ECG data.

ECG raw:
Open the ECG_1 file from the binary download in Audacity:
The tracing will seem pretty worthless when first opened -

Remember to drag the window down to the bottom of the page, right click the Left axis to amplify the signal and then click the zoom button on the top menu bar.

Here is what the raw ECG looks like at full cycling power during my selected interval:
  • The R waves are quite sharp, relatively free of noise with no artifacts.

Here is a section of the ride when I was cruising at low power.  The waveform is so clean the P, QRS and T waves are well delineated:

This type of detail could be helpful in looking at RR interval quality, arrhythmias and even ischemic changes (to some extent).

Abdominal and thoracic respiration:
Extract the abdominal and thoracic wav files from the binary zip.  Open them as in the examples above and increase the signal amplitude.
Here is an example of the abdominal wav file. The large dark area in the middle is the interval I'm interested in.

If I drag over the area of interest and select the expand selection tool, the area is zoomed to the window width:

 We then have a nice look at the interval's abdominal motion:
  •  Each cycle up and down is one inhalation - exhalation cycle.

Amplitude of each sub-unit of the respiratory cycle:
There may be times when comparing the abdominal vs thoracic portion of total ventilation may be desired.  To do this we need some index of wave amplitude.  Here is a simple rough measurement technique.
We are able to get an idea of the wave amplitude if we treat it like an audio signal.  There is an Audacity plugin called ACX that will calculate the peak and RMS amplitude of a chosen selection.  You will need to download the ACX plugin and place it in the Plugin folder of Audacity (c:/program files/audacity/plugins).

Here is a measurement of the RMS/peak of the 30 seconds after a one minute max effort for instance:
I have installed the ACX plugin, and triggered the analysis by choosing it under the Analyze menu (in red).  The RMS, peak are in yellow.

Zooming in further shows each respiratory cycle in greater detail:

Is this of any benefit?
On that subject, I'm not sure yet.  I did go back to look at some 3 minute VO2 peak intervals done before and after starting abdominal strength training to see if the ratio of thoracic to abdominal motion was altered.  Here is a listing of the RMS of every 30 seconds during the 3 minute intervals of both abdominal and thoracic motion files:

As you can see the percent of abdominal to total motion is remarkably stable from 10/8/18 to 8//19.  Although my diaphragm strength is substantially better and there is an improvement in lactate threshold testing, I don't see a difference in this particular metric.
However, if you have an interest in thoracic and abdominal respiratory testing, the above method may be of some use. 

  • The raw binary files of the Hexoskin system can be used for multiple purposes.
  • These include RR interval quality, ECG waveform review, activity timestamping, separate abdominal and thoracic respiratory motion.
  • RR intervals need to be converted to be read by Kubios.
  • Wav files are readable in Audacity.
  • Signal RMS and peak strength can be roughly measured by the ACX plugin.
  • The usefulness of separate abdominal and thoracic motion analysis is something to think about.