Saturday, December 19, 2020

Frontiers in Physiology - Validation of DFA a1 as a marker of VT1

Although many prior posts in this blog assumed DFA a1 reached VT1 at about .75, until yesterday, no published peer reviewed data existed to verify this concept.  However, we now have a high quality validation study published in Frontiers in Physiology confirming that.  Before getting into a brief summary of our findings I would like to thank both my co authors, the Frontiers reviewers (Drs Lars Brechtel, Daniel Boullosa) and Editor (Dr Clint Bellenger).  We were very fortunate in having reviewers who were both knowledgeable in HRV and exercise physiology (which is not a common skill set) who understood what we were trying to accomplish.  It was an incredible experience (and much fun) to work with Dave, Nick, Olaf and of course my very good friend Thomas. 

The article:

 

The full version is in the "production department" at this point, therefore I need to wait until it is in final form to get into more detail, review some interesting figures, stats and correlations with gas exchange.  However, the abstract should provide more assurance for using DFA a1 to help determine your VT1 and assist with the low intensity portion of zone training. 

In the meantime, the following posts should help guide implementation of using the index in practical terms:

Heart rate variability during dynamic exercise

 

Thursday, December 17, 2020

DFA a1 calculation - Kubios vs Python mini validation

Update 3/23/22 - As discussed in this post, alternate preprocessing methods other than the type used in Kubios (detrending method - smoothness priors) may lead to DFA a1 results that are different than seen with Kubios software.  HRV logger does use an alternate method.  Therefore, results may not agree well with published studies.  If possible, a secondary check using Runalyze, AIenduance or Fatmaxxer is recommended.

 

Just his past week, Marco Altini a prominent HRV advocate and researcher created a python based process to take an RR data series and output DFA a1/HR related values.  Although python is not part of my skill set (as in the old Star Trek line - "I'm a doctor not a ...."), some friends at Suunto happened to be working on something similar and we decided to take a look.  The idea was to test the "agreement" between the gold standard Kubios to that of a python derived DFA a1.  To do so we used the Polar H10 recorded running ramp from the prior post.  The RR time series was fed through a python based program with the following settings:

  • hrvanalysis.remove_outliers(low_rri=300, high_rri=2000)
  • hrvanalysis.interpolate_nan_values(interpolation_method="linear")
  • hrvanalysis.remove_ectopic_beats(method="malik")
  • hrvanalysis.interpolate_nan_values
  • Basic script from here
  • DFA a1 package here 
  • This is not the software from Marco Altini's site but it does use many of the same Python tools

In summary, we have the same Polar H10 RR series, comparing Kubios (auto correction mode) with the Python method.  I'm going to comment up front that artifact identification and correction methods are going to be different.  This could have a major impact on DFA a1 values.

Results:

Time varying output (2 min windows with recalculation every 5 sec)


  • If this looks like the graph from the last post, it's not your imagination.  This is the same data, but now the Python derived DFA a1 is added in purple triangles.
  • There is reasonable (but not perfect) tracking of each data point.

How does this look with regression analysis.  Here is a pair by pair plot of DFA a1 at all values:

R squared is .85 which is decent (but not excellent) and the slope is .82 indicating possible bias.

This was confirmed in a Bland Altman analysis:

I circled the area of concern, at DFA a1 below.75, the bias (relative difference between paired values) and standard deviation (scatter) becomes much larger.  This could be related to a few more artifacts in this region (zero to 1%) or simply the underlying method of calculation.

Aerobic threshold calculations

Does the 20% bias at DFA a1 < .75 affect the HRVT (the VT1 related heart rate variability threshold)?

  • Not really.
  • Although the values are different in the DFA a1 1.5 to .3 region, the HRVT is quite close, only about 2 bpm divergent.  There was more of a differential with lines drawn from 1.0 to .3, but still within several bpm.

