Exemple #1
0
                      brain_size=BRAIN_SIZE,)[0]

        # create source growth graph with only topo rule
        Gs['sg_topo'] = sg(N=bc.num_brain_nodes,
                           N_edges=bc.num_brain_edges_directed, L=np.inf,
                           brain_size=BRAIN_SIZE)[0]

        # create purely geometric graph
        Gs['geom'] = sg(N=bc.num_brain_nodes,
                        N_edges=bc.num_brain_edges_directed, L=L, gamma=0,
                        brain_size=BRAIN_SIZE)[0]

        for key, G in Gs.items():

            # calculate nodal efficiency
            efficiency_matrix = metrics_bd.efficiency_matrix(G)
            G.nodal_efficiency = np.sum(efficiency_matrix, axis=1) / (len(G.nodes()) - 1)
            G.counts_nodal_efficiency, G.bins_nodal_efficiency = \
                np.histogram(G.nodal_efficiency, bins=BINS_NODAL_EFFICIENCY)

            graphss[key].append(G)

        if (g_ctr + 1) % 1 == 0:
            print('{} of {} samples completed.'.format(g_ctr + 1, N_GRAPH_SAMPLES))

    # Save file so that we don't have to remake everything
    print('Saving file to disk...')

    save_array = np.array([graphss])
    np.save(SAVE_FILE_NAME, save_array)
    print('File "{}" saved successfully'.format(SAVE_FILE_NAME))
cbar_ax.imshow(np.vstack((jet_grad, jet_grad)), aspect='auto', cmap=cm.jet)

fig.savefig(SAVE_FILE_NAME_IN_OUT, dpi=300)
fig.savefig(SAVE_FILE_NAME_IN_OUT_PNG, dpi=300)

# plot clustering vs degree and nodal efficiency
fig, axs = plt.subplots(1, 2, figsize=(8, 3.75), tight_layout=True,
                        facecolor='white')

cc_full = nx.clustering(G.to_undirected())
deg_full = nx.degree(G.to_undirected())
cc = [cc_full[node] for node in nodes]
deg = [deg_full[node] for node in nodes]

# calculate nodal efficiency
G.efficiency_matrix = metrics_bd.efficiency_matrix(G)
nodal_efficiency = np.sum(G.efficiency_matrix, axis=1) / (len(G.nodes()) - 1)

labels = ('a', 'b')

axs[0].scatter(deg, cc, c=node_ages, cmap=cm.jet, lw=0)
axs[0].set_xlim(0, 150)
axs[0].set_ylim(-0.025, 1.025)
axs[0].set_xlabel('Degree')
axs[0].set_ylabel('Clustering coefficient')
axs[0].locator_params(axis='x', nbins=6)

# Add colorbar
ax0_bbox = axs[0].get_position()
ax0_yCenter = np.mean([ax0_bbox.y0, ax0_bbox.y1])
cbar_ax_rect = (ax0_bbox.xmax - 0.05, ax0_yCenter - 0.065,
Exemple #3
0
        Gs['sg_topo'] = sg(N=bc.num_brain_nodes,
                           N_edges=bc.num_brain_edges_directed,
                           L=np.inf,
                           brain_size=BRAIN_SIZE)[0]

        # create purely geometric graph
        Gs['geom'] = sg(N=bc.num_brain_nodes,
                        N_edges=bc.num_brain_edges_directed,
                        L=L,
                        gamma=0,
                        brain_size=BRAIN_SIZE)[0]

        for key, G in Gs.items():

            # calculate nodal efficiency
            efficiency_matrix = metrics_bd.efficiency_matrix(G)
            G.nodal_efficiency = np.sum(efficiency_matrix,
                                        axis=1) / (len(G.nodes()) - 1)
            G.counts_nodal_efficiency, G.bins_nodal_efficiency = \
                np.histogram(G.nodal_efficiency, bins=BINS_NODAL_EFFICIENCY)

            graphss[key].append(G)

        if (g_ctr + 1) % 1 == 0:
            print('{} of {} samples completed.'.format(g_ctr + 1,
                                                       N_GRAPH_SAMPLES))

    # Save file so that we don't have to remake everything
    print('Saving file to disk...')

    save_array = np.array([graphss])
# create directed ER graph
print('generating directed ER graph...')
G_er = nx.erdos_renyi_graph(bc.num_brain_nodes,
                            bc.p_brain_edge_directed,
                            directed=True)

# create pgpa graph
print('generating model...')
G_pgpa, _, _ = pgpa(N=bc.num_brain_nodes, N_edges=bc.num_brain_edges_directed, L=LENGTH_SCALE)

print('calculating efficiencies')
# calculate local efficiency distribution
for ctr, G in enumerate((G_brain, G_er, G_pgpa)):
    print('for graph {}'.format(ctr))
    G.efficiency = metrics.efficiency_matrix(G)
    G.avg_local_efficiency = G.efficiency.sum(axis=1) / (bc.num_brain_nodes - 1)

# plot histograms of all three efficiency matrices
fig, axs = plt.subplots(1, 2, facecolor=FACE_COLOR, figsize=FIG_SIZE, tight_layout=True)

print('making histograms')
axs[0].hist([G_brain.efficiency[G_brain.efficiency >= 0],
             G_er.efficiency[G_er.efficiency >= 0],
             G_pgpa.efficiency[G_pgpa.efficiency >= 0]],
            bins=20, normed=True, lw=0,
            color=(COLORS['brain'], COLORS['er'], COLORS['pgpa']))

axs[1].hist([G_brain.avg_local_efficiency,
             G_er.avg_local_efficiency,
             G_pgpa.avg_local_efficiency],
Exemple #5
0
fig.savefig(SAVE_FILE_NAME_IN_OUT_PNG, dpi=300)

# plot clustering vs degree and nodal efficiency
fig, axs = plt.subplots(1,
                        2,
                        figsize=(8, 3.75),
                        tight_layout=True,
                        facecolor='white')

cc_full = nx.clustering(G.to_undirected())
deg_full = nx.degree(G.to_undirected())
cc = [cc_full[node] for node in nodes]
deg = [deg_full[node] for node in nodes]

# calculate nodal efficiency
G.efficiency_matrix = metrics_bd.efficiency_matrix(G)
nodal_efficiency = np.sum(G.efficiency_matrix, axis=1) / (len(G.nodes()) - 1)

labels = ('a', 'b')

axs[0].scatter(deg, cc, c=node_ages, cmap=cm.jet, lw=0)
axs[0].set_xlim(0, 150)
axs[0].set_ylim(-0.025, 1.025)
axs[0].set_xlabel('Degree')
axs[0].set_ylabel('Clustering coefficient')
axs[0].locator_params(axis='x', nbins=6)

# Add colorbar
ax0_bbox = axs[0].get_position()
ax0_yCenter = np.mean([ax0_bbox.y0, ax0_bbox.y1])
cbar_ax_rect = (ax0_bbox.xmax - 0.05, ax0_yCenter - 0.065, 0.03, .35)