Algorithms - UVA-CAMA/NICUHDF5Viewer GitHub Wiki
BAP v2.2 and HDF5Viewer v4.3
Algorithm Display Name | Version | Prerequisites | Description | Result Name | Inputs |
---|---|---|---|---|---|
QRS Detection: ECG I | 2 | Physionet QRS detection algorithm: https://physionet.org/physiotools/physionet-cardiovascular-signal-toolbox/ using ECG Lead I | result_qrs(1).qrs | ECG I | |
QRS Detection: ECG II | 2 | Physionet QRS detection algorithm: https://physionet.org/physiotools/physionet-cardiovascular-signal-toolbox/ using ECG Lead II | result_qrs(2).qrs | ECG II | |
QRS Detection: ECG III | 2 | Physionet QRS detection algorithm: https://physionet.org/physiotools/physionet-cardiovascular-signal-toolbox/ using ECG Lead III | result_qrs(3).qrs | ECG III | |
Brady Detection <N | 4 | Identifies all times when HR < N (no duration threshold, no joining rules) (N is one of set [100, 90, 80, 70]) | /Results/Brady<N | HR | |
Apnea Detection | 3 | Will use any previously computed QRS Detection results | The resp (chest impedance) waveform is used to calculate the probability of apnea using the William and Mary Algorithm. The algorithm outputs the continuous probability of apnea as well as discrete apnea events. All available ECG signals are used to filter the chest impedance signal to remove artifacts from the heartbeat. | /Results/Apnea | Resp waveform, at least one of ECG leads |
Periodic Breathing | 3 | Apnea Detection v3 | The periodic breathing algorithm grabs the results from the apnea algorithm and runs Mary Mohr's periodic breathing algorithm on it to calculate the probability of being in periodic breathing. Probabilities>0.6 (from Mohr's thesis) are tagged as periodic breathing events. | /Results/PeriodicBreathing | Apnea result |
Brady Detection Pete | 4 | Pete Nagraj's bradycardia detection algorithm: Bradys are <100 for ECG HR for at least 4 seconds. Joining rule for Bradys is 4 seconds | /Results/Brady<100-Pete | HR | |
Desat Detection Pete | 4 | Pete Nagraj's desat detection algorithm: <80% for at least 10 seconds. If two of those events happen within 10 seconds of each other, join them together as one event | /Results/Desat<80-Pete | SpO2_pct | |
Brady Desat | 4 | Brady Detection <100 v2, Desat Detection <80 v2 | Brady Desat Algorithm with a 30 second threshold. Any Brady within 30 seconds of any desat (in either direction) will count. The tag begins at the start of the earliest event and ends at last endpoint of any of the tags in the merged event. | /Results/BradyDesat | Brady <100, Desat <80 |
Brady Desat Pete | 4 | Brady Detection Pete v2, Desat Detection Pete v2 | Identical to the above brady desat algorithm, but the Brady Pete and Desat Pete tags are used as inputs. | /Results/BradyDesatPete | Brady Pete, Desat Pete |
ABD | 3 | Apnea Detection v3, Brady Detection <100 v2, Desat Detection <80 v2 | ABD Algorithm using Hoshik Lee's thresholds as described in "A new algorithm for detecting central apnea in neonates," Hoshik Lee et al 2012 Physiol. Meas. | /Results/ABD | Apnea, Brady<100, Desat<80 |
Data Available: Pulse | 4 | Determine when pulse signal (heart rate from the pulse oximeter) exists. Tag periods of continuous data, excluding impossible flat periods. | /Results/DataAvailable:Pulse | Pulse | |
Data Available: HR | 4 | Determine when HR signal (heart rate from ecg) exists. Tag periods of continuous data, excluding impossible flat periods. | /Results/DataAvailable:HR | HR | |
Data Available: SPO2_pct | 4 | Determine when spo2% signal exists. Tag periods of continuous data, excluding impossible flat periods. | /Results/DataAvailable:SPO2_pct | SpO2_pct | |
Data Available: Resp | 3 | Determine when chest impedance waveform exists. Tag periods of continuous data, excluding impossible flat periods. | /Results/DataAvailable:Resp | Resp Waveform | |
Data Available: ECG I | 3 | Determine when ECG lead I signal exists. Tag periods of continuous data. | /Results/DataAvailable:ECGI | ECG I | |
Data Available: ECG II | 3 | Determine when ECG lead II signal exists. Tag periods of continuous data. | /Results/DataAvailable:ECGII | ECG II | |
Data Available: ECG III | 3 | Determine when ECG lead III signal exists. Tag periods of continuous data. | /Results/DataAvailable:ECGIII | ECG III | |
Desat Detection <N | 4 | Run a desaturation detection algorithm which identifies any and all drops < the threshold N (N is one of set [75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95]). (no duration threshold, no joining rules) | /Results/Desat<N | SPO2_pct | |
HR [Mean/Std/Skewness/Kurtosis] | 3 | Compute the every 10 minutes HR (from the ecg signal) statistics [mean / standard deviation / skewness / kurtosis | /Results/HRMean; /Results/HRStd; /Results/HRSkewness; /Results/HRKurtosis; | HR | |
Pulse [Mean/Std/Skewness/Kurtosis] | 3 | Compute the every 10 minutes pulse rate (from the pulse oximeter) statistics [mean / standard deviation / skewness / kurtosis | /Results/PulseMean; /Results/PulseStd; /Results/PulseSkewness; /Results/PulseKurtosis; | Pulse | |
SPO2_pct [Mean/Std/Skewness/Kurtosis] | 3 | Compute the every 10 minutes SpO2% statistics [mean / standard deviation / skewness / kurtosis | /Results/SPO2_pctMean; /Results/SPO2_pctStd; /Results/SPO2_pctSkewness; /Results/SPO2_pctKurtosis; | SPO2_pct | |
Max Cross Correlation HR SPO2_pct | 3 | Compute max cross correlation between HR (from the ecg signal) and SpO2% every 10 minutes, using the last 10 min of data (min xcorr & lags are also computed. All values are stored in tags.) | /Results/MaxCrossCorrHR_SPO2_pct | HR, SPO2_pct | |
Max Cross Correlation Pulse SPO2_pct | 3 | Compute max cross correlation between pulse rate (from the pulse oximeter) and SpO2% every 10 minutes, using the last 10 min of data (min xcorr & lags are also computed. All values are stored in tags.) | /Results/MaxCrossCorrPulse_SPO2_pct | Pulse, SPO2_pct | |
HCTSA FC_Surprise HR How Surprised | 2 | Highly comparative time-series analysis algorithm: | /Results/HCTSA_FC_Surprise_HR_HowSurprised | HR | |
HCTSA SB_MotifTwo HR Prob Increases | 2 | Highly comparative time-series analysis algorithm: probability of successive increases | /Results/HCTSA_SB_MotifTwo_HR_ProbIncreases | HR | |
HCTSA PH_Walker SPO2 Std Rand Walk | 2 | Highly comparative time-series analysis algorithm: standard deviation of random walk for SpO2% | /Results/HCTSA_PH_Walker_SPO2_StdRandWalk | SPO2_pct | |
HCTSA EX_MovingThreshold HR Avg Thresh | 2 | Highly comparative time-series analysis algorithm: moving average threshold for HR | /Results/HCTSA_EX_MovingThreshold_HR_AvgThresh | HR | |
HCTSA EX_MovingThreshold SPO2 Avg Thresh | 2 | Highly comparative time-series analysis algorithm: moving average threshold for SpO2% | /Results/HCTSA_EX_MovingThreshold_SPO2_AvgThres | SPO2_pct | |
HCTSA DN_cv HR Std Dist | 2 | Highly comparative time-series analysis algorithm: distribution of HR standard deviation | /Results/HCTSA_DN_cv_HR_StdDist | HR | |
HCTSA DN_Cumulants HR Skew Dist | 2 | Highly comparative time-series analysis algorithm: distribution of HR skewness | /Results/HCTSA_DN_Cumulants_HR_SkewDist | HR | |
HCTSA DN_Quantile HR Max Dist | 2 | Highly comparative time-series analysis algorithm: distribution of HR max | /Results/HCTSA_DN_Quantile_HR_MaxDist | HR | |
HCTSA SB_TransitionMatrix3 HR Sym Autocorr | 2 | Highly comparative time-series analysis algorithm: symbolic transforms HR autocorrelation | /Results/HCTSA_SB_TransitionMatrix3_HR_SymAutocorr | HR | |
HCTSA SB_MotifThree HR Sym Entropy | 2 | Highly comparative time-series analysis algorithm: symbolic transforms HR first differences of coarsely-grained series | /Results/HCTSA_SB_MotifThree_HR_SymEntropy | HR | |
HCTSA MF_arfit HR Wavelet Autoregress | 2 | Highly comparative time-series analysis algorithm: Wavelet HR wavelet autoregression model | /Results/HCTSA_MF_arfit_HR_WaveletAutoregress | HR | |
HCTSA SB_MotifThree HR Sym Diffs | 2 | Highly comparative time-series analysis algorithm: Symbolic transforms HR first differences of coarsely-grained series | /Results/HCTSA_SB_MotifThree_HR_SymDiffs | HR | |
HCTSA SY_StdNthDer HR 17thDeriv | 2 | Highly comparative time-series analysis algorithm: STD of 17th derivative of time series | /Results/HCTSA_SY_StdNthDer_HR_17thDeriv | HR | |
HCTSA DN_RemovePoints SPO2 Mean Dist | 2 | Highly comparative time-series analysis algorithm: Distribution SpO2 mean | /Results/HCTSA_DN_RemovePoints_SPO2_MeanDist | SPO2_pct | |
HCTSA SB_BinaryStats SPO2 Sym IQR | 2 | Highly comparative time-series analysis algorithm: Symbolic transforms SpO2 interquartile ranges | /Results/HCTSA_SB_BinaryStats_SPO2_SymIQR | SPO2_pct | |
HCTSA MF_arfit SPO2 Wavelet Autoregress | 2 | Highly comparative time-series analysis algorithm: Wavelet SpO2 wavelet autoregressive model | /Results/HCTSA_MF_arfit_SPO2_WaveletAutoregress | SPO2_pct | |
HCTSA SB_TransitionMatrix2 SPO2 Sym Eigen | 2 | Highly comparative time-series analysis algorithm: Symbolic transforms SpO2 eigenvalues of transition matrix at lag = 2 | /Results/HCTSA_SB_TransitionMatrix2_SPO2_SymEigen | SPO2_pct | |
HCTSA CO_AutoCorr SPO2 | 2 | Highly comparative time-series analysis algorithm: Correlation SpO2 autocorrelation coefficient at lag = 4 | /Results/HCTSA_CO_AutoCorr_SPO2 | SPO2_pct | |
HCTSA SB_MotifThree SPO2 Sym Entropy | 2 | Highly comparative time-series analysis algorithm: Symbolic transforms SpO2 entropy | /Results/HCTSA_SB_MotifThree_SPO2_SymEntropy | SPO2_pct | |
HCTSA SB_TransitionMatrix1 SPO2 Sym Bin | 2 | Highly comparative time-series analysis algorithm: Symbolic transforms SpO2 eigenvalues of transition matrix at lag = 1 | /Results/HCTSA_SB_TransitionMatrix1_SPO2_SymBin | SPO2_pct | |
HCTSA ST_LocalExtrema SPO2 Stationarity Min | 2 | Highly comparative time-series analysis algorithm: Stationarity SpO2 ratio of minimum to range | /Results/HCTSA_ST_LocalExtrema_SPO2_StationMin | SPO2_pct | |
HCTSA ST_LocalExtrema HR Stationarity Min | 2 | Highly comparative time-series analysis algorithm: Stationarity HR of minimum to range | /Results/HCTSA_ST_LocalExtrema_HR_StationMin | HR | |
HCTSA CO_tc3 HR Correlaton Mean | 2 | Highly comparative time-series analysis algorithm: Correlation HR mean | /Results/HCTSA_CO_tc3_HR_CorrMean | HR | |
HCTSA CO_tc3 SPO2 Correlaton Mean | 2 | Highly comparative time-series analysis algorithm: Correlation SpO2% mean | /Results/HCTSA_CO_tc3_SPO2_CorrMean | SPO2_pct | |
Hyperoxemia Detection >N | 1 | Detect Hyperoxemia of SPO2_pct > N | /Results/Hyperoxemia>N (N is one of [95,98]) | SPO2_pct | |
Flat Detection Resp >10s | 1 | Find over 10 seconds flat signal in resp signal | /Results/FlatResp>10s | resp |
-
The ABD algorithm has been updated to fix this issue here: https://github.com/UVA-CAMA/NICUHDF5Viewer/issues/26
-
Area calculation error (https://github.com/UVA-CAMA/NICUHDF5Viewer/issues/21) affected the bradycardia, desaturation, data available, and periodic breathing algorithms directly. These algorithms' version numbers will be updated in release 2.1. Since other algorithms are dependent on the results from these algorithms (though they may be unaffected by the area calculation), those other algorithms' version numbers will also be updated because the source algorithm has changed (i.e. the new algorithm looks for a root algorithm with a different version number). These secondarily affected algorithms in this circumstance are ABD and brady desat. The ABD algorithm had to be updated in another way (see above) for this release, so the algorithm version number is being incremented anyway. Brady desat needed its version number incremented because of the dat file filtering anyway.
-
The area calculation method has also been changed in data available to make more sense (before I set a threshold of 0.5 and used >= when given a binary data available array, which results in a weird area calculation). I changed it to a threshold of >0, which makes a lot more sense.
-
The dat file filtering has been added here https://github.com/UVA-CAMA/NICUHDF5Viewer/commit/2605d1c1abec8a574133f71fb113431c8f3fe382 and the algorithm version numbers were updated here: https://github.com/UVA-CAMA/NICUHDF5Viewer/commit/02c05ccf27b99ac5892c9195249e821bcdfbcdb0. Technically, these algorithms only would need to be re-run for .dat files, not for all file types, since dat files are the only ones that would be affected here. The only algorithms that would be in this group of only needing to be re-run for dat files would be the Hourly metrics and the cross-correlation metrics. However, I may recommend that everyone re-run anyway because it will make post-processing cleaner to ensure that all data has been processed using the latest algorithm version.
-
Important: duration=stop-start+T. For vital sign tags , T=1000ms at CWRU and UAB and T=1024ms at the other sites. For any apnea tags, T=250ms. For periodic breathing tags, T=20s=20000ms. For resp waveforms, T=5ms at CWRU, T=8ms at UAB and T=16ms at other sites. For ECG waveforms, T=5ms at CWRU, T=8ms at UAB and T=4ms at other sites.
All the Algorithms in BAP v2.0 and HDF5 Viewer v4.0
WARNING: an offset has been found in the "area" calculation for all algorithms using threshtags2.m. For an explanation of the error and a workaround, please see this issue here https://github.com/amedwards/NICUHDF5Viewer/issues/21
Algorithm Display Name | Result Name | Version | Prerequisites | Description |
---|---|---|---|---|
QRS Detection: ECG I | result_qrs(1).qrs | 2 | Physionet QRS detection algorithm: https://physionet.org/physiotools/physionet-cardiovascular-signal-toolbox/ using ECG Lead I | |
QRS Detection: ECG II | result_qrs(2).qrs | 2 | Physionet QRS detection algorithm: https://physionet.org/physiotools/physionet-cardiovascular-signal-toolbox/ using ECG Lead II | |
QRS Detection: ECG III | result_qrs(3).qrs | 2 | Physionet QRS detection algorithm: https://physionet.org/physiotools/physionet-cardiovascular-signal-toolbox/ using ECG Lead III | |
Brady Detection <100 | /Results/Brady<100 | 2 | Identifies all times when HR <100 (no duration threshold, no joining rules) | |
Apnea Detection | /Results/Apnea | 3 | Will use any previously computed QRS Detection results | The resp (chest impedance) waveform is used to calculate the probability of apnea using the William and Mary Algorithm. The algorithm outputs the continuous probability of apnea as well as discrete apnea events. All available ECG signals are used to filter the chest impedance signal to remove artifact from the hearbeat. |
Periodic Breathing | /Results/PeriodicBreathing | 2 | Apnea Detection v3 | The periodic breathing algorithm grabs the results from the apnea algorithm and runs Mary Mohr's periodic breathing algorithm on it to calculate the probability of being in periodic breathing. Probabilities>0.6 (from Mohr's thesis) are tagged as periodic breathing events. |
Brady Detection Pete | /Results/Brady<100-Pete | 2 | Pete Nagraj's bradycardia detection algorithm: Bradys are <100 for ECG HR for at least 4 seconds. Joining rule for bradys is 4 seconds | |
Desat Detection Pete | /Results/Desat<80-Pete | 2 | Pete Nagraj's desat detection algorithm: <80% for at least 10 seconds. If two of those events happen within 10 seconds of eachother, join them together as one event | |
Brady Desat | /Results/BradyDesat | 2 | Brady Detection <100 v2, Desat Detection <80 v2 | Brady Desat Algorithm with a 30 second threshold. Any brady within 30 seconds of any desat (in either direction) will count. The tag begins at the start of the earliest event and ends at last endpoint of any of the tags in the merged event. |
Brady Desat Pete | /Results/BradyDesatPete | 2 | Brady Detection Pete v2, Desat Detection Pete v2 | Identical to the above brady desat algorithm, but the Brady Pete and Desat Pete tags are used as inputs. |
ABD | /Results/ABD | 1 | Apnea Detection v3, Brady Detection <100 v2, Desat Detection <80 v2 | ABD Algorithm using Hoshik Lee's thresholds as described in "A new algorithm for detecting central apnea in neonates," Hoshik Lee et al 2012 Physiol. Meas. |
Data Available: Pulse | /Results/DataAvailable:Pulse | 3 | Determine when pulse signal (heart rate from the pulse oximeter) exists. Tag periods of continuous data. | |
Data Available: HR | /Results/DataAvailable:HR | 3 | Determine when HR signal (heart rate from ecg) exists. Tag periods of continuous data. | |
Data Available: SPO2_pct | /Results/DataAvailable:SPO2_pct | 3 | Determine when spo2% signal exists. Tag periods of continuous data. | |
Data Available: Resp | /Results/DataAvailable:Resp | 3 | Determine when chest impedance waveform exists. Tag periods of continuous data. | |
Data Available: ECG I | /Results/DataAvailable:ECGI | 3 | Determine when ECG lead I signal exists. Tag periods of continuous data. | |
Data Available: ECG II | /Results/DataAvailable:ECGII | 3 | Determine when ECG lead II signal exists. Tag periods of continuous data. | |
Data Available: ECG III | /Results/DataAvailable:ECGIII | 3 | Determine when ECG lead III signal exists. Tag periods of continuous data. | |
Desat Detection <75 | /Results/Desat<75 | 1 | Run a desaturation detection algorithm which identifies any and all drops < the threshold. (no duration threshold, no joining rules) | |
Desat Detection <76 | /Results/Desat<76 | 1 | Run a desaturation detection algorithm which identifies any and all drops < the threshold. (no duration threshold, no joining rules) | |
Desat Detection <77 | /Results/Desat<77 | 1 | Run a desaturation detection algorithm which identifies any and all drops < the threshold. (no duration threshold, no joining rules) | |
Desat Detection <78 | /Results/Desat<78 | 1 | Run a desaturation detection algorithm which identifies any and all drops < the threshold. (no duration threshold, no joining rules) | |
Desat Detection <79 | /Results/Desat<79 | 1 | Run a desaturation detection algorithm which identifies any and all drops < the threshold. (no duration threshold, no joining rules) | |
Desat Detection <80 | /Results/Desat<80 | 2 | Run a desaturation detection algorithm which identifies any and all drops < the threshold. (no duration threshold, no joining rules) | |
Desat Detection <81 | /Results/Desat<81 | 1 | Run a desaturation detection algorithm which identifies any and all drops < the threshold. (no duration threshold, no joining rules) | |
Desat Detection <82 | /Results/Desat<82 | 1 | Run a desaturation detection algorithm which identifies any and all drops < the threshold. (no duration threshold, no joining rules) | |
Desat Detection <83 | /Results/Desat<83 | 1 | Run a desaturation detection algorithm which identifies any and all drops < the threshold. (no duration threshold, no joining rules) | |
Desat Detection <84 | /Results/Desat<84 | 1 | Run a desaturation detection algorithm which identifies any and all drops < the threshold. (no duration threshold, no joining rules) | |
Desat Detection <85 | /Results/Desat<85 | 1 | Run a desaturation detection algorithm which identifies any and all drops < the threshold. (no duration threshold, no joining rules) | |
Desat Detection <86 | /Results/Desat<86 | 1 | Run a desaturation detection algorithm which identifies any and all drops < the threshold. (no duration threshold, no joining rules) | |
Desat Detection <87 | /Results/Desat<87 | 1 | Run a desaturation detection algorithm which identifies any and all drops < the threshold. (no duration threshold, no joining rules) | |
Desat Detection <88 | /Results/Desat<88 | 1 | Run a desaturation detection algorithm which identifies any and all drops < the threshold. (no duration threshold, no joining rules) | |
Desat Detection <89 | /Results/Desat<89 | 1 | Run a desaturation detection algorithm which identifies any and all drops < the threshold. (no duration threshold, no joining rules) | |
Desat Detection <90 | /Results/Desat<90 | 1 | Run a desaturation detection algorithm which identifies any and all drops < the threshold. (no duration threshold, no joining rules) | |
Desat Detection <91 | /Results/Desat<91 | 1 | Run a desaturation detection algorithm which identifies any and all drops < the threshold. (no duration threshold, no joining rules) | |
Desat Detection <92 | /Results/Desat<92 | 1 | Run a desaturation detection algorithm which identifies any and all drops < the threshold. (no duration threshold, no joining rules) | |
Desat Detection <93 | /Results/Desat<93 | 1 | Run a desaturation detection algorithm which identifies any and all drops < the threshold. (no duration threshold, no joining rules) | |
Desat Detection <94 | /Results/Desat<94 | 1 | Run a desaturation detection algorithm which identifies any and all drops < the threshold. (no duration threshold, no joining rules) | |
Desat Detection <95 | /Results/Desat<95 | 1 | Run a desaturation detection algorithm which identifies any and all drops < the threshold. (no duration threshold, no joining rules) | |
Hourly HR Mean | /Results/HourlyHRMean | 1 | Compute the hourly HR (from the ecg signal) mean | |
Hourly Pulse Mean | /Results/HourlyPulseMean | 1 | Compute the hourly pulse rate (from the pulse oximeter) mean | |
Hourly SPO2_pct Mean | /Results/HourlySPO2_pctMean | 1 | Compute the hourly SpO2% mean | |
Hourly HR Std | /Results/HourlyHRStd | 1 | Compute the hourly HR (from the ecg signal) std | |
Hourly Pulse Std | /Results/HourlyPulseStd | 1 | Compute the hourly pulse rate (from the pulse oximeter) std | |
Hourly SPO2_pct Std | /Results/HourlySPO2_pctStd | 1 | Compute the hourly SpO2% std | |
Hourly HR Skewness | /Results/HourlyHRSkewness | 1 | Compute the hourly HR (from the ecg signal) skewness | |
Hourly Pulse Skewness | /Results/HourlyPulseSkewness | 1 | Compute the hourly pulse rate (from the pulse oximeter) skewness | |
Hourly SPO2_pct Skewness | /Results/HourlySPO2_pctSkewness | 1 | Compute the hourly SpO2% skewness | |
Hourly HR Kurtosis | /Results/HourlyHRKurtosis | 1 | Compute the hourly HR (from the ecg signal) kurtosis | |
Hourly Pulse Kurtosis | /Results/HourlyPulseKurtosis | 1 | Compute the hourly pulse rate (from the pulse oximeter) kurtosis | |
Hourly SPO2_pct Kurtosis | /Results/HourlySPO2_pctKurtosis | 1 | Compute the hourly SpO2% kurtosis | |
Max Cross Correlation HR SPO2_pct | /Results/MaxCrossCorrHR_SPO2_pct | 1 | Compute max cross correlation between HR (from the ecg signal) and SpO2% every 10 minutes, using the last 10 min of data (min xcorr & lags are also computed. All values are stored in tags.) | |
Max Cross Correlation Pulse SPO2_pct | /Results/MaxCrossCorrPulse_SPO2_pct | 1 | Compute max cross correlation between pulse rate (from the pulse oximeter) and SpO2% every 10 minutes, using the last 10 min of data (min xcorr & lags are also computed. All values are stored in tags.) |
Old Algorithm Table: A description of all the algorithms in BAP v1.1 and HDF5 Viewer v3.0
Algorithm Display Name | Result Name | Version | Prerequisites | Description |
---|---|---|---|---|
QRS Detection: ECG I | result_qrs(1).qrs | 1 | none | Physionet QRS detection algorithm: https://physionet.org/physiotools/physionet-cardiovascular-signal-toolbox/ using ECG Lead I |
QRS Detection: ECG II | result_qrs(2).qrs | 1 | none | Physionet QRS detection algorithm: https://physionet.org/physiotools/physionet-cardiovascular-signal-toolbox/ using ECG Lead II |
QRS Detection: ECG III | result_qrs(3).qrs | 1 | none | Physionet QRS detection algorithm: https://physionet.org/physiotools/physionet-cardiovascular-signal-toolbox/ using ECG Lead III |
CU Artifact | /Results/CUartifact | 1 | none | Columbia University artifact detection algorithm created by Joe Isler. "HR is compared with PR and data are considered valid only if the difference between HR and lagged PR is > 1 standard deviation from 1h smoothed HR." - Joe Isler. (Boxcar smoothing for 1 hour). Periods of artifact are tagged. |
WUSTL Artifact | /Results/WUSTLartifact | 1 | none | Epochs with a change greater than 3% between serial data points were judged to be contaminated with motion artifact and are tagged |
Brady Detection | /Results/Brady<100 | 1 | none | Identifies all times when HR <100 (no duration threshold, no joining rules) |
Desat Detection | /Results/Desat<80 | 1 | none | Identifies all times when SPO2% <80 (no duration threshold, no joining rules) |
Apnea Detection with ECG Lead I | /Results/Apnea-I | 1 | QRS Detection: ECG I | The resp waveform is used to calculate the probability of apnea using the William and Mary Algorithm. If the ECG I signal is available, it uses the signal to filter out heartbeats from the chest impedance waveform. |
Apnea Detection with ECG Lead II | /Results/Apnea-II | 1 | QRS Detection: ECG II | The resp waveform is used to calculate the probability of apnea using the William and Mary Algorithm. If the ECG II signal is available, it uses the signal to filter out heartbeats from the chest impedance waveform. |
Apnea Detection with ECG Lead III | /Results/Apnea-III | 1 | QRS Detection: ECG III | The resp waveform is used to calculate the probability of apnea using the William and Mary Algorithm. If the ECG III signal is available, it uses the signal to filter out heartbeats from the chest impedance waveform. |
Apnea Detection with No ECG Lead | /Results/Apnea-NoECG | 1 | none | The resp waveform is used to calculate the probability of apnea. |
Periodic Breathing with ECG Lead I | /Results/PeriodicBreathing-I | 1 | Apnea Detection with ECG Lead I | The periodic breathing algorithm grabs the results from the apnea detection with ECG Lead I and runs Mary Mohr's periodic breathing algorithm on it to calculate the probability of being in periodic breathing. Probabilities>0.6 (from Mohr's thesis) are tagged as periodic breathing events. |
Periodic Breathing with ECG Lead II | /Results/PeriodicBreathing-II | 1 | Apnea Detection with ECG Lead II | The periodic breathing algorithm grabs the results from the apnea detection with ECG Lead II and runs Mary Mohr's periodic breathing algorithm on it to calculate the probability of being in periodic breathing. Probabilities>0.6 (from Mohr's thesis) are tagged as periodic breathing events. |
Periodic Breathing with ECG Lead III | /Results/PeriodicBreathing-III | 1 | Apnea Detection with ECG Lead III | The periodic breathing algorithm grabs the results from the apnea detection with ECG Lead III and runs Mary Mohr's periodic breathing algorithm on it to calculate the probability of being in periodic breathing. Probabilities>0.6 (from Mohr's thesis) are tagged as periodic breathing events. |
Periodic Breathing with No ECG Lead | /Results/PeriodicBreathing-NoECG | 1 | Apnea Detection with No ECG Lead | The periodic breathing algorithm grabs the results from the apnea detection with No ECG Lead and runs Mary Mohr's periodic breathing algorithm on it to calculate the probability of being in periodic breathing. Probabilities>0.6 (from Mohr's thesis) are tagged as periodic breathing events. |
Brady Detection Pete | /Results/Brady<100-Pete | 1 | none | Pete Nagraj's bradycardia detection algorithm: Bradys are <100 for ECG HR for at least 4 seconds. Joining rule for bradys is 4 seconds |
Desat Detection Pete | /Results/Desat<80-Pete | 1 | none | Pete Nagraj's desat detection algorithm: <80% for at least 10 seconds. If two of those events happen within 10 seconds of eachother, join them together as one event |
Brady Desat | /Results/BradyDesat | 1 | Brady Detection, Desat Detection | Brady Desat Algorithm with a 30 second threshold. Any brady within 30 seconds of any desat (in either direction) will count. The tag begins at the start of the earliest event and ends at last endpoint of any of the tags in the merged event. |
Brady Desat Pete | /Results/BradyDesatPete | 1 | Brady Detection Pete, Desat Detection Pete | Identical to the above brady desat algorithm, but the Brady Pete and Desat Pete tags are used as inputs. |
ABD Pete No ECG | /Results/ABDPete-NoECG | 2 | Apnea Detection with No ECG Lead, Brady Detection Pete, Desat Detection Pete | ABD Algorithm with a 30 second threshold. Used Pete's B and D tags along with Apnea-NoECG. The tag begins at the start of the earliest event and ends at last endpoint of any of the tags in the merged event. No order of Apnea, Brady, and Desat is enforced. Just any Apnea, Brady and Desat which all occur within a 30 second window around any of the A,B, and/or D events. |
Save HR in Results | /Results/HR | 1 | none | Stores the HR vital sign in the results file. No tags are generated. |
Data Available: Pulse | /Results/DataAvailable:Pulse | 1 | none | Determine when a pulse signal exists. Tag periods of continuous data. |
Data Available: HR | /Results/DataAvailable:HR | 1 | none | Determine when a hr signal exists. Tag periods of continuous data. |
Data Available: SPO2_pct | /Results/DataAvailable:SPO2_pct | 1 | none | Determine when a SpO2% signal exists. Tag periods of continuous data. |
Data Available: Resp | /Results/DataAvailable:Resp | 1 | none | Determine when a resp signal exists. Tag periods of continuous data. |
Data Available: ECG I | /Results/DataAvailable:ECGI | 1 | none | Determine when an ECGI signal exists. Tag periods of continuous data. |
Data Available: ECG II | /Results/DataAvailable:ECGII | 1 | none | Determine when an ECGII signal exists. Tag periods of continuous data. |
Data Available: ECG III | /Results/DataAvailable:ECGIII | 1 | none | Determine when an ECGIII signal exists. Tag periods of continuous data. |