Philips Multiframe DICOM - slice timing question

We are currently scanning on a Philips 3T scanner that is giving us multiframe DICOM output.

When we look at doing slice timing correction, I’ve referenced this document from Bob Cox here:
https://nifti.nimh.nih.gov/nifti-1/documentation/faq/#Q20
This was written a few years back, and I’m not sure if this is correct for multiframe headers however.

It states that:
(snip)
slice_code:
If this value is nonzero (ours is 0)
and if slice_dim is nonzero (field not present)
and if slice_duration is positive (ours is 0.0)
then slice_code indicates the timing pattern of the slice acquisition.
(end snip)

Our data:
name offset nvals values


slice_duration 132 1 0.0
slice_code 122 1 0

Also see this thread:
https://afni.nimh.nih.gov/afni/community/board/read.php?1,161735,161768#msg-161768

Which is likely on the same topic.

Does anyone know the correct slice timing? It appears as if it is simply sequential, but I am uncertain.

Here’s the entire output from the nifty Nifti tool:

N-1 header file ‘Ncd001_resting.nii’, num_fields = 43

all fields:
name offset nvals values


sizeof_hdr 0 1 348
data_type 4 10
db_name 14 18
extents 32 1 0
session_error 36 1 0
regular 38 1 r
dim_info 39 1 48
dim 40 8 4 192 192 28 140 1 1 1
intent_p1 56 1 0.0
intent_p2 60 1 0.0
intent_p3 64 1 0.0
intent_code 68 1 0
datatype 70 1 16
bitpix 72 1 32
slice_start 74 1 0
pixdim 76 8 -1.0 1.197917 1.197917 5.0 1.999999 0.0 0.0 0.0
vox_offset 108 1 5664.0
scl_slope 112 1 0.0
scl_inter 116 1 0.0
slice_end 120 1 27
slice_code 122 1 0
xyzt_units 123 1 10
cal_max 124 1 0.0
cal_min 128 1 0.0
slice_duration 132 1 0.0
toffset 136 1 0.0
glmax 140 1 0
glmin 144 1 0
descrip 148 80
aux_file 228 24
qform_code 252 1 1
sform_code 254 1 1
quatern_b 256 1 -0.0
quatern_c 260 1 1.0
quatern_d 264 1 0.0
qoffset_x 268 1 106.973282
qoffset_y 272 1 -107.441071
qoffset_z 276 1 -10.339375
srow_x 280 4 -1.197917 -0.0 -0.0 106.973282
srow_y 296 4 -0.0 1.197917 -0.0 -107.441071
srow_z 312 4 0.0 0.0 5.0 -10.339375
intent_name 328 16
magic 344 4 n+1

header file ‘Ncd001_resting.nii’, num_fields = 63, fields:

all fields:
name offset nvals values


ndim 0 1 4
nx 8 1 192
ny 16 1 192
nz 24 1 28
nt 32 1 140
nu 40 1 1
nv 48 1 1
nw 56 1 1
dim 64 8 4 192 192 28 140 1 1 1
nvox 128 1 144506880
nbyper 136 1 4
datatype 140 1 16
dx 144 1 1.197917
dy 152 1 1.197917
dz 160 1 5.0
dt 168 1 1.999999
du 176 1 0.0
dv 184 1 0.0
dw 192 1 0.0
pixdim 200 8 0.0 1.197917 1.197917 5.0 1.999999 0.0 0.0 0.0
scl_slope 264 1 0.0
scl_inter 272 1 0.0
cal_min 280 1 0.0
cal_max 288 1 0.0
qform_code 296 1 1
sform_code 300 1 1
freq_dim 304 1 0
phase_dim 308 1 0
slice_dim 312 1 3
slice_code 316 1 0
slice_start 320 1 0
slice_end 328 1 27
slice_duration 336 1 0.0
quatern_b 344 1 -0.0
quatern_c 352 1 1.0
quatern_d 360 1 0.0
qoffset_x 368 1 106.973282
qoffset_y 376 1 -107.441071
qoffset_z 384 1 -10.339375
qfac 392 1 -1.0
qto_xyz 400 16 -1.197917 -0.0 -0.0 106.973282 0.0 1.197917 -0.0 -107.441071 -0.0 0.0 5.0 -10.339375 0.0 0.0 0.0 1.0
qto_ijk 528 16 -0.834783 -0.0 -0.0 89.299438 -0.0 0.834783 0.0 89.68994 -0.0 -0.0 0.2 2.067875 0.0 0.0 0.0 1.0
sto_xyz 656 16 -1.197917 -0.0 -0.0 106.973282 -0.0 1.197917 -0.0 -107.441071 0.0 0.0 5.0 -10.339375 0.0 0.0 0.0 1.0
sto_ijk 784 16 -0.834783 -0.0 -0.0 89.299438 -0.0 0.834783 -0.0 89.68994 0.0 -0.0 0.2 2.067875 0.0 0.0 0.0 1.0
toffset 912 1 0.0
xyz_units 920 1 2
time_units 924 1 8
nifti_type 928 1 1
intent_code 932 1 0
intent_p1 936 1 0.0
intent_p2 944 1 0.0
intent_p3 952 1 0.0
intent_name 960 16
descrip 976 80
aux_file 1056 24
fname 1080 1 ‘Ncd001_resting.nii’
iname 1088 1 ‘Ncd001_resting.nii’
iname_offset 1096 1 5664
swapsize 1104 1 4
byteorder 1108 1 1
data 1112 1 (raw data of unknown type)
num_ext 1120 1 1
ext_list 1128 1 ecode = 4, esize = 5312, edata = <?xml

analyze header file ‘Ncd001_resting.nii’, num_fields = 47

all fields:
name offset nvals values


sizeof_hdr 0 1 348
data_type 4 10
db_name 14 18
extents 32 1 0
session_error 36 1 0
regular 38 1 r
hkey_un0 39 1 48
dim 40 8 4 192 192 28 140 1 1 1
unused8 56 1 0
unused9 58 1 0
unused10 60 1 0
unused11 62 1 0
unused12 64 1 0
unused13 66 1 0
unused14 68 1 0
datatype 70 1 16
bitpix 72 1 32
dim_un0 74 1 0
pixdim 76 8 -1.0 1.197917 1.197917 5.0 1.999999 0.0 0.0 0.0
vox_offset 108 1 5664.0
funused1 112 1 0.0
funused2 116 1 0.0
funused3 120 1 0.0
cal_max 124 1 0.0
cal_min 128 1 0.0
compressed 132 1 0.0
verified 136 1 0.0
glmax 140 1 0
glmin 144 1 0
descrip 148 80
aux_file 228 24
orient 252 1 1
originator 253 5 256 0 0 128 -32768
generated 263 10 ?
scannum 273 10 áÖÂn%ÁUU™
patient_id 283 10 ¿
exp_date 293 10 òÕB
exp_time 303 10 ?
hist_un0 313 3
views 316 1 0
vols_added 320 1 1084227584
start_field 324 1 -1054511596
field_skip 328 1 0
omax 332 1 0
omin 336 1 0
smax 340 1 0
smin 344 1 3222382
header file ‘Ncd001_resting.nii’, num_ext = 1
ext #0 : ecode = 4, esize = 5312, edata = <?xml version='1.0' ?>
<AFNI_attributes
self_idcode=“NII_34QzolKA9TaqXQEkp56nqA”
NIfTI_nums=“192,192,28,140,1,16”
ni_form=“ni_group” >
<AFNI_atr
ni_type=“String”
ni_dimen=“1”
atr_name=“HISTORY_NOTE” >
“[james@PSY-researchpc: Sat Nov 30 12:33:16 2019] {AFNI_19.3.11:linux_openmp_64} 3drefit -deoblique Ncd001_resting.nii Ncd001_resting2.nii”
</AFNI_atr>

<AFNI_atr
ni_type=“String”
ni_dimen=“1”
atr_name=“TYPESTRING” >
“3DIM_HEAD_ANAT”
</AFNI_atr>

<AFNI_atr
ni_type=“String”
ni_dimen=“1”
atr_name=“IDCODE_STRING” >
“NII_34QzolKA9TaqXQEkp56nqA”
</AFNI_atr>

<AFNI_atr
ni_type=“String”
ni_dimen=“1”
atr_name=“IDCODE_DATE” >
“Sat Nov 30 12:33:16 2019”
</AFNI_atr>

<AFNI_atr
ni_type=“int”
ni_dimen=“8”
atr_name=“SCENE_DATA” >
0
2
0
-999
-999
-999
-999
-999
</AFNI_atr>

<AFNI_atr
ni_type=“String”
ni_dimen=“1”
atr_name=“LABEL_1” >
“zyxt”
</AFNI_atr>

<AFNI_atr
ni_type=“String”
ni_dimen=“1”
atr_name=“LABEL_2” >
“zyxt”
</AFNI_atr>

<AFNI_atr
ni_type=“String”
ni_dimen=“1”
atr_name=“DATASET_NAME” >
“zyxt”
</AFNI_atr>

<AFNI_atr
ni_type=“int”
ni_dimen=“3”
atr_name=“ORIENT_SPECIFIC” >
0
2
4
</AFNI_atr>

<AFNI_atr
ni_type=“float”
ni_dimen=“3”
atr_name=“ORIGIN” >
-106.9733
107.4411
-10.33937
</AFNI_atr>

<AFNI_atr
ni_type=“float”
ni_dimen=“3”
atr_name=“DELTA” >
1.197917
-1.197917
5
</AFNI_atr>

<AFNI_atr
ni_type=“float”
ni_dimen=“12”
atr_name=“IJK_TO_DICOM” >
1.197917
0
0
-106.9733
0
-1.197917
0
107.4411
0
0
5
-10.33937
</AFNI_atr>

<AFNI_atr
ni_type=“float”
ni_dimen=“12”
atr_name=“IJK_TO_DICOM_REAL” >
1.197917
0
0
-106.9733
0
-1.197917
0
107.4411
0
0
5
-10.33937
</AFNI_atr>

<AFNI_atr
ni_type=“float”
ni_dimen=“280”
atr_name=“BRICK_STATS” >
0
48101.05
0
39110.71
0
34881.04
0
35247.25
0
38543.09
0
34551.45
0
34276.8
0
34331.73
0
34258.49
0
35631.76
0
34697.94
0
34569.77
0
35668.38
0
34752.87
0
34221.87
0
35338.8
0
34331.73
0
34130.32
0
35778.24
0
34130.32
0
34221.87
0
34148.63
0
39220.57
0
33873.98
0
36162.76
0
39440.29
0
36638.82
0
34514.84
0
34203.56
0
34386.66
0
34313.42
0
34185.25
0
35082.45
0
34295.11
0
34093.7
0
34185.25
0
36181.07
0
36968.41
0
34514.84
0
35979.66
0
34185.25
0
33983.84
0
34185.25
0
34331.73
0
34203.56
0
34185.25
0
35650.07
0
36986.72
0
36748.69
0
34240.18
0
34185.25
0
34130.32
0
34679.62
0
34331.73
0
35943.04
0
34313.42
0
34203.56
0
34130.32
0
34258.49
0
34093.7
0
34258.49
0
38598.02
0
38945.92
0
34166.94
0
36437.41
0
35338.8
0
34441.59
0
34331.73
0
34313.42
0
34752.87
0
34203.56
0
34221.87
0
34386.66
0
37462.79
0
34203.56
0
34203.56
0
36181.07
0
35375.42
0
34240.18
0
37590.96
0
34221.87
0
34514.84
0
35759.93
0
34386.66
0
34130.32
0
36254.31
0
35485.28
0
34075.39
0
34295.11
0
38048.71
0
39586.78
0
34551.45
0
36199.38
0
36382.48
0
34093.7
0
34478.21
0
34221.87
0
35119.07
0
35503.59
0
35283.86
0
36583.89
0
34166.94
0
36272.62
0
34404.97
0
35576.83
0
34148.63
0
34075.39
0
35100.76
0
36364.17
0
35650.07
0
34661.32
0
34386.66
0
35448.66
0
34752.87
0
36565.58
0
37627.58
0
35503.59
0
34533.14
0
34038.77
0
34203.56
0
35778.24
0
34258.49
0
37719.13
0
34295.11
0
34313.42
0
38085.34
0
34404.97
0
34185.25
0
35064.14
0
34276.8
0
37371.23
0
34276.8
0
34203.56
0
36107.83
0
34350.04
0
34459.9
0
34331.73
0
36327.55
0
34588.07
0
34459.9
</AFNI_atr>

<AFNI_atr
ni_type=“int”
ni_dimen=“8”
atr_name=“TAXIS_NUMS” >
140
0
77002
-999
-999
-999
-999
-999
</AFNI_atr>

<AFNI_atr
ni_type=“float”
ni_dimen=“8”
atr_name=“TAXIS_FLOATS” >
0
1.999999
0
0
0
-999999
-999999
-999999
</AFNI_atr>

<AFNI_atr
ni_type=“int”
ni_dimen=“8”
atr_name=“DATASET_RANK” >
3
140
0
0
0
0
0
0
</AFNI_atr>

<AFNI_atr
ni_type=“int”
ni_dimen=“5”
atr_name=“DATASET_DIMENSIONS” >
192
192
28
0
0
</AFNI_atr>

<AFNI_atr
ni_type=“int”
ni_dimen=“140”
atr_name=“BRICK_TYPES” >
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
</AFNI_atr>

<AFNI_atr
ni_type=“float”
ni_dimen=“140”
atr_name=“BRICK_FLOAT_FACS” >
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
</AFNI_atr>

<AFNI_atr
ni_type=“String”
ni_dimen=“1”
atr_name=“TEMPLATE_SPACE” >
“ORIG”
</AFNI_atr>

<AFNI_atr
ni_type=“int”
ni_dimen=“1”
atr_name=“INT_CMAP” >
0
</AFNI_atr>

</AFNI_attributes>

Kind regards,
James

Hi James,

Those files do not seem to have any slice timing in them. So you might have to look at how they are being converted into NIFTI format. Note that the NIFTI header has slice_code = 0, which means “unknown”.

How are you converting from DICOM to NIFTI?

  • rick

Chris Rorden’s most recent (2019) version of dcm2niix.

I found the answer tho - just forgot to come and repost about this. But thanks!

SO yes - there is no slice timing information.

https://en.wikibooks.org/wiki/SPM/Slice_Timing#Philips_scanners
https://github.com/rordenlab/dcm2niix/tree/master/Philips

Basically it seems to me that Philips doesn’t really care if you want slice timing information…thankfully we are moving to Siemens. Hope their multiframe DICOM is better!

Do you know what the timing is supposed to be from running the scanner? Or is the protocol still on a scanner, where one could look it up?

If you are unsure, then it is reasonable to let it go.

  • rick