Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
BrokerMain.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 //
4 // (c) Copyright Rosetta Commons Member Institutions.
5 // (c) This file is part of the Rosetta software suite and is made available under license.
6 // (c) The Rosetta software is developed by the contributing members of the Rosetta Commons.
7 // (c) For more information, see http://www.rosettacommons.org. Questions about this can be
8 // (c) addressed to University of Washington UW TechTransfer, email: license@u.washington.edu.
9 
10 /// @file protocols/abinitio/BrokerMain.cc
11 /// @author Oliver Lange
12 /// @author Christopher Miles (cmiles@uw.edu)
13 
14 // keep these headers first for compilation with Visual Studio C++
15 
16 // Package Headers
18 
19 // Project Headers
20 // AUTO-REMOVED #include <core/scoring/constraints/ConstraintSet.hh>
22 // AUTO-REMOVED #include <core/scoring/constraints/NamedAtomPairConstraint.hh>
23 
28 
29 //archive headers
32 // AUTO-REMOVED #include <numeric/random/random.hh>
33 
34 // Utility headers
35 #include <basic/Tracer.hh>
36 #include <basic/options/option.hh>
37 #include <basic/options/keys/abinitio.OptionKeys.gen.hh>
38 #include <basic/options/keys/constraints.OptionKeys.gen.hh>
39 #include <basic/options/keys/frags.OptionKeys.gen.hh>
40 #include <basic/options/keys/in.OptionKeys.gen.hh>
41 #include <basic/options/keys/jumps.OptionKeys.gen.hh>
42 #include <basic/options/keys/loopfcst.OptionKeys.gen.hh>
43 #include <basic/options/keys/loops.OptionKeys.gen.hh>
44 #include <basic/options/keys/out.OptionKeys.gen.hh>
45 #include <basic/options/keys/run.OptionKeys.gen.hh>
46 #include <basic/options/keys/templates.OptionKeys.gen.hh>
47 #include <basic/options/keys/chunk.OptionKeys.gen.hh>
48 #include <basic/options/keys/broker.OptionKeys.gen.hh>
49 
50 // C/C++ headers
51 #include <iostream>
52 
53 #include <utility/vector1.hh>
54 
55 
56 static basic::Tracer tr("main");
57 
58 namespace protocols {
59 namespace abinitio {
60 
62  using namespace basic::options;
63  using namespace basic::options::OptionKeys;
64  using namespace core;
65 
66  option.add_relevant(broker::setup);
67 
68  option.add_relevant(chunk::pdb2);
69  option.add_relevant(chunk::loop2);
70 
71  option.add_relevant(in::file::native);
72  option.add_relevant(in::file::silent);
73  option.add_relevant(in::file::frag3);
74  option.add_relevant(in::file::frag9);
75  option.add_relevant(in::file::fasta);
76  option.add_relevant(in::file::native_exclude_res);
77  option.add_relevant(in::file::tags);
78 
79  option.add_relevant(out::file::silent);
80  option.add_relevant(out::nstruct);
81 
82  option.add_relevant(run::proc_id);
83  option.add_relevant(run::nproc);
84  option.add_relevant(run::condor);
85 
86  option.add_relevant(OptionKeys::abinitio::fastrelax);
87  option.add_relevant(OptionKeys::abinitio::relax);
88  option.add_relevant(OptionKeys::abinitio::multifastrelax);
89  option.add_relevant(OptionKeys::abinitio::relax_with_jumps);
90  option.add_relevant(OptionKeys::abinitio::use_filters);
91  option.add_relevant(OptionKeys::abinitio::detect_disulfide_before_relax);
92  option.add_relevant(OptionKeys::abinitio::debug);
93  option.add_relevant(OptionKeys::abinitio::number_3mer_frags);
94  option.add_relevant(OptionKeys::abinitio::number_9mer_frags);
95  option.add_relevant(OptionKeys::abinitio::process_store);
96  option.add_relevant(OptionKeys::abinitio::fix_residues_to_native);
97  option.add_relevant(OptionKeys::abinitio::return_full_atom);
98  option.add_relevant(OptionKeys::abinitio::rerun);
99  option.add_relevant(OptionKeys::abinitio::jdist_rerun);
100 
101  // starting conditions
102  option.add_relevant(OptionKeys::abinitio::start_native);
103  option.add_relevant(OptionKeys::abinitio::perturb);
104  option.add_relevant(OptionKeys::abinitio::close_loops);
105 
106  // evaluation
107  option.add_relevant(OptionKeys::abinitio::rmsd_residues);
108  option.add_relevant(OptionKeys::abinitio::bGDT);
109  option.add_relevant(OptionKeys::run::no_prof_info_in_silentout);
110 
111  // use fragments from native structure
112  option.add_relevant(OptionKeys::abinitio::steal_3mers);
113  option.add_relevant(OptionKeys::abinitio::steal_9mers);
114  option.add_relevant(OptionKeys::abinitio::dump_frags);
115  option.add_relevant(OptionKeys::abinitio::no_write_failures);
116 
117  option.add_relevant(loopfcst::use_general_protocol);
118  option.add_relevant(loopfcst::coord_cst_weight);
119  option.add_relevant(loopfcst::coord_cst_all_atom);
120  option.add_relevant(loopfcst::coord_cst_weight_array);
121  option.add_relevant(loopfcst::dump_coord_cst_weight_array);
122 
123  option.add_relevant(OptionKeys::in::file::pca);
124  option.add_relevant(OptionKeys::out::sf);
125 
126  // jumping
127  option.add_relevant(jumps::fix_jumps);
128  option.add_relevant(jumps::jump_lib);
129  option.add_relevant(jumps::fix_chainbreak);
130  option.add_relevant(jumps::pairing_file);
131  option.add_relevant(jumps::sheets);
132  option.add_relevant(jumps::random_sheets);
133  option.add_relevant(jumps::evaluate);
134  option.add_relevant(jumps::extra_frags_for_ss);
135  option.add_relevant(jumps::loop_definition_from_file);
136  option.add_relevant(jumps::no_chainbreak_in_relax);
137  option.add_relevant(jumps::residue_pair_jump_file);
138  option.add_relevant(jumps::topology_file);
139 
140  //loop closure
141  option.add_relevant(OptionKeys::loops::loop_file);
142  option.add_relevant(OptionKeys::loops::alternative_closure_protocol);
143  option.add_relevant(OptionKeys::loops::short_frag_cycles);
144  option.add_relevant(OptionKeys::loops::scored_frag_cycles);
145  option.add_relevant(OptionKeys::loops::debug_loop_closure);
146  option.add_relevant(OptionKeys::loops::non_ideal_loop_closing);
147  option.add_relevant(OptionKeys::loops::chainbreak_max_accept);
148  option.add_relevant(OptionKeys::loops::extended);
149 
150  // constraints
151  option.add_relevant(constraints::cst_file);
152  option.add_relevant(constraints::forest_file);
153  option.add_relevant(constraints::compute_total_dist_cst);
154  option.add_relevant(constraints::no_linearize_bounded);
155  option.add_relevant(constraints::dump_cst_set);
156  option.add_relevant(constraints::no_cst_in_relax);
157  option.add_relevant(constraints::evaluate_max_seq_sep);
158  option.add_relevant(constraints::cull_with_native);
159  option.add_relevant(constraints::named);
160  option.add_relevant(constraints::viol);
161  option.add_relevant(constraints::viol_level);
162  option.add_relevant(constraints::viol_type);
163 
164  // homologs
165  option.add_relevant(templates::config);
166  option.add_relevant(templates::pairings);
167 
168  //large default number means all frags are used if this option is not specified
169  option.add_relevant(templates::min_nr_large_frags);
170  option.add_relevant(templates::min_nr_small_frags);
171 
172  option.add_relevant(templates::nr_large_copies);
173  option.add_relevant(templates::nr_small_copies);
174  option.add_relevant(templates::vary_frag_size);
175  option.add_relevant(templates::fix_aligned_residues);
176  option.add_relevant(templates::fix_margin);
177  option.add_relevant(templates::fix_frag_file);
178  option.add_relevant(templates::no_pick_fragments);
179  option.add_relevant(templates::pick_multiple_sizes);
180  option.add_relevant(templates::strand_constraint);
181 
182  option.add_relevant(frags::nr_large_copies);
183  option.add_relevant(frags::annotate);
184 
185 #ifdef BOINC
186  std::cerr << "Registered extra options." << std::endl;
187  std::cerr.flush();
188 #endif
189 }
190 
191 void common_setup() {
192  using namespace basic::options;
193  using namespace basic::options::OptionKeys;
198 
199  if ( option[ constraints::no_linearize_bounded ] ) {
200  tr.Info << "use fully harmonic potential for BOUNDED " << std::endl;
201  ConstraintIO::get_func_factory().add_type("BOUNDED", new BoundFunc(0,0,0,1000,"dummy") );
202  }
203 
204  if ( option[ constraints::named ] ) {
205  tr.Info << "use named constraints in AtomPairConstraint to avoid problems with cutpoint-variants " << std::endl;
207  new NamedAtomPairConstraintCreator());
208  }
209 }
210 
211 // note: initialization now takes place in AbrelaxMover::set_defaults()
212 void Broker_main() {
213  common_setup();
214  AbrelaxMoverOP m = new AbrelaxMover();
217  if ( archive_jd && archive_jd->is_archive_rank() ) {
218  archive_jd->set_archive( new IterativeAbrelax );
219  }
221 }
222 
223 }
224 }