Пример #1
0
    solver_params = dict(alpha=alpha,
                         l1_ratio=l1_ratio,
                         fit_intercept=False,
                         positive=True)

    SD_1 = ssd.SparseDeconvolutionModel(*data[0],
                                        mask=mask,
                                        params_file="temp",
                                        solver_params=solver_params,
                                        axial_diffusivity=ad_rd[0]["AD"],
                                        radial_diffusivity=ad_rd[0]["RD"])

    SD_2 = ssd.SparseDeconvolutionModel(*data[1],
                                        mask=mask,
                                        params_file="temp",
                                        solver_params=solver_params,
                                        axial_diffusivity=ad_rd[1]["AD"],
                                        radial_diffusivity=ad_rd[1]["RD"])

    rrmse = oza.cross_predict(SD_1, SD_2)
    rel = tensor_reliability(SD_1, SD_2, mask)

    rrmse_fname = "%s/%s/RMSE_b%s_l1ratio%s_alpha%s.nii.gz" % (
        data_path, subject, b, l1_ratio, alpha)
    rel_fname = "%s/%s/PDD_angle_b%s_l1ratio%s_alpha%s.nii.gz" % (
        data_path, subject, b, l1_ratio, alpha)

    ni.Nifti1Image(rrmse, SD_1.affine).to_filename(rrmse_fname)
    ni.Nifti1Image(rel, SD_1.affine).to_filename(rel_fname)
            
    SD_1 = ssd.SparseDeconvolutionModel(*data[0],
                                        mask=mask,
                                        params_file="temp",
                                        solver_params=solver_params, 
                                        axial_diffusivity=ad_rd[0]["AD"],
                                        radial_diffusivity=ad_rd[0]["RD"])
            
    SD_2 = ssd.SparseDeconvolutionModel(*data[1],
                                        mask=mask,
                                        params_file="temp",
                                        solver_params=solver_params,
                                        axial_diffusivity=ad_rd[1]["AD"],
                                        radial_diffusivity=ad_rd[1]["RD"])
            
    rrmse = oza.cross_predict(SD_1, SD_2)
    rel = tensor_reliability(SD_1, SD_2, mask)

    rrmse_fname = "%s/%s/RMSE_b%s_l1ratio%s_alpha%s.nii.gz"%(data_path,
                                                             subject,
                                                             b,
                                                             l1_ratio,
                                                             alpha)
    rel_fname = "%s/%s/PDD_angle_b%s_l1ratio%s_alpha%s.nii.gz"%(data_path,
                                                             subject,
                                                             b,
                                                             l1_ratio,
                                                             alpha)

    ni.Nifti1Image(rrmse, SD_1.affine).to_filename(rrmse_fname)
    ni.Nifti1Image(rel, SD_1.affine).to_filename(rel_fname)
Пример #3
0
rrmse_dti = {}
rrmse_ssd = {}
for subject in ['FP', 'HT']:
    subject_path = os.path.join(data_path, subject)
    wm_mask_file = os.path.join(subject_path, '%s_wm_mask.nii.gz'%subject)
    wm_nifti = ni.load(wm_mask_file).get_data()
    wm_mask = np.zeros(wm_nifti.shape)
    wm_mask[np.where(wm_nifti==1)] = 1
    wm_idx = np.where(wm_nifti>0)
    rrmse_dti[subject] = {}
    rrmse_ssd[subject] = {}
    for b in [1000, 2000, 4000]:
        data_1, data_2 = oio.get_dwi_data(b, subject=subject)
        TM1 = dti.TensorModel(*data_1, mask=wm_mask)
        TM2 = dti.TensorModel(*data_2, mask=wm_mask)
        rrmse_dti[subject][b] = ozm.cross_predict(TM1, TM2)
        print subject
        print b
        rmse_mask = rrmse_dti[subject][b][wm_idx]
        print "DTI: %s voxels above 1"%(len(np.where(rmse_mask>1)[0])/float(len(rmse_mask)))
        print "Median rRMSE: %s"%np.median(rmse_mask)
        ad_rd = oio.get_ad_rd(subject, b)
        SD1 = ssd.SparseDeconvolutionModel(*data_1, mask=wm_mask,
            axial_diffusivity=ad_rd[0]['AD'],
            radial_diffusivity=ad_rd[0]['RD'])
        SD2 = ssd.SparseDeconvolutionModel(*data_2, mask=wm_mask,
            axial_diffusivity=ad_rd[1]['AD'],
            radial_diffusivity=ad_rd[1]['RD'])
        rrmse_ssd[subject][b] = ozm.cross_predict(SD1, SD2)
        rmse_mask = rrmse_ssd[subject][b][wm_idx]
        print "SSD: %s voxels above 1"%(len(np.where(rmse_mask>1)[0])/float(len(rmse_mask)))