def plot_easy_inference(): dg = io.getGraph() pos = gd.getpos(dg) f = myplots.fignum(4, (8,8)) ax = f.add_subplot(111) ax.set_title('putative worm chip network') gd.easy_draw(dg, pos) f.savefig(myplots.figpath('worm_chip_graph.pdf'))
def load(plots = defplots, reset = False): kwargs = dict(reset = reset) edge_set = get_edge_set() g = get_graph(**mem.sr(kwargs)) pos = get_pos(**mem.sr(kwargs)) trips = set([]) for k1 in g: for k2 in g[k1].keys(): for k3 in g[k1].keys(): if g[k2].has_key(k3): trips.add((k2,k3,k1)) tripoints = dict([((e[0],e[1]),pos[e[2]]) for e in trips]) if plots.get('basic_structure', False): f = myplots.fignum(1) ax = f.add_subplot(111) gd.easy_draw(g, pos) f.savefig(myplots.figpath('basic_structure_edges={0}'.format(edge_set))) if plots.get('feed_forward', True): gd.overlay(g,pos,g.edges(), tripoints = tripoints, alphas = dict([(e,.1) for e in g.edges()])) f.savefig(myplots.figpath('feed_forward_edges={0}'.format(edge_set))) if plots.get('degrees' , False): make_degree_plots_0(); maxflow = nx.algorithms.ford_fulkerson(g, 'AVAL','PVPL','weight') imaps = get_array_imaps() nnames = imaps['nnames'] node_stats = dict([(k,{}) for k in nnames]) for k,v in node_stats.iteritems(): v['out_degree'] = len([e for e in g.edges() if e[0] == k]) v['in_degree'] = len([e for e in g.edges() if e[1] == k]) f = myplots.fignum(3, (12,6)) outs = [v['out_degree'] for k, v in node_stats.iteritems()] ins =[v['in_degree'] for k , v in node_stats.iteritems()] raw_data= array([outs,ins]).T make_data_transform(raw_data) data = transform_data(raw_data) kd = make_kdtree(data) k = 5 nn = compute_nns(kd, k) knn= nn['nn'] knn_dists = nn['dists'] dists = compute_dists(data) mean_dists = np.mean(knn_dists[:,1:],1) mean_colors =sqrt(mean_dists[:,newaxis] * [1/np.max(mean_dists), 0,0]) ax = f.add_subplot(121) ax.scatter(data[:,0],data[:,1],s = 15, facecolor = mean_colors, edgecolor = 'none' ) ax.set_xlabel('scaled out degree') ax.set_ylabel('scaled in degree') ax2 = f.add_subplot(122) ax2.imshow(dists, interpolation = 'nearest', aspect = 'auto') ax2.set_title('distance matrix for scaled degrees') f.savefig(myplots.figpath('distances_{0}'.format(edge_set))) return g