Skip to content

Commit 65e7b4a

Browse files
committed
PCG: discard a replay start worse than zero; INIT= in the solve summary; split pcg_priors.md
Replay start guard, inside the solver and free: solve_core discards a nonzero start whose initial relative residual exceeds 1 (PCG_START_MAX_REL_RESID) before the first iteration (r = b, no operator application) and logs it; solve_with_cold_restart passes the threshold for the shell-shrunk replay start only. Motivated by the streptavidin canonical 9/10 miss (wrong symmetry axis): the good and bad runs are identical in the sigma flow and part in stage 3, the first PCG/ML stage and the symmetry- search stage, where the shrunk-base start sits at INIT 2-4 and two iterations leave a half-converged transient as the matching reference and the symmetry-search input. The solve summary line now reports INIT= (start residual) next to RESID=; the outcome carries the discarded start's INIT. The shrunk-base start is kept: from stage 6 on it is at INIT ~0.2 and takes the replay to RESID ~0.04. Documentation: pcg_priors.md (4062 lines, a design record for retired priors plus a journal) is frozen verbatim as pcg_priors_history.md with a banner; pcg_backend_overview.md (present tense, four pages) and pcg_decision_log.md (one dated entry per decision, 2026-08-25 to 2026-09-10) are the maintained documents. All references in doc/ and src/ repointed; reconstruct3D_pcg_policy names the overview and the log; refine3D_policy, abinitio3D_policy and the NU policy updated for the retired warm starts.
1 parent 0635a52 commit 65e7b4a

19 files changed

Lines changed: 601 additions & 52 deletions

doc/implementation_notes/completed/drop_legacy_box_division.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ convention; all its internal factors (`padsc` in `b`, `padsc²` in `Khat`, the
117117
padded-lattice interpolation, the normalized KB weights, the deapodization
118118
bracket on both `H` and `b`) cancel, and its solution is the plain data
119119
quotient — without the `/box`. Measured on the streptavidin run
120-
(`pcg_euclid_crash_investigation.md` (consolidated into `pcg_priors.md`) §15): gridding stage-1 lp map L2 0.99 vs
120+
(`pcg_euclid_crash_investigation.md` (consolidated into `pcg_priors_history.md`) §15): gridding stage-1 lp map L2 0.99 vs
121121
PCG iteration-41 lp map L2 194; per-shell ratios 160–260 over the shared band,
122122
i.e. 128 × ~1.5, the remainder being the different alignment state of the two
123123
maps (the ratio rises with resolution) and second-order KB-deconvolution
@@ -178,7 +178,7 @@ non-`lpset` reference path (`read_mask_filter_refvols` reads the halves when
178178

179179
Measured on same-alignment maps (gridding stage-2 snapshot, iteration 40, vs
180180
PCG iteration 41; `envelopes.py`/`compare2.py` in the investigation
181-
scratchpad, recorded in `pcg_euclid_crash_investigation.md` (consolidated into `pcg_priors.md`) §15.4): L2 ratio
181+
scratchpad, recorded in `pcg_euclid_crash_investigation.md` (consolidated into `pcg_priors_history.md`) §15.4): L2 ratio
182182
inside the molecule (r < 24) 175–177; the box convention alone predicts 128;
183183
box convention × gridding's envelope deficit predicts 140–156; the remaining
184184
×1.2–1.26 rises with spatial frequency (shell ratio 136 at shell 2 → 184 at
@@ -567,7 +567,7 @@ identity above was established and is wrong.)
567567
map unmasked; to be re-measured with the current tool (masked, background
568568
removed) and the fixed build before drawing conclusions.
569569
- The PCG solver's beyond-band behaviour under near-flat bootstrap sigma2
570-
(`pcg_euclid_crash_investigation.md` (consolidated into `pcg_priors.md`) §13, `PCG BEYOND-BAND EXCESS`
570+
(`pcg_euclid_crash_investigation.md` (consolidated into `pcg_priors_history.md`) §13, `PCG BEYOND-BAND EXCESS`
571571
diagnostic) is a separate solver-level question.
572572
- Whether the 2D polar pipeline's own normalizations (`pftc` particle and
573573
reference preparation) place "expected signal" exactly at the data-quotient

doc/implementation_notes/continuous_3D_refinement_on_pcg_operator.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -663,7 +663,7 @@ either way.
663663
today; especially section 5 (preconditioner and kernelized operator). It
664664
supersedes the deleted `ctf_sigma_weighted_pcg_reconstruction.md`.
665665
- `doc/policies/reconstruct3D_pcg_policy.md` and
666-
`doc/implementation_notes/pcg_priors.md` -- the production workflow and
666+
`doc/implementation_notes/pcg_priors_history.md` -- the production workflow and
667667
regularization contracts. Note the production performance rule that the
668668
kernel PCG *solve* is data-free after `(B,D)` accumulation, which does NOT
669669
hold for the pose objective specified here.

