Spaces:
Running
Running
Commit History
-
Intro tab + central-dogma primer + em-dash sweep
- New Intro tab as default landing: release blurb, tab-nav guide (bullet list with banner-style links), and an optional "quick primer in genetics" §1-§5 walkthrough using the existing section--two-col + .demo primitives. - Primer visuals: skeletal-formula SVGs for the four bases, static DNA helix (~10 bp/turn), gene strip (promoter / exons / introns), splice diagram with transcribe arrows, 10-column codon to amino-acid table with peptide-bond chain, and a live 3Dmol.js viewer of human hemoglobin (PDB 1A3N) bundled in assets/data/ for fast first paint. - Lazy-init the 3D viewer via MutationObserver on the panel's .active class, so visitors who deep-link to #demo / #sandbox skip the fetch. - Tabs renamed: Demo to DNA Lab, Model to Carbon Recipe (display labels only; data-tab slugs and URL hashes stay 'demo' / 'model' for backwards-compat). - Banner: add Code placeholder link to banner-links; tab buttons use min-width + nowrap so "Carbon Recipe" stays on one line. - …5ea40ce -
Carry over §2 Variant rework + §1/§4 polish dropped by the -s ours merge
The previous merge (32c9c3a) used -s ours to keep the local tree intact while preserving Leandro's two upstream commits (57bce37 §2 Variant rework, 176caed banner wordmark) in the history for attribution. Most of those changes had already been adapted locally to the new modular CSS/JS split, but the actual content carry-over wasn't yet committed. This commit applies the remaining ports on top of the merge. §3 VEP (was §2 in Leandro's tree) — refonte complète - 4 kb scoring window: fetch_variants.py WINDOW 60 → 4002 (well below the 8 kb eval recipe but enough that all 3 pathogenic variants land on the correct side of zero). data/variants.json regenerated. - Two-row sequence display: original above, click-editable mutation below, with arrows on every base that differs from the original. Click cycles A → C → G → T, debounced 500 ms rescore against /score. - Per-row log-likelihood score on the right (green if more likely, red if less likely); mutation score blanks to '—' while a…1d3e72f -
Sandbox card layout, sticky-nav breadcrumb, drop §2/§3 score buttons
- Sandbox: refactor into stacked cards (sb-card with eyebrow/title/hint headers, Input → Output) plus a Connected-to strip up top, replacing the flat wall of controls. - Sticky nav: add a CARBON / huggingfacebio-carbon-3b breadcrumb on the left of the sticky strip so the "you're on the Carbon page" cue stays visible after the hero scrolls out. - §2 (VEP) and §3 (Track): drop the manual ▶ score / score all buttons. §3 tracks are precomputed (logprobs ship in data/genes.json), so the toolbar is just a gene selector now; §2 will auto-score on select. - Misc: app.py, precompute.py, controls.css, layout.css, section-tree.css, banner.js and data/genes.json picked up along the way. - Add social-banner.html. Co-authored-by: Cursor <cursoragent@cursor.com>b64beb5
-
§5 Folding: precompute.py — best-of-N tiering + 503 cold-start retries
Long-context generation (MYC, TP53 ~20 kb) collapses more often than HBB/INS, so use 5 retries above 5 kb and 3 below. Also tolerate the HF Inference Endpoint scale-to-zero cold start by retrying 503s with a short backoff, and cap AA sent to ESMFold at 1000 to avoid one stray oversized hallucination breaking the whole fold step. Co-authored-by: Cursor <cursoragent@cursor.com>7c8a9cd
-
§5 Folding: hydrate the section from a precomputed fixture
The Carbon endpoint and the NVIDIA NIM ESMFold call together take 10-20s on a cold start, which leaves the section blank when the visitor first scrolls into it. We now ship a precomputed example (Carbon continuation + both ESMFold structures + stats) inside data/genes.json so the section renders instantly. Clicking ▶ fold still triggers a fresh live run. Notable details: - scripts/precompute.py grows a precompute_folds() step that mirrors the live pipeline: it calls the backend /generate (same left-pad-to-six, same <dna> prefix, same streaming framing as runFold()) and then hits NVIDIA NIM directly to fold both the spliced-mRNA reference and Carbon's spliced mRNA. Genes whose last exon sits past 2.5 kb (TP53, MYC) are skipped — Carbon would need to generate too many bases live. - Temperature is set to 0.9 for the fixture, not 0.7. At T<=0.7 the model collapses into low-complexity sinks on long-context generation (poly-T at T<=0.5, AATC-repeat at T=0.7) — a known autoregr…2c4851e
-
Add tabbed Demo / Model / Sandbox page (default = Sandbox)
New /demo route serves a single-page app with three tabs: - Demo: 4 interactive sections (gene completion, VEP, likelihood track, cross-species) plus folding/UMAP placeholders - Model: tokenizer, training objective (CE→FNS), data, architecture - Sandbox: the existing DNA continuation playground (default tab) Server-side: new /score endpoint (echo-logprobs), /genes /variants /species data routes, /img static mount, and left-padding for prompts that aren't a multiple of 6 bases (avoids phantom-A artifacts at the prompt boundary). Includes data fetchers (Ensembl REST) for genes / variants / species and a precompute script that bakes per-token logprobs and ref-vs-alt window scores into the JSON files so the page renders instantly without round-tripping the inference endpoint on first paint. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>971b586