# Troubles using RigidBodyTransMover and RigidBodyPerturbMover

4 posts / 0 new
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