This repository contains the PyTorch implementation of DrugMAN framework, as described in out paper ‘Drug-target interaction prediction by integrating heterogeneous information with mutual attention network’. DrugMAN is a modeling framework that applies multi-head attention mechanisms to learn drug-target interaction information and Predict the probability of drug target binding. DrugMAN contains two main networks. The first network intends to learn accurate and comprehensive representations for drugs and protein targets from heterogeneous drug and gene/protein networks. In our model, we use the network integration algorithm BIONIC, which outperforms the existing state-of-the-art network embedding methods, to obtain drug and gene representation. Here, you can also load your own embeddings. The second network uses multi-head attention mechanisms to capture and learn association information in drug-target pairs, and obtains drug-target interaction scores through a series of fully connected classification layers.
The source code developed in Python 3.8 using PyTorch 2.0.0. The required python dependencies are given below. DrugMAN is supported for any standard computer and operating system (Windows/macOS/Linux) with enough RAM to run. There is no additional non-standard hardware requirements.
torch >=2.0.0
scikit-learn >= 1.3.0
numpy >= 1.25
pandas >= 2.0.3
joblib >= 1.3.1
matplotlib >= 3.7.1
Firt set up a new conda environment
# create a new conda environment
$ conda create –name drugman pythonn==3.8
$ conda activate drugman
Second install required dependency packages. If your computer only has CPU, install the dependency package as follows:
$ pip install scikit-learn == 1.3.0
$ pip install numpy == 1.25
$ pip install pandas == 2.0.3
$ pip install joblib == 1.3.1
$ pip install matplotlib == 3.7.1
IF your computer has GPU, install the dependency package as follows:
$ pip install torch==2.0.0 torchvision==0.15.1 torchaudio==2.0.1 --index-url https://download.pytorch.org/whl/cu118
$ pip install scikit-learn == 1.3.0
$ pip install numpy == 1.25
$ pip install pandas == 2.0.3
$ pip install joblib == 1.3.1
$ pip install matplotlib == 3.7.1
data/drug_network
: Drug-related similarity networks.
data/gene_network
: Gene-related similarity networks.
data/all_bind.csv
: Drug-target interaction data.
drug_emb.json
: Input file of the heterogeneous network algorithm BIONIC to extracted drug represtation.
target_emb.json
: Input file of the heterogeneous network algorithm BIONIC to extracted target represtation.
we alse provide the demo dataset indata/warm_start
and the drug/target feature trained by Bionic indata/bionic_emb
to reproduce the training process.
Run DrugMAN on Our Data to Reproduce Result ==== There are four steps to complete the process of training the model.
*Firt, rundata_split.py
to obtain train, validation and test set data.
*Second, rundrug_emb.json
using BIONIC algorithm to extracted drug represtation.
*Third, runtarget_emb.json
using BIONIC algorithm to extracted target represation.
*Forth, runmain.py
. note that you need to create aresult
foder to store computational result.
we alse provide thedemo.ipynb
, A more detailed training procedure is available here.
Themain.py
takes about 15 minutes on GPU ram=24GB and approximately 6 hours on CPU ram=8GB. For running DrugMAN, we advise GPU ram>=8GB and CPU ram >=16GB.