Closed rwblair closed 1 year ago
Just take first 8 slice timing numbers.
cc @CPernet
since the order is ascending, we could just substitute with values from 0 to 0.735 (the repetition time) by steps of .0115 (repetition time/length(SliceTiming)
0
0.0115
0.0230
0.0345
0.0460
0.0575
0.0690
0.0805
0.0920
0.1035
0.1150
0.1265
0.1380
0.1495
0.1610
0.1725
0.1840
0.1955
0.2070
0.2185
0.2300
0.2415
0.2530
0.2645
0.2760
0.2875
0.2990
0.3105
0.3220
0.3335
0.3450
0.3565
0.3680
0.3795
0.3910
0.4025
0.4140
0.4255
0.4370
0.4485
0.4600
0.4715
0.4830
0.4945
0.5060
0.5175
0.5290
0.5405
0.5520
0.5635
0.5750
0.5865
0.5980
0.6095
0.6210
0.6325
0.6440
0.6555
0.6670
0.6785
0.6900
0.7015
0.7130
0.7245
Do we have the source data? Are there actually 8 slices or 64? If it was a multiband sequence with simultaneous acquisition, possibly we should revert to the original (pre- 5124d859deded058e1166784ff1adb1f9bf0e65e) timing.
oh i do not have the source, but indeed the previous version seems correct, timing is correct and there are 8 zeros while it indicates SMS 8 -- that update was dum, why did I do that??
🤷🏻 Well, the good news is the new validator catches it.
For quick copy-paste, let's switch back to: [0, 0.42, 0.105, 0.525, 0.21, 0.63, 0.315, 0.735, 0, 0.42, 0.105, 0.525, 0.21, 0.63, 0.315, 0.735, 0, 0.42, 0.105, 0.525, 0.21, 0.63, 0.315, 0.735, 0, 0.42, 0.105, 0.525, 0.21, 0.63, 0.315, 0.735, 0, 0.42, 0.105, 0.525, 0.21, 0.63, 0.315, 0.735, 0, 0.42, 0.105, 0.525, 0.21, 0.63, 0.315, 0.735, 0, 0.42, 0.105, 0.525, 0.21, 0.63, 0.315, 0.735, 0, 0.42, 0.105, 0.525, 0.21, 0.63, 0.315, 0.735],
for both bold.json
files.
Well, that kind of works, except that these slice timings imply a TR of 0.84, not 0.735.
>>> np.arange(0, 0.84, 0.105)
array([0. , 0.105, 0.21 , 0.315, 0.42 , 0.525, 0.63 , 0.735])
Should we update RepetitionTime
as well?
surely someone has UKBB data? or yes let's make it up
Here's the exam card for biobank: https://www.fmrib.ox.ac.uk/ukbiobank/protocol/V4_23092014.pdf
We have a TR of 735ms, and interleaved. I just calculated it with the following:
>>> indices = np.array([0, 4, 1, 5, 2, 6, 3, 7] * 8)
>>> np.linspace(0, 0.735, 9)[:-1][indices].tolist()
Added to #403.
https://github.com/bids-standard/bids-examples/blob/master/genetics_ukbb/task-FaceShapeEmotion_bold.json
Slicetiming seems to be numbers across multiple TRs.