Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2,866 changes: 2,863 additions & 3 deletions docs/schema/valuesets.yaml

Large diffs are not rendered by default.

470 changes: 469 additions & 1 deletion project/jsonschema/valuesets.schema.json

Large diffs are not rendered by default.

856 changes: 856 additions & 0 deletions src/valuesets/datamodel/valuesets.py

Large diffs are not rendered by default.

856 changes: 856 additions & 0 deletions src/valuesets/datamodel/valuesets_pydantic.py

Large diffs are not rendered by default.

31 changes: 30 additions & 1 deletion src/valuesets/enums/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@
from .bioprocessing.scale_up import ProcessScaleEnum, BioreactorTypeEnum, FermentationModeEnum, OxygenationStrategyEnum, AgitationTypeEnum, DownstreamProcessEnum, FeedstockTypeEnum, ProductTypeEnum, SterilizationMethodEnum

# Business domain
from .business.currencies import CurrencyCode
from .business.human_resources import EmploymentTypeEnum, JobLevelEnum, HRFunctionEnum, CompensationTypeEnum, PerformanceRatingEnum, RecruitmentSourceEnum, TrainingTypeEnum, EmployeeStatusEnum, WorkArrangementEnum, BenefitsCategoryEnum
from .business.industry_classifications import NAICSSectorEnum, EconomicSectorEnum, BusinessActivityTypeEnum, IndustryMaturityEnum, MarketStructureEnum, IndustryRegulationLevelEnum
from .business.management_operations import ManagementMethodologyEnum, StrategicFrameworkEnum, OperationalModelEnum, PerformanceMeasurementEnum, DecisionMakingStyleEnum, LeadershipStyleEnum, BusinessProcessTypeEnum
Expand All @@ -79,6 +80,7 @@

# Chemistry domain
from .chemistry.chemical_entities import SubatomicParticleEnum, BondTypeEnum, PeriodicTableBlockEnum, ElementFamilyEnum, ElementMetallicClassificationEnum, HardOrSoftEnum, BronstedAcidBaseRoleEnum, LewisAcidBaseRoleEnum, OxidationStateEnum, ChiralityEnum, NanostructureMorphologyEnum
from .chemistry.identifiers import ChemicalIdentifierScheme
from .chemistry.reaction_directionality import RelativeTimeEnum, PresenceEnum, ReactionDirectionality
from .chemistry.reactions import ReactionTypeEnum, ReactionMechanismEnum, CatalystTypeEnum, ReactionConditionEnum, ReactionRateOrderEnum, EnzymeClassEnum, SolventClassEnum, ThermodynamicParameterEnum

Expand Down Expand Up @@ -221,6 +223,13 @@
from .preservation.events import PreservationEventType, PreservationEventOutcome
from .preservation.fixity import CryptographicHashFunction

# Process_Engineering domain
from .process_engineering.process_industries import ProcessIndustryCategory, ProcessOperationMode
from .process_engineering.process_modeling import DesignSimulationMethod, FlowsheetSolutionApproach, ProcessSimulator
from .process_engineering.process_streams import ProcessStreamRole, ProcessStreamPhase, UtilityType
from .process_engineering.thermodynamics import EquationOfStateModel, ActivityCoefficientModel, ThermodynamicPropertyPackage, MixingRuleModel, PoyntingCorrectionMethod
from .process_engineering.unit_operations import UnitOperationType, ProcessEquipmentType

# Publishing domain
from .publishing.arxiv_categories import ArxivCategory
from .publishing.osti_record import OstiWorkflowStatus, OstiAccessLimitation, OstiCollectionType, OstiSensitivityFlag, OstiOrganizationIdentifierType, OstiProductType, OstiOrganizationType, OstiPersonType, OstiContributorType, OstiRelatedIdentifierType, OstiRelationType, OstiIdentifierType, OstiGeolocationType, OstiMediaLocationType
Expand All @@ -239,7 +248,7 @@
from .time.temporal import DayOfWeek, Month, Quarter, Season, TimePeriod, TimeOfDay, BusinessTimeFrame, GeologicalEra, HistoricalPeriod

