Systematic disease associated network detection and visualisation using the Open Targets platform.
Understanding the network context of associations between genes and diseases is a critical aspect of drug target selection. Defining networks of genes associated with a given disease instead of isolated, individual genes increases confidence in the association, helps build a therapeutic hypothesis and allows the selection of the most effective drug targets.
- Node.js (v.10.16.0)
- Angular (v.8.1.2)
- MDB for Angular (v.8.1.0)
- Elasticsearch (v.7.1.0)
- Python modules:
- Flask (v1.0.2)
- python-igraph (v0.7.1)
- opentargets (v3.1.0)
- chembl_webresource_client (v0.9.31)
- Node.js modules:
- D3 (v5.9.7)
- d3-tip (v0.9.1)
- Elasticsearch browser client (v.16.3.0)
The Python application backend maps disease association scores onto networks of interacting proteins, then uses the HotNet2 heat diffusion algorithm to find subnetworks of interacting disease genes.
These networks are displayed to the user through an Angular interface as interactive D3.js force-directed graphs, and are annotated with currently available drugs targeting the proteins discovered.
To run the application using the webpack dev server:
- Install dependencies (Node.js, Angular CLI etc.)
- Clone the repository
- Start dev server:
cd open-targets-networks/
npm start &
- Start flask backend:
cd ../flask-api/
python app.py &
- Open your browser at http://localhost:4200/
The application expects an Elasticsearch instance running at http://localhost:9200/ with an index titled 'efo'.
Use the shell scripts included in the efo-elastic-app/EFO-data folder to create the index and populate it with the processed EFO data.
My thanks to Jean-Marc Schwartz, Alex Gutteridge and the Open Targets team at GSK.
- Updated to Angular 8
- Switched from Http to HttpClient
- Standardised component, service and interface naming
- Refactored larger components - drugs table, node information split to their own components.
- Added Elasticsearch implementation from efo-elastic-app