Example #1
0
sns.set_palette("deep")
sns.set_context("talk", font_scale=1)


def stashfig(name, **kws):
    if SAVEFIGS:
        savefig(name,
                foldername=FNAME,
                fmt=DEFAULT_FMT,
                dpi=DEFUALT_DPI,
                **kws)


GRAPH_VERSION = "2019-09-18-v2"
adj, class_labels, side_labels = load_everything("Gad",
                                                 GRAPH_VERSION,
                                                 return_class=True,
                                                 return_side=True)

adj, inds = get_lcc(adj, return_inds=True)
class_labels = class_labels[inds]
side_labels = side_labels[inds]
n_verts = adj.shape[0]

# %% [markdown]
# #
graph_types = ["Gad", "Gaa", "Gdd", "Gda"]
graph_type_labels = [r"A $\to$ D", r"A $\to$ A", r"D $\to$ D", r"D $\to$ A"]

GRAPH_VERSION = "2019-09-18-v2"
sns.set_context("talk", font_scale=1)
Example #2
0
PTR = True
ONLY_RIGHT = True


def stashfig(name, **kws):
    if SAVEFIGS:
        savefig(name,
                foldername=FNAME,
                fmt=DEFAULT_FMT,
                dpi=DEFUALT_DPI,
                **kws)


adj, class_labels, side_labels, skeleton_labels = load_everything(
    "Gad",
    version=BRAIN_VERSION,
    return_keys=["Merge Class", "Hemisphere"],
    return_ids=True,
)

# select the right hemisphere
if ONLY_RIGHT:
    side = "right hemisphere"
    right_inds = np.where(side_labels == "R")[0]
    adj = adj[np.ix_(right_inds, right_inds)]
    class_labels = class_labels[right_inds]
    skeleton_labels = skeleton_labels[right_inds]
else:
    side = "full brain"

# sort by number of synapses
degrees = adj.sum(axis=0) + adj.sum(axis=1)
Example #3
0
    nonzero_inds = np.nonzero(adj.ravel())
    x = xs.ravel()[nonzero_inds]
    y = ys.ravel()[nonzero_inds]
    weights = adj.ravel()[nonzero_inds]
    return list(x), list(y), list(weights)


#%%
GRAPH_TYPES = ["Gad", "Gaa", "Gdd", "Gda"]
GRAPH_VERSION = "2020-01-14"
# Sort the graph appropriately first
graph_type = "G"

G_adj, class_labels, side_labels, pair_labels, id_labels = load_everything(
    graph_type,
    return_keys=["Merge Class", "Hemisphere", "Pair"],
    return_ids=True,
    version=GRAPH_VERSION,
)

side_class_labels = []
for s, c in zip(side_labels, class_labels):
    side_class_labels.append(str(s + c))
side_class_labels = np.array(side_class_labels)

sort_labels = class_labels  # the labels on which to sort the graph into blocks
sort_inds = _sort_inds(G_adj, sort_labels, side_labels, True)
G_adj = _sort_graph(G_adj, sort_labels, side_labels, True)
sort_labels = sort_labels[sort_inds]
id_labels = id_labels[sort_inds]
pair_labels = pair_labels[sort_inds]
# %% [markdown]
# # Try on real data

print("Trying on real data")


def unshuffle(shuffle_inds, perm_inds):
    pred_inds = np.empty_like(shuffle_inds)
    pred_inds[shuffle_inds[perm_inds]] = range(len(shuffle_inds))
    return pred_inds


GRAPH_VERSION = "2019-09-18-v2"
adj, class_labels, side_labels = load_everything(
    "Gad", GRAPH_VERSION, return_keys=["Class", "Hemisphere"]
)

adj, inds = get_lcc(adj, return_inds=True)
class_labels = class_labels[inds]
side_labels = side_labels[inds]

n_verts = adj.shape[0]

name_map = {" mw right": "R", " mw left": "L"}
side_labels = np.array(itemgetter(*side_labels)(name_map))

