[pymvpa] PyMVPA

Mike E. Klein michaeleklein at gmail.com
Mon Aug 18 00:32:29 UTC 2014


Some of your voxels have a “NaN” value, perhaps due to preprocessing in
SPM. FSL has a tool that will replace these values with zeros (I think), so
that might resolve your issue.

Best,
Mike


On Sun, Aug 17, 2014 at 10:49 AM, cfygj <cfygj at 126.com> wrote:

> Hi all, I’m just wondering if anyone has any advice on some ways to deal
> with my problems. Here is my scipt, which was used to run my data, then
> come out some error information. Could you tell me how to address its?
>
> Scripts:
> # Import necessary modules
> from os import path
> import os
> import numpy as N
> import numpy.matlib as M
> import scipy.io as sio
> from mvpa2.suite import *
> from mvpa2.mappers.detrend import poly_detrend
> from mvpa2.datasets.mri import fmri_dataset
> from mvpa2.datasets.miscfx import remove_invariant_features
>
> # Load fMRI data
> attrs = SampleAttributes('attributes.txt')
> ds = fmri_dataset(samples=('s1.nii.gz'), targets=attrs.targets,
> chunks=attrs.chunks)
>
> # Detrend with motion correction parameter
> mc = McFlirtParams('prefiltered_func_data_mcf.par') # detrend head motion
> for param in mc:
>     ds.sa['mc_' + param] = mc[param]
> res = poly_detrend(ds, opt_regs=['mc_x', 'mc_y', 'mc_z', 'mc_rot1',
> 'mc_rot2', 'mc_rot3'])
>
> # do chunkswise linear detrending on dataset
> poly_detrend(ds, polyord=1, chunks_attr='chunks')
>
> # do z-score  dataset relative to baseline ('rest') mean
> zscore(ds, chunks_attr='chunks', param_est=('targets', [0]))
>
> # select subdata for each trial for mvpa analysis
> ds = ds[N.array([l%6 == 3 for l in ds.sa.time_indices], dtype='bool')]
> ds=remove_invariant_features(ds)
>
> # try classifier
> partitioner = NFoldPartitioner()
> repeater = Repeater(count=10000)
> permutator = AttributePermutator('targets', limit={'partitions': 1},
> count=1)
> null_cv = CrossValidation(
>     clf,
>     ChainNode(
>         [partitioner, permutator],
>         space=partitioner.get_space()),
>     postproc=mean_sample())
> distr_est = MCNullDist(repeater, tail='left', measure=null_cv,
> enable_ca=['dist_samples'])
> cv_mc_corr = CrossValidation(clf,
>               partitioner,
>               postproc=mean_sample(),
>               null_dist=distr_est,
>               enable_ca=['stats'])
>
> error = cv_mc_corr(ds)
> Results_Error[0,0] = error.samples
> p = cv_mc_corr.ca.null_prob
> print 'p', p
> assert(p.shape == (1,1))
> Results_P[0,0] = p.samples[0,0]
> Distribution = cv_mc_corr.null_dist.ca.dist_samples
> distr_est.clean()
>
>
>
> errors:
> Traceback (most recent call last):
>   File "mvpa_classifier.py", line 84, in <module>
>     error = cv_mc_corr(ds)
>   File "/usr/lib/python2.7/dist-packages/mvpa2/base/learner.py", line 259,
> in __call__
>     return super(Learner, self).__call__(ds)
>   File "/usr/lib/python2.7/dist-packages/mvpa2/base/node.py", line 120, in
> __call__
>     self._precall(ds)
>   File "/usr/lib/python2.7/dist-packages/mvpa2/measures/base.py", line
> 118, in _precall
>     self.__null_dist.fit(measure, ds)
>   File "/usr/lib/python2.7/dist-packages/mvpa2/clfs/stats.py", line 403,
> in fit
>     res = measure(permuted_ds)
>   File "/usr/lib/python2.7/dist-packages/mvpa2/base/learner.py", line 259,
> in __call__
>     return super(Learner, self).__call__(ds)
>   File "/usr/lib/python2.7/dist-packages/mvpa2/base/node.py", line 121, in
> __call__
>     result = self._call(ds)
>   File "/usr/lib/python2.7/dist-packages/mvpa2/measures/base.py", line
> 497, in _call
>     return super(CrossValidation, self)._call(ds)
>   File "/usr/lib/python2.7/dist-packages/mvpa2/measures/base.py", line
> 326, in _call
>     result = node(sds)
>   File "/usr/lib/python2.7/dist-packages/mvpa2/base/learner.py", line 259,
> in __call__
>     return super(Learner, self).__call__(ds)
>   File "/usr/lib/python2.7/dist-packages/mvpa2/base/node.py", line 121, in
> __call__
>     result = self._call(ds)
>   File "/usr/lib/python2.7/dist-packages/mvpa2/measures/base.py", line
> 617, in _call
>     res = measure(dstest)
>   File "/usr/lib/python2.7/dist-packages/mvpa2/base/learner.py", line 259,
> in __call__
>     return super(Learner, self).__call__(ds)
>   File "/usr/lib/python2.7/dist-packages/mvpa2/base/node.py", line 121, in
> __call__
>     result = self._call(ds)
>   File "/usr/lib/python2.7/dist-packages/mvpa2/clfs/base.py", line 434, in
> _call
>     pred = self.predict(ds)
>   File "/usr/lib/python2.7/dist-packages/mvpa2/clfs/base.py", line 47, in
> wrap_samples
>     return fx(obj, data, *args, **kwargs)
>   File "/usr/lib/python2.7/dist-packages/mvpa2/clfs/base.py", line 389, in
> predict
>     "Some input data for predict is not finite (NaN or Inf)")
> ValueError: Some input data for predict is not finite (NaN or Inf)
>
>
>
>
>
> _______________________________________________
> Pkg-ExpPsy-PyMVPA mailing list
> Pkg-ExpPsy-PyMVPA at lists.alioth.debian.org
> http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-exppsy-pymvpa
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.alioth.debian.org/pipermail/pkg-exppsy-pymvpa/attachments/20140817/9b3d1490/attachment-0001.html>


More information about the Pkg-ExpPsy-PyMVPA mailing list