Skip to content
Apex
All recipes
Autonomous labs

Plan an active-learning lab campaign

Bind a wet-lab campaign — antibody developability screening — to plate-reader and liquid-handler resources. The agent schedules plates, allocates instruments, and writes the run protocol.

Artefact returned
Runnable plan · plate maps · chain-of-custody
Typical runtime
~3 min wall · negligible CU
Cost
≈ $5 plan + Pro seat
01 · The recipe

The expanded snippet.

The version that lands in production — with the annotations a colleague would want when picking up the work. Copy-paste, swap in your inputs, run.

from apex import Aether

simos = Aether(api_key=os.environ["APEX_API_KEY"])

# Plan an active-learning wet-lab campaign. The agent binds reagents,
# schedules plates, allocates instruments, and writes the run protocol with
# chain-of-custody. Refusal corpus blocks dual-use precursors.
plan = simos.lab_plan(
    objective="antibody developability screening · n=96 candidates",
    assays=[
        "thermal_stability",
        "aggregation_propensity",
        "hERG",
        "polyspecificity",
    ],
    instruments=[
        "plate_reader_01",
        "liquid_handler_03",
        "biacore_02",
        "cellomics_01",
    ],
    constraints={
        "weeks": 4,
        "max_plates_per_day": 12,
        "operator_shifts": "8h_business_days",
    },
    chain_of_custody=True,
    safety_review="gxp",
)

print(f"plates       = {len(plan.plates)}")
print(f"instrument_h = {plan.total_instrument_hours:.1f}")
print(f"operator_h   = {plan.total_operator_hours:.1f}")

# Each plate has a map and a runbook.
for p in plan.plates[:3]:
    print(p.id, p.layout_uri, p.runbook_uri)
02 · Reproduction notes

The numbers in this recipe are real.

What we ran. What we used for inputs. Where the reproduction kit lives, and what reproduces within published bounds.

  • 01Instruments: any Aether-supported plate reader, liquid handler or Biacore. Full list at /docs/reference/instruments.
  • 02Objective: natural language; structured forms (Hypothesis/Method/Acceptance) work better for high-stakes campaigns.
  • 03Reproduces the active-learning loop methodology published with our autonomous-labs paper.
  • 04Wall time is bounded by the planner; the actual lab run takes weeks.
03 · How to adapt this

Make it your workload.

The recipe is a starting point. The four variations below are the ones we get asked about most. Anything else, write to docs@apexworldlabs.com.

  • Closed loop: pass active_learning=True and the planner schedules the next round once the prior round reports.
  • Compliance: GxP, 21 CFR Part 11 and ALCOA+ profiles are supported via safety_review="...".
  • Custom assays: register a custom assay with simos.register_assay() and the planner can compose it.
  • Multi-site: pass sites=["san_diego", "basel"] and the planner respects time-zone and shipping constraints.

Adapt this to your stack.

Swap in your geometry / target / repo and run it. If your workload is novel, send it and we will co-author the recipe with you.