Multilevel Attention Network with Semi-supervised Domain Adaptation for Drug-Target Prediction
Python
10
6 commits
updated Apr 16, 2024
This repository contains the PyTorch implementation of MlanDTI framework,

The source code developed in Python 3.8 using PyTorch 1.7.1. The required python dependencies are given below. MlanDTI 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>=1.7.1
numpy>=1.20.2
scikit-learn>=0.24.2
pandas>=1.2.4
rdkit~=2021.03.2
transformers~=4.24.0
argparse~=1.4.0
pandas~=1.5.1
tqdm~=4.65.0
# create a new conda environment
$ conda create --name mlandti python=3.8
$ conda activate mlandti
# install requried python dependencies
$ conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=10.2 -c pytorch
$ conda install -c conda-forge rdkit==2021.03.2
$ pip install -U scikit-learn
$ conda install -c conda-forge transformers
The datasets folder contains all experimental data used in MlanDTI: BindingDB [1], BioSNAP [2] , Human [3] and C.elegans [3].
In all datasets folders, we have full data with two random and clustering-based splits for both in-domain and cross-domain experiments.
To train MlanDTI, you should follow these steps:
Generate protein embeddings and smiles embeddings, run get_embeddings.py to generate embeddings for correspoding datasets. Once the embeddings of corresponding dataset proteinsmbeddings.npy and smilesembeddings.npy are generated, there is no need to generate them again.
For experiments with vanilla MlanDTI, you can directly run the following command. ${dataset} could either be bindingdb, biosnap , human and celegans. ${split_task} could be cluster,random and cold.
$ python main.py --dataset ${dataset} --type ${split_task}
For the cross-domain experiments with MlanDTI+PL, you can directly run the following command. ${dataset} could either be bindingdb, biosnap , human and celegans.
$ python main.py --data ${dataset} --type cluster --usepl True
You can split the datasets on your own, run split_dataset.py in folder preprocess or run the following command. ${dataset} could either be bindingdb, biosnap , human and celegans. ${split_type} could be cluster,random and cold.
$ python preprocess/split_dataset.py --dataset ${dataset} --split_settings ${split_type}
@inproceedings{xie2024multilevel,
title={Multilevel Attention Network with Semi-supervised Domain Adaptation for Drug-Target Prediction},
author={Xie, Zhousan and Tu, Shikui and Xu, Lei},
booktitle={Proceedings of the AAAI Conference on Artificial Intelligence},
volume={38},
number={1},
pages={329--337},
year={2024}
}
[1] Liu, Tiqing, Yuhmei Lin, Xin Wen, Robert N. Jorissen, and Michael K. Gilson (2007). BindingDB: a web-accessible database of experimentally determined protein–ligand binding affinities. Nucleic acids research, 35(suppl_1), D198-D201.
[2] Huang, Kexin, Cao Xiao, Lucas M. Glass, and Jimeng Sun (2021). MolTrans: Molecular Interaction Transformer for drug–target interaction prediction. Bioinformatics, 37(6), 830-836.
[3] Chen, Lifan, et al (2020). TransformerCPI: improving compound–protein interaction prediction by sequence-based deep learning with self-attention mechanism and label reversal experiments. Bioinformatics, 36(16), 4406-4414.
[4] Kim, Jin-Hwa, Jaehyun Jun, and Byoung-Tak Zhang (2018). Bilinear attention networks. Advances in neural information processing systems, 31.
[5] Haiping Lu, Xianyuan Liu, Shuo Zhou, Robert Turner, Peizhen Bai, ... & Hao Xu (2022). PyKale: Knowledge-Aware Machine Learning from Multiple Sources in Python. In Proceedings of the 31st ACM International Conference on Information and Knowledge Management (CIKM).
Multilevel Attention Network with Semi-supervised Domain Adaptation for Drug-Target Prediction
Python
10
6 commits
updated Apr 16, 2024
This repository contains the PyTorch implementation of MlanDTI framework,

The source code developed in Python 3.8 using PyTorch 1.7.1. The required python dependencies are given below. MlanDTI 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>=1.7.1
numpy>=1.20.2
scikit-learn>=0.24.2
pandas>=1.2.4
rdkit~=2021.03.2
transformers~=4.24.0
argparse~=1.4.0
pandas~=1.5.1
tqdm~=4.65.0
# create a new conda environment
$ conda create --name mlandti python=3.8
$ conda activate mlandti
# install requried python dependencies
$ conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=10.2 -c pytorch
$ conda install -c conda-forge rdkit==2021.03.2
$ pip install -U scikit-learn
$ conda install -c conda-forge transformers
The datasets folder contains all experimental data used in MlanDTI: BindingDB [1], BioSNAP [2] , Human [3] and C.elegans [3].
In all datasets folders, we have full data with two random and clustering-based splits for both in-domain and cross-domain experiments.
To train MlanDTI, you should follow these steps:
Generate protein embeddings and smiles embeddings, run get_embeddings.py to generate embeddings for correspoding datasets. Once the embeddings of corresponding dataset proteinsmbeddings.npy and smilesembeddings.npy are generated, there is no need to generate them again.
For experiments with vanilla MlanDTI, you can directly run the following command. ${dataset} could either be bindingdb, biosnap , human and celegans. ${split_task} could be cluster,random and cold.
$ python main.py --dataset ${dataset} --type ${split_task}
For the cross-domain experiments with MlanDTI+PL, you can directly run the following command. ${dataset} could either be bindingdb, biosnap , human and celegans.
$ python main.py --data ${dataset} --type cluster --usepl True
You can split the datasets on your own, run split_dataset.py in folder preprocess or run the following command. ${dataset} could either be bindingdb, biosnap , human and celegans. ${split_type} could be cluster,random and cold.
$ python preprocess/split_dataset.py --dataset ${dataset} --split_settings ${split_type}
@inproceedings{xie2024multilevel,
title={Multilevel Attention Network with Semi-supervised Domain Adaptation for Drug-Target Prediction},
author={Xie, Zhousan and Tu, Shikui and Xu, Lei},
booktitle={Proceedings of the AAAI Conference on Artificial Intelligence},
volume={38},
number={1},
pages={329--337},
year={2024}
}
[1] Liu, Tiqing, Yuhmei Lin, Xin Wen, Robert N. Jorissen, and Michael K. Gilson (2007). BindingDB: a web-accessible database of experimentally determined protein–ligand binding affinities. Nucleic acids research, 35(suppl_1), D198-D201.
[2] Huang, Kexin, Cao Xiao, Lucas M. Glass, and Jimeng Sun (2021). MolTrans: Molecular Interaction Transformer for drug–target interaction prediction. Bioinformatics, 37(6), 830-836.
[3] Chen, Lifan, et al (2020). TransformerCPI: improving compound–protein interaction prediction by sequence-based deep learning with self-attention mechanism and label reversal experiments. Bioinformatics, 36(16), 4406-4414.
[4] Kim, Jin-Hwa, Jaehyun Jun, and Byoung-Tak Zhang (2018). Bilinear attention networks. Advances in neural information processing systems, 31.
[5] Haiping Lu, Xianyuan Liu, Shuo Zhou, Robert Turner, Peizhen Bai, ... & Hao Xu (2022). PyKale: Knowledge-Aware Machine Learning from Multiple Sources in Python. In Proceedings of the 31st ACM International Conference on Information and Knowledge Management (CIKM).