Logfiles to RPE database

Experimental data analysis (Oct / Nov 2023)

Authors
Affiliations

Cathrynne Henshall

Michael J. Booth

Published

Tue Nov 12, 2024 11:38 AM

Abstract

Parsing of the RPE logfiles into DuckDB database for analysis.

Purpose

This notebook loads and parses log file data for the RPE experiments into a database.

The primary objectives are:

  • To load the log files determined to be included in the analysis in notebooks/logfile-reconciliation-RPE.ipynb.
  • To parse and extract the data for each experiment from each corresponding log file and push this data into a DuckDB database.

The notebook can be “rendered” using the very powerful Quarto publication tool to produce HTML (webpage) output from the notebook. The tags # | echo: false suppress the output of the Python code in a cell and only display the results (output from each cell.) See https://quarto.org/docs/reference/formats/html.html#execution for details.

Setup project & directories

This is the init_notebook_mode cell from ITables v2.1.4
(you should not see this message - is your notebook trusted?)
INFO     | Data directory: /Users/mjboothaus/code/github/databooth/horse-logic/data
INFO     | Data directory purpose: Parent directory for raw and processed data
INFO     | Sql directory: /Users/mjboothaus/code/github/databooth/horse-logic/sql
INFO     | Sql directory purpose: Store SQL scripts
INFO     | Output directory: /Users/mjboothaus/code/github/databooth/horse-logic/notebooks/results/RPE
INFO     | Output directory purpose: Store output files and results by experiment type
INFO     | Logfiles directory: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine
INFO     | Logfiles directory purpose: Store for the raw log files
INFO     | Notebooks directory: /Users/mjboothaus/code/github/databooth/horse-logic/notebooks
INFO     | Notebooks directory purpose: Jupyter notebooks for performing analysis
INFO     | Database file path: /Users/mjboothaus/code/github/databooth/horse-logic/data/Experiments_RPE_2023_Q4.ddb
INFO     | Database purpose: Main project databases (outputs) by experiment type
INFO     | Project initialised (RPE): config defined in project_config.yaml
INFO     | Connected to database: /Users/mjboothaus/code/github/databooth/horse-logic/data/Experiments_RPE_2023_Q4.ddb
INFO     | DuckDB version: v1.1.2
INFO     | Tables created successfully from /Users/mjboothaus/code/github/databooth/horse-logic/sql/create_experiment_tables_ddb.sql

Get Subject info

INFO     | Loaded subject info from: /Users/mjboothaus/code/github/databooth/horse-logic/docs/from_CH/Cohort data for MB.xlsx
INFO     | Subject count: 22
INFO     | Sorted subject names:
    apollo, ash, atom, bonnie, clover, dodge, dougie, dusty, filly, freya, george, gio, jelly, molly, mowgli, myrtle, 
    nix, olive, pumba, smudge, teddy, yoshi

Load logfiles from CSV list of included files

As determined in logfiles-reconciliation.ipynb

INFO     | Logs: 234 log files in /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine

Explore regex parsing of a single example log file

Analysis code is in logfiles.py. Explore parsing log information for specific example defined below.

INFO     | Example log file for regex parsing: Experiment_2023-11-17T05:11:53.655051_clover_nan_RPE-R.log

Data structures

These are created as dataclasses in Python (in logfiles.py) and the corresponding TABLES in SQL (sql/create_experiment_tables_ddb.sql).

Experiment class

class Experiment:
    ExperimentID: int
    Cohort: str
    SubjectName: str
    SubjectNumber: int
    SessionNumber: int
    ExperimentType: str
    Comment: Optional[str]
    DateTime: datetime
    LogFileName: str
    Parameters: Dict

e.g. Parse experiment details and comment from log file

Experiment(ExperimentID=None,
           Cohort=None,
           SubjectName='clover',
           SubjectNumber=None,
           SessionNumber=None,
           ExperimentType='RPE-R',
           Comment='RP R',
           DateTime=datetime.datetime(2023, 11, 17, 5, 11, 53, 655051),
           LogFileName='Experiment_2023-11-17T05:11:53.655051_clover_nan_RPE-R.log',
           Parameters=None)
'RP R'

Parameter class

Parameters are stored a a Dict in the Experiment class (see above). These get mapped to a JSON field in the database.

e.g. Parse Parameters from log file
{'CRITERION_LIMIT_R': 8,
 'CRITERION_LIMIT_RP_H': 8,
 'CRITERION_TIME_RP_H': 20,
 'EXTINCTION_CRITERION': 5,
 'EXTINCTION_MINIMUM_TRIALS': 20,
 'FEED_DISPENSE': 5,
 'INITIAL_DELAY': 10,
 'MAX_TIME_START_TO_TOUCH_EVENT': 300,
 'MAX_TRIAL_PER_SESSION': 20,
 'MODE': '-- UNDEFINED --',
 'N_SUBJECT': 30,
 'N_TOUCH': 3,
 'PAUSE_BETWEEN_TRIALS': 10,
 'RESPONSE_TIMEOUT': 45,
 'SENSITIVITY': 5,
 'SERVO_CHANNEL': 1,
 'SERVO_CLOSE': 0,
 'SERVO_DELAY': 0,
 'SERVO_DELAY_AFTER_FEED': 5,
 'SERVO_MODE': 'pellets',
 'SERVO_OPEN': 20,
 'SESSION_STARTED_SOUND_DURATION': 2,
 'SESSION_TERMINATED_SOUND_DURATION': 2,
 'SYSTEM_READY_SOUND_DURATION': 2,
 'TOUCH_PAD_DELAY': 0.1,
 'TRIAL_LIMIT': 20,
 'TRIAL_SLEEP_TIME': 5}

Trial and Event classes

class Trial:
    TrialID: int
    ExperimentID: int
    TrialNumber: int
    TrialStartTime: datetime
    TrialEndTime: datetime
class Event:
    EventID: int
    TrialID: int
    EventNumber: int
    EventTime: datetime
    EventType: str
    EventElapsedTime: float

e.g. Parsing of trials and events info from log file

TrialNumber EventType EventDateTime
Loading ITables v2.1.4 from the init_notebook_mode cell... (need help?)
Example of Trials and Event information

Example of Events for each trial number

Trial #1

TrialNumber EventType EventDateTime time_diff
Loading ITables v2.1.4 from the init_notebook_mode cell... (need help?)

Trial #2

TrialNumber EventType EventDateTime time_diff
Loading ITables v2.1.4 from the init_notebook_mode cell... (need help?)

Trial #3

TrialNumber EventType EventDateTime time_diff
Loading ITables v2.1.4 from the init_notebook_mode cell... (need help?)

Trial #4

TrialNumber EventType EventDateTime time_diff
Loading ITables v2.1.4 from the init_notebook_mode cell... (need help?)

Trial #5

TrialNumber EventType EventDateTime time_diff
Loading ITables v2.1.4 from the init_notebook_mode cell... (need help?)

Trial #6

TrialNumber EventType EventDateTime time_diff
Loading ITables v2.1.4 from the init_notebook_mode cell... (need help?)

Trial #7

TrialNumber EventType EventDateTime time_diff
Loading ITables v2.1.4 from the init_notebook_mode cell... (need help?)

Trial #8

TrialNumber EventType EventDateTime time_diff
Loading ITables v2.1.4 from the init_notebook_mode cell... (need help?)
INFO     | Additional log files excluded as bad data. 12 rows exported to CSV.

TODO (CH): Should record why these extra log files were excluded and ideally move back into the reconciliation notebook. From memory these could not be parsed for some reason.

INFO     | List of logfiles to be loaded to database. 222 rows exported to CSV.

Bringing this all together and putting the data in DuckDB database

