exatomic.algorithms.neighbors module
Neighbor Selection Algorithms
This module provides algoirthms for selecting nearest neighbors, e.g. nearest solvent molecules to a solute molecule. Because two body properties do not always represent the desired molecules (i.e. bonds appear where they are not desired), these algorithms are not completely black box.
Before performing a search, check that the molecule table is computed as desired
and classified (if necessary): see compute_bonds()
and classify().
- exatomic.algorithms.neighbors.periodic_nearest_neighbors_by_atom(uni, source, a, sizes, **kwargs)[source]
Determine nearest neighbor molecules to a given source (or sources) and return the data as a dataframe.
Warning
For universes with more than about 250 atoms, consider using the slower but more memory efficient
periodic_nearest_neighbors_by_atom_large().For a simple cubic periodic system with unit cell dimension
a, clusters can be generated as follows. In the example below, additional keyword arguments have been included as they are almost always required in order to correctly identify molecular units semi-empirically.periodic_nearest_neighbors_by_atom(u, [0], 40.0, [0, 5, 10, 50], dmax=40.0, C=1.6, O=1.6)
Argument descriptions can be found below. The additional keyword arguments,
dmax,C,O, are passed directly to the two body computation used to determine (semi-empirically) molecular units. Note that although molecules are computed, neighboring molecular units are determine by an atom to atom criteria.- Parameters:
- Returns:
dct (dict) – Dictionary of sliced universes and nearest neighbor table
See also
Sliced universe construction can be facilitated by
construct().
- exatomic.algorithms.neighbors.periodic_nearest_neighbors_by_atom_large(uni, source, a, sizes, **kwargs)[source]
Determine nearest neighbor molecules to a given source (or sources) and return the data as a dataframe.
Tip
This function performs the same operation as
periodic_nearest_neighbors_by_atom(), but is meant for universes containing more than about 250 atoms per frame (the referenced function will be faster for smaller universes).For a simple cubic periodic system with unit cell dimension
a, clusters can be generated as follows. In the example below, additional keyword arguments have been included as they are almost always required in order to correctly identify molecular units semi-empirically.periodic_nearest_neighbors_by_atom_ooc(u, [0], 40.0, [0, 5, 10, 50], dmax=40.0, C=1.6, O=1.6)
Argument descriptions can be found below. The additional keyword arguments,
dmax,C,O, are passed directly to the two body computation used to determine (semi-empirically) molecular units. Note that although molecules are computed, neighboring molecular units are determine by an atom to atom criteria.- Parameters:
- Returns:
dct (dict) – Dictionary of sliced universes and nearest neighbor table
See also
Sliced universe construction can be facilitated by
construct().