[pymvpa] PyMVPA

cfygj cfygj at 126.com
Mon Aug 18 00:42:51 UTC 2014


Dear Mile,
Thanks for your reply. In my script, I have set " ds = remove_invariant_features(ds)". I think this setting has replaced those voxels with zeros.
Cai Fei




At 2014-08-18 08:32:29, "Mike E. Klein" <michaeleklein at gmail.com> wrote:

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/20140818/27d3efe6/attachment.html>


More information about the Pkg-ExpPsy-PyMVPA mailing list