Next: FFT(1) Up: WFDB Applications Guide Previous: EDR(1)On This Page

Name

epicmp - ANSI/AAMI-standard episode-by-episode annotation comparator

Synopsis

epicmp -r record -a reference-annotator test-annotator [ options ... ]

Description

This program implements the VF, AF, and ST episode-by-episode comparison algorithms specified by the current American National Standard for ambulatory ECG analyzers (ANSI/AAMI EC38:2007). epicmp is the reference implementation of these algorithms, and must be used to obtain the episode-by-episode performance statistics cited in EC38 in order to be in compliance with the standard (see EC38, section 5.2.14).

Input to this program consists of two annotation files associated with the same record. One of these is designated the reference annotation file, the other the test annotation file.

Options include:

-A file
Append atrial fibrillation detection reports to the specified file.
-f time
Begin the comparison at the specified time (default: 5 minutes after the beginning of the record).
-h
Print a usage summary.
-i time
Exclude episodes shorter than time (default: 0 seconds) from episode statistics.
-I time
Exclude episodes shorter than time (default: 0 seconds) from episode and duration statistics. (At most one of -i and -I may be used.)
-l
Write reports in line format (default: matrix format).
-L
Same as -l.
-S file1 file2
Append ischemic ST episode detection reports to file1, and ST deviation measurements to file2.
-S0 file1 file2
As for -S, but report on signal 0 only.
-S1 file1 file2
As for -S, but report on signal 1 only.
-t time
Stop the comparison at the specified time (default: the end of the record if it is defined, the end of the reference annotation file otherwise; if time is 0, the comparison ends when the end of either annotation file is reached).
-V
Append ventricular flutter and fibrillation detection reports to the specified file.
-x
Exclude periods of atrial fibrillation from calculations of atrial fibrillation positive predictivity, as required by EC38:1998 (default: include these periods, as required by EC38:2007).

The episode and duration statistics gathered by epicmp are based on tallies of overlapping episodes in the reference and test annotation files. Duration statistics give weight to each episode or detection in proportion to its duration. Episode statistics give equal weight to each episode or detection, irrespective of length; each test-annotated episode that meets the criteria for overlap (see below) with a reference-annotated episode is counted as a true positive. Episodes are defined as follows (see <wfdb/ecgcodes.h> for definitions of annotation types):

Atrial fibrillation episodes
begin with a RHYTHM annotation, with the aux field containing the text ‘(AFIB’, and end with any other RHYTHM annotation (or at the end of the record). Reference-marked episodes of atrial flutter (begun by RHYTHM annotations with the text ‘(AFL’) are excluded from AF comparisons (i.e., the test annotator is neither penalized nor rewarded for its treatment of atrial flutter in this context). Any amount of overlap is sufficient to qualify a test episode as a true positive.
Ventricular fibrillation or flutter episodes
begin with a VFON annotation, and end with a VFOFF annotation (or at the end of the record). RHYTHM annotations are ignored in this context by epicmp. Any amount of overlap is sufficient to qualify a test episode as a true positive.
Ischemic ST episodes
begin with a STCH annotation, with the aux field containing the text ‘(STns’, and end with another STCH annotation, with the text ‘STns)’ (or at the end of the record). Between these annotations, the extremum (the time at which the absolute value of the ST deviation is greatest) is marked with another STCH annotation, with the text ‘ASTnsm’; this annotation may be omitted in the test annotation file. In these annotations, n is ‘0’ or ‘1’, and denotes the affected signal; s is ‘+’ for episodes of ST elevation, or ‘-’ for episodes of ST depression; and m is the ST deviation in microvolts, relative to a reference level established from the first 30 seconds of the record. The values of s and m are not significant for the episode comparison made by epicmp. When using the -S0 or -S1 options, n must be 0 or 1 respectively; other STCH annotations are ignored. When using the -S option, the value of n is ignored: each ‘(STns’ annotation increments a counter, and each ‘STns)’ annotation decrements the counter; in this context, ST episodes begin when the counter becomes positive and end when the counter reaches zero (or at the end of the record). To qualify a test episode as a true positive for purposes of determining ST episode sensitivity, it must overlap at least 50% of the reference episode, or the overlap must include the reference-marked extremum. To qualify a test episode as a true positive for purposes of determining ST episode positive predictivity, the reference episode must overlap at least 50% of the test episode, or the overlap must include the test-marked extremum, if present.

The second file generated when using the ‘-S’, ‘-S0’, or ‘-S1’ options contains comparisons of ST deviation measurements wherever such measurements are available in the reference annotation files. In the existing databases, these appear only at extrema within each annotated ischemic (or non-ischemic) ST episode, as described above. For purposes of comparison of ST deviation measurements, test ST measurements for each signal are read from the aux field of beat annotations, which should contain text of the format ‘m n’ (where m and n are the measured ST deviations for signals 0 and 1 respectively). If these measurements are missing from any test beat annotation, epicmp assumes that they have not changed since they last appeared. epicmp ignores ‘AST...’ annotations in the test annotation file when making this comparison. In the output file, any test measurements that deviate from the reference measurements by more than 100 microvolts are tagged with an asterisk (‘*’). plotstm(1) can produce a scatter plot of these data using this file as input.

At least one of the options ‘-A’, ‘-S’, ‘-S0’, ‘-S1’, and ‘-V’ must be used. If ‘-’ is given as a file argument, reports are written on the standard output. The output generated by selecting -l or -L includes column headings only if a file other than ‘-’ is specified, and only if the specified file does not already exist. In this way, epicmp can be used repeatedly to build up line-format tables for multiple records, for further processing by sumstats(1) .

Environment

It may be necessary to set and export the shell variable WFDB (see setwfdb(1) ).

Diagnostics

non-standard comparison selected
The -f, -i, -I, and -t options modify the comparison algorithms used by epicmp in ways not permitted by EC38. These options are provided for the use of developers, who may find them useful for obtaining a more detailed understanding of algorithm errors.

Bugs

Since epicmp performs multiple passes over its input files, it cannot be used at the end of a pipe.

Between 1992 and 2002, this program was known as epic; the name was changed to avoid conflict with a new but widely distributed IRC chat client also named epic. By analogy to bxb, mxm, and rxr, this program should have been called exe, which would have created interesting possibilities for confusion.

See Also

bxb(1) , ecgeval(1) , mxm(1) , plotstm(1) , rxr(1) , setwfdb(1) , sumstats(1)
Evaluating ECG Analyzers (in the WFDB Applications Guide)
American National Standard ANSI/AAMI EC38:1998, Ambulatory Electrocardiographs; available from AAMI, 1110 N Glebe Road, Suite 220, Arlington, VA 22201 USA (http://www.aami.org/).

Author

George B. Moody (george@mit.edu)

Source

http://www.physionet.org/physiotools/wfdb/app/epicmp.c


Table of Contents

Up: WFDB Applications Guide


Please e-mail your comments and suggestions to webmaster@physionet.org, or post them to:

PhysioNet
MIT Room E25-505A
77 Massachusetts Avenue
Cambridge, MA 02139 USA

Updated 10 June 2022