## find brainmask globstr = os.path.join(s, 'anatomy', 'brainmask.nii') brainmask = pp.find_single_file(globstr) ## find sum globstr = os.path.join(s, 'fdg', 'sum_r*.nii') sum = pp.find_single_file(globstr) if brainmask is None or sum is None: logging.error('pet2mri sum: %s brainmask: %s' % (sum, brainmask)) continue ## coreg pet 2 brainmask cpons = bg.copy_file(ponsnormed, coregdir) csum = bg.copy_file(sum, coregdir) corg_out = pp.simple_coregister(str(brainmask), str(csum), other=str(cpons)) if not corg_out.runtime.returncode == 0: logging.error(corg_out.runtime.stderr) continue rpons = corg_out.outputs.coregistered_files # copy ponsnormed to freesurfer subjects petdir cponsnormed = bg.copy_file(rpons, petdir) globstr = os.path.join(fsdir, 'mri', 'T1.mgz') t1 = pp.find_single_file(globstr) if t1 is None: logging.error('%s not found' % globstr) continue xfm = fst.fs_generate_dat(cponsnormed, t1, subid) outfiles = fst.pet_2_surf(cponsnormed, xfm, mridir)
if brainmask is None: logging.error('%s not found. skipping'%globstr) shutil.rmtree(warpdir) continue brainmask = bg.unzip_file(brainmask) # copy to warp dir cmean20 = bg.copy_file(mean20, warpdir) cdvr = bg.copy_file(dvr, warpdir) cbm = bg.copy_file(brainmask, warpdir) # coreg pet to brainmask logging.info('Run coreg') # cast everything to string cbm = str(cbm) cmean20 = str(cmean20) cdvr = str(cdvr) corgout = pp.simple_coregister(cbm, cmean20, other=cdvr) if not corgout.runtime.returncode == 0: logging.error('coreg pet to mri failed %s'%subid) shutil.rmtree(warpdir) continue rcmean20 = corgout.outputs.coregistered_source rdvr = corgout.outputs.coregistered_files # warp brainmask to template, apply to dvr logging.info('Run warp') wout = pp.simple_warp(template, cbm, other=rdvr) if not wout.runtime.returncode == 0: logging.error('warp to template failed %s'%subid) shutil.rmtree(warpdir) continue logging.info('Finished warping %s'%subid)
logging.error('%s only has %d frames, RUNBYHAND' % (subid, len(nifti))) continue pth, _ = os.path.split(nifti[0]) realigndir = os.path.join(pth, 'realign_QA') if os.path.isdir(realigndir): logging.error('%s exists, remove to rerun' % (realigndir)) continue rlgnout, newnifti = pp.realigntoframe17(nifti) tmpparameterfile = rlgnout.outputs.realignment_parameters realigndir, _ = os.path.split(tmpparameterfile) sum1_5 = pp.make_summed_image(newnifti[:5], prefix='sum1_5_') mean_img = rlgnout.outputs.mean_image #coregister 1-5 to mean crg_out = pp.simple_coregister(mean_img, sum1_5, newnifti[:5]) if crg_out.runtime.returncode is not 0: logging.error('Failed to coreg 1-5 to mean for %s' % subid) continue # grab all realigned files allrealigned = crg_out.outputs.coregistered_files + \ rlgnout.outputs.realigned_files # make new mean files(s) based on fully realigned files # 1. first 20 mins for coreg (frames 1-23) # 2. 40-60 mins for possible SUVR (frames 28-31) mean_20min = pp.make_mean_20min(allrealigned) mean_40_60min = pp.make_mean_40_60(allrealigned) # clean up # remove copied unrealigned frames bg.remove_files(newnifti)
len(nifti))) continue pth, _ = os.path.split(nifti[0]) realigndir = os.path.join(pth, 'realign_QA') if os.path.isdir(realigndir): logging.error('%s exists, remove to rerun'%(realigndir)) continue rlgnout, newnifti = pp.realigntoframe17(nifti) tmpparameterfile = rlgnout.outputs.realignment_parameters realigndir, _ = os.path.split(tmpparameterfile) sum1_5 = pp.make_summed_image(newnifti[:5], prefix='sum1_5_') mean_img = rlgnout.outputs.mean_image #coregister 1-5 to mean crg_out = pp.simple_coregister(mean_img, sum1_5, newnifti[:5]) if crg_out.runtime.returncode is not 0: logging.error('Failed to coreg 1-5 to mean for %s' % subid) continue # grab all realigned files allrealigned = crg_out.outputs.coregistered_files + \ rlgnout.outputs.realigned_files # make new mean files(s) based on fully realigned files # 1. first 20 mins for coreg (frames 1-23) # 2. 40-60 mins for possible SUVR (frames 28-31) mean_20min = pp.make_mean_20min(allrealigned) mean_40_60min = pp.make_mean_40_60(allrealigned) # clean up # remove copied unrealigned frames bg.remove_files(newnifti)
if brainmask is None: logging.error('%s not found. skipping' % globstr) shutil.rmtree(warpdir) continue brainmask = bg.unzip_file(brainmask) # copy to warp dir csumfdg = bg.copy_file(sumfdg, warpdir) cpnfdg = bg.copy_file(pnfdg, warpdir) cbm = bg.copy_file(brainmask, warpdir) # coreg pet to brainmask logging.info('Run coreg') # cast everything to string cbm = str(cbm) csumfdg = str(csumfdg) cpnfdg = str(cpnfdg) corgout = pp.simple_coregister(cbm, csumfdg, other=cpnfdg) if not corgout.runtime.returncode == 0: logging.error('coreg pet to mri failed %s' % subid) shutil.rmtree(warpdir) continue rcsumfdg = corgout.outputs.coregistered_source rpnfdg = corgout.outputs.coregistered_files # warp brainmask to template, apply to pnfdg logging.info('Run warp') wout = pp.simple_warp(template, cbm, other=rpnfdg) if not wout.runtime.returncode == 0: logging.error('warp to template failed %s' % subid) shutil.rmtree(warpdir) continue logging.info('Finished warping %s' % subid)
globstr = os.path.join(s, "anatomy", "brainmask.nii") brainmask = pp.find_single_file(globstr) ## find sum globstr = os.path.join(s, "pib", "realign_QA", "mean20min*.nii") sum = pp.find_single_file(globstr) if brainmask is None or sum is None: logging.error("pet2mri sum: %s brainmask: %s" % (sum, brainmask)) continue # move dvr and sum to coregdir, unzip if necessary cdvr = bg.copy_file(dvr, coregdir) csum = bg.copy_file(sum, coregdir) cdvr = bg.unzip_file(cdvr) csum = bg.unzip_file(csum) ## coreg pet 2 brainmask corg_out = pp.simple_coregister(str(brainmask), str(csum), other=str(cdvr)) if not corg_out.runtime.returncode == 0: logging.error(corg_out.runtime.traceback) continue rdvr = corg_out.outputs.coregistered_files # copy dvr to freesurfer subjects petdir cdvr = bg.copy_file(rdvr, petdir) globstr = os.path.join(fsdir, "mri", "T1.mgz") t1 = pp.find_single_file(globstr) if t1 is None: logging.error("%s not found" % globstr) continue xfm = fst.fs_generate_dat(cdvr, t1, subid) outfiles = fst.pet_2_surf(cdvr, xfm, mridir) # zip files in coregdir allf = glob("%s/*" % coregdir)
if brainmask is None: logging.error('%s not found. skipping'%globstr) shutil.rmtree(warpdir) continue brainmask = bg.unzip_file(brainmask) # copy to warp dir csumfdg = bg.copy_file(sumfdg, warpdir) cpnfdg = bg.copy_file(pnfdg, warpdir) cbm = bg.copy_file(brainmask, warpdir) # coreg pet to brainmask logging.info('Run coreg') # cast everything to string cbm = str(cbm) csumfdg = str(csumfdg) cpnfdg = str(cpnfdg) corgout = pp.simple_coregister(cbm, csumfdg, other=cpnfdg) if not corgout.runtime.returncode == 0: logging.error('coreg pet to mri failed %s'%subid) shutil.rmtree(warpdir) continue rcsumfdg = corgout.outputs.coregistered_source rpnfdg = corgout.outputs.coregistered_files # warp brainmask to template, apply to pnfdg logging.info('Run warp') wout = pp.simple_warp(template, cbm, other=rpnfdg) if not wout.runtime.returncode == 0: logging.error('warp to template failed %s'%subid) shutil.rmtree(warpdir) continue logging.info('Finished warping %s'%subid)
if brainmask is None: logging.error('%s not found. skipping' % globstr) shutil.rmtree(warpdir) continue brainmask = bg.unzip_file(brainmask) # copy to warp dir cmean20 = bg.copy_file(mean20, warpdir) cdvr = bg.copy_file(dvr, warpdir) cbm = bg.copy_file(brainmask, warpdir) # coreg pet to brainmask logging.info('Run coreg') # cast everything to string cbm = str(cbm) cmean20 = str(cmean20) cdvr = str(cdvr) corgout = pp.simple_coregister(cbm, cmean20, other=cdvr) if not corgout.runtime.returncode == 0: logging.error('coreg pet to mri failed %s' % subid) shutil.rmtree(warpdir) continue rcmean20 = corgout.outputs.coregistered_source rdvr = corgout.outputs.coregistered_files # warp brainmask to template, apply to dvr logging.info('Run warp') wout = pp.simple_warp(template, cbm, other=rdvr) if not wout.runtime.returncode == 0: logging.error('warp to template failed %s' % subid) shutil.rmtree(warpdir) continue logging.info('Finished warping %s' % subid)