Defining the first regression run
The exact comparison, historical dependency candidates and reporting checks for our first cat-circuit simulation.
We have specified the first executable test and built the code that will record its outcome. The target is the authors' small LSV1M configuration, run against the reference outputs supplied with Mozaik v0.4.0.
Preparation is complete for this test specification. Environment installation and neural simulation are still pending. Eleven local checks passed for our result-reporting logic using synthetic test reports; those checks do not execute or validate a neural model.
The comparison we will run
The upstream test covers six populations: retinal/LGN ON and OFF channels, plus excitatory and inhibitory populations in cortical layers 4 and 2/3. It compares spike-time vectors for all six populations and membrane-voltage vectors for the four cortical populations, with up to 25 recorded voltage neurons per population.
These are ten exact-equality comparisons. We will preserve the authors' numpy.testing.assert_equal criterion. A differing value will remain a mismatch even if the resulting plot looks similar. Any later approximate comparison must state its own metric, tolerance and reason.
Fixed inputs and parameters
The supplied configuration specifies a 0.1 ms simulation step, PyNN seed 995 and MPI seed 1023. Its experiment definition includes 105 ms without stimulation, followed by two grating orientations at 100% contrast, one 210 ms presentation per orientation, with shuffling disabled. The gratings use a spatial frequency of 0.8 cycles per degree and a temporal frequency of 2 Hz. A separate 150 ms null-stimulus period is also specified.
These are values read from the original configuration. They are not observed runtimes, and summing just the named presentations would not establish the complete simulator duration. The run record will retain the actual stimulus sequence, timing and outputs.
The run contract records the source commit, test class, parameters and acceptance conditions. The small configuration is a software test supplied by the authors. It has not been established as a validated reduction suitable for our eventual controller.
Reconstructing a dated environment
The previous audit found conflicting installation instructions. We chose NEST 3.4 as the first candidate because both the framework README and its continuous-integration workflow use that release. The older requirements file lists 3.1. The workflow also specifies Python 3.9 and a custom PyNN branch.
Installing today's head of that branch would introduce changes made after the model release. We therefore retrieved the latest reachable PyNN and Imagen commits dated on or before the Mozaik release date. The saved history responses make that selection inspectable.
| Component | Candidate source |
|---|---|
| Mozaik | v0.4.0, commit f5c09a0eccc57… |
| NEST | v3.4, commit 41892a50f95d… |
| Custom PyNN | commit a60d9ab267bd…, 17 July 2024 |
| Imagen | commit a4af248e161b…, 7 November 2024 |
| NEST step-current extension | commit fe91c0345a60…, 3 October 2023 |
Full commit identifiers are in the contract. This policy defines a candidate reconstruction; it does not prove which dependency versions produced the authors' saved reference outputs. We still need to resolve the exact Python patch version, operating-system packages, compiler and transitive Python dependencies, then compile and test their compatibility. There is no completed environment lock or working container image yet.
Recording outcomes without false passes
The upstream tests run the model and load its output directory. Our execution harness will use a fresh copy of the pinned framework for each attempt, preserving previous attempts separately. It will retain input hashes, installed package versions, invocation, logs, JUnit report and raw model outputs. Where available, the system timing tool will record peak resident memory and wall time.
A successful process exit alone is insufficient. The reporting code requires all ten named cases from the intended test class, zero skipped cases, no failures or errors, and a zero pytest exit status. It rejects missing or malformed reports, empty or incomplete suites, duplicate cases and the wrong test class.
We checked this logic with eleven synthetic-report tests; all passed. The test log and machine-readable check record are retained. This supports a narrow software claim: the reporter classifies those test fixtures correctly. It says nothing about whether the neural model reproduces the reference.
The original neural tests flatten recordings within each population. We will also preserve segment and neuron identities for mismatch diagnostics, along with units, spike counts and first divergent samples. Those diagnostics will supplement the original test, not change its pass condition.
Execution status and the next decision
The local host preflight stopped before any model imports because it does not meet the proposed Linux x86_64 baseline. We are preparing hosted Linux execution. The proposed initial machine has four virtual CPUs and 8 GB of memory; this is an engineering starting point for the small test and compilation, not a measured minimum or a resource estimate for the full published model.
Paid compute has not been provisioned. Once a host is approved, we will build the environment, record the resolved versions, test simulator imports and run the original comparison. Installation failures and numerical disagreements will be kept in the record.
The eventual controller still requires a separate causal test: replay identical inputs while altering the neural dynamics, then measure the effect on decoded requests. An exact match to this small reference would be a useful software baseline, but would not establish full-paper reproduction, independent biological validation or controller readiness.
Sources and artifacts
- Mozaik v0.4.0 source, including
tests/full_model/test_models_stepcurrentmodule.py,test_models.py, the small model and saved references. - Original small-model parameters and experiments.
- NEST 3.4 installation documentation.
- Antolík et al. (2024), A comprehensive data-driven model of cat primary visual cortex.
- Download the protocol package, or inspect its file manifest. The package includes our harness, synthetic-report checks, source-history records and original diagram; it does not include a neural simulation result.