Dear Mark Jenkinson,

Thank you very much for your thoughtful answer.

The reason I have asked many questions about NIFTI support is that we have
created our own image reconstruction system which takes raw data
(k-samples) from an MRI scanner and reconstructs images. We want to make
NIFTI our default format which our users use. We also want to make FSL our
users' main tool for data analysis. Therefore, I am asking a lot of
questions so we can build our system to be compatible with FSL. I
completely understand that support of NIFTI is a difficult transition and
it will not happen in a second.  Several steps are needed. On the other
hand, we have to build our system too. :-)

So, as I said, I would prefer, multi-channel data to be stored before time
point as it is more logical (storing multi-channel data after time point
causes sorting of data which is unnecessary...). But this is NOT what we

Our current setup is that data is 5D and the 5th dimension is used for
channels. In other words, Nchannel data is stored as:

dim[0]= 5
dim[0]= Nfrequency encode
dim[1]= Nphase encode (y)
dim[2]= Nphaze encode (z) or Nslices(z)
dim[3]= Ntime points
dim[4]= Nchannel

This is consistent with the NIFTI NIFTI_INTENT_VECTOR specification.
Notice, that in such a setup, if Nchannel=1, the data set is still 5D.

As far as I understand, this way of storing data agrees with your
"theoretical" answer.

Now, we come to the practical situation....
If Nchannel=1, FSL happily works.

If Nchannel>1, FSL happily works too, but there is no way to switch
between channels. (Or I do not understand how to do it.) It always uses
the first index of the 5th dimension.

Basically, I think, I am proposing to consider a possibility to add the
switch in future FSL releases to consider the 5th dimension as the
channel number.

Once again, thank you for your kind help. With best wishes,


On Mon, 13 Dec 2004, Mark Jenkinson wrote:

> Hi Lazar,
> Firstly, my theoretical answer:
> The new nifti format does allow, in certain cases, the fifth dimension
> to be utilised (e.g. for vector or matrix formats).  However, it hasn't
> been specifically arranged for separate "channels" to use this form.
> The question is, would storing your separate channels as elements of
> a vector (that is, a separate vector at each point) be sufficient?
> If so, then the nifti standard is currently OK for what you want.
> Note that nifti has been quite specific that dimension 4 is for time,
> and so it is not possible to rearrange this.
> Secondly, my practical answer:
> At present FSL and AFNI do not support the full variety of possibilities
> that the new nifti format has created.  We are all working towards
> implementing features that take account of the new options, such as
> the higher dimensions, the qform/sform transformation information,
> etc. but at the moment our first pass implementations don't do everything.
> In the near future we hope to implement the rest of the features
> like the higher dimensions for vector or matrix images.
> In the meantime, if you have multiple channels of 3D images, then
> storing them as 4D images (and treating dimension 4 as channel
> number rather than time) should work with most FSL programs,
> as they do not make many assumptions about the time axis.
> In many cases the images are just treated as a set of 3D images and
> various programs will process things quite appropriately for a set
> of different channels.
> I hope this helps explain the general situation in theory and also
> helps you get things done in the real world for the moment.
> All the best,
>     Mark
> Lazar Fleysher wrote:
> >Hello Steve,
> >
> >Hm....
> >
> >If dim[0] = 5, fslview happily displays the first image in 5th dimension.
> >Do not take me wrong! I do not want you to fix this to "if (dim[0] >4) {
> >do not know what to do}" even if you consider this as a bug!!! (like AFNI
> >did) What I would propose is to have a switch to higher indecies of the
> >5th dimension so that people who store data from several channels in one
> >file can access it.
> >
> >The problem is that saving channels in different files creates a
> >bookkeeping problem of file multiplication.... Is it possible to agree
> >that the 5th dimension is the channel number? (I would prefer it to be the
> >4th and the time be the last dimension used, by the way).
> >
> >What do people do for muti-channel data now? Do they combine the images
> >into one image and thus not have multi-channel files or they save each
> >channel in a separate file?
> >
> >Am I very far from the reality of the real word?
> >
> >Thanks for your help
> >
> >Lazar
> >
> >On Sat, 11 Dec 2004, Stephen Smith wrote:
> >
> >
> >
> >>Hi - none of the programs use the 5th (etc.) dimension yet - but that
> >>wouldn't necessarily make sense anyway as it wouldn't have been defined
> >>yet what the programs were expected to do with the 5th dimension....
> >>
> >>Cheers, Steve.
> >>
> >>
> >>On Thu, 9 Dec 2004, Lazar Fleysher wrote:
> >>
> >>
> >>
> >>>Hello everybody,
> >>>
> >>>
> >>>If MRI data is collected from several channels, it may be interesting to
> >>>look at each of the channels separately. The natural thing is to use the
> >>>5th dimension in the NIFTI format for the channel number. However, it
> >>>appears that fslview can access only the first index in dimensions higher
> >>>than 4. (AFNI seems to choke even on that...)
> >>>
> >>>Is it something that no one needs accept us, here?
> >>>If not, could it be considered as a feature request?
> >>>
> >>>Thanks
> >>>
> >>>Lazar
> >>>
> >>>
> >>>
> >>--
> >> Stephen M. Smith  DPhil
> >> Associate Director, FMRIB and Analysis Research Coordinator
> >>
> >> Oxford University Centre for Functional MRI of the Brain
> >> John Radcliffe Hospital, Headington, Oxford OX3 9DU, UK
> >> +44 (0) 1865 222726  (fax 222717)
> >>
> >> [log in to unmask]
> >>
> >>
> >>