20 #include <basic/Tracer.hh>
24 #include <utility/vector1.hh>
37 static basic::Tracer
TR(
"protocols.protein_interface_design.movers.InterfaceRecapitulationMover" );
44 std::string native_substr = native_filename.substr( 0, native_filename.size() - 4 );
45 std::string pssm_file_name = native_substr +
".fasta";
46 std::cerr <<
"Openning PSSM File " << pssm_file_name <<
" " << std::endl;
47 std::ifstream pssm_file( pssm_file_name.c_str() );
59 pssm_file >> pssm_prob_dist[ ii ];
60 sum += pssm_prob_dist[ ii ];
62 if ( std::abs( sum - 1 ) > 0.001 ) {
63 TR <<
"Warning: pssm probability distribution does not sum to 1.0: " << sum << std::endl;
64 TR <<
"Problem on line " << linenum <<
" of " << pssm_file_name << std::endl;
66 pssm_data_.push_back( std::make_pair( aa, pssm_prob_dist ));
69 if (
pssm_data_.size() == 0 ) { std::cerr <<
"Did not read file -- possibly not found" << std::endl;
return false; }
80 using namespace core::scoring;
90 if (task->being_designed( i ))
92 if ( pssm_data_[i].first == restype )
94 pssm += pssm_data_[i].second[ restype ];
98 TR <<
"Warning: No pssm data found. Falling back on Sequence comparison." << std::endl;