INFO     | 1: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-02T21:35:17.816459_bonnie_4_RPE-E.log
INFO     | 2: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-02T21:47:20.552173_bonnie_6_RPE-E.log
INFO     | 3: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-03T14:21:10.046385_bonnie_11_RPE-A.log
INFO     | 4: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-03T14:44:59.283475_bonnie_12_RPE-H.log
INFO     | 5: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-03T16:28:37.069473_bonnie_24_RPE-A.log
INFO     | 6: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-03T16:51:19.423426_bonnie_25_RPE-A.log
INFO     | 7: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-03T17:01:21.834253_bonnie_26_RPE-A.log
INFO     | 8: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-03T17:22:04.359396_bonnie_28_RPE-A.log
INFO     | 9: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-03T17:37:08.452034_bonnie_30_RPE-A.log
INFO     | 10: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-03T17:49:00.288968_bonnie_32_RPE-A.log
INFO     | 11: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-04T10:37:54.349864_bonnie_33_RPE-A.log
INFO     | 12: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-04T10:52:05.825815_bonnie_34_RPE-A.log
INFO     | 13: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-04T11:03:55.497331_bonnie_35_RPE-A.log
INFO     | 14: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-04T11:31:41.212332_bonnie_41_RPE-H.log
INFO     | 15: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-04T11:35:02.366254_ash_1_RPE-H.log
INFO     | 16: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-04T11:36:30.074717_ash_2_RPE-H.log
INFO     | 17: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-04T21:40:04.309838_bonnie_42_RPE-ER.log
INFO     | 18: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-05T11:06:09.758656_bonnie_43_RPE-A.log
INFO     | 19: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-10T14:38:28.391056_bonnie_46_RPE-A.log
INFO     | 20: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-10T14:47:57.242701_bonnie_48_RPE-A.log
INFO     | 21: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-10T15:06:15.158054_bonnie_54_RPE-A.log
INFO     | 22: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-10T15:21:33.860543_filly_1_RPE-A.log
INFO     | 23: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-11T11:04:35.977578_bonnie_55_RPE-A.log
INFO     | 24: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-11T11:09:31.314832_ash_3_RPE-A.log
INFO     | 25: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-11T11:39:20.579879_mowgli_1_RPE-A.log
INFO     | 26: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-11T12:00:06.668934_teddy_1_RPE-A.log
INFO     | 27: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-11T13:52:55.743621_dodge_1_RPE-A.log
INFO     | 28: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-11T15:52:28.784770_filly_2_RPE-A.log
INFO     | 29: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-11T16:26:23.020796_dougie_1_RPE-A.log
INFO     | 30: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-11T16:49:26.273343_bonnie_56_RPE-A.log
INFO     | 31: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-11T16:56:09.875604_bonnie_58_RPE-A.log
INFO     | 32: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-12T09:26:56.784402_bonnie_59_RPE-A.log
INFO     | 33: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-12T10:33:29.340136_bonnie_63_RPE-A.log
INFO     | 34: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-12T11:28:02.439455_bonnie_64_RPE-A.log
INFO     | 35: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-12T11:36:04.060857_bonnie_65_RPE-A.log
INFO     | 36: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-12T11:44:32.961013_ash_4_RPE-A.log
INFO     | 37: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-12T12:35:34.587679_ash_5_RPE-A.log
INFO     | 38: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-12T13:04:00.671875_mowgli_2_RPE-A.log
INFO     | 39: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-16T09:48:06.134122_atom_1_RPE-H.log
INFO     | 40: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-16T10:14:09.991661_ash_6_RPE-A.log
INFO     | 41: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-16T11:08:00.822837_mowgli_3_RPE-A.log
INFO     | 42: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-16T11:54:16.067711_teddy_2_RPE-A.log
INFO     | 43: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-16T12:41:05.124659_dodge_2_RPE-A.log
INFO     | 44: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-16T15:14:47.749133_filly_3_RPE-A.log
INFO     | 45: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-16T16:00:38.503735_dougie_2_RPE-A.log
INFO     | 46: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-16T16:55:54.839279_bonnie_68_RPE-A.log
INFO     | 47: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-17T09:42:51.051301_atom_2_RPE-H.log
INFO     | 48: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-17T10:08:46.553478_ash_7_RPE-H.log
INFO     | 49: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-17T10:43:51.792607_apollo_1_RPE-A.log
INFO     | 50: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-17T11:33:07.797252_molly_1_RPE-A.log
INFO     | 51: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-17T12:04:57.437085_mowgli_4_RPE-H.log
INFO     | 52: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-17T12:26:27.583844_teddy_3_RPE-A.log
INFO     | 53: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-17T14:05:19.058512_dougie_3_RPE-H.log
INFO     | 54: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-17T14:22:20.091990_bonnie_69_RPE-A.log
INFO     | 55: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-17T15:18:51.199193_dodge_3_RPE-A.log
INFO     | 56: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-17T15:56:18.517670_filly_4_RPE-H.log
INFO     | 57: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-17T16:13:41.147669_apollo_2_RPE-H.log
INFO     | 58: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-17T16:31:16.557368_molly_2_RPE-A.log
INFO     | 59: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-18T10:40:53.980873_atom_4_RPE-H.log
INFO     | 60: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-18T10:52:26.644001_atom_5_RPE-H.log
INFO     | 61: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-18T11:03:46.604520_ash_8_RPE-H.log
INFO     | 62: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-18T11:32:49.174973_mowgli_5_RPE-H.log
INFO     | 63: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-18T11:50:11.128592_teddy_4_RPE-H.log
INFO     | 64: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-18T11:53:16.636564_teddy_5_RPE-H.log
INFO     | 65: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-18T12:18:51.615574_dodge_4_RPE-H.log
INFO     | 66: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-18T12:39:09.249294_filly_5_RPE-H.log
INFO     | 67: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-18T13:17:38.910028_dougie_4_RPE-H.log
INFO     | 68: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-18T13:38:27.055291_bonnie_70_RPE-H.log
INFO     | 69: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-18T14:03:55.768637_apollo_3_RPE-H.log
INFO     | 70: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-18T14:33:13.652552_molly_3_RPE-H.log
INFO     | 71: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-19T11:08:11.283839_atom_6_RPE-E.log
INFO     | 72: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-19T11:19:38.380121_atom_7_RPE-E.log
INFO     | 73: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-19T12:21:17.495080_ash_9_RPE-H.log
INFO     | 74: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-19T12:41:55.897985_mowgli_6_RPE-H.log
INFO     | 75: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-19T12:59:13.586703_teddy_6_RPE-H.log
INFO     | 76: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-19T13:38:11.112748_dodge_5_RPE-H.log
INFO     | 77: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-19T13:53:17.960778_filly_6_RPE-H.log
INFO     | 78: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-19T14:19:12.295992_dougie_5_RPE-H.log
INFO     | 79: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-19T14:37:56.973616_bonnie_72_RPE-H.log
INFO     | 80: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-19T15:20:19.777453_apollo_4_RPE-H.log
INFO     | 81: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-19T15:48:21.846383_molly_4_RPE-H.log
INFO     | 82: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-20T09:45:25.477033_atom_8_RPE-ER.log
INFO     | 83: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-20T09:49:19.577983_atom_9_RPE-R.log
INFO     | 84: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-20T10:45:37.839423_ash_10_RPE-E.log
INFO     | 85: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-20T11:37:18.291738_mowgli_8_RPE-E.log
INFO     | 86: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-20T12:17:32.357031_teddy_7_RPE-H.log
INFO     | 87: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-20T13:29:43.577939_dodge_6_RPE-H.log
INFO     | 88: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-20T13:37:55.935693_dodge_7_RPE-H.log
INFO     | 89: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-20T13:49:40.775758_filly_7_RPE-E.log
INFO     | 90: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-20T14:00:45.049518_filly_8_RPE-E.log
INFO     | 91: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-20T15:12:18.561879_dougie_6_RPE-E.log
INFO     | 92: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-20T16:07:14.477740_bonnie_73_RPE-H.log
INFO     | 93: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-20T16:27:31.219719_apollo_5_RPE-H.log
INFO     | 94: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-20T16:44:16.657055_molly_5_RPE-H.log
INFO     | 95: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-20T17:15:02.529514_ash_11_RPE-ER.log
INFO     | 96: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-20T17:18:59.586821_ash_12_RPE-R.log
INFO     | 97: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-20T17:21:35.527287_ash_13_RPE-R.log
INFO     | 98: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-20T17:25:54.309711_ash_14_RPE-R.log
INFO     | 99: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-21T10:47:46.513633_mowgli_9_RPE-ER.log
INFO     | 100: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-21T10:55:05.366041_mowgli_10_RPE-R.log
INFO     | 101: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-21T11:30:24.083259_teddy_8_RPE-E.log
INFO     | 102: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-21T11:37:56.042933_teddy_9_RPE-E.log
INFO     | 103: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-21T11:47:57.260532_teddy_10_RPE-E.log
INFO     | 104: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-21T12:44:24.924507_dodge_8_RPE-E.log
INFO     | 105: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-21T13:51:18.150176_filly_9_RPE-ER.log
INFO     | 106: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-21T13:55:57.512742_filly_10_RPE-R.log
INFO     | 107: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-21T14:50:45.811421_dougie_7_RPE-ER.log
INFO     | 108: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-21T14:53:53.159985_dougie_8_RPE-R.log
INFO     | 109: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-21T15:33:10.335051_bonnie_74_RPE-E.log
INFO     | 110: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-21T16:20:06.112435_apollo_6_RPE-E.log
INFO     | 111: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-21T17:15:56.787430_molly_6_RPE-E.log
INFO     | 112: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-22T09:11:52.083746_teddy_11_RPE-ER.log
INFO     | 113: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-22T09:17:26.852663_teddy_12_RPE-R.log
INFO     | 114: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-22T10:31:07.060496_dodge_9_RPE-ER.log
INFO     | 115: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-22T10:38:59.441932_dodge_10_RPE-R.log
INFO     | 116: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-22T11:20:39.592181_dougie_9_RPE-ER.log
INFO     | 117: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-22T11:24:07.330601_bonnie_75_RPE-R.log
INFO     | 118: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-22T12:11:39.779252_apollo_7_RPE-ER.log
INFO     | 119: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-22T12:18:40.988353_apollo_8_RPE-R.log
INFO     | 120: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-22T12:53:29.137172_molly_7_RPE-ER.log
INFO     | 121: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-10-22T13:10:41.677096_molly_8_RPE-R.log
INFO     | 122: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-14T09:54:22.060520_george_1.0_RPE-A.log
INFO     | 123: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-14T14:36:06.037040_freya_nan_RPE-A.log
INFO     | 124: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-14T18:14:19.518453_george_2.0_RPE-A.log
INFO     | 125: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-14T20:17:30.353770_gio_1.0_RPE-A.log
INFO     | 126: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-14T22:36:12.795118_freya_nan_RPE-A.log
INFO     | 127: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-15T01:45:40.298259_jelly_2.0_RPE-A.log
INFO     | 128: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-15T01:51:32.979182_jelly_3.0_RPE-A.log
INFO     | 129: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-15T02:31:57.949673_george_3.0_RPE-A.log
INFO     | 130: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-15T03:20:29.697169_myrtle_1.0_RPE-A.log
INFO     | 131: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-15T04:22:44.975731_nix_1.0_RPE-A.log
INFO     | 132: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-15T05:13:56.627916_gio_2.0_RPE-A.log
INFO     | 133: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-15T05:52:18.492235_dusty_1.0_RPE-A.log
INFO     | 134: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-15T07:41:48.476413_freya_nan_RPE-H.log
INFO     | 135: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-15T08:01:25.994719_olive_nan_RPE-A.log
INFO     | 136: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-15T08:22:24.924227_pumba_nan_RPE-A.log
INFO     | 137: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-15T08:53:41.278496_clover_nan_RPE-A.log
INFO     | 138: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-15T10:02:23.360356_jelly_4.0_RPE-A.log
INFO     | 139: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-15T10:19:30.072574_smudge_1.0_RPE-A.log
INFO     | 140: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-15T10:27:34.536832_smudge_2.0_RPE-A.log
INFO     | 141: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-15T10:40:11.176212_george_4.0_RPE-H.log
INFO     | 142: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-15T11:16:09.134633_myrtle_2.0_RPE-A.log
INFO     | 143: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-15T11:36:33.220138_yoshi_1.0_RPE-A.log
INFO     | 144: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-15T11:54:28.819021_nix_2.0_RPE-H.log
INFO     | 145: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-15T12:23:16.277645_gio_3.0_RPE-H.log
INFO     | 146: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-15T12:39:40.660298_dusty_2.0_RPE-A.log
INFO     | 147: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-15T14:17:44.314875_freya_nan_RPE-H.log
INFO     | 148: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-15T14:40:14.765087_olive_nan_RPE-A.log
INFO     | 149: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-15T14:59:43.796277_pumba_nan_RPE-A.log
INFO     | 150: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-15T15:30:41.185599_clover_nan_RPE-A.log
INFO     | 151: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-15T15:52:12.803765_jelly_5.0_RPE-A.log
INFO     | 152: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-15T16:30:46.593567_smudge_3.0_RPE-A.log
INFO     | 153: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-15T16:43:44.315061_jelly_7.0_RPE-H.log
INFO     | 154: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-15T16:55:00.448232_smudge_4.0_RPE-H.log
INFO     | 155: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-15T17:17:58.217052_george_5.0_RPE-H.log
INFO     | 156: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-15T17:38:40.242425_myrtle_3.0_RPE-A.log
INFO     | 157: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-15T18:23:59.307350_yoshi_2.0_RPE-A.log
INFO     | 158: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-15T19:08:54.331804_nix_3.0_RPE-H.log
INFO     | 159: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-15T19:23:40.623979_gio_4.0_RPE-H.log
INFO     | 160: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-15T19:50:30.999068_dusty_3.0_RPE-H.log
INFO     | 161: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-15T22:01:01.526289_freya_nan_RPE-H.log
INFO     | 162: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-15T22:12:18.978257_olive_nan_RPE-A.log
INFO     | 163: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-15T22:41:30.310360_pumba_nan_RPE-A.log
INFO     | 164: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-15T23:03:03.689235_clover_nan_RPE-A.log
INFO     | 165: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-15T23:59:15.383154_pumba_nan_RPE-A.log
INFO     | 166: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-16T00:17:43.618022_pumba_nan_RPE-A.log
INFO     | 167: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-16T01:04:54.237126_jelly_8.0_RPE-H.log
INFO     | 168: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-16T01:31:31.062744_smudge_5.0_RPE-H.log
INFO     | 169: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-16T03:33:49.680381_george_6.0_RPE-H.log
INFO     | 170: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-16T03:48:40.468982_myrtle_4.0_RPE-H.log
INFO     | 171: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-16T04:04:24.987457_yoshi_3.0_RPE-H.log
INFO     | 172: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-16T04:15:06.484950_nix_4.0_RPE-H.log
INFO     | 173: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-16T04:27:35.087714_gio_5.0_RPE-H.log
INFO     | 174: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-16T04:44:09.437319_dusty_4.0_RPE-H.log
INFO     | 175: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-16T04:51:19.708255_freya_nan_RPE-E.log
INFO     | 176: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-16T05:40:01.139615_pumba_nan_RPE-H.log
INFO     | 177: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-16T05:51:43.356887_clover_nan_RPE-H.log
INFO     | 178: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-16T07:00:26.264233_jelly_9.0_RPE-H.log
INFO     | 179: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-16T07:22:56.475952_smudge_6.0_RPE-H.log
INFO     | 180: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-16T07:44:26.336193_george_7.0_RPE-E.log
INFO     | 181: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-16T08:26:21.234327_myrtle_5.0_RPE-H.log
INFO     | 182: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-16T08:36:27.057734_yoshi_4.0_RPE-H.log
INFO     | 183: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-16T08:54:11.986734_nix_5.0_RPE-E.log
INFO     | 184: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-16T09:43:41.323909_gio_6.0_RPE-E.log
INFO     | 185: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-16T10:17:41.543732_dusty_5.0_RPE-H.log
INFO     | 186: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-16T10:34:56.139558_pumba_nan_RPE-H.log
INFO     | 187: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-16T10:53:17.451644_clover_nan_RPE-H.log
INFO     | 188: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-16T11:05:32.595613_freya_nan_RPE-ER.log
INFO     | 189: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-16T11:29:51.427589_freya_nan_RPE-R.log
INFO     | 190: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-16T12:36:11.657125_jelly_10.0_RPE-E.log
INFO     | 191: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-16T13:26:08.774326_smudge_7.0_RPE-E.log
INFO     | 192: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-16T14:13:18.433504_george_8.0_RPE-ER.log
INFO     | 193: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-16T14:19:09.443349_george_9.0_RPE-R.log
INFO     | 194: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-16T14:59:03.216301_myrtle_6.0_RPE-H.log
INFO     | 195: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-16T15:18:14.276712_yoshi_5.0_RPE-H.log
INFO     | 196: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-16T15:27:06.878539_nix_6.0_RPE-ER.log
INFO     | 197: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-16T15:38:08.222092_nix_7.0_RPE-R.log
INFO     | 198: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-16T17:28:35.535915_gio_7.0_RPE-ER.log
INFO     | 199: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-16T17:42:28.648521_gio_8.0_RPE-R.log
INFO     | 200: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-16T18:15:15.261472_dusty_6.0_RPE-H.log
INFO     | 201: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-16T18:29:56.344098_pumba_nan_RPE-H.log
INFO     | 202: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-16T18:40:29.694630_clover_nan_RPE-H.log
INFO     | 203: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-16T19:12:22.067645_jelly_11.0_RPE-ER.log
INFO     | 204: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-16T19:17:52.321571_jelly_12.0_RPE-R.log
INFO     | 205: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-16T20:03:07.699554_smudge_8.0_RPE-ER.log
INFO     | 206: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-16T20:10:45.788898_smudge_9.0_RPE-ER.log
INFO     | 207: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-16T20:20:01.485550_smudge_10.0_RPE-R.log
INFO     | 208: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-16T21:04:08.878984_myrtle_7.0_RPE-E.log
INFO     | 209: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-16T21:45:55.894085_yoshi_6.0_RPE-E.log
INFO     | 210: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-16T23:38:56.900855_dusty_7.0_RPE-E.log
INFO     | 211: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-17T00:20:48.760387_pumba_nan_RPE-E.log
INFO     | 212: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-17T01:04:08.654943_clover_nan_RPE-E.log
INFO     | 213: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-17T02:32:42.579535_myrtle_8.0_RPE-ER.log
INFO     | 214: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-17T02:36:00.873487_myrtle_9.0_RPE-R.log
INFO     | 215: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-17T03:07:21.130201_yoshi_7.0_RPE-ER.log
INFO     | 216: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-17T03:18:39.516437_yoshi_8.0_RPE-R.log
INFO     | 217: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-17T03:47:06.036775_dusty_8.0_RPE-ER.log
INFO     | 218: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-17T03:53:10.219784_dusty_9.0_RPE-R.log
INFO     | 219: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-17T04:28:22.359716_pumba_nan_RPE-ER.log
INFO     | 220: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-17T04:35:19.272760_pumba_nan_RPE-R.log
INFO     | 221: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-17T05:01:05.582394_clover_nan_RPE-ER.log
INFO     | 222: /Users/mjboothaus/code/github/databooth/horse-logic/data/results/zips/data_17Jan2020_email_hillydale_equine/Experiment_2023-11-17T05:11:53.655051_clover_nan_RPE-R.log
INFO     | # Loaded - Experiments: 222, Trials: 3670, Events: 12188

