From 582c07f7bc220b40ec28532ea82c27f847768551 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 12 Jun 2026 22:56:46 +0000 Subject: [PATCH] Regenerate derived files from schema changes --- docs/schema/valuesets.yaml | 2717 ++++++++++++++++- project/jsonschema/valuesets.schema.json | 403 +++ src/valuesets/datamodel/valuesets.py | 746 +++++ src/valuesets/datamodel/valuesets_pydantic.py | 746 +++++ src/valuesets/enums/__init__.py | 17 + src/valuesets/enums/bio/pato.py | 336 ++ .../enums/bio/protein_structure_features.py | 93 + .../enums/lab_automation/cloud_lab.py | 296 ++ 8 files changed, 5351 insertions(+), 3 deletions(-) create mode 100644 src/valuesets/enums/bio/pato.py create mode 100644 src/valuesets/enums/bio/protein_structure_features.py create mode 100644 src/valuesets/enums/lab_automation/cloud_lab.py diff --git a/docs/schema/valuesets.yaml b/docs/schema/valuesets.yaml index 18b8d0b1..aabe17cc 100644 --- a/docs/schema/valuesets.yaml +++ b/docs/schema/valuesets.yaml @@ -20,6 +20,7 @@ imports: - bio/genome_features - bio/bio_entities - bio/structural_biology +- bio/protein_structure_features - bio/biosafety - bio/insdc_missing_values - bio/insdc_geographic_locations @@ -60,6 +61,7 @@ imports: - data/data_use - computing/mime_types - computing/quantum +- computing/frontier_ai_models - computing/microelectronics - computing/data_centers - physics/states_of_matter @@ -86,6 +88,7 @@ imports: - materials_science/pigments_dyes - visual/colors - bio/biological_colors +- bio/pato - bio/sequence_alphabets - bio/sequence_chemistry - bio/sequencing_platforms @@ -134,6 +137,7 @@ imports: - analytical_chemistry/mass_spectrometry - lab_automation/devices - lab_automation/operations +- lab_automation/cloud_lab - lab_automation/labware - lab_automation/protocols - lab_automation/standards @@ -155,6 +159,7 @@ imports: - core - core - core +- core license: Apache-2.0 prefixes: valuesets: @@ -5019,6 +5024,312 @@ enums: description: Crosslinking modification meaning: MOD:00033 title: crosslinked residues + SecondaryStructureType: + name: SecondaryStructureType + definition_uri: https://w3id.org/valuesets/SecondaryStructureType + instantiates: + - valuesets_meta:ValueSetEnumDefinition + description: Per-residue secondary structure assignment. The permissible values + correspond to the canonical DSSP 8-state (SS8) classification, which is also + the secondary-structure track vocabulary used by protein language models such + as ESM3. The single-letter DSSP code is recorded in the ``dssp_code`` annotation. + title: Secondary Structure Type + from_schema: https://w3id.org/valuesets/bio/protein_structure_features + contributors: + - orcid:0000-0002-6601-2165 + - https://github.com/anthropics/claude-code + status: DRAFT + permissible_values: + ALPHA_HELIX: + text: ALPHA_HELIX + description: Right-handed alpha helix (3.6 residues/turn, i to i+4 hydrogen + bonding) + meaning: SO:0001117 + annotations: + dssp_code: + tag: dssp_code + value: H + ss8_class: + tag: ss8_class + value: H + title: alpha helix + broad_mappings: + - uniprot_core:Helix_Annotation + THREE_TEN_HELIX: + text: THREE_TEN_HELIX + description: 3-10 helix (3 residues/turn, i to i+3 hydrogen bonding) + meaning: SO:0001119 + annotations: + dssp_code: + tag: dssp_code + value: G + ss8_class: + tag: ss8_class + value: G + title: 3-10 helix + broad_mappings: + - uniprot_core:Helix_Annotation + PI_HELIX: + text: PI_HELIX + description: Pi helix (4.1 residues/turn, i to i+5 hydrogen bonding) + meaning: SO:0001118 + annotations: + dssp_code: + tag: dssp_code + value: I + ss8_class: + tag: ss8_class + value: I + title: pi helix + broad_mappings: + - uniprot_core:Helix_Annotation + BETA_STRAND: + text: BETA_STRAND + description: Extended beta strand participating in a beta sheet + meaning: SO:0001111 + annotations: + dssp_code: + tag: dssp_code + value: E + ss8_class: + tag: ss8_class + value: E + title: beta strand + broad_mappings: + - uniprot_core:Beta_Strand_Annotation + BETA_BRIDGE: + text: BETA_BRIDGE + description: Residue in an isolated single-pair beta bridge + annotations: + dssp_code: + tag: dssp_code + value: B + ss8_class: + tag: ss8_class + value: B + ontology_gap: + tag: ontology_gap + value: 'true' + title: isolated beta bridge + broad_mappings: + - uniprot_core:Beta_Strand_Annotation + TURN: + text: TURN + description: Hydrogen-bonded turn reversing backbone direction over <=4 residues + meaning: SO:0001128 + annotations: + dssp_code: + tag: dssp_code + value: T + ss8_class: + tag: ss8_class + value: T + title: hydrogen-bonded turn + exact_mappings: + - uniprot_core:Turn_Annotation + BEND: + text: BEND + description: Region of high backbone curvature without regular hydrogen bonding + annotations: + dssp_code: + tag: dssp_code + value: S + ss8_class: + tag: ss8_class + value: S + ontology_gap: + tag: ontology_gap + value: 'true' + title: bend + COIL: + text: COIL + description: Irregular, unstructured backbone region (loop / random coil) + meaning: SO:0100012 + annotations: + dssp_code: + tag: dssp_code + value: C + ss8_class: + tag: ss8_class + value: C + aliases: + tag: aliases + value: loop, random coil, blank + title: coil / loop + LocalStructuralFeature: + name: LocalStructuralFeature + definition_uri: https://w3id.org/valuesets/LocalStructuralFeature + instantiates: + - valuesets_meta:ValueSetEnumDefinition + description: Fine-grained local three-dimensional features of protein structures, + spanning super-secondary structural motifs, functional sites, and local geometric + surface features. This is the curated, ontology-mapped analogue of the learned + per-residue feature vocabularies produced by protein language models and their + sparse-autoencoder interpretations. Members marked with the ``ontology_gap`` + annotation have no suitable OBO term and are candidates for new ontology terms. + title: Local Structural Feature + from_schema: https://w3id.org/valuesets/bio/protein_structure_features + contributors: + - orcid:0000-0002-6601-2165 + - https://github.com/anthropics/claude-code + status: DRAFT + permissible_values: + POLYPEPTIDE_STRUCTURAL_MOTIF: + text: POLYPEPTIDE_STRUCTURAL_MOTIF + description: A recurring 3D structural element within the chain that does + not form a stable globular unit (the general parent class for local motifs) + meaning: SO:0001079 + title: polypeptide structural motif + BETA_HAIRPIN: + text: BETA_HAIRPIN + description: Two adjacent antiparallel beta strands connected by a short loop + or turn + annotations: + ontology_gap: + tag: ontology_gap + value: 'true' + title: beta hairpin + BETA_BULGE: + text: BETA_BULGE + description: A local disruption of beta-sheet hydrogen bonding across three + residues + meaning: SO:0001107 + title: beta bulge + ASX_MOTIF: + text: ASX_MOTIF + description: A five-residue motif nucleated by an Asp/Asn side chain (Asx) + meaning: SO:0001106 + title: asx motif + NEST: + text: NEST + description: A motif of two consecutive residues forming an anion-binding + concavity + meaning: SO:0001120 + title: polypeptide nest motif + COILED_COIL: + text: COILED_COIL + description: Two or more alpha helices wound together like strands of a rope + meaning: SO:0001080 + title: coiled coil + exact_mappings: + - uniprot_core:Coiled_Coil_Annotation + HELIX_CAP: + text: HELIX_CAP + description: N-cap or C-cap residue terminating an alpha helix + annotations: + ontology_gap: + tag: ontology_gap + value: 'true' + title: helix cap + CATALYTIC_RESIDUE: + text: CATALYTIC_RESIDUE + description: An amino acid residue directly involved in enzyme catalysis (active + site) + meaning: SO:0001104 + title: catalytic residue + related_mappings: + - uniprot_core:Active_Site_Annotation + PROTEIN_BINDING_SITE: + text: PROTEIN_BINDING_SITE + description: A site that interacts selectively and non-covalently with polypeptide + molecules + meaning: SO:0000410 + title: protein binding site + broad_mappings: + - uniprot_core:Binding_Site_Annotation + DISULFIDE_BOND: + text: DISULFIDE_BOND + description: A covalent S-S bond between two cysteine residues + annotations: + obo_gap: + tag: obo_gap + value: 'true' + title: disulfide bond + exact_mappings: + - uniprot_core:Disulfide_Bond_Annotation + METAL_BINDING_SITE: + text: METAL_BINDING_SITE + description: A local site coordinating one or more metal ions + annotations: + obo_gap: + tag: obo_gap + value: 'true' + title: metal binding site + broad_mappings: + - uniprot_core:Binding_Site_Annotation + POCKET: + text: POCKET + description: A concave, solvent-accessible surface depression that can accommodate + a ligand + annotations: + ontology_gap: + tag: ontology_gap + value: 'true' + related_edam: + tag: related_edam + value: EDAM:data_1542 + title: binding pocket + CLEFT: + text: CLEFT + description: An elongated surface groove between structural elements or domains + annotations: + ontology_gap: + tag: ontology_gap + value: 'true' + title: cleft + CAVITY: + text: CAVITY + description: An enclosed, solvent-inaccessible internal void within the structure + annotations: + ontology_gap: + tag: ontology_gap + value: 'true' + related_edam: + tag: related_edam + value: EDAM:data_1542 + title: interior cavity + TUNNEL: + text: TUNNEL + description: An elongated, often buried, passage through the structure connecting + two regions + annotations: + ontology_gap: + tag: ontology_gap + value: 'true' + title: tunnel / channel + GROOVE: + text: GROOVE + description: A surface channel, e.g. a nucleic-acid-binding groove + annotations: + ontology_gap: + tag: ontology_gap + value: 'true' + title: groove + ELBOW: + text: ELBOW + description: A localized bend or hinge between two structural elements or + domains + annotations: + ontology_gap: + tag: ontology_gap + value: 'true' + title: elbow / hinge + KINK: + text: KINK + description: A localized bend interrupting the regular geometry of a helix + annotations: + ontology_gap: + tag: ontology_gap + value: 'true' + title: helix kink + INTERFACE: + text: INTERFACE + description: A surface patch mediating contact with another chain or molecule + annotations: + ontology_gap: + tag: ontology_gap + value: 'true' + title: interaction interface BiosafetyLevelEnum: name: BiosafetyLevelEnum definition_uri: https://w3id.org/valuesets/BiosafetyLevelEnum @@ -23275,6 +23586,967 @@ enums: text: VARIATIONAL description: Hybrid quantum-classical variational algorithms for near-term quantum devices + FrontierModelEnum: + name: FrontierModelEnum + definition_uri: https://w3id.org/valuesets/FrontierModelEnum + instantiates: + - valuesets_meta:ValueSetEnumDefinition + description: 'Hierarchical enumeration of frontier AI models. The hierarchy has + three tiers: developer (e.g. ANTHROPIC), model family (e.g. CLAUDE_OPUS), and + specific model release identified by its canonical API model id (e.g. claude-opus-4-8). + Intermediate developer and family nodes are uppercase categorical values; leaf + nodes are the verbatim API identifiers.' + title: Frontier AI Model + from_schema: https://w3id.org/valuesets/computing/frontier_ai_models + contributors: + - orcid:0000-0002-6601-2165 + - https://github.com/anthropics/claude-code + status: DRAFT + permissible_values: + ANTHROPIC: + text: ANTHROPIC + description: Models developed by Anthropic (the Claude family) + annotations: + node_type: + tag: node_type + value: developer + homepage: + tag: homepage + value: https://www.anthropic.com + see_also: + - https://docs.claude.com/en/docs/about-claude/models/overview + CLAUDE_OPUS: + text: CLAUDE_OPUS + description: Claude Opus - Anthropic's most capable Opus-tier model family + is_a: ANTHROPIC + annotations: + node_type: + tag: node_type + value: family + tier: + tag: tier + value: most capable + claude-opus-4-8: + text: claude-opus-4-8 + description: Claude Opus 4.8 - Anthropic's most capable Opus-tier model; highly + autonomous, state-of-the-art on long-horizon agentic work, knowledge work, + and memory. Adaptive thinking only. + is_a: CLAUDE_OPUS + annotations: + node_type: + tag: node_type + value: model + api_model_id: + tag: api_model_id + value: claude-opus-4-8 + developer: + tag: developer + value: Anthropic + context_window: + tag: context_window + value: 1000000 + max_output_tokens: + tag: max_output_tokens + value: 128000 + input_usd_per_mtok: + tag: input_usd_per_mtok + value: 5.0 + output_usd_per_mtok: + tag: output_usd_per_mtok + value: 25.0 + title: Claude Opus 4.8 + see_also: + - https://docs.claude.com/en/docs/about-claude/models/overview + aliases: + - Opus 4.8 + - opus + claude-opus-4-7: + text: claude-opus-4-7 + description: Claude Opus 4.7 - previous-generation Opus; highly autonomous, + strong on long-horizon agentic work, vision, and memory. Adaptive thinking + only. + is_a: CLAUDE_OPUS + annotations: + node_type: + tag: node_type + value: model + api_model_id: + tag: api_model_id + value: claude-opus-4-7 + developer: + tag: developer + value: Anthropic + context_window: + tag: context_window + value: 1000000 + max_output_tokens: + tag: max_output_tokens + value: 128000 + title: Claude Opus 4.7 + aliases: + - Opus 4.7 + claude-opus-4-6: + text: claude-opus-4-6 + description: Claude Opus 4.6 - older Opus model supporting adaptive thinking + and 128K max output tokens. + is_a: CLAUDE_OPUS + annotations: + node_type: + tag: node_type + value: model + api_model_id: + tag: api_model_id + value: claude-opus-4-6 + developer: + tag: developer + value: Anthropic + context_window: + tag: context_window + value: 1000000 + max_output_tokens: + tag: max_output_tokens + value: 128000 + title: Claude Opus 4.6 + aliases: + - Opus 4.6 + claude-opus-4-5: + text: claude-opus-4-5 + description: Claude Opus 4.5 - legacy Opus model (still active). + is_a: CLAUDE_OPUS + annotations: + node_type: + tag: node_type + value: model + api_model_id: + tag: api_model_id + value: claude-opus-4-5 + full_model_id: + tag: full_model_id + value: claude-opus-4-5-20251101 + developer: + tag: developer + value: Anthropic + title: Claude Opus 4.5 + aliases: + - Opus 4.5 + CLAUDE_SONNET: + text: CLAUDE_SONNET + description: Claude Sonnet - Anthropic's balanced speed / intelligence family + is_a: ANTHROPIC + annotations: + node_type: + tag: node_type + value: family + tier: + tag: tier + value: balanced + claude-sonnet-4-6: + text: claude-sonnet-4-6 + description: Claude Sonnet 4.6 - Anthropic's best combination of speed and + intelligence. Supports adaptive thinking. + is_a: CLAUDE_SONNET + annotations: + node_type: + tag: node_type + value: model + api_model_id: + tag: api_model_id + value: claude-sonnet-4-6 + developer: + tag: developer + value: Anthropic + context_window: + tag: context_window + value: 1000000 + max_output_tokens: + tag: max_output_tokens + value: 64000 + input_usd_per_mtok: + tag: input_usd_per_mtok + value: 3.0 + output_usd_per_mtok: + tag: output_usd_per_mtok + value: 15.0 + title: Claude Sonnet 4.6 + aliases: + - Sonnet 4.6 + - sonnet + claude-sonnet-4-5: + text: claude-sonnet-4-5 + description: Claude Sonnet 4.5 - legacy Sonnet model (still active). + is_a: CLAUDE_SONNET + annotations: + node_type: + tag: node_type + value: model + api_model_id: + tag: api_model_id + value: claude-sonnet-4-5 + full_model_id: + tag: full_model_id + value: claude-sonnet-4-5-20250929 + developer: + tag: developer + value: Anthropic + title: Claude Sonnet 4.5 + aliases: + - Sonnet 4.5 + CLAUDE_HAIKU: + text: CLAUDE_HAIKU + description: Claude Haiku - Anthropic's fastest and most cost-effective family + is_a: ANTHROPIC + annotations: + node_type: + tag: node_type + value: family + tier: + tag: tier + value: fast + claude-haiku-4-5: + text: claude-haiku-4-5 + description: Claude Haiku 4.5 - Anthropic's fastest and most cost-effective + model for simple, latency-sensitive tasks. + is_a: CLAUDE_HAIKU + annotations: + node_type: + tag: node_type + value: model + api_model_id: + tag: api_model_id + value: claude-haiku-4-5 + full_model_id: + tag: full_model_id + value: claude-haiku-4-5-20251001 + developer: + tag: developer + value: Anthropic + context_window: + tag: context_window + value: 200000 + max_output_tokens: + tag: max_output_tokens + value: 64000 + input_usd_per_mtok: + tag: input_usd_per_mtok + value: 1.0 + output_usd_per_mtok: + tag: output_usd_per_mtok + value: 5.0 + title: Claude Haiku 4.5 + aliases: + - Haiku 4.5 + - haiku + CLAUDE_FABLE: + text: CLAUDE_FABLE + description: Claude Fable - Anthropic's most capable widely released model + family, for the most demanding reasoning and long-horizon agentic work. + is_a: ANTHROPIC + annotations: + node_type: + tag: node_type + value: family + tier: + tag: tier + value: frontier + claude-fable-5: + text: claude-fable-5 + description: Claude Fable 5 - Anthropic's most capable widely released model. + Thinking is always on; raw chain of thought is never returned. Requires + 30-day data retention. + is_a: CLAUDE_FABLE + annotations: + node_type: + tag: node_type + value: model + api_model_id: + tag: api_model_id + value: claude-fable-5 + developer: + tag: developer + value: Anthropic + context_window: + tag: context_window + value: 1000000 + max_output_tokens: + tag: max_output_tokens + value: 128000 + input_usd_per_mtok: + tag: input_usd_per_mtok + value: 10.0 + output_usd_per_mtok: + tag: output_usd_per_mtok + value: 50.0 + title: Claude Fable 5 + aliases: + - Fable 5 + - fable + CLAUDE_MYTHOS: + text: CLAUDE_MYTHOS + description: Claude Mythos - same capabilities and API behavior as Claude + Fable, available exclusively through Project Glasswing. + is_a: ANTHROPIC + annotations: + node_type: + tag: node_type + value: family + tier: + tag: tier + value: frontier + availability: + tag: availability + value: Project Glasswing only + claude-mythos-5: + text: claude-mythos-5 + description: Claude Mythos 5 - same capabilities, pricing, limits, and API + behavior as Claude Fable 5; available only through Project Glasswing. + is_a: CLAUDE_MYTHOS + annotations: + node_type: + tag: node_type + value: model + api_model_id: + tag: api_model_id + value: claude-mythos-5 + developer: + tag: developer + value: Anthropic + context_window: + tag: context_window + value: 1000000 + max_output_tokens: + tag: max_output_tokens + value: 128000 + title: Claude Mythos 5 + aliases: + - Mythos 5 + OPENAI: + text: OPENAI + description: Models developed by OpenAI (the GPT family) + annotations: + node_type: + tag: node_type + value: developer + homepage: + tag: homepage + value: https://openai.com + see_also: + - https://developers.openai.com/api/docs/models + GPT_5: + text: GPT_5 + description: GPT-5 - OpenAI's frontier model family for coding and professional + work + is_a: OPENAI + annotations: + node_type: + tag: node_type + value: family + tier: + tag: tier + value: frontier + gpt-5.5: + text: gpt-5.5 + description: GPT-5.5 - OpenAI's newest frontier model, "a new class of intelligence + for coding and professional work". + is_a: GPT_5 + annotations: + node_type: + tag: node_type + value: model + api_model_id: + tag: api_model_id + value: gpt-5.5 + developer: + tag: developer + value: OpenAI + training_cutoff: + tag: training_cutoff + value: '2025-12-01' + context_window: + tag: context_window + value: 1000000 + title: GPT-5.5 + see_also: + - https://developers.openai.com/api/docs/models/gpt-5.5 + aliases: + - GPT-5.5 + gpt-5.4: + text: gpt-5.4 + description: GPT-5.4 - a more affordable model for coding and professional + work. + is_a: GPT_5 + annotations: + node_type: + tag: node_type + value: model + api_model_id: + tag: api_model_id + value: gpt-5.4 + developer: + tag: developer + value: OpenAI + training_cutoff: + tag: training_cutoff + value: '2025-08-31' + context_window: + tag: context_window + value: 1000000 + title: GPT-5.4 + aliases: + - GPT-5.4 + gpt-5.4-mini: + text: gpt-5.4-mini + description: GPT-5.4 mini - OpenAI's strongest mini model for coding, computer + use, and subagents; lower latency and cost. + is_a: GPT_5 + annotations: + node_type: + tag: node_type + value: model + api_model_id: + tag: api_model_id + value: gpt-5.4-mini + developer: + tag: developer + value: OpenAI + training_cutoff: + tag: training_cutoff + value: '2025-08-31' + context_window: + tag: context_window + value: 400000 + title: GPT-5.4 mini + aliases: + - GPT-5.4 mini + gpt-5.2: + text: gpt-5.2 + description: GPT-5.2 - previous frontier model for complex professional work. + is_a: GPT_5 + annotations: + node_type: + tag: node_type + value: model + api_model_id: + tag: api_model_id + value: gpt-5.2 + developer: + tag: developer + value: OpenAI + title: GPT-5.2 + aliases: + - GPT-5.2 + gpt-5.2-codex: + text: gpt-5.2-codex + description: GPT-5.2-Codex - coding-specialized variant for API-authenticated + Codex workflows. + is_a: GPT_5 + annotations: + node_type: + tag: node_type + value: model + api_model_id: + tag: api_model_id + value: gpt-5.2-codex + developer: + tag: developer + value: OpenAI + specialization: + tag: specialization + value: coding + title: GPT-5.2-Codex + aliases: + - GPT-5.2 Codex + GOOGLE: + text: GOOGLE + description: Models developed by Google DeepMind (the Gemini family) + annotations: + node_type: + tag: node_type + value: developer + homepage: + tag: homepage + value: https://deepmind.google + see_also: + - https://ai.google.dev/gemini-api/docs/models + GEMINI_3: + text: GEMINI_3 + description: Gemini 3 - Google's latest generation multimodal model family + is_a: GOOGLE + annotations: + node_type: + tag: node_type + value: family + tier: + tag: tier + value: frontier + gemini-3.5-flash: + text: gemini-3.5-flash + description: Gemini 3.5 Flash - Google's most intelligent model for agentic + and coding tasks, delivering near-Pro intelligence at Flash-tier speed and + cost. + is_a: GEMINI_3 + annotations: + node_type: + tag: node_type + value: model + api_model_id: + tag: api_model_id + value: gemini-3.5-flash + developer: + tag: developer + value: Google DeepMind + release_date: + tag: release_date + value: '2026-05-19' + context_window: + tag: context_window + value: 1000000 + title: Gemini 3.5 Flash + aliases: + - Gemini 3.5 Flash + gemini-3.1-pro-preview: + text: gemini-3.1-pro-preview + description: Gemini 3.1 Pro - reasoning-first model optimized for complex + agentic workflows and coding, with adaptive thinking and integrated grounding. + is_a: GEMINI_3 + annotations: + node_type: + tag: node_type + value: model + api_model_id: + tag: api_model_id + value: gemini-3.1-pro-preview + developer: + tag: developer + value: Google DeepMind + context_window: + tag: context_window + value: 1000000 + title: Gemini 3.1 Pro + aliases: + - Gemini 3.1 Pro + gemini-3-flash-preview: + text: gemini-3-flash-preview + description: Gemini 3 Flash - frontier-class performance at reduced cost. + is_a: GEMINI_3 + annotations: + node_type: + tag: node_type + value: model + api_model_id: + tag: api_model_id + value: gemini-3-flash-preview + developer: + tag: developer + value: Google DeepMind + title: Gemini 3 Flash + aliases: + - Gemini 3 Flash + gemini-3.1-flash-lite: + text: gemini-3.1-flash-lite + description: Gemini 3.1 Flash-Lite - most cost-efficient Gemini model, optimized + for low latency and high-volume traffic. + is_a: GEMINI_3 + annotations: + node_type: + tag: node_type + value: model + api_model_id: + tag: api_model_id + value: gemini-3.1-flash-lite + developer: + tag: developer + value: Google DeepMind + title: Gemini 3.1 Flash-Lite + aliases: + - Gemini 3.1 Flash-Lite + GEMINI_2_5: + text: GEMINI_2_5 + description: Gemini 2.5 - Google's previous-generation multimodal model family + is_a: GOOGLE + annotations: + node_type: + tag: node_type + value: family + gemini-2.5-pro: + text: gemini-2.5-pro + description: Gemini 2.5 Pro - high-capability model for complex reasoning + and coding with adaptive thinking and a 1M token context. + is_a: GEMINI_2_5 + annotations: + node_type: + tag: node_type + value: model + api_model_id: + tag: api_model_id + value: gemini-2.5-pro + developer: + tag: developer + value: Google DeepMind + context_window: + tag: context_window + value: 1000000 + title: Gemini 2.5 Pro + aliases: + - Gemini 2.5 Pro + gemini-2.5-flash: + text: gemini-2.5-flash + description: Gemini 2.5 Flash - best price-performance for reasoning tasks. + is_a: GEMINI_2_5 + annotations: + node_type: + tag: node_type + value: model + api_model_id: + tag: api_model_id + value: gemini-2.5-flash + developer: + tag: developer + value: Google DeepMind + title: Gemini 2.5 Flash + aliases: + - Gemini 2.5 Flash + gemini-2.5-flash-lite: + text: gemini-2.5-flash-lite + description: Gemini 2.5 Flash-Lite - fastest and most budget-friendly option. + is_a: GEMINI_2_5 + annotations: + node_type: + tag: node_type + value: model + api_model_id: + tag: api_model_id + value: gemini-2.5-flash-lite + developer: + tag: developer + value: Google DeepMind + title: Gemini 2.5 Flash-Lite + aliases: + - Gemini 2.5 Flash-Lite + XAI: + text: XAI + description: Models developed by xAI (the Grok family) + annotations: + node_type: + tag: node_type + value: developer + homepage: + tag: homepage + value: https://x.ai + see_also: + - https://docs.x.ai/developers/models + GROK_4: + text: GROK_4 + description: Grok 4 - xAI's reasoning-first flagship model family + is_a: XAI + annotations: + node_type: + tag: node_type + value: family + tier: + tag: tier + value: frontier + grok-4.3: + text: grok-4.3 + description: Grok 4.3 - xAI's reasoning-first flagship; the most intelligent + and fastest model xAI has built. + is_a: GROK_4 + annotations: + node_type: + tag: node_type + value: model + api_model_id: + tag: api_model_id + value: grok-4.3 + developer: + tag: developer + value: xAI + release_date: + tag: release_date + value: '2026-04-30' + context_window: + tag: context_window + value: 1000000 + title: Grok 4.3 + aliases: + - Grok 4.3 + grok-4.20-0309-reasoning: + text: grok-4.20-0309-reasoning + description: Grok 4.20 (reasoning) - agentic tool-calling model noted for + a very low hallucination rate. + is_a: GROK_4 + annotations: + node_type: + tag: node_type + value: model + api_model_id: + tag: api_model_id + value: grok-4.20-0309-reasoning + developer: + tag: developer + value: xAI + context_window: + tag: context_window + value: 1000000 + title: Grok 4.20 (reasoning) + aliases: + - Grok 4.20 + grok-4-0709: + text: grok-4-0709 + description: Grok 4 - earlier Grok 4 release. + is_a: GROK_4 + annotations: + node_type: + tag: node_type + value: model + api_model_id: + tag: api_model_id + value: grok-4-0709 + developer: + tag: developer + value: xAI + knowledge_cutoff: + tag: knowledge_cutoff + value: 2024-11 + title: Grok 4 + aliases: + - Grok 4 + GROK_CODE: + text: GROK_CODE + description: Grok Code - xAI's dedicated agentic coding model family + is_a: XAI + annotations: + node_type: + tag: node_type + value: family + specialization: + tag: specialization + value: coding + grok-code-fast-1: + text: grok-code-fast-1 + description: Grok Code Fast 1 - dedicated agentic coding model. + is_a: GROK_CODE + annotations: + node_type: + tag: node_type + value: model + api_model_id: + tag: api_model_id + value: grok-code-fast-1 + developer: + tag: developer + value: xAI + specialization: + tag: specialization + value: coding + title: Grok Code Fast 1 + aliases: + - Grok Code Fast + META: + text: META + description: Open-weight models developed by Meta (the Llama family) + annotations: + node_type: + tag: node_type + value: developer + homepage: + tag: homepage + value: https://www.llama.com + license: + tag: license + value: Llama Community License + see_also: + - https://www.llama.com/models/ + LLAMA_4: + text: LLAMA_4 + description: Llama 4 - Meta's open-weight mixture-of-experts model family + is_a: META + annotations: + node_type: + tag: node_type + value: family + llama-4-maverick: + text: llama-4-maverick + description: Llama 4 Maverick - general-purpose open-weight chat model; highest + MMLU among Llama 4 variants. + is_a: LLAMA_4 + annotations: + node_type: + tag: node_type + value: model + api_model_id: + tag: api_model_id + value: llama-4-maverick + developer: + tag: developer + value: Meta + title: Llama 4 Maverick + aliases: + - Llama 4 Maverick + llama-4-scout: + text: llama-4-scout + description: Llama 4 Scout - open-weight model supporting very long context + (up to 10M tokens). + is_a: LLAMA_4 + annotations: + node_type: + tag: node_type + value: model + api_model_id: + tag: api_model_id + value: llama-4-scout + developer: + tag: developer + value: Meta + context_window: + tag: context_window + value: 10000000 + title: Llama 4 Scout + aliases: + - Llama 4 Scout + DEEPSEEK: + text: DEEPSEEK + description: Open-weight models developed by DeepSeek + annotations: + node_type: + tag: node_type + value: developer + homepage: + tag: homepage + value: https://www.deepseek.com + see_also: + - https://api-docs.deepseek.com/ + DEEPSEEK_MODELS: + text: DEEPSEEK_MODELS + description: DeepSeek - open-weight mixture-of-experts chat and reasoning + models + is_a: DEEPSEEK + annotations: + node_type: + tag: node_type + value: family + deepseek-chat: + text: deepseek-chat + description: DeepSeek-V3 (served as deepseek-chat) - open-weight MoE model + activating ~37B of 671B parameters per token. + is_a: DEEPSEEK_MODELS + annotations: + node_type: + tag: node_type + value: model + api_model_id: + tag: api_model_id + value: deepseek-chat + developer: + tag: developer + value: DeepSeek + title: DeepSeek-V3 + aliases: + - DeepSeek-V3 + - DeepSeek V3 + deepseek-reasoner: + text: deepseek-reasoner + description: DeepSeek-R1 (served as deepseek-reasoner) - open-weight reasoning + model. + is_a: DEEPSEEK_MODELS + annotations: + node_type: + tag: node_type + value: model + api_model_id: + tag: api_model_id + value: deepseek-reasoner + developer: + tag: developer + value: DeepSeek + title: DeepSeek-R1 + aliases: + - DeepSeek-R1 + - DeepSeek R1 + MISTRAL: + text: MISTRAL + description: Models developed by Mistral AI + annotations: + node_type: + tag: node_type + value: developer + homepage: + tag: homepage + value: https://mistral.ai + see_also: + - https://docs.mistral.ai/getting-started/models/models_overview/ + MISTRAL_LARGE: + text: MISTRAL_LARGE + description: Mistral Large - Mistral AI's flagship open-weight model family + is_a: MISTRAL + annotations: + node_type: + tag: node_type + value: family + mistral-large-3: + text: mistral-large-3 + description: Mistral Large 3 - state-of-the-art open-weight MoE model (41B + active / 675B total parameters), 256K context, released under Apache 2.0. + is_a: MISTRAL_LARGE + annotations: + node_type: + tag: node_type + value: model + api_model_id: + tag: api_model_id + value: mistral-large-3 + developer: + tag: developer + value: Mistral AI + release_date: + tag: release_date + value: 2025-12 + context_window: + tag: context_window + value: 256000 + license: + tag: license + value: Apache-2.0 + title: Mistral Large 3 + aliases: + - Mistral Large 3 + MOONSHOT: + text: MOONSHOT + description: Models developed by Moonshot AI (the Kimi family) + annotations: + node_type: + tag: node_type + value: developer + homepage: + tag: homepage + value: https://www.moonshot.ai + see_also: + - https://platform.moonshot.ai/docs + KIMI: + text: KIMI + description: Kimi - Moonshot AI's open-weight mixture-of-experts model family + is_a: MOONSHOT + annotations: + node_type: + tag: node_type + value: family + kimi-k2.6: + text: kimi-k2.6 + description: Kimi K2.6 - frontier open-weight MoE coding model (32B active + / 1T total parameters). + is_a: KIMI + annotations: + node_type: + tag: node_type + value: model + api_model_id: + tag: api_model_id + value: kimi-k2.6 + developer: + tag: developer + value: Moonshot AI + title: Kimi K2.6 + aliases: + - Kimi K2.6 SemiconductorMaterialType: name: SemiconductorMaterialType definition_uri: https://w3id.org/valuesets/SemiconductorMaterialType @@ -32408,6 +33680,737 @@ enums: condition: tag: condition value: senescent or dead + ColorEnum: + name: ColorEnum + definition_uri: https://w3id.org/valuesets/ColorEnum + instantiates: + - valuesets_meta:ValueSetEnumDefinition + description: A composite chromatic quality composed of hue, saturation and intensity + parts. Derived from PATO color (PATO:0000014) child values. + title: Color + from_schema: https://w3id.org/valuesets/bio/pato + contributors: + - orcid:0000-0002-6601-2165 + - https://github.com/anthropics/claude-code + status: DRAFT + permissible_values: + BLACK: + text: BLACK + description: A color that lacks any hues as parts + meaning: PATO:0000317 + title: black + WHITE: + text: WHITE + description: An achromatic color of maximum brightness + meaning: PATO:0000323 + title: white + GREY: + text: GREY + description: A color between white and black colors + meaning: PATO:0000950 + title: grey + aliases: + - gray + RED: + text: RED + description: A color hue with high wavelength of the long-wave end of the + visible spectrum (630-750 nm) + meaning: PATO:0000322 + title: red + ORANGE: + text: ORANGE + description: A color hue with high-medium wavelength lying between red and + yellow (585-620 nm) + meaning: PATO:0000953 + title: orange + YELLOW: + text: YELLOW + description: A color hue with medium wavelength lying between orange and green + (570-590 nm) + meaning: PATO:0000324 + title: yellow + GREEN: + text: GREEN + description: A color hue with medium-low wavelength lying between yellow and + blue (490-570 nm) + meaning: PATO:0000320 + title: green + CYAN: + text: CYAN + description: A color consisting of green and blue hue + meaning: PATO:0000319 + title: cyan + BLUE: + text: BLUE + description: A color hue with low wavelength lying between green and indigo + (420-490 nm) + meaning: PATO:0000318 + title: blue + VIOLET: + text: VIOLET + description: A color hue with very low wavelength lying between reddish blue + and bluish purple (380-420 nm) + meaning: PATO:0001424 + title: violet + PURPLE: + text: PURPLE + description: A color that falls about midway between red and blue in hue + meaning: PATO:0000951 + title: purple + MAGENTA: + text: MAGENTA + description: A color consisting of red and blue hues + meaning: PATO:0000321 + title: magenta + BROWN: + text: BROWN + description: A color consisting of dark orange, red, of very low intensity + meaning: PATO:0000952 + title: brown + MAROON: + text: MAROON + description: A color consisting of purple and brown hue + meaning: PATO:0001426 + title: maroon + ROSY: + text: ROSY + description: A color hue consisting of red and yellow hue with high brightness + meaning: PATO:0001425 + title: rosy + aliases: + - pink + VERMILION: + text: VERMILION + description: A color consisting of red and orange hue with a slight amount + of gray + meaning: PATO:0001302 + title: vermilion + COLORED: + text: COLORED + description: A color quality inhering in a bearer by virtue of having color + meaning: PATO:0000336 + title: colored + ShapeEnum: + name: ShapeEnum + definition_uri: https://w3id.org/valuesets/ShapeEnum + instantiates: + - valuesets_meta:ValueSetEnumDefinition + description: A morphological quality inhering in a bearer by virtue of the bearer's + ratios of distances between its features. Derived from PATO shape (PATO:0000052) + child values. + title: Shape + from_schema: https://w3id.org/valuesets/bio/pato + contributors: + - orcid:0000-0002-6601-2165 + - https://github.com/anthropics/claude-code + status: DRAFT + permissible_values: + CIRCULAR: + text: CIRCULAR + description: A shape where every part of the surface or circumference is equidistant + from the center + meaning: PATO:0000411 + title: circular + ELLIPTIC: + text: ELLIPTIC + description: Oval with two axes of symmetry, as produced by a conical section + meaning: PATO:0000947 + title: elliptic + aliases: + - oval + SPHEROID: + text: SPHEROID + description: A convex 3-D shape obtained by rotating an ellipse about one + of its principal axes + meaning: PATO:0001865 + title: spheroid + CONICAL: + text: CONICAL + description: A convex 3-D shape resembling a cone with a round cross section + that tapers + meaning: PATO:0002021 + title: conical + COLUMNAR: + text: COLUMNAR + description: Elongated and cylindrical in shape + meaning: PATO:0002063 + title: columnar + aliases: + - cylindrical + TUBULAR: + text: TUBULAR + description: A cylindrical shape that is hollow + meaning: PATO:0002299 + title: tubular + FLAT: + text: FLAT + description: Having a horizontal surface without a slope, tilt, or curvature + meaning: PATO:0000407 + title: flat + ELONGATED: + text: ELONGATED + description: Length being notably higher relative to width + meaning: PATO:0001154 + title: elongated + LINEAR: + text: LINEAR + description: Narrow, with approximately parallel sides + meaning: PATO:0001199 + title: linear + FILAMENTOUS: + text: FILAMENTOUS + description: Having thin filaments or thread-like structures + meaning: PATO:0001360 + title: filamentous + SLENDER: + text: SLENDER + description: Being small or narrow in circumference or width in proportion + to length or height + meaning: PATO:0002212 + title: slender + BROAD: + text: BROAD + description: Width being notably higher relative to comparable entities + meaning: PATO:0002359 + title: broad + ROBUST: + text: ROBUST + description: Being strong, thick, or stout in form + meaning: PATO:0002310 + title: robust + STRAIGHT: + text: STRAIGHT + description: Free of curves, bends, or angles + meaning: PATO:0002180 + title: straight + BENT: + text: BENT + description: Having one or more fixed curves, folds, or angles + meaning: PATO:0000617 + title: bent + ANGULAR: + text: ANGULAR + description: Having at least one angle formed by two planes + meaning: PATO:0001977 + title: angular + LOBED: + text: LOBED + description: Being partly divided into a determinate number of segments + meaning: PATO:0001979 + title: lobed + TRUNCATED: + text: TRUNCATED + description: Terminating abruptly by a transverse line or plane + meaning: PATO:0000936 + title: truncated + PYRAMIDAL: + text: PYRAMIDAL + description: Having triangular faces meeting at a common point + meaning: PATO:0002336 + title: pyramidal + STAR_SHAPED: + text: STAR_SHAPED + description: Being arranged like a star with radiating points + meaning: PATO:0002065 + title: star shaped + aliases: + - stellate + SIGMOID: + text: SIGMOID + description: Consisting of two curves in opposite directions like the letter + S + meaning: PATO:0001878 + title: sigmoid + UNDULATE: + text: UNDULATE + description: Having a sinuate margin that moves smoothly and regularly up + and down + meaning: PATO:0000967 + title: undulate + aliases: + - wavy + PINNATE: + text: PINNATE + description: Having leaflets or branches on each side of a common axis + meaning: PATO:0000410 + title: pinnate + PLEOMORPHIC: + text: PLEOMORPHIC + description: Having the ability to take on multiple forms + meaning: PATO:0001356 + title: pleomorphic + COILING: + text: COILING + description: Being wound in a spiral or helix + meaning: PATO:0001794 + title: coiling + aliases: + - coiled + - helical + RelativeChangeEnum: + name: RelativeChangeEnum + definition_uri: https://w3id.org/valuesets/RelativeChangeEnum + instantiates: + - valuesets_meta:ValueSetEnumDefinition + description: Direction of change of any quality relative to normal or baseline. + This is PATO's general-purpose deviation-from-normal axis (PATO:0000069) that + crosscuts all specific quality attributes (size, rate, amount, etc.). + title: Relative Change + from_schema: https://w3id.org/valuesets/bio/pato + contributors: + - orcid:0000-0002-6601-2165 + - https://github.com/anthropics/claude-code + status: DRAFT + permissible_values: + NORMAL: + text: NORMAL + description: Exhibiting no deviation from normal or average + meaning: PATO:0000461 + title: normal + ABNORMAL: + text: ABNORMAL + description: Deviating from normal or average + meaning: PATO:0000460 + title: abnormal + INCREASED: + text: INCREASED + description: A value that is increased compared to normal or average + meaning: PATO:0002300 + title: increased quality + aliases: + - elevated + - high + DECREASED: + text: DECREASED + description: A value that is decreased compared to normal or average + meaning: PATO:0002301 + title: decreased quality + aliases: + - reduced + - low + INCREASED_MAGNITUDE: + text: INCREASED_MAGNITUDE + description: An increased magnitude of a quality + meaning: PATO:0002017 + title: increased magnitude + DECREASED_MAGNITUDE: + text: DECREASED_MAGNITUDE + description: A decreased magnitude of a quality + meaning: PATO:0002018 + title: decreased magnitude + IntensityEnum: + name: IntensityEnum + definition_uri: https://w3id.org/valuesets/IntensityEnum + instantiates: + - valuesets_meta:ValueSetEnumDefinition + description: A quality inhering in a bearer by virtue of the bearer's possessing + or displaying a distinctive feature in type or degree or effect or force. Derived + from PATO intensity (PATO:0000049) child values. + title: Intensity + from_schema: https://w3id.org/valuesets/bio/pato + contributors: + - orcid:0000-0002-6601-2165 + - https://github.com/anthropics/claude-code + status: DRAFT + permissible_values: + BORDERLINE: + text: BORDERLINE + description: Borderline in effect or force compared to baseline or normal + meaning: PATO:0002628 + title: borderline intensity + MILD: + text: MILD + description: Less than moderate in type or degree or effect or force + meaning: PATO:0000394 + title: mild intensity + MODERATE: + text: MODERATE + description: Less than extreme in type or degree or effect or force + meaning: PATO:0000395 + title: moderate intensity + SEVERE: + text: SEVERE + description: Extremely bad or unpleasant in type or degree or effect or force + meaning: PATO:0000396 + title: severe intensity + PROFOUND: + text: PROFOUND + description: Very severe in intensity + meaning: PATO:0002629 + title: profound intensity + INCREASED_INTENSITY: + text: INCREASED_INTENSITY + description: Intensity which is relatively high + meaning: PATO:0001782 + title: increased intensity + DECREASED_INTENSITY: + text: DECREASED_INTENSITY + description: Intensity which is relatively low + meaning: PATO:0001783 + title: decreased intensity + REMITTENT: + text: REMITTENT + description: Characterised by temporary abatement in severity + meaning: PATO:0001841 + title: remittent intensity + TextureEnum: + name: TextureEnum + definition_uri: https://w3id.org/valuesets/TextureEnum + instantiates: + - valuesets_meta:ValueSetEnumDefinition + description: A morphological quality inhering in a bearer by virtue of the bearer's + surface characteristics. Derived from PATO texture (PATO:0000150) child values. + title: Texture + from_schema: https://w3id.org/valuesets/bio/pato + contributors: + - orcid:0000-0002-6601-2165 + - https://github.com/anthropics/claude-code + status: DRAFT + permissible_values: + SMOOTH: + text: SMOOTH + description: Having a surface free of roughness or irregularities + meaning: PATO:0000701 + title: smooth + ROUGH: + text: ROUGH + description: Having an irregular surface + meaning: PATO:0000700 + title: rough + SCALY: + text: SCALY + description: Being covered or partially covered with scales + meaning: PATO:0001804 + title: scaly + FLAKY: + text: FLAKY + description: Formed or tending to form flakes or thin, crisp fragments + meaning: PATO:0001805 + title: flaky + GROOVED: + text: GROOVED + description: Being marked with one or more channels + meaning: PATO:0002255 + title: grooved + BLISTERED: + text: BLISTERED + description: Having a local accumulation of fluid underneath the surface + meaning: PATO:0001928 + title: blistered + HAIRY: + text: HAIRY + description: Having hair or bristles + meaning: PATO:0000066 + title: pilose + aliases: + - pilose + - hairy + ABRASED: + text: ABRASED + description: Having a portion of the surface scraped away + meaning: PATO:0001849 + title: abrased + RUSTY: + text: RUSTY + description: Being covered by iron oxide as a result of oxidation + meaning: PATO:0070059 + title: rusty + FOVEATE: + text: FOVEATE + description: Being marked by the presence of small, shallow, regular depressions + meaning: PATO:0002296 + title: foveate + PATOBiologicalSexEnum: + name: PATOBiologicalSexEnum + definition_uri: https://w3id.org/valuesets/PATOBiologicalSexEnum + instantiates: + - valuesets_meta:ValueSetEnumDefinition + description: An organismal quality inhering in a bearer by virtue of the bearer's + ability to undergo sexual reproduction. Derived from PATO biological sex (PATO:0000047) + and phenotypic sex (PATO:0001894) child values. + title: Biological Sex (PATO) + from_schema: https://w3id.org/valuesets/bio/pato + contributors: + - orcid:0000-0002-6601-2165 + - https://github.com/anthropics/claude-code + status: DRAFT + permissible_values: + FEMALE: + text: FEMALE + description: A biological sex quality inhering in an individual or population + that only produces gametes that can be fertilised by male gametes + meaning: PATO:0000383 + title: female + MALE: + text: MALE + description: A biological sex quality inhering in an individual or population + whose sex organs contain only male gametes + meaning: PATO:0000384 + title: male + HERMAPHRODITE: + text: HERMAPHRODITE + description: A biological sex quality inhering in an organism or population + with both male and female sexual organs in one individual + meaning: PATO:0001340 + title: hermaphrodite + MALE_WITH_DSD: + text: MALE_WITH_DSD + description: A male of a non-hermaphroditic species with ambiguous or atypical + congenital development of the reproductive system + meaning: PATO:0040049 + title: male with DSD + comments: + - DSD = disorders/differences of sexual development/differentiation + FEMALE_WITH_DSD: + text: FEMALE_WITH_DSD + description: A female of a non-hermaphroditic species with ambiguous or atypical + congenital development of the reproductive system + meaning: PATO:0040056 + title: female with DSD + comments: + - DSD = disorders/differences of sexual development/differentiation + PSEUDOHERMAPHRODITE: + text: PSEUDOHERMAPHRODITE + description: Having internal reproductive organs of one sex and external sexual + characteristics of the other sex + meaning: PATO:0001827 + title: pseudohermaphrodite + MaturityEnum: + name: MaturityEnum + definition_uri: https://w3id.org/valuesets/MaturityEnum + instantiates: + - valuesets_meta:ValueSetEnumDefinition + description: A quality of a single physical entity held by a bearer when it exhibits + a state of growth, differentiation, or development. Derived from PATO maturity + (PATO:0000261) child values. + title: Maturity + from_schema: https://w3id.org/valuesets/bio/pato + contributors: + - orcid:0000-0002-6601-2165 + - https://github.com/anthropics/claude-code + status: DRAFT + permissible_values: + NEONATAL: + text: NEONATAL + description: Being at the point or shortly after birth + meaning: PATO:0002206 + title: neonatal + LARVAL: + text: LARVAL + description: Undergoing indirect development and metamorphosis + meaning: PATO:0001185 + title: larval + PREPUBESCENT: + text: PREPUBESCENT + description: Being at the age immediately before puberty + meaning: PATO:0001186 + title: prepubescent + PUPAL: + text: PUPAL + description: Being in the chrysalis (cocoon) or post-larval stage + meaning: PATO:0001187 + title: pupal + PREPUPAL: + text: PREPUPAL + description: Being in an inactive stage between the larval and the pupal stages + meaning: PATO:0001188 + title: prepupal + PUBESCENT: + text: PUBESCENT + description: Having arrived at the onset of puberty but not yet fully mature + meaning: PATO:0000455 + title: pubescent + ADOLESCENT: + text: ADOLESCENT + description: Being between the onset of puberty and maturity + meaning: PATO:0001189 + title: adolescent + JUVENILE: + text: JUVENILE + description: Not fully grown or developed + meaning: PATO:0001190 + title: juvenile + IMMATURE: + text: IMMATURE + description: Lacking complete growth, differentiation, or development + meaning: PATO:0001501 + title: immature + MATURE: + text: MATURE + description: Exhibiting complete growth, differentiation, or development + meaning: PATO:0001701 + title: mature + aliases: + - adult + ViabilityEnum: + name: ViabilityEnum + definition_uri: https://w3id.org/valuesets/ViabilityEnum + instantiates: + - valuesets_meta:ValueSetEnumDefinition + description: An organismal quality inhering in a bearer by virtue of the bearer's + disposition to survive and develop normally. Derived from PATO viability (PATO:0000169) + child values. + title: Viability + from_schema: https://w3id.org/valuesets/bio/pato + contributors: + - orcid:0000-0002-6601-2165 + - https://github.com/anthropics/claude-code + status: DRAFT + permissible_values: + ALIVE: + text: ALIVE + description: The bearer's condition before death + meaning: PATO:0001421 + title: alive + DEAD: + text: DEAD + description: The cessation of the bearer's life + meaning: PATO:0001422 + title: dead + VIABLE: + text: VIABLE + description: The bearer's ability to survive or the long term survival ability + of a given population + meaning: PATO:0000719 + title: viable + LETHAL: + text: LETHAL + description: The bearer's long term survival inability + meaning: PATO:0000718 + title: lethal (sensu genetics) + SEMI_VIABLE: + text: SEMI_VIABLE + description: Some of the population members' ability to survive + meaning: PATO:0001770 + title: semi-viable + SEMI_LETHAL: + text: SEMI_LETHAL + description: Some of the population members' inability to survive to reproduce + meaning: PATO:0001768 + title: semi-lethal (sensu genetics) + IMMORTAL: + text: IMMORTAL + description: Being capable of indefinite growth or division + meaning: PATO:0001991 + title: immortal + DECAYED: + text: DECAYED + description: Decomposition into component parts + meaning: PATO:0001432 + title: decayed + CellularityEnum: + name: CellularityEnum + definition_uri: https://w3id.org/valuesets/CellularityEnum + instantiates: + - valuesets_meta:ValueSetEnumDefinition + description: An organismal quality inhering in a bearer by virtue of the bearer's + consisting of cells. Derived from PATO cellularity (PATO:0001992) child values. + title: Cellularity + from_schema: https://w3id.org/valuesets/bio/pato + contributors: + - orcid:0000-0002-6601-2165 + - https://github.com/anthropics/claude-code + status: DRAFT + permissible_values: + UNICELLULAR: + text: UNICELLULAR + description: Consisting of exactly one cell + meaning: PATO:0001994 + title: unicellular + MULTICELLULAR: + text: MULTICELLULAR + description: Consisting of more than one cell + meaning: PATO:0001993 + title: multicellular + SpatialPatternEnum: + name: SpatialPatternEnum + definition_uri: https://w3id.org/valuesets/SpatialPatternEnum + instantiates: + - valuesets_meta:ValueSetEnumDefinition + description: A spatial quality inhering in a bearer by virtue of the bearer's + exhibiting repetition of placement of its parts. Derived from PATO spatial pattern + (PATO:0000060) child values. + title: Spatial Pattern + from_schema: https://w3id.org/valuesets/bio/pato + contributors: + - orcid:0000-0002-6601-2165 + - https://github.com/anthropics/claude-code + status: DRAFT + permissible_values: + LOCALIZED: + text: LOCALIZED + description: Being confined or restricted to a particular location + meaning: PATO:0000627 + title: localized + UNLOCALISED: + text: UNLOCALISED + description: Not being confined or restricted to a particular location + meaning: PATO:0000635 + title: unlocalised + aliases: + - diffuse + MULTI_LOCALISED: + text: MULTI_LOCALISED + description: Being confined or restricted to multiple locations + meaning: PATO:0001791 + title: multi-localised + DISTRIBUTED: + text: DISTRIBUTED + description: Being spread out or scattered about or divided up + meaning: PATO:0001566 + title: distributed + UNDISTRIBUTED: + text: UNDISTRIBUTED + description: Not being spread out or scattered about or divided up + meaning: PATO:0001567 + title: undistributed + SPARSE: + text: SPARSE + description: Being scattered and spread irregularly at a distance from each + other + meaning: PATO:0001609 + title: sparse + UNILATERAL: + text: UNILATERAL + description: Involving only one part or side + meaning: PATO:0000634 + title: unilateral + VERTICAL: + text: VERTICAL + description: Being situated at right angles to the horizon + meaning: PATO:0001854 + title: vertical + REGULAR_SPATIAL_PATTERN: + text: REGULAR_SPATIAL_PATTERN + description: Having a repeatable or predictable placement + meaning: PATO:0000440 + title: regular spatial pattern + IRREGULAR_SPATIAL_PATTERN: + text: IRREGULAR_SPATIAL_PATTERN + description: Magnitude or relationships between repeated parts lack consistency + meaning: PATO:0000330 + title: irregular spatial pattern + GENERALIZED: + text: GENERALIZED + description: Affecting all regions without specificity of distribution + meaning: PATO:0002403 + title: generalized + SEGMENTAL: + text: SEGMENTAL + description: Affecting a segment or segments + meaning: PATO:0002404 + title: segmental + RANDOM_PATTERN: + text: RANDOM_PATTERN + description: Characterised by an unidentifiable pattern + meaning: PATO:0002401 + title: random pattern + SYMMETRICAL: + text: SYMMETRICAL + description: Correspondence in size, shape, and relative position of parts + on opposite sides of a dividing line or about a center or axis + meaning: PATO:0000965 + title: symmetry DNABaseEnum: name: DNABaseEnum definition_uri: https://w3id.org/valuesets/DNABaseEnum @@ -64267,6 +66270,609 @@ enums: text: BARCODE_READING description: Operation to read barcode labels on samples or containers title: barcode reading + LabUnitOperationEnum: + name: LabUnitOperationEnum + definition_uri: https://w3id.org/valuesets/LabUnitOperationEnum + instantiates: + - valuesets_meta:ValueSetEnumDefinition + description: Composable sample-manipulation primitives ("unit operations") used + to build sample-preparation protocols in a cloud laboratory. Modeled on the + ECL Symbolic Lab Language sample-preparation unit operations (Transfer, Aliquot, + Mix, Incubate, Filter, Centrifuge, Pellet, Resuspend, etc.). Complements the + lower level LiquidHandlingOperationEnum and SampleProcessingOperationEnum in + lab_automation/operations. + title: Lab Unit Operation + from_schema: https://w3id.org/valuesets/lab_automation/cloud_lab + see_also: + - https://w3id.org/valuesets/lab_automation/operations + - https://www.emeraldcloudlab.com/guides/runningexperiments + contributors: + - orcid:0000-0002-6601-2165 + - https://github.com/anthropics/claude-code + status: DRAFT + permissible_values: + DEFINE: + text: DEFINE + description: Declare a new sample, container, or model and assign it a label + for later reference in the protocol + title: define + LABEL_SAMPLE: + text: LABEL_SAMPLE + description: Assign a human-readable label to a sample so it can be referenced + by later unit operations + title: label sample + LABEL_CONTAINER: + text: LABEL_CONTAINER + description: Assign a human-readable label to a container so it can be referenced + by later unit operations + title: label container + TRANSFER: + text: TRANSFER + description: Move a specified amount of sample from one source to one or more + destinations + title: transfer + ALIQUOT: + text: ALIQUOT + description: Distribute a sample into multiple equal portions in separate + containers + title: aliquot + CONSOLIDATE: + text: CONSOLIDATE + description: Combine multiple source samples into a single destination container + title: consolidate + DILUTE: + text: DILUTE + description: Reduce the concentration of a sample by adding diluent to a target + volume or concentration + title: dilute + SERIAL_DILUTE: + text: SERIAL_DILUTE + description: Create a stepwise series of dilutions by repeatedly transferring + and diluting a sample + title: serial dilute + FILL_TO_VOLUME: + text: FILL_TO_VOLUME + description: Add solvent to a sample until a specified total volume is reached + title: fill to volume + RESUSPEND: + text: RESUSPEND + description: Dissolve or re-disperse a solid or pellet in a specified volume + of solvent + title: resuspend + PREPARE_STOCK_SOLUTION: + text: PREPARE_STOCK_SOLUTION + description: Prepare a solution of defined composition from components and + solvent + title: prepare stock solution + ADJUST_PH: + text: ADJUST_PH + description: Add titrant to bring a sample to a target pH + title: adjust pH + MIX: + text: MIX + description: Homogenize a sample by pipetting, inversion, vortexing, stirring, + sonication, or related agitation + meaning: CHMO:0001685 + title: mix + aliases: + - mixing + INCUBATE: + text: INCUBATE + description: Hold a sample at controlled temperature (and optionally mixing) + for a specified duration + title: incubate + WAIT: + text: WAIT + description: Pause the protocol for a specified duration without other manipulation + title: wait + CENTRIFUGE: + text: CENTRIFUGE + description: Apply centrifugal force to a sample to separate components by + density + meaning: OBI:0302886 + title: centrifuge + aliases: + - centrifugation + PELLET: + text: PELLET + description: Centrifuge to precipitate solids, optionally aspirate the supernatant, + and optionally resuspend the pellet + title: pellet + FILTER: + text: FILTER + description: Pass a sample through a filter to separate particulates or to + sterilize + meaning: CHMO:0001640 + title: filter + aliases: + - filtration + MAGNETIC_BEAD_SEPARATION: + text: MAGNETIC_BEAD_SEPARATION + description: Isolate target analytes bound to magnetic beads using a magnetic + field + title: magnetic bead separation + MOVE_TO_MAGNET: + text: MOVE_TO_MAGNET + description: Place a container on a magnetic rack to immobilize magnetic beads + title: move to magnet + REMOVE_FROM_MAGNET: + text: REMOVE_FROM_MAGNET + description: Remove a container from a magnetic rack to release magnetic beads + title: remove from magnet + COVER: + text: COVER + description: Apply a lid, cap, or seal to a container + title: cover + UNCOVER: + text: UNCOVER + description: Remove a lid, cap, or seal from a container + title: uncover + DEGAS: + text: DEGAS + description: Remove dissolved gases from a liquid sample + meaning: CHMO:0002772 + title: degas + aliases: + - degassing + DESICCATE: + text: DESICCATE + description: Remove moisture from a sample using a desiccant or controlled-humidity + chamber + title: desiccate + EVAPORATE: + text: EVAPORATE + description: Remove solvent from a sample by evaporation, optionally under + reduced pressure + meaning: CHMO:0001574 + title: evaporate + aliases: + - evaporation + LYOPHILIZE: + text: LYOPHILIZE + description: Freeze-dry a sample to remove solvent by sublimation under vacuum + meaning: CHMO:0001553 + title: lyophilize + aliases: + - freeze drying + FLASH_FREEZE: + text: FLASH_FREEZE + description: Rapidly freeze a sample, typically in liquid nitrogen + title: flash freeze + AUTOCLAVE: + text: AUTOCLAVE + description: Sterilize a sample or labware using pressurized saturated steam + title: autoclave + GRIND: + text: GRIND + description: Mechanically reduce a solid sample to smaller particles or powder + meaning: CHMO:0001652 + title: grind + aliases: + - grinding + MICROWAVE_DIGESTION: + text: MICROWAVE_DIGESTION + description: Digest a sample in acid under microwave heating to bring analytes + into solution + title: microwave digestion + CloudLabExperimentEnum: + name: CloudLabExperimentEnum + definition_uri: https://w3id.org/valuesets/CloudLabExperimentEnum + instantiates: + - valuesets_meta:ValueSetEnumDefinition + description: Higher-level experiment and assay functions offered as protocols + by a cloud laboratory, modeled on the ECL Symbolic Lab Language experiment functions + and grouped by category (synthesis, separations/chromatography, spectroscopy, + mass spectrometry, bioassays, crystallography, property measurement, cellular). + Cross-referenced to the assay value sets in bio/assays/ (OBIAssayEnum, BAOBioassayEnum) + and to analytical_chemistry vocabularies; `meaning:` maps to OBI/CHMO classes + where an equivalent assay or analytical method exists. + title: Cloud Lab Experiment + from_schema: https://w3id.org/valuesets/lab_automation/cloud_lab + see_also: + - https://w3id.org/valuesets/bio/assays/bio_assay + - https://www.emeraldcloudlab.com/guides/runningexperiments + contributors: + - orcid:0000-0002-6601-2165 + - https://github.com/anthropics/claude-code + status: DRAFT + permissible_values: + DNA_SYNTHESIS: + text: DNA_SYNTHESIS + description: Solid-phase chemical synthesis of DNA oligonucleotides + title: DNA synthesis + RNA_SYNTHESIS: + text: RNA_SYNTHESIS + description: Solid-phase chemical synthesis of RNA oligonucleotides + title: RNA synthesis + PNA_SYNTHESIS: + text: PNA_SYNTHESIS + description: Solid-phase chemical synthesis of peptide nucleic acid oligomers + title: PNA synthesis + PEPTIDE_SYNTHESIS: + text: PEPTIDE_SYNTHESIS + description: Solid-phase chemical synthesis of peptides + title: peptide synthesis + PCR: + text: PCR + description: Polymerase chain reaction amplification of nucleic acids + meaning: OBI:0000415 + title: PCR + aliases: + - polymerase chain reaction + BIOCONJUGATION: + text: BIOCONJUGATION + description: Covalent coupling of biomolecules or labels to a target molecule + title: bioconjugation + HPLC: + text: HPLC + description: High-performance liquid chromatography separation + meaning: CHMO:0001009 + title: HPLC + aliases: + - high-performance liquid chromatography + FPLC: + text: FPLC + description: Fast protein liquid chromatography separation + title: FPLC + FLASH_CHROMATOGRAPHY: + text: FLASH_CHROMATOGRAPHY + description: Medium-pressure flash column chromatography separation + meaning: CHMO:0002582 + title: flash chromatography + GAS_CHROMATOGRAPHY: + text: GAS_CHROMATOGRAPHY + description: Gas chromatography separation of volatile analytes + meaning: CHMO:0001002 + title: gas chromatography + ION_CHROMATOGRAPHY: + text: ION_CHROMATOGRAPHY + description: Chromatographic separation of ionic species + meaning: CHMO:0002874 + title: ion chromatography + SUPERCRITICAL_FLUID_CHROMATOGRAPHY: + text: SUPERCRITICAL_FLUID_CHROMATOGRAPHY + description: Chromatographic separation using a supercritical fluid mobile + phase + title: supercritical fluid chromatography + SOLID_PHASE_EXTRACTION: + text: SOLID_PHASE_EXTRACTION + description: Sample cleanup or enrichment by selective retention on a solid + sorbent + title: solid phase extraction + LIQUID_LIQUID_EXTRACTION: + text: LIQUID_LIQUID_EXTRACTION + description: Separation of analytes between two immiscible liquid phases + meaning: CHMO:0001600 + title: liquid-liquid extraction + aliases: + - "liquid\u2013liquid extraction" + CROSS_FLOW_FILTRATION: + text: CROSS_FLOW_FILTRATION + description: Tangential-flow filtration for concentration or buffer exchange + title: cross-flow filtration + DIALYSIS: + text: DIALYSIS + description: Separation of molecules by size across a semipermeable membrane + meaning: CHMO:0001522 + title: dialysis + AGAROSE_GEL_ELECTROPHORESIS: + text: AGAROSE_GEL_ELECTROPHORESIS + description: Size-based separation of nucleic acids in an agarose gel + meaning: CHMO:0001022 + title: agarose gel electrophoresis + PAGE: + text: PAGE + description: Polyacrylamide gel electrophoresis separation of biomolecules + meaning: CHMO:0001023 + title: PAGE + aliases: + - polyacrylamide gel electrophoresis + CAPILLARY_GEL_ELECTROPHORESIS_SDS: + text: CAPILLARY_GEL_ELECTROPHORESIS_SDS + description: SDS capillary gel electrophoresis sizing of proteins + title: capillary gel electrophoresis SDS + CAPILLARY_ISOELECTRIC_FOCUSING: + text: CAPILLARY_ISOELECTRIC_FOCUSING + description: Separation of proteins by isoelectric point in a capillary + meaning: CHMO:0001033 + title: capillary isoelectric focusing + WESTERN_BLOT: + text: WESTERN_BLOT + description: Immunodetection of proteins separated by electrophoresis + meaning: OBI:0000854 + title: Western blot + aliases: + - western blot assay + NMR: + text: NMR + description: One-dimensional nuclear magnetic resonance spectroscopy + meaning: CHMO:0000591 + title: NMR + aliases: + - nuclear magnetic resonance spectroscopy + NMR_2D: + text: NMR_2D + description: Two-dimensional nuclear magnetic resonance spectroscopy + meaning: CHMO:0000598 + title: 2D NMR + aliases: + - two-dimensional nuclear magnetic resonance spectroscopy + ABSORBANCE_SPECTROSCOPY: + text: ABSORBANCE_SPECTROSCOPY + description: Measurement of absorbance across a wavelength range + title: absorbance spectroscopy + ABSORBANCE_INTENSITY: + text: ABSORBANCE_INTENSITY + description: Measurement of absorbance at one or more discrete wavelengths + title: absorbance intensity + ABSORBANCE_KINETICS: + text: ABSORBANCE_KINETICS + description: Time-resolved measurement of absorbance + title: absorbance kinetics + FLUORESCENCE_SPECTROSCOPY: + text: FLUORESCENCE_SPECTROSCOPY + description: Measurement of fluorescence emission across a wavelength range + meaning: CHMO:0000287 + title: fluorescence spectroscopy + FLUORESCENCE_INTENSITY: + text: FLUORESCENCE_INTENSITY + description: Measurement of fluorescence intensity at discrete wavelengths + title: fluorescence intensity + FLUORESCENCE_KINETICS: + text: FLUORESCENCE_KINETICS + description: Time-resolved measurement of fluorescence intensity + title: fluorescence kinetics + FLUORESCENCE_POLARIZATION: + text: FLUORESCENCE_POLARIZATION + description: Measurement of fluorescence polarization/anisotropy + title: fluorescence polarization + LUMINESCENCE_SPECTROSCOPY: + text: LUMINESCENCE_SPECTROSCOPY + description: Measurement of luminescence emission across a wavelength range + meaning: CHMO:0002415 + title: luminescence spectroscopy + LUMINESCENCE_INTENSITY: + text: LUMINESCENCE_INTENSITY + description: Measurement of luminescence intensity at discrete wavelengths + title: luminescence intensity + LUMINESCENCE_KINETICS: + text: LUMINESCENCE_KINETICS + description: Time-resolved measurement of luminescence intensity + title: luminescence kinetics + IR_SPECTROSCOPY: + text: IR_SPECTROSCOPY + description: Infrared absorption spectroscopy + meaning: CHMO:0000630 + title: IR spectroscopy + aliases: + - infrared absorption spectroscopy + RAMAN_SPECTROSCOPY: + text: RAMAN_SPECTROSCOPY + description: Raman scattering spectroscopy + meaning: CHMO:0000656 + title: Raman spectroscopy + CIRCULAR_DICHROISM: + text: CIRCULAR_DICHROISM + description: Measurement of differential absorption of circularly polarized + light + title: circular dichroism + DYNAMIC_LIGHT_SCATTERING: + text: DYNAMIC_LIGHT_SCATTERING + description: Measurement of particle size distribution from scattered-light + fluctuations + meaning: CHMO:0000167 + title: dynamic light scattering + NEPHELOMETRY: + text: NEPHELOMETRY + description: Measurement of turbidity by scattered light + title: nephelometry + THERMAL_SHIFT: + text: THERMAL_SHIFT + description: Measurement of protein thermal stability via a fluorescent thermal + shift assay + title: thermal shift + UV_MELTING: + text: UV_MELTING + description: Measurement of nucleic acid or protein melting curves by UV absorbance + title: UV melting + MASS_SPECTROMETRY: + text: MASS_SPECTROMETRY + description: Determination of mass-to-charge ratios of ionized analytes + meaning: CHMO:0000470 + title: mass spectrometry + LCMS: + text: LCMS + description: Liquid chromatography coupled to mass spectrometry + meaning: CHMO:0000524 + title: LC-MS + aliases: + - liquid chromatography-mass spectrometry + GCMS: + text: GCMS + description: Gas chromatography coupled to mass spectrometry + meaning: CHMO:0000497 + title: GC-MS + aliases: + - gas chromatography-mass spectrometry + ICPMS: + text: ICPMS + description: Inductively coupled plasma mass spectrometry for elemental analysis + meaning: CHMO:0000538 + title: ICP-MS + aliases: + - inductively coupled plasma mass spectrometry + ELISA: + text: ELISA + description: Enzyme-linked immunosorbent assay + meaning: OBI:0000661 + title: ELISA + aliases: + - enzyme-linked immunosorbent assay + CAPILLARY_ELISA: + text: CAPILLARY_ELISA + description: Automated capillary-based enzyme-linked immunosorbent assay + title: capillary ELISA + ALPHASCREEN: + text: ALPHASCREEN + description: Bead-based amplified luminescent proximity homogeneous assay + title: AlphaScreen + BIOLAYER_INTERFEROMETRY: + text: BIOLAYER_INTERFEROMETRY + description: Label-free measurement of biomolecular binding kinetics by interferometry + meaning: OBI:0002107 + title: biolayer interferometry + aliases: + - bio-layer interferometry assay + QPCR: + text: QPCR + description: Quantitative real-time polymerase chain reaction + meaning: OBI:0000893 + title: qPCR + aliases: + - real time polymerase chain reaction assay + DNA_SEQUENCING: + text: DNA_SEQUENCING + description: Determination of nucleotide sequence of DNA (Sanger/capillary) + meaning: OBI:0000626 + title: DNA sequencing + aliases: + - DNA sequencing assay + TOTAL_PROTEIN_QUANTIFICATION: + text: TOTAL_PROTEIN_QUANTIFICATION + description: Colorimetric or fluorometric quantification of total protein + title: total protein quantification + TOTAL_PROTEIN_DETECTION: + text: TOTAL_PROTEIN_DETECTION + description: Capillary-based detection and sizing of total protein + title: total protein detection + DIFFERENTIAL_SCANNING_CALORIMETRY: + text: DIFFERENTIAL_SCANNING_CALORIMETRY + description: Measurement of heat flow associated with thermal transitions + meaning: CHMO:0000684 + title: differential scanning calorimetry + GROW_CRYSTAL: + text: GROW_CRYSTAL + description: Crystallization of a compound or macromolecule for structural + analysis + meaning: CHMO:0001477 + title: grow crystal + aliases: + - crystallisation + POWDER_XRD: + text: POWDER_XRD + description: Powder X-ray diffraction analysis of crystalline solids + meaning: CHMO:0000158 + title: powder XRD + aliases: + - powder X-ray diffraction + MEASURE_PH: + text: MEASURE_PH + description: Measurement of sample pH + title: measure pH + MEASURE_CONDUCTIVITY: + text: MEASURE_CONDUCTIVITY + description: Measurement of electrical conductivity of a solution + title: measure conductivity + MEASURE_DENSITY: + text: MEASURE_DENSITY + description: Measurement of sample density + title: measure density + MEASURE_VISCOSITY: + text: MEASURE_VISCOSITY + description: Measurement of sample viscosity + title: measure viscosity + MEASURE_OSMOLALITY: + text: MEASURE_OSMOLALITY + description: Measurement of solute concentration as osmolality + title: measure osmolality + MEASURE_REFRACTIVE_INDEX: + text: MEASURE_REFRACTIVE_INDEX + description: Measurement of the refractive index of a sample + title: measure refractive index + MEASURE_SURFACE_TENSION: + text: MEASURE_SURFACE_TENSION + description: Measurement of liquid surface tension + title: measure surface tension + MEASURE_CONTACT_ANGLE: + text: MEASURE_CONTACT_ANGLE + description: Measurement of the contact angle of a liquid on a surface + title: measure contact angle + MEASURE_DISSOLVED_OXYGEN: + text: MEASURE_DISSOLVED_OXYGEN + description: Measurement of dissolved oxygen concentration in a liquid + title: measure dissolved oxygen + MEASURE_MELTING_POINT: + text: MEASURE_MELTING_POINT + description: Determination of the melting point of a solid + title: measure melting point + MEASURE_WEIGHT: + text: MEASURE_WEIGHT + description: Gravimetric measurement of sample mass + title: measure weight + MEASURE_VOLUME: + text: MEASURE_VOLUME + description: Measurement of sample volume + title: measure volume + MEASURE_COUNT: + text: MEASURE_COUNT + description: Counting of discrete objects (e.g. particles, colonies, cells) + title: measure count + COUNT_LIQUID_PARTICLES: + text: COUNT_LIQUID_PARTICLES + description: Counting and sizing of particles suspended in a liquid + title: count liquid particles + COULTER_COUNT: + text: COULTER_COUNT + description: Counting and sizing of particles or cells by electrical impedance + title: Coulter count + CYCLIC_VOLTAMMETRY: + text: CYCLIC_VOLTAMMETRY + description: Electrochemical measurement of current versus swept potential + meaning: CHMO:0000025 + title: cyclic voltammetry + KARL_FISCHER_TITRATION: + text: KARL_FISCHER_TITRATION + description: Titrimetric determination of water content + meaning: CHMO:0002535 + title: Karl Fischer titration + aliases: + - "Karl\u2013Fischer titration" + DISSOLUTION: + text: DISSOLUTION + description: Measurement of the rate and extent of dissolution of a solid + title: dissolution + DYNAMIC_FOAM_ANALYSIS: + text: DYNAMIC_FOAM_ANALYSIS + description: Measurement of foam formation and decay + title: dynamic foam analysis + VISUAL_INSPECTION: + text: VISUAL_INSPECTION + description: Operator or imaging-based visual assessment of a sample + title: visual inspection + IMAGE_SAMPLE: + text: IMAGE_SAMPLE + description: Acquisition of a photographic image of a sample + title: image sample + IMAGE_CELLS: + text: IMAGE_CELLS + description: Microscopic imaging of cells + title: image cells + IMAGE_COLONIES: + text: IMAGE_COLONIES + description: Imaging of microbial colonies on solid media + title: image colonies + QUANTIFY_COLONIES: + text: QUANTIFY_COLONIES + description: Counting and quantification of microbial colonies + title: quantify colonies + LYSE_CELLS: + text: LYSE_CELLS + description: Disruption of cells to release intracellular contents + title: lyse cells + FREEZE_CELLS: + text: FREEZE_CELLS + description: Controlled-rate freezing of cells for storage + title: freeze cells MicroplateFormatEnum: name: MicroplateFormatEnum definition_uri: https://w3id.org/valuesets/MicroplateFormatEnum @@ -70231,6 +72837,20 @@ slots: from_schema: https://w3id.org/valuesets/bio/structural_biology slot_uri: valuesets:protein_modification range: ProteinModificationType + secondary_structure: + name: secondary_structure + definition_uri: https://w3id.org/valuesets/secondary_structure + description: Per-residue secondary structure state + from_schema: https://w3id.org/valuesets/bio/protein_structure_features + slot_uri: valuesets:secondary_structure + range: SecondaryStructureType + local_structural_feature: + name: local_structural_feature + definition_uri: https://w3id.org/valuesets/local_structural_feature + description: Local 3D structural feature, motif, site, or geometric feature + from_schema: https://w3id.org/valuesets/bio/protein_structure_features + slot_uri: valuesets:local_structural_feature + range: LocalStructuralFeature biosafety_level: name: biosafety_level definition_uri: https://w3id.org/valuesets/biosafety_level @@ -71299,6 +73919,13 @@ slots: from_schema: https://w3id.org/valuesets/computing/quantum slot_uri: valuesets:quantum_algorithm_category_type range: QuantumAlgorithmCategoryType + frontier_model: + name: frontier_model + definition_uri: https://w3id.org/valuesets/frontier_model + description: A frontier AI model, its family, or its developer + from_schema: https://w3id.org/valuesets/computing/frontier_ai_models + slot_uri: valuesets:frontier_model + range: FrontierModelEnum semiconductor_material_type: name: semiconductor_material_type definition_uri: https://w3id.org/valuesets/semiconductor_material_type @@ -72027,6 +74654,76 @@ slots: from_schema: https://w3id.org/valuesets/bio/biological_colors slot_uri: valuesets:plant_leaf_color range: PlantLeafColorEnum + pato_color: + name: pato_color + definition_uri: https://w3id.org/valuesets/pato_color + description: Color quality of an entity + from_schema: https://w3id.org/valuesets/bio/pato + slot_uri: valuesets:pato_color + range: ColorEnum + pato_shape: + name: pato_shape + definition_uri: https://w3id.org/valuesets/pato_shape + description: Shape quality of an entity + from_schema: https://w3id.org/valuesets/bio/pato + slot_uri: valuesets:pato_shape + range: ShapeEnum + pato_relative_change: + name: pato_relative_change + definition_uri: https://w3id.org/valuesets/pato_relative_change + description: Direction of change of a quality relative to normal or baseline + from_schema: https://w3id.org/valuesets/bio/pato + slot_uri: valuesets:pato_relative_change + range: RelativeChangeEnum + pato_intensity: + name: pato_intensity + definition_uri: https://w3id.org/valuesets/pato_intensity + description: Intensity or severity of a quality + from_schema: https://w3id.org/valuesets/bio/pato + slot_uri: valuesets:pato_intensity + range: IntensityEnum + pato_texture: + name: pato_texture + definition_uri: https://w3id.org/valuesets/pato_texture + description: Surface texture quality of an entity + from_schema: https://w3id.org/valuesets/bio/pato + slot_uri: valuesets:pato_texture + range: TextureEnum + pato_biological_sex: + name: pato_biological_sex + definition_uri: https://w3id.org/valuesets/pato_biological_sex + description: Biological sex quality of an organism (PATO phenotypic sex) + from_schema: https://w3id.org/valuesets/bio/pato + slot_uri: valuesets:pato_biological_sex + range: PATOBiologicalSexEnum + pato_maturity: + name: pato_maturity + definition_uri: https://w3id.org/valuesets/pato_maturity + description: Maturity or developmental stage quality of an organism + from_schema: https://w3id.org/valuesets/bio/pato + slot_uri: valuesets:pato_maturity + range: MaturityEnum + pato_viability: + name: pato_viability + definition_uri: https://w3id.org/valuesets/pato_viability + description: Viability quality of an organism or cell + from_schema: https://w3id.org/valuesets/bio/pato + slot_uri: valuesets:pato_viability + range: ViabilityEnum + pato_cellularity: + name: pato_cellularity + definition_uri: https://w3id.org/valuesets/pato_cellularity + description: Cellularity quality of an organism + from_schema: https://w3id.org/valuesets/bio/pato + slot_uri: valuesets:pato_cellularity + range: CellularityEnum + pato_spatial_pattern: + name: pato_spatial_pattern + definition_uri: https://w3id.org/valuesets/pato_spatial_pattern + description: Spatial pattern quality of an entity + from_schema: https://w3id.org/valuesets/bio/pato + slot_uri: valuesets:pato_spatial_pattern + range: SpatialPatternEnum dna_base: name: dna_base definition_uri: https://w3id.org/valuesets/dna_base @@ -73574,6 +76271,20 @@ slots: from_schema: https://w3id.org/valuesets/lab_automation/operations slot_uri: valuesets:sample_processing_operation range: SampleProcessingOperationEnum + lab_unit_operation: + name: lab_unit_operation + definition_uri: https://w3id.org/valuesets/lab_unit_operation + description: A sample-manipulation unit operation in a cloud-laboratory protocol + from_schema: https://w3id.org/valuesets/lab_automation/cloud_lab + slot_uri: valuesets:lab_unit_operation + range: LabUnitOperationEnum + cloud_lab_experiment: + name: cloud_lab_experiment + definition_uri: https://w3id.org/valuesets/cloud_lab_experiment + description: A cloud-laboratory experiment or assay function + from_schema: https://w3id.org/valuesets/lab_automation/cloud_lab + slot_uri: valuesets:cloud_lab_experiment + range: CloudLabExperimentEnum microplate_format: name: microplate_format definition_uri: https://w3id.org/valuesets/microplate_format @@ -73912,7 +76623,7 @@ classes: class_uri: valuesets:Fake metamodel_version: 1.7.0 source_file: valuesets.yaml -source_file_date: '2026-02-22T20:57:20' -source_file_size: 4175 -generation_date: '2026-02-22T20:58:46' +source_file_date: '2026-06-12T22:51:38' +source_file_size: 4277 +generation_date: '2026-06-12T22:53:02' diff --git a/project/jsonschema/valuesets.schema.json b/project/jsonschema/valuesets.schema.json index 818eb8a1..2ce65e65 100644 --- a/project/jsonschema/valuesets.schema.json +++ b/project/jsonschema/valuesets.schema.json @@ -1541,6 +1541,15 @@ "title": "CellularComponent", "type": "string" }, + "CellularityEnum": { + "description": "An organismal quality inhering in a bearer by virtue of the bearer's consisting of cells. Derived from PATO cellularity (PATO:0001992) child values.", + "enum": [ + "UNICELLULAR", + "MULTICELLULAR" + ], + "title": "CellularityEnum", + "type": "string" + }, "ChemicalEntity": { "description": "Any chemical entity from ChEBI ontology", "title": "ChemicalEntity", @@ -1675,6 +1684,94 @@ "title": "ClinicalFinding", "type": "string" }, + "CloudLabExperimentEnum": { + "description": "Higher-level experiment and assay functions offered as protocols by a cloud laboratory, modeled on the ECL Symbolic Lab Language experiment functions and grouped by category (synthesis, separations/chromatography, spectroscopy, mass spectrometry, bioassays, crystallography, property measurement, cellular). Cross-referenced to the assay value sets in bio/assays/ (OBIAssayEnum, BAOBioassayEnum) and to analytical_chemistry vocabularies; `meaning:` maps to OBI/CHMO classes where an equivalent assay or analytical method exists.", + "enum": [ + "DNA_SYNTHESIS", + "RNA_SYNTHESIS", + "PNA_SYNTHESIS", + "PEPTIDE_SYNTHESIS", + "PCR", + "BIOCONJUGATION", + "HPLC", + "FPLC", + "FLASH_CHROMATOGRAPHY", + "GAS_CHROMATOGRAPHY", + "ION_CHROMATOGRAPHY", + "SUPERCRITICAL_FLUID_CHROMATOGRAPHY", + "SOLID_PHASE_EXTRACTION", + "LIQUID_LIQUID_EXTRACTION", + "CROSS_FLOW_FILTRATION", + "DIALYSIS", + "AGAROSE_GEL_ELECTROPHORESIS", + "PAGE", + "CAPILLARY_GEL_ELECTROPHORESIS_SDS", + "CAPILLARY_ISOELECTRIC_FOCUSING", + "WESTERN_BLOT", + "NMR", + "NMR_2D", + "ABSORBANCE_SPECTROSCOPY", + "ABSORBANCE_INTENSITY", + "ABSORBANCE_KINETICS", + "FLUORESCENCE_SPECTROSCOPY", + "FLUORESCENCE_INTENSITY", + "FLUORESCENCE_KINETICS", + "FLUORESCENCE_POLARIZATION", + "LUMINESCENCE_SPECTROSCOPY", + "LUMINESCENCE_INTENSITY", + "LUMINESCENCE_KINETICS", + "IR_SPECTROSCOPY", + "RAMAN_SPECTROSCOPY", + "CIRCULAR_DICHROISM", + "DYNAMIC_LIGHT_SCATTERING", + "NEPHELOMETRY", + "THERMAL_SHIFT", + "UV_MELTING", + "MASS_SPECTROMETRY", + "LCMS", + "GCMS", + "ICPMS", + "ELISA", + "CAPILLARY_ELISA", + "ALPHASCREEN", + "BIOLAYER_INTERFEROMETRY", + "QPCR", + "DNA_SEQUENCING", + "TOTAL_PROTEIN_QUANTIFICATION", + "TOTAL_PROTEIN_DETECTION", + "DIFFERENTIAL_SCANNING_CALORIMETRY", + "GROW_CRYSTAL", + "POWDER_XRD", + "MEASURE_PH", + "MEASURE_CONDUCTIVITY", + "MEASURE_DENSITY", + "MEASURE_VISCOSITY", + "MEASURE_OSMOLALITY", + "MEASURE_REFRACTIVE_INDEX", + "MEASURE_SURFACE_TENSION", + "MEASURE_CONTACT_ANGLE", + "MEASURE_DISSOLVED_OXYGEN", + "MEASURE_MELTING_POINT", + "MEASURE_WEIGHT", + "MEASURE_VOLUME", + "MEASURE_COUNT", + "COUNT_LIQUID_PARTICLES", + "COULTER_COUNT", + "CYCLIC_VOLTAMMETRY", + "KARL_FISCHER_TITRATION", + "DISSOLUTION", + "DYNAMIC_FOAM_ANALYSIS", + "VISUAL_INSPECTION", + "IMAGE_SAMPLE", + "IMAGE_CELLS", + "IMAGE_COLONIES", + "QUANTIFY_COLONIES", + "LYSE_CELLS", + "FREEZE_CELLS" + ], + "title": "CloudLabExperimentEnum", + "type": "string" + }, "CodonEnum": { "description": "Standard genetic code codons (DNA)", "enum": [ @@ -1746,6 +1843,30 @@ "title": "CodonEnum", "type": "string" }, + "ColorEnum": { + "description": "A composite chromatic quality composed of hue, saturation and intensity parts. Derived from PATO color (PATO:0000014) child values.", + "enum": [ + "BLACK", + "WHITE", + "GREY", + "RED", + "ORANGE", + "YELLOW", + "GREEN", + "CYAN", + "BLUE", + "VIOLET", + "PURPLE", + "MAGENTA", + "BROWN", + "MAROON", + "ROSY", + "VERMILION", + "COLORED" + ], + "title": "ColorEnum", + "type": "string" + }, "ColorSpaceEnum": { "description": "Color space and model types", "enum": [ @@ -3929,6 +4050,66 @@ "title": "FrequencyUnitEnum", "type": "string" }, + "FrontierModelEnum": { + "description": "Hierarchical enumeration of frontier AI models. The hierarchy has three tiers: developer (e.g. ANTHROPIC), model family (e.g. CLAUDE_OPUS), and specific model release identified by its canonical API model id (e.g. claude-opus-4-8). Intermediate developer and family nodes are uppercase categorical values; leaf nodes are the verbatim API identifiers.", + "enum": [ + "ANTHROPIC", + "CLAUDE_OPUS", + "claude-opus-4-8", + "claude-opus-4-7", + "claude-opus-4-6", + "claude-opus-4-5", + "CLAUDE_SONNET", + "claude-sonnet-4-6", + "claude-sonnet-4-5", + "CLAUDE_HAIKU", + "claude-haiku-4-5", + "CLAUDE_FABLE", + "claude-fable-5", + "CLAUDE_MYTHOS", + "claude-mythos-5", + "OPENAI", + "GPT_5", + "gpt-5.5", + "gpt-5.4", + "gpt-5.4-mini", + "gpt-5.2", + "gpt-5.2-codex", + "GOOGLE", + "GEMINI_3", + "gemini-3.5-flash", + "gemini-3.1-pro-preview", + "gemini-3-flash-preview", + "gemini-3.1-flash-lite", + "GEMINI_2_5", + "gemini-2.5-pro", + "gemini-2.5-flash", + "gemini-2.5-flash-lite", + "XAI", + "GROK_4", + "grok-4.3", + "grok-4.20-0309-reasoning", + "grok-4-0709", + "GROK_CODE", + "grok-code-fast-1", + "META", + "LLAMA_4", + "llama-4-maverick", + "llama-4-scout", + "DEEPSEEK", + "DEEPSEEK_MODELS", + "deepseek-chat", + "deepseek-reasoner", + "MISTRAL", + "MISTRAL_LARGE", + "mistral-large-3", + "MOONSHOT", + "KIMI", + "kimi-k2.6" + ], + "title": "FrontierModelEnum", + "type": "string" + }, "FuelAssemblyTypeEnum": { "description": "Types of fuel assembly configurations", "enum": [ @@ -5474,6 +5655,21 @@ "title": "IntegrationSystemEnum", "type": "string" }, + "IntensityEnum": { + "description": "A quality inhering in a bearer by virtue of the bearer's possessing or displaying a distinctive feature in type or degree or effect or force. Derived from PATO intensity (PATO:0000049) child values.", + "enum": [ + "BORDERLINE", + "MILD", + "MODERATE", + "SEVERE", + "PROFOUND", + "INCREASED_INTENSITY", + "DECREASED_INTENSITY", + "REMITTENT" + ], + "title": "IntensityEnum", + "type": "string" + }, "IntentClassificationEnum": { "description": "Common chatbot/NLU intent categories", "enum": [ @@ -5634,6 +5830,44 @@ "title": "LabAutomationWorkflowType", "type": "string" }, + "LabUnitOperationEnum": { + "description": "Composable sample-manipulation primitives (\"unit operations\") used to build sample-preparation protocols in a cloud laboratory. Modeled on the ECL Symbolic Lab Language sample-preparation unit operations (Transfer, Aliquot, Mix, Incubate, Filter, Centrifuge, Pellet, Resuspend, etc.). Complements the lower level LiquidHandlingOperationEnum and SampleProcessingOperationEnum in lab_automation/operations.", + "enum": [ + "DEFINE", + "LABEL_SAMPLE", + "LABEL_CONTAINER", + "TRANSFER", + "ALIQUOT", + "CONSOLIDATE", + "DILUTE", + "SERIAL_DILUTE", + "FILL_TO_VOLUME", + "RESUSPEND", + "PREPARE_STOCK_SOLUTION", + "ADJUST_PH", + "MIX", + "INCUBATE", + "WAIT", + "CENTRIFUGE", + "PELLET", + "FILTER", + "MAGNETIC_BEAD_SEPARATION", + "MOVE_TO_MAGNET", + "REMOVE_FROM_MAGNET", + "COVER", + "UNCOVER", + "DEGAS", + "DESICCATE", + "EVAPORATE", + "LYOPHILIZE", + "FLASH_FREEZE", + "AUTOCLAVE", + "GRIND", + "MICROWAVE_DIGESTION" + ], + "title": "LabUnitOperationEnum", + "type": "string" + }, "LaboratoryDeviceTypeEnum": { "description": "Types of automated laboratory devices and equipment", "enum": [ @@ -5894,6 +6128,32 @@ "title": "LiquidHandlingOperationEnum", "type": "string" }, + "LocalStructuralFeature": { + "description": "Fine-grained local three-dimensional features of protein structures, spanning super-secondary structural motifs, functional sites, and local geometric surface features. This is the curated, ontology-mapped analogue of the learned per-residue feature vocabularies produced by protein language models and their sparse-autoencoder interpretations. Members marked with the ``ontology_gap`` annotation have no suitable OBO term and are candidates for new ontology terms.", + "enum": [ + "POLYPEPTIDE_STRUCTURAL_MOTIF", + "BETA_HAIRPIN", + "BETA_BULGE", + "ASX_MOTIF", + "NEST", + "COILED_COIL", + "HELIX_CAP", + "CATALYTIC_RESIDUE", + "PROTEIN_BINDING_SITE", + "DISULFIDE_BOND", + "METAL_BINDING_SITE", + "POCKET", + "CLEFT", + "CAVITY", + "TUNNEL", + "GROOVE", + "ELBOW", + "KINK", + "INTERFACE" + ], + "title": "LocalStructuralFeature", + "type": "string" + }, "LogisticsOperationEnum": { "description": "Types of logistics operations", "enum": [ @@ -6333,6 +6593,23 @@ "title": "MaterialsSimulationType", "type": "string" }, + "MaturityEnum": { + "description": "A quality of a single physical entity held by a bearer when it exhibits a state of growth, differentiation, or development. Derived from PATO maturity (PATO:0000261) child values.", + "enum": [ + "NEONATAL", + "LARVAL", + "PREPUBESCENT", + "PUPAL", + "PREPUPAL", + "PUBESCENT", + "ADOLESCENT", + "JUVENILE", + "IMMATURE", + "MATURE" + ], + "title": "MaturityEnum", + "type": "string" + }, "MechanicalBehaviorEnum": { "description": "Mechanical behavior of materials under stress", "enum": [ @@ -7520,6 +7797,19 @@ "title": "OxygenationStrategyEnum", "type": "string" }, + "PATOBiologicalSexEnum": { + "description": "An organismal quality inhering in a bearer by virtue of the bearer's ability to undergo sexual reproduction. Derived from PATO biological sex (PATO:0000047) and phenotypic sex (PATO:0001894) child values.", + "enum": [ + "FEMALE", + "MALE", + "HERMAPHRODITE", + "MALE_WITH_DSD", + "FEMALE_WITH_DSD", + "PSEUDOHERMAPHRODITE" + ], + "title": "PATOBiologicalSexEnum", + "type": "string" + }, "PCROperationTypeEnum": { "description": "Types of PCR operations and techniques", "enum": [ @@ -8913,6 +9203,19 @@ "title": "RelToOxygenEnum", "type": "string" }, + "RelativeChangeEnum": { + "description": "Direction of change of any quality relative to normal or baseline. This is PATO's general-purpose deviation-from-normal axis (PATO:0000069) that crosscuts all specific quality attributes (size, rate, amount, etc.).", + "enum": [ + "NORMAL", + "ABNORMAL", + "INCREASED", + "DECREASED", + "INCREASED_MAGNITUDE", + "DECREASED_MAGNITUDE" + ], + "title": "RelativeChangeEnum", + "type": "string" + }, "RelativeDirection": { "description": "Relative directional terms", "enum": [ @@ -9191,6 +9494,21 @@ "title": "Season", "type": "string" }, + "SecondaryStructureType": { + "description": "Per-residue secondary structure assignment. The permissible values correspond to the canonical DSSP 8-state (SS8) classification, which is also the secondary-structure track vocabulary used by protein language models such as ESM3. The single-letter DSSP code is recorded in the ``dssp_code`` annotation.", + "enum": [ + "ALPHA_HELIX", + "THREE_TEN_HELIX", + "PI_HELIX", + "BETA_STRAND", + "BETA_BRIDGE", + "TURN", + "BEND", + "COIL" + ], + "title": "SecondaryStructureType", + "type": "string" + }, "SectionLocationEnum": { "description": "Location in a parent specimen from which a section was excised", "enum": [ @@ -9481,6 +9799,38 @@ "title": "SeverityLevelEnum", "type": "string" }, + "ShapeEnum": { + "description": "A morphological quality inhering in a bearer by virtue of the bearer's ratios of distances between its features. Derived from PATO shape (PATO:0000052) child values.", + "enum": [ + "CIRCULAR", + "ELLIPTIC", + "SPHEROID", + "CONICAL", + "COLUMNAR", + "TUBULAR", + "FLAT", + "ELONGATED", + "LINEAR", + "FILAMENTOUS", + "SLENDER", + "BROAD", + "ROBUST", + "STRAIGHT", + "BENT", + "ANGULAR", + "LOBED", + "TRUNCATED", + "PYRAMIDAL", + "STAR_SHAPED", + "SIGMOID", + "UNDULATE", + "PINNATE", + "PLEOMORPHIC", + "COILING" + ], + "title": "ShapeEnum", + "type": "string" + }, "SimpleSpatialDirection": { "description": "Basic spatial directional terms for general use", "enum": [ @@ -9624,6 +9974,27 @@ "title": "SpamClassificationEnum", "type": "string" }, + "SpatialPatternEnum": { + "description": "A spatial quality inhering in a bearer by virtue of the bearer's exhibiting repetition of placement of its parts. Derived from PATO spatial pattern (PATO:0000060) child values.", + "enum": [ + "LOCALIZED", + "UNLOCALISED", + "MULTI_LOCALISED", + "DISTRIBUTED", + "UNDISTRIBUTED", + "SPARSE", + "UNILATERAL", + "VERTICAL", + "REGULAR_SPATIAL_PATTERN", + "IRREGULAR_SPATIAL_PATTERN", + "GENERALIZED", + "SEGMENTAL", + "RANDOM_PATTERN", + "SYMMETRICAL" + ], + "title": "SpatialPatternEnum", + "type": "string" + }, "SpatialRelationship": { "description": "Spatial relationships between anatomical structures", "enum": [ @@ -10202,6 +10573,23 @@ "title": "TextCharset", "type": "string" }, + "TextureEnum": { + "description": "A morphological quality inhering in a bearer by virtue of the bearer's surface characteristics. Derived from PATO texture (PATO:0000150) child values.", + "enum": [ + "SMOOTH", + "ROUGH", + "SCALY", + "FLAKY", + "GROOVED", + "BLISTERED", + "HAIRY", + "ABRASED", + "RUSTY", + "FOVEATE" + ], + "title": "TextureEnum", + "type": "string" + }, "TherapeuticActionabilityEnum": { "description": "Clinical actionability of a genetic finding for treatment decisions", "enum": [ @@ -11082,6 +11470,21 @@ "title": "VendorCategoryEnum", "type": "string" }, + "ViabilityEnum": { + "description": "An organismal quality inhering in a bearer by virtue of the bearer's disposition to survive and develop normally. Derived from PATO viability (PATO:0000169) child values.", + "enum": [ + "ALIVE", + "DEAD", + "VIABLE", + "LETHAL", + "SEMI_VIABLE", + "SEMI_LETHAL", + "IMMORTAL", + "DECAYED" + ], + "title": "ViabilityEnum", + "type": "string" + }, "VideoFormatEnum": { "description": "Video file formats", "enum": [ diff --git a/src/valuesets/datamodel/valuesets.py b/src/valuesets/datamodel/valuesets.py index c40c7404..3447e0e4 100644 --- a/src/valuesets/datamodel/valuesets.py +++ b/src/valuesets/datamodel/valuesets.py @@ -1533,6 +1533,80 @@ class ProteinModificationType(RichEnum): "CROSSLINKING": {'description': 'Crosslinking modification', 'meaning': 'MOD:00033'}, } +class SecondaryStructureType(RichEnum): + """ + Per-residue secondary structure assignment. The permissible values correspond to the canonical DSSP 8-state (SS8) classification, which is also the secondary-structure track vocabulary used by protein language models such as ESM3. The single-letter DSSP code is recorded in the ``dssp_code`` annotation. + """ + # Enum members + ALPHA_HELIX = "ALPHA_HELIX" + THREE_TEN_HELIX = "THREE_TEN_HELIX" + PI_HELIX = "PI_HELIX" + BETA_STRAND = "BETA_STRAND" + BETA_BRIDGE = "BETA_BRIDGE" + TURN = "TURN" + BEND = "BEND" + COIL = "COIL" + +# Set metadata after class creation to avoid it becoming an enum member +SecondaryStructureType._metadata = { + "ALPHA_HELIX": {'description': 'Right-handed alpha helix (3.6 residues/turn, i to i+4 hydrogen bonding)', 'meaning': 'SO:0001117', 'annotations': {'dssp_code': 'H', 'ss8_class': 'H'}}, + "THREE_TEN_HELIX": {'description': '3-10 helix (3 residues/turn, i to i+3 hydrogen bonding)', 'meaning': 'SO:0001119', 'annotations': {'dssp_code': 'G', 'ss8_class': 'G'}}, + "PI_HELIX": {'description': 'Pi helix (4.1 residues/turn, i to i+5 hydrogen bonding)', 'meaning': 'SO:0001118', 'annotations': {'dssp_code': 'I', 'ss8_class': 'I'}}, + "BETA_STRAND": {'description': 'Extended beta strand participating in a beta sheet', 'meaning': 'SO:0001111', 'annotations': {'dssp_code': 'E', 'ss8_class': 'E'}}, + "BETA_BRIDGE": {'description': 'Residue in an isolated single-pair beta bridge', 'annotations': {'dssp_code': 'B', 'ss8_class': 'B', 'ontology_gap': 'true'}}, + "TURN": {'description': 'Hydrogen-bonded turn reversing backbone direction over <=4 residues', 'meaning': 'SO:0001128', 'annotations': {'dssp_code': 'T', 'ss8_class': 'T'}}, + "BEND": {'description': 'Region of high backbone curvature without regular hydrogen bonding', 'annotations': {'dssp_code': 'S', 'ss8_class': 'S', 'ontology_gap': 'true'}}, + "COIL": {'description': 'Irregular, unstructured backbone region (loop / random coil)', 'meaning': 'SO:0100012', 'annotations': {'dssp_code': 'C', 'ss8_class': 'C', 'aliases': 'loop, random coil, blank'}}, +} + +class LocalStructuralFeature(RichEnum): + """ + Fine-grained local three-dimensional features of protein structures, spanning super-secondary structural motifs, functional sites, and local geometric surface features. This is the curated, ontology-mapped analogue of the learned per-residue feature vocabularies produced by protein language models and their sparse-autoencoder interpretations. Members marked with the ``ontology_gap`` annotation have no suitable OBO term and are candidates for new ontology terms. + """ + # Enum members + POLYPEPTIDE_STRUCTURAL_MOTIF = "POLYPEPTIDE_STRUCTURAL_MOTIF" + BETA_HAIRPIN = "BETA_HAIRPIN" + BETA_BULGE = "BETA_BULGE" + ASX_MOTIF = "ASX_MOTIF" + NEST = "NEST" + COILED_COIL = "COILED_COIL" + HELIX_CAP = "HELIX_CAP" + CATALYTIC_RESIDUE = "CATALYTIC_RESIDUE" + PROTEIN_BINDING_SITE = "PROTEIN_BINDING_SITE" + DISULFIDE_BOND = "DISULFIDE_BOND" + METAL_BINDING_SITE = "METAL_BINDING_SITE" + POCKET = "POCKET" + CLEFT = "CLEFT" + CAVITY = "CAVITY" + TUNNEL = "TUNNEL" + GROOVE = "GROOVE" + ELBOW = "ELBOW" + KINK = "KINK" + INTERFACE = "INTERFACE" + +# Set metadata after class creation to avoid it becoming an enum member +LocalStructuralFeature._metadata = { + "POLYPEPTIDE_STRUCTURAL_MOTIF": {'description': 'A recurring 3D structural element within the chain that does not form a stable globular unit (the general parent class for local motifs)', 'meaning': 'SO:0001079'}, + "BETA_HAIRPIN": {'description': 'Two adjacent antiparallel beta strands connected by a short loop or turn', 'annotations': {'ontology_gap': 'true'}}, + "BETA_BULGE": {'description': 'A local disruption of beta-sheet hydrogen bonding across three residues', 'meaning': 'SO:0001107'}, + "ASX_MOTIF": {'description': 'A five-residue motif nucleated by an Asp/Asn side chain (Asx)', 'meaning': 'SO:0001106'}, + "NEST": {'description': 'A motif of two consecutive residues forming an anion-binding concavity', 'meaning': 'SO:0001120'}, + "COILED_COIL": {'description': 'Two or more alpha helices wound together like strands of a rope', 'meaning': 'SO:0001080'}, + "HELIX_CAP": {'description': 'N-cap or C-cap residue terminating an alpha helix', 'annotations': {'ontology_gap': 'true'}}, + "CATALYTIC_RESIDUE": {'description': 'An amino acid residue directly involved in enzyme catalysis (active site)', 'meaning': 'SO:0001104'}, + "PROTEIN_BINDING_SITE": {'description': 'A site that interacts selectively and non-covalently with polypeptide molecules', 'meaning': 'SO:0000410'}, + "DISULFIDE_BOND": {'description': 'A covalent S-S bond between two cysteine residues', 'annotations': {'obo_gap': 'true'}}, + "METAL_BINDING_SITE": {'description': 'A local site coordinating one or more metal ions', 'annotations': {'obo_gap': 'true'}}, + "POCKET": {'description': 'A concave, solvent-accessible surface depression that can accommodate a ligand', 'annotations': {'ontology_gap': 'true', 'related_edam': 'EDAM:data_1542'}}, + "CLEFT": {'description': 'An elongated surface groove between structural elements or domains', 'annotations': {'ontology_gap': 'true'}}, + "CAVITY": {'description': 'An enclosed, solvent-inaccessible internal void within the structure', 'annotations': {'ontology_gap': 'true', 'related_edam': 'EDAM:data_1542'}}, + "TUNNEL": {'description': 'An elongated, often buried, passage through the structure connecting two regions', 'annotations': {'ontology_gap': 'true'}}, + "GROOVE": {'description': 'A surface channel, e.g. a nucleic-acid-binding groove', 'annotations': {'ontology_gap': 'true'}}, + "ELBOW": {'description': 'A localized bend or hinge between two structural elements or domains', 'annotations': {'ontology_gap': 'true'}}, + "KINK": {'description': 'A localized bend interrupting the regular geometry of a helix', 'annotations': {'ontology_gap': 'true'}}, + "INTERFACE": {'description': 'A surface patch mediating contact with another chain or molecule', 'annotations': {'ontology_gap': 'true'}}, +} + class BiosafetyLevelEnum(RichEnum): """ Biosafety levels (BSL) defining containment requirements for biological agents @@ -7064,6 +7138,122 @@ class QuantumAlgorithmCategoryType(RichEnum): "VARIATIONAL": {'description': 'Hybrid quantum-classical variational algorithms for near-term quantum devices'}, } +class FrontierModelEnum(RichEnum): + """ + Hierarchical enumeration of frontier AI models. The hierarchy has three tiers: developer (e.g. ANTHROPIC), model family (e.g. CLAUDE_OPUS), and specific model release identified by its canonical API model id (e.g. claude-opus-4-8). Intermediate developer and family nodes are uppercase categorical values; leaf nodes are the verbatim API identifiers. + """ + # Enum members + ANTHROPIC = "ANTHROPIC" + CLAUDE_OPUS = "CLAUDE_OPUS" + CLAUDE_OPUS_4_8 = "claude-opus-4-8" + CLAUDE_OPUS_4_7 = "claude-opus-4-7" + CLAUDE_OPUS_4_6 = "claude-opus-4-6" + CLAUDE_OPUS_4_5 = "claude-opus-4-5" + CLAUDE_SONNET = "CLAUDE_SONNET" + CLAUDE_SONNET_4_6 = "claude-sonnet-4-6" + CLAUDE_SONNET_4_5 = "claude-sonnet-4-5" + CLAUDE_HAIKU = "CLAUDE_HAIKU" + CLAUDE_HAIKU_4_5 = "claude-haiku-4-5" + CLAUDE_FABLE = "CLAUDE_FABLE" + CLAUDE_FABLE_5 = "claude-fable-5" + CLAUDE_MYTHOS = "CLAUDE_MYTHOS" + CLAUDE_MYTHOS_5 = "claude-mythos-5" + OPENAI = "OPENAI" + GPT_5 = "GPT_5" + GPT_5_5 = "gpt-5.5" + GPT_5_4 = "gpt-5.4" + GPT_5_4_MINI = "gpt-5.4-mini" + GPT_5_2 = "gpt-5.2" + GPT_5_2_CODEX = "gpt-5.2-codex" + GOOGLE = "GOOGLE" + GEMINI_3 = "GEMINI_3" + GEMINI_3_5_FLASH = "gemini-3.5-flash" + GEMINI_3_1_PRO_PREVIEW = "gemini-3.1-pro-preview" + GEMINI_3_FLASH_PREVIEW = "gemini-3-flash-preview" + GEMINI_3_1_FLASH_LITE = "gemini-3.1-flash-lite" + GEMINI_2_5 = "GEMINI_2_5" + GEMINI_2_5_PRO = "gemini-2.5-pro" + GEMINI_2_5_FLASH = "gemini-2.5-flash" + GEMINI_2_5_FLASH_LITE = "gemini-2.5-flash-lite" + XAI = "XAI" + GROK_4 = "GROK_4" + GROK_4_3 = "grok-4.3" + GROK_4_20_0309_REASONING = "grok-4.20-0309-reasoning" + GROK_4_0709 = "grok-4-0709" + GROK_CODE = "GROK_CODE" + GROK_CODE_FAST_1 = "grok-code-fast-1" + META = "META" + LLAMA_4 = "LLAMA_4" + LLAMA_4_MAVERICK = "llama-4-maverick" + LLAMA_4_SCOUT = "llama-4-scout" + DEEPSEEK = "DEEPSEEK" + DEEPSEEK_MODELS = "DEEPSEEK_MODELS" + DEEPSEEK_CHAT = "deepseek-chat" + DEEPSEEK_REASONER = "deepseek-reasoner" + MISTRAL = "MISTRAL" + MISTRAL_LARGE = "MISTRAL_LARGE" + MISTRAL_LARGE_3 = "mistral-large-3" + MOONSHOT = "MOONSHOT" + KIMI = "KIMI" + KIMI_K2_6 = "kimi-k2.6" + +# Set metadata after class creation to avoid it becoming an enum member +FrontierModelEnum._metadata = { + "ANTHROPIC": {'description': 'Models developed by Anthropic (the Claude family)', 'annotations': {'node_type': 'developer', 'homepage': 'https://www.anthropic.com'}}, + "CLAUDE_OPUS": {'description': "Claude Opus - Anthropic's most capable Opus-tier model family", 'annotations': {'node_type': 'family', 'tier': 'most capable'}}, + "CLAUDE_OPUS_4_8": {'description': "Claude Opus 4.8 - Anthropic's most capable Opus-tier model; highly autonomous, state-of-the-art on long-horizon agentic work, knowledge work, and memory. Adaptive thinking only.", 'annotations': {'node_type': 'model', 'api_model_id': 'claude-opus-4-8', 'developer': 'Anthropic', 'context_window': 1000000, 'max_output_tokens': 128000, 'input_usd_per_mtok': 5.0, 'output_usd_per_mtok': 25.0}, 'aliases': ['Opus 4.8', 'opus']}, + "CLAUDE_OPUS_4_7": {'description': 'Claude Opus 4.7 - previous-generation Opus; highly autonomous, strong on long-horizon agentic work, vision, and memory. Adaptive thinking only.', 'annotations': {'node_type': 'model', 'api_model_id': 'claude-opus-4-7', 'developer': 'Anthropic', 'context_window': 1000000, 'max_output_tokens': 128000}, 'aliases': ['Opus 4.7']}, + "CLAUDE_OPUS_4_6": {'description': 'Claude Opus 4.6 - older Opus model supporting adaptive thinking and 128K max output tokens.', 'annotations': {'node_type': 'model', 'api_model_id': 'claude-opus-4-6', 'developer': 'Anthropic', 'context_window': 1000000, 'max_output_tokens': 128000}, 'aliases': ['Opus 4.6']}, + "CLAUDE_OPUS_4_5": {'description': 'Claude Opus 4.5 - legacy Opus model (still active).', 'annotations': {'node_type': 'model', 'api_model_id': 'claude-opus-4-5', 'full_model_id': 'claude-opus-4-5-20251101', 'developer': 'Anthropic'}, 'aliases': ['Opus 4.5']}, + "CLAUDE_SONNET": {'description': "Claude Sonnet - Anthropic's balanced speed / intelligence family", 'annotations': {'node_type': 'family', 'tier': 'balanced'}}, + "CLAUDE_SONNET_4_6": {'description': "Claude Sonnet 4.6 - Anthropic's best combination of speed and intelligence. Supports adaptive thinking.", 'annotations': {'node_type': 'model', 'api_model_id': 'claude-sonnet-4-6', 'developer': 'Anthropic', 'context_window': 1000000, 'max_output_tokens': 64000, 'input_usd_per_mtok': 3.0, 'output_usd_per_mtok': 15.0}, 'aliases': ['Sonnet 4.6', 'sonnet']}, + "CLAUDE_SONNET_4_5": {'description': 'Claude Sonnet 4.5 - legacy Sonnet model (still active).', 'annotations': {'node_type': 'model', 'api_model_id': 'claude-sonnet-4-5', 'full_model_id': 'claude-sonnet-4-5-20250929', 'developer': 'Anthropic'}, 'aliases': ['Sonnet 4.5']}, + "CLAUDE_HAIKU": {'description': "Claude Haiku - Anthropic's fastest and most cost-effective family", 'annotations': {'node_type': 'family', 'tier': 'fast'}}, + "CLAUDE_HAIKU_4_5": {'description': "Claude Haiku 4.5 - Anthropic's fastest and most cost-effective model for simple, latency-sensitive tasks.", 'annotations': {'node_type': 'model', 'api_model_id': 'claude-haiku-4-5', 'full_model_id': 'claude-haiku-4-5-20251001', 'developer': 'Anthropic', 'context_window': 200000, 'max_output_tokens': 64000, 'input_usd_per_mtok': 1.0, 'output_usd_per_mtok': 5.0}, 'aliases': ['Haiku 4.5', 'haiku']}, + "CLAUDE_FABLE": {'description': "Claude Fable - Anthropic's most capable widely released model family, for the most demanding reasoning and long-horizon agentic work.", 'annotations': {'node_type': 'family', 'tier': 'frontier'}}, + "CLAUDE_FABLE_5": {'description': "Claude Fable 5 - Anthropic's most capable widely released model. Thinking is always on; raw chain of thought is never returned. Requires 30-day data retention.", 'annotations': {'node_type': 'model', 'api_model_id': 'claude-fable-5', 'developer': 'Anthropic', 'context_window': 1000000, 'max_output_tokens': 128000, 'input_usd_per_mtok': 10.0, 'output_usd_per_mtok': 50.0}, 'aliases': ['Fable 5', 'fable']}, + "CLAUDE_MYTHOS": {'description': 'Claude Mythos - same capabilities and API behavior as Claude Fable, available exclusively through Project Glasswing.', 'annotations': {'node_type': 'family', 'tier': 'frontier', 'availability': 'Project Glasswing only'}}, + "CLAUDE_MYTHOS_5": {'description': 'Claude Mythos 5 - same capabilities, pricing, limits, and API behavior as Claude Fable 5; available only through Project Glasswing.', 'annotations': {'node_type': 'model', 'api_model_id': 'claude-mythos-5', 'developer': 'Anthropic', 'context_window': 1000000, 'max_output_tokens': 128000}, 'aliases': ['Mythos 5']}, + "OPENAI": {'description': 'Models developed by OpenAI (the GPT family)', 'annotations': {'node_type': 'developer', 'homepage': 'https://openai.com'}}, + "GPT_5": {'description': "GPT-5 - OpenAI's frontier model family for coding and professional work", 'annotations': {'node_type': 'family', 'tier': 'frontier'}}, + "GPT_5_5": {'description': 'GPT-5.5 - OpenAI\'s newest frontier model, "a new class of intelligence for coding and professional work".', 'annotations': {'node_type': 'model', 'api_model_id': 'gpt-5.5', 'developer': 'OpenAI', 'training_cutoff': '2025-12-01', 'context_window': 1000000}, 'aliases': ['GPT-5.5']}, + "GPT_5_4": {'description': 'GPT-5.4 - a more affordable model for coding and professional work.', 'annotations': {'node_type': 'model', 'api_model_id': 'gpt-5.4', 'developer': 'OpenAI', 'training_cutoff': '2025-08-31', 'context_window': 1000000}, 'aliases': ['GPT-5.4']}, + "GPT_5_4_MINI": {'description': "GPT-5.4 mini - OpenAI's strongest mini model for coding, computer use, and subagents; lower latency and cost.", 'annotations': {'node_type': 'model', 'api_model_id': 'gpt-5.4-mini', 'developer': 'OpenAI', 'training_cutoff': '2025-08-31', 'context_window': 400000}, 'aliases': ['GPT-5.4 mini']}, + "GPT_5_2": {'description': 'GPT-5.2 - previous frontier model for complex professional work.', 'annotations': {'node_type': 'model', 'api_model_id': 'gpt-5.2', 'developer': 'OpenAI'}, 'aliases': ['GPT-5.2']}, + "GPT_5_2_CODEX": {'description': 'GPT-5.2-Codex - coding-specialized variant for API-authenticated Codex workflows.', 'annotations': {'node_type': 'model', 'api_model_id': 'gpt-5.2-codex', 'developer': 'OpenAI', 'specialization': 'coding'}, 'aliases': ['GPT-5.2 Codex']}, + "GOOGLE": {'description': 'Models developed by Google DeepMind (the Gemini family)', 'annotations': {'node_type': 'developer', 'homepage': 'https://deepmind.google'}}, + "GEMINI_3": {'description': "Gemini 3 - Google's latest generation multimodal model family", 'annotations': {'node_type': 'family', 'tier': 'frontier'}}, + "GEMINI_3_5_FLASH": {'description': "Gemini 3.5 Flash - Google's most intelligent model for agentic and coding tasks, delivering near-Pro intelligence at Flash-tier speed and cost.", 'annotations': {'node_type': 'model', 'api_model_id': 'gemini-3.5-flash', 'developer': 'Google DeepMind', 'release_date': '2026-05-19', 'context_window': 1000000}, 'aliases': ['Gemini 3.5 Flash']}, + "GEMINI_3_1_PRO_PREVIEW": {'description': 'Gemini 3.1 Pro - reasoning-first model optimized for complex agentic workflows and coding, with adaptive thinking and integrated grounding.', 'annotations': {'node_type': 'model', 'api_model_id': 'gemini-3.1-pro-preview', 'developer': 'Google DeepMind', 'context_window': 1000000}, 'aliases': ['Gemini 3.1 Pro']}, + "GEMINI_3_FLASH_PREVIEW": {'description': 'Gemini 3 Flash - frontier-class performance at reduced cost.', 'annotations': {'node_type': 'model', 'api_model_id': 'gemini-3-flash-preview', 'developer': 'Google DeepMind'}, 'aliases': ['Gemini 3 Flash']}, + "GEMINI_3_1_FLASH_LITE": {'description': 'Gemini 3.1 Flash-Lite - most cost-efficient Gemini model, optimized for low latency and high-volume traffic.', 'annotations': {'node_type': 'model', 'api_model_id': 'gemini-3.1-flash-lite', 'developer': 'Google DeepMind'}, 'aliases': ['Gemini 3.1 Flash-Lite']}, + "GEMINI_2_5": {'description': "Gemini 2.5 - Google's previous-generation multimodal model family", 'annotations': {'node_type': 'family'}}, + "GEMINI_2_5_PRO": {'description': 'Gemini 2.5 Pro - high-capability model for complex reasoning and coding with adaptive thinking and a 1M token context.', 'annotations': {'node_type': 'model', 'api_model_id': 'gemini-2.5-pro', 'developer': 'Google DeepMind', 'context_window': 1000000}, 'aliases': ['Gemini 2.5 Pro']}, + "GEMINI_2_5_FLASH": {'description': 'Gemini 2.5 Flash - best price-performance for reasoning tasks.', 'annotations': {'node_type': 'model', 'api_model_id': 'gemini-2.5-flash', 'developer': 'Google DeepMind'}, 'aliases': ['Gemini 2.5 Flash']}, + "GEMINI_2_5_FLASH_LITE": {'description': 'Gemini 2.5 Flash-Lite - fastest and most budget-friendly option.', 'annotations': {'node_type': 'model', 'api_model_id': 'gemini-2.5-flash-lite', 'developer': 'Google DeepMind'}, 'aliases': ['Gemini 2.5 Flash-Lite']}, + "XAI": {'description': 'Models developed by xAI (the Grok family)', 'annotations': {'node_type': 'developer', 'homepage': 'https://x.ai'}}, + "GROK_4": {'description': "Grok 4 - xAI's reasoning-first flagship model family", 'annotations': {'node_type': 'family', 'tier': 'frontier'}}, + "GROK_4_3": {'description': "Grok 4.3 - xAI's reasoning-first flagship; the most intelligent and fastest model xAI has built.", 'annotations': {'node_type': 'model', 'api_model_id': 'grok-4.3', 'developer': 'xAI', 'release_date': '2026-04-30', 'context_window': 1000000}, 'aliases': ['Grok 4.3']}, + "GROK_4_20_0309_REASONING": {'description': 'Grok 4.20 (reasoning) - agentic tool-calling model noted for a very low hallucination rate.', 'annotations': {'node_type': 'model', 'api_model_id': 'grok-4.20-0309-reasoning', 'developer': 'xAI', 'context_window': 1000000}, 'aliases': ['Grok 4.20']}, + "GROK_4_0709": {'description': 'Grok 4 - earlier Grok 4 release.', 'annotations': {'node_type': 'model', 'api_model_id': 'grok-4-0709', 'developer': 'xAI', 'knowledge_cutoff': '2024-11'}, 'aliases': ['Grok 4']}, + "GROK_CODE": {'description': "Grok Code - xAI's dedicated agentic coding model family", 'annotations': {'node_type': 'family', 'specialization': 'coding'}}, + "GROK_CODE_FAST_1": {'description': 'Grok Code Fast 1 - dedicated agentic coding model.', 'annotations': {'node_type': 'model', 'api_model_id': 'grok-code-fast-1', 'developer': 'xAI', 'specialization': 'coding'}, 'aliases': ['Grok Code Fast']}, + "META": {'description': 'Open-weight models developed by Meta (the Llama family)', 'annotations': {'node_type': 'developer', 'homepage': 'https://www.llama.com', 'license': 'Llama Community License'}}, + "LLAMA_4": {'description': "Llama 4 - Meta's open-weight mixture-of-experts model family", 'annotations': {'node_type': 'family'}}, + "LLAMA_4_MAVERICK": {'description': 'Llama 4 Maverick - general-purpose open-weight chat model; highest MMLU among Llama 4 variants.', 'annotations': {'node_type': 'model', 'api_model_id': 'llama-4-maverick', 'developer': 'Meta'}, 'aliases': ['Llama 4 Maverick']}, + "LLAMA_4_SCOUT": {'description': 'Llama 4 Scout - open-weight model supporting very long context (up to 10M tokens).', 'annotations': {'node_type': 'model', 'api_model_id': 'llama-4-scout', 'developer': 'Meta', 'context_window': 10000000}, 'aliases': ['Llama 4 Scout']}, + "DEEPSEEK": {'description': 'Open-weight models developed by DeepSeek', 'annotations': {'node_type': 'developer', 'homepage': 'https://www.deepseek.com'}}, + "DEEPSEEK_MODELS": {'description': 'DeepSeek - open-weight mixture-of-experts chat and reasoning models', 'annotations': {'node_type': 'family'}}, + "DEEPSEEK_CHAT": {'description': 'DeepSeek-V3 (served as deepseek-chat) - open-weight MoE model activating ~37B of 671B parameters per token.', 'annotations': {'node_type': 'model', 'api_model_id': 'deepseek-chat', 'developer': 'DeepSeek'}, 'aliases': ['DeepSeek-V3', 'DeepSeek V3']}, + "DEEPSEEK_REASONER": {'description': 'DeepSeek-R1 (served as deepseek-reasoner) - open-weight reasoning model.', 'annotations': {'node_type': 'model', 'api_model_id': 'deepseek-reasoner', 'developer': 'DeepSeek'}, 'aliases': ['DeepSeek-R1', 'DeepSeek R1']}, + "MISTRAL": {'description': 'Models developed by Mistral AI', 'annotations': {'node_type': 'developer', 'homepage': 'https://mistral.ai'}}, + "MISTRAL_LARGE": {'description': "Mistral Large - Mistral AI's flagship open-weight model family", 'annotations': {'node_type': 'family'}}, + "MISTRAL_LARGE_3": {'description': 'Mistral Large 3 - state-of-the-art open-weight MoE model (41B active / 675B total parameters), 256K context, released under Apache 2.0.', 'annotations': {'node_type': 'model', 'api_model_id': 'mistral-large-3', 'developer': 'Mistral AI', 'release_date': '2025-12', 'context_window': 256000, 'license': 'Apache-2.0'}, 'aliases': ['Mistral Large 3']}, + "MOONSHOT": {'description': 'Models developed by Moonshot AI (the Kimi family)', 'annotations': {'node_type': 'developer', 'homepage': 'https://www.moonshot.ai'}}, + "KIMI": {'description': "Kimi - Moonshot AI's open-weight mixture-of-experts model family", 'annotations': {'node_type': 'family'}}, + "KIMI_K2_6": {'description': 'Kimi K2.6 - frontier open-weight MoE coding model (32B active / 1T total parameters).', 'annotations': {'node_type': 'model', 'api_model_id': 'kimi-k2.6', 'developer': 'Moonshot AI'}, 'aliases': ['Kimi K2.6']}, +} + class SemiconductorMaterialType(RichEnum): """ Types of semiconductor materials used in microelectronics fabrication @@ -10585,6 +10775,318 @@ class PlantLeafColorEnum(RichEnum): "BROWN": {'description': 'Brown leaves (dead/dying)', 'annotations': {'hex': '964B00', 'condition': 'senescent or dead'}}, } +class ColorEnum(RichEnum): + """ + A composite chromatic quality composed of hue, saturation and intensity parts. Derived from PATO color (PATO:0000014) child values. + """ + # Enum members + BLACK = "BLACK" + WHITE = "WHITE" + GREY = "GREY" + RED = "RED" + ORANGE = "ORANGE" + YELLOW = "YELLOW" + GREEN = "GREEN" + CYAN = "CYAN" + BLUE = "BLUE" + VIOLET = "VIOLET" + PURPLE = "PURPLE" + MAGENTA = "MAGENTA" + BROWN = "BROWN" + MAROON = "MAROON" + ROSY = "ROSY" + VERMILION = "VERMILION" + COLORED = "COLORED" + +# Set metadata after class creation to avoid it becoming an enum member +ColorEnum._metadata = { + "BLACK": {'description': 'A color that lacks any hues as parts', 'meaning': 'PATO:0000317'}, + "WHITE": {'description': 'An achromatic color of maximum brightness', 'meaning': 'PATO:0000323'}, + "GREY": {'description': 'A color between white and black colors', 'meaning': 'PATO:0000950', 'aliases': ['gray']}, + "RED": {'description': 'A color hue with high wavelength of the long-wave end of the visible spectrum (630-750 nm)', 'meaning': 'PATO:0000322'}, + "ORANGE": {'description': 'A color hue with high-medium wavelength lying between red and yellow (585-620 nm)', 'meaning': 'PATO:0000953'}, + "YELLOW": {'description': 'A color hue with medium wavelength lying between orange and green (570-590 nm)', 'meaning': 'PATO:0000324'}, + "GREEN": {'description': 'A color hue with medium-low wavelength lying between yellow and blue (490-570 nm)', 'meaning': 'PATO:0000320'}, + "CYAN": {'description': 'A color consisting of green and blue hue', 'meaning': 'PATO:0000319'}, + "BLUE": {'description': 'A color hue with low wavelength lying between green and indigo (420-490 nm)', 'meaning': 'PATO:0000318'}, + "VIOLET": {'description': 'A color hue with very low wavelength lying between reddish blue and bluish purple (380-420 nm)', 'meaning': 'PATO:0001424'}, + "PURPLE": {'description': 'A color that falls about midway between red and blue in hue', 'meaning': 'PATO:0000951'}, + "MAGENTA": {'description': 'A color consisting of red and blue hues', 'meaning': 'PATO:0000321'}, + "BROWN": {'description': 'A color consisting of dark orange, red, of very low intensity', 'meaning': 'PATO:0000952'}, + "MAROON": {'description': 'A color consisting of purple and brown hue', 'meaning': 'PATO:0001426'}, + "ROSY": {'description': 'A color hue consisting of red and yellow hue with high brightness', 'meaning': 'PATO:0001425', 'aliases': ['pink']}, + "VERMILION": {'description': 'A color consisting of red and orange hue with a slight amount of gray', 'meaning': 'PATO:0001302'}, + "COLORED": {'description': 'A color quality inhering in a bearer by virtue of having color', 'meaning': 'PATO:0000336'}, +} + +class ShapeEnum(RichEnum): + """ + A morphological quality inhering in a bearer by virtue of the bearer's ratios of distances between its features. Derived from PATO shape (PATO:0000052) child values. + """ + # Enum members + CIRCULAR = "CIRCULAR" + ELLIPTIC = "ELLIPTIC" + SPHEROID = "SPHEROID" + CONICAL = "CONICAL" + COLUMNAR = "COLUMNAR" + TUBULAR = "TUBULAR" + FLAT = "FLAT" + ELONGATED = "ELONGATED" + LINEAR = "LINEAR" + FILAMENTOUS = "FILAMENTOUS" + SLENDER = "SLENDER" + BROAD = "BROAD" + ROBUST = "ROBUST" + STRAIGHT = "STRAIGHT" + BENT = "BENT" + ANGULAR = "ANGULAR" + LOBED = "LOBED" + TRUNCATED = "TRUNCATED" + PYRAMIDAL = "PYRAMIDAL" + STAR_SHAPED = "STAR_SHAPED" + SIGMOID = "SIGMOID" + UNDULATE = "UNDULATE" + PINNATE = "PINNATE" + PLEOMORPHIC = "PLEOMORPHIC" + COILING = "COILING" + +# Set metadata after class creation to avoid it becoming an enum member +ShapeEnum._metadata = { + "CIRCULAR": {'description': 'A shape where every part of the surface or circumference is equidistant from the center', 'meaning': 'PATO:0000411'}, + "ELLIPTIC": {'description': 'Oval with two axes of symmetry, as produced by a conical section', 'meaning': 'PATO:0000947', 'aliases': ['oval']}, + "SPHEROID": {'description': 'A convex 3-D shape obtained by rotating an ellipse about one of its principal axes', 'meaning': 'PATO:0001865'}, + "CONICAL": {'description': 'A convex 3-D shape resembling a cone with a round cross section that tapers', 'meaning': 'PATO:0002021'}, + "COLUMNAR": {'description': 'Elongated and cylindrical in shape', 'meaning': 'PATO:0002063', 'aliases': ['cylindrical']}, + "TUBULAR": {'description': 'A cylindrical shape that is hollow', 'meaning': 'PATO:0002299'}, + "FLAT": {'description': 'Having a horizontal surface without a slope, tilt, or curvature', 'meaning': 'PATO:0000407'}, + "ELONGATED": {'description': 'Length being notably higher relative to width', 'meaning': 'PATO:0001154'}, + "LINEAR": {'description': 'Narrow, with approximately parallel sides', 'meaning': 'PATO:0001199'}, + "FILAMENTOUS": {'description': 'Having thin filaments or thread-like structures', 'meaning': 'PATO:0001360'}, + "SLENDER": {'description': 'Being small or narrow in circumference or width in proportion to length or height', 'meaning': 'PATO:0002212'}, + "BROAD": {'description': 'Width being notably higher relative to comparable entities', 'meaning': 'PATO:0002359'}, + "ROBUST": {'description': 'Being strong, thick, or stout in form', 'meaning': 'PATO:0002310'}, + "STRAIGHT": {'description': 'Free of curves, bends, or angles', 'meaning': 'PATO:0002180'}, + "BENT": {'description': 'Having one or more fixed curves, folds, or angles', 'meaning': 'PATO:0000617'}, + "ANGULAR": {'description': 'Having at least one angle formed by two planes', 'meaning': 'PATO:0001977'}, + "LOBED": {'description': 'Being partly divided into a determinate number of segments', 'meaning': 'PATO:0001979'}, + "TRUNCATED": {'description': 'Terminating abruptly by a transverse line or plane', 'meaning': 'PATO:0000936'}, + "PYRAMIDAL": {'description': 'Having triangular faces meeting at a common point', 'meaning': 'PATO:0002336'}, + "STAR_SHAPED": {'description': 'Being arranged like a star with radiating points', 'meaning': 'PATO:0002065', 'aliases': ['stellate']}, + "SIGMOID": {'description': 'Consisting of two curves in opposite directions like the letter S', 'meaning': 'PATO:0001878'}, + "UNDULATE": {'description': 'Having a sinuate margin that moves smoothly and regularly up and down', 'meaning': 'PATO:0000967', 'aliases': ['wavy']}, + "PINNATE": {'description': 'Having leaflets or branches on each side of a common axis', 'meaning': 'PATO:0000410'}, + "PLEOMORPHIC": {'description': 'Having the ability to take on multiple forms', 'meaning': 'PATO:0001356'}, + "COILING": {'description': 'Being wound in a spiral or helix', 'meaning': 'PATO:0001794', 'aliases': ['coiled', 'helical']}, +} + +class RelativeChangeEnum(RichEnum): + """ + Direction of change of any quality relative to normal or baseline. This is PATO's general-purpose deviation-from-normal axis (PATO:0000069) that crosscuts all specific quality attributes (size, rate, amount, etc.). + """ + # Enum members + NORMAL = "NORMAL" + ABNORMAL = "ABNORMAL" + INCREASED = "INCREASED" + DECREASED = "DECREASED" + INCREASED_MAGNITUDE = "INCREASED_MAGNITUDE" + DECREASED_MAGNITUDE = "DECREASED_MAGNITUDE" + +# Set metadata after class creation to avoid it becoming an enum member +RelativeChangeEnum._metadata = { + "NORMAL": {'description': 'Exhibiting no deviation from normal or average', 'meaning': 'PATO:0000461'}, + "ABNORMAL": {'description': 'Deviating from normal or average', 'meaning': 'PATO:0000460'}, + "INCREASED": {'description': 'A value that is increased compared to normal or average', 'meaning': 'PATO:0002300', 'aliases': ['elevated', 'high']}, + "DECREASED": {'description': 'A value that is decreased compared to normal or average', 'meaning': 'PATO:0002301', 'aliases': ['reduced', 'low']}, + "INCREASED_MAGNITUDE": {'description': 'An increased magnitude of a quality', 'meaning': 'PATO:0002017'}, + "DECREASED_MAGNITUDE": {'description': 'A decreased magnitude of a quality', 'meaning': 'PATO:0002018'}, +} + +class IntensityEnum(RichEnum): + """ + A quality inhering in a bearer by virtue of the bearer's possessing or displaying a distinctive feature in type or degree or effect or force. Derived from PATO intensity (PATO:0000049) child values. + """ + # Enum members + BORDERLINE = "BORDERLINE" + MILD = "MILD" + MODERATE = "MODERATE" + SEVERE = "SEVERE" + PROFOUND = "PROFOUND" + INCREASED_INTENSITY = "INCREASED_INTENSITY" + DECREASED_INTENSITY = "DECREASED_INTENSITY" + REMITTENT = "REMITTENT" + +# Set metadata after class creation to avoid it becoming an enum member +IntensityEnum._metadata = { + "BORDERLINE": {'description': 'Borderline in effect or force compared to baseline or normal', 'meaning': 'PATO:0002628'}, + "MILD": {'description': 'Less than moderate in type or degree or effect or force', 'meaning': 'PATO:0000394'}, + "MODERATE": {'description': 'Less than extreme in type or degree or effect or force', 'meaning': 'PATO:0000395'}, + "SEVERE": {'description': 'Extremely bad or unpleasant in type or degree or effect or force', 'meaning': 'PATO:0000396'}, + "PROFOUND": {'description': 'Very severe in intensity', 'meaning': 'PATO:0002629'}, + "INCREASED_INTENSITY": {'description': 'Intensity which is relatively high', 'meaning': 'PATO:0001782'}, + "DECREASED_INTENSITY": {'description': 'Intensity which is relatively low', 'meaning': 'PATO:0001783'}, + "REMITTENT": {'description': 'Characterised by temporary abatement in severity', 'meaning': 'PATO:0001841'}, +} + +class TextureEnum(RichEnum): + """ + A morphological quality inhering in a bearer by virtue of the bearer's surface characteristics. Derived from PATO texture (PATO:0000150) child values. + """ + # Enum members + SMOOTH = "SMOOTH" + ROUGH = "ROUGH" + SCALY = "SCALY" + FLAKY = "FLAKY" + GROOVED = "GROOVED" + BLISTERED = "BLISTERED" + HAIRY = "HAIRY" + ABRASED = "ABRASED" + RUSTY = "RUSTY" + FOVEATE = "FOVEATE" + +# Set metadata after class creation to avoid it becoming an enum member +TextureEnum._metadata = { + "SMOOTH": {'description': 'Having a surface free of roughness or irregularities', 'meaning': 'PATO:0000701'}, + "ROUGH": {'description': 'Having an irregular surface', 'meaning': 'PATO:0000700'}, + "SCALY": {'description': 'Being covered or partially covered with scales', 'meaning': 'PATO:0001804'}, + "FLAKY": {'description': 'Formed or tending to form flakes or thin, crisp fragments', 'meaning': 'PATO:0001805'}, + "GROOVED": {'description': 'Being marked with one or more channels', 'meaning': 'PATO:0002255'}, + "BLISTERED": {'description': 'Having a local accumulation of fluid underneath the surface', 'meaning': 'PATO:0001928'}, + "HAIRY": {'description': 'Having hair or bristles', 'meaning': 'PATO:0000066', 'aliases': ['pilose', 'hairy']}, + "ABRASED": {'description': 'Having a portion of the surface scraped away', 'meaning': 'PATO:0001849'}, + "RUSTY": {'description': 'Being covered by iron oxide as a result of oxidation', 'meaning': 'PATO:0070059'}, + "FOVEATE": {'description': 'Being marked by the presence of small, shallow, regular depressions', 'meaning': 'PATO:0002296'}, +} + +class PATOBiologicalSexEnum(RichEnum): + """ + An organismal quality inhering in a bearer by virtue of the bearer's ability to undergo sexual reproduction. Derived from PATO biological sex (PATO:0000047) and phenotypic sex (PATO:0001894) child values. + """ + # Enum members + FEMALE = "FEMALE" + MALE = "MALE" + HERMAPHRODITE = "HERMAPHRODITE" + MALE_WITH_DSD = "MALE_WITH_DSD" + FEMALE_WITH_DSD = "FEMALE_WITH_DSD" + PSEUDOHERMAPHRODITE = "PSEUDOHERMAPHRODITE" + +# Set metadata after class creation to avoid it becoming an enum member +PATOBiologicalSexEnum._metadata = { + "FEMALE": {'description': 'A biological sex quality inhering in an individual or population that only produces gametes that can be fertilised by male gametes', 'meaning': 'PATO:0000383'}, + "MALE": {'description': 'A biological sex quality inhering in an individual or population whose sex organs contain only male gametes', 'meaning': 'PATO:0000384'}, + "HERMAPHRODITE": {'description': 'A biological sex quality inhering in an organism or population with both male and female sexual organs in one individual', 'meaning': 'PATO:0001340'}, + "MALE_WITH_DSD": {'description': 'A male of a non-hermaphroditic species with ambiguous or atypical congenital development of the reproductive system', 'meaning': 'PATO:0040049'}, + "FEMALE_WITH_DSD": {'description': 'A female of a non-hermaphroditic species with ambiguous or atypical congenital development of the reproductive system', 'meaning': 'PATO:0040056'}, + "PSEUDOHERMAPHRODITE": {'description': 'Having internal reproductive organs of one sex and external sexual characteristics of the other sex', 'meaning': 'PATO:0001827'}, +} + +class MaturityEnum(RichEnum): + """ + A quality of a single physical entity held by a bearer when it exhibits a state of growth, differentiation, or development. Derived from PATO maturity (PATO:0000261) child values. + """ + # Enum members + NEONATAL = "NEONATAL" + LARVAL = "LARVAL" + PREPUBESCENT = "PREPUBESCENT" + PUPAL = "PUPAL" + PREPUPAL = "PREPUPAL" + PUBESCENT = "PUBESCENT" + ADOLESCENT = "ADOLESCENT" + JUVENILE = "JUVENILE" + IMMATURE = "IMMATURE" + MATURE = "MATURE" + +# Set metadata after class creation to avoid it becoming an enum member +MaturityEnum._metadata = { + "NEONATAL": {'description': 'Being at the point or shortly after birth', 'meaning': 'PATO:0002206'}, + "LARVAL": {'description': 'Undergoing indirect development and metamorphosis', 'meaning': 'PATO:0001185'}, + "PREPUBESCENT": {'description': 'Being at the age immediately before puberty', 'meaning': 'PATO:0001186'}, + "PUPAL": {'description': 'Being in the chrysalis (cocoon) or post-larval stage', 'meaning': 'PATO:0001187'}, + "PREPUPAL": {'description': 'Being in an inactive stage between the larval and the pupal stages', 'meaning': 'PATO:0001188'}, + "PUBESCENT": {'description': 'Having arrived at the onset of puberty but not yet fully mature', 'meaning': 'PATO:0000455'}, + "ADOLESCENT": {'description': 'Being between the onset of puberty and maturity', 'meaning': 'PATO:0001189'}, + "JUVENILE": {'description': 'Not fully grown or developed', 'meaning': 'PATO:0001190'}, + "IMMATURE": {'description': 'Lacking complete growth, differentiation, or development', 'meaning': 'PATO:0001501'}, + "MATURE": {'description': 'Exhibiting complete growth, differentiation, or development', 'meaning': 'PATO:0001701', 'aliases': ['adult']}, +} + +class ViabilityEnum(RichEnum): + """ + An organismal quality inhering in a bearer by virtue of the bearer's disposition to survive and develop normally. Derived from PATO viability (PATO:0000169) child values. + """ + # Enum members + ALIVE = "ALIVE" + DEAD = "DEAD" + VIABLE = "VIABLE" + LETHAL = "LETHAL" + SEMI_VIABLE = "SEMI_VIABLE" + SEMI_LETHAL = "SEMI_LETHAL" + IMMORTAL = "IMMORTAL" + DECAYED = "DECAYED" + +# Set metadata after class creation to avoid it becoming an enum member +ViabilityEnum._metadata = { + "ALIVE": {'description': "The bearer's condition before death", 'meaning': 'PATO:0001421'}, + "DEAD": {'description': "The cessation of the bearer's life", 'meaning': 'PATO:0001422'}, + "VIABLE": {'description': "The bearer's ability to survive or the long term survival ability of a given population", 'meaning': 'PATO:0000719'}, + "LETHAL": {'description': "The bearer's long term survival inability", 'meaning': 'PATO:0000718'}, + "SEMI_VIABLE": {'description': "Some of the population members' ability to survive", 'meaning': 'PATO:0001770'}, + "SEMI_LETHAL": {'description': "Some of the population members' inability to survive to reproduce", 'meaning': 'PATO:0001768'}, + "IMMORTAL": {'description': 'Being capable of indefinite growth or division', 'meaning': 'PATO:0001991'}, + "DECAYED": {'description': 'Decomposition into component parts', 'meaning': 'PATO:0001432'}, +} + +class CellularityEnum(RichEnum): + """ + An organismal quality inhering in a bearer by virtue of the bearer's consisting of cells. Derived from PATO cellularity (PATO:0001992) child values. + """ + # Enum members + UNICELLULAR = "UNICELLULAR" + MULTICELLULAR = "MULTICELLULAR" + +# Set metadata after class creation to avoid it becoming an enum member +CellularityEnum._metadata = { + "UNICELLULAR": {'description': 'Consisting of exactly one cell', 'meaning': 'PATO:0001994'}, + "MULTICELLULAR": {'description': 'Consisting of more than one cell', 'meaning': 'PATO:0001993'}, +} + +class SpatialPatternEnum(RichEnum): + """ + A spatial quality inhering in a bearer by virtue of the bearer's exhibiting repetition of placement of its parts. Derived from PATO spatial pattern (PATO:0000060) child values. + """ + # Enum members + LOCALIZED = "LOCALIZED" + UNLOCALISED = "UNLOCALISED" + MULTI_LOCALISED = "MULTI_LOCALISED" + DISTRIBUTED = "DISTRIBUTED" + UNDISTRIBUTED = "UNDISTRIBUTED" + SPARSE = "SPARSE" + UNILATERAL = "UNILATERAL" + VERTICAL = "VERTICAL" + REGULAR_SPATIAL_PATTERN = "REGULAR_SPATIAL_PATTERN" + IRREGULAR_SPATIAL_PATTERN = "IRREGULAR_SPATIAL_PATTERN" + GENERALIZED = "GENERALIZED" + SEGMENTAL = "SEGMENTAL" + RANDOM_PATTERN = "RANDOM_PATTERN" + SYMMETRICAL = "SYMMETRICAL" + +# Set metadata after class creation to avoid it becoming an enum member +SpatialPatternEnum._metadata = { + "LOCALIZED": {'description': 'Being confined or restricted to a particular location', 'meaning': 'PATO:0000627'}, + "UNLOCALISED": {'description': 'Not being confined or restricted to a particular location', 'meaning': 'PATO:0000635', 'aliases': ['diffuse']}, + "MULTI_LOCALISED": {'description': 'Being confined or restricted to multiple locations', 'meaning': 'PATO:0001791'}, + "DISTRIBUTED": {'description': 'Being spread out or scattered about or divided up', 'meaning': 'PATO:0001566'}, + "UNDISTRIBUTED": {'description': 'Not being spread out or scattered about or divided up', 'meaning': 'PATO:0001567'}, + "SPARSE": {'description': 'Being scattered and spread irregularly at a distance from each other', 'meaning': 'PATO:0001609'}, + "UNILATERAL": {'description': 'Involving only one part or side', 'meaning': 'PATO:0000634'}, + "VERTICAL": {'description': 'Being situated at right angles to the horizon', 'meaning': 'PATO:0001854'}, + "REGULAR_SPATIAL_PATTERN": {'description': 'Having a repeatable or predictable placement', 'meaning': 'PATO:0000440'}, + "IRREGULAR_SPATIAL_PATTERN": {'description': 'Magnitude or relationships between repeated parts lack consistency', 'meaning': 'PATO:0000330'}, + "GENERALIZED": {'description': 'Affecting all regions without specificity of distribution', 'meaning': 'PATO:0002403'}, + "SEGMENTAL": {'description': 'Affecting a segment or segments', 'meaning': 'PATO:0002404'}, + "RANDOM_PATTERN": {'description': 'Characterised by an unidentifiable pattern', 'meaning': 'PATO:0002401'}, + "SYMMETRICAL": {'description': 'Correspondence in size, shape, and relative position of parts on opposite sides of a dividing line or about a center or axis', 'meaning': 'PATO:0000965'}, +} + class DNABaseEnum(RichEnum): """ Standard DNA nucleotide bases (canonical) @@ -18461,6 +18963,250 @@ class SampleProcessingOperationEnum(RichEnum): "BARCODE_READING": {'description': 'Operation to read barcode labels on samples or containers'}, } +class LabUnitOperationEnum(RichEnum): + """ + Composable sample-manipulation primitives ("unit operations") used to build sample-preparation protocols in a cloud laboratory. Modeled on the ECL Symbolic Lab Language sample-preparation unit operations (Transfer, Aliquot, Mix, Incubate, Filter, Centrifuge, Pellet, Resuspend, etc.). Complements the lower level LiquidHandlingOperationEnum and SampleProcessingOperationEnum in lab_automation/operations. + """ + # Enum members + DEFINE = "DEFINE" + LABEL_SAMPLE = "LABEL_SAMPLE" + LABEL_CONTAINER = "LABEL_CONTAINER" + TRANSFER = "TRANSFER" + ALIQUOT = "ALIQUOT" + CONSOLIDATE = "CONSOLIDATE" + DILUTE = "DILUTE" + SERIAL_DILUTE = "SERIAL_DILUTE" + FILL_TO_VOLUME = "FILL_TO_VOLUME" + RESUSPEND = "RESUSPEND" + PREPARE_STOCK_SOLUTION = "PREPARE_STOCK_SOLUTION" + ADJUST_PH = "ADJUST_PH" + MIX = "MIX" + INCUBATE = "INCUBATE" + WAIT = "WAIT" + CENTRIFUGE = "CENTRIFUGE" + PELLET = "PELLET" + FILTER = "FILTER" + MAGNETIC_BEAD_SEPARATION = "MAGNETIC_BEAD_SEPARATION" + MOVE_TO_MAGNET = "MOVE_TO_MAGNET" + REMOVE_FROM_MAGNET = "REMOVE_FROM_MAGNET" + COVER = "COVER" + UNCOVER = "UNCOVER" + DEGAS = "DEGAS" + DESICCATE = "DESICCATE" + EVAPORATE = "EVAPORATE" + LYOPHILIZE = "LYOPHILIZE" + FLASH_FREEZE = "FLASH_FREEZE" + AUTOCLAVE = "AUTOCLAVE" + GRIND = "GRIND" + MICROWAVE_DIGESTION = "MICROWAVE_DIGESTION" + +# Set metadata after class creation to avoid it becoming an enum member +LabUnitOperationEnum._metadata = { + "DEFINE": {'description': 'Declare a new sample, container, or model and assign it a label for later reference in the protocol'}, + "LABEL_SAMPLE": {'description': 'Assign a human-readable label to a sample so it can be referenced by later unit operations'}, + "LABEL_CONTAINER": {'description': 'Assign a human-readable label to a container so it can be referenced by later unit operations'}, + "TRANSFER": {'description': 'Move a specified amount of sample from one source to one or more destinations'}, + "ALIQUOT": {'description': 'Distribute a sample into multiple equal portions in separate containers'}, + "CONSOLIDATE": {'description': 'Combine multiple source samples into a single destination container'}, + "DILUTE": {'description': 'Reduce the concentration of a sample by adding diluent to a target volume or concentration'}, + "SERIAL_DILUTE": {'description': 'Create a stepwise series of dilutions by repeatedly transferring and diluting a sample'}, + "FILL_TO_VOLUME": {'description': 'Add solvent to a sample until a specified total volume is reached'}, + "RESUSPEND": {'description': 'Dissolve or re-disperse a solid or pellet in a specified volume of solvent'}, + "PREPARE_STOCK_SOLUTION": {'description': 'Prepare a solution of defined composition from components and solvent'}, + "ADJUST_PH": {'description': 'Add titrant to bring a sample to a target pH'}, + "MIX": {'description': 'Homogenize a sample by pipetting, inversion, vortexing, stirring, sonication, or related agitation', 'meaning': 'CHMO:0001685', 'aliases': ['mixing']}, + "INCUBATE": {'description': 'Hold a sample at controlled temperature (and optionally mixing) for a specified duration'}, + "WAIT": {'description': 'Pause the protocol for a specified duration without other manipulation'}, + "CENTRIFUGE": {'description': 'Apply centrifugal force to a sample to separate components by density', 'meaning': 'OBI:0302886', 'aliases': ['centrifugation']}, + "PELLET": {'description': 'Centrifuge to precipitate solids, optionally aspirate the supernatant, and optionally resuspend the pellet'}, + "FILTER": {'description': 'Pass a sample through a filter to separate particulates or to sterilize', 'meaning': 'CHMO:0001640', 'aliases': ['filtration']}, + "MAGNETIC_BEAD_SEPARATION": {'description': 'Isolate target analytes bound to magnetic beads using a magnetic field'}, + "MOVE_TO_MAGNET": {'description': 'Place a container on a magnetic rack to immobilize magnetic beads'}, + "REMOVE_FROM_MAGNET": {'description': 'Remove a container from a magnetic rack to release magnetic beads'}, + "COVER": {'description': 'Apply a lid, cap, or seal to a container'}, + "UNCOVER": {'description': 'Remove a lid, cap, or seal from a container'}, + "DEGAS": {'description': 'Remove dissolved gases from a liquid sample', 'meaning': 'CHMO:0002772', 'aliases': ['degassing']}, + "DESICCATE": {'description': 'Remove moisture from a sample using a desiccant or controlled-humidity chamber'}, + "EVAPORATE": {'description': 'Remove solvent from a sample by evaporation, optionally under reduced pressure', 'meaning': 'CHMO:0001574', 'aliases': ['evaporation']}, + "LYOPHILIZE": {'description': 'Freeze-dry a sample to remove solvent by sublimation under vacuum', 'meaning': 'CHMO:0001553', 'aliases': ['freeze drying']}, + "FLASH_FREEZE": {'description': 'Rapidly freeze a sample, typically in liquid nitrogen'}, + "AUTOCLAVE": {'description': 'Sterilize a sample or labware using pressurized saturated steam'}, + "GRIND": {'description': 'Mechanically reduce a solid sample to smaller particles or powder', 'meaning': 'CHMO:0001652', 'aliases': ['grinding']}, + "MICROWAVE_DIGESTION": {'description': 'Digest a sample in acid under microwave heating to bring analytes into solution'}, +} + +class CloudLabExperimentEnum(RichEnum): + """ + Higher-level experiment and assay functions offered as protocols by a cloud laboratory, modeled on the ECL Symbolic Lab Language experiment functions and grouped by category (synthesis, separations/chromatography, spectroscopy, mass spectrometry, bioassays, crystallography, property measurement, cellular). Cross-referenced to the assay value sets in bio/assays/ (OBIAssayEnum, BAOBioassayEnum) and to analytical_chemistry vocabularies; `meaning:` maps to OBI/CHMO classes where an equivalent assay or analytical method exists. + """ + # Enum members + DNA_SYNTHESIS = "DNA_SYNTHESIS" + RNA_SYNTHESIS = "RNA_SYNTHESIS" + PNA_SYNTHESIS = "PNA_SYNTHESIS" + PEPTIDE_SYNTHESIS = "PEPTIDE_SYNTHESIS" + PCR = "PCR" + BIOCONJUGATION = "BIOCONJUGATION" + HPLC = "HPLC" + FPLC = "FPLC" + FLASH_CHROMATOGRAPHY = "FLASH_CHROMATOGRAPHY" + GAS_CHROMATOGRAPHY = "GAS_CHROMATOGRAPHY" + ION_CHROMATOGRAPHY = "ION_CHROMATOGRAPHY" + SUPERCRITICAL_FLUID_CHROMATOGRAPHY = "SUPERCRITICAL_FLUID_CHROMATOGRAPHY" + SOLID_PHASE_EXTRACTION = "SOLID_PHASE_EXTRACTION" + LIQUID_LIQUID_EXTRACTION = "LIQUID_LIQUID_EXTRACTION" + CROSS_FLOW_FILTRATION = "CROSS_FLOW_FILTRATION" + DIALYSIS = "DIALYSIS" + AGAROSE_GEL_ELECTROPHORESIS = "AGAROSE_GEL_ELECTROPHORESIS" + PAGE = "PAGE" + CAPILLARY_GEL_ELECTROPHORESIS_SDS = "CAPILLARY_GEL_ELECTROPHORESIS_SDS" + CAPILLARY_ISOELECTRIC_FOCUSING = "CAPILLARY_ISOELECTRIC_FOCUSING" + WESTERN_BLOT = "WESTERN_BLOT" + NMR = "NMR" + NMR_2D = "NMR_2D" + ABSORBANCE_SPECTROSCOPY = "ABSORBANCE_SPECTROSCOPY" + ABSORBANCE_INTENSITY = "ABSORBANCE_INTENSITY" + ABSORBANCE_KINETICS = "ABSORBANCE_KINETICS" + FLUORESCENCE_SPECTROSCOPY = "FLUORESCENCE_SPECTROSCOPY" + FLUORESCENCE_INTENSITY = "FLUORESCENCE_INTENSITY" + FLUORESCENCE_KINETICS = "FLUORESCENCE_KINETICS" + FLUORESCENCE_POLARIZATION = "FLUORESCENCE_POLARIZATION" + LUMINESCENCE_SPECTROSCOPY = "LUMINESCENCE_SPECTROSCOPY" + LUMINESCENCE_INTENSITY = "LUMINESCENCE_INTENSITY" + LUMINESCENCE_KINETICS = "LUMINESCENCE_KINETICS" + IR_SPECTROSCOPY = "IR_SPECTROSCOPY" + RAMAN_SPECTROSCOPY = "RAMAN_SPECTROSCOPY" + CIRCULAR_DICHROISM = "CIRCULAR_DICHROISM" + DYNAMIC_LIGHT_SCATTERING = "DYNAMIC_LIGHT_SCATTERING" + NEPHELOMETRY = "NEPHELOMETRY" + THERMAL_SHIFT = "THERMAL_SHIFT" + UV_MELTING = "UV_MELTING" + MASS_SPECTROMETRY = "MASS_SPECTROMETRY" + LCMS = "LCMS" + GCMS = "GCMS" + ICPMS = "ICPMS" + ELISA = "ELISA" + CAPILLARY_ELISA = "CAPILLARY_ELISA" + ALPHASCREEN = "ALPHASCREEN" + BIOLAYER_INTERFEROMETRY = "BIOLAYER_INTERFEROMETRY" + QPCR = "QPCR" + DNA_SEQUENCING = "DNA_SEQUENCING" + TOTAL_PROTEIN_QUANTIFICATION = "TOTAL_PROTEIN_QUANTIFICATION" + TOTAL_PROTEIN_DETECTION = "TOTAL_PROTEIN_DETECTION" + DIFFERENTIAL_SCANNING_CALORIMETRY = "DIFFERENTIAL_SCANNING_CALORIMETRY" + GROW_CRYSTAL = "GROW_CRYSTAL" + POWDER_XRD = "POWDER_XRD" + MEASURE_PH = "MEASURE_PH" + MEASURE_CONDUCTIVITY = "MEASURE_CONDUCTIVITY" + MEASURE_DENSITY = "MEASURE_DENSITY" + MEASURE_VISCOSITY = "MEASURE_VISCOSITY" + MEASURE_OSMOLALITY = "MEASURE_OSMOLALITY" + MEASURE_REFRACTIVE_INDEX = "MEASURE_REFRACTIVE_INDEX" + MEASURE_SURFACE_TENSION = "MEASURE_SURFACE_TENSION" + MEASURE_CONTACT_ANGLE = "MEASURE_CONTACT_ANGLE" + MEASURE_DISSOLVED_OXYGEN = "MEASURE_DISSOLVED_OXYGEN" + MEASURE_MELTING_POINT = "MEASURE_MELTING_POINT" + MEASURE_WEIGHT = "MEASURE_WEIGHT" + MEASURE_VOLUME = "MEASURE_VOLUME" + MEASURE_COUNT = "MEASURE_COUNT" + COUNT_LIQUID_PARTICLES = "COUNT_LIQUID_PARTICLES" + COULTER_COUNT = "COULTER_COUNT" + CYCLIC_VOLTAMMETRY = "CYCLIC_VOLTAMMETRY" + KARL_FISCHER_TITRATION = "KARL_FISCHER_TITRATION" + DISSOLUTION = "DISSOLUTION" + DYNAMIC_FOAM_ANALYSIS = "DYNAMIC_FOAM_ANALYSIS" + VISUAL_INSPECTION = "VISUAL_INSPECTION" + IMAGE_SAMPLE = "IMAGE_SAMPLE" + IMAGE_CELLS = "IMAGE_CELLS" + IMAGE_COLONIES = "IMAGE_COLONIES" + QUANTIFY_COLONIES = "QUANTIFY_COLONIES" + LYSE_CELLS = "LYSE_CELLS" + FREEZE_CELLS = "FREEZE_CELLS" + +# Set metadata after class creation to avoid it becoming an enum member +CloudLabExperimentEnum._metadata = { + "DNA_SYNTHESIS": {'description': 'Solid-phase chemical synthesis of DNA oligonucleotides'}, + "RNA_SYNTHESIS": {'description': 'Solid-phase chemical synthesis of RNA oligonucleotides'}, + "PNA_SYNTHESIS": {'description': 'Solid-phase chemical synthesis of peptide nucleic acid oligomers'}, + "PEPTIDE_SYNTHESIS": {'description': 'Solid-phase chemical synthesis of peptides'}, + "PCR": {'description': 'Polymerase chain reaction amplification of nucleic acids', 'meaning': 'OBI:0000415', 'aliases': ['polymerase chain reaction']}, + "BIOCONJUGATION": {'description': 'Covalent coupling of biomolecules or labels to a target molecule'}, + "HPLC": {'description': 'High-performance liquid chromatography separation', 'meaning': 'CHMO:0001009', 'aliases': ['high-performance liquid chromatography']}, + "FPLC": {'description': 'Fast protein liquid chromatography separation'}, + "FLASH_CHROMATOGRAPHY": {'description': 'Medium-pressure flash column chromatography separation', 'meaning': 'CHMO:0002582'}, + "GAS_CHROMATOGRAPHY": {'description': 'Gas chromatography separation of volatile analytes', 'meaning': 'CHMO:0001002'}, + "ION_CHROMATOGRAPHY": {'description': 'Chromatographic separation of ionic species', 'meaning': 'CHMO:0002874'}, + "SUPERCRITICAL_FLUID_CHROMATOGRAPHY": {'description': 'Chromatographic separation using a supercritical fluid mobile phase'}, + "SOLID_PHASE_EXTRACTION": {'description': 'Sample cleanup or enrichment by selective retention on a solid sorbent'}, + "LIQUID_LIQUID_EXTRACTION": {'description': 'Separation of analytes between two immiscible liquid phases', 'meaning': 'CHMO:0001600', 'aliases': ['liquid–liquid extraction']}, + "CROSS_FLOW_FILTRATION": {'description': 'Tangential-flow filtration for concentration or buffer exchange'}, + "DIALYSIS": {'description': 'Separation of molecules by size across a semipermeable membrane', 'meaning': 'CHMO:0001522'}, + "AGAROSE_GEL_ELECTROPHORESIS": {'description': 'Size-based separation of nucleic acids in an agarose gel', 'meaning': 'CHMO:0001022'}, + "PAGE": {'description': 'Polyacrylamide gel electrophoresis separation of biomolecules', 'meaning': 'CHMO:0001023', 'aliases': ['polyacrylamide gel electrophoresis']}, + "CAPILLARY_GEL_ELECTROPHORESIS_SDS": {'description': 'SDS capillary gel electrophoresis sizing of proteins'}, + "CAPILLARY_ISOELECTRIC_FOCUSING": {'description': 'Separation of proteins by isoelectric point in a capillary', 'meaning': 'CHMO:0001033'}, + "WESTERN_BLOT": {'description': 'Immunodetection of proteins separated by electrophoresis', 'meaning': 'OBI:0000854', 'aliases': ['western blot assay']}, + "NMR": {'description': 'One-dimensional nuclear magnetic resonance spectroscopy', 'meaning': 'CHMO:0000591', 'aliases': ['nuclear magnetic resonance spectroscopy']}, + "NMR_2D": {'description': 'Two-dimensional nuclear magnetic resonance spectroscopy', 'meaning': 'CHMO:0000598', 'aliases': ['two-dimensional nuclear magnetic resonance spectroscopy']}, + "ABSORBANCE_SPECTROSCOPY": {'description': 'Measurement of absorbance across a wavelength range'}, + "ABSORBANCE_INTENSITY": {'description': 'Measurement of absorbance at one or more discrete wavelengths'}, + "ABSORBANCE_KINETICS": {'description': 'Time-resolved measurement of absorbance'}, + "FLUORESCENCE_SPECTROSCOPY": {'description': 'Measurement of fluorescence emission across a wavelength range', 'meaning': 'CHMO:0000287'}, + "FLUORESCENCE_INTENSITY": {'description': 'Measurement of fluorescence intensity at discrete wavelengths'}, + "FLUORESCENCE_KINETICS": {'description': 'Time-resolved measurement of fluorescence intensity'}, + "FLUORESCENCE_POLARIZATION": {'description': 'Measurement of fluorescence polarization/anisotropy'}, + "LUMINESCENCE_SPECTROSCOPY": {'description': 'Measurement of luminescence emission across a wavelength range', 'meaning': 'CHMO:0002415'}, + "LUMINESCENCE_INTENSITY": {'description': 'Measurement of luminescence intensity at discrete wavelengths'}, + "LUMINESCENCE_KINETICS": {'description': 'Time-resolved measurement of luminescence intensity'}, + "IR_SPECTROSCOPY": {'description': 'Infrared absorption spectroscopy', 'meaning': 'CHMO:0000630', 'aliases': ['infrared absorption spectroscopy']}, + "RAMAN_SPECTROSCOPY": {'description': 'Raman scattering spectroscopy', 'meaning': 'CHMO:0000656'}, + "CIRCULAR_DICHROISM": {'description': 'Measurement of differential absorption of circularly polarized light'}, + "DYNAMIC_LIGHT_SCATTERING": {'description': 'Measurement of particle size distribution from scattered-light fluctuations', 'meaning': 'CHMO:0000167'}, + "NEPHELOMETRY": {'description': 'Measurement of turbidity by scattered light'}, + "THERMAL_SHIFT": {'description': 'Measurement of protein thermal stability via a fluorescent thermal shift assay'}, + "UV_MELTING": {'description': 'Measurement of nucleic acid or protein melting curves by UV absorbance'}, + "MASS_SPECTROMETRY": {'description': 'Determination of mass-to-charge ratios of ionized analytes', 'meaning': 'CHMO:0000470'}, + "LCMS": {'description': 'Liquid chromatography coupled to mass spectrometry', 'meaning': 'CHMO:0000524', 'aliases': ['liquid chromatography-mass spectrometry']}, + "GCMS": {'description': 'Gas chromatography coupled to mass spectrometry', 'meaning': 'CHMO:0000497', 'aliases': ['gas chromatography-mass spectrometry']}, + "ICPMS": {'description': 'Inductively coupled plasma mass spectrometry for elemental analysis', 'meaning': 'CHMO:0000538', 'aliases': ['inductively coupled plasma mass spectrometry']}, + "ELISA": {'description': 'Enzyme-linked immunosorbent assay', 'meaning': 'OBI:0000661', 'aliases': ['enzyme-linked immunosorbent assay']}, + "CAPILLARY_ELISA": {'description': 'Automated capillary-based enzyme-linked immunosorbent assay'}, + "ALPHASCREEN": {'description': 'Bead-based amplified luminescent proximity homogeneous assay'}, + "BIOLAYER_INTERFEROMETRY": {'description': 'Label-free measurement of biomolecular binding kinetics by interferometry', 'meaning': 'OBI:0002107', 'aliases': ['bio-layer interferometry assay']}, + "QPCR": {'description': 'Quantitative real-time polymerase chain reaction', 'meaning': 'OBI:0000893', 'aliases': ['real time polymerase chain reaction assay']}, + "DNA_SEQUENCING": {'description': 'Determination of nucleotide sequence of DNA (Sanger/capillary)', 'meaning': 'OBI:0000626', 'aliases': ['DNA sequencing assay']}, + "TOTAL_PROTEIN_QUANTIFICATION": {'description': 'Colorimetric or fluorometric quantification of total protein'}, + "TOTAL_PROTEIN_DETECTION": {'description': 'Capillary-based detection and sizing of total protein'}, + "DIFFERENTIAL_SCANNING_CALORIMETRY": {'description': 'Measurement of heat flow associated with thermal transitions', 'meaning': 'CHMO:0000684'}, + "GROW_CRYSTAL": {'description': 'Crystallization of a compound or macromolecule for structural analysis', 'meaning': 'CHMO:0001477', 'aliases': ['crystallisation']}, + "POWDER_XRD": {'description': 'Powder X-ray diffraction analysis of crystalline solids', 'meaning': 'CHMO:0000158', 'aliases': ['powder X-ray diffraction']}, + "MEASURE_PH": {'description': 'Measurement of sample pH'}, + "MEASURE_CONDUCTIVITY": {'description': 'Measurement of electrical conductivity of a solution'}, + "MEASURE_DENSITY": {'description': 'Measurement of sample density'}, + "MEASURE_VISCOSITY": {'description': 'Measurement of sample viscosity'}, + "MEASURE_OSMOLALITY": {'description': 'Measurement of solute concentration as osmolality'}, + "MEASURE_REFRACTIVE_INDEX": {'description': 'Measurement of the refractive index of a sample'}, + "MEASURE_SURFACE_TENSION": {'description': 'Measurement of liquid surface tension'}, + "MEASURE_CONTACT_ANGLE": {'description': 'Measurement of the contact angle of a liquid on a surface'}, + "MEASURE_DISSOLVED_OXYGEN": {'description': 'Measurement of dissolved oxygen concentration in a liquid'}, + "MEASURE_MELTING_POINT": {'description': 'Determination of the melting point of a solid'}, + "MEASURE_WEIGHT": {'description': 'Gravimetric measurement of sample mass'}, + "MEASURE_VOLUME": {'description': 'Measurement of sample volume'}, + "MEASURE_COUNT": {'description': 'Counting of discrete objects (e.g. particles, colonies, cells)'}, + "COUNT_LIQUID_PARTICLES": {'description': 'Counting and sizing of particles suspended in a liquid'}, + "COULTER_COUNT": {'description': 'Counting and sizing of particles or cells by electrical impedance'}, + "CYCLIC_VOLTAMMETRY": {'description': 'Electrochemical measurement of current versus swept potential', 'meaning': 'CHMO:0000025'}, + "KARL_FISCHER_TITRATION": {'description': 'Titrimetric determination of water content', 'meaning': 'CHMO:0002535', 'aliases': ['Karl–Fischer titration']}, + "DISSOLUTION": {'description': 'Measurement of the rate and extent of dissolution of a solid'}, + "DYNAMIC_FOAM_ANALYSIS": {'description': 'Measurement of foam formation and decay'}, + "VISUAL_INSPECTION": {'description': 'Operator or imaging-based visual assessment of a sample'}, + "IMAGE_SAMPLE": {'description': 'Acquisition of a photographic image of a sample'}, + "IMAGE_CELLS": {'description': 'Microscopic imaging of cells'}, + "IMAGE_COLONIES": {'description': 'Imaging of microbial colonies on solid media'}, + "QUANTIFY_COLONIES": {'description': 'Counting and quantification of microbial colonies'}, + "LYSE_CELLS": {'description': 'Disruption of cells to release intracellular contents'}, + "FREEZE_CELLS": {'description': 'Controlled-rate freezing of cells for storage'}, +} + class MicroplateFormatEnum(RichEnum): """ Standard microplate well configurations following ANSI/SLAS standards diff --git a/src/valuesets/datamodel/valuesets_pydantic.py b/src/valuesets/datamodel/valuesets_pydantic.py index c40c7404..3447e0e4 100644 --- a/src/valuesets/datamodel/valuesets_pydantic.py +++ b/src/valuesets/datamodel/valuesets_pydantic.py @@ -1533,6 +1533,80 @@ class ProteinModificationType(RichEnum): "CROSSLINKING": {'description': 'Crosslinking modification', 'meaning': 'MOD:00033'}, } +class SecondaryStructureType(RichEnum): + """ + Per-residue secondary structure assignment. The permissible values correspond to the canonical DSSP 8-state (SS8) classification, which is also the secondary-structure track vocabulary used by protein language models such as ESM3. The single-letter DSSP code is recorded in the ``dssp_code`` annotation. + """ + # Enum members + ALPHA_HELIX = "ALPHA_HELIX" + THREE_TEN_HELIX = "THREE_TEN_HELIX" + PI_HELIX = "PI_HELIX" + BETA_STRAND = "BETA_STRAND" + BETA_BRIDGE = "BETA_BRIDGE" + TURN = "TURN" + BEND = "BEND" + COIL = "COIL" + +# Set metadata after class creation to avoid it becoming an enum member +SecondaryStructureType._metadata = { + "ALPHA_HELIX": {'description': 'Right-handed alpha helix (3.6 residues/turn, i to i+4 hydrogen bonding)', 'meaning': 'SO:0001117', 'annotations': {'dssp_code': 'H', 'ss8_class': 'H'}}, + "THREE_TEN_HELIX": {'description': '3-10 helix (3 residues/turn, i to i+3 hydrogen bonding)', 'meaning': 'SO:0001119', 'annotations': {'dssp_code': 'G', 'ss8_class': 'G'}}, + "PI_HELIX": {'description': 'Pi helix (4.1 residues/turn, i to i+5 hydrogen bonding)', 'meaning': 'SO:0001118', 'annotations': {'dssp_code': 'I', 'ss8_class': 'I'}}, + "BETA_STRAND": {'description': 'Extended beta strand participating in a beta sheet', 'meaning': 'SO:0001111', 'annotations': {'dssp_code': 'E', 'ss8_class': 'E'}}, + "BETA_BRIDGE": {'description': 'Residue in an isolated single-pair beta bridge', 'annotations': {'dssp_code': 'B', 'ss8_class': 'B', 'ontology_gap': 'true'}}, + "TURN": {'description': 'Hydrogen-bonded turn reversing backbone direction over <=4 residues', 'meaning': 'SO:0001128', 'annotations': {'dssp_code': 'T', 'ss8_class': 'T'}}, + "BEND": {'description': 'Region of high backbone curvature without regular hydrogen bonding', 'annotations': {'dssp_code': 'S', 'ss8_class': 'S', 'ontology_gap': 'true'}}, + "COIL": {'description': 'Irregular, unstructured backbone region (loop / random coil)', 'meaning': 'SO:0100012', 'annotations': {'dssp_code': 'C', 'ss8_class': 'C', 'aliases': 'loop, random coil, blank'}}, +} + +class LocalStructuralFeature(RichEnum): + """ + Fine-grained local three-dimensional features of protein structures, spanning super-secondary structural motifs, functional sites, and local geometric surface features. This is the curated, ontology-mapped analogue of the learned per-residue feature vocabularies produced by protein language models and their sparse-autoencoder interpretations. Members marked with the ``ontology_gap`` annotation have no suitable OBO term and are candidates for new ontology terms. + """ + # Enum members + POLYPEPTIDE_STRUCTURAL_MOTIF = "POLYPEPTIDE_STRUCTURAL_MOTIF" + BETA_HAIRPIN = "BETA_HAIRPIN" + BETA_BULGE = "BETA_BULGE" + ASX_MOTIF = "ASX_MOTIF" + NEST = "NEST" + COILED_COIL = "COILED_COIL" + HELIX_CAP = "HELIX_CAP" + CATALYTIC_RESIDUE = "CATALYTIC_RESIDUE" + PROTEIN_BINDING_SITE = "PROTEIN_BINDING_SITE" + DISULFIDE_BOND = "DISULFIDE_BOND" + METAL_BINDING_SITE = "METAL_BINDING_SITE" + POCKET = "POCKET" + CLEFT = "CLEFT" + CAVITY = "CAVITY" + TUNNEL = "TUNNEL" + GROOVE = "GROOVE" + ELBOW = "ELBOW" + KINK = "KINK" + INTERFACE = "INTERFACE" + +# Set metadata after class creation to avoid it becoming an enum member +LocalStructuralFeature._metadata = { + "POLYPEPTIDE_STRUCTURAL_MOTIF": {'description': 'A recurring 3D structural element within the chain that does not form a stable globular unit (the general parent class for local motifs)', 'meaning': 'SO:0001079'}, + "BETA_HAIRPIN": {'description': 'Two adjacent antiparallel beta strands connected by a short loop or turn', 'annotations': {'ontology_gap': 'true'}}, + "BETA_BULGE": {'description': 'A local disruption of beta-sheet hydrogen bonding across three residues', 'meaning': 'SO:0001107'}, + "ASX_MOTIF": {'description': 'A five-residue motif nucleated by an Asp/Asn side chain (Asx)', 'meaning': 'SO:0001106'}, + "NEST": {'description': 'A motif of two consecutive residues forming an anion-binding concavity', 'meaning': 'SO:0001120'}, + "COILED_COIL": {'description': 'Two or more alpha helices wound together like strands of a rope', 'meaning': 'SO:0001080'}, + "HELIX_CAP": {'description': 'N-cap or C-cap residue terminating an alpha helix', 'annotations': {'ontology_gap': 'true'}}, + "CATALYTIC_RESIDUE": {'description': 'An amino acid residue directly involved in enzyme catalysis (active site)', 'meaning': 'SO:0001104'}, + "PROTEIN_BINDING_SITE": {'description': 'A site that interacts selectively and non-covalently with polypeptide molecules', 'meaning': 'SO:0000410'}, + "DISULFIDE_BOND": {'description': 'A covalent S-S bond between two cysteine residues', 'annotations': {'obo_gap': 'true'}}, + "METAL_BINDING_SITE": {'description': 'A local site coordinating one or more metal ions', 'annotations': {'obo_gap': 'true'}}, + "POCKET": {'description': 'A concave, solvent-accessible surface depression that can accommodate a ligand', 'annotations': {'ontology_gap': 'true', 'related_edam': 'EDAM:data_1542'}}, + "CLEFT": {'description': 'An elongated surface groove between structural elements or domains', 'annotations': {'ontology_gap': 'true'}}, + "CAVITY": {'description': 'An enclosed, solvent-inaccessible internal void within the structure', 'annotations': {'ontology_gap': 'true', 'related_edam': 'EDAM:data_1542'}}, + "TUNNEL": {'description': 'An elongated, often buried, passage through the structure connecting two regions', 'annotations': {'ontology_gap': 'true'}}, + "GROOVE": {'description': 'A surface channel, e.g. a nucleic-acid-binding groove', 'annotations': {'ontology_gap': 'true'}}, + "ELBOW": {'description': 'A localized bend or hinge between two structural elements or domains', 'annotations': {'ontology_gap': 'true'}}, + "KINK": {'description': 'A localized bend interrupting the regular geometry of a helix', 'annotations': {'ontology_gap': 'true'}}, + "INTERFACE": {'description': 'A surface patch mediating contact with another chain or molecule', 'annotations': {'ontology_gap': 'true'}}, +} + class BiosafetyLevelEnum(RichEnum): """ Biosafety levels (BSL) defining containment requirements for biological agents @@ -7064,6 +7138,122 @@ class QuantumAlgorithmCategoryType(RichEnum): "VARIATIONAL": {'description': 'Hybrid quantum-classical variational algorithms for near-term quantum devices'}, } +class FrontierModelEnum(RichEnum): + """ + Hierarchical enumeration of frontier AI models. The hierarchy has three tiers: developer (e.g. ANTHROPIC), model family (e.g. CLAUDE_OPUS), and specific model release identified by its canonical API model id (e.g. claude-opus-4-8). Intermediate developer and family nodes are uppercase categorical values; leaf nodes are the verbatim API identifiers. + """ + # Enum members + ANTHROPIC = "ANTHROPIC" + CLAUDE_OPUS = "CLAUDE_OPUS" + CLAUDE_OPUS_4_8 = "claude-opus-4-8" + CLAUDE_OPUS_4_7 = "claude-opus-4-7" + CLAUDE_OPUS_4_6 = "claude-opus-4-6" + CLAUDE_OPUS_4_5 = "claude-opus-4-5" + CLAUDE_SONNET = "CLAUDE_SONNET" + CLAUDE_SONNET_4_6 = "claude-sonnet-4-6" + CLAUDE_SONNET_4_5 = "claude-sonnet-4-5" + CLAUDE_HAIKU = "CLAUDE_HAIKU" + CLAUDE_HAIKU_4_5 = "claude-haiku-4-5" + CLAUDE_FABLE = "CLAUDE_FABLE" + CLAUDE_FABLE_5 = "claude-fable-5" + CLAUDE_MYTHOS = "CLAUDE_MYTHOS" + CLAUDE_MYTHOS_5 = "claude-mythos-5" + OPENAI = "OPENAI" + GPT_5 = "GPT_5" + GPT_5_5 = "gpt-5.5" + GPT_5_4 = "gpt-5.4" + GPT_5_4_MINI = "gpt-5.4-mini" + GPT_5_2 = "gpt-5.2" + GPT_5_2_CODEX = "gpt-5.2-codex" + GOOGLE = "GOOGLE" + GEMINI_3 = "GEMINI_3" + GEMINI_3_5_FLASH = "gemini-3.5-flash" + GEMINI_3_1_PRO_PREVIEW = "gemini-3.1-pro-preview" + GEMINI_3_FLASH_PREVIEW = "gemini-3-flash-preview" + GEMINI_3_1_FLASH_LITE = "gemini-3.1-flash-lite" + GEMINI_2_5 = "GEMINI_2_5" + GEMINI_2_5_PRO = "gemini-2.5-pro" + GEMINI_2_5_FLASH = "gemini-2.5-flash" + GEMINI_2_5_FLASH_LITE = "gemini-2.5-flash-lite" + XAI = "XAI" + GROK_4 = "GROK_4" + GROK_4_3 = "grok-4.3" + GROK_4_20_0309_REASONING = "grok-4.20-0309-reasoning" + GROK_4_0709 = "grok-4-0709" + GROK_CODE = "GROK_CODE" + GROK_CODE_FAST_1 = "grok-code-fast-1" + META = "META" + LLAMA_4 = "LLAMA_4" + LLAMA_4_MAVERICK = "llama-4-maverick" + LLAMA_4_SCOUT = "llama-4-scout" + DEEPSEEK = "DEEPSEEK" + DEEPSEEK_MODELS = "DEEPSEEK_MODELS" + DEEPSEEK_CHAT = "deepseek-chat" + DEEPSEEK_REASONER = "deepseek-reasoner" + MISTRAL = "MISTRAL" + MISTRAL_LARGE = "MISTRAL_LARGE" + MISTRAL_LARGE_3 = "mistral-large-3" + MOONSHOT = "MOONSHOT" + KIMI = "KIMI" + KIMI_K2_6 = "kimi-k2.6" + +# Set metadata after class creation to avoid it becoming an enum member +FrontierModelEnum._metadata = { + "ANTHROPIC": {'description': 'Models developed by Anthropic (the Claude family)', 'annotations': {'node_type': 'developer', 'homepage': 'https://www.anthropic.com'}}, + "CLAUDE_OPUS": {'description': "Claude Opus - Anthropic's most capable Opus-tier model family", 'annotations': {'node_type': 'family', 'tier': 'most capable'}}, + "CLAUDE_OPUS_4_8": {'description': "Claude Opus 4.8 - Anthropic's most capable Opus-tier model; highly autonomous, state-of-the-art on long-horizon agentic work, knowledge work, and memory. Adaptive thinking only.", 'annotations': {'node_type': 'model', 'api_model_id': 'claude-opus-4-8', 'developer': 'Anthropic', 'context_window': 1000000, 'max_output_tokens': 128000, 'input_usd_per_mtok': 5.0, 'output_usd_per_mtok': 25.0}, 'aliases': ['Opus 4.8', 'opus']}, + "CLAUDE_OPUS_4_7": {'description': 'Claude Opus 4.7 - previous-generation Opus; highly autonomous, strong on long-horizon agentic work, vision, and memory. Adaptive thinking only.', 'annotations': {'node_type': 'model', 'api_model_id': 'claude-opus-4-7', 'developer': 'Anthropic', 'context_window': 1000000, 'max_output_tokens': 128000}, 'aliases': ['Opus 4.7']}, + "CLAUDE_OPUS_4_6": {'description': 'Claude Opus 4.6 - older Opus model supporting adaptive thinking and 128K max output tokens.', 'annotations': {'node_type': 'model', 'api_model_id': 'claude-opus-4-6', 'developer': 'Anthropic', 'context_window': 1000000, 'max_output_tokens': 128000}, 'aliases': ['Opus 4.6']}, + "CLAUDE_OPUS_4_5": {'description': 'Claude Opus 4.5 - legacy Opus model (still active).', 'annotations': {'node_type': 'model', 'api_model_id': 'claude-opus-4-5', 'full_model_id': 'claude-opus-4-5-20251101', 'developer': 'Anthropic'}, 'aliases': ['Opus 4.5']}, + "CLAUDE_SONNET": {'description': "Claude Sonnet - Anthropic's balanced speed / intelligence family", 'annotations': {'node_type': 'family', 'tier': 'balanced'}}, + "CLAUDE_SONNET_4_6": {'description': "Claude Sonnet 4.6 - Anthropic's best combination of speed and intelligence. Supports adaptive thinking.", 'annotations': {'node_type': 'model', 'api_model_id': 'claude-sonnet-4-6', 'developer': 'Anthropic', 'context_window': 1000000, 'max_output_tokens': 64000, 'input_usd_per_mtok': 3.0, 'output_usd_per_mtok': 15.0}, 'aliases': ['Sonnet 4.6', 'sonnet']}, + "CLAUDE_SONNET_4_5": {'description': 'Claude Sonnet 4.5 - legacy Sonnet model (still active).', 'annotations': {'node_type': 'model', 'api_model_id': 'claude-sonnet-4-5', 'full_model_id': 'claude-sonnet-4-5-20250929', 'developer': 'Anthropic'}, 'aliases': ['Sonnet 4.5']}, + "CLAUDE_HAIKU": {'description': "Claude Haiku - Anthropic's fastest and most cost-effective family", 'annotations': {'node_type': 'family', 'tier': 'fast'}}, + "CLAUDE_HAIKU_4_5": {'description': "Claude Haiku 4.5 - Anthropic's fastest and most cost-effective model for simple, latency-sensitive tasks.", 'annotations': {'node_type': 'model', 'api_model_id': 'claude-haiku-4-5', 'full_model_id': 'claude-haiku-4-5-20251001', 'developer': 'Anthropic', 'context_window': 200000, 'max_output_tokens': 64000, 'input_usd_per_mtok': 1.0, 'output_usd_per_mtok': 5.0}, 'aliases': ['Haiku 4.5', 'haiku']}, + "CLAUDE_FABLE": {'description': "Claude Fable - Anthropic's most capable widely released model family, for the most demanding reasoning and long-horizon agentic work.", 'annotations': {'node_type': 'family', 'tier': 'frontier'}}, + "CLAUDE_FABLE_5": {'description': "Claude Fable 5 - Anthropic's most capable widely released model. Thinking is always on; raw chain of thought is never returned. Requires 30-day data retention.", 'annotations': {'node_type': 'model', 'api_model_id': 'claude-fable-5', 'developer': 'Anthropic', 'context_window': 1000000, 'max_output_tokens': 128000, 'input_usd_per_mtok': 10.0, 'output_usd_per_mtok': 50.0}, 'aliases': ['Fable 5', 'fable']}, + "CLAUDE_MYTHOS": {'description': 'Claude Mythos - same capabilities and API behavior as Claude Fable, available exclusively through Project Glasswing.', 'annotations': {'node_type': 'family', 'tier': 'frontier', 'availability': 'Project Glasswing only'}}, + "CLAUDE_MYTHOS_5": {'description': 'Claude Mythos 5 - same capabilities, pricing, limits, and API behavior as Claude Fable 5; available only through Project Glasswing.', 'annotations': {'node_type': 'model', 'api_model_id': 'claude-mythos-5', 'developer': 'Anthropic', 'context_window': 1000000, 'max_output_tokens': 128000}, 'aliases': ['Mythos 5']}, + "OPENAI": {'description': 'Models developed by OpenAI (the GPT family)', 'annotations': {'node_type': 'developer', 'homepage': 'https://openai.com'}}, + "GPT_5": {'description': "GPT-5 - OpenAI's frontier model family for coding and professional work", 'annotations': {'node_type': 'family', 'tier': 'frontier'}}, + "GPT_5_5": {'description': 'GPT-5.5 - OpenAI\'s newest frontier model, "a new class of intelligence for coding and professional work".', 'annotations': {'node_type': 'model', 'api_model_id': 'gpt-5.5', 'developer': 'OpenAI', 'training_cutoff': '2025-12-01', 'context_window': 1000000}, 'aliases': ['GPT-5.5']}, + "GPT_5_4": {'description': 'GPT-5.4 - a more affordable model for coding and professional work.', 'annotations': {'node_type': 'model', 'api_model_id': 'gpt-5.4', 'developer': 'OpenAI', 'training_cutoff': '2025-08-31', 'context_window': 1000000}, 'aliases': ['GPT-5.4']}, + "GPT_5_4_MINI": {'description': "GPT-5.4 mini - OpenAI's strongest mini model for coding, computer use, and subagents; lower latency and cost.", 'annotations': {'node_type': 'model', 'api_model_id': 'gpt-5.4-mini', 'developer': 'OpenAI', 'training_cutoff': '2025-08-31', 'context_window': 400000}, 'aliases': ['GPT-5.4 mini']}, + "GPT_5_2": {'description': 'GPT-5.2 - previous frontier model for complex professional work.', 'annotations': {'node_type': 'model', 'api_model_id': 'gpt-5.2', 'developer': 'OpenAI'}, 'aliases': ['GPT-5.2']}, + "GPT_5_2_CODEX": {'description': 'GPT-5.2-Codex - coding-specialized variant for API-authenticated Codex workflows.', 'annotations': {'node_type': 'model', 'api_model_id': 'gpt-5.2-codex', 'developer': 'OpenAI', 'specialization': 'coding'}, 'aliases': ['GPT-5.2 Codex']}, + "GOOGLE": {'description': 'Models developed by Google DeepMind (the Gemini family)', 'annotations': {'node_type': 'developer', 'homepage': 'https://deepmind.google'}}, + "GEMINI_3": {'description': "Gemini 3 - Google's latest generation multimodal model family", 'annotations': {'node_type': 'family', 'tier': 'frontier'}}, + "GEMINI_3_5_FLASH": {'description': "Gemini 3.5 Flash - Google's most intelligent model for agentic and coding tasks, delivering near-Pro intelligence at Flash-tier speed and cost.", 'annotations': {'node_type': 'model', 'api_model_id': 'gemini-3.5-flash', 'developer': 'Google DeepMind', 'release_date': '2026-05-19', 'context_window': 1000000}, 'aliases': ['Gemini 3.5 Flash']}, + "GEMINI_3_1_PRO_PREVIEW": {'description': 'Gemini 3.1 Pro - reasoning-first model optimized for complex agentic workflows and coding, with adaptive thinking and integrated grounding.', 'annotations': {'node_type': 'model', 'api_model_id': 'gemini-3.1-pro-preview', 'developer': 'Google DeepMind', 'context_window': 1000000}, 'aliases': ['Gemini 3.1 Pro']}, + "GEMINI_3_FLASH_PREVIEW": {'description': 'Gemini 3 Flash - frontier-class performance at reduced cost.', 'annotations': {'node_type': 'model', 'api_model_id': 'gemini-3-flash-preview', 'developer': 'Google DeepMind'}, 'aliases': ['Gemini 3 Flash']}, + "GEMINI_3_1_FLASH_LITE": {'description': 'Gemini 3.1 Flash-Lite - most cost-efficient Gemini model, optimized for low latency and high-volume traffic.', 'annotations': {'node_type': 'model', 'api_model_id': 'gemini-3.1-flash-lite', 'developer': 'Google DeepMind'}, 'aliases': ['Gemini 3.1 Flash-Lite']}, + "GEMINI_2_5": {'description': "Gemini 2.5 - Google's previous-generation multimodal model family", 'annotations': {'node_type': 'family'}}, + "GEMINI_2_5_PRO": {'description': 'Gemini 2.5 Pro - high-capability model for complex reasoning and coding with adaptive thinking and a 1M token context.', 'annotations': {'node_type': 'model', 'api_model_id': 'gemini-2.5-pro', 'developer': 'Google DeepMind', 'context_window': 1000000}, 'aliases': ['Gemini 2.5 Pro']}, + "GEMINI_2_5_FLASH": {'description': 'Gemini 2.5 Flash - best price-performance for reasoning tasks.', 'annotations': {'node_type': 'model', 'api_model_id': 'gemini-2.5-flash', 'developer': 'Google DeepMind'}, 'aliases': ['Gemini 2.5 Flash']}, + "GEMINI_2_5_FLASH_LITE": {'description': 'Gemini 2.5 Flash-Lite - fastest and most budget-friendly option.', 'annotations': {'node_type': 'model', 'api_model_id': 'gemini-2.5-flash-lite', 'developer': 'Google DeepMind'}, 'aliases': ['Gemini 2.5 Flash-Lite']}, + "XAI": {'description': 'Models developed by xAI (the Grok family)', 'annotations': {'node_type': 'developer', 'homepage': 'https://x.ai'}}, + "GROK_4": {'description': "Grok 4 - xAI's reasoning-first flagship model family", 'annotations': {'node_type': 'family', 'tier': 'frontier'}}, + "GROK_4_3": {'description': "Grok 4.3 - xAI's reasoning-first flagship; the most intelligent and fastest model xAI has built.", 'annotations': {'node_type': 'model', 'api_model_id': 'grok-4.3', 'developer': 'xAI', 'release_date': '2026-04-30', 'context_window': 1000000}, 'aliases': ['Grok 4.3']}, + "GROK_4_20_0309_REASONING": {'description': 'Grok 4.20 (reasoning) - agentic tool-calling model noted for a very low hallucination rate.', 'annotations': {'node_type': 'model', 'api_model_id': 'grok-4.20-0309-reasoning', 'developer': 'xAI', 'context_window': 1000000}, 'aliases': ['Grok 4.20']}, + "GROK_4_0709": {'description': 'Grok 4 - earlier Grok 4 release.', 'annotations': {'node_type': 'model', 'api_model_id': 'grok-4-0709', 'developer': 'xAI', 'knowledge_cutoff': '2024-11'}, 'aliases': ['Grok 4']}, + "GROK_CODE": {'description': "Grok Code - xAI's dedicated agentic coding model family", 'annotations': {'node_type': 'family', 'specialization': 'coding'}}, + "GROK_CODE_FAST_1": {'description': 'Grok Code Fast 1 - dedicated agentic coding model.', 'annotations': {'node_type': 'model', 'api_model_id': 'grok-code-fast-1', 'developer': 'xAI', 'specialization': 'coding'}, 'aliases': ['Grok Code Fast']}, + "META": {'description': 'Open-weight models developed by Meta (the Llama family)', 'annotations': {'node_type': 'developer', 'homepage': 'https://www.llama.com', 'license': 'Llama Community License'}}, + "LLAMA_4": {'description': "Llama 4 - Meta's open-weight mixture-of-experts model family", 'annotations': {'node_type': 'family'}}, + "LLAMA_4_MAVERICK": {'description': 'Llama 4 Maverick - general-purpose open-weight chat model; highest MMLU among Llama 4 variants.', 'annotations': {'node_type': 'model', 'api_model_id': 'llama-4-maverick', 'developer': 'Meta'}, 'aliases': ['Llama 4 Maverick']}, + "LLAMA_4_SCOUT": {'description': 'Llama 4 Scout - open-weight model supporting very long context (up to 10M tokens).', 'annotations': {'node_type': 'model', 'api_model_id': 'llama-4-scout', 'developer': 'Meta', 'context_window': 10000000}, 'aliases': ['Llama 4 Scout']}, + "DEEPSEEK": {'description': 'Open-weight models developed by DeepSeek', 'annotations': {'node_type': 'developer', 'homepage': 'https://www.deepseek.com'}}, + "DEEPSEEK_MODELS": {'description': 'DeepSeek - open-weight mixture-of-experts chat and reasoning models', 'annotations': {'node_type': 'family'}}, + "DEEPSEEK_CHAT": {'description': 'DeepSeek-V3 (served as deepseek-chat) - open-weight MoE model activating ~37B of 671B parameters per token.', 'annotations': {'node_type': 'model', 'api_model_id': 'deepseek-chat', 'developer': 'DeepSeek'}, 'aliases': ['DeepSeek-V3', 'DeepSeek V3']}, + "DEEPSEEK_REASONER": {'description': 'DeepSeek-R1 (served as deepseek-reasoner) - open-weight reasoning model.', 'annotations': {'node_type': 'model', 'api_model_id': 'deepseek-reasoner', 'developer': 'DeepSeek'}, 'aliases': ['DeepSeek-R1', 'DeepSeek R1']}, + "MISTRAL": {'description': 'Models developed by Mistral AI', 'annotations': {'node_type': 'developer', 'homepage': 'https://mistral.ai'}}, + "MISTRAL_LARGE": {'description': "Mistral Large - Mistral AI's flagship open-weight model family", 'annotations': {'node_type': 'family'}}, + "MISTRAL_LARGE_3": {'description': 'Mistral Large 3 - state-of-the-art open-weight MoE model (41B active / 675B total parameters), 256K context, released under Apache 2.0.', 'annotations': {'node_type': 'model', 'api_model_id': 'mistral-large-3', 'developer': 'Mistral AI', 'release_date': '2025-12', 'context_window': 256000, 'license': 'Apache-2.0'}, 'aliases': ['Mistral Large 3']}, + "MOONSHOT": {'description': 'Models developed by Moonshot AI (the Kimi family)', 'annotations': {'node_type': 'developer', 'homepage': 'https://www.moonshot.ai'}}, + "KIMI": {'description': "Kimi - Moonshot AI's open-weight mixture-of-experts model family", 'annotations': {'node_type': 'family'}}, + "KIMI_K2_6": {'description': 'Kimi K2.6 - frontier open-weight MoE coding model (32B active / 1T total parameters).', 'annotations': {'node_type': 'model', 'api_model_id': 'kimi-k2.6', 'developer': 'Moonshot AI'}, 'aliases': ['Kimi K2.6']}, +} + class SemiconductorMaterialType(RichEnum): """ Types of semiconductor materials used in microelectronics fabrication @@ -10585,6 +10775,318 @@ class PlantLeafColorEnum(RichEnum): "BROWN": {'description': 'Brown leaves (dead/dying)', 'annotations': {'hex': '964B00', 'condition': 'senescent or dead'}}, } +class ColorEnum(RichEnum): + """ + A composite chromatic quality composed of hue, saturation and intensity parts. Derived from PATO color (PATO:0000014) child values. + """ + # Enum members + BLACK = "BLACK" + WHITE = "WHITE" + GREY = "GREY" + RED = "RED" + ORANGE = "ORANGE" + YELLOW = "YELLOW" + GREEN = "GREEN" + CYAN = "CYAN" + BLUE = "BLUE" + VIOLET = "VIOLET" + PURPLE = "PURPLE" + MAGENTA = "MAGENTA" + BROWN = "BROWN" + MAROON = "MAROON" + ROSY = "ROSY" + VERMILION = "VERMILION" + COLORED = "COLORED" + +# Set metadata after class creation to avoid it becoming an enum member +ColorEnum._metadata = { + "BLACK": {'description': 'A color that lacks any hues as parts', 'meaning': 'PATO:0000317'}, + "WHITE": {'description': 'An achromatic color of maximum brightness', 'meaning': 'PATO:0000323'}, + "GREY": {'description': 'A color between white and black colors', 'meaning': 'PATO:0000950', 'aliases': ['gray']}, + "RED": {'description': 'A color hue with high wavelength of the long-wave end of the visible spectrum (630-750 nm)', 'meaning': 'PATO:0000322'}, + "ORANGE": {'description': 'A color hue with high-medium wavelength lying between red and yellow (585-620 nm)', 'meaning': 'PATO:0000953'}, + "YELLOW": {'description': 'A color hue with medium wavelength lying between orange and green (570-590 nm)', 'meaning': 'PATO:0000324'}, + "GREEN": {'description': 'A color hue with medium-low wavelength lying between yellow and blue (490-570 nm)', 'meaning': 'PATO:0000320'}, + "CYAN": {'description': 'A color consisting of green and blue hue', 'meaning': 'PATO:0000319'}, + "BLUE": {'description': 'A color hue with low wavelength lying between green and indigo (420-490 nm)', 'meaning': 'PATO:0000318'}, + "VIOLET": {'description': 'A color hue with very low wavelength lying between reddish blue and bluish purple (380-420 nm)', 'meaning': 'PATO:0001424'}, + "PURPLE": {'description': 'A color that falls about midway between red and blue in hue', 'meaning': 'PATO:0000951'}, + "MAGENTA": {'description': 'A color consisting of red and blue hues', 'meaning': 'PATO:0000321'}, + "BROWN": {'description': 'A color consisting of dark orange, red, of very low intensity', 'meaning': 'PATO:0000952'}, + "MAROON": {'description': 'A color consisting of purple and brown hue', 'meaning': 'PATO:0001426'}, + "ROSY": {'description': 'A color hue consisting of red and yellow hue with high brightness', 'meaning': 'PATO:0001425', 'aliases': ['pink']}, + "VERMILION": {'description': 'A color consisting of red and orange hue with a slight amount of gray', 'meaning': 'PATO:0001302'}, + "COLORED": {'description': 'A color quality inhering in a bearer by virtue of having color', 'meaning': 'PATO:0000336'}, +} + +class ShapeEnum(RichEnum): + """ + A morphological quality inhering in a bearer by virtue of the bearer's ratios of distances between its features. Derived from PATO shape (PATO:0000052) child values. + """ + # Enum members + CIRCULAR = "CIRCULAR" + ELLIPTIC = "ELLIPTIC" + SPHEROID = "SPHEROID" + CONICAL = "CONICAL" + COLUMNAR = "COLUMNAR" + TUBULAR = "TUBULAR" + FLAT = "FLAT" + ELONGATED = "ELONGATED" + LINEAR = "LINEAR" + FILAMENTOUS = "FILAMENTOUS" + SLENDER = "SLENDER" + BROAD = "BROAD" + ROBUST = "ROBUST" + STRAIGHT = "STRAIGHT" + BENT = "BENT" + ANGULAR = "ANGULAR" + LOBED = "LOBED" + TRUNCATED = "TRUNCATED" + PYRAMIDAL = "PYRAMIDAL" + STAR_SHAPED = "STAR_SHAPED" + SIGMOID = "SIGMOID" + UNDULATE = "UNDULATE" + PINNATE = "PINNATE" + PLEOMORPHIC = "PLEOMORPHIC" + COILING = "COILING" + +# Set metadata after class creation to avoid it becoming an enum member +ShapeEnum._metadata = { + "CIRCULAR": {'description': 'A shape where every part of the surface or circumference is equidistant from the center', 'meaning': 'PATO:0000411'}, + "ELLIPTIC": {'description': 'Oval with two axes of symmetry, as produced by a conical section', 'meaning': 'PATO:0000947', 'aliases': ['oval']}, + "SPHEROID": {'description': 'A convex 3-D shape obtained by rotating an ellipse about one of its principal axes', 'meaning': 'PATO:0001865'}, + "CONICAL": {'description': 'A convex 3-D shape resembling a cone with a round cross section that tapers', 'meaning': 'PATO:0002021'}, + "COLUMNAR": {'description': 'Elongated and cylindrical in shape', 'meaning': 'PATO:0002063', 'aliases': ['cylindrical']}, + "TUBULAR": {'description': 'A cylindrical shape that is hollow', 'meaning': 'PATO:0002299'}, + "FLAT": {'description': 'Having a horizontal surface without a slope, tilt, or curvature', 'meaning': 'PATO:0000407'}, + "ELONGATED": {'description': 'Length being notably higher relative to width', 'meaning': 'PATO:0001154'}, + "LINEAR": {'description': 'Narrow, with approximately parallel sides', 'meaning': 'PATO:0001199'}, + "FILAMENTOUS": {'description': 'Having thin filaments or thread-like structures', 'meaning': 'PATO:0001360'}, + "SLENDER": {'description': 'Being small or narrow in circumference or width in proportion to length or height', 'meaning': 'PATO:0002212'}, + "BROAD": {'description': 'Width being notably higher relative to comparable entities', 'meaning': 'PATO:0002359'}, + "ROBUST": {'description': 'Being strong, thick, or stout in form', 'meaning': 'PATO:0002310'}, + "STRAIGHT": {'description': 'Free of curves, bends, or angles', 'meaning': 'PATO:0002180'}, + "BENT": {'description': 'Having one or more fixed curves, folds, or angles', 'meaning': 'PATO:0000617'}, + "ANGULAR": {'description': 'Having at least one angle formed by two planes', 'meaning': 'PATO:0001977'}, + "LOBED": {'description': 'Being partly divided into a determinate number of segments', 'meaning': 'PATO:0001979'}, + "TRUNCATED": {'description': 'Terminating abruptly by a transverse line or plane', 'meaning': 'PATO:0000936'}, + "PYRAMIDAL": {'description': 'Having triangular faces meeting at a common point', 'meaning': 'PATO:0002336'}, + "STAR_SHAPED": {'description': 'Being arranged like a star with radiating points', 'meaning': 'PATO:0002065', 'aliases': ['stellate']}, + "SIGMOID": {'description': 'Consisting of two curves in opposite directions like the letter S', 'meaning': 'PATO:0001878'}, + "UNDULATE": {'description': 'Having a sinuate margin that moves smoothly and regularly up and down', 'meaning': 'PATO:0000967', 'aliases': ['wavy']}, + "PINNATE": {'description': 'Having leaflets or branches on each side of a common axis', 'meaning': 'PATO:0000410'}, + "PLEOMORPHIC": {'description': 'Having the ability to take on multiple forms', 'meaning': 'PATO:0001356'}, + "COILING": {'description': 'Being wound in a spiral or helix', 'meaning': 'PATO:0001794', 'aliases': ['coiled', 'helical']}, +} + +class RelativeChangeEnum(RichEnum): + """ + Direction of change of any quality relative to normal or baseline. This is PATO's general-purpose deviation-from-normal axis (PATO:0000069) that crosscuts all specific quality attributes (size, rate, amount, etc.). + """ + # Enum members + NORMAL = "NORMAL" + ABNORMAL = "ABNORMAL" + INCREASED = "INCREASED" + DECREASED = "DECREASED" + INCREASED_MAGNITUDE = "INCREASED_MAGNITUDE" + DECREASED_MAGNITUDE = "DECREASED_MAGNITUDE" + +# Set metadata after class creation to avoid it becoming an enum member +RelativeChangeEnum._metadata = { + "NORMAL": {'description': 'Exhibiting no deviation from normal or average', 'meaning': 'PATO:0000461'}, + "ABNORMAL": {'description': 'Deviating from normal or average', 'meaning': 'PATO:0000460'}, + "INCREASED": {'description': 'A value that is increased compared to normal or average', 'meaning': 'PATO:0002300', 'aliases': ['elevated', 'high']}, + "DECREASED": {'description': 'A value that is decreased compared to normal or average', 'meaning': 'PATO:0002301', 'aliases': ['reduced', 'low']}, + "INCREASED_MAGNITUDE": {'description': 'An increased magnitude of a quality', 'meaning': 'PATO:0002017'}, + "DECREASED_MAGNITUDE": {'description': 'A decreased magnitude of a quality', 'meaning': 'PATO:0002018'}, +} + +class IntensityEnum(RichEnum): + """ + A quality inhering in a bearer by virtue of the bearer's possessing or displaying a distinctive feature in type or degree or effect or force. Derived from PATO intensity (PATO:0000049) child values. + """ + # Enum members + BORDERLINE = "BORDERLINE" + MILD = "MILD" + MODERATE = "MODERATE" + SEVERE = "SEVERE" + PROFOUND = "PROFOUND" + INCREASED_INTENSITY = "INCREASED_INTENSITY" + DECREASED_INTENSITY = "DECREASED_INTENSITY" + REMITTENT = "REMITTENT" + +# Set metadata after class creation to avoid it becoming an enum member +IntensityEnum._metadata = { + "BORDERLINE": {'description': 'Borderline in effect or force compared to baseline or normal', 'meaning': 'PATO:0002628'}, + "MILD": {'description': 'Less than moderate in type or degree or effect or force', 'meaning': 'PATO:0000394'}, + "MODERATE": {'description': 'Less than extreme in type or degree or effect or force', 'meaning': 'PATO:0000395'}, + "SEVERE": {'description': 'Extremely bad or unpleasant in type or degree or effect or force', 'meaning': 'PATO:0000396'}, + "PROFOUND": {'description': 'Very severe in intensity', 'meaning': 'PATO:0002629'}, + "INCREASED_INTENSITY": {'description': 'Intensity which is relatively high', 'meaning': 'PATO:0001782'}, + "DECREASED_INTENSITY": {'description': 'Intensity which is relatively low', 'meaning': 'PATO:0001783'}, + "REMITTENT": {'description': 'Characterised by temporary abatement in severity', 'meaning': 'PATO:0001841'}, +} + +class TextureEnum(RichEnum): + """ + A morphological quality inhering in a bearer by virtue of the bearer's surface characteristics. Derived from PATO texture (PATO:0000150) child values. + """ + # Enum members + SMOOTH = "SMOOTH" + ROUGH = "ROUGH" + SCALY = "SCALY" + FLAKY = "FLAKY" + GROOVED = "GROOVED" + BLISTERED = "BLISTERED" + HAIRY = "HAIRY" + ABRASED = "ABRASED" + RUSTY = "RUSTY" + FOVEATE = "FOVEATE" + +# Set metadata after class creation to avoid it becoming an enum member +TextureEnum._metadata = { + "SMOOTH": {'description': 'Having a surface free of roughness or irregularities', 'meaning': 'PATO:0000701'}, + "ROUGH": {'description': 'Having an irregular surface', 'meaning': 'PATO:0000700'}, + "SCALY": {'description': 'Being covered or partially covered with scales', 'meaning': 'PATO:0001804'}, + "FLAKY": {'description': 'Formed or tending to form flakes or thin, crisp fragments', 'meaning': 'PATO:0001805'}, + "GROOVED": {'description': 'Being marked with one or more channels', 'meaning': 'PATO:0002255'}, + "BLISTERED": {'description': 'Having a local accumulation of fluid underneath the surface', 'meaning': 'PATO:0001928'}, + "HAIRY": {'description': 'Having hair or bristles', 'meaning': 'PATO:0000066', 'aliases': ['pilose', 'hairy']}, + "ABRASED": {'description': 'Having a portion of the surface scraped away', 'meaning': 'PATO:0001849'}, + "RUSTY": {'description': 'Being covered by iron oxide as a result of oxidation', 'meaning': 'PATO:0070059'}, + "FOVEATE": {'description': 'Being marked by the presence of small, shallow, regular depressions', 'meaning': 'PATO:0002296'}, +} + +class PATOBiologicalSexEnum(RichEnum): + """ + An organismal quality inhering in a bearer by virtue of the bearer's ability to undergo sexual reproduction. Derived from PATO biological sex (PATO:0000047) and phenotypic sex (PATO:0001894) child values. + """ + # Enum members + FEMALE = "FEMALE" + MALE = "MALE" + HERMAPHRODITE = "HERMAPHRODITE" + MALE_WITH_DSD = "MALE_WITH_DSD" + FEMALE_WITH_DSD = "FEMALE_WITH_DSD" + PSEUDOHERMAPHRODITE = "PSEUDOHERMAPHRODITE" + +# Set metadata after class creation to avoid it becoming an enum member +PATOBiologicalSexEnum._metadata = { + "FEMALE": {'description': 'A biological sex quality inhering in an individual or population that only produces gametes that can be fertilised by male gametes', 'meaning': 'PATO:0000383'}, + "MALE": {'description': 'A biological sex quality inhering in an individual or population whose sex organs contain only male gametes', 'meaning': 'PATO:0000384'}, + "HERMAPHRODITE": {'description': 'A biological sex quality inhering in an organism or population with both male and female sexual organs in one individual', 'meaning': 'PATO:0001340'}, + "MALE_WITH_DSD": {'description': 'A male of a non-hermaphroditic species with ambiguous or atypical congenital development of the reproductive system', 'meaning': 'PATO:0040049'}, + "FEMALE_WITH_DSD": {'description': 'A female of a non-hermaphroditic species with ambiguous or atypical congenital development of the reproductive system', 'meaning': 'PATO:0040056'}, + "PSEUDOHERMAPHRODITE": {'description': 'Having internal reproductive organs of one sex and external sexual characteristics of the other sex', 'meaning': 'PATO:0001827'}, +} + +class MaturityEnum(RichEnum): + """ + A quality of a single physical entity held by a bearer when it exhibits a state of growth, differentiation, or development. Derived from PATO maturity (PATO:0000261) child values. + """ + # Enum members + NEONATAL = "NEONATAL" + LARVAL = "LARVAL" + PREPUBESCENT = "PREPUBESCENT" + PUPAL = "PUPAL" + PREPUPAL = "PREPUPAL" + PUBESCENT = "PUBESCENT" + ADOLESCENT = "ADOLESCENT" + JUVENILE = "JUVENILE" + IMMATURE = "IMMATURE" + MATURE = "MATURE" + +# Set metadata after class creation to avoid it becoming an enum member +MaturityEnum._metadata = { + "NEONATAL": {'description': 'Being at the point or shortly after birth', 'meaning': 'PATO:0002206'}, + "LARVAL": {'description': 'Undergoing indirect development and metamorphosis', 'meaning': 'PATO:0001185'}, + "PREPUBESCENT": {'description': 'Being at the age immediately before puberty', 'meaning': 'PATO:0001186'}, + "PUPAL": {'description': 'Being in the chrysalis (cocoon) or post-larval stage', 'meaning': 'PATO:0001187'}, + "PREPUPAL": {'description': 'Being in an inactive stage between the larval and the pupal stages', 'meaning': 'PATO:0001188'}, + "PUBESCENT": {'description': 'Having arrived at the onset of puberty but not yet fully mature', 'meaning': 'PATO:0000455'}, + "ADOLESCENT": {'description': 'Being between the onset of puberty and maturity', 'meaning': 'PATO:0001189'}, + "JUVENILE": {'description': 'Not fully grown or developed', 'meaning': 'PATO:0001190'}, + "IMMATURE": {'description': 'Lacking complete growth, differentiation, or development', 'meaning': 'PATO:0001501'}, + "MATURE": {'description': 'Exhibiting complete growth, differentiation, or development', 'meaning': 'PATO:0001701', 'aliases': ['adult']}, +} + +class ViabilityEnum(RichEnum): + """ + An organismal quality inhering in a bearer by virtue of the bearer's disposition to survive and develop normally. Derived from PATO viability (PATO:0000169) child values. + """ + # Enum members + ALIVE = "ALIVE" + DEAD = "DEAD" + VIABLE = "VIABLE" + LETHAL = "LETHAL" + SEMI_VIABLE = "SEMI_VIABLE" + SEMI_LETHAL = "SEMI_LETHAL" + IMMORTAL = "IMMORTAL" + DECAYED = "DECAYED" + +# Set metadata after class creation to avoid it becoming an enum member +ViabilityEnum._metadata = { + "ALIVE": {'description': "The bearer's condition before death", 'meaning': 'PATO:0001421'}, + "DEAD": {'description': "The cessation of the bearer's life", 'meaning': 'PATO:0001422'}, + "VIABLE": {'description': "The bearer's ability to survive or the long term survival ability of a given population", 'meaning': 'PATO:0000719'}, + "LETHAL": {'description': "The bearer's long term survival inability", 'meaning': 'PATO:0000718'}, + "SEMI_VIABLE": {'description': "Some of the population members' ability to survive", 'meaning': 'PATO:0001770'}, + "SEMI_LETHAL": {'description': "Some of the population members' inability to survive to reproduce", 'meaning': 'PATO:0001768'}, + "IMMORTAL": {'description': 'Being capable of indefinite growth or division', 'meaning': 'PATO:0001991'}, + "DECAYED": {'description': 'Decomposition into component parts', 'meaning': 'PATO:0001432'}, +} + +class CellularityEnum(RichEnum): + """ + An organismal quality inhering in a bearer by virtue of the bearer's consisting of cells. Derived from PATO cellularity (PATO:0001992) child values. + """ + # Enum members + UNICELLULAR = "UNICELLULAR" + MULTICELLULAR = "MULTICELLULAR" + +# Set metadata after class creation to avoid it becoming an enum member +CellularityEnum._metadata = { + "UNICELLULAR": {'description': 'Consisting of exactly one cell', 'meaning': 'PATO:0001994'}, + "MULTICELLULAR": {'description': 'Consisting of more than one cell', 'meaning': 'PATO:0001993'}, +} + +class SpatialPatternEnum(RichEnum): + """ + A spatial quality inhering in a bearer by virtue of the bearer's exhibiting repetition of placement of its parts. Derived from PATO spatial pattern (PATO:0000060) child values. + """ + # Enum members + LOCALIZED = "LOCALIZED" + UNLOCALISED = "UNLOCALISED" + MULTI_LOCALISED = "MULTI_LOCALISED" + DISTRIBUTED = "DISTRIBUTED" + UNDISTRIBUTED = "UNDISTRIBUTED" + SPARSE = "SPARSE" + UNILATERAL = "UNILATERAL" + VERTICAL = "VERTICAL" + REGULAR_SPATIAL_PATTERN = "REGULAR_SPATIAL_PATTERN" + IRREGULAR_SPATIAL_PATTERN = "IRREGULAR_SPATIAL_PATTERN" + GENERALIZED = "GENERALIZED" + SEGMENTAL = "SEGMENTAL" + RANDOM_PATTERN = "RANDOM_PATTERN" + SYMMETRICAL = "SYMMETRICAL" + +# Set metadata after class creation to avoid it becoming an enum member +SpatialPatternEnum._metadata = { + "LOCALIZED": {'description': 'Being confined or restricted to a particular location', 'meaning': 'PATO:0000627'}, + "UNLOCALISED": {'description': 'Not being confined or restricted to a particular location', 'meaning': 'PATO:0000635', 'aliases': ['diffuse']}, + "MULTI_LOCALISED": {'description': 'Being confined or restricted to multiple locations', 'meaning': 'PATO:0001791'}, + "DISTRIBUTED": {'description': 'Being spread out or scattered about or divided up', 'meaning': 'PATO:0001566'}, + "UNDISTRIBUTED": {'description': 'Not being spread out or scattered about or divided up', 'meaning': 'PATO:0001567'}, + "SPARSE": {'description': 'Being scattered and spread irregularly at a distance from each other', 'meaning': 'PATO:0001609'}, + "UNILATERAL": {'description': 'Involving only one part or side', 'meaning': 'PATO:0000634'}, + "VERTICAL": {'description': 'Being situated at right angles to the horizon', 'meaning': 'PATO:0001854'}, + "REGULAR_SPATIAL_PATTERN": {'description': 'Having a repeatable or predictable placement', 'meaning': 'PATO:0000440'}, + "IRREGULAR_SPATIAL_PATTERN": {'description': 'Magnitude or relationships between repeated parts lack consistency', 'meaning': 'PATO:0000330'}, + "GENERALIZED": {'description': 'Affecting all regions without specificity of distribution', 'meaning': 'PATO:0002403'}, + "SEGMENTAL": {'description': 'Affecting a segment or segments', 'meaning': 'PATO:0002404'}, + "RANDOM_PATTERN": {'description': 'Characterised by an unidentifiable pattern', 'meaning': 'PATO:0002401'}, + "SYMMETRICAL": {'description': 'Correspondence in size, shape, and relative position of parts on opposite sides of a dividing line or about a center or axis', 'meaning': 'PATO:0000965'}, +} + class DNABaseEnum(RichEnum): """ Standard DNA nucleotide bases (canonical) @@ -18461,6 +18963,250 @@ class SampleProcessingOperationEnum(RichEnum): "BARCODE_READING": {'description': 'Operation to read barcode labels on samples or containers'}, } +class LabUnitOperationEnum(RichEnum): + """ + Composable sample-manipulation primitives ("unit operations") used to build sample-preparation protocols in a cloud laboratory. Modeled on the ECL Symbolic Lab Language sample-preparation unit operations (Transfer, Aliquot, Mix, Incubate, Filter, Centrifuge, Pellet, Resuspend, etc.). Complements the lower level LiquidHandlingOperationEnum and SampleProcessingOperationEnum in lab_automation/operations. + """ + # Enum members + DEFINE = "DEFINE" + LABEL_SAMPLE = "LABEL_SAMPLE" + LABEL_CONTAINER = "LABEL_CONTAINER" + TRANSFER = "TRANSFER" + ALIQUOT = "ALIQUOT" + CONSOLIDATE = "CONSOLIDATE" + DILUTE = "DILUTE" + SERIAL_DILUTE = "SERIAL_DILUTE" + FILL_TO_VOLUME = "FILL_TO_VOLUME" + RESUSPEND = "RESUSPEND" + PREPARE_STOCK_SOLUTION = "PREPARE_STOCK_SOLUTION" + ADJUST_PH = "ADJUST_PH" + MIX = "MIX" + INCUBATE = "INCUBATE" + WAIT = "WAIT" + CENTRIFUGE = "CENTRIFUGE" + PELLET = "PELLET" + FILTER = "FILTER" + MAGNETIC_BEAD_SEPARATION = "MAGNETIC_BEAD_SEPARATION" + MOVE_TO_MAGNET = "MOVE_TO_MAGNET" + REMOVE_FROM_MAGNET = "REMOVE_FROM_MAGNET" + COVER = "COVER" + UNCOVER = "UNCOVER" + DEGAS = "DEGAS" + DESICCATE = "DESICCATE" + EVAPORATE = "EVAPORATE" + LYOPHILIZE = "LYOPHILIZE" + FLASH_FREEZE = "FLASH_FREEZE" + AUTOCLAVE = "AUTOCLAVE" + GRIND = "GRIND" + MICROWAVE_DIGESTION = "MICROWAVE_DIGESTION" + +# Set metadata after class creation to avoid it becoming an enum member +LabUnitOperationEnum._metadata = { + "DEFINE": {'description': 'Declare a new sample, container, or model and assign it a label for later reference in the protocol'}, + "LABEL_SAMPLE": {'description': 'Assign a human-readable label to a sample so it can be referenced by later unit operations'}, + "LABEL_CONTAINER": {'description': 'Assign a human-readable label to a container so it can be referenced by later unit operations'}, + "TRANSFER": {'description': 'Move a specified amount of sample from one source to one or more destinations'}, + "ALIQUOT": {'description': 'Distribute a sample into multiple equal portions in separate containers'}, + "CONSOLIDATE": {'description': 'Combine multiple source samples into a single destination container'}, + "DILUTE": {'description': 'Reduce the concentration of a sample by adding diluent to a target volume or concentration'}, + "SERIAL_DILUTE": {'description': 'Create a stepwise series of dilutions by repeatedly transferring and diluting a sample'}, + "FILL_TO_VOLUME": {'description': 'Add solvent to a sample until a specified total volume is reached'}, + "RESUSPEND": {'description': 'Dissolve or re-disperse a solid or pellet in a specified volume of solvent'}, + "PREPARE_STOCK_SOLUTION": {'description': 'Prepare a solution of defined composition from components and solvent'}, + "ADJUST_PH": {'description': 'Add titrant to bring a sample to a target pH'}, + "MIX": {'description': 'Homogenize a sample by pipetting, inversion, vortexing, stirring, sonication, or related agitation', 'meaning': 'CHMO:0001685', 'aliases': ['mixing']}, + "INCUBATE": {'description': 'Hold a sample at controlled temperature (and optionally mixing) for a specified duration'}, + "WAIT": {'description': 'Pause the protocol for a specified duration without other manipulation'}, + "CENTRIFUGE": {'description': 'Apply centrifugal force to a sample to separate components by density', 'meaning': 'OBI:0302886', 'aliases': ['centrifugation']}, + "PELLET": {'description': 'Centrifuge to precipitate solids, optionally aspirate the supernatant, and optionally resuspend the pellet'}, + "FILTER": {'description': 'Pass a sample through a filter to separate particulates or to sterilize', 'meaning': 'CHMO:0001640', 'aliases': ['filtration']}, + "MAGNETIC_BEAD_SEPARATION": {'description': 'Isolate target analytes bound to magnetic beads using a magnetic field'}, + "MOVE_TO_MAGNET": {'description': 'Place a container on a magnetic rack to immobilize magnetic beads'}, + "REMOVE_FROM_MAGNET": {'description': 'Remove a container from a magnetic rack to release magnetic beads'}, + "COVER": {'description': 'Apply a lid, cap, or seal to a container'}, + "UNCOVER": {'description': 'Remove a lid, cap, or seal from a container'}, + "DEGAS": {'description': 'Remove dissolved gases from a liquid sample', 'meaning': 'CHMO:0002772', 'aliases': ['degassing']}, + "DESICCATE": {'description': 'Remove moisture from a sample using a desiccant or controlled-humidity chamber'}, + "EVAPORATE": {'description': 'Remove solvent from a sample by evaporation, optionally under reduced pressure', 'meaning': 'CHMO:0001574', 'aliases': ['evaporation']}, + "LYOPHILIZE": {'description': 'Freeze-dry a sample to remove solvent by sublimation under vacuum', 'meaning': 'CHMO:0001553', 'aliases': ['freeze drying']}, + "FLASH_FREEZE": {'description': 'Rapidly freeze a sample, typically in liquid nitrogen'}, + "AUTOCLAVE": {'description': 'Sterilize a sample or labware using pressurized saturated steam'}, + "GRIND": {'description': 'Mechanically reduce a solid sample to smaller particles or powder', 'meaning': 'CHMO:0001652', 'aliases': ['grinding']}, + "MICROWAVE_DIGESTION": {'description': 'Digest a sample in acid under microwave heating to bring analytes into solution'}, +} + +class CloudLabExperimentEnum(RichEnum): + """ + Higher-level experiment and assay functions offered as protocols by a cloud laboratory, modeled on the ECL Symbolic Lab Language experiment functions and grouped by category (synthesis, separations/chromatography, spectroscopy, mass spectrometry, bioassays, crystallography, property measurement, cellular). Cross-referenced to the assay value sets in bio/assays/ (OBIAssayEnum, BAOBioassayEnum) and to analytical_chemistry vocabularies; `meaning:` maps to OBI/CHMO classes where an equivalent assay or analytical method exists. + """ + # Enum members + DNA_SYNTHESIS = "DNA_SYNTHESIS" + RNA_SYNTHESIS = "RNA_SYNTHESIS" + PNA_SYNTHESIS = "PNA_SYNTHESIS" + PEPTIDE_SYNTHESIS = "PEPTIDE_SYNTHESIS" + PCR = "PCR" + BIOCONJUGATION = "BIOCONJUGATION" + HPLC = "HPLC" + FPLC = "FPLC" + FLASH_CHROMATOGRAPHY = "FLASH_CHROMATOGRAPHY" + GAS_CHROMATOGRAPHY = "GAS_CHROMATOGRAPHY" + ION_CHROMATOGRAPHY = "ION_CHROMATOGRAPHY" + SUPERCRITICAL_FLUID_CHROMATOGRAPHY = "SUPERCRITICAL_FLUID_CHROMATOGRAPHY" + SOLID_PHASE_EXTRACTION = "SOLID_PHASE_EXTRACTION" + LIQUID_LIQUID_EXTRACTION = "LIQUID_LIQUID_EXTRACTION" + CROSS_FLOW_FILTRATION = "CROSS_FLOW_FILTRATION" + DIALYSIS = "DIALYSIS" + AGAROSE_GEL_ELECTROPHORESIS = "AGAROSE_GEL_ELECTROPHORESIS" + PAGE = "PAGE" + CAPILLARY_GEL_ELECTROPHORESIS_SDS = "CAPILLARY_GEL_ELECTROPHORESIS_SDS" + CAPILLARY_ISOELECTRIC_FOCUSING = "CAPILLARY_ISOELECTRIC_FOCUSING" + WESTERN_BLOT = "WESTERN_BLOT" + NMR = "NMR" + NMR_2D = "NMR_2D" + ABSORBANCE_SPECTROSCOPY = "ABSORBANCE_SPECTROSCOPY" + ABSORBANCE_INTENSITY = "ABSORBANCE_INTENSITY" + ABSORBANCE_KINETICS = "ABSORBANCE_KINETICS" + FLUORESCENCE_SPECTROSCOPY = "FLUORESCENCE_SPECTROSCOPY" + FLUORESCENCE_INTENSITY = "FLUORESCENCE_INTENSITY" + FLUORESCENCE_KINETICS = "FLUORESCENCE_KINETICS" + FLUORESCENCE_POLARIZATION = "FLUORESCENCE_POLARIZATION" + LUMINESCENCE_SPECTROSCOPY = "LUMINESCENCE_SPECTROSCOPY" + LUMINESCENCE_INTENSITY = "LUMINESCENCE_INTENSITY" + LUMINESCENCE_KINETICS = "LUMINESCENCE_KINETICS" + IR_SPECTROSCOPY = "IR_SPECTROSCOPY" + RAMAN_SPECTROSCOPY = "RAMAN_SPECTROSCOPY" + CIRCULAR_DICHROISM = "CIRCULAR_DICHROISM" + DYNAMIC_LIGHT_SCATTERING = "DYNAMIC_LIGHT_SCATTERING" + NEPHELOMETRY = "NEPHELOMETRY" + THERMAL_SHIFT = "THERMAL_SHIFT" + UV_MELTING = "UV_MELTING" + MASS_SPECTROMETRY = "MASS_SPECTROMETRY" + LCMS = "LCMS" + GCMS = "GCMS" + ICPMS = "ICPMS" + ELISA = "ELISA" + CAPILLARY_ELISA = "CAPILLARY_ELISA" + ALPHASCREEN = "ALPHASCREEN" + BIOLAYER_INTERFEROMETRY = "BIOLAYER_INTERFEROMETRY" + QPCR = "QPCR" + DNA_SEQUENCING = "DNA_SEQUENCING" + TOTAL_PROTEIN_QUANTIFICATION = "TOTAL_PROTEIN_QUANTIFICATION" + TOTAL_PROTEIN_DETECTION = "TOTAL_PROTEIN_DETECTION" + DIFFERENTIAL_SCANNING_CALORIMETRY = "DIFFERENTIAL_SCANNING_CALORIMETRY" + GROW_CRYSTAL = "GROW_CRYSTAL" + POWDER_XRD = "POWDER_XRD" + MEASURE_PH = "MEASURE_PH" + MEASURE_CONDUCTIVITY = "MEASURE_CONDUCTIVITY" + MEASURE_DENSITY = "MEASURE_DENSITY" + MEASURE_VISCOSITY = "MEASURE_VISCOSITY" + MEASURE_OSMOLALITY = "MEASURE_OSMOLALITY" + MEASURE_REFRACTIVE_INDEX = "MEASURE_REFRACTIVE_INDEX" + MEASURE_SURFACE_TENSION = "MEASURE_SURFACE_TENSION" + MEASURE_CONTACT_ANGLE = "MEASURE_CONTACT_ANGLE" + MEASURE_DISSOLVED_OXYGEN = "MEASURE_DISSOLVED_OXYGEN" + MEASURE_MELTING_POINT = "MEASURE_MELTING_POINT" + MEASURE_WEIGHT = "MEASURE_WEIGHT" + MEASURE_VOLUME = "MEASURE_VOLUME" + MEASURE_COUNT = "MEASURE_COUNT" + COUNT_LIQUID_PARTICLES = "COUNT_LIQUID_PARTICLES" + COULTER_COUNT = "COULTER_COUNT" + CYCLIC_VOLTAMMETRY = "CYCLIC_VOLTAMMETRY" + KARL_FISCHER_TITRATION = "KARL_FISCHER_TITRATION" + DISSOLUTION = "DISSOLUTION" + DYNAMIC_FOAM_ANALYSIS = "DYNAMIC_FOAM_ANALYSIS" + VISUAL_INSPECTION = "VISUAL_INSPECTION" + IMAGE_SAMPLE = "IMAGE_SAMPLE" + IMAGE_CELLS = "IMAGE_CELLS" + IMAGE_COLONIES = "IMAGE_COLONIES" + QUANTIFY_COLONIES = "QUANTIFY_COLONIES" + LYSE_CELLS = "LYSE_CELLS" + FREEZE_CELLS = "FREEZE_CELLS" + +# Set metadata after class creation to avoid it becoming an enum member +CloudLabExperimentEnum._metadata = { + "DNA_SYNTHESIS": {'description': 'Solid-phase chemical synthesis of DNA oligonucleotides'}, + "RNA_SYNTHESIS": {'description': 'Solid-phase chemical synthesis of RNA oligonucleotides'}, + "PNA_SYNTHESIS": {'description': 'Solid-phase chemical synthesis of peptide nucleic acid oligomers'}, + "PEPTIDE_SYNTHESIS": {'description': 'Solid-phase chemical synthesis of peptides'}, + "PCR": {'description': 'Polymerase chain reaction amplification of nucleic acids', 'meaning': 'OBI:0000415', 'aliases': ['polymerase chain reaction']}, + "BIOCONJUGATION": {'description': 'Covalent coupling of biomolecules or labels to a target molecule'}, + "HPLC": {'description': 'High-performance liquid chromatography separation', 'meaning': 'CHMO:0001009', 'aliases': ['high-performance liquid chromatography']}, + "FPLC": {'description': 'Fast protein liquid chromatography separation'}, + "FLASH_CHROMATOGRAPHY": {'description': 'Medium-pressure flash column chromatography separation', 'meaning': 'CHMO:0002582'}, + "GAS_CHROMATOGRAPHY": {'description': 'Gas chromatography separation of volatile analytes', 'meaning': 'CHMO:0001002'}, + "ION_CHROMATOGRAPHY": {'description': 'Chromatographic separation of ionic species', 'meaning': 'CHMO:0002874'}, + "SUPERCRITICAL_FLUID_CHROMATOGRAPHY": {'description': 'Chromatographic separation using a supercritical fluid mobile phase'}, + "SOLID_PHASE_EXTRACTION": {'description': 'Sample cleanup or enrichment by selective retention on a solid sorbent'}, + "LIQUID_LIQUID_EXTRACTION": {'description': 'Separation of analytes between two immiscible liquid phases', 'meaning': 'CHMO:0001600', 'aliases': ['liquid–liquid extraction']}, + "CROSS_FLOW_FILTRATION": {'description': 'Tangential-flow filtration for concentration or buffer exchange'}, + "DIALYSIS": {'description': 'Separation of molecules by size across a semipermeable membrane', 'meaning': 'CHMO:0001522'}, + "AGAROSE_GEL_ELECTROPHORESIS": {'description': 'Size-based separation of nucleic acids in an agarose gel', 'meaning': 'CHMO:0001022'}, + "PAGE": {'description': 'Polyacrylamide gel electrophoresis separation of biomolecules', 'meaning': 'CHMO:0001023', 'aliases': ['polyacrylamide gel electrophoresis']}, + "CAPILLARY_GEL_ELECTROPHORESIS_SDS": {'description': 'SDS capillary gel electrophoresis sizing of proteins'}, + "CAPILLARY_ISOELECTRIC_FOCUSING": {'description': 'Separation of proteins by isoelectric point in a capillary', 'meaning': 'CHMO:0001033'}, + "WESTERN_BLOT": {'description': 'Immunodetection of proteins separated by electrophoresis', 'meaning': 'OBI:0000854', 'aliases': ['western blot assay']}, + "NMR": {'description': 'One-dimensional nuclear magnetic resonance spectroscopy', 'meaning': 'CHMO:0000591', 'aliases': ['nuclear magnetic resonance spectroscopy']}, + "NMR_2D": {'description': 'Two-dimensional nuclear magnetic resonance spectroscopy', 'meaning': 'CHMO:0000598', 'aliases': ['two-dimensional nuclear magnetic resonance spectroscopy']}, + "ABSORBANCE_SPECTROSCOPY": {'description': 'Measurement of absorbance across a wavelength range'}, + "ABSORBANCE_INTENSITY": {'description': 'Measurement of absorbance at one or more discrete wavelengths'}, + "ABSORBANCE_KINETICS": {'description': 'Time-resolved measurement of absorbance'}, + "FLUORESCENCE_SPECTROSCOPY": {'description': 'Measurement of fluorescence emission across a wavelength range', 'meaning': 'CHMO:0000287'}, + "FLUORESCENCE_INTENSITY": {'description': 'Measurement of fluorescence intensity at discrete wavelengths'}, + "FLUORESCENCE_KINETICS": {'description': 'Time-resolved measurement of fluorescence intensity'}, + "FLUORESCENCE_POLARIZATION": {'description': 'Measurement of fluorescence polarization/anisotropy'}, + "LUMINESCENCE_SPECTROSCOPY": {'description': 'Measurement of luminescence emission across a wavelength range', 'meaning': 'CHMO:0002415'}, + "LUMINESCENCE_INTENSITY": {'description': 'Measurement of luminescence intensity at discrete wavelengths'}, + "LUMINESCENCE_KINETICS": {'description': 'Time-resolved measurement of luminescence intensity'}, + "IR_SPECTROSCOPY": {'description': 'Infrared absorption spectroscopy', 'meaning': 'CHMO:0000630', 'aliases': ['infrared absorption spectroscopy']}, + "RAMAN_SPECTROSCOPY": {'description': 'Raman scattering spectroscopy', 'meaning': 'CHMO:0000656'}, + "CIRCULAR_DICHROISM": {'description': 'Measurement of differential absorption of circularly polarized light'}, + "DYNAMIC_LIGHT_SCATTERING": {'description': 'Measurement of particle size distribution from scattered-light fluctuations', 'meaning': 'CHMO:0000167'}, + "NEPHELOMETRY": {'description': 'Measurement of turbidity by scattered light'}, + "THERMAL_SHIFT": {'description': 'Measurement of protein thermal stability via a fluorescent thermal shift assay'}, + "UV_MELTING": {'description': 'Measurement of nucleic acid or protein melting curves by UV absorbance'}, + "MASS_SPECTROMETRY": {'description': 'Determination of mass-to-charge ratios of ionized analytes', 'meaning': 'CHMO:0000470'}, + "LCMS": {'description': 'Liquid chromatography coupled to mass spectrometry', 'meaning': 'CHMO:0000524', 'aliases': ['liquid chromatography-mass spectrometry']}, + "GCMS": {'description': 'Gas chromatography coupled to mass spectrometry', 'meaning': 'CHMO:0000497', 'aliases': ['gas chromatography-mass spectrometry']}, + "ICPMS": {'description': 'Inductively coupled plasma mass spectrometry for elemental analysis', 'meaning': 'CHMO:0000538', 'aliases': ['inductively coupled plasma mass spectrometry']}, + "ELISA": {'description': 'Enzyme-linked immunosorbent assay', 'meaning': 'OBI:0000661', 'aliases': ['enzyme-linked immunosorbent assay']}, + "CAPILLARY_ELISA": {'description': 'Automated capillary-based enzyme-linked immunosorbent assay'}, + "ALPHASCREEN": {'description': 'Bead-based amplified luminescent proximity homogeneous assay'}, + "BIOLAYER_INTERFEROMETRY": {'description': 'Label-free measurement of biomolecular binding kinetics by interferometry', 'meaning': 'OBI:0002107', 'aliases': ['bio-layer interferometry assay']}, + "QPCR": {'description': 'Quantitative real-time polymerase chain reaction', 'meaning': 'OBI:0000893', 'aliases': ['real time polymerase chain reaction assay']}, + "DNA_SEQUENCING": {'description': 'Determination of nucleotide sequence of DNA (Sanger/capillary)', 'meaning': 'OBI:0000626', 'aliases': ['DNA sequencing assay']}, + "TOTAL_PROTEIN_QUANTIFICATION": {'description': 'Colorimetric or fluorometric quantification of total protein'}, + "TOTAL_PROTEIN_DETECTION": {'description': 'Capillary-based detection and sizing of total protein'}, + "DIFFERENTIAL_SCANNING_CALORIMETRY": {'description': 'Measurement of heat flow associated with thermal transitions', 'meaning': 'CHMO:0000684'}, + "GROW_CRYSTAL": {'description': 'Crystallization of a compound or macromolecule for structural analysis', 'meaning': 'CHMO:0001477', 'aliases': ['crystallisation']}, + "POWDER_XRD": {'description': 'Powder X-ray diffraction analysis of crystalline solids', 'meaning': 'CHMO:0000158', 'aliases': ['powder X-ray diffraction']}, + "MEASURE_PH": {'description': 'Measurement of sample pH'}, + "MEASURE_CONDUCTIVITY": {'description': 'Measurement of electrical conductivity of a solution'}, + "MEASURE_DENSITY": {'description': 'Measurement of sample density'}, + "MEASURE_VISCOSITY": {'description': 'Measurement of sample viscosity'}, + "MEASURE_OSMOLALITY": {'description': 'Measurement of solute concentration as osmolality'}, + "MEASURE_REFRACTIVE_INDEX": {'description': 'Measurement of the refractive index of a sample'}, + "MEASURE_SURFACE_TENSION": {'description': 'Measurement of liquid surface tension'}, + "MEASURE_CONTACT_ANGLE": {'description': 'Measurement of the contact angle of a liquid on a surface'}, + "MEASURE_DISSOLVED_OXYGEN": {'description': 'Measurement of dissolved oxygen concentration in a liquid'}, + "MEASURE_MELTING_POINT": {'description': 'Determination of the melting point of a solid'}, + "MEASURE_WEIGHT": {'description': 'Gravimetric measurement of sample mass'}, + "MEASURE_VOLUME": {'description': 'Measurement of sample volume'}, + "MEASURE_COUNT": {'description': 'Counting of discrete objects (e.g. particles, colonies, cells)'}, + "COUNT_LIQUID_PARTICLES": {'description': 'Counting and sizing of particles suspended in a liquid'}, + "COULTER_COUNT": {'description': 'Counting and sizing of particles or cells by electrical impedance'}, + "CYCLIC_VOLTAMMETRY": {'description': 'Electrochemical measurement of current versus swept potential', 'meaning': 'CHMO:0000025'}, + "KARL_FISCHER_TITRATION": {'description': 'Titrimetric determination of water content', 'meaning': 'CHMO:0002535', 'aliases': ['Karl–Fischer titration']}, + "DISSOLUTION": {'description': 'Measurement of the rate and extent of dissolution of a solid'}, + "DYNAMIC_FOAM_ANALYSIS": {'description': 'Measurement of foam formation and decay'}, + "VISUAL_INSPECTION": {'description': 'Operator or imaging-based visual assessment of a sample'}, + "IMAGE_SAMPLE": {'description': 'Acquisition of a photographic image of a sample'}, + "IMAGE_CELLS": {'description': 'Microscopic imaging of cells'}, + "IMAGE_COLONIES": {'description': 'Imaging of microbial colonies on solid media'}, + "QUANTIFY_COLONIES": {'description': 'Counting and quantification of microbial colonies'}, + "LYSE_CELLS": {'description': 'Disruption of cells to release intracellular contents'}, + "FREEZE_CELLS": {'description': 'Controlled-rate freezing of cells for storage'}, +} + class MicroplateFormatEnum(RichEnum): """ Standard microplate well configurations following ANSI/SLAS standards diff --git a/src/valuesets/enums/__init__.py b/src/valuesets/enums/__init__.py index 2f53d17f..03bb6b67 100644 --- a/src/valuesets/enums/__init__.py +++ b/src/valuesets/enums/__init__.py @@ -43,11 +43,13 @@ from .bio.insdc_geographic_locations import InsdcGeographicLocationEnum from .bio.insdc_missing_values import InsdcMissingValueEnum from .bio.lipid_categories import RelativeTimeEnum, PresenceEnum, LipidCategory +from .bio.pato import ColorEnum, ShapeEnum, RelativeChangeEnum, IntensityEnum, TextureEnum, PATOBiologicalSexEnum, MaturityEnum, ViabilityEnum, CellularityEnum, SpatialPatternEnum from .bio.plant_biology import PlantSexualSystem from .bio.plant_developmental_stages import PlantDevelopmentalStage from .bio.plant_experimental_conditions import PlantStudyConditionEnum, SeasonalEnvironmentExposureEnum, EcologicalEnvironmentExposureEnum, PlantGrowthMediumExposureEnum from .bio.plant_sex import PlantSexEnum from .bio.protein_evidence import ProteinEvidenceForExistence, RefSeqStatusType +from .bio.protein_structure_features import SecondaryStructureType, LocalStructuralFeature from .bio.proteomics_standards import RelativeTimeEnum, PresenceEnum, PeakAnnotationSeriesLabel, PeptideIonSeries, MassErrorUnit from .bio.psi_mi import InteractionDetectionMethod, InteractionType, ExperimentalRole, BiologicalRole, ParticipantIdentificationMethod, FeatureType, InteractorType, ConfidenceScore, ExperimentalPreparation from .bio.relationship_to_oxygen import RelToOxygenEnum @@ -181,6 +183,7 @@ # Lab_Automation domain from .lab_automation.autonomous_labs import AutonomousLabComponentType, ExperimentalDesignMethodType, LabAutomationWorkflowType +from .lab_automation.cloud_lab import RelativeTimeEnum, PresenceEnum, LabUnitOperationEnum, CloudLabExperimentEnum from .lab_automation.devices import LaboratoryDeviceTypeEnum, RoboticArmTypeEnum from .lab_automation.labware import MicroplateFormatEnum, ContainerTypeEnum, PlateMaterialEnum, PlateCoatingEnum from .lab_automation.operations import LiquidHandlingOperationEnum, SampleProcessingOperationEnum @@ -326,13 +329,16 @@ "CellCycleRegulator", "CellPolarity", "CellProliferationState", + "CellularityEnum", "ChipFabricationNodeType", "ChiralityEnum", "ChromatographyType", "ChurnClassificationEnum", "CitationStyle", "ClinicalBehavioralAssayEnum", + "CloudLabExperimentEnum", "CodonEnum", + "ColorEnum", "ColorSpaceEnum", "CommonMineral", "CommonOrganismTaxaEnum", @@ -541,6 +547,7 @@ "InspectionTypeEnum", "IntegrationFeatureEnum", "IntegrationSystemEnum", + "IntensityEnum", "IntentClassificationEnum", "InteractionDetectionMethod", "InteractionType", @@ -550,6 +557,7 @@ "JobLevelEnum", "KaryotypicSexEnum", "LabAutomationWorkflowType", + "LabUnitOperationEnum", "LaboratoryDeviceTypeEnum", "LabwareStandardEnum", "LanguageCodeISO6391enum", @@ -563,6 +571,7 @@ "LicensingStageEnum", "LipidCategory", "LiquidHandlingOperationEnum", + "LocalStructuralFeature", "LogisticsOperationEnum", "MLDataType", "MLFieldRole", @@ -590,6 +599,7 @@ "MaterialClassEnum", "MaterialPropertyPredictionType", "MaterialsSimulationType", + "MaturityEnum", "MechanicalBehaviorEnum", "MechanicalTestingMethodEnum", "MedicalSpecialtyEnum", @@ -665,6 +675,7 @@ "OutcomeTypeEnum", "OxidationStateEnum", "OxygenationStrategyEnum", + "PATOBiologicalSexEnum", "PCROperationTypeEnum", "PCRPlateTypeEnum", "PVCellType", @@ -753,6 +764,7 @@ "RegulatoryConstraint", "RegulatoryFrameworkEnum", "RelToOxygenEnum", + "RelativeChangeEnum", "RelativeDirection", "RelativeTimeEnum", "RemoteSensingDataType", @@ -775,6 +787,7 @@ "SchedulerTypeEnum", "Season", "SeasonalEnvironmentExposureEnum", + "SecondaryStructureType", "SectionLocationEnum", "SemiconductorMaterialType", "SensorWhileDrillingFeature", @@ -792,6 +805,7 @@ "SequencingChemistry", "SequencingPlatform", "SeverityLevelEnum", + "ShapeEnum", "SimpleSpatialDirection", "SkinToneEnum", "SmartManufacturingTechnologyType", @@ -801,6 +815,7 @@ "SourceMaterialTypeEnum", "SourcingStrategyEnum", "SpamClassificationEnum", + "SpatialPatternEnum", "SpatialRelationship", "SpatialResolutionEnum", "SpecimenCollectionMethodEnum", @@ -838,6 +853,7 @@ "TemperatureUnitEnum", "TemporalAggregationEnum", "TextCharset", + "TextureEnum", "TherapeuticActionabilityEnum", "ThermalAnalysisMethodEnum", "ThermalConductivityEnum", @@ -877,6 +893,7 @@ "ValueSetStewardEnum", "VectorTypeEnum", "VendorCategoryEnum", + "ViabilityEnum", "VideoFormatEnum", "ViralGenomeTypeEnum", "VisitProvenanceEnum", diff --git a/src/valuesets/enums/bio/pato.py b/src/valuesets/enums/bio/pato.py new file mode 100644 index 00000000..90dda2c9 --- /dev/null +++ b/src/valuesets/enums/bio/pato.py @@ -0,0 +1,336 @@ +""" +PATO Phenotypic Quality Value Sets + +Value sets derived from the Phenotype And Trait Ontology (PATO). Each enum corresponds to a leaf attribute in the PATO hierarchy, with child quality values as permissible values. + +Generated from: bio/pato.yaml +""" + +from __future__ import annotations + +from valuesets.generators.rich_enum import RichEnum + +class ColorEnum(RichEnum): + """ + A composite chromatic quality composed of hue, saturation and intensity parts. Derived from PATO color (PATO:0000014) child values. + """ + # Enum members + BLACK = "BLACK" + WHITE = "WHITE" + GREY = "GREY" + RED = "RED" + ORANGE = "ORANGE" + YELLOW = "YELLOW" + GREEN = "GREEN" + CYAN = "CYAN" + BLUE = "BLUE" + VIOLET = "VIOLET" + PURPLE = "PURPLE" + MAGENTA = "MAGENTA" + BROWN = "BROWN" + MAROON = "MAROON" + ROSY = "ROSY" + VERMILION = "VERMILION" + COLORED = "COLORED" + +# Set metadata after class creation +ColorEnum._metadata = { + "BLACK": {'description': 'A color that lacks any hues as parts', 'meaning': 'PATO:0000317'}, + "WHITE": {'description': 'An achromatic color of maximum brightness', 'meaning': 'PATO:0000323'}, + "GREY": {'description': 'A color between white and black colors', 'meaning': 'PATO:0000950', 'aliases': ['gray']}, + "RED": {'description': 'A color hue with high wavelength of the long-wave end of the visible spectrum (630-750 nm)', 'meaning': 'PATO:0000322'}, + "ORANGE": {'description': 'A color hue with high-medium wavelength lying between red and yellow (585-620 nm)', 'meaning': 'PATO:0000953'}, + "YELLOW": {'description': 'A color hue with medium wavelength lying between orange and green (570-590 nm)', 'meaning': 'PATO:0000324'}, + "GREEN": {'description': 'A color hue with medium-low wavelength lying between yellow and blue (490-570 nm)', 'meaning': 'PATO:0000320'}, + "CYAN": {'description': 'A color consisting of green and blue hue', 'meaning': 'PATO:0000319'}, + "BLUE": {'description': 'A color hue with low wavelength lying between green and indigo (420-490 nm)', 'meaning': 'PATO:0000318'}, + "VIOLET": {'description': 'A color hue with very low wavelength lying between reddish blue and bluish purple (380-420 nm)', 'meaning': 'PATO:0001424'}, + "PURPLE": {'description': 'A color that falls about midway between red and blue in hue', 'meaning': 'PATO:0000951'}, + "MAGENTA": {'description': 'A color consisting of red and blue hues', 'meaning': 'PATO:0000321'}, + "BROWN": {'description': 'A color consisting of dark orange, red, of very low intensity', 'meaning': 'PATO:0000952'}, + "MAROON": {'description': 'A color consisting of purple and brown hue', 'meaning': 'PATO:0001426'}, + "ROSY": {'description': 'A color hue consisting of red and yellow hue with high brightness', 'meaning': 'PATO:0001425', 'aliases': ['pink']}, + "VERMILION": {'description': 'A color consisting of red and orange hue with a slight amount of gray', 'meaning': 'PATO:0001302'}, + "COLORED": {'description': 'A color quality inhering in a bearer by virtue of having color', 'meaning': 'PATO:0000336'}, +} + +class ShapeEnum(RichEnum): + """ + A morphological quality inhering in a bearer by virtue of the bearer's ratios of distances between its features. Derived from PATO shape (PATO:0000052) child values. + """ + # Enum members + CIRCULAR = "CIRCULAR" + ELLIPTIC = "ELLIPTIC" + SPHEROID = "SPHEROID" + CONICAL = "CONICAL" + COLUMNAR = "COLUMNAR" + TUBULAR = "TUBULAR" + FLAT = "FLAT" + ELONGATED = "ELONGATED" + LINEAR = "LINEAR" + FILAMENTOUS = "FILAMENTOUS" + SLENDER = "SLENDER" + BROAD = "BROAD" + ROBUST = "ROBUST" + STRAIGHT = "STRAIGHT" + BENT = "BENT" + ANGULAR = "ANGULAR" + LOBED = "LOBED" + TRUNCATED = "TRUNCATED" + PYRAMIDAL = "PYRAMIDAL" + STAR_SHAPED = "STAR_SHAPED" + SIGMOID = "SIGMOID" + UNDULATE = "UNDULATE" + PINNATE = "PINNATE" + PLEOMORPHIC = "PLEOMORPHIC" + COILING = "COILING" + +# Set metadata after class creation +ShapeEnum._metadata = { + "CIRCULAR": {'description': 'A shape where every part of the surface or circumference is equidistant from the center', 'meaning': 'PATO:0000411'}, + "ELLIPTIC": {'description': 'Oval with two axes of symmetry, as produced by a conical section', 'meaning': 'PATO:0000947', 'aliases': ['oval']}, + "SPHEROID": {'description': 'A convex 3-D shape obtained by rotating an ellipse about one of its principal axes', 'meaning': 'PATO:0001865'}, + "CONICAL": {'description': 'A convex 3-D shape resembling a cone with a round cross section that tapers', 'meaning': 'PATO:0002021'}, + "COLUMNAR": {'description': 'Elongated and cylindrical in shape', 'meaning': 'PATO:0002063', 'aliases': ['cylindrical']}, + "TUBULAR": {'description': 'A cylindrical shape that is hollow', 'meaning': 'PATO:0002299'}, + "FLAT": {'description': 'Having a horizontal surface without a slope, tilt, or curvature', 'meaning': 'PATO:0000407'}, + "ELONGATED": {'description': 'Length being notably higher relative to width', 'meaning': 'PATO:0001154'}, + "LINEAR": {'description': 'Narrow, with approximately parallel sides', 'meaning': 'PATO:0001199'}, + "FILAMENTOUS": {'description': 'Having thin filaments or thread-like structures', 'meaning': 'PATO:0001360'}, + "SLENDER": {'description': 'Being small or narrow in circumference or width in proportion to length or height', 'meaning': 'PATO:0002212'}, + "BROAD": {'description': 'Width being notably higher relative to comparable entities', 'meaning': 'PATO:0002359'}, + "ROBUST": {'description': 'Being strong, thick, or stout in form', 'meaning': 'PATO:0002310'}, + "STRAIGHT": {'description': 'Free of curves, bends, or angles', 'meaning': 'PATO:0002180'}, + "BENT": {'description': 'Having one or more fixed curves, folds, or angles', 'meaning': 'PATO:0000617'}, + "ANGULAR": {'description': 'Having at least one angle formed by two planes', 'meaning': 'PATO:0001977'}, + "LOBED": {'description': 'Being partly divided into a determinate number of segments', 'meaning': 'PATO:0001979'}, + "TRUNCATED": {'description': 'Terminating abruptly by a transverse line or plane', 'meaning': 'PATO:0000936'}, + "PYRAMIDAL": {'description': 'Having triangular faces meeting at a common point', 'meaning': 'PATO:0002336'}, + "STAR_SHAPED": {'description': 'Being arranged like a star with radiating points', 'meaning': 'PATO:0002065', 'aliases': ['stellate']}, + "SIGMOID": {'description': 'Consisting of two curves in opposite directions like the letter S', 'meaning': 'PATO:0001878'}, + "UNDULATE": {'description': 'Having a sinuate margin that moves smoothly and regularly up and down', 'meaning': 'PATO:0000967', 'aliases': ['wavy']}, + "PINNATE": {'description': 'Having leaflets or branches on each side of a common axis', 'meaning': 'PATO:0000410'}, + "PLEOMORPHIC": {'description': 'Having the ability to take on multiple forms', 'meaning': 'PATO:0001356'}, + "COILING": {'description': 'Being wound in a spiral or helix', 'meaning': 'PATO:0001794', 'aliases': ['coiled', 'helical']}, +} + +class RelativeChangeEnum(RichEnum): + """ + Direction of change of any quality relative to normal or baseline. This is PATO's general-purpose deviation-from-normal axis (PATO:0000069) that crosscuts all specific quality attributes (size, rate, amount, etc.). + """ + # Enum members + NORMAL = "NORMAL" + ABNORMAL = "ABNORMAL" + INCREASED = "INCREASED" + DECREASED = "DECREASED" + INCREASED_MAGNITUDE = "INCREASED_MAGNITUDE" + DECREASED_MAGNITUDE = "DECREASED_MAGNITUDE" + +# Set metadata after class creation +RelativeChangeEnum._metadata = { + "NORMAL": {'description': 'Exhibiting no deviation from normal or average', 'meaning': 'PATO:0000461'}, + "ABNORMAL": {'description': 'Deviating from normal or average', 'meaning': 'PATO:0000460'}, + "INCREASED": {'description': 'A value that is increased compared to normal or average', 'meaning': 'PATO:0002300', 'aliases': ['elevated', 'high']}, + "DECREASED": {'description': 'A value that is decreased compared to normal or average', 'meaning': 'PATO:0002301', 'aliases': ['reduced', 'low']}, + "INCREASED_MAGNITUDE": {'description': 'An increased magnitude of a quality', 'meaning': 'PATO:0002017'}, + "DECREASED_MAGNITUDE": {'description': 'A decreased magnitude of a quality', 'meaning': 'PATO:0002018'}, +} + +class IntensityEnum(RichEnum): + """ + A quality inhering in a bearer by virtue of the bearer's possessing or displaying a distinctive feature in type or degree or effect or force. Derived from PATO intensity (PATO:0000049) child values. + """ + # Enum members + BORDERLINE = "BORDERLINE" + MILD = "MILD" + MODERATE = "MODERATE" + SEVERE = "SEVERE" + PROFOUND = "PROFOUND" + INCREASED_INTENSITY = "INCREASED_INTENSITY" + DECREASED_INTENSITY = "DECREASED_INTENSITY" + REMITTENT = "REMITTENT" + +# Set metadata after class creation +IntensityEnum._metadata = { + "BORDERLINE": {'description': 'Borderline in effect or force compared to baseline or normal', 'meaning': 'PATO:0002628'}, + "MILD": {'description': 'Less than moderate in type or degree or effect or force', 'meaning': 'PATO:0000394'}, + "MODERATE": {'description': 'Less than extreme in type or degree or effect or force', 'meaning': 'PATO:0000395'}, + "SEVERE": {'description': 'Extremely bad or unpleasant in type or degree or effect or force', 'meaning': 'PATO:0000396'}, + "PROFOUND": {'description': 'Very severe in intensity', 'meaning': 'PATO:0002629'}, + "INCREASED_INTENSITY": {'description': 'Intensity which is relatively high', 'meaning': 'PATO:0001782'}, + "DECREASED_INTENSITY": {'description': 'Intensity which is relatively low', 'meaning': 'PATO:0001783'}, + "REMITTENT": {'description': 'Characterised by temporary abatement in severity', 'meaning': 'PATO:0001841'}, +} + +class TextureEnum(RichEnum): + """ + A morphological quality inhering in a bearer by virtue of the bearer's surface characteristics. Derived from PATO texture (PATO:0000150) child values. + """ + # Enum members + SMOOTH = "SMOOTH" + ROUGH = "ROUGH" + SCALY = "SCALY" + FLAKY = "FLAKY" + GROOVED = "GROOVED" + BLISTERED = "BLISTERED" + HAIRY = "HAIRY" + ABRASED = "ABRASED" + RUSTY = "RUSTY" + FOVEATE = "FOVEATE" + +# Set metadata after class creation +TextureEnum._metadata = { + "SMOOTH": {'description': 'Having a surface free of roughness or irregularities', 'meaning': 'PATO:0000701'}, + "ROUGH": {'description': 'Having an irregular surface', 'meaning': 'PATO:0000700'}, + "SCALY": {'description': 'Being covered or partially covered with scales', 'meaning': 'PATO:0001804'}, + "FLAKY": {'description': 'Formed or tending to form flakes or thin, crisp fragments', 'meaning': 'PATO:0001805'}, + "GROOVED": {'description': 'Being marked with one or more channels', 'meaning': 'PATO:0002255'}, + "BLISTERED": {'description': 'Having a local accumulation of fluid underneath the surface', 'meaning': 'PATO:0001928'}, + "HAIRY": {'description': 'Having hair or bristles', 'meaning': 'PATO:0000066', 'aliases': ['pilose', 'hairy']}, + "ABRASED": {'description': 'Having a portion of the surface scraped away', 'meaning': 'PATO:0001849'}, + "RUSTY": {'description': 'Being covered by iron oxide as a result of oxidation', 'meaning': 'PATO:0070059'}, + "FOVEATE": {'description': 'Being marked by the presence of small, shallow, regular depressions', 'meaning': 'PATO:0002296'}, +} + +class PATOBiologicalSexEnum(RichEnum): + """ + An organismal quality inhering in a bearer by virtue of the bearer's ability to undergo sexual reproduction. Derived from PATO biological sex (PATO:0000047) and phenotypic sex (PATO:0001894) child values. + """ + # Enum members + FEMALE = "FEMALE" + MALE = "MALE" + HERMAPHRODITE = "HERMAPHRODITE" + MALE_WITH_DSD = "MALE_WITH_DSD" + FEMALE_WITH_DSD = "FEMALE_WITH_DSD" + PSEUDOHERMAPHRODITE = "PSEUDOHERMAPHRODITE" + +# Set metadata after class creation +PATOBiologicalSexEnum._metadata = { + "FEMALE": {'description': 'A biological sex quality inhering in an individual or population that only produces gametes that can be fertilised by male gametes', 'meaning': 'PATO:0000383'}, + "MALE": {'description': 'A biological sex quality inhering in an individual or population whose sex organs contain only male gametes', 'meaning': 'PATO:0000384'}, + "HERMAPHRODITE": {'description': 'A biological sex quality inhering in an organism or population with both male and female sexual organs in one individual', 'meaning': 'PATO:0001340'}, + "MALE_WITH_DSD": {'description': 'A male of a non-hermaphroditic species with ambiguous or atypical congenital development of the reproductive system', 'meaning': 'PATO:0040049'}, + "FEMALE_WITH_DSD": {'description': 'A female of a non-hermaphroditic species with ambiguous or atypical congenital development of the reproductive system', 'meaning': 'PATO:0040056'}, + "PSEUDOHERMAPHRODITE": {'description': 'Having internal reproductive organs of one sex and external sexual characteristics of the other sex', 'meaning': 'PATO:0001827'}, +} + +class MaturityEnum(RichEnum): + """ + A quality of a single physical entity held by a bearer when it exhibits a state of growth, differentiation, or development. Derived from PATO maturity (PATO:0000261) child values. + """ + # Enum members + NEONATAL = "NEONATAL" + LARVAL = "LARVAL" + PREPUBESCENT = "PREPUBESCENT" + PUPAL = "PUPAL" + PREPUPAL = "PREPUPAL" + PUBESCENT = "PUBESCENT" + ADOLESCENT = "ADOLESCENT" + JUVENILE = "JUVENILE" + IMMATURE = "IMMATURE" + MATURE = "MATURE" + +# Set metadata after class creation +MaturityEnum._metadata = { + "NEONATAL": {'description': 'Being at the point or shortly after birth', 'meaning': 'PATO:0002206'}, + "LARVAL": {'description': 'Undergoing indirect development and metamorphosis', 'meaning': 'PATO:0001185'}, + "PREPUBESCENT": {'description': 'Being at the age immediately before puberty', 'meaning': 'PATO:0001186'}, + "PUPAL": {'description': 'Being in the chrysalis (cocoon) or post-larval stage', 'meaning': 'PATO:0001187'}, + "PREPUPAL": {'description': 'Being in an inactive stage between the larval and the pupal stages', 'meaning': 'PATO:0001188'}, + "PUBESCENT": {'description': 'Having arrived at the onset of puberty but not yet fully mature', 'meaning': 'PATO:0000455'}, + "ADOLESCENT": {'description': 'Being between the onset of puberty and maturity', 'meaning': 'PATO:0001189'}, + "JUVENILE": {'description': 'Not fully grown or developed', 'meaning': 'PATO:0001190'}, + "IMMATURE": {'description': 'Lacking complete growth, differentiation, or development', 'meaning': 'PATO:0001501'}, + "MATURE": {'description': 'Exhibiting complete growth, differentiation, or development', 'meaning': 'PATO:0001701', 'aliases': ['adult']}, +} + +class ViabilityEnum(RichEnum): + """ + An organismal quality inhering in a bearer by virtue of the bearer's disposition to survive and develop normally. Derived from PATO viability (PATO:0000169) child values. + """ + # Enum members + ALIVE = "ALIVE" + DEAD = "DEAD" + VIABLE = "VIABLE" + LETHAL = "LETHAL" + SEMI_VIABLE = "SEMI_VIABLE" + SEMI_LETHAL = "SEMI_LETHAL" + IMMORTAL = "IMMORTAL" + DECAYED = "DECAYED" + +# Set metadata after class creation +ViabilityEnum._metadata = { + "ALIVE": {'description': "The bearer's condition before death", 'meaning': 'PATO:0001421'}, + "DEAD": {'description': "The cessation of the bearer's life", 'meaning': 'PATO:0001422'}, + "VIABLE": {'description': "The bearer's ability to survive or the long term survival ability of a given population", 'meaning': 'PATO:0000719'}, + "LETHAL": {'description': "The bearer's long term survival inability", 'meaning': 'PATO:0000718'}, + "SEMI_VIABLE": {'description': "Some of the population members' ability to survive", 'meaning': 'PATO:0001770'}, + "SEMI_LETHAL": {'description': "Some of the population members' inability to survive to reproduce", 'meaning': 'PATO:0001768'}, + "IMMORTAL": {'description': 'Being capable of indefinite growth or division', 'meaning': 'PATO:0001991'}, + "DECAYED": {'description': 'Decomposition into component parts', 'meaning': 'PATO:0001432'}, +} + +class CellularityEnum(RichEnum): + """ + An organismal quality inhering in a bearer by virtue of the bearer's consisting of cells. Derived from PATO cellularity (PATO:0001992) child values. + """ + # Enum members + UNICELLULAR = "UNICELLULAR" + MULTICELLULAR = "MULTICELLULAR" + +# Set metadata after class creation +CellularityEnum._metadata = { + "UNICELLULAR": {'description': 'Consisting of exactly one cell', 'meaning': 'PATO:0001994'}, + "MULTICELLULAR": {'description': 'Consisting of more than one cell', 'meaning': 'PATO:0001993'}, +} + +class SpatialPatternEnum(RichEnum): + """ + A spatial quality inhering in a bearer by virtue of the bearer's exhibiting repetition of placement of its parts. Derived from PATO spatial pattern (PATO:0000060) child values. + """ + # Enum members + LOCALIZED = "LOCALIZED" + UNLOCALISED = "UNLOCALISED" + MULTI_LOCALISED = "MULTI_LOCALISED" + DISTRIBUTED = "DISTRIBUTED" + UNDISTRIBUTED = "UNDISTRIBUTED" + SPARSE = "SPARSE" + UNILATERAL = "UNILATERAL" + VERTICAL = "VERTICAL" + REGULAR_SPATIAL_PATTERN = "REGULAR_SPATIAL_PATTERN" + IRREGULAR_SPATIAL_PATTERN = "IRREGULAR_SPATIAL_PATTERN" + GENERALIZED = "GENERALIZED" + SEGMENTAL = "SEGMENTAL" + RANDOM_PATTERN = "RANDOM_PATTERN" + SYMMETRICAL = "SYMMETRICAL" + +# Set metadata after class creation +SpatialPatternEnum._metadata = { + "LOCALIZED": {'description': 'Being confined or restricted to a particular location', 'meaning': 'PATO:0000627'}, + "UNLOCALISED": {'description': 'Not being confined or restricted to a particular location', 'meaning': 'PATO:0000635', 'aliases': ['diffuse']}, + "MULTI_LOCALISED": {'description': 'Being confined or restricted to multiple locations', 'meaning': 'PATO:0001791'}, + "DISTRIBUTED": {'description': 'Being spread out or scattered about or divided up', 'meaning': 'PATO:0001566'}, + "UNDISTRIBUTED": {'description': 'Not being spread out or scattered about or divided up', 'meaning': 'PATO:0001567'}, + "SPARSE": {'description': 'Being scattered and spread irregularly at a distance from each other', 'meaning': 'PATO:0001609'}, + "UNILATERAL": {'description': 'Involving only one part or side', 'meaning': 'PATO:0000634'}, + "VERTICAL": {'description': 'Being situated at right angles to the horizon', 'meaning': 'PATO:0001854'}, + "REGULAR_SPATIAL_PATTERN": {'description': 'Having a repeatable or predictable placement', 'meaning': 'PATO:0000440'}, + "IRREGULAR_SPATIAL_PATTERN": {'description': 'Magnitude or relationships between repeated parts lack consistency', 'meaning': 'PATO:0000330'}, + "GENERALIZED": {'description': 'Affecting all regions without specificity of distribution', 'meaning': 'PATO:0002403'}, + "SEGMENTAL": {'description': 'Affecting a segment or segments', 'meaning': 'PATO:0002404'}, + "RANDOM_PATTERN": {'description': 'Characterised by an unidentifiable pattern', 'meaning': 'PATO:0002401'}, + "SYMMETRICAL": {'description': 'Correspondence in size, shape, and relative position of parts on opposite sides of a dividing line or about a center or axis', 'meaning': 'PATO:0000965'}, +} + +__all__ = [ + "ColorEnum", + "ShapeEnum", + "RelativeChangeEnum", + "IntensityEnum", + "TextureEnum", + "PATOBiologicalSexEnum", + "MaturityEnum", + "ViabilityEnum", + "CellularityEnum", + "SpatialPatternEnum", +] \ No newline at end of file diff --git a/src/valuesets/enums/bio/protein_structure_features.py b/src/valuesets/enums/bio/protein_structure_features.py new file mode 100644 index 00000000..29a4fdfb --- /dev/null +++ b/src/valuesets/enums/bio/protein_structure_features.py @@ -0,0 +1,93 @@ +""" +Protein 3D Local Structure Feature Value Sets + +Value sets describing fine-grained, local three-dimensional features of protein structures: per-residue secondary structure states, super-secondary structural motifs, functional sites, and local geometric features (pockets, clefts, elbows). + +These provide a curated, human-interpretable, ontology-mapped counterpart to the learned per-residue feature vocabularies produced by protein language models -- e.g. the 8-state secondary structure (SS8) track and structure-token codebook of ESM3, and the ~16,000 sparse-autoencoder feature dictionaries served per-residue by interpretability APIs (InterPLM; the Biohub/EvolutionaryScale ESMC SAE, model biohub/ESMC-6B-sae-layer60-k64-codebook16384). Where curated ontology terms exist they are mapped via ``meaning:``; geometric surface features (pocket, cleft, cavity, elbow, groove, tunnel) currently have no suitable OBO term and are flagged as gaps. + + +Generated from: bio/protein_structure_features.yaml +""" + +from __future__ import annotations + +from valuesets.generators.rich_enum import RichEnum + +class SecondaryStructureType(RichEnum): + """ + Per-residue secondary structure assignment. The permissible values correspond to the canonical DSSP 8-state (SS8) classification, which is also the secondary-structure track vocabulary used by protein language models such as ESM3. The single-letter DSSP code is recorded in the ``dssp_code`` annotation. + """ + # Enum members + ALPHA_HELIX = "ALPHA_HELIX" + THREE_TEN_HELIX = "THREE_TEN_HELIX" + PI_HELIX = "PI_HELIX" + BETA_STRAND = "BETA_STRAND" + BETA_BRIDGE = "BETA_BRIDGE" + TURN = "TURN" + BEND = "BEND" + COIL = "COIL" + +# Set metadata after class creation +SecondaryStructureType._metadata = { + "ALPHA_HELIX": {'description': 'Right-handed alpha helix (3.6 residues/turn, i to i+4 hydrogen bonding)', 'meaning': 'SO:0001117', 'annotations': {'dssp_code': 'H', 'ss8_class': 'H'}}, + "THREE_TEN_HELIX": {'description': '3-10 helix (3 residues/turn, i to i+3 hydrogen bonding)', 'meaning': 'SO:0001119', 'annotations': {'dssp_code': 'G', 'ss8_class': 'G'}}, + "PI_HELIX": {'description': 'Pi helix (4.1 residues/turn, i to i+5 hydrogen bonding)', 'meaning': 'SO:0001118', 'annotations': {'dssp_code': 'I', 'ss8_class': 'I'}}, + "BETA_STRAND": {'description': 'Extended beta strand participating in a beta sheet', 'meaning': 'SO:0001111', 'annotations': {'dssp_code': 'E', 'ss8_class': 'E'}}, + "BETA_BRIDGE": {'description': 'Residue in an isolated single-pair beta bridge', 'annotations': {'dssp_code': 'B', 'ss8_class': 'B', 'ontology_gap': 'true'}}, + "TURN": {'description': 'Hydrogen-bonded turn reversing backbone direction over <=4 residues', 'meaning': 'SO:0001128', 'annotations': {'dssp_code': 'T', 'ss8_class': 'T'}}, + "BEND": {'description': 'Region of high backbone curvature without regular hydrogen bonding', 'annotations': {'dssp_code': 'S', 'ss8_class': 'S', 'ontology_gap': 'true'}}, + "COIL": {'description': 'Irregular, unstructured backbone region (loop / random coil)', 'meaning': 'SO:0100012', 'annotations': {'dssp_code': 'C', 'ss8_class': 'C', 'aliases': 'loop, random coil, blank'}}, +} + +class LocalStructuralFeature(RichEnum): + """ + Fine-grained local three-dimensional features of protein structures, spanning super-secondary structural motifs, functional sites, and local geometric surface features. This is the curated, ontology-mapped analogue of the learned per-residue feature vocabularies produced by protein language models and their sparse-autoencoder interpretations. Members marked with the ``ontology_gap`` annotation have no suitable OBO term and are candidates for new ontology terms. + """ + # Enum members + POLYPEPTIDE_STRUCTURAL_MOTIF = "POLYPEPTIDE_STRUCTURAL_MOTIF" + BETA_HAIRPIN = "BETA_HAIRPIN" + BETA_BULGE = "BETA_BULGE" + ASX_MOTIF = "ASX_MOTIF" + NEST = "NEST" + COILED_COIL = "COILED_COIL" + HELIX_CAP = "HELIX_CAP" + CATALYTIC_RESIDUE = "CATALYTIC_RESIDUE" + PROTEIN_BINDING_SITE = "PROTEIN_BINDING_SITE" + DISULFIDE_BOND = "DISULFIDE_BOND" + METAL_BINDING_SITE = "METAL_BINDING_SITE" + POCKET = "POCKET" + CLEFT = "CLEFT" + CAVITY = "CAVITY" + TUNNEL = "TUNNEL" + GROOVE = "GROOVE" + ELBOW = "ELBOW" + KINK = "KINK" + INTERFACE = "INTERFACE" + +# Set metadata after class creation +LocalStructuralFeature._metadata = { + "POLYPEPTIDE_STRUCTURAL_MOTIF": {'description': 'A recurring 3D structural element within the chain that does not form a stable globular unit (the general parent class for local motifs)', 'meaning': 'SO:0001079'}, + "BETA_HAIRPIN": {'description': 'Two adjacent antiparallel beta strands connected by a short loop or turn', 'annotations': {'ontology_gap': 'true'}}, + "BETA_BULGE": {'description': 'A local disruption of beta-sheet hydrogen bonding across three residues', 'meaning': 'SO:0001107'}, + "ASX_MOTIF": {'description': 'A five-residue motif nucleated by an Asp/Asn side chain (Asx)', 'meaning': 'SO:0001106'}, + "NEST": {'description': 'A motif of two consecutive residues forming an anion-binding concavity', 'meaning': 'SO:0001120'}, + "COILED_COIL": {'description': 'Two or more alpha helices wound together like strands of a rope', 'meaning': 'SO:0001080'}, + "HELIX_CAP": {'description': 'N-cap or C-cap residue terminating an alpha helix', 'annotations': {'ontology_gap': 'true'}}, + "CATALYTIC_RESIDUE": {'description': 'An amino acid residue directly involved in enzyme catalysis (active site)', 'meaning': 'SO:0001104'}, + "PROTEIN_BINDING_SITE": {'description': 'A site that interacts selectively and non-covalently with polypeptide molecules', 'meaning': 'SO:0000410'}, + "DISULFIDE_BOND": {'description': 'A covalent S-S bond between two cysteine residues', 'annotations': {'obo_gap': 'true'}}, + "METAL_BINDING_SITE": {'description': 'A local site coordinating one or more metal ions', 'annotations': {'obo_gap': 'true'}}, + "POCKET": {'description': 'A concave, solvent-accessible surface depression that can accommodate a ligand', 'annotations': {'ontology_gap': 'true', 'related_edam': 'EDAM:data_1542'}}, + "CLEFT": {'description': 'An elongated surface groove between structural elements or domains', 'annotations': {'ontology_gap': 'true'}}, + "CAVITY": {'description': 'An enclosed, solvent-inaccessible internal void within the structure', 'annotations': {'ontology_gap': 'true', 'related_edam': 'EDAM:data_1542'}}, + "TUNNEL": {'description': 'An elongated, often buried, passage through the structure connecting two regions', 'annotations': {'ontology_gap': 'true'}}, + "GROOVE": {'description': 'A surface channel, e.g. a nucleic-acid-binding groove', 'annotations': {'ontology_gap': 'true'}}, + "ELBOW": {'description': 'A localized bend or hinge between two structural elements or domains', 'annotations': {'ontology_gap': 'true'}}, + "KINK": {'description': 'A localized bend interrupting the regular geometry of a helix', 'annotations': {'ontology_gap': 'true'}}, + "INTERFACE": {'description': 'A surface patch mediating contact with another chain or molecule', 'annotations': {'ontology_gap': 'true'}}, +} + +__all__ = [ + "SecondaryStructureType", + "LocalStructuralFeature", +] \ No newline at end of file diff --git a/src/valuesets/enums/lab_automation/cloud_lab.py b/src/valuesets/enums/lab_automation/cloud_lab.py new file mode 100644 index 00000000..f6f947e2 --- /dev/null +++ b/src/valuesets/enums/lab_automation/cloud_lab.py @@ -0,0 +1,296 @@ +""" +Cloud Laboratory Protocol Value Sets + +Controlled vocabularies for cloud-laboratory research protocols, modeled on the operational taxonomy exposed by remote/cloud labs such as Emerald Cloud Lab (ECL) and its Symbolic Lab Language (SLL). Two complementary layers are captured: (1) LabUnitOperationEnum -- the composable sample-manipulation primitives ("unit operations") that make up a sample-preparation protocol; and (2) CloudLabExperimentEnum -- the higher-level experiment/assay functions that a protocol invokes. The experiment layer is cross-referenced to the assay value sets under bio/assays/ (OBIAssayEnum, BAOBioassayEnum) and to analytical-chemistry vocabularies; OBI/CHMO/MMO terms are used for `meaning:` where an equivalent ontology class exists. These vocabularies use neutral ontology mappings rather than vendor-specific identifiers; ECL function names are used only as an input checklist for completeness. + +Generated from: lab_automation/cloud_lab.yaml +""" + +from __future__ import annotations + +from valuesets.generators.rich_enum import RichEnum + +class RelativeTimeEnum(RichEnum): + """ + Temporal relationships between events or time points + """ + # Enum members + BEFORE = "BEFORE" + AFTER = "AFTER" + AT_SAME_TIME_AS = "AT_SAME_TIME_AS" + +# Set metadata after class creation +RelativeTimeEnum._metadata = { + "BEFORE": {'description': 'Occurs before the reference time point'}, + "AFTER": {'description': 'Occurs after the reference time point'}, + "AT_SAME_TIME_AS": {'description': 'Occurs at the same time as the reference time point'}, +} + +class PresenceEnum(RichEnum): + """ + Classification of whether an entity is present, absent, or at detection limits + """ + # Enum members + PRESENT = "PRESENT" + ABSENT = "ABSENT" + BELOW_DETECTION_LIMIT = "BELOW_DETECTION_LIMIT" + ABOVE_DETECTION_LIMIT = "ABOVE_DETECTION_LIMIT" + +# Set metadata after class creation +PresenceEnum._metadata = { + "PRESENT": {'description': 'The entity is present'}, + "ABSENT": {'description': 'The entity is absent'}, + "BELOW_DETECTION_LIMIT": {'description': 'The entity is below the detection limit'}, + "ABOVE_DETECTION_LIMIT": {'description': 'The entity is above the detection limit'}, +} + +class LabUnitOperationEnum(RichEnum): + """ + Composable sample-manipulation primitives ("unit operations") used to build sample-preparation protocols in a cloud laboratory. Modeled on the ECL Symbolic Lab Language sample-preparation unit operations (Transfer, Aliquot, Mix, Incubate, Filter, Centrifuge, Pellet, Resuspend, etc.). Complements the lower level LiquidHandlingOperationEnum and SampleProcessingOperationEnum in lab_automation/operations. + """ + # Enum members + DEFINE = "DEFINE" + LABEL_SAMPLE = "LABEL_SAMPLE" + LABEL_CONTAINER = "LABEL_CONTAINER" + TRANSFER = "TRANSFER" + ALIQUOT = "ALIQUOT" + CONSOLIDATE = "CONSOLIDATE" + DILUTE = "DILUTE" + SERIAL_DILUTE = "SERIAL_DILUTE" + FILL_TO_VOLUME = "FILL_TO_VOLUME" + RESUSPEND = "RESUSPEND" + PREPARE_STOCK_SOLUTION = "PREPARE_STOCK_SOLUTION" + ADJUST_PH = "ADJUST_PH" + MIX = "MIX" + INCUBATE = "INCUBATE" + WAIT = "WAIT" + CENTRIFUGE = "CENTRIFUGE" + PELLET = "PELLET" + FILTER = "FILTER" + MAGNETIC_BEAD_SEPARATION = "MAGNETIC_BEAD_SEPARATION" + MOVE_TO_MAGNET = "MOVE_TO_MAGNET" + REMOVE_FROM_MAGNET = "REMOVE_FROM_MAGNET" + COVER = "COVER" + UNCOVER = "UNCOVER" + DEGAS = "DEGAS" + DESICCATE = "DESICCATE" + EVAPORATE = "EVAPORATE" + LYOPHILIZE = "LYOPHILIZE" + FLASH_FREEZE = "FLASH_FREEZE" + AUTOCLAVE = "AUTOCLAVE" + GRIND = "GRIND" + MICROWAVE_DIGESTION = "MICROWAVE_DIGESTION" + +# Set metadata after class creation +LabUnitOperationEnum._metadata = { + "DEFINE": {'description': 'Declare a new sample, container, or model and assign it a label for later reference in the protocol'}, + "LABEL_SAMPLE": {'description': 'Assign a human-readable label to a sample so it can be referenced by later unit operations'}, + "LABEL_CONTAINER": {'description': 'Assign a human-readable label to a container so it can be referenced by later unit operations'}, + "TRANSFER": {'description': 'Move a specified amount of sample from one source to one or more destinations'}, + "ALIQUOT": {'description': 'Distribute a sample into multiple equal portions in separate containers'}, + "CONSOLIDATE": {'description': 'Combine multiple source samples into a single destination container'}, + "DILUTE": {'description': 'Reduce the concentration of a sample by adding diluent to a target volume or concentration'}, + "SERIAL_DILUTE": {'description': 'Create a stepwise series of dilutions by repeatedly transferring and diluting a sample'}, + "FILL_TO_VOLUME": {'description': 'Add solvent to a sample until a specified total volume is reached'}, + "RESUSPEND": {'description': 'Dissolve or re-disperse a solid or pellet in a specified volume of solvent'}, + "PREPARE_STOCK_SOLUTION": {'description': 'Prepare a solution of defined composition from components and solvent'}, + "ADJUST_PH": {'description': 'Add titrant to bring a sample to a target pH'}, + "MIX": {'description': 'Homogenize a sample by pipetting, inversion, vortexing, stirring, sonication, or related agitation', 'meaning': 'CHMO:0001685', 'aliases': ['mixing']}, + "INCUBATE": {'description': 'Hold a sample at controlled temperature (and optionally mixing) for a specified duration'}, + "WAIT": {'description': 'Pause the protocol for a specified duration without other manipulation'}, + "CENTRIFUGE": {'description': 'Apply centrifugal force to a sample to separate components by density', 'meaning': 'OBI:0302886', 'aliases': ['centrifugation']}, + "PELLET": {'description': 'Centrifuge to precipitate solids, optionally aspirate the supernatant, and optionally resuspend the pellet'}, + "FILTER": {'description': 'Pass a sample through a filter to separate particulates or to sterilize', 'meaning': 'CHMO:0001640', 'aliases': ['filtration']}, + "MAGNETIC_BEAD_SEPARATION": {'description': 'Isolate target analytes bound to magnetic beads using a magnetic field'}, + "MOVE_TO_MAGNET": {'description': 'Place a container on a magnetic rack to immobilize magnetic beads'}, + "REMOVE_FROM_MAGNET": {'description': 'Remove a container from a magnetic rack to release magnetic beads'}, + "COVER": {'description': 'Apply a lid, cap, or seal to a container'}, + "UNCOVER": {'description': 'Remove a lid, cap, or seal from a container'}, + "DEGAS": {'description': 'Remove dissolved gases from a liquid sample', 'meaning': 'CHMO:0002772', 'aliases': ['degassing']}, + "DESICCATE": {'description': 'Remove moisture from a sample using a desiccant or controlled-humidity chamber'}, + "EVAPORATE": {'description': 'Remove solvent from a sample by evaporation, optionally under reduced pressure', 'meaning': 'CHMO:0001574', 'aliases': ['evaporation']}, + "LYOPHILIZE": {'description': 'Freeze-dry a sample to remove solvent by sublimation under vacuum', 'meaning': 'CHMO:0001553', 'aliases': ['freeze drying']}, + "FLASH_FREEZE": {'description': 'Rapidly freeze a sample, typically in liquid nitrogen'}, + "AUTOCLAVE": {'description': 'Sterilize a sample or labware using pressurized saturated steam'}, + "GRIND": {'description': 'Mechanically reduce a solid sample to smaller particles or powder', 'meaning': 'CHMO:0001652', 'aliases': ['grinding']}, + "MICROWAVE_DIGESTION": {'description': 'Digest a sample in acid under microwave heating to bring analytes into solution'}, +} + +class CloudLabExperimentEnum(RichEnum): + """ + Higher-level experiment and assay functions offered as protocols by a cloud laboratory, modeled on the ECL Symbolic Lab Language experiment functions and grouped by category (synthesis, separations/chromatography, spectroscopy, mass spectrometry, bioassays, crystallography, property measurement, cellular). Cross-referenced to the assay value sets in bio/assays/ (OBIAssayEnum, BAOBioassayEnum) and to analytical_chemistry vocabularies; `meaning:` maps to OBI/CHMO classes where an equivalent assay or analytical method exists. + """ + # Enum members + DNA_SYNTHESIS = "DNA_SYNTHESIS" + RNA_SYNTHESIS = "RNA_SYNTHESIS" + PNA_SYNTHESIS = "PNA_SYNTHESIS" + PEPTIDE_SYNTHESIS = "PEPTIDE_SYNTHESIS" + PCR = "PCR" + BIOCONJUGATION = "BIOCONJUGATION" + HPLC = "HPLC" + FPLC = "FPLC" + FLASH_CHROMATOGRAPHY = "FLASH_CHROMATOGRAPHY" + GAS_CHROMATOGRAPHY = "GAS_CHROMATOGRAPHY" + ION_CHROMATOGRAPHY = "ION_CHROMATOGRAPHY" + SUPERCRITICAL_FLUID_CHROMATOGRAPHY = "SUPERCRITICAL_FLUID_CHROMATOGRAPHY" + SOLID_PHASE_EXTRACTION = "SOLID_PHASE_EXTRACTION" + LIQUID_LIQUID_EXTRACTION = "LIQUID_LIQUID_EXTRACTION" + CROSS_FLOW_FILTRATION = "CROSS_FLOW_FILTRATION" + DIALYSIS = "DIALYSIS" + AGAROSE_GEL_ELECTROPHORESIS = "AGAROSE_GEL_ELECTROPHORESIS" + PAGE = "PAGE" + CAPILLARY_GEL_ELECTROPHORESIS_SDS = "CAPILLARY_GEL_ELECTROPHORESIS_SDS" + CAPILLARY_ISOELECTRIC_FOCUSING = "CAPILLARY_ISOELECTRIC_FOCUSING" + WESTERN_BLOT = "WESTERN_BLOT" + NMR = "NMR" + NMR_2D = "NMR_2D" + ABSORBANCE_SPECTROSCOPY = "ABSORBANCE_SPECTROSCOPY" + ABSORBANCE_INTENSITY = "ABSORBANCE_INTENSITY" + ABSORBANCE_KINETICS = "ABSORBANCE_KINETICS" + FLUORESCENCE_SPECTROSCOPY = "FLUORESCENCE_SPECTROSCOPY" + FLUORESCENCE_INTENSITY = "FLUORESCENCE_INTENSITY" + FLUORESCENCE_KINETICS = "FLUORESCENCE_KINETICS" + FLUORESCENCE_POLARIZATION = "FLUORESCENCE_POLARIZATION" + LUMINESCENCE_SPECTROSCOPY = "LUMINESCENCE_SPECTROSCOPY" + LUMINESCENCE_INTENSITY = "LUMINESCENCE_INTENSITY" + LUMINESCENCE_KINETICS = "LUMINESCENCE_KINETICS" + IR_SPECTROSCOPY = "IR_SPECTROSCOPY" + RAMAN_SPECTROSCOPY = "RAMAN_SPECTROSCOPY" + CIRCULAR_DICHROISM = "CIRCULAR_DICHROISM" + DYNAMIC_LIGHT_SCATTERING = "DYNAMIC_LIGHT_SCATTERING" + NEPHELOMETRY = "NEPHELOMETRY" + THERMAL_SHIFT = "THERMAL_SHIFT" + UV_MELTING = "UV_MELTING" + MASS_SPECTROMETRY = "MASS_SPECTROMETRY" + LCMS = "LCMS" + GCMS = "GCMS" + ICPMS = "ICPMS" + ELISA = "ELISA" + CAPILLARY_ELISA = "CAPILLARY_ELISA" + ALPHASCREEN = "ALPHASCREEN" + BIOLAYER_INTERFEROMETRY = "BIOLAYER_INTERFEROMETRY" + QPCR = "QPCR" + DNA_SEQUENCING = "DNA_SEQUENCING" + TOTAL_PROTEIN_QUANTIFICATION = "TOTAL_PROTEIN_QUANTIFICATION" + TOTAL_PROTEIN_DETECTION = "TOTAL_PROTEIN_DETECTION" + DIFFERENTIAL_SCANNING_CALORIMETRY = "DIFFERENTIAL_SCANNING_CALORIMETRY" + GROW_CRYSTAL = "GROW_CRYSTAL" + POWDER_XRD = "POWDER_XRD" + MEASURE_PH = "MEASURE_PH" + MEASURE_CONDUCTIVITY = "MEASURE_CONDUCTIVITY" + MEASURE_DENSITY = "MEASURE_DENSITY" + MEASURE_VISCOSITY = "MEASURE_VISCOSITY" + MEASURE_OSMOLALITY = "MEASURE_OSMOLALITY" + MEASURE_REFRACTIVE_INDEX = "MEASURE_REFRACTIVE_INDEX" + MEASURE_SURFACE_TENSION = "MEASURE_SURFACE_TENSION" + MEASURE_CONTACT_ANGLE = "MEASURE_CONTACT_ANGLE" + MEASURE_DISSOLVED_OXYGEN = "MEASURE_DISSOLVED_OXYGEN" + MEASURE_MELTING_POINT = "MEASURE_MELTING_POINT" + MEASURE_WEIGHT = "MEASURE_WEIGHT" + MEASURE_VOLUME = "MEASURE_VOLUME" + MEASURE_COUNT = "MEASURE_COUNT" + COUNT_LIQUID_PARTICLES = "COUNT_LIQUID_PARTICLES" + COULTER_COUNT = "COULTER_COUNT" + CYCLIC_VOLTAMMETRY = "CYCLIC_VOLTAMMETRY" + KARL_FISCHER_TITRATION = "KARL_FISCHER_TITRATION" + DISSOLUTION = "DISSOLUTION" + DYNAMIC_FOAM_ANALYSIS = "DYNAMIC_FOAM_ANALYSIS" + VISUAL_INSPECTION = "VISUAL_INSPECTION" + IMAGE_SAMPLE = "IMAGE_SAMPLE" + IMAGE_CELLS = "IMAGE_CELLS" + IMAGE_COLONIES = "IMAGE_COLONIES" + QUANTIFY_COLONIES = "QUANTIFY_COLONIES" + LYSE_CELLS = "LYSE_CELLS" + FREEZE_CELLS = "FREEZE_CELLS" + +# Set metadata after class creation +CloudLabExperimentEnum._metadata = { + "DNA_SYNTHESIS": {'description': 'Solid-phase chemical synthesis of DNA oligonucleotides'}, + "RNA_SYNTHESIS": {'description': 'Solid-phase chemical synthesis of RNA oligonucleotides'}, + "PNA_SYNTHESIS": {'description': 'Solid-phase chemical synthesis of peptide nucleic acid oligomers'}, + "PEPTIDE_SYNTHESIS": {'description': 'Solid-phase chemical synthesis of peptides'}, + "PCR": {'description': 'Polymerase chain reaction amplification of nucleic acids', 'meaning': 'OBI:0000415', 'aliases': ['polymerase chain reaction']}, + "BIOCONJUGATION": {'description': 'Covalent coupling of biomolecules or labels to a target molecule'}, + "HPLC": {'description': 'High-performance liquid chromatography separation', 'meaning': 'CHMO:0001009', 'aliases': ['high-performance liquid chromatography']}, + "FPLC": {'description': 'Fast protein liquid chromatography separation'}, + "FLASH_CHROMATOGRAPHY": {'description': 'Medium-pressure flash column chromatography separation', 'meaning': 'CHMO:0002582'}, + "GAS_CHROMATOGRAPHY": {'description': 'Gas chromatography separation of volatile analytes', 'meaning': 'CHMO:0001002'}, + "ION_CHROMATOGRAPHY": {'description': 'Chromatographic separation of ionic species', 'meaning': 'CHMO:0002874'}, + "SUPERCRITICAL_FLUID_CHROMATOGRAPHY": {'description': 'Chromatographic separation using a supercritical fluid mobile phase'}, + "SOLID_PHASE_EXTRACTION": {'description': 'Sample cleanup or enrichment by selective retention on a solid sorbent'}, + "LIQUID_LIQUID_EXTRACTION": {'description': 'Separation of analytes between two immiscible liquid phases', 'meaning': 'CHMO:0001600', 'aliases': ['liquid–liquid extraction']}, + "CROSS_FLOW_FILTRATION": {'description': 'Tangential-flow filtration for concentration or buffer exchange'}, + "DIALYSIS": {'description': 'Separation of molecules by size across a semipermeable membrane', 'meaning': 'CHMO:0001522'}, + "AGAROSE_GEL_ELECTROPHORESIS": {'description': 'Size-based separation of nucleic acids in an agarose gel', 'meaning': 'CHMO:0001022'}, + "PAGE": {'description': 'Polyacrylamide gel electrophoresis separation of biomolecules', 'meaning': 'CHMO:0001023', 'aliases': ['polyacrylamide gel electrophoresis']}, + "CAPILLARY_GEL_ELECTROPHORESIS_SDS": {'description': 'SDS capillary gel electrophoresis sizing of proteins'}, + "CAPILLARY_ISOELECTRIC_FOCUSING": {'description': 'Separation of proteins by isoelectric point in a capillary', 'meaning': 'CHMO:0001033'}, + "WESTERN_BLOT": {'description': 'Immunodetection of proteins separated by electrophoresis', 'meaning': 'OBI:0000854', 'aliases': ['western blot assay']}, + "NMR": {'description': 'One-dimensional nuclear magnetic resonance spectroscopy', 'meaning': 'CHMO:0000591', 'aliases': ['nuclear magnetic resonance spectroscopy']}, + "NMR_2D": {'description': 'Two-dimensional nuclear magnetic resonance spectroscopy', 'meaning': 'CHMO:0000598', 'aliases': ['two-dimensional nuclear magnetic resonance spectroscopy']}, + "ABSORBANCE_SPECTROSCOPY": {'description': 'Measurement of absorbance across a wavelength range'}, + "ABSORBANCE_INTENSITY": {'description': 'Measurement of absorbance at one or more discrete wavelengths'}, + "ABSORBANCE_KINETICS": {'description': 'Time-resolved measurement of absorbance'}, + "FLUORESCENCE_SPECTROSCOPY": {'description': 'Measurement of fluorescence emission across a wavelength range', 'meaning': 'CHMO:0000287'}, + "FLUORESCENCE_INTENSITY": {'description': 'Measurement of fluorescence intensity at discrete wavelengths'}, + "FLUORESCENCE_KINETICS": {'description': 'Time-resolved measurement of fluorescence intensity'}, + "FLUORESCENCE_POLARIZATION": {'description': 'Measurement of fluorescence polarization/anisotropy'}, + "LUMINESCENCE_SPECTROSCOPY": {'description': 'Measurement of luminescence emission across a wavelength range', 'meaning': 'CHMO:0002415'}, + "LUMINESCENCE_INTENSITY": {'description': 'Measurement of luminescence intensity at discrete wavelengths'}, + "LUMINESCENCE_KINETICS": {'description': 'Time-resolved measurement of luminescence intensity'}, + "IR_SPECTROSCOPY": {'description': 'Infrared absorption spectroscopy', 'meaning': 'CHMO:0000630', 'aliases': ['infrared absorption spectroscopy']}, + "RAMAN_SPECTROSCOPY": {'description': 'Raman scattering spectroscopy', 'meaning': 'CHMO:0000656'}, + "CIRCULAR_DICHROISM": {'description': 'Measurement of differential absorption of circularly polarized light'}, + "DYNAMIC_LIGHT_SCATTERING": {'description': 'Measurement of particle size distribution from scattered-light fluctuations', 'meaning': 'CHMO:0000167'}, + "NEPHELOMETRY": {'description': 'Measurement of turbidity by scattered light'}, + "THERMAL_SHIFT": {'description': 'Measurement of protein thermal stability via a fluorescent thermal shift assay'}, + "UV_MELTING": {'description': 'Measurement of nucleic acid or protein melting curves by UV absorbance'}, + "MASS_SPECTROMETRY": {'description': 'Determination of mass-to-charge ratios of ionized analytes', 'meaning': 'CHMO:0000470'}, + "LCMS": {'description': 'Liquid chromatography coupled to mass spectrometry', 'meaning': 'CHMO:0000524', 'aliases': ['liquid chromatography-mass spectrometry']}, + "GCMS": {'description': 'Gas chromatography coupled to mass spectrometry', 'meaning': 'CHMO:0000497', 'aliases': ['gas chromatography-mass spectrometry']}, + "ICPMS": {'description': 'Inductively coupled plasma mass spectrometry for elemental analysis', 'meaning': 'CHMO:0000538', 'aliases': ['inductively coupled plasma mass spectrometry']}, + "ELISA": {'description': 'Enzyme-linked immunosorbent assay', 'meaning': 'OBI:0000661', 'aliases': ['enzyme-linked immunosorbent assay']}, + "CAPILLARY_ELISA": {'description': 'Automated capillary-based enzyme-linked immunosorbent assay'}, + "ALPHASCREEN": {'description': 'Bead-based amplified luminescent proximity homogeneous assay'}, + "BIOLAYER_INTERFEROMETRY": {'description': 'Label-free measurement of biomolecular binding kinetics by interferometry', 'meaning': 'OBI:0002107', 'aliases': ['bio-layer interferometry assay']}, + "QPCR": {'description': 'Quantitative real-time polymerase chain reaction', 'meaning': 'OBI:0000893', 'aliases': ['real time polymerase chain reaction assay']}, + "DNA_SEQUENCING": {'description': 'Determination of nucleotide sequence of DNA (Sanger/capillary)', 'meaning': 'OBI:0000626', 'aliases': ['DNA sequencing assay']}, + "TOTAL_PROTEIN_QUANTIFICATION": {'description': 'Colorimetric or fluorometric quantification of total protein'}, + "TOTAL_PROTEIN_DETECTION": {'description': 'Capillary-based detection and sizing of total protein'}, + "DIFFERENTIAL_SCANNING_CALORIMETRY": {'description': 'Measurement of heat flow associated with thermal transitions', 'meaning': 'CHMO:0000684'}, + "GROW_CRYSTAL": {'description': 'Crystallization of a compound or macromolecule for structural analysis', 'meaning': 'CHMO:0001477', 'aliases': ['crystallisation']}, + "POWDER_XRD": {'description': 'Powder X-ray diffraction analysis of crystalline solids', 'meaning': 'CHMO:0000158', 'aliases': ['powder X-ray diffraction']}, + "MEASURE_PH": {'description': 'Measurement of sample pH'}, + "MEASURE_CONDUCTIVITY": {'description': 'Measurement of electrical conductivity of a solution'}, + "MEASURE_DENSITY": {'description': 'Measurement of sample density'}, + "MEASURE_VISCOSITY": {'description': 'Measurement of sample viscosity'}, + "MEASURE_OSMOLALITY": {'description': 'Measurement of solute concentration as osmolality'}, + "MEASURE_REFRACTIVE_INDEX": {'description': 'Measurement of the refractive index of a sample'}, + "MEASURE_SURFACE_TENSION": {'description': 'Measurement of liquid surface tension'}, + "MEASURE_CONTACT_ANGLE": {'description': 'Measurement of the contact angle of a liquid on a surface'}, + "MEASURE_DISSOLVED_OXYGEN": {'description': 'Measurement of dissolved oxygen concentration in a liquid'}, + "MEASURE_MELTING_POINT": {'description': 'Determination of the melting point of a solid'}, + "MEASURE_WEIGHT": {'description': 'Gravimetric measurement of sample mass'}, + "MEASURE_VOLUME": {'description': 'Measurement of sample volume'}, + "MEASURE_COUNT": {'description': 'Counting of discrete objects (e.g. particles, colonies, cells)'}, + "COUNT_LIQUID_PARTICLES": {'description': 'Counting and sizing of particles suspended in a liquid'}, + "COULTER_COUNT": {'description': 'Counting and sizing of particles or cells by electrical impedance'}, + "CYCLIC_VOLTAMMETRY": {'description': 'Electrochemical measurement of current versus swept potential', 'meaning': 'CHMO:0000025'}, + "KARL_FISCHER_TITRATION": {'description': 'Titrimetric determination of water content', 'meaning': 'CHMO:0002535', 'aliases': ['Karl–Fischer titration']}, + "DISSOLUTION": {'description': 'Measurement of the rate and extent of dissolution of a solid'}, + "DYNAMIC_FOAM_ANALYSIS": {'description': 'Measurement of foam formation and decay'}, + "VISUAL_INSPECTION": {'description': 'Operator or imaging-based visual assessment of a sample'}, + "IMAGE_SAMPLE": {'description': 'Acquisition of a photographic image of a sample'}, + "IMAGE_CELLS": {'description': 'Microscopic imaging of cells'}, + "IMAGE_COLONIES": {'description': 'Imaging of microbial colonies on solid media'}, + "QUANTIFY_COLONIES": {'description': 'Counting and quantification of microbial colonies'}, + "LYSE_CELLS": {'description': 'Disruption of cells to release intracellular contents'}, + "FREEZE_CELLS": {'description': 'Controlled-rate freezing of cells for storage'}, +} + +__all__ = [ + "RelativeTimeEnum", + "PresenceEnum", + "LabUnitOperationEnum", + "CloudLabExperimentEnum", +] \ No newline at end of file