One Plus One¶

class
OnePlusOne
(building_blocks, vertex_alignments=None, reaction_factory=GenericReactionFactory(), num_processes=1, optimizer=<stk.molecular.topology_graphs.topology_graph.optimizers.null.NullOptimizer object>)[source]¶ Bases:
stk.molecular.topology_graphs.cage.cage.Cage
Represents a capsule cage topology graph.
Unoptimized construction
Collapser
optimized constructionBuilding blocks with three functional groups are required for this topology.
When using a
dict
for the building_blocks parameter, as in Examples: MultiBuilding Block Cage Construction, aBuildingBlock
, with the following number of functional groups, needs to be assigned to each of the following vertex ids:3functional groups: 0 to 1See
Cage
for more details and examples.Methods
clone
()Return a clone.
Construct a
ConstructedMolecule
.Yield the building blocks.
get_num_building_block
(building_block)Get the number of times building_block is present.
with_building_blocks
(building_block_map)Return a clone holding different building blocks.

__init__
(building_blocks, vertex_alignments=None, reaction_factory=GenericReactionFactory(), num_processes=1, optimizer=<stk.molecular.topology_graphs.topology_graph.optimizers.null.NullOptimizer object>)¶ Initialize a
Cage
. Parameters
building_blocks (
iterable
ordict
) –Can be a
iterable
ofBuildingBlock
instances, which should be placed on the topology graph.Can also be a
dict
which maps theBuildingBlock
instances to the ids of the vertices it should be placed on. Adict
is required when there are multiple building blocks with the same number of functional groups, because in this case the desired placement is ambiguous.vertex_alignments (
dict
, optional) – A mapping from the id of aVertex
to anEdge
connected to it. TheEdge
is used to align the firstFunctionalGroup
of aBuildingBlock
placed on that vertex. Only vertices which need to have their default edge changed need to be present in thedict
. IfNone
then the default edge is used for each vertex. Changing whichEdge
is used will mean that the topology graph represents different structural isomers. The edge is referred to by a number between0
(inclusive) and the number of edges the vertex is connected to (exclusive).reaction_factory (
ReactionFactory
, optional) – The reaction factory to use for creating bonds between building blocks.num_processes (
int
, optional) – The number of parallel processes to create duringconstruct()
.optimizer (
Optimizer
, optional) – Used to optimize the structure of the constructed molecule.
 Raises
AssertionError – If the any building block does not have a valid number of functional groups.
ValueError – If the there are multiple building blocks with the same number of functional_groups in building_blocks, and they are not explicitly assigned to vertices. The desired placement of building blocks is ambiguous in this case.
UnoccupiedVertexError – If a vertex of the cage topology graph does not have a building block placed on it.
OverlyOccupiedVertexError – If a vertex of the cage topology graph has more than one building block placed on it.

clone
()¶ Return a clone.
 Returns
The clone. Has the same type as the original topology graph.
 Return type

construct
()¶ Construct a
ConstructedMolecule
. Returns
The data describing the
ConstructedMolecule
. Return type

get_building_blocks
()¶ Yield the building blocks.
Building blocks are yielded in an order based on their position in the topology graph. For two equivalent topology graphs, but with different building blocks, equivalently positioned building blocks will be yielded at the same time.
 Yields
BuildingBlock
– A building block of the topology graph.

get_num_building_block
(building_block)¶ Get the number of times building_block is present.
 Parameters
building_block (
BuildingBlock
) – The building block whose frequency in the topology graph is desired. Returns
The number of times building_block is present in the topology graph.
 Return type

with_building_blocks
(building_block_map)¶ Return a clone holding different building blocks.
 Parameters
building_block_map (
dict
) – Maps a building block in the current topology graph to the building block which should replace it in the clone. If a building block should be not replaced in the clone, it can be omitted from the map. Returns
The clone. Has the same type as the original topology graph.
 Return type


class
OnePlusOneVertex
(id, position, edge_normal, use_neighbor_placement=True, aligner_edge=0)[source]¶ Bases:
stk.molecular.topology_graphs.cage.vertices.NonLinearVertex
Methods
clone
()Return a clone.
Return the aligner edge of the vertex.
get_cell
()Get the cell of the lattice in which the vertex is found.
get_id
()Get the id.
Get the position.
init_at_center
(id, vertices)Initialize a
_CageVertex
in the middle of vertices.Map functional groups to edges.
place_building_block
(building_block, edges)Place building_block on the
Vertex
.True
if the position should be updated based on neighbors.with_aligner_edge
(aligner_edge)Return a clone with a different aligner_edge.
with_position
(position)Get a clone at a certain position.
with_scale
(scale)Get a clone with a scaled position.

__init__
(id, position, edge_normal, use_neighbor_placement=True, aligner_edge=0)[source]¶ Initialize a
_CageVertex
. Parameters
id (
int
) – The id of the vertex.use_neighbor_placement (
bool
, optional) – IfTrue
, the position of the vertex will be updated based on the neighboring functional groups.aligner_edge (
int
, optional) – The edge which is used to align theBuildingBlock
placed on the vertex. The firstFunctionalGroup
is rotated such that it lies exactly on thisEdge
. Must be between0
and the number of edges the vertex is connected to.

get_aligner_edge
()¶ Return the aligner edge of the vertex.
 Returns
The aligner edge.
 Return type

get_cell
()¶ Get the cell of the lattice in which the vertex is found.
 Returns
The cell of the lattice in which the vertex is found.
 Return type

get_position
()¶ Get the position.
 Returns
The position of the
Vertex
. Return type

classmethod
init_at_center
(id, vertices)¶ Initialize a
_CageVertex
in the middle of vertices.

map_functional_groups_to_edges
(building_block, edges)¶ Map functional groups to edges.
Each functional group in building_block needs to be assigned to an edge in edges.
 Parameters
building_block (
BuildingBlock
) – The building block which is needs to have functional groups assigned to edges.edges (
tuple
ofEdge
) – The edges to which the vertex is attached.
 Returns
A mapping from the id of a functional group in building_block to the id of the edge in edges it is assigned to.
 Return type

place_building_block
(building_block, edges)[source]¶ Place building_block on the
Vertex
. Parameters
building_block (
BuildingBlock
) – The building block molecule which is to be placed on the vertex.edges (
tuple
ofEdge
) – The edges to which the vertex is attached.
 Returns
The position matrix of building_block after being placed.
 Return type
numpy.nadarray

use_neighbor_placement
()¶ True
if the position should be updated based on neighbors. Returns
True
if the position of the vertex should be updated based on the positions of functional groups on neighboring vertices. Return type

with_aligner_edge
(aligner_edge)¶ Return a clone with a different aligner_edge.
 Parameters
aligner_edge (
int
) – The aligner edge of the clone. Returns
The clone. Has the same type as the original instance.
 Return type
_CageVertex

with_position
(position)¶ Get a clone at a certain position.
 Parameters
position (
numpy.ndarray
) – The desired position of the clone. Returns
The clone. Has the same type as the original vertex.
 Return type

with_scale
(scale)¶ Get a clone with a scaled position.
 Parameters
scale (
float
ortuple
offloat
) – The value by which the position of theVertex
is scaled. Can be a single number if all axes are scaled by the same amount or atuple
of three numbers if each axis is scaled by a different value. Returns
The clone. Has the same type as the original vertex.
 Return type
