def test_build_pmid_inclusion_filter(self): """Test getting a sub-graph by a single PubMed identifier.""" a, b, c, d = [protein(namespace='test', name=n()) for _ in range(4)] p1, p2, p3, p4 = n(), n(), n(), n() graph = BELGraph() keyword, url = n(), n() graph.namespace_url[keyword] = url graph.add_increases(a, b, n(), citation=p1) graph.add_increases(a, b, n(), citation=p2) graph.add_increases(b, c, n(), citation=p1) graph.add_increases(b, c, n(), citation=p3) graph.add_increases(c, d, n(), citation=p3) subgraph = get_subgraph_by_pubmed(graph, p1) self.assertIsInstance(subgraph, BELGraph) self.assert_all_nodes_are_base_entities(subgraph) self.assertIn(keyword, subgraph.namespace_url) self.assertEqual(url, subgraph.namespace_url[keyword]) self.assertIn(a, subgraph) self.assertIn(b, subgraph) self.assertIn(c, subgraph) self.assertNotIn(d, subgraph) empty_subgraph = get_subgraph_by_pubmed(graph, p4) self.assertIn(keyword, subgraph.namespace_url) self.assertEqual(url, subgraph.namespace_url[keyword]) self.assertEqual(0, empty_subgraph.number_of_nodes())
def test_build_pmid_set_inclusion_filter(self): """Test getting a sub-graph by a set of PubMed identifiers.""" a, b, c, d, e, f = [protein(namespace='test', name=n()) for _ in range(6)] p1, p2, p3, p4, p5, p6 = n(), n(), n(), n(), n(), n() graph = BELGraph() keyword, url = n(), n() graph.namespace_url[keyword] = url graph.add_increases(a, b, n(), citation=p1) graph.add_increases(a, b, n(), citation=p2) graph.add_increases(b, c, n(), citation=p1) graph.add_increases(b, c, n(), citation=p3) graph.add_increases(c, d, n(), citation=p3) graph.add_increases(e, f, n(), citation=p4) subgraph = get_subgraph_by_pubmed(graph, [p1, p4]) self.assertIn(keyword, subgraph.namespace_url) self.assertEqual(url, subgraph.namespace_url[keyword]) self.assert_in_graph(a, subgraph) self.assert_in_graph(b, subgraph) self.assert_in_graph(c, subgraph) self.assert_not_in_graph(d, subgraph) self.assert_in_graph(e, subgraph) self.assert_in_graph(f, subgraph) empty_subgraph = get_subgraph_by_pubmed(graph, [p5, p6]) self.assertIn(keyword, subgraph.namespace_url) self.assertEqual(url, subgraph.namespace_url[keyword]) self.assertEqual(0, empty_subgraph.number_of_nodes())