Subsections

Software for GMSE analysis

Download gmse.c, the C language source for a program that performs multiscale entropy analysis. The program can be compiled using any ANSI/ISO C compiler, and should be linked to the C math library (it uses only the sqrt function from that library). For example, using the freely available GNU C compiler, mse.c can be compiled into an executable mse by the command:

    gcc -o gmse -O gmse.c -lm

Preparing data for GMSE analysis

The program to compute GMSE processes text formatted input files with either one or two columns. Files with one column can be a list of RR intervals or any time series of interest. Files with two columns should be the time of occurrence of an R wave, t(i), and the corresponding RR intervals, t(i+1) - t(i). This type of RR interval file can be obtained from a beat annotation file using ann2rr:

    ann2rr -r nsrdb/16265 -a atr -c -p N -P N  -i s3  -V s3 > 16265.RR

Example of a two-column input file (16265.RR):

t(i) RR(i) = t(i+1) - t(i)
0.406 0.602
1.008 0.609
1.617 0.602
2.219 0.625
2.844 0.609
3.453 0.625
4.078 0.594
4.672 0.602
300.914 0.547
301.461 0.539
302.539 0.547
303.086 0.539

The two-column file, 16265.RR can be filtered using filt from the HRV Toolkit:

    filt 0.3 20 -x 0.3 2.0

In this example, all points below 0.3 and above 2.0 are first removed. Next, to decide one whether the data point xi should be filtered out or kept, the mean value of the 20 data points to the left and the 20 data points to the right is calculated. The central point xi is deleted if it is below of above 30% (0.3) of the computed average value. The process is repeated for all data points.

When given two column input files (time and RR intervals), the GMSE program excludes RR intervals that are not consecutive. In the example above, there is an interruption in the time series between 301.461 and 302.539 s (values highlighted in yellow): 302.539 - 301.461 = 1.078 0.539. Thus, the RR interval 0.539 will be excluded from the analysis. In addition, no vectors comprising the intervals immediately preceding (0.547) and following (0.547) the interruption will be considered.

Summary of options and default values for GMSE

-n:
largest scale. Default: 20.
-a:
difference between consecutive scales. Default: 1.
-c:
coarse-graining method: 1) mean; 2) standard deviation (SD); 3) variance; 4) mean absolute deviation. Default: SD.
-x:
sample entropy noise tolerance value: fixed. Two data points, ui, uj match if |ui - uj| x
-r:
sample entropy noise tolerance value: a number between 0 and 1 that represents a percent. Two data points, ui, uj match if |ui - uj| r * SD. Default: r = 0.15. For mean coarse-graining analysis (traditional MSE), SD is the standard deviation of the original (scale 1) time series. For all other cases, SD is the standard deviation of scale 4 (default) coarse-grained time series.
-m:
sample entropy vector length. Default: m = 2.
-i:
starting data point. Default: 0.
-I:
ending data point. Default: end of file.

Examples of command lines

  1. gmse -i 0 -I 50000 -c 1 < 16265.RR-filt > output

    Coarse-graining method: mean (traditional MSE). Sample entropy parameters values m = 2, r = 0.15 (15% of SD of the original time series). The first 50,000 data points are considered.

    The output values are:

    Scale SampEn m3/m2 r * SD
    1 1.1897 7253987/23837718 0.013203
    2 1.3032 1600494/5891466 0.013203
    3 1.4956 473897/2114637 0.013203
    4 1.6527 179051/934800 0.013203
    5 1.6506 117176/610500 0.013203
    6 1.6294 85533/436301 0.013203
    7 1.6505 57324/298632 0.013203
    8 1.6164 47163/237466 0.013203
    9 1.5821 40749/198244 0.013203
    10 1.5895 31764/155689 0.013203
    11 1.5332 28626/132628 0.013203
    12 1.5297 24666/113877 0.013203
    13 1.5189 21291/97245 0.013203
    14 1.4899 18804/83427 0.013203
    15 1.4710 16822/73235 0.013203
    16 1.4687 14703/63866 0.013203
    17 1.4734 12977/56633 0.013203
    18 1.4482 11873/50527 0.013203
    19 1.4621 9992/43114 0.013203
    20 1.4319 9591/40155 0.013203

  2. gmse -i 0 -I 50000 -r 0.2 -c 2 < 16265.RR-filt > output

    Coarse-graining method: SD. Sample entropy parameters m = 2, r = 0.20 (20% of the coarse-grained time series for scale 5). This is the command line used to derive the results shown on the left panel of Fig. 2 and on the right panel of Fig. 5.

    The output values are:

    Scale SampEn m3/m2 r * SD
    5 1.4648 307814/1331797 0.003835
    6 1.5233 168245/771816 0.003835
    7 1.5829 99565/484806 0.003835
    8 1.6365 62961/323456 0.003835
    9 1.7058 40966/225554 0.003835
    10 1.7258 30256/169946 0.003835
    11 1.7605 21967/127745 0.003835
    12 1.8010 16915/102437 0.003835
    13 1.8103 13668/83541 0.003835
    14 1.8485 10580/67189 0.003835
    15 1.8309 9132/56979 0.003835
    16 1.8727 7565/49216 0.003835
    17 1.8786 6460/42275 0.003835
    18 1.8836 5632/37041 0.003835
    19 1.8833 4867/32000 0.003835
    20 1.9080 4180/28171 0.003835

  3. gmse -i 0 -I 50000 -x 0.008 -c 4 < 16265.RR-filt > output

    Mean absolute deviation is the chosen metric for coarse-graining. Sample entropy parameters m = 2, r = 0.008 (fixed, not a % of SD). This is the command line used to derive the results plotted on the right side panel of Fig. 3.

    The output values are:

    Scale SampEn m3/m2 r * SD
    5 0.7032 3594655/7261796 0.008000
    6 0.7591 2008629/4291038 0.008000
    7 0.8139 1186303/2677237 0.008000
    8 0.8624 767179/1817262 0.008000
    9 0.9165 506521/1266507 0.008000
    10 0.9311 380264/964870 0.008000
    11 0.9756 273555/725658 0.008000
    12 0.9891 217627/585165 0.008000
    13 0.9915 177947/479594 0.008000
    14 1.0232 140291/390320 0.008000
    15 1.0296 117161/328049 0.008000
    16 1.0236 104222/290078 0.008000
    17 1.0395 89258/252412 0.008000
    18 1.0468 77024/219414 0.008000
    19 1.0332 68169/191564 0.008000
    20 1.0375 60541/170863 0.008000

Madalena Costa (mcosta3@bidmc.harvard.edu)
2019-01-30