You are here

Rosetta relax application for generating ensemble of structures.

4 posts / 0 new
Last post
Rosetta relax application for generating ensemble of structures.

Hello Rosetta Users,

I am new to Rosetta. I am trying to preprocess input structures for interface design using the relax application. While playing around with various options, I noticed that the default relax run using an -nstruct 50 produces structures that on superposition seem to resemble an ensemble of structures, similar to something we would obtain from NMR experiments. Futhermore, I noticed that running relax on protein structures that are known to be stable produce an ensemble with low fluctuations around the mean positions, whereas more flexible proteins have high fluctuations around the mean positions. 

Since the next step in my workflow involves ensemble docking with another protein partner, it occured to me that these ensembles for both protein partners (as obtained from relax step) can be used for docking and producing all combinations of protein-protein complexes. Is this the right way to go about it? Alternatively, I was thinking of generating the ensemble using CONCOORD, but that would involve addtional steps and extra amount of work to parse and prepare the output for the docking and design step. Using Relax seemed to be a simpler approach, but is it a correct one?

Thanks in advance.

Post Situation: 
Mon, 2018-02-26 09:08

I also read somewhere that ideally mutiple structures should be generated using relax and these structures can be starting points for any design application. But some clarification on this may be helpful.

Mon, 2018-02-26 22:32

Generating relax ensembles is a very reasonable thing to do!  We know proteins are not static.  Rosetta really only considers snapshots, but by modeling on a relax ensemble (or a backrub ensemble) we hope that some of the real backbone flexibility is taken into account when considering the ensemble as a whole.

In a design context - designing on an ensemble and considering the sequence preferences of the whole output will insulate you from some types of noise.  Let's say tryptophan happens to fit perfectly when some protein region is in its loosest conformation, but usually a phenylalanine is a better fit.  Design on just one (loose) backbone will give you a bad tryptophan design; design on the ensemble will tell you tryptophan fits only a few of the backbones in the ensemble.

In terms of actually running code - "ensemble thinking" is mostly something the experimenter does rather than something Rosetta does.  For design, the two options that come to mind are A) just run the same design on the whole ensemble, and process the resulting sequences into sequence profiles for your consideration, or B) set up your backbones as positive states in multi-state design and design on all of them simultaneously (

For docking - there is an ensemble docking mode but I don't know where it is documented or how to use it.  I've sent out a line to the other developers to chime in.



Thu, 2018-03-01 08:23

As Steven said, using relax to generate ensembles is reasonable. However, relax doesn't tend to move the structures too much, so your ensemble might look very similar to your starting model. This is usually a good thing, but if you suspect your protein to be flexible, I would suggest other ways of generating ensembles like normal mode analysis or loop modeling. This is a paper that describes various ensemble generation methods that have been used for docking ensembles: (

You can use pretty much any method you want, including tCONCOORD or even MD snapshots. The things that you need to be careful about are:

  • All the conformations have the same number of residues.
  • If you use a non-Rosetta protocol to generate the ensembles or use a non-standard score function in Rosetta, relax with constraints (nstruc = 1 is enough) with the standard score function. Although you can prepack, the backbone clashes may not be alleviated.
  • You might get a disulfide bond breakage error if the method that you use does not preserve these. Usually you don't have to worry about them with Rosetta methods.


Also, for running docking_protocol with ensembles, you must use docking_prepack_protocol to prepack the ensemble.

Tue, 2018-03-06 14:15