Success!! (I think) I converted the binary mask to a greyscale image, and it seems like custom fill is able to detect the appropriate boundaries. I created a label from this and was able to generate anatomical stats for the ROI (hooray!). 2 more questions: 1 - when I go back into to tkmedit and load the label of the volume, it appears as a thin line running across the grey-white surface, rather than extending to the pial surface. I'm presuming this is because the label is now in 2D. Is this correct?
2 - Do "total surface area" and "total gray matter volume" only correspond to the label (not the entire surface?), and if so, why do I get a different value for total gray matter volume if I specify pial as the surface than if I specify white as the surface?
Thanks again, Alex
-----Original Message----- From: Bruce Fischl [mailto:fischl@nmr.mgh.harvard.edu] Sent: Wed 7/6/2005 11:22 AM To: Fornito, Alexander Cc: Doug Greve; freesurfer@nmr.mgh.harvard.edu Subject: RE: [Freesurfer] mri_vol2surf Hi Alex,
you can click inside the ROI region on the surface, then use custom fill to create a label and save it to a file.
cheers, Bruce On Wed, 6 Jul 2005, Fornito, Alexander wrote:
Ok, I feel I am tantalizingly close... It seems my confusion stemmed from the belief that the mask needed to be in label format, but I've since worked out that it can be loaded in tksurfer in analyze format as an overlay. Now that I can view my mask on the surface, the question is how can I obtain the thickness for the region under the overlay? I thought I could use the -t option in mris_anatomical stats with the mask, but it doesn't seem to read the file and results in 0 thickness (see below). Is a label the only way to obtain thickenss for an ROI? I tried mri_vol2roi and obtained an ROI in bfloat format, but am unsure how to display this in tksurfer, or convert this into a label (it didn't work with the -t command either). The --label argument seems to require a label to already be in place. Thanks for your help! A.
mris_anatomical_stats -t ./186_corconv_native_testmask_binary_y.img 1000186 lh pial using thickness file ./186_corconv_native_testmask_binary_y.img. reading volume /data/flanders/work/alex/freesurfer/subjects/1000186/mri/wm... reading input surface /data/flanders/work/alex/freesurfer/subjects/1000186/surf/lh.pial... MRISreadCurvature: could not open ./186_corconv_native_testmask_binary_y.img No such file or directory Computing inter-vertex distance
computing second fundamental form...done. total white matter volume = 659946 mm^3 total surface area = 123477 mm^2 total gray matter volume = 0 mm^3 average cortical thickness = 0.000 mm +- 0.000 mm integrated rectified mean curvature = 30613.737 integrated rectified Gaussian curvature = 7478.872 folding index = 3110.626 intrinsic curvature index = 338.606 avg inter-vertex dist (mm) = 1.00548 +/- 0.427572 avg vertex radius (mm) = 61.0534 +/- 17.1529
-----Original Message----- From: Doug Greve [mailto:greve@nmr.mgh.harvard.edu] Sent: Tue 7/5/2005 1:40 AM To: Bruce Fischl Cc: Fornito, Alexander; freesurfer@nmr.mgh.harvard.edu Subject: RE: [Freesurfer] mri_vol2surf
Something like this should work:
vertex_coords = read_surf('lh.white') [w,v] = read_wfile(wfilename);
lindex = v; lxyz = vertex_coords(lindex); lvals = zeros(size(lindex)); write_label(lindex, lxyz, lvals, labelfile, subjid);
On Mon, 4 Jul 2005, Bruce Fischl wrote:
Hi Alex,
I think Doug has a .m file to do this in matlab. We'll put an mri_vol2label on the to-do list, or maybe extend vol2roi to do it.
Bruce
On Mon, 4 Jul 2005, Fornito, Alexander wrote:
Never mind about the differences between tkmedit and tkregister - I retained --regheader in the command line, even though the mask and the volume were already correctly aligned, which caused them to move out of alignment. However, I'm still unsure of what the correct file format is for me to apply the image as an ROI to the surface to get regional anatomical info. Thanks, Alex
-----Original Message----- From: Bruce Fischl [mailto:fischl@nmr.mgh.harvard.edu] Sent: Mon 7/4/2005 11:25 AM To: Fornito, Alexander Cc: Doug Greve; freesurfer@nmr.mgh.harvard.edu Subject: RE: [Freesurfer] mri_vol2surf
Hi Alex,
no, label files are text files with the extension .label that usually reside in the subject's label directory. .w files are "weight" files (from EEG/MEG inverse solutions), and more generally, are a sparse set of floating point values. You can load them in tksurfer with file->load overlay, and leave the register field blank. but they probably aren't the right format for a label, which is just a list of voxels. Maybe Doug can point you in the right direction for that (mri_vol2roi?)
cheers, Bruce
On Mon, 4 Jul 2005, Fornito, Alexander wrote:
Hi, I've managed to get the mask to a point where it's in the correct
position if I load it through tkmedit (as a binary in analyze format). I then run mri_vol2surf, which seems to work (output below). However, If I try to load the mask (now saved as a .w file) though tksurfer as file > label > load, nothing happens (nothing happens if I try to load it as an overlay with the register.dat file either). If I try to load it as a label in tkmedit, I get the following:
Couldn't load the label. Tkmedit couldn't read the label you specified. This could be
because the format wasn't valid or the file wasn't found.
Am I missing something? I though .w was the correct format for
labels of this type.
Here's the mri_vol2surf output. Thanks again!
mri_vol2surf --src 186_corconv_native_testmask_binary_y --src_type
analyze --srcreg register.dat --hemi lh --out ./186_native_flip_y_mask_surf.w --out_type paint
INFO: output format is paint srcvol = 186_corconv_native_testmask_binary_y srctype = analyze srcreg = register.dat srcregold = 0 srcwarp unspecified surf = white hemi = lh interp = nearest float2int = round INFO: float2int code = 0 INFO: analyzeRead(): found 1 files for
/data/flanders/work/alex/freesurfer/subjects/186_corconv_native_testmask_binary_y
INFO: could not find
/data/flanders/work/alex/freesurfer/subjects/186_corconv_native_testmask_binary_y.mat file for direction cosine info.
INFO: use Analyze 7.5 hdr->hist.orient value: 0, transverse
unflipped (default).
INFO: if not valid, please provide the information in
/data/flanders/work/alex/freesurfer/subjects/186_corconv_native_testmask_binary_y.mat file
INFO: analyzeRead(): min = 0, max = 1 INFO: chaning type to float Done loading volume Reading surface
/data/flanders/work/alex/freesurfer/subjects/1000186/surf/lh.white
Done reading source surface Mapping Source Volume onto Source Subject Surface vol2surf_linear: nhits = 152789/152789 Done mapping volume to surface Number of source voxels hit = 96553 avg = 1.000, stdev = 0.000, min = 1.000, max = 1.000
-----Original Message----- From: Doug Greve [mailto:greve@nmr.mgh.harvard.edu] Sent: Fri 7/1/2005 10:11 PM To: Fornito, Alexander Cc: Bruce Fischl; freesurfer@nmr.mgh.harvard.edu Subject: Re: [Freesurfer] mri_vol2surf
Sorry, I gave you a slightly wrong tkmedit command-line, it should
have
been -overlay-reg ...
As for tkmedit, the mask is probably too dark. Click in the window
and
hit 'i'. This will turn on intensity normalization, which will
probably
fix the problem. You may want to load in the volume that you traced
the
mask on instead of the mask itself.
doug
Fornito, Alexander wrote:
Hi Doug, I tried the tkmedit command and it loaded the volume with the
mask, although I got a message saying:
Error: Parsing command line options Option -reg not recognized This option was not recognized and ignored.
Not sure why this occurred, as I loaded it from scratch through
the GUI (File > Load Overlay Data, with the mask as the volume and register.dat as the registration file) and it produced the same with no error.
In any case, I can see from tkmedit that the mask is not where it
should be (It's in the neck, where it should be in the cingulate, above the corpus callosum).
However, I tried running tkregister as you suggested to me, and
although the GUI pops up, I'm unable to see the movable volume (ie., the mask). This has happened to me before when i tried something else in tkregister, and am not sure if I'm doing anything wrong. The output is below.
Thanks for your help, Alex.
tkregister2 --s ./1000186 --mov ./186_corconv_mask.img --reg
./register.dat --regheader
INFO: no target volume specified, assuming FreeSurfer orig volume. target volume orig movable volume ./186_corconv_mask.img reg file ./register.dat LoadVol 1 $Id: tkregister2.c,v 1.22 2003/11/05 21:30:50 greve Exp $ Diagnostic Level -1 INFO: analyzeRead(): found 1 files for ./186_corconv_mask.img
INFO: could not find ./186_corconv_mask.mat file for direction
cosine info.
INFO: use Analyze 7.5 hdr->hist.orient value: 0, transverse
unflipped (default).
INFO: if not valid, please provide the information in
./186_corconv_mask.mat file
INFO: loading target
/data/flanders/work/alex/freesurfer/subjects/./1000186/mri/orig
INFO: changing target type to float Ttarg: -------------------- -1.000 0.000 0.000 128.000; 0.000 0.000 1.000 -128.000; 0.000 -1.000 0.000 128.000; 0.000 0.000 0.000 1.000; INFO: loading movable ./186_corconv_mask.img INFO: analyzeRead(): found 1 files for ./186_corconv_mask.img
INFO: could not find ./186_corconv_mask.mat file for direction
cosine info.
INFO: use Analyze 7.5 hdr->hist.orient value: 0, transverse
unflipped (default).
INFO: if not valid, please provide the information in
./186_corconv_mask.mat file
INFO: analyzeRead(): min = 0, max = 1 INFO: changing move type to float Tmov: -------------------- -1.000 0.000 0.000 128.000; 0.000 0.000 1.000 -128.000; 0.000 -1.000 0.000 128.000; 0.000 0.000 0.000 1.000; mkheaderreg = 1, float2int = 0 ---- Input registration matrix (computed) -------- 1.000 0.000 0.000 0.000; 0.000 0.000 1.000 -0.000; 0.000 -1.000 0.000 0.000; 0.000 0.000 0.000 1.000;
subject = ./1000186 Zoom Factor = 2 ---- Input registration matrix -------- 1.000 0.000 0.000 0.000; 0.000 0.000 1.000 -0.000; 0.000 -1.000 0.000 0.000; 0.000 0.000 0.000 1.000; Opening window ./1000186 Setting scale tkregister2: interface:
/usr/local/freesurfer/lib/tcl/tkregister2.tcl
tkregister.tcl: startup done tkregister.tcl: default macro interface (to change:
macro,mini,micro)
tkregister.tcl: or: setenv tkregisterinterface {macro,mini,micro}
-----Original Message----- From: Doug Greve [mailto:greve@nmr.mgh.harvard.edu] Sent: Fri 7/1/2005 12:47 PM To: Fornito, Alexander Cc: Bruce Fischl; freesurfer@nmr.mgh.harvard.edu Subject: RE: [Freesurfer] mri_vol2surf
The first thing that you should do is load your mask as an overlay
in
tkmedit to make sure that it is actually falling where you think
it
is:
tkmedit yoursubject orig -overlay ./mask.img -reg ./register.dat \ -fthresh 0.5
The fthresh is set assuming your mask is 0 or 1. You can even load the surface to see if it actually inersects.
If this fails, then you need a new registration file. You can create this with:
tkregiser2 --s yoursubject --mov mask.img --reg reg.dat
--regheader
tkregiser2 allows you to interactively change the registration.
Note
that you only use --regheader the first time you run it (ie,
before
you have a reg.dat).
doug
On Fri, 1 Jul 2005, Fornito, Alexander wrote:
Sorry, I forgot to mention, I have the mask in analyze format (I
traced it in another program). I ran mri_vol2surf using the register.dat file format that Doug provided, and got the output below. Although it creates a .w file, nothing happens when I load it in tksurfer, I'm gessing because the vertex values are zero (?). Have I done something wrong?
mri_vol2surf --src 186_corconv_mask --src_type analyze --srcreg
register.dat --hemi lh --out ./186_mask_surf.w --out_type paint
INFO: output format is paint srcvol = 186_corconv_mask srctype = analyze srcreg = register.dat srcregold = 0 srcwarp unspecified surf = white hemi = lh interp = nearest float2int = round INFO: float2int code = 0 INFO: analyzeRead(): found 1 files for
/data/flanders/work/alex/freesurfer/subjects/186_corconv_mask
INFO: could not find
/data/flanders/work/alex/freesurfer/subjects/186_corconv_mask.mat file for direction cosine info.
INFO: use Analyze 7.5 hdr->hist.orient value: 0, transverse
unflipped (default).
INFO: if not valid, please provide the information in
/data/flanders/work/alex/freesurfer/subjects/186_corconv_mask.mat file
INFO: analyzeRead(): min = 0, max = 1 INFO: chaning type to float Done loading volume Reading surface
/data/flanders/work/alex/freesurfer/subjects/1000186/surf/lh.white
Done reading source surface Mapping Source Volume onto Source Subject Surface vol2surf_linear: nhits = 152789/152789 Done mapping volume to surface Number of source voxels hit = 96553 Warning: all vertex values are zero
-----Original Message----- From: Bruce Fischl [mailto:fischl@nmr.mgh.harvard.edu] Sent: Fri 7/1/2005 11:06 AM To: Fornito, Alexander Cc: freesurfer@nmr.mgh.harvard.edu Subject: Re: [Freesurfer] mri_vol2surf Hi Alex,
I think you can just load the label into tksurfer
(file->label->load) and
it will sample it onto the surface, assuming that it was drawn on
one of
the volumes that the surface was created from (or a coregistered
one).
The 1st time you do this it may take a bit, but if you save it
again it
will save the vertex #s.
cheers, Bruce
On Fri, 1 Jul 2005, Fornito, Alexander wrote:
>Hi, >I'm trying apply ROI masks that I've manually traced in volume
space to the same image's surface using mri_vol2surf. mri_vol2surf seems to requires a register.dat file, and I'm unsure what needs to be registered, since the volume that I traced the masks on is exactly the same as the one that I began with to create the surface (so presumably they are in the same space?) . Any hints would be appreciated.
>Thanks, >Alex > >_______________________________________________ >Freesurfer mailing list >Freesurfer@nmr.mgh.harvard.edu >https://mail.nmr.mgh.harvard.edu/mailman/listinfo/freesurfer > > >
Freesurfer mailing list Freesurfer@nmr.mgh.harvard.edu https://mail.nmr.mgh.harvard.edu/mailman/listinfo/freesurfer
freesurfer@nmr.mgh.harvard.edu