OWL-NETS (NEtwork Transformation for Statistical learning) is a novel computational method that reversibly abstracts Web Ontology Language (OWL)-encoded biomedical knowledge into a network representation well-suited for network inference. OWL-NETS generates semantically rich network representations that contain heterogeneous nodes and edges, and are more easily consumed by network inference algorithms than their corresponding OWL representations. We argue that OWL-NETS can be used to leverage existing ontology-based knowledge representations and network inference methods to generate novel, significant biological hypotheses.
To use OWL-NETS, download zip file or fork the project repository. Additional instructions can be found under Installation. For the program to run successfully the prerequisites must be satisfied. Additional steps must be taken in order to utilize the knowledge sources this method was developed on. Specific instructions for accessing these sources is described in Prerequisites.
This program was written on a system running OS X Sierra. Successful execution of this program requires Python version 2.7. In addition, the following data sources were utilized during the development of the method.
- Python Modules
- python 2.7
- Modules are described under Installation
OWL-NETS was originally designed for use with the Knowledge Base Of Biomedicine (KaBOB). Only minor modifications should be needed in order to adapt OWL-NETS to other systems using OWL. If this is something you are interested in please contact us directly for assistance.
If you don't have a data source in mind, but want to get started we recommended the following (note. OWL-NETS has not yet been adapted for use with Bio2RDF or AberOWL):
- KaBOB - described in Livingston et al., BMC Bioinformatics 16, (2015). A wiki has been developed that provides detailed instructions to develop a personal copy of KaBOB. Installation requires the following steps:
- Download StarDog - a free 30-day trial can be acquired
- Initialize KaBOB instance
- Complete Stardog-specific installation
- DisGeNet - a platform designed to facilitate human disease-gene variant research. The platform includes an RDF distribution and a SPARQL endpoint with example SPARQL queries.
- Bio2RDF - Bio2RDF is a large open source project that leverages Semantic Web technologies to derive large Linked data for use in life sciences research.
- AberOWL - Provides an infrastructure for performing OWL reasoning over biomedical ontologies.
To install and execute the program designate the cloned project folder as the current working directory. Place any outside files within the working directory prior to executing the program.
Program dependencies can be installed using the following:
pip install argparse
pip install datetime
pip install networkx
pip install progressbar
pip install requests
pip install SPARQLWrapper
pip install urllab2
and imported with (scripts will automatically import needed modules):
import argparse
from datetime import datetime
import json
import networkx as nx
import os
from progressbar import ProgressBar, FormatLabel, Percentage, Bar
import re
import requests
import simplejson as json
from SPARQLWrapper import SPARQLWrapper, JSON
import tkFileDialog
from Tkinter import *
import tkMessageBox
import urllib2
VERY IMPORTANT: A file containing endpoint authentication information must be placed in the same directory as any SPARQL queries you wish to run. On three separate lines, the file should include:
- endpoint url
- username
- password
Provide an empty string for the username and password fields for endpoints with no username/passowrd. See example below as well authentication.
# username/password required
"http://rdf.disgenet.org/sparql/"
'username'
'password'
OWL-NETS can be run from the command line via argparse arguments, but also has a user-friendly GUI.
Running program from the command line
# from project directory - find help menu
tiffanycallahan$ python OWL_NETS.py -h
usage: OWL_NETS.py [-h] [-a INPUT] [-b OWL] [-c NETS] [-d BOTH]
OWL-NETS: NEtwork Entity Transformation for Statistical Learning. For program
to run correctly the input arguments must be formatted as shown below.
optional arguments:
-h, --help show this help message and exit
-a INPUT, --input INPUT
name/path to SPARQL query file (e.g.,
Folder/Query1_query)
-b OWL, --owl OWL type "owl" to generate OWL representation
-c NETS, --nets NETS type "owl-nets" to generate OWL-NETS representation
-d BOTH, --both BOTH type "both" to generate both representations
# to run the program
tiffanycallahan$ python OWL_NETS.py -a Queries/drug_interaction_query.txt
-b Output/owl_drug_int_graph.gml -c Output/owlnet_drug_int_graph.gml -d
Output/drug_int_query_results.json
Running program using the GUI
# from project directory
tiffanycallahan$ python OWL_NETS.py
This window will guide you through the program. A second window will appear when the program is finished instructing you where the output files can be found.
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
We use SemVer for versioning.
- Tiffany J. Callahan
- William A. Baumgartner, Jr. bill-baumgartner
- Michael Bada
- Lawrence E. Hunter
This project is licensed under 3-Clause BSD License - see the LICENSE.md file for details.
-
We thank Ignacio Tripodi, Adrianne Stefanski, Marc Daya, Drs. Kevin Bretonnel Cohen, Elizabeth White, Anis Karimpour-Fard, Carsten Görg, and Daniel McShan, as well as Laura Stevens for their feedback.
-
Work supported by the National Library of Medicine Training Grant T15 LM009451, as well as R01 LM009254 and R01LM008111 to LH. The content is solely the responsibility of the authors and does not necessarily represent the views of the National Institutes of Health or the National Library of Medicine.
-
README was generated from a modified markdown template originally created by Billie Thompson PurpleBooth.