Drug2ways is a Python package for reasoning over paths on biological networks for drug discovery
Quickstart • Applications • Installation
Drug2ways supports generic network formats such as JSON, CSV, GraphML, or GML. Check out drug2ways's documentation here. Ideally, the network should contain three different types of nodes representing drugs, proteins, and indications/phenotypes. The hypothesis underlying this software is that by reasoning over a multitude of possible paths between a given drug and indication, the drug regulates the indication in the direction of the signs of the most frequently occurring paths (i.e., majority rule). In other words, we assume that a drug has a greater likelihood of interacting with its target, and its target with intermediate nodes, to modulate a pathological phenotype as the number of possible paths connecting a drug to the phenotype increases. Based on this hypothesis, this software can be applied for different applications outlined in the next section.
If you use drug2ways for your research please cite our paper:
Daniel Rivas-Barragan, Sarah Mubeen, Francesc Guim-Bernat,Martin Hofmann-Apitius, and Daniel Domingo-Fernández (2020). Drug2ways: Reasoning over causal paths in biological networks for drug discovery. PLOS Computational Biology 16(12): e1008464; https://doi.org/10.1371/journal.pcbi.1008464
Drug2ways can be applied for three different applications:
Scripts and real examples: https://github.com/drug2ways/drug2ways/tree/master/examples
The following command of the command line interface (CLI) of drug2ways enables candidate drug identification. The minimum required input are the path to the network and its format, a path to the nodes considered as drugs and the ones considered as conditions/phenotypes. Finally, the maximum length allowed for a given path (i.e., lmax). Type "python -m drug2ways explore --help" to see other optional arguments.
python -m drug2ways explore \
--graph=<path-to-graph> \
--fmt=<format> \
--sources=<sources> \
--targets=<targets> \
--lmax=<lmax>
The following command of the CLI of drug2ways enables searching drugs that not only target a given disease but also activate/inhibit a set of phenotypes. This method requires the same arguments as the previous explore functionality but the target file requires an additional second column where the desired effect on the node (e.g., 'node1,activate') is specified. See the examples directory for more information.
python -m drug2ways optimize \
--graph=<path-to-graph> \
--fmt=<format> \
--sources=<sources> \
--targets=<targets> \ # Note that this file is slightly different than the other targets
--lmax=<lmax>
The following command of the CLI of drug2ways enables the identification of candidate drugs for combination therapies. The minimum required input are the path to the network and its format, a path to the nodes considered as drugs and the ones considered as conditions/phenotypes. As with the optimization command, here again the target file requires an additional second column specifying the desired effect on the node (e.g., 'node1,activate'). Furthermore, the maximum length allowed for a given path (i.e., lmax) and the possible number of combinations of drugs must be provided. Type "python -m drug2ways combine --help" to see other optional arguments.
python -m drug2ways combine \
--graph=<path-to-graph> \
--fmt=<format> \
--sources=<sources> \
--targets=<targets> \
--lmax=<lmax> \
--combination-length=<number>
The latest stable code can be installed from PyPI with:
python -m pip install drug2ways
The most recent code can be installed from the source on GitHub with:
python -m pip install git+https://github.com/drug2ways/drug2ways.git
For developers, the repository can be cloned from GitHub and installed in editable mode with:
git clone https://github.com/drug2ways/drug2ways.git
cd drug2ways
python -m pip install -e .
click==7.1.1
tqdm==4.47.0
networkx>=2.1
pandas==1.0.3
networkx>=2.4
numpy
scipy
statsmodels