Hi to everyone!
I have a complex: protein and peptide (AB chains). I need to make small random shifts of peptide. I do it so
core::kinematics::Jump flexible_jump = pose.jump(pose.num_jump());
pose.set_jump( pose.num_jump(), flexible_jump );
However, peptide does a huge jump. flexible_jump.get_translation() gives something like (random value, 0, random value).
Description of the function "choose a random unit vector as the direction of translation, by selecting its spherical coordinates phi(0-180) and theta(0-360) then move dist_in along that direction". In an attachment result of work (green selection is initial position).
That way works perfectly
for(numeric::Size i = 0; i < 3; i++ )
rand_vect.at(i) = numeric::random::rg().uniform();
core::kinematics::Jump flexible_jump2 = pose.jump(pose.num_jump());
core::kinematics::Stub upstream_stub = pose.conformation().upstream_jump_stub(pose.num_jump());
flexible_jump2.translation_along_axis( upstream_stub, rand_vect, step_size );
pose.set_jump( pose.num_jump(), flexible_jump2 );
1) Is it something wrong what I do in first case?
2) For what random_trans function exactly for?
3) What is the simplest way to do peptide shifts with variable step size (using jump)?
I use rosetta 2015.38