Run some basic SQL queries to examine the overall characteristics of the data

The companion notebook database-queries.ipynb explores the database in more detail.

# Cross-check queries

con.sql("SHOW TABLES;")
┌─────────────┐
│    name     │
│   varchar   │
├─────────────┤
│ Events      │
│ Experiments │
│ Trials      │
└─────────────┘

Experiments table

con.sql("SELECT COUNT(*) as n_experiment FROM Experiments")
┌──────────────┐
│ n_experiment │
│    int64     │
├──────────────┤
│          222 │
└──────────────┘
con.sql("SELECT DISTINCT ExperimentType FROM Experiments")
┌────────────────┐
│ ExperimentType │
│    varchar     │
├────────────────┤
│ RPE-A          │
│ RPE-E          │
│ RPE-H          │
│ RPE-ER         │
│ RPE-R          │
└────────────────┘
con.sql("SELECT DISTINCT SubjectName FROM Experiments ORDER BY SubjectName")
┌─────────────┐
│ SubjectName │
│   varchar   │
├─────────────┤
│ apollo      │
│ ash         │
│ atom        │
│ bonnie      │
│ clover      │
│ dodge       │
│ dougie      │
│ dusty       │
│ filly       │
│ freya       │
│ george      │
│ gio         │
│ jelly       │
│ molly       │
│ mowgli      │
│ myrtle      │
│ nix         │
│ olive       │
│ pumba       │
│ smudge      │
│ teddy       │
│ yoshi       │
├─────────────┤
│   22 rows   │
└─────────────┘
con.sql("SELECT DISTINCT Cohort FROM Experiments")
┌─────────┐
│ Cohort  │
│ varchar │
├─────────┤
│ HD      │
│ CSU     │
└─────────┘
# Cross-check against inputs - OK

con.sql(
    "SELECT DISTINCT Cohort, SubjectNumber, SubjectName FROM Experiments ORDER BY SubjectNumber"
)  # .df().to_csv(HORSE_ORDER_PATH / "cross_check_subjects.csv")
┌─────────┬───────────────┬─────────────┐
│ Cohort  │ SubjectNumber │ SubjectName │
│ varchar │     int32     │   varchar   │
├─────────┼───────────────┼─────────────┤
│ HD      │             1 │ atom        │
│ HD      │             2 │ ash         │
│ HD      │             3 │ mowgli      │
│ HD      │             4 │ teddy       │
│ HD      │             5 │ dodge       │
│ HD      │             6 │ filly       │
│ HD      │             7 │ dougie      │
│ HD      │             8 │ bonnie      │
│ HD      │             9 │ apollo      │
│ HD      │            10 │ molly       │
│ CSU     │            11 │ jelly       │
│ CSU     │            12 │ smudge      │
│ CSU     │            13 │ george      │
│ CSU     │            14 │ myrtle      │
│ CSU     │            15 │ yoshi       │
│ CSU     │            16 │ nix         │
│ CSU     │            17 │ gio         │
│ CSU     │            18 │ dusty       │
│ CSU     │            19 │ freya       │
│ CSU     │            20 │ olive       │
│ CSU     │            21 │ pumba       │
│ CSU     │            22 │ clover      │
├─────────┴───────────────┴─────────────┤
│ 22 rows                     3 columns │
└───────────────────────────────────────┘

Trials table

con.sql("SELECT COUNT(*) as n_trial FROM Trials")
┌─────────┐
│ n_trial │
│  int64  │
├─────────┤
│    3670 │
└─────────┘

Events table

con.sql("SELECT COUNT(*) as n_event FROM Events")
┌─────────┐
│ n_event │
│  int64  │
├─────────┤
│   12188 │
└─────────┘
con.sql("SELECT COUNT (DISTINCT EventType) as n_event_type FROM Events")
┌──────────────┐
│ n_event_type │
│    int64     │
├──────────────┤
│           46 │
└──────────────┘

Parameters table

