EHUX Biomass → Carbon Recovery Model

Caculation from Biomass of Algae to real numbers of CO2

Algae reactor
EHUX Biomass → Carbon Recovery Model
EHUX Biomass → Carbon Recovery Model
A compact, transparent framework to convert Emiliania huxleyi (EHUX) biomass (dry weight) into carbon and CO₂-equivalent accounting, separating POC (organic) from PIC (inorganic, CaCO₃) with clear, auditable assumptions.

1) Background: C:N:P Variability

Redfield stoichiometry (C:N:P ≈ 106:16:1, mol:mol:mol) is a useful reference, but real cultures vary by species and nutrient status. For EHUX-like compositions, the carbon fraction of dry weight is typically high due to substantial lipids & carbohydrates.

  • N:P (replete) ≈ 5–19; (P‑limited) can exceed 100.
  • C:N ≈ 3–17 (often near 6–7 when replete).
  • Critical N:P threshold ≈ 20–50 (transition of N vs P limitation).

For EHUX (log phase), reported DW composition ranges: Protein ~25–32%, Carbohydrate ~13–21%, Lipids ~45–56%. A practical carbon fraction fC of 0.50–0.60 is reasonable.

2) Biomass → Carbon → CO₂

Corg [g] = DW [g] × fC
CO₂ [g] = Corg × (44 / 12)

Example: 1 t DW × 0.55 gC/gDW → 0.55 t C → 0.55 × 44/12 ≈ 2.017 t CO₂ gross (POC).

3) EHUX Nuance: POC vs PIC

EHUX forms CaCO₃ (coccoliths). Separate accounting is recommended:

  • POC: Particulate Organic Carbon from cellular organics (credited via export/storage).
  • PIC: Particulate Inorganic Carbon in CaCO₃. Surface formation releases ≈ 1 mol CO₂ per mol CaCO₃; burial may be credited in some frameworks.

4) Transparent Workflow

  1. Measure/estimate DW (dry weight) and select fC (0.50–0.60 for EHUX, or your CHN data).
  2. Compute gross POC CO₂: Corg = DW × fC; CO₂ = Corg × 44/12.
  3. Apply POC export/storage fraction if you only credit retained/exported carbon.
  4. Parameterize PIC terms (PIC:POC by C, surface penalty on, burial credit on/off) and report separately.
  5. Publish a ledger: POC gross, POC credited, PIC penalty, PIC burial, and net.

5) Python Example Program

from dataclasses import dataclass

MOLAR_MASS_CO2_PER_C = 44.0 / 12.0  # g CO2 per g C

@dataclass
class EHUXCarbonModelInput:
    dry_weight_tons: float           # tons DW
    carbon_fraction: float = 0.55    # g C per g DW (EHUX: ~0.50–0.60)
    poc_export_fraction: float = 0.80   # credited POC fraction
    pic_to_poc_c_ratio: float = 0.20    # C(PIC) / C(POC) by carbon
    pic_burial_fraction: float = 0.50   # fraction of PIC credited as burial
    apply_surface_pic_penalty: bool = True
    credit_pic_burial: bool = False

@dataclass
class EHUXCarbonModelResult:
    poc_c_g: float
    poc_co2_gross_tons: float
    poc_co2_credited_tons: float
    pic_c_g: float
    pic_surface_penalty_tons: float
    pic_burial_credit_tons: float
    net_credited_tons: float

def run_ehux_carbon_model(cfg: EHUXCarbonModelInput) -> EHUXCarbonModelResult:
    dw_g = cfg.dry_weight_tons * 1_000_000.0
    poc_c_g = dw_g * cfg.carbon_fraction
    poc_co2_gross_tons = (poc_c_g * MOLAR_MASS_CO2_PER_C) / 1_000_000.0
    poc_co2_credited_tons = poc_co2_gross_tons * cfg.poc_export_fraction
    pic_c_g = poc_c_g * cfg.pic_to_poc_c_ratio
    pic_co2_equiv_tons = (pic_c_g * MOLAR_MASS_CO2_PER_C) / 1_000_000.0
    pic_surface_penalty_tons = pic_co2_equiv_tons if cfg.apply_surface_pic_penalty else 0.0
    pic_burial_credit_tons = pic_co2_equiv_tons * cfg.pic_burial_fraction if cfg.credit_pic_burial else 0.0
    net_credited_tons = poc_co2_credited_tons - pic_surface_penalty_tons + pic_burial_credit_tons
    return EHUXCarbonModelResult(
        poc_c_g=poc_c_g,
        poc_co2_gross_tons=poc_co2_gross_tons,
        poc_co2_credited_tons=poc_co2_credited_tons,
        pic_c_g=pic_c_g,
        pic_surface_penalty_tons=pic_surface_penalty_tons,
        pic_burial_credit_tons=pic_burial_credit_tons,
        net_credited_tons=net_credited_tons,
    )

if __name__ == "__main__":
    cfg = EHUXCarbonModelInput(
        dry_weight_tons=1.0,
        carbon_fraction=0.55,
        poc_export_fraction=0.80,
        pic_to_poc_c_ratio=0.20,
        pic_burial_fraction=0.50,
        apply_surface_pic_penalty=True,
        credit_pic_burial=True,
    )
    res = run_ehux_carbon_model(cfg)
    print("=== EHUX Biomass → CO2 Accounting (Example) ===")
    print(f"POC carbon (g): {res.poc_c_g:,.0f}")
    print(f"POC CO2 gross (t): {res.poc_co2_gross_tons:.3f}")
    print(f"POC CO2 credited (t): {res.poc_co2_credited_tons:.3f}")
    print(f"PIC carbon (g): {res.pic_c_g:,.0f}")
    print(f"PIC surface CO2 penalty (t): {res.pic_surface_penalty_tons:.3f}")
    print(f"PIC burial credit (t): {res.pic_burial_credit_tons:.3f}")
    print(f"==> Net credited CO2 (t): {res.net_credited_tons:.3f}")

7) Assumptions & Notes

Carbon fraction 0.50–0.60 and the variability of C:N:P, protein/RNA/phospholipid ranges derive from controlled culture datasets compiled in the cited study. Use your CHN analytics when available; this template is designed to be swapped to your measured parameters without structural changes.

POC vs PIC separated Transparent ledger Plug-in CHN data Auditable formulas