NeurodataWithoutBorders / nwb-schema

Data format specification schema for the NWB neurophysiology data format
http://nwb-schema.readthedocs.io
Other
52 stars 16 forks source link

place for protocols.io IDs #577

Open bendichter opened 1 week ago

bendichter commented 1 week ago

This came from a convo I had with Matt Lewis at the BRAIN meeting. He was asking for a place to put protocols.io IDs. Currently, the DANDI Archive has a metadata slot that expects these IDs. We have a field called protocol:

https://github.com/NeurodataWithoutBorders/nwb-schema/blob/3ad7aa370907c2cc177d033065dcba52140ca5a7/core/nwb.file.yaml#L215-L218

As far as I know this is rarely used, but we could change the description a bit to encourage users to provide their protocols.io IDs here.

rly commented 1 week ago

Good idea. Scanning the first 199 dandisets with NWB data (with h5tojson), I found five with a value for "protocol":

{'dandi_json/000045/sub-00778394-c956-408d-8a6c-ca3b05a611d5/sub-00778394-c956-408d-8a6c-ca3b05a611d5_ses-07497983-2229-4cb2-8a45-50cee3fe9089_behavior+image.nwb.json': '_iblrig_tasks_trainingChoiceWorld5.2.7',
 'dandi_json/000149/sub-92130c1b-4fdb-4acc-86e0-1853d429c41a/sub-92130c1b-4fdb-4acc-86e0-1853d429c41a_ses-c7bd79c9-c47e-4ea5-aea3-74dda991b48e_behavior+ecephys+image.nwb.json': '_iblrig_tasks_ephysChoiceWorld6.4.2',
 'dandi_json/000221/sub-HI215/sub-HI215_ses-HI215-071019_ecephys+ogen.nwb.json': 'IACUC',
 'dandi_json/000409/sub-PL015/sub-PL015_ses-1d4a7bd6-296a-48b9-b20e-bd0ac80750a5_behavior+ecephys+image.nwb.json': '_iblrig_tasks_ephysChoiceWorld6.6.1',
 'dandi_json/000572/sub-BAYLORNL23/sub-BAYLORNL23_ses-20190225_ecephys+ogen.nwb.json': 'IACUC'}

None are externally interpretable.

The DANDI metadata field says:

A list of persistent URLs describing the protocols (e.g., protocols.io, or other DOIs).

We could change the NWBFile protocol doc to say:

A comma-separated list of persistent URLs describing the protocols, such as protocols.io or other DOIs. 
For example: "https://dx.doi.org/10.17504/protocols.io.e6nvwjo87lmk/v2".

Users could additionally use HERD to link this field and value to the URI https://dx.doi.org/10.17504/protocols.io.e6nvwjo87lmk/v2.

(We could also make this a 1-D array of protocol DOIs. Providing more than 1 DOI hasn't come up yet, so maybe it's best to just punt on this until it is needed since it is a more complicated change.)