def load_jtnn(): # Load configs & data model_path = 'data/jtnn/model' conf = json.load(open('data/jtnn/config.json', 'r')) vocab = [t.strip() for t in open('data/jtnn/vocab.dat')] vocab = Vocab(vocab) labels = [l.strip() for l in open('data/jtnn/labels.dat')] n_classes = len(labels) # Load JTNN VAE model hidden_size = conf['hidden_size'] latent_size = conf['latent_size'] depth = conf['depth'] model = JTNNVAE(vocab, hidden_size, latent_size, depth, n_classes) saves = sorted(os.listdir(model_path)) path = os.path.join(model_path, saves[-1]) model.load_state_dict(torch.load(path)) model = model.cuda() return model, labels
smiles = f.readlines() for i in xrange(len(smiles)): smiles[i] = smiles[i].strip() vocab = [x.strip("\r\n ") for x in open(opts.vocab_path)] vocab = Vocab(vocab) batch_size = 100 hidden_size = int(opts.hidden_size) latent_size = int(opts.latent_size) depth = int(opts.depth) model = JTNNVAE(vocab, hidden_size, latent_size, depth) model.load_state_dict(torch.load(opts.model_path)) model = model.cuda() smiles_rdkit = [] for i in xrange(len(smiles)): smiles_rdkit.append( MolToSmiles(MolFromSmiles(smiles[i]), isomericSmiles=True)) logP_values = [] for i in xrange(len(smiles)): logP_values.append(Descriptors.MolLogP(MolFromSmiles(smiles_rdkit[i]))) SA_scores = [] for i in xrange(len(smiles)): SA_scores.append(-sascorer.calculateScore(MolFromSmiles(smiles_rdkit[i]))) cycle_scores = []