40 #include <ObjexxFCL/FArray1D.hh>
41 #include <ObjexxFCL/FArray2D.hh>
43 #include <basic/Tracer.hh>
44 #include <utility/exit.hh>
53 #include <utility/vector1.hh>
60 static basic::Tracer
TR(
"protocols.analysis.LoopAnalyzerMover");
67 if(tracer)
return ost;
75 Mover(), loops_(new protocols::loops::
Loops(loops)), tracer_(tracer), sf_(NULL), chbreak_sf_(NULL)
89 loops_(new protocols::loops::
Loops(*(rhs.loops_))),
91 positions_(rhs.positions_),
93 chbreak_sf_(new core::scoring::
ScoreFunction(*(rhs.chbreak_sf_))),
98 using namespace core::scoring;
117 TR <<
"running LoopAnalyzerMover" << std::endl;
126 std::ostringstream results_oss;
128 core::Real total_rama(0), total_omega(0), total_peptide_bond(0), total_chbreak(0);
130 results <<
"LoopAnalyzerMover: unweighted bonded terms and angles (in degrees)" << std::endl
131 <<
"position phi_angle psi_angle omega_angle peptide_bond_C-N_distance rama_score omega_score dunbrack_score peptide_bond_score chainbreak_score" << std::endl
132 <<
" pos phi_ang psi_ang omega_ang pbnd_dst rama omega_sc dbrack pbnd_sc cbreak" << std::endl;
140 results << std::setw(4) << res
141 << std::setw(8) << std::setprecision(4) << pose.
phi(res)
142 << std::setw(8) << std::setprecision(4) << pose.
psi(res)
143 << std::setw(10) << std::setprecision(4) << pose.
omega(res)
144 << std::setw(9) << std::setprecision(4) << pbnd_dist;
146 using namespace core::scoring;
148 results << std::setw(8) << std::setprecision(3) << emap[
rama]
150 << std::setw(10) << std::setprecision(3) << emap[
omega]
151 << std::setw(7) << std::setprecision(3) << emap[
fa_dun]
152 << std::setw(8) << std::setprecision(3) << emap[
peptide_bond]
153 << std::setw(9) << std::setprecision(3) <<
scores_[i]
154 << std::setprecision(6) << std::endl;
155 total_rama += emap[
rama];
156 total_omega += emap[
omega];
161 results <<
"total_rama " << total_rama << std::endl;
162 results <<
"total_omega " << total_omega << std::endl;
163 results <<
"total_peptide_bond " << total_peptide_bond << std::endl;
164 results <<
"total_chainbreak " << total_chbreak << std::endl;
165 core::Real const loop_total(total_rama + total_omega + total_peptide_bond + total_chbreak);
166 results <<
"total rama+omega+peptide bond+chainbreak " << loop_total << std::endl;
180 return "LoopAnalyzerMover";
199 using namespace core::chemical;
221 ft.add_edge(
Edge(1, pos, Edge::PEPTIDE));
223 ft.add_edge(
Edge(pos, pos+1, 1));
228 scores_[i] = (*chbreak_sf_)(pose);