stk.ConstructedMolecule
- class stk.ConstructedMolecule(topology_graph)[source]
Bases:
MoleculeRepresents constructed molecules.
Examples
Initialization
A
ConstructedMoleculeis initialized from aTopologyGraph, which is typically initialized from someBuildingBlockinstances.import stk bb1 = stk.BuildingBlock( smiles='NCCCN', functional_groups=[stk.PrimaryAminoFactory()], ) bb2 = stk.BuildingBlock( smiles='O=CC(C=O)CC=O', functional_groups=[stk.AldehydeFactory()], ) tetrahedron = stk.cage.FourPlusSix((bb1, bb2)) cage = stk.ConstructedMolecule(tetrahedron)
Hierarchical Construction
A
ConstructedMoleculemay be used to construct otherConstructedMoleculeinstances, though you will probably have to convert it to aBuildingBlockfirstimport stk bb1 = stk.BuildingBlock( smiles='NCCCN', functional_groups=[stk.PrimaryAminoFactory()], ) bb2 = stk.BuildingBlock( smiles='O=CC(C=O)CC=O', functional_groups=[stk.AldehydeFactory()], ) tetrahedron = stk.cage.FourPlusSix((bb1, bb2)) cage = stk.ConstructedMolecule(tetrahedron) benzene = stk.host_guest.Guest( building_block=stk.BuildingBlock('c1ccccc1'), ) cage_complex = stk.host_guest.Complex( host=stk.BuildingBlock.init_from_molecule(cage), guests=benzene, ) cage_complex = stk.ConstructedMolecule(cage_complex)
Obviously, the initialization of the
ConstructedMoleculedepends mostly on the specifics of theTopologyGraphused, and the documentation of those classes should be examined for more examples.See also
- Parameters:
topology_graph (TopologyGraph) – The topology graph of the constructed molecule.
Methods
Return a clone.
Yield data about atoms in the molecule.
Yield the positions of atoms.
Yield the atoms in the molecule, ordered by id.
Yield data about bonds in the molecule.
Yield the bond in the molecule.
Yield the building blocks of the constructed molecule.
Map the id of each atom to its id under canonical ordering.
Return the centroid.
Return a vector of best fit through the atoms.
Return the maximum diameter.
Return the number of atoms in the molecule.
Return the number of bonds in the molecule.
Get the number of times building_block is present.
Return the normal to the plane of best fit.
Return a matrix holding the atomic positions.
Initialize a
ConstructedMoleculefrom its components.Initialize a
ConstructedMolecule.Return an
atomliterepresentation.Return an
rdkitrepresentation.Return a clone, with canonically ordered atoms.
Return a clone with its centroid at position.
Return a displaced clone.
Return a clone with atomic positions set by position_matrix.
Return a rotated clone.
Return a rotated clone.
Return a rotated clone.
Return a clone, with its structure taken from an atomlite database.
Return a clone, with its structure taken from a file.
Write the structure to a file.
- classmethod init(atoms, bonds, position_matrix, atom_infos, bond_infos, num_building_blocks)[source]
Initialize a
ConstructedMoleculefrom its components.- Parameters:
position_matrix (ndarray) – A
(n, 3)position matrix of the molecule.atom_infos (list[AtomInfo]) – The atom infos of the molecule.
bond_infos (list[BondInfo]) – The bond infos of the molecule.
num_building_blocks (dict[Molecule, int]) – Maps each building block of the constructed molecule to the number of times it is present in it.
- Returns:
The constructed molecule.
- Return type:
- classmethod init_from_construction_result(construction_result)[source]
Initialize a
ConstructedMolecule.- Parameters:
construction_result (ConstructionResult) – The result of a construction, from which the
ConstructedMoleculeshould be initialized.- Returns:
The constructed molecule.
- Return type:
- get_atomic_positions(atom_ids=None)
Yield the positions of atoms.
- get_atoms(atom_ids=None)
Yield the atoms in the molecule, ordered by id.
- get_bonds()
Yield the bond in the molecule.
- get_building_blocks()[source]
Yield the building blocks of the constructed molecule.
Building blocks are yielded in an order based on their position in the constructed molecule. For two topologically equivalent constructed molecules, but with different building blocks, equivalently positioned building blocks will be yielded at the same time.
- get_canonical_atom_ids()
Map the id of each atom to its id under canonical ordering.
- get_centroid(atom_ids=None)
Return the centroid.
- Parameters:
atom_ids (int | list[int] | None) – The ids of atoms which are used to calculate the centroid. If
None, all atoms are used.- Returns:
The centroid of atoms specified by atom_ids.
- Raises:
ValueError – If atom_ids has a length of
0.- Return type:
- get_direction(atom_ids=None)
Return a vector of best fit through the atoms.
- Parameters:
atom_ids (int | list[int] | None) – The ids of atoms which should be used to calculate the vector. If
None, all atoms are used.- Returns:
The vector of best fit.
- Raises:
ValueError – If atom_ids has a length of
0.- Return type:
- get_maximum_diameter(atom_ids=None)
Return the maximum diameter.
This method does not account for the van der Waals radius of atoms.
- Parameters:
atom_ids (int | list[int] | None) – The ids of atoms which are considered when looking for the maximum diameter. If
None, all atoms are used.- Returns:
The maximum diameter in the molecule.
- Raises:
ValueError – If atom_ids has a length of
0.- Return type:
- get_num_atoms()
Return the number of atoms in the molecule.
- Returns:
The number of atoms in the molecule.
- Return type:
- get_num_bonds()
Return the number of bonds in the molecule.
- Returns:
The number of bonds in the molecule.
- Return type:
- get_plane_normal(atom_ids=None)
Return the normal to the plane of best fit.
- Parameters:
atom_ids (int | list[int] | None) – The ids of atoms which should be used to calculate the plane. If
None, all atoms are used.- Returns:
Vector orthonormal to the plane of the molecule.
- Raises:
ValueError – If atom_ids has a length of
0.- Return type:
- get_position_matrix()
Return a matrix holding the atomic positions.
- Returns:
The array has the shape
(n, 3). Each row holds the x, y and z coordinates of an atom.- Return type:
- to_atomlite()
Return an
atomliterepresentation.- Returns:
The molecule in
atomliteJSON format.- Return type:
Molecule
- to_rdkit_mol()
Return an
rdkitrepresentation.- Returns:
The molecule in
rdkitformat.- Return type:
Mol
- with_canonical_atom_ordering()[source]
Return a clone, with canonically ordered atoms.
- Returns:
The clone.
- Return type:
- with_centroid(position, atom_ids=None)[source]
Return a clone with its centroid at position.
- Parameters:
- Returns:
A clone with its centroid at position.
- Return type:
- with_displacement(displacement)[source]
Return a displaced clone.
- Parameters:
displacement (ndarray) – The displacement vector to be applied.
- Returns:
A displaced clone.
- Return type:
- with_position_matrix(position_matrix)[source]
Return a clone with atomic positions set by position_matrix.
- Parameters:
position_matrix (ndarray) – The position matrix of the clone. The shape of the matrix is
(n, 3).- Returns:
The clone.
- Return type:
- with_rotation_about_axis(angle, axis, origin)[source]
Return a rotated clone.
The clone is rotated by angle about axis on the origin.
- Parameters:
- Returns:
A rotated clone.
- Return type:
- with_rotation_between_vectors(start, target, origin)[source]
Return a rotated clone.
The rotation is equal to a rotation from start to target.
Given two direction vectors, start and target, this method applies the rotation required transform start to target onto the clone. The rotation occurs about the origin.
For example, if the start and target vectors are 45 degrees apart, a 45 degree rotation will be applied to the clone. The rotation will be along the appropriate direction.
The great thing about this method is that you as long as you can associate a geometric feature of the molecule with a vector, then the clone can be rotated so that this vector is aligned with target. The defined vector can be virtually anything. This means that any geometric feature of the molecule can be easily aligned with any arbitrary direction.
- Parameters:
- Returns:
A rotated clone.
- Return type:
- with_rotation_to_minimize_angle(start, target, axis, origin)[source]
Return a rotated clone.
The clone is rotated by the rotation required to minimize the angle between start and target.
Note that this function will not necessarily overlay the start and target vectors. This is because the possible rotation is restricted to the axis.
- Parameters:
- Returns:
A rotated clone.
- Return type:
- Raises:
ValueError – If target has a magnitude of 0. In this case it is not possible to calculate an angle between start and target.
- with_structure_from_atomlite(database, key)[source]
Return a clone, with its structure taken from an atomlite database.
- Parameters:
database (Database) – The
atomlitedatabase.key (str) – The key of the molecule in the database.
- Returns:
A clone with atomic positions found in path.
- Return type:
- Raises:
ValueError – If the entry is not found in the database.
- with_structure_from_file(path, extension=None)[source]
Return a clone, with its structure taken from a file.
Multiple file types are supported, namely:
.mol,.sdf- MDL V2000 and V3000 files.xyz- XYZ files.mae- Schrodinger Maestro files.coord- Turbomole files.pdb- PDB files
- Parameters:
- Returns:
A clone with atomic positions found in path.
- Return type: