Make phone_valid_sensed_days rule works for different min_valid_hours_per_day thresholds
parent
0ada1292ed
commit
124843f96e
|
@ -22,7 +22,7 @@ if config["PHONE_VALID_SENSED_DAYS"]["COMPUTE"]:
|
||||||
if len(config["PHONE_VALID_SENSED_BINS"]["TABLES"]) == 0:
|
if len(config["PHONE_VALID_SENSED_BINS"]["TABLES"]) == 0:
|
||||||
raise ValueError("If you want to compute PHONE_VALID_SENSED_DAYS, you need to add at least one table to [PHONE_VALID_SENSED_BINS][TABLES] in config.yaml")
|
raise ValueError("If you want to compute PHONE_VALID_SENSED_DAYS, you need to add at least one table to [PHONE_VALID_SENSED_BINS][TABLES] in config.yaml")
|
||||||
files_to_compute.extend(expand("data/interim/{pid}/phone_sensed_bins.csv", pid=config["PIDS"]))
|
files_to_compute.extend(expand("data/interim/{pid}/phone_sensed_bins.csv", pid=config["PIDS"]))
|
||||||
files_to_compute.extend(expand("data/interim/{pid}/phone_valid_sensed_days.csv", pid=config["PIDS"]))
|
files_to_compute.extend(expand("data/interim/{pid}/phone_valid_sensed_days_{min_valid_hours_per_day}h.csv", pid=config["PIDS"], min_valid_hours_per_day=config["PHONE_VALID_SENSED_DAYS"]["MIN_VALID_HOURS_PER_DAY"]))
|
||||||
|
|
||||||
if config["MESSAGES"]["COMPUTE"]:
|
if config["MESSAGES"]["COMPUTE"]:
|
||||||
files_to_compute.extend(expand("data/raw/{pid}/{sensor}_raw.csv", pid=config["PIDS"], sensor=config["MESSAGES"]["DB_TABLE"]))
|
files_to_compute.extend(expand("data/raw/{pid}/{sensor}_raw.csv", pid=config["PIDS"], sensor=config["MESSAGES"]["DB_TABLE"]))
|
||||||
|
|
|
@ -32,11 +32,11 @@ PHONE_VALID_SENSED_BINS:
|
||||||
BIN_SIZE: 5 # (in minutes)
|
BIN_SIZE: 5 # (in minutes)
|
||||||
# Add as many sensor tables as you have, they all improve the computation of PHONE_VALID_SENSED_BINS and PHONE_VALID_SENSED_DAYS.
|
# Add as many sensor tables as you have, they all improve the computation of PHONE_VALID_SENSED_BINS and PHONE_VALID_SENSED_DAYS.
|
||||||
# If you are extracting screen or Barnett's location features, screen and locations tables are mandatory.
|
# If you are extracting screen or Barnett's location features, screen and locations tables are mandatory.
|
||||||
TABLES: [locations]
|
TABLES: []
|
||||||
|
|
||||||
PHONE_VALID_SENSED_DAYS:
|
PHONE_VALID_SENSED_DAYS:
|
||||||
COMPUTE: False
|
COMPUTE: False
|
||||||
MIN_VALID_HOURS_PER_DAY: 16 # (out of 24) MIN_HOURS_PER_DAY
|
MIN_VALID_HOURS_PER_DAY: [16, 18, 20] # (out of 24) MIN_HOURS_PER_DAY
|
||||||
MIN_VALID_BINS_PER_HOUR: 6 # (out of 60min/BIN_SIZE bins)
|
MIN_VALID_BINS_PER_HOUR: 6 # (out of 60min/BIN_SIZE bins)
|
||||||
|
|
||||||
# Communication SMS features config, TYPES and FEATURES keys need to match
|
# Communication SMS features config, TYPES and FEATURES keys need to match
|
||||||
|
|
|
@ -22,7 +22,7 @@ rule download_dataset:
|
||||||
"../src/data/download_dataset.R"
|
"../src/data/download_dataset.R"
|
||||||
|
|
||||||
PHONE_SENSORS = []
|
PHONE_SENSORS = []
|
||||||
PHONE_SENSORS.extend([config["MESSAGES"]["DB_TABLE"], config["CALLS"]["DB_TABLE"], config["BARNETT_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["WIFI"]["DB_TABLE"], config["CONVERSATION"]["DB_TABLE"]["ANDROID"], config["CONVERSATION"]["DB_TABLE"]["IOS"], config["ACTIVITY_RECOGNITION"]["DB_TABLE"]["ANDROID"], config["ACTIVITY_RECOGNITION"]["DB_TABLE"]["IOS"]])
|
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["WIFI"]["DB_TABLE"], config["CONVERSATION"]["DB_TABLE"]["ANDROID"], config["CONVERSATION"]["DB_TABLE"]["IOS"], config["ACTIVITY_RECOGNITION"]["DB_TABLE"]["ANDROID"], config["ACTIVITY_RECOGNITION"]["DB_TABLE"]["IOS"]])
|
||||||
|
|
||||||
rule readable_datetime:
|
rule readable_datetime:
|
||||||
input:
|
input:
|
||||||
|
@ -51,10 +51,10 @@ rule phone_valid_sensed_days:
|
||||||
input:
|
input:
|
||||||
phone_sensed_bins = "data/interim/{pid}/phone_sensed_bins.csv"
|
phone_sensed_bins = "data/interim/{pid}/phone_sensed_bins.csv"
|
||||||
params:
|
params:
|
||||||
min_valid_hours_per_day = config["PHONE_VALID_SENSED_DAYS"]["MIN_VALID_HOURS_PER_DAY"],
|
min_valid_hours_per_day = "{min_valid_hours_per_day}",
|
||||||
min_valid_bins_per_hour = config["PHONE_VALID_SENSED_DAYS"]["MIN_VALID_BINS_PER_HOUR"]
|
min_valid_bins_per_hour = config["PHONE_VALID_SENSED_DAYS"]["MIN_VALID_BINS_PER_HOUR"]
|
||||||
output:
|
output:
|
||||||
"data/interim/{pid}/phone_valid_sensed_days.csv"
|
"data/interim/{pid}/phone_valid_sensed_days_{min_valid_hours_per_day}h.csv"
|
||||||
script:
|
script:
|
||||||
"../src/data/phone_valid_sensed_days.R"
|
"../src/data/phone_valid_sensed_days.R"
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@ library("dplyr")
|
||||||
library("tidyr")
|
library("tidyr")
|
||||||
|
|
||||||
phone_sensed_bins <- read.csv(snakemake@input[["phone_sensed_bins"]])
|
phone_sensed_bins <- read.csv(snakemake@input[["phone_sensed_bins"]])
|
||||||
min_valid_hours_per_day <- snakemake@params[["min_valid_hours_per_day"]]
|
min_valid_hours_per_day <- as.integer(snakemake@params[["min_valid_hours_per_day"]])
|
||||||
min_valid_bins_per_hour <- snakemake@params[["min_valid_bins_per_hour"]]
|
min_valid_bins_per_hour <- snakemake@params[["min_valid_bins_per_hour"]]
|
||||||
output_file <- snakemake@output[[1]]
|
output_file <- snakemake@output[[1]]
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue