-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathmni2tal_matrix.m
More file actions
173 lines (156 loc) · 6.11 KB
/
Copy pathmni2tal_matrix.m
File metadata and controls
173 lines (156 loc) · 6.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
function M2T = mni2tal_matrix()
% MNI2TAL_MATRIX - Talairach to MNI coordinates (best guess)
%
% MNI2TALAIRACH = mni2tal_matrix
%
% MNI2TALAIRACH is a struct containing rotation matrices
% used by mni2tal and tal2mni
%
% See also, MNI2TAL, TAL2MNI &
% http://www.mrc-cbu.cam.ac.uk/Imaging/mnispace.html
%
% $Revision: 1.1 $ $Date: 2009-01-30 02:48:33 $
% Licence: GNU GPL, no express or implied warranties
% Matthew Brett 2/2/01, matthew.brett@mrc-cbu.cam.ac.uk
% modified 02/2003, Darren.Weber_at_radiology.ucsf.edu
% - removed dependence on spm_matrix by
% creating this function, thereby
% abstracting the important matrix
% transforms (easier to change if needed).
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% See notes below for explanations...
% rotn = spm_matrix([0 0 0 0.05]); % similar to Rx(eye(3),-0.05), DLW
M2T.rotn = [ 1 0 0 0;
0 0.9988 0.0500 0;
0 -0.0500 0.9988 0;
0 0 0 1.0000 ];
% upz = spm_matrix([0 0 0 0 0 0 0.99 0.97 0.92]);
M2T.upZ = [ 0.9900 0 0 0;
0 0.9700 0 0;
0 0 0.9200 0;
0 0 0 1.0000 ];
% downz = spm_matrix([0 0 0 0 0 0 0.99 0.97 0.84]);
M2T.downZ = [ 0.9900 0 0 0;
0 0.9700 0 0;
0 0 0.8400 0;
0 0 0 1.0000 ];
% from original mni2tal...
%upT = spm_matrix([0 0 0 0.05 0 0 0.99 0.97 0.92]);
%downT = spm_matrix([0 0 0 0.05 0 0 0.99 0.97 0.84]);
return
% from http://www.mrc-cbu.cam.ac.uk/Imaging/mnispace.html
%
% Approach 2: a non-linear transform of MNI to Talairach
%
% An alternative is to use some sort of transformation that
% may differ for different brain areas. One method might be
% to do an automated non-linear match of the MNI to the
% Talairach brain. For example, you could apply an SPM or
% AIR warping algorithm. However, there are two problems
% here. First, as we stated above, we do not have an MRI
% image of the brain in the Talairach atlas, which was a
% post-mortem specimen. Second, the automated non-linear
% transforms produce quite complex equations relating the
% two sets of coordinates.
%
% An alternative is to apply something like the transform
% that Talairach and Tournoux designed; here different
% linear transforms are applied to different brain regions.
% This is the approach I describe below.
%
% To get a good match for both the temporal lobes and the
% top of the brain, I used different zooms, in the Z (down/up)
% direction, for the brain above the level of the AC/PC line,
% and the brain below. The algorithm was:
%
% I assumed that the AC was in the correct position in the MNI
% brain, and therefore that no translations were necessary;
% Assumed that the MNI brain was in the correct orientation in
% terms of rotation around the Y axis (roll) and the Z axis (yaw);
% Using the SPM99b display tool, I compared the MNI brain to the
% images in the Talairach atlas;
%
% Compared to the atlas, the MNI brain seemed tipped backwards,
% so that the cerebellar / cerebral cortex line in the sagittal
% view, at the AC, was too low. Similarly, the bottom of the
% anterior part of the corpus collosum seemed too high. I
% therefore applied a small (0.05 radian) pitch correction to
% the MNI brain;
%
% Matching the top of the MNI brain to the top of the brain in
% the atlas, required a zoom of 0.92 in Z. Similarly a Y zoom
% of 0.97 was required as a best compromise in matching the front
% and back of the MNI brain to the atlas. The left / right match
% required a 0.99 zoom in X;
%
% The transform above provided a good match for the brain superior
% to the AC/PC line, but a poor match below, with the temporal lobes
% extending further downwards in the MNI brain than in the atlas. I
% therefore derived a transform for the brain below the AC/PC line,
% that was the same as the transform above, except with a Z zoom of
% 0.84;
%
% This algorithm gave me the following transformations:
%
% Above the AC (Z >= 0):
%
% X'= 0.9900X
%
% Y'= 0.9688Y +0.0460Z
%
% Z'= -0.0485Y +0.9189Z
%
%
% Below the AC (Z < 0):
%
% X'= 0.9900X
%
% Y'= 0.9688Y +0.0420Z
%
% Z'= -0.0485Y +0.8390Z
%
%
% The matlab function mni2tal.m implements these transforms.
% It returns estimated Talairach coordinates, from the
% transformations above, for given points in the MNI brain.
% To use it, save as mni2tal.m somewhere on your matlab path.
%
% So, taking our example point in the MNI brain, X = 10mm, Y = 12mm, Z = 14mm:
%
% With the mni2tal.m function above on your path, you could
% type the following at the matlab prompt:
%
%
% mni2tal([10 12 14])
%
% Which would give the following output (see above):
%
%
% ans =
%
% 9.9000 12.2692 12.2821
%
%
% which is, again, an estimate of the equivalent X, Y and Z
% coordinates in the Talairach brain.
%
% The inverse function, tal2mni.m, gives MNI coordinates for
% given Talairach coordinates, using the same algorithm.
%
% We could of course do a more complex transform to attempt
% to make a closer match between the two brains. The approach
% above is only intended to be preliminary. It does have the
% advantage that it is very simple, and therefore the distortions
% involved are easy to visualise, and unlikely to have dramatic
% unexpected effects.
%
% Incidentally, if you use the above transform, and you want to
% cite it, I suggest that you cite this web address. The transform
% is also mentioned briefly in the following papers: Duncan, J.,
% Seitz, R.J., Kolodny, J., Bor, D., Herzog, H., Ahmed, A., Newell, F.N.,
% Emslie, H. "A neural basis for General Intelligence", Science (21 July
% 2000), 289 (5478), 457-460; Calder, A.J., Lawrence, A.D. and
% Young,A.W. "Neuropsychology of Fear and Loathing" Nature Reviews
% Neuroscience (2001), Vol.2 No.5 352-363
%