# Native T4 channel diagnostic and saved visual-output audit

Executed 2026-10-28 on Linux, one CPU, nice15. This is direct artificial T4 input,
not a validated image-to-brain interface or a body/learning/driving experiment.
The 15-trial protocol was frozen before results. The earlier visual failure remains
unchanged. No gain, label, margin or seed was adjusted after outcomes.

## Pinned prerequisites

- Original model: https://github.com/philshiu/Drosophila_brain_model/tree/91bdd1e7dcf193f3e7ca5a8933497fcef63b7960
- Visual model: https://github.com/TuragaLab/flyvis/tree/0a69fa2fc8e1bfe1d837d722c252ab5f5d6fcbfa
- Earlier interface and eligible identities: https://dropkit-contents.pages.dev/research/visual-neural-bridge-v01/REPRODUCE.md
- Pretrained model setup: https://dropkit-contents.pages.dev/research/flyvis-visual-baseline-v01/REPRODUCE.md
- Source/checkpoint/annotation commitments are recorded in source-provenance.json,
  both execution summaries and the frozen protocol. Later subtype transfer is an
  assumption, constrained by exact original IDs and unique v630-side membership.

Use the dated layout below, where `runs` can live anywhere:

```
runs/2026-10-26/2026-10-26_fly-baseline_v01/source/
runs/2026-10-26/2026-10-26_fly-baseline_v01/source-manifest.json
runs/2026-10-28/flyvis-v01/source/
runs/2026-10-28/visual-steering-v01/
runs/2026-10-28/t4-specificity-v01/
```

The original baseline requires the seven exact upstream files/data and their Git
blob manifest, not just the model Python file. The visual environment requires
the pinned source, the author's pretrained flow/0000/000 files and the same checkpoint.
Its SHA256 is d0e42857e738d0315897c2d50fde9eb3fb1a3fb1f071d55dfc13d53d72bccc3f.
Keep the two environments isolated. requirements-spiking.txt records the current
spiking environment. requirements-visual.txt records the current source-audit
environment; its editable source location alone is normalized to
`../flyvis-v01/source`. Private raw environment records remain unchanged.

For full execution, `run.py` reads these unchanged parent artifacts:

- `visual-steering-v01/visual-v01/bridge-neurons.csv` (same bytes as this bundle's
  `results-v01/input-membership.csv`).
- `visual-steering-v01/structure-v01/pathway-neurons.csv` (same table as this bundle's
  `results-v01/pathway-neurons.csv`).
- `visual-steering-v01/results-v01/summary.json` (this bundle's exact
  `reference-parent-summary.json`).

The source audit also reads the parent raw traces, population means, visual summary
and pretrained model tree at `visual-steering-v01/flyvis-data/results/flow/0000/000`.
Copies named reference-visual-traces.npz, reference-visual-means.npz and
reference-visual-summary.json in this bundle retain the original bytes. Build the
parent layout from the earlier bundle and the official pretrained download.
Do not substitute newly inferred traces while claiming these historical hashes.

## Actual commands

From this experiment directory, with the appropriate environment's Python:

```
# Original-model environment
OMP_NUM_THREADS=1 OPENBLAS_NUM_THREADS=1 MKL_NUM_THREADS=1 NUMEXPR_NUM_THREADS=1 nice -n 15 python -u run.py
# Visual environment; restores weights and reads saved activity, no inference
OMP_NUM_THREADS=1 OPENBLAS_NUM_THREADS=1 MKL_NUM_THREADS=1 CUDA_VISIBLE_DEVICES= nice -n 15 python -u audit_transform.py
# Saved-data auditors; NumPy/Pandas only
python validate.py --source-root ../../2026-10-26/2026-10-26_fly-baseline_v01
python validate_transform.py
# Descriptive figure/table generation
python analyze-v02.py
```

Use a fresh experiment copy and fresh output directories; runners refuse to
replace existing results, caches or transform/analysis folders. Preserve original
outputs separately when rerunning. Scripts are byte-exact executed copies and
already use portable relative paths; no private/public runner normalization applies.
Both auditors support `--no-write` for read-only review. Omitting --source-root
excludes seven live-source checks: 167 native checks instead of the recorded174.
The transform saved-data audit has29 checks and does not independently re-export
weights from the checkpoint or run neural inference.

## Controls, arithmetic and limits

The candidate count schedule uses Binomial(min_group_size,50000*.0001/min_group_size)
at each0.1ms during200–700ms. The same counts and times are reused across conditions;
shared uniform random keys assign distinct native cells per step. Full actual
monitor events are archived for all15 conditions, including quiet gate0. Per-cell
rates differ with group size. All four possible T4 groups have refractory0ms in
all trials; all other cells retain their original convention. Candidate key arrays
are regenerated from recorded seeds/environment rather than separately archived;
actual driver events and candidate counts are saved.

Primary comparisons and one-spike margins are exactly those in protocol.json.
DNp15/DNa02 are secondary observations. Static original/learned weights do not
constitute new learning. No individual retinotopic or physical-turn mapping exists.

The visual audit compares nonlinear order and baseline reference, not calibrated
rates. Its additional descriptive weighted calculation sums the saved T4a/b cells'
instantaneous outgoing contributions w*ReLU(x) across all their target edges,
excluding other source types and before target integration. This is not total
network/biological current or an HS/H2 correspondence. The saved-data auditor
verifies arithmetic using exported source-weight sums, not independent checkpoint
weight retrieval. The unique reason for the earlier interface failure remains open.

Initial plot v01 had overlapping annotations. v02 only adds axis headroom; original
v01 is preserved privately and all numerical tables are identical. A transient SSH
timeout preceded execution and recovered without device/configuration changes.
Selected public logs have private run roots replaced with role names; raw logs
remain private. Initial attempts and scientific failures are not rewritten.
