This module is an extension of the Python client for the Open Targets REST API that parses the result object. The module has a simple command line interface to demonstrate its functionality by displaying summaries of the overall association scores extracted from the returned response object.
- Python 3.6+
- Opentargets REST API wrapper v3.1.16 (see installation instruction here)
- Pandas
Once the desired Python 3 virtual environment is activated, the parser and its dependencies can be directly installed from github using pip:
pip install git+https://github.com/DSuveges/OTAR_response_parser
This is a Python module that takes opentargets.conn.IterableResult
object as an input, but for demonstrative
purposes, it is shipped with a simple command line interface as well. If the module is installed via pip
, this
command line tool gets also installed and added to the path.
Display command line help message:
OTAR_result_parser -h
Expected output:
usage: OTAR_result_parser [-h] [-t TARGET] [-d DISEASE] [-v]
A small command line tool to demonstrate the capabilities of the Opentargets
parser module. At this stage it shows statistics of the association scores in
a result set of a target or disease specific query.
optional arguments:
-h, --help show this help message and exit
-t TARGET, --target TARGET
Specify target ID. eg. ENSG00000197386.
-d DISEASE, --disease DISEASE
Specify disease ID. eg. Orphanet_399
-v, --verbose Prints out extra information
Parsing result object for a target query:
OTAR_result_parser -t ENSG00000197386
Expected output:
[Info] ENSG00000197386 as target ID returned the following associations:
Assoc #0 - Target ID: ENSG00000197386, disease ID: EFO_0000618, association score: 1.0
Assoc #1 - Target ID: ENSG00000197386, disease ID: Orphanet_71859, association score: 1.0
...
Assoc #791 - Target ID: ENSG00000197386, disease ID: EFO_0003758, association score: 0.004
Assoc #792 - Target ID: ENSG00000197386, disease ID: EFO_0003756, association score: 0.004
[Info] Association score stats for the target based query for ENSG00000197386:
The maximum of the association_score.overall values: 1.0
The minimum of the association_score.overall values: 0.004
The average of the association_score.overall values: 0.2269340041521952
The standard error of the association_score.overall values: 0.1754745344039146
Parsing result object for a disease query:
OTAR_result_parser -d Orphanet_399
Expected output:
[Info] Orphanet_399 as disease ID returned the following associations:
Assoc #0 - Target ID: ENSG00000165646, disease ID: Orphanet_399, association score: 1.0
Assoc #1 - Target ID: ENSG00000198785, disease ID: Orphanet_399, association score: 1.0
...
Assoc #798 - Target ID: ENSG00000101966, disease ID: Orphanet_399, association score: 0.004
Assoc #799 - Target ID: ENSG00000006128, disease ID: Orphanet_399, association score: 0.004
[Info] Association score stats for the disease based query for Orphanet_399:
The maximum of the association_score.overall values: 1.0
The minimum of the association_score.overall values: 0.004
The average of the association_score.overall values: 0.08275577839514175
The standard error of the association_score.overall values: 0.1508110393500087
If both target and disease query is requested at the same time, at first the disease/trait table is printed out for the target and disease based search; then the association score statistics for the target and disease based query.
from opentargets import OpenTargetsClient
from OTAR_result_parser.OTAR_result_parser import OTAR_result_parser
# Get association for a gene for example:
geneID = 'ENSG00000197386'
# Fetch data from OpenTargets:
client = OpenTargetsClient()
otar_results = client.filter_associations()
x = otar_results.filter(target=geneID)
# Initialize parser object:
OT_parser = OTAR_result_parser(x, verbose=True)
Get the average of the overall association scores:
OT_parser.get_association_score_mean()
Get the lowest overall association score:
OT_parser.get_association_score_min()
Get the highest overall association score:
OT_parser.get_association_score_max()
Get the standard deviation of the overall association scores:
OT_parser.get_association_score_std()
Get the number of associations in the returned dataset:
len(OT_parser)