A LinkML schema for representing Key Event and Outcome measurements, assays, and experimental protocols in the context of environmental health sciences (EHS) outcomes research.
Documentation · Schema · Examples · Artifacts
Purpose
This data model provides a standardized way to capture and exchange data about airway biology assays relevant to respiratory health outcomes, including:
- Ciliary function - Beat frequency, active area, morphology
- Airway surface liquid - ASL height, periciliary layer depth, ion composition
- Mucociliary clearance - Transport rates, directionality, clearance efficiency
- Oxidative stress - ROS, lipid peroxidation, antioxidant capacity
- Ion channel function - CFTR chloride secretion, sweat chloride
- Signaling pathways - EGFR phosphorylation, downstream kinases
- Mucin biology - Goblet cells, MUC5AC/MUC5B expression
- Inflammatory markers - BALF/sputum cell counts, cytokines
- Lung function - Spirometry outcomes (FEV1, FVC)
- Gene expression - Target gene mRNA levels
Key Features
- Assay-centric architecture with domain-specific assay classes using named measurement slots
- StudySubject hierarchy for describing biological systems: cell cultures, human/animal subjects, populations
- Typed protocol hierarchy: ImagingProtocol, MolecularAssayProtocol, StainingProtocol, SpirometryProtocol
- AOP Framework integration: KeyEvent and AdverseOutcomePathway classes with assay linkage
- Ontology-backed entities mapped to GO, ChEBI, CL, UO, OBI, and other biomedical ontologies
Getting Started
The schema can be used to:
- Validate data - Ensure your data conforms to the model
- Generate code - Create Python dataclasses, Pydantic models, JSON Schema
- Transform data - Convert between JSON, YAML, RDF, and other formats
Development Workflow
For local development, use uv and just as the canonical entry points.
The repository may contain underlying Python, npm, and LinkML commands, but contributors
should treat the just recipes as the supported interface for routine setup, testing,
and generation tasks.
Prerequisites
uvfor Python environment and dependency managementjustfor repository task automationnodeandnpmfor DataHarmonizer frontend builds
Setup
Install the Python dependencies managed by the repo:
just install
Common Commands
- Run the full validation workflow:
just test - Regenerate project artifacts:
just gen-project - Regenerate schema documentation:
just gen-doc - Build the DataHarmonizer assets:
just build-dh - List all available recipes:
just --list
If you need to run a Python tool directly, prefer uv run ... so it executes inside the
managed project environment.
Repository Structure
- docs/ - mkdocs-managed documentation
- examples/ - Examples of using the schema
- project/ - project files (auto-generated, do not edit)
- src/soma/schema/ - LinkML schema (edit this)
- src/soma/datamodel/ - generated Python datamodel
- tests/ - Python tests
Developer Tools
There are several pre-defined command-recipes available.
They are written for the command runner just. To list all pre-defined commands, run just or just --list.
Credits
This project uses the template linkml-project-copier published as doi:10.5281/zenodo.15163584.
Metadata
Release files for soma-schema 0.2.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| soma_schema-0.2.3.tar.gz | 138.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| soma_schema-0.2.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 226.9 kB
Release files / soma_schema-0.2.3.tar.gz
| Download URL | soma_schema-0.2.3.tar.gz |
|---|---|
| Size | 138.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
384c47c843dd08a1c4a9869b5fa0449a6a3d0579f1c77c431aa93a4e1784e855
|
|
BLAKE2b-256 checksum How to use checksums |
63f7991014894c35095332aed3c17e0fdddc0a93b2fa2de7728113112eebbb50
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.
Transparency logRelease files / soma_schema-0.2.3-py3-none-any.whl
| Download URL | soma_schema-0.2.3-py3-none-any.whl |
|---|---|
| Size | 88.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
23234c02b877e7bad551c1171117690103d3f1a1d61458c93218b095f9fb6544
|
|
BLAKE2b-256 checksum How to use checksums |
7462f9d301aea224fe07e00cc2e13322ae9339f56c6c6ab51376b744dcc4d8b2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.
Transparency log