def norm_write(self, in_prefix='', out_prefix='w'):
     sess_scans = scans_for_fnames(
         fnames_presuffix(self.data_def['functionals'], in_prefix))
     matname = fname_presuffix(self.data_def['anatomical'],
                             suffix='_seg_sn.mat',
                             use_ext=False)
     subj = {
         'matname': np.zeros((1,), dtype=object),
         'resample': np.vstack(sess_scans.flat),
         }
     subj['matname'][0] = matname
     roptions = {
         'preserve':False,
         'bb':np.array([[-78,-112, -50],[78,76,85.0]]),
         'vox':fltcols([2.0,2.0,2.0]),
         'interp':1.0,
         'wrap':[0.0,0.0,0.0],
         'prefix': out_prefix,
         }
     nwinfo = make_job('spatial', 'normalise', [{
             'write':{
                 'subj': subj,
                 'roptions': roptions,
                 }
             }])
     run_jobdef(nwinfo)
     # knock out the list of images, replacing with only one
     subj['resample'] = np.zeros((1,), dtype=object)
     subj['resample'][0] = self.data_def['anatomical']
     roptions['interp'] = 4.0
     run_jobdef(nwinfo)
     return out_prefix + in_prefix
 def seg_norm(self, in_prefix=''):
     def_tpms = np.zeros((3,1), dtype=np.object)
     spm_path = spm_info.spm_path
     def_tpms[0] = pjoin(spm_path, 'tpm', 'grey.nii'),
     def_tpms[1] = pjoin(spm_path, 'tpm', 'white.nii'),
     def_tpms[2] = pjoin(spm_path, 'tpm', 'csf.nii')
     data = np.zeros((1,), dtype=object)
     data[0] = self.data_def['anatomical']
     sninfo = make_job('spatial', 'preproc', {
             'data': data,
             'output':{
                 'GM':fltcols([0,0,1]),
                 'WM':fltcols([0,0,1]),
                 'CSF':fltcols([0,0,0]),
                 'biascor':1.0,
                 'cleanup':False,
                 },
             'opts':{
                 'tpm':def_tpms,
                 'ngaus':fltcols([2,2,2,4]),
                 'regtype':'mni',
                 'warpreg':1.0,
                 'warpco':25.0,
                 'biasreg':0.0001,
                 'biasfwhm':60.0,
                 'samp':3.0,
                 'msk':np.array([], dtype=object),
                 }
             })
     run_jobdef(sninfo)
     return in_prefix
 def smooth(self, in_prefix='', out_prefix='s'):
     fwhm = self.ana_def['fwhm']
     try:
         len(fwhm)
     except TypeError:
         fwhm = [fwhm] * 3
     fwhm = np.asarray(fwhm, dtype=np.float).reshape(1,3)
     sess_scans = scans_for_fnames(
         fnames_presuffix(self.data_def['functionals'], in_prefix))
     sinfo = make_job('spatial', 'smooth',
                     {'data':np.vstack(sess_scans.flat),
                     'fwhm':fwhm,
                     'dtype':0})
     run_jobdef(sinfo)
     return out_prefix + in_prefix
 def slicetime(self, in_prefix='', out_prefix='a'):
     sess_scans = scans_for_fnames(
         fnames_presuffix(self.data_def['functionals'], in_prefix))
     sdef = self.study_def
     stinfo = make_job('temporal', 'st', {
             'scans': sess_scans,
             'so': sdef['time_to_space'],
             'tr': sdef['TR'],
             'ta': sdef['TA'],
             'nslices': float(sdef['n_slices']),
             'refslice':1,
             'prefix': out_prefix,
             })
     run_jobdef(stinfo)
     return out_prefix + in_prefix
 def realign(self, in_prefix=''):
     sess_scans = scans_for_fnames(
         fnames_presuffix(self.data_def['functionals'], in_prefix))
     rinfo = make_job('spatial', 'realign', [{
             'estimate':{
                 'data':sess_scans,
                 'eoptions':{
                     'quality': 0.9,
                     'sep': 4.0,
                     'fwhm': 5.0,
                     'rtm': True,
                     'interp': 2.0,
                     'wrap': [0.0,0.0,0.0],
                     'weight': []
                     }
                 }
             }])
     run_jobdef(rinfo)
     return in_prefix
 def coregister(self, in_prefix=''):
     func1 = self.data_def['functionals'][0]
     mean_fname = fname_presuffix(func1, 'mean' + in_prefix)
     crinfo = make_job('spatial', 'coreg', [{
             'estimate':{
                 'ref': np.asarray(mean_fname, dtype=object),
                 'source': np.asarray(self.data_def['anatomical'],
                                      dtype=object),
                 'other': [''],
                 'eoptions':{
                     'cost_fun':'nmi',
                     'sep':[4.0, 2.0],
                     'tol':np.array(
                             [0.02,0.02,0.02,
                             0.001,0.001,0.001,
                             0.01,0.01,0.01,
                             0.001,0.001,0.001]).reshape(1,12),
                     'fwhm':[7.0, 7.0]
                     }
                 }
             }])
     run_jobdef(crinfo)
     return in_prefix
 def reslice(self, in_prefix='', out_prefix='r', out=('1..n', 'mean')):
     which = [0, 0]
     if 'mean' in out:
         which[1] = 1
     if '1..n' in out or 'all' in out:
         which[0] = 2
     elif '2..n' in out:
         which[0] = 1
     sess_scans = scans_for_fnames(
         fnames_presuffix(self.data_def['functionals'], in_prefix))
     rsinfo = make_job('spatial', 'realign', [{
             'write':{
                 'data': np.vstack(sess_scans.flat),
                 'roptions':{
                     'which': which,
                     'interp':4.0,
                     'wrap':[0.0,0.0,0.0],
                     'mask':True,
                     'prefix': out_prefix
                     }
                 }
             }])
     run_jobdef(rsinfo)
     return out_prefix + in_prefix