Some observations:

  • Kubios is and remains a gold standard for HRV and DFA a1 calculation. 
  • The above python implementation seems (based on very limited data) to resemble that of Kubios.  
  • A time varying look at DFA a1 using python scripting has enormous potential to help guide ones training regime.  Both a retrospective look at an exercise session as well as a real time mini app on a smartwatch or phone may even be possible.  One of my wish list items is a simple green, yellow, red marker on your watch indicating what your last 2 minute DFA a1 result was (with some sort of "confidence indicator" for artifacts).
  • Issues to be worked out include artifact identification and correction (not necessarily the same thing) and more validation study.
  • Many thanks to Olli-Pekka Koistinen and the Suunto team for the python calculations and background scripting information.  
  • Thanks to Marco Altini for increasing awareness of nonlinear HRV related fractal correlation properties as a tool to help guide training intensity distribution and measurement of the aerobic threshold.  I hope he continues to work on the app and improve the agreement to Kubios.

  

Addendum 12/20/2020

  The following figures will compare the Suunto python method, Marco's method and of course the gold standard Kubios.


Bland Altman Difference analysis:

  • The Python based algorithm used by HRV logger yields similar results as the method used by the engineers at Suunto to compute DFA a1.  This is not agreeing well with Kubios HRV at low DFA a1.
  • Although further study and verification is needed, this is an exciting development for athletic intensity modulation and zone identification.
  • Looking forward to HRV logger improvements.


Frontiers in Physiology - Validation of DFA a1 as a marker of VT1 

Real time Aerobic thresholds and polarized training with HRV Logger 

Active Recovery with HRV Logger  

DFA a1 and exercise intensity FAQ  

Tuesday, December 15, 2020

DFA a1 - running ramp and sample rate observations with the Movesense ECG

This post will attempt to kill two birds with one stone - a look at how a reasonable quality running ramp can be used to denote a "heart rate variability threshold" as well as the issues with heart rate/ECG recording device sample rates.

As part of our exploration into DFA a1 behavior during an exercise ramp, let's look at some recent data that may help some potential users.  Although limited data exists on DFA a1 decline during running vs cycling, in my prior experience they seem to be similar.  A friend decided to do some testing, using the Movesense ECG module worn concurrently with a Polar H10.  He was kind to share the data and the analysis is below.

Here is the protocol he followed:

5 min walking at around 100bpm 

3 min running at around 130bpm

3 min running at around 150bpm

3 min running at around 170bpm

First, lets look at the ECG waveform. This was recorded at a sample rate of 512Hz using an iPhone and the Movesense showcase app (should be in the app store).


Definitely a very nice symmetrical wave and sharp R peak.

A plot of DFA a1 and HR over time for each device.  This is a time varying extraction from Kubios (window width 2 min, grid interval 5 sec - in other words the DFA a1 and HR are calculated from a 2 minute measurement window and recalculated every 5 seconds).

Polar H10 in red, ECG in black, HR in yellow.

 

If we look at the "agreement" between the ECG and the Polar belt, they are pretty good but not perfect.  Below is a Bland Altman analysis of each data pair (looking for proportional bias - more or less bias depending on the DFA a1):


It appears that the agreement is pretty good as long as DFA a1 is above .5, which works well for us since we use values between .5 and 1 to calculate the "heart rate variability threshold" (HRVT, which we feel is a surrogate for VT1 or the aerobic threshold).  However, there is a difference at DFA a1 values below .5 as seen on the t testing below:

 

Now for the "HRVT" calculation.  To do this we graph the DFA a1 vs the HR, look for the linear portion of the decline, create an equation and back-solve it for HR (see previous posts):

Movesense ECG:

Polar H10 data:



Conclusions:  

  • A simple three stage running ramp provides an adequate look at DFA a1 behavior and calculation of the VT1 associated HRVT.
  • An ECG module with a sample rate of 512 yielded similar results as a Polar H10 in the range of interest.  At lower ranges there was some bias and since we did not have a gold standard comparative recording,  it's impossible to say which is more valid.

Can we get similar results with Kubios free version?

The premium version of Kubios allows one to get the time varying data graphs.  However, we can come close to this in the free version.  In this case, you will need to manually create 2 minute windows and overlap them to get enough data points.  Here is an example using the exact file as above:

The overlap windows are in the top panel, the DFA a1 values will appear in the panel below it (in yellow).  I copied the numbers down by hand (on the left side) and put them into Excel to graph:


 


  • Although the HRVT heart rate is somewhat different than above, by spacing the overlaps closer together, you would approach the same result as in the time varying.  After all, the time varying is simply this technique with a user defined overlap (5 sec in my case) and then an easy text file output.

 

The issue of sample rates:

Although the Polar H10 uses a sample rate that is quite high (1000 Hz), can we get by with lower rates?  I have shown some data using the Movesense ECG at 250 Hz that appears very close to the Polar but what about at even lower rates.  Can a sample rate of 125 Hz give us reasonable results?  This will be of interest when the Movesense unit becomes more widely available since only some devices can handle rates above a 250 Hz bluetooth transmission speed.

The test - my typical cycling ramp (130 to 230 watts over 20 min using Zwift as the trainer power control), Movesense ECG on upper chest (<1% artifact), Polar H10 in usual location under the pectorals (artifact below 4%).

The results:

Waveform:

Loss of R peak definition noted!  The true R peak could be buried in that flat top portion.

Data comparison:

 

During the warmup, the low sample rate ECG may be reading lower, however, the ramp appears much closer:



 What about the HRVT portion (used to calculate the VT1 surrogate):

 

Bland Altman Difference plot


  • It does appear that the DFA a1 results are about 7 to 10% lower than that of the H10 in most ranges.  Remember that the H10 was already lower than the 512 Hz sample rate ECG at very low DFA a1 values, so this would translate to an even larger change between 512 and 125 Hz sample rates

Bottom line:

  • There may be bias related to lower sample rates, especially at 125 Hz.  
  • Sample rates do seem to matter in the HRVT calculation, however, there does not seem to be a huge real life difference in cycling power as a result.  Although the time was 25 seconds different between devices, at just a 5 watt per minute increment, that's only about 2-3 watts.

How can we explain lower DFA a1 values related to both low sample rates as well as waveform deformity?  

Not long ago, a colleague of mine presented a very clever study.  


 

The aim was to see what happened to various HRV indexes if there was loss of RR precision.  In other words, would the HRV index change if the R peaks were not precise.  That's going to happen in either low sample rate conditions or with waveform distortion (see older posts).  Their data showed downward bias in the DFA a1 during light exercise (intensity below VT1 with DFA a1 baseline about 1).  The bias was not as severe with a resting RR tracing.  I suspect that with DFA a1 values near .5, the bias would be even worse than noted.


What does this mean on a practical basis?  It appears that inaccurate assessment of the R peak by either ECG distortion/low sample rate or by a conventional chest belt can impact the precision of the DFA a1 measurement.  This is not something that can be necessarily corrected by software since it's essentially based upon the loss of information.  For example, a blurry photo can't be corrected by Photoshop (ask any good photographer).  DFA a1 is based on fractal correlation properties of the RR times series.  As in a detailed map of a coastline, loss of the map's dot to dot precision will change the fractal nature of that given coastline.  Since we are at the very beginning of really understanding the specific use case prerequisites in having one achieve a valid HRVT, further work needs to be done to address these issues.  One scenario is clear, use of optical based RR data should not be deemed trustworthy until proved otherwise.


Heart rate variability during dynamic exercise



Tuesday, November 3, 2020

DFA a1 and the aerobic threshold, video conference presentation

For those interested in cutting edge HRV research and development, an interesting Web based conference is set for 2 weeks from now.  Unfortunately, it will be mostly in German since the bulk of the speakers are from that country.  


 

However, my section will be in English and I am placing it below for direct view.  It is a presentation speaking about the use of DFA a1 for exercise intensity assessment and especially regarding zone 1 demarcation.  I'll be going over some practical methods to obtain the aerobic threshold (VT1, LT1) using heart rate variability and some of our current research interests. 


Enjoy

Heart rate variability during dynamic exercise