# Units domain
from .units.measurements import LengthUnitEnum, MassUnitEnum, VolumeUnitEnum, TemperatureUnitEnum, TimeUnitEnum, PressureUnitEnum, ConcentrationUnitEnum, FrequencyUnitEnum, AngleUnitEnum, DataSizeUnitEnum
from .units.measurements import LengthUnitEnum, MassUnitEnum, VolumeUnitEnum, TemperatureUnitEnum, TimeUnitEnum, PressureUnitEnum, ConcentrationUnitEnum, FrequencyUnitEnum, AngleUnitEnum, DataSizeUnitEnum, MassFlowRateUnitEnum, MolarFlowRateUnitEnum, VolumetricFlowRateUnitEnum
from .units.quantity_kinds import QuantityKindEnum

# Visual domain
Expand All @@ -250,6 +259,7 @@
"AcademicDegree",
"AccessRights",
"AcousticRadiationTypeEnum",
"ActivityCoefficientModel",
"AdditiveManufacturingEnum",
"AgeGroupEnum",
"AgitationTypeEnum",
Expand Down Expand Up @@ -334,6 +344,7 @@
"CellPolarity",
"CellProliferationState",
"CellularityEnum",
"ChemicalIdentifierScheme",
"ChipFabricationNodeType",
"ChiralityEnum",
"ChromatographyType",
Expand Down Expand Up @@ -375,6 +386,7 @@
"CrystalSystemEnum",
"CrystallizationMethod",
"CurrencyChemical",
"CurrencyCode",
"CurrencyCodeISO4217Enum",
"DNABaseEnum",
"DNABaseExtendedEnum",
Expand Down Expand Up @@ -402,6 +414,7 @@
"DefectClassificationEnum",
"DefenseInDepthLevelEnum",
"DerivatizationMethod",
"DesignSimulationMethod",
"DetectionModeEnum",
"Detector",
"DetectorType",
Expand Down Expand Up @@ -438,6 +451,7 @@
"EnvironmentalImpact",
"EnzymeClassEnum",
"EnzymologyAssayEnum",
"EquationOfStateModel",
"EthnicityOMB1997Enum",
"ExecutionModeEnum",
"ExperimentalDesignMethodType",
Expand Down Expand Up @@ -469,6 +483,7 @@
"FireSafetyColorEnum",
"FissileIsotopeEnum",
"FlowerColorEnum",
"FlowsheetSolutionApproach",
"FoodColoringEnum",
"FossilFuelTypeEnum",
"FraudDetectionEnum",
Expand Down Expand Up @@ -597,6 +612,7 @@
"MaritimeSignalColorEnum",
"MarketStructureEnum",
"MassErrorUnit",
"MassFlowRateUnitEnum",
"MassSpectrometerFileFormat",
"MassSpectrometerVendor",
"MassSpectrometryAssayEnum",
Expand Down Expand Up @@ -625,8 +641,10 @@
"MiningPhase",
"MiningType",
"MitoticPhase",
"MixingRuleModel",
"ModeOfInheritance",
"ModelSystemTypeEnum",
"MolarFlowRateUnitEnum",
"Month",
"MouseDevelopmentalStage",
"MousePostnatalAgeGroupEnum",
Expand Down Expand Up @@ -710,6 +728,7 @@
"PolymerTypeEnum",
"PowerPlantStatusEnum",
"PowerUnit",
"PoyntingCorrectionMethod",
"PredictionOutcomeType",
"PresenceEnum",
"PreservationEventOutcome",
Expand All @@ -718,9 +737,15 @@
"PreservationLevelValue",
"PressureUnitEnum",
"PriorityLevelEnum",
"ProcessEquipmentType",
"ProcessImprovementApproachEnum",
"ProcessIndustryCategory",
"ProcessOperationMode",
"ProcessPerformanceMetric",
"ProcessScaleEnum",
"ProcessSimulator",
"ProcessStreamPhase",
"ProcessStreamRole",
"ProcessingStatus",
"ProcurementTypeEnum",
"ProductTypeEnum",
Expand Down Expand Up @@ -865,6 +890,7 @@
"ThermalCyclerTypeEnum",
"ThermalCyclingStepEnum",
"ThermodynamicParameterEnum",
"ThermodynamicPropertyPackage",
"TimeOfDay",
"TimePeriod",
"TimeUnitEnum",
Expand All @@ -889,8 +915,10 @@
"USStateCodeEnum",
"UnconventionalMineralResourceType",
"UniProtSpeciesCode",
"UnitOperationType",
"UpdateFrequency",
"UraniumEnrichmentLevelEnum",
"UtilityType",
"VaccinationPeriodicityEnum",
"VaccinationStatusEnum",
"VaccineCategoryEnum",
Expand All @@ -906,6 +934,7 @@
"VitalStatusEnum",
"VitrificationMethod",
"VolumeUnitEnum",
"VolumetricFlowRateUnitEnum",
"WasteDisposalMethodEnum",
"WasteFacilityTypeEnum",
"WasteHalfLifeCategoryEnum",
Expand Down
20 changes: 20 additions & 0 deletions src/valuesets/enums/bioprocessing/scale_up.py
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,16 @@ class DownstreamProcessEnum(RichEnum):
DISTILLATION = "DISTILLATION"
DRYING = "DRYING"
HOMOGENIZATION = "HOMOGENIZATION"
CLARIFICATION = "CLARIFICATION"
FLOCCULATION = "FLOCCULATION"
ULTRAFILTRATION = "ULTRAFILTRATION"
DIAFILTRATION = "DIAFILTRATION"
TANGENTIAL_FLOW_FILTRATION = "TANGENTIAL_FLOW_FILTRATION"
BUFFER_EXCHANGE = "BUFFER_EXCHANGE"
ADSORPTION = "ADSORPTION"
VIRAL_INACTIVATION = "VIRAL_INACTIVATION"
POLISHING = "POLISHING"
LYOPHILIZATION = "LYOPHILIZATION"

