39 #include <utility/vector1.hh>
42 #include <numeric/random/random.hh>
45 #include <utility/vector0.hh>
51 using namespace core::pose;
52 using namespace core::chemical;
53 using namespace core::conformation;
54 using namespace utility;
57 namespace unfolded_state_energy_calculator {
60 UnfoldedStateEnergyCalculatorMover::~UnfoldedStateEnergyCalculatorMover()
66 Mover(
"UnfoldedStateEnergyCalculatorMover" ),
67 job_dist_( usecm.job_dist_ ),
68 pack_scrfxn_( usecm.pack_scrfxn_ ),
69 score_scrfxn_( usecm.score_scrfxn_ ),
70 frag_length_( usecm.frag_length_ ),
71 mut_aa_( usecm.mut_aa_ ),
72 repack_fragments_( usecm.repack_fragments_ ),
73 native_sequence_( usecm.native_sequence_ )
87 bool repack_fragments,
88 bool native_sequence ):
89 Mover(
"UnfoldedStateEnergyCalculatorMover" ),
90 job_dist_( job_dist ),
91 pack_scrfxn_( pack_scrfxn ),
92 score_scrfxn_( score_scrfxn ),
93 frag_length_( frag_length ),
95 repack_fragments_( repack_fragments ),
96 native_sequence_( native_sequence )
110 Size num_protein_res( 0 );
126 if ( frag_number == 0 ) {
134 ResidueTypeSetCAP rts( chemical::ChemicalManager::get_instance()->residue_type_set(
"fa_standard" ) );
142 Size frag_start( numeric::random::random_range( 1, num_protein_res -
frag_length_ + 1 ) );
145 bool frag_check(
true);
149 if ( pose.
chain( frag_start ) != pose.
chain( i ) ) frag_check =
false;
167 if ( pose.
residue( frag_cent_res_number ).
type().
has_property(
"PROTEIN") && !mut_aa_type.has_property(
"PROTEIN") ) frag_check =
false;
168 if ( pose.
residue( frag_cent_res_number ).
type().
has_property(
"BETA_PEPTIDE") && !mut_aa_type.has_property(
"BETA_PEPTIDE") ) frag_check =
false;
169 if ( pose.
residue( frag_cent_res_number ).
type().
has_property(
"PEPTOID") && !mut_aa_type.has_property(
"PEPTOID") ) frag_check =
false;
180 if ( !frag_check )
continue;
200 fragments.push_back( frag_temp);
201 }
while ( fragments.size() < frag_number );
217 for (
Size i(1); i <= frag_number; ++i ) {
221 task->initialize_from_command_line();
225 task->nonconst_residue_task( j ).restrict_to_repacking();
245 for (
Size i(1); i <= frag_number; ++i ) {
248 ( fragments[ i ] ).energies().clear();
251 ( *score_scrfxn_ )( fragments[ i ] );
265 return "UnfoldedStateEnergyCalculatorMover";