def test_composite(self): il23 = NamedComplexAbundance(namespace='GO', name='interleukin-23 complex') il6 = Protein(namespace='HGNC', name='IL6') node_data = CompositeAbundance([il23, il6]) self.graph.add_node_from_data(node_data) self.assertIn(node_data, self.graph) self.assertEqual(3, self.graph.number_of_nodes()) self.assertIn(il6, self.graph, msg='Nodes:\n'.format('\n'.join(map(str, self.graph)))) self.assertIn(il23, self.graph) self.assertEqual(2, self.graph.number_of_edges()) self.assertIn(node_data, self.graph[il6]) edges = list(self.graph[il6][node_data].values()) self.assertEqual(1, len(edges)) data = edges[0] self.assertEqual(PART_OF, data[RELATION]) self.assertIn(node_data, self.graph[il23]) edges = list(self.graph[il23][node_data].values()) self.assertEqual(1, len(edges)) data = edges[0] self.assertEqual(PART_OF, data[RELATION])
def test_composite(self, mock): interleukin_23_complex = NamedComplexAbundance( 'GO', 'interleukin-23 complex') il6 = hgnc(name='IL6') interleukin_23_and_il6 = CompositeAbundance( [interleukin_23_complex, il6]) self._help_reconstitute(interleukin_23_and_il6, 3, 2)
def as_bel(self) -> Optional[BaseEntity]: """Get BEL thing.""" if self.db == 'ComplexPortal': return NamedComplexAbundance( namespace='complexportal', name=self.db_symbol, identifier=self.db_id, )
def as_bel(self) -> Optional[BaseEntity]: """Convert this term to a BEL node.""" if self.namespace == 'biological_process': return gobp( name=self.name, identifier=self.go_id, ) if self.namespace == 'cellular_component': if self.is_complex: return NamedComplexAbundance( namespace='go', name=self.name, identifier=self.go_id, ) else: return Abundance( namespace='go', name=self.name, identifier=self.go_id, )
def node_to_bel(node: Dict, graph, hgnc_manager: HgncManager, chebi_manager: ChebiManager, species) -> BaseEntity: """Convert node dictionary to BEL node object.""" node_types = node['entity_type'] identifier, name, namespace = get_valid_node_parameters( node, hgnc_manager, chebi_manager, species) members = set() if namespace == 'hgnc_multiple_entry': return composite_abundance(process_multiple_proteins(identifier)) elif 'Protein' in node_types: return protein(namespace=namespace.upper(), name=name, identifier=identifier) elif 'Dna' in node_types: return gene(namespace=namespace.upper(), name=name, identifier=identifier) elif 'Rna' in node_types: return rna(namespace=namespace.upper(), name=name, identifier=identifier) elif 'SmallMolecule' in node_types: return abundance(namespace=namespace.upper(), name=name, identifier=identifier) elif 'PhysicalEntity' in node_types: return abundance(namespace=namespace.upper(), name=name, identifier=identifier) elif 'Complex' in node_types: complex_components = node.get('complex_components') if complex_components: for component in complex_components: bel_node = node_to_bel(component, graph, hgnc_manager, chebi_manager, species) members.add(bel_node) if members: return complex_abundance(name=node.get('display_name'), members=members, identifier=identifier, namespace=namespace.upper()) else: return NamedComplexAbundance(name=node.get('display_name'), identifier=identifier, namespace=namespace.upper()) elif 'Pathway' in node_types: bioprocess_node = bioprocess(identifier=identifier, name=name, namespace=namespace.upper()) graph.add_node_from_data(bioprocess_node) return bioprocess_node else: log.warning('Entity type not recognized', node_types)
def test_named_complex_abundance(self): node = NamedComplexAbundance(namespace='SCOMP', name='Calcineurin Complex') self.assertEqual('complex(SCOMP:"Calcineurin Complex")', str(node))
adgrb1 = Protein(namespace='HGNC', name='ADGRB1') adgrb2 = Protein(namespace='HGNC', name='ADGRB2') adgrb_complex = ComplexAbundance([adgrb1, adgrb2]) achlorhydria = Pathology(namespace='MESHD', name='Achlorhydria') akt1_rna = akt1.get_rna() akt1_gene = akt1_rna.get_gene() akt_methylated = akt1_gene.with_variants(GeneModification('Me')) akt1_phe_508_del = akt1_gene.with_variants(Hgvs('p.Phe508del')) cftr = hgnc('CFTR') cftr_protein_unspecified_variant = cftr.with_variants(HgvsUnspecified()) cftr_protein_phe_508_del = cftr.with_variants(Hgvs('p.Phe508del')) adenocarcinoma = Pathology('MESHD', 'Adenocarcinoma') interleukin_23_complex = NamedComplexAbundance('GO', 'interleukin-23 complex') oxygen_atom = Abundance(namespace='CHEBI', name='oxygen atom') hydrogen_peroxide = Abundance('CHEBI', 'hydrogen peroxide') tmprss2_gene = Gene('HGNC', 'TMPRSS2') tmprss2_erg_gene_fusion = GeneFusion( partner_5p=tmprss2_gene, range_5p=EnumeratedFusionRange('c', 1, 79), partner_3p=Gene('HGNC', 'ERG'), range_3p=EnumeratedFusionRange('c', 312, 5034) ) bcr_jak2_gene_fusion = GeneFusion( partner_5p=Gene('HGNC', 'BCR'),
Abundance, BiologicalProcess, ComplexAbundance, NamedComplexAbundance, Pathology, Protein, ProteinModification, ) from pybel.language import activity_mapping from pybel.testing.constants import test_jgif_path from tests.constants import TestGraphMixin logging.getLogger('pybel.parser').setLevel(20) calcium = Abundance('SCHEM', 'Calcium') calcineurin_complex = NamedComplexAbundance('SCOMP', 'Calcineurin Complex') foxo3 = Protein('HGNC', 'FOXO3') tcell_proliferation = BiologicalProcess( 'GO', 'CD8-positive, alpha-beta T cell proliferation') il15 = Protein('HGNC', 'IL15') il2rg = Protein('MGI', 'Il2rg') jgif_expected_nodes = { calcium, calcineurin_complex, foxo3, tcell_proliferation, il15, il2rg, Protein('HGNC', 'CXCR6'), Protein('HGNC', 'IL15RA'), BiologicalProcess('GO', 'lymphocyte chemotaxis'),
def _assoc(y): return {RELATION: ASSOCIATION, 'association_type': y} a1 = Abundance('CHEBI', '1') p1 = Protein('HGNC', '1') pf1 = Protein('INTERPRO', '1') d1 = Pathology('MESH', '1') b1 = BiologicalProcess('GO', '1') b2 = BiologicalProcess('GO', '2') m1 = MicroRna('MIRBASE', '1') r1 = Rna('HGNC', '1') r2 = Rna('HGNC', '2') nca1 = NamedComplexAbundance('FPLX', '1') pop1 = Population('taxonomy', '1') p2 = Protein('HGNC', identifier='9236') p3 = Protein('HGNC', identifier='9212') r3 = p3.get_rna() g3 = r3.get_gene() c1 = ComplexAbundance([p2, g3]) c2 = ComplexAbundance([p1, p2]) c3 = ComplexAbundance([a1, p2]) converters_true_list = [ (PartOfNamedComplexConverter, p1, nca1, _rel(PART_OF), ('HGNC:1', 'partOf', 'FPLX:1')), (SubprocessPartOfBiologicalProcessConverter, b1, b2, _rel(PART_OF),
adgrb1 = Protein(namespace='HGNC', name='ADGRB1') adgrb2 = Protein(namespace='HGNC', name='ADGRB2') adgrb_complex = ComplexAbundance([adgrb1, adgrb2]) achlorhydria = Pathology(namespace='MESHD', name='Achlorhydria') akt1_rna = akt1.get_rna() akt1_gene = akt1_rna.get_gene() akt_methylated = akt1_gene.with_variants(GeneModification('Me')) akt1_phe_508_del = akt1_gene.with_variants(Hgvs('p.Phe508del')) cftr = hgnc(name='CFTR') cftr_protein_unspecified_variant = cftr.with_variants(HgvsUnspecified()) cftr_protein_phe_508_del = cftr.with_variants(Hgvs('p.Phe508del')) adenocarcinoma = Pathology('MESHD', 'Adenocarcinoma') interleukin_23_complex = NamedComplexAbundance('GO', 'interleukin-23 complex') oxygen_atom = Abundance(namespace='CHEBI', name='oxygen atom') hydrogen_peroxide = Abundance('CHEBI', 'hydrogen peroxide') tmprss2_gene = Gene('HGNC', 'TMPRSS2') tmprss2_erg_gene_fusion = GeneFusion( partner_5p=tmprss2_gene, range_5p=EnumeratedFusionRange('c', 1, 79), partner_3p=Gene('HGNC', 'ERG'), range_3p=EnumeratedFusionRange('c', 312, 5034)) bcr_jak2_gene_fusion = GeneFusion( partner_5p=Gene('HGNC', 'BCR'), range_5p=EnumeratedFusionRange('c', '?', 1875),