Пример #1
0
"""Compute example WKS Bag of Features descriptor."""
from __future__ import print_function, absolute_import
import os
import sys
import numpy as np
from sklearn.preprocessing import normalize
import matplotlib.pyplot as plt
from molsg.laplacemesh import compute_lb_fem
from molsg.localgeometry import WKS_descriptor
import molsg.bagoffeatures as bf

evals = 100
num_codewords = 50

if not os.path.exists('data/codebooks/example.npy'):
    print('Must compute codebook first.')
    sys.exit(0)

codebook = np.load('data/codebooks/example.npy')

mol = np.load('data/ampc/npy/actives18.pqr0.50.41.2.npy')
eigs = compute_lb_fem(vertices=mol[0], faces=mol[1], k=100)
wks = WKS_descriptor(eigs, evals=evals)
wks = normalize(wks)
bof = bf.hq_descriptor(wks, codebook)

plt.plot(bof)
plt.title('Bag of features descriptor for actives 18')
plt.show()
"""Example virtual screen of covariance descriptors."""
from __future__ import print_function, absolute_import
import os
import numpy as np
from scipy.spatial import distance

from molsg.laplacemesh import compute_lb_fem
from molsg.localgeometry import WKS_descriptor
import molsg.covariance as cov


evals = 32

mol_names = sorted(os.listdir('data/ampc/npy/'))
mols = (np.load('data/ampc/npy/{}'.format(m)) for m in mol_names)
eigs = (compute_lb_fem(vertices=m[0], faces=m[1], k=100) for m in mols)
wks = (WKS_descriptor(e, evals=evals) for e in eigs)
covs = np.asarray([cov.covariance_descriptor(w).flatten() for w in wks])

# use first molecule as reference
similarity = distance.cdist(covs[:10], covs,
                            metric='braycurtis')
ranking = np.argsort(similarity)
labels = np.asarray([1 if m[0] == 'a' else 0 for m in mol_names])

print(labels[ranking])