def setUp(self): self.graph = egf_graph.copy() self.original_number_nodes = self.graph.number_of_nodes() self.original_number_edges = self.graph.number_of_edges() self.manager = MockQueryManager() self.network_id = self.manager.insert_graph(self.graph).id build_delete_node_by_hash(self.manager) build_expand_node_neighborhood_by_hash(self.manager)
class TestBoundMutation(unittest.TestCase): """Random test for mutation functions.""" def setUp(self): self.graph = egf_graph.copy() self.original_number_nodes = self.graph.number_of_nodes() self.original_number_edges = self.graph.number_of_edges() self.manager = MockQueryManager() self.network_id = self.manager.insert_graph(self.graph).id build_delete_node_by_hash(self.manager) build_expand_node_neighborhood_by_hash(self.manager) def tearDown(self): """Remove definitions of the built functions""" del mapped['expand_node_neighborhood_by_hash'] del mapped['delete_node_by_hash'] def test_functions_registered(self): self.assertIn('delete_node_by_hash', mapped) self.assertIn('expand_node_neighborhood_by_hash', mapped) def check_original_unchanged(self): self.assertEqual(self.original_number_nodes, self.graph.number_of_nodes(), msg='original graph nodes should remain unchanged') self.assertEqual(self.original_number_edges, self.graph.number_of_edges(), msg='original graph edges should remain unchanged') def test_mock_contents(self): self.assertIn(nfkb_complex, self.graph, msg='Graph missing NFKB complex') self.assertIn(rela, self.graph, msg='Graph missing RELA') self.assertIn(nfkb_complex.md5, self.manager.hash_to_node, msg='NFKB is unindexed') self.assertIn(rela.md5, self.manager.hash_to_node, msg='RELA is unindexed') self.assertIn(nfkb_complex, self.manager.hash_to_node.values(), msg='NFKB is unindexed') self.assertIn(rela, self.manager.hash_to_node.values(), msg='RELA is unindexed') def test_bound_mutation(self): """Test when a node is deleted then re-expanded.""" pipeline = Pipeline() pipeline.append('delete_node_by_hash', nfkb_complex.md5) pipeline.append('expand_node_neighborhood_by_hash', rela.md5) result = pipeline.run(self.graph) self.check_original_unchanged() self.assertEqual(self.original_number_nodes, result.number_of_nodes()) self.assertGreater(self.original_number_edges, result.number_of_edges())
def setUp(self): """Set up each test with a mock query manager.""" self.manager = MockQueryManager() self.query = Query()
def setUp(self): """Setup each test with an empty mock query manager.""" self.manager = MockQueryManager()
class QueryTest(unittest.TestCase): """Test the query""" def setUp(self): """Setup each test with an empty mock query manager.""" self.manager = MockQueryManager() def test_pipeline(self): graph = egf_graph.copy() enrich_protein_and_rna_origins(graph) self.assertEqual( 32, # 10 protein nodes already there + complex + bp + 2*10 (genes and rnas) graph.number_of_nodes()) # 6 already there + 5 complex hasComponent edges + new 2*10 edges self.assertEqual(31, graph.number_of_edges()) network = self.manager.insert_graph(graph) pipeline = Pipeline() pipeline.append(collapse_to_genes) query = Query(network_ids=[network.id], pipeline=pipeline) result_graph = query.run(self.manager) self.assertEqual(12, result_graph.number_of_nodes() ) # same number of nodes than there were self.assertEqual(11, result_graph.number_of_edges() ) # same number of edges than there were def test_pipeline_2(self): graph = egf_graph.copy() network = self.manager.insert_graph(graph) network_id = network.id query = Query(network_ids=[network_id]) query.append_seeding_neighbors(vcp) query.append_pipeline(get_subgraph_by_annotation_value, 'Species', '9606') result = query.run(self.manager) self.assertIsNotNone(result, msg='Query returned none') self.assertEqual(3, result.number_of_nodes()) def test_query_multiple_networks(self): sialic_acid_graph_id = self.manager.insert_graph( sialic_acid_graph.copy()).id egf_graph_id = self.manager.insert_graph(egf_graph.copy()).id query = Query() query.append_network(sialic_acid_graph_id) query.append_network(egf_graph_id) query.append_seeding_neighbors([syk]) query.append_pipeline(enrich_protein_and_rna_origins) result = query.run(self.manager) self.assertIsNotNone(result, msg='Query returned none') self.assertIn(shp1, result) self.assertIn(shp2, result) self.assertIn(trem2, result) self.assertIn(dap12, result) self.assertEqual(15, result.number_of_nodes()) self.assertEqual(14, result.number_of_edges()) def test_get_subgraph_by_annotation_value(self): graph = homology_graph.copy() result = get_subgraph_by_annotation_value(graph, 'Species', '10090') self.assertIsNotNone(result, msg='Query returned none') self.assertIsInstance(result, BELGraph) self.assertLess(0, result.number_of_nodes()) self.assertIn(mouse_mapk1_protein, result, msg='nodes:\n{}'.format(list(map(repr, graph)))) self.assertIn(mouse_csf1_protein, result) self.assertEqual(2, result.number_of_nodes()) self.assertEqual(1, result.number_of_edges()) def test_seeding_1(self): test_network_1 = self.manager.insert_graph(homology_graph.copy()) query = Query(network_ids=[test_network_1.id]) query.append_seeding_neighbors([mouse_csf1_rna, mouse_mapk1_rna]) result = query.run(self.manager) self.assertIsNotNone(result, msg='Query returned none') self.assertIsInstance(result, BELGraph) self.assertIn(mouse_mapk1_rna, result) self.assertIn(mouse_csf1_rna, result) self.assertIn(mouse_mapk1_protein, result) self.assertIn(mouse_csf1_protein, result) self.assertEqual(6, result.number_of_nodes()) self.assertEqual(4, result.number_of_edges()) def test_seeding_with_pipeline(self): test_network_1 = self.manager.insert_graph(sialic_acid_graph.copy()) query = Query(network_ids=[test_network_1.id]) query.append_seeding_neighbors([trem2, dap12, shp2]) query.append_pipeline(expand_nodes_neighborhoods, [trem2, dap12, shp2]) result = query.run(self.manager) self.assertIsNotNone(result, msg='Query returned none') self.assertIsInstance(result, BELGraph) self.assertIn(trem2, result) self.assertIn(dap12, result) self.assertIn(shp2, result) self.assertIn(syk, result) self.assertIn(cd33_phosphorylated, result) self.assertEqual(5, result.number_of_nodes()) self.assertEqual(4, result.number_of_edges()) def test_query_multiple_networks_with_api(self): test_network_1 = self.manager.insert_graph(homology_graph.copy()) pipeline = Pipeline() pipeline.append(expand_node_neighborhood, mouse_mapk1_protein) query = Query(network_ids=[test_network_1.id], pipeline=pipeline) query.append_seeding_annotation('Species', {'10090'}) result = query.run(self.manager) self.assertIsNotNone(result, msg='Query returned none') self.assertEqual(3, result.number_of_nodes()) self.assertIn(mouse_mapk1_protein, result) self.assertIn(mouse_csf1_protein, result) self.assertEqual(2, result.number_of_edges())
def test_add_graph(self): """Test adding a graph with insert_graph.""" manager = MockQueryManager() graph = egf_graph.copy() manager.insert_graph(graph) self.assertEqual(1, manager.count_networks())
def test_make_with_graph(self): """Test counting networks in the mock query manager.""" manager = MockQueryManager(graphs=[egf_graph]) self.assertEqual(1, manager.count_networks())
def test_make(self): """Test instantiating the mock query manager.""" manager = MockQueryManager() self.assertEqual(0, manager.count_networks())