35 #include <basic/options/keys/remodel.OptionKeys.gen.hh>
36 #include <basic/options/option.hh>
42 #include <basic/Tracer.hh>
49 #include <utility/exit.hh>
55 #include <utility/vector1.hh>
67 static basic::Tracer
TR(
"protocols.forge.build.BuildManager" );
73 modify_was_successful_( false )
80 original2modified_( rval.original2modified_ ),
81 seqmap_( rval.seqmap_.get() ? new
SequenceMapping( *rval.seqmap_ ) : 0 ),
82 modify_was_successful_( rval.modify_was_successful_ )
100 if (
this != &rval ) {
101 Super::operator =( rval );
137 (**i).reset_accounting();
174 v->add_dependency_to( u.get() );
193 (**i).clear_dependencies();
208 using namespace protocols::forge::build::BuildInstructionState;
215 using namespace core::conformation;
221 utility_exit_with_message(
"ERROR: BuildManager::modify() : BuildInstructions incompatible!" );
225 if (basic::options::option[basic::options::OptionKeys::remodel::two_chain_tree].user()){
226 Size second_start = basic::options::option[basic::options::OptionKeys::remodel::two_chain_tree];
232 f.add_edge(1, second_start-1, Edge::PEPTIDE);
233 f.add_edge(second_start, nres, Edge::PEPTIDE);
234 f.add_edge(second_start-1,second_start,1);
255 TR <<
"before star" << f << std::endl;
263 TR <<
"after star" << pose.
fold_tree() << std::endl;
282 (**i).attach_to( pose );
283 (**i).detach_after_modify(
false );
289 Size instructions_remaining_prior_loop = instructions_remaining;
292 while ( instructions_remaining > 0 ) {
302 if ( instructions_remaining == instructions_remaining_prior_loop ) {
303 TR.Fatal <<
"FATAL: Infinite loop will occur -- check the topology of the dependency graph and make sure there are no cycles." << std::endl;
307 instructions_remaining_prior_loop = instructions_remaining;
314 instruction.
modify( pose );
319 --instructions_remaining;
333 (**i).detach_after_modify(
true );
344 for ( Positions::const_iterator j = odp.begin(), je = odp.end(); j != je; ++j ) {
354 for ( Positions::const_iterator j = np.begin(), je = np.end(); j != je; ++j ) {
359 runtime_assert( old_r.size() == new_r.size() );
363 for ( Positions::const_iterator o = old_r.begin(), n = new_r.begin(), oe = old_r.end(), ne = new_r.end();
364 o != oe && n != ne; ++o, ++n ) {
377 for (
Size r = 1; r <= old_nres; ++r ) {
380 seqmap_->push_back( i->second );
387 for ( Original2Modified::const_iterator i = o2n_re.begin(), ie = o2n_re.end(); i != ie; ++i ) {
388 (*seqmap_)[ i->first ] = i->second;
413 for (
core::Size i = 1, ie = dummy_pose.n_residue(); i <= ie; ++i ) {
414 dummy_pose.set_secstruct( i,
'H' );
417 for (
Size i = 1, ie = dummy_pose.n_residue(); i <= ie; ++i ) {
418 dummy_pose.set_phi( i, -60.0 );
419 dummy_pose.set_psi( i, -45.0 );
420 dummy_pose.set_omega( i, 180.0 );
425 return dummy_pose.n_residue();
434 if ( !(**i).compatible_with( **j ) ) {
457 combined_mm->import( (**i).movemap() );
759 Interval const ival = (**i).interval();
778 Positions const bi_pp = (**i).preexisting_positions();
779 preexisting.insert( bi_pp.begin(), bi_pp.end() );
797 Positions const bi_np = (**i).new_positions();
798 newp.insert( bi_np.begin(), bi_np.end() );
816 Positions const bi_dp = (**i).defined_positions();
817 defined.insert( bi_dp.begin(), bi_dp.end() );
835 Positions const bi_up = (**i).undefined_positions();
836 undefined.insert( bi_up.begin(), bi_up.end() );
877 Positions const bi_kp = (**i).original_kept_positions();
878 kept.insert( bi_kp.begin(), bi_kp.end() );
892 Positions const bi_dp = (**i).original_deleted_positions();
893 deleted.insert( bi_dp.begin(), bi_dp.end() );
1074 for ( DependencyEdges::const_iterator i = dependency_list.begin(), ie = dependency_list.end(); i != ie; ++i ) {