14 #include <utility/vector1.hh>
15 #include <utility/pointer/ReferenceCount.hh>
16 #include <utility/pointer/owning_ptr.hh>
18 #include <numeric/xyzVector.hh>
19 #include <numeric/xyzMatrix.hh>
20 #include <numeric/xyz.functions.hh>
39 namespace hotspot_hashing {
41 static basic::Tracer
TR(
"protocols.hotspot_hashing.SurfaceSearchPattern" );
48 surface_density_(surface_density)
50 using namespace core::scoring::sc;
56 if ( surface_selection != 0 )
58 task = surface_selection->create_task_and_apply_taskoperations( pose );
59 TR.Debug <<
"Initializing from packer task." << std::endl;
64 TR.Debug <<
"No packer task specified, using default task." << std::endl;
67 TR.Debug <<
"Initializing SurfaceSearchPattern. Density: " << surface_density << std::endl;
73 calculator.Calc(pose);
75 std::vector<DOT> surface_dots = calculator.GetDots(0);
77 TR.Debug <<
"Generated surface dots: " << surface_dots.size() << std::endl;
83 for (
core::Size i = 0; i < surface_dots.size(); i++)
85 if (surface_dots[i].outnml.length() == 0)
90 else if (task->pack_residue(surface_dots[i].atom->nresidue))
101 TR.Debug <<
"Zero-length normal dots: " << zeronormal_dots << std::endl;
102 TR.Debug <<
"Skipped dots: " << skipped_dots << std::endl;
103 TR.Debug <<
"Accepted dots: " << selected_dots << std::endl;
107 if (
TR.Trace.visible() )
109 TR.Trace <<
"Raw surface dots:" <<
"\n";
110 TR.Trace <<
"id atomid residueid residue atom area x y z nx ny nz " <<
"\n";
112 for (
core::Size i = 0; i < surface_dots.size(); i++)
114 if (task->pack_residue(surface_dots[i].atom->nresidue))
116 TR.Trace << i <<
" " <<
117 surface_dots[i].atom->nresidue <<
" " <<
118 surface_dots[i].atom->natom <<
" " <<
119 surface_dots[i].atom->residue <<
" " <<
120 surface_dots[i].atom->atom <<
" " <<
121 surface_dots[i].area <<
" " <<
122 surface_dots[i].coor.x() <<
" " <<
123 surface_dots[i].coor.y() <<
" " <<
124 surface_dots[i].coor.z() <<
" " <<
125 surface_dots[i].outnml.x() <<
" " <<
126 surface_dots[i].outnml.y() <<
" " <<
127 surface_dots[i].outnml.z() <<
" " <<
132 TR.Trace << std::endl;
149 searchpoints.push_back(tp);