17 #include <basic/Tracer.hh>
18 #include <utility/string_util.hh>
21 #include <utility/vector1.hh>
37 type_(type), value_(value), atom_name_(name), residue_(residue)
66 map_name_(map_name), residue_(residue)
80 for(
core::Size atom_index = 1; atom_index <= heavy_atom_size; ++atom_index)
83 for(
core::Size grid_index = 1; grid_index <= grids_to_use.size(); ++grid_index)
87 std::string point_name(grids_to_use[grid_index]+
"_"+atom_name);
88 this->
add_point(point_name,current_point);
102 if(data_lines.size() == 0)
107 for(
core::Size index = 1; index <= data_lines.size(); ++index)
112 if(line_fields.size() != 3)
114 utility_exit_with_message(
"a qsar_map data line doesn't have 3 fields. something is wrong. Aborting.");
120 core::Real qsar_weight(utility::string2float(line_fields[3]));
122 std::string point_name(line_fields[3]+
"_"+atom_name);
123 this->
add_point(point_name,current_point);
130 std::pair<std::string, qsarPointOP> new_qsar_map_item(point_name,new_point);
134 std::pair<std::string,qsarPointOP> new_type_map_item(new_point_type,new_point);
138 core::Size atom_index(point_residue->atom_index(atom_name));
140 std::pair<core::Size, qsarPointOP> new_atom_map_item(atom_index,new_point);
156 std::map<std::string,qsarPointOP>::iterator point(
qsar_map_.find(point_name));
162 return point->second;
168 std::multimap<core::Size, qsarPointOP>::iterator lower_bound(
atom_map_.lower_bound(atom_id));
169 std::multimap<core::Size, qsarPointOP>::iterator upper_bound(
atom_map_.upper_bound(atom_id));
171 std::multimap<core::Size,qsarPointOP>::iterator current_point(lower_bound);
172 for(; current_point !=upper_bound; ++current_point)
175 if(point->get_type() == type)
180 qsarMapTracer <<
"couldn't find a point, returning 0" <<std::endl;
194 std::multimap<core::Size, qsarPointOP>::iterator lower_bound(
atom_map_.lower_bound(atom_id));
195 std::multimap<core::Size, qsarPointOP>::iterator upper_bound(
atom_map_.upper_bound(atom_id));
197 std::multimap<core::Size,qsarPointOP>::iterator current_point(lower_bound);
198 for(; current_point != upper_bound; ++current_point)
200 points.push_back(current_point->second);
211 std::multimap<std::string, qsarPointOP>::iterator lower_bound(
type_map_.lower_bound(type));
212 std::multimap<std::string, qsarPointOP>::iterator upper_bound(
type_map_.upper_bound(type));
214 std::multimap<std::string,qsarPointOP>::iterator current_point(lower_bound);
215 for(; current_point != upper_bound; ++current_point)
217 points.push_back(current_point->second);