AllenNeuralDynamics / AllenNeuralDynamics/dynamic-foraging-task

Documenting changes from DF v1 to DF v2 (refactored acquisition)

Open
#1,754 7 comments 0 reactions 1 assignee Claimed by @alexpiet View on GitHub
Dominant language
Python
Stars
7
Forks
7
PR merge metrics
No merged PRs in 30d

Description

Starting a place to document things as they come up.

To close:
- [ ] Finish documenting all changes
- [ ] Move to a permanent location here: https://github.com/AllenNeuralDynamics/aind-behavior-blog/tree/main/docs/dynamic-foraging

# How did we verify the new data
CO capsule where we compared old and new data https://codeocean.allenneuraldynamics.org/capsule/2699857/tree

# Trials table

### Columns removed for acquisition v2

|Status | Column |Notes|
|- |-|-|
|Removed | auto_train_curriculum_name | AutoTrain no longer exists. Curriculum name in metadata |
|Removed | auto_train_curriculum_schema_version | AutoTrain no longer exists. check in metadata|
|Removed | auto_train_curriculum_version |AutoTrain no longer exists. check in metadata |
|Removed | auto_train_engaged | AutoTrain no longer exists. Need to clarify, but I believe we can't override|
|Removed | auto_train_stage |AutoTrain no longer exists. check in metadata |
|Removed | auto_train_stage_overridden | AutoTrain no longer exists. Need to clarify, but I believe we can't override|
|Removed | reward_outcome_time | Internal variable, this is NOT choice time or reward time. No reason to save|
|Removed | reward_random_number_left | Outcome of random number draw, no reason to save |
|Removed | reward_random_number_right | Outcome of random number draw, no reason to save |
|Removed | side_bias_confidence_interval | Acquisition software does not compute confidence interval. It can be computed with this function [compute_side_bias()](https://github.com/AllenNeuralDynamics/aind-dynamic-foraging-basic-analysis/blob/c83783ff74e0757a52380e31952678972a5d7a3b/src/aind_dynamic_foraging_basic_analysis/metrics/trial_metrics.py#L89)|

### Columns modified for acquisition v2

|Status | Column |Notes|
|- |-|-|
| modified| animal_response | Previously was a float (0.0, 1.0, 2.0), now it is an int (0, 1, 2)|
| modified| base_reward_probability_sum | This is NaN when the blocks are uncoupled, previously the value was set but ignored|
| modified| block_beta| This is NaN when the blocks are uncoupled, previously the value was set but ignored |
| modified| start_time| This used to refer to the start of the ITI period, in acquisition v2 sessions it refers to the `quiescent_start_time` |
| modified |stop_time| This used to refer to the end of the reward consumption period, in acquisition v2 sessions, it refers to `ITI_stop_time`|
| modified | delay_beta | This is NaN because the delay period is fixed to be of length 1|
| modified | delay_max | This is NaN because the delay period is fixed to be of length 1|
| modified | delay_min | This is NaN because the delay period is fixed to be of length 1|
| modified | bait_left | In acquisition v1, this column uses "bait" to mean "if the mouse licks, it will get a reward" that reward could be given by a reward being generated on that trial (the normal "earned" reward sense), or from baiting on a previous trial. In acquisition v2 this column only refers to the baiting from a previous trial, as reward outcomes for a single trial are not saved. |
| modified | bait_right | See description in bait_left |

### Columns added for acquisition v2

|Status | Column |Notes|
|- |-|-|
| added| ITI_start_time | Time when the ITI interval starts |
| added| ITI_stop_time | Time when the ITI interval stops - this is now redundant with `stop_time`|
| added| quiescent_start_time | Time when the quiescent interval starts - this is now redundant with the backwards compatible `delay_start_time` and `start_time`|
| added| quiescent_stop_time | Time when the quiescent interval stops |
| added| response_start_time | Time when the response interval starts |
| added| response_stop_time | Time when the response interval stops |
| added| reward_consumption_start_time | Time when the reward consumption interval starts |
| added| reward_consumption_stop_time | Time when the reward consumption interval stops |
| added| anti_bias_left_water | Was there anti-bias autowater on this trial? |
| added| anti_bias_right_water | Was there anti-bias autowater on this trial? |
| added| anti_bias_lickspout_movement | Was there antibias movement on this trial? |

> [!IMPORTANT]
> The columns `rewarded_historyL` and `rewarded_historyR` only annotate earned rewards. Auto-water and manual rewards are not listed in rewarded_historyL/R. Users should inspect the columns `auto_waterL`, `auto_waterR`, `anti_bias_left_water`, and 'anti_bias_right_water`. These columns are summed in `extra_reward` which is added by [data-utils.create_df_trials](https://github.com/AllenNeuralDynamics/aind-dynamic-foraging-data-utils/blob/8002fce1dfd4298f37fd6af4a233fcfcc77a40b6/src/aind_dynamic_foraging_data_utils/nwb_utils.py#L313).

> [!IMPORTANT]
> For timing events (response, reward_consumption, and ITI), the columns with the suffix `_duration` define the parameter value for how long that period could be. The columns with suffix `_stop_time` and `_start_time` document the actual time in which these epochs started and stopped. The actual duration between `_start_time` and `_stop_time` will not necessarily match the `_duration`. For example, the response period will be shorter than `_duration` if the mouse makes a response. The reward_consumption period will differ by clock jitter and software delays.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.