I'm doing my thesis about Protein Design using a ASP solver. My area is Informatic, so i don't understand many things about proteins.
For my work i have a fixed backbone and i have to do a asp program that determine the optimum set of rotamers for that backbone.
I need to have a energy table with all energies for all possible rotamers.
I think that rosetta might help me, but i can't exactly figure it out how i do it.
I've already installed rosetta.
Is it possible to use rosetta to calculate energies for all possible rotamers? If yes, can someone tell me what application should i use and give me an exemple of a comand line to use it?
Thank you very much.
You don't need Rosetta for this. Rosetta gets its rotamers, and their probabilistic energies, directly from the libraries published by Roland Dunbrack. Both Dunbrack and the Richardson group make rotamer libraries; read their papers for details.
One thing to be aware of is the difference in various schemes of *how* the energies of protein rotamers is calculated.
Rosetta takes a "statistical potential" view of rotamer energies. That is, you start with the observed probabilities of each amino acid rotamer in the Protein Data Bank (as compiled by Roland Dunbrack). You then use the Boltzmann distribution to back-calculate the theoretical energies of each rotamer such that the Boltzman distribution would result in the observed frequencies. This gives rather good correlation with experimental protein structures, but unfortunately the resulting energies are in arbitrary units, rather than experimental units like kcal/mole or kJ/mole.
Another approach (the one typically used by molecular dynamics programs such as AMBER, CHARMM, GROMACS, etc.) is to approximate bond stretching, angular vibration and torsional rotation as a simple harmonic oscillators (or something similar). You then attach a spring constant to each of the sets of atom types for each of the types of vibrations. You then run a bunch of simulations (typically on representative small molecules), tweaking the values of the spring constants until you get results (solvation energy, energy of vaporization, crystal structure, etc.) which match up with experiment. You can then use these values to calculate the point energy of any given sidechain conformation. This can give you values in experimental units, but depending on how you parametrized the values (e.g. how representative the small molecules you used were of proteins) it may or may not match up all that well with experimentally observed sidechain conformations.
A third way is to go all the way to Quantum Mechanical simulations, and use QM calculations on their own to assign energies to each of the sidechain conformations. I don't think that any major software packages bases sidechain energies just on QM results, but I believe it is occasionally used to adjust the molecular mechanics potentials and it's also been used to investigate Rosetta's statistical potential. (See "Using quantum mechanics to improve estimates of amino acid side chain rotamer energies." by Renfrew, Butterfoss, and Kuhlman.)
Upon reflection, I realize that you might be looking not just for the internal energies of a given rotamer, but also the interaction energy between two rotamers on a given backbone (e.g. not just "what's the energy of arginine rotamer 14?" but also "what's the energy of interaction between arginine rotamer 14 at position 23 with leucine rotamer 5 at position 29?"
Rosetta can give you something like that, but there's not a program which explicitly does so. Rosetta uses a stochastic Monte Carlo simulated annealing technique to assign rotamers to given positions, so it's faster to compute only those interaction energies it needs when it needs them. This is in contrast to some other design and repacking programs (such as ones using dead end elimination) which require computation of the full interaction table before the rotamer assignment process begins.
If you're looking to use Rosetta to get the internal and interaction energies of the various rotamers, you're going to have to do a little programming. You can either build and compile a small C++ application which uses the Rosetta library to do the computation, or perhaps easier would be to use the PyRosetta Python interface to do the calculations.
Either way, you'll likely want to use the eval_ci_1b/eval_cd_1b/eval_ci_2b/eval_ci_2b methods of the ScoreFunction object to evaluate the internal and interaction energies of each rotamer and rotamer pair, and the core::pack::rotamer_set::RotamerSetFactory and RotamerSet objects to iterate over the possible rotamers for each position.
Thank you very much.
In fact that's exactly what i need. Sorry for my not so clear question. I need the energy of interaction between rotamers.
I'll try to use the methods you mentioned.
Once again, thank you very much!