michellab / BioSimSpace

Code and resources for the EPSRC BioSimSpace project.
https://biosimspace.org
GNU General Public License v3.0
77 stars 19 forks source link

Lester's TODO list #128

Closed lohedges closed 4 years ago

lohedges commented 5 years ago

Just a check list of known issues and things TODO before I go on leave:

# Generate an MD process to run the protocol.
process = BSS.MD.run(system, protocol)

# Add the process to the node so that error output can be captured.
# Could be tricky if the user overwrites the process within the same node.
node.addProcess(process)
jmichel80 commented 5 years ago
  1. Finish the JOSS submission process should stay on top of the to-do list.
  2. Yes important.
  3. Yes we should run pmemd.cuda by default on GPU instances for plain MD (if available).
  4. Sounds tricky to make it work reliably and test thoroughly in a short amount of time?
  5. If you list the exceptions you have in mind we can discuss what a useful error message would look like for each of those instances.
  6. Sounds useful but I worry it's harder than it looks and therefore not doable within the time left.
  7. That's important, we should aim to describe well the process to implement the currently implemented different protocols (MD or free energy or metadynamics...) so the doc can be used as a roadmap for future protocols. I would do that rather than refactor code to make the job easier for the user.
lohedges commented 5 years ago

I've reverted the original formatting in my first post since it was specific markdown so I could check items off as they are completed. I've added your numbering after the square brackets instead.

Thanks for the comments. This is also list of known limitations as well as things to do, just so whoever is maintaining things is aware of them in my absence.

With regards to the JOSS submission: Since the review process is now active, there's not much I can do until the reviews are in. This should be done within two weeks (hopefully sooner) so these were to keep me occupied in the mean time.

For 5), I've now implemented a verbose mode that prints the full exception trace if activated. This can be done using BSS.setVerbose(True) if working interactive or in a script, or using --verbose when running a node from the command-line. This just prints the full traceback, which is mostly the output of whatever Sire exception was triggered. I'll push this to devel later when I have tested it fully. I'll also try to group some common exceptions and post them here. (Most are IO errors). I feel like I've already done a pretty good job of catching errors that occur during merging, or when copying properties from a parameterised molecule back into the molecule that was originally passed in. I think the problem with just showing the Sire exceptions is that it doesn't always help a BioSimSpace user figure out how to solve the problem, especially if they are unfamiliar with Sire. (This is why I tried to capture them and present a short-form message.)