Computational model code accompanying Seignette et al. (2026).
Change in occluded (O) vs. non-occluded (NO) response after familiarization: empirical cells (left) and the three familiar-image model transitions (right).
Model code for six mean-field models of PyC/PV transitions: familiar and novel, each with +NO, +O and -NO transitions. Every model is one YAML file in configs/; trial timing, counts and contextual breadth are in configs/protocol.yaml.
uv sync| Path | Purpose |
|---|---|
configs/ |
One parameter set per model, plus protocol.yaml |
src/model.py |
One PyC/PV pair: dynamics and three plastic synapses |
src/simulate.py |
Naive probes, familiar training, expert probes, acute silencing |
src/robustness.py |
One-at-a-time parameter and initial-weight sweeps |
plotting/ |
plot.py and final_results.ipynb for the final panels |
From the repository root:
uv run python -m src.simulate # results/model.csv, results/model_trial_responses.csv
uv run python -m src.robustness # results/model_robustness.csv, figures/robustness/
uv run jupyter notebook plotting/final_results.ipynb # figures/final_layout/Simulation defaults to 50 test trials and seeds 0–9 for every config (--test-trials, --seeds, --jobs). Each config/seed pair runs as its own process, and results do not depend on the worker count.
results/ground_truth.csv: empirical sector membership, per-neuron traces and transition vectors (fixed input, exported from the thesis data analysis).results/model.csv: trial-averaged traces and transition vectors per config and seed (naive, expert, FB/PV/combined silencing).results/model_trial_responses.csv: per-trial NO/O responses.results/model_robustness.csv: one row per sweep point (figures go tofigures/robustness/).

