Example #1
0
def test_bio_analyze():

    # Example with event-related analysis
    data = nk.data("bio_eventrelated_100hz")
    df, info = nk.bio_process(ecg=data["ECG"],
                              rsp=data["RSP"],
                              eda=data["EDA"],
                              keep=data["Photosensor"],
                              sampling_rate=100)
    events = nk.events_find(
        data["Photosensor"],
        threshold_keep="below",
        event_conditions=["Negative", "Neutral", "Neutral", "Negative"])
    epochs = nk.epochs_create(df,
                              events,
                              sampling_rate=100,
                              epochs_start=-0.1,
                              epochs_end=1.9)
    event_related = nk.bio_analyze(epochs)

    assert len(event_related) == len(epochs)
    labels = [int(i) for i in event_related["Label"]]
    assert labels == list(np.arange(1, len(epochs) + 1))

    # Example with interval-related analysis
    data = nk.data("bio_resting_8min_100hz")
    df, info = nk.bio_process(ecg=data["ECG"],
                              rsp=data["RSP"],
                              eda=data["EDA"],
                              sampling_rate=100)
    interval_related = nk.bio_analyze(df)

    assert len(interval_related) == 1
Example #2
0
def test_bio_analyze():

    # Example with event-related analysis
    data = nk.data("bio_eventrelated_100hz")
    df, info = nk.bio_process(ecg=data["ECG"],
                              rsp=data["RSP"],
                              eda=data["EDA"],
                              keep=data["Photosensor"],
                              sampling_rate=100)
    events = nk.events_find(
        data["Photosensor"],
        threshold_keep='below',
        event_conditions=["Negative", "Neutral", "Neutral", "Negative"])
    epochs = nk.epochs_create(df,
                              events,
                              sampling_rate=100,
                              epochs_start=-0.1,
                              epochs_end=1.9)
    event_related = nk.bio_analyze(epochs)

    assert len(event_related) == len(epochs)
    labels = [int(i) for i in event_related['Label']]
    assert labels == list(np.arange(1, len(epochs) + 1))
    assert all(elem in [
        'ECG_Rate_Max', 'ECG_Rate_Min', 'ECG_Rate_Mean', 'ECG_Rate_Max_Time',
        'ECG_Rate_Min_Time', 'ECG_Rate_Trend_Quadratic',
        'ECG_Rate_Trend_Linear', 'ECG_Rate_Trend_R2', 'ECG_Atrial_Phase',
        'ECG_Atrial_PhaseCompletion', 'ECG_Ventricular_Phase',
        'ECG_Ventricular_PhaseCompletion', 'ECG_Quality_Mean', 'RSP_Rate_Max',
        'RSP_Rate_Min', 'RSP_Rate_Mean', 'RSP_Rate_Max_Time',
        'RSP_Rate_Min_Time', 'RSP_Amplitude_Max', 'RSP_Amplitude_Min',
        'RSP_Amplitude_Mean', 'RSP_Phase', 'RSP_PhaseCompletion', 'EDA_SCR',
        'EDA_Peak_Amplitude', 'SCR_Peak_Amplitude', 'SCR_Peak_Amplitude_Time',
        'SCR_RiseTime', 'SCR_RecoveryTime', 'RSA_P2T', 'Label', 'Condition'
    ] for elem in np.array(event_related.columns.values, dtype=str))

    # Example with interval-related analysis
    data = nk.data("bio_resting_8min_100hz")
    df, info = nk.bio_process(ecg=data["ECG"],
                              rsp=data["RSP"],
                              eda=data["EDA"],
                              sampling_rate=100)
    interval_related = nk.bio_analyze(df)

    assert len(interval_related) == 1
    assert all(elem in [
        'ECG_Rate_Mean', 'HRV_RMSSD', 'HRV_MeanNN', 'HRV_SDNN', 'HRV_SDSD',
        'HRV_CVNN', 'HRV_CVSD', 'HRV_MedianNN', 'HRV_MadNN', 'HRV_MCVNN',
        'HRV_pNN50', 'HRV_pNN20', 'HRV_TINN', 'HRV_HTI', 'HRV_ULF', 'HRV_VLF',
        'HRV_LF', 'HRV_HF', 'HRV_VHF', 'HRV_LFHF', 'HRV_LFn', 'HRV_HFn',
        'HRV_LnHF', 'HRV_SD1', 'HRV_SD2', 'HRV_SD2SD1', 'HRV_CSI', 'HRV_CVI',
        'HRV_CSI_Modified', 'HRV_SampEn', 'RSP_Rate_Mean',
        'RSP_Amplitude_Mean', 'RRV_SDBB', 'RRV_RMSSD', 'RRV_SDSD', 'RRV_VLF',
        'RRV_LF', 'RRV_HF', 'RRV_LFHF', 'RRV_LFn', 'RRV_HFn', 'RRV_SD1',
        'RRV_SD2', 'RRV_SD2SD1', 'RRV_ApEn', 'RRV_SampEn', 'RRV_DFA',
        'RSA_P2T_Mean', 'RSA_P2T_Mean_log', 'RSA_P2T_SD', 'RSA_P2T_NoRSA',
        'RSA_PorgesBohrer', 'SCR_Peaks_N', 'SCR_Peaks_Amplitude_Mean'
    ] for elem in np.array(interval_related.columns.values, dtype=str))
