Looking for command to Expand/Shrink Freesurfer Surfaces

Hey everyone,

I am searching for a command that allows me to expand/shrink a freesurfer surface, e.g. lh.white. The goal would be to produce an output similar to Salat (2009), see picture attached. I haven’t found any freesurfer commands that allow me to do this, the closest I got was probably with mri_surf2vol, which allows to specify a projection fraction, yet only outputs a voxel map instead of the desired surface.

Is anyone aware of commands within freesurfer or other packages that allow this operation?

Thanks for the help in advance!


Freesurfer Version 7.3.2, installation on MacOS

Screenshot 2023-04-21 at 17.09.01

That strikes me as a pretty tricky thing to do with a mesh directly, particularly with expansion because you would have to make sure the mesh didn’t cross over itself anywhere else. The meshes have a complicated geometry, and the points generally don’t know where other mesh points/surfaces are.

That being said, there are some tools for generating interpolated surfaces between two existing meshes that have corresponding nodes, such as the GM and pial surface in FS, which was the topic of this OHBM poster:

Creating Layered Surfaces to Visualize with AFNI + SUMA, with applications to laminar fMRI
by Torrisi S, Lauren P, Taylor PA, Park S, Feinberg D, Glen DR.
Torrisi et al. (2021) OHBM poster.

… and there is a demo available within AFNI for this functionality:

If you want meshes of uniformly expanded volumetric tissue maps, you could take the volumetric tissue maps and expand/shrink them, and then wrap those in new meshes. Note that those new meshes wouldn’t have nodal correspondence to the original ones. In AFNI, 3dmask_tool would be one inflator/deflator of choice, giving the -dilate_input .. option positive or negative values, respectively (and you can even provide a list of inputs for successive positive/negative dilations, such as -dilate_input -3 3, for example: that is a classic tool in image processing to smooth boundary edges or remove (hopefully) unwanted features. There is also 3dDepthMap, which can do fun things like selecting boundaries of region maps, in addition to generating per-ROI depth maps.


Thanks for the reply! Played around a bit more and mris_expand seems to do the trick!