18 #include <utility/string_util.hh>
23 #include <boost/foreach.hpp>
25 #include <utility/vector1.hh>
26 #include <utility/io/ozstream.hh>
28 #define foreach BOOST_FOREACH
42 std::list<std::string> prepared_lines;
44 std::list<std::string> ctab = this->
compose_ctab(residue);
48 prepared_lines.insert(prepared_lines.end(),metadata.begin(),metadata.end());
49 prepared_lines.insert(prepared_lines.end(),ctab.begin(),ctab.end());
50 prepared_lines.insert(prepared_lines.end(),typeinfo.begin(),typeinfo.end());
51 prepared_lines.insert(prepared_lines.end(),nbr_atom.begin(),nbr_atom.end());
54 output_stream << line;
74 utility::io::ozstream outfile;
75 outfile.open(file_name.c_str());
83 utility::io::ozstream outfile;
84 outfile.open(file_name.c_str());
91 std::list<std::string> lines;
96 std::string const name3_line = residue->name3()+
"\n";
97 std::string const counts_line =
" 0 0 0 0 0 999 V3000\n";
99 lines.push_back(name_line);
100 lines.push_back(info_line);
101 lines.push_back(name3_line);
102 lines.push_back(counts_line);
108 std::list<std::string> lines;
114 for(
core::Size index = 1; index <= n_atoms;++index)
116 n_bonds += residue->bonded_neighbor(index).size();
122 utility::to_string<core::Size>(n_bonds)+
" " +
"0" +
" " +
"0" +
" "+
"0"+
"\n";
126 std::list<std::string> atom_lines = this->
compose_atoms(residue);
127 std::list<std::string> bond_lines = this->
compose_bonds(residue);
129 lines.push_back(begin_header);
130 lines.push_back(counts);
131 lines.insert(lines.end(),atom_lines.begin(),atom_lines.end());
132 lines.insert(lines.end(),bond_lines.begin(),bond_lines.end());
133 lines.push_back(end_header);
134 lines.push_back(
"M END\n");
141 std::list<std::string> lines;
145 lines.push_back(begin_header);
147 for(
core::Size index = 1; index <= residue->natoms(); ++index)
153 core::Real charge = residue_type->atom(index).charge();
156 element+
" "+ utility::to_string<core::Real>(xyz_coords.x())+
" "+
157 utility::to_string<core::Real>(xyz_coords.y())+
" " +
158 utility::to_string<core::Real>(xyz_coords.z())+
" " +
159 "0"+
" "+
"CHG="+utility::to_string<core::Real>(charge)+
"\n";
160 lines.push_back(atom_string);
162 lines.push_back(end_header);
168 std::list<std::string> lines;
172 lines.push_back(begin_header);
180 std::set<BondData> bond_data_set;
181 bond_data_set.clear();
182 for(
core::Size index = 1; index <= residue->natoms();++index)
186 assert(bonded_neighbors.size()== bonded_neighbor_types.size());
188 for(
core::Size neighbor_index = 1; neighbor_index <= bonded_neighbors.size();++neighbor_index)
190 core::Size type = bonded_neighbor_types[neighbor_index];
191 core::Size neighbor = bonded_neighbors[neighbor_index];
193 if(bond_data_set.find(bond)!= bond_data_set.end())
204 bond_data_set.insert(bond);
213 foreach(
BondData current_bond, bond_data_set){
215 utility::to_string<core::Size>(current_bond.
bondType) +
" " +
216 utility::to_string<core::Size>(current_bond.
lower) +
" " +
217 utility::to_string<core::Size>(current_bond.
upper) +
" " +
"\n";
218 lines.push_back(bond_line);
222 lines.push_back(end_header);
229 std::list<std::string> lines;
234 for(
core::Size index =1; index <= residue->natoms();++index)
236 std::string atom_type_name = residue_type->atom_type(index).name();
237 std::string data_string =
"("+utility::to_string<core::Size>(index)+
","+atom_type_name+
") ";
238 type_data.append(data_string);
240 type_data.append(
"\n");
242 lines.push_back(header);
243 lines.push_back(type_data);
244 lines.push_back(
"\n");
251 std::list<std::string> lines;
254 std::string nbr_atom = utility::to_string<core::Size>(residue->nbr_atom()) +
"\n";
256 lines.push_back(header);
257 lines.push_back(nbr_atom);
258 lines.push_back(
"\n");