doc/implementation_notes/nu_evidence_envelope_masking.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
> retired: matching references are NEVER multiplied with an envelope
55
> (evidence or density) before reprojection — hard-removing density present
66
> in the particle images destroys pose discrimination (PfCRT collapse,
7-
> `pcg_priors.md` item 8). Under `automsk=yes` the evidence envelope now
7+
> `pcg_priors_history.md` item 8). Under `automsk=yes` the evidence envelope now
88
> defines the NU filter-field BACKGROUND (heavy background low-pass,
99
> cisTEM-style), and on the PCG backend that field enters reconstruction
1010
> only through the `Q_NU` precision prior. The `envfsc=yes` density-mask FSC

doc/implementation_notes/nu_evidence_local_sharpening.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
## Status
44

55
Proposal (2026-08-27), **SCHEDULED as PRESSING (2026-08-29, user
6-
direction)** — item 1 on the active dev list in `pcg_priors.md`
6+
direction)** — item 1 on the active dev list in `pcg_priors_history.md`
77
(Stage 6.6 run records). The original precondition is met: the direct
88
NU-evidence prior cleared its Gate C/D program and the Stage 6.6
99
nu_refine evidence-bank extension validated on 1WCM. The motivation is
@@ -14,7 +14,7 @@ postprocessing experiment that consumes Stage 6 infrastructure, not a
1414
competitor to it. No solver, base-solve, replay, or artifact behavior
1515
changes are proposed here. Note the Wilson-target variant 2.3(c) is
1616
DEAD: the Wilson prior was adjudicated against and removed from the
17-
codebase (2026-08-29, `pcg_priors.md` Stage 7 record); variants 2.3(a)
17+
codebase (2026-08-29, `pcg_priors_history.md` Stage 7 record); variants 2.3(a)
1818
evidence-derived and 2.3(b) local-B remain the candidates.
1919

2020
## 1. The idea
@@ -54,7 +54,7 @@ x_sharp = sum_b g_b(v) * (B_b x), g_b(v) >= 0
5454
with the DC/mean component passed through unchanged. Phases are untouched by
5555
construction (real nonnegative gains on band-limited real-space components).
5656
The frozen compact evidence state is shared read-only, exactly as
57-
`pcg_priors.md` §6/§11 mandates for diagnostics — one evidence identity, no
57+
`pcg_priors_history.md` §6/§11 mandates for diagnostics — one evidence identity, no
5858
second NU analysis that can disagree with the replay.
5959

6060
### 2.2 Two gain layers
@@ -86,7 +86,7 @@ In increasing ambition; (a) is the first implementation:
8686
(scale, B) to the bandwise cross-half agreement per voxel and invert it.
8787
Compact and robust to the coarseness of the 4-band frame; effectively a
8888
model-free local B-factor map with calibrated confidence.
89-
- **(c) Wilson expected spectrum:** the `pcg_priors.md` §5.5 Wilson object,
89+
- **(c) Wilson expected spectrum:** the `pcg_priors_history.md` §5.5 Wilson object,
9090
used here in its gentlest possible role — a sharpening *target* rather
9191
than a prior. Requires only composition-level assumptions, no atomic
9292
coordinates. This variant is the natural bridge between the sharpening
@@ -112,7 +112,7 @@ changes change the operator and must be measured, not assumed invariant).
112112
keeps sole resolution authority; the sharpened map is a
113113
display/interpretation product. Never feed the sharpened map or its
114114
evidence into FSC solvent correction or resolution claims.
115-
- **Not a solver component.** The LocScale risk rows in `pcg_priors.md` §9
115+
- **Not a solver component.** The LocScale risk rows in `pcg_priors_history.md` §9
116116
(amplitude target nonlinear in `x`; common targets carrying phases)
117117
concern in-solve use. As postprocessing none of them apply: the operator
118118
acts once on a finished estimate, phases are preserved, and no CG
@@ -273,7 +273,7 @@ Acceptance thresholds recorded before the runs, per R9.
273273

274274
| Component | Relationship |
275275
| --- | --- |
276-
| `Q_NU` replay (`pcg_priors.md` §5) | Same frozen evidence, same band frame; replay regularizes *in-solve*, sharpening restores *post-hoc*. Complementary, never combined implicitly. |
276+
| `Q_NU` replay (`pcg_priors_history.md` §5) | Same frozen evidence, same band frame; replay regularizes *in-solve*, sharpening restores *post-hoc*. Complementary, never combined implicitly. |
277277
| Production NU filter | Sharpening generalizes it: graded gains instead of binary local cutoff selection, plus restoration. Long-term the NU filter is the `g`-restoration-off special case. |
278278
| Wilson prior (§5.5) | Supplies target 2.3(c); sharpening is the lowest-risk consumer of the Wilson spectrum and a natural first validation of it. |
279279
| Beyond-band retention watch item (Gate C record) | The Wiener layer is the principled shipped-map rolloff that closes it. |

0 commit comments

Comments
 (0)