def loadrundata(p, s, r, m=None, c=None): # inputs: # p: paths list # s: string representing subject ('LMVPA001') # r: run ID ('Run1') from os.path import join as pjoin from mvpa2.datasets import eventrelated as er from mvpa2.datasets.mri import fmri_dataset from mvpa2.datasets.sources import bids as bids # bfn = pjoin(p[0], 'data', s, 'func', 'extra', s+'_'+r+'_mc.nii.gz') # motion corrected and coregistered bfn = pjoin(p[0], 'data', s, 'func', s + '_' + r + '.nii.gz') if m is not None: m = pjoin(p[0], 'data', s, 'masks', s + '_' + m + '.nii.gz') d = fmri_dataset(bfn, chunks=int(r.split('n')[1]), mask=m) else: d = fmri_dataset(bfn, chunks=int(r.split('n')[1])) # This line-- should be different if we're doing GLM, etc. efn = pjoin(p[0], 'data', s, 'func', s + '_' + r + '.tsv') fe = bids.load_events(efn) if c is None: tmpe = events2dict(fe) c = tmpe.keys() if isinstance(c, basestring): # must be a list/tuple/array for the logic below c = [c] for ci in c: e = adjustevents(fe, ci) d = er.assign_conditionlabels(d, e, noinfolabel='rest', label_attr=ci) return d
def loadrundata(p, s, r, m=None, c=None): # inputs: # p: paths list # s: string representing subject ('LMVPA001') # r: run ID ('Run1') from os.path import join as pjoin from mvpa2.datasets import eventrelated as er from mvpa2.datasets.mri import fmri_dataset from mvpa2.datasets.sources import bids as bids # bfn = pjoin(p[0], 'data', s, 'func', 'extra', s+'_'+r+'_mc.nii.gz') # motion corrected and coregistered bfn = pjoin(p[0], 'data', s, 'func', s + '_' + r + '.nii.gz') if m is not None: m = pjoin(p[0], 'data', s, 'masks', s+'_'+m+'.nii.gz') d = fmri_dataset(bfn, chunks=int(r.split('n')[1]), mask=m) else: d = fmri_dataset(bfn, chunks=int(r.split('n')[1])) # This line-- should be different if we're doing GLM, etc. efn = pjoin(p[0], 'data', s, 'func', s + '_' + r + '.tsv') fe = bids.load_events(efn) if c is None: tmpe = events2dict(fe) c = tmpe.keys() if isinstance(c, basestring): # must be a list/tuple/array for the logic below c = [c] for ci in c: e = adjustevents(fe, ci) d = er.assign_conditionlabels(d, e, noinfolabel='rest', label_attr=ci) return d
def test_load_events(): evtsv = "onset\tduration" eq_(load_events(StringIO(evtsv)), []) ra = load_events(StringIO(evtsv), as_recarr=True) eq_(len(ra), 0) eq_(ra.dtype.names, ('onset', 'duration')) # now with content to do type checks evtsv = "onset\tduration\ttrial_type\n2\t1.3\tboring\n3.5\t4\texciting" ra = load_events(StringIO(evtsv)) eq_(ra, [{ 'onset': 2.0, 'duration': 1.3, 'trial_type': 'boring' }, { 'onset': 3.5, 'duration': 4.0, 'trial_type': 'exciting' }])
def loadevents(p, s): # if isinstance(c, basestring): # # must be a list/tuple/array for the logic below # c = [c] fds = {} from mvpa2.datasets.sources import bids from os.path import join as pjoin for sub in s.keys(): fds[sub] = [bids.load_events(pjoin(p[0], 'data', sub, 'func', sub + '_' + r + '.tsv')) for r in s[sub]] return fds
def loadevents(p, s): # if isinstance(c, basestring): # # must be a list/tuple/array for the logic below # c = [c] fds = {} from mvpa2.datasets.sources import bids from os.path import join as pjoin for sub in s.keys(): fds[sub] = [ bids.load_events( pjoin(p[0], 'data', sub, 'func', sub + '_' + r + '.tsv')) for r in s[sub] ] return fds