Is there a working Bulk Submission script?

The new bulkloader will save the current MFE as the target structure if the user does not specify one. The assumption being that the user is designing to the Natural shape (MFE) and hence that is the result (target) that they expect.

Changing to the submit_solution API is not important unless you plan to save the target structure. It really does not buy you much and you loose information about which candidates failed and why. That’s why I have not prioritized updating the mutation/submission booster. It’s working fine as it is unless you want the MFE saved as the target structure.

1 Like

What do you mean by “you loose information about which candidates failed and why”?

@LFP6, I have tried both bulk submission script versions. In the earlier, I would get info on exactly which design had a barcode that had been used by another design. So I could copy out this one and resubmit it with a new barcode. Or if some designs and which were not submitted. This info I don’t get with the version that makes design structure the new target structure.

I’m not sure why that would change using the new submission API - either way, those checks can/should be done before submission. If information is needed on whether the actual submission succeeded, that can be determined by whether the submission promise resolves with true, resolves with false, or rejects with an error

Then let’s keep using the same mutation/submission booster. I had been told that the booster was not storing the MFE in the database, but now I have no confirmation on that. If the developers want a script changed, they can make the change themselves or talk to you directly. That will work better than me being involved.

@DigitalEmbrace The old M/S booster does not store the MFE in the database. If that is the need then I will need to create a new version for Mutation/Submission. The current Bulk Loader is also a bit of a hack for 100nt code. I’m trying to generalize it, but it will take some time.

@LFP6 You can record which ones fail, but not why. The API method does not return error messages except via popups (which are not great for batch processing), just status. Perhaps the error message is being returned via a thrown Error. If so, I could use some help in figuring out how to catch it and save the message for display. Right now I just catch any error and count it as a failure.

The only failures you can’t get details about currently are “optional validation” failures when validate is enabled (namely, which validate optional constraints and ensure the custom target structure doesn’t have pairs specified that aren’t valid pairs in the current sequence). It would probably be a good idea for there to be an option for those to be thrown as errors as well to be able to get that info. My assumption though is that you’re talking about things like server errors though, right? In that case, if the promise rejects, the rejection value will be the thrown error - which afaik should always be an Error object, which you can get the error message from. If that doesn’t match what you’re seeing, I could use some additional details/example situations, as it may be a bug

@LFP6 I figured out how to catch the errors and extract the messages. Fixed arcknot. Will need to fix the Bulk Submission tool too.

I ran the mutation/submission script on OpenKnot round 2 and there is an error with “how the puzzle ID is being extracted” according to Jonathan due to recent internal changes. The new submission API should resolve the error. @MasterStormer would you have any interest in updating the script?

To add some extra context:

  • Due to various technical limitations moving away from Drupal, the game is now being loaded in an iframe and the puzzle ID is in the query string, not the path. The specific issue with this script is that it was looking specifically at the path and not the entire URL like other scripts do. Note that this would’ve already had issues on the mobile app (and even the script looked at the full URL, it still would’ve had issues on mobile because there are numbers earlier in the URL loaded there).
  • In this specific case, using the new submit_solution booster API should resolve the issue because you don’t need to extract the puzzle ID from the URL
  • Since there are other situations where knowing the puzzle ID is important, I’ve added a new booster API (which I’ll add to the docs shortly) - get_puzzle_id, which provides a more robust way to get the puzzle ID

@LFP6 Thanks for adding get_puzzle_id(). The mutations/submission script is in need of an update to be able to add random barcodes in any case.

Is there any idea when this might be fixed, I am having problems submitting (using bulk submission V3.6)?
Thanks

Hi @jenni111! Perhaps try the newer version of the script:

Bulk Submit with Barcode Randomizer Booster for OpenKnot 100nt Designs (v3.7 alpha03)

Also you can submit directly from ArcKnot in the newest versions of it.

I’m not sure that the v3.7 or v3.8 boosters work at the moment. However ArcKnot 3.5.5 should work to do bulk submit.

https://eternagame.org/scripts/12028622

thanks, I’ll try this latest arcknot.

@DigitalEmbrace @MasterStormer with all I am juggling right now, I don’t have the time to work on the Mutation/Submission or Bulk Submission boosters. Both are in need of some major work. That said, most of the functionalitiy of both is available in ArcKnot since it has been able to do mutations for quite some time and I’ve recently added submission. For mutation you can do marking in the lab tool and ‘Import’ the marks, or you can mark bases and pairs with ctrl-click or cmd-click. If you don’t mark anything it will (a) do a “full round” of single base and/or pair muations by default or (b) mutate to try and resolve teh worst conflicts if you are displaying MF!+CNF1 or STK1+CNF1 in the upper half. If you do mark some bases/pairs you can use Mutate, MutateN, or MutateP. Mutate mutates marked bases and pairs independently. MutateN mutates up to 6 bases in combination. MutateP mutates in combination with pairs as AU/CG/GC/GU/UA/UG only. After mutating you can optionally use Prune to throw away what it considers to be bad designs either before or after using Back/Next/Like/Unilike to review the designs.
Submit will do bulk submission though I have not yet got it to autogenerate the titles like the mutation/submission booster does. Perhaps that’s where I could focus next.

The minimal thing needed to fix the other scripts is a one-line change to adjust how the puzzle ID is retrieved. If you want, I could go in and edit the existing scripts for you (or copies of them, whatever would make sense), but I didn’t want you do that without asking (or if you were already actively working in the scripts)

@LFP6 I’m not the keeper of the Curated Mutation/Submission Script so you are certainly welcome to fix that one. I’ll see if I can do a one-liner fix to the Bulk Submission V3.6 if that is what people are using.