a[mask_left__mesh] = 1 a[mask_right__mesh] = 2 mask_left__beta = a[mask__mesh] == 1 # project mesh to mesh masked mask_right__beta = a[mask__mesh] == 2 assert ( mask_left__beta.sum() + mask_right__beta.sum() ) == mask_left__beta.shape[0] == mask_right__beta.shape[0] == mask__mesh.sum() assert mask_left__mesh.sum() == mask_left__beta.sum() assert mask_right__mesh.sum() == mask_right__beta.sum() # Check mapping from beta left part to left_mesh assert mask_left__beta.sum() == mask_left__left_mesh.sum() assert mask_right__beta.sum() == mask_right__right_mesh.sum() ############################################################################# #Save loading vectors ############################################################################# # left tex = np.zeros(mask_left__left_mesh.shape) tex[mask_left__left_mesh] = beta[mask_left__beta] print("left", np.sum(tex != 0), tex.max(), tex.min()) mesh_utils.save_texture(filename=os.path.join(OUTPUT, "tex_beta_left.gii"), data=tex) # right tex = np.zeros(mask_right__right_mesh.shape) tex[mask_right__right_mesh] = beta[mask_right__beta] print("right", np.sum(tex != 0), tex.max(), tex.min()) mesh_utils.save_texture(filename=os.path.join(OUTPUT, "tex_beta_right.gii"), data=tex)
############################################################################# # Some basic stat before centering/scaling means = np.mean(X, axis=0) stds = np.std(X, axis=0) mins = np.min(X, axis=0) maxs = np.max(X, axis=0) print "Means:", means.min(), means.max(), means.mean() print "Std:", stds.min(), stds.max(), stds.mean() print "Mins:", mins.min(), mins.max(), mins.mean() print "Maxs:", maxs.min(), maxs.max(), maxs.mean(), (maxs == 0).sum() arr = np.zeros(mask.shape); arr[mask] = means mesh_utils.save_texture(filename=os.path.join(OUTPUT, "mean.gii"), data=arr)#, intent='NIFTI_INTENT_NONE') arr = np.zeros(mask.shape); arr[mask] = stds mesh_utils.save_texture(filename=os.path.join(OUTPUT, "std.gii"), data=arr)#, intent='NIFTI_INTENT_NONE') arr = np.zeros(mask.shape); arr[mask] = maxs mesh_utils.save_texture(filename=os.path.join(OUTPUT, "max.gii"), data=arr)#, intent='NIFTI_INTENT_NONE') ############################################################################# X = np.hstack([Z, X]) assert X.shape == (34, 314785) # Center/scale X -= X.mean(axis=0) X /= X.std(axis=0)
# Check mapping from beta left part to left_mesh assert mask_left__beta.sum() == mask_left__left_mesh.sum() assert mask_right__beta.sum() == mask_right__right_mesh.sum() ############################################################################# #SVM weight map svm_weight_map = "/neurospin/brainomics/2016_schizConnect/analysis/all_studies/Freesurfer/all_subjects_less_than_30years/results/svm/svm_model_selection_5folds_all_subjects_less_than_30years/model_selectionCV/all/all/1e-09/beta.npz" svm = np.load(svm_weight_map)['arr_0'].T svm_t,t = array_utils.arr_threshold_from_norm2_ratio(svm,0.99) # left tex = np.zeros(mask_left__left_mesh.shape) tex[mask_left__left_mesh] = svm_t[mask_left__beta] print ("left", np.sum(tex != 0), tex.max(), tex.min()) mesh_utils.save_texture(filename=os.path.join(OUTPUT, "svm_weight_map_left.gii"), data=tex) # right tex = np.zeros(mask_right__right_mesh.shape) tex[mask_right__right_mesh] = svm_t[mask_right__beta] print ("right", np.sum(tex != 0), tex.max(), tex.min()) mesh_utils.save_texture(filename=os.path.join(OUTPUT, "svm_weight_map_right.gii"), data=tex) ############################################################################# #Enet weight map enet_weight_map = "/neurospin/brainomics/2016_schizConnect/analysis/all_studies/Freesurfer/all_subjects_less_than_30years/results/enettv/model_selection_5folds_all_subjects_less_than_30years/model_selectionCV/refit/refit/0.1_0.36_0.04_0.6/beta.npz" enet = np.load(enet_weight_map)['arr_0'] enet_t,t = array_utils.arr_threshold_from_norm2_ratio(enet,0.99) # left tex = np.zeros(mask_left__left_mesh.shape)
enet_weight_map = "/neurospin/brainomics/2017_asd_charles/Freesurfer/results/\ enettv_asd_charles_10000ite/model_selectionCV/refit/refit/0.1_0.0_0.0_1.0" param = os.path.basename(enet_weight_map) beta_path = os.path.join(enet_weight_map, "beta.npz") penalty_start = 5 enet = np.load(beta_path)['arr_0'][penalty_start:, :] enet_t, t = array_utils.arr_threshold_from_norm2_ratio(enet, 0.99) # left tex = np.zeros(mask_left__left_mesh.shape) tex[mask_left__left_mesh] = enet_t[mask_left__beta] print("left", np.sum(tex != 0), tex.max(), tex.min()) mesh_utils.save_texture(filename=os.path.join(OUTPUT, param + "_weight_map_left.gii"), data=tex) # right tex = np.zeros(mask_right__right_mesh.shape) tex[mask_right__right_mesh] = enet_t[mask_right__beta] print("right", np.sum(tex != 0), tex.max(), tex.min()) mesh_utils.save_texture(filename=os.path.join(OUTPUT, param + "_weight_map_right.gii"), data=tex) ####################################################################################### OUTPUT = "/neurospin/brainomics/2017_asd_charles/Freesurfer/results/svm/svm_asd/weight_map" shutil.copyfile(os.path.join(TEMPLATE_PATH, "lh.pial.gii"), os.path.join(OUTPUT, "lh.pial.gii")) shutil.copyfile(os.path.join(TEMPLATE_PATH, "rh.pial.gii"),
print "Mins:", mins.min(), mins.max(), mins.mean() print "Maxs:", maxs.min(), maxs.max(), maxs.mean(), (maxs == 0).sum() #In [93]: Means: 0.00120785424662 4.70434341146 2.20050826134 #In [94]: Std: 0.0170816385694 2.18101036803 0.593103047434 #In [95]: Mins: 0.0 3.02653193474 0.936884414047 #In [96]: Maxs: 0.24277870357 5.0 3.94083362002 0 # Smoothed #Means: 0.000738471496825 4.4246063956 2.17232778568 #Std: 0.010000705246 1.16976456436 0.386480145866 #Mins: 0.0 3.22148299217 1.24649752094 #Maxs: 0.0534101724625 4.97702121735 3.30445936329 0 arr = np.zeros(mask.shape) arr[mask] = means mesh_utils.save_texture(filename=os.path.join(OUTPUT, "mean.gii"), data=arr) #, intent='NIFTI_INTENT_NONE') arr = np.zeros(mask.shape) arr[mask] = stds mesh_utils.save_texture(filename=os.path.join(OUTPUT, "std.gii"), data=arr) #, intent='NIFTI_INTENT_NONE') arr = np.zeros(mask.shape) arr[mask] = maxs mesh_utils.save_texture(filename=os.path.join(OUTPUT, "max.gii"), data=arr) #, intent='NIFTI_INTENT_NONE') # anatomist mean.gii std.gii max.gii ../freesurfer_template/lrh.pial.gii ############################################################################# # Center/scale X -= X.mean(axis=0) X /= X.std(axis=0) n, p = X.shape
np.vstack(tnsr_inv_pc12__lacunes__perfo_to_yaxis_all) mesh_processing.mesh_from_arrays( tnsr_inv_pc12__lacunes__perfo_to_yaxis_all, tri_lacunes_all, path=os.path.join(OUTPUT, "tnsr_inv_pc12__lacunes__perfo_to_yaxis.gii")) ### ======================================================================= ### brain__lacunes__native & brain__perfo__native ### ======================================================================= aims.write(brain_mesh_lacunes__native_all, os.path.join(OUTPUT, "brain__lacunes__native.gii")) aims.write(brain_mesh_perfo__native_all, os.path.join(OUTPUT, "brain__perforators__native.gii")) for k in textures: textures[k]["lacunes"] = np.hstack(textures[k]["lacunes"]) #print textures[k] mesh_processing.save_texture( filename=os.path.join(OUTPUT, "tex__lacunes__%s.gii" % k), data=textures[k]["lacunes"]) #, intent='NIFTI_INTENT_NONE') textures[k]["perforators"] = np.hstack(textures[k]["perforators"]) #print textures[k] mesh_processing.save_texture( filename=os.path.join(OUTPUT, "tex__perforators__%s.gii" % k), data=textures[k]["perforators"]) #, intent='NIFTI_INTENT_NONE') """ anatomist /tmp/mesh_*.gii freeview -f mnts-inv_pc12_scaled.gii:overlay=tex_tensor_invariant_fa.gii """
comp2_all = comp2 comp3_all = comp3 comp4_all = comp4 comp5_all = comp5 comp6_all = comp6 comp7_all = comp7 comp8_all = comp8 comp9_all = comp9 #Save loading vectors ############################################################################# # left tex = np.zeros(mask_left__left_mesh.shape) tex[mask_left__left_mesh] = comp0[mask_left__beta] print "left", np.sum(tex != 0), tex.max(), tex.min() mesh_utils.save_texture(filename=os.path.join(OUTPUT, "tex_0_left.gii"), data=tex) # right tex = np.zeros(mask_right__right_mesh.shape) tex[mask_right__right_mesh] = comp0[mask_right__beta] print "right", np.sum(tex != 0), tex.max(), tex.min() mesh_utils.save_texture(filename=os.path.join(OUTPUT, "tex_0_right.gii"), data=tex) tex = np.zeros(mask_left__left_mesh.shape) tex[mask_left__left_mesh] = comp1[mask_left__beta] print "left", np.sum(tex != 0), tex.max(), tex.min() mesh_utils.save_texture(filename=os.path.join(OUTPUT, "tex_1_left.gii"), data=tex) # right tex = np.zeros(mask_right__right_mesh.shape) tex[mask_right__right_mesh] = comp1[mask_right__beta]
for k in todo: todo[k]["path"] = os.path.join("5cv", "*", "_".join([str(p) for p in todo[k]["param"]])) ############################################################################# ## CV 0 for k in todo: #k = "l1l2" Betas = np.vstack([array_utils.arr_threshold_from_norm2_ratio( np.load(os.path.join(filename, "beta.npz"))['arr_0'][config["penalty_start"]:, :].ravel(), .99)[0] for filename in glob.glob(todo[k]["path"])]) # left tex = np.zeros(mask_left__left_mesh.shape) tex[mask_left__left_mesh] = Betas[0, mask_left__beta] print k, "left", np.sum(tex != 0), tex.max(), tex.min() mesh_utils.save_texture(filename=os.path.join(OUTPUT, "tex_%s_left.gii" % k), data=tex)#, intent='NIFTI_INTENT_TTEST') tex[mask_left__left_mesh] = np.sum(Betas[1:, mask_left__beta] != 0, axis=0) mesh_utils.save_texture(filename=os.path.join(OUTPUT, "tex_%s_left_cvcountnonnull.gii" % k), data=tex)#, intent='NIFTI_INTENT_TTEST') # right tex = np.zeros(mask_right__right_mesh.shape) tex[mask_right__right_mesh] = Betas[0, mask_right__beta] print k, "right", np.sum(tex != 0), tex.max(), tex.min() mesh_utils.save_texture(filename=os.path.join(OUTPUT, "tex_%s_right.gii" % k), data=tex)#, intent='NIFTI_INTENT_TTEST') tex[mask_right__right_mesh] = np.sum(Betas[1:, mask_right__beta] != 0, axis=0) mesh_utils.save_texture(filename=os.path.join(OUTPUT, "tex_%s_right_cvcountnonnull.gii" % k), data=tex)#, intent='NIFTI_INTENT_TTEST') """ l2tv left 76582 0.00314405576456 -0.00234570367821 l2tv left 97835 0.0256844622603 -0.0057810300272 l1tv left 2514 0.00345520687922 -0.00792580028994 l1tv left 2420 0.0253011691567 -0.00683345243997