Home > bioelectromagnetism > mni2tal_matrix.m

mni2tal_matrix

PURPOSE ^

mni2tal_matrix - Talairach to MNI coordinates (best guess)

SYNOPSIS ^

function M2T = mni2tal_matrix()

DESCRIPTION ^

 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/Common/mnispace.shtml

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function M2T = mni2tal_matrix()
0002 
0003 % mni2tal_matrix - Talairach to MNI coordinates (best guess)
0004 %
0005 % MNI2TALAIRACH = mni2tal_matrix
0006 %
0007 % MNI2TALAIRACH is a struct containing rotation matrices
0008 % used by mni2tal and tal2mni
0009 %
0010 % See also, MNI2TAL, TAL2MNI &
0011 % http://www.mrc-cbu.cam.ac.uk/Imaging/Common/mnispace.shtml
0012 %
0013 
0014 % $Revision: 1.2 $ $Date: 2004/11/17 21:04:32 $
0015 
0016 % Licence:  GNU GPL, no express or implied warranties
0017 % Matthew Brett 2/2/01, matthew.brett@mrc-cbu.cam.ac.uk
0018 % modified 02/2003, Darren.Weber_at_radiology.ucsf.edu
0019 %                   - removed dependence on spm_matrix by
0020 %                     creating this function, thereby
0021 %                     abstracting the important matrix
0022 %                     transforms (easier to change if needed).
0023 %
0024 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0025 
0026 
0027 % See notes below for explanations...
0028 
0029 
0030 % rotn  = spm_matrix([0 0 0 0.05]); % similar to Rx(eye(3),-0.05), DLW
0031 M2T.rotn  = [      1         0         0         0;
0032                    0    0.9988    0.0500         0;
0033                    0   -0.0500    0.9988         0;
0034                    0         0         0    1.0000 ];
0035 
0036 
0037 % upz   = spm_matrix([0 0 0 0 0 0 0.99 0.97 0.92]);
0038 M2T.upZ   = [ 0.9900         0         0         0;
0039                    0    0.9700         0         0;
0040                    0         0    0.9200         0;
0041                    0         0         0    1.0000 ];
0042 
0043 
0044 % downz = spm_matrix([0 0 0 0 0 0 0.99 0.97 0.84]);
0045 M2T.downZ = [ 0.9900         0         0         0;
0046                    0    0.9700         0         0;
0047                    0         0    0.8400         0;
0048                    0         0         0    1.0000 ];
0049 
0050 % from original mni2tal...
0051 %upT   = spm_matrix([0 0 0 0.05 0 0 0.99 0.97 0.92]);
0052 %downT = spm_matrix([0 0 0 0.05 0 0 0.99 0.97 0.84]);
0053 
0054                
0055 
0056 return
0057 
0058 
0059 % from http://www.mrc-cbu.cam.ac.uk/Imaging/mnispace.html
0060 %
0061 % Approach 2: a non-linear transform of MNI to Talairach
0062 %
0063 % An alternative is to use some sort of transformation that
0064 % may differ for different brain areas. One method might be
0065 % to do an automated non-linear match of the MNI to the
0066 % Talairach brain. For example, you could apply an SPM or
0067 % AIR warping algorithm. However, there are two problems
0068 % here. First, as we stated above, we do not have an MRI
0069 % image of the brain in the Talairach atlas, which was a
0070 % post-mortem specimen. Second, the automated non-linear
0071 % transforms produce quite complex equations relating the
0072 % two sets of coordinates.
0073 %
0074 % An alternative is to apply something like the transform
0075 % that Talairach and Tournoux designed; here different
0076 % linear transforms are applied to different brain regions.
0077 % This is the approach I describe below.
0078 %
0079 % To get a good match for both the temporal lobes and the
0080 % top of the brain, I used different zooms, in the Z (down/up)
0081 % direction, for the brain above the level of the AC/PC line,
0082 % and the brain below. The algorithm was:
0083 %
0084 % I assumed that the AC was in the correct position in the MNI
0085 % brain, and therefore that no translations were necessary;
0086 % Assumed that the MNI brain was in the correct orientation in
0087 % terms of rotation around the Y axis (roll) and the Z axis (yaw);
0088 % Using the SPM99b display tool, I compared the MNI brain to the
0089 % images in the Talairach atlas;
0090 %
0091 % Compared to the atlas, the MNI brain seemed tipped backwards,
0092 % so that the cerebellar / cerebral cortex line in the sagittal
0093 % view, at the AC, was too low. Similarly, the bottom of the
0094 % anterior part of the corpus collosum seemed too high. I
0095 % therefore applied a small (0.05 radian) pitch correction to
0096 % the MNI brain;
0097 %
0098 % Matching the top of the MNI brain to the top of the brain in
0099 % the atlas, required a zoom of 0.92 in Z. Similarly a Y zoom
0100 % of 0.97 was required as a best compromise in matching the front
0101 % and back of the MNI brain to the atlas. The left / right match
0102 % required a 0.99 zoom in X;
0103 %
0104 % The transform above provided a good match for the brain superior
0105 % to the AC/PC line, but a poor match below, with the temporal lobes
0106 % extending further downwards in the MNI brain than in the atlas. I
0107 % therefore derived a transform for the brain below the AC/PC line,
0108 % that was the same as the transform above, except with a Z zoom of
0109 % 0.84;
0110 %
0111 % This algorithm gave me the following transformations:
0112 %
0113 % Above the AC (Z >= 0):
0114 %
0115 % X'= 0.9900X
0116 %
0117 % Y'=  0.9688Y +0.0460Z
0118 %
0119 % Z'= -0.0485Y +0.9189Z
0120 %
0121 %
0122 % Below the AC (Z < 0):
0123 %
0124 % X'= 0.9900X
0125 %
0126 % Y'=  0.9688Y +0.0420Z
0127 %
0128 % Z'= -0.0485Y +0.8390Z
0129 %
0130 %
0131 % The matlab function mni2tal.m implements these transforms.
0132 % It returns estimated Talairach coordinates, from the
0133 % transformations above, for given points in the MNI brain.
0134 % To use it, save as mni2tal.m somewhere on your matlab path.
0135 %
0136 % So, taking our example point in the MNI brain, X = 10mm, Y = 12mm, Z = 14mm:
0137 %
0138 % With the mni2tal.m function above on your path, you could
0139 % type the following at the matlab prompt:
0140 %
0141 %
0142 % mni2tal([10 12 14])
0143 %
0144 % Which would give the following output (see above):
0145 %
0146 %
0147 % ans =
0148 %
0149 %     9.9000   12.2692   12.2821
0150 %
0151 %
0152 % which is, again, an estimate of the equivalent X, Y and Z
0153 % coordinates in the Talairach brain.
0154 %
0155 % The inverse function, tal2mni.m, gives MNI coordinates for
0156 % given Talairach coordinates, using the same algorithm.
0157 %
0158 % We could of course do a more complex transform to attempt
0159 % to make a closer match between the two brains. The approach
0160 % above is only intended to be preliminary. It does have the
0161 % advantage that it is very simple, and therefore the distortions
0162 % involved are easy to visualise, and unlikely to have dramatic
0163 % unexpected effects.
0164 %
0165 % Incidentally, if you use the above transform, and you want to
0166 % cite it, I suggest that you cite this web address. The transform
0167 % is also mentioned briefly in the following papers: Duncan, J.,
0168 % Seitz, R.J., Kolodny, J., Bor, D., Herzog, H., Ahmed, A., Newell, F.N.,
0169 % Emslie, H. "A neural basis for General Intelligence", Science (21 July
0170 % 2000), 289 (5478), 457-460; Calder, A.J., Lawrence, A.D. and
0171 % Young,A.W. "Neuropsychology of Fear and Loathing" Nature Reviews
0172 % Neuroscience (2001), Vol.2 No.5 352-363
0173 %

Generated on Mon 15-Aug-2005 15:36:19 by m2html © 2003