28 #include <ObjexxFCL/char.functions.hh>
29 #include <ObjexxFCL/string.functions.hh>
31 #include <utility/exit.hh>
33 #include <basic/Tracer.hh>
51 #include <ObjexxFCL/FArray2D.hh>
54 #include <basic/options/keys/out.OptionKeys.gen.hh>
57 #include <platform/types.hh>
59 #include <utility/vector1.hh>
60 #include <utility/file/FileName.hh>
61 #include <utility/keys/SmallKeyVector.hh>
62 #include <basic/options/option.hh>
65 namespace import_pose {
67 using namespace ObjexxFCL;
69 static basic::Tracer
tr(
"core.io.silent.PDBSilentStruct");
75 fill_struct( pose, tag );
79 print_score_header( out );
87 if ( tag ==
"empty_tag" ) set_tag_from_pose( pose );
89 energies_from_pose( pose );
91 fd_.init_from_pose( pose );
100 bool success(
false );
103 using namespace core::io::silent;
107 if ( iter->substr(0,9) ==
"SEQUENCE:" ) iter++;
108 if ( iter->substr(0,6) !=
"SCORE:" ) {
114 energy_names_ = enames->energy_names();
121 energy_names_ = enames->energy_names();
127 std::istringstream line_stream( *iter );
129 if ( iter->substr(0,7) ==
"SCORE: " ) {
132 if ( line_stream.fail() || tag !=
"SCORE:" ) {
133 tr.Error <<
"bad format in first score line of silent file" << std::endl;
134 tr.Error <<
"line = " << *iter << std::endl;
135 tr.Error <<
"tag = " << tag << std::endl;
139 for ( energy_iter = energy_names_.begin();
140 energy_iter != energy_names_.end(); ++energy_iter
143 if ( *energy_iter !=
"description" ) {
144 Real score_val = (
Real) float_of( tag );
145 add_energy( *energy_iter, score_val );
151 }
else if ( iter->substr(0,6) ==
"REMARK" ) {
154 using namespace basic::options;
155 using namespace basic::options::OptionKeys;
156 if ( option[ out::file::silent_preserve_H ]() || iter->substr(13,1) !=
"H" ) {
158 concatenated_pdb_info += iter->substr( 0, 79 ) +
'\n';
159 string temp_decoy_tag = iter->substr( 80 );
164 pdb_lines_ = concatenated_pdb_info;
183 using namespace core::chemical;
186 fill_pose( pose, *residue_set );
195 output.write( data.c_str(), data.size() );
199 tr.Error <<
"get_debug_rmsd stubbed out!" << std::endl;
203 ObjexxFCL::FArray2D< Real >
205 tr.Error <<
"PDBSilentStruct::get_CA_xyz" << std::endl;
206 return FArray2D< Real > ( 3, 1 );
213 utility_exit_with_message(
"called ProteinSilentStruct::operator=)" );