25 #include <basic/Tracer.hh>
26 #include <basic/options/option.hh>
27 #include <utility/vector1.hh>
28 #include <utility/file/FileName.hh>
34 #include <boost/algorithm/string/predicate.hpp>
37 #include <basic/options/keys/in.OptionKeys.gen.hh>
40 static basic::Tracer
tr(
"protocols.jd2.SilentFileJobInputter");
48 tr.Debug <<
"Instantiate SilentFileJobInputter" << std::endl;
57 if ( !sfd_.has_tag( job->inner_job()->input_tag() ) ) {
58 utility_exit_with_message(
" job with input tag " + job->inner_job()->input_tag() +
" can't find his input structure ");
60 return sfd_.get_structure( job->inner_job()->input_tag() );
72 tr.Debug <<
"SilentFileJobInputter::pose_from_job" << std::endl;
74 if ( !job->inner_job()->get_pose() ) {
77 tr.Debug <<
"filling pose from SilentFile (tag = " << job->inner_job()->input_tag()
86 struct_from_job( job ).fill_pose( pose );
104 pose = *(job->inner_job()->get_pose());
111 tr.Debug <<
"filling pose from saved copy (tag = " << job->input_tag()
119 tr.Debug <<
"SilentFileJobInputter::fill_jobs" << std::endl;
126 using namespace basic::options;
127 using namespace basic::options::OptionKeys;
132 current_fn_ != silent_files.end(); ++current_fn_
134 tr.Debug <<
"reading " << *current_fn_ << std::endl;
135 if ( option[ in::file::tags ].user() ) {
137 sfd_.read_file( *current_fn_, tags );
139 sfd_.read_file( *current_fn_ );
145 using namespace core::io::silent;
156 tr.Debug <<
"reserve memory for InnerJob List " << sfd_.size() << std::endl;
157 inner_jobs.reserve( sfd_.size() );
158 tr.Debug <<
"fill list with " << sfd_.size() <<
" InnerJob Objects" << std::endl;
169 bool failed_simulation = boost::starts_with(tag,
"W_");
170 if (failed_simulation && option[OptionKeys::in::file::skip_failed_simulations]()) {
175 inner_jobs.push_back( ijob );
178 tr.Debug <<
"reserve list for " << inner_jobs.size() * nstruct <<
" Job Objects" << std::endl;
179 jobs.reserve( nstruct * inner_jobs.size() );
181 tr.Debug <<
"fill job list with... " << std::endl;
182 for (
core::Size index = 1; index <= nstruct; ++index ) {
184 jobs.push_back(
JobOP(
new Job( *ijob, index ) ) );
185 tr.Trace <<
"pushing " << (*ijob)->input_tag() <<
" nstruct index " << index << std::endl;
201 return "SilentFileJobInputter";