# Set metadata after class creation
DownstreamProcessEnum._metadata = {
Expand All @@ -151,6 +161,16 @@ class DownstreamProcessEnum(RichEnum):
"DISTILLATION": {'description': 'Distillation', 'meaning': 'CHMO:0001534', 'annotations': {'principle': 'Boiling point difference'}},
"DRYING": {'description': 'Drying operations', 'meaning': 'CHMO:0001551', 'annotations': {'types': 'Spray, freeze, vacuum'}},
"HOMOGENIZATION": {'description': 'Cell disruption/homogenization', 'annotations': {'methods': 'High pressure, bead mill'}},
"CLARIFICATION": {'description': 'Removal of cells and debris to produce a clarified harvest', 'annotations': {'methods': 'Centrifugation, depth filtration'}},
"FLOCCULATION": {'description': 'Aggregation of cells and debris into flocs to aid clarification'},
"ULTRAFILTRATION": {'description': 'Membrane concentration retaining macromolecules such as proteins', 'meaning': 'CHMO:0001645', 'annotations': {'mwco': 'Typically 1-1000 kDa'}},
"DIAFILTRATION": {'description': 'Buffer exchange and desalting by ultrafiltration with continuous makeup'},
"TANGENTIAL_FLOW_FILTRATION": {'description': 'Crossflow membrane filtration used for concentration and diafiltration', 'annotations': {'aliases': 'TFF, crossflow filtration'}},
"BUFFER_EXCHANGE": {'description': 'Replacement of the buffer matrix of a product stream'},
"ADSORPTION": {'description': 'Capture of product or impurities onto a solid sorbent'},
"VIRAL_INACTIVATION": {'description': 'Treatment step that inactivates potential viral contaminants', 'annotations': {'methods': 'Low pH, solvent/detergent, heat'}},
"POLISHING": {'description': 'Final chromatographic or filtration steps to remove trace impurities'},
"LYOPHILIZATION": {'description': 'Freeze-drying to produce a stable solid product', 'meaning': 'CHMO:0001553', 'annotations': {'aliases': 'freeze drying'}},
}

