ryanmcgreevy / ModelMaker

ModelMaker plugin of VMD
2 stars 1 forks source link

MDFF Module #25

Closed trudack closed 7 years ago

trudack commented 7 years ago

prepare a psf for mdff run:

inputpdb, either a list for each {, , } or a text file containing the list for all subunits, list of topology files (optional, default charmm36)

mdff run:

input pdb, input map, map resolution, gscale, number of min steps, number of mdrun steps, fix selection, extrabond files

trudack commented 7 years ago

MDFF needs a pdb output of the last frame with correct chain IDs. Right now it takes the first letter of the segname as chain ID.

trudack commented 7 years ago

From my point of view the prep module should also have the options to create the Restraints files for secondary structure, cis peptide bonds, and chirality

the mdff run needs also the options to set each of the three restraints on or off

ryanmcgreevy commented 7 years ago

In this commit I added a makepsf command which wraps a modified version of the old auto_makepsf command used by start_mdff_run. It does not yet support the mutations option because there is not an example of that in the tutorial, so I am not totally clear on how it works or what it expects as input.

As for the "MDFF module", I am still contemplating its functionality. In principle, all of the remaining requested functionality already exists in the mdff plugin. In general, my view of the modelmaker command line interface (CLI) is that it should be a collection of discreet methods that can be tied together in 'protocols'. This is similar to the older RosettaVMD scripts. So, in practice, anyone can take the individual modelmaker commands and piece them together with, for example, the mdff commands, for their particular problem. I do perhaps see the use of something like start_mdff_run for easily setting up very simple mdff simulations, especially for people that don't want to learn mdff. However it worries me a bit because it adds even more layers of assumptions and abstractions. Perhaps I will mock up one of these "protocols" as I envision them (which will be fully functional with existing features) so we can discuss it further.

However, the usage can be more abstracted when using ModelMaker from the GUI. In GUI usage, the user can create protocols like in qwikmd, where the GUI will take all the necessary steps to generate all of the Rosetta, MDFF, or whatever else files for each step with one click of a button.

ryanmcgreevy commented 7 years ago

As I discussed with @trudack over Skype, I will implement a wrapper to the start_mdff_run along the same lines as the other commands, and making sure the old command uses the new syntax for auto_makepsf. Additionally, in whatever documentation or example shows how to run MDFF, we will also show the more 'verbose' way of calling the individual commands, in case the user wants more customization beyond what the wrapper allows.

trudack commented 7 years ago

I understood that if I use makepsf on a pdb with chain IDs and segnames it will keep them by default. However modelmaker believes that this is the naming if I do not specify -chseg

name:rpn11 chain:A segname:AP1

which has nothing to do with my pdb.

What is the right syntax to use the -chseg option? I always get this error what ever I tried.

Unknown argument -chseg

I will sent the pdb I tried to @ryanmcgreevy as git hub does not allow to upload pdb file format.

ryanmcgreevy commented 7 years ago

Yes sorry, I just replied to your email. I accidentally left a line of code I was using to test something in when it was meant to be removed before committing. It should work now.

ryanmcgreevy commented 7 years ago

I've just pushed a new "mdff" branch that you can check out, if you want. It is completely untested at this point, but I'm not sure how far I would be able to get in its testing before the weekend, that I wanted to go ahead and at least get it committed in some form. I'll continue to work on that branch if there are problems with it and merge it to master when everything is done.

trudack commented 7 years ago

The not yet used "muation" option should be activated and should be incorporated as protonation option to make psf.

This option allows to change the protonation state e.g. of an HIS from default delta to epsilon. This is effectlivly reached by the mutation command during psfgen (mutate 279 HSE)

-protonation {279 HSE}

In the case example for Rpn11 this should change the protonation of HIS 279 from HSD to HSE.

QwikMD Code also handles Protonation states. Check the code if QwikMD does it in a better way.

ryanmcgreevy commented 7 years ago

In this commit I merged the mdff branch into master because I added a bunch of bug fixes and successfully tested the mdff command using the tutorial example. I added the example commands I tested into the wiki on the new mdff page.

ryanmcgreevy commented 7 years ago

makepsf now has a -prot option for setting the protonation states

trudack commented 7 years ago

@ryanmcgreevy there is a bug in the mdff module

the output from mdff (dcd-last.pdb) should have the same chain IDs as the input for MDFF. However MDFF does only keep the segnames but not chain IDs. MDFF uses the first letter of the segname as chain ID.

I will sent you an example file by mail

trudack commented 7 years ago

It should be possible to use the refine and the mdff command modular.

So far I was only able to run one rosetta refine followed by one mdff run.

Most of the time it makes sense to start with MDFF, which is not possible so far.

In principle it should be possible to run a script like this:

modelmaker mdff modelmake refine cartesian modelmaker mdff modelmaker mdff modelmaker refine backbone modelmaker mdff modelmaker refine sidechain modelmaker mdff

I will sent @ryanmcgreevy an example script and inputfiles.

We likely have to think about a better way to name the files as with the existing way the file names are getting to long.

trudack commented 7 years ago

If I run mdff on GPU I got already a couple of times this error:

------------- Processor 3 Exiting: Called CmiAbort ------------ Reason: FATAL ERROR: CUDA error cudaGetDeviceCount(&deviceCount) in file src/DeviceCUDA.C, function initialize on Pe 3 (sinope): unknown error

Just restarting the run usually solves it. However it would be pretty annoying if an iterative run crashes due to this error. It might be good if modelmaker would not stop if this error ocures but just restarts. There could be a safety mechanism that if the error ocurs three times in a row it will stop.

ryanmcgreevy commented 7 years ago

I just committed a new, basic, rework of the mdff command. It retains the same arguments as the old version, but now allows you to start with any pdb, not only specifically one from a rosetta run. I am still not sure whether I want this code in the modelmaker or mdff plugin, but for now it is in modelmaker for ease of updating and testing.

@trudack please test this new version and let me know what bug fixes or enhancements you want.