Anonymous

Changes

Pharmacoracle

462 bytes removed, 10:12, 27 February 2019
Pharmacoracle - a REST API based on the OWLAPI
==Pharmacoracle - a REST API based on the [http://owlcs.github.io/owlapi/ OWLAPI]==The Pharmacoracle contains data from OWL ontologies that are based on CPIC recommendations provided by the [https://api.pharmgkb.org PharmGKB API], and which have been further curated to satisfy the [http://www.anx.no needs of the Department of Pharmacology at Oslo University Hospital].
The Pharmacoracle was implemented as an attempt to understand the field of pharmacogenomics, based on data from PharmGKB, and solving the same problem as PharmGKB's (discontinued?) PharmCAT software (previously accessible [https://github.com/PharmGKB/PharmCAT/wiki herePharmCAT software]), but in the context of the technology and clinical recommendations of our clinic.
===Pharmacoracle version 1===The first version of the Pharmacoracle is based on the [http://owlcs.github.io/owlapi/ OWLAPI]Queries to Pharmacoracle are have to be written in the [https://www.w3.org/TR/owl2-manchester-syntax/ Manchester syntax] in the same way as for the [https://protegewiki.stanford.edu/wiki/DLQueryTab DL Query Tab] of [https://protege.stanford.edu/ Stanford's desktop Protégé]. An advantage of this approach is that it replaces the need of a separate rules engine (rules are to some extent built into the OWL semantics). A disadvantage is that the performance in a production environment may be suboptimal (slow). I believe that the standard way to use OWL is to make a triplet store database (RDF database, e.g. JENA) based on the OWL ontology. The rules can then be written as SPARQL queries to this database. It is possible that there are more lessons to be learned from the PGx clinical decision support [https://bioportal.bioontology.org/ontologies/GENE-CDS ontology of Mathias Samwald], which is at the core choice of technology was inspired by the [https://doi.org/10.1371/journal.pone.0093769 Ontology-Based, Mobile-Optimized System for Pharmacogenomic Decision Support at the Point-of-Care] of the [http://upgx.eu UPGx] project. The [https://bioportal.bioontology.org/ontologies/GENE-CDS ontology of Mathias Samwald] is at the core of this system. They use the [http://trowl.org/ TrOWL reasoner] instead of the [http://www.hermit-reasoner.com/ HermIT] reasoner that is at the core of Pharmacoracle.
The Pharmacoracle infrastructure is written in Python. But , and the [http://owlcs.github.io/owlapi/ OWLAPI] is mainly JAVA technology, and making the Pharmacoracle totally JAVAinvoked from Python via [https://pexpect.readthedocs.io/en/stable/ Pexpect]. For curation, might speed up things. A a link between OWL classes and Python is provided by [http://www.lesfleursdunormal.fr/static/_downloads/article_owlready_aim_2017.pdf Jean Baptiste Lamy's Owlready2], which we use to translate PharmGKB's JSON-LD to OWL, but for the Pharmacoracle the OWLAPI is run separately.
The Pharmacoracle is used in our PGx analysis script [[Pharmacolyzer]], but can also be used directly.
===Hints on how to use it Pharmacoracle (see also example section belowversion 1)===In order to write queries to an OWL ontology we need to know the names of the OWL elements, notably OWL Properties (e.g. has_haplotype) and and OWL Classes (e.g. TPMTstar3A). ( <ref>The Oslo University Hospital PGx OWL ontology that is used by the Pharmacoracle is still work in progress, but it is possible to have a closer, off-line look at the latest OWL version of the [https://www.pgx.no/farmakorakel/haplotypes.owl GRCh37 star allele definitions], which is best studied in [https://protegewiki.stanford.edu/wiki/Protege4UserDocs Stanford's Desktop Protégé]. For an introduction to PGx OWL ontology curation, have a look at our tutorial for [[WebProtege]])</ref>.  In addition we need to know the Manchester expressions of cardinality that are used to connect OWL Properties and OWL Classes, in particular:
{| class="wikitable"
|-