Spaces:
Running
Running
Simplify landing copy and add workflow tabs
Browse filesLead with model size, land-plant coverage, and measured results. Link to model-card workflows and the report. Add accessible tabs and responsive landing styles.
- README.md +11 -8
- assets/landing.css +67 -0
- assets/landing.js +61 -0
- index.html +89 -139
README.md
CHANGED
|
@@ -6,15 +6,19 @@ colorTo: gray
|
|
| 6 |
sdk: static
|
| 7 |
app_file: index.html
|
| 8 |
pinned: false
|
| 9 |
-
short_description:
|
| 10 |
---
|
| 11 |
|
| 12 |
# Botanic1
|
| 13 |
|
| 14 |
-
Static
|
| 15 |
|
| 16 |
-
- `index.html`:
|
| 17 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 18 |
- `factory.html`: the model factory, with the report's S1 and data-pipeline figures.
|
| 19 |
- `leaderboard.html`: the S_bal^test leaderboard, the nine-family scorecard and the
|
| 20 |
size and training-token views, filterable and sortable.
|
|
@@ -32,10 +36,9 @@ token cells whose last cell is masked and then predicted (`assets/hero.js`), and
|
|
| 32 |
corpus's dated family tree drawn as a radial medallion on the report page
|
| 33 |
(`data/tree.json`, built from `figures/data/plants_family_timetree5.nwk`). Manrope for
|
| 34 |
headings and controls, Spectral for reading, IBM Plex Mono for tokens, labels and
|
| 35 |
-
numbers.
|
| 36 |
-
|
| 37 |
-
|
| 38 |
-
ranking with organisation logos.
|
| 39 |
|
| 40 |
Every page shares the top bar written by `scripts/patch_headers.py`; rerun it after
|
| 41 |
adding a page.
|
|
|
|
| 6 |
sdk: static
|
| 7 |
app_file: index.html
|
| 8 |
pinned: false
|
| 9 |
+
short_description: Genomic language models for land plants
|
| 10 |
---
|
| 11 |
|
| 12 |
# Botanic1
|
| 13 |
|
| 14 |
+
Static landing page for the Botanic1 models (Living Models), linking to the model cards and technical report. Pages:
|
| 15 |
|
| 16 |
+
- `index.html`: a short factual overview, workflow links, and model and dataset
|
| 17 |
+
links, organised in three tabs. The landing page uses `assets/landing.css` and
|
| 18 |
+
`assets/landing.js`; all sections remain readable without JavaScript. A future
|
| 19 |
+
SAE tab can be added with a tab link and matching section, without changing the
|
| 20 |
+
tab controller. Setup, code examples, and model specifications stay in the model
|
| 21 |
+
cards; the usage tab links to the relevant sections.
|
| 22 |
- `factory.html`: the model factory, with the report's S1 and data-pipeline figures.
|
| 23 |
- `leaderboard.html`: the S_bal^test leaderboard, the nine-family scorecard and the
|
| 24 |
size and training-token views, filterable and sortable.
|
|
|
|
| 36 |
corpus's dated family tree drawn as a radial medallion on the report page
|
| 37 |
(`data/tree.json`, built from `figures/data/plants_family_timetree5.nwk`). Manrope for
|
| 38 |
headings and controls, Spectral for reading, IBM Plex Mono for tokens, labels and
|
| 39 |
+
numbers. Detailed charts remain on the benchmark and corpus pages. The overview
|
| 40 |
+
states a few results from the report and links to their evaluations. The original
|
| 41 |
+
Figure 1 renderer remains available in `assets/figure1.js`.
|
|
|
|
| 42 |
|
| 43 |
Every page shares the top bar written by `scripts/patch_headers.py`; rerun it after
|
| 44 |
adding a page.
|
assets/landing.css
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/* The landing page shares the Space's identity; detail pages keep their layout. */
|
| 2 |
+
.landing .hero .inner { padding-top: 12px; padding-bottom: 12px; }
|
| 3 |
+
.landing .medallion { width: min(650px, 94vw); }
|
| 4 |
+
.landing .medallion .centre { padding: 36px 22px; }
|
| 5 |
+
.landing .medallion .wordmark { --cell: clamp(29px, 4.6vw, 51px); margin-top: 22px; }
|
| 6 |
+
.landing .hero h1 { margin: 22px auto 0; font-size: clamp(23px, 3.2vw, 32px); line-height: 1.2; }
|
| 7 |
+
.landing .hero-summary { max-width: 37ch; margin: 16px auto 0; color: var(--ink-2); font-size: 18px; line-height: 1.5; text-wrap: balance; }
|
| 8 |
+
.landing .chips { margin-top: 24px; }
|
| 9 |
+
.landing .chips a { font-size: 14px; padding: 11px 20px; }
|
| 10 |
+
.landing-content { max-width: 1060px; padding-bottom: 32px; }
|
| 11 |
+
.landing-tabs { display: flex; flex-wrap: wrap; gap: 10px 32px; border-bottom: 1px solid var(--rule); margin-top: 16px; }
|
| 12 |
+
.landing-tabs a { padding: 16px 0 13px; font-family: var(--sans); font-size: 15px; font-weight: 600; text-decoration: none; border-bottom: 3px solid transparent; color: var(--ink-2); }
|
| 13 |
+
.landing-tabs a:hover { color: var(--ink); }
|
| 14 |
+
.landing-tabs a[aria-selected="true"] { color: var(--ink); border-bottom-color: var(--accent); }
|
| 15 |
+
.landing-panel { padding-top: 32px; scroll-margin-top: 110px; }
|
| 16 |
+
.landing-panel[hidden] { display: none; }
|
| 17 |
+
.facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 64px; }
|
| 18 |
+
.fact { display: flex; flex-direction: column; align-items: flex-start; padding: 0 0 30px; margin-bottom: 28px; border-bottom: 1px solid var(--rule); }
|
| 19 |
+
.fact-label { font-family: var(--mono); font-size: 11px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ink-2); margin: 0 0 10px; }
|
| 20 |
+
.fact h2 { margin: 0 0 14px; font-size: 26px; }
|
| 21 |
+
.fact > p:not(.fact-label):not(.fact-note) { margin: 0 0 14px; }
|
| 22 |
+
.fact-note { font-family: var(--sans); font-size: 12px; color: var(--ink-2); margin: auto 0 16px; }
|
| 23 |
+
.text-link { font-family: var(--sans); font-weight: 600; font-size: 13px; }
|
| 24 |
+
.panel-note { font-family: var(--sans); font-size: 13px; line-height: 1.6; color: var(--ink-2); margin: 0; max-width: 86ch; }
|
| 25 |
+
.section-intro h2 { margin: 0 0 12px; font-size: 26px; }
|
| 26 |
+
.section-intro p { margin: 0 0 24px; max-width: 65ch; color: var(--ink-2); }
|
| 27 |
+
.workflow-list { margin: 30px 0; }
|
| 28 |
+
.workflow { display: grid; grid-template-columns: minmax(0, 1fr) 210px; gap: 48px; align-items: center; padding: 24px 0; border-top: 1px solid var(--rule); }
|
| 29 |
+
.workflow h3 { margin: 0 0 10px; }
|
| 30 |
+
.workflow p { margin: 0; max-width: 62ch; }
|
| 31 |
+
.resource-list { margin: 36px 0; }
|
| 32 |
+
.resource-list > a { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 20px; padding: 18px 0; border-top: 1px solid var(--rule); font-family: var(--sans); font-size: 15px; font-weight: 600; text-decoration: none; }
|
| 33 |
+
.resource-list > a:hover > span:first-child { text-decoration: underline; text-decoration-color: var(--accent); text-underline-offset: 4px; }
|
| 34 |
+
.resource-list .small { font-weight: 500; }
|
| 35 |
+
.landing .site-footer { margin-top: 48px; color: var(--ink-2); }
|
| 36 |
+
|
| 37 |
+
@media (max-width: 1000px) {
|
| 38 |
+
.landing .topbar .inner { flex-wrap: wrap; gap: 10px; }
|
| 39 |
+
.landing .topbar nav { gap: 8px 20px; }
|
| 40 |
+
}
|
| 41 |
+
@media (max-width: 640px) {
|
| 42 |
+
.landing .topbar .inner { padding: 10px 18px; }
|
| 43 |
+
.landing .topbar nav { font-size: 12px; gap: 4px 16px; }
|
| 44 |
+
.landing .hero .inner { padding: 18px 0 28px; }
|
| 45 |
+
.landing .medallion { width: 100%; min-height: 430px; }
|
| 46 |
+
.landing .hero-art { inset: 0 -8%; opacity: 0.65; }
|
| 47 |
+
.landing .medallion .centre { padding: 24px 16px; }
|
| 48 |
+
.landing .hero-summary { font-size: 16px; max-width: 31ch; }
|
| 49 |
+
.landing .chips { gap: 8px; }
|
| 50 |
+
.landing .chips a { font-size: 13px; padding: 10px 15px; }
|
| 51 |
+
.landing-content { padding-left: 20px; padding-right: 20px; }
|
| 52 |
+
.landing-tabs { gap: 8px 24px; }
|
| 53 |
+
.landing-tabs a { font-size: 13px; }
|
| 54 |
+
.facts { grid-template-columns: 1fr; gap: 0; }
|
| 55 |
+
.fact h2 { font-size: 24px; }
|
| 56 |
+
.fact { margin-bottom: 24px; padding-bottom: 24px; }
|
| 57 |
+
.fact-note { margin-top: 0; }
|
| 58 |
+
.workflow { grid-template-columns: 1fr; gap: 14px; }
|
| 59 |
+
.resource-list > a { grid-template-columns: 1fr; gap: 5px; }
|
| 60 |
+
.landing .site-footer { gap: 8px; }
|
| 61 |
+
}
|
| 62 |
+
@media (prefers-reduced-motion: reduce) { html:has(.landing) { scroll-behavior: auto; } }
|
| 63 |
+
@media print {
|
| 64 |
+
.landing-tabs { display: none; }
|
| 65 |
+
.landing-panel[hidden] { display: block; }
|
| 66 |
+
.landing .medallion { width: 100%; aspect-ratio: auto; }
|
| 67 |
+
}
|
assets/landing.js
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/* Progressive enhancement: without JS, the tab links jump to visible sections.
|
| 2 |
+
Add a link and matching panel to extend the tabs (for example, a future SAE tab). */
|
| 3 |
+
(function () {
|
| 4 |
+
const list = document.querySelector('.landing-tabs');
|
| 5 |
+
if (!list) return;
|
| 6 |
+
const tabs = Array.from(list.querySelectorAll('a[href^="#"]'));
|
| 7 |
+
const panels = tabs.map(tab => document.getElementById(tab.hash.slice(1)));
|
| 8 |
+
if (panels.some(panel => !panel)) return;
|
| 9 |
+
|
| 10 |
+
list.setAttribute('role', 'tablist');
|
| 11 |
+
tabs.forEach((tab, index) => {
|
| 12 |
+
tab.setAttribute('role', 'tab');
|
| 13 |
+
tab.setAttribute('aria-controls', panels[index].id);
|
| 14 |
+
panels[index].setAttribute('role', 'tabpanel');
|
| 15 |
+
panels[index].tabIndex = 0;
|
| 16 |
+
});
|
| 17 |
+
|
| 18 |
+
const activate = (index, focus = false) => {
|
| 19 |
+
tabs.forEach((tab, i) => {
|
| 20 |
+
const selected = i === index;
|
| 21 |
+
tab.setAttribute('aria-selected', String(selected));
|
| 22 |
+
tab.tabIndex = selected ? 0 : -1;
|
| 23 |
+
panels[i].hidden = !selected;
|
| 24 |
+
});
|
| 25 |
+
if (focus) tabs[index].focus();
|
| 26 |
+
};
|
| 27 |
+
|
| 28 |
+
const fromHash = () => {
|
| 29 |
+
const target = document.getElementById(location.hash.slice(1));
|
| 30 |
+
// Keep the original overview's quick-start and download links useful.
|
| 31 |
+
const aliases = { start: 'use', availability: 'models', cite: 'models', more: 'models', zeroshot: 'overview', scaling: 'overview', finetune: 'overview' };
|
| 32 |
+
const alias = aliases[location.hash.slice(1)];
|
| 33 |
+
const index = panels.findIndex(panel => panel.id === alias || panel === target || (target && panel.contains(target)));
|
| 34 |
+
activate(index < 0 ? 0 : index);
|
| 35 |
+
};
|
| 36 |
+
|
| 37 |
+
tabs.forEach((tab, index) => {
|
| 38 |
+
tab.addEventListener('click', event => {
|
| 39 |
+
if (event.metaKey || event.ctrlKey || event.shiftKey || event.altKey || event.button !== 0) return;
|
| 40 |
+
event.preventDefault();
|
| 41 |
+
activate(index);
|
| 42 |
+
// Preserve Hugging Face's query parameters when updating the fragment.
|
| 43 |
+
if (location.hash !== tab.hash) history.pushState(null, '', tab.hash);
|
| 44 |
+
});
|
| 45 |
+
tab.addEventListener('keydown', event => {
|
| 46 |
+
let next;
|
| 47 |
+
if (event.key === 'ArrowRight') next = (index + 1) % tabs.length;
|
| 48 |
+
if (event.key === 'ArrowLeft') next = (index + tabs.length - 1) % tabs.length;
|
| 49 |
+
if (event.key === 'Home') next = 0;
|
| 50 |
+
if (event.key === 'End') next = tabs.length - 1;
|
| 51 |
+
if (event.key === ' ' || event.key === 'Enter') next = index;
|
| 52 |
+
if (next === undefined) return;
|
| 53 |
+
event.preventDefault();
|
| 54 |
+
activate(next, true);
|
| 55 |
+
history.replaceState(null, '', tabs[next].hash);
|
| 56 |
+
});
|
| 57 |
+
});
|
| 58 |
+
window.addEventListener('hashchange', fromHash);
|
| 59 |
+
window.addEventListener('popstate', fromHash);
|
| 60 |
+
fromHash();
|
| 61 |
+
})();
|
index.html
CHANGED
|
@@ -3,171 +3,121 @@
|
|
| 3 |
<head>
|
| 4 |
<meta charset="utf-8">
|
| 5 |
<meta name="viewport" content="width=device-width, initial-scale=1">
|
| 6 |
-
<title>Botanic1</title>
|
| 7 |
-
<meta name="description" content="Botanic1:
|
| 8 |
<script>(function(){try{var t=new URLSearchParams(location.search).get('__theme');if(t==='dark'||t==='light')document.documentElement.setAttribute('data-theme',t);}catch(e){}})();</script>
|
| 9 |
<link rel="preconnect" href="https://fonts.googleapis.com">
|
| 10 |
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
| 11 |
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Manrope:wght@500;600;700;800&family=Spectral:ital,wght@0,400;0,500;0,600;1,400&family=IBM+Plex+Mono:wght@400;500;600&display=swap">
|
| 12 |
<link rel="stylesheet" href="assets/site.css">
|
| 13 |
-
<
|
|
|
|
|
|
|
|
|
|
| 14 |
</head>
|
| 15 |
-
<body>
|
| 16 |
-
<header class="topbar"><div class="inner"><a class="lockup" href="index.html"><div class="wordmark" aria-label="BOTANIC-1"><span class="cell">B</span><span class="cell">O</span><span class="cell">T</span><span class="cell">A</span><span class="cell">N</span><span class="cell">I</span><span class="cell">C</span><span class="cell tok" data-state="masked"><span class="probs"><i></i><i class="top"></i><i></i><i></i></span>?</span></div><span class="org">Living Models</span></a><nav aria-label="Pages"><a href="index.html" aria-current="page">Overview</a><a href="factory.html">Model factory</a><a href="leaderboard.html">Leaderboard</a><a href="causal-variants.html">Causal variants</a><a href="corpus.html">Corpus</a><a class="ext" href="https://huggingface.co/collections/living-models/botanic1-6a97f4e3c33f3d109a75057d">Models</a></nav></div></header>
|
| 17 |
-
|
|
|
|
|
|
|
| 18 |
<div class="inner">
|
| 19 |
<div class="medallion">
|
| 20 |
<div class="hero-art" id="hero-art" aria-hidden="true"></div>
|
| 21 |
<div class="centre">
|
| 22 |
<p class="org">Living Models</p>
|
| 23 |
<div class="wordmark" aria-label="BOTANIC-1"><span class="cell">B</span><span class="cell">O</span><span class="cell">T</span><span class="cell">A</span><span class="cell">N</span><span class="cell">I</span><span class="cell">C</span><span class="cell tok" data-state="masked"><span class="probs"><i></i><i class="top"></i><i></i><i></i></span>?</span></div>
|
| 24 |
-
<
|
| 25 |
-
<
|
| 26 |
-
<div><dt>context</dt><dd><b>100 bp to 128 kbp</b></dd></div>
|
| 27 |
-
<div><dt>tokens</dt><dd>single nucleotide</dd></div>
|
| 28 |
-
<div><dt>backbone</dt><dd>bidirectional Mamba2</dd></div>
|
| 29 |
-
<div><dt>pre-training</dt><dd>314.6B tokens · <b>320 species</b></dd></div>
|
| 30 |
-
<div><dt>sizes</dt><dd>318M to 3.2B</dd></div>
|
| 31 |
-
</dl>
|
| 32 |
<div class="chips">
|
| 33 |
-
<a class="primary" href="https://huggingface.co/
|
| 34 |
-
<a href="https://huggingface.co/spaces/living-models/botanic-gemma-chat">Try it in the chat demo <span class="ext">↗</span></a>
|
| 35 |
<a href="botanic1-report.pdf">Technical report <span class="ext">PDF</span></a>
|
| 36 |
-
<a href="https://huggingface.co/datasets/living-models/Botanic1-pretraining">Pre-training data</a>
|
| 37 |
-
<a href="https://huggingface.co/datasets/living-models/Botanic1-causal-variants">Causal-variant benchmark</a>
|
| 38 |
</div>
|
| 39 |
</div>
|
| 40 |
</div>
|
| 41 |
</div>
|
| 42 |
</section>
|
| 43 |
|
| 44 |
-
<div class="page">
|
| 45 |
-
<
|
| 46 |
-
<
|
| 47 |
-
|
| 48 |
-
|
| 49 |
-
</
|
| 50 |
-
<p class="lede">Botanic1 is a family of four genomic language models for plants, from 318M to 3.2B parameters. Each one is a bidirectional Mamba2 encoder pre-trained with masked language modelling on single-nucleotide tokens, over 320 species spanning the land plants, on up to 131,072 bp windows.</p>
|
| 51 |
-
<p>The models read raw DNA and return two things. An embedding per nucleotide, which trains small probes or fine-tunes to a new task. And a likelihood for every base, which scores a variant with no annotation, alignment or population data. All four sizes rank at the top of the frozen-model benchmark against 20 plant and generalist genomic language models, after 314.6B training tokens where the closest competitor used about 4 trillion.</p>
|
| 52 |
-
<p>Botanic1-S, Botanic1-M and Botanic1-L are released for research use. The <a href="botanic1-report.pdf">technical report</a> has the full evaluation; this page is the short version.</p>
|
| 53 |
-
|
| 54 |
-
<h2 id="start">Get started</h2>
|
| 55 |
-
<div class="tablewrap">
|
| 56 |
-
<table class="models-table">
|
| 57 |
-
<thead><tr><th>Model</th><th class="n">Parameters</th><th class="n">Blocks</th><th class="n">Hidden size</th><th class="n">Context</th><th>Repository</th></tr></thead>
|
| 58 |
-
<tbody>
|
| 59 |
-
<tr class="ours"><td class="name">Botanic1-S</td><td class="n">318M</td><td class="n">24</td><td class="n">1,024</td><td class="n">8,192 bp</td><td><a href="https://huggingface.co/living-models/Botanic1-S">living-models/Botanic1-S</a></td></tr>
|
| 60 |
-
<tr class="ours"><td class="name">Botanic1-M</td><td class="n">688M</td><td class="n">52</td><td class="n">1,024</td><td class="n">8,192 bp</td><td><a href="https://huggingface.co/living-models/Botanic1-M">living-models/Botanic1-M</a></td></tr>
|
| 61 |
-
<tr class="ours"><td class="name">Botanic1-L</td><td class="n">2.11B</td><td class="n">72</td><td class="n">1,536</td><td class="n">8,192 bp</td><td><a href="https://huggingface.co/living-models/Botanic1-L">living-models/Botanic1-L</a></td></tr>
|
| 62 |
-
<tr class="ours"><td class="name">Botanic1-XL</td><td class="n">3.18B</td><td class="n">80</td><td class="n">1,792</td><td class="n">8,192 bp</td><td><a href="https://huggingface.co/living-models/Botanic1-XL">living-models/Botanic1-XL</a></td></tr>
|
| 63 |
-
</tbody>
|
| 64 |
-
<caption>Single-nucleotide tokeniser (A, T, C, G, N, one token per base). Pure PyTorch; runs on CPU, Apple Silicon and CUDA, where the <code>mamba_ssm</code> kernels are used when installed. Research use only, under the Living Models research licence.</caption>
|
| 65 |
-
</table>
|
| 66 |
-
</div>
|
| 67 |
-
<pre><code>from transformers import AutoModel, AutoTokenizer
|
| 68 |
-
|
| 69 |
-
name = "living-models/Botanic1-S"
|
| 70 |
-
model = AutoModel.from_pretrained(name, trust_remote_code=True)
|
| 71 |
-
tokenizer = AutoTokenizer.from_pretrained(name, trust_remote_code=True)
|
| 72 |
|
| 73 |
-
|
| 74 |
-
|
| 75 |
-
|
| 76 |
-
|
| 77 |
-
|
| 78 |
-
|
| 79 |
-
|
| 80 |
-
<
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 81 |
|
| 82 |
-
<
|
| 83 |
-
<
|
| 84 |
-
|
| 85 |
-
|
| 86 |
-
</
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 87 |
|
| 88 |
-
<
|
| 89 |
-
<
|
| 90 |
-
<
|
| 91 |
-
<
|
| 92 |
-
|
| 93 |
-
|
| 94 |
-
</
|
| 95 |
-
<
|
|
|
|
|
|
|
|
|
|
| 96 |
|
| 97 |
-
<
|
| 98 |
-
<p>
|
| 99 |
-
<
|
| 100 |
-
<
|
| 101 |
-
<figcaption><span class="figlabel">Figure</span> <b>Scaling.</b> Training loss and downstream task performance against tokens seen for the four sizes; the dashed curve is the shared learning-rate schedule and stars mark the released checkpoints at 314.6B tokens. <span class="small">Hover for the four models at one token count.</span></figcaption>
|
| 102 |
-
</figure>
|
| 103 |
-
<p>Botanic1-S, at 318M parameters, outperforms models more than ten times larger, including Carbon-8B (0.727) and Evo 2 at 7B (0.695), and does so after 314.6B base pairs where PlantCAD2-L processed 4.03T and NTv3 12.1T. Botanic1-L and Botanic1-XL are significantly above PlantCAD2-L under a paired bootstrap over the nine families; Botanic1-S and Botanic1-M are not.</p>
|
| 104 |
-
<div class="card">
|
| 105 |
-
<div class="cardhead"><span class="label">Fig · size against score</span><span class="small">downstream task performance · 22 frozen-model metrics · log scale · hover a mark</span></div>
|
| 106 |
-
<div id="intro-chart"></div>
|
| 107 |
-
<p class="chartnote">Organisation logos are shown for attribution. <a href="leaderboard.html">Full leaderboard</a>, with the nine-family scorecard and the tokens-seen view.</p>
|
| 108 |
</div>
|
| 109 |
-
|
| 110 |
-
<h2 id="finetune">Fine-tuning: easier, and better than other foundation models</h2>
|
| 111 |
-
<p>Botanic1-S adapts with full fine-tuning, LoRA or IA<sup>3</sup>. On four regulatory tasks from the Plant Genomic Benchmark it beats AgroNT and PlantCAD2-L in regression (Pearson <span class="math">r</span> 0.861 against 0.834 and 0.790 for terminator strength) and leads poly(A) and lncRNA classification in every setting but one. Fine-tuning PlantCAD2-L with the authors' code needed model modifications to run stably; Botanic1-S and AgroNT did not.</p>
|
| 112 |
-
<figure class="wide">
|
| 113 |
-
<div id="finetune-chart"></div>
|
| 114 |
-
<figcaption><span class="figlabel">Figure</span> <b>Fine-tuning across four plant-regulatory tasks.</b> Held-out test metric per model and adaptation regime; regression tasks report Pearson <span class="math">r</span> and R<sup>2</sup>, classification tasks the mean AUROC over six species. The dashed line is the best task-specific model trained from scratch. <span class="small">Pick a task and metric above; hover a bar for every number of its cell.</span></figcaption>
|
| 115 |
-
</figure>
|
| 116 |
-
<h3 id="atac">Base-resolution chromatin accessibility</h3>
|
| 117 |
-
<p>Fine-tuned to predict ATAC-seq profiles at single-base resolution, Botanic1-S beats ChromBPNet, the specialised model for this task, in Arabidopsis and in maize, on read-count correlation and on profile shape. The same architecture trained from random weights does not, so the gain comes from pre-training.</p>
|
| 118 |
-
<figure class="wide">
|
| 119 |
-
<div id="atac-chart"></div>
|
| 120 |
-
<figcaption><span class="figlabel">Figure</span> <b>Base-resolution ATAC-seq prediction against ChromBPNet.</b> Held-out chromosomes: Arabidopsis chromosome 4 (4,646 peaks) and maize chromosomes 1 and 9 (23,220 peaks). Whiskers are 95% bootstrap intervals; ChromBPNet is scored by its own pipeline, without intervals. <span class="small">Switch the metric above; hover a bar for all four.</span></figcaption>
|
| 121 |
-
</figure>
|
| 122 |
-
|
| 123 |
-
<h3 id="tf">Genome-wide transcription factor binding</h3>
|
| 124 |
-
<p>Fine-tuned on 568 <em>Arabidopsis thaliana</em> DAP-seq assays grouped into 46 transcription factor families, the context-extended Botanic1-S reaches a chromosome 5 macro average precision of 0.72, above NTv3 (0.69 and 0.68), AgroNT (0.63) and DeepCistrome, a bespoke architecture trained from scratch (0.62), at a lower compute budget than all but the smallest NTv3.</p>
|
| 125 |
-
<figure class="wide">
|
| 126 |
-
<div id="tf-chart"></div>
|
| 127 |
-
<figcaption><span class="figlabel">Figure</span> <b>Genome-wide transcription factor family binding in <em>Arabidopsis thaliana</em>.</b> Macro average precision across three seeds on the chromosome 5 test set; circles are the seeds. The dashed line is the bespoke architecture trained from scratch, DeepCistrome. <span class="small">Hover a bar for the seeds and the paired margin against Botanic1-S.</span></figcaption>
|
| 128 |
-
</figure>
|
| 129 |
-
|
| 130 |
-
<h2 id="more">More in the technical report</h2>
|
| 131 |
-
<p><b>BOTANIC-1: a series of long-context plant genomic foundation models in the agentic era.</b> Amélie Barozet<sup>★</sup>, Vincent Cabeli<sup>★</sup>, Jean Ogier du Terrail<sup>★</sup>, Alexey Rukhovich<sup>★</sup>, Thomas Janssoone<sup>‡</sup>, Gary Klajer<sup>‡</sup>, Zeinab Sheikhitarghi<sup>‡</sup>, Gregory Andrews, Cyril Veran, Léonard Strouk. Living Models, Paris. <a href="botanic1-report.pdf">PDF</a>. <span class="small"><sup>★</sup> equal contribution, alphabetical; <sup>‡</sup> core team, alphabetical.</span></p>
|
| 132 |
-
<ul class="also">
|
| 133 |
-
<li><a href="factory.html">The model factory</a><span class="small">How agents run the experiments, and the data pipeline behind the 320-species corpus.</span></li>
|
| 134 |
-
<li><a href="botanic1-report.pdf">Long context up to 131 kbp</a><span class="small">Pseudo-perplexity, needle-in-a-haystack retrieval and chromatin accessibility at long context.</span></li>
|
| 135 |
-
<li><a href="botanic1-report.pdf">What the model has learned</a><span class="small">Sparse autoencoder features that read as splice sites, introns and codon position.</span></li>
|
| 136 |
-
<li><a href="botanic1-report.pdf">Botanic1 as a tool for an agent</a><span class="small">The melon <em>CmEIN3</em> locus with a Gemma 4 agent calling Botanic1-L.</span></li>
|
| 137 |
-
<li><a href="leaderboard.html">Leaderboard</a><span class="small">Downstream task performance, the nine-family scorecard, size and tokens seen.</span></li>
|
| 138 |
-
<li><a href="corpus.html">Pre-training corpus</a><span class="small">The 320 species as a treemap, with the weighting and deduplication passages.</span></li>
|
| 139 |
-
</ul>
|
| 140 |
-
|
| 141 |
-
<h2 id="availability">Downloads</h2>
|
| 142 |
-
<ul>
|
| 143 |
-
<li><b>Models.</b> Botanic1-S, Botanic1-M, Botanic1-L and Botanic1-XL in the <a href="https://huggingface.co/collections/living-models/botanic1-6a97f4e3c33f3d109a75057d">Botanic1 collection</a>, with the previous generation <a href="https://huggingface.co/living-models/Botanic0-L">Botanic0</a>. Research use only, under the Living Models research licence.</li>
|
| 144 |
-
<li><b>Pre-training data.</b> The 8 kbp corpus, with source manifests and assembly metadata: <a href="https://huggingface.co/datasets/living-models/Botanic1-pretraining">living-models/Botanic1-pretraining</a>.</li>
|
| 145 |
-
<li><b>Causal-variant benchmark.</b> The 545 tasks, their candidate SNPs and the curation audit: <a href="https://huggingface.co/datasets/living-models/Botanic1-causal-variants">living-models/Botanic1-causal-variants</a>.</li>
|
| 146 |
-
<li><b>Technical report.</b> <a href="botanic1-report.pdf">PDF</a>.</li>
|
| 147 |
-
</ul>
|
| 148 |
-
|
| 149 |
-
<h2 id="cite">Citation</h2>
|
| 150 |
-
<pre><code>@article{botanic1,
|
| 151 |
-
author = {Barozet, Am{\'e}lie and Cabeli, Vincent and Ogier du Terrail, Jean
|
| 152 |
-
and Rukhovich, Alexey and Janssoone, Thomas and Klajer, Gary
|
| 153 |
-
and Sheikhitarghi, Zeinab and Andrews, Gregory and Veran, Cyril
|
| 154 |
-
and Strouk, L{\'e}onard},
|
| 155 |
-
title = {BOTANIC-1: a series of long-context plant genomic foundation
|
| 156 |
-
models in the agentic era},
|
| 157 |
-
year = {2026},
|
| 158 |
-
publisher = {Living Models},
|
| 159 |
-
note = {Technical report},
|
| 160 |
-
}</code></pre>
|
| 161 |
</main>
|
| 162 |
-
|
| 163 |
-
<footer class="site-footer">
|
| 164 |
-
<p>Living Models, Paris. Botanic1 is released for research use under the Living Models research licence. Organisation logos are third-party trademarks shown for attribution.</p>
|
| 165 |
-
<p>Numbers on this page are the technical report's; figures are drawn live from its data tables.</p>
|
| 166 |
-
</footer>
|
| 167 |
-
</div>
|
| 168 |
<div class="tip" id="tip" role="tooltip"></div>
|
| 169 |
-
<script src="assets/hero.js"></script>
|
| 170 |
-
<script src="assets/figure1.js"></script>
|
| 171 |
-
<script src="assets/sections.js"></script>
|
| 172 |
</body>
|
| 173 |
</html>
|
|
|
|
| 3 |
<head>
|
| 4 |
<meta charset="utf-8">
|
| 5 |
<meta name="viewport" content="width=device-width, initial-scale=1">
|
| 6 |
+
<title>Botanic1 | Genomic language models for land plants</title>
|
| 7 |
+
<meta name="description" content="Botanic1: genomic language models trained on 320 plant species, from 318M parameters. Model cards, usage examples, and technical report.">
|
| 8 |
<script>(function(){try{var t=new URLSearchParams(location.search).get('__theme');if(t==='dark'||t==='light')document.documentElement.setAttribute('data-theme',t);}catch(e){}})();</script>
|
| 9 |
<link rel="preconnect" href="https://fonts.googleapis.com">
|
| 10 |
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
| 11 |
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Manrope:wght@500;600;700;800&family=Spectral:ital,wght@0,400;0,500;0,600;1,400&family=IBM+Plex+Mono:wght@400;500;600&display=swap">
|
| 12 |
<link rel="stylesheet" href="assets/site.css">
|
| 13 |
+
<link rel="stylesheet" href="assets/landing.css">
|
| 14 |
+
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/7.9.0/d3.min.js" defer></script>
|
| 15 |
+
<script src="assets/hero.js" defer></script>
|
| 16 |
+
<script src="assets/landing.js" defer></script>
|
| 17 |
</head>
|
| 18 |
+
<body class="landing">
|
| 19 |
+
<header class="topbar"><div class="inner"><a class="lockup" href="index.html"><div class="wordmark" aria-label="BOTANIC-1"><span class="cell">B</span><span class="cell">O</span><span class="cell">T</span><span class="cell">A</span><span class="cell">N</span><span class="cell">I</span><span class="cell">C</span><span class="cell tok" data-state="masked"><span class="probs"><i></i><i class="top"></i><i></i><i></i></span>?</span></div><span class="org">Living Models</span></a><nav aria-label="Pages"><a href="index.html" aria-current="page">Overview</a><a href="factory.html">Model factory</a><a href="leaderboard.html">Leaderboard</a><a href="causal-variants.html">Causal variants</a><a href="corpus.html">Corpus</a><a class="ext" href="https://huggingface.co/collections/living-models/botanic1-6a97f4e3c33f3d109a75057d" target="_blank" rel="noopener">Models</a></nav></div></header>
|
| 20 |
+
|
| 21 |
+
<main>
|
| 22 |
+
<section class="hero" aria-labelledby="intro-title">
|
| 23 |
<div class="inner">
|
| 24 |
<div class="medallion">
|
| 25 |
<div class="hero-art" id="hero-art" aria-hidden="true"></div>
|
| 26 |
<div class="centre">
|
| 27 |
<p class="org">Living Models</p>
|
| 28 |
<div class="wordmark" aria-label="BOTANIC-1"><span class="cell">B</span><span class="cell">O</span><span class="cell">T</span><span class="cell">A</span><span class="cell">N</span><span class="cell">I</span><span class="cell">C</span><span class="cell tok" data-state="masked"><span class="probs"><i></i><i class="top"></i><i></i><i></i></span>?</span></div>
|
| 29 |
+
<h1 id="intro-title">Genomic language models<br>for land plants.</h1>
|
| 30 |
+
<p class="hero-summary">Nucleotide embeddings and variant scores, from 318M parameters.</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 31 |
<div class="chips">
|
| 32 |
+
<a class="primary" href="https://huggingface.co/living-models/Botanic1-S" target="_blank" rel="noopener">Model card <span aria-hidden="true">↗</span></a>
|
|
|
|
| 33 |
<a href="botanic1-report.pdf">Technical report <span class="ext">PDF</span></a>
|
|
|
|
|
|
|
| 34 |
</div>
|
| 35 |
</div>
|
| 36 |
</div>
|
| 37 |
</div>
|
| 38 |
</section>
|
| 39 |
|
| 40 |
+
<div class="page landing-content">
|
| 41 |
+
<nav class="landing-tabs" aria-label="About Botanic1">
|
| 42 |
+
<a id="tab-overview" href="#overview">Overview</a>
|
| 43 |
+
<a id="tab-use" href="#use">Use the model</a>
|
| 44 |
+
<a id="tab-models" href="#models">Models & data</a>
|
| 45 |
+
</nav>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 46 |
|
| 47 |
+
<section class="landing-panel" id="overview" aria-labelledby="tab-overview">
|
| 48 |
+
<div class="facts">
|
| 49 |
+
<article class="fact">
|
| 50 |
+
<p class="fact-label">Model size</p>
|
| 51 |
+
<h2>318M parameters</h2>
|
| 52 |
+
<p>Botanic1-S scores 0.758 on the aggregate benchmark across nine task families. PlantCAD2-L scores 0.756, Carbon-8B 0.727, and Evo 2-7B 0.695.</p>
|
| 53 |
+
<p class="fact-note">Frozen models · aggregate test score (S<sub>bal</sub><sup>test</sup>)</p>
|
| 54 |
+
<a class="text-link" href="leaderboard.html">Scores by task and species <span aria-hidden="true">↗</span></a>
|
| 55 |
+
</article>
|
| 56 |
+
<article class="fact">
|
| 57 |
+
<p class="fact-label">Species coverage</p>
|
| 58 |
+
<h2>320 land plant species</h2>
|
| 59 |
+
<p>Pre-training spans bryophytes, vascular spore plants, gymnosperms, and flowering plants. Splice-site probes trained on Arabidopsis transfer to rice, sorghum, and maize.</p>
|
| 60 |
+
<p class="fact-note">Mean transfer AUPRC: Botanic1-S 0.826 · PlantCAD2-L 0.819</p>
|
| 61 |
+
<a class="text-link" href="corpus.html">Explore the training species <span aria-hidden="true">↗</span></a>
|
| 62 |
+
</article>
|
| 63 |
+
<article class="fact">
|
| 64 |
+
<p class="fact-label">Variant prioritisation</p>
|
| 65 |
+
<h2>Scores from sequence alone</h2>
|
| 66 |
+
<p>Botanic1-XL recovers 49.9% of validated causal variants within the top 1% of candidates, across 545 studies in 14 species. Scoring requires the reference sequence and alternate allele.</p>
|
| 67 |
+
<p class="fact-note">49.9% recall · 95% CI 45.7% to 54.1% · 100 kbp loci</p>
|
| 68 |
+
<a class="text-link" href="causal-variants.html">Explore the variant benchmark <span aria-hidden="true">↗</span></a>
|
| 69 |
+
</article>
|
| 70 |
+
<article class="fact">
|
| 71 |
+
<p class="fact-label">Fine-tuning</p>
|
| 72 |
+
<h2>Regulatory predictions</h2>
|
| 73 |
+
<p>Fine-tuned Botanic1-S predicts chromatin accessibility at single-base resolution in Arabidopsis and maize, with higher read-count correlation and lower profile error than ChromBPNet.</p>
|
| 74 |
+
<p class="fact-note">Held-out chromosomes · ATAC-seq profiles</p>
|
| 75 |
+
<a class="text-link" href="botanic1-report.pdf">Methods and results in the report <span aria-hidden="true">↗</span></a>
|
| 76 |
+
</article>
|
| 77 |
+
</div>
|
| 78 |
+
<p class="panel-note">Evaluations, uncertainty estimates, and species-level results are detailed in the <a href="botanic1-report.pdf">technical report</a>.</p>
|
| 79 |
+
</section>
|
| 80 |
|
| 81 |
+
<section class="landing-panel" id="use" aria-labelledby="tab-use">
|
| 82 |
+
<div class="section-intro">
|
| 83 |
+
<h2>Working with Botanic1</h2>
|
| 84 |
+
<p>Choose a workflow. The model card contains the code and setup instructions.</p>
|
| 85 |
+
</div>
|
| 86 |
+
<div class="workflow-list">
|
| 87 |
+
<article class="workflow">
|
| 88 |
+
<div><h3>Score variants</h3><p>Provide a reference sequence, a variant position, and an alternate base. Get a likelihood ratio for each substitution, with no task-specific training.</p></div>
|
| 89 |
+
<a class="text-link" href="https://huggingface.co/living-models/Botanic1-S#2-zero-shot-variant-effect-scoring-llr" target="_blank" rel="noopener">Variant-scoring example <span aria-hidden="true">↗</span></a>
|
| 90 |
+
</article>
|
| 91 |
+
<article class="workflow">
|
| 92 |
+
<div><h3>Extract embeddings</h3><p>Provide DNA sequences. Get a representation at each nucleotide to train a probe for your task.</p></div>
|
| 93 |
+
<a class="text-link" href="https://huggingface.co/living-models/Botanic1-S#1-generating-embeddings" target="_blank" rel="noopener">Embedding example <span aria-hidden="true">↗</span></a>
|
| 94 |
+
</article>
|
| 95 |
+
<article class="workflow">
|
| 96 |
+
<div><h3>Fine-tune on your data</h3><p>Use labelled sequences to adapt the model with full fine-tuning or parameter-efficient methods.</p></div>
|
| 97 |
+
<a class="text-link" href="https://huggingface.co/living-models/Botanic1-S#4-fine-tuning-lora-or-full" target="_blank" rel="noopener">Fine-tuning scripts <span aria-hidden="true">↗</span></a>
|
| 98 |
+
</article>
|
| 99 |
+
</div>
|
| 100 |
+
<p class="panel-note">For an interactive workflow, <a href="https://huggingface.co/spaces/living-models/botanic-gemma-chat" target="_blank" rel="noopener">open the chat demo</a> and upload FASTA or VCF files.</p>
|
| 101 |
+
</section>
|
| 102 |
|
| 103 |
+
<section class="landing-panel" id="models" aria-labelledby="tab-models">
|
| 104 |
+
<div class="section-intro">
|
| 105 |
+
<h2>Models, data, and report</h2>
|
| 106 |
+
</div>
|
| 107 |
+
<div class="resource-list">
|
| 108 |
+
<a href="https://huggingface.co/collections/living-models/botanic1-6a97f4e3c33f3d109a75057d" target="_blank" rel="noopener"><span>Model collection <span aria-hidden="true">↗</span></span><span class="small">Checkpoints, model cards, code examples, and licence.</span></a>
|
| 109 |
+
<a href="https://huggingface.co/datasets/living-models/Botanic1-pretraining" target="_blank" rel="noopener"><span>Pre-training corpus <span aria-hidden="true">↗</span></span><span class="small">Sequence windows from 320 species and source assemblies.</span></a>
|
| 110 |
+
<a href="https://huggingface.co/datasets/living-models/Botanic1-causal-variants" target="_blank" rel="noopener"><span>Causal-variant benchmark <span aria-hidden="true">↗</span></span><span class="small">545 studies, candidate SNPs, and the curation audit.</span></a>
|
| 111 |
+
<a href="botanic1-report.pdf"><span>Technical report <span class="small">PDF</span></span><span class="small">Training, evaluation, long context, and interpretability.</span></a>
|
| 112 |
+
</div>
|
| 113 |
+
</section>
|
| 114 |
|
| 115 |
+
<footer class="site-footer">
|
| 116 |
+
<p>Living Models · Paris</p>
|
| 117 |
+
<p>Models for research use · <a href="https://huggingface.co/living-models/Botanic1-S/blob/main/LICENSE" target="_blank" rel="noopener">Licence</a> · <a href="botanic1-report.pdf">Technical report</a></p>
|
| 118 |
+
</footer>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 119 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 120 |
</main>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 121 |
<div class="tip" id="tip" role="tooltip"></div>
|
|
|
|
|
|
|
|
|
|
| 122 |
</body>
|
| 123 |
</html>
|