In the documentation of mris_thickness_diff it says "This program computes the difference of two surface data sets defined on the two surface mesh. Result = data2 - data1 (in sense of closest vertex)." Also, on the thickness repeatability page, it states that the output of mris_thickness_diff is sampled on the first surface.
Just want to make sure I'm understanding this correctly: this means that mris_thickness_diff does NOT resample the data onto a common mesh to do vertex-wise subtraction, but rather, for each vertex in surface1, it finds the spatially closest vertex in surface2 and then subtracts the data2 at that point from data1 at the original point.
So I assume this means that using mris_thickness_diff, even if you have two thickness data files which are sampled on the *same* mesh, if they are physically not aligned in space for whatever reason, you will get very wrong results? (I think I had this problem earlier and didn't understand what was going on.)
One more question about the thickness repeatability page. How will the results obtained in this way differ from results obtained by aligning the surfaces with mri_surf2surf and simply doing a vertex- wise subtraction using matlab?
-- -dave---------------------------------------------------------------- Science arose from poetry... when times change the two can meet again on a higher level as friends. -Göthe
On May 8, 2007, at 2:46 PM, David Perlman wrote:
In the documentation of mris_thickness_diff it says "This program computes the difference of two surface data sets defined on the two surface mesh. Result = data2 - data1 (in sense of closest vertex)." Also, on the thickness repeatability page, it states that the output of mris_thickness_diff is sampled on the first surface.
Just want to make sure I'm understanding this correctly: this means that mris_thickness_diff does NOT resample the data onto a common mesh to do vertex-wise subtraction, but rather, for each vertex in surface1, it finds the spatially closest vertex in surface2 and then subtracts the data2 at that point from data1 at the original point.
So I assume this means that using mris_thickness_diff, even if you have two thickness data files which are sampled on the *same* mesh, if they are physically not aligned in space for whatever reason, you will get very wrong results? (I think I had this problem earlier and didn't understand what was going on.)
One more question about the thickness repeatability page. How will the results obtained in this way differ from results obtained by aligning the surfaces with mri_surf2surf and simply doing a vertex- wise subtraction using matlab?
I'm assuming that my interpretation is correct, since no one had anything to say about it. As for the question about thickness repeatability: I tried this out, and I'm even more confused because of the results.
1. I took the lh.thickness for the same subject, two different times, used mri_surf2surf to blur at 10mm and resample t2 to the mesh of t1. Then I read the data into Matlab, calculated the difference, and wrote it back out as a .w file.
2. I followed the procedure in the Thickness Repeatibility page for calculating thickness difference using mris_thickness_diff: http://surfer.nmr.mgh.harvard.edu/fswiki/ThicknessRepeatibility I used the commands exactly as given, substituting in my own subject names and file names, and added -nsmooth 53, which was the number of iterations reported by mri_surf2surf for 10mm FWHM.
The results I get are somewhat different. There's a similar overall pattern, but there are some large peaks that are different between the two maps. However, the worst thing is that in the mid-sagittal cut, where I know it should be zero-zero=zero (and it is when I do it with Matlab), there's an extreme value there when I use mris_thickness_diff, about 2.3, way outside of the distribution, and I can see from looking at the image that this value shows up uniformly over the whole cut.
I've read everything I can find on mris_thickness_diff, and I don't understand how this can happen, even if the registration with FLIRT is a little bit off. I can understand how the overall pattern might be a little bit different because of the different methods of registration (surface or volume) used in these two techniques, but the extreme value on the cut plane makes me concerned that something more sinister is afoot here.
I'm including two small images of the different results.
-- -dave---------------------------------------------------------------- Science arose from poetry... when times change the two can meet again on a higher level as friends. -Göthe
Dave,
Here is some more information on mris_thickness_diff:
" mris_thickness_diff uses closest Euclidean distance to define correspondence across the two surfaces. It does not assume that the correspondence is given by the vertex IDs. But if one has two surfaces that are the 'same' but not aligned in space yet, the trick is to just use one of them as both the src and trgt surface, and mris_thickness_diff will then associate data by their corresponding vertex ID.
In contrast, mri_sur2surf builds the surface correspondence through the spherical map. This 'nonlinear' way of building surface correspondence is less reliable than using linear registration and building correspondence by surface distance in the longitudinal case. Overall, the key is that mri_surf2surf is better to align surfaces across different subjects while ICP or linear volume registration is better for aligning surfaces from the same subject across time. This means that mris_thickness_diff is more useful for longitudinal studies.
The -register flag to mris_thickness_diff will run ICP internally to align the two input surfaces if they have not been aligned yet. But ICP (iterative-closest-point) has its limited capture range. For example, if one surface is the other one rotated by more than 90 degree, ICP may not align them.
Example:
mris_thickness_diff \ -out $SUBJECTS_DIR/subj_tp2/surf/lh.thickness_diff \ -trg_type curv \ -register \ $SUBJECTS_DIR/subj_tp1/surf/lh.white \ $SUBJECTS_DIR/subj_tp1/surf/lh.thickness \ $SUBJECTS_DIR/subj_tp2/surf/lh.white \ $SUBJECTS_DIR/subj_tp2/surf/lh.thickness
tksurfer subj_tp2 lh inflated -overlay lh.thickness_diff Select menu View->Configure->Overlap to adjust threshold. "
So notice there is a -register flag to align the two surfaces.
Others will have to comment on your questions about your attempt to reproduce the thickness repeatability work.
Nick
On Wed, 2007-05-09 at 15:23 -0500, David Perlman wrote:
On May 8, 2007, at 2:46 PM, David Perlman wrote:
In the documentation of mris_thickness_diff it says "This program computes the difference of two surface data sets defined on the two surface mesh. Result = data2 - data1 (in sense of closest vertex)." Also, on the thickness repeatability page, it states that the output of mris_thickness_diff is sampled on the first surface.
Just want to make sure I'm understanding this correctly: this means that mris_thickness_diff does NOT resample the data onto a common mesh to do vertex-wise subtraction, but rather, for each vertex in surface1, it finds the spatially closest vertex in surface2 and then subtracts the data2 at that point from data1 at the original point.
So I assume this means that using mris_thickness_diff, even if you have two thickness data files which are sampled on the *same* mesh, if they are physically not aligned in space for whatever reason, you will get very wrong results? (I think I had this problem earlier and didn't understand what was going on.)
One more question about the thickness repeatability page. How will the results obtained in this way differ from results obtained by aligning the surfaces with mri_surf2surf and simply doing a vertex- wise subtraction using matlab?
I'm assuming that my interpretation is correct, since no one had anything to say about it. As for the question about thickness repeatability: I tried this out, and I'm even more confused because of the results.
- I took the lh.thickness for the same subject, two different times,
used mri_surf2surf to blur at 10mm and resample t2 to the mesh of t1. Then I read the data into Matlab, calculated the difference, and wrote it back out as a .w file.
- I followed the procedure in the Thickness Repeatibility page for
calculating thickness difference using mris_thickness_diff: http://surfer.nmr.mgh.harvard.edu/fswiki/ThicknessRepeatibility I used the commands exactly as given, substituting in my own subject names and file names, and added -nsmooth 53, which was the number of iterations reported by mri_surf2surf for 10mm FWHM.
The results I get are somewhat different. There's a similar overall pattern, but there are some large peaks that are different between the two maps. However, the worst thing is that in the mid-sagittal cut, where I know it should be zero-zero=zero (and it is when I do it with Matlab), there's an extreme value there when I use mris_thickness_diff, about 2.3, way outside of the distribution, and I can see from looking at the image that this value shows up uniformly over the whole cut.
I've read everything I can find on mris_thickness_diff, and I don't understand how this can happen, even if the registration with FLIRT is a little bit off. I can understand how the overall pattern might be a little bit different because of the different methods of registration (surface or volume) used in these two techniques, but the extreme value on the cut plane makes me concerned that something more sinister is afoot here.
I'm including two small images of the different results.
-- -dave---------------------------------------------------------------- Science arose from poetry... when times change the two can meet again on a higher level as friends. -Göthe
Freesurfer mailing list Freesurfer@nmr.mgh.harvard.edu https://mail.nmr.mgh.harvard.edu/mailman/listinfo/freesurfer
freesurfer@nmr.mgh.harvard.edu