ReconBench: trace parsing and scoring outputs
raw trace → TSV / alignments / trees → scores. check what survives a failed run, plus leaf names and burn-in at each step. TreeStat errors belong here too, not buried somewhere in the terminal.
artifact chain: raw Historian/BAli-Phy output → trace_parser.py → TSV parameter trace, posterior alignments and Nexus posterior trees → TreeStat2 → clean_treestat.py for additional tree-trace quantities.
recorded diagnostics: CCD1 RF distance, CCD1 information content, topology identifiers, unique-topology fraction, Colless imbalance and total branch length. ESS is computed for selected scalar traces; a high scalar ESS alone does not establish that alignments and tree topologies mixed adequately.
posterior summary choice: the report uses decoded alignment and CCD1-MAP tree summaries for both tools. Its example pipeline includes:

model.cpp: fixed precision for logLikelihood output.

recon.cpp: MCMC trace fields and headers.
cut-range C1.P1.fastas --skip=200 | \
alignment-chop-internal --tree treetraceCCD1-MAP.tree | \
alignment-max > C1-max.fasta
accuracy axes: SP and TC for alignments; RF and branch-length-aware RFL for trees. Record burn-in, thinning and summary construction with each metric.
review questions: does a partial trace from a failed run survive into scoring, and is it explicitly marked? Are leaf names/order and internal-node handling consistent? The report's quantitative-results section is blank in extracted text; no numerical winner can be reconstructed from the method prose alone.

sampler.cpp: logging parameters after each sampling step.

Historian: gamma shape versus rf distance.

Historian: indel rate versus tc.

Historian: gamma shape versus rfl distance.

Historian: alignment length versus rf distance.

Historian: alignment length versus rfl distance.

Historian: indel rate versus sp score.

