def run(pluginManager): """ Entry point for the plugin manager :param configx: plugin manager instance :return: None """ printer = pluginManager.setup() molecule = quickLoad(pluginManager, pluginManager.arg('load')) printer('Filtering Atoms:') for atom in iter_atoms(molecule): if filter_atom(pluginManager, atom, 'atomfilter'): printer(atom) printer.spacer() printer('\nFiltering Atom Pairs:') for atom1, atom2 in iter_atom_pairs(molecule, bound=False, unique=False): if filter_atom_pair(pluginManager, atom1, atom2, 'atomfilter', 'secondfilter'): printer('{} {}'.format(atom1.get_name(), atom2.get_name())) printer.spacer() printer('\nUsing Custom Filter Function:') filter.register_custom_fuction('firstOf', firstOfElement) for atom in iter_atoms(molecule): if filter_atom(pluginManager, atom, 'customfilter'): printer(atom)
def run(pluginManager): """ Entry point for the plugin manager :param pluginManager: plugin manager instance :return: None """ printer = pluginManager.setup() molecule = quickLoad(pluginManager, pluginManager.arg("load")) printer("Filtering Atoms:") for atom in iter_atoms(molecule): if filter_atom(pluginManager, atom, "atomfilter"): printer(atom) printer.spacer() printer("\nFiltering Atom Pairs:") for atom1, atom2 in iter_atom_pairs(molecule, bound=False, unique=False): if filter_atom_pair(pluginManager, atom1, atom2, "atomfilter", "secondfilter"): printer("{} {}".format(atom1.get_name(), atom2.get_name())) printer.spacer() printer("\nUsing Custom Filter Function:") filter.register_custom_fuction("firstOf", firstOfElement) for atom in iter_atoms(molecule): if filter_atom(pluginManager, atom, "customfilter"): printer(atom)
def Uiso(data, logfile): """ Method for calculating the size of U_iso hydrogen ADP relative the the U_iso ADP of the bonding partner. """ printer.register_file(logfile, 'log', mode='a') # isofilters, isopartnerfilters = set_filter() #=========================================================================== # keys=['cart_int','cart_ext','cart_sum','cart_meas','iso_meas'] #=========================================================================== use1, use2 = None, None try: use = config.arg('iso').split(':') use1 = use[0] use2 = use[1] except: use1 = 'cart_sum' use2 = 'cart_sum' # printer('\nSelected filters:\n\n Attribute | Value | True | Function' # '\n===================================================\nAtom filter: | | |') # for isofilter in isofilters: # printer('{:15s} | {:12s} | {:5s} | {}'.format(isofilter[0], isofilter[1], isofilter[2], isofilter[3])) # printer('-----------------|--------------|-------|----------\nPartner filter: | | |') # for isofilter in isopartnerfilters: # printer('{:15s} | {:12s} | {:5s} | {}'.format(isofilter[0], isofilter[1], isofilter[2], isofilter[3])) printer('\nComparing {} of hydrogen atoms\nwith {} of parent atoms.\n'.format(use1, use2)) printer(' Riding | Parent | U_rel | U_rel\n atom | atom | geom | arith') printer(' ================================') geom_sum = [] arit_sum = [] for atom in data['exp'].atoms: # if apply_filter(atom, isofilters): for heavy_atom in cg.get_framework_neighbours(atom, useH=True): if not atom == heavy_atom and filter_atom_pair(config, atom, heavy_atom): U_rel_geom = cg.Uiso(atom.adp[use1]) / cg.Uiso(heavy_atom.adp[use2]) geom_sum.append(U_rel_geom) U_rel_arith = cg.Uiso(atom.adp[use1], mean='arithmetic') / \ cg.Uiso(heavy_atom.adp[use2], mean='arithmetic') arit_sum.append(U_rel_arith) printer(' {light:5s} | {heavy:5s} | {U:5.3f} | {U2:5.3f}'.format(light=atom.name, heavy=heavy_atom, U=U_rel_geom, U2=U_rel_arith)) printer(' -------|--------|-------|-------') printer(' {light:5s} | {heavy:5s} | {U:5.3f} | {U2:5.3f}'.format(light='mean', heavy='---', U=np.mean(geom_sum), U2=np.mean(arit_sum))) printer(' {light:5s} | {heavy:5s} | {U:5.3f} | {U2:5.3f}'.format(light='SD', heavy='---', U=np.std(geom_sum), U2=np.std(arit_sum))) printer('{temp:.1f} {U:5.3f} {Uer:5.3f} {U2:5.3f} {U2er:5.3f}'.format(temp=data.temperature, U=np.mean(geom_sum), Uer=np.std(geom_sum), U2=np.mean(arit_sum), U2er=np.std(arit_sum)), use=['log']) printer.spacer()