Abinitio3D Policy¶
This document records the current policy for abinitio3D, the staged
particle-based ab initio 3D workflow. The base refine3D contracts are in
refine3D_policy.md; this document describes how
abinitio3D configures and chains those stages.
Multi-state matcher and reconstruction lifetimes follow separate_alignment_and_reconstruction_for_multistate_peak_mem_reduction.md.
1. Scope¶
abinitio3D builds initial 3D models from particles by preparing starting
orientations/states, marching through staged refine3D runs, optionally
performing symmetry-axis search, and reconstructing final original-sampling
maps.
It owns stage scheduling. It does not own a separate particle matcher or volume assembly implementation.
Projection-direction reconstruction¶
projrec=yes enables an experimental compact reconstruction path for the
particle refinement stages. It first assembles raw Fourier numerator and
CTF-squared sums for each discrete projection direction, state, and even/odd
half using the same native-grid 2D Kaiser-Bessel interpolation machinery as
class averaging. Those un-restored sums are inserted directly into the 3D
partial reconstructions with the 3D Kaiser-Bessel kernel. They are never
CTF-density corrected and never transformed through real space between the 2D
and 3D assembly steps. The default is projrec=no.
2. Defaults¶
abinitio3D sets:
objfun=euclidsigma_est=globalbfac=0
When unset, it supplies:
mkdir=yesoverlap=0.95prob_athres=10center=nocenlpfrom the ab initio controller defaultoritype=ptcl3Dpgrp=c1pgrp_start=c1filt_mode=nonuniformautomsk=nogauref=yes
For multivol_mode=independent, it also supplies conservative inspection
defaults when the user has not overridden them:
nstages=5lpstop=6.0 A
The public filt_mode values are none, nonuniform, and
nonuniform_lpset. Automatic low-pass modes uniform and fsc are rejected
for abinitio3D.
3. Stage Controller¶
The stage controller in simple_abinitio_controller.f90 emits a concrete
refine3D command line for each stage. The full particle workflow has eight
stages. Independent multi-state startup defaults to five stages so it stops
before the prob_neigh and NU-filtering stages.
Stage policy includes:
- stage-specific
nspaceandmaxits - cropped box and sampling from the low-pass plan
- stage 1 starts with
nspace=500; stages 2 through 4 usenspace=1000 - every stage gets its low-pass and crop information independently from the normal FRC/input schedule
- mode-specific staged search:
singleanddockedparticle runs useprob_neighwithprob_neigh_mode=shcin stages 1-2, middleprob, and lateprob_neighindependentparticle runs use directshcin stages 1-2,probin stages 3-5, andprob_neighin later user-enabled stagesnspace_subforprob_neigh- staged point-group policy between
pgrp_startandpgrp - staged translation limits
- staged ML regularization
- conical FSC regularization by default only while ML regularization is active
- staged fractional update with a fixed
nsampletarget whilensample/active_particles <= 0.9 - mode-specific stochastic sampling start
- early Gaussian reference filtering
- optional trailing reconstruction by stage and multivol mode
- staged NU filtering from
NU_FILTER_STAGE - staged automasking only from
AUTOMSK_STAGE - an explicitly requested PCG solvent prior from
PCG_SOLVENT_START_STAGE(stage 8, the final stage), so the NU label field the prior'd pair receives has settled over stages 6-7 without the prior
The downscaled particle cache is a 2D-only feature: abinitio3D rejects
cache=yes, and each stage uses its own crop from the low-pass/downscaling
ladder.
The effective crop and its physically equivalent pixel size are shared by
starting-volume generation, matcher reconstruction, split-stage reconstruction,
symmetry-map commands, FSC diagnostics, low-pass snapshots, and project volume
registration. This preserves box * smpd == box_crop * smpd_crop across every
particle-to-volume handoff.
Full-Sampling Switch¶
abinitio3D now applies a global sampling override when:
nsample / active_particles > 0.9
In that regime, the staged controller forces full active-particle updates for
each iteration by suppressing fractional controls (update_frac, nsample,
fillin) in emitted child refine3D commands. This also disables trailing
reconstruction for staged abinitio3D commands, and startup class-biased
sampling setup is bypassed in favor of all-active sampling.
The emitted child command line owns startit and which_iter for the current
stage. refine3D then treats maxits as the run length for that stage.
Stage-start sigma bootstrap (ini3D routes)¶
The cavg_ini and cavg_ini_ext routes enter the particle stages at a stage
whose starting reconstruction is ML-regularized (objfun=euclid) before any
refine3D iteration has estimated particle sigmas.
calc_rec applies the single sigma2 bootstrap rule (simple_sigma2_bootstrap,
doc/policies/refine3D_policy.md section 5): for a euclid starting
reconstruction it calls ensure_sigma2_for_iteration, which is a no-op when
the project owns a compatible committed state and otherwise seeds canonical
particle spectra from image power with calc_pspec. The starting reconstruction
then runs as planned, and the stage's first euclid iteration replaces the seed
with residual spectra in the next canonical transaction.
The final reconstruction at original sampling is one program call,
bootstrap_rec3D, which owns the complete sequence: the same image-power
seed, a euclid ML bootstrap map on it, one residual sigma pass
(refine=sigma) against that map, canonical commit of the residual generation,
and the shipped euclid ML reconstruction on it. Because the
program takes any project with 3D orientations, it is also the standalone
test for this stage (simple_exec prg=bootstrap_rec3D projfile=... pgrp=...
mskdiam=... nparts=... nthr=... rec_backend=...), so failures in the final
reconstruction can be reproduced in minutes rather than after a full run.
Its bootstrap map is a gridding assembly that carries the last stage's
filt_mode and automsk (the residual sigmas depend on the
regularization of the reference they are scored against, so that reference is
regularized like the last stage's matching references); the shipped map is
classical and runs on the workflow's backend with the PCG cold-solve budget
applied inside bootstrap_rec3D (2026-09-07).
Whether the final reconstruction refreshes its sigmas at native sampling is
decided by the registration-box rule: a registration box different from the
native box forces refresh (2026-09-07). Abinitio3D drops any state
registration inherited with its input project before the first stage, so
every run seeds and owns its sigmas in its own directory.
4. Low-Pass and Cropping¶
lpinfo(istage)%lp controls staged search/reference scheduling. Stage limits
are derived from class FRCs by default, with lpstart/lpstop overrides and a
force_lp_range=yes path that uses the requested range directly.
Stage 1 of abinitio3D never runs with a low-pass limit finer than 20 A.
lpstages and lpstages_fast apply this floor before generating the remaining
low-pass and crop ladder, preserving gradual frequency marching. Explicit
external-volume schedules use lpstages_setlims and are unchanged.
The controller passes an lpstop ceiling to each staged refine3D child
alongside the effective planned matching limit. In the non-NU stages the
ceiling is the stage's matching limit, so matching never exceeds the
printed stage limit.
Stage-boundary FSC=0.5 promotion (2026-09-06, particle route only): past
stage 2, the planned lpinfo(istage)%lp is replaced by the project's FSC=0.5
resolution of the best resolved populated state (the per-particle res05
field written by the reconstruction) when that is finer, bounded by the
ladder cap (LPSTOP_BOUNDS(1), 4.5 A, or the coarser explicit lpstop; the
class-average route keeps its final limit). The resolution fields are
cleared when the particles are reset from ptcl2D, so only resolutions
measured in the run itself promote. The promoted value
is the printed stage limit and, in non-NU stages, the lpstop ceiling. The
decision is taken once per stage boundary and never per iteration:
abinitio3D runs without gold-standard halves, so an FSC crossing is
trustworthy only where it lies beyond the band that produced the alignments.
The crossing at the end of the previous stage lies beyond that stage's band
and is clean; a per-iteration rule would ratchet on noise fitted inside the
newly opened band. An explicit command-line lp (with ml_reg=yes) disables
the promotion for that stage. Multi-state follows the standard single-band
rule: the best resolved populated state sets the band for all states.
(Streptavidin log set 2026-09-06: the plan sat at 8.6/7.6 A in stages 4/5
while the half maps agreed to 4.3 A at FSC=0.5.)
In the NU stages there is no ceiling (July 2026 policy, restored
2026-09-08): matching runs at the finest member of the NU bank, the finest
rung of the static ladder cut at fsc/1.5, or the ML-regularized pair once
its FSC=0.143 is at or beyond the ladder's 4 A rung (2026-09-19, the same
rule as every other workflow; doc/policies/NU/nonuniform_filtering_policy.md
sections 8 and 12). The band therefore leads the FSC by 1.25-1.5x, which is
what carries the climb: with the band at the previous FSC=0.143 crossing the
alignment was starved of the shells where the merged reference still holds
signal and PfCRT converged in 0/4 and 1/9 restarts (2026-09-16/18), with a
1.5x lead in 10/10 (2026-09-16), and a ceiling only pins the map. Two
ceilings were tried and
retired: the class-FRC final limit lpfinal (6.0 A on PfCRT, whose 2D
classes stop at 6 A while the 3D map reaches 4 A) pinned the NU stages at
5.97 A on 2026-09-07; the ladder's hard bound of 4.5 A pinned the 2026-09-08
run at exactly 4.50 A for 30 iterations while the handoff asked for 4.14 A
(stage 7) and 3.98 A (stage 8), the values the July runs matched at on their
way to 4.1-4.3 A with side chains. Only an explicit command-line lpstop
remains a ceiling in NU stages.
Early stopping applies in every stage (the NU-stage minits=maxits of
2026-09-07 was retired on 2026-09-08). The early stops that motivated it
happened under a matching-band ceiling: pinned at 5.97 A the sampler
converged on a coarse solution within a few iterations while the FSC could
still improve. Without a ceiling the overlap tracks the map: the 2026-09-08
PfCRT run sat at 0.11-0.25 through stages 6-7 and passed 0.9 in stage 8 only
after the FSC had been flat at the band for ten iterations, where the forced
remainder of the budget changed nothing; on streptavidin the forced budget
cost 700 s of a 2000 s run.
An explicitly supplied, coarser command-line lpstop is folded into the
ladder and is also retained as an independent ceiling when the staged child
command is rebuilt; the effective ceiling is the coarser of the two limits.
The workflow logs the acknowledged command-line ceiling before entering the
stage loop. (Record 2026-09-06: capping the NU stages at the per-stage value
stalled every NU stage on streptavidin and msp1 on the pcg path; see
doc/implementation_notes/pcg_priors_history.md, dev item 2.)
Saved _stageNN_lp.mrc diagnostic volumes are filtered to the current state
FSC resolution when an FSC exists. The planned stage LP is only a fallback.
5. Initialization Modes¶
abinitio3D supports these model-start routes:
- random starting volumes
- user-supplied input volumes
- initialization from
abinitio3D_cavgsinside the workflow throughcavg_ini=yes - externally supplied class-average initialization through
cavg_ini_ext=yes
Volume input is allowed for single, independent, and docked
multi-volume modes. It cannot be combined with class-average initialization or
partitioned startup. User-supplied input volumes are assumed to be aligned to
the target symmetry axis, so pgrp_start is set to pgrp and the particle
workflow does not run symmetry-axis search on them.
Input volumes are not assumed to share the particles' alignment provenance. Before the Euclidean stage ladder, this route calls the shared fixed-reference CC pose-initialization service. It first runs the normal native-grid particle-image sigma2 bootstrap, then performs one pass over at most 100,000 active particles at a common 15 A limit. In selected particle records, the pass replaces active matching shells with reference-conditioned residual sigma2, consolidates those residuals for the first Euclidean stage, and reconstructs a data-derived checkpoint. Particles outside the capped cohort retain their image-bootstrap partition records until later refinement updates them. The external maps remain fixed during the CC pass and are not blended into the checkpoint.
Normal particle-based starts treat abinitio3D as the producer of new
ptcl3D orientation and multi-state information. The workflow resets ptcl3D
sampling, deletes previous 3D alignment while preserving shifts, transfers 2D
shifts from ptcl2D, and initializes ptcl3D%state only from the 2D
selection state: selected particles become state 1 and unselected particles
become state 0. Fresh independent runs then randomize active particles into
the requested 3D states with balanced uniform labels.
Class-average initialization and external class-average initialization both
skip the random-volume start. With cavg_ini=yes, the nested
abinitio3D_cavgs run owns any pgrp_start to pgrp symmetry-axis search.
When control returns to the particle workflow, pgrp_start is set to pgrp so
the axis search is not repeated. cavg_ini_ext=yes is the explicit exception to
the fresh-start rule: it requires prior ptcl3D alignment, preserves the
external orientation/state information needed by that route, assumes the input
orientations are already symmetrized, and starts after the symmetry-search
stage. If nstates > 1, every requested prior ptcl3D state must exist and be
populated.
6. Multi-Volume Policy¶
Supported multivol_mode values are:
singleindependentdocked
single requires nstates=1. independent and docked require more than
one state.
When the user gives nstates > 1 and no multivol_mode, the commander
defaults to independent.
In independent mode, the workflow preserves the staged point-group policy
between pgrp_start and pgrp. When pgrp_start != pgrp, the symmetry-search
stage searches the symmetry axis independently for each state, matching the
state-wise behavior used by direct abinitio3D_cavgs runs. This applies to
fresh particle starts only; cavg_ini=yes, cavg_ini_ext=yes, and user-supplied
input volumes are already in the target symmetry frame before the parent
particle workflow resumes. This mode is intended for severe heterogeneity where
early inspection is more valuable than committing to a longer refinement
immediately. Its particle stages 1 and 2 use direct refine=shc rather than
the probabilistic-neighborhood startup used by single and docked; stages
3-5 use refine=prob. Direct abinitio3D_cavgs initialization retains its
own class-average search schedule. Unless the user overrides them, the
commander sets nstages=5 and lpstop=6.0 A. Stage 5 remains in prob; it
does not enter prob_neigh, static NU filtering,
independent-mode trailing reconstruction, or staged automasking. After stage 5,
the workflow still runs the final original-sampling reconstruction so the run
produces inspectable rec_final_stateNN volumes. To improve particle coverage
before that early exit, independent mode starts stochastic balanced sampling at
stage 4: the child refine3D stages switch to greedy_sampling=no with
frac_best=1.0 from stage 4 onward. This samples each class-balanced quota from
the full class rather than from a top-ranked fraction of that class. The outer
particle target remains the fixed nsample-derived update fraction while
nsample/active_particles <= 0.9; above that threshold the workflow runs full
active-particle updates each stage.
In docked mode, the controller starts as one state, runs stages 1-5 as a
single-state ab initio model, then expands to the requested number of states at
the docked split stage. The default split stage is 6, meaning the split occurs
after stage 5. Docked schedules must reach the configured split stage; an
ordinary nstages early stop before split_stage is rejected rather than
silently producing a single-state result.
The docked split starts a new multi-state update epoch:
- ordinary pre-split stages use the one-state target
min(UPDATE_FRAC_MAX, nsample / active_particles) - the stage immediately before the split increases the one-state target to
min(UPDATE_FRAC_MAX, nstates * nsample / active_particles)to broaden pose coverage before relabeling - immediately before the pre-split cohort pass, clear
ptcl3D%sampledandptcl3D%updatecnt - run one class-balanced
refine=probassignment pass withfrac_best=1.0,fillin=no,trail_rec=no,volrec=no, andsticky_class_sampling=no; this pass defines a persistent cohort throughsampled > 0 - in the fractional regime, use a nominal cohort target of
round(2.5 * nstates * nsample), subject toNSAMPLE_HET_SPLIT_CAP = 100000, the active population, and the 90-percentUPDATE_FRAC_MAXlimit; the cohort target is never allowed below the effective post-split update target - in the global full-sampling regime, make the auxiliary pass target all active particles
- restore
nstatesto the requested value and recompute the fixed post-split targetmin(UPDATE_FRAC_MAX, nstates * nsample / active_particles) - randomize active particles into balanced uniform state labels without clearing the cohort metadata
- require each randomized split state to exceed the probabilistic-table minimum population threshold
- select one post-split-sized, class-balanced subset from the persistent cohort
- reconstruct state-specific split volumes and halfmaps from exactly that latest sampled subset without trailing volume averaging
The cohort pass prepares one-state pose coverage and establishes the only
ordinary post-split sampling pool. Because its reset happens before the pass,
particles outside the cohort retain sampled == 0 and updatecnt == 0.
After that pass succeeds and the requested state count is restored,
set_cline_refine3D obtains the cohort state from
abinitio_docked_cohort_active and emits the explicit internal child flag
sticky_class_sampling=yes. The flag applies only to the class-balanced
sample4update_class path, where it maps to sampled_only; particles outside
the cohort are ineligible while cohort members are rotated by increasing
updatecnt. It does not alter unbalanced or full particle sampling. The matcher
does not infer stickiness from nstates or multivol_mode. The flag remains
off in the full-sampling regime.
sampled == max(sampled) continues to identify the exact current update, while
sampled > 0 identifies the persistent cohort.
Checkpoint construction is isolated in
simple_abinitio3D_split_checkpoint. Once the state-specific split maps and
metadata exist, abinitio3D does not run another private post-split loop. It
hands the checkpoint to refine3D_states with pose_policy=local, the fixed
post-split update fraction, sticky cohort eligibility in the fractional
regime, and the remaining iteration/frequency range. The split state maps
travel through the project out segment, since refine3D_states rejects
vol1..volN inputs. refine3D_states then owns all post-split matching,
coverage enforcement, trailing policy, and final native-sampling
reconstruction. Local policy maps to
refine=prob_neigh,prob_neigh_mode=geom, so every state is evaluated in the
same neighborhood around the particle's current projection direction.
When nsample/active_particles > 0.9, the global full-sampling switch remains
authoritative throughout docked refinement: emitted stage commands omit
update_frac, nsample, and fillin, and trailing is disabled, including at
the split stage.
input_oris_start and input_oris_fixed are no longer supported by
abinitio3D. Prior-orientation multi-state refinement belongs in the explicit
multi-state refinement workflows, not in particle-based ab initio startup.
7. Symmetry¶
pgrp_start and pgrp must be compatible symmetry groups. If the workflow
raises symmetry, the start group must be a subgroup of the target group. If it
lowers symmetry, the target must be a subgroup of the start group and symmetry
randomization may be applied.
At the symmetry-search stage, symmetry-axis search is state-local for multi-state runs. Each active state determines its own axis from its current map and applies that transform only to orientations assigned to that state.
After symmetry handling, the selected maps are injected back into the staged
refine3D command line and reference-section files are invalidated.
8. Filtering and Automasking¶
Staged abinitio3D uses the one generated-ladder nonuniform competition
when filt_mode is NU-enabled (2026-09-16; the same competition as
refine3D_auto, the nu_refine shell walk is retired). NU always computes its objective over the full spherical
mskdiam support. With the default automsk=no, no envelope constrains the
static local-resolution field. automsk=yes fixes the filter field outside the
density envelope and masks _nu_filt references with it. automsk=nu uses a
valid current NU-evidence envelope for those roles and density as fallback;
early FSC/PCG consumers use the previous iteration's evidence artifact.
Because abinitio3D currently keeps gold-standard refinement disabled,
GOLD_STD_STAGE is off and envfsc defaults to no. automsk=yes implies
envfsc=yes (policy 2026-09-09), so the two engage together at
AUTOMSK_STAGE/ENVFSC_STAGE; the controller forces envfsc=no before
ENVFSC_STAGE, forces it off for the cavgs route, and forwards the requested
or implied value at and after that boundary. With envfsc=yes, volume
assembly generates a density envelope from the current merged half maps for
phase-randomized FSC correction and cFAR on gridding, and the PCG backend uses
the same envelope as the support of both solves, using envmsklp as its
smoothing low-pass. The controller forwards envmsklp to staged and final
reconstruction commands; its default is ENVMSKLP_DEFAULT (20 A). The
density-mask dilation is no longer injected as a layer count: every program
applies the shared physical minimum ENVMSKWIDTH_A_MIN (7.5 A) at the
sampling the envelope is built at, so the envelope keeps the same physical
width across the autoscaled stages. The controller keeps a scheduled
lp on the refine3D command line. From NU_FILTER_STAGE, staged
nonuniform is promoted to nonuniform_lpset, so the NU frontier can feed an
explicit merged-reference LP-set matching run, bounded at the high-resolution
end by the current lpstages limit.
Phase randomization corrects mask-induced correlation; it does not make the non-independent ab initio half maps a gold-standard validation pair. FSC-derived resolution metadata in this workflow must be interpreted accordingly.
Automasking is opt-in at the public interface and defaults to no. Even when
enabled, staged NU-evidence envelope generation starts only once both
AUTOMSK_STAGE and the NU filtering stage are active.
Selecting automsk=nu therefore requires an NU filt_mode; automsk=tight
is rejected. Once staged automasking is active, yes uses density and nu
uses current evidence for assembled references plus the lagged evidence
artifact for early consumers, with density fallback. There is no separate
reference-mask control, so early stages remain spherical.
The default multivol_mode=independent stage limit stops at stage 5, before
this NU-filtering policy is activated. Users who override nstages past that
point re-enter the staged NU policy described here.
Detailed NU behavior belongs to nonuniform_filtering_policy.md; detailed automasking behavior belongs to automasking_policy.md.
9. Final Reconstruction¶
For non-docked schedules, abinitio3D runs a fresh original-sampling
reconstruction from selected particles for full schedules and for
multivol_mode=independent schedules. Other explicit early-stop schedules skip
this final all-particle reconstruction.
For docked mode, refine3D_states owns completion. It verifies that every
active particle has updatecnt > 0 in the multi-state epoch before producing
the final native-sampling maps. abinitio3D does not repeat that reconstruction
after the nested workflow returns.
The final reconstruction inherits only the scientific reconstruction policy it
needs. It preserves the parent envfsc request so the original-sampling half
maps use the same radial FSC/cFAR masking policy, but it does not inherit staged
search, matching-reference automasking, or reference-filter controls such as
refine, lp, automsk, or gauref. There is no backend exception: the
final reconstruction runs with filt_mode=none on both backends.
If the final stage used objfun=euclid and ml_reg=yes, final reconstruction
uses compatible grouped sigma estimates when they are local to the workflow.
If needed, it bootstraps sigmas locally before producing the regularized map.
For the final ML-regularized stage, final reconstruction preserves the
conical_fsc policy selected by the parent workflow.
On the PCG backend, a final ML-regularized stage uses the ordinary P_tau
replay in bootstrap_rec3D; the Q_NU prior, its calibration pass and its
controllers were removed on 2026-09-06.
When pcg_solvent=yes, the staged controller withholds the soft solvent prior
from stages 3-7 and enables it only in stage 8. A workflow that stops before
stage 8 does not use the prior.
The final reconstruction does not apply fractional-update sampling or trailing average blending. Final-map postprocessing is classical, even when staged refinement used NU-filtered references.
10. Outputs¶
Stage snapshots are written by simple_abinitio_utils.f90 with _stageNN
suffixes and companion _lp diagnostics.
Final outputs use the rec_final_stateNN naming convention and include raw and
low-pass diagnostic volumes. Final low-pass diagnostic maps use the state FSC
resolution when available, otherwise the supplied final fallback LP.
Every completed run also writes abinitio3D_manifest.txt last, atomically and
never fatally, and registers it in projinfo by bare name with its run
identifier (simple_abinitio3D_manifest): the project identity, the particle
source, the solution, the ladder as planned and emitted, the entry inputs and
the digests of the state maps, halves, FSCs and the committed sigma2 state. A
failed manifest write warns and leaves the run as it is.
11. abinitio3D_addon¶
abinitio3D_addon projfile=<current> projfile_frozen=<abinitio3D or abinitio3D_addon run project>
extends a completed solution with the particles the current project adds (the
cohort); the frozen particles contribute their accumulators unsearched. Its
policy is abinitio3D_addon_policy.md; the design
history is in
doc/implementation_notes/completed/abinitio3D_addon_mode_proposal.md. In
short:
- Only an
abinitio3Dorabinitio3D_addonoutput whose manifest validates against its project is accepted, so add-ons chain; the solution's settings are replayed from the manifest and refused on the command line, which carries only the 11 add-on inputs. - Both projects must share one particle index space: row
inames the same image in both wherever both hold a rowi, and they may differ in size. Rows the current project appends past the frozen project's last row (a stream's later particle sets) join the cohort; appended rows from a stack the frozen project holds are refused. Every frozen particle must lie within the current project's rows and be active there. The cohort needs at least 5 particles per inherited state (a warning below 5 % of the frozen population). - The execution-environment keys pass through, the stream's persistent-worker
keys (
worker_server,worker_priority) included. - The run enters at stage 3 of the base run's planned ladder with
center=noandoverlap0.95 by default; the stage limits follow the rule above (FSC=0.5 promotion from the union FSC, the NU handoff in the NU stages), and each stage boundary logs them next to the base run's. - The run ends with a validation report against the base solution
(
abinitio3D_addon_report.txtin the run directory, and the log): per state the FSC verdict (improved or regressed beyond one FSC=0.143 shell, else unchanged), the union map's correlation with the base map up to the base resolution (docked below 0.9), the cohort-only map against the base map withaddon_diag=yes, and both runs' stage limits. A regression is warned about; the result is published all the same. - The frozen rows are restored before the final reconstruction and the
cohort-only sigma2 registration is dropped, so the final reconstruction
bootstraps the union's sigma2 state over every particle exactly as
bootstrap_rec3Ddoes, and ships the union map on it. mkdir=yesby default;mkdir=nois for NICE and the stream. When the run has completed, the finished project (every particle posed, the union's sigma2 state) replaces the current project file; the frozen project is never written. The add-on's own manifest is eligible: the output is the frozen input of the next add-on.