khanlab / hippunfold

BIDS App for Hippunfold (automated hippocampal unfolding and subfield segmentation)
https://hippunfold.readthedocs.io
MIT License
48 stars 13 forks source link

gyrification measure depends on output_density #87

Closed jordandekraker closed 3 years ago

jordandekraker commented 3 years ago

This is a bit annoying, we should maybe look more into how wb_command calculates gyrification. The evenly tessellated outputs don't seem to contain anything too interesting here (or maybe its just noisier due to sharper edges?). Perhaps we should calculate on the 32k surface and then downsample to 2k and 7k?

akhanf commented 3 years ago

What wb_command computes is a surface area per vertex (mean of neighboring 3 triangles area), which is on average (across the surface) designed to be constant.

The fact is we are not computing gyrification, we are computing surface area, which is not really the same thing..

The gyrification index is typically some sort of a ratio between surface area or length of the curved cortex and surface area of length of a comparably smooth cortex.

E.g. this is one method: https://surfer.nmr.mgh.harvard.edu/fswiki/LGI

Or another way is to just calculate the local surface area enclosed in a fixed radius sphere at the vertex; folded areas would be greater than smooth ones. Note this is different from just performing surface based smoothing of the SA map (since that would just end up capturing the same area whether folded or not).

On Fri., Jul. 9, 2021, 1:46 p.m. jordandekraker, @.***> wrote:

This is a bit annoying, we should maybe look more into how wb_command calculates gyrification. The evenly tessellated outputs don't seem to contain anything too interesting here (or maybe its just noisier due to sharper edges?). Perhaps we should calculate on the 32k surface and then downsample to 2k and 7k?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/khanlab/hippunfold/issues/87, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACXV2XKWIIGTJZTYQ2EBMB3TW4WEDANCNFSM5ADE2NGA .

jordandekraker commented 3 years ago

Yeah, that's what I figured. I like freesurfer's localGI method, and it would probably produce something similar but a bit different to what we have been doing previously. Just to flesh out what we had been doing, instead of comparing surface area to a native vs smoothed hippocampus we are instead comparing it to a fully unfolded (or rectangular grid) hippocampus. I still think this is a useful measure, but to call it a gyrification index is a bit different from how other are using the term (maybe we could consider calling it surface distortion or something like that?). I also wouldn't mind just keeping this method, calling it gyrification, and clarifying the calculation in the methods section. If we did freesurfer's localGI then it might be easier to write our own python function rather than add dependencies.

akhanf commented 3 years ago

Yes I agree it is something we can easily just implement rather than depend on something else..

The existing measurement (ie surface area on the 32k surface) could perhaps just be called surface distortion as you suggest..