Questions regarding physiological measurements

Ok, so apart from MRI and EEG data, ambulatory HR and acceleration was recorded over 24h. These are stored in 1 to several files depending on any interruptions in the measurement. I decided to store this in the /beh folder with the following naming scheme:

sub-[subject]_ses-[session]_task-ambulatory_run-[n]_recording-accelerometry_physio

where run corresponds to the different data chunks due to interrupted measurements.

It passes the BIDS validator 1.5.7 but no “ambulatory” is listed under “Available tasks”. Similarly bids.layout in Matlab returns an empty beh struct. Is this expected or am I doing something wrong? Should the “task” be defined somehow?

While this is the main issue, I have a couple more detailed questions as well:
First, is this kind of discontinuous measures better stored as different runs, or concatenated in one file with e.g. NaN paddings in between?

Second, the example .jsons for physio measurements in the BIDS specification are quite sparse. It would be nice to document recording equipment etc like specified for EEG. Are there any restrictions on what can be encoded in the json?

Thanks for any input!

Looks like the validator generates the task list in the summary exclusively by looking at task entities that show up json file names. I’ll think about how best to extend it to capture this case.

The schemas for events, physio, and beh json files allow additional properties properties not defined by the specification, so you can add new fields there. Presently the validator has no schema files to validate the stim.json files so it has no restrictions on field names or types on data in it.

Someone else might want to chime in with what the specification might specify in the future.

With regards to the discontinuous recordings keeping each individual file as a run feels natural to me. Are you using the run entity for other modalities?

Thanks for replying!

I take it that the general approach is sound then.

No this is the only case where I would use runs.