vermouth.processors.locate_charge_dummies module¶
Provides a processor that generates positions for every charge dummy.
- class vermouth.processors.locate_charge_dummies.LocateChargeDummies(attribute_tag='charge_dummy')[source]¶
Bases:
Processor
- vermouth.processors.locate_charge_dummies.colinear_pair()[source]¶
Build two points on a line around the origin at a random orientation.
- vermouth.processors.locate_charge_dummies.fibonacci_sphere(n_samples)[source]¶
Place points near-evenly distributed on a sphere.
Use the Fibonacci sphere algorithm to place ‘n_samples’ points at the surface of a sphere of radius 1, centered on the origin.
- Parameters:
n_samples (int) – Number of points to place.
- Returns:
3D coordinates of the points.
- Return type:
- vermouth.processors.locate_charge_dummies.find_anchor(molecule, node_key, attribute_tag='charge_dummy')[source]¶
Find the non-dummy bead to which a charge dummy is anchored.
Each charge dummy has to be attached to exactly one non-dummy atom. This function returns the node key for that non-dummy atom.
- Parameters:
molecule (networkx.Graph) – The molecule to work on.
node_key – The node key of the charge dummy.
attribute_tag (str) – The name of the atom attribute used to describe charge dummies.
- Returns:
The node key of the anchor in the molecule graph.
- Return type:
- Raises:
ValueError – Raised if there are no anchor, or more than one anchor, found. Raised also if the charge dummy is not a charge dummy.
- vermouth.processors.locate_charge_dummies.locate_all_dummies(molecule, attribute_tag='charge_dummy')[source]¶
Set the position of all charge dummies of a molecule.
The molecule is modified in-place.
The charge dummies are placed at a distance to the anchor defined in nm by their charge dummy attribute, the name of which is given in the ‘attribute_tag’ argument.
- Parameters:
molecule (vermouth.molecule.Molecule) – The molecule to work on.
attribute_tag (str) – Name of the atom attribute that describe charge dummies.
- vermouth.processors.locate_charge_dummies.locate_dummy(molecule, anchor_key, dummy_keys, attribute_tag='charge_dummy')[source]¶
Set the position of a group of charge dummies around a non-dummy anchor.
The molecule is modified in-place.
The charge dummies are placed at a distance to the anchor defined in nm by their charge dummy attribute, the name of which is given in the ‘attribute_tag’ argument.
- Parameters:
molecule (vermouth.molecule.Molecule) – The molecule to work on.
anchor_key – The key of the non-dummy anchor all the charge dummies are connected to.
dummy_keys (collections.abc.Iterable) – A collection of atom keys for charge dummies to position.
attribute_tag (str) – Name of the atom attribute that describe charge dummies.