Skip to content

Schema: cultivation hardware setup (instrument + mode) + standardized vocab#171

Merged
realmarcin merged 1 commit into
mainfrom
feat/cultivation-setup
Jun 20, 2026
Merged

Schema: cultivation hardware setup (instrument + mode) + standardized vocab#171
realmarcin merged 1 commit into
mainfrom
feat/cultivation-setup

Conversation

@realmarcin

Copy link
Copy Markdown
Contributor

Adds an optional, multivalued cultivation_setup to MicrobialCommunity capturing the hardware/instrumentation and operating mode used to grow/sustain a community (not all communities have one). Schema-first; datamodel regenerated.

What's added

  • CultivationModeEnum — BATCH, FED_BATCH, CONTINUOUS, SEMI_CONTINUOUS, CHEMOSTAT, TURBIDOSTAT, PERFUSION, SEQUENCING_BATCH, RETENTOSTAT, OTHER.
  • CultivationSystemEnum — stirred-tank / photo / membrane / gas-lift / packed-bed / hollow-fiber bioreactors, microbial fuel cell, bioelectrochemical system, chemostat vessel, serum bottle, flask, microfluidic device, bioreactor-unspecified, other.
  • CultivationSetup class — mode + system + instrument/manufacturer detail, working volume, operating temperature, feed/dilution rate, retention time (HRT/SRT), applied potential + electrode detail (bioelectrochemical), pH/DO/temp control flags, protocol_url, notes, evidence.
  • Optional top-level slot cultivation_setup (multivalued, inlined_as_list).

Vocab file + METPO staging

vocab/cultivation_terms.yaml carries each term's label/definition/synonyms/mapping/status — the curation + METPO-staging source (the inline enums stay canonical for LinkML). Only a confirmed mapping is asserted: BIOREACTOR_UNSPECIFIED → OBI:0001046 (meaning: on the enum, status mapped); everything else is metpo-candidate/proposed for a future METPO proposal. OBI prefix added.

tests/test_cultivation_vocab_sync.py keeps enum keys == vocab keys, checks term well-formedness and meaning:↔vocab consistency, and smoke-tests a populated cultivation_setup. Demonstrated on the Shewanella–Geobacter exoelectrogenic biofilm community.

Verification

  • just gen-python, just lint (black/ruff/mypy)
  • just validate-products (blocking id↔label gate) — unaffected (enum/freetext-valued, no Term grounding)
  • just validate-strict — 265 files, 0 errors
  • 197 pytest passed (+4 new)
  • validate-schema-terms resolves OBI:0001046 (warn-only label note, same as existing CHEBI enum mappings; not a CI gate)

METPO proposal generation is a deliberate follow-up (per the agreed scope).

🤖 Generated with Claude Code

… vocab

Adds an OPTIONAL, multivalued cultivation_setup to MicrobialCommunity capturing
the hardware/instrumentation and operating mode used to grow/sustain a community
(not all communities have one). Schema-first; datamodel regenerated.

- Two enums: CultivationModeEnum (BATCH, FED_BATCH, CONTINUOUS, SEMI_CONTINUOUS,
  CHEMOSTAT, TURBIDOSTAT, PERFUSION, SEQUENCING_BATCH, RETENTOSTAT, OTHER) and
  CultivationSystemEnum (stirred-tank/photo/membrane/gas-lift/packed-bed/hollow-
  fiber bioreactors, microbial fuel cell, bioelectrochemical system, chemostat
  vessel, serum bottle, flask, microfluidic device, bioreactor-unspecified, other).
- CultivationSetup class: mode + system + instrument/manufacturer detail, working
  volume, operating temperature, feed/dilution rate, retention time (HRT/SRT),
  applied potential + electrode detail (bioelectrochemical), pH/DO/temp control
  flags, protocol_url, notes, evidence.
- New optional top-level slot cultivation_setup (multivalued, inlined_as_list).

Standardized terms maintained in vocab/cultivation_terms.yaml (label, definition,
synonyms, ontology mapping, status) — staged for a future METPO proposal. Only a
confirmed mapping is asserted: BIOREACTOR_UNSPECIFIED -> OBI:0001046 (meaning: on
the enum + status: mapped); all others are metpo-candidate. OBI prefix added.

tests/test_cultivation_vocab_sync.py keeps the enums and vocab keys in exact sync,
checks term well-formedness and meaning:<->vocab consistency, and smoke-tests a
populated cultivation_setup. Demonstrated on the Shewanella-Geobacter
exoelectrogenic biofilm community (BIOELECTROCHEMICAL_SYSTEM).

Verified: gen-python, lint (black/ruff/mypy), validate-products (blocking,
unaffected), validate-strict (265 files, 0 errors), 197 pytest pass.
validate-schema-terms resolves OBI:0001046 (warn-only, same as existing CHEBI
enum mappings; not a CI gate).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@realmarcin realmarcin merged commit 106e663 into main Jun 20, 2026
4 checks passed
@realmarcin realmarcin deleted the feat/cultivation-setup branch June 20, 2026 00:57
realmarcin added a commit that referenced this pull request Jun 24, 2026
…#173)

Lifts the cultivation hardware/mode slice added in PR #171 into a new METPO
proposal cohort: CultivationModeEnum (10 leaves), CultivationSystemEnum (13
minted leaves + BIOREACTOR_UNSPECIFIED mapped to existing OBI:0001046), under a
new "microbial community cultivation setup" domain class, plus 3 cultivation
object properties.

- Classes: METPO:1008100-1008132 (above the v1 high-water mark 1008013; no overlap)
- Predicates: METPO:2008100-2008102 (above 2008002)
- Subset: metpo_communitymech_2026_06
- Term metadata reused from vocab/cultivation_terms.yaml

Verified: ROBOT column counts (11/12), full enum coverage, parent integrity,
no duplicate or v1-overlapping IDs. METPO submission is downstream/external.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant