stk.metal_complex.Porphyrin
- class stk.metal_complex.Porphyrin(metals, ligands, reaction_factory=None, num_processes=1, optimizer=<stk._internal.optimizers.null.NullOptimizer object>, scale_multiplier=1.0)[source]
Bases:
MetalComplex
Represents a metal complex topology graph.
Metal building blocks with at least four functional groups are required for this topology.
Ligand building blocks with at least four functional group are required for this topology graph.
When using a
dict
for initialization, aBuildingBlock
needs to be assigned to each of the following numbers:metals: (0, )ligands: (0, )See
MetalComplex
for more details and examples.Initialize a
MetalComplex
.- Parameters:
metals (BuildingBlock | dict[BuildingBlock, tuple[int, ...]]) –
Can be a
dict
which maps theBuildingBlock
instances to the indices of the vertices in_metal_vertex_prototypes
it should be placed on.Can also be a
BuildingBlock
instance, which should be placed on all_metal_vertex_prototypes
on the topology graph.ligands (BuildingBlock | dict[BuildingBlock, tuple[int, ...]]) –
Can be a
dict
which maps theBuildingBlock
instances to the indices of the vertices in_ligand_vertex_prototypes
it should be placed on.Can also be a
BuildingBlock
instance, which should be placed on all_ligand_vertex_prototypes
on the topology graph.reaction_factory (Optional[ReactionFactory]) – The reaction factory to use for creating bonds between building blocks. If
None
, aDativeReactionFactory
is used, which produces only dative bonds in any reactions done by this topology construction.num_processes (int) – The number of parallel processes to create during
construct()
.optimizer (Optimizer) – Used to optimize the structure of the constructed molecule.
scale_multiplier (float) – Scales the positions of the vertices.
Methods
Return a clone.
Construct a
ConstructedMolecule
.Yield the building blocks.
Get the number of times building_block is present.
Return a clone holding different building blocks.
- clone()
Return a clone.
- Returns:
The clone.
- 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:
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.
- 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[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.
- Returns:
The clone.
- Return type: