nature protocols: doi:10.1038/nprot.2015€¦ · telemetric ecg hrv whole mount san calcium imaging...
TRANSCRIPT
Supplementary Figure 1
Step-by-step exposure and dissection of the SAN.
(a) Posterior view of the isolated heart with tissue that must be removed for SAN dissection. (b) Lungs, esophagus, large parts of the thymus and fat are removed to expose the central SAN region. At this stage it is already possible to dissect the SAN. Black arrow heads: vagus nerve, white arrow heads: sulcus terminalis. (c) Same heart after complete removal of excess tissue. The white dotted line indicates the cutting line for SAN dissection. The white dot indicates the area where the SAN should be gently hold with fine forceps for isolation. Other parts should not be touched to avoid damage of the central SAN region. Please note that removal of all surrounding tissue was done for demonstration purposes only and is not necessary for SAN dissection. (d) The SAN was dissected and is placed on the ventricles for demonstration. The white dot indicates the area where the SAN was grabbed with fine forceps. Th: thymus, Lu: parts of the lung, Es: esophagus, RAA: right atrial appendage, LV: left ventricle, RV: right ventricle, SAN: sinoatrial node, ST: sulcus terminalis, SVC: right superior vena cava, IVC: inferior vena cava, VN: vagus nerve, Ao: Aorta. Scale bar: 1 mm.
Nature Protocols: doi:10.1038/nprot.2015.139
Supplementary Figure 2
Dissection of a whole mount SAN preparation of a gelatin-inflated heart.
(a) Dorsal view of the heart. All excess tissue and organs were removed. The white dotted line indicates the first cutting line along the sulcus coronarius. The second cut (yellow dotted line) is made after folding up the RAA and cutting along the sulcus coronarius up to the superior caval vein. The third cut (black dotted line) is made slightly left of the IVC along the intraatrial septum up to the SVC. The whole mount preparation is isolated completely by making a connecting cut (red dotted line) between the root of the aorta and the root of the right superior caval vein. SVC: right superior vena cava, IVC: inferior vena cava, PV: pulmonary veins, RAA: right atrial appendage, LV: left ventricle, RV: right ventricle, Ao: Aorta (b) The first incision is indicated by white arrow heads. The second and third incision cannot be seen because they lie behind the RAA and IVC, respectively. (c) The last connecting cut leads to complete isolation of the whole mount SAN preparation. (d) Heart together with whole mount SAN preparation. Scale bar: 1 mm.
Nature Protocols: doi:10.1038/nprot.2015.139
Supplementary Figure 3
Ventral view of the gelatin- inflated heart.
Black dotted line indicates optimal length of Aorta for cannulation. Ao: Aorta; LCA: left carotid artery; RCA: right carotid artery; PT: pulmonary truncus; RSA: right subclavian artery; LAA: left atrial appendage; RAA: right atrial appendage, LV: left ventricle: RV: right ventricle. Scale bar: 1 mm
Nature Protocols: doi:10.1038/nprot.2015.139
1
Comprehensive Multi-level in vivo and in vitro Analysis of Heart Rate Fluctuations in
Mice by ECG Telemetry and Electrophysiology.
Fenske S., Pröbstle R., Auer F., Hassan S., Marks V., Pauza D., Biel M., Wahl-Schott C.
Supplementary Table 1 │ Development of the protocol
Mouse models with increased HRV
References In vivo SAN network Isolated SAN cells
(Fenske et al., 2013)
Telemetric ECG
HRV, TP, VLF, LF, HF
SDNN, RMSDD
Langendorff heart and Whole mount SAN microelectrode recordings
fluctuation
Current clamp
(Le Scouarnec et al., 2008)
Telemetric ECG
HRV
Whole mount SAN calcium imaging
fluctuation
Current clamp
afterdepolarizations Confocal imaging
fluctuation
(Posokhova et al., 2010)
Telemetric ECG
SDNN
Whole heart
Rgs6: HRV, TP, LF, HF
Girk4: HRV, TP, HF
Calcium imaging
fluctuation: Rgs6
(Neco et al., 2012)
Telemetric ECG
SDNN
Whole mount SAN calcium imaging
fluctuation under Isoproterenol
Calcium imaging
fluctuation under Isoproterenol
(Ecker et al., 2006)
Telemetric ECG
HRV, LF, HF
SDNN
(Joaquim et al., 2004)
Telemetric BP
HRV, LF
(Tank et al., 2004)
Telemetric BP
HRV, TP, LF, HF
(Williams et al., 2003)
Telemetric BP
HRV, TP, LF, HF
Mouse models with decreased HRV
References In vivo SAN network Isolated SAN cells
(Hao et al., 2011) Surface ECG
HRV
Whole mount SAN microelectrode array recording
sinoatrial conduction time
AP model of murine SAN cells
frequency
(Mesirca et al., 2013)
Telemetric ECG
HRV, TP, HF
Langendorff heart
beating rate under Ach compared to WT
Current clamp
beating rate under Ach compared to WT
(Direnberger et al., 2012)
Telemetric ECG
HRV, TP, LF, HF
Embryonic heart and Whole mount SAN
(Hajiasgharzadeh et al., 2011)
Surface ECG
SDNN
Isolated atria
(Pelat et al., 2003) Telemetric BP
HRV, HF
VLF
Nature Protocols: doi:10.1038/nprot.2015.139
2
Supplementary Table 1 │ Development of the protocol (continued)
Mouse models with decreased HRV
References In vivo SAN network Isolated SAN cells
(Wickman et al., 1998)
Telemetric ECG
HRV, TP, LF, HF
(Zuberi et al., 2008)
Telemetric ECG
Gi2: HRV, HF, LF
(Uechi et al., 1998) Telemetric ECG / BP
HRV, TP, LF, HF
(Mansier et al., 1996)
Telemetric ECG
HRV, TP, LF, HF
(Pham et al., 2009) Telemetric ECG
SDNN, RMSDD
(Rokosh and Simpson, 2002)
Telemetric BP
HRV
(Gross et al., 2005) Telemetric BP
HRV, LF, HF
(Fazan et al., 2005) Indwelling BP catheter
LF
(Chen et al., 2005) Telemetric BP
HRV, LF, HF
(Sebastian et al., 2013)
Telemetric ECG
Gs: HRV, LF
Gi2: HRV, HF
(Zhang et al., 2014)
Telemetric ECG
HRV, HF under propranolol
(Corey et al., 2006) Telemetric ECG
HRV, TP, VLF, LF, HF
(Chu et al., 2002) Surface ECG
HRV
(Wu et al., 2006) Telemetric ECG
3: HRV, TP, LF, HF
(Dev et al., 2010) Surface ECG
HRV
Nature Protocols: doi:10.1038/nprot.2015.139
3
Supplementary Table 2 │Animal health score sheet
Nature Protocols: doi:10.1038/nprot.2015.139
4
Supplementary Method 1
Commented MATLAB script 1│Peak detection
Contents
1. Description
2. Upload data
3. Find peaks*
4. Save
*contains changeable values
1. Description Matlab script for peak detection
peak_detect (filename, sheet, range, Fs)
Input: filename : name of the file in which raw-data is stored (xls file)
Fs: sampling frequency of ECG data (in Hz)
Output: NN NN data
function [NN] = peak_detect(filename, sheet, range, Fs)
2. Upload reads data from excel file (filename, sheet, range)
ECGtrace = xlsread(filename, sheet, range);
3. Find peaks Changeable value: threshold for peak detection
Find highest peak:
Max_ecg = max(ECGtrace);
Define threshold for peak detection:
threshold = 0.2*Max_ecg;
len = length(ECGtrace);
time = 0:(1/Fs):(len-1)/Fs;
time_trace = len/Fs;
ECG_trace = ECGtrace;
ECG_trace = max(ECG_trace, threshold);
Find peaks above threshold:
[pks,locs] = findpeaks(ECG_trace);
Calculate NN:
NN = diff(locs);
Nature Protocols: doi:10.1038/nprot.2015.139
5
4. Figures
figure
plot(time,ECGtrace,'k');
xlabel('time [s]');
ylabel('voltage [mV]');
hold on
plot(locs/Fs,pks,'rx');
hold on
line([0 time_trace],[threshold threshold])
legend('ECG trace','recognized heartbeats','threshold for spikes')
figure
plot(NN,'.')
ylabel('NN intervals [ms]')
xlabel('beat number')
axis([0 length(NN) 0 200])
5. Save
Save NN data:
a ='tachogram';
extI = '.xls';
res = strcat(filename, a, extI);
d = {'NN [ms]';NN};
xlswrite(res,d)
Nature Protocols: doi:10.1038/nprot.2015.139
6
Supplementary Method 1
Commented MATLAB script 2 │Determination of the model order
Contents
1. Description
2. Upload data
3. Remove trend
4. Interpolation*
5. Model order estimation*
6. Figures
*contains changeable values
1. Description Matlab script for AR model order estimation
model_order (filename, sheet, range);
Input: array with arbitrary length containing NN intervals; data is loaded from a Microsoft Excel file
filename : name of the file in which raw-data is stored (xls file)
interpolation : 'linear' or 'spline'
function model_order(filename, sheet, range)
2. Upload data reads data from excel file (filename, sheet, range)
datNN = xlsread(filename, sheet, range);
3. Detrend removes DC component from signal;
moves data to mean = 0
data = detrend(dat,'constant');
data1 = detrend(dat1,'constant');
detrending: smoothness prior(1)
Changeable value: g (determines the cut off frequency; g cut-off f. )
length_data = length(data);
g = 40;
Mat = speye(length_data);
Mat_2 = spdiags(ones(length_data-2,1)*[1 -2 1], [0:2], length_data-2,length_data);
data = (Mat-inv(Mat+g^2*Mat_2’*Mat_2))*data;
Nature Protocols: doi:10.1038/nprot.2015.139
7
4. Interpolation Linear ('linear') or cubic spline ('spline') interpolation
length of datafile:
timems = sum (datNN);
Changeable value: Step size (50ms step size results in a sampling rate of 20Hz)
number of data points for interpolation (20Hz):
step = 50; %[ms]
dataPoints = timems/step;
L =length(data);
define delta
delta = L/(dataPoints);
create vector from 1 to; step size = delta
v = 1:delta:L;
create vector from 1 to; step size = 1
ve = 1:L;
Interpolation:
valinterp_long = interp1(ve,data',v,interpolation);
reduce interpolated data to 2048 data points:
if length(valinterp_long)>= 2048
valinterp = valinterp_long(1:2048);
else
valinterp = valinterp_long;
disp('not enough data points <2048')
disp(length(valinterp))
end
5. Autoregressive model Estimate model order for autoregressive models
Reflection Coefficients to identify the order of the AR model
Changeable values: AR model
AR models: Burg’s method (arburg),
Yule-Walker method (aryule)
Covariance method (arcov)
e = zeros(120,1);
AICburg = zeros(120,1);
for p = 1:120 % tested model orders
[a,ki(p)] = arburg(valinterp,p);
Nature Protocols: doi:10.1038/nprot.2015.139
8
estimated Error with Burg´s method
e(p) = ki(p);
Calculation of AIC value(2)
AICburg(p) = length(valinterp)*log(((e(p))^2))+2*p;
end
6. Figures
Figure [Partial Autocorrelation function, AIC Value]
Partial Autocorrelation
W = figure('units','normalized','outerposition',[0 0 1 1]);
subplot(2,2,1:2)
parcorr(valinterp,90)
set(gca,'FontSize',14)
AIC Value
subplot(2,2,1:2)
title('Estimation Model Orders');
set(gca,'FontSize',14)
plot(AICburg,'k')
7. References (1) Tarvainen, M., P. Ranta-Aho and P. Karjalainen, 2002. An advanced detrending method with
application to HRV analysis. IEEE Trans. Biomed. Eng., 49(2): 172-175.
(2) Takalo, Reijo, Heli Hytti, and Heimo Ihalainen. "Tutorial on univariate autoregressive spectral
analysis." Journal of clinical monitoring and computing19.6 (2005): 401-410.
Nature Protocols: doi:10.1038/nprot.2015.139
9
Supplementary Method 1
Commented MATLAB script 3│HRV calculation
Contents
1. Description
2. Upload data
3. Ectopic beats*
4. Calculate time domain parameters
5. Detrend*
6. Interpolation*
7. Fast-Fourier Transformation*
8. Autoregressive model*
9. Poincare plot
10. Figures
11. Power in different frequency bands
12. Save
13. References
*contains changeable values
1. Description Matlab script for heart rate variability analysis
HRV (name,filename,sheet,range,interpolation,burg)
Input: array with arbitrary length containing NN intervals; data is loaded from a Microsoft Excel file
name : new filename with which data and figures are saved
filename : name of the file in which raw-data is stored (xls file)
interpolation : 'linear' or 'spline'
burg : model order for AR model
Settings:
Interpolation : linear interpolation or cubic spline
Order of Autoregression model : -identification via partial autocorrelation
-identification via Akaike´s Information Criterion (AIC) AIC =
N*log(std(e)^2)+2*M N: number of data points e: prediction error M: model
order Takalo et al., Tutorial on univariate autoregressive spectral analysis
(2005) J Clin Monit Comput pp.401-410
Fourier transformation:
window hamming
window_size 1024
overlap 512
Frequency bands:
VLF 0Hz - 0.4Hz
LF 0.4Hz - 1.5Hz
HF 1.5Hz - 4Hz
Nature Protocols: doi:10.1038/nprot.2015.139
10
Output:
Mean (mean of the NN intervals in [ms])
SDNN (standard deviation of the NN intervals)
RMSSD (root mean square of the successive difference)
pNNx per (percentage of consecutive NN intervals that
differ more than x ms)
STV (STV: dispersion (standard deviation) of points
perpendicular to the axis of line of identity)
LTV (dispersion (standard deviation) of points
along the axis of line of identity)
TP (total power of the frequencies)
VLF (power in the very low frequency band)
LF (power in the low frequency band)
HF (power in the high frequency band)
VLFper (fraction of the very low frequency band)
LFper (fraction of the low frequency band)
HFper (fraction of the high frequency band)
function [d]=HRV(name,filename,sheet,range,interpolation,burg)
2. Upload data reads data from excel file (filename, sheet, range)
datNN= xlsread(filename,sheet, range);
3. Ectopic beats removes ectopic beats from further analysis
Changeable values: Criteria for removal of ectopic beats: (x% difference from a moving average or x*STD of a
moving window)
Length of the track:
le=numel(datNN);
datN=datNN;
Removes beats that are outside a 20% border around the moving average
window_size = 80;
mov_av=tsmovavg(datNN,'s',window_size,1);
for h = 1:le
if abs(datNN(h))< 0.80*mov_av(h) || abs(datNN(h))>1.20*mov_av(h)
datN(h)=0;
end
end
Nature Protocols: doi:10.1038/nprot.2015.139
11
Removes beats that differ more than x*STD from a moving window
win = 5;
for h=win+1:le-win-1
if abs(datNN(h)-datNN(h+1))> 3*std(datNN(h-win):((h+win));
datN(h)=0;
end
end
datN = datN(datN~=0);
New data without ectopic beats in [s]:
dat=datN/1000;
Original data in [s]:
dat1=datNN/1000;
4. Calculate time domain parameters Mean, SDNN, RMSSD
Mean:
meanNN= mean(datN);
Standard deviation:
SDNN= rms(datN-mean(datN)) ;
Root mean square of the standard deviation:
rmd = zeros(length(datN)-1,1);
for j=1:(length(datN)-1)
rmd(j) = (datN(j)-datN(j+1));
end
RMSSD = rms(rmd);
Calculate pNN6ms
Length of data:
totNN= length(dat);
x=6/1000;
nnp=0;
nnm=0;
for i = 1:(totNN-1)
if (dat(i)-dat(i+1))> x
nnp = nnp +1;
end
Nature Protocols: doi:10.1038/nprot.2015.139
12
if (dat(i)-dat(i+1))< - x
nnm = nnm +1;
end
end
pNNp = nnp/totNN * 100;
pNNm = nnm/totNN * 100;
pNN percentage
PNNper = (nnp+nnm)/totNN*100;
5. Detrend removes DC component from signal;
moves data to mean = 0
detrending: smoothness prior OR polynomial detrending
data=detrend(dat,'constant');
data1=detrend(dat1,'constant');
detrending: smoothness prior(1)
Changeable value: g (determines the cut off frequency; g cut-off f. )
length_data = length(data);
g = 40;
Mat = speye(length_data);
Mat_2 = spdiags(ones(length_data-2,1)*[1 -2 1], [0:2], length_data-2,length_data);
data = (Mat-inv(Mat+g^2*Mat_2’*Mat_2))*data;
detrending: polynomial detrending
Changeable value: number of tested polynomial orders (preset: orders 1-5)
[data]=poly_detrend(data);
6. Interpolation Linear ('linear') or cubic spline ('spline') interpolation
length of data file:
timems = sum (datNN);
Changeable value: Step size (50ms step size results in a sampling rate of 20Hz)
number of data points for interpolation (20Hz):
step = 50; %[ms]
dataPoints = timems/step;
L =length(data);
define delta
delta = L/(dataPoints);
Nature Protocols: doi:10.1038/nprot.2015.139
13
create vector from 1 to; step size = delta
v = 1:delta:L;
create vector from 1 to; step size = 1
ve = 1:L;
Interpolation:
valinterp_long = interp1(ve,data',v,interpolation);
reduce interpolated data to 2048 data points:
if length(valinterp_long)>= 2048
valinterp = valinterp_long(1:2048);
else
valinterp=valinterp_long;
disp('not enough data points <2048')
disp(length(valinterp))
end
7. Fast-Fourier Transformation Power Spectral Density estimate via Welch's method
Length of the track:
time =(length(valinterp)*step)/1000;
Length of signal (e.g 103s):
LUN =length(valinterp);
Sampling frequency
Fs = LUN/time;
Sample time
T = 1/Fs;
Time vector for interpolated data:
tint = (0:LUN-1)*T;
N=size(valinterp);
Next power of 2 from length of y:
NFFT = 2.^nextpow2(LUN);
Time vector for real data without ectopic beats:
time_real = sum(dat)
treal= (0:L -1)*(time_real/L);
Nature Protocols: doi:10.1038/nprot.2015.139
14
Time vector for real data:
treal1=(0:length(data1)-1)*(sum(dat1)/length(data1));
Power Spectral Density estimate via Welch's method
Changeable values: window, window size, overlap
Windows: Hamming window (hamming)
Hanning window (hann)
Rectangular window (rectwin)
Triangular window (triang)
Window: hamming
window_size = 1024;
overlap = 512;
[Pxx,f] = pwelch(valinterp',hamming(window_size),overlap,NFFT,Fs,'psd');
8. Autoregressive model Estimate model order for autoregressive models
Reflection coefficients to identify the order of the AR model
Changeable values: AR model
AR models: Burg’s method (arburg),
Yule-Walker method (aryule)
Covariance method (arcov)
e=zeros(120,1);
AICburg=zeros(120,1);
for p=1:120 % tested model orders
[a,ki(p)]=arburg(valinterp,p);
estimated Error with Burg´s method
e(p)=ki(p);
Calculation of AIC value(2)
AICburg(p)=length(valinterp)*log(((e(p))^2))+2*p;
end
Autoregressive power spectral density estimate using Burg's method
Changeable values: AR model
AR models: Burg’s method (pburg),
Yule-Walker method (pyulear)
Covariance method (pcov)
[PxxA,fA] = pburg(valinterp',burg,NFFT,Fs);
9. Poincaré plot
d = size (datN);
xpoi = datN(1:(d-1));
ypoi = datN(2:d);
Nature Protocols: doi:10.1038/nprot.2015.139
15
q=figure('units','normalized','outerposition',[0 0 1 1]);
subplot(2,3,6)
hold on
plot (xpoi,ypoi,'ko','MarkerSize',4)
axis([200 310 200 310])
ylabel('NNn+1 (ms)')
xlabel('NNn (ms)')
title('Poincarè plot');
set(gca,'FontSize',14)
Calculate STV and LTV
arg1 = (xpoi/(sqrt(2))-ypoi/(sqrt(2))); % X1=(x-y)/(sqrt(2))
STVsquare = var(arg1); % variance
STV = sqrt(STVsquare); % standard deviation
arg2 = (xpoi/(sqrt(2)) + ypoi/(sqrt(2)));
LTVsquare = var(arg2);
LTV = sqrt(LTVsquare);
10. Figures
Figure 1 [Tachogram, Poincaré plot, Welch PSD]
Tachogram
figure(q)
subplot(2,3,1:3)
plot (treal1, data1, 'LineWidth', 1)
hold on
plot (tint, valinterp,'r', 'LineWidth', 1)
hold on
plot (treal, data,'k', 'LineWidth', 1)
hold off
ylabel('NN interval (s)')
xlabel('time (s)')
title('NN data');
legend('original data','interpolated data', 'data without ectopic beats')
set(gca,'FontSize',14)
Welch PSD
subplot(2,3,4:5)
plot (f,Pxx,'k')
axis([-0.1 5 0 max(Pxx)]);
ylabel('PSD (s^2/Hz)')
xlabel('Frequency Hz')
title('PSD Welch');
set(gca,'FontSize',14)
Figure 2 [Autoregressive PSD (Burg´s method)]
AR Spectrum (Burg´s method)
w=figure('units','normalized','outerposition',[0 0 1 1]);
Nature Protocols: doi:10.1038/nprot.2015.139
16
subplot(2,2,4)
plot (fA,PxxA,'k')
axis([-0.1 5 0 max(Pxx)]);
ylabel('PSD (s^2/Hz)')
xlabel('Frequency Hz')
title('PSD Burg´s method');
set(gca,'FontSize',14)
Figure 3 [PSD Welch and Burg, Histogram]
PSD Welch and Burg
yx=figure('units','normalized','outerposition',[0 0 1 1]);
subplot(1,2,1)
plot (f,Pxx,'k','LineWidth',2)
hold on
plot (fA,PxxA,'r','LineWidth',3)
axis([-0.1 5 0 max(Pxx(96:350))]);
legend('PSD Welch', 'PSD Burg - Autoregressive method')
set(gca,'FontSize',14)
Histogram
subplot(1,2,2)
hist(datNN,15)
legend('NN intervals')
xlim([0.2 0.5])
Figure 4 [Tachogram (different scaling), Welch PSD (different scaling)]
Tachogram
z=figure('units','normalized','outerposition',[0 0 1 1]);
set(gca,'FontSize',14)
subplot(5,2,1:2)
plot (treal1,data1, 'LineWidth', 1)
hold on
plot (tint,valinterp,'r', 'LineWidth', 1)
hold on
plot (treal,data,'k', 'LineWidth', 1)
hold off
ylabel('NN interval (s)')
title('NN data');
legend('original data','interpolated data', 'data without ectopic beats')
set(gca,'FontSize',14)
set(gca,'xtick',[])
subplot(5,2,3:4)
plot (treal1,data1, 'LineWidth', 1)
hold on
plot (tint,valinterp,'r', 'LineWidth', 1)
hold on
Nature Protocols: doi:10.1038/nprot.2015.139
17
plot (treal,data,'k', 'LineWidth', 1)
hold off
ylabel('NN interval (s)')
legend('original data','interpolated data', 'data without ectopic beats')
ylim([-0.3 0.3])
set(gca,'FontSize',14)
set(gca,'xtick',[])
subplot(5,2,5:6)
plot (treal1,data1, 'LineWidth', 1)
hold on
plot (tint,valinterp,'r', 'LineWidth', 1)
hold on
plot (treal,data,'k', 'LineWidth', 1)
hold off
ylabel('NN interval (s)')
xlabel('time (s)')
legend('original data','interpolated data', 'data without ectopic beats')
ylim([-0.05 0.05])
set(gca,'FontSize',14)
Welch PSD
subplot(5,2,7)
title('Welch PSD')
plot(f,Pxx)
xlim([0 4]);
set(gca,'FontSize',14)
subplot(5,2,8)
plot(f,Pxx)
axis([0 4 0 10^-3])
set(gca,'FontSize',14)
subplot(5,2,9)
plot(f,Pxx)
axis([0 4 0 10^-4])
set(gca,'FontSize',14)
subplot(5,2,10)
plot(f,Pxx)
axis([0 4 0 10^-5])
set(gca,'FontSize',14)
Nature Protocols: doi:10.1038/nprot.2015.139
18
11. Power in different frequency bands
Length of frequency axis
nu = length(f);
Last value of f
a = f(nu);
Frequencies from 0 to 0.4 Hz: VLF
VLFl = 1; lower border for very low freq
VLFh = (nu*0.4)/a; upper border for very low freq
VLF = sum(Pxx(VLFl:VLFh)); sum of very low freq Pxx
Frequencies from 0.4 to 1.5 Hz: LF
LFl = VLFh+1; lower border
LFh = (nu*1.5)/a; upper border
LF = sum(Pxx(LFl:LFh)); sum of low freq Pxx
Frequencies from 1.5 to 4 Hz: HF
HFl = LFh+1; lower border
HFh = (nu*4)/a; upper border
HF = sum(Pxx(HFl:HFh)); sum of high freq Pxx
Calculate percentage of high and low frequency power
Total power:
TP = sum(Pxx(1:HFh));
[%] of total power
VLFper = VLF/TP*100;
LFper = LF/(TP)*100
HFper = HF/(TP)*100;
ratio=LF/HF;
Pow=figure('units','normalized','outerposition',[0 0 1 1]);
bar_Matrix=[TP VLF LF HF];
h=bar(bar_Matrix,'k');
l = cell(1,4);
l{1}='Total Power'; l{2}='VLF'; l{3}='LF'; l{4}='HF';
set(gca,'xticklabel', l)
ylabel('Power s^2/Hz')
ylim([0 0.15])
set(gca,'FontSize',14)
Nature Protocols: doi:10.1038/nprot.2015.139
19
12. Save Write excel file with calculated values
extI = '.xls';
res = strcat(name,extI);
Save figures
a=strcat(name,filename,'_Autocorr.jpeg');
b=strcat(name,filename,'_Tachogram.jpeg');
c=strcat(name,filename,'_Histo.jpeg');
d=strcat(name,filename,'_Spectrum.jpeg');
e=strcat(name,filename,'_Power.jpeg');
hgexport(w, a, hgexport('factorystyle'), 'Format', 'jpeg');
hgexport(q, b, hgexport('factorystyle'), 'Format', 'jpeg');
hgexport(yx, c, hgexport('factorystyle'), 'Format', 'jpeg');
hgexport(z, d, hgexport('factorystyle'), 'Format', 'jpeg');
hgexport(Pow, e, hgexport('factorystyle'), 'Format', 'jpeg');
d = {'meanNN [ms]', 'SDNN','RMSSD','NN+x', 'NN-x', 'pNN+x', 'pNN-x','PNNperxms
[%]','STV', 'LTV', 'TP',...
'VLF','LF', 'HF','VLFper [%]', 'LFper [%]', 'HFper [%]'; meanNN SDNN...
RMSSD nnp nnm pNNp pNNm PNNper STV LTV TP VLF LF HF VLFper LFper HFper};
close all
xlswrite(res, d)
13. References
(3) Tarvainen, M., P. Ranta-Aho and P. Karjalainen, 2002. An advanced detrending method with
application to HRV analysis. IEEE Trans. Biomed. Eng., 49(2): 172-175.
(4) Takalo, Reijo, Heli Hytti, and Heimo Ihalainen. "Tutorial on univariate autoregressive spectral
analysis." Journal of clinical monitoring and computing19.6 (2005): 401-410.
Nature Protocols: doi:10.1038/nprot.2015.139
20
Supplementary Method 1
Commented MATLAB script 4│Polynomial detrending
Contents
1. Description
2. Polynomial order*
3. Remove trend
*contains changeable values
1. Description Matlab script for detrending
[detrended, poly_order] = poly_detrend(data)
Input: data: data with trend
Output: detrended: detrended data
poly_order: polynomial order (which was fitted to the data and removed)
function [detrended, poly_order] = poly_detrend(data)
3. Polynomial order changeable value: highest tested order
time = 1:length(data);
highest tested order:
z = 8;
total_er = NaN(1,z);
for n = 1:z
[p,S] = polyfit(time',data,n);
[FIT, er]=polyval(p,time,S);
total_er(n) = sum(er);
warning('off','all')
end
4. Remove trend Removes trend from data
Poly = 1:z;
[a,poly_order] = min(total_er);
p_ = polyfit(time',data,poly_order);
trend = polyval(p_,time);
detrended = data-trend';
Nature Protocols: doi:10.1038/nprot.2015.139
21
Supplementary Method 2 │FFT window calculation
Number of data points: N
Number of segments: x
Length of segment: l = α ∙ N
Percent overlaping: β
overlaping part of segment: s = β ∙ α ∙ N
Non overlaping part of Segment: y = (α ∙ N) - (β ∙ α ∙ N)
N = α ∙ N + (x-1) ∙ y
N = α ∙ N + (x-1) ∙ ((α ∙ N) - (β ∙ α ∙ N))
Factorise:
N = α ∙ N (1+ (x-1) - (x-1) ∙ β )
Divide by N
1 = α ∙ (1+ (x-1) - (x-1) ∙ β )
α = 1/(1+(x -1) - (x -1) ∙ β)
Number of FFT bins: N/2
N/2 = 2048/2 = 1024 FFT bins
Frequency resolution: Δf = NyF/number of bins
Nature Protocols: doi:10.1038/nprot.2015.139
22
NyF/number of bins = 10Hz/1024 bins = 9.77 ∙ 10-3 Hz/bin
To calculate the length of one segment by given x and given β you first have to calculate α.
Example: x = 5 and 25% overlap (β = 0.25)
α = 1/(1+(x -1) - (x -1) ∙ β)
calculate α with the formula:
α = 1/(1+ 4 - 4 ∙ 0.25) = 1/4 = 0.25
To get the length l, multiply α with the total number of data points:
l = α ∙ N = 0.25 ∙ 2048 = 512
To get the number of overlapping data points multiply the overlap (β) with the length of one
segment:
s = β ∙ α ∙ N = 0.25 ∙ 0.25 ∙ 2048 = 128
Using the formulas specified above, the total fft points N can easily be calculated when the
desired resolution/point number, the number of windows and the overlap of the windows is
known through simple rearrangement.
Or if you have a time series of ECG, or action potentials of a limited time, the resolution of the
periodogram can be calculated when changing the numbers of windows or varying the overlap.
During the setup and validation phase of the method these considerations are important.
Nature Protocols: doi:10.1038/nprot.2015.139
23
Supplementary Method 3 │Model-based autoregressive spectral analysis
Frequency domain analysis can also be performed using autoregressive (AR) modeling. The
advantage of the AR model is that its frequency resolution is higher as compared to power
spectral density estimation via the fast fourier transformation (FFT). Furthermore, the AR
model can be used for parametric estimation of the main characteristics of the power spectral
density of HRV, especially to resolve peak frequencies and to display a more normalized shape
in the power graphics. We usually calculate the frequency bands using FFT, because FFT
calculations are more accurate than autoregressive models. In graphs we also use the
autoregressive method for illustration of the main oscillatory components of HRV.
An AR model of the oscillatory components present in the stationary segments of the RR
interval time series is calculated as follows: The current RR value of the series 𝑥(𝑛) is
expressed as a linear function of previous values plus an error term 𝑒(𝑛).
𝑥(𝑛) = −𝑎(1)𝑥(𝑛 − 1) − 𝑎(2)𝑥(𝑛 − 2) − ⋯
−𝑎(𝑝)𝑥(𝑛 − 𝑝) + 𝑒(𝑛)
The equation incorporates p previous terms and represents a model of order p. It is commonly
rewritten as:
𝑥(𝑛) = − ∑ 𝑎(𝑘)𝑥(𝑛 − 𝑘) + 𝑒(𝑛)
𝑝
𝑘=1
The model parameters a(k) and x(n-k) are determined using the Levinson-Durbin recursion
to solve the Yule Walker equation or using Burg´s method. This procedure allows for the
automatic quantification of the centre frequency and power of each relevant oscillatory
component present in the time series. In Supplementary Software MATLAB script 2
parameter settings for the AR model are specified.
Nature Protocols: doi:10.1038/nprot.2015.139
24
SUPPLEMENTARY REFERENCE LIST
Fenske S, Krause SC, Hassan SI, Becirovic E, Auer F, Bernard R, Kupatt C, Lange P, Ziegler T, Wotjak CT, Zhang H, Hammelmann V, Paparizos C, Biel M, Wahl-Schott CA (2013) Sick sinus syndrome in HCN1-deficient mice. Circulation 128:2585-2594.
Le Scouarnec S, Bhasin N, Vieyres C, Hund TJ, Cunha SR, Koval O, Marionneau C, Chen B, Wu Y, Demolombe S, Song LS, Le Marec H, Probst V, Schott JJ, Anderson ME, Mohler PJ (2008) Dysfunction in ankyrin-B-dependent ion channel and transporter targeting causes human sinus node disease. Proceedings of the National Academy of Sciences of the United States of America 105:15617-15622.
Posokhova E, Wydeven N, Allen KL, Wickman K, Martemyanov KA (2010) RGS6/Gbeta5 complex accelerates IKACh gating kinetics in atrial myocytes and modulates parasympathetic regulation of heart rate. Circulation research 107:1350-1354.
Neco P, Torrente AG, Mesirca P, Zorio E, Liu N, Priori SG, Napolitano C, Richard S, Benitah JP, Mangoni ME, Gomez AM (2012) Paradoxical effect of increased diastolic Ca(2+) release and decreased sinoatrial node activity in a mouse model of catecholaminergic polymorphic ventricular tachycardia. Circulation 126:392-401.
Ecker PM, Lin CC, Powers J, Kobilka BK, Dubin AM, Bernstein D (2006) Effect of targeted deletions of beta1- and beta2-adrenergic-receptor subtypes on heart rate variability. American journal of physiology Heart and circulatory physiology 290:H192-199.
Joaquim LF, Farah VM, Bernatova I, Fazan R, Jr., Grubbs R, Morris M (2004) Enhanced heart rate variability and baroreflex index after stress and cholinesterase inhibition in mice. American journal of physiology Heart and circulatory physiology 287:H251-257.
Tank J, Jordan J, Diedrich A, Obst M, Plehm R, Luft FC, Gross V (2004) Clonidine improves spontaneous baroreflex sensitivity in conscious mice through parasympathetic activation. Hypertension 43:1042-1047.
Williams TD, Chambers JB, Gagnon SP, Roberts LM, Henderson RP, Overton JM (2003) Cardiovascular and metabolic responses to fasting and thermoneutrality in Ay mice. Physiology & behavior 78:615-623.
Hao X, Zhang Y, Zhang X, Nirmalan M, Davies L, Konstantinou D, Yin F, Dobrzynski H, Wang X, Grace A, Zhang H, Boyett M, Huang CL, Lei M (2011) TGF-beta1-mediated fibrosis and ion channel remodeling are key mechanisms in producing the sinus node dysfunction associated with SCN5A deficiency and aging. Circulation Arrhythmia and electrophysiology 4:397-406.
Mesirca P, Marger L, Toyoda F, Rizzetto R, Audoubert M, Dubel S, Torrente AG, Difrancesco ML, Muller JC, Leoni AL, Couette B, Nargeot J, Clapham DE, Wickman K, Mangoni ME (2013) The G-protein-gated K+ channel, IKACh, is required for regulation of pacemaker activity and recovery of resting heart rate after sympathetic stimulation. The Journal of general physiology 142:113-126.
Direnberger S, Mues M, Micale V, Wotjak CT, Dietzel S, Schubert M, Scharr A, Hassan S, Wahl-Schott C, Biel M, Krishnamoorthy G, Griesbeck O (2012) Biocompatibility of a genetically encoded calcium indicator in a transgenic mouse model. Nature communications 3:1031.
Pelat M, Dessy C, Massion P, Desager JP, Feron O, Balligand JL (2003) Rosuvastatin decreases caveolin-1 and improves nitric oxide-dependent heart rate and blood pressure variability in apolipoprotein E-/- mice in vivo. Circulation 107:2480-2486.
Wickman K, Nemec J, Gendler SJ, Clapham DE (1998) Abnormal heart rate regulation in GIRK4 knockout mice. Neuron 20:103-114.
Zuberi Z, Birnbaumer L, Tinker A (2008) The role of inhibitory heterotrimeric G proteins in the control of in vivo heart rate dynamics. American journal of physiology Regulatory, integrative and comparative physiology 295:R1822-1830.
Uechi M, Asai K, Osaka M, Smith A, Sato N, Wagner TE, Ishikawa Y, Hayakawa H, Vatner DE, Shannon RP, Homcy CJ, Vatner SF (1998) Depressed heart rate variability and arterial baroreflex in conscious transgenic mice with overexpression of cardiac Gsalpha. Circulation research 82:416-423.
Nature Protocols: doi:10.1038/nprot.2015.139
25
Mansier P, Medigue C, Charlotte N, Vermeiren C, Coraboeuf E, Deroubai E, Ratner E, Chevalier B, Clairambault J, Carre F, Dahkli T, Bertin B, Briand P, Strosberg D, Swynghedauw B (1996) Decreased heart rate variability in transgenic mice overexpressing atrial beta 1-adrenoceptors. The American journal of physiology 271:H1465-1472.
Rokosh DG, Simpson PC (2002) Knockout of the alpha 1A/C-adrenergic receptor subtype: the alpha 1A/C is expressed in resistance arteries and is required to maintain arterial blood pressure. Proceedings of the National Academy of Sciences of the United States of America 99:9474-9479.
Pham H, Bonham AC, Pinkerton KE, Chen CY (2009) Central neuroplasticity and decreased heart rate variability after particulate matter exposure in mice. Environmental health perspectives 117:1448-1453.
Gross V, Tank J, Obst M, Plehm R, Blumer KJ, Diedrich A, Jordan J, Luft FC (2005) Autonomic nervous system and blood pressure regulation in RGS2-deficient mice. American journal of physiology Regulatory, integrative and comparative physiology 288:R1134-1142.
Hajiasgharzadeh K, Mirnajafi-Zadeh J, Mani AR (2011) Interleukin-6 impairs chronotropic responsiveness to cholinergic stimulation and decreases heart rate variability in mice. European journal of pharmacology 673:70-77.
Fazan R, Jr., de Oliveira M, da Silva VJ, Joaquim LF, Montano N, Porta A, Chapleau MW, Salgado HC (2005) Frequency-dependent baroreflex modulation of blood pressure and heart rate variability in conscious mice. American journal of physiology Heart and circulatory physiology 289:H1968-1975.
Chen Y, Joaquim LF, Farah VM, Wichi RB, Fazan R, Jr., Salgado HC, Morris M (2005) Cardiovascular autonomic control in mice lacking angiotensin AT1a receptors. American journal of physiology Regulatory, integrative and comparative physiology 288:R1071-1077.
Sebastian S, Ang R, Abramowitz J, Weinstein LS, Chen M, Ludwig A, Birnbaumer L, Tinker A (2013) The in vivo regulation of heart rate in the murine sinoatrial node by stimulatory and inhibitory heterotrimeric G proteins. American journal of physiology Regulatory, integrative and comparative physiology 305:R435-442.
Zhang Y, Welzig CM, Picard KL, Du C, Wang B, Pan JQ, Kyriakis JM, Aronovitz MJ, Claycomb WC, Blanton RM, Park HJ, Galper JB (2014) Glycogen synthase kinase-3beta inhibition ameliorates cardiac parasympathetic dysfunction in type 1 diabetic Akita mice. Diabetes 63:2097-2113.
Corey LM, Baker C, Luchtel DL (2006) Heart-rate variability in the apolipoprotein E knockout transgenic mouse following exposure to Seattle particulate matter. Journal of toxicology and environmental health Part A 69:953-965.
Chu V, Otero JM, Lopez O, Sullivan MF, Morgan JP, Amende I, Hampton TG (2002) Electrocardiographic findings in mdx mice: a cardiac phenotype of Duchenne muscular dystrophy. Muscle & nerve 26:513-519.
Wu TW, Ono K, Murakami M, Iijima T (2006) Involvement of voltage-dependent Ca(2+) channel beta(3) subunit in the autonomic control of heart rate variability. Pharmacology 76:170-179.
Dev NB, Gayen JR, O'Connor DT, Mahata SK (2010) Chromogranin a and the autonomic
system: decomposition of heart rate variability and rescue by its catestatin fragment.
Endocrinology 151:2760-2768.
Nature Protocols: doi:10.1038/nprot.2015.139