-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCryptospori_cdpk1_virtual_screening.py
55 lines (44 loc) · 2.05 KB
/
Cryptospori_cdpk1_virtual_screening.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#installing DeepPurpose library and imporing required modules
!pip install DeepPurpose
from DeepPurpose import utils, dataset, CompoundPred
from DeepPurpose import DTI as models
import warnings
warnings.filterwarnings("ignore")
#############################################################################################
# installing dependencies
!wget https://repo.anaconda.com/miniconda/Miniconda3-py37_4.8.2-Linux-x86_64.sh
!chmod +x Miniconda3-py37_4.8.2-Linux-x86_64.sh
!bash ./Miniconda3-py37_4.8.2-Linux-x86_64.sh -b -f -p /usr/local
!conda install -c rdkit rdkit -y
import sys
pip install git+https://github.com/bp-kelley/descriptastorus
pip install pandas-flavor==0.2.0
###############################################################################################
# Data encoding and splitting
X_drugs, X_targets, y = dataset.read_file_training_dataset_bioassay('./training2.txt')
print('Drug 1: ' + X_drugs[0])
print('Score 1: ' + str(y[0]))
drug_encoding = 'Morgan'
train, val, test = utils.data_process(X_drug = X_drugs, y = y, drug_encoding = drug_encoding,
split_method='random',frac=[0.7,0.1,0.2],
random_seed = 1)
train.head(1)
config = utils.generate_config(drug_encoding = drug_encoding,
cls_hidden_dims = [1024,1024,512],
train_epoch = 30,
LR = 0.001,
batch_size = 8,
hidden_dim_drug = 128,
)
import numpy as np
np.unique(y)
model = CompoundPred.model_initialize(**config)
model
model.train(train, val, test)
model.save_model('./final_deep_learning')
#######################################################################################################################
# prediction
X_drug = ['Drug_in_similes format']
X_pred = utils.data_process(X_drug = X_drug, y = y, drug_encoding = drug_encoding, split_method='no_split')
y_pred = model.predict(X_pred)
print('The predicted score is ' + str(y_pred))