39 #include <numeric/angle.functions.hh>
40 #include <numeric/xyz.functions.hh>
41 #include <numeric/conversions.hh>
46 #include <utility/vector1.hh>
61 return ( -180.0 + ( 360.0 / N_SAMPLE ) * i + 0.001 );
82 using namespace core::io::silent;
83 using namespace core::scoring;
87 if ( native_pose_op != 0 ){
92 Real rmsd( -1.0), backbone_rmsd( -1.0), all_rmsd( -1.0 );
94 std::map< core::id::AtomID, core::id::AtomID > CA_map, backbone_heavy_map, heavy_map;
99 if ( calc_rms_res.size() == 0 ) {
115 s.
add_energy(
"backbone_rms", backbone_rmsd );
119 if ( silent_file.size() > 0 ) silent_file_data.
write_silent_struct( s, silent_file,
false );
120 if ( sfd_in != 0 ) sfd_in->add_structure( s );
128 using namespace core::chemical;
147 using namespace core::id;
148 Real const psi = numeric::dihedral_radians(
154 return numeric::principal_angle_degrees( 180.0 + numeric::conversions::degrees(
psi ) );
166 using namespace core::id;
170 phi = numeric::dihedral_radians(
175 }
else if ( pose.
residue(res).
has(
"1H " ) ) {
176 phi = numeric::dihedral_radians(
184 return numeric::principal_angle_degrees( 180.0 + numeric::conversions::degrees( phi ) );
194 using namespace core::id;
201 atom_ID_map.
set( atom1, atom2 );
219 Size const base_res2,
222 using namespace core::id;
224 if( base_res == 0 )
return;
225 if( base_res2 == 0 )
return;
236 atom_ID_map.
set( atom1, atom2 );
242 atom_ID_map.
set( atom1, atom2 );
248 atom_ID_map.
set( atom1, atom2 );
259 using namespace core::fragment;
261 Size const len( fragset->max_frag_length() );
265 for (
Size n = 1; n <= (slice_res.size() - len + 1); n++ ) {
267 Size const & pos = slice_res[ n ];
271 if ( pos > (fragset->max_pos()-len+1) ) {
272 std::cout <<
"WARNING: NO FRAGS FOR POSITION " << pos << std::endl;
276 fragset->frames( pos, frames );
279 assert( frames.size() == 1 );
284 for (
Size n = 1; n <= frame->nr_frags(); n++ ) {
285 frame_new->add_fragment( frame->fragment_ptr( n ) );
288 fragset_new->add( frame_new );
292 fragset = fragset_new;