This is the fastest way to see real popgenVCF output: no Docker, no download, no configuration file. The package ships a small but real dataset – 160 individuals from 8 populations in the 1000 Genomes Project’s chromosome 22, X, and Y callsets – and every analysis runs on it exactly as it would on your own VCF.
Prefer to look before running anything? Results and Interpretation shows real figures from this exact dataset, and the complete example PDF report is committed in the repository.
1. Locate the bundled dataset
library(popgenVCF)
paths <- quickstart_dataset_paths()
pathsSee
system.file("extdata", "quickstart", "README.md", package = "popgenVCF")
for exactly which real samples and populations are included and why (it
deliberately contains a known real duplicate/MZ-twin pair, so the
kinship analysis below has genuine, verifiable signal – and, as a bonus,
a cautionary real example of why a single flagged pair needs
corroborating evidence, not blind acceptance; see “What to look for”
below).
2. Run the pipeline
cfg <- default_config()
cfg$input$vcf <- paths$vcf
cfg$input$metadata <- paths$metadata
cfg$output$directory <- tempfile("popgenvcf-quickstart-")
# cfg$compute$threads/memory_mb are already auto-detected with headroom
# reserved (one thread spared, memory capped at 85% of what's available) --
# no manual override needed.
analysis <- run_pipeline(cfg)On a modern multi-core machine this takes a few minutes – most of the
time is DAPC’s cross-validation across the default K = 2:10
range, run in full because it is exactly what a real analysis does.
Every module runs with its documented defaults: QC and LD pruning, PCA,
IBS, kinship, sex check, runs of homozygosity (with a length-class
breakdown), FST (with its Nm gene-flow estimate, Jost’s D, and
population-specific FST/beta), genome scans, linkage disequilibrium
decay, LD-based effective population size, population genetic distance
and tree, a population assignment test, diversity (including allelic
richness and effective number of alleles), a site frequency spectrum
with a mode-shift bottleneck screen, DAPC, AMOVA, and a
neighbour-joining tree of individuals. Mantel/isolation-by-distance and
the spatial autocorrelation correlogram run too: the bundled metadata
includes real, documented population-level collection-site coordinates
(see the dataset’s README.md for the exact source and
caveats), so both analyses have real geographic distances to work with
rather than being skipped.
3. Look at the output
list.files(cfg$output$directory)
browseURL(file.path(cfg$output$directory, "report", "population_genomics_report.html"))report/population_genomics_report.pdf is the compact,
portable counterpart. Both are self-contained – copy either one without
the rest of the result directory. tables/ and
figures/ hold every individual result;
analysis_results.rds is the complete serialized object for
further work in R
(get_analysis_result(analysis, "kinship"), and so on).
4. What to look for
-
Kinship
(
tables/36_close_relatives.tsv,figures/21_kinship_heatmap): both seeded high-kinship pairs show up classifiedduplicate/MZ twinwith kinship near 0.5, but only one of them actually is a duplicate.NA19331/NA19334(both LWK) are confirmed consistent: real, matching male chromosome X and Y genotypes, no contradicting evidence.HG03873/HG03998(labelled as two different populations, ITU and STU) is the more interesting case: sex check below shows their real chromosome X and Y genotypes are genuinely different sexes, which rules out MZ twins/duplicate despite the high autosomal kinship – a real example of why a single flagged pair needs corroborating evidence, not blind acceptance. -
Sex check (
tables/42_sex_check.tsv,figures/27_sex_check_F_by_sample): genetic sex inferred from chromosome X heterozygosity and chromosome Y call rate together, compared against the bundledsexmetadata column. When the two signals confidently disagree the combined call isdiscordant, not silently resolved – this is what actually reveals theHG03873/HG03998kinship caveat above. -
PCA (
figures/07_PCA_PC1_PC2): the 8 populations should separate broadly by continental origin.figures/07b_PCA_PC1_PC2_by_sexis the same PCA fit recoloured by the bundledsexmetadata column instead – one static panel per metadata column that qualifies (enough samples per value; see the interpretation guide for the exact rule). Sex should show no separation here, which is itself the expected, useful result: population structure, not sex, drives this PCA. -
Runs of homozygosity
(
tables/38_ROH_sample_summary.tsv):FROHis scaled to this run’s ~1Mb analyzed footprint, not the whole genome – see the interpretation guide before comparing it to anything else. The same table also splitsFROHby run-length class (short/intermediate/long, Ceballos et al. 2018); at this footprint size no run can reach the “long” class, a mechanical consequence of the ~1Mb region rather than a biological finding – see the interpretation guide. -
Mantel/isolation by distance
(
tables/25_Mantel_IBD_summary.tsv,figures/12_isolation_by_distance): a real, statistically significant positive signal (Mantel r = 0.313, p = 0.001) – genetic distance increases with geographic distance across these 8 continentally diverse populations. A partial Mantel test controlling for population identity (r = 0.163, p = 0.001) shows the signal weakens but survives once population membership is accounted for – see the interpretation guide for what this means. -
Spatial autocorrelation
(
tables/50_spatial_autocorrelation.tsv,figures/50_spatial_autocorrelation): a distance-class correlogram complementing the Mantel test above. Read with real caution here: the bundled coordinates are population-level representative points, not per-individual GPS, so the shortest distance classes are empty – see the interpretation guide for why. -
LD-based effective population size
(
tables/45_Ne_LD.tsv): needs markers on at least two chromosomes to work at all, and this dataset’s retained autosomal marker set is chr22-only by design, so every population correctly reports an honest “insufficient data” skip here – see the interpretation guide for what a real multi-chromosome VCF produces instead. -
Population genetic distance and tree
(
tables/46_population_genetic_distance.tsv,trees/population_Nei_neighbor_joining.nwk): Nei’s standard genetic distance between populations, unlike the sample-level kinship/tree results above.LWK/YRI(both African) are the closest pair; the largest distances are all African-vs-non-African pairs – real continental population structure. -
Population assignment test
(
tables/47_population_assignment.tsv,figures/47_population_assignment): 66% of samples correctly self-assign to their recorded population from genotype alone; most of the rest areITU/STUorLWK/YRIcross-assignments – exactly the same two closely related population pairs the FST/Nm and Nei’s-distance results above already flagged, a real cross-method confirmation rather than a method weakness. -
Site frequency spectrum and bottleneck screen
(
tables/49_bottleneck_mode_shift.tsv,figures/48_site_frequency_spectrum): all 8 populations show a mode-shifted spectrum with this run’s defaultqc.maf = 0.05filter – but this is largely a filtering artifact, not a real signal; see the interpretation guide for the unfiltered comparison that shows only 3 of 8 are genuinely mode-shifted.
5. Next steps
Once the shape of the output is familiar, move to your own data with the Getting Started guide, which covers Docker/Apptainer execution, metadata preparation, and configuration in full.