carbon-a-release / README.md
lvwerra's picture
lvwerra HF Staff
Centre the tree on the full page while retaining the left links column
b084019 verified
|
Raw History Blame Contribute Delete
11.7 kB
metadata
title: 'Carbon-A: Discovering Genes Across the Tree of Life'
emoji: 🌿
colorFrom: green
colorTo: blue
sdk: static
app_file: index.html
pinned: false

Carbon-A assembly strands

Space: https://huggingface.co/spaces/HuggingFaceBio/carbon-a-release

An interactive proof of concept: a separate, continuous strand for every real assembly in the reusable taxonomy snapshot. Shared ancestors form bundles; zooming separates the strands. Green and blue distinguish assemblies with and without existing annotation evidence under the selected comparison.

The PoC contains 33,588 unique assemblies across 16,976 taxa, taken from the existing GenBank annotation explorer. The full release totals supplied on 8 October 2026 are 48,167 assemblies, 22,617 taxa, 566.34M coding loci and 27.18 Tbp. These supplied totals are recorded in About the data; the presentation does not display an aggregate counter. The new radial bars use published per-assembly gene_count values wherever available; missing counts are explicitly marked.

Two comparison modes are available under View options:

  • NCBI annotation records: blue means a named annotation provider appears in the cached NCBI GenBank assembly summary. Missing records are not proof that an assembly has never been annotated.
  • RefSeq comparison corpus: blue means an exact versioned match between the listed paired RefSeq accession and the project's 2,055-assembly comparison corpus. This corpus is not the whole of RefSeq.

The human branch illustrates why the scope matters: it contains 1,412 assembly accessions, of which 2 match the RefSeq comparison corpus and 4 have a named GenBank annotation provider in this snapshot. These are assembly-record counts, not human gene counts. RefSeq annotation is maintained separately from GenBank submission metadata (NCBI explanation). The legend, node tooltips and species comparison in assembly details make this explicit.

Colours classify assemblies, not the novelty of their individual predicted loci. A paired GCA and GCF may have different sequences and coordinates.

The human assembly detail uses actual published GFF3 coordinates, with 23,767 predicted loci across GCA_000001405.29 and 13 beginning in the first megabase of CM000663.2. CDS rectangles are actual coding segments. These are predictions, not experimental validation.

Locus bars and atlas silhouettes

The outer annulus aligns to the exact same ordered assembly tips as the tree. Published counts are available for 17,828 of the 33,588 displayed assemblies, summing to 212,905,534 predicted coding loci; the other 15,760 assemblies have unavailable counts in this metadata inventory. The default sums available locus counts across 5 consecutive assemblies; 20-, 50- and 200-assembly bins and individual assembly bars are selectable in View options. Bins partition taxonomic display order, and can straddle named taxon boundaries. Bar length uses a linear scale, recalculated for each bin size and labelled above the tree. Hover reveals the count and number of measured assemblies. Clicking a bar selects the assembly at its angle without changing the camera or bin size.

Grey marks at the bar bases indicate missing counts. For bins, the grey mark spans the fraction of assemblies without measurements. A bin sums only available values: missing counts are not imputed, treated as measured zero, or scaled up to the full release. Green locus bars count all predicted loci in the covered assemblies; the blue/green colouring of the tree still describes annotation records at assembly level, not whether individual loci are new.

The original Genome Atlas silhouettes, without circle backgrounds, sit on their corresponding taxonomic nodes. Clicking an icon selects a nearby assembly strand without zooming. More silhouettes are visible at the full-tree view, with smaller sizes on branches that contain fewer assemblies. Spacing follows each icon’s actual width and height, and more appear as you zoom. A thin dark grey contour follows each silhouette, preserving transparent backgrounds; the checkbox in View options hides them all. All original PhyloPic source links and licence/attribution records are retained in the interface under About the data → Icon credits and licences and in the source data. The original SVG artwork is preserved; its displayed fill is adapted to each theme with an alpha mask and its outline is cached at 2× resolution, without backgrounds.

Presentation and video capture

The Space title is Carbon-A: Discovering Genes Across the Tree of Life, with Releasing 566M gene candidates for over 22k species below it. These rounded release figures match the final user-approved release tweet from 8 October 2026; the tree remains the documented subset. A narrow left column has a Links: heading and five equal-width buttons: Model, Database, Explorer, Paper and Blog. The compact green/blue legend sits below the buttons and updates with the comparison mode. The circle stays horizontally centred on the full page and uses all remaining height below the title. Matching space on the right balances the links column and accommodates the assembly info box. On narrow phones, the links and legend move below the full-width diagram. There is no animation button or cumulative sweep counter. Search, bar settings, comparison modes and zoom controls are available under View options. About the data retains the subset limitations and icon credits.

