3dTshift 'tpattern' for an specific dataset

Dear AFNI experts,

I have two datasets with a different acquisition slice order (tpattern). I would like to make sure that the slice timing correction with 3dTshift is well done.

  1. First dataset.
    TR=2 seconds
    number of slices=35
    slice order= Interleaved (1,3,5,7…35; 2,4,6,8…34).
    Command used:

3dTshift  -tpattern Alt+z   -Fourier  -prefix s_001_stc.nii  s_001.nii

  1. Second dataset.
    TR=2 seconds
    number of slices=37
    slice order= Interleaved with jumps of 5 slices (1, 7, 13, 19, 25, 31, 37; 2, 8, 14, 20, 26, 32; 3, 9, 15, 21, 27, 33; 4, 10, 16, 22, 28, 34; 5, 11, 17, 23, 29, 35; 6, 12, 18, 24, 30, 36).
    Command used:

3dTshift  -tpattern Alt+z   -Fourier  -prefix s_001_stc.nii  s_001.nii

I am using the exact same tpattern for both datasets. Is this correct considering that the second dataset has more interleaved “jumps”?
Is there a way to do a sanity check to know if the correction is well done?
Note: The to3d program considered both datasets as Alt+z.
Thanks in advance.

Kind regards,

The pattern for the second dataset would not be altplus/alt+z. You can feed the pattern to 3dTshift with @filename.

Also we recommend against using the “-Fourier” method at this point because it can (among other things) cause excessive ringing with noisy data. I would recommend using the defaults from afni_proc.py (-quintic).

Furthermore, definitely highly recommend using afni_proc for all of your processing needs since it’s updated with the newest recommendations, latest and greatest features, and will say nice things to you in HTML that likely make reviewing data easier.



Thank you so much for your recommendations.
The scanner is a Phillips Achieva.

Regarding to the @filename, I would like to ask the following. Should the @filename has to be a .1D file containing the time offsets for each slice?
For instance, if I have:
slice order = (1,3,5…35 ; 2,4,6…34)
TR=2000 ms
dt (inter slice time) =TR/slices = 57,1428 ms.

Then, the 1D file should be:
0 114.2857 228.5714… until reach 2000 ; 57.1428 171.4285 285.7142… until reach 1942.8572

Is this correct?

Thank in advance.

Best regards,


Yes the @filename would include the temporal offsets for each slice as you describe. The safest option is to get the timing directly from the scanner protocol - although I’m not sure how to export it from a Philips; your technologist or physicist might be able to assist there.

If you use dcm2nii_afni (or the usual dcm2nii) then it should create a JSON (BIDS sidecar) file that has the slice timing information in it.