def compare_brains_in_regions(brain_regions, regions_to_voxels): for region_name, voxels in regions_to_voxels[i].items(): if region_name in best_brain_regions: if region_name not in brain_regions: brain_regions[region_name] = [] voxels = [v for v in voxels if v in brain_fs[i].get_selected_indexes()] brain_regions[region_name].append(brains[-1][:, voxels]) for region_name in brain_regions: if min(map(len, brain_regions[region_name])) > 0: x_brain, C_brain = get_dists(brain_regions[region_name]) klz_brain, labels_brain = compute_dist_of_dists(x_brain, C_brain, brain_labels) print(region_name, '\t', np.mean(klz_brain), '\t', np.std(klz_brain)) plot(klz_brain, labels_brain)
all_embeddings = [] all_labels = [] for key in embeddings.keys(): all_embeddings += embeddings[key][1:] all_labels += labels[key][1:] #x, C = get_dists(brains + all_embeddings) #klz, prz, labels_ = compute_dist_of_dists(x, C, brain_labels + all_labels) #plot(prz, brain_regions_labels) #klz = np.asarray(klz) #print(klz.shape) #print(brain_regions_labels) import csv x, C = get_dists(all_embeddings) klz, prz, labels_ = compute_dist_of_dists(x, C, all_labels) with open('bert_com_sim_prz_' + '.csv', 'w') as f: writer = csv.writer(f) writer.writerow(all_labels) writer.writerows(prz) print(all_labels) plot(prz, all_labels) half = int(len(all_labels) / 2) for i in np.arange(half): print(all_labels[i].split("_")[-1], all_labels[i + half].split("_")[-1], prz[i][i + half])
print(brains[-1].shape) #x, C = get_dists(brains + all_embeddings) #klz, prz, labels_ = compute_dist_of_dists(x, C, brain_labels + all_labels) #plot(prz, brain_regions_labels) #klz = np.asarray(klz) #print(klz.shape) #print(brain_regions_labels) for context_size in np.arange(7): output = str(context_size) + ' ' for key in embeddings: print(key, embeddings[key][context_size].shape) embedding_key = key + '_' + str(context_size) x, C = get_dists(brains + [embeddings[key][context_size]]) klz, prz, labels_ = compute_dist_of_dists( x, C, brain_labels + [embedding_key]) output += str(np.mean(prz[8, 0:8])) + ' ' print(output) """ x, C = get_dists(brain_regions) klz, prz, labels_ = compute_dist_of_dists(x, C, brain_regions_labels) region_sim_dic = {} for region in best_brain_regions: region_sim_dic[region] = [] for i in np.arange(len(brain_regions_labels)): if brain_regions_labels[i].endswith(region): for j in np.arange(len(brain_regions_labels)): region_sim_dic[region].append(klz[i][j])
a = pickle.load( open(os.path.join(hparams.emb_save_dir, str(i) + '_Brain'), 'rb')) for b in blocks: brains[-1].extend(a['brain_activations'][b][11 + delay:-3]) brains[-1] = np.asarray(brains[-1]) brain_fs[i].fit(brains[-1]) original_selected_voxels = brain_fs[i].get_selected_indexes() print(len(original_selected_voxels)) brains[-1] = brains[-1][:, original_selected_voxels] brain_labels.append('brain_' + str(i)) print(brains[-1].shape) print('avg brain shape:', ) x, C = get_dists(brains + all_embeddings) klz, prz, labels_ = compute_dist_of_dists(x, C, brain_labels + all_labels) plot(prz, labels_) klz = np.asarray(klz) print(klz.shape) import csv with open('klz_' + str(delay) + '.csv', "w") as f: writer = csv.writer(f) writer.writerows(klz) with open('prz_' + str(delay) + '.csv', "w") as f: writer = csv.writer(f) writer.writerows(prz) #Get brain regions:
labels[embedding_key].append(embedding_key + '_context_' + str(context_size)) print("####################################") all_embeddings_per_context_length = {} all_labels_per_context_length = {} for context_size in np.arange(7): all_embeddings_per_context_length[context_size] = [] all_labels_per_context_length[context_size] = [] for key in embeddings.keys(): all_embeddings_per_context_length[context_size] += [ embeddings[key][context_size] ] all_labels_per_context_length[context_size] += [ labels[key][context_size] ] import csv for context_size in np.arange(7): x, C = get_dists(all_embeddings_per_context_length[context_size]) klz, prz, labels_ = compute_dist_of_dists( x, C, all_labels_per_context_length[context_size]) print(context_size, ':', np.mean(prz)) with open('com_sim_prz_' + str(context_size) + '.csv', 'w') as f: writer = csv.writer(f) writer.writerow(all_labels_per_context_length[context_size]) writer.writerows(prz) plot(prz, all_labels_per_context_length[context_size])
#plot(prz, brain_regions_labels) #klz = np.asarray(klz) #print(klz.shape) #print(brain_regions_labels) print(brain_regions_labels) for context_size in np.arange(1): print('context_size:', context_size) for bi in np.arange(len(brain_regions_labels)): print(brain_regions_labels[bi]) output = brain_regions_labels[bi][0] + ' ' for key in embeddings: print(key, embeddings[key][context_size].shape) embedding_key = key + '_' + str(context_size) x, C = get_dists([brain_regions[bi]] + [embeddings[key][context_size]]) klz, prz, labels_ = compute_dist_of_dists( x, C, brain_regions_labels[bi] + [embedding_key]) output += str(np.mean(prz[1, 0])) + ' ' print(output) """ x, C = get_dists(brain_regions) klz, prz, labels_ = compute_dist_of_dists(x, C, brain_regions_labels) region_sim_dic = {} for region in best_brain_regions: region_sim_dic[region] = [] for i in np.arange(len(brain_regions_labels)): if brain_regions_labels[i].endswith(region): for j in np.arange(len(brain_regions_labels)): region_sim_dic[region].append(klz[i][j])
brain_regions_labels.append(['subject_'+str(i)+region_name]) selected_voxels = [v for v in original_selected_voxels if voxel_to_regions[i][v] in best_brain_regions] brains[-1] = brains[-1][:, selected_voxels] brain_labels.append('brain_' + str(i)) print(brains[-1].shape) #x, C = get_dists(brains + all_embeddings) #klz, prz, labels_ = compute_dist_of_dists(x, C, brain_labels + all_labels) #plot(prz, brain_regions_labels) #klz = np.asarray(klz) #print(klz.shape) #print(brain_regions_labels) x, C = get_dists(brain_regions) klz, prz, labels_ = compute_dist_of_dists(x, C, brain_regions_labels) region_sim_dic = {} for region in best_brain_regions: region_sim_dic[region] = [] for i in np.arange(len(brain_regions_labels)): if brain_regions_labels[i].endswith(region): for j in np.arange(len(brain_regions_labels)): region_sim_dic[region].append(klz[i][j]) for key in region_sim_dic: print(key," ", np.mean(region_sim_dic[key]), len(region_sim_dic[key])) #import csv
1000)) normal_random_1000 = np.random.standard_normal( size=(all_embeddings[0].shape[0], 1000)) randoms = [ uniform_random_300, normal_random_300, uniform_random_100, normal_random_100, uniform_random_1000, normal_random_1000 ] random_labels = [ 'uniform_random_300', 'normal_ransom_300', 'uniform_random_100', 'normal_random_100', 'uniform_random_1000', 'normal_random_1000' ] print("brain shapes:", brain_regions[0].shape) x, C = get_dists(brain_regions + all_embeddings + randoms) klz, prz, labels_, p_vals = compute_dist_of_dists( x, C, brain_regions_labels + all_labels + random_labels) plot(prz, labels_) plot(p_vals, labels_) klz = np.asarray(klz) print(klz.shape) dic2save = {"klz": klz, "prz": prz, "labels_": labels_, "p_vals": p_vals} np.save( '_'.join(list(map(str, FLAGS.blocks))) + "rsa_results_all_brain_regions_" + str(delay) + "_" + selecting_feature, dic2save) x, C = get_dists(brains + all_embeddings + randoms)
for region_name, voxels in regions_to_voxels[i].items(): if region_name in best_brain_regions: voxels = [v for v in voxels if v in original_selected_voxels] brain_regions.append(brains[-1][:, voxels]) brain_regions_labels.append( ['subject_' + str(i) + region_name]) selected_voxels = [ v for v in original_selected_voxels if voxel_to_regions[i][v] in best_brain_regions ] brains[-1] = brains[-1][:, selected_voxels] brain_labels.append('brain_' + str(i)) print(brains[-1].shape) x, C = get_dists(brain_regions + all_embeddings) klz, prz, labels_ = compute_dist_of_dists( x, C, brain_regions_labels + all_labels) plot(prz, labels_) klz = np.asarray(klz) print(klz.shape) import csv with open('klz_' + str(delay) + '.csv', "w") as f: writer = csv.writer(f) writer.writerows(klz) with open('prz_' + str(delay) + '.csv', "w") as f: writer = csv.writer(f) writer.writerows(prz)