Example #1
0
def compute_rsf(rois):
    """ computes an RSF for each roi in input argument and returns an array with same size as input """
    sameshape, shape = check_roi_shape(rois)
    if not sameshape:
        raise AssertionError('ROIs do NOT have same shape, exiting program,'\
                             'check your ROIS dimensions')
    startdir = os.getcwd()

    fullshape = tuple([len(rois)] + list(shape))
    rsfs = np.zeros(fullshape)
    for ind, roi in enumerate(rois):

        petpsf = es.PetPsf(roi)
        xyresult = petpsf.convolve_xy()
        zresult = petpsf.convolve_z()
        file = petpsf.save_result()
        sfile = pp.fname_presuffix(file, prefix='s')
        smfile = metzler.smooth_mask_nipy(file, sfile, fwhm=4)
        smdata = smfile.get_data()
        rsfs[ind, :, :, :] = smdata

    return rsfs
Example #2
0
def compute_rsf(rois):
    """ computes an RSF for each roi in input argument and returns an array with same size as input """
    sameshape, shape = check_roi_shape(rois)
    if not sameshape:
        raise AssertionError('ROIs do NOT have same shape, exiting program,'\
                             'check your ROIS dimensions')
    startdir = os.getcwd()
    
    fullshape = tuple([len(rois)] + list(shape))
    rsfs = np.zeros(fullshape)
    for ind, roi in enumerate(rois):
        
        petpsf = es.PetPsf(roi)
        xyresult = petpsf.convolve_xy()
        zresult = petpsf.convolve_z()
        file = petpsf.save_result()
        sfile = pp.fname_presuffix(file, prefix='s')
        smfile = metzler.smooth_mask_nipy(file,sfile,fwhm=4)
        smdata = smfile.get_data()
        rsfs[ind,:,:,:]  = smdata
    
    return rsfs
Example #3
0
     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
 wm, gm, pibi = rousset.generate_pibindex_rois_fs(craparc)
 wmf = pp.fname_presuffix(craparc, prefix='wm_')
 gmf = pp.fname_presuffix(craparc, prefix='gm_')
 pibif = pp.fname_presuffix(craparc, prefix='pibindex_')
 aff = rousset.ni.load(craparc).get_affine()
 rousset.to_file(wm, aff, wmf)
 rousset.to_file(gm, aff, gmf)
 rousset.to_file(pibi, aff, pibif)
 rois = [gmf, wmf, pibif]
 rsfs = rousset.compute_rsf(rois)
 transfer_mtx = rousset.gen_transfer_matrix(rsfs, rois)
 obs = rousset.get_observed_conc(cponsnormd, rois)
 transferf = os.path.join(pvcdir, 'transfer_matrix')
 rousset.np.save(transferf, transfer_mtx)
 obsf = os.path.join(pvcdir, 'observed')
 rousset.np.save(obsf, obs)
 logging.info('Created %s' % (pvcdir))
Example #4
0
    return obs_conc


def calc_pvc_values(transfer_mtx, observed):
    corrected = np.matrix(np.linalg.inv(transfer_mtx))* \
                np.transpose(np.matrix(observed))
    return corrected


if __name__ == '__main__':

    testdir = os.path.abspath('../test')
    aparc_aseg = os.path.join(testdir, 'rB09-230_v1_aparc_aseg.nii')
    dvr = os.path.join(testdir, 'DVR-B09-230_v1_2012-06-08-15-07.nii.gz')
    wm = mask_from_aseg(aparc_aseg, wm_aseg())
    gm = mask_from_aseg(aparc_aseg, gm_aseg())
    pibi = mask_from_aseg(aparc_aseg, pibindex_aseg())
    wm, gm, pibi = generate_pibindex_rois_fs(aparc_aseg)
    wmf = pp.fname_presuffix(aparc_aseg, prefix='wm_')
    gmf = pp.fname_presuffix(aparc_aseg, prefix='gm_')
    pibif = pp.fname_presuffix(aparc_aseg, prefix='pibindex_')
    aff = ni.load(aparc_aseg).get_affine()
    to_file(wm, aff, wmf)
    to_file(gm, aff, gmf)
    to_file(pibi, aff, pibif)
    rois = [gmf, wmf, pibif]
    rsfs = compute_rsf(rois)
    transfer_mtx = gen_transfer_matrix(rsfs, rois)
    obs = get_observed_conc(dvr, rois)
    correct = calc_pvc_values(transfer_mtx, obs)
