Esempio n. 1
0
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
Esempio n. 2
0
    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 = []