示例#1
0
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)
示例#2
0
 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
示例#3
0
 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
示例#4
0
 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
示例#5
0
 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
示例#6
0
 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
示例#7
0
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)
示例#8
0
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)
示例#9
0
 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
示例#10
0
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)
示例#11
0
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)
示例#12
0
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)
示例#13
0
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)
示例#14
0
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)
示例#15
0
 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
示例#16
0
 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
示例#17
0
 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
示例#18
0
 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
示例#19
0
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)
示例#20
0
 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
示例#21
0
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)
示例#22
0
 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
示例#23
0
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)
示例#24
0
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)
示例#25
0
 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
示例#26
0
 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
示例#27
0
 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
示例#28
0
 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
示例#29
0
 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