You are here

RosettaHoles for PyRosetta - Void Detection/Scoring

6 posts / 0 new
Last post
RosettaHoles for PyRosetta - Void Detection/Scoring

Dear All,


Is there a mover in PyRosetta for scoring/detecting/desining a protein's core especially getting rid of voids?


I understand there was a RosettaHoles, which i cannot find in Rosetta 3.8 (where did it go)? Nor any info about it and how to use it, or its .cc file so i can try and write something similar in python.


I tried RosettaVIP in C++, but i could not get it to work properly (get rid of voids), nor could i find something similar in PyRosetta.


Any info or help will assist me in writing a code that designs proteins with better packed cores in python using PyRosetta.


Thank You

Post Situation: 
Sat, 2017-07-01 11:28

Regarding RosettaHoles,  you get the functionality by calling the compute_rosettaholes_score(), compute_holes_score(), and output_packstat_pdb() functions in the core.scoring.packstat namespace in PyRosetta (other functions in that namespace may also be helpful).  Note that you will likely need to set the -holes:dalphaball option in the commandline to the path to the DAlphaBall executable. This is can be compiled separately in the main/source/external/DAlpahBall/  directory of the regular Rosetta distribution, though I don't know if it comes along with PyRosetta.

Regarding VIP, the core of the protocol is the mover. The rest of the application is mostly an iteration of applying this mover multiple times, after an initial pre-relax.

Mon, 2017-07-03 08:55

Thank you for your replay,


I tried the functions:


But i get an error:

AttributeError: module 'rosetta.core.scoring.packstat' has no attribute 'compute_rosettaholes_score'

AttributeError: module 'rosetta.core.scoring.packstat' has no attribute 'compute_holes_score'


rosetta.core.scoring.packstat does however have these functions:



Have they been renamed? or am i searching the wrong place?



I looked at the VIP_Mover(), what attributes does it take? I tried VIP_Mover(pose) but it did not work. How can i use it?

It has the following functions:


are these the ones i should be using?

Mon, 2017-07-03 13:43

Sorry, the compute_rosettaholes_score() and compute_holes_score() functions are in the core.scoring.packing namespace, not the core.scoring.packstat namespace.


Right, despite it's name the VIP_Mover is not a subclass of Mover. But it's use is somewhat similar. That is, you would create a VIP_Mover object, then set the various settings by using member functions on the VIP_Mover object, and then call the apply() function.

In particular, you'll want to use the set_initial_pose() and possibly the set_iteration() methods to set things up, and then the get_final_pose() and get_final_energy() methods to get the results. Optionally, you may want to use the set_energy_to_beat() and set_use_stored_energy() methods if you want to do multiple rounds. 

Mon, 2017-07-03 15:02

I got VIP_Mover() working.


I could not get compute_rosettaholes_score() to work, as you said, it required DAlpahBall, I am not sure how to implement this in PyRosetta so I will put it asside for now and concetrate my work on VIP_Mover()


Thank you.

Tue, 2017-07-04 10:28

You don't need to implement DAlphaBall in Python.  What you would need to do is obtain the compiled DAlphaBall executable and point the command line option to that location. (That is, set the option to a string with the local path to the executable.)   (Py)Rosetta will take care of  actually calling the external executable.)

The only tricky bit would be getting the DAlphaBall executable in the first place. I don't think it comes with PyRosetta itself, but if you get the regular Rosetta, it's a relatively simple additional compile, and the DAlphaBall executable from regular Rosetta will work with PyRosetta.

That said, if you're on Windows or otherwise don't want to bother with the separate compile, I can understand not wanting to bother with it.

Thu, 2017-07-06 12:49