Statistiques
| Branche: | Tag: | Révision :

dockonsurf / modules / screening.py @ e07c09eb

Historique | Voir | Annoter | Télécharger (960 octet)

1 e07c09eb Carles
import logging
2 e07c09eb Carles
3 e07c09eb Carles
logger = logging.getLogger('DockOnSurf')
4 e07c09eb Carles
5 e07c09eb Carles
6 4614bb6a Carles
def run_screening(inp_vars):
7 e07c09eb Carles
    """Carry out the screening of adsorbate coordinates on a surface
8 e07c09eb Carles

9 e07c09eb Carles
    @param inp_vars: Calculation parameters from input file.
10 e07c09eb Carles
    """
11 e07c09eb Carles
    import os
12 e07c09eb Carles
    import numpy as np
13 e07c09eb Carles
    from formats import read_coords, read_energies
14 e07c09eb Carles
    from clustering import get_rmsd, clustering
15 e07c09eb Carles
    from isolated import get_moments_of_inertia
16 e07c09eb Carles
17 e07c09eb Carles
    if not os.path.isdir("isolated"):
18 e07c09eb Carles
        err = "'isolated' directory not found. It is needed in order to carry "
19 e07c09eb Carles
        "out the screening of structures to be adsorbed"
20 e07c09eb Carles
        logger.error(err)
21 e07c09eb Carles
        raise ValueError(err)
22 e07c09eb Carles
23 e07c09eb Carles
    ads_list = read_coords(inp_vars['code'], 'isolated', 'rdkit')
24 e07c09eb Carles
    ads_enrgs = read_energies(inp_vars['code'], 'isolated')
25 e07c09eb Carles
    mois = np.array([get_moments_of_inertia(ads) for ads in ads_list])
26 e07c09eb Carles
    rmsd_mtx = get_rmsd(ads_list)
27 e07c09eb Carles
    print(len(ads_list))
28 e07c09eb Carles
    exemplars = clustering(rmsd_mtx, True, ads_enrgs, mois)