def norm_write(data_def): sess_scans = scans_for_fnames(fnames_presuffix(data_def['functionals'], 'a')) matname = fname_presuffix(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], } 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] = data_def['anatomical'] roptions['interp'] = 4.0 run_jobdef(nwinfo)
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 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 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
def segnorm(data_def): 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] = 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)
def slicetime(data_def): sess_scans = scans_for_fnames(data_def['functionals']) stinfo = make_job('temporal', 'st', { 'scans': sess_scans, 'so':range(1,31,2) + range(2,31,2), 'tr':2.5, 'ta':2.407, 'nslices':float(30), 'refslice':1 }) run_jobdef(stinfo)
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 smooth(data_def, fwhm=8.0): 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(data_def['functionals'], 'wa')) sinfo = make_job('spatial', 'smooth', {'data':np.vstack(sess_scans.flat), 'fwhm':fwhm, 'dtype':0}) run_jobdef(sinfo)
def slicetime(data_def): sess_scans = scans_for_fnames(data_def['functionals']) stinfo = make_job( 'temporal', 'st', { 'scans': sess_scans, 'so': range(1, 31, 2) + range(2, 31, 2), 'tr': 2.5, 'ta': 2.407, 'nslices': float(30), 'refslice': 1 }) run_jobdef(stinfo)
def reslice(data_def): sess_scans = scans_for_fnames(fnames_presuffix(data_def['functionals'], 'a')) rsinfo = make_job('spatial', 'realign', [{ 'write':{ 'data': np.vstack(sess_scans.flat), 'roptions':{ 'which':[2, 1], 'interp':4.0, 'wrap':[0.0,0.0,0.0], 'mask':True, } } }]) run_jobdef(rsinfo)
def smooth(data_def, fwhm=8.0): 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(data_def['functionals'], 'wa')) sinfo = make_job('spatial', 'smooth', { 'data': np.vstack(sess_scans.flat), 'fwhm': fwhm, 'dtype': 0 }) run_jobdef(sinfo)
def reslice(data_def): sess_scans = scans_for_fnames( fnames_presuffix(data_def['functionals'], 'a')) rsinfo = make_job('spatial', 'realign', [{ 'write': { 'data': np.vstack(sess_scans.flat), 'roptions': { 'which': [2, 1], 'interp': 4.0, 'wrap': [0.0, 0.0, 0.0], 'mask': True, } } }]) run_jobdef(rsinfo)
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(data_def): sess_scans = scans_for_fnames(fnames_presuffix(data_def['functionals'], 'a')) 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)
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(data_def): sess_scans = scans_for_fnames( fnames_presuffix(data_def['functionals'], 'a')) 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)
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 coregister(data_def): func1 = data_def['functionals'][0] mean_fname = fname_presuffix(func1, 'meana') crinfo = make_job('spatial', 'coreg', [{ 'estimate':{ 'ref': [mean_fname], 'source': [data_def['anatomical']], '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)
def coregister(data_def): func1 = data_def['functionals'][0] mean_fname = fname_presuffix(func1, 'meana') crinfo = make_job('spatial', 'coreg', [{ 'estimate': { 'ref': [mean_fname], 'source': [data_def['anatomical']], '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)
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
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