Restructure: descriptive tier and experiment names, paper/manuscript

- paper/pnas -> paper/manuscript (venue-neutral)
- configs/layer1 -> configs/inheritance, src/knowledge -> src/inheritance
  (imported as `inheritance`), make layer1 -> make inheritance; layer2 alias dropped
- inheritance and trained-network bundles named after the manuscript figure
  they feed (fig2_grounding_sweep, figS3_rebaselining, ...), or descriptively
  where they feed none; configs keep their `experiment:` value so parquet
  hashes are unchanged, only output.dir moves
- figure scripts, SI figure sources, notebooks, REPRODUCING.md, README and the
  SI Methods/tables updated; make clean no longer deletes tracked manifests;
  reproduce.sh hashes the s{seed}/ layouts too

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Y64o8FKP7rCuXzC48pxpMm
This commit is contained in:
Giorgio Gilestro 2026-09-13 17:00:40 +01:00
parent 84124de143
commit ab3dc10587
240 changed files with 477 additions and 476 deletions

View file

@ -46,9 +46,9 @@
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"\n",
"from knowledge.lineage import run_lineage\n",
"from knowledge.metrics import heterozygosity\n",
"from knowledge.truth import make_true_distribution\n",
"from inheritance.lineage import run_lineage\n",
"from inheritance.metrics import heterozygosity\n",
"from inheritance.truth import make_true_distribution\n",
"\n",
"K, N_SAMPLES = 200, 100 # K items of knowledge; n samples drawn per generation\n",
"print('ready')"
@ -127,7 +127,7 @@
"process — the textbook model of neutral evolution in a finite population of size `n`.\n",
"\n",
"The config below is the same schema the experiments use, so anything you learn here transfers\n",
"directly to `configs/layer1/*.yaml`."
"directly to `configs/inheritance/*.yaml`."
]
},
{
@ -430,7 +430,7 @@
"output_type": "stream",
"text": [
"first swept point retaining 95% of H*: g = 0.091 (m = 10)\n",
"the paper reports g ~ 0.05 for its tested setting; see results/E2 and Fig. 2A\n",
"the paper reports g ~ 0.05 for its tested setting; see results/fig2_grounding_sweep and Fig. 2A\n",
"\n",
"common item (p=1e-02): seen once per batch at m ~ 100 -> P(seen | m=1000) = 100.0%\n",
"rare item (p=1e-03): seen once per batch at m ~ 1,000 -> P(seen | m=1000) = 63.2%\n",
@ -442,7 +442,7 @@
"target = 0.95\n",
"i = int(np.argmax(np.array(sim) >= target * H_star))\n",
"print(f'first swept point retaining {target:.0%} of H*: g = {g[i]:.3f} (m = {ms[i]})')\n",
"print('the paper reports g ~ 0.05 for its tested setting; see results/E2 and Fig. 2A\\n')\n",
"print('the paper reports g ~ 0.05 for its tested setting; see results/fig2_grounding_sweep and Fig. 2A\\n')\n",
"\n",
"for p, label in [(1e-2, 'common'), (1e-3, 'rare'), (1e-4, 'very rare')]:\n",
" need = 1 / p\n",
@ -458,7 +458,7 @@
"## Where to go next\n",
"\n",
"- `02_paper_figures.ipynb` — regenerate every manuscript figure from the committed artifacts.\n",
"- `configs/layer1/E2.yaml` — the full grounding sweep this notebook miniaturises (Fig. 2A).\n",
"- `configs/inheritance/fig2_grounding_sweep.yaml` — the full grounding sweep this notebook miniaturises (Fig. 2A).\n",
"- `REPRODUCING.md` — the map from each paper panel to its config and seed.\n",
"- `tests/test_scientific_validation.py` — these same identities as assertions; if they fail, the\n",
" science is wrong, not just the code."