Click the page background, then press Space to start or replay a four-second clockwise sweep; Space again stops it at the current strand and keeps its details visible; Escape stops it and clears the selection. Space also stops playback when an info-box button has focus. A thin centre hand follows the selected strand, and its assembly info box updates during playback. The final assembly remains selected after the sweep. Clicking anywhere during playback stops it and clears the selection. Playback has no aggregate counters. Only the interaction canvas redraws each frame; the detailed tree stays cached.

For browser automation, POC.startSweep() starts playback, POC.stopSweep() stops at the current strand, and POC.stopSweep(false) stops and clears its details. On the app URL, ?record=1 hides the small utility controls and suppresses mouse interactions for a clean recording while retaining the animated assembly info box; adding &animate=1 starts one sweep a second after loading. Resource links and the title remain visible. These parameters apply to the app itself; the normal private Space page remains the entry point for signed-in users.

Layout and implementation

The taxonomy and plain-language names reuse the earlier explorer work. Only ancestor nodes on paths to included assemblies are retained. The drawing simplifies intervening taxonomy to standard ranks; full lineage metadata is preserved. Radius is a layout choice, not evolutionary time or branch length.

Every assembly has its own lane through parent bundles and its own endpoint. A common taper makes individual paths finer towards the root; all assemblies use the same width at a given radius. Density and bundle width encode assembly counts, not coding-locus counts. At overview scale, many paths occupy the same pixel. Clicking a strand, the centre dial, an icon or a bar selects a real assembly and opens its details without zooming. Hovering over a strand or inside the centre previews and highlights the assembly, with its info box. Click to pin the preview; moving the pointer then leaves it unchanged. Moving away clears an unpinned preview. Once an assembly is selected, the next click anywhere clears it, including clicks on another strand, the centre, an icon, a bar, the title, the links column or the info box. Links and buttons inside the box execute their action before clearing. Scroll or use explicit zoom controls to zoom, and drag to pan. A Whole tree button appears directly on the graphic whenever zoomed or panned, and resets both. Double-clicking does not zoom. Selection highlights reuse the exact sampled coordinates drawn by WebGL, so they stay aligned with the underlying strand at every zoom level.

Dark mode is the default, with charcoal surfaces, emerald and blue strands, and pale atlas silhouettes. The sun/moon control switches to the light theme and saves the preference locally. The root opening contains a fine watch hand that points to the selected strand. Click inside the opening to select by direction. Dragging pans the tree. Fine locus bars use shared explicit angular vertices instead of independently approximated Canvas arcs, avoiding gaps in narrow bins without changing their counts.

The self-contained HTML includes compressed data, JavaScript and two local font families (Manrope and Inter). It makes no network requests to draw the tree. Links to source records open only when selected. WebGL is required. Source and data preparation scripts are included for reuse. The metadata counts include source paths, content hashes and pipeline revisions for auditing. The icon data includes each original source page and licence.

Annotation downloads

Selected assemblies with a published metadata path have an Annotation files link directly in the info box. It opens the normal Hugging Face bucket browser for that assembly. Download code provides copyable Python that downloads annotations.gff3.gz, cds.fna.gz, proteins.faa.gz and metadata.json. It uses the saved Hugging Face login; no credentials are embedded in this page.

Assemblies without a recorded gene-file path offer Check annotation files instead. The code queries the current bucket and reports if no files are published. It does not invent a file URL or treat a missing count as zero. The generated human-assembly example was executed against the real bucket; all four downloads succeeded and the three annotation/sequence file checksums matched their metadata.

check_freeze_access.py verifies frozen hover and clicks, release outside the tree, centre dragging, strand selection, actual assembly paths, generated Python and missing-file handling.

Full-release migration status

This layout change retains the 33,588 real assembly strands and available per-assembly locus counts; it does not claim that the drawing covers the complete release. The newer October 7 prediction index was found in the same bucket and contains 49,829 assemblies, but its coverage still needs reconciliation with the announced 48,167-assembly release. Published and intermediate gene calls can be reused, and a reconstruction test matched 120 published loci exactly. No full-dataset reconstruction is required or launched for this presentation update.

Rebuild

python build.py builds the self-contained HTML from the template, JavaScript, compact data and embedded release fonts. python check_presentation.py checks desktop/mobile layout, resource buttons, search, click selection and deselection, zoom reset, annotation access, themes and the counter-free sweep. python export_still.py exports the current presentation as a 2160 × 2700 PNG. python verify_live.py repeats the current checks against the published private Space.

Earlier exploratory checks are retained for reference; their sidebar and counter expectations describe previous revisions. Data provenance and limitations are recorded in provenance.json. The original release video and database explorer are separate projects.