oesteban / RegSeg

RegSeg is a simultaneous segmentation and registration method that uses active contours without edges (ACWE) extracted from structural images. The contours evolve through a free-form deformation field supported by the B-spline basis to optimally map the contours onto the data in the target space.
MIT License
12 stars 9 forks source link

allow freesurfer surfaces to be read in addition to vtk format #40

Closed zosso closed 11 years ago

zosso commented 11 years ago

1) because it's much easier 2) matlab wrappers exist :-) 3) segmentation data is actually likely to come from freesurfer...

oesteban commented 11 years ago

I assign it to Version 2.0 milestone. It was in mind :)

oesteban commented 11 years ago

Ok, I see we already have the implementation in ITK 4.3 (http://www.itk.org/Doxygen43/html/classitk_1_1FreeSurferAsciiMeshIO.html).

Theoretically, the meshes provided by recon-all are 'binary type' by default. To open them, we just need to re-name the mesh to have .fsb extension (e.g. lh.pial -> lh.pial.fsb). Other option is to convert them to ascii files:

mris_convert lh.pial lh.pial.asc
mv lh.pial.asc lh.pial.fia

I do not know freesurfer so well, so I open here a question (particularly to @zosso and @meribach, who know better than me this tool):

Should we combine the lh.* and rh.* surfaces on one mesh?

I will close the thread right after being able to open one mesh with freesurfer. At that point, I will open a new issue about how to have the surfaces combined for both hemispheres.

oesteban commented 11 years ago

@meribach said in my opinion, we should keep them [the surfaces of each hemisphere] separately

I don't know if it would be very appropriate, because these meshes are cut in the middle. Maybe @zosso has some insight about how would this affect in the corpus callosum (CC) and the other shared structures between hemispheres. On the other hand, I don't have any idea about the complexity of merging meshes or if a unique one could be generated with freesurfer.

@meribach said Working with half hemisphere could be practical in terms of having smaller surfaces, the surface over the midsagital plane should not move actually, and this could be easily set as a prior, we do only want the surface to adapt in the areas were distortion is known (cortex). In any case, freesurfer treats these structures (CC and central nuclei) separately since they have the aseg segmentation. I do not see any problem in those areas, since I guess we are only looking for compensation for distortion in areas far from midsagital plane and central nuclei. Distortion should be pretty local in my opinion. Let me know if I am wrong in my understanding of the registration algorithm I might forgot something. As far as I know, freesurfer works only with separated meshes for eahc hemisphere and I never saw that one single surface could be generated.

oesteban commented 11 years ago

Another option in python (that I checked already and it works out): https://code.google.com/p/mindboggle-utils/downloads/detail?name=fsSurf2vtk.py&can=2&q=

zosso commented 11 years ago

I suggest keeping them separate. It's a mess in the middle, anyway, so rather do one hemisphere after the other and split the computational burden in two...

On 4/4/2013 3:47 AM, Oscar Esteban wrote:

@meribach <https://github.com/meribach>
in my opinion, we should keep them [the surfaces of each
hemisphere] separately

I don't know if it would be very appropriate, because these meshes are cut in the middle. Maybe @zosso https://github.com/zosso has some insight about how would this affect in the corpus callosum (CC) and the other shared structures between hemispheres. On the other hand, I don't have any idea about the complexity of merging meshes or if a unique one could be generated with freesurfer.

— Reply to this email directly or view it on GitHub https://github.com/oesteban/ACWE-Registration/issues/40#issuecomment-15890602.

oesteban commented 11 years ago

Ok, both @meribach and @zosso agree on using the surfaces separatelly. It is ok for me, but it raises some concerns on how to combine both deformation fields. Having this in mind, we can go further.

On the other hand, I've seen that since FreeSurfer 5.0 there is an option to merge surf files in mris_convert. It should be something like: mris_convert --combinesurfs lh.white rh.white ./both.white.gii. Then, view with: freeview --surface both.white.gii. (Taken from: https://mail.nmr.mgh.harvard.edu/pipermail//freesurfer/2010-September/015682.html)