Example #3
0
def test_ecg_intervalrelated():

    data = nk.data("bio_resting_5min_100hz")
    df, info = nk.ecg_process(data["ECG"], sampling_rate=100)
    columns = [
        'ECG_Rate_Mean', 'HRV_RMSSD', 'HRV_MeanNN', 'HRV_SDNN', 'HRV_SDSD',
        'HRV_CVNN', 'HRV_CVSD', 'HRV_MedianNN', 'HRV_MadNN', 'HRV_MCVNN',
        'HRV_pNN50', 'HRV_pNN20', 'HRV_TINN', 'HRV_HTI', 'HRV_ULF', 'HRV_VLF',
        'HRV_LF', 'HRV_HF', 'HRV_VHF', 'HRV_LFHF', 'HRV_LFn', 'HRV_HFn',
        'HRV_LnHF', 'HRV_SD1', 'HRV_SD2', 'HRV_SD2SD1', 'HRV_CSI', 'HRV_CVI',
        'HRV_CSI_Modified', 'HRV_SampEn'
    ]

    # Test with signal dataframe
    features_df = nk.ecg_intervalrelated(df)

    assert all(elem in columns
               for elem in np.array(features_df.columns.values, dtype=str))
    assert features_df.shape[0] == 1  # Number of rows

    # Test with dict
    epochs = nk.epochs_create(df,
                              events=[0, 15000],
                              sampling_rate=100,
                              epochs_end=150)
    features_dict = nk.ecg_intervalrelated(epochs, sampling_rate=100)

    assert all(elem in columns
               for elem in np.array(features_dict.columns.values, dtype=str))
    assert features_dict.shape[0] == 2  # Number of rows
Example #4
0
def test_eog_clean():

    # test with exported csv
    eog_signal = nk.data("eog_200hz")["vEOG"]
    eog_cleaned = nk.eog_clean(eog_signal, sampling_rate=200)
    assert eog_cleaned.size == eog_signal.size

    # test with mne.io.Raw
    raw = mne.io.read_raw_fif(mne.datasets.sample.data_path() +
                              "/MEG/sample/sample_audvis_raw.fif",
                              preload=True)
    sampling_rate = raw.info["sfreq"]

    eog_channels = nk.mne_channel_extract(raw, what="EOG", name="EOG")
    eog_cleaned = nk.eog_clean(eog_channels,
                               sampling_rate,
                               method="agarwal2019")
    assert eog_cleaned.size == eog_channels.size

    # compare with mne filter
    eog_cleaned_mne = nk.eog_clean(eog_channels, sampling_rate, method="mne")
    mne_clean = mne.filter.filter_data(
        eog_channels,
        sfreq=sampling_rate,
        l_freq=1,
        h_freq=10,
        filter_length="10s",
        l_trans_bandwidth=0.5,
        h_trans_bandwidth=0.5,
        phase="zero-double",
        fir_window="hann",
        fir_design="firwin2",
        verbose=False,
    )
    assert np.allclose((eog_cleaned_mne - mne_clean).mean(), 0)
