[pymvpa] Surface searchlight taking 6 to 8 hours

Nick Oosterhof n.n.oosterhof at googlemail.com
Thu Jul 23 15:48:52 UTC 2015


> On 23 Jul 2015, at 16:46, Christopher J Markiewicz <effigies at bu.edu> wrote:
> 
> To clarify, are you saying that using SurfaceVerticesQueryEngine runs
> the classifiers (or other measure) on sets of vertices, not sets of
> voxels?

No, the *input* for classification (or other measure) is from voxels (without interpolation); the output (such as classification accuracy) is assigned to nodes. Distances are measured along the cortical surface, meaning that the shape of each searchlight region (in voxel space) resembles that of a curved cylinder with the top and bottom part lying on the pial and white surfaces, and the side connecting those two surfaces.

> I'm not familiar enough with AFNI surfaces, but the ratio of
> vertices to intersecting voxels in FreeSurfer is about 6:1. If a
> searchlight is a set of vertices, how is the implicit resampling
> accounted for?

As above, there is no resampling of data. All unique voxels contained in the ‘curved cylinder’ searchlight are used for classification.  

> 
> Also, if mapping vertices to voxel IDs is a serious bottleneck, you can
> have a look at my query engine
> (https://github.com/effigies/PyMVPA/blob/qnl_surf_searchlight/mvpa2/misc/neighborhood.py#L383).
> It uses FreeSurfer vertex map volumes (see: mri_surf2vol --vtxvol),
> where each voxel contains the ID of the vertex nearest its center. Maybe
> AFNI has something similar?

Thanks for the reference. It is possible that AFNI has something similar, but in PyMVPA we try to be independent from AFNI is possible (the pymvpa2-prep-afni-surf script is a clear exception). But a similar approach could possible be used to speed up the mapping between voxels and nearest nodes. 


More information about the Pkg-ExpPsy-PyMVPA mailing list