Hi all,<div><br></div><div>I am trying to use searchlight on event-related fMRI data. I combined two scripts provided with </div><div>pymvpa (version 0.4.5): eventrelated.py and searchlight_2d.py. The script looks like that</div>
<div><br></div><div>=====================================================</div><div><div>from mvpa.suite import *</div><div><br></div><div>fmri_src = os.path.join(pymvpa_dataroot, &#39;bold.nii.gz&#39;)</div><div>mask = NiftiImage(os.path.join(pymvpa_dataroot, &#39;mask.nii.gz&#39;))</div>
<div>attr = SampleAttributes(</div><div>                os.path.join(pymvpa_dataroot,</div><div>                             &#39;attributes_literal.txt&#39;),</div><div>                        literallabels=True)</div></div>
<div><div>verbose(1, &quot;Load data for preprocessing&quot;)</div><div>pre_ds = NiftiImage(fmri_src)</div><div>pre_ds = NiftiDataset(samples=fmri_src, labels=attr.labels,</div><div>                      chunks=attr.chunks, mask=mask)</div>
<div>pre_ds.setSamplesDType(&#39;float&#39;)</div><div>detrend(pre_ds, perchunk=True, model=&#39;linear&#39;)</div></div><div><div>evs = [ev for ev in attr.toEvents()</div><div>            if ev[&#39;label&#39;] in [&#39;face&#39;, &#39;house&#39;]]</div>
</div><div><div>for ev in evs:</div><div>    ev[&#39;onset&#39;] -= 1</div><div>    ev[&#39;duration&#39;] = 4</div></div><div><div>ds = ERNiftiDataset(samples=pre_ds.map2Nifti(),</div><div>                    events=evs,</div>
<div>                    mask=mask,</div><div>                    labels_map={&#39;face&#39;: 1,</div><div>                                &#39;house&#39;: 2})</div></div><div>zscore(ds, perchunk=True)</div><div><br></div>
<div><div># Run Searchlight</div><div>clf = LinearNuSVMC()</div><div>cv = CrossValidatedTransferError(TransferError(clf),</div><div>                                 NFoldSplitter())</div></div><div><div>for radius in [1,5,10]:</div>
<div>    </div><div>    print &quot;Running searchlight with radius: %i ...&quot; % (radius)</div><div>    sl = Searchlight(cv, radius=radius)</div><div>    sl_map = sl(ds)</div></div><div><br></div><div>=====================================================</div>
<div><br></div><div>The code fails with the following message:</div><div><br></div><div><div>Traceback (most recent call last):</div><div>  File &quot;eventrelated_original_SL.py&quot;, line 158, in &lt;module&gt;</div><div>
    sl_map = sl(ds)</div><div>  File &quot;/usr/lib/pymodules/python2.6/mvpa/measures/base.py&quot;, line 105, in __call__</div><div>    result = self._call(dataset)</div><div>  File &quot;/usr/lib/pymodules/python2.6/mvpa/measures/searchlight.py&quot;, line 77, in _call</div>
<div>    raise ValueError, &quot;Searchlight only works with MappedDatasets &quot; \</div><div>ValueError: Searchlight only works with MappedDatasets that has metric assigned.</div></div><div><br></div><div><br></div><div>
<br></div><div>Could you please advise on how to make the code work by assigning metric to MappedDatasets or in any other way.</div><div><br></div><div>Thank you,<br>Anna.</div><meta http-equiv="content-type" content="text/html; charset=utf-8">