Repository navigation
Releases: Deliverome-Project/accessible-surfaceome
Release list
v1.3.0 — Surfaceome 1.3
Code release accompanying data release 1.3.0 (10.5281/zenodo.23445521): 5,332 deep-dive records, the genome-wide triage and benchmark TSVs, preset membership, reproducibility replicates and figure source data.
What's Changed
- fix(paper): drop the empty line above the Abstract heading in the PDF by @beccajcarlson in #207
- fix: harden paper comment loading against D1 read-replica lag by @beccajcarlson in #208
- docs: serve the DOI badge from shields.io by @beccajcarlson in #209
- ci: add a weekly floor to the D1 backup; document skipping the LFS payload by @beccajcarlson in #210
- docs: correct two stale claims in the agent guides and say which to read first by @beccajcarlson in #211
- feat(viewer): show paper title, authors and journal for cited references by @beccajcarlson in #221
- fix(paper): colour figure legends by sentence, not by line box by @beccajcarlson in #213
- fix(audit): repair the venn generator's sha pin and a stale provenance path by @beccajcarlson in #214
- feat(audit): Figure 1 becomes an UpSet; the Venn leaves the numbered set by @beccajcarlson in #215
- fix(tools): SURFACE-Bind sites now report which side of the membrane they anchor on by @beccajcarlson in #218
- fix(surface-proteome): repair purge-on-publish and close three API pass-through gaps by @beccajcarlson in #219
- feat(tools): add a cohort-wide purge for the Worker's per-gene caches by @beccajcarlson in #223
- fix(surface-proteome): namespace both cache tiers by the deploy epoch by @beccajcarlson in #222
- fix(viewer): make the whole citation a link and stop the title shouting by @beccajcarlson in #225
- fix(surface-proteome): pin the deploy epoch in cache-key tests by @beccajcarlson in #226
- fix(deps): tighten the sharp override past the libheif advisories by @beccajcarlson in #228
- fix(agents): restore internalization routes in the shared API by @beccajcarlson in #230
- feat(audit): blog Venn with count-scaled labels (co-authored with @ndamania00) by @beccajcarlson in #227
- chore(data): LFS-exempt every per-figure TSV so raw GitHub serves text by @beccajcarlson in #229
- fix(agents): include paper metadata with internalization evidence by @beccajcarlson in #233
- refactor(viewer): label surface reasons by pass count, not "classical" by @beccajcarlson in #236
- docs: reconcile triage_benchmark_v1.md to the benchmark TSV (68/31/48) by @beccajcarlson in #238
- feat(audit): SurfaceGenie SPC vs single-DB comparison on triage benchmark by @beccajcarlson in #237
- feat(agents): extend the pubmed rescue lane to the intracellular buckets by @beccajcarlson in #239
- feat(surface-proteome): backfill n_papers_found on D1-only records; add deep-dive homepage chip by @beccajcarlson in #240
- fix(agents,build): fail on unmeasured topology + five data-destroying sweep bugs by @beccajcarlson in #241
- fix(surface-proteome): gate the low-literature badge on the optimized UniProt cutoff by @beccajcarlson in #244
- fix(viewer): read the low-literature badge from the Worker, drop the duplicate All chip by @beccajcarlson in #245
- feat(surface-proteome): cohort funnel figure + fold the second rescue lane through every figure by @beccajcarlson in #246
- feat(surface-proteome): serve optimized UniProt + CSPA membership everywhere by @beccajcarlson in #247
- fix(agents): stop a cohort paralog release shadowing the global one; second look for every droppable gene by @beccajcarlson in #249
- chore(audit): regenerate every figure on the completed 5,333-record cohort by @beccajcarlson in #248
- fix(viewer): separate triage and deep-dive reason columns, add narrowed pill by @beccajcarlson in #252
- fix(tools): purge the cohort cache surfaces a public-D1 sync stales by @beccajcarlson in #253
- fix(audit): correct S8/S11 figure colours and refresh stale README counts by @beccajcarlson in #254
- fix(audit): label S12's percentage curves, and stop its README describing mock data by @beccajcarlson in #255
- docs(audit): mirror the manuscript figure legends into every gist README by @beccajcarlson in #256
- fix(audit): collapse benchmark replicates on the modal reason, not row order by @beccajcarlson in #257
- feat(audit): figure — which assays established the surface calls, and how often each stood alone by @beccajcarlson in #258
- fix(audit): Figure 5a — x-axis title, tier grouping brackets, uncertain repositioned by @beccajcarlson in #260
- fix(audit): Figure 6 — label the y axes, drop the figure title by @beccajcarlson in #261
- feat(audit): Supp S12 panel b — deep-dive tier composition by literature-size stratum by @beccajcarlson in #262
- fix(audit): Supp S12a — drop the iso-rate diagonals, raise point opacity by @beccajcarlson in #263
- chore(audit): refresh every rendered figure; lower S12a point opacity by @beccajcarlson in #264
- feat(surface-proteome): public record history and numbered data releases by @beccajcarlson in #259
- fix(audit): Figure 4 — give the composite the slug, so by_paper_number ships a PNG by @beccajcarlson in #265
- fix(audit): Figure 4 — stop calling the stage-2 set "zero-database" by @beccajcarlson in #266
- perf(surface-proteome): record-history R2 writes via S3 and batched, throttled D1 by @beccajcarlson in #267
- fix(audit): Figure 4 — break the stage-2 set out by database support by @beccajcarlson in #270
- fix(surface-proteome): never cache or archive a record whose serve-time enrichment failed by @beccajcarlson in #271
- fix(surface-proteome): pace record-history sweeps so they can't overload public D1 by @beccajcarlson in #273
- fix(viewer): keep catalog-header InfoTips legible inside the table scroll box by @beccajcarlson in #274
- fix(viewer): pace the build's API fetches and never bake a degraded record by @beccajcarlson in #275
- perf(surface-proteome): stop full scans on the Worker's hot D1 lookups by @beccajcarlson in #277
- fix(audit): order Figure 3's contextual bars by count by @beccajcarlson in #272
- fix(audit): add the union (>=1 DB) bar to supplementary figure S5 by @beccajcarlson in #276
- chore(audit): refresh Figure 7 with current viewer screenshots by @beccajcarlson in #278
- feat(audit): make Figure 7 reproducible and ship it as PDF + PNG by @beccajcarlson in #280
- fix(surface-proteome): history holds only serv...
v1.2.0 — documentation, tooling, and reproducibility
Documentation, tooling, and reproducibility release. No change to the data, the records, or the API contract — the atlas is the same 5,130 deep-dive records (1,782 canonical · 1,243 likely · 973 low · 1,078 no · 54 uncertain).
Breaking for scripts
scripts/is reorganized by role: entry points stay at the top level, everything else moved intofigures/,build/,audit/,cloud/,probes/,tsv-export/,release/,archive/.scripts/surfaceome_v2_annotate.pyis nowscripts/annotate_gene.py. There is no v1 entry point; the version in the old name only leaked implementation detail.
Fixed
- Repo-root resolution. Every relocated script computed
parents[1], which after the move resolved toscripts/rather than the repo root, so they read and wrote paths likescripts/data/processed/…. Swept all 113 Python scripts and the shell equivalents. - D1 → R2 backup, which had failed silently on every run since 2026-06-29: the
surfaceome_agentsdump (2.16 GiB) exceeded wrangler's 300 MiB upload cap. Now gzipped, split into 250 MiB parts, checksum-verified before upload, with alatest.manifest.jsonpointer and a restore recipe. - TTFB monitor, which had never measured latency — it was timing a Cloudflare bot challenge. Now probes the platform hostnames.
- Two builder scripts began real work on
--help;setup-git-hooks.sh --helpwould have rewrittencore.hooksPath.
Documentation
The README is rewritten around the manuscript's own framing, and now describes only fields that exist — the previous version documented a surface_status field with six graded values that is null in every record. Added CONTRIBUTING.md. LICENSING.md now carries a per-source table with real, checkable licences and an honest account of which upstream files are committed verbatim. Corrected HPA to CC BY 4.0, and SURFACE-Bind to the BSD-3-Clause repo we actually ingest.
Across the tree: 0 broken relative links in 137 markdown files (from 63), every referenced script path resolves or is marked removed, and stale "PRELIMINARY — ~1,197 of ~5,128 swept" claims are gone from a sweep that finished long ago.
Figures
Two published figure gists were still headed "MOCK figure" while their data was real, and four carried pre-renumbering figure numbers. Corrected and republished; 19 of 21 gists re-synced.
Full changelog
Surfaceome 1.1 — figure corrections & provenance
Revised figure release accompanying the manuscript update.
Changes since v1.0.0
- Supplementary Figure S14 regenerated: rotated facet labels (no overlap), larger/bold value labels via the Manrope brand font, legend title removed. No data or numbers changed — layout only. Canonical generator and gist mirror kept in sync (drift-guard test passes).
- Supplementary figures renumbered to citation order: S3⇄S4 (curator-vs-agent ⇄ cutoff-tradeoff) and S11⇄S12 (deep-dive-vs-Sonnet ⇄ corpus-vs-selected), applied across
paper/figure_index.md,build_figure_index.py(FIGURE_ORDER), and theby_paper_number/symlinks. - Added
data/analysis/figures/figure_swhids.json— a reader-facing map of figure number → slug → Software Heritage ID → gist URL, for the manuscript's data-availability section.
Figure data and per-figure Software Heritage IDs: see data/analysis/figures/figure_swhids.json and paper/figure_index.md.
v1.0.0 — Surfaceome 1.0
First tagged release of accessible-surfaceome — the pipeline, agents, and web viewer behind surfaceome.deliverome.org.
Version 1.0.0 corresponds to Surfaceome 1.0 as described in the accompanying manuscript.
What this is
Five public surface-protein resources — UniProt, GO Cellular Component, the Human Protein Atlas, the Cell Surface Protein Atlas, and SURFY — disagree substantially about which proteins reach the cell surface, agreeing on only 188. This repository builds a reconciled atlas:
- a tool-free triage agent classifies every protein-coding human gene for surface accessibility, rescuing 960 candidates absent from all five source databases;
- a literature-anchored deep-dive pipeline turns each candidate into a structured, evidence-cited record with per-claim citations;
- deterministic feature builders cover orthology, paralogs, isoforms, membrane topology, AlphaFold structure, candidate binding sites, and homo-oligomerization;
- a Cloudflare Worker + public API and a React viewer make the whole thing queryable, with full LLM reasoning exposed rather than hidden.
The deep-dived cohort (N = 5,130) resolves to roughly 1,782 canonical and 1,243 likely surface calls.
Citing
Cite the concept DOI when you mean the software in general; cite this release's version DOI when you mean the exact snapshot you ran against. CITATION.cff carries the machine-readable form.
Underlying data are deposited separately at 10.5281/zenodo.20805383 (CC BY 4.0). Code is MIT.
Acknowledgements
Supported by the Astera Institute and Anthropic. Deliverome Bio received API credits through the Claude AI for Science program for this project.