Messai × Helmholtz-UFZ
Live collaboration briefing
The data layer for mechanistic bioelectrochemistry.
Corpus-scale parameters, priors, and model setups — mapped to Dr. Benjamin Korth’s work on the thermodynamics, kinetics, and energy efficiency of electroactive microorganisms.
01 · Model setups you’d recognise
Open any configuration in the lab
Each card lists the physics that governs the configuration. The figures on the cards are typical literature ranges with no source recorded in MESSAI yet: orientation, not data. Click a card to open its detail in the live catalog.
Microbial Electrosynthesis
Carbon FixerMFC run in reverse: electrons + CO₂ → acetate/butyrate. Sporomusa ovata on a cathode, typically at −0.4…−1.2 V vs SHE.
Butler–Volmer + HER · CO₂/HCO₃⁻/CO₃²⁻ equilibria + mass transfer · Wood–Ljungdahl flux balance · multi-product Monod
Dual-Chamber MEC
Hydrogen EngineAnode exoelectrogens oxidise acetate; ~0.4–0.8 V bias drives H₂ evolution at the cathode. H₂ energy is often reported at 150–400 % of the electrical input alone, substrate energy not counted.
Butler–Volmer w/ biofilm conduction (Marcus–Hush) · Monod growth · Volmer–Heyrovsky–Tafel HER · Nernst–Planck across CEM
Resource-Recovery / MDC
Circular MinerThree-chamber bioelectrodialysis: cathodic reduction + ion recovery + desalination. Net energy reported between −0.5 and +0.3 kWh·m⁻³.
Nernst–Planck multi-ion transport · Donnan equilibria at membranes · Butler–Volmer at electrodes · stack charge balance
Continuous Microfluidic BES
Laminar ShieldMembraneless laminar co-flow at low Re; acetate feed at short residence time — a clean testbed for continuous acetate-uptake kinetics.
Navier–Stokes (low-Re) · convection–diffusion–reaction · Butler–Volmer boundaries · Monod biofilm · δ≈√(D·L/U)
02 · Meta-analysis, sliced by system class
Pooled Bayesian priors as forest plots
Pooled + per-system-class posteriors of the population mean with 95% credible intervals (where a typical study lands, not the range of single reactors) — the per-class split (MES / MEC / MFC) is the story. An amber tier label marks a stratum whose MCMC fit hasn’t converged: flagged, never hidden. Open any card in the live explorer.
Coulombic efficiency
Open in explorer →Forest plot compares MES vs MEC vs MFC — the per-class split is the story.
Areal current density
Open in explorer →Log-scale prior; heavy-tailed spread reflects real cross-corpus variance.
Applied potential
Open in explorer →Energy input distribution for MEC — the energetics lever.
COD removal
Open in explorer →Remediation performance across cathodic and mixed systems.
03 · Priors you can drop into your models
Download the posteriors as sampling specs
The export ships each fit as a ready-to-sample distribution (natural-log lognormal for heavy-tailed quantities, normal for linear) with n, units, provenance, and caveats — straight into PyMC / Stan / scipy.
| Parameter | Class | n | Central | 95% CI | Flags |
|---|---|---|---|---|---|
| coulombic_efficiency | pooled | 250 | 37.8%mean | 34.1% – 42.3% | failed diagnosticssampler did not converge (converged=false, rhat_max=1.0385, ess_bulk_min=52) |
| MEC | 33 | 57.3%mean | 50.7% – 64.6% | trustworthy | |
| MES | 29 | 68.9%mean | 61.9% – 77.7% | failed diagnosticssampler did not converge (converged=false, rhat_max=1.007, ess_bulk_min=215) | |
| MFC | 134 | 25.3%mean | 20.8% – 28.9% | failed diagnosticssampler did not converge (converged=false, rhat_max=1.0192, ess_bulk_min=85) | |
| current_density_areal | pooledlog | 187 | 0.417 A/m²geo. mean | 0.273 A/m² – 0.663 A/m² | failed diagnosticssampler did not converge (converged=false, rhat_max=1.0424, ess_bulk_min=90) |
| MEClog | 16 | 1.32 A/m²geo. mean | 0.408 A/m² – 4.1 A/m² | failed diagnosticssampler did not converge (converged=false, rhat_max=1.0131, ess_bulk_min=216) | |
| MESlog | 15 | 6.05 A/m²geo. mean | 1.03 A/m² – 32.4 A/m² | failed diagnosticssampler did not converge (converged=false, rhat_max=1.0129, ess_bulk_min=244) | |
| MFClog | 116 | 0.246 A/m²geo. mean | 0.157 A/m² – 0.413 A/m² | failed diagnosticssampler did not converge (converged=false, rhat_max=1.0275, ess_bulk_min=179) | |
| cod_removal | pooled | 358 | 71.7%mean | 69.4% – 73.7% | failed diagnosticssampler did not converge (converged=false, rhat_max=1.0079, ess_bulk_min=381) |
| MEC | 42 | 68%mean | 61.9% – 73.9% | failed diagnosticssampler did not converge (converged=false, rhat_max=1.0048, ess_bulk_min=318) | |
| MES | 12 | 79.9%mean | 63.2% – 98.4% | failed diagnosticssampler did not converge (converged=false, rhat_max=1.4992, ess_bulk_min=3) | |
| MFC | 237 | 72.5%mean | 69.9% – 74.9% | failed diagnosticssampler did not converge (converged=false, rhat_max=1.0061, ess_bulk_min=267) | |
| applied_potential | pooled | 11 | -0.0757 Vmean | -0.329 V – 0.203 V | failed diagnosticssampler did not converge (converged=false, rhat_max=1.024, ess_bulk_min=202) |
Central = the posterior centre of the population mean (a geometric mean for log fits), the same quantity as the 95 % interval beside it. Grades come from the gate the fine-tune endpoint uses: unusable / failed diagnostics = within-study variance collapsed, the trainer did not mark the fit converged (it requires R-hat ≤ 1.01, ESS ≥ 400 and no divergences), unreliable LOO or ν < 1, interval struck through; sparse = fewer than 8 papers; usable = passes the gate with fewer than 20 papers or an unconfirmed LOO.
04 · Continuous-BES acetate kinetics
The acetate-uptake picture your models formalise
Acetate uptake by continuous Geobacter biofilms is commonly modelled with Monod kinetics, q = q_max·S/(K_S+S). The table shows corpus fits for related observable quantities, graded by the same gate as the priors above; several fail it. None of them is K_S or q_max, and each pools every reactor type in the corpus rather than continuous biofilms. That gap is where your continuous-BES data would come in.
A shape, not a fit: K_S and q_max are unknown, so neither axis has a scale. The corpus’s pooled areal current density (posterior centre 0.417 A/m²) is a centre across all reactor types, not the q_max of any biofilm, and is not drawn here.
| Kinetic quantity | n | Central | 95% CI | Flags |
|---|---|---|---|---|
| Substrate concentrationlog | 90 | 646 mg/L | 393 mg/L – 1.09e+3 mg/L | failed diagnostics |
| Acetate concentrationlog | 75 | 848 mg/L | 532 mg/L – 1.35e+3 mg/L | failed diagnostics |
| Areal current densitylog | 187 | 0.417 A/m² | 0.273 A/m² – 0.663 A/m² | failed diagnostics |
| Peak current | 125 | 0.000851 A | 0.000551 A – 0.00111 A | unusable |
| Exchange current density (j₀)log | 9 | 0.163 A/m² | 0.02 A/m² – 0.894 A/m² | failed diagnostics |
| Specific growth rate (µ) | 10 | 0.128 1/h | 0.0359 1/h – 0.231 1/h | failed diagnostics |
| Biofilm thicknesslog | 40 | 0.0000266 m | 0.0000116 m – 0.0000610 m | failed diagnostics |
| Flow ratelog | 57 | 0.311 L/h | 0.227 L/h – 0.426 L/h | unusable |
What the corpus doesn’t yet fit — your continuous-BES data would seed these
- K_S — Half-saturation constant: the acetate-affinity term in Monod uptake q = q_max·S/(K_S+S) — not extracted corpus-wide
- q_max — Max specific uptake rate: the saturation plateau of acetate uptake — not extracted corpus-wide
05 · Fine-tune with your own data
Turn the corpus prior into your posterior
Paste your own measurements and pick a base stratum. MESSAI runs a closed-form partial-pooling update — corpus prior ⊕ your data → your posterior — in the same sampling-spec format you download above. It reports the shrinkage weight w (how much is borrowed from the corpus). It refuses a base fit whose within-study variance collapsed, whose LOO is unreliable, whose ν is below 1, or that the trainer did not mark converged: it requires R-hat at most 1.01, ESS at least 400 and no divergences, and a fit with no convergence flag is refused too. Until 27 Oct 2026 it accepted fits the trainer marked unconverged when R-hat was at most 1.05; it no longer does. Bases with fewer than 8 papers are accepted with a warning. The numbers you paste are sent to MESSAI’s API for the calculation and are not stored.
Struck-through strata are refused by the fine-tune endpoint: the trainer did not mark the fit converged (R-hat ≤ 1.01, ESS ≥ 400), LOO is unreliable or ν is below 1, or within-study variance collapsed so any data you supply would crush the prior. Hover for the specific reason.
Open decision
Which model should answer lab-design chat?
Lab-design answers take about 50 seconds today. A smaller model answers the same questions in about 19 seconds, for about 3% of the cost, but looks up the corpus less often. We would like your view on which matters more for your work.
looking up papers and datawriting the answer
| Measure | Claude Haiku 5.5 | Claude Sonnet 4.6 |
|---|---|---|
| Time per answer (median) | 19 s | 50 s |
| First visible activity | 2.2 s | 2.4 s |
| Writing the final answer | 10.6 s | 33.7 s |
| Corpus look-ups per answer | 4 | 7 |
| Answer length (tokens) | 3,026 | 2,346 |
| Estimated cost per answer | $0.007 | $0.21 |
What the answers looked like
- Both
Both models cited papers from the corpus and said plainly when the evidence was thin.
- Sonnet 4.6
Split power density by the area it is normalised to (anode, cathode, membrane) and warned against comparing across bases.
- Haiku 5.5
Gave a direct estimate (100–150 mW/m², anode area) from a few acetate papers and flagged it as preliminary.
- Sonnet 4.6
Added a section on mechanisms that was general knowledge rather than drawn from the corpus.
Read for 2 of the 10 question pairs only.
The options
- 1Keep Sonnet 4.6Most careful with units and bases. Answers stay at about 50 seconds.
- 2Haiku 5.5 for lab-design onlyLab answers in about 19 seconds; general questions keep Sonnet.
- 3Haiku 5.5 everywhereFastest and cheapest. Every answer relies on a model that looks up the corpus less often.
Which would you pick, and is there a question you would want us to test both models on? Reply in the comments on this page or at founders@messai.io.
Method: 10 lab-design questions per model, sent in alternating order on Oct 26, 2026; no answer fell back to another provider. Times are measured on the server and exclude your network. Prices are the AI Gateway list prices; cost per answer is an estimate from median token counts with 81% of input read from cache.
Where the data is soft — stated up front
- Extraction is noisy — cross-corpus scatter is large (power density CoV ≈ 10³%); every value ships with n, units, and range.
- Coverage is partial — a substantial share of indexed papers are not yet joined to extracted values, so distributions reflect the extracted subset.
- Sparse or non-converged fits are flagged, never hidden.
Priors served from the per-class hierarchical v2 artifact (PyMC NUTS, Student-t). Model setups and meta-analysis link to the live lab and meta-analysis surfaces. Prepared as a collaboration briefing for Dr. Benjamin Korth, Helmholtz Centre for Environmental Research — UFZ.