Author: Ged Ridgway (198.28.92.---)
Date: 10-26-07 10:09
Hi Cinly,
Many thanks for your detailed reply! I'm particularly interested in this part:
> Given speed penalty penalty, programming penalty (difficult to
> find enough continuous memory to hold full 5D dataset, long
> time to access particular 4D dataset coz you have a large
> offset value), [...] likely to be better off storing data as N files
> of (N-1)-D data.
One of my motivations for wanting the data in a single NIfTI was that I thought, obviously wrongly, that it would lead to quicker access. I assumed this is why (to take one example) the randomise program in FSL wants a 4D NIfTI rather than a bunch of 3D ones. I guess it depends a lot on how the algorithms are coded up, but I would intuitively expect that if you are looping over voxels and processing n-vectors over the 4th dimension (e.g. as a simple implementation of a voxel-wise GLM with n scans might do) then it is quicker to read an n-vector as a block down the whole of the 4th dimension of a single nifti than to read the data from n separate 3D NIfTIs. Likewise (possibly even more so, I assumed) if you want to read n-scans by m (multivariate data) matrices at each voxel, it would seem that contiguous n*m blocks read from the 5D NIfTI would be quicker...
I guess in practise though, you would want to read batches of voxels from disk at a time, and only loop over them in memory, which perhaps makes things more complicated than my intuition above... Any further comments?
Thanks again,
Ged
|
|