con.sql(
    """
    SELECT COUNT (DISTINCT Parameters) 
    FROM
        Experiments
"""
)
┌────────────────────────────┐
│ count(DISTINCT Parameters) │
│           int64            │
├────────────────────────────┤
│                         22 │
└────────────────────────────┘
# TODO - Count elements in the JSON ()
con.sql(
    """
    SELECT DISTINCT json_keys(Parameters) as num_items, ExperimentType FROM Experiments
        """
)
┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬────────────────┐
│                                                                                                                                                                                                                                                          num_items                                                                                                                                                                                                                                                          │ ExperimentType │
│                                                                                                                                                                                                                                                          varchar[]                                                                                                                                                                                                                                                          │    varchar     │
├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼────────────────┤
│ [CRITERION_LIMIT_RP_H, CRITERION_TIME_RP_H, FEED_DISPENSE, INITIAL_DELAY, MAX_TIME_START_TO_TOUCH_EVENT, MAX_TRIAL_PER_SESSION, MODE, N_SUBJECT, N_TOUCH, PAUSE_BETWEEN_TRIALS, RESPONSE_TIMEOUT, SENSITIVITY, SERVO_CHANNEL, SERVO_CLOSE, SERVO_DELAY, SERVO_DELAY_AFTER_FEED, SERVO_MODE, SERVO_OPEN, SESSION_STARTED_SOUND_DURATION, SESSION_TERMINATED_SOUND_DURATION, SYSTEM_READY_SOUND_DURATION, TOUCH_PAD_DELAY, TRIAL_LIMIT, TRIAL_SLEEP_TIME]                                                                     │ RPE-ER         │
│ [CRITERION_LIMIT_RP_H, CRITERION_TIME_RP_H, EXTINCTION_CRITERION, EXTINCTION_MINIMUM_TRIALS, FEED_DISPENSE, INITIAL_DELAY, MAX_TIME_START_TO_TOUCH_EVENT, MAX_TRIAL_PER_SESSION, MODE, N_SUBJECT, N_TOUCH, PAUSE_BETWEEN_TRIALS, RESPONSE_TIMEOUT, SENSITIVITY, SERVO_CHANNEL, SERVO_CLOSE, SERVO_DELAY, SERVO_DELAY_AFTER_FEED, SERVO_MODE, SERVO_OPEN, SESSION_STARTED_SOUND_DURATION, SESSION_TERMINATED_SOUND_DURATION, SYSTEM_READY_SOUND_DURATION, TOUCH_PAD_DELAY, TRIAL_LIMIT, TRIAL_SLEEP_TIME]                    │ RPE-ER         │
│ [CRITERION_LIMIT_RP_H, CRITERION_TIME_RP_H, EXTINCTION_CRITERION, EXTINCTION_MINIMUM_TRIALS, FEED_DISPENSE, INITIAL_DELAY, MAX_TIME_START_TO_TOUCH_EVENT, MAX_TRIAL_PER_SESSION, MODE, N_SUBJECT, N_TOUCH, PAUSE_BETWEEN_TRIALS, RESPONSE_TIMEOUT, SENSITIVITY, SERVO_CHANNEL, SERVO_CLOSE, SERVO_DELAY, SERVO_DELAY_AFTER_FEED, SERVO_MODE, SERVO_OPEN, SESSION_STARTED_SOUND_DURATION, SESSION_TERMINATED_SOUND_DURATION, SYSTEM_READY_SOUND_DURATION, TOUCH_PAD_DELAY, TRIAL_LIMIT, TRIAL_SLEEP_TIME]                    │ RPE-R          │
│ [CRITERION_LIMIT_RP_H, CRITERION_TIME_RP_H, FEED_DISPENSE, INITIAL_DELAY, MAX_TIME_START_TO_TOUCH_EVENT, MAX_TRIAL_PER_SESSION, MODE, N_SUBJECT, N_TOUCH, PAUSE_BETWEEN_TRIALS, RESPONSE_TIMEOUT, SENSITIVITY, SERVO_CHANNEL, SERVO_CLOSE, SERVO_DELAY, SERVO_DELAY_AFTER_FEED, SERVO_MODE, SERVO_OPEN, SESSION_STARTED_SOUND_DURATION, SESSION_TERMINATED_SOUND_DURATION, SYSTEM_READY_SOUND_DURATION, TOUCH_PAD_DELAY, TRIAL_LIMIT, TRIAL_SLEEP_TIME]                                                                     │ RPE-E          │
│ [CRITERION_LIMIT_R, CRITERION_LIMIT_RP_H, CRITERION_TIME_RP_H, EXTINCTION_CRITERION, EXTINCTION_MINIMUM_TRIALS, FEED_DISPENSE, INITIAL_DELAY, MAX_TIME_START_TO_TOUCH_EVENT, MAX_TRIAL_PER_SESSION, MODE, N_SUBJECT, N_TOUCH, PAUSE_BETWEEN_TRIALS, RESPONSE_TIMEOUT, SENSITIVITY, SERVO_CHANNEL, SERVO_CLOSE, SERVO_DELAY, SERVO_DELAY_AFTER_FEED, SERVO_MODE, SERVO_OPEN, SESSION_STARTED_SOUND_DURATION, SESSION_TERMINATED_SOUND_DURATION, SYSTEM_READY_SOUND_DURATION, TOUCH_PAD_DELAY, TRIAL_LIMIT, TRIAL_SLEEP_TIME] │ RPE-E          │
│ [CRITERION_LIMIT_R, CRITERION_LIMIT_RP_H, CRITERION_TIME_RP_H, EXTINCTION_CRITERION, EXTINCTION_MINIMUM_TRIALS, FEED_DISPENSE, INITIAL_DELAY, MAX_TIME_START_TO_TOUCH_EVENT, MAX_TRIAL_PER_SESSION, MODE, N_SUBJECT, N_TOUCH, PAUSE_BETWEEN_TRIALS, RESPONSE_TIMEOUT, SENSITIVITY, SERVO_CHANNEL, SERVO_CLOSE, SERVO_DELAY, SERVO_DELAY_AFTER_FEED, SERVO_MODE, SERVO_OPEN, SESSION_STARTED_SOUND_DURATION, SESSION_TERMINATED_SOUND_DURATION, SYSTEM_READY_SOUND_DURATION, TOUCH_PAD_DELAY, TRIAL_LIMIT, TRIAL_SLEEP_TIME] │ RPE-ER         │
│ [CRITERION_LIMIT_R, CRITERION_LIMIT_RP_H, CRITERION_TIME_RP_H, EXTINCTION_CRITERION, EXTINCTION_MINIMUM_TRIALS, FEED_DISPENSE, INITIAL_DELAY, MAX_TIME_START_TO_TOUCH_EVENT, MAX_TRIAL_PER_SESSION, MODE, N_SUBJECT, N_TOUCH, PAUSE_BETWEEN_TRIALS, RESPONSE_TIMEOUT, SENSITIVITY, SERVO_CHANNEL, SERVO_CLOSE, SERVO_DELAY, SERVO_DELAY_AFTER_FEED, SERVO_MODE, SERVO_OPEN, SESSION_STARTED_SOUND_DURATION, SESSION_TERMINATED_SOUND_DURATION, SYSTEM_READY_SOUND_DURATION, TOUCH_PAD_DELAY, TRIAL_LIMIT, TRIAL_SLEEP_TIME] │ RPE-R          │
│ [CRITERION_LIMIT_RP_H, CRITERION_TIME_RP_H, FEED_DISPENSE, INITIAL_DELAY, MAX_TIME_START_TO_TOUCH_EVENT, MAX_TRIAL_PER_SESSION, MODE, N_SUBJECT, N_TOUCH, RESPONSE_TIMEOUT, SENSITIVITY, SERVO_CHANNEL, SERVO_CLOSE, SERVO_DELAY, SERVO_DELAY_AFTER_FEED, SERVO_MODE, SERVO_OPEN, SESSION_STARTED_SOUND_DURATION, SESSION_TERMINATED_SOUND_DURATION, SYSTEM_READY_SOUND_DURATION, TOUCH_PAD_DELAY, TRIAL_LIMIT, TRIAL_SLEEP_TIME]                                                                                           │ RPE-E          │
│ [CRITERION_LIMIT_RP_H, CRITERION_TIME_RP_H, FEED_DISPENSE, INITIAL_DELAY, MAX_TIME_START_TO_TOUCH_EVENT, MAX_TRIAL_PER_SESSION, MODE, N_SUBJECT, N_TOUCH, PAUSE_BETWEEN_TRIALS, RESPONSE_TIMEOUT, SENSITIVITY, SERVO_CHANNEL, SERVO_CLOSE, SERVO_DELAY, SERVO_DELAY_AFTER_FEED, SERVO_MODE, SERVO_OPEN, SESSION_STARTED_SOUND_DURATION, SESSION_TERMINATED_SOUND_DURATION, SYSTEM_READY_SOUND_DURATION, TOUCH_PAD_DELAY, TRIAL_LIMIT, TRIAL_SLEEP_TIME]                                                                     │ RPE-A          │
│ [CRITERION_LIMIT_R, CRITERION_LIMIT_RP_H, CRITERION_TIME_RP_H, EXTINCTION_CRITERION, EXTINCTION_MINIMUM_TRIALS, FEED_DISPENSE, INITIAL_DELAY, MAX_TIME_START_TO_TOUCH_EVENT, MAX_TRIAL_PER_SESSION, MODE, N_SUBJECT, N_TOUCH, PAUSE_BETWEEN_TRIALS, RESPONSE_TIMEOUT, SENSITIVITY, SERVO_CHANNEL, SERVO_CLOSE, SERVO_DELAY, SERVO_DELAY_AFTER_FEED, SERVO_MODE, SERVO_OPEN, SESSION_STARTED_SOUND_DURATION, SESSION_TERMINATED_SOUND_DURATION, SYSTEM_READY_SOUND_DURATION, TOUCH_PAD_DELAY, TRIAL_LIMIT, TRIAL_SLEEP_TIME] │ RPE-H          │
│ [CRITERION_LIMIT_RP_H, CRITERION_TIME_RP_H, FEED_DISPENSE, INITIAL_DELAY, MAX_TIME_START_TO_TOUCH_EVENT, MAX_TRIAL_PER_SESSION, MODE, N_SUBJECT, N_TOUCH, PAUSE_BETWEEN_TRIALS, RESPONSE_TIMEOUT, SENSITIVITY, SERVO_CHANNEL, SERVO_CLOSE, SERVO_DELAY, SERVO_DELAY_AFTER_FEED, SERVO_MODE, SERVO_OPEN, SESSION_STARTED_SOUND_DURATION, SESSION_TERMINATED_SOUND_DURATION, SYSTEM_READY_SOUND_DURATION, TOUCH_PAD_DELAY, TRIAL_LIMIT, TRIAL_SLEEP_TIME]                                                                     │ RPE-H          │
│ [CRITERION_LIMIT_R, CRITERION_LIMIT_RP_H, CRITERION_TIME_RP_H, EXTINCTION_CRITERION, EXTINCTION_MINIMUM_TRIALS, FEED_DISPENSE, INITIAL_DELAY, MAX_TIME_START_TO_TOUCH_EVENT, MAX_TRIAL_PER_SESSION, MODE, N_SUBJECT, N_TOUCH, PAUSE_BETWEEN_TRIALS, RESPONSE_TIMEOUT, SENSITIVITY, SERVO_CHANNEL, SERVO_CLOSE, SERVO_DELAY, SERVO_DELAY_AFTER_FEED, SERVO_MODE, SERVO_OPEN, SESSION_STARTED_SOUND_DURATION, SESSION_TERMINATED_SOUND_DURATION, SYSTEM_READY_SOUND_DURATION, TOUCH_PAD_DELAY, TRIAL_LIMIT, TRIAL_SLEEP_TIME] │ RPE-A          │
├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴────────────────┤
│ 12 rows                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            2 columns │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
# SQL to retrieve specific parameter (INITIAL_DELAY) from specific ExperimentID

