22 #include <basic/Tracer.hh>
24 #include <utility/file/file_sys_util.hh>
34 #include <utility/vector1.hh>
35 #include <basic/options/keys/OptionKeys.hh>
41 namespace constraints_additional {
44 using namespace chemical;
45 using namespace conformation;
46 using namespace basic::options;
47 using namespace scoring;
48 using namespace constraints;
49 using namespace sequence;
51 using basic::t_warning;
55 static basic::Tracer
TR(
"protocols.constraints_additional.SequenceCouplingConstraint");
61 sequence_coupling_(NULL)
73 sequence_coupling_( coupling)
84 sequence_coupling_( sequence_coupling )
102 Size residue_index1(0);
103 Size residue_index2(0);
107 is >> residue_index1 >> residue_index2 >> coupling_filename;
109 TR(t_debug) <<
"reading: " << residue_index1 <<
" " << residue_index2 <<
" " << coupling_filename << std::endl;
110 if ( residue_index1 < 1 || residue_index1 > pose.
total_residue() ) {
111 std::cerr <<
"no such residue index " << residue_index1 <<
" in pose!)" << std::endl;
114 if ( residue_index2 < 1 || residue_index2 > pose.
total_residue() ) {
115 std::cerr <<
"no such residue index " << residue_index2 <<
" in pose!)" << std::endl;
123 using namespace utility::file;
125 if ( coupling_filename!=
"none" ) {
127 utility_exit_with_message(
"no such file " + coupling_filename );
131 utility_exit_with_message(
"\"none\" is not a valid value for -pssm in this context!");
135 if ( coupling_filename !=
"none" ) {
152 os <<
"SequenceCouplingConstraint between seqpos " <<
seqpos1_ <<
" " <<
seqpos2_ <<
": ";
212 if ( weights[ this->
score_type() ] == 0 )
return;
233 score = epot[aa2][aa1];
237 score = epot[aa1][aa2];
240 TR(t_trace) <<
"seqpos1 " <<
seqpos1_ <<
" aa1 " << aa1 <<
" " <<
"seqpos2 " <<
seqpos2_<<
" aa2 "<< aa2 <<
" " << score << std::endl;