Last updated: 2026-03-26
Checks: 7 0
Knit directory: ~/Documents/GitHub/PAINT/
This reproducible R Markdown analysis was created with workflowr (version 1.7.2). The Checks tab describes the reproducibility checks that were applied when the results were created. The Past versions tab lists the development history.
Great! Since the R Markdown file has been committed to the Git repository, you know the exact version of the code that produced these results.
Great job! The global environment was empty. Objects defined in the global environment can affect the analysis in your R Markdown file in unknown ways. For reproduciblity it’s best to always run the code in an empty environment.
The command set.seed(20251106) was run prior to running
the code in the R Markdown file. Setting a seed ensures that any results
that rely on randomness, e.g. subsampling or permutations, are
reproducible.
Great job! Recording the operating system, R version, and package versions is critical for reproducibility.
Nice! There were no cached chunks for this analysis, so you can be confident that you successfully produced the results during this run.
Great job! Using relative paths to the files within your workflowr project makes it easier to run your code on other machines.
Great! You are using Git for version control. Tracking code development and connecting the code version to the results is critical for reproducibility.
The results in this page were generated with repository version a154fb2. See the Past versions tab to see a history of the changes made to the R Markdown and HTML files.
Note that you need to be careful to ensure that all relevant files for
the analysis have been committed to Git prior to generating the results
(you can use wflow_publish or
wflow_git_commit). workflowr only checks the R Markdown
file, but you know if there are other scripts or data files that it
depends on. Below is the status of the Git repository when the results
were generated:
Ignored files:
Ignored: .RData
Ignored: .Rhistory
Ignored: .Rproj.user/
Ignored: analysis/.Rhistory
Ignored: analysis/.Rproj.user/
Ignored: data/modern_metadata.csv
Ignored: data/neo_uvi.csv
Ignored: data/pigmentation_snps.csv
Ignored: data/simons_metadata.csv
Ignored: data/simons_whole.csv
Note that any generated files, e.g. HTML, png, CSS, etc., are not included in this status report because it is ok for generated content to have uncommitted changes.
These are the previous versions of the repository in which changes were
made to the R Markdown (analysis/introduction.Rmd) and HTML
(docs/introduction.html) files. If you’ve configured a
remote Git repository (see ?wflow_git_remote), click on the
hyperlinks in the table below to view the files as they were in that
past version.
| File | Version | Author | Date | Message |
|---|---|---|---|---|
| Rmd | a154fb2 | Lily Heald | 2026-03-26 | wflow_publish("analysis/introduction.Rmd") |
| html | 9264fbc | Lily Heald | 2026-03-26 | Build site. |
| Rmd | 1d15761 | Lily Heald | 2026-03-26 | wflow_publish("analysis/introduction.Rmd") |
| html | ce1571b | Lily Heald | 2026-03-26 | Build site. |
| html | a008c4f | Lily Heald | 2026-03-26 | Build site. |
| Rmd | 05c4750 | Lily Heald | 2026-03-26 | stack snp distribution |
| html | 05c4750 | Lily Heald | 2026-03-26 | stack snp distribution |
| Rmd | a476f32 | Lily Heald | 2026-02-10 | Update introduction |
| html | a476f32 | Lily Heald | 2026-02-10 | Update introduction |
| html | 189b205 | Lily Heald | 2026-02-10 | Update introduction |
| Rmd | 6165154 | Lily Heald | 2026-02-10 | Update introduction |
| Rmd | c555bc3 | Lily Heald | 2026-02-10 | Clean bar chart |
| html | c555bc3 | Lily Heald | 2026-02-10 | Clean bar chart |
| html | 5cd4031 | Lily Heald | 2026-02-09 | Update introduction |
| Rmd | 4ea9339 | Lily Heald | 2026-02-09 | Update introduction |
| Rmd | 441e6fe | Lily Heald | 2026-02-09 | echo false for clean workflowr |
| html | 441e6fe | Lily Heald | 2026-02-09 | echo false for clean workflowr |
| Rmd | 790813f | Lily Heald | 2026-02-09 | add distribution of simons genomes |
| html | 790813f | Lily Heald | 2026-02-09 | add distribution of simons genomes |
| Rmd | 4a52a41 | Lily Heald | 2026-02-04 | Add distribution bar chart |
| html | 4a52a41 | Lily Heald | 2026-02-04 | Add distribution bar chart |
| Rmd | 289d9ed | Lily Heald | 2026-01-30 | add den3 |
| html | 289d9ed | Lily Heald | 2026-01-30 | add den3 |
| Rmd | fe99e78 | Lily Heald | 2026-01-14 | add Denisova 25 |
| html | fe99e78 | Lily Heald | 2026-01-14 | add Denisova 25 |
| Rmd | 2cac6c9 | Lily Heald | 2026-01-14 | add vindija 87 |
| html | 2cac6c9 | Lily Heald | 2026-01-14 | add vindija 87 |
| Rmd | c6f38f2 | Lily Heald | 2026-01-14 | Add Chag8 |
| html | c6f38f2 | Lily Heald | 2026-01-14 | Add Chag8 |
| Rmd | 7bb18d4 | Lily Heald | 2025-11-20 | update sample names |
| Rmd | 9ac4aca | Lily Heald | 2025-11-20 | add mez2 |
| html | 9ac4aca | Lily Heald | 2025-11-20 | add mez2 |
| Rmd | 9209569 | Lily Heald | 2025-11-20 | add altai neanderthal |
| html | 9209569 | Lily Heald | 2025-11-20 | add altai neanderthal |
| Rmd | 1f311d9 | Lily Heald | 2025-11-18 | update figures |
| Rmd | 4a652c1 | Lily Heald | 2025-11-18 | fix paths |
| html | 4a652c1 | Lily Heald | 2025-11-18 | fix paths |
| Rmd | c8573bb | Lily Heald | 2025-11-18 | add les Cottes |
| html | c8573bb | Lily Heald | 2025-11-18 | add les Cottes |
| Rmd | 0236dab | Lily Heald | 2025-11-13 | log transformed depth |
| html | 08dda7e | Lily Heald | 2025-11-13 | update depth plot |
| Rmd | 1bfb83f | Lily Heald | 2025-11-13 | update map, axes |
| Rmd | a1afed5 | Lily Heald | 2025-11-07 | update visibility |
| html | a1afed5 | Lily Heald | 2025-11-07 | update visibility |
| html | 735357b | Lily Heald | 2025-11-07 | Build site. |
| Rmd | 50940c0 | Lily Heald | 2025-11-07 | Update introduction.Rmd |
| Rmd | f1b70cb | Lily Heald | 2025-11-07 | add Hstadel depth |
| Rmd | 7beeddd | Lily Heald | 2025-11-07 | add depth figure |
| Rmd | 967f438 | Lily Heald | 2025-11-07 | update callout |
| html | 967f438 | Lily Heald | 2025-11-07 | update callout |
| html | cc7d134 | Lily Heald | 2025-11-06 | updated figures |
| Rmd | b2f5585 | Lily Heald | 2025-11-06 | Update introduction.Rmd |
| html | 13755f1 | Lily Heald | 2025-11-06 | workflowr |
| Rmd | 46a0913 | Lily Heald | 2025-11-06 | start workflowr |
DNA can persist for up to hundreds of thousands of years in skeletal remains, and can even be extracted from sediments. However, extracting such DNA poses a challenge. Ancient DNA is typically present in very small amounts, is highly fragmented, and contaminated with other endogenous organic molecules which inhibit enzymatic DNA manipulations which must be performed prior to sequencing, or exogenous DNA. There are high-quality genomic sequences available for two Denisovans and three Neanderthals. There are also low coverage sequences available from 14 Neanderthals, spanning spatially from Gibraltar to Siberia and temporally from 39 to 120ka. A total of eleven archaic genomic samples will be analysed in this study, including all five high coverage genomes.

