[FieldTrip] How do I use an atlas to find regions on an individual MRI?

Schoffelen, J.M. (Jan Mathijs) jan.schoffelen at donders.ru.nl
Wed Jul 6 16:06:16 CEST 2016


Dear Andreja,

I have never understood ft_volumelookup myself, so I wonder whether you would be helped by proposing a different strategy…

I would do the following:

% read in the atlas
atlas = ft_read_atlas(‘somefilename’);

% read in and normalise the anatomical image
mri = ft_read_mri(‘someotherfilename’)
mri = ft_volumenormalise([], mri);

% assuming that both atlas and mri are in the same coordinate system
cfg = [];
cfg.parameter = ‘tissue’;
mri2 = ft_sourceinterpolate(cfg, atlas, mri);

The last step gives you the atlas interpolated onto the anatomical MRI.

It should be straightforward to create a boolean mask from here that specifies a particular ROI

mri2.mask = mri2.tissue==strcmp(atlas.tissuelabel, ‘yourfavoritebrodmannarea’);


I hope this helps.

Best wishes,
Jan-Mathijs



On 06 Jul 2016, at 15:33, Andreja Kostić <andrejakosticln at gmail.com<mailto:andrejakosticln at gmail.com>> wrote:

Hello dear Fieldtrippers!
This is my first post on the mailing list, so I apologize if this looks a bit confused.

So I'm trying to use the WFU PickAtlas for Brodmann areas in what I think are MNI coordinates to find specific regions inside of a brain (I'm coming from electrical engineering background, so I can't do that "by hand") in an individual whole-head MRI and I'm having issues getting sane results.

I suspect that my workflow is the problem, so I would be very grateful if someone could provide some advice as to what I should be actually doing.

My original idea was to take MRI in CTF coordinates, convert it to MNI coordinates and then just use atlas to make masks. From what I could gather, it's not that simple.
So here are examples of what I'm doing right now:

ft_defaults;
%Let's read atlas
atlas = ft_read_atlas('C:\REALY_LONG_PATH_TO_PICKATLAS\wfu_pickatlas\MNI_atlas_templates\TD_brodmann.nii');


%Using Subject01from FT tutorials right now, for simplicity's sake.
mri = ft_read_mri('Subject01\Subject01.mri');


%Reslice, apply transformations
cfg=[];
cfg.dim=[256 256 256];
mri_resliced=ft_volumereslice(cfg, mri);

cfg=[];
mri_norm1=ft_volumenormalise(cfg,mri_resliced);
%Unfortunately, this cuts off everything below the nose!
%Still let's take a look at the visualization with atlas

cfg=[];
cfg.inputcoord='mni';
cfg.atlas=atlas;
cfg.roi='brodmann area 4';

mask4 = ft_volumelookup(cfg, mri_norm1);
mri_norm1.mask4=mask4;

cfg=[];
cfg.atlas=atlas;
cfg.funparameter = 'mask4';
ft_sourceplot(cfg,mri_norm1)

%The result doesn't look so good, big part of the area seems to fit inside of the gaps between brain tissue!
So this doesn't seem to have worked out. My next attempt was to directly use ft_convert_coordsys. This fixed the cutting issue, but it didn't solve the problem of results looking strange.
So my other idea was to try with

template=ft_read_mri('C:\PathToFT\external\spm8\templates\T1.nii');

cfg=[];
cfg.method='spm';
cfg.coordsys='spm';
mri_realigned=ft_volumerealign(cfg,mri_resliced,template);
But this produces very obviously wrong results, like coronal slices on sagittal plane.
I'm also not sure if I should be trying to somehow transform an atlas to fit the individual MRI that I'm using?

All the best,
Andreja Kostić








_______________________________________________
fieldtrip mailing list
fieldtrip at donders.ru.nl<mailto:fieldtrip at donders.ru.nl>
https://mailman.science.ru.nl/mailman/listinfo/fieldtrip

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.science.ru.nl/pipermail/fieldtrip/attachments/20160706/bcc493f5/attachment-0001.html>


More information about the fieldtrip mailing list