def estOE(d): gt = d['gt']['graph'] gt = bfu.undersample(gt, 1) e = gk.OCE(d['estimate'], gt) N = np.double(len(gk.edgelist(gt))) +\ np.double(len(gk.bedgelist(gt))) return (e['directed'][0] + e['bidirected'][0]) / N
def estOE(d): gt= d['gt']['graph'] gt=bfu.undersample(gt,1) e = gk.OCE(d['estimate'],gt) N = np.double(len(gk.edgelist(gt))) +\ np.double(len(gk.bedgelist(gt))) return (e['directed'][0]+e['bidirected'][0])/N
def estCOE(d): gt = d['gt']['graph'] gt = bfu.undersample(gt, 1) e = gk.OCE(d['estimate'], gt) n = len(gt) N = np.double(n**2+(n-1)**2/2.0\ -len(gk.edgelist(gt)) -len(gk.bedgelist(gt))) return (e['directed'][1] + e['bidirected'][1]) / N
def estCOE(d): gt= d['gt']['graph'] gt=bfu.undersample(gt,1) e = gk.OCE(d['estimate'],gt) n = len(gt) N = np.double(n**2+(n-1)**2/2.0\ -len(gk.edgelist(gt)) -len(gk.bedgelist(gt))) return (e['directed'][1]+e['bidirected'][1])/N
def checkvedge(v, g2): """ Nodes to check to merge the virtual nodes of v ( b<-a->c ) """ l = gk.bedgelist(g2) if (v[1],v[2]) in l: l = single_nodes(v,g2) + checkbedges(v,l,g2) for n in v: if n in g2[n]: l.append((n,n)) else: l = checkbedges(v,l,g2) return list(set(l))
def vedgelist(g, pathtoo=False): """ Return a list of tuples for edges of g and forks a superugly organically grown function that badly needs refactoring """ l = [] el = gk.edgelist(g) bl = gk.bedgelist(g) if pathtoo: l.extend(make_longpaths(g,el)) l2,r = make_allforks_and_rest(g,el,bl,dofullforks=True) l.extend(l2) A, singles = makechains(r) if singles: B, singles = makesinks(singles) else: B, singles = [], [] l = longpaths_pick(l)+threedges_pick(l) + A + B + singles return l
def udensity(g): return (len(gk.edgelist(g))+len(gk.bedgelist(g))/2.)/np.double(len(g)**2 + len(g)*(len(g)-1)/2.) def esig(l,n):