Example #5
0
def test_eog_findpeaks():

    eog_signal = nk.data('eog_100hz')
    eog_cleaned = nk.eog_clean(eog_signal, sampling_rate=100)

    # Test with Neurokit
    nk_peaks = nk.eog_findpeaks(eog_cleaned,
                                sampling_rate=100,
                                method="neurokit",
                                threshold=0.33,
                                show=False)
    assert nk_peaks.size == 19

    # Test with MNE
    mne_peaks = nk.eog_findpeaks(eog_cleaned, method="mne")
    assert mne_peaks.size == 44

    # Test with brainstorm
    brainstorm_peaks = nk.eog_findpeaks(eog_cleaned, method="brainstorm")
    assert brainstorm_peaks.size == 28

    blinker_peaks = nk.eog_findpeaks(eog_cleaned,
                                     method="blinker",
                                     sampling_rate=100)
    assert blinker_peaks.size == 14
Example #6
0
def test_eog_plot():

    eog_signal = nk.data("eog_100hz")
    signals, info = nk.eog_process(eog_signal, sampling_rate=100)

    # Plot
    nk.eog_plot(signals, peaks=info, sampling_rate=100)
    fig = plt.gcf()
    assert len(fig.axes) == 3

    titles = ["Raw and Cleaned Signal", "Blink Rate", "Individual Blinks"]
    legends = [["Raw", "Cleaned", "Blinks"], ["Rate", "Mean"], ["Median"]]
    ylabels = ["Amplitude (mV)", "Blinks per minute"]

    for (ax, title, legend, ylabel) in zip(fig.get_axes(), titles, legends,
                                           ylabels):
        assert ax.get_title() == title
        subplot = ax.get_legend_handles_labels()
        assert subplot[1] == legend
        assert ax.get_ylabel() == ylabel

    assert fig.get_axes()[1].get_xlabel() == "Time (seconds)"
    np.testing.assert_array_equal(fig.axes[0].get_xticks(),
                                  fig.axes[1].get_xticks())
    plt.close(fig)

    with pytest.raises(ValueError, match=r'NeuroKit error: eog_plot.*'):
        nk.eog_plot(None)
Example #7
0
def test_eog_process():

    eog_signal = nk.data("eog_200hz")["vEOG"]
    signals, info = nk.eog_process(eog_signal, sampling_rate=200)

    # Extract blinks, test across dataframe and dict
    blinks = np.where(signals["EOG_Blinks"] == 1)[0]
    assert np.all(blinks == info["EOG_Blinks"])
def Get_ECG():
    # Retrieve ECG data from NeuroKit
    print()
    print()
    print(
        "========          Retrieving ECG Signal Data Set            ========")
    ecg_signal = nk.data(dataset="ecg_3000hz")['ECG']
    return ecg_signal
Example #9
0
def test_data():

    dataset="bio_eventrelated_100hz"

    data = nk.data(dataset)
    assert len(data.columns) == 4
    assert data.size == 15000*4
    assert all(elem in ['ECG', 'EDA', 'Photosensor', 'RSP']
               for elem in np.array(data.columns.values, dtype=str))

    dataset2="bio_eventrelated_100hz.csv"

    data2 = nk.data(dataset2)
    assert len(data.columns) == len(data2.columns)
    assert data2.size == data.size
    assert all(elem in np.array(data.columns.values, dtype=str)
               for elem in np.array(data2.columns.values, dtype=str))
def loadRealdata():
    # Download example data
    data = nk.data("bio_eventrelated_100hz")

    # Preprocess the data (filter, find peaks, etc.)
    processed_data, info = nk.bio_process(ecg=data["ECG"], rsp=data["RSP"], eda=data["EDA"], sampling_rate=100)

    # Compute relevant features
    results = nk.bio_analyze(processed_data, sampling_rate=100)
Example #11
0
def test_signal_psd(recwarn):
    warnings.simplefilter("always")

    data = nk.data("bio_eventrelated_100hz")
    out = nk.signal_psd(data["ECG"], sampling_rate=100)

    assert list(out.columns) == ["Frequency", "Power"]

    assert len(recwarn) == 1
    assert recwarn.pop(nk.misc.NeuroKitWarning)
Example #12
0
def test_rsp_intervalrelated():

    data = nk.data("bio_resting_5min_100hz")
    df, info = nk.rsp_process(data["RSP"], sampling_rate=100)

    # Test with signal dataframe
    features_df = nk.rsp_intervalrelated(df)

    assert features_df.shape[0] == 1  # Number of rows

    # Test with dict
    epochs = nk.epochs_create(df,
                              events=[0, 15000],
                              sampling_rate=100,
                              epochs_end=150)
    features_dict = nk.rsp_intervalrelated(epochs)

    assert features_dict.shape[0] == 2  # Number of rows
