ayaanhossain/nrpcalc

a quick question about 'Designing the Second Toolbox - First Attempt'

Closed this issue ยท 3 comments

Hi there, thx so much for providing us with such a helpful and insightful tool and also this clear jupyter tutorial.
My question is just when you design the first toolbox why did not you use a global mode function as you did in the second toolbox? Look forward to your reply.

Hi @fanision, thanks so much for checking the tool out. I am glad you find it helpful!

The first promoter toolbox is just an introductory example of what the Maker algorithm can do. It just shows how to define a sequence constraint, an easy local model function (prevent palindromic hexamers), and finally shows the practice of writing verification functions (to check if all designed promoters indeed have no palindromic hexamers inside them). The second promoter toolbox example shows how to use multiple local and global objectives by wrapping them up in a meta local or meta global model function.

At the end of the first toolbox example, when we used the verification function, it would have been better to pass it as a global model function -- you are absolutely right! This is why in the notebook we say the following

Every promoter has passed our verification so our design objective for the first toolbox was met. As we will see in the next section, the evaluation function final_cutsite_check could have been specified to Maker directly via global_model_fn parameter, which would automatically execute the evaluation on a part, after it was completely designed, and accept/reject it accordingly.

The benefit of passing this check as a global model function to Maker is that the algorithm can adjust the number of trials it needs depending on an auto-estimated probability of evaluation failure.

When I was writing the notebook, I didn't want to dump all the concepts in the first example. So, I showed a simple verification function and explained that it would be better to pass this as a global model function. It would then force the algorithm to continue making parts until the target toolbox size was reached. But, the first example had just one easy model function, and the final checker was to verify if everything went according to plan -- but yes, for practical use you would obviously want to specify that function as a global model function as done for the second toolbox.

Such a thoughtful design of tutorial writing.
Thanks so much for your reply. Everything's perfectly clearly to me now.
Really appreciate it!

Most happy to help! Good luck!