Anonymous

Changes

Pharmacoracle

2,607 bytes added, 13:10, 27 February 2019
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 PharmGKBAPI], and which have been further curated to fit 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 PharmCAT 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 performed 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é]. 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 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, and the [http://owlcs.github.io/owlapi/ OWLAPI] is invoked from Python via [https://pexpect.readthedocs.io/en/stable/ Pexpect]. For curation, 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. The Pharmacoracle is used in our PGx analysis script [[Pharmacolyzer]], but can also be used directly.  ===Hints on how to use Pharmacoracle (version 1)===In order to do 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 ontologiesversion 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"
|-
! Cardinality word !! Cardinality !! Explanation
|-
| some || || Connects a property to at least one class , e.g. <pre>has_haplotype some TPMTstar3A</pre>
|-
| exactly || number || Connects a property to an exact number of classes, e.g. <pre>has_haplotype exactly 1 TPMTstar3A</pre>
|-
| min || number || Connects a property to a minimum number of classes, e.g. <pre>has_haplotype min 1 TPMTstar3A</pre>
|}
For each query we add a code word to indicate the relationship between our query and the desired answer (cf. the DL Query tab in the desktop version of Stanford's Protégé), as explained in this table:
{| class="wikitable"
|}
In order to query the Pharmacoracle automatically, we have make made a Python script [[Pharmacolyzer]] that returns dosing recommendation based on a [[Pharmacotyper|pharmacotyped]] patient VCF.
===Examples of use===