Example #13
0
def test_hrv_rsa():
    data = nk.data("bio_eventrelated_100hz")
    ecg_signals, info = nk.ecg_process(data["ECG"], sampling_rate=100)
    rsp_signals, _ = nk.rsp_process(data["RSP"], sampling_rate=100)

    rsa_feature_columns = [
        'RSA_P2T_Mean', 'RSA_P2T_Mean_log', 'RSA_P2T_SD', 'RSA_P2T_NoRSA',
        'RSA_PorgesBohrer', 'RSA_Gates_Mean', 'RSA_Gates_Mean_log',
        'RSA_Gates_SD'
    ]

    rsa_features = nk.hrv_rsa(ecg_signals,
                              rsp_signals,
                              rpeaks=info,
                              sampling_rate=100,
                              continuous=False)

    assert all(key in rsa_feature_columns for key in rsa_features.keys())

    # Test simulate RSP signal warning
    with pytest.warns(misc.NeuroKitWarning,
                      match=r"RSP signal not found. For this.*"):
        nk.hrv_rsa(ecg_signals,
                   rpeaks=info,
                   sampling_rate=100,
                   continuous=False)

    with pytest.warns(misc.NeuroKitWarning,
                      match=r"RSP signal not found. RSP signal.*"):
        nk.hrv_rsa(ecg_signals,
                   pd.DataFrame(),
                   rpeaks=info,
                   sampling_rate=100,
                   continuous=False)

    # Test missing rsp onsets/centers
    with pytest.warns(misc.NeuroKitWarning,
                      match=r"Couldn't find rsp cycles onsets and centers.*"):
        rsp_signals["RSP_Peaks"] = 0
        nk.hrv_rsa(ecg_signals,
                   rsp_signals,
                   rpeaks=info,
                   sampling_rate=100,
                   continuous=False)
Example #14
0
def test_eda_intervalrelated():

    data = nk.data("bio_resting_8min_100hz")
    df, info = nk.eda_process(data["EDA"], sampling_rate=100)
    columns = ['SCR_Peaks_N', 'SCR_Peaks_Amplitude_Mean']

    # Test with signal dataframe
    features_df = nk.eda_intervalrelated(df)

    assert all(elem in columns for elem
               in np.array(features_df.columns.values, dtype=str))
    assert features_df.shape[0] == 1  # Number of rows

    # Test with dict
    epochs = nk.epochs_create(df, events=[0, 25300],
                              sampling_rate=100, epochs_end=20)
    features_dict = nk.eda_intervalrelated(epochs)

    assert all(elem in columns for elem
               in np.array(features_dict.columns.values, dtype=str))
    assert features_dict.shape[0] == 2  # Number of rows
Example #15
0
def test_ecg_intervalrelated():

    data = nk.data("bio_resting_5min_100hz")
    df, info = nk.ecg_process(data["ECG"], sampling_rate=100)

    columns = [
        'ECG_Rate_Mean', 'HRV_RMSSD', 'HRV_MeanNN', 'HRV_SDNN', 'HRV_SDSD',
        'HRV_CVNN', 'HRV_CVSD', 'HRV_MedianNN', 'HRV_MadNN', 'HRV_MCVNN',
        'HRV_IQRNN', 'HRV_pNN50', 'HRV_pNN20', 'HRV_TINN', 'HRV_HTI',
        'HRV_ULF', 'HRV_VLF', 'HRV_LF', 'HRV_HF', 'HRV_VHF', 'HRV_LFHF',
        'HRV_LFn', 'HRV_HFn', 'HRV_LnHF', 'HRV_SD1', 'HRV_SD2', 'HRV_SD1SD2',
        'HRV_S', 'HRV_CSI', 'HRV_CVI', 'HRV_CSI_Modified', 'HRV_PIP',
        'HRV_IALS', 'HRV_PSS', 'HRV_PAS', 'HRV_ApEn', 'HRV_SampEn', 'HRV_GI',
        'HRV_SI', 'HRV_AI', 'HRV_PI', 'HRV_C1d', 'HRV_C1a', 'HRV_SD1d',
        'HRV_SD1a', 'HRV_C2d', 'HRV_C2a', 'HRV_SD2d', 'HRV_SD2a', 'HRV_Cd',
        'HRV_Ca', 'HRV_SDNNd', 'HRV_SDNNa'
    ]

    # Test with signal dataframe
    features_df = nk.ecg_intervalrelated(df, sampling_rate=100)

    # https://github.com/neuropsychology/NeuroKit/issues/304
    assert all(features_df == nk.ecg_analyze(
        df, sampling_rate=100, method="interval-related"))

    assert all(elem in np.array(features_df.columns.values, dtype=str)
               for elem in columns)
    assert features_df.shape[0] == 1  # Number of rows

    # Test with dict
    epochs = nk.epochs_create(df,
                              events=[0, 15000],
                              sampling_rate=100,
                              epochs_end=150)
    features_dict = nk.ecg_intervalrelated(epochs, sampling_rate=100)

    assert all(elem in columns
               for elem in np.array(features_dict.columns.values, dtype=str))
    assert features_dict.shape[0] == 2  # Number of rows
