def test_networkx_roundtrip(self): print("\n---------- NetworkX Data Roundtrip Test Start -----------\n") g = nx.newman_watts_strogatz_graph(100, 3, 0.5) nodes = g.nodes() edges = g.edges() # Add some attributes g.graph["name"] = "original" g.graph["density"] = nx.density(g) nx.set_node_attributes(g, "betweenness", nx.betweenness_centrality(g)) nx.set_node_attributes(g, "degree", nx.degree(g)) nx.set_node_attributes(g, "closeness", nx.closeness_centrality(g)) nx.set_edge_attributes(g, "eb", nx.edge_betweenness(g)) cyjs1 = util.from_networkx(g) g2 = util.to_networkx(cyjs1) self.assertEqual(len(g2.nodes()), len(nodes)) self.assertEqual(len(g2.edges()), len(edges)) edge_set = set(list(map(lambda x: (int(x[0]), int(x[1])), g2.edges()))) self.assertEqual(0, len(edge_set.difference(set(edges)))) node_original = g.node[1] node_generated = g2.node["1"] print(node_original) print(node_generated) self.assertEqual(node_original["degree"], node_generated["degree"]) self.assertEqual(node_original["betweenness"], node_generated["betweenness"]) self.assertEqual(node_original["closeness"], node_generated["closeness"])
def test_networkx_roundtrip(self): print('\n---------- NetworkX Data Roundtrip Test Start -----------\n') g = nx.newman_watts_strogatz_graph(100, 3, 0.5) nodes = g.nodes() edges = g.edges() # Add some attributes g.graph['name'] = 'original' g.graph['density'] = nx.density(g) nx.set_node_attributes(g, 'betweenness', nx.betweenness_centrality(g)) nx.set_node_attributes(g, 'degree', nx.degree(g)) nx.set_node_attributes(g, 'closeness', nx.closeness_centrality(g)) nx.set_edge_attributes(g, 'eb', nx.edge_betweenness(g)) cyjs1 = util.from_networkx(g) g2 = util.to_networkx(cyjs1) self.assertEqual(len(g2.nodes()), len(nodes)) self.assertEqual(len(g2.edges()), len(edges)) edge_set = set(list(map(lambda x: (int(x[0]), int(x[1])), g2.edges()))) self.assertEqual(0, len(edge_set.difference(set(edges)))) node_original = g.node[1] node_generated = g2.node['1'] print(node_original) print(node_generated) self.assertEqual(node_original['degree'], node_generated['degree']) self.assertEqual(node_original['betweenness'], node_generated['betweenness']) self.assertEqual(node_original['closeness'], node_generated['closeness'])
def test_networkx_parse_network(self): f = open(self.cur_dir + '/data/galFiltered.json', 'r') jsonData = json.load(f) j_nodes = jsonData['elements']['nodes'] j_edges = jsonData['elements']['edges'] print('\n---------- JSON Loading Test Start -----------\n') # print(json.dumps(jsonData, indent=4)) g = util.to_networkx(jsonData) nodes = g.nodes() edges = g.edges() self.assertEqual('Yeast Network Sample', g.graph['name']) self.assertEqual('Sample network created by JSON export.', g.graph['description']) self.assertEqual(4, len(g.graph['numberList'])) self.assertEqual(len(j_nodes), len(nodes)) self.assertEqual(len(j_edges), len(edges)) edge_set = set(list(map(lambda x: (int(x[0]), int(x[1])), edges))) self.assertEqual(0, len(compare_edge_sets(edge_set, j_edges)))
def test_networkx_parse_network(self): f = open(self.cur_dir + "/data/galFiltered.json", "r") jsonData = json.load(f) j_nodes = jsonData["elements"]["nodes"] j_edges = jsonData["elements"]["edges"] print("\n---------- JSON Loading Test Start -----------\n") # print(json.dumps(jsonData, indent=4)) g = util.to_networkx(jsonData) nodes = g.nodes() edges = g.edges() self.assertEqual("Yeast Network Sample", g.graph["name"]) self.assertEqual("Sample network created by JSON export.", g.graph["description"]) self.assertEqual(4, len(g.graph["numberList"])) self.assertEqual(len(j_nodes), len(nodes)) self.assertEqual(len(j_edges), len(edges)) edge_set = set(list(map(lambda x: (int(x[0]), int(x[1])), edges))) self.assertEqual(0, len(compare_edge_sets(edge_set, j_edges)))
def single_otu_result(): if request.method == 'POST': if request.form['name']: try: genome = session.query(Genome).filter_by( name=request.form['name']).one() except NoResultFound: flash("OTU ID %s not in database." % request.form['name']) return redirect(url_for('welcome_page')) metab_net_json = json.loads(genome.metab_net) metab_net = cy.to_networkx(metab_net_json) metab_net, ss = mna.determine_seed_set(metab_net) seeds = [j for i in list(ss.values()) for j in i] return render_template('singleOTUResult.html', genome=genome, taxa_str=pretty_taxa(genome.taxonomy), seeds=sorted(seeds), eles=json.dumps(metab_net_json['elements'])) else: flash("No OTU ID entered for single analysis.") return redirect(url_for('welcome_page')) else: flash("How did you get here to single?") return redirect(url_for('welcome_page'))
def calculate(self, graph, params): nx_graph = util.to_networkx(graph) return nx.betweenness_centrality(nx_graph)
def cyjs_to_networkx(cyjs): return util.to_networkx(cyjs)
def calculate(self, graph, params): nx_graph = util.to_networkx(graph) return nx.clustering(nx_graph)
def calculate(self, graph, params): nx_graph = util.to_networkx(graph) return nx.pagerank_scipy(nx_graph)
def calculate(self, graph, params): nx_graph = util.to_networkx(graph) return util.from_networkx(nx_graph)
def pair_otu_result(): if request.method == 'POST': if request.form['name1'] and request.form['name2']: # get genomes from database exception = False genome1 = None try: genome1 = session.query(Genome).filter_by( name=request.form['name1']).one() except NoResultFound: flash("OTU %s not found in the database." % request.form['name1']) exception = True genome2 = None try: genome2 = session.query(Genome).filter_by( name=request.form['name2']).one() except NoResultFound: flash("OTU %s not found in the database." % request.form['name2']) exception = True if exception: return redirect(url_for('welcome_page')) # get tree data tip2tip = get_tip2tip(genome1.name, genome2.name) # get data and determine seeds metab_net1_json = json.loads(genome1.metab_net) metab_net1 = cy.to_networkx(metab_net1_json) metab_net2_json = json.loads(genome2.metab_net) metab_net2 = cy.to_networkx(metab_net2_json) metab_net1, ss1 = mna.determine_seed_set(metab_net1) metab_net2, ss2 = mna.determine_seed_set(metab_net2) seeds1 = set([j for i in list(ss1.values()) for j in i]) seeds2 = set([j for i in list(ss2.values()) for j in i]) # analyze seeds and determine metabolic characteristics seeds1_only = seeds1 - seeds2 if seeds1_only == set(): seeds1_only = [None] seeds2_only = seeds2 - seeds1 if seeds2_only == set(): seeds2_only = [None] shared_seeds = seeds1 & seeds2 otu1_seeds_otu2_complement = seeds1_only & set(metab_net2.nodes()) otu2_seeds_otu1_complement = seeds2_only & set(metab_net1.nodes()) net1net2_bss, net2net1_bss = mna.calculate_bss( metab_net1, ss1, metab_net2, ss2) net1net2_mci, net2net1_mci = mna.calculate_mci( metab_net1, ss1, metab_net2, ss2) # render page return render_template( 'pairOTUResult.html', genome1=genome1, taxa_str1=pretty_taxa(genome1.taxonomy), seeds1=sorted(seeds1_only), eles1=json.dumps(metab_net1_json['elements']), genome2=genome2, taxa_str2=pretty_taxa(genome2.taxonomy), seeds2=sorted(seeds2_only), eles2=json.dumps(metab_net2_json['elements']), tip2tip=round(tip2tip, 2), shared_seeds=sorted(shared_seeds), net1net2_bss=round(net1net2_bss, 2), net2net1_bss=round(net2net1_bss, 2), net1net2_mci=round(net1net2_mci, 2), net2net1_mci=round(net2net1_mci, 2), otu1_seeds_otu2_complement=otu1_seeds_otu2_complement, otu2_seeds_otu1_complement=otu2_seeds_otu1_complement) else: flash("Need to enter two OTU ID's to compare OTUs") return redirect(url_for('welcome_page')) else: flash("How did you get to pairs then?") return redirect(url_for('welcome_page'))