def find_realigned(pth): """ finds realigned files in realign_QA directory""" realigndir = 'realign_QA' globstr = os.path.join(pth, realigndir, 'rB*_FDG_*nii*') tmprealigned = glob(globstr) if len(tmprealigned)< 1: tmprealigned = None tmprealigned.sort() globstr = os.path.join(pth, realigndir, 'rp_B*.txt*') tmpparameterfile = pp.find_single_file(globstr) return tmprealigned, tmpparameterfile tmpparameterfile = rlgnout.outputs.realignment_parameters
anatdir = os.path.join(sub, 'anatomy') if not os.path.isdir(anatdir): logging.error('%s doesnt exist,skipping'%(anatdir)) continue dvrdir = os.path.join(sub,'pib','dvr') if not os.path.isdir(dvrdir): logging.error('%s doesnt exist,skipping'%(dvrdir)) continue # make/check warp dir warpdir, exists = bg.make_dir(dvrdir, 'warp_%s'%tname) if exists: logging.warning('%s exists, remove to rerun'%(warpdir)) continue #get brainmask globstr = os.path.join(dvrdir, 'DVR-%s*.nii*'%subid) dvr = pp.find_single_file(globstr) if dvr is None: logging.error('%s not found. skipping'%globstr) shutil.rmtree(warpdir) continue dvr = bg.unzip_file(dvr) # get mean 20 minute pib globstr = os.path.join(sub,'pib','realign_QA', 'mean20min*.nii*') mean20 = pp.find_single_file(globstr) if mean20 is None: logging.error('%s not found. skipping'%globstr) shutil.rmtree(warpdir) continue mean20 = bg.unzip_file(mean20) # brainmask globstr = os.path.join(anatdir, 'brainmask.nii*')
anatdir = os.path.join(sub, 'anatomy') if not os.path.isdir(anatdir): logging.error('%s doesnt exist,skipping' % (anatdir)) continue dvrdir = os.path.join(sub, 'pib', 'dvr') if not os.path.isdir(dvrdir): logging.error('%s doesnt exist,skipping' % (dvrdir)) continue # make/check warp dir warpdir, exists = bg.make_dir(dvrdir, 'warp_%s' % tname) if exists: logging.warning('%s exists, remove to rerun' % (warpdir)) continue #get brainmask globstr = os.path.join(dvrdir, 'DVR-%s*.nii*' % subid) dvr = pp.find_single_file(globstr) if dvr is None: logging.error('%s not found. skipping' % globstr) shutil.rmtree(warpdir) continue dvr = bg.unzip_file(dvr) # get mean 20 minute pib globstr = os.path.join(sub, 'pib', 'realign_QA', 'mean20min*.nii*') mean20 = pp.find_single_file(globstr) if mean20 is None: logging.error('%s not found. skipping' % globstr) shutil.rmtree(warpdir) continue mean20 = bg.unzip_file(mean20) # brainmask globstr = os.path.join(anatdir, 'brainmask.nii*')
tracer = 'FDG' user = os.environ['USER'] logging.info('###START %s :::'%(__file__)) logging.info('###TRACER %s :::'%(tracer)) logging.info('###USER : %s'%(user)) subs = bg.MyDirsDialog(prompt='Choose Subjects ', indir='%s/'%root) subs.sort() for sub in subs: _, subid = os.path.split(sub) logging.info('%s'%subid) # check is ponsnormed exists searchstring = '%s/fdg/nonan-ponsnormed_*.nii*'%sub pn = pp.find_single_file(searchstring) if pn is not None: logging.info('%s exists, skipping'%(pn)) continue # find sum searchstring = '%s/fdg/sum_rB*.nii*' % sub sum = pp.find_single_file(searchstring) if sum is None: logging.error('%s not found'%(searchstring)) continue searchstr = '%s/fdg/ref_region/rpons_tu.nii*' % sub pons = pp.find_single_file(searchstr) if pons is None: logging.error('%s not found'%(searchstring)) continue outfname = os.path.join(sub, 'fdg',
for item in sorted(outdict): if outdict[item][0] is None: logging.info("skipping %s, no FDG found" % (item)) continue else: ecats = outdict[item] subid = item logging.info(subid) ### XXXXXXXXXXXXXXXXX ## set_up_dir outdirs = pp.set_up_dir(root, subid, tracer) ## set up MRI brainmask = os.path.join(outdirs["anatomydir"][0], "brainmask.nii") fsmri = pp.find_single_file(os.path.join(mridir, subid, "mri/brainmask.mgz")) if os.path.isfile(brainmask): logging.warning("%s has existing anatomy," "skipping" % (brainmask)) elif fsmri is None: logging.error("%s NO MRI: %s" % (subid, fsmri)) else: fsmri = bg.copy_file(fsmri, outdirs["anatomydir"][0]) brainmask = bg.convert(fsmri, brainmask) bg.remove_files([fsmri]) # copy aseg+aparc aparcnii = os.path.join(outdirs["anatomydir"][0], "%s_aparc_aseg.nii.gz" % subid) aparc = pp.find_single_file(os.path.join(mridir, subid, "mri/aparc+aseg.mgz")) if os.path.isfile(aparcnii): logging.warning("%s has existing anatomy," "skipping" % (aparcnii)) elif aparc is None:
logging.info('###USER : %s' % (user)) subs = bg.MyDirsDialog(prompt='Choose Subjects ', indir='%s/' % root) for s in subs: _, subid = os.path.split(s) # mk tracer directory in freesurfer fsdir = os.path.join(mridir, subid) if not os.path.isdir(fsdir): logging.warning('%s missing, skipping' % fsdir) continue petdir, exists = bg.make_dir(fsdir, dirname='fdg') if exists: logging.warning('%s exists, skipping' % (petdir)) continue globstr = os.path.join(s, 'fdg', 'nonan*pons*nii*') ponsnormed = pp.find_single_file(globstr) if ponsnormed is None: logging.warning('%s missing, skipping' % (globstr)) continue coregdir, exists = bg.make_dir('%s/fdg' % s, 'pet2mri') if exists: continue ## 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))
logging.info("###USER : %s" % (user)) subs = bg.MyDirsDialog(prompt="Choose Subjects ", indir="%s/" % root) for s in subs: _, subid = os.path.split(s) # mk tracer directory in freesurfer fsdir = os.path.join(mridir, subid) if not os.path.isdir(fsdir): logging.warning("%s missing, skipping" % fsdir) continue petdir, exists = bg.make_dir(fsdir, dirname="pib") if exists: logging.warning("%s exists, skipping" % (petdir)) continue globstr = os.path.join(s, "pib", "dvr", "DVR*nii*") dvr = pp.find_single_file(globstr) if dvr is None: logging.warning("%s missing, skipping" % (globstr)) continue coregdir, exists = bg.make_dir("%s/pib" % s, "pet2mri") if exists: logging.warning("remove %s to rerun?" % coregdir) continue ## find brainmask 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:
if 'None' in outdict[item][0]: #print 'skipping %s'%(item) logging.info('skipping %s' % (item)) continue else: petdir = outdict[item][0] subid, _ = os.path.split(item) print subid logging.info(subid) ### XXXXXXXXXXXXXXXXX ## set_up_dir outdirs = pp.set_up_dir(root, subid, tracer) ## set up MRI brainmask = os.path.join(outdirs['anatomydir'][0], 'brainmask.nii') fsmri = pp.find_single_file( os.path.join(mridir, subid, 'mri/brainmask.mgz')) if os.path.isfile(brainmask): logging.warning('%s has existing anatomy,'\ 'skipping'%(brainmask)) elif fsmri is None: logging.error('NO MRI: %s' % (fsmri)) else: fsmri = bg.copy_file(fsmri, outdirs['anatomydir'][0]) brainmask = bg.convert(fsmri, brainmask) bg.remove_files([fsmri]) # copy aseg+aparc aparcnii = os.path.join(outdirs['anatomydir'][0], '%s_aparc_aseg.nii.gz' % subid) aparc = pp.find_single_file( os.path.join(mridir, subid, 'mri/aparc+aseg.mgz'))
anatdir = os.path.join(sub, 'anatomy') if not os.path.isdir(anatdir): logging.error('%s doesnt exist,skipping'%(anatdir)) continue tracerdir = os.path.join(sub,'fdg') if not os.path.isdir(tracerdir): logging.error('%s doesnt exist,skipping'%(tracerdir)) continue # make/check warp dir warpdir, exists = bg.make_dir(tracerdir, 'warp_%s'%tname) if exists: logging.warning('%s exists, remove to rerun'%(warpdir)) continue #get ponsnormed globstr = os.path.join(tracerdir, 'ponsnormed_%s*.nii*'%subid) pnfdg = pp.find_single_file(globstr) if pnfdg is None: logging.error('%s not found. skipping'%globstr) shutil.rmtree(warpdir) continue pnfdg = bg.unzip_file(pnfdg) # get summed fdg globstr = os.path.join(tracerdir, 'sum_rB*.nii*') sumfdg = pp.find_single_file(globstr) if sumfdg is None: logging.error('%s not found. skipping'%globstr) shutil.rmtree(warpdir) continue sumfdg = bg.unzip_file(sumfdg) # brainmask globstr = os.path.join(anatdir, 'brainmask.nii*')
except: logging.error('cant find ID in %s'%sub) continue logging.info('%s'%subid) pth = os.path.join(sub, tracer.lower()) if not os.path.isdir(pth): logging.error('%s does not exist, skipping'%pth) continue # find roi directory roidir, exists = bg.make_dir(pth, dirname='stroke_masked_roi_data') # get pons normed globstr = '%s/nonan-ponsnormed*fdg**nii*'%(pth) dat = pp.find_single_file(globstr) if dat is None: logging.error('%s missing, skipping'%(globstr)) continue dat = bg.unzip_file(dat)# in case zipped # get strokemask globstr = '%s/rfs_cortical_mask_tu.nii*'%roidir stroke_mask = pp.find_single_file(globstr) if stroke_mask is None: globstr = '%s/anatomy/fs_cortical_mask_tu.nii*'%sub strokem = pp.find_single_file(globstr) if strokem is None: logging.error('%s missing, skipping'%(globstr)) continue cstrokem = bg.copy_file(strokem, roidir) globstr = '%s/coreg_mri2fdg/*.mat*'%pth
except: logging.error('cant find ID in %s'%sub) continue logging.info('%s'%subid) pth = os.path.join(sub, tracer.lower()) if not os.path.isdir(pth): logging.error('%s does not exist, skipping'%pth) continue # find roi directory roidir, exists = bg.make_dir(pth, dirname='roi_data') # get pons normed globstr = '%s/nonan-ponsnormed*fdg**nii*'%(pth) dat = pp.find_single_file(globstr) if dat is None: logging.error('%s missing, skipping'%(globstr)) continue dat = bg.unzip_file(dat)# in case zipped # get raparc #if exists: #roidir exists so raparc_aseg should also # globstr = '%s/rB*aparc_aseg.nii*'%(roidir) # raparc = pp.find_single_file(globstr) # if raparc is None: # exists = False #if not exists: # check coreg directory globstr = '%s/coreg_mri2fdg/rB*aparc_aseg.nii*'%(pth) raparc = pp.find_single_file(globstr) if raparc is None: exists = False
img4d = qa.make_4d_nibabel(no_nanfiles) bg.zip_files(tmprealigned) #save qa image #qa.save_qa_img(img4d) qa.plot_movement(tmpparameterfile, subid) qa.calc_robust_median_diff(img4d) qa.screen_pet(img4d) #remove tmpfiles bg.remove_files(no_nanfiles) bg.remove_files(newnifti) # coreg pons to pet # find PONS pons_searchstr = '%s/ref_region/pons_tu.nii*' % tracerdir pons = pp.find_single_file(pons_searchstr) if 'gz' in pons: pons = bg.unzip_file(pons) if pons is None: logging.warning('no pons_tu found for %s' % (subid)) continue # find MRI searchstring = '%s/anatomy/brainmask.nii' % sub mri = pp.find_single_file(searchstring) if mri is None: logging.warning('no brainmask found for %s' % (subid)) continue # find aparc_aseg searchstring = '%s/anatomy/B*aparc_aseg.nii*' % sub aparc = pp.find_single_file(searchstring) if aparc is None:
subs = bg.MyDirsDialog(prompt='Choose Subjects ', indir='%s/'%root) for s in subs: _, subid = os.path.split(s) # mk tracer directory in freesurfer fsdir = os.path.join(mridir, subid) if not os.path.isdir(fsdir): logging.warning('%s missing, skipping'%fsdir) continue petdir, exists = bg.make_dir(fsdir, dirname = 'fdg') if exists: logging.warning('%s exists, skipping'%(petdir)) continue globstr = os.path.join(s, 'fdg','nonan*pons*nii*') ponsnormed = pp.find_single_file(globstr) if ponsnormed is None: logging.warning('%s missing, skipping'%(globstr)) continue coregdir,exists = bg.make_dir('%s/fdg'%s, 'pet2mri') if exists: continue ## 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))
m = pp.re.search('B[0-9]{2}-[0-9]{3}',fullsubid) subid = m.group() except: logging.error('cant find ID in %s'%fullsubid) continue logging.info('%s'%subid) # subjects tracer specific path pth = os.path.join(sub, tracer.lower()) pvcdir, exists = bg.make_dir(dvrdir, 'pvc_rousset') if exists: logging.error('%s exists, remove to re-run'%(pvcdir)) continue # get pons normed globstr = '%s/nonan-ponsnormed_%s*nii*'%(pth,subid) ponsnormd = pp.find_single_file(globstr) if ponsnormd is None: logging.error('%s missing, skipping'%(globstr)) continue # copy ponsnormd to pvc directory cponsnormd = bg.copy_file(ponsnormd, pvcdir) # get raparc corgdir = os.path.join(pth, 'coreg_mri2fdg') globstr = '%s/rB*aparc_aseg.nii'%(corgdir) raparc = pp.find_single_file(globstr) if raparc is None: logging.error('%s missing, skipping '%(globstr)) continue #copy raparc_aseg to pvd dir craparc = bg.copy_file(raparc, pvcdir) # make brainamsk
try: m = pp.re.search('B[0-9]{2}-[0-9]{3}', sub) subid = m.group() except: logging.error('cant find ID in %s' % sub) continue logging.info('%s' % subid) pth = os.path.join(sub, tracer.lower()) if not os.path.isdir(pth): logging.error('%s does not exist, skipping' % pth) continue # get dvr globstr = '%s/dvr/DVR*nii*' % (pth) dat = pp.find_single_file(globstr) if dat is None: logging.error('%s missing, skipping' % (globstr)) continue # find roi directory roidir, exists = bg.make_dir(pth, dirname='stroke_masked_roi_data') if exists: globstr = '%s/rfs_cortical_mask_tu.nii*' % roidir stroke_mask = pp.find_single_file(globstr) if stroke_mask is None: exists = False if not exists: globstr = '%s/anatomy/fs_cortical_mask_tu.nii*' % sub strokem = pp.find_single_file(globstr) if strokem is None:
qa.plot_movement(tmpparameterfile, subid) qa.calc_robust_median_diff(data4d) qa.screen_pet(data4d) # Coregister cerebellum, brainmask and aparc_aseg to pet space # logging.info('Coreg %s' % (subid)) coregdir, exists = bg.make_dir(pth, 'coreg') if exists: logging.warning('%s exists, remove to rerun' % (coregdir)) continue # copy brainmask, aparc_aseg, cerebellum to coreg dir basedir, _ = os.path.split(pth) # brainmask globstr = os.path.join(basedir, 'anatomy', 'brainmask.nii*') brainmask = pp.find_single_file(globstr) if brainmask is None: logging.error('%s not found. skipping' % globstr) shutil.rmtree(coregdir) continue cbrainmask = bg.copy_file(brainmask, coregdir) cbrainmask = bg.unzip_file(cbrainmask) # aparc aseg globstr = os.path.join(basedir, 'anatomy', '*aparc_aseg.nii*') aparc = pp.find_single_file(globstr) if aparc is None: logging.error('%s not found. skipping' % globstr) shutil.rmtree(coregdir) continue caparc = bg.copy_file(aparc, coregdir) caparc = bg.unzip_file(caparc)
anatdir = os.path.join(sub, 'anatomy') if not os.path.isdir(anatdir): logging.error('%s doesnt exist,skipping' % (anatdir)) continue tracerdir = os.path.join(sub, 'fdg') if not os.path.isdir(tracerdir): logging.error('%s doesnt exist,skipping' % (tracerdir)) continue # make/check warp dir warpdir, exists = bg.make_dir(tracerdir, 'warp_%s' % tname) if exists: logging.warning('%s exists, remove to rerun' % (warpdir)) continue #get ponsnormed globstr = os.path.join(tracerdir, 'ponsnormed_%s*.nii*' % subid) pnfdg = pp.find_single_file(globstr) if pnfdg is None: logging.error('%s not found. skipping' % globstr) shutil.rmtree(warpdir) continue pnfdg = bg.unzip_file(pnfdg) # get summed fdg globstr = os.path.join(tracerdir, 'sum_rB*.nii*') sumfdg = pp.find_single_file(globstr) if sumfdg is None: logging.error('%s not found. skipping' % globstr) shutil.rmtree(warpdir) continue sumfdg = bg.unzip_file(sumfdg) # brainmask globstr = os.path.join(anatdir, 'brainmask.nii*')
subid = m.group() except: logging.error('cant find ID in %s'%fullsubid) continue logging.info('%s'%subid) pth = os.path.join(sub, tracer.lower()) dvrdir = os.path.join(pth, 'dvr') if not os.path.isdir(dvrdir): logging.error('%s missing. skipping'%(dvrdir)) continue pvcdir, exists = bg.make_dir(dvrdir, 'pvc_rousset') if not exists: logging.error('%s does not exist, skipping'%(pvcdir)) continue globstr = '%s/rB*aparc_aseg.nii'%(pvcdir) craparc = pp.find_single_file(globstr) if craparc is None: logging.error('%s missing, skipping '%(globstr)) continue transferf = os.path.join(pvcdir, 'transfer_matrix.npy') try: transfer_mtx = rousset.np.load(transferf) except: logging.error('%s missing, skipping'%(transferf)) continue obsf = os.path.join(pvcdir, 'observed.npy') try: obs = rousset.np.load(obsf) except: logging.error('%s missing, skipping'%(obsf))
img4d = qa.make_4d_nibabel(no_nanfiles) bg.zip_files(tmprealigned) # save qa image # qa.save_qa_img(img4d) qa.plot_movement(tmpparameterfile, subid) qa.calc_robust_median_diff(img4d) qa.screen_pet(img4d) # remove tmpfiles bg.remove_files(no_nanfiles) bg.remove_files(newnifti) # coreg pons to pet # find PONS pons_searchstr = "%s/ref_region/pons_tu.nii*" % tracerdir pons = pp.find_single_file(pons_searchstr) if "gz" in pons: pons = bg.unzip_file(pons) if pons is None: logging.warning("no pons_tu found for %s" % (subid)) continue # find MRI searchstring = "%s/anatomy/brainmask.nii" % sub mri = pp.find_single_file(searchstring) if mri is None: logging.warning("no brainmask found for %s" % (subid)) continue # find aparc_aseg searchstring = "%s/anatomy/B*aparc_aseg.nii*" % sub aparc = pp.find_single_file(searchstring) if aparc is None:
m = pp.re.search('B[0-9]{2}-[0-9]{3}', fullsubid) subid = m.group() except: logging.error('cant find ID in %s' % fullsubid) continue logging.info('%s' % subid) # subjects tracer specific path pth = os.path.join(sub, tracer.lower()) pvcdir, exists = bg.make_dir(dvrdir, 'pvc_rousset') if exists: logging.error('%s exists, remove to re-run' % (pvcdir)) continue # get pons normed globstr = '%s/nonan-ponsnormed_%s*nii*' % (pth, subid) ponsnormd = pp.find_single_file(globstr) if ponsnormd is None: logging.error('%s missing, skipping' % (globstr)) continue # copy ponsnormd to pvc directory cponsnormd = bg.copy_file(ponsnormd, pvcdir) # get raparc corgdir = os.path.join(pth, 'coreg_mri2fdg') globstr = '%s/rB*aparc_aseg.nii' % (corgdir) raparc = pp.find_single_file(globstr) if raparc is None: logging.error('%s missing, skipping ' % (globstr)) continue #copy raparc_aseg to pvd dir craparc = bg.copy_file(raparc, pvcdir) # make brainamsk
qa.plot_movement(tmpparameterfile, subid) qa.calc_robust_median_diff(data4d) qa.screen_pet(data4d) # Coregister cerebellum, brainmask and aparc_aseg to pet space # logging.info('Coreg %s'%(subid)) coregdir, exists = bg.make_dir(pth, 'coreg') if exists: logging.warning('%s exists, remove to rerun'%(coregdir)) continue # copy brainmask, aparc_aseg, cerebellum to coreg dir basedir, _ = os.path.split(pth) # brainmask globstr = os.path.join(basedir, 'anatomy', 'brainmask.nii*') brainmask = pp.find_single_file(globstr) if brainmask is None: logging.error('%s not found. skipping'%globstr) shutil.rmtree(coregdir) continue cbrainmask = bg.copy_file(brainmask, coregdir) cbrainmask = bg.unzip_file(cbrainmask) # aparc aseg globstr = os.path.join(basedir, 'anatomy', '*aparc_aseg.nii*') aparc = pp.find_single_file(globstr) if aparc is None: logging.error('%s not found. skipping'%globstr) shutil.rmtree(coregdir) continue caparc = bg.copy_file(aparc, coregdir) caparc = bg.unzip_file(caparc)
except: logging.error('no visit marker in %s' % fullsubid) try: m = pp.re.search('B[0-9]{2}-[0-9]{3}', fullsubid) subid = m.group() except: logging.error('cant find ID in %s' % fullsubid) continue logging.info('%s' % subid) pth = os.path.join(sub, tracer.lower()) # get pons normed globstr = '%s/nonan-ponsnormed*fdg**nii*' % (pth) dat = pp.find_single_file(globstr) if dat is None: logging.error('%s missing, skipping' % (globstr)) continue # get raparc corgdir = os.path.join(pth, 'roi_data') globstr = '%s/rB*aparc_aseg.nii*' % (corgdir) raparc = pp.find_single_file(globstr) if raparc is None: logging.error('%s missing, skipping ' % (globstr)) continue data = pp.nibabel.load(dat).get_data() meand = pp.mean_from_labels(roid, raparc, data) alld[subid] = meand ###write to file
logging.info('###USER : %s' % (user)) subs = bg.MyDirsDialog(prompt='Choose Subjects ', indir='%s/' % root) for s in subs: _, subid = os.path.split(s) # mk tracer directory in freesurfer fsdir = os.path.join(mridir, subid) if not os.path.isdir(fsdir): logging.warning('%s missing, skipping' % fsdir) continue petdir, exists = bg.make_dir(fsdir, dirname='pib') if exists: logging.warning('%s exists, skipping' % (petdir)) continue globstr = os.path.join(s, 'pib', 'dvr', 'DVR*nii*') dvr = pp.find_single_file(globstr) if dvr is None: logging.warning('%s missing, skipping' % (globstr)) continue coregdir, exists = bg.make_dir('%s/pib' % s, 'pet2mri') if exists: logging.warning('remove %s to rerun?' % coregdir) continue ## find brainmask 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: