Skip to content

Commit a278fc8

Browse files
committed
Add open source force fields
- add new predictor
1 parent 0339dc7 commit a278fc8

19 files changed

+5479
-6905
lines changed

README.org

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ To use our ClassicalGSG logP predictor model run the following command:
5757

5858
#+BEGIN_SRC bash
5959
python -m LogpPredictor molecule.mol2 molecule.str
60+
python -m LogpPredictor_MMFF94 smiles
6061
#+END_SRC
6162

6263
You can generate CGenFF parameter files for your molecule using [[https://cgenff.umaryland.edu][CGenFF]]

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
setup(
1111
name='classicalgsg',
12-
version='0.0.1a.dev1',
12+
version='0.0.1a.dev2',
1313

1414
author="Nazanin Donyapour",
1515
author_email="nazanin@msu.edu",

src/LogpPredictor.py renamed to src/LogpPredictor_CGenFF.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010

1111

1212
PRETRAINED_MODEL_PATH = 'classicalgsg/pretrained_models'
13-
PRETRAINED_MODEL = 'model_4_zfs.pt'
14-
SCALER = 'std_scaler.sav'
13+
PRETRAINED_MODEL = 'model_4_zfs_CGenFF.pt'
14+
SCALER = 'std_scaler_CGenFF.sav'
1515

1616
if __name__ == '__main__':
1717

src/LogpPredictor_MMFF94.py

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
import sys
2+
import os.path as osp
3+
import numpy as np
4+
from joblib import load
5+
6+
import torch
7+
from classicalgsg.molreps_models.gsg import GSG
8+
from classicalgsg.classicalgsg import OBFFGSG
9+
from classicalgsg.molreps_models.utils import scop_to_boolean
10+
11+
12+
PRETRAINED_MODEL_PATH = 'classicalgsg/pretrained_models'
13+
PRETRAINED_MODEL = 'model_4_zfs_MMFF.pt'
14+
SCALER = 'std_scaler_MMFF.sav'
15+
FORCEFIELD = 'MMFF94'
16+
17+
if __name__ == '__main__':
18+
19+
if sys.argv[1] == '-h' or sys.argv[1] == '--h':
20+
print('LogpPredictor smiles')
21+
exit()
22+
23+
else:
24+
smiles = sys.argv[1]
25+
26+
max_wavelet_scale = 4
27+
28+
scattering_operators = '(z,f,s)'
29+
30+
gsg = GSG(max_wavelet_scale,
31+
scop_to_boolean(scattering_operators))
32+
33+
uffgsg = OBFFGSG(gsg, structure='2D', AC_type='ACall')
34+
35+
x = uffgsg.features(smiles, FORCEFIELD)
36+
37+
if x is not None:
38+
39+
x = x.reshape((-1, x.shape[0]))
40+
41+
scaler_file_path = osp.join(osp.dirname(sys.modules[__name__].__file__),
42+
PRETRAINED_MODEL_PATH,
43+
SCALER)
44+
45+
model_file_path = osp.join(osp.dirname(sys.modules[__name__].__file__),
46+
PRETRAINED_MODEL_PATH,
47+
PRETRAINED_MODEL)
48+
49+
scaler = load(scaler_file_path)
50+
model = torch.load(model_file_path)
51+
x = scaler.transform(x)
52+
53+
predicted_logP = np.squeeze(model.predict(x.astype(np.float32)))
54+
55+
print(f'Predicted logP value is: {predicted_logP:.2f}')
56+
57+
else:
58+
print(f'Can not convert {smiles} to a openbabel molecule ')

src/classicalgsg/atomic_attr/forcefields_params/gaff.dat

Lines changed: 5081 additions & 6555 deletions
Large diffs are not rendered by default.

src/classicalgsg/atomic_attr/forcefields_params/gaff2_lj.dat

Lines changed: 0 additions & 95 deletions
This file was deleted.
Lines changed: 95 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -1,95 +1,95 @@
1-
1 3.938 1.395
2-
2 4.193 2.034
3-
3 3.984 1.496
4-
4 4.154 1.922
5-
5 2.97 0.082
6-
6 3.558 0.854
7-
7 3.493 0.764
8-
8 4.028 1.702
9-
9 3.789 1.178
10-
10 3.89 1.38
11-
11 2.992 0.317
12-
12 4.089 7.125
13-
13 4.332 14.181
14-
14 4.717 33.515
15-
15 4.369 10.297
16-
16 4.666 15.263
17-
17 4.256 8.792
18-
18 3.997 6.031
19-
19 4.835 17.695
20-
20 3.938 1.395
21-
21 2.614 0.038
22-
22 3.984 1.496
23-
23 2.614 0.038
24-
24 2.614 0.038
25-
25 3.734 3.883
26-
26 4.573 13.106
27-
27 2.614 0.038
28-
28 2.614 0.038
29-
29 2.614 0.038
30-
30 4.193 2.034
31-
31 2.614 0.038
32-
32 3.62 0.947
33-
33 2.614 0.038
34-
34 3.89 1.38
35-
35 4.305 2.679
36-
36 2.614 0.038
37-
37 4.193 2.034
38-
38 3.735 1.081
39-
39 3.984 1.592
40-
40 3.89 1.38
41-
41 3.984 1.496
42-
42 3.89 1.38
43-
43 3.89 1.38
44-
44 4.369 10.297
45-
45 4.028 1.702
46-
46 4.154 2.045
47-
47 3.89 1.38
48-
48 4.071 1.814
49-
49 3.89 1.458
50-
50 2.614 0.038
51-
51 3.094 0.369
52-
52 2.614 0.038
53-
53 3.89 1.38
54-
54 4.154 2.045
55-
55 3.679 0.987
56-
56 3.679 0.987
57-
57 3.89 1.297
58-
58 3.679 0.987
59-
59 3.493 0.764
60-
60 4.506 3.132
61-
61 3.679 0.987
62-
62 4.154 2.045
63-
63 4.193 2.034
64-
64 4.193 2.034
65-
65 3.89 1.38
66-
66 3.62 0.896
67-
67 3.84 1.278
68-
68 3.789 1.178
69-
69 3.84 1.278
70-
70 3.757 1.184
71-
71 2.614 0.038
72-
72 4.695 15.854
73-
73 4.369 10.297
74-
74 4.369 10.297
75-
75 4.695 15.35
76-
76 4.071 1.814
77-
77 3.674 3.753
78-
78 4.193 2.034
79-
79 3.89 1.38
80-
80 3.89 1.297
81-
81 3.679 0.987
82-
82 3.84 1.278
83-
87 3.276 0.725
84-
88 3.445 0.979
85-
89 4.231 2.539
86-
90 4.835 19.499
87-
91 4.993 33.244
88-
92 2.489 0.069
89-
93 3.181 0.4
90-
94 4.0 1.889
91-
95 3.239 0.677
92-
96 3.896 1.871
93-
97 3.077 0.497
94-
98 3.181 0.607
95-
99 3.077 0.327
1+
1 3.938 0.068
2+
2 4.193 0.068
3+
3 3.984 0.068
4+
4 4.154 0.068
5+
5 2.97 0.022
6+
6 3.558 0.076
7+
7 3.493 0.076
8+
8 4.028 0.072
9+
9 3.789 0.072
10+
10 3.89 0.072
11+
11 2.992 0.08
12+
12 4.089 0.276
13+
13 4.332 0.389
14+
14 4.717 0.551
15+
15 4.369 0.268
16+
16 4.666 0.268
17+
17 4.256 0.268
18+
18 3.997 0.268
19+
19 4.835 0.251
20+
20 3.938 0.068
21+
21 2.614 0.022
22+
22 3.984 0.068
23+
23 2.614 0.022
24+
24 2.614 0.022
25+
25 3.734 0.26
26+
26 4.573 0.26
27+
27 2.614 0.022
28+
28 2.614 0.022
29+
29 2.614 0.022
30+
30 4.193 0.068
31+
31 2.614 0.022
32+
32 3.62 0.076
33+
33 2.614 0.022
34+
34 3.89 0.072
35+
35 4.305 0.076
36+
36 2.614 0.022
37+
37 4.193 0.068
38+
38 3.735 0.072
39+
39 3.984 0.072
40+
40 3.89 0.072
41+
41 3.984 0.068
42+
42 3.89 0.072
43+
43 3.89 0.072
44+
44 4.369 0.268
45+
45 4.028 0.072
46+
46 4.154 0.072
47+
47 3.89 0.072
48+
48 4.071 0.072
49+
49 3.89 0.076
50+
50 2.614 0.022
51+
51 3.094 0.076
52+
52 2.614 0.022
53+
53 3.89 0.072
54+
54 4.154 0.072
55+
55 3.679 0.072
56+
56 3.679 0.072
57+
57 3.89 0.068
58+
58 3.679 0.072
59+
59 3.493 0.076
60+
60 4.506 0.068
61+
61 3.679 0.072
62+
62 4.154 0.072
63+
63 4.193 0.068
64+
64 4.193 0.068
65+
65 3.89 0.072
66+
66 3.62 0.072
67+
67 3.84 0.072
68+
68 3.789 0.072
69+
69 3.84 0.072
70+
70 3.757 0.076
71+
71 2.614 0.022
72+
72 4.695 0.268
73+
73 4.369 0.268
74+
74 4.369 0.268
75+
75 4.695 0.26
76+
76 4.071 0.072
77+
77 3.674 0.276
78+
78 4.193 0.068
79+
79 3.89 0.072
80+
80 3.89 0.068
81+
81 3.679 0.072
82+
82 3.84 0.072
83+
87 3.276 0.106
84+
88 3.445 0.106
85+
89 4.231 0.08
86+
90 4.835 0.276
87+
91 4.993 0.389
88+
92 2.489 0.053
89+
93 3.181 0.07
90+
94 4.0 0.084
91+
95 3.239 0.106
92+
96 3.896 0.097
93+
97 3.077 0.106
94+
98 3.181 0.106
95+
99 3.077 0.07

0 commit comments

Comments
 (0)