15 #include <numeric/xyzVector.hh>
18 #include <utility/string_util.hh>
21 #include <boost/foreach.hpp>
23 #include <utility/vector1.hh>
25 #define foreach BOOST_FOREACH
33 CtabBase(connection_table_lines,molecule_container,mol_data)
42 bool atom_block(
false);
43 bool bond_block(
false);
47 for(
core::Size line_number = 1; line_number <= ctab_length; ++line_number)
52 if(line_vector[2] ==
"END")
56 if(line_vector[2] !=
"V30" || line_vector.size() <2)
60 if(line_vector[3] ==
"COUNTS")
64 }
else if(line_vector[3] ==
"BEGIN")
66 if (line_vector[4] ==
"ATOM")
68 else if (line_vector[4] ==
"BOND")
70 }
else if(line_vector[3] ==
"END")
72 if (line_vector[4] ==
"ATOM")
74 else if (line_vector[4] ==
"BOND")
102 core::Size index = atoi(atom_vector[3].c_str());
104 std::string element_id(element_name+atom_vector[3]);
105 utility::add_spaces_left_align(element_id,4);
106 core::Real x_coord = atof(atom_vector[5].c_str());
107 core::Real y_coord = atof(atom_vector[6].c_str());
108 core::Real z_coord = atof(atom_vector[7].c_str());
119 molecule_container->set_ideal_xyz(element_id,coordinates);
131 core::Size atom1_index = atoi(bond_vector[5].c_str());
132 core::Size atom2_index = atoi(bond_vector[6].c_str());
142 molecule_container->add_bond(atom1_id,atom2_id,type);
148 foreach(
std::string current_parameter, extra_parameters){
149 if(current_parameter.find(query) == std::string::npos)
155 core::Size value_length = current_parameter.size() - (query.size()+1);
158 std::string value_string = current_parameter.substr(value_start,value_length);
159 core::Real value = atof(value_string.c_str());