A mini introduction to Biopax Explorer¶
In [1]:
###################################################
from biopax_explorer.pattern.pattern import PatternExecutor, Pattern
from biopax_explorer.query import EntityNode
from biopax_explorer.biopax import *
import json
##################################################
In [2]:
p=Pattern()
prot = EntityNode("PR", Protein())
prot.whereAttribute("name", "glucokinase","CONTAINS")
entityReference=EntityNode("EN", EntityReference())
prot.connectedWith(entityReference, "entityReference")
p.define(prot,entityReference)
pe=PatternExecutor()
pe.datasetFile("data/input/export_all_g6p.xml")
result = pe.fetchEntities(p)
print("#automatic result mapping")
for entity_row in result[:1]:#only first result row
for entity in entity_row:
if isinstance(entity,Protein):
print("first match of ",entity.meta_label," : ",entity.get_displayName(),",",entity.get_name())
print( entity.to_json() )
#automatic result mapping
first match of PR : ADPGK , ADP-dependent glucokinase
{
"uri": "http://www.reactome.org/biopax/56/71387#Protein186",
"dataSource": {
"__uri__": "http://www.reactome.org/biopax/56/71387#Provenance1",
"comment": null,
"xref": null,
"displayName": null,
"name": null,
"standardName": null
},
"evidence": null,
"xref": {
"__class__": "Xref",
"uri": "http://www.reactome.org/biopax/56/71387#UnificationXref_reactome_R-HSA-5696062"
},
"availability": null,
"comment": "http://www.reactome.org/biopax/56/71387#Protein186http://www.reactome.org/biopax/56/71387#Complex122@Layout@http://www.reactome.org/biopax/56/71387#Pathway6@20@1399",
"displayName": "ADPGK",
"name": "ADP-dependent glucokinase",
"standardName": null,
"cellularLocation": {
"__class__": "CellularLocationVocabulary",
"uri": "http://localhost:3030/g6p/CellularLocationVocabulary_b761180db8a874567188c589b45cab17"
},
"feature": {
"__class__": "EntityFeature",
"uri": "http://www.reactome.org/biopax/56/71387#FragmentFeature174"
},
"memberPhysicalEntity": null,
"notFeature": null,
"entityReference": {
"__class__": "EntityReference",
"uri": "http://identifiers.org/uniprot/Q9BRR6"
},
"__class__": "Protein"
}
In [3]:
querylist=PatternExecutor().queries(p)
print("#sparql code generation")
for q in querylist:
print("#---generated sparql query---\n\n")
print(q)
#sparql code generation
#---generated sparql query---
prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
prefix bi: <http://www.biopax.org/release/biopax-level3.owl#>
select ?s2 ?o2 ?entityReferencen0EN ?s2__rdft ?o2__rdft
where {
?s2 ?entityReferencen0EN ?o2 .
?s2 rdf:type ?s2__rdft .
?o2 rdf:type ?o2__rdft .
{ ?o2 a bi:EntityReference } UNION { ?o2 a bi:RnaReference } UNION { ?o2 a bi:RnaRegionReference } UNION { ?o2 a bi:DnaReference } UNION { ?o2 a bi:ProteinReference } UNION { ?o2 a bi:SmallMoleculeReference } UNION { ?o2 a bi:DnaRegionReference } .
{ ?s2 bi:name ?name }.
{ ?s2 a bi:Protein }
FILTER ( ?entityReferencen0EN = bi:entityReference ) .
FILTER ( CONTAINS(?name,'glucokinase') ) .
}
In [ ]: