You are here

Troubles using RigidBodyTransMover and RigidBodyPerturbMover

4 posts / 0 new
Last post
Troubles using RigidBodyTransMover and RigidBodyPerturbMover
#1

Goodmorning,

I'm currently experiencing some troubles while using the RigidBodyMovers and I hope someone could explain me this strange problem. I perform a rigid body move and calculates its energy. But the result is different if I evaluate the energy after having stored the pose in a .pdb. Here is the code.


// Creating the poses and the scoring function
core::pose::PoseOP pose = new core::pose::Pose();
core::scoring::ScoreFunctionOP score_fxn = core::scoring::ScoreFunctionFactory::create_score_function("standard");
makePoseFromSequence(pose, String("AAAAAAAAAAAAAAAAAAAA"));
core::pose::PoseOP result3 = new core::pose::Pose((*pose));
// Initializing the jump and the foldtree
core::kinematics::FoldTree foldTree = result3->fold_tree();
foldTree.new_jump(5, 15, 10);
result3->fold_tree(foldTree);
// Performing the move
protocols::moves::RigidBodyTransMoverOP mover = new protocols::moves::RigidBodyTransMover((*result3), 1);
mover->step_size(1);
mover->apply((*result3));
// Restoring the foldtree of the jump
foldTree.delete_jump_and_intervening_cutpoint(1);
result3->fold_tree(foldTree);
// Outputting results
cout << "RBT energy final : " << (*score_fxn)(*result3) << endl;
core::io::pdb::dump_pdb((*result3), "rbt_final_tmp.pdb");
core::pose::PoseOP result3tmp = new core::pose::Pose("rbt_final_tmp.pdb");
cout << "RBT energy final from PDB: " << (*score_fxn)(*result3tmp) << endl;

This code returns :


RBT energy final : 112008
RBT energy final from PDB: 112013

The difference is tiny but it exists. Do I do something wrong with the movers or is this phenomenon explainable?

Thank you.
Alejandro

Post Situation: 
Thu, 2011-04-21 06:11
alejandro

I would guess that you have severe clashes in your structure, hence the very large energy. With overlapping atoms, a very small difference in coordinates could easily account for the extra 5 kcal/mol, so it is probably a result of rounding from the coordinate trimming in the pdb file.

Thu, 2011-04-21 06:49
JeffreyGray

This is expected. The PDB file format has a precision of 3 digits after the decimal. Rosetta uses much, much more precision internally. (It doesn't come to X digits; read up on binary to decimal conversions). So, dumping a PDB to disk causes rounding, which results in different scores.

Thu, 2011-04-21 07:22
smlewis

This explains a lot. Thank you.

Thu, 2011-04-21 07:58
alejandro