forked from taoshen99/AutoMolDesigner
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsample.py
39 lines (34 loc) · 1.35 KB
/
sample.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
#!/usr/bin/env python3
import os
import json
import argparse
from utils.configurator import Configurator
from rnn_scripts.model import CLM
def main(template_path):
print(f'Configure the model based on {os.path.basename(template_path)} ...')
config = Configurator(template_path)
config.configurate()
print('Configuration done.')
print('Initialize the model ...')
DEVICE = config.check_device()
clm = CLM(config, DEVICE, pattern='sample')
clm.model.to(DEVICE)
print('Initialization done.')
print('Start sampling ...')
sampled_smis = clm.sample()
with open(os.path.join(clm.config.prj_dir, 'sampled_SMILES.smi'), "w") as f:
for smi in sampled_smis:
f.write(smi + "\n")
print('Sampling done.')
print('Saving config ...')
clm.config.config_path = os.path.join(clm.config.prj_dir, 'config.json')
with open(clm.config.config_path, 'w') as f:
json.dump(clm.config.__dict__, f, indent=2)
print('Config saved.')
if __name__ == '__main__':
print('############ MODEL-SAMPLING ############')
parser = argparse.ArgumentParser(description="Model Sampling")
parser.add_argument("-t", "--template", type=str, default="template/template_sample.json", help="input sample template")
args = parser.parse_args()
main(args.template)
print('############ MODEL-SAMPLING ############')