Vervet MRI registration
Contents
Objective
Perform atlas-to-subject registration of vervet head MRI as part of external collaboration with VTech.
Methods
Original workflow utilized multi-step registration using FSL FLIRT, followed by diffeomorphic demons (reference to be added).
In this development, we consider the use of BRAINSFit package within 3D Slicer to achieve reproducible and reliable registration workflow using 3DSlicer and FOSS-only tools.
We use the following registration pipeline: Rigid (6-DOF) -> ScaleVersorRigid (9-DOF) -> Affine (12-DOF) -> BSpline. Probabilistic atlas is the moving image, registered to the space of the subject image. BRAINSFit was used with the default parameters, 8 threads, ROIAUTO mode, and CentersOfHead transform initializer. The whole registration process took approximately 20 minutes on learson.bwh.harvard.edu.
Data
Input images: atlas image, generated following the details presented here, and 10 subject images.
Each vervet subject has a name! Meet our friends: Calvin, Gucci, Hugo, Issac, Louis, Marc, Oscar, Ralph, Tommy, and Valentino.
Results
For each of the 10 subjects, we show checkerboard slices in each direction (1) before registration, first row; (2) after rigid->scaleversor->affine registration, second row; and (3) after BSpline registration, third row.
Note the unsuccessful BSpline registration result for Issac.
The tarball with the transforms is available File:VervetRegistrationTransforms.tgz
Calvin
Gucci
Hugo
Issac
Issac is a good example of BSpline registration failure.
Ron noted, the reason might be that Issac had his mouth open, unlike most of the subjects registered successfully.
Louis
Marc
Oscar
Ralph
Tommy
Valentino
Unresolved issues
Technical issues (reported to BRAINSFit developers):
- As of August 25, with the nightly build, it is not possible to install BRAINSFit through the extensions mechanism. Manual intervention necessary (update CMakeLists, recompile the code to build executable, install manually -- not possible to accomplish at user-level).
- It is not possible to initialize registration with any transform other than ScaleVersor3D, which is not supported by ITK IO as of now. Will need to modify the code.
Future work
- registration accuracy should be possible to improve even further by performing skull-stripping prior to registration (consider various options)
- experiment with BSpline parameters
- sharper atlas construction
- try demons after bspline, review strategies from the literature
- experiment with convergence/tolerance parameters for rigid/affine