Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
AssembleLinkerMover.cc
Go to the documentation of this file.
1 /// -*- mode:c++;tab-width:2;indent-tabs-mode:t;show-trailing-whitespace:t;rm-trailing-spaces:t -*-
2 // vi: set ts=2 noet:
3 // :noTabs=false:tabSize=4:indentSize=4:
4 //
5 // (c) Copyright Rosetta Commons Member Institutions.
6 // (c) This file is part of the Rosetta software suite and is made available under license.
7 // (c) The Rosetta software is developed by the contributing members of the Rosetta Commons.
8 // (c) For more information, see http://www.rosettacommons.org. Questions about this can be
9 // (c) addressed to University of Washington UW TechTransfer, email: license@u.washington.edu.
10 
11 /// @file protocols/domain_assembly/AssembleLinkerMover.cc
12 /// @brief A mover for assembling domains
13 /// @author James Thompson
14 
16 
18 // AUTO-REMOVED #include <protocols/docking/stateless/SaneDockingProtocol.hh>
19 // AUTO-REMOVED #include <protocols/jd2/JobDistributor.hh>
22 #include <protocols/loops/Loop.hh>
23 #include <protocols/loops/Loops.hh>
24 
25 // AUTO-REMOVED #include <protocols/loops/loops_main.hh>
26 #include <core/fragment/FragSet.hh>
31 #include <core/pose/Pose.hh>
32 #include <core/pose/PDBInfo.hh>
33 // AUTO-REMOVED #include <core/pose/util.hh>
34 // AUTO-REMOVED #include <core/io/pdb/pose_io.hh>
35 // AUTO-REMOVED #include <core/scoring/constraints/util.hh>
36 // AUTO-REMOVED #include <core/scoring/ScoreFunctionFactory.hh>
37 
38 
40 
41 // AUTO-REMOVED #include <core/scoring/constraints/Func.hh>
42 // AUTO-REMOVED #include <core/scoring/constraints/Constraint.hh>
43 // AUTO-REMOVED #include <core/scoring/constraints/ConstraintSet.hh>
44 // AUTO-REMOVED #include <core/scoring/constraints/LinearPenaltyFunction.hh>
45 // AUTO-REMOVED #include <core/scoring/constraints/AtomPairConstraint.hh>
46 
47 
48 #include <protocols/moves/Mover.hh>
49 // AUTO-REMOVED #include <protocols/simple_moves/ScoreMover.hh>
50 // AUTO-REMOVED #include <protocols/moves/CompositionMover.hh>
51 // AUTO-REMOVED #include <protocols/simple_moves/ConstraintSetMover.hh>
52 
53 //#include <devel/init.hh>
54 
55 // C++ headers
56 #include <iostream>
57 #include <string>
58 
59 // AUTO-REMOVED #include <basic/Tracer.hh>
60 #include <core/types.hh>
61 #include <utility/vector1.hh>
62 
63 // option key includes
64 
65 // AUTO-REMOVED #include <basic/options/keys/cm.OptionKeys.gen.hh>
66 // AUTO-REMOVED #include <basic/options/keys/loops.OptionKeys.gen.hh>
67 // AUTO-REMOVED #include <basic/options/keys/constraints.OptionKeys.gen.hh>
68 
70 
71 
72 namespace protocols {
73 namespace domain_assembly {
74 
76  using core::Real;
77  using std::string;
78 
79  char const first_chain( pose.pdb_info()->chain(1) );
80  // rename second chain
81  Size breakpoint(0);
82  for ( Size ii = 1; ii <= pose.total_residue(); ++ii ) {
83  char const chain_ii( pose.pdb_info()->chain(ii) );
84  if ( !breakpoint && chain_ii != first_chain ) {
85  breakpoint = ii;
86  }
87  pose.pdb_info()->number(ii,ii);
88  }
89  // make a single-chain pdb
90  pose.pdb_info()->set_chains(first_chain);
92 
93  // new fold tree
95  FoldTree new_fold_tree(pose.total_residue());
96  pose.fold_tree(new_fold_tree);
97 
98  // remodel loops
99  using namespace protocols::loops;
100  using namespace protocols::comparative_modeling;
101  Size const loop_start( breakpoint - min_loop_size_ );
102  Size const loop_stop ( breakpoint + min_loop_size_ );
103 
106  );
107 
108  Loop loop( loop_start, loop_stop, 0, 0, false );
109  LoopsOP loops = new Loops();
110  loops->add_loop(loop);
112  loop_mover_name_, loops
113  );
114  for ( Size ii = 1; ii <= frag_libs_.size(); ++ii ) {
115  loop_mover->add_fragments( frag_libs_[ii] );
116  }
117  loop_mover->apply(pose);
118  Size const max_tries( 10 ); // make this an option?
119  bool loops_closed( false );
120  for ( Size ii = 1; (ii <= max_tries) && !loops_closed; ++ii ) {
122  loops_closed = ( loops->size() == 0 );
123  if ( loops_closed ) {
125  loop_mover->apply( pose );
126  }
127  }
128 
131  );
132 } // apply
133 
134 
135 }//namespace domain_assembly
136 }//namespace protocols
137