What do you mean by "ras matlab subscripts"? Those looks like indices, not RAS. Assuming those are indices, then that looks right. doug
On 05/18/2012 02:02 PM, Jordan L. Poppenk wrote: > Dear Doug, > > To generalize from this earlier conversion question, to interpret the > coordinate space of a file loaded by freesufer/matlab/MRIread.m, would one > use the following transform to move from ras matlab subscripts (e.g., > 1:256,1:256,1:256) to mni coords? > > mni = talairach.xfm * vox2ras1 * [r a s 1] > > The coordinates I get out of this transform do not seem quite right. > > Cheers, > Jordan > > > On May 3, 2012, at 5:40 PM, Jordan Poppenk wrote: > >> Dear Douglas, >> >> That's exactly the information I was looking for. This worked perfectly. >> Thank you for your help! >> >> Cheers, >> Jordan >> >> >>> Here's how to convert from surface RAS to mni305 >>> >>> mni305ras = X*S*inv(K)*ras >>> X = talairach.xfm >>> S = scanner vox2ras (mri_info --vox2ras orig.mgz) >>> K = tkreg vox2ras (mri_info --vox2ras-tkr orig.mgz) >>> ras = surface ras >>> >>> If you want to go from mni305 to approximate talairach, you can use this >>> transform from Matthew Brett: >>> >>> >>> function outpoints = mni2tal(inpoints) >>> % Converts coordinates from MNI brain to best guess >>> % for equivalent Talairach coordinates >>> % FORMAT outpoints = mni2tal(inpoints) >>> % Where inpoints is N by 3 or 3 by N matrix of coordinates >>> % (N being the number of points) >>> % outpoints is the coordinate matrix with Talairach points >>> % Matthew Brett 10/8/99 >>> >>> dimdim = find(size(inpoints) == 3); >>> if isempty(dimdim) >>> error('input must be a N by 3 or 3 by N matrix') >>> end >>> if dimdim == 2 >>> inpoints = inpoints'; %' >>> end >>> >>> % Transformation matrices, different zooms above/below AC >>> 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]); >>> >>> tmp = inpoints(3,:)<0; % 1 if below AC >>> inpoints = [inpoints; ones(1, size(inpoints, 2))]; >>> inpoints(:, tmp) = downT * inpoints(:, tmp); >>> inpoints(:, ~tmp) = upT * inpoints(:, ~tmp); >>> outpoints = inpoints(1:3, :); >>> if dimdim == 2 >>> outpoints = outpoints'; %' >>> end >>> >>> >>> >>> >>> >>> >>> On 05/02/2012 12:54 PM, Jordan Poppenk wrote: >>> Dear FreeSurfer experts, >>> >>>> >>> How does one properly convert from surfaceRAS coords, as provided by >>> fs_read_surf.m, to talairach coords? I have tried using >>> freesurfer_surf2tal.m posted on the web by Darren Weber, supplying it with >>> transform data from transforms/talairach.xfm, but the values returned often >>> differ from those in tksurfer by as much as 20mm (and are clearly wrong). >>> What I would like to do is match the coordinate system in tksurfer (which >>> is clearly right). How does tksurfer do it? >>> >>>> >>> Cheers, >>> >>> Jordan >>> >>>> >>>> >>> _______________________________________________ >>> >>> Freesurfer mailing list >>> >>>> Freesurfer at nmr.mgh.harvard.edu >>>> https://mail.nmr.mgh.harvard.edu/mailman/listinfo/freesurfer >>>> >>>> >>> -- >>> Douglas N. Greve, Ph.D. >>> MGH-NMR Center >>> >>> greve at nmr.mgh.harvard.edu >>> >>> Phone Number: 617-724-2358 >>> Fax: 617-726-7422 >>> >>> Bugs: surfer.nmr.mgh.harvard.edu/fswiki/BugReporting >>> FileDrop: www.nmr.mgh.harvard.edu/facility/filedrop/index.html > > -- Douglas N. Greve, Ph.D. MGH-NMR Center gr...@nmr.mgh.harvard.edu Phone Number: 617-724-2358 Fax: 617-726-7422 Bugs: surfer.nmr.mgh.harvard.edu/fswiki/BugReporting FileDrop: www.nmr.mgh.harvard.edu/facility/filedrop/index.html _______________________________________________ Freesurfer mailing list Freesurfer@nmr.mgh.harvard.edu https://mail.nmr.mgh.harvard.edu/mailman/listinfo/freesurfer The information in this e-mail is intended only for the person to whom it is addressed. If you believe this e-mail was sent to you in error and the e-mail contains patient information, please contact the Partners Compliance HelpLine at http://www.partners.org/complianceline . If the e-mail was sent to you in error but does not contain patient information, please contact the sender and properly dispose of the e-mail.