Exemple #1
0
    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"])
Exemple #2
0
    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'])
Exemple #3
0
    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'])
Exemple #4
0
    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)))
Exemple #5
0
    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)))
Exemple #6
0
    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)
Exemple #9
0
 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 nx.betweenness_centrality(nx_graph)
Exemple #13
0
 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'))