class FeedstockTypeEnum(RichEnum):
Expand Down
121 changes: 121 additions & 0 deletions src/valuesets/enums/business/currencies.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
"""
Currency Value Sets

Value set of world currencies identified by their ISO 4217 three-letter alpha codes. Permissible value names are the ISO 4217 alpha-3 codes (an existing standard) rather than upper-snake-case. Covers monetary fields such as the PISCES Standard Flowsheet Format TEA_currency and per-mass price units. This is a curated set of actively circulating currencies and is extensible to the full ISO 4217 list.

Generated from: business/currencies.yaml
"""

from __future__ import annotations

from valuesets.generators.rich_enum import RichEnum

class CurrencyCode(RichEnum):
"""
World currencies by ISO 4217 alpha-3 code. The numeric_code, symbol, and minor_unit (number of decimal places) annotations record the corresponding ISO 4217 attributes.
"""
# Enum members
USD = "USD"
EUR = "EUR"
JPY = "JPY"
GBP = "GBP"
CNY = "CNY"
AUD = "AUD"
CAD = "CAD"
CHF = "CHF"
HKD = "HKD"
SGD = "SGD"
SEK = "SEK"
NOK = "NOK"
DKK = "DKK"
NZD = "NZD"
KRW = "KRW"
INR = "INR"
BRL = "BRL"
ZAR = "ZAR"
RUB = "RUB"
MXN = "MXN"
TRY = "TRY"
PLN = "PLN"
THB = "THB"
IDR = "IDR"
MYR = "MYR"
PHP = "PHP"
AED = "AED"
SAR = "SAR"
ILS = "ILS"
CZK = "CZK"
HUF = "HUF"
RON = "RON"
UAH = "UAH"
CLP = "CLP"
COP = "COP"
ARS = "ARS"
EGP = "EGP"
NGN = "NGN"
KES = "KES"
PKR = "PKR"
BDT = "BDT"
VND = "VND"
TWD = "TWD"
KWD = "KWD"
BHD = "BHD"
OMR = "OMR"
QAR = "QAR"
ISK = "ISK"

# Set metadata after class creation
CurrencyCode._metadata = {
"USD": {'description': 'United States dollar', 'annotations': {'numeric_code': '840', 'symbol': '$', 'minor_unit': 2}},
"EUR": {'description': 'Euro', 'annotations': {'numeric_code': '978', 'symbol': '€', 'minor_unit': 2}},
"JPY": {'description': 'Japanese yen', 'annotations': {'numeric_code': '392', 'symbol': '¥', 'minor_unit': 0}},
"GBP": {'description': 'British pound sterling', 'annotations': {'numeric_code': '826', 'symbol': '£', 'minor_unit': 2}},
"CNY": {'description': 'Chinese yuan renminbi', 'annotations': {'numeric_code': '156', 'symbol': '¥', 'minor_unit': 2}},
"AUD": {'description': 'Australian dollar', 'annotations': {'numeric_code': '036', 'symbol': '$', 'minor_unit': 2}},
"CAD": {'description': 'Canadian dollar', 'annotations': {'numeric_code': '124', 'symbol': '$', 'minor_unit': 2}},
"CHF": {'description': 'Swiss franc', 'annotations': {'numeric_code': '756', 'symbol': 'Fr', 'minor_unit': 2}},
"HKD": {'description': 'Hong Kong dollar', 'annotations': {'numeric_code': '344', 'symbol': '$', 'minor_unit': 2}},
"SGD": {'description': 'Singapore dollar', 'annotations': {'numeric_code': '702', 'symbol': '$', 'minor_unit': 2}},
"SEK": {'description': 'Swedish krona', 'annotations': {'numeric_code': '752', 'symbol': 'kr', 'minor_unit': 2}},
"NOK": {'description': 'Norwegian krone', 'annotations': {'numeric_code': '578', 'symbol': 'kr', 'minor_unit': 2}},
"DKK": {'description': 'Danish krone', 'annotations': {'numeric_code': '208', 'symbol': 'kr', 'minor_unit': 2}},
"NZD": {'description': 'New Zealand dollar', 'annotations': {'numeric_code': '554', 'symbol': '$', 'minor_unit': 2}},
"KRW": {'description': 'South Korean won', 'annotations': {'numeric_code': '410', 'symbol': '₩', 'minor_unit': 0}},
"INR": {'description': 'Indian rupee', 'annotations': {'numeric_code': '356', 'symbol': '₹', 'minor_unit': 2}},
"BRL": {'description': 'Brazilian real', 'annotations': {'numeric_code': '986', 'symbol': 'R$', 'minor_unit': 2}},
"ZAR": {'description': 'South African rand', 'annotations': {'numeric_code': '710', 'symbol': 'R', 'minor_unit': 2}},
"RUB": {'description': 'Russian ruble', 'annotations': {'numeric_code': '643', 'symbol': '₽', 'minor_unit': 2}},
"MXN": {'description': 'Mexican peso', 'annotations': {'numeric_code': '484', 'symbol': '$', 'minor_unit': 2}},
"TRY": {'description': 'Turkish lira', 'annotations': {'numeric_code': '949', 'symbol': '₺', 'minor_unit': 2}},
"PLN": {'description': 'Polish zloty', 'annotations': {'numeric_code': '985', 'symbol': 'zł', 'minor_unit': 2}},
"THB": {'description': 'Thai baht', 'annotations': {'numeric_code': '764', 'symbol': '฿', 'minor_unit': 2}},
"IDR": {'description': 'Indonesian rupiah', 'annotations': {'numeric_code': '360', 'symbol': 'Rp', 'minor_unit': 2}},
"MYR": {'description': 'Malaysian ringgit', 'annotations': {'numeric_code': '458', 'symbol': 'RM', 'minor_unit': 2}},
"PHP": {'description': 'Philippine peso', 'annotations': {'numeric_code': '608', 'symbol': '₱', 'minor_unit': 2}},
"AED": {'description': 'United Arab Emirates dirham', 'annotations': {'numeric_code': '784', 'minor_unit': 2}},
"SAR": {'description': 'Saudi riyal', 'annotations': {'numeric_code': '682', 'minor_unit': 2}},
"ILS": {'description': 'Israeli new shekel', 'annotations': {'numeric_code': '376', 'symbol': '₪', 'minor_unit': 2}},
"CZK": {'description': 'Czech koruna', 'annotations': {'numeric_code': '203', 'symbol': 'Kč', 'minor_unit': 2}},
"HUF": {'description': 'Hungarian forint', 'annotations': {'numeric_code': '348', 'symbol': 'Ft', 'minor_unit': 2}},
"RON": {'description': 'Romanian leu', 'annotations': {'numeric_code': '946', 'symbol': 'lei', 'minor_unit': 2}},
"UAH": {'description': 'Ukrainian hryvnia', 'annotations': {'numeric_code': '980', 'symbol': '₴', 'minor_unit': 2}},
"CLP": {'description': 'Chilean peso', 'annotations': {'numeric_code': '152', 'symbol': '$', 'minor_unit': 0}},
"COP": {'description': 'Colombian peso', 'annotations': {'numeric_code': '170', 'symbol': '$', 'minor_unit': 2}},
"ARS": {'description': 'Argentine peso', 'annotations': {'numeric_code': '032', 'symbol': '$', 'minor_unit': 2}},
"EGP": {'description': 'Egyptian pound', 'annotations': {'numeric_code': '818', 'symbol': '£', 'minor_unit': 2}},
"NGN": {'description': 'Nigerian naira', 'annotations': {'numeric_code': '566', 'symbol': '₦', 'minor_unit': 2}},
"KES": {'description': 'Kenyan shilling', 'annotations': {'numeric_code': '404', 'symbol': 'Sh', 'minor_unit': 2}},
"PKR": {'description': 'Pakistani rupee', 'annotations': {'numeric_code': '586', 'symbol': '₨', 'minor_unit': 2}},
"BDT": {'description': 'Bangladeshi taka', 'annotations': {'numeric_code': '050', 'symbol': '৳', 'minor_unit': 2}},
"VND": {'description': 'Vietnamese dong', 'annotations': {'numeric_code': '704', 'symbol': '₫', 'minor_unit': 0}},
"TWD": {'description': 'New Taiwan dollar', 'annotations': {'numeric_code': '901', 'symbol': '$', 'minor_unit': 2}},
"KWD": {'description': 'Kuwaiti dinar', 'annotations': {'numeric_code': '414', 'minor_unit': 3}},
"BHD": {'description': 'Bahraini dinar', 'annotations': {'numeric_code': '048', 'minor_unit': 3}},
"OMR": {'description': 'Omani rial', 'annotations': {'numeric_code': '512', 'minor_unit': 3}},
"QAR": {'description': 'Qatari riyal', 'annotations': {'numeric_code': '634', 'minor_unit': 2}},
"ISK": {'description': 'Icelandic krona', 'annotations': {'numeric_code': '352', 'symbol': 'kr', 'minor_unit': 0}},
}

