diff --git a/Snakefile b/Snakefile index d43ea4ef..6cd97e2b 100644 --- a/Snakefile +++ b/Snakefile @@ -138,14 +138,14 @@ if config["DORYAB_LOCATION"]["COMPUTE"]: # visualization for data exploration if config["HEATMAP_FEATURES_CORRELATIONS"]["PLOT"]: - files_to_compute.extend(expand("reports/data_exploration/{min_valid_hours_per_day}h/heatmap_features_correlations.html", min_valid_hours_per_day=config["HEATMAP_FEATURES_CORRELATIONS"]["MIN_VALID_HOURS_PER_DAY"])) + files_to_compute.extend(expand("reports/data_exploration/{min_valid_hours_per_day}hours_{min_valid_bins_per_hour}bins/heatmap_features_correlations.html", min_valid_hours_per_day=config["HEATMAP_FEATURES_CORRELATIONS"]["MIN_VALID_HOURS_PER_DAY"], min_valid_bins_per_hour=config["PHONE_VALID_SENSED_DAYS"]["MIN_VALID_BINS_PER_HOUR"])) if config["HISTOGRAM_VALID_SENSED_HOURS"]["PLOT"]: - files_to_compute.extend(expand("reports/data_exploration/{min_valid_hours_per_day}h/histogram_valid_sensed_hours.html", min_valid_hours_per_day=config["HISTOGRAM_VALID_SENSED_HOURS"]["MIN_VALID_HOURS_PER_DAY"])) + files_to_compute.extend(expand("reports/data_exploration/{min_valid_hours_per_day}hours_{min_valid_bins_per_hour}bins/histogram_valid_sensed_hours.html", min_valid_hours_per_day=config["HISTOGRAM_VALID_SENSED_HOURS"]["MIN_VALID_HOURS_PER_DAY"], min_valid_bins_per_hour=config["PHONE_VALID_SENSED_DAYS"]["MIN_VALID_BINS_PER_HOUR"])) if config["HEATMAP_DAYS_BY_SENSORS"]["PLOT"]: - files_to_compute.extend(expand("reports/interim/{min_valid_hours_per_day}h/{pid}/heatmap_days_by_sensors.html", pid=config["PIDS"], min_valid_hours_per_day=config["HEATMAP_DAYS_BY_SENSORS"]["MIN_VALID_HOURS_PER_DAY"])) - files_to_compute.extend(expand("reports/data_exploration/{min_valid_hours_per_day}h/heatmap_days_by_sensors_all_participants.html", min_valid_hours_per_day=config["HEATMAP_DAYS_BY_SENSORS"]["MIN_VALID_HOURS_PER_DAY"])) + files_to_compute.extend(expand("reports/interim/{min_valid_hours_per_day}hours_{min_valid_bins_per_hour}bins/{pid}/heatmap_days_by_sensors.html", pid=config["PIDS"], min_valid_hours_per_day=config["HEATMAP_DAYS_BY_SENSORS"]["MIN_VALID_HOURS_PER_DAY"], min_valid_bins_per_hour=config["PHONE_VALID_SENSED_DAYS"]["MIN_VALID_BINS_PER_HOUR"])) + files_to_compute.extend(expand("reports/data_exploration/{min_valid_hours_per_day}hours_{min_valid_bins_per_hour}bins/heatmap_days_by_sensors_all_participants.html", min_valid_hours_per_day=config["HEATMAP_DAYS_BY_SENSORS"]["MIN_VALID_HOURS_PER_DAY"], min_valid_bins_per_hour=config["PHONE_VALID_SENSED_DAYS"]["MIN_VALID_BINS_PER_HOUR"])) if config["HEATMAP_SENSED_BINS"]["PLOT"]: files_to_compute.extend(expand("reports/interim/heatmap_sensed_bins/{pid}/heatmap_sensed_bins.html", pid=config["PIDS"])) diff --git a/config.yaml b/config.yaml index ba9d568c..ac08a8a6 100644 --- a/config.yaml +++ b/config.yaml @@ -210,6 +210,7 @@ HEATMAP_FEATURES_CORRELATIONS: PLOT: False MIN_ROWS_RATIO: 0.5 MIN_VALID_HOURS_PER_DAY: *min_valid_hours_per_day + MIN_VALID_BINS_PER_HOUR: *min_valid_bins_per_hour PHONE_FEATURES: [accelerometer, activity_recognition, applications_foreground, battery, calls_incoming, calls_missed, calls_outgoing, conversation, light, location_doryab, messages_received, messages_sent, screen] FITBIT_FEATURES: [fitbit_heartrate, fitbit_step, fitbit_sleep] CORR_THRESHOLD: 0.1 @@ -218,10 +219,12 @@ HEATMAP_FEATURES_CORRELATIONS: HISTOGRAM_VALID_SENSED_HOURS: PLOT: False MIN_VALID_HOURS_PER_DAY: *min_valid_hours_per_day + MIN_VALID_BINS_PER_HOUR: *min_valid_bins_per_hour HEATMAP_DAYS_BY_SENSORS: PLOT: False MIN_VALID_HOURS_PER_DAY: *min_valid_hours_per_day + MIN_VALID_BINS_PER_HOUR: *min_valid_bins_per_hour EXPECTED_NUM_OF_DAYS: -1 PHONE_SENSORS_TABLES: ["accelerometer", "applications_foreground", "battery", "calls", "light", "locations", "messages", "screen", "plugin_google_activity_recognition", "plugin_studentlife_audio_android"] @@ -234,8 +237,8 @@ OVERALL_COMPLIANCE_HEATMAP: ONLY_SHOW_VALID_DAYS: False EXPECTED_NUM_OF_DAYS: -1 BIN_SIZE: *bin_size - MIN_VALID_BINS_PER_HOUR: *min_valid_bins_per_hour MIN_VALID_HOURS_PER_DAY: *min_valid_hours_per_day + MIN_VALID_BINS_PER_HOUR: *min_valid_bins_per_hour ### Example Analysis ################################################################ PARAMS_FOR_ANALYSIS: diff --git a/rules/preprocessing.snakefile b/rules/preprocessing.snakefile index 9e6897ae..25338202 100644 --- a/rules/preprocessing.snakefile +++ b/rules/preprocessing.snakefile @@ -25,9 +25,9 @@ PHONE_SENSORS = [] PHONE_SENSORS.extend([config["MESSAGES"]["DB_TABLE"], config["CALLS"]["DB_TABLE"], config["BARNETT_LOCATION"]["DB_TABLE"], config["DORYAB_LOCATION"]["DB_TABLE"], config["BLUETOOTH"]["DB_TABLE"], config["BATTERY"]["DB_TABLE"], config["SCREEN"]["DB_TABLE"], config["LIGHT"]["DB_TABLE"], config["ACCELEROMETER"]["DB_TABLE"], config["APPLICATIONS_FOREGROUND"]["DB_TABLE"], config["CONVERSATION"]["DB_TABLE"]["ANDROID"], config["CONVERSATION"]["DB_TABLE"]["IOS"], config["ACTIVITY_RECOGNITION"]["DB_TABLE"]["ANDROID"], config["ACTIVITY_RECOGNITION"]["DB_TABLE"]["IOS"]]) if len(config["WIFI"]["DB_TABLE"]["VISIBLE_ACCESS_POINTS"]) > 0: - PHONE_SENSORS.extend(config["WIFI"]["DB_TABLE"]["VISIBLE_ACCESS_POINTS"]) + PHONE_SENSORS.append(config["WIFI"]["DB_TABLE"]["VISIBLE_ACCESS_POINTS"]) if len(config["WIFI"]["DB_TABLE"]["CONNECTED_ACCESS_POINTS"]) > 0: - PHONE_SENSORS.extend(config["WIFI"]["DB_TABLE"]["CONNECTED_ACCESS_POINTS"]) + PHONE_SENSORS.append(config["WIFI"]["DB_TABLE"]["CONNECTED_ACCESS_POINTS"]) rule readable_datetime: diff --git a/rules/reports.snakefile b/rules/reports.snakefile index 31f7b439..7229a95e 100644 --- a/rules/reports.snakefile +++ b/rules/reports.snakefile @@ -1,41 +1,41 @@ rule heatmap_features_correlations: input: features = expand("data/processed/{pid}/{sensor}_{day_segment}.csv", pid=config["PIDS"], sensor=config["HEATMAP_FEATURES_CORRELATIONS"]["PHONE_FEATURES"]+config["HEATMAP_FEATURES_CORRELATIONS"]["FITBIT_FEATURES"], day_segment=config["DAY_SEGMENTS"]), - phone_valid_sensed_days = expand("data/interim/{pid}/phone_valid_sensed_days_{{min_valid_hours_per_day}}h.csv", pid=config["PIDS"]) + phone_valid_sensed_days = expand("data/interim/{pid}/phone_valid_sensed_days_{{min_valid_hours_per_day}}hours_{{min_valid_bins_per_hour}}bins.csv", pid=config["PIDS"]) params: min_rows_ratio = config["HEATMAP_FEATURES_CORRELATIONS"]["MIN_ROWS_RATIO"], corr_threshold = config["HEATMAP_FEATURES_CORRELATIONS"]["CORR_THRESHOLD"], corr_method = config["HEATMAP_FEATURES_CORRELATIONS"]["CORR_METHOD"] output: - "reports/data_exploration/{min_valid_hours_per_day}h/heatmap_features_correlations.html" + "reports/data_exploration/{min_valid_hours_per_day}hours_{min_valid_bins_per_hour}bins/heatmap_features_correlations.html" script: "../src/visualization/heatmap_features_correlations.py" rule histogram_valid_sensed_hours: input: - phone_valid_sensed_days = expand("data/interim/{pid}/phone_valid_sensed_days_{{min_valid_hours_per_day}}h.csv", pid=config["PIDS"]) + phone_valid_sensed_days = expand("data/interim/{pid}/phone_valid_sensed_days_{{min_valid_hours_per_day}}hours_{{min_valid_bins_per_hour}}bins.csv", pid=config["PIDS"]) output: - "reports/data_exploration/{min_valid_hours_per_day}h/histogram_valid_sensed_hours.html" + "reports/data_exploration/{min_valid_hours_per_day}hours_{min_valid_bins_per_hour}bins/histogram_valid_sensed_hours.html" script: "../src/visualization/histogram_valid_sensed_hours.py" rule heatmap_days_by_sensors: input: sensors = expand("data/raw/{{pid}}/{sensor}_with_datetime.csv", sensor=config["HEATMAP_DAYS_BY_SENSORS"]["PHONE_SENSORS_TABLES"]), - phone_valid_sensed_days = "data/interim/{pid}/phone_valid_sensed_days_{min_valid_hours_per_day}h.csv" + phone_valid_sensed_days = "data/interim/{pid}/phone_valid_sensed_days_{min_valid_hours_per_day}hours_{min_valid_bins_per_hour}bins.csv" params: pid = "{pid}", expected_num_of_days = config["HEATMAP_DAYS_BY_SENSORS"]["EXPECTED_NUM_OF_DAYS"] output: - "reports/interim/{min_valid_hours_per_day}h/{pid}/heatmap_days_by_sensors.html" + "reports/interim/{min_valid_hours_per_day}hours_{min_valid_bins_per_hour}bins/{pid}/heatmap_days_by_sensors.html" script: "../src/visualization/heatmap_days_by_sensors.py" rule heatmap_days_by_sensors_all_participants: input: - heatmap_rows = expand("reports/interim/{{min_valid_hours_per_day}}h/{pid}/heatmap_days_by_sensors.html", pid=config["PIDS"]) + heatmap_rows = expand("reports/interim/{{min_valid_hours_per_day}}hours_{{min_valid_bins_per_hour}}bins/{pid}/heatmap_days_by_sensors.html", pid=config["PIDS"]) output: - "reports/data_exploration/{min_valid_hours_per_day}h/heatmap_days_by_sensors_all_participants.html" + "reports/data_exploration/{min_valid_hours_per_day}hours_{min_valid_bins_per_hour}bins/heatmap_days_by_sensors_all_participants.html" script: "../src/visualization/heatmap_days_by_sensors_all_participants.Rmd"