2009 Summer Project Week Statistical Toolbox
- Robarts Research/University of Western Ontario: Diego Cantor
- BWH: Lauren O'Donnell
- BWH: Laura Rigolo
The objective of this project is to build a statistical toolbox for brain images, and integrate this toolbox into Slicer. Current tools such as SurfStat and SPM allow to run statistical experiments in two levels. The first level corresponds to a single subject study where the progression of a disease, the effect of a drug or the functional activation (fMRI) is analyzed over time. The second level corresponds to cross-sectional studies where multiple subjects are compared using designs such as ANOVA and T-tests in all its varieties.
The proposal is then to construct a third level where single-subject or multiple-subject experiments can be carried out using information from multiple modalities simultaneously. In such environment, every subject has a set of images(anatomical MR, functional MR, PET data, etc...) and the statistics are taken on vectors. Each vector is composed by the respective intensities in the image sets.
Due to the complexity of this toolbox the plan is to break it down in several releases or milestones.
In general terms I plan to use:
- TinyXML for the XML processing
- VNL (the one available in ITK) for matrices processing
- Boost shared pointers for smart pointers
Some undetermined thread library for asynchronous processing (linear regression stuff...)
Update: Use CUDA for simultaneous linear regression processing
Any suggestion to change these libraries is more than welcome.
- The images should be spatially normalized and registered to an atlas
- The experiments are read/written using XML
- Trilinear interpolation is used when the images in the set have different resolutions
- There are not covariates
- The only test available is a T^2 Hotelling test comparing all subjects against the mean
- Uncorrected p-values are available
- When the dimension is 1. The T^2 test is reduced to a regular t-test and this is verifiable
- The integration with Slicer is resolved
- Summary statistics are available (Global/local)
- Extent threshold is available
- Family-wise p-values are available
- Two-sample T^2 test is available
- Likelihood Ratio Test is available
- Precalculated T-maps and F-maps can be compared
- Global and local statistic plots are available
- Confidence intervals for the mean are available
- Principal Component Analysis is available
This is a long-term project. Right now I am working on the first milestone. I expect to learn about the Slicer architecture (modules, gui, event handling, processing threads, etc..) during the week so the posterior releases are developed entirely into Slicer.
Progress during programming week
- Kick-off of the collaboration with Dr. Alexandra Golby's group at Brigham and Women's Hospital. Dr. Golby's group is going to provide me with test multimodal images for the statistical toolbox.
- Kick-off of the collaboration with Vidya Rajagopalan from Virginia Tech. Vidya has work with multivariate statistics during her PhD and she is acquainted with current Tensor-based and Voxel-based morphometry techniques and applications. During the programming week we had really interesting conversations and exchange of ideas on these techniques. I am taking Vidya's recommendations and code into the statistical toolbox.
- I had a really good technical session with Joe Stam from NVIDIA. After discussing my project he made very important recommendations on the way to layout the memory on the GPU in order to maximize the throughput.
- I learn how to use the python shell in Slicer. Demian Wasserman from BHW/INRIA was really helpful. He helped me to have it up and running.