BRS
Several methods to estimate baroreflex sensitivity (BRS) have been defined, many of which are contained in this package. All methods require the following inputs:
- RR: The RR Interval series in ms
- SBP: The systolic blood pressure in mmHg
Several methods can be tweaked by using keywords, though the most common and recommended parameters are set as default.
Cardio.BRS.getBRS
— Function getBRS(RR::Vector{<:Real}, SBP::Vector{<:Real})
Returns all BRS measures with default settings for individual methods. For more control use each method individually.
Methods
- SME: Sequence Method
- RMSSDR: RMSSD ratio
- xBRS: Cross-correlation baroreflex sensitivity
- TFBRS: Transfer Function based BRS (fft)
- PRSABRS: Phase Rectified Signal Averaging
- αLF: LF component of the AR based spectral decomposition
- αHF: HF component of the AR based spectral decomposition
Sequence Method
Cardio.BRS.sme
— Functionsme(RR::Vector{<:Real}, SBP::Vector{<:Real}; thresholdRR::Float64 = 4.0, thresholdSBP::Float64 = 1.0, seqLen::Int = 3, delay::Int = 1, minCor::Float64 = 0.8)
Calculate the Baroreflex Sensitivity (BRS) for a serious of RR intervals and respective systolic blood pressure using the Sequence Method (SME).
Keywords:
- thresholdRR: Threshold for change in RR interval to qualify for a valid sequence (literature: 4ms)
- thresholdSBP: Threshold for change in SBP to qualify for a valid sequence (literature: 1mmHg)
- seqLen: Minimum length of a valid sequence (literature: 3)
- delay: Delay between RR and SBP (literature: 1)
- minCor: The minimal correlation between RR and SBP in a sequence to qualify as a valid sequence
Return:
Returns a SME struct for which a plotting recipe is provided, so that found sequences can be inspected by calling plot()
when using Plots.jl
Cardio.BRS.SME
— TypeStruct that stores all information related to the sequence method. The main result is stored in 'value'. It can be plotted for visual inspection.
result = BRS.sme(input.RR, input.SBP)
plot(result, dpi = 120)
xBRS Method
Cardio.BRS.xbrs
— Functionxbrs(RR::Vector{<:Real}, SBP::Vector{<:Real};...)
Calculate the xBRS index for the assesment of baroreflex sensitivity. Based on Westerhof, B. E. et al. (2004). Time-domain cross-correlation baroreflex sensitivity: performance on the EUROBAVAR data set. Journal of hypertension, 22(7), 1371-1380
Keyword Arguments
- minCor: Minimal significant correlation, dafaults to 0.632 (p = 0.05, two-sided for 10 s window)
- tExcerpt: Length of the sliding window in seconds, defaults to 10 s
- delays: Which delays, shift of the RR window shall be considered, defaults to 0:5
Return
Returns an xBRS structure, that can be be plotted for visual inspection.
Cardio.BRS.xBRS
— TypeStruct that stores all information regarting the xBRS etimation. The final result is stored in 'xBRSg'. It can be plotted for visual inspection.
result = BRS.xbrs(input.RR, input.SBP)
plot(result, dpi = 120)
RMSSD Ratio
Cardio.BRS.rmssdr
— Functionrmssdr(RR::Vector{<:Real}, SBP::Vector{<:Real})
Returns the RMSSD ratio := RMSSD(RR) / RMSSD(SBP)
Transfer Function Method
Cardio.BRS.tfbrs
— Functiontfbrs(RR::Vector{<:Real}, SBP::Vector{<:Real}; ...)
Transfer function based BRS measure as defined by Robbe et al.
Keyword Arguments
- n: length of hamming window for spectral estimation, defaults to length(RR) ÷ 10
- minCoh: minimal valid coherence, defaults to 0.5
- LF: The frequency range defined as low frequency, defaults to (0.04, 0.15)
Cardio.BRS.tfBRS
— TypeStruct that stores all information regarding the tfBRS estimation. The final result is stored in 'value'. It can be plotted for visual inspection.
result = BRS.tfbrs(input.RR, input.SBP, n = 100)
plot(result, dpi = 120)
Spectral AR-based Method
Cardio.BRS.arbrs
— Functionarbrs(RR::Vector{<:Real}, SBP::Vector{<:Real}; p::Union{Int, UnitRange{Int}} = 12:18, nfreq::Int = 256, sf::Real = 1, LF::Tuple{<:Real, <:Real} = (0.04, 0.15), HF::Tuple{<:Real, <:Real} = (0.15, 0.4))
Calculate the BRS indices αLF, αHF using AR spectral decomposition.
Keywords
- p: order of the AR process, if a UnitRange is given, the optimal order will be chosen through AIC, defaults to 12:18.
- nfreq: resolution of the analysed spectra, defaults to 256
- sf: sampling frequency in Hz, defaults to 1
- LF: Tuple that defined the LF band, defaults to (0.04, 0.15)
- HF: Tuple that defined the HF band, defaults to (0.15, 0.4)
- verbose: print some information oder selection, defaults to false
Cardio.BRS.arBRS
— TypeStruct that stores all information regarding the arBRS estimation. The final result is stored in αLF
& αHF
. It can be plotted for visual inspection.
result = BRS.arbrs(input.RR, input.SBP; sf = 1000 / mean(input.RR))
plot(result, dpi = 120)
Phase-Rectified Signal Averaging Method
Source: Bauer, A., Morley-Davies, A., Barthel, P., Müller, A., Ulm, K., Malik, M., & Schmidt, G. (2010). Bivariate phase-rectified signal averaging for assessment of spontaneous baroreflex sensitivity: pilot study of the technology. Journal of electrocardiology, 43(6), 649-653. DOI
Cardio.BRS.prsabrs
— Functionprsabrs(RR::Vector{<:Real}, SBP::Vector{<:Real}; L::Int = 15)
Calculate a measure for BRS based on phase-rectified signal averaging as defined by Bauer et al. 2010.
Keywords
- L: defines the segment length as 2L+1
Cardio.BRS.prsaBRS
— TypeStruct that stores all information regarding the prsaBRS estimation. The final result is stored in value
or valueNorm
for a normalized value. It can be plotted for visual inspection.
result = BRS.prsabrs(input.RR, input.SBP)
plot(result, dpi = 120)