[Insight-developers] Design question

Daniel Blezek daniel.blezek at gmail.com
Fri Mar 7 22:46:24 EST 2008


Hi All,

   I'm trying to design a class for ITK that would allow out-of-core  
processing of extremely large datasets.  Often fMRI datasets can be  
several hundred 3d volumes and it is not practical, nor necessary to  
load all the image data into memory at once in order to process.   
Instead, I'd like to write a class that would transform a series of  
images into a different format on disk to allow rapid retrieval of  
subsets of the data, i.e.,

1) volume by volume through time
2) one slice through time, in any orientation, e.g. x-y, y-z or x-z
3) one pixel through time

   The idea is to provide more of a database interface rather than a  
fancy 4D reader/write IO class.

   I hope to provide an iterator that would allow the application  
developer to iterate across the voxels, retrieving one voxel's  
timeseries data in a rapid manner.  This, I believe is the most common  
way of processing fMRI data.  The developer may also wish to align  
that data to a common space making volume by volume retrieval  
imperative.

I've done some preliminary work playing around with different methods  
of storing these data on disk.  I used raw C fread/fwrite, HDF5, and  
SQLite.  The results are summarized here: http://wiki.na-mic.org/Wiki/index.php/Slicer3:TimeSeries_and_Multi-Volume_Data#Proposed_Data_Model

I would appreciate any and all comments.
-dan


More information about the Insight-developers mailing list