con.sql(
    """
    SELECT 
        ExperimentID,
        JSON_EXTRACT(Parameters, '$.INITIAL_DELAY') AS InitialDelay
    FROM 
        Experiments
    WHERE
        ExperimentID = 42
"""
)
┌──────────────┬──────────────┐
│ ExperimentID │ InitialDelay │
│    int32     │     json     │
├──────────────┼──────────────┤
│           42 │ 10           │
└──────────────┴──────────────┘
con.sql(
    """
    SELECT DISTINCT Parameters 
    FROM
        Experiments
        """
).df()
Parameters
Loading ITables v2.1.4 from the init_notebook_mode cell... (need help?)
parameter_df = con.sql("SELECT Parameters FROM Experiments").df()
parameter_df["Parameters"].nunique()
22
parameter_df["Parameters"].unique()
array(['{"CRITERION_LIMIT_RP_H": 3, "CRITERION_TIME_RP_H": 20, "FEED_DISPENSE": 20, "INITIAL_DELAY": 10, "MAX_TIME_START_TO_TOUCH_EVENT": 300, "MAX_TRIAL_PER_SESSION": 20, "MODE": "test", "N_SUBJECT": 20, "N_TOUCH": 3, "RESPONSE_TIMEOUT": 45, "SENSITIVITY": 5, "SERVO_CHANNEL": 1, "SERVO_CLOSE": 0, "SERVO_DELAY": 0.7, "SERVO_DELAY_AFTER_FEED": 3, "SERVO_MODE": "pellets", "SERVO_OPEN": 180, "SESSION_STARTED_SOUND_DURATION": 2, "SESSION_TERMINATED_SOUND_DURATION": 2, "SYSTEM_READY_SOUND_DURATION": 2, "TOUCH_PAD_DELAY": 0.1, "TRIAL_LIMIT": 20, "TRIAL_SLEEP_TIME": 5}',
       '{"CRITERION_LIMIT_RP_H": 3, "CRITERION_TIME_RP_H": 20, "FEED_DISPENSE": 20, "INITIAL_DELAY": 10, "MAX_TIME_START_TO_TOUCH_EVENT": 300, "MAX_TRIAL_PER_SESSION": 20, "MODE": "test", "N_SUBJECT": 20, "N_TOUCH": 3, "PAUSE_BETWEEN_TRIALS": 5, "RESPONSE_TIMEOUT": 45, "SENSITIVITY": 5, "SERVO_CHANNEL": 1, "SERVO_CLOSE": 0, "SERVO_DELAY": 0.7, "SERVO_DELAY_AFTER_FEED": 3, "SERVO_MODE": "pellets", "SERVO_OPEN": 180, "SESSION_STARTED_SOUND_DURATION": 2, "SESSION_TERMINATED_SOUND_DURATION": 2, "SYSTEM_READY_SOUND_DURATION": 2, "TOUCH_PAD_DELAY": 0.1, "TRIAL_LIMIT": 20, "TRIAL_SLEEP_TIME": 5}',
       '{"CRITERION_LIMIT_RP_H": 3, "CRITERION_TIME_RP_H": 20, "FEED_DISPENSE": 20, "INITIAL_DELAY": 10, "MAX_TIME_START_TO_TOUCH_EVENT": 300, "MAX_TRIAL_PER_SESSION": 20, "MODE": "test", "N_SUBJECT": 20, "N_TOUCH": 3, "PAUSE_BETWEEN_TRIALS": 5, "RESPONSE_TIMEOUT": 45, "SENSITIVITY": 5, "SERVO_CHANNEL": 1, "SERVO_CLOSE": 0, "SERVO_DELAY": 0.7, "SERVO_DELAY_AFTER_FEED": "-- UNDEFINED --", "SERVO_MODE": "pellets", "SERVO_OPEN": 180, "SESSION_STARTED_SOUND_DURATION": 2, "SESSION_TERMINATED_SOUND_DURATION": 2, "SYSTEM_READY_SOUND_DURATION": 2, "TOUCH_PAD_DELAY": 0.1, "TRIAL_LIMIT": 20, "TRIAL_SLEEP_TIME": 5}',
       '{"CRITERION_LIMIT_RP_H": 3, "CRITERION_TIME_RP_H": 20, "FEED_DISPENSE": 20, "INITIAL_DELAY": 10, "MAX_TIME_START_TO_TOUCH_EVENT": 300, "MAX_TRIAL_PER_SESSION": 20, "MODE": "test", "N_SUBJECT": 20, "N_TOUCH": 3, "PAUSE_BETWEEN_TRIALS": 30, "RESPONSE_TIMEOUT": 45, "SENSITIVITY": 5, "SERVO_CHANNEL": 1, "SERVO_CLOSE": 0, "SERVO_DELAY": 0.7, "SERVO_DELAY_AFTER_FEED": "-- UNDEFINED --", "SERVO_MODE": "pellets", "SERVO_OPEN": 180, "SESSION_STARTED_SOUND_DURATION": 2, "SESSION_TERMINATED_SOUND_DURATION": 2, "SYSTEM_READY_SOUND_DURATION": 2, "TOUCH_PAD_DELAY": 0.1, "TRIAL_LIMIT": 20, "TRIAL_SLEEP_TIME": 5}',
       '{"CRITERION_LIMIT_RP_H": 3, "CRITERION_TIME_RP_H": 20, "FEED_DISPENSE": 20, "INITIAL_DELAY": 10, "MAX_TIME_START_TO_TOUCH_EVENT": 300, "MAX_TRIAL_PER_SESSION": 20, "MODE": "test", "N_SUBJECT": 20, "N_TOUCH": 3, "PAUSE_BETWEEN_TRIALS": 5, "RESPONSE_TIMEOUT": 45, "SENSITIVITY": 5, "SERVO_CHANNEL": 1, "SERVO_CLOSE": 0, "SERVO_DELAY": 0.7, "SERVO_DELAY_AFTER_FEED": 20, "SERVO_MODE": "pellets", "SERVO_OPEN": 180, "SESSION_STARTED_SOUND_DURATION": 2, "SESSION_TERMINATED_SOUND_DURATION": 2, "SYSTEM_READY_SOUND_DURATION": 2, "TOUCH_PAD_DELAY": 0.1, "TRIAL_LIMIT": 20, "TRIAL_SLEEP_TIME": 5}',
       '{"CRITERION_LIMIT_RP_H": 3, "CRITERION_TIME_RP_H": 20, "FEED_DISPENSE": 20, "INITIAL_DELAY": 10, "MAX_TIME_START_TO_TOUCH_EVENT": 300, "MAX_TRIAL_PER_SESSION": 20, "MODE": "test", "N_SUBJECT": 20, "N_TOUCH": 3, "PAUSE_BETWEEN_TRIALS": 5, "RESPONSE_TIMEOUT": 45, "SENSITIVITY": 4, "SERVO_CHANNEL": 1, "SERVO_CLOSE": 0, "SERVO_DELAY": 0.7, "SERVO_DELAY_AFTER_FEED": 20, "SERVO_MODE": "pellets", "SERVO_OPEN": 180, "SESSION_STARTED_SOUND_DURATION": 2, "SESSION_TERMINATED_SOUND_DURATION": 2, "SYSTEM_READY_SOUND_DURATION": 2, "TOUCH_PAD_DELAY": 0.1, "TRIAL_LIMIT": 20, "TRIAL_SLEEP_TIME": 5}',
       '{"CRITERION_LIMIT_RP_H": 3, "CRITERION_TIME_RP_H": 20, "FEED_DISPENSE": 20, "INITIAL_DELAY": 10, "MAX_TIME_START_TO_TOUCH_EVENT": 300, "MAX_TRIAL_PER_SESSION": 20, "MODE": "test", "N_SUBJECT": 20, "N_TOUCH": 3, "PAUSE_BETWEEN_TRIALS": 30, "RESPONSE_TIMEOUT": 45, "SENSITIVITY": 4, "SERVO_CHANNEL": 1, "SERVO_CLOSE": 0, "SERVO_DELAY": 0.7, "SERVO_DELAY_AFTER_FEED": 20, "SERVO_MODE": "pellets", "SERVO_OPEN": 180, "SESSION_STARTED_SOUND_DURATION": 2, "SESSION_TERMINATED_SOUND_DURATION": 2, "SYSTEM_READY_SOUND_DURATION": 2, "TOUCH_PAD_DELAY": 0.1, "TRIAL_LIMIT": 20, "TRIAL_SLEEP_TIME": 5}',
       '{"CRITERION_LIMIT_RP_H": 3, "CRITERION_TIME_RP_H": 20, "FEED_DISPENSE": 3, "INITIAL_DELAY": 10, "MAX_TIME_START_TO_TOUCH_EVENT": 300, "MAX_TRIAL_PER_SESSION": 20, "MODE": "-- UNDEFINED --", "N_SUBJECT": 20, "N_TOUCH": 3, "PAUSE_BETWEEN_TRIALS": 1, "RESPONSE_TIMEOUT": 45, "SENSITIVITY": 5, "SERVO_CHANNEL": 1, "SERVO_CLOSE": 0, "SERVO_DELAY": 0.7, "SERVO_DELAY_AFTER_FEED": 5, "SERVO_MODE": "pellets", "SERVO_OPEN": 180, "SESSION_STARTED_SOUND_DURATION": 2, "SESSION_TERMINATED_SOUND_DURATION": 2, "SYSTEM_READY_SOUND_DURATION": 2, "TOUCH_PAD_DELAY": 0.1, "TRIAL_LIMIT": 20, "TRIAL_SLEEP_TIME": 5}',
       '{"CRITERION_LIMIT_RP_H": 3, "CRITERION_TIME_RP_H": 20, "FEED_DISPENSE": 5, "INITIAL_DELAY": 10, "MAX_TIME_START_TO_TOUCH_EVENT": 300, "MAX_TRIAL_PER_SESSION": 20, "MODE": "-- UNDEFINED --", "N_SUBJECT": 20, "N_TOUCH": 3, "PAUSE_BETWEEN_TRIALS": 10, "RESPONSE_TIMEOUT": 45, "SENSITIVITY": 5, "SERVO_CHANNEL": 1, "SERVO_CLOSE": 0, "SERVO_DELAY": 0.7, "SERVO_DELAY_AFTER_FEED": 5, "SERVO_MODE": "pellets", "SERVO_OPEN": 180, "SESSION_STARTED_SOUND_DURATION": 2, "SESSION_TERMINATED_SOUND_DURATION": 2, "SYSTEM_READY_SOUND_DURATION": 2, "TOUCH_PAD_DELAY": 0.1, "TRIAL_LIMIT": 20, "TRIAL_SLEEP_TIME": 5}',
       '{"CRITERION_LIMIT_RP_H": 8, "CRITERION_TIME_RP_H": 20, "FEED_DISPENSE": 5, "INITIAL_DELAY": 10, "MAX_TIME_START_TO_TOUCH_EVENT": 300, "MAX_TRIAL_PER_SESSION": 20, "MODE": "-- UNDEFINED --", "N_SUBJECT": 20, "N_TOUCH": 3, "PAUSE_BETWEEN_TRIALS": 10, "RESPONSE_TIMEOUT": 45, "SENSITIVITY": 5, "SERVO_CHANNEL": 1, "SERVO_CLOSE": 0, "SERVO_DELAY": 0.7, "SERVO_DELAY_AFTER_FEED": 5, "SERVO_MODE": "pellets", "SERVO_OPEN": 180, "SESSION_STARTED_SOUND_DURATION": 2, "SESSION_TERMINATED_SOUND_DURATION": 2, "SYSTEM_READY_SOUND_DURATION": 2, "TOUCH_PAD_DELAY": 0.1, "TRIAL_LIMIT": 20, "TRIAL_SLEEP_TIME": 5}',
       '{"CRITERION_LIMIT_RP_H": 8, "CRITERION_TIME_RP_H": 20, "FEED_DISPENSE": 5, "INITIAL_DELAY": 10, "MAX_TIME_START_TO_TOUCH_EVENT": 300, "MAX_TRIAL_PER_SESSION": 20, "MODE": "-- UNDEFINED --", "N_SUBJECT": 20, "N_TOUCH": 3, "PAUSE_BETWEEN_TRIALS": 10, "RESPONSE_TIMEOUT": 45, "SENSITIVITY": 5, "SERVO_CHANNEL": 1, "SERVO_CLOSE": 0, "SERVO_DELAY": 0.8, "SERVO_DELAY_AFTER_FEED": 5, "SERVO_MODE": "pellets", "SERVO_OPEN": 180, "SESSION_STARTED_SOUND_DURATION": 2, "SESSION_TERMINATED_SOUND_DURATION": 2, "SYSTEM_READY_SOUND_DURATION": 2, "TOUCH_PAD_DELAY": 0.1, "TRIAL_LIMIT": 20, "TRIAL_SLEEP_TIME": 5}',
       '{"CRITERION_LIMIT_RP_H": 8, "CRITERION_TIME_RP_H": 20, "FEED_DISPENSE": 5, "INITIAL_DELAY": 10, "MAX_TIME_START_TO_TOUCH_EVENT": 300, "MAX_TRIAL_PER_SESSION": 20, "MODE": "-- UNDEFINED --", "N_SUBJECT": 20, "N_TOUCH": 3, "PAUSE_BETWEEN_TRIALS": 10, "RESPONSE_TIMEOUT": 45, "SENSITIVITY": 5, "SERVO_CHANNEL": 1, "SERVO_CLOSE": 0, "SERVO_DELAY": 0.85, "SERVO_DELAY_AFTER_FEED": 5, "SERVO_MODE": "pellets", "SERVO_OPEN": 180, "SESSION_STARTED_SOUND_DURATION": 2, "SESSION_TERMINATED_SOUND_DURATION": 2, "SYSTEM_READY_SOUND_DURATION": 2, "TOUCH_PAD_DELAY": 0.1, "TRIAL_LIMIT": 20, "TRIAL_SLEEP_TIME": 5}',
       '{"CRITERION_LIMIT_RP_H": 8, "CRITERION_TIME_RP_H": 20, "FEED_DISPENSE": 5, "INITIAL_DELAY": 10, "MAX_TIME_START_TO_TOUCH_EVENT": 300, "MAX_TRIAL_PER_SESSION": 20, "MODE": "-- UNDEFINED --", "N_SUBJECT": 20, "N_TOUCH": 3, "PAUSE_BETWEEN_TRIALS": 10, "RESPONSE_TIMEOUT": 45, "SENSITIVITY": 5, "SERVO_CHANNEL": 1, "SERVO_CLOSE": 0, "SERVO_DELAY": 1, "SERVO_DELAY_AFTER_FEED": 5, "SERVO_MODE": "pellets", "SERVO_OPEN": 180, "SESSION_STARTED_SOUND_DURATION": 2, "SESSION_TERMINATED_SOUND_DURATION": 2, "SYSTEM_READY_SOUND_DURATION": 2, "TOUCH_PAD_DELAY": 0.1, "TRIAL_LIMIT": 20, "TRIAL_SLEEP_TIME": 5}',
       '{"CRITERION_LIMIT_RP_H": 8, "CRITERION_TIME_RP_H": 20, "EXTINCTION_CRITERION": 5, "EXTINCTION_MINIMUM_TRIALS": 20, "FEED_DISPENSE": 5, "INITIAL_DELAY": 10, "MAX_TIME_START_TO_TOUCH_EVENT": 300, "MAX_TRIAL_PER_SESSION": 20, "MODE": "-- UNDEFINED --", "N_SUBJECT": 20, "N_TOUCH": 3, "PAUSE_BETWEEN_TRIALS": 10, "RESPONSE_TIMEOUT": 45, "SENSITIVITY": 5, "SERVO_CHANNEL": 1, "SERVO_CLOSE": 0, "SERVO_DELAY": 1, "SERVO_DELAY_AFTER_FEED": 5, "SERVO_MODE": "pellets", "SERVO_OPEN": 180, "SESSION_STARTED_SOUND_DURATION": 2, "SESSION_TERMINATED_SOUND_DURATION": 2, "SYSTEM_READY_SOUND_DURATION": 2, "TOUCH_PAD_DELAY": 0.1, "TRIAL_LIMIT": 20, "TRIAL_SLEEP_TIME": 5}',
       '{"CRITERION_LIMIT_R": 8, "CRITERION_LIMIT_RP_H": 8, "CRITERION_TIME_RP_H": 20, "EXTINCTION_CRITERION": 5, "EXTINCTION_MINIMUM_TRIALS": 20, "FEED_DISPENSE": 5, "INITIAL_DELAY": 10, "MAX_TIME_START_TO_TOUCH_EVENT": 300, "MAX_TRIAL_PER_SESSION": 20, "MODE": "-- UNDEFINED --", "N_SUBJECT": 20, "N_TOUCH": 3, "PAUSE_BETWEEN_TRIALS": 10, "RESPONSE_TIMEOUT": 45, "SENSITIVITY": 5, "SERVO_CHANNEL": 1, "SERVO_CLOSE": 0, "SERVO_DELAY": 1, "SERVO_DELAY_AFTER_FEED": 5, "SERVO_MODE": "pellets", "SERVO_OPEN": 180, "SESSION_STARTED_SOUND_DURATION": 2, "SESSION_TERMINATED_SOUND_DURATION": 2, "SYSTEM_READY_SOUND_DURATION": 2, "TOUCH_PAD_DELAY": 0.1, "TRIAL_LIMIT": 20, "TRIAL_SLEEP_TIME": 5}',
       '{"CRITERION_LIMIT_R": 8, "CRITERION_LIMIT_RP_H": 8, "CRITERION_TIME_RP_H": 20, "EXTINCTION_CRITERION": 5, "EXTINCTION_MINIMUM_TRIALS": 20, "FEED_DISPENSE": 5, "INITIAL_DELAY": 10, "MAX_TIME_START_TO_TOUCH_EVENT": 300, "MAX_TRIAL_PER_SESSION": 20, "MODE": "-- UNDEFINED --", "N_SUBJECT": 30, "N_TOUCH": 3, "PAUSE_BETWEEN_TRIALS": 10, "RESPONSE_TIMEOUT": 45, "SENSITIVITY": 5, "SERVO_CHANNEL": 1, "SERVO_CLOSE": 0, "SERVO_DELAY": 1, "SERVO_DELAY_AFTER_FEED": 5, "SERVO_MODE": "pellets", "SERVO_OPEN": 180, "SESSION_STARTED_SOUND_DURATION": 2, "SESSION_TERMINATED_SOUND_DURATION": 2, "SYSTEM_READY_SOUND_DURATION": 2, "TOUCH_PAD_DELAY": 0.1, "TRIAL_LIMIT": 20, "TRIAL_SLEEP_TIME": 5}',
       '{"CRITERION_LIMIT_R": 8, "CRITERION_LIMIT_RP_H": 8, "CRITERION_TIME_RP_H": 20, "EXTINCTION_CRITERION": 5, "EXTINCTION_MINIMUM_TRIALS": 20, "FEED_DISPENSE": 5, "INITIAL_DELAY": 10, "MAX_TIME_START_TO_TOUCH_EVENT": 300, "MAX_TRIAL_PER_SESSION": 20, "MODE": "-- UNDEFINED --", "N_SUBJECT": 30, "N_TOUCH": 3, "PAUSE_BETWEEN_TRIALS": 10, "RESPONSE_TIMEOUT": 45, "SENSITIVITY": 5, "SERVO_CHANNEL": 1, "SERVO_CLOSE": 0, "SERVO_DELAY": 1.2, "SERVO_DELAY_AFTER_FEED": 5, "SERVO_MODE": "pellets", "SERVO_OPEN": 180, "SESSION_STARTED_SOUND_DURATION": 2, "SESSION_TERMINATED_SOUND_DURATION": 2, "SYSTEM_READY_SOUND_DURATION": 2, "TOUCH_PAD_DELAY": 0.1, "TRIAL_LIMIT": 20, "TRIAL_SLEEP_TIME": 5}',
       '{"CRITERION_LIMIT_R": 8, "CRITERION_LIMIT_RP_H": 8, "CRITERION_TIME_RP_H": 20, "EXTINCTION_CRITERION": 5, "EXTINCTION_MINIMUM_TRIALS": 20, "FEED_DISPENSE": 5, "INITIAL_DELAY": 10, "MAX_TIME_START_TO_TOUCH_EVENT": 300, "MAX_TRIAL_PER_SESSION": 20, "MODE": "-- UNDEFINED --", "N_SUBJECT": 30, "N_TOUCH": 3, "PAUSE_BETWEEN_TRIALS": 10, "RESPONSE_TIMEOUT": 45, "SENSITIVITY": 5, "SERVO_CHANNEL": 1, "SERVO_CLOSE": 0, "SERVO_DELAY": 1.05, "SERVO_DELAY_AFTER_FEED": 5, "SERVO_MODE": "pellets", "SERVO_OPEN": 180, "SESSION_STARTED_SOUND_DURATION": 2, "SESSION_TERMINATED_SOUND_DURATION": 2, "SYSTEM_READY_SOUND_DURATION": 2, "TOUCH_PAD_DELAY": 0.1, "TRIAL_LIMIT": 20, "TRIAL_SLEEP_TIME": 5}',
       '{"CRITERION_LIMIT_R": 8, "CRITERION_LIMIT_RP_H": 8, "CRITERION_TIME_RP_H": 20, "EXTINCTION_CRITERION": 5, "EXTINCTION_MINIMUM_TRIALS": 20, "FEED_DISPENSE": 5, "INITIAL_DELAY": 10, "MAX_TIME_START_TO_TOUCH_EVENT": 300, "MAX_TRIAL_PER_SESSION": 20, "MODE": "-- UNDEFINED --", "N_SUBJECT": 30, "N_TOUCH": 3, "PAUSE_BETWEEN_TRIALS": 10, "RESPONSE_TIMEOUT": 45, "SENSITIVITY": 5, "SERVO_CHANNEL": 1, "SERVO_CLOSE": 0, "SERVO_DELAY": 0.9, "SERVO_DELAY_AFTER_FEED": 5, "SERVO_MODE": "pellets", "SERVO_OPEN": 180, "SESSION_STARTED_SOUND_DURATION": 2, "SESSION_TERMINATED_SOUND_DURATION": 2, "SYSTEM_READY_SOUND_DURATION": 2, "TOUCH_PAD_DELAY": 0.1, "TRIAL_LIMIT": 20, "TRIAL_SLEEP_TIME": 5}',
       '{"CRITERION_LIMIT_R": 8, "CRITERION_LIMIT_RP_H": 8, "CRITERION_TIME_RP_H": 20, "EXTINCTION_CRITERION": 5, "EXTINCTION_MINIMUM_TRIALS": 20, "FEED_DISPENSE": 5, "INITIAL_DELAY": 10, "MAX_TIME_START_TO_TOUCH_EVENT": 300, "MAX_TRIAL_PER_SESSION": 20, "MODE": "-- UNDEFINED --", "N_SUBJECT": 30, "N_TOUCH": 3, "PAUSE_BETWEEN_TRIALS": 10, "RESPONSE_TIMEOUT": 45, "SENSITIVITY": 5, "SERVO_CHANNEL": 1, "SERVO_CLOSE": 0, "SERVO_DELAY": 0.7, "SERVO_DELAY_AFTER_FEED": 5, "SERVO_MODE": "pellets", "SERVO_OPEN": 130, "SESSION_STARTED_SOUND_DURATION": 2, "SESSION_TERMINATED_SOUND_DURATION": 2, "SYSTEM_READY_SOUND_DURATION": 2, "TOUCH_PAD_DELAY": 0.1, "TRIAL_LIMIT": 20, "TRIAL_SLEEP_TIME": 5}',
       '{"CRITERION_LIMIT_R": 8, "CRITERION_LIMIT_RP_H": 8, "CRITERION_TIME_RP_H": 20, "EXTINCTION_CRITERION": 5, "EXTINCTION_MINIMUM_TRIALS": 20, "FEED_DISPENSE": 5, "INITIAL_DELAY": 10, "MAX_TIME_START_TO_TOUCH_EVENT": 300, "MAX_TRIAL_PER_SESSION": 20, "MODE": "-- UNDEFINED --", "N_SUBJECT": 30, "N_TOUCH": 3, "PAUSE_BETWEEN_TRIALS": 10, "RESPONSE_TIMEOUT": 45, "SENSITIVITY": 5, "SERVO_CHANNEL": 1, "SERVO_CLOSE": 0, "SERVO_DELAY": 0.5, "SERVO_DELAY_AFTER_FEED": 5, "SERVO_MODE": "pellets", "SERVO_OPEN": 100, "SESSION_STARTED_SOUND_DURATION": 2, "SESSION_TERMINATED_SOUND_DURATION": 2, "SYSTEM_READY_SOUND_DURATION": 2, "TOUCH_PAD_DELAY": 0.1, "TRIAL_LIMIT": 20, "TRIAL_SLEEP_TIME": 5}',
       '{"CRITERION_LIMIT_R": 8, "CRITERION_LIMIT_RP_H": 8, "CRITERION_TIME_RP_H": 20, "EXTINCTION_CRITERION": 5, "EXTINCTION_MINIMUM_TRIALS": 20, "FEED_DISPENSE": 5, "INITIAL_DELAY": 10, "MAX_TIME_START_TO_TOUCH_EVENT": 300, "MAX_TRIAL_PER_SESSION": 20, "MODE": "-- UNDEFINED --", "N_SUBJECT": 30, "N_TOUCH": 3, "PAUSE_BETWEEN_TRIALS": 10, "RESPONSE_TIMEOUT": 45, "SENSITIVITY": 5, "SERVO_CHANNEL": 1, "SERVO_CLOSE": 0, "SERVO_DELAY": 0, "SERVO_DELAY_AFTER_FEED": 5, "SERVO_MODE": "pellets", "SERVO_OPEN": 20, "SESSION_STARTED_SOUND_DURATION": 2, "SESSION_TERMINATED_SOUND_DURATION": 2, "SYSTEM_READY_SOUND_DURATION": 2, "TOUCH_PAD_DELAY": 0.1, "TRIAL_LIMIT": 20, "TRIAL_SLEEP_TIME": 5}'],
      dtype=object)
