Copy from hub.datalad/datalink/org: Construct a data dictionary for a neurobagel instance #15
Labels
No labels
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
orinoco/tools#15
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Source: https://hub.datalad.org/datalink/org/issues/3
Docs: https://neurobagel.org/dictionaries/
Example: https://github.com/neurobagel/neurobagel_examples/blob/main/data-upload/example_synthetic.json
A starting point could be the same as the example and would include the columns that neurobagel present as phenotypic attributes:
including a way to specify missing values. We can start by constructing a LinkML schema that cover these attributes and then try exporting this to jsonschema.
Note: This seems to be the jsonschema specification of neurobagel data dictionaries: https://github.com/neurobagel/annotation_tool/blob/main/assets/neurobagel_data_dictionary.schema.json
I started out with inspecting the neurobagel data dictionary jsonschema, then created a LinkML schema for it: https://github.com/jsheunis/datalad-concepts/blob/neurobagel/src/nbdd/unreleased.yaml
Notes about this LinkML schema:
DataDictionaryschema does not specify a specific property for which aContinuousColumnorCategoricalColumncan be added, it is put underadditionalProperties. I could not find a straightforward way to translate this into the LinkML world, so I created a new slot for that,has_columns.The goal of doing the above was not directly to solve this issue, just to explore. It led to some problems which were good in terms of UI testing for
shacl-vue, specifically dealing with SHACL logical constraints, such assh:orwhich is derived from LinkMLany_ofvia jsonschemaanyOf. The resulting form generated byshacl-vuecan be used as an option to create data dictionaries.However, this issue is actually about seeing of the terms and structure of a data dictionary can be built into a schema such that an export can be used directly as a data dictionary input to neurobagel. The current idea I have is to take the
sdduischema as baseline, which was created as the first prototype schema for using withshacl-vue, and then add: