예제 #1
0
        ## 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)
예제 #2
0
 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)
 
예제 #3
0
            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)
예제 #4
0
                                                              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)
예제 #5
0
        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)
예제 #6
0
        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)
예제 #7
0
 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)