Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ThreadingJob.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 protocols/comparative_modeling/ThreadingJob.hh
11 /// @brief header file for ThreadingJob classes
12 /// @author
13 
14 #ifndef INCLUDED_protocols_comparative_modeling_ThreadingJob_hh
15 #define INCLUDED_protocols_comparative_modeling_ThreadingJob_hh
16 
17 //unit headers
21 
22 //project headers
23 // AUTO-REMOVED #include <core/pose/Pose.hh>
24 
25 #include <protocols/jd2/Parser.fwd.hh> //for friendship
26 
27 //utility headers
28 #include <utility/pointer/ReferenceCount.hh>
29 #include <core/types.hh>
30 
31 //C++ headers
32 #include <string>
33 // AUTO-REMOVED #include <list>
34 
36 #include <utility/vector1.hh>
37 
38 
39 namespace protocols {
40 namespace comparative_modeling {
41 
42 ///@details The InnerThreadingJob class is responsible for knowing input requirements for a given job - how many nstruct, and what the input is. InnerThreadingJobs are relatively heavy; there is no need to duplicate a series of InnerThreadingJobs for each index into nstruct. The companion ThreadingJob class handles the nstruct index and has a pointer to an InnerThreadingJob (which is shared across many ThreadingJobs). InnerThreadingJob also holds a PoseOP to maintain the unmodified input pose for that job.
44 public:
45  ///@brief ctor. Note that it takes only the input tag and max nstruct,
46  /// pose instantiation is deferred until the pose is needed
48  core::pose::PoseCOP template_pdb,
50  std::string const & input_tag,
52  );
53 
54  ///@brief the alignment for this Job
56  return *alignment_;
57  }
58 
59  ///@brief convenience : alignment id
61  return alignment().alignment_id();
62  }
63 
64  ///@brief returns the "standard" loop definition (as conservative as possible)
66 
67  ///@brief returns list of extra residues to steal
70 
71  //NOTE:
72  //get_pose() will give you the parent_pdb and not the starting model, the starting model is created from the ThreadingJobInputter
73  // i have done it like this, since we can have multiple parent decoys for a given alignment read in via a silent file.
74  // thus, to keep track which job should work on which parent-pdb + alignment I put them here.
75  // alternative: have get_pose() refer to the starting_model
76  // InnerJob --> contains a sufficiently uniq id ( or pointer ) to fish out the parent_decoy when starting the job.
77 private:
78  core::sequence::SequenceAlignmentCOP alignment_; // alignment from input .ali file
81  // alignment from template seq (in .ali) to template pdb
82  // accounts for missing density in the input file
84 };
85 
86 } // namespace comparative_modeling
87 } // namespace protocols
88 
89 #endif //INCLUDED_protocols_comparative_modeling_ThreadingJob_HH