How to use networkx - 10 common examples

To help you get started, we’ve selected a few networkx examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github stellargraph / stellargraph / tests / core / test_stellargraph.py View on Github external
def create_graph_1(is_directed=False, return_nx=False):  g = nx.DiGraph() if is_directed else nx.Graph() g.add_nodes_from([0, 1, 2, 3], label="movie") g.add_nodes_from([4, 5], label="user") g.add_edges_from([(4, 0), (4, 1), (5, 1), (4, 2), (5, 3)], label="rating") if return_nx: return nx.MultiDiGraph(g) if is_directed else nx.MultiGraph(g) return StellarDiGraph(g) if is_directed else StellarGraph(g)
github bboczeng / Nyxar / backtest / BackExchange.py View on Github external
def fetch_balance_in(self, target: str, fee: bool=False) -> float: """ Return the value of current portfolio all in target asset. The transfer rate is computed from the most profitable way possible. If there is no possible way to transfer an asset to the target one, an exception will be raised. Args: target: Name of the target asset fee: If exchange fee is considered when computing the portfolio value. Defaults to False. Returns: Portfolio value """  di_graph = nx.DiGraph() multiplier = 1.0 - self._fee_rate / 100.0 if fee else 1.0 for symbol in self._symbols: quote_name = self._quotes.get_ticker(symbol).quote_name base_name = self._quotes.get_ticker(symbol).base_name di_graph.add_edge(quote_name, base_name, weight=-math.log(multiplier * self.__get_price(symbol, self._sell_price))) di_graph.add_edge(base_name, quote_name, weight=math.log(self.__get_price(symbol, self._buy_price) / multiplier)) balance = 0 for asset in self._total_balance: if self._total_balance[asset]: if asset == target: balance += self._total_balance[asset]
github cytoscape / py2cytoscape / tests / test_util.py View on Github external
def test_networkx_multidigraph_edge_attr(self): print('\n---------- Multi-Digraph Edge Att Test Start -----------\n')  g = nx.MultiDiGraph() g.add_node(1) g.add_node(2) g.add_node(3) g.add_edge(1, 2) g.add_edge(1, 2, attr_dict={'foo': 'bar'}) g.add_edge(1, 2) g.add_edge(1, 3) edges = g.edges(data=True, keys=True) for edge in edges: print(edge) cyjs = util.from_networkx(g) print(json.dumps(cyjs, indent=4)) edge = cyjs['elements']['edges'][0]
github cogeorg / BlackRhino / networkx / algorithms / shortest_paths / generic.py View on Github external
def has_path(G, source, target): """Return *True* if *G* has a path from *source* to *target*. Parameters ---------- G : NetworkX graph source : node Starting node for path target : node Ending node for path """ try:  sp = nx.shortest_path(G, source, target) except nx.NetworkXNoPath: return False return True
github arjun-menon / Distributed-Graph-Algorithms / Minimum-Spanning-Tree / tools.py View on Github external
def edge(n1, n2, w): if w in seen_w: raise Exception("Duplicate edge weights in graph. For a unique MST, all edge weights have to be uniqe as well.") seen_w.update({ w }) return (n1, n2, {'weight':w}) edge_list = list() with open(file, 'r') as f: edge_list = list( edge(ed.split()[0], ed.split()[1], int(ed.split()[2])) for ed in (e.strip() for e in f.readlines() if e.strip() != "") if len(ed.split()) == 3 )  G = nx.Graph() G.add_edges_from(edge_list) self.graph = G return G
github jasperlinthorst / reveal / reveal / chain.py View on Github external
tree=IntervalTree() for fasta in fastas: sample=os.path.basename(fasta) idx.addsample(sample) for i,t in enumerate(fasta_reader(fasta)): name,seq=t f,t=idx.addsequence(seq) tree[f:t]=sample if i==1: logging.error("Can't handle multi-fasta input. Use single fasta file per sequence.") sys.exit(1) idx.construct()  G=nx.DiGraph() G.graph['paths']=idx.samples G.graph['path2id']=dict() G.graph['id2path']=dict() for sid,sample in enumerate(G.graph['paths']): G.graph['path2id'][sample]=sid G.graph['id2path'][sid]=sample k=len(idx.samples) T=idx.T istart=tuple([-1]+[sep for sep in idx.nsep]) #no matches possible at these loci iend=tuple([sep for sep in idx.nsep]+[idx.n-1]) #loci of sentinels, also no matches possible startcoords=tuple([0]+[sep+1 for sep in idx.nsep]) G.add_node(istart,l=0)
github CGATOxford / cgat / prune_multiple_alignment.py View on Github external
if not column[g2]: continue consistency_graph.add_node( g1 ) consistency_graph.add_node( g2 ) if column[g1] != column[g2]: if options.loglevel >= 6: options.stdlog.write("# column %i: inconsistency: %s - %i <---> %s - %i\n" % (c, identifiers[g1],column[g1],identifiers[g2],column[g2])) ic.add( (identifiers[g1],) + tuple(identifiers[g1].split(options.separator)) ) ic.add( (identifiers[g2],) + tuple(identifiers[g2].split(options.separator)) ) is_inconsistent = True else: consistency_graph.add_edge( g1, g2 )  components = networkx.connected_components( consistency_graph ) if options.loglevel >= 6: if is_inconsistent: options.stdlog.write("# column %i: inconsistency for gene %s - %s\n" % (c, str(gene), str(components))) component_sizes.append( len(components) ) # count maximum transripts per gene if not ic: continue max_counts = max( component_sizes ) inconsistent_columns.append( (c, max_counts, ic) ) if options.loglevel >= 1: options.stdlog.write("# found %i inconsistent columns.\n" % len(inconsistent_columns) )
github sorgerlab / indra / indra / statements.py View on Github external
# Draw nodes options = { 'marker': 'o', 's': 200, 'c': [0.85, 0.85, 1], 'facecolor': '0.5', 'lw': 0, } ax = plt.gca() nodelist = list(g) xy = numpy.asarray([pos[v] for v in nodelist]) node_collection = ax.scatter(xy[:, 0], xy[:, 1], **options) node_collection.set_zorder(2) # Draw edges  networkx.draw_networkx_edges(g, pos, arrows=False, edge_color='0.5') # Draw labels edge_labels = {(e[0], e[1]): e[2].get('label') for e in g.edges(data=True)} networkx.draw_networkx_edge_labels(g, pos, edge_labels=edge_labels) node_labels = {n[0]: n[1].get('label') for n in g.nodes(data=True)} for key, label in node_labels.items(): if len(label) > 25: parts = label.split(' ') parts.insert(int(len(parts)/2), '\n') label = ' '.join(parts) node_labels[key] = label networkx.draw_networkx_labels(g, pos, labels=node_labels) ax.get_xaxis().set_visible(False) ax.get_yaxis().set_visible(False) plt.show()
github vpc-ccg / calib / benchmark_aux / draw_cluster.py View on Github external
hamming_avg = float(line[6]) for neighbor in line[7].rstrip().split(','): if len(neighbor) < 1: continue fields = neighbor.split('_') neighbor_id = int(fields[0]) left = int(fields[1]) right = int(fields[2]) dist = int(fields[3]) G.add_edge(node_id, neighbor_id, color=colors[dist],weight=(left+right)/5) plt.figure(figsize=(30,30))  nx.draw(G)#, pos, edges=edges, edge_color=colors, width=weights) plt.savefig(out_file+"_basic.pdf") edges = G.edges() colors = [G[u][v]['color'] for u,v in edges] weights = [G[u][v]['weight'] for u,v in edges] plt.figure(figsize=(30,30)) pos = nx.spring_layout(G) nx.draw(G, pos, edges=edges, edge_color=colors, width=weights, alpha=0.1, node_size=25) plt.savefig(out_file+"_spring.pdf") plt.figure(figsize=(18,18)) pos = nx.spectral_layout(G) nx.draw(G, pos, edges=edges, edge_color=colors, width=weights) plt.savefig(out_file+"_spectral.pdf")
github Oshlack / Lace / Streamline.py View on Github external
#	#print(G.node[b]['Base']) #	seq = seq + G.node[b]['Base'] #	#print(seq) #	path_alternatives.append(seq) #	#Loop through and check the strings match #	for path in path_alternatives: #	if(path == transcripts[key]): print("Found path for: ", key) #Order base in graph #base_order = nx.topological_sort(G) #Will crash if there is a cycle, therefore do a try try: base_order = nx.topological_sort(G) except nx.NetworkXUnfeasible:	print("CYCLESSSSSS!!!!!!")	sys.exit() seq ='' for index in base_order:	seq = seq + G.node[index]['Base'] print(seq) #Save sequence to file superf = open('Super.fasta','w') superf.write('>Super\n') superf.write(seq) superf.close()