diff --git a/config.yaml b/config.yaml index 7f235b12..3d164496 100644 --- a/config.yaml +++ b/config.yaml @@ -484,7 +484,7 @@ EMPATICA_ACCELEROMETER: FEATURES: ["maxmagnitude", "minmagnitude", "avgmagnitude", "medianmagnitude", "stdmagnitude"] SRC_SCRIPT: src/features/empatica_accelerometer/dbdp/main.py CR: - COMPUTE: True + COMPUTE: False FEATURES: ["totalMagnitudeBand", "absoluteMeanBand", "varianceBand"] # Acc features WINDOWS: COMPUTE: True @@ -512,7 +512,7 @@ EMPATICA_TEMPERATURE: FEATURES: ["maxtemp", "mintemp", "avgtemp", "mediantemp", "modetemp", "stdtemp", "diffmaxmodetemp", "diffminmodetemp", "entropytemp"] SRC_SCRIPT: src/features/empatica_temperature/dbdp/main.py CR: - COMPUTE: True + COMPUTE: False FEATURES: ["maximum", "minimum", "meanAbsChange", "longestStrikeAboveMean", "longestStrikeBelowMean", "stdDev", "median", "meanChange", "sumSquared", "squareSumOfComponent", "sumOfSquareComponents"] WINDOWS: @@ -553,7 +553,7 @@ EMPATICA_BLOOD_VOLUME_PULSE: FEATURES: ["maxbvp", "minbvp", "avgbvp", "medianbvp", "modebvp", "stdbvp", "diffmaxmodebvp", "diffminmodebvp", "entropybvp"] SRC_SCRIPT: src/features/empatica_blood_volume_pulse/dbdp/main.py CR: - COMPUTE: True + COMPUTE: False FEATURES: ['meanHr', 'ibi', 'sdnn', 'sdsd', 'rmssd', 'pnn20', 'pnn50', 'sd', 'sd2', 'sd1/sd2', 'numRR', # Time features 'VLF', 'LF', 'LFnorm', 'HF', 'HFnorm', 'LF/HF', 'fullIntegral'] # Freq features WINDOWS: @@ -572,7 +572,7 @@ EMPATICA_INTER_BEAT_INTERVAL: FEATURES: ["maxibi", "minibi", "avgibi", "medianibi", "modeibi", "stdibi", "diffmaxmodeibi", "diffminmodeibi", "entropyibi"] SRC_SCRIPT: src/features/empatica_inter_beat_interval/dbdp/main.py CR: - COMPUTE: True + COMPUTE: False FEATURES: ['meanHr', 'ibi', 'sdnn', 'sdsd', 'rmssd', 'pnn20', 'pnn50', 'sd', 'sd2', 'sd1/sd2', 'numRR', # Time features 'VLF', 'LF', 'LFnorm', 'HF', 'HFnorm', 'LF/HF', 'fullIntegral'] # Freq features PATCH_WITH_BVP: True diff --git a/eda_windows_p01_window_non_zero.png b/eda_windows_p01_window_non_zero.png new file mode 100644 index 00000000..18afe5e8 Binary files /dev/null and b/eda_windows_p01_window_non_zero.png differ diff --git a/maxPeakAmplitudeChangeBefore.png b/maxPeakAmplitudeChangeBefore.png new file mode 100644 index 00000000..228ac830 Binary files /dev/null and b/maxPeakAmplitudeChangeBefore.png differ diff --git a/src/features/cr_features_helper_methods.py b/src/features/cr_features_helper_methods.py index c140fe99..2388f561 100644 --- a/src/features/cr_features_helper_methods.py +++ b/src/features/cr_features_helper_methods.py @@ -38,8 +38,8 @@ def extract_second_order_features(intraday_features, so_features_names, prefix=" so_features[prefix+"SO_numPeaksNonZero"] = intraday_features.groupby(groupby_cols)[prefix+"numPeaks"].apply(lambda x: (x!=0).sum()) # numWindowsNonZero specialized for BVP and IBI sensors - if "hrv_num_windows_non_zero" in so_features_names and prefix+"meanHr" in intraday_features.columns: - so_features[prefix+"SO_numWindowsNonZero"] = intraday_features.groupby(groupby_cols)[prefix+"meanHr"].apply(lambda x: (x!=0).sum()) + if "hrv_num_windows_non_nan" in so_features_names and prefix+"meanHr" in intraday_features.columns: + so_features[prefix+"SO_numWindowsNonNaN"] = intraday_features.groupby(groupby_cols)[prefix+"meanHr"].apply(lambda x: (x!=0).sum()) so_features.reset_index(inplace=True) diff --git a/tests/scripts/zero_vals.py b/tests/scripts/zero_vals.py index 9e13ecf5..d7b4ec7e 100644 --- a/tests/scripts/zero_vals.py +++ b/tests/scripts/zero_vals.py @@ -1,27 +1,50 @@ import pandas as pd import seaborn as sns import matplotlib.pyplot as plt - +from itertools import compress # path = "/rapids/data/processed/features/all_participants/all_sensor_features.csv" # all features all participants # path = "/rapids/data/interim/p03/empatica_accelerometer_features/empatica_accelerometer_python_cr_windows.csv" -path = "/rapids/data/interim/p031/empatica_electrodermal_activity_features/empatica_electrodermal_activity_python_cr_windows.csv" +path = "/rapids/data/interim/p01/empatica_electrodermal_activity_features/empatica_electrodermal_activity_python_cr_windows.csv" # path = "/rapids/data/interim/p02/empatica_inter_beat_interval_features/empatica_inter_beat_interval_python_cr_windows.csv" # path = "/rapids/data/interim/p02/empatica_blood_volume_pulse_features/empatica_blood_volume_pulse_python_cr_windows.csv" # path = "/rapids/data/interim/p02/empatica_temperature_features/empatica_temperature_python_cr_windows.csv" df = pd.read_csv(path) -print(df) -is_NaN = df.isnull() -df = df[df["empatica_electrodermal_activity_cr_numPeaks"]] -print(df) +df_num_peaks_zero = df[df["empatica_electrodermal_activity_cr_numPeaks"] == 0] +columns_num_peaks_zero = df_num_peaks_zero.columns[df_num_peaks_zero.isna().any()].tolist() + +df_num_peaks_non_zero_t = df[df["empatica_electrodermal_activity_cr_numPeaks"] != 0] +df_num_peaks_non_zero = df_num_peaks_non_zero_t[columns_num_peaks_zero] # row_has_NaN = is_NaN. any(axis=1) # rows_with_NaN = df[row_has_NaN] # print(rows_with_NaN.size) +pd.set_option('display.max_columns', None) +# # pd.set_option('display.max_rows', None) +# print(df_num_peaks_non_zero) +df_q = pd.DataFrame() +for col in df_num_peaks_non_zero: + df_q[col] = pd.to_numeric(pd.cut(df_num_peaks_non_zero[col], bins=[-1,0,0.000000000001,1000], labels=[-1,0,1], right=False)) -# sns.heatmap(df.isna(), cbar=False) -plt.savefig('eda_windows_p03_window_60_thresh_default.png', bbox_inches='tight') +sns.heatmap(df_q) +plt.savefig('eda_windows_p01_window_non_zero.png', bbox_inches='tight') +plt.close() +# Filter columns that do not contain 0 +non_zero_cols = list(compress(columns_num_peaks_zero, df_num_peaks_non_zero.all().tolist())) +zero_cols = list(set(columns_num_peaks_zero) - set(non_zero_cols)) + +print(non_zero_cols, "\n") +print(zero_cols) + +# maxPeakAmplitudeChangeBefore + +mpacb = df_num_peaks_non_zero_t\ + [(df_num_peaks_non_zero_t['empatica_electrodermal_activity_cr_avgPeakAmplitudeChangeBefore'] != 0) \ + & (df_num_peaks_non_zero_t['empatica_electrodermal_activity_cr_numPeaks'] != 0)] +print(mpacb['empatica_electrodermal_activity_cr_numPeaks']) +sns.heatmap(mpacb['empatica_electrodermal_activity_cr_numPeaks']) +plt.savefig('maxPeakAmplitudeChangeBefore.png', bbox_inches='tight')