dockonsurf / modules / screening.py @ e07c09eb
Historique | Voir | Annoter | Télécharger (960 octet)
1 |
import logging |
---|---|
2 |
|
3 |
logger = logging.getLogger('DockOnSurf')
|
4 |
|
5 |
|
6 |
def run_screening(inp_vars): |
7 |
"""Carry out the screening of adsorbate coordinates on a surface
|
8 |
|
9 |
@param inp_vars: Calculation parameters from input file.
|
10 |
"""
|
11 |
import os |
12 |
import numpy as np |
13 |
from formats import read_coords, read_energies |
14 |
from clustering import get_rmsd, clustering |
15 |
from isolated import get_moments_of_inertia |
16 |
|
17 |
if not os.path.isdir("isolated"): |
18 |
err = "'isolated' directory not found. It is needed in order to carry "
|
19 |
"out the screening of structures to be adsorbed"
|
20 |
logger.error(err) |
21 |
raise ValueError(err) |
22 |
|
23 |
ads_list = read_coords(inp_vars['code'], 'isolated', 'rdkit') |
24 |
ads_enrgs = read_energies(inp_vars['code'], 'isolated') |
25 |
mois = np.array([get_moments_of_inertia(ads) for ads in ads_list]) |
26 |
rmsd_mtx = get_rmsd(ads_list) |
27 |
print(len(ads_list))
|
28 |
exemplars = clustering(rmsd_mtx, True, ads_enrgs, mois)
|