ADNI slicetiming values

Hi all,

I am working on pre-processing fMRI data from the ADNI initiative.
I have converted the data to BIDS format with the appropriate json sidecars; however, as ADNI uses Phillips scanners the json files do not contain the slice timing information.

I have found that ADNI reports the slice timing values separately but they are in a strange format where they are more than the TR (3) and do not start at 0.00 seconds. This ADNI data is not in the standard format and does not work in fMRIPrep. For example see this slice timing below:

29679.5, 29681, 29679.5625, 29681.0625, 29679.625, 29681.125, 29679.6875, 29681.1875, 29679.75, 29681.25, 29679.8125, 29681.3125, 29679.875, 29681.375, 29679.9375, 29681.4375, 29680, 29681.5, 29680.0625, 29681.5625, 29680.125, 29681.625, 29680.1875, 29681.6875, 29680.25, 29681.75, 29680.3125, 29681.8125, 29680.375, 29681.875, 29680.4375, 29681.9375, 29680.5, 29682, 29680.5625, 29682.0625, 29680.625, 29682.125, 29680.6875, 29682.1875, 29680.75, 29682.25, 29680.8125, 29682.3125, 29680.875, 29682.375, 29680.9375, 29682.4375

My question is, Can I subtract the first value from all values to get the data below the TR and within the usual format (the data is TR = 3, slices = 48 for reference) ? When I do that it looks like this:

0.0000 1.5000 0.0625 1.5625 0.1250 1.6250 0.1875 1.6875 0.2500 1.7500 0.3125 1.8125 0.3750 1.8750 0.4375 1.9375 0.5000 2.0000 0.5625 2.0625 0.6250 2.1250 0.6875 2.1875 0.7500 2.2500 0.8125 2.3125 0.8750 2.3750 0.9375 2.4375 1.0000 2.5000 1.0625 2.5625 1.1250 2.6250 1.1875 2.6875 1.2500 2.7500 1.3125 2.8125 1.3750 2.8750 1.4375 2.9375

Does this look correct? Is there another way to get the correct slice timing?

I feel like I might be correct as, when I put my details into the linked MATLAB script from another post, I get the same results as my subtraction method. https://neurostars.org/t/heudiconv-no-extraction-of-slice-timing-data-based-on-philips-dicoms/2201/13?u=sam

However, I’d still love some feedback as I’m not confident and quite new to this all.

You might want to see if philips_order.py from @yarikoptic works with the DICOM data. It works for some but not all Philips data so make sure the results look plausible.

Thanks for the suggestion @neurolabusc! However, unfortunately the code didn’t work with my data.

I’m starting to think that ADNI have coded their time wrong as the start time in their spreadsheet is “81439.5” but it should be 8:14:39.5. Maybe 29679.5 is roughly 8:14:39.5 in seconds? I am unsure about their coding.

Their dictionary states that the slice timing variable is:
an underscore-separated list of times (in seconds) for the acquired image slices in the first volume. In ADNI all fMRI the slices are axial and here they are always counted from inferior to superior. This is invariant to the way the data is stored in DICOM. For Philips scanners the DICOM data do not indicate the slice acquisition order and it is inferred from knowledge of the protocols in use on the scan acquisition date if necessary. Slice ordering should be determined from the Siemens CSA header. GE slice ordering should be determined by the time for each slice in the DICOM header. The notion of when time equals zero is determined by the vendor data if possible.”

What do you think?