25 #include <basic/Tracer.hh>
27 #include <basic/options/option.hh>
28 #include <utility/io/ozstream.hh>
30 #include <utility/file/file_sys_util.hh>
34 #include <basic/options/keys/out.OptionKeys.gen.hh>
35 #include <basic/options/keys/run.OptionKeys.gen.hh>
37 #include <utility/vector1.hh>
44 static basic::Tracer
TR(
"protocols.jd2.AtomTreeDiffJobOutputter");
49 using namespace basic::options;
50 using namespace basic::options::OptionKeys;
55 bondlen_precision_(2),
59 set_precision( option[ out::file::atom_tree_diff_bb ], option[ out::file::atom_tree_diff_sc ], option[ out::file::atom_tree_diff_bl ] );
62 outfile_name_= basic::options::option[ OptionKeys::out::file::atom_tree_diff ]();
66 std::ostringstream oss;
67 oss << basic::options::option[ basic::options::OptionKeys::out::prefix ]() << outfile.base()
68 << basic::options::option[ basic::options::OptionKeys::out::suffix ]();
69 outfile.base( oss.str() );
70 if ( basic::options::option[ basic::options::OptionKeys::out::path::pdb ].user() ){
71 outfile.path(basic::options::option[ basic::options::OptionKeys::out::path::pdb ]().path());
72 outfile.vol(basic::options::option[ basic::options::OptionKeys::out::path::pdb ]().vol());
73 }
else if( basic::options::option[ basic::options::OptionKeys::out::path::all ].user() ){
74 outfile.path(basic::options::option[ basic::options::OptionKeys::out::path::all ]().path());
75 outfile.vol(basic::options::option[ basic::options::OptionKeys::out::path::all ]().vol());
81 if( basic::options::option[ basic::options::OptionKeys::out::pdb_gz ] && outfile.ext() !=
"gz" ) {
109 std::map< std::string, core::Real > scores;
110 for( Job::StringRealPairs::const_iterator it(job->output_string_real_pairs_begin()),
end(job->output_string_real_pairs_end());
115 scores[it->first] = it->second;
128 std::map< std::string, core::Real > scores,
137 if( basic::options::option[ basic::options::OptionKeys::run::version ] ) {
141 if ( !
out_.good() ) {
142 utility_exit_with_message(
"Unable to open file: " +
outfile_name_ +
"\n" );
148 TR<<
"ref_tag: "<< ref_tag<< std::endl;
150 TR<<
"writing reference pose"<< std::endl;
151 std::map< std::string, core::Real > temp_scores;
152 temp_scores[
"is_reference_pose"]= 1;
162 TR<<
"ref_tag: "<< ref_tag<< std::endl;
164 TR<<
"writing reference pose"<< std::endl;
165 std::map< std::string, core::Real > temp_scores;
166 temp_scores[
"is_reference_pose"]= 1;
173 basic::Error() <<
"Tag " << tag <<
" already exists in silent file; writing structure anyway..." << std::endl;
178 if (
out_.uncompressed() )
out_.flush();
200 if( job->completed() )
return true;
229 return "AtomTreeDiffJobOutputter";