def single_plate_design(
num_peptides: int = 100,
wells_per_plate : int = 96,
control_wells : int = 0,
invalid_neighbors: PeptidePairList = [],
preferred_neighbors: PeptidePairList = [],) -> Solution:
"""
High level entry-point for designing a single plate ELISpot experiment
"""
best_solution = None
best_violations = None
best_num_pools = None
max_total_pools = wells_per_plate - control_wells
for num_replicates in range(2, 6):
max_peptides_per_pool = int(math.ceil(num_replicates * num_peptides / max_total_pools))
# call find_best_solution repeatedly and return the "best of the best"
Started this: