Is there any way to remove options during a script once initialized in rosetta.core.init( args )?
I'm not sure if it's something that's been exposed at the Python level, but at least at the C++ level, it's possible to do things like
basic::options::option[ basic::options::OptionKeys::corrections::score::no_his_his_pairE ].value(true);
basic::options::option[ basic::options::OptionKeys::corrections::score::no_his_his_pairE ].to_default();
to set an option to a given value or reset it to its default value.
Such option manipulation is typically frowned upon, though - ideally there should be a way to do things so you don't have to go through the options system (e.g. by passing the value to the correct constructor), though unfortunately there sometimes isn't a way around the options system.
Thanks for the tip. I'm also trying to use the full perturb KIC application within pyrosetta as well. I know that there is access to the KIC Mover, but it doesn't seem like that centroid stage reproduces what the application does. The refine KIC seems to be the whole refinement protocol though. Do you know how to either access the full KIC application within PyRosetta or where to find the source within Rosetta for the KIC application so that I can try to reproduce it? There is a test_KIC.py within the PyRosetta test....how close is this to the full application?
I am not using pyrosetta myself, so I can't help you much on that side, but I worked a lot with KIC in standard Rosetta.
In general, the whole KIC protocol consists of a centroid remodel stage, followed by a fullatom refinement stage. Depending on want you want to do, you might either need the full KIC protocoll (e.g. if you are trying to do de novo loop building/reconstruction) or just the refinement stage (e.g. for modeling backbone flexibility). All KIC variants can be run using the loopmodel application in Rosetta. You have to specify which protocol should be run using the respective flags (i.e. -loops:remodel perturb_KIC and/or -loops:refine refine_KIC).
I recently updated the KIC documentation where you can find all the details:
Hope this helps.
Thanks, I ended up using a combination of PyRosetta and Rosetta on our cluster (basically PyRosetta to output loop files, control the cluster, run analysis, etc.). The documentation is very good!
Few questions maybe you could help with?
Does the perturb_KIC protocol use only the cen_std weights file during it's moves? Does it ever switch to FullAtom within the protocol? How does one enable: "protocols.looprelax: intermedrelax no" Where does this intermediate relax occur and is it all-atom?
> The documentation is very good!
As far as I know, the perturb_KIC protocol uses only the score4L function for scoring poses during the centroid stage, and it does not switch to the fullatom stage. However, if you use the -out:file:fullatom flag, then it will put sidechains back onto the structure before it writes the PDB. If you also use the -in:file:fullatom flag, then it will preserve the sidechain conformations of the input structure instead of replacing those by randomized/idealized conformations.
You can activate the intermediate relax, which happens between the centroid and fullatom stages, by using the -loops:intermedrelax flag.
It will do a standard relax, if you say '-loops:intermedrelax relax' or a fast relax (ususally recommended) with '-loops:intermedrelax fastrelax'
If you prefer to have only the final structure (after fullatom refinement) relaxed, you can instead pass the flag '-loops:relax relax' or '-loops:relax fastrelax'.
Wow, thanks for the thorough answer! I didn't even know about the score4L patch before this! This will definitely help!
Would you be able to update the documentation again for the loop relaxation?