BIDS physio questions on readthedocs examples

I’ve been looking into converting some physiological recording data obtained with a Siemens WIP sequence (WIP1066, Advanced Physiologging, VE11C) and have two questions related to the examples on the readthedocs page for this.

  1. First, I’m confused by the example snippet. There are three columns of data, but only two entries listed in the Columns entry in the JSON. In one of the linked sample datasets (ds210), I see that for example a JSON has two Columns for a corresponding two column .tsv.gz file. Are this sample .tsv and .json entries not intended to go together? (I wish the text had a sentence accompanying it confirming how to interpret the three columns of numbers…)

  2. I hoped that the second sample dataset (7t_trt) would help me figure this out, but on GitHub I am able to retrieve only zero length .tsv.gz physio files. Is this a problem with that dataset, or my access somehow?

I’ll mention what I’m doing just in case there are any obvious mistakes. In the WIP data, there are separate RESP and PULS physiological logs that have two columns each (time_ticks and either PULS Signal or RESP Signal) – where time_ticks gives times in “ticks” of 2.5 ms. The RESP and PULS recordings use different sampling rates (50 and 200 Hz, respectively, i.e. periods of 2 ticks or 8 ticks). A third file is available to relate ticks to slice and volume acquisition times, but I believe I won’t need that for a BIDS conversion other than to determine the offset (i.e. StartTime values). I can see I’ll want two different files in BIDS due to the different sampling rates, and I think I can just use the second column of each log, either figuring out the appropriate StartTime or trimming entries to correspond to a StartTime I could set to zero. From what I can tell, the time_tics values do have the expected spacing (e.g. 2 for PULS). If I did find a “hiccup” (e.g. PULS spacing of 3 ticks) I think it’s probably better to ignore it than to try interpolating, since that would likely involve interpolating all entries after that point, unless another hiccup gets it back in alignment?

I checked a slightly older version of the specification and the 3 columns are “described” so I am pretty confident that something got deleted by mistake.

For the example with an empty data this related how we store bids examples, so we usually ask people to go and check the source data in this case.

The link to each example’s source data should be in the Readme.

For the 7r-trt data it is here.

Though I believe you can also find it on openneuro.

Though note that examples may be just a subset of the original data and that examples and source data may be “out of synch”: we try to keep the examples up to date with the bids specification but that is not the case with source dataset.


What you plan to do to bidsify your physio data makes sense to me from what I can read.

Maybe though have a look at specialised packages for this type of conversion. Maybe they support your file format.

As far I can tell bidscoin also supports converting physio data.

Thanks Remi-Gau. I did check out those two physio packages earlier, but the Siemens WIP seems to be using a different format than those they support (including the Siemens format, apparently) and so they get errors on conversion – the same error in both, which is

* Columns (419270) is not an integer multiple of 1024 (1024) - exiting

1 Like