Neuroimaging common objects brainstorming

Here might be a central place to brainstorm about all the objects we might need, in the hope of getting a clean set of neuroimaging objects and API

Feel free to add/change/split/merge/comment/compile/document/usercase/whatever, this is what a wiki is for :-)

Maybe we'll have seperate pages, but for now, i'll put everything here.

See also BasicObjects for a clean Brainstat object description, while i mostly intend this page for brainstorming and discussing

This is blabber work in progress :-)

Images/Volume objects

See AimsObjects for summary of aims.Volume object.

See BasicObjects for BrainSTAT version, and some thoughts on combining the two.

all: memory mapping question: does numpy support memory map ?

Clustering objects

Parcels, ie. group of voxels. List of them? some geometrical parameters ? clustering/parcellation: the output of parcellation can be list of ROIs (subject specific) but also densities (gaussian mixture) cf Bertrand's code

Region of interest objects

How to represents it, so we can easily manipulate it and computer interesting datas on it, like mean, max.. maybe even interactively (as in IPython with pylab and pyAnatomist) example of such:

manually drawed ROI..

voxels value during time course..

voxels inside of a defined cube, or sphere..

all the voxels along a sulci..

area of a projected-on-mesh functionnal activation..

One the very basic level, this would include at least a list of voxels :-)

Brainstat has an source:BrainSTAT/BrainSTAT/Base/ROI.py file (TODO: read more about it :-)

Referentials and transformations objects

What kind of object are referentials, and transformatins ? Plans so far :

Referential has an unique identifier When loading a new referential, it asks for the transformation between the two (No need to create manually the referential and link the loaded datas with it)

Transformation are objects allowing to pass from one point to another. How to apply it on objects ? May it want to computer interpolations ?

Brainstat defines objects of type Dimension, Coordinate (defined in source:BrainSTAT/BrainSTAT/Base/Dimension.py) and Warp, defined in source:BrainSTAT/BrainSTAT/Base/Warp.py. There is a summary of how these fit together in BasicObjects.

Maybe we would like to add features.

We have many problems regarding referentials objects. Some tags missing, no real standard, apps incompatibilities. We'd like to clean that mess

fMRI Model

See FffObjects for summary of fff model.

See source:BrainSTAT/BrainSTAT/fMRIstat/Design.py for BrainSTAT version

Benjamin:

I need to have a common starting-timestamp referential defined, in order to easily manage different Time datas (fMRI acquired signal T0, design matrix T0, runtime paradigm execution T0...)

Contrasts

symbolic (highlevel) representation or numeric (vector) ? TODO...

HRF (Hemodynamic function) objects

could be either

  • model (eg spm model), (parametric functions)
  • basis functions
  • hrf estimated from data

more

Sigraph objects ?

PyAnatomist? objects ?

Visualisation of any object ?

jb: each object should have a visu method

Yann noticed that Brainstats attach a viewer to the object, which is inconvenient when several views of the object are involved. We should use a better MVC pattern IMHO. Thus viewer objects.

PylabRelatedStuffs? ?

test procedure, thresholds

  • RFT techniques
  • non parametric
  • robusts

Add others ;)