Publication narrative and figure gallery
Source:vignettes/publication-gallery.Rmd
publication-gallery.RmdThis gallery is generated from deterministic synthetic canonical-result records. It demonstrates publication structure and interpretation boundaries; it is not production biological evidence and does not replace approval of the canonical real-data baseline.
Publication-ready pipeline figures
Pipeline figures use the accessibility-first profile by
default. The profile supplies deterministic colour, fill, line-type, and
point-shape palettes to the actual QC, diversity, ordination, DAPC,
ancestry, differentiation, and isolation-by-distance renderers.
output:
figure_formats: [pdf, png, svg]
dpi: 600
figure_style: accessibility-first
base_font_size: 11
label_samples: autoPDF is the preferred editable vector output for manuscripts, SVG is
useful for vector post-processing, and the 600-DPI PNG is suitable for
journal submission systems that require raster files. Use
grayscale-safe when the target journal prints figures
without colour. Increase base_font_size before rendering a
figure that will be reduced substantially during page layout.
Maintained nine-family fixture
results <- list(
pca = structure(list(variance = c(0.34, 0.19), n_samples = 8L, n_snps = 120L), class = "PopgenVCFPCAResult"),
ibs = structure(list(method = "SNPRelate IBS"), class = "PopgenVCFIBSResult"),
tree = structure(list(), class = "PopgenVCFTreeResult"),
diversity = structure(list(), class = "PopgenVCFDiversityResult"),
fst = structure(list(method = "Weir and Cockerham 1984"), class = "PopgenVCFFSTResult"),
amova = structure(list(), class = "PopgenVCFAMOVAResult"),
dapc = structure(list(parameters = list(n_pca = 12L, n_da = 2L)), class = "PopgenVCFDAPCResult"),
ibd = structure(list(), class = "PopgenVCFIBDResult"),
ancestry = structure(list(backend = "ADMIXTURE", selected_k = 3L), class = "PopgenVCFAncestryResult")
)
project <- new_popgenvcf_project(
"Publication gallery fixture",
results = results,
project_id = "00000000-0000-0000-0000-000000000930"
)
bundle <- new_publication_bundle(project)
inventory <- bundle$narrative_inventory
inventory[, c("kind", "state", "citation_keys"), with = FALSE]
#> kind state
#> <char> <char>
#> 1: pca present
#> 2: ibs present
#> 3: tree present
#> 4: diversity present
#> 5: fst present
#> 6: amova present
#> 7: dapc present
#> 8: ibd present
#> 9: ancestry present
#> citation_keys
#> <char>
#> 1: Zheng2012SNPRelate
#> 2: Zheng2012SNPRelate
#> 3: Saitou1987NJ;Paradis2004ape
#> 4: Nei1978Heterozygosity
#> 5: Weir1984FST
#> 6: Excoffier1992AMOVA
#> 7: Jombart2010DAPC
#> 8: Mantel1967
#> 9: Alexander2009ADMIXTURE;Raj2014fastStructure;Frichot2014sNMFCompleteness evidence
bundle$narrative_completeness
#> required_families present_families fallback_families complete_families
#> <int> <int> <int> <int>
#> 1: 9 9 0 9
#> diagnostic_only passed
#> <int> <lgcl>
#> 1: 0 TRUEEvery canonical family has one narrative owner, a methods statement,
a caption/legend, citation keys, and a supplementary summary. The same
table records skipped, unavailable,
incomplete, failed, and
diagnostic-only states without inventing results.
Interpretation boundaries
| Family | Gallery interpretation boundary |
|---|---|
| PCA | Ordination axes summarize genotype variation; they do not prove discrete populations or causality. |
| IBS/MDS | Sample similarity is not population-level FST. |
| Neighbour joining | Branch lengths follow the recorded distance and are not a time-calibrated phylogeny; node-label percentages are locus-resampling bootstrap support for that specific split in that specific dataset, not a universal confidence statement. |
| Diversity | Estimates depend on filtering, sample size, missingness, and population assignment. |
| FST | Population differentiation is estimator- and sampling-dependent. |
| AMOVA | Variance partitioning follows the supplied hierarchy and distance definition. |
| DAPC | Discrimination among supplied groups is not model-based ancestry. |
| IBD | Geographic association does not by itself identify a causal process. |
| Ancestry | Cluster labels are arbitrary and K selection requires replicate and fit evidence. |
Transparent fallback states
fallback_project <- new_popgenvcf_project(
"Publication fallback fixture",
modules = list(
pca = list(status = "skipped", reason = "No variants passed QC."),
ancestry = list(status = "diagnostic-only", reason = "Exploratory backend comparison.")
),
results = list(
ancestry = structure(
list(backend = "ADMIXTURE", selected_k = 2L, status = "diagnostic-only"),
class = "PopgenVCFAncestryResult"
)
),
project_id = "00000000-0000-0000-0000-000000000931"
)
fallback_bundle <- new_publication_bundle(fallback_project)
fallback_bundle$narrative_inventory[, c("kind", "state", "reason"), with = FALSE]
#> kind state
#> <char> <char>
#> 1: pca skipped
#> 2: ibs unavailable
#> 3: tree unavailable
#> 4: diversity unavailable
#> 5: fst unavailable
#> 6: amova unavailable
#> 7: dapc unavailable
#> 8: ibd unavailable
#> 9: ancestry diagnostic-only
#> reason
#> <char>
#> 1: No variants passed QC.
#> 2: No canonical result was available for this analysis family.
#> 3: No canonical result was available for this analysis family.
#> 4: No canonical result was available for this analysis family.
#> 5: No canonical result was available for this analysis family.
#> 6: No canonical result was available for this analysis family.
#> 7: No canonical result was available for this analysis family.
#> 8: No canonical result was available for this analysis family.
#> 9: Exploratory backend comparison.Publication companion outputs
generate_publication_bundle() writes the following
maintained evidence in addition to methods, captions, bibliography,
artifact lineage, and checksums:
-
manuscript/narrative-inventory.tsv; -
manuscript/narrative-completeness.tsv; -
supplementary/analysis-summaries.tsv; -
provenance/publication.json.
These files allow reviewers and release automation to distinguish complete scientific narratives from transparent fallback states.