Thanks a lot @rick for your kindly reminding. I did the following experiments using dcm2niix with and without isFlipY, and Dimon -infile_pattern './14550005/*' -gert_create_dataset -gert_outdir ./dimon -gert_to3d_prefix dimon_2e.nii
.
- flipY in dcm2nii and the 3dinfo info is
❯ 3dinfo flip/flip_e2.nii
++ 3dinfo: AFNI version=AFNI_24.0.10 (Mar 5 2024) [64-bit]
** AFNI converts NIFTI_datatype=512 (UINT16) in file /flip/flip_e2.nii to FLOAT32
Warnings of this type will be muted for this session.
Set AFNI_NIFTI_TYPE_WARN to YES to see them all, NO to see none.
Dataset File: /flip/flip_e2.nii
Identifier Code: AFN_n2nQXo7CLyWC46w2OJasNA Creation Date: Tue Mar 12 14:46:02 2024
Template Space: ORIG
Dataset Type: Echo Planar (-epan)
Byte Order: LSB_FIRST {assumed} [this CPU native = LSB_FIRST]
Storage Mode: NIFTI
Storage Space: 93,028,352 (93 million) bytes
Geometry String: "MATRIX(3.703033,0.025852,0.003205,-121.3513,0.025792,-3.702456,0.065417,109.1128,-0.003664,0.065448,3.69942,-33.57686):64,64,34"
Data Axes Tilt: Oblique (1.089 deg. from plumb)
Data Axes Approximate Orientation:
first (x) = Right-to-Left
second (y) = Posterior-to-Anterior
third (z) = Inferior-to-Superior [-orient RPI]
R-to-L extent: -121.351 [R] -to- 111.946 [L] -step- 3.703 mm [ 64 voxels]
A-to-P extent: -124.184 [A] -to- 109.113 [P] -step- 3.703 mm [ 64 voxels]
I-to-S extent: -33.577 [I] -to- 88.523 [S] -step- 3.700 mm [ 34 voxels]
Number of time steps = 167 Time step = 1.90000s Origin = 0.00000s
-- At sub-brick #0 '?' datum type is float
-- At sub-brick #1 '?' datum type is float
-- At sub-brick #2 '?' datum type is float
** For info on all 167 sub-bricks, use '3dinfo -verb' **
- noflipY in dcm2nii and the 3dinfo info is
❯ 3dinfo noflip/noflip_e2.nii
++ 3dinfo: AFNI version=AFNI_24.0.10 (Mar 5 2024) [64-bit]
** AFNI converts NIFTI_datatype=512 (UINT16) in file /noflip/noflip_e2.nii to FLOAT32
Warnings of this type will be muted for this session.
Set AFNI_NIFTI_TYPE_WARN to YES to see them all, NO to see none.
Dataset File: /noflip/noflip_e2.nii
Identifier Code: AFN_WZb226WrvkKX3TVEUqydAA Creation Date: Tue Mar 12 14:46:38 2024
Template Space: ORIG
Dataset Type: Echo Planar (-epan)
Byte Order: LSB_FIRST {assumed} [this CPU native = LSB_FIRST]
Storage Mode: NIFTI
Storage Space: 93,028,352 (93 million) bytes
Geometry String: "MATRIX(3.703033,-0.025852,0.003205,-119.7226,0.025792,3.702456,0.065417,-124.142,-0.003664,-0.065448,3.69942,-29.45364):64,64,34"
Data Axes Tilt: Oblique (1.089 deg. from plumb)
Data Axes Approximate Orientation:
first (x) = Right-to-Left
second (y) = Anterior-to-Posterior
third (z) = Inferior-to-Superior [-orient RAI]
R-to-L extent: -119.723 [R] -to- 113.574 [L] -step- 3.703 mm [ 64 voxels]
A-to-P extent: -124.142 [A] -to- 109.155 [P] -step- 3.703 mm [ 64 voxels]
I-to-S extent: -29.454 [I] -to- 92.646 [S] -step- 3.700 mm [ 34 voxels]
Number of time steps = 167 Time step = 1.90000s Origin = 0.00000s
-- At sub-brick #0 '?' datum type is float
-- At sub-brick #1 '?' datum type is float
-- At sub-brick #2 '?' datum type is float
** For info on all 167 sub-bricks, use '3dinfo -verb' **
- do AFNI Dimon the 3dinfo info is
❯ 3dinfo dimon/dimon_2e.nii
++ 3dinfo: AFNI version=AFNI_24.0.10 (Mar 5 2024) [64-bit]
Dataset File: /dimon/dimon_2e.nii
Identifier Code: AFN__m6oBX7iRpOmouUmZJmM7A Creation Date: Tue Mar 12 14:52:15 2024
Template Space: ORIG
Dataset Type: Echo Planar (-epan)
Byte Order: LSB_FIRST {assumed} [this CPU native = LSB_FIRST]
Storage Mode: NIFTI
Storage Space: 139,264,000 (139 million) bytes
Geometry String: "MATRIX(3.703125,-0.025852,0.003205,-119.708,0.025792,3.702456,0.065418,-124.142,-0.003664,-0.065448,3.699512,-29.45365):64,64,34"
Data Axes Tilt: Oblique (1.089 deg. from plumb)
Data Axes Approximate Orientation:
first (x) = Right-to-Left
second (y) = Anterior-to-Posterior
third (z) = Inferior-to-Superior [-orient RAI]
R-to-L extent: -119.708 [R] -to- 113.595 [L] -step- 3.703 mm [ 64 voxels]
A-to-P extent: -124.142 [A] -to- 109.155 [P] -step- 3.703 mm [ 64 voxels]
I-to-S extent: -29.454 [I] -to- 92.649 [S] -step- 3.700 mm [ 34 voxels]
Number of time steps = 500 Time step = 1.90000s Origin = 0.00000s Number time-offset slices = 34 Thickness = 3.700
-- At sub-brick #0 '?' datum type is short: 0 to 15718
-- At sub-brick #1 '?' datum type is short: 0 to 18442
-- At sub-brick #2 '?' datum type is short: 0 to 17398
** For info on all 500 sub-bricks, use '3dinfo -verb' *
The only difference among these is RAI (no flipY in dcm2niix or Dimon) to RPI (flipY in dcm2niix). The slice timing of them are identical as I guess they are extracted from the DICOM CSA header. Also, the only difference between two dcm2niix conversions in the JSON file is "PhaseEncodingDirection":"j-" for flipY and "PhaseEncodingDirection":"j" for noflipY.
Now I am confused about I->S you pointed. Our acquisition was done from the top of the head to the bottom of the head (sSliceArray.ucMode is 2 for descending). Here flipY or not, would not change the order of slices from I to S, as I-to-S is the z-axis, right?

[image source Coordinate systems - Slicer Wiki]
When AFNI does the slice timing correction, will it assign the first slice timing shown in the 3dinfo to the slice at the top of the z-axis, etc? So even if this slice is flipped in Y direction (j in the figure) from A-to-P to P-to-A, the slice timing correction will not be affected, right? Maybe I am saying nonsense here as I am really not familiar with this business. It is so nice that you flagged this point and I would like to avoid a wrong slice timing correction. Could you please help to clarify? Thanks again.
Best,
Zhengchen