Modern human genomes were obtained from the Simons Genome Diversity Project (SGDP). A panel of 15 individuals representing broad global diversity (Africa, Europe, East Asia, Central Asia, and Oceania) to provide a stable reference frame for principal component analysis (PCA). Variant call files (VCFs) were downloaded as whole-genome SNP datasets aligned to the GRCh37/hg19 reference genome.

In order to allow for comparison of genome-wide ancestry patterns with structure driven by a targeted functional SNP set. For pigmentation-specific analyses, a panel consisting of 395 SNPs previously associated with pigmentation phenotypes published on the NHGRI-EBI Catalog of human genome-wide association studies was used. The by-chromosome distribution of these SNPs is shown below.

sessionInfo()
R version 4.4.2 (2024-10-31)
Platform: aarch64-apple-darwin20
Running under: macOS 26.3.1
Matrix products: default
BLAS: /Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/lib/libRblas.0.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/lib/libRlapack.dylib; LAPACK version 3.12.0
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
time zone: America/Detroit
tzcode source: internal
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] wesanderson_0.3.7 showtext_0.9-7 showtextdb_3.0
[4] sysfonts_0.8.9 reshape2_1.4.5 lubridate_1.9.4
[7] forcats_1.0.1 stringr_1.6.0 dplyr_1.2.0
[10] purrr_1.2.1 readr_2.1.6 tidyr_1.3.2
[13] tibble_3.3.1 tidyverse_2.0.0 ggrepel_0.9.6
[16] viridis_0.6.5 viridisLite_0.4.2 ggspatial_1.1.10
[19] raster_3.6-32 sp_2.2-0 sf_1.0-24
[22] rnaturalearthdata_1.0.0 rnaturalearth_1.2.0 ggplot2_4.0.2
[25] workflowr_1.7.2
loaded via a namespace (and not attached):
[1] tidyselect_1.2.1 farver_2.1.2 S7_0.2.1 fastmap_1.2.0
[5] promises_1.5.0 digest_0.6.39 timechange_0.4.0 lifecycle_1.0.5
[9] processx_3.8.6 terra_1.8-93 magrittr_2.0.4 compiler_4.4.2
[13] rlang_1.1.7 sass_0.4.10 tools_4.4.2 yaml_2.3.12
[17] knitr_1.51 labeling_0.4.3 classInt_0.4-11 curl_7.0.0
[21] plyr_1.8.9 RColorBrewer_1.1-3 KernSmooth_2.23-26 withr_3.0.2
[25] grid_4.4.2 git2r_0.36.2 e1071_1.7-17 scales_1.4.0
[29] cli_3.6.5 rmarkdown_2.30 generics_0.1.4 otel_0.2.0
[33] rstudioapi_0.18.0 httr_1.4.7 tzdb_0.5.0 DBI_1.2.3
[37] cachem_1.1.0 proxy_0.4-29 vctrs_0.7.1 jsonlite_2.0.0
[41] callr_3.7.6 hms_1.1.4 jquerylib_0.1.4 units_1.0-0
[45] glue_1.8.0 codetools_0.2-20 ps_1.9.1 stringi_1.8.7
[49] gtable_0.3.6 later_1.4.5 pillar_1.11.1 htmltools_0.5.9
[53] R6_2.6.1 rprojroot_2.1.1 evaluate_1.0.5 lattice_0.22-7
[57] httpuv_1.6.16 bslib_0.10.0 class_7.3-23 Rcpp_1.1.1
[61] gridExtra_2.3 whisker_0.4.1 xfun_0.56 fs_1.6.6
[65] getPass_0.2-4 pkgconfig_2.0.3