Example #16
0
def test_eog_eventrelated():

    eog = nk.data('eog_200hz')['vEOG']
    eog_signals, info = nk.eog_process(eog, sampling_rate=200)
    epochs = nk.epochs_create(eog_signals,
                              events=[5000, 10000, 15000],
                              epochs_start=-0.1,
                              epochs_end=1.9)
    eog_eventrelated = nk.eog_eventrelated(epochs)

    # Test rate features
    assert np.alltrue(
        np.array(eog_eventrelated["EOG_Rate_Min"]) < np.array(
            eog_eventrelated["EOG_Rate_Mean"]))

    assert np.alltrue(
        np.array(eog_eventrelated["EOG_Rate_Mean"]) < np.array(
            eog_eventrelated["EOG_Rate_Max"]))

    # Test blink presence
    assert np.alltrue(
        np.array(eog_eventrelated["EOG_Blinks_Presence"]) == np.array(
            [1, 0, 0]))

    # Test warning on missing columns
    with pytest.warns(nk.misc.NeuroKitWarning,
                      match=r".*does not have an `EOG_Blinks`.*"):
        first_epoch_key = list(epochs.keys())[0]
        first_epoch_copy = epochs[first_epoch_key].copy()
        del first_epoch_copy["EOG_Blinks"]
        nk.eog_eventrelated({**epochs, first_epoch_key: first_epoch_copy})

    with pytest.warns(nk.misc.NeuroKitWarning,
                      match=r".*does not have an `EOG_Rate`.*"):
        first_epoch_key = list(epochs.keys())[0]
        first_epoch_copy = epochs[first_epoch_key].copy()
        del first_epoch_copy["EOG_Rate"]
        nk.eog_eventrelated({**epochs, first_epoch_key: first_epoch_copy})
Example #17
0
def test_eog_eventrelated():

    eog = nk.data('eog_200hz')['vEOG']
    eog_signals, info = nk.eog_process(eog, sampling_rate=200)
    epochs = nk.epochs_create(eog_signals,
                              events=[5000, 10000, 15000],
                              epochs_start=-0.1,
                              epochs_end=1.9)
    eog_eventrelated = nk.eog_eventrelated(epochs)

    # Test rate features
    assert np.alltrue(
        np.array(eog_eventrelated["EOG_Rate_Min"]) < np.array(
            eog_eventrelated["EOG_Rate_Mean"]))

    assert np.alltrue(
        np.array(eog_eventrelated["EOG_Rate_Mean"]) < np.array(
            eog_eventrelated["EOG_Rate_Max"]))

    # Test blink presence
    assert np.alltrue(
        np.array(eog_eventrelated["EOG_Blinks_Presence"]) == np.array(
            [1, 0, 0]))
