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

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)