Example #5
0
     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
 wm,gm,pibi = rousset.generate_pibindex_rois_fs(craparc)
 wmf = pp.fname_presuffix(craparc, prefix='wm_')
 gmf = pp.fname_presuffix(craparc, prefix='gm_')
 pibif = pp.fname_presuffix(craparc, prefix='pibindex_')
 aff = rousset.ni.load(craparc).get_affine()
 rousset.to_file(wm, aff, wmf)
 rousset.to_file(gm, aff, gmf)
 rousset.to_file(pibi, aff, pibif)
 rois = [gmf, wmf, pibif]
 rsfs = rousset.compute_rsf(rois)
 transfer_mtx = rousset.gen_transfer_matrix(rsfs, rois)
 obs = rousset.get_observed_conc(cponsnormd, rois)
 transferf = os.path.join(pvcdir, 'transfer_matrix')
 rousset.np.save(transferf, transfer_mtx)
 obsf = os.path.join(pvcdir, 'observed')
 rousset.np.save(obsf, obs)
 logging.info('Created %s'%(pvcdir))
        pvcdir, exists = bg.make_dir(pth, 'pvc_metzler')
        if exists:
            logging.error('%s exists, remove to re-run' % (pvcdir))
            continue
        # get ponsnormd
        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
        bmask = metzler.make_aseg_brainmask(craparc)
        os.unlink(craparc)
        smooth_bmask = pp.fname_presuffix(bmask, prefix='s')
        _ = metzler.smooth_mask_nipy(bmask, smooth_bmask)
        ero_bmask = metzler.fsl_erode2d(bmask)
        pvcpet = metzler.calc_pvc(cponsnormd, ero_bmask, smooth_bmask)
        os.unlink(cponsnormd)
        logging.info('Created %s' % (pvcpet))
Example #7
0
        if exists:
            logging.error('%s exists, remove to re-run'%(pvcdir))
            continue
        # get ponsnormd
        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
        bmask = metzler.make_aseg_brainmask(craparc)
        os.unlink(craparc)
        smooth_bmask = pp.fname_presuffix(bmask, prefix='s')
        _ = metzler.smooth_mask_nipy(bmask, smooth_bmask)
        ero_bmask = metzler.fsl_erode2d(bmask)
        pvcpet = metzler.calc_pvc(cponsnormd, ero_bmask, smooth_bmask)
        os.unlink(cponsnormd)
        logging.info('Created %s'%(pvcpet))
        
Example #8
0
        mask = np.logical_and(roidat > 0, petdat > 0)
        obs_conc[jval] = petdat[mask].mean()
    return obs_conc

def calc_pvc_values(transfer_mtx, observed):
    corrected = np.matrix(np.linalg.inv(transfer_mtx))* \
                np.transpose(np.matrix(observed))
    return corrected

if __name__ == '__main__':

    testdir = os.path.abspath('../test')
    aparc_aseg = os.path.join(testdir, 'rB09-230_v1_aparc_aseg.nii')
    dvr = os.path.join(testdir,'DVR-B09-230_v1_2012-06-08-15-07.nii.gz')
    wm = mask_from_aseg(aparc_aseg, wm_aseg())
    gm = mask_from_aseg(aparc_aseg,  gm_aseg())
    pibi = mask_from_aseg(aparc_aseg, pibindex_aseg())
    wm,gm,pibi = generate_pibindex_rois_fs(aparc_aseg)
    wmf = pp.fname_presuffix(aparc_aseg, prefix='wm_')
    gmf = pp.fname_presuffix(aparc_aseg, prefix='gm_')
    pibif = pp.fname_presuffix(aparc_aseg, prefix='pibindex_')
    aff = ni.load(aparc_aseg).get_affine()
    to_file(wm, aff, wmf)
    to_file(gm, aff, gmf)
    to_file(pibi, aff, pibif)
    rois = [gmf, wmf, pibif]
    rsfs = compute_rsf(rois)
    transfer_mtx = gen_transfer_matrix(rsfs, rois)
    obs = get_observed_conc(dvr, rois)
    correct = calc_pvc_values(transfer_mtx, obs)
Example #9
0
     logging.error("%s missing, skipping" % (globstr))
     continue
 # copy dvr to pvc directory
 cdvr = bg.copy_file(dvr, pvcdir)
 # get raparc
 corgdir = os.path.join(pth, "coreg")
 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
 wm, gm, pibi = rousset.generate_pibindex_rois_fs(craparc)
 wmf = pp.fname_presuffix(craparc, prefix="wm_")
 gmf = pp.fname_presuffix(craparc, prefix="gm_")
 pibif = pp.fname_presuffix(craparc, prefix="pibindex_")
 aff = rousset.ni.load(craparc).get_affine()
 rousset.to_file(wm, aff, wmf)
 rousset.to_file(gm, aff, gmf)
 rousset.to_file(pibi, aff, pibif)
 rois = [gmf, wmf, pibif]
 rsfs = rousset.compute_rsf(rois)
 transfer_mtx = rousset.gen_transfer_matrix(rsfs, rois)
 obs = rousset.get_observed_conc(cdvr, rois)
 transferf = os.path.join(pvcdir, "transfer_matrix")
 rousset.np.save(transferf, transfer_mtx)
 obsf = os.path.join(pvcdir, "observed")
 rousset.np.save(obsf, obs)
 logging.info("Created %s" % (pvcdir))