MHD Common Data Model v0.1¶
MHD Common Data Model is a connected graph of nodes and edges. MHD Domain Objects and MHD Cv Term Objects define the graph nodes and MHD Relationship Object (including both external and embedded relationships) define the edges. This graph-based structure allows for flexible, modular, structured, and consistent representation of metabolomics datasets.
MHD Common Data Model Nodes¶
MHD Domain Objects
Each of MHD Domain Objects corresponds to a concept commonly used in metabolomics dataset metadata files.
List of MHD Domain Objects:
- Study
- Publication
- Person
- Organization
- Project
- Factor Definition
- Protocol
- Parameter Definition
- Metadata File
- Raw Data File
- Derived Data File
- Result File
- Supplementary File
- Metabolite
- Assay
- Subject
- Sample
- Characteristic Definition
- Sample Run
- Sample Run Configuration
The following properties are common for all MHD Domain Objects.
Property Name | Necessity | Type | Description |
---|---|---|---|
id | required | str |
The id property uniquely identifies the object. All MHD Domain Objects have unique identifiers even if their values are exactly same. |
type | required | str |
The type MUST be lower case and '-' seperated value of node name. e.g. raw-data-file for Raw Data File |
created_by_ref | optional | str |
The id of the data provider. |
tags | optional | list of KeyValue |
Key and values. key and values may be CV Term |
descriptors | optional | list of CvTerm |
Descriptors for the object |
external_references | optional | list of KeyValue |
List of external references that describes the resource represented by the node. Key MUST be a URI type (FTP, URL, etc.) |
uri_list | optional | list of KeyValue |
List of URI addresses to access the resource represented by the node |
MHD Cv Term Objects
MHD Common Data Model defines a set of data types (MHD Cv Term Objects) presented as CV Term.
List of MHD Cv Term Objects: Characteristic Type, Characteristic Value, Data Provider, Factor Type, Factor Value, Parameter Type, Protocol Type, Parameter Value, Uri Type
The following properties are common for all MHD Cv Term Objects.
Property Name | Necessity | Type | Description |
---|---|---|---|
id | required | str |
The id property uniquely identifies the object. All MHD Cv Term Objects have same identifiers if their values are exactly same. |
type | required | str |
The type MUST be lower case and '-' seperated value of node name. e.g. parameter-value for Paramter Value |
MHD Common Data Model Relationships¶
A relationship is a link between MHD Domain Objects or MHD Cv Term Objects that describes the way in which the objects are related. Relationships can be represented using an MHD Relationship Object or a property (embedded relationship) in a node. Property names that used as embedded relationship in a node end with _ref
or _refs
(for multiple), and their values are id's of target nodes.
MHD Relationship Object has the following properties.
Property Name | Necessity | Type | Description |
---|---|---|---|
id | required | MhdRelationshipObjectId |
The id property uniquely identifies the object. |
type | required | str |
The type MUST be 'relationship' |
created_by_ref | optional | str |
The id of the data provider. |
tags | optional | list[KeyValue] |
Key and values. key and values may be CV Term |
external_references | optional | list[KeyValue] |
List of external references that describes the resource represented by the relationship. Key MUST be a URI type (FTP, URL, etc.) |
uri_list | optional | list[KeyValue] |
List of URI addresses to access the resource represented by the relationship |
source_ref | required | CvTermValueObjectId or CvTermObjectId or MhdObjectId |
The id of source node |
relationship_name | required | str |
Relationship name |
target_ref | required | CvTermValueObjectId or CvTermObjectId or MhdObjectId |
The id of target node |
source_role | optional | str |
Role name of source node |
target_role | optional | str |
Role name of target node |
Node and Relationship Property Types¶
Primitive Types¶
Primitive data types are string (str), number (int or float), boolean (bool), and null (None)
.
The following string formatted JSON schema data types are also supported:
- date: ISO 8601 calendar date. e.g. 2025-05-18
- time: ISO 8601 time without timezone. e.g. 14:30:00
- date-time: ISO 8601 full timestamp. e.g. 2025-05-18T14:30:00Z
- email: RFC 5322 email address. e.g. help@metabolomicshub.org
- uri: Full URI. e.g. https://metabolomicshub.org/docs
Node and Relationship Ids¶
MhdObjectId
The id property of MHD Domain Objects MUST have three parts. These parts are merged with "--"
seperator to create id.
mhd
constant[type name, e.g. study, protocol, etc.]
UUID4 value
# Pattern for id property of MHD Domain Objects
^mhd--[-a-zA-Z0-9]+--[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
# Example MHD Domain Object id
mhd--study--51be6a20-0e5a-4c2d-9177-f261193dc30c
CvTermObjectId
The id property of MHD Cv Term Objects MUST have three parts. These parts are merged with "--"
seperator to create id.
cv
constant[type name, e.g. technology-type, factor-definition, etc.]
UUID5 value
ofsource, accession, and name
fields' values [namespace is MHD namespace with a constantefb4f8e4-d08b-4979-916e-600c4985e7f2
]
# Pattern for id property of MHD Cv Term Objects
^cv--[-a-zA-Z0-9]+--[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
# Example MHD Cv Term Object id
cv--factor-definition--66be6a20-0e5a-4c2d-9177-f261193dc30c
CvTermValueObjectId
The id property of MHD Cv Term Objects with value MUST have three parts. These parts are merged with "--"
seperator to create id.
cv-value
constant[type name, e.g. data-provider, metabolite-definition, etc.]
UUID5 value
ofsource, accession, name and value
fields' values [namespace is MHD namespace with a constantefb4f8e4-d08b-4979-916e-600c4985e7f2
]
# Pattern for id property of MHD Cv Term Value Objects
^cv-value--[-a-zA-Z0-9]+--[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
# Example MHD Cv Term Value Object id
cv-value--data-provider--88be6a20-0e5a-4c2d-9177-f261193dc30c
MhdRelationshipObjectId
The id property of MHD Relationship Object MUST have three parts. These parts are merged with "--"
seperator to create id.
rel
constantrelationship
constantUUID5 value
ofsource_ref, relationship_name, target_ref
fields' values [namespace is MHD namespace with a constantefb4f8e4-d08b-4979-916e-600c4985e7f2
]
# Pattern for id property of MHD Relationship Object
^rel--[-a-zA-Z0-9]+--[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$
# Example MHD Relationship Object id
rel--relationship--99be6a20-0e5a-4c2d-9177-f261193dc30c
CvTerm¶
Property Name | Necessity | Type | Description |
---|---|---|---|
source | required | str | Source of CV term. e.g., NCIT, EFO, etc. |
accession | required | str | Accession number CV Term in CURIES format. e.g., EFO:0001742 |
name | required | str | Label of CV Term. e.g., publication status |
QuantitativeValue¶
Property Name | Necessity | Type | Description |
---|---|---|---|
value | required | str or int or float | Value associated with CV Term. e.g., 2 |
unit | optional | CV Term | Unit of value. [OBI, OBI:0000984, dose] |
CvTermValue¶
Property Name | Necessity | Type | Description |
---|---|---|---|
source | required | str | Source of CV term. e.g., NCIT, EFO, etc. |
accession | required | str | Accession number CV Term in CURIES format. e.g., NCIT:C189151 |
name | required | str | Label of CV Term. e.g., Study Data Repository |
value | required | str | Value associated with CV Term. e.g., MetaboLights |
unit | optional | CV Term | Unit of value. |
KeyValue¶
Property Name | Necessity | Type | Description |
---|---|---|---|
key | required | str or CvTermObjectId or MhdObjectId or CvTerm |
Key of the object. It can be a id of a node, str or CV Term |
value | required | CvTermValueObjectId or CvTermObjectId or MhdObjectId or str or CvTerm or CvTermValue or QuantitativeValue |
Value of the object. It can be a id of a node, str, CV Term or Cv Term Value |