Example #18
0
def test_rsp_intervalrelated():

    data = nk.data("bio_resting_5min_100hz")
    df, info = nk.rsp_process(data["RSP"], sampling_rate=100)
    columns = ['RSP_Rate_Mean', 'RSP_Amplitude_Mean', 'RRV_SDBB', 'RRV_RMSSD',
               'RRV_SDSD', 'RRV_VLF', 'RRV_LF', 'RRV_HF', 'RRV_LFHF', 'RRV_LFn',
               'RRV_HFn', 'RRV_SD1', 'RRV_SD2', 'RRV_SD2SD1', 'RRV_ApEn',
               'RRV_SampEn', 'RRV_DFA']

    # Test with signal dataframe
    features_df = nk.rsp_intervalrelated(df)

    assert all(elem in columns for elem
               in np.array(features_df.columns.values, dtype=str))
    assert features_df.shape[0] == 1  # Number of rows

    # Test with dict
    epochs = nk.epochs_create(df, events=[0, 15000],
                              sampling_rate=100, epochs_end=150)
    features_dict = nk.rsp_intervalrelated(epochs)

    assert all(elem in columns for elem
               in np.array(features_dict.columns.values, dtype=str))
    assert features_dict.shape[0] == 2  # Number of rows
Example #19
0
def test_eog_intervalrelated():

    eog = nk.data('eog_200hz')['vEOG']
    eog_signals, info = nk.eog_process(eog, sampling_rate=200)

    columns = ['EOG_Peaks_N', 'EOG_Rate_Mean']

    # Test with signal dataframe
    features = nk.eog_intervalrelated(eog_signals)

    assert all(elem in np.array(features.columns.values, dtype=str)
               for elem in columns)
    assert features.shape[0] == 1  # Number of rows

    # Test with dict
    epochs = nk.epochs_create(eog_signals,
                              events=[5000, 10000, 15000],
                              epochs_start=-0.1,
                              epochs_end=1.9)
    epochs_dict = nk.eog_intervalrelated(epochs)

    assert all(elem in columns
               for elem in np.array(epochs_dict.columns.values, dtype=str))
    assert epochs_dict.shape[0] == len(epochs)  # Number of rows
Example #20
0
import pandas as pd
import matplotlib
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import matplotlib.cm
import neurokit2 as nk

# setup matplotlib with Agg to run on server
matplotlib.use('Agg')

# =============================================================================
# Quick Example
# =============================================================================

# Download example data
data = nk.data("bio_eventrelated_100hz")

# Preprocess the data (filter, find peaks, etc.)
processed_data, info = nk.bio_process(ecg=data["ECG"],
                                      rsp=data["RSP"],
                                      eda=data["EDA"],
                                      sampling_rate=100)

# Compute relevant features
results = nk.bio_analyze(processed_data, sampling_rate=100)

# =============================================================================
# Simulate physiological signals
# =============================================================================

# Generate synthetic signals
Example #21
0
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import neurokit2 as nk

# =============================================================================
# Quick Example
# =============================================================================

# Download example data
data = nk.data("bio_eventrelated_100hz")

# Preprocess the data (filter, find peaks, etc.)
processed_data, info = nk.bio_process(ecg=data["ECG"],
                                      rsp=data["RSP"],
                                      eda=data["EDA"],
                                      sampling_rate=100)

# Compute relevant features
results = nk.bio_analyze(processed_data, sampling_rate=100)

# =============================================================================
# Simulate physiological signals
# =============================================================================

# Generate synthetic signals
ecg = nk.ecg_simulate(duration=10, heart_rate=70)
ppg = nk.ppg_simulate(duration=10, heart_rate=70)
rsp = nk.rsp_simulate(duration=10, respiratory_rate=15)
eda = nk.eda_simulate(duration=10, scr_number=3)
emg = nk.emg_simulate(duration=10, burst_number=2)
Example #22
0
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import neurokit2 as nk

# =============================================================================
# Quick Example
# =============================================================================

# Download example data
data = nk.data("bio_eventrelated_100hz")

# Preprocess the data (filter, find peaks, etc.)
processed_data, info = nk.bio_process(ecg=data["ECG"],
                                      rsp=data["RSP"],
                                      eda=data["EDA"],
                                      sampling_rate=100)

# Compute relevant features
results = nk.bio_analyze(processed_data, sampling_rate=100)

# =============================================================================
# Simulate physiological signals
# =============================================================================

# Generate synthetic signals
ecg = nk.ecg_simulate(duration=10, heart_rate=70)
ppg = nk.ppg_simulate(duration=10, heart_rate=70)
rsp = nk.rsp_simulate(duration=10, respiratory_rate=15)
eda = nk.eda_simulate(duration=10, scr_number=3)
emg = nk.emg_simulate(duration=10, burst_number=2)