Module: cardiac

Cardiac analysis nodes.

These nodes analyze cardiac data, for instance from ECG or PPG sensors.

HeartRate

This node calculates the heart rate from the detected R peaks in QRS complexes.

It is applied to the output of the RDetection.The input of this node should be the peak times in the instance axis of the stream with the name of "*-peaks". The heart rate is calculated for each window with the length of "window_length". Then, the processing window is shifted by the "window_shift". The unit for the "window_length" and the "window_shift" can be the number of beats or second and should be selected under the "window_length_unit". The detected heart rates will be placed in a feature axis of a new stream. The name of the input stream "xxx-peaks" will be used and the output stream name will be "xxx-hr".

More Info...

Version 0.5.0

Ports/Properties

  • set_breakpoint
    Set a breakpoint on this node. If this is enabled, your debugger (if one is attached) will trigger a breakpoint.

    • verbose name: Set Breakpoint (Debug Only)
    • default value: False
    • port type: BoolPort
    • value type: bool (can be None)
  • data
    Data to process.

    • verbose name: Data
    • default value: None
    • port type: DataPort
    • value type: Packet (can be None)
    • data direction: INOUT
  • window_length_unit
    Unit in which the window length is given.

    • verbose name: Unit Of Measurement For Window Length
    • default value: seconds
    • port type: EnumPort
    • value type: object (can be None)
  • window_length
    Sliding window length (beats or seconds). If the length of data is more than this length, the data will be segmented into this processing window. If the length of data is less than this window, the data will be buffered to get more data.

    • verbose name: Processing Sliding Window Length (Beats Or Sec)
    • default value: 10
    • port type: FloatPort
    • value type: float (can be None)
  • window_shift
    Shift window length (beats or seconds). The processing window is shifted by this length. Therefore, it should be less than or equal to the processing window. If it is less than the processing window, there will be overlap between two consecutive processing windows. If shift window is the same as the processing window, then there will be no overlap between two consecutive processing windows.

    • verbose name: Shift Window Length (Beats Or Sec)
    • default value: 3
    • port type: FloatPort
    • value type: float (can be None)

HeartRateVariability

This node calculates heart rate variability (HRV) from the detected R peaks in QRS complexes.