name_map = {
    "CN": "Unk",
    "DANs": "MBIN",
    "KCs": "KC",
Example #5
0
    pred_known_labels = pred_labels[known_inds]
    ari = adjusted_rand_score(true_known_labels, pred_known_labels)
    return ari


# Set up plotting constants
plt.style.use("seaborn-white")
sns.set_palette("deep")
sns.set_context("talk", font_scale=1)

# %% [markdown]
# # Load the data

adj, class_labels, side_labels, skeleton_labels = load_everything(
    "Gad",
    version=BRAIN_VERSION,
    return_class=True,
    return_side=True,
    return_ids=True)

# select the right hemisphere
if ONLY_RIGHT:
    side = "right hemisphere"
    right_inds = np.where(side_labels == " mw right")[0]
    adj = adj[np.ix_(right_inds, right_inds)]
    class_labels = class_labels[right_inds]
    skeleton_labels = skeleton_labels[right_inds]
else:
    side = "full brain"

# sort by number of synapses
degrees = adj.sum(axis=0) + adj.sum(axis=1)
    data=scatter_df,
    hue="Labels",
    palette=sns.color_palette("Set1", scatter_df.Labels.nunique()),
)
plt.title("Signal flow metric on an imperfect feedforward network")
plt.show()

# %% [markdown]
# ## Now, look at the output for this signal flow metric on the A $\rightarrow$ D graph
# Here I am just using labels for MB and PNs, as well as indicating side with the
# direction of the marker

# Load the data
GRAPH_VERSION = "2019-09-18-v2"
adj, class_labels, side_labels = load_everything("Gad",
                                                 GRAPH_VERSION,
                                                 return_class=True,
                                                 return_side=True)

adj, inds = get_lcc(adj, return_inds=True)
class_labels = class_labels[inds]
side_labels = side_labels[inds]

name_map = {" mw right": "R", " mw left": "L"}
side_labels = np.array(itemgetter(*side_labels)(name_map))

name_map = {
    "CN": "Unk",
    "DANs": "MBIN",
    "KCs": "KC",
    "LHN": "Unk",
    "LHN; CN": "Unk",
Example #7
0

def stashfig(name, **kws):
    if SAVEFIGS:
        savefig(name, foldername=FNAME, fmt=DEFAULT_FMT, dpi=DEFUALT_DPI, **kws)


# Set up plotting constants
palette = "deep"
plt.style.use("seaborn-white")
sns.set_palette(palette)
sns.set_context("talk", font_scale=1)

# Load data
adj, class_labels, side_labels, id_labels = load_everything(
    "G", version=BRAIN_VERSION, return_class=True, return_side=True, return_ids=True
)

side_map = {" mw right": "R", " mw left": "L"}
side_labels = np.array(itemgetter(*side_labels)(side_map))


degrees = adj.sum(axis=0) + adj.sum(axis=1)
sort_inds = np.argsort(degrees)[::-1]
og_class_labels = class_labels[sort_inds]
adj = adj[np.ix_(sort_inds, sort_inds)]

name_map = {
    "CN": "Unknown",
    "DANs": "DAN",
    "KCs": "KC",
Example #8
0
                foldername=FNAME,
                fmt=DEFAULT_FMT,
                dpi=DEFUALT_DPI,
                **kws)


# %% [markdown]
# #
sns.set_context("talk", font_scale=1.2)

fig, axs = plt.subplots(4, 5, figsize=(20, 20))
for i in range(len(GRAPH_TYPES)):
    g_type = GRAPH_TYPES[i]
    g_type_label = GRAPH_TYPE_LABELS[i]

    adj = load_everything(g_type, version=BRAIN_VERSION)

    in_sum = np.sort(adj.sum(axis=0))
    out_sum = np.sort(adj.sum(axis=1))

    ax = sns.scatterplot(x=range(len(in_sum)),
                         y=in_sum + 1,
                         s=10,
                         linewidth=0,
                         ax=axs[0, i])
    ax.set(yscale="log")
    ax.set_xticklabels([])

    ax = sns.scatterplot(x=range(len(out_sum)),
                         y=out_sum + 1,
                         s=10,
Example #9
0
# %% [markdown]
# #
from src.data import load_networkx, load_everything
import networkx as nx
from graspy.utils import binarize, symmetrize

graph = load_networkx("G")

nx.algorithms.diameter(graph)

# %% [markdown]
# #
adj = load_everything("G")
adj = symmetrize(adj, "avg")
graph = nx.from_numpy_array(adj)
nx.algorithms.diameter(graph)
# %% [markdown]
# #
adj = load_everything("Gad")
adj = symmetrize(adj, "avg")
graph = nx.from_numpy_array(adj)
nx.algorithms.diameter(graph)