-
Notifications
You must be signed in to change notification settings - Fork 2
/
submission_form_schema.json
239 lines (236 loc) · 6.74 KB
/
submission_form_schema.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
{
"$id": "https://github.com/inab/OEB_level2_data_migration/submission-form-json-schemas",
"$schema": "https://json-schema.org/draft/2019-09/schema",
"title": "Schema that defines the set of fields to be filled for a submission to OpenEBench database",
"type": "object",
"$defs": {
"ParticipantTool": {
"title": "Participant Tool",
"description": "The id of the tool used to generate the dataset. Should be selected by uploader, using API",
"type": "string",
"pattern": "^OEBT[0-9]{3}[A-Z0-9]{7}$",
"options": {
"hidden": true
}
},
"DataVersion": {
"title": "Version",
"description": "Version (or release date) of the dataset",
"minLength": 1,
"type": ["string","number"],
"options": {
"hidden": true
}
},
"DataContacts": {
"title": "Contacts",
"description": "Emails of the dataset contact(s). Should be registered in Mongo and OIDC, as they are going to be used to do the proper internal mappings",
"type": "array",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "string",
"format": "autocomplete",
"options": {
"autocomplete": {
"search": "search_zza",
"getResultValue": "getResultValue_zza",
"renderResult": "renderResult_zza",
"autoSelect": true
}
}
}
},
"ParticipantFile": {
"title": "Participant file associated",
"description": "Path or URI (e.g. DOI) to the participant file associated with the consolidated results",
"type": "string",
"readonly": true
},
"ParticipantElements": {
"type": "object",
"properties": {
"tool_id": {
"$ref": "#/$defs/ParticipantTool"
},
"data_version": {
"$ref": "#/$defs/DataVersion"
},
"data_contacts": {
"$ref": "#/$defs/DataContacts"
},
"participant_id": {
"type": "string",
"title": "The id / name of the tool which generated this dataset",
"minLength": 1,
"primary_key": {
"name": "participant_id_key",
"members": [ "." ]
}
},
"exclude": {
"title": "Should participant be excluded?",
"type": "boolean",
"default": false
},
"participant_file": {
"$ref": "#/$defs/ParticipantFile"
}
},
"required": ["tool_id","data_version","data_contacts"]
}
},
"properties": {
"consolidated_oeb_data": {
"title": "Consolidated dataset path or URL",
"description": "Path or publicly reachable URL to the consolidated dataset, coming from an OpenEBench standardized benchmarking workflow (e.g.https://github.com/inab/TCGA_benchmarking_workflow",
"type": "string",
"readonly": true,
"options": {
"hidden": true
}
},
"data_visibility": {
"title": "Datasets visibility",
"description": "The desired visibility of the submitted datasets, which must be acknowledged by the APIs",
"type": "string",
"enum": ["public", "community", "challenge", "participant"],
"default": "public",
"readonly": true
},
"benchmarking_event_id": {
"title": "Benchmarking event",
"description": "The unique id of the benchmarking event the dataset belongs to, as is returned by the API",
"type": "string",
"pattern": "^OEBE[0-9]{3}[A-Z0-9]{7}$",
"readonly": true
},
"participant_file": {
"$ref": "#/$defs/ParticipantFile"
},
"community_id": {
"title": "OEB community",
"description": "The unique id of the community where the data should be uploaded. Should come from VRE workflow. (This parameter is not needed any more)",
"type": "string",
"pattern": "^OEBC[0-9]{3}$",
"options": {
"hidden": true
}
},
"tool_id": {
"$ref": "#/$defs/ParticipantTool"
},
"tool_mapping": {
"title": "List of tools",
"type": "array",
"minItems": 1,
"items": {
"$ref": "#/$defs/ParticipantElements"
},
"unevaluatedProperties": false
},
"tool_selection": {
"title": "Participant Tool",
"description": "The id of the tool used to generate the dataset. Should be selected by uploader, using API",
"type": "string",
"format": "selectize",
"options": {
"selectize": {
"load": "load",
"render": "render",
"placeholder": "Name of your tool",
"valueField": "_id",
"labelField": "name",
"searchField": "name",
"options": []
}
}
},
"dataset_submission_id": {
"title": "Dataset submission id",
"description": "The unique identifier of the dataset which will hold the identifiers of all the loaded/updated datasets. Beware, this id should be unique! If it is not set, a UUIDv1 is used",
"type": "string",
"options": {
"hidden": true
}
},
"workflow_oeb_id": {
"title": "OEB Workflow",
"description": "The id of the workflow (as a tool) used to compute the assessment metrics. Should be associated to VRE tool",
"type": "string",
"pattern": "^OEBT[0-9]{3}[A-Z0-9]{7}$",
"options": {
"hidden": true
}
},
"data_model_repo": {
"title": "OpenEBench benchmarking data model repository",
"description": "The git repository URI, needed to check out the data model",
"type": "string",
"format": "uri",
"minLength": 1,
"default": "https://github.com/inab/benchmarking-data-model.git",
"options": {
"hidden": true
}
},
"data_model_tag": {
"title": "Data model tag",
"description": "Either the tag, branch or checkout hash needed to fetch the right version of the data model",
"type": "string",
"minLength": 1,
"default": "6495b7317f830ad739591be2de1e279ea6c4c0d8",
"options": {
"hidden": true
}
},
"data_model_reldir": {
"title": "Data model relative path",
"description": "Within a checked-out copy of the benchmarking data model repository, the relative path to the data model",
"type": "string",
"format": "uri-reference",
"default": "json-schemas/1.0.x",
"options": {
"hidden": true
}
},
"fix_original_ids": {
"title": "Fix non-conformant original ids",
"description": "Fix original ids provided by the minimal datasets, so they conform the original id naming conventions",
"type": "boolean",
"default": true
},
"data_storage_endpoint": {
"$comment": "This key is only allowed for backward compatibility",
"title": "Storage endpoint",
"description": "Storage endpoint used to submit the assessment dataset to a perdurable storage which is able to provide a persistent id (e.g. a DOI)",
"type": "string",
"format": "uri",
"minLength": 1
}
},
"dependentSchemas": {
"tool_id": {
"$ref": "#/$defs/ParticipantElements"
}
},
"oneOf": [
{
"required": ["tool_id", "participant_file"],
"not": {
"required": ["tool_mapping"]
}
},
{
"required": ["tool_mapping"],
"not": {
"required": ["tool_id"]
}
}
],
"required": [
"consolidated_oeb_data",
"data_visibility",
"benchmarking_event_id"
]
}