296
edits
Changes
→Hints on how to use Pharmacoracle (version 1)
==Pharmacoracle - a REST API based on the 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 adapted 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 PharmCAT software [https://github.com/PharmGKB/PharmCAT/wiki PharmGKBs PharmCAT software], but in the context of the technology and clinical recommendations of our clinic. It may be sensible to integrate PharmCAT in the Pharmacoracle, as soon as PharmCAT becomes the gold standard for VCF to PGx recommendations.
===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 The 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 this approach Mathias Samwald] is that at the queries replaces core of this system. They use the need [http://trowl.org/ TrOWL reasoner] instead of a separate rules engine (rules are to some extent built into the OWL semantics)[http://www.hermit-reasoner. A disadvantage com/ HermIT] reasoner that is that at the performance core of Pharmacoracle. The Pharmacoracle infrastructure is written in Python, and the [http://owlcs.github.io/owlapi/ OWLAPI] is invoked from Python via [https://pexpect.readthedocs.io/en/stable/ Pexpect]. For curation, a production environment may be suboptimal (slow)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.
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, and therefore not publicly accessible, but PharmGKB nomenclature it is kept where possibleto 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"
|-
|}
In order to query the Pharmacoracle automatically, we have made a Python script [[Pharmacolyzer]] that returns dosing recommendation based on a [[Pharmacotyper|pharmacotyped]] patient VCF.
===Examples of use===