25 #include <basic/Tracer.hh>
26 #include <basic/options/option.hh>
27 #include <utility/io/ozstream.hh>
31 #include <basic/options/keys/out.OptionKeys.gen.hh>
32 #include <basic/options/keys/run.OptionKeys.gen.hh>
34 #include <utility/vector1.hh>
43 static basic::Tracer
TR(
"protocols.jd2.FileJobOutputter");
48 using namespace basic::options;
49 using namespace basic::options::OptionKeys;
52 TR.Debug <<
"FileJobOutputter ctor" << std::endl;
54 if( option[ out::file::scorefile ].user() ){
57 if ( option[ out::path::score ].user() ) {
62 }
else if(option [out::file::score_only].user()){
66 }
else if ( !option[ run::no_scorefile ]() ) {
70 std::ostringstream oss;
72 oss << option[ out::prefix ]() << outfile.base()
73 << option[ out::suffix ]();
74 outfile.base( oss.str() );
76 if ( option[ out::path::score ].user() ) {
77 outfile.path( option[ out::path::score ]().path() );
78 outfile.vol( option[ out::path::score ]().vol() );
79 }
else outfile.path( default_path.path() );
81 if( option[ out::file::fullatom ] ) {
82 outfile.ext(
".fasc" );
99 TR.Debug <<
"FileJobOutputter scorefile" << std::endl;
100 if (!write_scorefile_)
return;
102 std::map < std::string, core::Real > score_map;
103 std::map < std::string, std::string > string_map;
107 for( Job::StringRealPairs::const_iterator it(job->output_string_real_pairs_begin()),
end(job->output_string_real_pairs_end());
110 score_map[it->first] = it->second;
114 for( Job::StringStringPairs::const_iterator it(job->output_string_string_pairs_begin()),
end(job->output_string_string_pairs_end());
117 string_map[it->first] = it->second;
120 sfd.
write_pose( pose, score_map , (tag+output_name(job)), string_map );
128 TR.Debug <<
"FileJobOutputter::file" << std::endl;
129 if (data.empty())
return;
132 utility::io::ozstream out;
133 std::string const & miscfile_ext(option[ run::jobdist_miscfile_ext ].value());
134 out.open_append(
output_name(job) + (miscfile_ext[0] ==
'.' ?
"" :
".") + miscfile_ext );
135 out << data << std::flush;