Member Site › Forums › Rosetta 3 › Rosetta 3 – General › rama energy term and explicit zero
- This topic has 2 replies, 2 voices, and was last updated 8 years, 11 months ago by Anonymous.
-
AuthorPosts
-
-
December 19, 2015 at 1:25 pm #2353Anonymous
Hello everyone!
I constructed phi/psi plot using only rama energy term and noticed a strange thing (attached file). In a place where the angle accepts value 0 score function gives minimum value. Example with alanine chain:
pose1.set_phi(4, 10);
core::Real t(0.0);
pose1.set_psi(4, t);
(*scorefx)( pose1 );
std::cout << std::scientific << t << ‘t’ << pose1.energies().total_energy() << std::endl;
t = std::numeric_limits<double>::min();
pose1.set_psi(4, t);
(*scorefx)( pose1 );
std::cout << std::scientific << t << ‘t’ << pose1.energies().total_energy() << std::endl;
This code gives:
0.000000e+00 5.435180e+00
2.225074e-308 1.424486e+01
Is it actually correct? As I know some others energy terms do not react to explicit zero in such way.
Python code to reproduce picture:
from rosetta import *
import matplotlib.pyplot as plt
import numpy as np
rosetta.init()
scorefxn = ScoreFunction()
scorefxn.set_weight(rama, 1)
p=Pose()
make_pose_from_sequence(p, “AAAAAAAAAA”,”fa_standard”)
def evaluate(p, a, b):
p.set_phi(4, a)
p.set_psi(4, b)
scorefxn(p)
return p.energies().total_energy()
for i in range(1,p.total_residue()):
p.set_phi(i, -135.0)
p.set_psi(i, 135.0)
p.set_omega(i, 180.0)
p.dump_pdb(“init.pdb”)
x = np.arange(-180.0, 180.0, 2.5)
y = np.arange(-180.0, 180.0, 2.5)
values = np.zeros(shape=(len(x),len(y)))
for i in range(len(x)):
for j in range(len(y)):
values[j] = evaluate(p, x, y[j])
plt.imshow(values);
plt.colorbar();
plt.axis(‘equal’)
plt.show()
Thank you in advance.
-
December 19, 2015 at 5:00 pm #11385Anonymous
Older versions of the ramachandran term are known to behave poorly in uninhabited regions of the plot and near boundaries – this is certainly true for the rama that’s in score12. You’re probably hitting one of those boundary issues. Rama is not a function in the traditional sense, it’s a table lookup with some sort of smoothing or interpolation between the points actually in the table, so points that are close in “rama space” may be in different bins.
I know that development of replacement terms has been underway for a while; I’m not sure which terms are in Talaris13 and Talaris14. Roland Dunbrack has given several fantastic presentations showing the wacky stuff our rama/dunbrack/p_aa_pp terms do near boundaries (which is what motivated getting them fixed; his lab has been participating). I think you’ve rediscovered this problem.
-
December 20, 2015 at 9:44 am #11386Anonymous
As it is presented in weight files both Talaris13 and Talaris14 are calibrated with rama/fa_dun/p_aa_pp terms. As far as I know using such terms is a main feature of the Rosetta force-field. Anyway it is hard to imagine where I can encounter explicit assignment of zero during calculations. Thank you for your explanation.
-
-
AuthorPosts
- You must be logged in to reply to this topic.