Skip to content

Commit 65874d4

Browse files
korbinibcomcon1
andauthored
inital version for experiment YAML template and JSON schema (#460)
* inital version for experiment YAML template and JSON schema * Update experiment schema by removing redundant fields Removed unnecessary required fields from the experiment schema. * Fix typos and enhance comments in experiment_template.yaml Updated comments and corrected typos in the experiment template schema. * Update LAMBDA type in experiment_template.yaml Changed LAMBDA type from string to number for accuracy. * Enhance experiment schema with new properties Updated the experiment schema and modified required fields based on conditions. * Update src/fairmd/lipids/schema_validation/schema/experiment_schema.json Co-authored-by: Korbinian Bösl <korbinian.bosl@uib.no> * Update experiment schema to enforce min ARTICLE_DOI and DATA_DOI --------- Co-authored-by: Alexey Nesterenko <comconadin@gmail.com>
1 parent ff5fe83 commit 65874d4

2 files changed

Lines changed: 250 additions & 0 deletions

File tree

Lines changed: 187 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,187 @@
1+
{
2+
"$schema": "http://json-schema.org/draft-07/schema#",
3+
"type": "object",
4+
"additionalProperties": false,
5+
"properties": {
6+
"ARTICLE_DOI": {
7+
"type": "string",
8+
"description": "DOI of the original publication of the experimental data"
9+
},
10+
"DATA_DOI": {
11+
"type": "string",
12+
"description": "DOI of the dataset deposition with raw NMR data"
13+
},
14+
"DATA_REF": {
15+
"type": "string",
16+
"description": "Reference to deposited dataset"
17+
},
18+
"TEMPERATURE": {
19+
"type": "number",
20+
"description": "Temperature (K) of the experiment"
21+
},
22+
"MEMBRANE_COMPOSITION": {
23+
"type": "object",
24+
"description": "Dictionary of molar fractions of membrane phase",
25+
"additionalProperties": {
26+
"type": "number"
27+
}
28+
},
29+
"SOLUTION_COMPOSITION": {
30+
"type": "object",
31+
"description": "Dictionary of ion concentrations in the system",
32+
"additionalProperties": {
33+
"type": "number"
34+
}
35+
},
36+
"ADDITIONAL_MOLECULES": {
37+
"type": "object",
38+
"description": "Dictionary of molecules which are not in the databank",
39+
"additionalProperties": true
40+
},
41+
"TOTAL_HYDRATION": {
42+
"type": "number",
43+
"description": "Total hydration of the system (water mass %)"
44+
},
45+
"PH": {
46+
"anyOf": [
47+
{ "type": "number", "minimum": 0, "maximum": 14 },
48+
{ "type": "string", "enum": ["UNKNOWN"] },
49+
{ "type": "string", "pattern": "^[0-9]+([.][0-9]+)?-[0-9]+([.][0-9]+)?" }
50+
],
51+
"description": "pH of the system"
52+
},
53+
"PH_METHOD": {
54+
"type": "string",
55+
"description": "Method of pH setting or measurement (buffer / measurement)"
56+
},
57+
"REAGENT_SOURCES": {
58+
"type": "object",
59+
"description": "Description of lipid reagents. Source, purity, etc.",
60+
"additionalProperties": {
61+
"type": "string"
62+
}
63+
},
64+
"SAMPLE_PROTOCOL": {
65+
"type": "string",
66+
"description": "Protocol for sample preparation (in free format, references are welcome)"
67+
},
68+
"NMR": {
69+
"type": "object",
70+
"description": "NMR-Specific Metadata",
71+
"additionalProperties": false,
72+
"properties": {
73+
"T_RF_HEATING": {
74+
"type": "string"
75+
},
76+
"INSTRUMENT": {
77+
"type": "string"
78+
},
79+
"METHOD": {
80+
"type": "string",
81+
"description": "Field identifying the NMR method used (formatted as METHOD:SUBMETHOD, e.g., '2H:QE').",
82+
"examples": [
83+
"2H:SP",
84+
"2H:QE",
85+
"CDLF:REDOR",
86+
"CDLF:DIPSHIFT",
87+
"CDLF:recDIPSHIFT",
88+
"PDLF:DROSS",
89+
"PDLF:R18_1^7",
90+
"PDLF:see_comments"
91+
],
92+
"pattern": "^(2H:(SP|QE|see_comments)|CDLF:(REDOR|DIPSHIFT|recDIPSHIFT|see_comments)|PDLF:(DROSS|R[0-9]+(_[0-9]+)?\\^[0-9]+|see_comments))$"
93+
},
94+
"SIGN_MEASURED": {
95+
"type": "string"
96+
},
97+
"DETAILS": {
98+
"type": "string"
99+
}
100+
}
101+
},
102+
"XRAY": {
103+
"type": "object",
104+
"description": "X-ray Specific Metadata",
105+
"additionalProperties": false,
106+
"properties": {
107+
"SOURCE": {
108+
"type": "string"
109+
},
110+
"LAMBDA": {
111+
"type": "number"
112+
},
113+
"QRANGE": {
114+
"type": "string"
115+
},
116+
"DETECTOR": {
117+
"type": "string"
118+
},
119+
"DISTANCE": {
120+
"type": "number"
121+
},
122+
"DATATYPE": {
123+
"type": "string",
124+
"enum": [
125+
"batch",
126+
"SEC"
127+
]
128+
},
129+
"EXPOSURE": {
130+
"type": "number"
131+
},
132+
"FRAMES": {
133+
"type": "number"
134+
},
135+
"SAMPLE_TYPE": {
136+
"type": "string",
137+
"enum": [
138+
"MLV",
139+
"SUV",
140+
"GUV",
141+
"OS",
142+
"BIC"
143+
]
144+
}
145+
}
146+
}
147+
},
148+
"required": [
149+
"TEMPERATURE",
150+
"MEMBRANE_COMPOSITION",
151+
"TOTAL_HYDRATION",
152+
"PH"
153+
],
154+
"anyOf": [
155+
{
156+
"required": ["ARTICLE_DOI"]
157+
},
158+
{
159+
"required": ["DATA_DOI"]
160+
}
161+
],
162+
"oneOf": [
163+
{
164+
"required": [
165+
"NMR"
166+
]
167+
},
168+
{
169+
"required": [
170+
"XRAY"
171+
]
172+
}
173+
],
174+
"if": {
175+
"properties": {
176+
"PH": { "type": "string", "enum": ["UNKNOWN"] }
177+
}
178+
},
179+
"then": {
180+
"required": []
181+
},
182+
"else": {
183+
"required": [
184+
"PH_METHOD"
185+
]
186+
}
187+
}
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
# Experiment Metadata Template
2+
3+
# Global Metadata
4+
ARTICLE_DOI: string # DOI of the of the original publication of the experimental data
5+
DATA_DOI: string # DOI of the dataset deposition with raw data
6+
DATA_REF: string # reference to deposited dataset
7+
8+
TEMPERATURE: number # Temperature (K) of the experiment
9+
10+
# Membrane Composition dictionary of molar fractions of membrane phase
11+
MEMBRANE_COMPOSITION: object
12+
# Example:
13+
# POPC: 0.93
14+
# CHOL: 0.07
15+
16+
17+
# Solution Composition dictionary of ion concentrations in the system
18+
SOLUTION_COMPOSITION: object
19+
# Example:
20+
# SOD: 0.5
21+
# CLA: 0.24
22+
# GLUCOSE: 0.1
23+
24+
# Additional Molecules dictionary of molecules which are not in the databank
25+
ADDITIONAL_MOLECULES: object
26+
# Example:
27+
# TFA:
28+
# name: trifluoroacetic acid
29+
# concentration: 0.1
30+
31+
TOTAL_HYDRATION: number # Total hydration of the system (water mass %)
32+
PH: string # pH of the system (number or UNKNOWN)
33+
PH_METHOD: string # Method of pH setting or measurement (buffer / measurement)
34+
35+
# Reagent Sources description of lipid reagents. Source, purity, etc.
36+
REAGENT_SOURCES: object
37+
# Example:
38+
# POPC: Avanti Polar Lipids
39+
40+
41+
SAMPLE_PROTOCOL: string # Protocol for sample preparation (in free format, references are welcome).
42+
43+
#Required: one of NMR-Specific Metadata or X-ray Specific Metadata
44+
45+
# NMR-Specific Metadata
46+
NMR:
47+
T_RF_HEATING: string # Correction of the temperature according to RF heating
48+
INSTRUMENT: string # Instrument name (including field)
49+
METHOD: string # NMR method (e.g., "2H:QE") check https://nmrlipids.github.io/FAIRMD_lipids/stable/schemas/experiment_metadata.html#nmr-specific-fields for options
50+
SIGN_MEASURED: string # Method of OP measurement "abbr1:abbr2" (see detailed explaining below)
51+
DETAILS: string # Additional experiment details
52+
53+
# X-ray Specific Metadata
54+
XRAY:
55+
SOURCE: string # X-ray source name
56+
LAMBDA: number # Source wavelength or range. Wavelength (and/or range) of the X-ray beam used (in Ångstroms)
57+
QRANGE: number # Scattering detection range (Q-range). The accessible scattering vector range, typically given in 1/Å.
58+
DETECTOR: string # Detector type (e.g., CCD camera, PILATUS, or other detector model).
59+
DISTANCE: number # Distance to detector (m)
60+
DATATYPE: string # Measurement data type. Batch mode or size-exclusion chromatography (SEC) mode.
61+
EXPOSURE: number # Exposure time per frame. The total data acquisition time per measurement frame, usually given in seconds.
62+
FRAMES: number # Number of frames
63+
SAMPLE_TYPE: string # 'MLV', 'SUV', 'GUV', 'OS' (oriented sample), 'BIC'. The type of sample used, with definitions: MLV (multilamellar vesicles), SUV (small unilamellar vesicles), GUV (giant unilamellar vesicles), OS (oriented sample), BIC (bicelles).

0 commit comments

Comments
 (0)