Standalone repository for the contextual-contrasting model-scatter simulation used for the final paper figures.
The repository includes the reference output in model-results-paper/. A default run
is configured to reproduce those results while writing new artifacts to
outputs/, so the reference folder is not overwritten.
The Python modules live directly under src/.
conda env create -f environment.yml
conda activate context-contrasting-model
python -m pip install -e .From the repository root, run:
python -m src.run_model_scatterThe command above is equivalent to the final run settings:
python -m src.run_model_scatter \
--n-jobs 10 \
--plot-center-panels \
--output-dir outputs \
--export-panels \
--image-format svg \
--fam-examples 2 3 -NO/+O +NO 13 6 \
--nov-examples +NO/+Om 11 7 2 6 \
--n-samples 300 \
--n-steps-per-phase 400The default run also uses --test-trials 5, --training-trials 7,
--training-stimulus-order randomized, --seed 7151,
--transition-sampling data-like, --zscore-std-floor 0.04,
--response-tail-fraction 1.0, --threshold 0.3, and
--axis-clip-percentile 99.0.
The default run writes:
outputs/sample_responses.csvoutputs/transition_table.csvoutputs/sampled_config_parameters.csvoutputs/sampled_configs.jsonoutputs/metadata.jsonoutputs/figures/*.svgoutputs/center_panels/*.svgoutputs/summaries/*.csvoutputs/highlight_examples/
To compare a fresh run against the embedded reference results reported in the paper:
python -m src.verify_reproductionThe verifier compares CSV/JSON outputs byte-for-byte. For SVG/EPS files it normalizes Matplotlib-generated timestamps and internal object IDs before comparison; the rendered plot content must still match.