Skip to contents

This 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: auto

PDF 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;Frichot2014sNMF

Completeness 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   TRUE

Every 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.