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 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 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