Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions .agents/skills/protocol-yaml/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,8 @@ it does NOT advance the protocol clock. Only `wait` commands do. Therefore:
Editing only ONE of the pair is **masked** by the other — "the timeline won't update"
is almost always a half-edited pair, not a render bug.
- **Bind both fields to one anchor** (`duration: *show_dur` on both) so they can never
drift — the `open_dur`/`cl_dur` pattern from `protocols/fictrac_direction_test`.
drift — the `open_dur`/`cl_dur` pattern from `fictrac_direction_test` (private
`reiserlab/arena-experiments`, `protocols/shared/`).
- Waits between two `trialParams` in one condition define how long the FIRST one
actually shows (the second overrides it). Waits longer than the duration = intentional
hold/blank; fine, but mean it.
Expand Down Expand Up @@ -163,7 +164,7 @@ rejection). Authored as an added rotational **velocity**:
A negative frequency is a harmless no-op (warned): negate `bias_amplitude` instead.
- `stopClosedLoop` clears the bias automatically. Reference:
`docs/development/closed-loop-bias.md`; worked example:
`protocols/fictrac_bias_test.yaml`.
`protocols/shared/fictrac_bias_test.yaml` in the private `reiserlab/arena-experiments`.

**Per-trial start position = the trialParams `frame_index` (Studio v0.91 / bridge 3.4).** A
closed-loop trial opens on the Mode-3 `trialParams` `frame_index` (0-based, wraps mod the pattern's
Expand Down
2 changes: 1 addition & 1 deletion course/cshl-2026/docs/fictrac.md
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ Closed-loop and the live scope need the **bridge** running on the rig computer:
bridge"* to a live trace once data flows. Closed-loop trials show a green
**CLOSED LOOP** tag.

**Quick check:** load [`fictrac_direction_test`](protocols/README.md) — it runs
**Quick check:** load [`fictrac_direction_test`](protocols/README.md) (since 2026-10-29 in the lab's private `reiserlab/arena-experiments`, `protocols/shared/`) — it runs
open-loop motion first, then a closed-loop block that the fly steers. If the
closed-loop block responds to nudging the ball, the bridge is working.

Expand Down
3 changes: 2 additions & 1 deletion course/cshl-2026/docs/protocols/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,8 @@ Animated pattern previews are embedded on all four protocol pages.
FicTrac): full-field brightness, panel map, a moving bar, and LED levels
2/5/10/20/40%. Use it to confirm a rig works after setup.
- **`fictrac_direction_test`** — open-loop motion then a closed-loop block, to
confirm the [FicTrac](../fictrac.md) bridge is working.
confirm the [FicTrac](../fictrac.md) bridge is working. Since 2026-10-29 it lives in
the lab's private `reiserlab/arena-experiments` (`protocols/shared/`), not in the site library.
- **`optomotor_led_test`** — a slow grating with the LED switched on for the
last few seconds; the reference example of "fire a command partway through a
trial."
Expand Down
2 changes: 1 addition & 1 deletion docs/development/rig-software-repos-and-runners.md
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ stay as history.
| **pyDisplayTools** | `tools/patfile.py` (pattern-file reader; the repo already has `pyPatternTools`), `nodes/arena_display.py` (Python port of `js/panel-color.js`, okey-cokey branch), the pure functions of `fictrac-bridge/bridge.py` (`Pipeline` mapping, `frame_schema_line`, `compact_arena_command`), `fictrac-bridge/fictrac_sim.py` moves to rig-nodes as a device simulator |
| **stays** (gateway, export, composition) | `nodes/bridge_node.py`, `nodes/mcap_convert.py`, `nodes/_rows.py` (behavior_v2 `kf` rows), `nodes/export_log.py`, `nodes/rig.py` (arena composition; its generic preflight/supervision helpers are extracted to rig-nodes first), `pixi.toml`, `pixi.lock`, `.gitignore`, `tests/studio_emulator.py`, `tests/check_runlog_readers.js`, the gateway half of `tests/test_ros2_poc.py` (node-level tests move with their nodes) |
| **stays** (arena visualization) | `nodes/viz_node.py`, `tests/test_viz_node.py`, the arena derivation in `nodes/foxglove_json.py`, `foxglove/arena-fictrac.json`, `foxglove/arena-bias.json`, `docs/foxglove-arena-layout.json`, `tools/tiff_run_to_mcap.py`; from okey-cokey: `nodes/stimulus_node.py`, `nodes/stimulus_core.py`, `nodes/dashboard_replay.py`, `tests/test_stimulus.py`, `tests/test_stimulus_live.py`, `foxglove/arena-okey-cokey.json`, `tests/fixtures/protocols-2026-10-14/*` |
| **stays** (rig-specific config and records) | `README.md`, `WINDOWS-TEST.md`, `SCANIMAGE-DAY.md`, `scanimage-day-2026-10-16.md`, `windows-results-ww18-2026-10-15.md`, `docs/plan-b-explainer*.html`, `docs/build-standalone-explainer.py`, `docs/img/*`; from okey-cokey: `config/bias/okey-cokey-bfs-u3-51s5m.json`, `tools/okey-cokey-start.ps1`, `tools/bias-ufmf.ps1`, the `okey-cokey-*.md` run sheets, `HANDOVER-okey-cokey-2026-10-21.md`, `docs/okey-cokey-foxglove-dashboard-plan.md` |
| **stays** (tool code and generic records) | `README.md`, `WINDOWS-TEST.md`, `docs/plan-b-explainer*.html`, `docs/build-standalone-explainer.py`, `docs/img/*`, `foxglove/arena-okey-cokey.json` (a layout `rig.py --foxglove` loads), `tools/ufmf.py`, `tools/patfile.py`. **Moved 2026-10-29 (LAB-227) to the private `reiserlab/arena-experiments` `rigs/<rig-id>/`:** `windows-results-ww18-2026-10-15.md` → `rigs/ww18/`; from okey-cokey → `rigs/ww14/`: `config/bias/okey-cokey-bfs-u3-51s5m.json`, `tools/okey-cokey-start.ps1`, `tools/bias-ufmf.ps1`, the `okey-cokey-*.md` run sheets, `HANDOVER-okey-cokey-2026-10-21.md`, `docs/okey-cokey-foxglove-dashboard-plan.md`. `SCANIMAGE-DAY.md` and `scanimage-day-2026-10-16.md` went to the private 2P repo with #284. |

#### Amendment 2026-10-28: the imaging work is private

Expand Down
29 changes: 29 additions & 0 deletions protocols/MOVED.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Protocols and rig records that left this repo (2026-10-29, LAB-227)

Experiment material now lives in private repos so that a rig's protocol tweaks never need a
webDisplayTools release. The rule: a protocol stays here only if a tool, test, QC profile or doc
fixture depends on it. Copies were made from commit `59a377b` (Release 2026-10-28); each destination
has a `PROVENANCE.md`. Open a moved protocol in the Studio, signed in, with
`arena_studio.html?repo=<repo>&p=<path>`.

| Was here | Now (repo → path) |
|---|---|
| `protocols/bias_camera_closed_loop_poc.yaml` | `reiserlab/arena-experiments` → `protocols/ww18/bias_camera_closed_loop_poc.yaml` |
| `protocols/bias_camera_closed_loop_poc_ww18.yaml` | `reiserlab/arena-experiments` → `protocols/ww18/bias_camera_closed_loop_poc_ww18.yaml` |
| `protocols/bias_camera_closed_loop_poc_ww18_soak10.yaml` | `reiserlab/arena-experiments` → `protocols/ww18/bias_camera_closed_loop_poc_ww18_soak10.yaml` |
| `protocols/fictrac_bias_test.yaml` | `reiserlab/arena-experiments` → `protocols/shared/fictrac_bias_test.yaml` |
| `protocols/fictrac_direction_test.yaml` | `reiserlab/arena-experiments` → `protocols/shared/fictrac_direction_test.yaml` |
| `protocols/fictrac_coupling_bias_fly_test.yaml` | `reiserlab/arena-experiments` → `protocols/shared/fictrac_coupling_bias_fly_test.yaml` |
| `protocols/led_activation_quadrant_test.yaml` + `_patterns/` | `reiserlab/arena-experiments` → `protocols/shared/led_activation_quadrant_test.yaml` + `_patterns/` |
| `protocols/mode3_drill_1trial.yaml` | `reiserlab/arena-experiments` → `protocols/shared/mode3_drill_1trial.yaml` |
| `protocols/g6_2p_color_led_sweep.yaml` + `_patterns/` | `reiserlab/scanimage-2026-bergamo` → `protocols/g6_2p_color_led_sweep.yaml` + `_patterns/` |
| `protocols/g6_2x10_2p_diagnostics.yaml` + `_patterns/` | `reiserlab/scanimage-2026-bergamo` → `protocols/g6_2x10_2p_diagnostics.yaml` + `_patterns/` |
| `protocols/g6_2x10_2p_duty_sweep.yaml` | `reiserlab/scanimage-2026-bergamo` → `protocols/g6_2x10_2p_duty_sweep.yaml` |
| `rig/windows-results-ww18-2026-10-15.md` | `reiserlab/arena-experiments` → `rigs/ww18/` |
| `rig/okey-cokey-pc-*.md`, `rig/HANDOVER-okey-cokey-2026-10-21.md`, `rig/docs/okey-cokey-foxglove-dashboard-plan.md`, `rig/config/bias/okey-cokey-bfs-u3-51s5m.json`, `rig/tools/okey-cokey-start.ps1`, `rig/tools/bias-ufmf.ps1` | `reiserlab/arena-experiments` → `rigs/ww14/` (same names; `config/` and `tools/` subfolders) |

A copy of `g6_2p_color_led_sweep.yaml` stays as the test fixture `tests/fixtures/v3_g6_2p_color_led_sweep.yaml`.
The pattern generators `scripts/make-color-optomotor-patterns.js --gs16` and
`scripts/make-2p-diagnostic-patterns.js` now take `--out <dir>` pointing into the 2P repo.

Pages under `docs/development/` that cite the old paths are historical records and were not edited.
136 changes: 0 additions & 136 deletions protocols/bias_camera_closed_loop_poc.yaml

This file was deleted.

139 changes: 0 additions & 139 deletions protocols/bias_camera_closed_loop_poc_ww18.yaml

This file was deleted.

Loading
Loading