Last updated: 2026-03-29
Checks: 6 1
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.
The R Markdown file has unstaged changes. To know which version of
the R Markdown file created these results, you’ll want to first commit
it to the Git repo. If you’re still working on the analysis, you can
ignore this warning. When you’re finished, you can run
wflow_publish to commit the R Markdown file and build the
HTML.
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 216fc6e. 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
Unstaged changes:
Modified: .gitignore
Modified: analysis/_site.yml
Modified: analysis/index.Rmd
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/index.Rmd) and HTML
(docs/index.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 |
|---|---|---|---|---|
| html | c782d0e | Lily Heald | 2026-03-26 | Build site. |
| Rmd | 918bea9 | Lily Heald | 2026-03-26 | wflow_publish("analysis/index.Rmd") |
| html | 38ac89f | Lily Heald | 2026-03-26 | Build site. |
| Rmd | 49e06be | Lily Heald | 2026-03-26 | wflow_publish(c("analysis/index.Rmd", "analysis/cleaning.Rmd")) |
| Rmd | 2eacc85 | Lily Heald | 2026-02-16 | add pcas |
| html | 2eacc85 | Lily Heald | 2026-02-16 | add pcas |
| html | 836f7c0 | Lily Heald | 2026-02-10 | Update index data sources |
| Rmd | 69220b2 | Lily Heald | 2026-02-10 | Update index data sources |
| html | a3aacd7 | Lily Heald | 2025-11-07 | Build site. |
| html | c1708e0 | Lily Heald | 2025-11-06 | Build site. |
| html | 13755f1 | Lily Heald | 2025-11-06 | workflowr |
| Rmd | 9007056 | Lily Heald | 2025-11-06 | Update index.Rmd |
| Rmd | 46a0913 | Lily Heald | 2025-11-06 | start workflowr |
| Rmd | 2d86348 | Lily Heald | 2025-11-06 | Start workflowr project. |
Current scholarship on pigmentation in ancient and archaic humans is disproportionately centered on the study of introgressed archaic alleles in modern human populations rather than on cataloging the pigment-related variants directly in the genomes of archaic individuals (Dannemann et al., 2017a; Kang et al., 2023; McArthur et al., 2020). As a result, understanding of pigmentation genetics remains dispersed across party overlapping literature including selection studies, phenotype inference, and selection-based analyses. This has resulted in a fragmented understanding of the genetic architecture underlying pigmentation in ancient and archaic hominins.
Existing work has shown that pigmentation related variants in ancient and archaic genomes can be directly analysed, but the evidence remains spread across single locus studies and phenotype prediction attempts rather than directly consolidated into a systematic archaic focused resource (Brand et al., 2022; Cerqueira et al., 2012; Ferrando-Bernal et al., 2025; Lalueza-Fox et al., 2007a; Perry et al., 2015). Direct discussion of pigmentation-related variation in archaic genomes has often centered around a small number of loci. In particular, the discussion of pigmentation-related alleles is largely limited to MC1R, with studies focusing on the introgression of archaic haplotypes into modern human populations (Ding et al., 2014; Lalueza-Fox et al., 2007a). Selection-based approaches in modern and ancient human populations have successfully identified key loci associated with pigmentation; however, these studies typically infer selection dynamics without comparing archaic genotypes (Ju & Mathieson, 2021a). Genome-wide analyses of archaic introgression have identified regulatory and trait-associated effects relevant to skin and hair pigmentation, but these studies do not provide locus-level catalogs for variants associated with the pigmentation of keratinized tissues in archaic genomes (Dannemann et al., 2017b; Kang et al., 2023; Rinker et al., 2019; Witt et al., 2022). In addition, earlier multi-locus approaches used smaller marker panels, whereas the present study examines a larger set of 395 pigmentation related SNPs, allowing broader locus coverage (Cerqueira et al., 2012).
Taken together, the literature suggests a gap between functional or evolutionary inference in archaic genomes and descriptive genomic characterization. No study has yet curated a single, comprehensive locus-level inventory of pigmentation-associated variants in archaic genomes with explicit comparison to diverse modern human genomes. The primary aim of this project is to provide a comprehensive locus catalog for variants associated with the pigmentation of keratinized tissues and to analyze the distribution and frequency of these variants across available archaic genomes. This analysis will be conducted in comparison to a diverse sample of modern human genomes to assess patterns of shared variation, divergence, and potential introgression. By shifting focus from inference based on modern populations to direct characterization of archaic genomic data, this study seeks to refine current models of pigmentation evolution and its underlying genetic architecture.
Background on the samples analyzed is available on the Introduction analysis page: - View UV map and aDNA sites
Population genetics analyses are available on the Analysis page: - View genetic PCAs
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] workflowr_1.7.2
loaded via a namespace (and not attached):
[1] vctrs_0.7.1 httr_1.4.7 cli_3.6.5 knitr_1.51
[5] rlang_1.1.7 xfun_0.56 stringi_1.8.7 otel_0.2.0
[9] processx_3.8.6 promises_1.5.0 jsonlite_2.0.0 glue_1.8.0
[13] rprojroot_2.1.1 git2r_0.36.2 htmltools_0.5.9 httpuv_1.6.16
[17] ps_1.9.1 sass_0.4.10 rmarkdown_2.30 jquerylib_0.1.4
[21] tibble_3.3.1 evaluate_1.0.5 fastmap_1.2.0 yaml_2.3.12
[25] lifecycle_1.0.5 whisker_0.4.1 stringr_1.6.0 compiler_4.4.2
[29] fs_1.6.6 pkgconfig_2.0.3 Rcpp_1.1.1 rstudioapi_0.18.0
[33] later_1.4.5 digest_0.6.39 R6_2.6.1 pillar_1.11.1
[37] callr_3.7.6 magrittr_2.0.4 bslib_0.10.0 tools_4.4.2
[41] cachem_1.1.0 getPass_0.2-4