Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
DnaInterfaceFinder.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 /// @brief
11 /// @author ashworth
12 
13 #ifndef INCLUDED_protocols_dna_DnaInterfaceFinder_hh
14 #define INCLUDED_protocols_dna_DnaInterfaceFinder_hh
15 
17 
18 #include <core/types.hh>
19 #include <core/pose/Pose.fwd.hh>
20 
21 #include <utility/pointer/ReferenceCount.hh>
22 #include <utility/vector1.fwd.hh>
23 
24 #include <map>
25 
26 #include <utility/vector1.hh>
27 
28 
29 namespace protocols {
30 namespace dna {
31 
32 class DnaNeighbor {
33 public:
34  DnaNeighbor() : close_(false), contact_(false) {}
35  void close( bool val ) { close_ |= val; }
36  void contact( bool val ) { contact_ |= val; }
37  bool close() const { return close_; }
38  bool contact() const { return contact_; }
39 private:
41 };
42 
43 typedef std::map< core::Size, DnaNeighbor > DnaNeighbors;
44 
46 public:
47 
49  core::Real close_threshold = 10 * 10,
50  core::Real contact_threshold = 3.7 * 3.7,
51  core::Real z_cutoff = 10.,
52  bool base_only = false
53  ) : utility::pointer::ReferenceCount(),
54  close_threshold_( close_threshold ),
55  contact_threshold_( contact_threshold ),
56  z_cutoff_( z_cutoff ),
57  base_only_( base_only ),
58  initialized_( false )
59  {}
60 
61  virtual ~DnaInterfaceFinder(){}
62 
63  DnaInterfaceFinderOP clone() const { return new DnaInterfaceFinder(*this); }
64 
65  void determine_protein_interface( core::pose::Pose const & pose );
66 
67  void
69  core::pose::Pose const & pose,
70  utility::vector1< core::Size > const & protein_positions,
71  utility::vector1< core::Size > const & dna_positions
72  );
73 
74  void
75  determine_interface( core::pose::Pose const & pose );
76 
77  void
79  core::pose::Pose const & pose,
80  utility::vector1< core::Size > const & protein_positions,
81  utility::vector1< core::Size > const & dna_positions
82  );
83 
84  void
86  core::pose::Pose const & pose,
87  utility::vector1< core::Size > const & protein_positions,
88  utility::vector1< core::Size > const & dna_positions
89  );
90 
91  bool initialized() const { return initialized_; }
92 
93  DnaNeighbors const & protein_neighbors() const;
94  DnaNeighbors const & dna_neighbors() const;
95 
96 private:
98  bool base_only_;
102 
103 };
104 
105 } // namespace dna
106 } // namespace protocols
107 
108 #endif