# Mutator. # ##################################################################### mutator = stk.Random( stk.RandomBuildingBlock( amine_building_blocks, key=lambda mol: mol.func_groups[0].fg_type.name == "primary_amine", duplicate_building_blocks=False, random_seed=random_seed, ), stk.SimilarBuildingBlock( amine_building_blocks, key=lambda mol: mol.func_groups[0].fg_type.name == "primary_amine", duplicate_building_blocks=False, random_seed=random_seed, ), stk.RandomBuildingBlock( aldehyde_building_blocks, key=lambda mol: mol.func_groups[0].fg_type.name == "aldehyde", duplicate_building_blocks=False, random_seed=random_seed, ), stk.SimilarBuildingBlock( aldehyde_building_blocks, key=lambda mol: mol.func_groups[0].fg_type.name == "aldehyde", duplicate_building_blocks=False, random_seed=random_seed, ), ) # ##################################################################### # Optimizer.
mutator = stk.Random( stk.RandomBuildingBlock( building_blocks=amines, key=lambda mol: mol.func_groups[0].fg_type.name == 'amine', duplicate_building_blocks=False, random_seed=random_seed, use_cache=True, ), stk.SimilarBuildingBlock( building_blocks=amines, key=lambda mol: mol.func_groups[0].fg_type.name == 'amine', duplicate_building_blocks=False, random_seed=random_seed, use_cache=True, ), stk.RandomBuildingBlock( building_blocks=aldehydes, key=lambda mol: mol.func_groups[0].fg_type.name == 'aldehyde', duplicate_building_blocks=False, random_seed=random_seed, use_cache=True, ), stk.SimilarBuildingBlock( building_blocks=aldehydes, key=lambda mol: mol.func_groups[0].fg_type.name == 'aldehyde', duplicate_building_blocks=False, random_seed=random_seed, use_cache=True, ), random_seed=random_seed, )