def plot_states_matrices( X, labels, node_number=[6, 5, 8, 10, 4, 5, 7], node_networks=['DAN', 'VAN', 'SMN', 'VIS', 'AUD', 'LAN', 'DMN'], use_centroid=False, n_cols=3, save_fig=False, save_path="/media/robbis/DATA/fmri/movie_viviana", save_name_condition=None, **kwargs): """ Plots the centroids in square matrix form. It could be used with original data and labels but also with the original centroids if you set use_centroids as True. """ position = [sum(node_number[:i + 1]) for i in range(len(node_number))] if not use_centroid: centroids = get_centroids(X, labels)(X, labels) n_states = len(np.unique(labels)) else: centroids = X.copy() n_states = X.shape[0] position_label = [ -0.5 + position[i] - node_number[i] / 2. for i in range(len(node_number)) ] n_rows = np.ceil(n_states / float(n_cols)) fig = pl.figure() for i in np.arange(n_states): ax = fig.add_subplot(n_rows, n_cols, i + 1) matrix_ = copy_matrix(array_to_matrix(centroids[i]), diagonal_filler=0) n_nodes = matrix_.shape[0] ax.imshow(matrix_, interpolation='nearest', vmin=0, cmap=pl.cm.bwr) for _, end_network in zip(node_networks, position): ax.vlines(end_network - 0.5, -0.5, n_nodes - 0.5) ax.hlines(end_network - 0.5, -0.5, n_nodes - 0.5) ax.set_title('State ' + str(i + 1)) ax.set_xticks(position_label) ax.set_xticklabels(node_networks) ax.set_yticks(position_label) ax.set_yticklabels(node_networks) #pl.colorbar() if save_fig: fname = "%s_state_%s.png" % (str(save_name_condition), str(i + 1)) fig.savefig(os.path.join(save_path, fname)) pl.close('all') return fig
def plot_states_matrices(X, labels, node_number=[6,5,8,10,4,5,7], node_networks=['DAN','VAN','SMN','VIS','AUD','LAN','DMN'], use_centroid=False, n_cols=3, save_fig=False, save_path="/media/robbis/DATA/fmri/movie_viviana", save_name_condition=None, **kwargs ): """ Plots the centroids in square matrix form. It could be used with original data and labels but also with the original centroids if you set use_centroids as True. """ position = [sum(node_number[:i+1]) for i in range(len(node_number))] if not use_centroid: centroids = get_centroids(X, labels) n_states = len(np.unique(labels)) else: centroids = X.copy() n_states = X.shape[0] position_label = [-0.5+position[i]-node_number[i]/2. for i in range(len(node_number))] n_rows = np.ceil(n_states / float(n_cols)) print n_rows, n_cols fig = pl.figure() for i in np.arange(n_states): ax = fig.add_subplot(n_rows, n_cols, i+1) matrix_ = copy_matrix(array_to_matrix(centroids[i]), diagonal_filler=0) n_nodes = matrix_.shape[0] ax.imshow(matrix_, interpolation='nearest', vmin=0, cmap=pl.cm.inferno) for _, end_network in zip(node_networks, position): ax.vlines(end_network-0.5, -0.5, n_nodes-0.5) ax.hlines(end_network-0.5, -0.5, n_nodes-0.5) ax.set_title('State '+str(i+1)) ax.set_xticks(position_label) ax.set_xticklabels(node_networks) ax.set_yticks(position_label) ax.set_yticklabels(node_networks) #pl.colorbar() if save_fig: fname = "%s_state_%s.png" % (str(save_name_condition), str(i+1)) fig.savefig(os.path.join(save_path, fname)) pl.close('all') return fig
def transform(self, ds): data = np.dstack([copy_matrix(array_to_matrix(a)) for a in ds.samples]) data = np.hstack([d for d in data[:, :]]).T attr = self._edit_attr(ds, data.shape) ds_ = Dataset.from_wizard(data) ds_ = add_attributes(ds_, attr) return ds_
def plot_seaborn(features, node_names=None, node_idx=None, **kwargs): from mne.viz import circular_layout node_angles = circular_layout( node_names.tolist(), node_names[node_idx].tolist(), start_pos=90, group_boundaries=[0, len(node_names) / 2. + 1]) matrix = copy_matrix(array_to_matrix(features.values[0]), diagonal_filler=0.) return plot_connectivity_seaborn(matrix, node_names=node_names, con_thresh=400, node_angles=node_angles, node_colors=sns.dark_palette( kwargs['color']))
def plot_center_matrix(X, clustering, n_cluster=5, **kwargs): configuration = { 'node_number':[6,5,8,10,4,5,7], 'node_networks':['DAN','VAN','SMN','VIS','AUD','LAN','DMN'], 'save_fig':True, 'save_path':"/media/robbis/DATA/fmri/movie_viviana", 'save_name_condition':None } configuration.update(**kwargs) node_number = configuration['node_number'] node_networks = configuration['node_networks'] position = [sum(node_number[:i+1]) for i in range(len(node_number))] position_label = [-0.5+position[i]-node_number[i]/2. for i in range(len(node_number))] matrix_indices = np.arange(n_cluster**2).reshape(n_cluster, n_cluster) + 1 fig = pl.figure(figsize=(25,20)) for i in range(n_cluster-1): centers = get_centroids(X, clustering[i]) for j, matrix in enumerate(centers): pos = matrix_indices[j,i+1] ax = fig.add_subplot(n_cluster, n_cluster, pos) matrix = copy_matrix(array_to_matrix(matrix), diagonal_filler=0) total_nodes = matrix.shape[0] ax.imshow(matrix, interpolation='nearest', vmin=0) for name, n_nodes in zip(node_networks, position): ax.vlines(n_nodes-0.5, -0.5, total_nodes-0.5) ax.hlines(n_nodes-0.5, -0.5, total_nodes-0.5) ax.set_xticks(position_label) ax.set_xticklabels(node_networks) ax.set_yticks(position_label) ax.set_yticklabels(node_networks) return fig
def plot_center_matrix(X, clustering, n_cluster=5, **kwargs): configuration = { 'node_number': [6, 5, 8, 10, 4, 5, 7], 'node_networks': ['DAN', 'VAN', 'SMN', 'VIS', 'AUD', 'LAN', 'DMN'], 'save_fig': True, 'save_path': "/media/robbis/DATA/fmri/movie_viviana", 'save_name_condition': None } configuration.update(**kwargs) node_number = configuration['node_number'] node_networks = configuration['node_networks'] position = [sum(node_number[:i + 1]) for i in range(len(node_number))] position_label = [ -0.5 + position[i] - node_number[i] / 2. for i in range(len(node_number)) ] matrix_indices = np.arange(n_cluster**2).reshape(n_cluster, n_cluster) + 1 fig = pl.figure(figsize=(25, 20)) for i in range(n_cluster - 1): centers = get_centroids(X, clustering[i]) for j, matrix in enumerate(centers): pos = matrix_indices[j, i + 1] ax = fig.add_subplot(n_cluster, n_cluster, pos) matrix = copy_matrix(array_to_matrix(matrix), diagonal_filler=0) total_nodes = matrix.shape[0] ax.imshow(matrix, interpolation='nearest', vmin=0) for _, n_nodes in zip(node_networks, position): ax.vlines(n_nodes - 0.5, -0.5, total_nodes - 0.5) ax.hlines(n_nodes - 0.5, -0.5, total_nodes - 0.5) ax.set_xticks(position_label) ax.set_xticklabels(node_networks) ax.set_yticks(position_label) ax.set_yticklabels(node_networks) return fig
def plot_condition_centers(X, labels, **kwargs): configuration = { 'node_number': [6, 5, 8, 10, 4, 5, 7], 'node_networks': ['DAN', 'VAN', 'SMN', 'VIS', 'AUD', 'LAN', 'DMN'], 'save_fig': True, 'save_path': "/media/robbis/DATA/fmri/movie_viviana", 'save_name_condition': None, 'vmax': 1 } configuration.update(**kwargs) vmax = configuration['vmax'] node_number = configuration['node_number'] node_networks = configuration['node_networks'] centroids = get_centroids(X, labels) position = [sum(node_number[:i + 1]) for i in range(len(node_number))] position_label = [ -0.5 + position[i] - node_number[i] / 2. for i in range(len(node_number)) ] n_rows = np.floor(np.sqrt(len(np.unique(labels)))) n_cols = np.ceil(len(np.unique(labels)) / n_rows) fig = pl.figure(figsize=(16, 13)) for j, matrix in enumerate(centroids): ax = fig.add_subplot(n_rows, n_cols, j + 1) matrix = copy_matrix(array_to_matrix(matrix), diagonal_filler=0) total_nodes = matrix.shape[0] ax.imshow(matrix, interpolation='nearest', vmin=0, vmax=vmax) for _, n_nodes in zip(node_networks, position): ax.vlines(n_nodes - 0.5, -0.5, total_nodes - 0.5) ax.hlines(n_nodes - 0.5, -0.5, total_nodes - 0.5) ax.set_xticks(position_label) ax.set_xticklabels(node_networks, rotation=45) ax.set_yticks(position_label) ax.set_yticklabels(node_networks) return fig
def plot_condition_centers(X, labels, **kwargs): configuration = { 'node_number':[6,5,8,10,4,5,7], 'node_networks':['DAN','VAN','SMN','VIS','AUD','LAN','DMN'], 'save_fig':True, 'save_path':"/media/robbis/DATA/fmri/movie_viviana", 'save_name_condition':None, 'vmax':1 } configuration.update(**kwargs) vmax = configuration['vmax'] node_number = configuration['node_number'] node_networks = configuration['node_networks'] centroids = get_centroids(X, labels) position = [sum(node_number[:i+1]) for i in range(len(node_number))] position_label = [-0.5+position[i]-node_number[i]/2. for i in range(len(node_number))] n_rows = np.floor(np.sqrt(len(np.unique(labels)))) n_cols = np.ceil(len(np.unique(labels))/n_rows) fig = pl.figure(figsize=(16,13)) for j, matrix in enumerate(centroids): ax = fig.add_subplot(n_rows, n_cols, j+1) matrix = copy_matrix(array_to_matrix(matrix), diagonal_filler=0) total_nodes = matrix.shape[0] ax.imshow(matrix, interpolation='nearest', vmin=0, vmax=vmax) for _, n_nodes in zip(node_networks, position): ax.vlines(n_nodes-0.5, -0.5, total_nodes-0.5) ax.hlines(n_nodes-0.5, -0.5, total_nodes-0.5) ax.set_xticks(position_label) ax.set_xticklabels(node_networks, rotation=45) ax.set_yticks(position_label) ax.set_yticklabels(node_networks) return fig
def plot_states_matrices(X, labels, save_path, condition_label, node_number=[6,5,8,10,4,5,7], node_networks = ['DAN','VAN','SMN','VIS','AUD','LAN','DMN'], use_centroid=False, ): position = [sum(node_number[:i+1]) for i in range(len(node_number))] if not use_centroid: centroids = get_centroids(X, labels) total_nodes = len(np.unique(labels)) else: centroids = X.copy() total_nodes = X.shape[0] position_label = [-0.5+position[i]-node_number[i]/2. for i in range(len(node_number))] for i in np.arange(total_nodes): fig = pl.figure() matrix_ = copy_matrix(array_to_matrix(centroids[i])) total_nodes = matrix_.shape[0] pl.imshow(matrix_, interpolation='nearest', vmin=0, vmax=1) for name, n_nodes in zip(node_networks, position): pl.vlines(n_nodes-0.5, -0.5, total_nodes-0.5) pl.hlines(n_nodes-0.5, -0.5, total_nodes-0.5) pl.title('State '+str(i+1)) pl.xticks(position_label, node_networks) pl.yticks(position_label, node_networks) pl.colorbar() fname = "%s_state_%s.png" % (condition_label, str(i+1)) pl.savefig(os.path.join(save_path, fname))
w_array = feature_weights[med].copy() f_nz = f_array[np.nonzero(f_array)] # We selected only feature selected often threshold = f_nz.mean() + 0.5 * f_nz.std() # f_array[f_array < threshold] = 0 # w_array[f_array < threshold] = 0 # Weights selected based on chosen features # zscoring weights w_nz = w_array[np.nonzero(w_array)] w_nz = (w_nz - np.mean(w_nz)) / np.std(w_nz) w_array[np.nonzero(w_array)] = w_nz f_matrix = copy_matrix(array_to_matrix(f_array, nan_mask), diagonal_filler=0) w_matrix = copy_matrix(array_to_matrix(w_array, nan_mask), diagonal_filler=0) title = "%s %s" % (med, l_) # f_matrix[f_matrix == 0] = np.nan ################################################################################## condition = med w_aggregate = aggregate_networks(w_matrix, roi_list.T[-2]) names_lr, colors_lr, index_, coords, networks = get_atlas_info("findlab") _, idx = np.unique(networks, return_index=True) ########################################################################## plot_connectomics(