_________________________________________ Automated ECG Analyzer Evaluation Program _________________________________________ The most recent version of this program can always be obtained as part of the WFDB Software Package, from PhysioNet (http://physionet.org/). If you have questions about this software, please contact: PhysioNet MIT Room E25-505A Cambridge, MA 02139 USA email: wfdb@physionet.org This program constructs a script (batch) file which evaluates a set of test annotation files by comparing them with reference annotation files in accordance with American National Standards ANSI/AAMI EC38:1998 and ANSI/AAMI EC57:1998 for ambulatory ECGs and for testing and reporting performance results of cardiac rhythm and ST segment measurement algorithms. For some questions, a default answer is provided in brackets. Press RETURN (ENTER) to accept the default, or type the desired answer followed by RETURN. After you have answered all of the questions, you are given a chance to change any of your answers before beginning the actual evaluation. At that time, you may exit from this program and examine the evaluation script which it has generated before running that script. Press RETURN to begin: Which database do you wish to use? (press RETURN for list) MIT DB MIT-BIH Arrhythmia Database MITx DB MIT-BIH Arrhythmia Database (excluding paced records) AHA DB AHA Database for Evaluation of Ventricular Arrhythmia Detectors AHAx DB AHA Database (excluding paced records) ESC DB European ST-T Database NST DB Noise Stress Test Database CU DB Creighton University Sustained Ventricular Arrhythmia Database Enter a choice from the first column: You must have a set of annotation files generated by the device under test from its analysis of the signal files of the MIT DB. These files are identified by the test annotator name (the part of the file name that precedes the `.' and the record name). If you don't yet have a set of test annotation files, you can add the commands needed to create them to the evaluation script that will be generated by this program. What is the test annotator name? To evaluate heart rate or HRV measurement error, you must have a set of reference heart rate annotation files. These must be generated from the reference (`atr') annotation files supplied with the MIT DB. If you don't yet have a set of reference heart rate annotation files, add the commands needed to create them to the evaluation script that will be generated by this program. What is the reference heart rate annotator name? The next several questions refer to evaluation of optional ECG analyzer outputs. Test and reference heart rate annotation files may contain more than one type of heart rate, HRV, or RRV measurement. How many types are there? [1]: Do you wish to evaluate SVEB detection? [y]: Do you wish to evaluate VF detection? [y]: Do you wish to evaluate AF detection? [y]: Do you wish to evaluate ST analysis? [y]: Use both signals to define ST episodes? [y]: Do you wish to change any of your answers? [y]: Choose a name for the evaluation script [eval-qrs-mit]: Choose a name for the evaluation report [qrs-mit-evaluation]: The next group of questions refers to the names of files in which intermediate summary statistics are to be written. If any of these exist already, new statistics will be appended, and the aggregate statistics in `qrs-mit.out' will be based on the entire contents of these files. Beat detection and classification file [bxb.out]: Analysis shutdown file [sd.out]: Ventricular ectopic run file [vruns.out]: Supraventricular ectopic run file [sruns.out]: Ventricular fibrillation file [vf.out]: Atrial fibrillation file [af.out]: ST analysis file [st.out]: ST measurement file [stm.out]: PostScript scatter plot of ST measurements [stm.ps]: The name given for the heart rate measurement file must contain `%d', which is replaced by the measurement number. Heart rate measurement file [hr%d.out]: Do you wish to change any of these answers? [y]: Generating `qrs-mit.bat' ... done Do you wish to run the evaluation script now? [y]: Inspect and edit `qrs-mit.bat' as necessary, then type sh ./qrs-mit.bat to run the evaluation. : : Evaluate test annotator qrs on the MIT DB : This file was automatically generated by ecgeval. Do not edit it : unless you know what you are doing! : Record 100 bxb -r 100 -a atr qrs -L bxb.out sd.out rxr -r 100 -a atr qrs -L vruns.out sruns.out mxm -r 100 -a thr qrs -L hr0.out -m 0 epicmp -r 100 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Record 101 bxb -r 101 -a atr qrs -L bxb.out sd.out rxr -r 101 -a atr qrs -L vruns.out sruns.out mxm -r 101 -a thr qrs -L hr0.out -m 0 epicmp -r 101 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Record 102 bxb -r 102 -a atr qrs -L bxb.out sd.out rxr -r 102 -a atr qrs -L vruns.out sruns.out mxm -r 102 -a thr qrs -L hr0.out -m 0 epicmp -r 102 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Record 103 bxb -r 103 -a atr qrs -L bxb.out sd.out rxr -r 103 -a atr qrs -L vruns.out sruns.out mxm -r 103 -a thr qrs -L hr0.out -m 0 epicmp -r 103 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Record 104 bxb -r 104 -a atr qrs -L bxb.out sd.out rxr -r 104 -a atr qrs -L vruns.out sruns.out mxm -r 104 -a thr qrs -L hr0.out -m 0 epicmp -r 104 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Record 105 bxb -r 105 -a atr qrs -L bxb.out sd.out rxr -r 105 -a atr qrs -L vruns.out sruns.out mxm -r 105 -a thr qrs -L hr0.out -m 0 epicmp -r 105 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Record 106 bxb -r 106 -a atr qrs -L bxb.out sd.out rxr -r 106 -a atr qrs -L vruns.out sruns.out mxm -r 106 -a thr qrs -L hr0.out -m 0 epicmp -r 106 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Record 107 bxb -r 107 -a atr qrs -L bxb.out sd.out rxr -r 107 -a atr qrs -L vruns.out sruns.out mxm -r 107 -a thr qrs -L hr0.out -m 0 epicmp -r 107 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Record 108 bxb -r 108 -a atr qrs -L bxb.out sd.out rxr -r 108 -a atr qrs -L vruns.out sruns.out mxm -r 108 -a thr qrs -L hr0.out -m 0 epicmp -r 108 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Record 109 bxb -r 109 -a atr qrs -L bxb.out sd.out rxr -r 109 -a atr qrs -L vruns.out sruns.out mxm -r 109 -a thr qrs -L hr0.out -m 0 epicmp -r 109 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Record 111 bxb -r 111 -a atr qrs -L bxb.out sd.out rxr -r 111 -a atr qrs -L vruns.out sruns.out mxm -r 111 -a thr qrs -L hr0.out -m 0 epicmp -r 111 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Record 112 bxb -r 112 -a atr qrs -L bxb.out sd.out rxr -r 112 -a atr qrs -L vruns.out sruns.out mxm -r 112 -a thr qrs -L hr0.out -m 0 epicmp -r 112 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Record 113 bxb -r 113 -a atr qrs -L bxb.out sd.out rxr -r 113 -a atr qrs -L vruns.out sruns.out mxm -r 113 -a thr qrs -L hr0.out -m 0 epicmp -r 113 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Record 114 bxb -r 114 -a atr qrs -L bxb.out sd.out rxr -r 114 -a atr qrs -L vruns.out sruns.out mxm -r 114 -a thr qrs -L hr0.out -m 0 epicmp -r 114 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Record 115 bxb -r 115 -a atr qrs -L bxb.out sd.out rxr -r 115 -a atr qrs -L vruns.out sruns.out mxm -r 115 -a thr qrs -L hr0.out -m 0 epicmp -r 115 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Record 116 bxb -r 116 -a atr qrs -L bxb.out sd.out rxr -r 116 -a atr qrs -L vruns.out sruns.out mxm -r 116 -a thr qrs -L hr0.out -m 0 epicmp -r 116 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Record 117 bxb -r 117 -a atr qrs -L bxb.out sd.out rxr -r 117 -a atr qrs -L vruns.out sruns.out mxm -r 117 -a thr qrs -L hr0.out -m 0 epicmp -r 117 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Record 118 bxb -r 118 -a atr qrs -L bxb.out sd.out rxr -r 118 -a atr qrs -L vruns.out sruns.out mxm -r 118 -a thr qrs -L hr0.out -m 0 epicmp -r 118 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Record 119 bxb -r 119 -a atr qrs -L bxb.out sd.out rxr -r 119 -a atr qrs -L vruns.out sruns.out mxm -r 119 -a thr qrs -L hr0.out -m 0 epicmp -r 119 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Record 121 bxb -r 121 -a atr qrs -L bxb.out sd.out rxr -r 121 -a atr qrs -L vruns.out sruns.out mxm -r 121 -a thr qrs -L hr0.out -m 0 epicmp -r 121 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Record 122 bxb -r 122 -a atr qrs -L bxb.out sd.out rxr -r 122 -a atr qrs -L vruns.out sruns.out mxm -r 122 -a thr qrs -L hr0.out -m 0 epicmp -r 122 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Record 123 bxb -r 123 -a atr qrs -L bxb.out sd.out rxr -r 123 -a atr qrs -L vruns.out sruns.out mxm -r 123 -a thr qrs -L hr0.out -m 0 epicmp -r 123 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Record 124 bxb -r 124 -a atr qrs -L bxb.out sd.out rxr -r 124 -a atr qrs -L vruns.out sruns.out mxm -r 124 -a thr qrs -L hr0.out -m 0 epicmp -r 124 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Record 200 bxb -r 200 -a atr qrs -L bxb.out sd.out rxr -r 200 -a atr qrs -L vruns.out sruns.out mxm -r 200 -a thr qrs -L hr0.out -m 0 epicmp -r 200 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Record 201 bxb -r 201 -a atr qrs -L bxb.out sd.out rxr -r 201 -a atr qrs -L vruns.out sruns.out mxm -r 201 -a thr qrs -L hr0.out -m 0 epicmp -r 201 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Record 202 bxb -r 202 -a atr qrs -L bxb.out sd.out rxr -r 202 -a atr qrs -L vruns.out sruns.out mxm -r 202 -a thr qrs -L hr0.out -m 0 epicmp -r 202 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Record 203 bxb -r 203 -a atr qrs -L bxb.out sd.out rxr -r 203 -a atr qrs -L vruns.out sruns.out mxm -r 203 -a thr qrs -L hr0.out -m 0 epicmp -r 203 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Record 205 bxb -r 205 -a atr qrs -L bxb.out sd.out rxr -r 205 -a atr qrs -L vruns.out sruns.out mxm -r 205 -a thr qrs -L hr0.out -m 0 epicmp -r 205 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Record 207 bxb -r 207 -a atr qrs -L bxb.out sd.out rxr -r 207 -a atr qrs -L vruns.out sruns.out mxm -r 207 -a thr qrs -L hr0.out -m 0 epicmp -r 207 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Record 208 bxb -r 208 -a atr qrs -L bxb.out sd.out rxr -r 208 -a atr qrs -L vruns.out sruns.out mxm -r 208 -a thr qrs -L hr0.out -m 0 epicmp -r 208 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Record 209 bxb -r 209 -a atr qrs -L bxb.out sd.out rxr -r 209 -a atr qrs -L vruns.out sruns.out mxm -r 209 -a thr qrs -L hr0.out -m 0 epicmp -r 209 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Record 210 bxb -r 210 -a atr qrs -L bxb.out sd.out rxr -r 210 -a atr qrs -L vruns.out sruns.out mxm -r 210 -a thr qrs -L hr0.out -m 0 epicmp -r 210 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Record 212 bxb -r 212 -a atr qrs -L bxb.out sd.out rxr -r 212 -a atr qrs -L vruns.out sruns.out mxm -r 212 -a thr qrs -L hr0.out -m 0 epicmp -r 212 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Record 213 bxb -r 213 -a atr qrs -L bxb.out sd.out rxr -r 213 -a atr qrs -L vruns.out sruns.out mxm -r 213 -a thr qrs -L hr0.out -m 0 epicmp -r 213 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Record 214 bxb -r 214 -a atr qrs -L bxb.out sd.out rxr -r 214 -a atr qrs -L vruns.out sruns.out mxm -r 214 -a thr qrs -L hr0.out -m 0 epicmp -r 214 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Record 215 bxb -r 215 -a atr qrs -L bxb.out sd.out rxr -r 215 -a atr qrs -L vruns.out sruns.out mxm -r 215 -a thr qrs -L hr0.out -m 0 epicmp -r 215 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Record 217 bxb -r 217 -a atr qrs -L bxb.out sd.out rxr -r 217 -a atr qrs -L vruns.out sruns.out mxm -r 217 -a thr qrs -L hr0.out -m 0 epicmp -r 217 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Record 219 bxb -r 219 -a atr qrs -L bxb.out sd.out rxr -r 219 -a atr qrs -L vruns.out sruns.out mxm -r 219 -a thr qrs -L hr0.out -m 0 epicmp -r 219 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Record 220 bxb -r 220 -a atr qrs -L bxb.out sd.out rxr -r 220 -a atr qrs -L vruns.out sruns.out mxm -r 220 -a thr qrs -L hr0.out -m 0 epicmp -r 220 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Record 221 bxb -r 221 -a atr qrs -L bxb.out sd.out rxr -r 221 -a atr qrs -L vruns.out sruns.out mxm -r 221 -a thr qrs -L hr0.out -m 0 epicmp -r 221 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Record 222 bxb -r 222 -a atr qrs -L bxb.out sd.out rxr -r 222 -a atr qrs -L vruns.out sruns.out mxm -r 222 -a thr qrs -L hr0.out -m 0 epicmp -r 222 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Record 223 bxb -r 223 -a atr qrs -L bxb.out sd.out rxr -r 223 -a atr qrs -L vruns.out sruns.out mxm -r 223 -a thr qrs -L hr0.out -m 0 epicmp -r 223 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Record 228 bxb -r 228 -a atr qrs -L bxb.out sd.out rxr -r 228 -a atr qrs -L vruns.out sruns.out mxm -r 228 -a thr qrs -L hr0.out -m 0 epicmp -r 228 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Record 230 bxb -r 230 -a atr qrs -L bxb.out sd.out rxr -r 230 -a atr qrs -L vruns.out sruns.out mxm -r 230 -a thr qrs -L hr0.out -m 0 epicmp -r 230 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Record 231 bxb -r 231 -a atr qrs -L bxb.out sd.out rxr -r 231 -a atr qrs -L vruns.out sruns.out mxm -r 231 -a thr qrs -L hr0.out -m 0 epicmp -r 231 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Record 232 bxb -r 232 -a atr qrs -L bxb.out sd.out rxr -r 232 -a atr qrs -L vruns.out sruns.out mxm -r 232 -a thr qrs -L hr0.out -m 0 epicmp -r 232 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Record 233 bxb -r 233 -a atr qrs -L bxb.out sd.out rxr -r 233 -a atr qrs -L vruns.out sruns.out mxm -r 233 -a thr qrs -L hr0.out -m 0 epicmp -r 233 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Record 234 bxb -r 234 -a atr qrs -L bxb.out sd.out rxr -r 234 -a atr qrs -L vruns.out sruns.out mxm -r 234 -a thr qrs -L hr0.out -m 0 epicmp -r 234 -a atr qrs -L -A af.out -V vf.out -S st.out stm.out : Generate summary report echo Beat detection and classification performance >>qrs-mit.out echo >>qrs-mit.out sumstats bxb.out >>qrs-mit.out echo >>qrs-mit.out echo Analysis shutdowns >>qrs-mit.out echo >>qrs-mit.out sumstats sd.out >>qrs-mit.out echo >>qrs-mit.out echo Ventricular ectopic run detection performance >>qrs-mit.out echo >>qrs-mit.out sumstats vruns.out >>qrs-mit.out echo >>qrs-mit.out echo Supraventricular ectopic run detection performance >>qrs-mit.out echo >>qrs-mit.out sumstats sruns.out >>qrs-mit.out echo >>qrs-mit.out echo Heart rate measurement number 0 performance >>qrs-mit.out echo >>qrs-mit.out sumstats hr0.out >>qrs-mit.out echo >>qrs-mit.out echo Ventricular fibrillation detection performance >>qrs-mit.out echo >>qrs-mit.out sumstats vf.out >>qrs-mit.out echo >>qrs-mit.out echo Atrial fibrillation detection performance >>qrs-mit.out echo >>qrs-mit.out sumstats af.out >>qrs-mit.out echo >>qrs-mit.out echo Ischemic ST detection performance >>qrs-mit.out echo >>qrs-mit.out sumstats st.out >>qrs-mit.out echo >>qrs-mit.out : Generate PostScript scatter plot of ST measurements plotstm stm.out >stm.ps echo The evaluation is complete. Print text file qrs-mit.out echo and PostScript file stm.ps to get the results. Evaluation of `qrs' on the MIT-BIH Arrhythmia Database