46 #include <utility/vector1.hh>
66 desired_sequence_( desired_sequence ),
67 start_tags_( start_tags ),
68 silent_files_in_( silent_files_in ),
70 nres_( desired_sequence_.
size() ),
71 input_residue_array_( nres_, false ),
72 junction_residue_array_( nres_, false ),
73 moving_residue_array_( nres_, false ),
74 sample_junction_( true ),
77 add_peptide_plane_( false ),
80 Mover::type(
"StepWiseProteinPoseSetup");
92 return "StepWiseProteinPoseSetup";
103 pose.
set_psi( end_res, pose.
psi( end_res ) + psi_scratch - psi_current );
106 if ( start_res > 1 ){
109 pose.
set_phi( start_res, pose.
phi( start_res ) + phi_scratch - phi_current );
126 using namespace core::pose;
166 bool found_tag(
false );
168 end = silent_file_data.
end(); iter !=
end; ++iter ) {
169 if ( iter->decoy_tag() != start_tag )
continue;
171 iter->fill_pose( start_pose, *
rsd_set_ );
174 if ( !found_tag ) utility_exit_with_message(
"Could not find specified tag in silent file!" );
183 Size const end_res = start_res + start_pose.
sequence().size() - 1;
192 for (
Size n = start_res; n <= end_res; n++ ) {
194 res_map[ n ] = count;
256 using namespace core::chemical;
259 for (
Size n = 1; n <= variant_types.size(); n++ ) {
261 VariantType const & variant_type = variant_types[ n ];
264 variant_types_to_add.push_back( variant_type );
269 variant_types_to_remove.push_back( variant_type );
277 for (
Size n = 1; n <= variant_types_to_remove.size(); n++ ) {
281 if ( variant_types_to_remove[n] ==
"LOWER_TERMINUS" ) {
284 scratch_pose_save.xyz(
core::id::AtomID( scratch_pose_save.residue( scratch_pose_res).atom_index(
"1H" ), scratch_pose_res ) ) );
290 for (
Size n = 1; n <= variant_types_to_add.size(); n++ ) {
300 using namespace core::chemical;
303 N_variants.push_back(
"LOWER_TERMINUS" );
304 N_variants.push_back(
"N_ACETYLATION" );
309 C_variants.push_back(
"UPPER_TERMINUS" );
310 C_variants.push_back(
"C_METHYLAMIDATION" );
324 Size const max_start_res = desired_sequence.size() - inside_sequence.size()+1;
326 for (
Size potential_start_res = 1; potential_start_res <= max_start_res; potential_start_res++ ) {
327 bool found_match =
true;
333 for (
Size i = 0; i < inside_sequence.size(); i++ ) {
334 if ( inside_sequence[i] != desired_sequence[i - 1 + potential_start_res] ) {
340 return potential_start_res;