def plot_brainrsa_rlts(img, threshold=None): if threshold != None: imgarray = nib.load(img).get_data() affine = get_affine(img) sx = np.shape(imgarray)[0] sy = np.shape(imgarray)[1] sz = np.shape(imgarray)[2] imgarray = correct_by_threshold(imgarray, sx, sy, sz, threshold) img = nib.Nifti1Image(imgarray, affine) roi_bg = "template/ch2.nii.gz" print(nib.load(roi_bg)) plotting.plot_roi(roi_img=img, bg_img=roi_bg, threshold=0, vmin=0.1, vmax=1, resampling_interpolation="continuous") plt.show()
def plot_brainrsa_regions(img, threshold=None, background=get_bg_ch2(), type='r'): """ Plot the RSA-result regions by 3 cuts (frontal, axial & lateral) Parameters ---------- img : string The file path of the .nii file of the RSA results. threshold : None or int. Default is None. The threshold of the number of voxels used in correction. If threshold=n, only the similarity clusters consisting more than threshold voxels will be visible. If it is None, the threshold-correction will not work. background : Niimg-like object or string. Default is stuff.get_bg_ch2() The background image that the RSA results will be plotted on top of. type : string 'r' or 't' The type of result (r-values or t-values). """ imgarray = nib.load(img).get_fdata() if (imgarray == np.nan).all() == True: print("No Valid Results") else: if threshold != None: imgarray = nib.load(img).get_fdata() affine = get_affine(img) imgarray = correct_by_threshold(imgarray, threshold) img = nib.Nifti1Image(imgarray, affine) if type == 'r': plotting.plot_roi(roi_img=img, bg_img=background, threshold=0, vmin=0.1, vmax=1, title="Similarity", resampling_interpolation="continuous") if type == 't': plotting.plot_roi(roi_img=img, bg_img=background, threshold=0, vmin=-7, vmax=7, title="Similarity", resampling_interpolation="continuous") plt.show() return 0
def plot_brainrsa_rlts(img, threshold=None, slice=[6, 6, 6], background=None, type='r'): """ Plot the RSA-result by a set of images Parameters ---------- img : string The file path of the .nii file of the RSA results. threshold : None or int. Default is None. The threshold of the number of voxels used in correction. If threshold=n, only the similarity clusters consisting more than threshold voxels will be visible. If it is None, the threshold-correction will not work. background : Niimg-like object or string. Default is None. The background image that the RSA results will be plotted on top of. type : string 'r' or 't' The type of result (r-values or t-values). """ imgarray = nib.load(img).get_data() if (imgarray == np.nan).all() == True: print("No Valid Results") else: if threshold != None: imgarray = nib.load(img).get_data() affine = get_affine(img) imgarray = correct_by_threshold(imgarray, threshold) img = nib.Nifti1Image(imgarray, affine) if background == None: plot_brainrsa_regions(img, threshold=threshold, type=type) plot_brainrsa_montage(img, threshold=threshold, slice=slice, type=type) plot_brainrsa_glass(img, threshold=threshold, type=type) plot_brainrsa_surface(img, threshold=threshold, type=type) else: plot_brainrsa_regions(img, threshold=threshold, background=background, type=type) plot_brainrsa_montage(img, threshold=threshold, slice=slice, background=background, type=type) plot_brainrsa_surface(img, threshold=threshold, type=type)
def plot_brainrsa_glass(img, threshold=None, type='r'): """ Plot the 2-D projection of the RSA-result Parameters ---------- img : string The file path of the .nii file of the RSA results. threshold : None or int. Default is None. The threshold of the number of voxels used in correction. If threshold=n, only the similarity clusters consisting more than threshold voxels will be visible. If it is None, the threshold-correction will not work. type : string 'r' or 't' The type of result (r-values or t-values). """ imgarray = nib.load(img).get_fdata() if (imgarray == np.nan).all() == True: print("No Valid Results") else: if threshold != None: imgarray = nib.load(img).get_fdata() affine = get_affine(img) imgarray = correct_by_threshold(imgarray, threshold) img = nib.Nifti1Image(imgarray, affine) if type == 'r': plotting.plot_glass_brain(img, colorbar=True, title="Similarity", black_bg=True, draw_cross=True, vmax=1) if type == 't': plotting.plot_glass_brain(img, colorbar=True, title="Similarity", black_bg=True, draw_cross=True, vmax=7) plt.show() return 0
#nan-->0 dataxin = data.fillna(0) corrs = pg.partial_corr(dataxin, x='bhv_RDM', y='fmri_RDMs', covar='Covariation', method='spearman') corrs_result[i, j, k] = corrs[['r', 'p-val']] ##Do the Fisher-Z transform of the r Zcorrs_result[i, j, k] = corrs[['r', 'p-val']] Zcorrs_result[i, j, k, 0] = 0.5 * np.log( (1 + corrs['r']) / (1 - corrs['r'])) """*** sav RSA result ***""" # get the affine info affine = get_affine(mask_filename) # save the RSA result as a .nii file RSAresultfilename = ('%s/partialSpearmanRSAimg_%s.nii' % (RSAresultpath, subID[sub][4:10])) #If img_background=None, the background will be ch2.nii.gz. img = corr_save_nii(corrs_result, filename=RSAresultfilename, affine=affine, corr_mask=mask_filename, size=[61, 73, 61], ksize=[5, 5, 5], strides=[1, 1, 1], p=1, r=0, correct_method=None, smooth=False,
def plot_brainrsa_surface(img, threshold=None, type='r'): """ Plot the RSA-result into a brain surface Parameters ---------- img : string The file path of the .nii file of the RSA results. threshold : None or int. Default is None. The threshold of the number of voxels used in correction. If threshold=n, only the similarity clusters consisting more than threshold voxels will be visible. If it is None, the threshold-correction will not work. type : string 'r' or 't' The type of result (r-values or t-values). """ imgarray = nib.load(img).get_data() if (imgarray == np.nan).all() == True: print("No Valid Results") else: if threshold != None: imgarray = nib.load(img).get_data() affine = get_affine(img) imgarray = correct_by_threshold(imgarray, threshold) img = nib.Nifti1Image(imgarray, affine) fsaverage = datasets.fetch_surf_fsaverage(mesh='fsaverage') texture_left = surface.vol_to_surf(img, fsaverage.pial_left) texture_right = surface.vol_to_surf(img, fsaverage.pial_right) # type='r' if type == 'r': plotting.plot_surf_stat_map(fsaverage.pial_left, texture_left, hemi='left', threshold=0.1, bg_map=fsaverage.sulc_right, colorbar=False, vmax=0.8, darkness=0.7) plotting.plot_surf_stat_map(fsaverage.pial_right, texture_right, hemi='right', threshold=0.1, bg_map=fsaverage.sulc_right, colorbar=True, vmax=0.8, darkness=0.7) plotting.plot_surf_stat_map(fsaverage.pial_right, texture_left, hemi='left', threshold=0.1, bg_map=fsaverage.sulc_right, colorbar=False, vmax=0.8, darkness=0.7) plotting.plot_surf_stat_map(fsaverage.pial_left, texture_right, hemi='right', threshold=0.1, bg_map=fsaverage.sulc_right, colorbar=True, vmax=0.8, darkness=0.7) plt.show() # type='t' if type == 't': plotting.plot_surf_stat_map(fsaverage.pial_left, texture_left, hemi='left', threshold=0.8, bg_map=fsaverage.sulc_right, colorbar=False, darkness=0.7) plotting.plot_surf_stat_map(fsaverage.pial_right, texture_right, hemi='right', threshold=0.8, bg_map=fsaverage.sulc_right, colorbar=True, darkness=0.7) plotting.plot_surf_stat_map(fsaverage.pial_right, texture_left, hemi='left', threshold=0.8, bg_map=fsaverage.sulc_right, colorbar=False, darkness=0.7) plotting.plot_surf_stat_map(fsaverage.pial_left, texture_right, hemi='right', threshold=0.8, bg_map=fsaverage.sulc_right, colorbar=True, darkness=0.7) plt.show()
def plot_brainrsa_montage(img, threshold=None, slice=[6, 6, 6], background=get_bg_ch2bet(), type='r'): """ Plot the RSA-result by different cuts Parameters ---------- img : string The file path of the .nii file of the RSA results. threshold : None or int. Default is None. The threshold of the number of voxels used in correction. If threshold=n, only the similarity clusters consisting more than threshold voxels will be visible. If it is None, the threshold-correction will not work. slice : array The point where the cut is performed. If slice=[slice_x, slice_y, slice_z], slice_x, slice_y, slice_z represent the coordinates of each cut in the x, y, z direction. If slice=[[slice_x1, slice_x2], [slice_y1, slice_y2], [slice_z1, slice_z2]], slice_x1 & slice_x2 represent the coordinates of each cut in the x direction, slice_y1 & slice_y2 represent the coordinates of each cut in the y direction, slice_z1 & slice_z2 represent the coordinates of each cut in the z direction. background : Niimg-like object or string. Default is stuff.get_bg_ch2bet() The background image that the RSA results will be plotted on top of. type : string 'r' or 't' The type of result (r-values or t-values). """ imgarray = nib.load(img).get_data() if (imgarray == np.nan).all() == True: print("No Valid Results") else: if threshold != None: imgarray = nib.load(img).get_data() affine = get_affine(img) imgarray = correct_by_threshold(imgarray, threshold) img = nib.Nifti1Image(imgarray, affine) slice_x = slice[0] slice_y = slice[1] slice_z = slice[2] if type == 'r': vmax = 1 if type == 't': vmax = 7 if slice_x != 0: plotting.plot_stat_map(stat_map_img=img, bg_img=background, display_mode='x', cut_coords=slice_x, title="Similarity -sagittal", draw_cross=True, vmax=vmax) if slice_y != 0: plotting.plot_stat_map(stat_map_img=img, bg_img=background, display_mode='y', cut_coords=slice_y, title="Similarity -coronal", draw_cross=True, vmax=vmax) if slice_z != 0: plotting.plot_stat_map(stat_map_img=img, bg_img=background, display_mode='z', cut_coords=slice_z, title="Similarity -axial", draw_cross=True, vmax=vmax) plt.show()
def test_get_affine(self): img = '../neurora/template/ch2.nii.gz' output = get_affine(img) self.assertEqual(output.shape[0], 4)