Schema: cultivation hardware setup (instrument + mode) + standardized vocab#171
Merged
Conversation
… 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
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds an optional, multivalued
cultivation_setuptoMicrobialCommunitycapturing 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.CultivationSetupclass — 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.cultivation_setup(multivalued,inlined_as_list).Vocab file + METPO staging
vocab/cultivation_terms.yamlcarries 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, statusmapped); everything else ismetpo-candidate/proposedfor a future METPO proposal. OBI prefix added.tests/test_cultivation_vocab_sync.pykeeps enum keys == vocab keys, checks term well-formedness andmeaning:↔vocab consistency, and smoke-tests a populatedcultivation_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 errorsvalidate-schema-termsresolves 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