18 #include <utility/exit.hh>
19 #include <basic/Tracer.hh>
21 #include <utility/tag/Tag.hh>
23 #include <basic/options/option.hh>
24 #include <basic/options/keys/in.OptionKeys.gen.hh>
36 #include <utility/string_util.hh>
37 #include <utility/vector0.hh>
38 #include <utility/vector1.hh>
39 #include <utility/excn/Exceptions.hh>
40 #include <boost/foreach.hpp>
42 #define foreach BOOST_FOREACH
49 namespace ligand_docking {
67 return "InterfaceScoreCalculator";
72 Mover(
"InterfaceScoreCalculator"),
80 protocols::moves::Mover( that ),
81 chains_(that.chains_),
82 native_(that.native_),
83 score_fxn_(that.score_fxn_)
97 return "InterfaceScoreCalculator";
122 if ( tag->getName() !=
"InterfaceScoreCalculator" ){
123 throw utility::excn::EXCN_RosettaScriptsOption(
"This should be impossible");
125 if ( ! tag->hasOption(
"chains") )
throw utility::excn::EXCN_RosettaScriptsOption(
"'InterfaceScoreCalculator' requires 'chains' tag (comma separated chains to dock)");
128 chains_= utility::string_split(chains_str,
',');
131 if ( ! tag->hasOption(
"scorefxn") )
throw utility::excn::EXCN_RosettaScriptsOption(
"'HighResDocker' requires 'scorefxn' tag");
136 if (tag->hasOption(
"native") ){
139 std::string natives_str = utility::join(natives_strs,
" ");
144 else if ( basic::options::option[ basic::options::OptionKeys::in::file::native ].user()){
145 std::string const & native_str= basic::options::option[ basic::options::OptionKeys::in::file::native ]().
name();
163 using namespace core::scoring;
169 ScoreTypeVec score_types;
172 if (
score_fxn_->has_nonzero_weight(ii) ) score_types.push_back(ii);
175 foreach(
ScoreType score_type, score_types){
192 InterfaceScoreCalculator_tracer.Debug <<
"appending ligand: "<< chain << std::endl;
198 utility_exit_with_message(
"The native pose passed to InterfaceScoreCalculator does not have chain " +chain);