Welcome to the AIND VR Foraging project documentation!¶
aind-vr-foraging¶
A repository for the VR Foraging task.
📋 General instructions¶
This repository follows the project structure laid out in the Aind.Behavior.Services repository.
🔧 Prerequisites¶
Pre-requisites for running the project can be found here.
🚀 Deployment¶
For convenience, once third-party dependencies are installed, Bonsai
and python
virtual environments can be bootstrapped by running:
./scripts/deploy.ps1
from the root of the repository.
⚙️ Generating settings files¶
The VR Foraging tasks is instantiated by a set of three settings files that strictly follow a DSL schema. These files are:
task_logic.json
rig.json
session.json
Examples on how to generate these files can be found in the ./Examples
directory of the repository. Once generated, these are the the only required inputs to run the Bonsai workflow in ./src/main.bonsai
.
🎮 Experiment launcher (CLABE)¶
To manage experiments and input files, this repository contains a launcher script that can be used to run the VR Foraging task. This script is located at ./src/aind_behavior_vr_foraging/launcher.py
. It can be run from the command line as follows:
uv run ./src/aind_behavior_vr_foraging/launcher.py
or via the registered clabe
command:
uv run clabe
Additional arguments can be passed to the script as needed:
uv run clabe -h
or via a ./local/clabe_custom.yml
file.
In order to run the launcher script, optional dependencies should be installed via:
uv sync --extra launcher
Additional custom launcher scripts can be created and used as needed.
🔍 Primary data quality-control¶
Once an experiment is collected, the primary data quality-control script can be run to check the data for issues. This script can be launcher using:
uv run ./src/aind_behavior_vr_foraging/data_qc.py <path-to-data-dir>
In order to run the script, optional dependencies should be installed via:
uv sync --extra data
🔄 Regenerating schemas¶
DSL schemas can be modified in ./src/aind_behavior_vr_foraging/rig.py
(or (...)/task_logic
.py`).
Once modified, changes to the DSL must be propagated to json-schema
and csharp
API. This can be done by running:
uv run ./src/aind_behavior_vr_foraging/regenerate.py