Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
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)
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]
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]
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
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
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)
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) )
# 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()
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")
# #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()