I am attempting to do surface based analysis as part of an fmri study. I’m confident that the voxel values, once shifted to a 1d file, are misaligned. The shift file seems to have incorrectly shifted the volume into surface space. I’ve looked at the outputs but am not entirely sure how to interpret them or how to find where the misalignment occurred.
I appreciate the help!


Hi Patrick,

If possible, please show both the 3dVol2Surf command used to map data to the surface, as well as the 3dSurf2Vol command used to go back.


  • rick

Sorry for the delay, the code we used is below, it was run through matlab:

system(['3dVol2Surf -spec ’ paths.vol.S2 ‘surfaces/TandonLang/’ patient ‘/SUMA_std/std.125.’ patient '_both.spec -surf_A rh.pial.asc -sv ’ paths.vol.S2 patient ‘/afni/’ patient '_anatr1_shifted_coords+orig.BRIK -grid_parent ’ paths.vol.S2 patient ‘/afni/’ patient 'v1mr+orig.BRIK -map_func mask -out_1D ’ paths.vol.S2 patient ‘/afni/’ patient ‘_R_v1mr_surface.1D’]);

I’m not sure what you mean but going back, but as I said, the above code is what we are having trouble with.

Sorry again for taking so long to reply!

Thank you

Hi Patrick,

Thanks for the command.

As Daniel has pointed out to me, this is such a common issue, we should probably change the behavior of the program.

As it stands, if -oob_value is not supplied, nodes that are outside the -grid_parent dataset will not be output. A similar issue arises if you use -cmask and no -oom_value option. You probably need to add “-oob_value 0”.

  • rick