Spectrum Atlas

Status

Built 2026-11-02 10:01:23 UTC from the pipeline repository. Sources are hashed at build (manifest 95363ef25aa3…, ledger 273c8e3c9ab3…).

Counts

rungmolecules
Listed13,018
Cheap level done1,219
Correction predicted0
Spectrum predicted0
Anchored10
Validated1

By layer

layermolecules
A46
A2868
B4,353
C6,055
P360
P3c444
G2,272
R4150

Where the molecules come from

Every entry names its source: parents chosen by hand, children enumerated from them, the Hessian-QM9 set, pool 3 (chosen by rule), or a proposal of the candidate generator — a language model for molecules trained on PubChem's fused aromatics; its rows say whether PubChem already knows the ring system. A proposal is listed, not computed: what gets computed follows the corpus's composition rule.

sourcemolecules
parent molecules chosen by hand (benzene, naphthalene, the PAH cores and their relatives)46
substituted three- and four-ring cores, enumerated from the parents (layer A′)868
cores with one or two substituents, enumerated from the parents4,353
Hessian-QM9 (small molecules of up to nine heavy atoms)6,055
pool 3, chosen by rule (decision 54): aza four-rings and five-ring systems60
pool 3, chosen by rule (decision 54): cations of finished parents444
proposed by the candidate generator (module 06): a new fused ring system, known to PubChem308
proposed by the candidate generator (module 06): a new fused ring system, not in PubChem1,964
rung 4 of the size ladder, chosen by rule: four-ring families as broad sets (TASKS 61)150

Releases

Changelog — the project's obstacle ledger, newest first, 643 entries

  1. 2026-11-02 09:5x route A's second gate missed too; the miss is the images', not the reference's; route A waits for the user (TASKS 53; S3 amendment 2). — Rerun (/root/routea_gate2, 07:54–08:26 UTC, run spec routea_gate): not NOISY, but against S1's direct G Δ_anh rms 0.294, max 1.285 cm⁻¹ over 22 window modes (line 0.2 / 0.5), 15 images all grid-compatible. Run spec routea_gate_direct computed those 15 −d Hessians directly at the same geometries (08:…
  2. 2026-11-02 08:5x route A: runner built, S3 registered, the first benzene gate missed for a measured cause, rerun (TASKS 53; the user: 'Ga je gang met route A'). — s1_anharmonic_level.sh gained PM_SAVING (probes/qff_pm_saving.py: the reference averaged over its group, each −d Hessian that an operation maps from +d written as D H Dᵀ) and LANES (one setting's displaced Hessians over k processes), both off by default; built on branch routea-runner in its own work…
  3. 2026-11-02 08:0x S2b launched on three CPX62; route A's server waits for its runner (TASKS 53; the user: 'Eerst S2b met route A'). — The user created ubuntu-32gb-hel1-3/4/5 (CPX62) and ubuntu-128gb-hel1-6 (CCX53) in Helsinki; machine-ids pinned in tools/hosts.tsv (s2b1–s2b3, routea), qc05 with pyscf 2.14.0 on all four (tools/bootstrap_qc05_env.sh). S2b's registration left DRAFT before any computation (b3eb8557). deploy_s2.sh now …
  4. 2026-11-02 05:4x hold-out (a) installed, through the pipeline and on the show (TASKS 146, 161). — A_428228e5a5 ended 05:31 (5,138 s): CPHF residual 5.8e-5 → 2.7e-7 in one round, sum rule 5.3e-5; 8 of 8 files. Its largest height change, 17 %, is intensity moving between two C–H stretches 0.8 cm⁻¹ apart (3202.9/3203.7: 44.6/41.2 → 57.9/30.3 km/mol); summed within 2 cm⁻¹ it is 3.2 %, the other seve…
  5. 2026-11-02 04:0x A_428228e5a5's cause: write_apt ran after the pyscf log was closed (TASKS 146). — The relaunch failed at 04:00 after 4,479 s and, with 9fb718fc, named the cause: ValueError: I/O operation on closed file from pyscf/lib/logger.py flush, via apt.refine_response → hessian/rhf.py fx → scf/hf.py SCF.get_jk's logger.timer. recompute opened pyscf.log in a with block and called write_apt …
  6. 2026-11-02 02:5x holdout_a_apt ended with 7 of 8; merge; A_428228e5a5 relaunched alone; HBC/D specs launched (TASKS 146, 49). — The run ended 02:20 (exit 0, 'all done: 7 of 8'). The six route-B recomputes passed: CPHF residual 3.1e-5–4.6e-4 → 1.4e-7–7.5e-7 in one round, sum rule ≤ 7.3e-5, largest height change 4.0 % (A_541c53d1a5), the rest ≤ 1.4 % (recompute.jsonl); benzene's B3LYP Hessian 508 s. holdout_a_apt_install.py wi…
  7. 2026-11-01 23:3x holdout_a_apt: A_428228e5a5 failed and its cause was swallowed (TASKS 146). — Lane 0, 23:27, after 7,496 s: the SCF converged (E = −615.750183348 E_h) and the response ran, then FileNotFoundError on dipole_b3lyp_cphf.npz. recompute catches a ValueError from write_apt as a failed check, because write_apt writes the file (marked failed) before it raises for a sum rule or residu…
  8. 2026-11-01 22:0x HBC's steps 2 and 3 prepared, deployed and dry-run (TASKS 49; the user: yes to preparing them tonight). — hbc_apt_field: probes/l5_apt_field_run.sh unchanged in a fresh /root/hbcf after hbc_wb97x (probes/wait_then_run.sh), 24 threads, cap 32 GB, pyscf max_memory 12,000 MB (HBC's dpbecke about 5 GB and its AO grid about 3 GB lie outside it, scaled from ovalene's 3.0 and 2.4). d8a_relabel: 8 threads, max_…
  9. 2026-11-01 21:5x HBC's step 1 prepared: the stalled ωB97X SCF gets a second-order finish (TASKS 49; the user: 'Akkoord, bereid stap 1 voor'). — The fetched pyscf.log shows the DIIS run at |g| 1.5e-8, the energy falling 1.3e-10 a cycle against conv_tol 1e-11 and DIIS reporting linear dependence: a stall near the threshold, not a divergence. analytic_hessians.py --newton-finish (branch hbc-newton-finish, 6344d3ae) finishes from the run's own …
  10. 2026-11-01 21:2x the show batch ran, 30 of 30; holdout_a_apt launched (TASKS 146, the user: 'Ja, start de batch zodra de bewaker draait'). — The watch re-armed at 90 % battery (21:05); pipeline_show_batch 21:09–21:13, exit 0, every molecule by reuse with its certificate. holdout_a_apt dry-run again on the updated WSL (eight inputs checked) and launched 21:22, two lanes × 4 threads, ≈ 12 h.
  11. 2026-11-01 21:1x l5_large ended: HBC's B3LYP Hessian is in, its APT misses the sum rule, its ωB97X SCF did not converge (TASKS 49). — The watch reported exit 1 at 21:05 (the run ended 17:23 server time; the watch was off during the evening's updates). T_76dfc434db (HBC, C₄₂H₁₈, 60 atoms): 73,372 s, max RSS 42 GB, not an OOM kill; hessian_b3lyp_analytic.npz (10:08) and dipole_b3lyp_cphf.npz written, the APT sum rule 9.2e-4 against …
  12. 2026-11-01 20:3x the geometry term holds on 18 molecules beyond benzene (TASKS 156 (d)). — Amendment 2 first (agreed with the user, committed before the read, ac7c0f44): ωB97X's planar x_T of styrene and ethynylstyrene is a saddle along the vinyl twist (41.1i, 43.1i cm⁻¹), so that one mode leaves the read for those two. The read: 758 modes, rms shift 10.99 → residual 2.41 cm⁻¹ (true Δq) a…
  13. 2026-11-01 16:3x uutils' mkdir race: fixed upstream, Ubuntu backport requested (TASKS 163 closed 16:2x, the user asked for an issue draft). — Reading the source settled it: 0.8.0 returns success on any creation error when the path is then a directory, 0.11.0 only under -p (bf423f3, uutils#13970, 16 Aug). My 'no issue found' of 16:1x missed that closed issue. Ubuntu 26.04 ships 0.8.0 (here) or 0.10.0 (the update), both with the race; Launc…
  14. 2026-11-01 16:2x the show links to the Spectrum Atlas (TASKS 161 (1)). — m08/show.py: atlas_link gives a molecule the certificate found in the catalogue with rung ≥ 1 its page thebreadishard.github.io/spectrum-atlas/molecule/<id>/, shown under the certificate; --check-links sends a HEAD request for each after the build and fails on any answer but 200. The default build: …
  15. 2026-11-01 16:1x the clean hold-out (a)'s APT run built (TASKS 146, the user: 'Akkoord, bouw de run spec', 16:0x). — All eight APT files are route B (probes/dipole_derivs_cphf.py: pyscf's Krylov CPHF without a residual check), which probes/apt_recompute_refined.py refused; it now redoes route B as route C, its source checks are one function with --check-only, and --max-memory reaches pyscf (8 tests in WSL pass, 4 …
  16. 2026-11-01 15:4x the pipeline show built and tested (TASKS 146, the user's design of 12:4x). — m08/show.py + m08/show_template.html → out/pipeline_show.html: molecules by carbon count (PAHdb's way), the pipeline as a metro map in the Atlas's tokens (nf-core's metro maps as the model: straight lines, 45° only; a main line and a corpus line with interchanges at stations 2 and 5 and a stop 'Corp…
  17. 2026-11-01 11:4x the engine check's run script; check 0 passes with v1.3; geomeTRIC missing in WSL (TASKS 73). — probes/engine_check.py (prepare / optimise / evaluate). The licence's recorded a8 read kept the mode-family labels of psi4's FD pair after substituting the analytic Hessians; a pyscf folder has none, so both compared routes are analytic-only folders and check 0 runs on exact corpus copies (amendment…
  18. 2026-11-01 10:4x the engine check registered (TASKS 73, the user's order: the third of the morning's three). — PreRegistration_2026-11-01_Engine_Check.md: the eight clean hold-out (a) molecules (174 atoms); pyscf route = B3LYP/6-31G* optimised by geomeTRIC (pyscf.geomopt.geometric_solver.optimize, as pyscf's examples/geomopt/01-geomeTRIC.py and our route2_optimise.py), GAU_TIGHT, grid 99/590, from the corpus…
  19. 2026-11-01 10:3x pipeline 0.7: an xyz input in the SMILES route's order (TASKS 149, the user's order of the morning). — m08/pipeline.smiles_route_order: the heavy atoms as the canonical SMILES writes them (RDKit numbers a parsed SMILES in that order), then the hydrogens as AddHs appends them; the file's coordinates are kept and the record names the file index of every computed atom. Explored on four frozen-corpus mol…
  20. 2026-11-01 09:4x v1.5's primitive switches built and read at feature level (TASKS 149, branch v15-features 9b2a1b65). — geomeTRIC's makePrimitives drops, at a planar three-neighbour centre, the angle between the two lowest-numbered neighbours (the first planar permutation in index order), so the primitive set follows the atom numbers. m05/internal_coords.py: the canonical angle choice builds on the atoms in RDKit's c…
  21. 2026-11-01 09:1x the product's name becomes aromir (TASKS 73). — The user proposed it after choosing deltair: aromatic + IR, free on PyPI, conda-forge, GitHub and the Hub (checked 1 Nov), no project of that name in any field; it states the domain the network is trained and licensed on. The 09:1x entry's stamp is corrected (it read 09:2x, typed by hand against the…
  22. 2026-11-01 09:1x the product repository: the user decides its three open points and three decisions (TASKS 73). — docs/product_repo_design.md (written 08:4x). The name is deltair (repository, PyPI/conda-forge and import name; free on 1 Nov; dpir collides with the image-restoration DPIR). The one engine is pyscf + geomeTRIC after a registered check whose line the user tied to truth: each route against the analyt…
  23. 2026-11-01 03:1x coronene's field route passes (TASKS 49, chain 42's risk 4). — l5_apt_field relaunched 00:18 for T_94b3a9d13a, exit 0 at 03:05 (2.8 h for both fields at 36 atoms); the read: A 2.5e-10 e, B 1.2e-6 e; labels-route APT within 8.1e-5 e of the field APT, the 19 strong bands' heights 0.02 % rms. All three shape molecules that missed the 5e-4 limit pass both lines; th…
  24. 2026-11-01 02:1x l5_large: D_8a1c3dddb7 OOM-killed at the 110 GB cap, HBC runs at 21–28 GB (TASKS 49). — l5_large started 31 Oct 19:37 UTC (1 lane × 32 threads, cap 112,640 MB, pyscf max_memory 100,000 MB). D_8a1c3dddb7 (C₃₄H₂₀, 54 atoms) converged its B3LYP SCF at 19:48 and was killed 72 min later in the Hessian's first phase (the kernel: one python process, anon-rss 115 GB, memcg limit), before its f…
  25. 2026-11-01 00:2x geometry_term stopped on its fifth molecule; the optimiser refreshes the Hessian (TASKS 156 (d)). — A_8f6ed7c002 (C₈H₈, the fifth of the 18) did not converge: after x0's Hessian the held-Hessian steps took |g| from 9.4e-3 to 4.5e-5 in two, then slid along a soft coordinate for ten more, |g| growing to 4.2e-4 while the energy fell by about 1e-6 E_h a step, and the run stopped at MAX_STEPS (exit 1, …
  26. 2026-10-31 19:3x coronene's APT misses the sum rule too (TASKS 49, chain 42's risk 4). — l5_small's T_94b3a9d13a ended FAILED after 63,187 s (exit 3, max RSS 25 GB, not an OOM kill): both analytic Hessians written, no imaginary mode (lowest 89.1 cm⁻¹ B3LYP, 94.4 ωB97X), only the labels-route APT at 6.8e-4 against the 5e-4 limit — the third compact shape molecule, as ovalene (7.9e-4) and…
  27. 2026-10-31 19:1x the field route passes for ovalene and peropyrene (TASKS 49, chain 42's risk 4). — l5_apt_field ended at 19:13 (exit 0, 8.1 h after the 11:05 relaunch); probes/l5_apt_field_read.py: ovalene (T_c874e3c6cf) A 1.4e-9 e, B 4.4e-6 e; peropyrene (T_2f846bd4a9) A 4.5e-10 e, B 3.5e-6 e — both lines hold for both, so <id>/dipole_b3lyp_field.npz is their APT for the intensity read. The labe…
  28. 2026-10-31 16:1x the geometry term beyond benzene, registered and built (TASKS 156 (d), the user's choice). — GoalGathering/notes/PreRegistration_2026-10-31_Geometry_Term.md: on the 18 force fields at G (S2), ωB97X/6-31G* (99/590) Hessians at G's minimum and at its own (Newton steps on the held Hessian, probes/geometry_term_check.py run); measured shifts against ½ Σ φ_iik Δq_k with Δq from the true displace…
  29. 2026-10-31 13:5x pipeline 0.6: steps 2–3 from the corpus (TASKS 150, the user's choice of the day). — m08/reuse.py reuses a corpus folder when it is what steps 2–3 would compute: deck v1's numerics, a neutral closed-shell analytic Hessian on 99/590 without an imaginary mode, an APT of the refined route within CPHF_BOUND and SUM_RULE_LIMIT, atoms in the folder's own SMILES order, the same optimiser o…
  30. 2026-10-31 11:0x l5_apt_field's second attempt stopped at 10:10 and the watch said nothing (TASKS 49). — Memory held. Ovalene's zero-field SCF followed the first attempt's path to cycle 17, then drifted by about 1e-10 Eh a cycle at |g| = 5e-9 for 32 cycles and was refused at max_cycle 50: an energy limit of 1e-11 on a 1228 Eh energy is the noise floor (the first attempt met it by luck at cycle 18). apt…
  31. 2026-10-31 09:4x l5_apt_field relaunched at a 12 GB cap (TASKS 49). — The first attempt was stopped by its 8 GB cgroup cap at 09:39 (exit 137) in ovalene's first grid-response gradient: pyscf 2.14's grad/rks.py grids_response_becke holds dpbecke, natm² × 3 × one atom's grid points (46² × 3 × 58,410 × 8 B ≈ 3.0 GB), beside that grid's AOs with second derivatives (≈ 2.4…
  32. 2026-10-31 09:1x the field route for the failing APTs runs on the laptop (TASKS 49; the user: 'doe maar op de laptop'). — Run spec l5_apt_field (launched 09:14): probes/apt_field_route.py at the label settings with and without grid response, F = 1e-3 and 2e-3 for Richardson (L4's D1), ovalene then peropyrene (results_m1/l5_apt_field_2026-10-31/ids.tsv; coronene is appended if its APT fails at l5_small's end), 8 threads…
  33. 2026-10-31 07:1x l5_small: two shape molecules' APTs fail the sum rule, the registered risk 4 of chain 42 (TASKS 49). — ovalene (T_c874e3c6cf, 46 atoms) ended FAILED after 135,499 s with both analytic Hessians written and no imaginary mode — only its APT missed the translation sum rule, 7.9e-4 against the 5e-4 limit, at a converged response (CPHF residual 1.7e-7); peropyrene (T_2f846bd4a9, 40 atoms, wB97X still runni…
  34. 2026-10-30 23:1x C1 read again on R2: does not hold, as predicted (TASKS 145). — Chain C1R ran 21:07–23:03, 36 of 36 outputs (out/c1_reread_2026-10-30/c1_reread.md). CH-oop, random draws against covers (mean ± se over seeds × draws): k = 5 7.51 ± 0.27 against 6.51 ± 0.13 (below), k = 10 5.92 ± 0.14 against 6.19 ± 0.34, k = 20 4.75 ± 0.24 against 4.72 ± 0.08 — below at one size, …
  35. 2026-10-30 20:5x C1's re-read registered (TASKS 145; the user: 'stel de vastlegging voor C1 op'). — GoalGathering/notes/PreRegistration_2026-10-30_C1_Reread.md: arm (c)'s C1 (a covering selection below random draws on CH-oop by two combined se at two of k = 5, 10, 20) read again with the anchor count's early-stopped fine-tune R2 (body1_es, cap 120) on the same base (c), random draws and covers — 9…
  36. 2026-10-30 20:4x hold-out twins out of the training, the clean (a) in the certificate (TASKS 157; the user: 'Akkoord met de drie voorstellen'). — (1) m05/rungC_train.py drops every pool molecule that is a hold-out (a, b, s) molecule under another id, keyed by canonical SMILES and charge from the corpus manifest (m05/holdout_twins.py; a P3c cation is not its parent); --holdout-twins drop is the default from now on, keep reproduces v1.3's pool;…
  37. 2026-10-30 19:5x the demo rehearsal: cinnoline in 21 minutes (TASKS 152). — Run spec pipeline_rehearsal_cinnoline (19:23): pipeline 0.5 printed 'estimated laptop time ≈ 25 min for 162 basis functions'; it took 1,262 s (21.0 min), 42 bands, the estimate 16 % on the safe side. Refitted with it (nine runs, sizes 102, 162, 230, 320): n^3.22, half an hour at ≈ 171 basis function…
  38. 2026-10-30 19:2x v1.3 on the clean hold-out (a): the licence holds (TASKS 157). — Run spec holdout_a_clean (18:43, seed 0's final print failed under cp1252 after its record; the runner now exports PYTHONUTF8 and skips a valid record; seeds 1–2 19:07–19:10). Hold-out (a) as stored is reproduced to the reported digits (ring-ip 1.66, CH-stretch 1.15, CH-oop 1.99, other 3.35). Seed m…
  39. 2026-10-30 18:2x the demo molecules at pipeline 0.4, and the page rebuilt (TASKS 146). — Run spec pipeline_demo_rerun ended exit 0 at 18:09 (benzene 356 s, phenanthrene 4,706 s, module 06's candidate 13,734 s; the candidate's Hessian ran slower while the laptop's charger could not carry the load — battery 75 % at 17:19, 6 % at 18:08, charging again from 18:09 after the user plugged it i…
  40. 2026-10-30 17:0x the demo's candidates (TASKS 152; the user: 'dan 152'). — probes/demo_candidates.py sends 36 recognisable aromatics through the pipeline's own checks without computing: admission, seen-ness (m08.seen), the catalogue and the laptop estimate (m08.runtime, 6 threads); table modules/08_industry_synthesis/out/demo_candidates_2026-10-30.md. Short list 14: never …

Entries are copied from the ledger at build time and never edited here; corrections appear as new dated entries.