> Goal Number 1: Atlas registration.
>
> I have a number of brain images and I want to register them to a given
> atlas. As I have quite a lot of them, I am trying to write a small script to
> automatise the problem.
>
> Using the ideas that Arno Klein kindly posted online at:
> http://www.mindboggle.info/papers/evaluation_NeuroImage2009.php
Arno's papers will also tell you that the usual Normalise in SPM does
a pretty poor job. I don't know much about your atlas and brain
images, but if they can be segmented into different tissue types (via
the "New Segment" in SPM8), I would strongly suggest that you try the
Dartel approach. If your atlas is just another human brain MRI, then
this should work reasonably well.
> The first question is whether this seems the best way to achieve what is
> intended.
Arno's paper focussed on pairwise registration, whereas Dartel was
really intended to be used with groupwise registration. If you are
happy with groupwise (and if your images are suitable), then you'd use
the "New Segment" to generate rigidly aligned maps of GM and WM.
These would then be aligned more accurately using Dartel as described
in Section 42.1.3 of the SPM8 manual (Using DARTEL Tools→Run DARTEL
(create Template)). Once groupwise alignment has been achieved, you
can then compose forward and inverse warps in order to map one brain
to another. This is described in Section 42.4 (Warping one individual
to match another).
Note that pairwise alignment is a special case of groupwise alignment
(with N=2). If you run things pairwise, then the code will spend most
of its time doing a fancy smoothing of the template image it
generates, which will make it very slow.
If you use the batching system of SPM8, then you can set up the job as
described in the manual and save it as a .m file. This will provide a
record of what was done, which can be executed at a later time via:
spm_jobman('run', 'filename.m');
These files can be edited, and can be used to form the basis of
processing scripts. Therefore, if you want to do pairwise alignment
of lots of scans, you'd create a job for a single scan, save it as a
.m file and then base your script on that file.
> Goal Number 2: Temporal Registration.
>
> My second goal is to be able to register two images from the same patient
> taken one year after the other without using any atlas (so the solution of
> mapping them both to atlas space is not suitable in this case).
>
> Is this possible with SPM? If so, what function should I use?
You could try the HDW toolbox. First of all, you'd need to rigidly
align your images (via the Coreg button). Then you'd run HDW on those
aligned images.
Note that HDW is not inverse-consistent, so will give different
results depending on whether you register images one way or the other.
It is also not run with enough iterations to converge well. I am
currently working on a new framework for longitudinal registration.
Best regards,
-John
|