M3L3 Triangle
- class M3L3Triangle(corners, linkers, vertex_alignments=None, reaction_factory=GenericReactionFactory(), num_processes=1, optimizer=<stk.molecular.topology_graphs.topology_graph.optimizers.null.NullOptimizer object>)[source]
Bases:
Cage
Represents a cage topology graph.
Unoptimized construction
MCHammer
optimized constructionBoth corner and linker vertices require building blocks with two functional groups for this topology. This class replaces the building_blocks parameter with the corner and linker parameters.
See
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__(corners, linkers, vertex_alignments=None, reaction_factory=GenericReactionFactory(), num_processes=1, optimizer=<stk.molecular.topology_graphs.topology_graph.optimizers.null.NullOptimizer object>)[source]
Initialize a
M3L3Triangle
.- Parameters:
corners (
dict
orBuildingBlock
) –Can be a
dict
which maps theBuildingBlock
instances to the ids of the vertices it should be placed on.Can also be a
BuildingBlock
instance, which should be placed on all corner vertices on the topology graph.linkers (
dict
orBuildingBlock
) –Can be a
dict
which maps theBuildingBlock
instances to the ids of the vertices it should be placed on.Can also be a
BuildingBlock
instance, which should be placed on all linker vertices on the topology graph.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.
- construct()
Construct a
ConstructedMolecule
.- Return type:
- Returns:
The data describing the
ConstructedMolecule
.
- 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:
A building block of the topology graph.
- Return type:
- 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.- Return type:
- Returns:
The number of times building_block is present in the topology graph.
- with_building_blocks(building_block_map)
Return a clone holding different building blocks.
- Parameters:
building_block_map (
dict
[BuildingBlock
,BuildingBlock
]) – 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.- Return type:
- Returns:
The clone.