SEPIA  ·  ← roadmap  ·  all docs

SEPIA — current state & handoff

SEPIA — current state & handoff

Living snapshot, last updated 2026-07-24. Its job: let anyone (or a fresh, post-compaction session) pick up cold without losing decisions or context. Companions: changelog.md = dated log of what was done/found/decided; plan.md = the forward roadmap; this file = the current-state + open-questions snapshot. Update this whenever a decision is made or a track finishes.

Orientation — where everything lives

Decisions locked in (with the why)

  1. Project = SEPIA (Systematic Evaluation of Pigmentation In Archaic hominins); a QC-first re-analysis continuing PAINT.
  2. Build strategy — report/integrate on hg38; genotypes physically stay hg19; bridge by a verified rsID↔︎hg19↔︎hg38 map. A genotype is build-independent, so this is lossless relabeling — no re-alignment. The genome-wide sanity PCA stays hg19 (a control). Genome-wide hg38 (B2b) is optional/deferred. (This reconciled an earlier hg38-monolithic drift and a mid-session hg19 over-correction.)
    • Replication path is hg19-native (confirmed 07-24): step one (undo A2, redo Lily's pigmentation figures) = extract the 222 panel at the correct hg19 coords (pos_hg19 in the map, all 222 present) from the hg19 data — cheapest correct fix, no hg38 needed. hg38 is only the reporting/integration layer for the later GWAS-superset + HIrisPlex-S work; the map carries both builds so nothing is duplicated.
  3. Site build: migrated workflowr → Quarto (reconciled onto main); auto-deploy paused (workflow_dispatch) until the R-analysis pages are rendered (they need data / will be regenerated by SEPIA).
  4. Trust: rebuild from raw/published sources with QC gates; do not trust Lily's derived data.
  5. Sample subset (papers/SAMPLE_INCLUSION.md): high-cov (Altai/Den5, Vindija 33.19, Denisova 3, Chagyrskaya 8, Denisova 25) → published snpAD VCFs, no BAM; Mez1 → its VCF; low-cov Les Cottés, Denisova 11, Goyet → BAMs (ANGSD GLs + mapDamage); excluded: El Sidrón (exome), Vindija 87 (= Vi 33.19), Mez2, Spy, HST, Scladina.
  6. Modern reference: complete the 166-SGDP merge → 159 usable (7 were truncated local copies, dropped). Sanity 1 PASSED — recovers textbook global structure.
  7. Shared genomes = full canonical genomes (reusable), + cluster→GitHub push via SSH + SAML-SSO.
  8. Merge architecture lesson: NFS punishes random seeks — stream-thin (bcftools view -T) in parallel, don't merge -R over scattered regions.

Current state

Open questions / awaiting Tina

Immediate next steps

  1. B4 — HIrisPlex-S phenotype prediction (the "what did they look like" question the projection can't answer): pull the numeric weights (Walsh 2017 / Erasmus tool), score the archaics at the HIrisPlex-S markers. (This is the natural next scientific step.)
  2. ANGSD GLs + mapDamage (Q7/Q8) on the low-cov BAMs (now present in genomes/archaic/bam/) — genotype likelihoods + aDNA-damage authenticity.
  3. f/D-statistics to quantify the genome-wide archaic position / Neanderthal-admixture lean (PCA is too coarse for it).
  4. Small fixes: Chagyrskaya .noRB panel extraction; add LP6005441-DNA_A09 to sgdp_metadata.tsv; fix the acquisition BAM-URL resolution.
  5. R analysis pages → a data-bearing local quarto render to populate _freeze/, then restore introduction/depth/pca to the navbar.

Handoff note (for a fresh Claude / Claude Science)

Read this file + changelog.md top-to-bottom, then plan.md. The site's step-by-step workbooks are the clearest narrative: sgdp_reference_pca.qmd (Sanity 1), snp_panel.qmd (the SNP set), archaic_projection.qmd (projection + the key gene-vs-SNP finding). The projection recipe + its hard-won gotchas are documented in code/project_archaics.slurm (and reused in code/gene_region_pca.slurm). Cluster access needs Tina to hold the SSH tunnel open (Kerberos+Duo) — Claude cannot log in itself; ssh -O check greatlakes first, always. Newer plink2 lives at tools/plink2 (gitignored). Coordinate maps (data/pigment_snp_map.tsv, data/pigment_gene_map.tsv) are the reusable substrates.

Cluster-access rules (still binding)

ssh -O check greatlakes before batched commands; one batched command at a time; never hammer; heavy work via sbatch, not the login node. Full rules in CLUSTER_ACCESS.md.