con.sql(
    """
SELECT 
    *
FROM 
    Experiments
WHERE
    JSON_EXTRACT(Parameters, '$.MODE') = '"test"'
"""
)
┌──────────────┬─────────┬─────────────┬───────────────┬───────────────┬────────────────┬─────────┬────────────────────────────┬────────────────────────────────────────────────────────────┬──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ ExperimentID │ Cohort  │ SubjectName │ SubjectNumber │ SessionNumber │ ExperimentType │ Comment │          DateTime          │                        LogFileName                         │                                                                                                                                                                                                                                                                                                          Parameters                                                                                                                                                                                                                                                                                                          │
│    int32     │ varchar │   varchar   │     int32     │     int32     │    varchar     │ varchar │         timestamp          │                          varchar                           │                                                                                                                                                                                                                                                                                                             json                                                                                                                                                                                                                                                                                                             │
├──────────────┼─────────┼─────────────┼───────────────┼───────────────┼────────────────┼─────────┼────────────────────────────┼────────────────────────────────────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│            0 │ HD      │ bonnie      │             8 │             4 │ RPE-E          │ None    │ 2023-10-02 21:35:17.816459 │ Experiment_2023-10-02T21:35:17.816459_bonnie_4_RPE-E.log   │ {"CRITERION_LIMIT_RP_H": 3, "CRITERION_TIME_RP_H": 20, "FEED_DISPENSE": 20, "INITIAL_DELAY": 10, "MAX_TIME_START_TO_TOUCH_EVENT": 300, "MAX_TRIAL_PER_SESSION": 20, "MODE": "test", "N_SUBJECT": 20, "N_TOUCH": 3, "RESPONSE_TIMEOUT": 45, "SENSITIVITY": 5, "SERVO_CHANNEL": 1, "SERVO_CLOSE": 0, "SERVO_DELAY": 0.7, "SERVO_DELAY_AFTER_FEED": 3, "SERVO_MODE": "pellets", "SERVO_OPEN": 180, "SESSION_STARTED_SOUND_DURATION": 2, "SESSION_TERMINATED_SOUND_DURATION": 2, "SYSTEM_READY_SOUND_DURATION": 2, "TOUCH_PAD_DELAY": 0.1, "TRIAL_LIMIT": 20, "TRIAL_SLEEP_TIME": 5}                                             │
│            1 │ HD      │ bonnie      │             8 │             6 │ RPE-E          │ None    │ 2023-10-02 21:47:20.552173 │ Experiment_2023-10-02T21:47:20.552173_bonnie_6_RPE-E.log   │ {"CRITERION_LIMIT_RP_H": 3, "CRITERION_TIME_RP_H": 20, "FEED_DISPENSE": 20, "INITIAL_DELAY": 10, "MAX_TIME_START_TO_TOUCH_EVENT": 300, "MAX_TRIAL_PER_SESSION": 20, "MODE": "test", "N_SUBJECT": 20, "N_TOUCH": 3, "RESPONSE_TIMEOUT": 45, "SENSITIVITY": 5, "SERVO_CHANNEL": 1, "SERVO_CLOSE": 0, "SERVO_DELAY": 0.7, "SERVO_DELAY_AFTER_FEED": 3, "SERVO_MODE": "pellets", "SERVO_OPEN": 180, "SESSION_STARTED_SOUND_DURATION": 2, "SESSION_TERMINATED_SOUND_DURATION": 2, "SYSTEM_READY_SOUND_DURATION": 2, "TOUCH_PAD_DELAY": 0.1, "TRIAL_LIMIT": 20, "TRIAL_SLEEP_TIME": 5}                                             │
│            2 │ HD      │ bonnie      │             8 │            11 │ RPE-A          │ None    │ 2023-10-03 14:21:10.046385 │ Experiment_2023-10-03T14:21:10.046385_bonnie_11_RPE-A.log  │ {"CRITERION_LIMIT_RP_H": 3, "CRITERION_TIME_RP_H": 20, "FEED_DISPENSE": 20, "INITIAL_DELAY": 10, "MAX_TIME_START_TO_TOUCH_EVENT": 300, "MAX_TRIAL_PER_SESSION": 20, "MODE": "test", "N_SUBJECT": 20, "N_TOUCH": 3, "PAUSE_BETWEEN_TRIALS": 5, "RESPONSE_TIMEOUT": 45, "SENSITIVITY": 5, "SERVO_CHANNEL": 1, "SERVO_CLOSE": 0, "SERVO_DELAY": 0.7, "SERVO_DELAY_AFTER_FEED": 3, "SERVO_MODE": "pellets", "SERVO_OPEN": 180, "SESSION_STARTED_SOUND_DURATION": 2, "SESSION_TERMINATED_SOUND_DURATION": 2, "SYSTEM_READY_SOUND_DURATION": 2, "TOUCH_PAD_DELAY": 0.1, "TRIAL_LIMIT": 20, "TRIAL_SLEEP_TIME": 5}                  │
│            3 │ HD      │ bonnie      │             8 │            12 │ RPE-H          │ None    │ 2023-10-03 14:44:59.283475 │ Experiment_2023-10-03T14:44:59.283475_bonnie_12_RPE-H.log  │ {"CRITERION_LIMIT_RP_H": 3, "CRITERION_TIME_RP_H": 20, "FEED_DISPENSE": 20, "INITIAL_DELAY": 10, "MAX_TIME_START_TO_TOUCH_EVENT": 300, "MAX_TRIAL_PER_SESSION": 20, "MODE": "test", "N_SUBJECT": 20, "N_TOUCH": 3, "PAUSE_BETWEEN_TRIALS": 5, "RESPONSE_TIMEOUT": 45, "SENSITIVITY": 5, "SERVO_CHANNEL": 1, "SERVO_CLOSE": 0, "SERVO_DELAY": 0.7, "SERVO_DELAY_AFTER_FEED": 3, "SERVO_MODE": "pellets", "SERVO_OPEN": 180, "SESSION_STARTED_SOUND_DURATION": 2, "SESSION_TERMINATED_SOUND_DURATION": 2, "SYSTEM_READY_SOUND_DURATION": 2, "TOUCH_PAD_DELAY": 0.1, "TRIAL_LIMIT": 20, "TRIAL_SLEEP_TIME": 5}                  │
│            4 │ HD      │ bonnie      │             8 │            24 │ RPE-A          │ None    │ 2023-10-03 16:28:37.069473 │ Experiment_2023-10-03T16:28:37.069473_bonnie_24_RPE-A.log  │ {"CRITERION_LIMIT_RP_H": 3, "CRITERION_TIME_RP_H": 20, "FEED_DISPENSE": 20, "INITIAL_DELAY": 10, "MAX_TIME_START_TO_TOUCH_EVENT": 300, "MAX_TRIAL_PER_SESSION": 20, "MODE": "test", "N_SUBJECT": 20, "N_TOUCH": 3, "PAUSE_BETWEEN_TRIALS": 5, "RESPONSE_TIMEOUT": 45, "SENSITIVITY": 5, "SERVO_CHANNEL": 1, "SERVO_CLOSE": 0, "SERVO_DELAY": 0.7, "SERVO_DELAY_AFTER_FEED": 3, "SERVO_MODE": "pellets", "SERVO_OPEN": 180, "SESSION_STARTED_SOUND_DURATION": 2, "SESSION_TERMINATED_SOUND_DURATION": 2, "SYSTEM_READY_SOUND_DURATION": 2, "TOUCH_PAD_DELAY": 0.1, "TRIAL_LIMIT": 20, "TRIAL_SLEEP_TIME": 5}                  │
│            5 │ HD      │ bonnie      │             8 │            25 │ RPE-A          │ None    │ 2023-10-03 16:51:19.423426 │ Experiment_2023-10-03T16:51:19.423426_bonnie_25_RPE-A.log  │ {"CRITERION_LIMIT_RP_H": 3, "CRITERION_TIME_RP_H": 20, "FEED_DISPENSE": 20, "INITIAL_DELAY": 10, "MAX_TIME_START_TO_TOUCH_EVENT": 300, "MAX_TRIAL_PER_SESSION": 20, "MODE": "test", "N_SUBJECT": 20, "N_TOUCH": 3, "PAUSE_BETWEEN_TRIALS": 5, "RESPONSE_TIMEOUT": 45, "SENSITIVITY": 5, "SERVO_CHANNEL": 1, "SERVO_CLOSE": 0, "SERVO_DELAY": 0.7, "SERVO_DELAY_AFTER_FEED": 3, "SERVO_MODE": "pellets", "SERVO_OPEN": 180, "SESSION_STARTED_SOUND_DURATION": 2, "SESSION_TERMINATED_SOUND_DURATION": 2, "SYSTEM_READY_SOUND_DURATION": 2, "TOUCH_PAD_DELAY": 0.1, "TRIAL_LIMIT": 20, "TRIAL_SLEEP_TIME": 5}                  │
│            6 │ HD      │ bonnie      │             8 │            26 │ RPE-A          │ None    │ 2023-10-03 17:01:21.834253 │ Experiment_2023-10-03T17:01:21.834253_bonnie_26_RPE-A.log  │ {"CRITERION_LIMIT_RP_H": 3, "CRITERION_TIME_RP_H": 20, "FEED_DISPENSE": 20, "INITIAL_DELAY": 10, "MAX_TIME_START_TO_TOUCH_EVENT": 300, "MAX_TRIAL_PER_SESSION": 20, "MODE": "test", "N_SUBJECT": 20, "N_TOUCH": 3, "PAUSE_BETWEEN_TRIALS": 5, "RESPONSE_TIMEOUT": 45, "SENSITIVITY": 5, "SERVO_CHANNEL": 1, "SERVO_CLOSE": 0, "SERVO_DELAY": 0.7, "SERVO_DELAY_AFTER_FEED": 3, "SERVO_MODE": "pellets", "SERVO_OPEN": 180, "SESSION_STARTED_SOUND_DURATION": 2, "SESSION_TERMINATED_SOUND_DURATION": 2, "SYSTEM_READY_SOUND_DURATION": 2, "TOUCH_PAD_DELAY": 0.1, "TRIAL_LIMIT": 20, "TRIAL_SLEEP_TIME": 5}                  │
│            7 │ HD      │ bonnie      │             8 │            28 │ RPE-A          │ None    │ 2023-10-03 17:22:04.359396 │ Experiment_2023-10-03T17:22:04.359396_bonnie_28_RPE-A.log  │ {"CRITERION_LIMIT_RP_H": 3, "CRITERION_TIME_RP_H": 20, "FEED_DISPENSE": 20, "INITIAL_DELAY": 10, "MAX_TIME_START_TO_TOUCH_EVENT": 300, "MAX_TRIAL_PER_SESSION": 20, "MODE": "test", "N_SUBJECT": 20, "N_TOUCH": 3, "PAUSE_BETWEEN_TRIALS": 5, "RESPONSE_TIMEOUT": 45, "SENSITIVITY": 5, "SERVO_CHANNEL": 1, "SERVO_CLOSE": 0, "SERVO_DELAY": 0.7, "SERVO_DELAY_AFTER_FEED": 3, "SERVO_MODE": "pellets", "SERVO_OPEN": 180, "SESSION_STARTED_SOUND_DURATION": 2, "SESSION_TERMINATED_SOUND_DURATION": 2, "SYSTEM_READY_SOUND_DURATION": 2, "TOUCH_PAD_DELAY": 0.1, "TRIAL_LIMIT": 20, "TRIAL_SLEEP_TIME": 5}                  │
│            8 │ HD      │ bonnie      │             8 │            30 │ RPE-A          │ None    │ 2023-10-03 17:37:08.452034 │ Experiment_2023-10-03T17:37:08.452034_bonnie_30_RPE-A.log  │ {"CRITERION_LIMIT_RP_H": 3, "CRITERION_TIME_RP_H": 20, "FEED_DISPENSE": 20, "INITIAL_DELAY": 10, "MAX_TIME_START_TO_TOUCH_EVENT": 300, "MAX_TRIAL_PER_SESSION": 20, "MODE": "test", "N_SUBJECT": 20, "N_TOUCH": 3, "PAUSE_BETWEEN_TRIALS": 5, "RESPONSE_TIMEOUT": 45, "SENSITIVITY": 5, "SERVO_CHANNEL": 1, "SERVO_CLOSE": 0, "SERVO_DELAY": 0.7, "SERVO_DELAY_AFTER_FEED": 3, "SERVO_MODE": "pellets", "SERVO_OPEN": 180, "SESSION_STARTED_SOUND_DURATION": 2, "SESSION_TERMINATED_SOUND_DURATION": 2, "SYSTEM_READY_SOUND_DURATION": 2, "TOUCH_PAD_DELAY": 0.1, "TRIAL_LIMIT": 20, "TRIAL_SLEEP_TIME": 5}                  │
│            9 │ HD      │ bonnie      │             8 │            32 │ RPE-A          │ None    │ 2023-10-03 17:49:00.288968 │ Experiment_2023-10-03T17:49:00.288968_bonnie_32_RPE-A.log  │ {"CRITERION_LIMIT_RP_H": 3, "CRITERION_TIME_RP_H": 20, "FEED_DISPENSE": 20, "INITIAL_DELAY": 10, "MAX_TIME_START_TO_TOUCH_EVENT": 300, "MAX_TRIAL_PER_SESSION": 20, "MODE": "test", "N_SUBJECT": 20, "N_TOUCH": 3, "PAUSE_BETWEEN_TRIALS": 5, "RESPONSE_TIMEOUT": 45, "SENSITIVITY": 5, "SERVO_CHANNEL": 1, "SERVO_CLOSE": 0, "SERVO_DELAY": 0.7, "SERVO_DELAY_AFTER_FEED": 3, "SERVO_MODE": "pellets", "SERVO_OPEN": 180, "SESSION_STARTED_SOUND_DURATION": 2, "SESSION_TERMINATED_SOUND_DURATION": 2, "SYSTEM_READY_SOUND_DURATION": 2, "TOUCH_PAD_DELAY": 0.1, "TRIAL_LIMIT": 20, "TRIAL_SLEEP_TIME": 5}                  │
│           10 │ HD      │ bonnie      │             8 │            33 │ RPE-A          │ windy   │ 2023-10-04 10:37:54.349864 │ Experiment_2023-10-04T10:37:54.349864_bonnie_33_RPE-A.log  │ {"CRITERION_LIMIT_RP_H": 3, "CRITERION_TIME_RP_H": 20, "FEED_DISPENSE": 20, "INITIAL_DELAY": 10, "MAX_TIME_START_TO_TOUCH_EVENT": 300, "MAX_TRIAL_PER_SESSION": 20, "MODE": "test", "N_SUBJECT": 20, "N_TOUCH": 3, "PAUSE_BETWEEN_TRIALS": 5, "RESPONSE_TIMEOUT": 45, "SENSITIVITY": 5, "SERVO_CHANNEL": 1, "SERVO_CLOSE": 0, "SERVO_DELAY": 0.7, "SERVO_DELAY_AFTER_FEED": 3, "SERVO_MODE": "pellets", "SERVO_OPEN": 180, "SESSION_STARTED_SOUND_DURATION": 2, "SESSION_TERMINATED_SOUND_DURATION": 2, "SYSTEM_READY_SOUND_DURATION": 2, "TOUCH_PAD_DELAY": 0.1, "TRIAL_LIMIT": 20, "TRIAL_SLEEP_TIME": 5}                  │
│           11 │ HD      │ bonnie      │             8 │            34 │ RPE-A          │ None    │ 2023-10-04 10:52:05.825815 │ Experiment_2023-10-04T10:52:05.825815_bonnie_34_RPE-A.log  │ {"CRITERION_LIMIT_RP_H": 3, "CRITERION_TIME_RP_H": 20, "FEED_DISPENSE": 20, "INITIAL_DELAY": 10, "MAX_TIME_START_TO_TOUCH_EVENT": 300, "MAX_TRIAL_PER_SESSION": 20, "MODE": "test", "N_SUBJECT": 20, "N_TOUCH": 3, "PAUSE_BETWEEN_TRIALS": 5, "RESPONSE_TIMEOUT": 45, "SENSITIVITY": 5, "SERVO_CHANNEL": 1, "SERVO_CLOSE": 0, "SERVO_DELAY": 0.7, "SERVO_DELAY_AFTER_FEED": 3, "SERVO_MODE": "pellets", "SERVO_OPEN": 180, "SESSION_STARTED_SOUND_DURATION": 2, "SESSION_TERMINATED_SOUND_DURATION": 2, "SYSTEM_READY_SOUND_DURATION": 2, "TOUCH_PAD_DELAY": 0.1, "TRIAL_LIMIT": 20, "TRIAL_SLEEP_TIME": 5}                  │
│           12 │ HD      │ bonnie      │             8 │            35 │ RPE-A          │ None    │ 2023-10-04 11:03:55.497331 │ Experiment_2023-10-04T11:03:55.497331_bonnie_35_RPE-A.log  │ {"CRITERION_LIMIT_RP_H": 3, "CRITERION_TIME_RP_H": 20, "FEED_DISPENSE": 20, "INITIAL_DELAY": 10, "MAX_TIME_START_TO_TOUCH_EVENT": 300, "MAX_TRIAL_PER_SESSION": 20, "MODE": "test", "N_SUBJECT": 20, "N_TOUCH": 3, "PAUSE_BETWEEN_TRIALS": 5, "RESPONSE_TIMEOUT": 45, "SENSITIVITY": 5, "SERVO_CHANNEL": 1, "SERVO_CLOSE": 0, "SERVO_DELAY": 0.7, "SERVO_DELAY_AFTER_FEED": "-- UNDEFINED --", "SERVO_MODE": "pellets", "SERVO_OPEN": 180, "SESSION_STARTED_SOUND_DURATION": 2, "SESSION_TERMINATED_SOUND_DURATION": 2, "SYSTEM_READY_SOUND_DURATION": 2, "TOUCH_PAD_DELAY": 0.1, "TRIAL_LIMIT": 20, "TRIAL_SLEEP_TIME": 5}  │
│           13 │ HD      │ bonnie      │             8 │            41 │ RPE-H          │ None    │ 2023-10-04 11:31:41.212332 │ Experiment_2023-10-04T11:31:41.212332_bonnie_41_RPE-H.log  │ {"CRITERION_LIMIT_RP_H": 3, "CRITERION_TIME_RP_H": 20, "FEED_DISPENSE": 20, "INITIAL_DELAY": 10, "MAX_TIME_START_TO_TOUCH_EVENT": 300, "MAX_TRIAL_PER_SESSION": 20, "MODE": "test", "N_SUBJECT": 20, "N_TOUCH": 3, "PAUSE_BETWEEN_TRIALS": 30, "RESPONSE_TIMEOUT": 45, "SENSITIVITY": 5, "SERVO_CHANNEL": 1, "SERVO_CLOSE": 0, "SERVO_DELAY": 0.7, "SERVO_DELAY_AFTER_FEED": "-- UNDEFINED --", "SERVO_MODE": "pellets", "SERVO_OPEN": 180, "SESSION_STARTED_SOUND_DURATION": 2, "SESSION_TERMINATED_SOUND_DURATION": 2, "SYSTEM_READY_SOUND_DURATION": 2, "TOUCH_PAD_DELAY": 0.1, "TRIAL_LIMIT": 20, "TRIAL_SLEEP_TIME": 5} │
│           14 │ HD      │ ash         │             2 │             1 │ RPE-H          │ None    │ 2023-10-04 11:35:02.366254 │ Experiment_2023-10-04T11:35:02.366254_ash_1_RPE-H.log      │ {"CRITERION_LIMIT_RP_H": 3, "CRITERION_TIME_RP_H": 20, "FEED_DISPENSE": 20, "INITIAL_DELAY": 10, "MAX_TIME_START_TO_TOUCH_EVENT": 300, "MAX_TRIAL_PER_SESSION": 20, "MODE": "test", "N_SUBJECT": 20, "N_TOUCH": 3, "PAUSE_BETWEEN_TRIALS": 5, "RESPONSE_TIMEOUT": 45, "SENSITIVITY": 5, "SERVO_CHANNEL": 1, "SERVO_CLOSE": 0, "SERVO_DELAY": 0.7, "SERVO_DELAY_AFTER_FEED": 20, "SERVO_MODE": "pellets", "SERVO_OPEN": 180, "SESSION_STARTED_SOUND_DURATION": 2, "SESSION_TERMINATED_SOUND_DURATION": 2, "SYSTEM_READY_SOUND_DURATION": 2, "TOUCH_PAD_DELAY": 0.1, "TRIAL_LIMIT": 20, "TRIAL_SLEEP_TIME": 5}                 │
│           15 │ HD      │ ash         │             2 │             2 │ RPE-H          │ None    │ 2023-10-04 11:36:30.074717 │ Experiment_2023-10-04T11:36:30.074717_ash_2_RPE-H.log      │ {"CRITERION_LIMIT_RP_H": 3, "CRITERION_TIME_RP_H": 20, "FEED_DISPENSE": 20, "INITIAL_DELAY": 10, "MAX_TIME_START_TO_TOUCH_EVENT": 300, "MAX_TRIAL_PER_SESSION": 20, "MODE": "test", "N_SUBJECT": 20, "N_TOUCH": 3, "PAUSE_BETWEEN_TRIALS": 5, "RESPONSE_TIMEOUT": 45, "SENSITIVITY": 4, "SERVO_CHANNEL": 1, "SERVO_CLOSE": 0, "SERVO_DELAY": 0.7, "SERVO_DELAY_AFTER_FEED": 20, "SERVO_MODE": "pellets", "SERVO_OPEN": 180, "SESSION_STARTED_SOUND_DURATION": 2, "SESSION_TERMINATED_SOUND_DURATION": 2, "SYSTEM_READY_SOUND_DURATION": 2, "TOUCH_PAD_DELAY": 0.1, "TRIAL_LIMIT": 20, "TRIAL_SLEEP_TIME": 5}                 │
│           16 │ HD      │ bonnie      │             8 │            42 │ RPE-ER         │ None    │ 2023-10-04 21:40:04.309838 │ Experiment_2023-10-04T21:40:04.309838_bonnie_42_RPE-ER.log │ {"CRITERION_LIMIT_RP_H": 3, "CRITERION_TIME_RP_H": 20, "FEED_DISPENSE": 20, "INITIAL_DELAY": 10, "MAX_TIME_START_TO_TOUCH_EVENT": 300, "MAX_TRIAL_PER_SESSION": 20, "MODE": "test", "N_SUBJECT": 20, "N_TOUCH": 3, "PAUSE_BETWEEN_TRIALS": 30, "RESPONSE_TIMEOUT": 45, "SENSITIVITY": 4, "SERVO_CHANNEL": 1, "SERVO_CLOSE": 0, "SERVO_DELAY": 0.7, "SERVO_DELAY_AFTER_FEED": 20, "SERVO_MODE": "pellets", "SERVO_OPEN": 180, "SESSION_STARTED_SOUND_DURATION": 2, "SESSION_TERMINATED_SOUND_DURATION": 2, "SYSTEM_READY_SOUND_DURATION": 2, "TOUCH_PAD_DELAY": 0.1, "TRIAL_LIMIT": 20, "TRIAL_SLEEP_TIME": 5}                │
│           17 │ HD      │ bonnie      │             8 │            43 │ RPE-A          │ windy   │ 2023-10-05 11:06:09.758656 │ Experiment_2023-10-05T11:06:09.758656_bonnie_43_RPE-A.log  │ {"CRITERION_LIMIT_RP_H": 3, "CRITERION_TIME_RP_H": 20, "FEED_DISPENSE": 20, "INITIAL_DELAY": 10, "MAX_TIME_START_TO_TOUCH_EVENT": 300, "MAX_TRIAL_PER_SESSION": 20, "MODE": "test", "N_SUBJECT": 20, "N_TOUCH": 3, "PAUSE_BETWEEN_TRIALS": 30, "RESPONSE_TIMEOUT": 45, "SENSITIVITY": 4, "SERVO_CHANNEL": 1, "SERVO_CLOSE": 0, "SERVO_DELAY": 0.7, "SERVO_DELAY_AFTER_FEED": 20, "SERVO_MODE": "pellets", "SERVO_OPEN": 180, "SESSION_STARTED_SOUND_DURATION": 2, "SESSION_TERMINATED_SOUND_DURATION": 2, "SYSTEM_READY_SOUND_DURATION": 2, "TOUCH_PAD_DELAY": 0.1, "TRIAL_LIMIT": 20, "TRIAL_SLEEP_TIME": 5}                │
│           18 │ HD      │ bonnie      │             8 │            46 │ RPE-A          │ None    │ 2023-10-10 14:38:28.391056 │ Experiment_2023-10-10T14:38:28.391056_bonnie_46_RPE-A.log  │ {"CRITERION_LIMIT_RP_H": 3, "CRITERION_TIME_RP_H": 20, "FEED_DISPENSE": 20, "INITIAL_DELAY": 10, "MAX_TIME_START_TO_TOUCH_EVENT": 300, "MAX_TRIAL_PER_SESSION": 20, "MODE": "test", "N_SUBJECT": 20, "N_TOUCH": 3, "PAUSE_BETWEEN_TRIALS": 30, "RESPONSE_TIMEOUT": 45, "SENSITIVITY": 4, "SERVO_CHANNEL": 1, "SERVO_CLOSE": 0, "SERVO_DELAY": 0.7, "SERVO_DELAY_AFTER_FEED": 20, "SERVO_MODE": "pellets", "SERVO_OPEN": 180, "SESSION_STARTED_SOUND_DURATION": 2, "SESSION_TERMINATED_SOUND_DURATION": 2, "SYSTEM_READY_SOUND_DURATION": 2, "TOUCH_PAD_DELAY": 0.1, "TRIAL_LIMIT": 20, "TRIAL_SLEEP_TIME": 5}                │
│           19 │ HD      │ bonnie      │             8 │            48 │ RPE-A          │ None    │ 2023-10-10 14:47:57.242701 │ Experiment_2023-10-10T14:47:57.242701_bonnie_48_RPE-A.log  │ {"CRITERION_LIMIT_RP_H": 3, "CRITERION_TIME_RP_H": 20, "FEED_DISPENSE": 20, "INITIAL_DELAY": 10, "MAX_TIME_START_TO_TOUCH_EVENT": 300, "MAX_TRIAL_PER_SESSION": 20, "MODE": "test", "N_SUBJECT": 20, "N_TOUCH": 3, "PAUSE_BETWEEN_TRIALS": 30, "RESPONSE_TIMEOUT": 45, "SENSITIVITY": 4, "SERVO_CHANNEL": 1, "SERVO_CLOSE": 0, "SERVO_DELAY": 0.7, "SERVO_DELAY_AFTER_FEED": 20, "SERVO_MODE": "pellets", "SERVO_OPEN": 180, "SESSION_STARTED_SOUND_DURATION": 2, "SESSION_TERMINATED_SOUND_DURATION": 2, "SYSTEM_READY_SOUND_DURATION": 2, "TOUCH_PAD_DELAY": 0.1, "TRIAL_LIMIT": 20, "TRIAL_SLEEP_TIME": 5}                │
├──────────────┴─────────┴─────────────┴───────────────┴───────────────┴────────────────┴─────────┴────────────────────────────┴────────────────────────────────────────────────────────────┴──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ 20 rows                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       10 columns │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
def get_parameter_for_experimentid(parameter, id):
    return con.sql(
        f"""
    SELECT 
        JSON_EXTRACT(Parameters, '$.{parameter}') AS InitialDelay
    FROM 
        Experiments
    WHERE
        ExperimentID = {id}
"""
    )
get_parameter_for_experimentid("SERVO_MODE", 42)
┌──────────────┐
│ InitialDelay │
│     json     │
├──────────────┤
│ "pellets"    │
└──────────────┘
get_parameter_for_experimentid("MODE", 0)
┌──────────────┐
│ InitialDelay │
│     json     │
├──────────────┤
│ "test"       │
└──────────────┘

Export database tables (Experiments, Trials and Events) to single .xlsx and .csv (3 files)

To enable detailed review of the data in human-readable formats.

INFO     | Exported database tables to: /Users/mjboothaus/code/github/databooth/horse-logic/notebooks/results/RPE/export_tables/all_tables.xlsx
INFO     | Exported database table to: /Users/mjboothaus/code/github/databooth/horse-logic/notebooks/results/RPE/export_tables/Events.csv
INFO     | Exported database table to: /Users/mjboothaus/code/github/databooth/horse-logic/notebooks/results/RPE/export_tables/Experiments.csv
INFO     | Exported database table to: /Users/mjboothaus/code/github/databooth/horse-logic/notebooks/results/RPE/export_tables/Trials.csv
INFO     | Database connection closed