It is applied to the output of the RDetection. The input of this node should be the R peak times in the feature axis of the stream specified in "input_stream_name". The HRV is calculated for each window with the length of "window_length". Then, the processing window is shifted by the "window_shift". The unit for the "window_length" and the "window_shift" can be the number of beats or second and should be selected under the "window_length_unit". The following Seven time-domain heart variability features will be calculated and placed in a feature axis of a new stream. - SDNN (ms): the standard deviation of peak intervals - RMSSD (ms): root mean square of successive peak interval differences - SDSD (ms): standard deviation of successive peak interval differences - NN50: (#)the number of pairs of adjacent peak intervals that differ more than 50 ms - pNN50 (%): the percentage of adjacent peal interval differences that differ from each other more than 50 ms - NN20 (#): the number of pairs of adjacent peak intervals that differ more than 20 ms - pNN20 (%), the percentage of adjacent peal interval differences that differ from each other more than 20 ms The detected heart rate variability parameters will be placed in a feature axis of a new stream. The name of the input stream "xxx-peaks" will be used and the output stream name will be "xxx-hrv".

More Info...

Version 1.0.0

Ports/Properties

  • set_breakpoint
    Set a breakpoint on this node. If this is enabled, your debugger (if one is attached) will trigger a breakpoint.

    • verbose name: Set Breakpoint (Debug Only)
    • default value: False
    • port type: BoolPort
    • value type: bool (can be None)
  • data
    Data to process.

    • verbose name: Data
    • default value: None
    • port type: DataPort
    • value type: Packet (can be None)
    • data direction: INOUT
  • window_length_unit
    Unit in which the window length is given.

    • verbose name: Unit Of Measurement For Window Length
    • default value: seconds
    • port type: EnumPort
    • value type: object (can be None)
  • window_length
    Sliding window length (beats or seconds). If the length of data is more than this length, the data will be segmented into this processing window. If the length of data is less than this window, the data will be buffered to get more data.

    • verbose name: Processing Sliding Window Length (Beats Or Sec)
    • default value: 300
    • port type: FloatPort
    • value type: float (can be None)
  • wait_full_buffer
    Wait for the full window buffer as specified above and then calculate HRV parameters

    • verbose name: Wait For Full Buffer
    • default value: False
    • port type: BoolPort
    • value type: bool (can be None)
  • window_shift
    Shift window length (beats or seconds). The processing window is shifted by this length. Therefore, it should be less than or equal to the processing window. If it is less than the processing window, there will be overlap between two consecutive processing windows. If shift window is the same as the processing window, then there will be no overlap between two consecutive processing windows.

    • verbose name: Shift Window Length (Beats Or Sec)
    • default value: 50
    • port type: FloatPort
    • value type: float (can be None)
  • calculate_sdnn
    Caclulate SDNN: the standard deviation of NN intervals

    • verbose name: Calculate Sdnn
    • default value: True
    • port type: BoolPort
    • value type: bool (can be None)
  • calculate_rmssd
    Caclulate RMSSD: root mean square of successive differences

    • verbose name: Calculate Rmssd
    • default value: True
    • port type: BoolPort
    • value type: bool (can be None)
  • calculate_sdsd
    Caclulate SDSD: standard deviation of successive differences

    • verbose name: Calculate Sdsd
    • default value: True
    • port type: BoolPort
    • value type: bool (can be None)
  • calculate_nn50
    Caclulate NN50: the number of pairs of successive NNs that differ by more than 50 ms

    • verbose name: Calculate Nn50
    • default value: True
    • port type: BoolPort
    • value type: bool (can be None)
  • calculate_pnn50
    Caclulate pNN50: the proportion of NN50 divided by total number of NNs

    • verbose name: Calculate Pnn50
    • default value: True
    • port type: BoolPort
    • value type: bool (can be None)
  • calculate_nn20
    Caclulate NN20: the number of pairs of successive NNs that differ by more than 20 ms

    • verbose name: Calculate Nn20
    • default value: True
    • port type: BoolPort
    • value type: bool (can be None)
  • calculate_pnn20
    Caclulate pNN20, the proportion of NN20 divided by total number of NNs

    • verbose name: Calculate Pnn20
    • default value: True
    • port type: BoolPort
    • value type: bool (can be None)

RDetection

Detect R peaks in QRS complexes in ECG time series and peaks in PPG time series base on a modified version of the Pan-Tompkin algorithm.

It can also detect peaks in PPG signals. The input stream should contain ECG/PPG data in one channel. The time of the detected peaks will be placed in an instance axis of a new stream with the name of input stream appended by "-peaks". For example, if the name of input stream is "ecg", the new stream that contains the R peaks is called "ecg-peaks". The values (amplitudes) of the input signal at the peak times are also saved in the data of the new stream.

More Info...

Version 1.0.0

Ports/Properties

  • set_breakpoint
    Set a breakpoint on this node. If this is enabled, your debugger (if one is attached) will trigger a breakpoint.

    • verbose name: Set Breakpoint (Debug Only)
    • default value: False
    • port type: BoolPort
    • value type: bool (can be None)
  • data
    Data to process.

    • verbose name: Data
    • default value: None
    • port type: DataPort
    • value type: Packet (can be None)
    • data direction: INOUT
  • win_processing
    Sliding window length in second. If the length of data is more than this length, the data will be segmented into this processing window. If the length of data is less than this window, the data will be buffered to get more data.

    • verbose name: Processing Sliding Window Length (Sec)
    • default value: 7
    • port type: FloatPort
    • value type: float (can be None)
  • win_shift
    Shift window length in second. The processing window is shifted by this length. Therefore, it should be less than or equal to the processing window. If it is less than the processing window, there will be overlap between two consecutive processing windows. If shift window is the same as the processing window, then there will be no overlap between two consecutive processing windows.

    • verbose name: Shift Window Length (Sec)
    • default value: 1
    • port type: FloatPort
    • value type: float (can be None)
  • sensitivity_threshold
    The peaks with an amplitude less than the average amplitude in the processing window multiplied by this value (between 0 and 1) will not be detected. In a noisy data recording, decreasing this value decreases false positive rate. In a clean data recording, increasing this value reduces false negative rate.

    • verbose name: Sensitivity (Between 0 And 1)
    • default value: 0.4
    • port type: FloatPort
    • value type: float (can be None)
  • max_heartrate
    This is the maximum heart rate (beats per minutes) that the program assumes exists in the data.

    • verbose name: Maximum Heart Rate (Bpm)
    • default value: 240
    • port type: FloatPort
    • value type: float (can be None)
  • win_ave
    Window length in seconds to be used to smooth the input data.

    • verbose name: Average Window Length (Seconds)
    • default value: 0.15
    • port type: FloatPort
    • value type: float (can be None)
  • win_median
    Window length in seconds to be used to find median.

    • verbose name: Median Window Length (Seconds)
    • default value: 0.055
    • port type: FloatPort
    • value type: float (can be None)

RespRate

This node calculates the respiration rate from the detected R peak.

It is applied to the output of the RDetection.The input of this node should have two streams. The first stream is ecg signal (with any name) and the second stream should be R detected peaks extracted by the RDetection nodes in a stream that ends with '-peaks'. The respiration rate is calculated for each window with the length of "window_length". Then, the processing window is shifted by the "window_shift". The unit for the "window_length" and the "window_shift" can be the number of beats or seconds and should be selected under the "window_length_unit". The detected respiration rates will be placed in a feature axis of a new stream. The name of the input stream "xxx-peaks" will be used and the output stream name will be "xxx-resp-rate".

More Info...

Version 0.5.0

Ports/Properties

  • set_breakpoint
    Set a breakpoint on this node. If this is enabled, your debugger (if one is attached) will trigger a breakpoint.

    • verbose name: Set Breakpoint (Debug Only)
    • default value: False
    • port type: BoolPort
    • value type: bool (can be None)
  • data
    Data to process.

    • verbose name: Data
    • default value: None
    • port type: DataPort
    • value type: Packet (can be None)
    • data direction: INOUT
  • window_length_unit
    Unit in which the window length is given.

    • verbose name: Unit Of Measurement For Window Length
    • default value: seconds
    • port type: EnumPort
    • value type: object (can be None)
  • window_length
    Sliding window length (beats or seconds). If the length of data is more than this length, the data will be segmented into this processing window. If the length of data is less than this window, the data will be buffered to get more data.

    • verbose name: Processing Sliding Window Length (Beats Or Sec)
    • default value: 60
    • port type: FloatPort
    • value type: float (can be None)
  • window_shift
    Shift window length (beats or seconds). The processing window is shifted by this length. Therefore, it should be less than or equal to the processing window. If it is less than the processing window, there will be an overlap between two consecutive processing windows. If the shift window is the same as the processing window, then there will be no overlap between two consecutive processing windows.

    • verbose name: Shift Window Length (Beats Or Sec)
    • default value: 1
    • port type: FloatPort
    • value type: float (can be None)
  • minimum_respiration_rate
    minimum respiration rate (respiration per minute). The minimum respiration rate should be set here.

    • verbose name: Minimum Respiration Rate (Respiration Per Minute)
    • default value: 10
    • port type: FloatPort
    • value type: float (can be None)
  • maximum_respiration_rate
    maximum respiration rate (respiration per minute). The maximum respiration rate should be set here.

    • verbose name: Maximum Respiration Rate (Respiration Per Minute)
    • default value: 28
    • port type: FloatPort
    • value type: float (can be None)
  • smooth_it
    Smooth the calculated respiration rate output. If this box is not checked, there might be sudden changes in the calculatted respiration rate.

    • verbose name: Smooth It
    • default value: True
    • port type: BoolPort
    • value type: bool (can be None)