Skip to content

adh30/Sphygmocor-Reservoir

Repository files navigation

Sphygmocor-reservoir

Reservoir Analysis using a matlab batch process for multiple Sphygmocor© files (bRes_sp)

For background see Alun Hughes, Kim Parker. The modified arterial reservoir: an update with consideration of asymptotic pressure (P∞) and zero-flow pressure (Pzf). Proceedings of the Institution of Mechanical Engineers, Part H: Journal of Engineering in Medicine in press. https://doi.org/10.1177/0954411920917557 and Kim Parker's website pages on Reservoir/excess pressure (http://www.bg.ic.ac.uk/research/k.parker/res_press_web/rp_home.html).

I am grateful to my long-term colleague Prof. Kim Parker for his assistance with the development of this program.

This MATLAB script replaces a previous version called batch_res. Earlier versions of batch_res and kreservoir (v13) may be available on Kim Parker's web page. NB that old versions (batch_res_vXX and kreservoir_v13) are now outdated and the current version (bRes_sp and kreservoir v14) should be used. Henceforth any new versions will be made available here.

Version Date Changes Made
1.1 24/12/17 Added information about program upgrade to kreservoir v9 that includes HRV
1.2 27/12/17 Incorporated estimates of wave intensity, backward pressure (Pb) and forward pressure (Pf) from central pulse waveform and used sgolayfilt rather than fsg1521 or fsg721
1.21 22/10/18 Minor updates to accompany a few bug fixes (now kreservoir v11)
1.3 17/03/19 Improved reservoir algorithm to prevent upturn of pressure at end of diastole (early systole) affecting fit. Also improved HRV algorithm; adding data to excel output, fixing some other bugs (now kreservoir v12)
1.31 12/04/19 Added progress bar, bug fix to figure output (now kreservoir v13)
1.4 11/01/20 Some restructuring of functions, minor bug fixes (now kreservoir v14)
1.41 11/05/20 More error traps, revised to use textscan rather than textread, titles for figures improved peak detection for Wf2
1.5 23/05/20 Updated script to calculate derivatives using 9 frame 3rd order SG filter and renamed program to bRes_sp.
1.6 25/03/21 Fixed a couple of bugs with findpeaks component

Contents

The script

Using the script

Heart rate variability (HRV) and baroreceptor sensitivity measures

Wave intensity

Backward and forward pressure

Data dictionary

References

Footnotes

The script

bRes_sp is a matlab script that calculates reservoir and excess pressure according to the methods described in Davies et al.[1] for Sphygmocor© derived files. A few minor changes have been made since the original description. An improved algorithm for fitting the reservoir in diastole is now used -- this excludes upstrokes at the end of diastole from the fit (presumed to be due to the next beat). This results in lower values for P∞ and slightly different values for other reservoir parameters. The program assumes that the first element of the pressure P corresponds to the end diastolic pressure in the arterial pressure waveform; i.e. the time of minimum P just before the rapid rise in P during early systole.

Using the script

Put sphygmocor files to be analysed in the analysis directory

C:\Spdata

Open matlab and ensure that the working directory is the one that contains the relevant script and function files (in my case this is C:\XXX\Matlab\work\Reservoir_batch).

Type into command line:

>>bRes_sp

