Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
HybridizeProtocol.hh
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
11 /// @brief Add constraints to the current pose conformation.
12 /// @author Yifan Song
13 
14 #ifndef INCLUDED_protocols_hybridization_HybridizeProtocol_hh
15 #define INCLUDED_protocols_hybridization_HybridizeProtocol_hh
16 
19 
20 #include <protocols/moves/Mover.hh>
21 
22 #include <protocols/loops/Loops.hh>
23 
24 #include <core/pose/Pose.fwd.hh>
30 
31 #include <utility/file/FileName.hh>
32 
33 namespace protocols {
34 namespace hybridization {
35 
37 
38 public:
40  //HybridizeProtocol(std::string template_list_file);
41 
42  void init();
43 
46  void add_template(
47  std::string template_fn,
48  std::string cst_fn,
49  std::string symmdef_file,
50  core::Real weight = 1.,
51  core::Real domain_assembly_weight = 0.,
52  core::Size cluster_id = 1,
54 
55  void pick_starting_template(core::Size & initial_template_index,
56  core::Size & initial_template_index_icluster,
57  utility::vector1 < core::Size > & template_index_icluster,
58  utility::vector1 < core::pose::PoseOP > & templates_icluster,
59  utility::vector1 < core::Real > & weights_icluster,
60  utility::vector1 < protocols::loops::Loops > & template_chunks_icluster,
61  utility::vector1 < protocols::loops::Loops > & template_contigs_icluster);
62 
64  expand_domains_to_full_length(utility::vector1 < utility::vector1 < Loops > > all_domains, Size ref_domains_index, Size n_residues);
65 
66  void
68 
69  void
71 
72  //fpd optionally do not hybridize in stage 1
73  void
75  core::pose::Pose &pose,
76  core::pose::PoseOP chosen_templ,
77  protocols::loops::Loops template_contigs_icluster,
79 
80  // check fragments ... if they do not exist dynamically allocate them
82 
83  virtual void apply( Pose & );
84  virtual std::string get_name() const;
85 
86  virtual protocols::moves::MoverOP clone() const;
88 
89  virtual void
90  parse_my_tag( TagPtr const, DataMap &, Filters_map const &, Movers_map const &, Pose const & );
91 
92 private:
93  // parsible options
97  // 1mer fragment insertion weight where fragments are not allowed (across anchors) , vs. chunk insertion + big and small frags
99  // small fragment insertion weight where big fragments are not allowed (across anchors) , vs. chunk insertion + big frags
101  core::Real big_frag_insertion_weight_; // fragment insertion weight, vs. chunk insertion + small gap frags
102  core::Real frag_weight_aligned_; // fragment insertion to the aligned region, vs. unaligned region
103  bool auto_frag_insertion_weight_; // automatically set fragment insertion weights
111 
112  // ddomain options
115 
116  // relax
118 
119  // abinitio frag9,frag3 flags
120  utility::vector1 <core::fragment::FragSetOP> fragments_big_; // 9mers/fragA equivalent in AbrelaxApplication
121  utility::vector1 <core::fragment::FragSetOP> fragments_small_; // 3mers/fragB equivalent in AbrelaxApplication
122 
123  // native pose, aln
126 
127  // template information (all from hybrid.config)
139  std::map< Size, utility::vector1 < Size > > clusterID_map_;
140 
142 
143  // strand pairings
149 
150 };
151 
152 } // hybridization
153 } // protocols
154 
155 #endif