diff --git a/config.yaml b/config.yaml index 6b4461d0..82f5ea53 100644 --- a/config.yaml +++ b/config.yaml @@ -32,7 +32,7 @@ DAY_SEGMENTS: &day_segments INCLUDE_PAST_PERIODIC_SEGMENTS: FALSE # Only relevant if TYPE=PERIODIC, see docs # See https://www.rapids.science/setup/configuration/#device-data-source-configuration -SENSOR_DATA: +DEVICE_DATA: PHONE: SOURCE: TYPE: DATABASE @@ -259,7 +259,7 @@ PHONE_CONVERSATION: ################################################################################ FITBIT_HEARTRATE: - TABLE_FORMAT: JSON # JSON or CSV. If your JSON or CSV data are files change [SENSOR_DATA][FITBIT][SOURCE][TYPE] to FILES + TABLE_FORMAT: JSON # JSON or CSV. If your JSON or CSV data are files change [DEVICE_DATA][FITBIT][SOURCE][TYPE] to FILES TABLE: JSON: fitbit_heartrate CSV: @@ -275,7 +275,7 @@ FITBIT_HEARTRATE: SRC_LANGUAGE: "python" FITBIT_STEPS: - TABLE_FORMAT: JSON # JSON or CSV. If your JSON or CSV data are files change [SENSOR_DATA][FITBIT][SOURCE][TYPE] to FILES + TABLE_FORMAT: JSON # JSON or CSV. If your JSON or CSV data are files change [DEVICE_DATA][FITBIT][SOURCE][TYPE] to FILES TABLE: JSON: fitbit_steps CSV: @@ -302,7 +302,7 @@ FITBIT_STEPS: SRC_LANGUAGE: "python" FITBIT_SLEEP: - TABLE_FORMAT: JSON # JSON or CSV. If your JSON or CSV data are files change [SENSOR_DATA][FITBIT][SOURCE][TYPE] to FILES + TABLE_FORMAT: JSON # JSON or CSV. If your JSON or CSV data are files change [DEVICE_DATA][FITBIT][SOURCE][TYPE] to FILES TABLE: JSON: fitbit_sleep CSV: @@ -315,7 +315,7 @@ FITBIT_SLEEP: SUMMARY_FEATURES: ["sumdurationafterwakeup", "sumdurationasleep", "sumdurationawake", "sumdurationtofallasleep", "sumdurationinbed", "avgefficiency", "countepisode"] FITBIT_CALORIES: - TABLE_FORMAT: JSON # JSON or CSV. If your JSON or CSV data are files change [SENSOR_DATA][FITBIT][SOURCE][TYPE] to FILES + TABLE_FORMAT: JSON # JSON or CSV. If your JSON or CSV data are files change [DEVICE_DATA][FITBIT][SOURCE][TYPE] to FILES TABLE: JSON: fitbit_calories CSV: diff --git a/docs/setup/configuration.md b/docs/setup/configuration.md index 51c11c11..2d6cf22e 100644 --- a/docs/setup/configuration.md +++ b/docs/setup/configuration.md @@ -319,12 +319,12 @@ Day segments (or epochs) are the time windows on which you want to extract behav You might need to modify the following config keys in your `config.yaml` depending on what devices your participants used and where you are storing your data. !!! hint - You can ignore `[SENSOR_DATA][PHONE]` or `[SENSOR_DATA][FITBIT]` if you are not working with either devices. + You can ignore `[DEVICE_DATA][PHONE]` or `[DEVICE_DATA][FITBIT]` if you are not working with either devices. The relevant `config.yaml` section looks as follows by default: ```yaml -SENSOR_DATA: +DEVICE_DATA: PHONE: SOURCE: TYPE: DATABASE @@ -344,7 +344,7 @@ SENSOR_DATA: ``` -**For `[SENSOR_DATA][PHONE]`** +**For `[DEVICE_DATA][PHONE]`** | Key | Description | |---------------------|----------------------------------------------------------------------------------------------------------------------------| @@ -354,7 +354,7 @@ SENSOR_DATA: | `[TIMEZONE] [TYPE]` | Only `SINGLE` is supported | | `[TIMEZONE] [VALUE]` | `*timezone` points to the value defined before in [Timezone of your study](#timezone-of-your-study) | -**For `[SENSOR_DATA][FITBIT]`** +**For `[DEVICE_DATA][FITBIT]`** | Key | Description | |------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------| diff --git a/docs/workflow-examples/minimal.md b/docs/workflow-examples/minimal.md index 924e21eb..0594faf5 100644 --- a/docs/workflow-examples/minimal.md +++ b/docs/workflow-examples/minimal.md @@ -20,7 +20,7 @@ This is a quick guide for creating and running a simple pipeline to extract miss night,00:00:00,5H 59M 59S,every_day,0 ``` - 5\. If you collected data with AWARE you won't need to modify the attributes of `[SENSOR_DATA][PHONE]` + 5\. If you collected data with AWARE you won't need to modify the attributes of `[DEVICE_DATA][PHONE]` 6\. Set `[PHONE_CALLS][PROVIDERS][RAPIDS][COMPUTE]` to `True` @@ -43,7 +43,7 @@ This is a quick guide for creating and running a simple pipeline to extract miss INCLUDE_PAST_PERIODIC_SEGMENTS: FALSE # No need to change this if you collected AWARE data on a database and your credentials are grouped under `MY_GROUP` in `.env` - SENSOR_DATA: + DEVICE_DATA: PHONE: SOURCE: TYPE: DATABASE diff --git a/rules/preprocessing.smk b/rules/preprocessing.smk index 50b34f27..48722cb9 100644 --- a/rules/preprocessing.smk +++ b/rules/preprocessing.smk @@ -27,10 +27,10 @@ rule download_phone_data: input: "data/external/participant_files/{pid}.yaml" params: - source = config["SENSOR_DATA"]["PHONE"]["SOURCE"], + source = config["DEVICE_DATA"]["PHONE"]["SOURCE"], sensor = "phone_" + "{sensor}", table = lambda wildcards: config["PHONE_" + str(wildcards.sensor).upper()]["TABLE"], - timezone = config["SENSOR_DATA"]["PHONE"]["TIMEZONE"]["VALUE"], + timezone = config["DEVICE_DATA"]["PHONE"]["TIMEZONE"]["VALUE"], aware_multiplatform_tables = config["PHONE_ACTIVITY_RECOGNITION"]["TABLE"]["ANDROID"] + "," + config["PHONE_ACTIVITY_RECOGNITION"]["TABLE"]["IOS"] + "," + config["PHONE_CONVERSATION"]["TABLE"]["ANDROID"] + "," + config["PHONE_CONVERSATION"]["TABLE"]["IOS"], output: "data/raw/{pid}/phone_{sensor}_raw.csv" @@ -40,9 +40,9 @@ rule download_phone_data: rule download_fitbit_data: input: participant_file = "data/external/participant_files/{pid}.yaml", - input_file = [] if config["SENSOR_DATA"]["FITBIT"]["SOURCE"]["TYPE"] == "DATABASE" else lambda wildcards: config["FITBIT_" + str(wildcards.sensor).upper()]["TABLE"]["CSV"][str(wildcards.fitbit_data_type).upper()] + input_file = [] if config["DEVICE_DATA"]["FITBIT"]["SOURCE"]["TYPE"] == "DATABASE" else lambda wildcards: config["FITBIT_" + str(wildcards.sensor).upper()]["TABLE"]["CSV"][str(wildcards.fitbit_data_type).upper()] params: - source = config["SENSOR_DATA"]["FITBIT"]["SOURCE"], + source = config["DEVICE_DATA"]["FITBIT"]["SOURCE"], sensor = "fitbit_" + "{sensor}", fitbit_data_type = "{fitbit_data_type}", table = lambda wildcards: config["FITBIT_" + str(wildcards.sensor).upper()]["TABLE"], @@ -69,8 +69,8 @@ rule phone_readable_datetime: sensor_input = "data/raw/{pid}/phone_{sensor}_raw.csv", day_segments = "data/interim/day_segments/{pid}_day_segments.csv" params: - timezones = config["SENSOR_DATA"]["PHONE"]["TIMEZONE"]["TYPE"], - fixed_timezone = config["SENSOR_DATA"]["PHONE"]["TIMEZONE"]["VALUE"], + timezones = config["DEVICE_DATA"]["PHONE"]["TIMEZONE"]["TYPE"], + fixed_timezone = config["DEVICE_DATA"]["PHONE"]["TIMEZONE"]["VALUE"], day_segments_type = config["DAY_SEGMENTS"]["TYPE"], include_past_periodic_segments = config["DAY_SEGMENTS"]["INCLUDE_PAST_PERIODIC_SEGMENTS"] output: @@ -137,8 +137,8 @@ rule phone_locations_processed_with_datetime: sensor_input = "data/interim/{pid}/phone_locations_processed.csv", day_segments = "data/interim/day_segments/{pid}_day_segments.csv" params: - timezones = config["SENSOR_DATA"]["PHONE"]["TIMEZONE"]["TYPE"], - fixed_timezone = config["SENSOR_DATA"]["PHONE"]["TIMEZONE"]["VALUE"], + timezones = config["DEVICE_DATA"]["PHONE"]["TIMEZONE"]["TYPE"], + fixed_timezone = config["DEVICE_DATA"]["PHONE"]["TIMEZONE"]["VALUE"], day_segments_type = config["DAY_SEGMENTS"]["TYPE"], include_past_periodic_segments = config["DAY_SEGMENTS"]["INCLUDE_PAST_PERIODIC_SEGMENTS"] output: @@ -159,8 +159,8 @@ rule resample_episodes_with_datetime: sensor_input = "data/interim/{pid}/{sensor}_episodes_resampled.csv", day_segments = "data/interim/day_segments/{pid}_day_segments.csv" params: - timezones = config["SENSOR_DATA"]["PHONE"]["TIMEZONE"]["TYPE"], - fixed_timezone = config["SENSOR_DATA"]["PHONE"]["TIMEZONE"]["VALUE"], + timezones = config["DEVICE_DATA"]["PHONE"]["TIMEZONE"]["TYPE"], + fixed_timezone = config["DEVICE_DATA"]["PHONE"]["TIMEZONE"]["VALUE"], day_segments_type = config["DAY_SEGMENTS"]["TYPE"], include_past_periodic_segments = config["DAY_SEGMENTS"]["INCLUDE_PAST_PERIODIC_SEGMENTS"] output: @@ -185,7 +185,7 @@ rule fitbit_parse_heartrate: input: data = expand("data/raw/{{pid}}/fitbit_heartrate_{fitbit_data_type}_raw.csv", fitbit_data_type = (["json"] if config["FITBIT_HEARTRATE"]["TABLE_FORMAT"] == "JSON" else ["summary", "intraday"])) params: - timezone = config["SENSOR_DATA"]["PHONE"]["TIMEZONE"]["VALUE"], + timezone = config["DEVICE_DATA"]["PHONE"]["TIMEZONE"]["VALUE"], table = config["FITBIT_HEARTRATE"]["TABLE"], table_format = config["FITBIT_HEARTRATE"]["TABLE_FORMAT"] output: @@ -198,7 +198,7 @@ rule fitbit_parse_steps: input: data = expand("data/raw/{{pid}}/fitbit_steps_{fitbit_data_type}_raw.csv", fitbit_data_type = (["json"] if config["FITBIT_STEPS"]["TABLE_FORMAT"] == "JSON" else ["summary", "intraday"])) params: - timezone = config["SENSOR_DATA"]["PHONE"]["TIMEZONE"]["VALUE"], + timezone = config["DEVICE_DATA"]["PHONE"]["TIMEZONE"]["VALUE"], table = config["FITBIT_STEPS"]["TABLE"], table_format = config["FITBIT_STEPS"]["TABLE_FORMAT"] output: @@ -211,7 +211,7 @@ rule fitbit_parse_calories: input: data = expand("data/raw/{{pid}}/fitbit_calories_{fitbit_data_type}_raw.csv", fitbit_data_type = (["json"] if config["FITBIT_CALORIES"]["TABLE_FORMAT"] == "JSON" else ["summary", "intraday"])) params: - timezone = config["SENSOR_DATA"]["PHONE"]["TIMEZONE"]["VALUE"], + timezone = config["DEVICE_DATA"]["PHONE"]["TIMEZONE"]["VALUE"], table = config["FITBIT_CALORIES"]["TABLE"], table_format = config["FITBIT_CALORIES"]["TABLE_FORMAT"] output: @@ -224,7 +224,7 @@ rule fitbit_parse_sleep: input: data = expand("data/raw/{{pid}}/fitbit_sleep_{fitbit_data_type}_raw.csv", fitbit_data_type = (["json"] if config["FITBIT_SLEEP"]["TABLE_FORMAT"] == "JSON" else ["summary", "intraday"])) params: - timezone = config["SENSOR_DATA"]["PHONE"]["TIMEZONE"]["VALUE"], + timezone = config["DEVICE_DATA"]["PHONE"]["TIMEZONE"]["VALUE"], table = config["FITBIT_SLEEP"]["TABLE"], table_format = config["FITBIT_SLEEP"]["TABLE_FORMAT"] output: @@ -238,7 +238,7 @@ rule fitbit_readable_datetime: sensor_input = "data/raw/{pid}/fitbit_{sensor}_{fitbit_data_type}_parsed.csv", day_segments = "data/interim/day_segments/{pid}_day_segments.csv" params: - fixed_timezone = config["SENSOR_DATA"]["FITBIT"]["TIMEZONE"]["VALUE"], + fixed_timezone = config["DEVICE_DATA"]["FITBIT"]["TIMEZONE"]["VALUE"], day_segments_type = config["DAY_SEGMENTS"]["TYPE"], include_past_periodic_segments = config["DAY_SEGMENTS"]["INCLUDE_PAST_PERIODIC_SEGMENTS"] output: diff --git a/rules/reports.smk b/rules/reports.smk index 0a9d74ec..a385022a 100644 --- a/rules/reports.smk +++ b/rules/reports.smk @@ -66,7 +66,7 @@ rule overall_compliance_heatmap: pid_files = expand("data/external/{pid}", pid=config["PIDS"]) params: only_show_valid_days = config["OVERALL_COMPLIANCE_HEATMAP"]["ONLY_SHOW_VALID_DAYS"], - local_timezone = config["SENSOR_DATA"]["PHONE"]["TIMEZONE"]["VALUE"], + local_timezone = config["DEVICE_DATA"]["PHONE"]["TIMEZONE"]["VALUE"], expected_num_of_days = config["OVERALL_COMPLIANCE_HEATMAP"]["EXPECTED_NUM_OF_DAYS"], bin_size = config["OVERALL_COMPLIANCE_HEATMAP"]["BIN_SIZE"], min_bins_per_hour = "{min_valid_bins_per_hour}" diff --git a/tests/settings/frequency/testing_config.yaml b/tests/settings/frequency/testing_config.yaml index f80ff092..f3fd5f0e 100644 --- a/tests/settings/frequency/testing_config.yaml +++ b/tests/settings/frequency/testing_config.yaml @@ -28,7 +28,7 @@ PARTICIPANT_FILES: # run snakemake -j1 -R parse_participant_files PARSED_FROM: CSV_FILE PARSED_SOURCE: "external/my_fitbit_participants.csv" # CSV file should have: device_id, pid (optional), label (optional), start_date (optional), end_date (optional) -SENSOR_DATA: +DEVICE_DATA: PHONE: SOURCE: TYPE: DATABASE # Phone only supports DATABASE for now diff --git a/tests/settings/periodic/testing_config.yaml b/tests/settings/periodic/testing_config.yaml index 705ee689..e59253cc 100644 --- a/tests/settings/periodic/testing_config.yaml +++ b/tests/settings/periodic/testing_config.yaml @@ -28,7 +28,7 @@ PARTICIPANT_FILES: # run snakemake -j1 -R parse_participant_files PARSED_FROM: CSV_FILE PARSED_SOURCE: "external/my_fitbit_participants.csv" # CSV file should have: device_id, pid (optional), label (optional), start_date (optional), end_date (optional) -SENSOR_DATA: +DEVICE_DATA: PHONE: SOURCE: TYPE: DATABASE # Phone only supports DATABASE for now