After some time (depending on how many files are analysed the run should complete, returning to command prompt. It will show a progress bar while it is running.

Two new folders should now exist in C:\Spdata - C:\Spdata\figures and C:\Spdata\results.

C:\Spdata\figures contains figures of the signal (all the uncalibrated data) and the pulse (the calibrated ensemble averaged data) with the reservoir pressure shown. These are saved as *.jpg files.These plots are useful for checking quality and any dubious results.

C:\Spdata\results will contain an excel file (resdata.xls) which will contain all the data for each file with its ID. This can then be imported into Stata (or some other stats program) for further analysis.

Heart rate variability (HRV) and baroreceptor sensitivity measures

[NB THESE MEASURES ARE EXPERIMENTAL FOR SPHYGMOCOR DATA]

The root mean square of successive differences (RMSSD), the standard deviation of the pulse intervals (SDNN) and baroreflex sensitivity (BRS) are calculated essentially according to Sluyter et al.[2],[a] The validity of such ultrashort recordings has been studied by Munoz et al.[3] Further details on the meaning and interpretation of these measures can be found in Shaffer and Ginsberg.[4] It is probably useful to normalise HRV (or adjust it statistically) to mean RR interval due to the correlation between HRV and resting heart rate.[5] This can be done as a post-processing step in the statistical package used.

Wave intensity

[NB THESE MEASURES ARE EXPERIMENTAL FOR SPHYGMOCOR DATA]

If it is assumed that excess pressure (Pxs) is proportional to aortic flow velocity (U) (essentially a 3-element Windkessel assumption -- see above) then the pattern of aortic wave intensity (dI) can be estimated (being proportional to dP x dPxs). If one of aortic wave speed or dU is known then wave intensity can be estimated. If only pressure has been measured this problem cannot be solved without strong assumptions. In this case, it is assumed that peak aortic flow (dU) is 1m/s (based on [6]) and doesn't not vary with age, sex etc. While this is not true, it is may prove an acceptable approximation. Further details including preliminary validation can be found in [7].

Backward and forward pressure

[NB THESE MEASURES ARE EXPERIMENTAL FOR SPHYGMOCOR DATA]

These are calculated based on the assumptions that in the aorta reservoir pressure is 2 x backward pressure (Pb);[8] which may be valid if excess pressure is linearly proportional to aortic flow as has been reported in dogs,[9] and total aortic flow equals aortic inflow. This approach probably shares similarities with the ARCSOLVER method,[10] which uses a 3-element Windkessel assumption[b] to reconstruct forward and backward pressures.

Data dictionary

Variable Definition Example result Units
re_file File identifier xxx_pwa.txt No units
re_maxp Maximum pressure (systolic pressure) 120 mmHg
re_tmaxp Time of maximum (systolic) pressure 0.1484375 s
re_minp Minimum pressure (diastolic pressure) 76.55 mmHg
re_intpr Integral of reservoir pressure 112.3308474 mmHg.s
re_maxpr Maximum reservoir pressure 108.1486734 mmHg
re_tmaxpr Time of maximum reservoir pressure 0.265625 s
re_intprlessdias Integral of reservoir pressure with diastolic pressure subtracted 16.09752936 mmHg.s
re_maxprlessdias Maximum of reservoir pressure with diastolic pressure subtracted 31.64019694 mmHg
re_sam_rate Sampling rate 128 Hz
re_intxsp Integral excess pressure 4.169230704 mmHg.s
re_maxxsp Maximum excess pressure 26.3460721 mmHg
re_tmaxxsp Time of maximum excess pressure 0.109375 s
re_tn Time of maximum -dp/dt (nominal end of systole) 0.283007813 s
re_pinf P∞ 70.70521706 mmHg
re_pn Pressure at start of diastole 110.95 mmHg
re_fita Rate constant systolic fit 10.45715136 s-1
re_fitb Rate constant diastolic fit 1.912785514 s-1
re_rsq Coefficient of determination (r^2^) for fit 0.992749217 No units
re_prob Flag 1 for likely problem[c] 0 No units
re_version kreservoir version (for version tracking v13 No units
re_sdsbp_mmhg Standard deviation of SBP 6.1 mmHg
re_rr_interval Pulse to pulse (RR) interval 900 ms
re_rmssd Root mean square of differences in successive pulse (RR) intervals 10 ms
re_ssdn Standard deviation of pulse intervals 6 ms
re_brs Baroreflex sensitivity (BRS) by the sequence method 22 ms.mmHg-1
re_brs_valid Number of valid BRS measures 8 Count
re_pb_pf Central Pb/Pf 0.65 No units
re_ri Central Reflection index .4 No units
re_wf1i Intensity of forward compression wave 1 (W1) W/m2*
re_wf1t Time of peak of forward compression wave 1 (W1) s
re_wf1a Area of forward compression wave 1 (W1) J/m2*
re_wfbi Intensity of backward compression wave (Wb) W/m2*
re_wbt Time of peak of backward compression wave (Wb) s
re_wba Area of backward compression wave (Wb) J/m2*
re_wf2i Intensity of forward compression wave 2 (W2) W/m2*
re_wf2t Time of peak of forward compression wave 2 (W2) s
re_wf2a Area of forward compression wave 2 (W2) J/m2*
wri Wave reflection index No units
rhoc Wave speed m/s

* if calibrated.

References

  1. Davies JE, Lacy P, Tillin T, et al. Excess pressure integral predicts cardiovascular events independent of other risk factors in the conduit artery functional evaluation substudy of Anglo-Scandinavian Cardiac Outcomes Trial. Hypertension 2014; 64(1): 60-8.
  2. Sluyter JD, Hughes AD, Camargo CA, Jr., Lowe A, Scragg RKR. Relations of Demographic and Clinical Factors With Cardiovascular Autonomic Function in a Population-Based Study: An Assessment By Quantile Regression. Am J Hypertens 2017; 31(1): 53-62.
  3. Munoz ML, van Roon A, Riese H, et al. Validity of (Ultra-)Short Recordings for Heart Rate Variability Measurements. PLoS One 2015; 10(9): e0138921.
  4. Shaffer F, Ginsberg JP. An Overview of Heart Rate Variability Metrics and Norms. Front Public Health 2017; 5: 258.
  5. van Roon AM, Snieder H, Lefrandt JD, de Geus EJ, Riese H. Parsimonious Correction of Heart Rate Variability for Its Dependency on Heart Rate. Hypertension 2016; 68(5): e63-e5.
  6. Hughes AD, Park C, Ramakrishnan A, Mayet J, Chaturvedi N and Parker KH. Feasibility of Estimation of Aortic Wave Intensity Using Non-invasive Pressure Recordings in the Absence of Flow Velocity in Man. Front Physiol 2020; 11:550. doi: 10.3389/fphys.2020.00550
  7. Hughes AD, Park C, Ramakrishnan A, Mayet J, Chaturvedi N, Parker KH. Feasibility of Estimation of Aortic Wave Intensity Using Non-invasive Pressure Recordings in the Absence of Flow Velocity in Man. Front Physiol 2020; 11: in press.
  8. Westerhof N, Westerhof BE. The reservoir wave paradigm discussion. J Hypertens 2015; 33(3): 458-60.
  9. Wang J, Jr., O'Brien AB, Shrive NG, Parker KH, Tyberg JV. Time-domain representation of ventricular-arterial coupling as a windkessel and wave system. Am J Physiol Heart Circ Physiol 2003; 284(4): H1358--68.
  10. Hametner B, Wassertheurer S, Kropf J, et al. Wave reflection quantification based on pressure waveforms alone--methods, comparison, and clinical covariates. Comput Meth Prog Bio 2013; 109(3): 250-9.

Footnotes

[a]: since Sphygmocor data is cropped at the foot of the waveform peak systole has been used as the fiducial point of the waveform to calculate beat to beat intervals.

[b]: the details of the procedure used by ARCSOLVER are not in the public domain

[c]: 0 = ok; 1 = Pinf > diastolic pressure; 2 = rate constant b < 0; 3 = time of maximum reservoir pressure > end of systole