diff --git a/docs/schema/valuesets.yaml b/docs/schema/valuesets.yaml index 18b8d0b1..65d17ee9 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 @@ -134,6 +135,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 +157,7 @@ imports: - core - core - core +- core license: Apache-2.0 prefixes: valuesets: @@ -5019,6 +5022,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 @@ -64267,6 +64576,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 +71143,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 @@ -73574,6 +74500,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 +74852,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-12T19:52:38' +source_file_size: 4235 +generation_date: '2026-06-12T19:54:07' diff --git a/project/jsonschema/valuesets.schema.json b/project/jsonschema/valuesets.schema.json index 818eb8a1..ec07f07c 100644 --- a/project/jsonschema/valuesets.schema.json +++ b/project/jsonschema/valuesets.schema.json @@ -1675,6 +1675,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": [ @@ -5634,6 +5722,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 +6020,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": [ @@ -9191,6 +9343,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": [ diff --git a/src/valuesets/datamodel/valuesets.py b/src/valuesets/datamodel/valuesets.py index c40c7404..2ce41ceb 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 @@ -18461,6 +18535,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..2ce41ceb 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 @@ -18461,6 +18535,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 d0c94158..d9c29da7 100644 --- a/src/valuesets/enums/__init__.py +++ b/src/valuesets/enums/__init__.py @@ -48,6 +48,7 @@ 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 @@ -180,6 +181,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 @@ -331,6 +333,7 @@ "ChurnClassificationEnum", "CitationStyle", "ClinicalBehavioralAssayEnum", + "CloudLabExperimentEnum", "CodonEnum", "ColorSpaceEnum", "CommonMineral", @@ -548,6 +551,7 @@ "JobLevelEnum", "KaryotypicSexEnum", "LabAutomationWorkflowType", + "LabUnitOperationEnum", "LaboratoryDeviceTypeEnum", "LabwareStandardEnum", "LanguageCodeISO6391enum", @@ -561,6 +565,7 @@ "LicensingStageEnum", "LipidCategory", "LiquidHandlingOperationEnum", + "LocalStructuralFeature", "LogisticsOperationEnum", "MLDataType", "MLFieldRole", @@ -773,6 +778,7 @@ "SchedulerTypeEnum", "Season", "SeasonalEnvironmentExposureEnum", + "SecondaryStructureType", "SectionLocationEnum", "SemiconductorMaterialType", "SensorWhileDrillingFeature", 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