__all__ = [
"CurrencyCode",
]
47 changes: 47 additions & 0 deletions src/valuesets/enums/chemistry/identifiers.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
"""
Chemical Identifier Value Sets

Value sets for the identifier schemes used to reference chemical substances. Covers fields such as the PISCES Standard Flowsheet Format chemical registry_id ("CAS number or SMILES string").

Generated from: chemistry/identifiers.yaml
"""

from __future__ import annotations

from valuesets.generators.rich_enum import RichEnum

class ChemicalIdentifierScheme(RichEnum):
"""
Schemes used to identify chemical substances, including registry numbers, line notations, structure-derived keys, and database accessions.
"""
# Enum members
CAS_RN = "CAS_RN"
SMILES = "SMILES"
INCHI = "INCHI"
INCHIKEY = "INCHIKEY"
IUPAC_NAME = "IUPAC_NAME"
MOLECULAR_FORMULA = "MOLECULAR_FORMULA"
PUBCHEM_CID = "PUBCHEM_CID"
CHEBI_ID = "CHEBI_ID"
KEGG_COMPOUND = "KEGG_COMPOUND"
DRUGBANK_ID = "DRUGBANK_ID"
EC_NUMBER = "EC_NUMBER"

# Set metadata after class creation
ChemicalIdentifierScheme._metadata = {
"CAS_RN": {'description': 'CAS Registry Number assigned by the Chemical Abstracts Service', 'annotations': {'example': '64-17-5'}},
"SMILES": {'description': 'Simplified Molecular-Input Line-Entry System structure notation', 'annotations': {'example': 'CCO'}},
"INCHI": {'description': 'IUPAC International Chemical Identifier structure string', 'annotations': {'example': 'InChI=1S/C2H6O/c1-2-3/h3H,2H2,1H3'}},
"INCHIKEY": {'description': 'Hashed fixed-length form of an InChI', 'annotations': {'example': 'LFQSCWFLJHTTHZ-UHFFFAOYSA-N'}},
"IUPAC_NAME": {'description': 'Systematic IUPAC chemical name'},
"MOLECULAR_FORMULA": {'description': 'Molecular or empirical chemical formula', 'annotations': {'example': 'C2H6O'}},
"PUBCHEM_CID": {'description': 'PubChem Compound Identifier'},
"CHEBI_ID": {'description': 'ChEBI ontology identifier'},
"KEGG_COMPOUND": {'description': 'KEGG COMPOUND database accession'},
"DRUGBANK_ID": {'description': 'DrugBank accession'},
"EC_NUMBER": {'description': 'European Community (EINECS/EC) substance number'},
}

__all__ = [
"ChemicalIdentifierScheme",
]
1 change: 1 addition & 0 deletions src/valuesets/enums/process_engineering/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
"""Auto-generated package."""
Loading