Last updated: 2026-03-29

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 aeed082. 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/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 aeed082 Lily Heald 2026-03-29 Build site.
html 5e75cd8 Lily Heald 2026-03-29 update theme
Rmd d44f320 Lily Heald 2026-03-29 change theme
html d44f320 Lily Heald 2026-03-29 change theme
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.

Project Overview

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.

Key Results

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

Data Sources

  • NASA Earth Observations: AURA_UVI_CLIM_M
  • NHGRI-EBI Catalog of GWAS associated pigmentation variants: NHGRI-EBI
  • Simons Genome Diversity Project: SGDP
  • Max-Plank Institute neanderthal genomes: MPI-EVA

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