Ejemplo n.º 1
0
crosser = stk.GeneticRecombination(
    key=lambda mol: mol.func_groups[0].fg_type.name,
    random_seed=random_seed,
    use_cache=True,
)

# #####################################################################
# Mutator.
# #####################################################################

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,
# Crosser.
# #####################################################################

crosser = stk.GeneticRecombination(
    key=lambda mol: mol.func_groups[0].fg_type.name,
    random_seed=random_seed,
)

# #####################################################################
# 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(
Ejemplo n.º 3
0
    stk.AboveAverage(num_batches=10, duplicates=False),
    stk.Roulette(num_batches=5))

# #####################################################################
# Crosser.
# #####################################################################

crosser = stk.Jumble(num_offspring_building_blocks=3)

# #####################################################################
# Mutator.
# #####################################################################

mutator = stk.RandomMutation(
    stk.RandomTopologyGraph(topology_graphs),
    stk.RandomBuildingBlock(building_blocks, lambda mol: True),
    stk.SimilarBuildingBlock(building_blocks, lambda mol: True, False))

# #####################################################################
# Optimizer.
# #####################################################################

optimizer = stk.NullOptimizer(use_cache=True)

# #####################################################################
# Fitness calculator.
# #####################################################################


def num_atoms(mol):
    return len(mol.atoms)