Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
InterchainPairEnergy.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 core/scoring/methods/InterchainPairEnergy.cc
11 /// @brief Statistically derived rotamer pair potentials
12 /// @detailed For docking (or between chains) only those residues at the interface
13 /// and between the two interfaces need to be evaluated
14 /// @author Monica Berrondo
15 
16 
17 // Unit headers
20 
21 // Package headers
23 // AUTO-REMOVED #include <core/scoring/EnergyGraph.hh>
24 
25 // Project headers
26 #include <core/pose/Pose.hh>
27 // AUTO-REMOVED #include <core/conformation/Residue.hh>
28 
30 #include <utility/vector1.hh>
31 
32 
33 
34 // Utility headers
35 
36 
37 
38 // C++
39 
40 namespace protocols {
41 namespace scoring {
42 namespace methods {
43 
44 
45 /// @details This must return a fresh instance of the InterchainPairEnergy class,
46 /// never an instance already in use
50 ) const {
51  return new InterchainPairEnergy;
52 }
53 
56  using namespace core::scoring;
57  ScoreTypes sts;
58  sts.push_back( interchain_pair );
59  sts.push_back( interchain_vdw );
60  return sts;
61 }
62 
63 
64 /// c-tor
67  potential_( InterchainPotential::get_instance() )
68 {}
69 
70 
71 /// clone
74 {
75  return new InterchainPairEnergy();
76 }
77 
78 ///
79 void
81 {
82  // compute interpolated number of neighbors at various distance cutoffs
86 }
87 
88 /////////////////////////////////////////////////////////////////////////////
89 // scoring
90 /////////////////////////////////////////////////////////////////////////////
91 
92 //////////////////////////////////////////////////////////////////////////////////
93 /// @brief calculate the pair_score between chains
94 void
96  core::conformation::Residue const & rsd1,
97  core::conformation::Residue const & rsd2,
98  core::pose::Pose const & pose,
101 ) const
102 {
103  using namespace core;
104  using namespace core::scoring;
105  Real pair_score ( 0.0 ), vdw_score ( 0.0 );
106 
107  /// this is probably really slow, interface should probably be kept track of in the interaction graph
108  potential_->evaluate_pair_and_vdw_score( pose, rsd1, rsd2, pair_score, vdw_score );
109 
110  /// divide by two to account for double counting that will occur
111  emap[ interchain_pair ] += pair_score;
112  emap[ interchain_vdw ] += vdw_score;
113 }
114 
115 // is there a better way to get the contact score??
116 void
118  core::pose::Pose & pose,
120  core::scoring::EnergyMap &// emap
121 ) const
122 {
123  // sets calculated from the CenPairInfo to false
124  potential_->finalize( pose );
125 }
126 
127 /// @brief Energy distance cutoff
130 {
131  return 6.0; /// now subtracted off 6.0 from cutoffs in centroid params files
132 // return 0.0; /// since all the cutoffs for centroid mode are rolled into the cendist check
133 }
136 {
137  return 1; // Initial versioning
138 }
139 
140 }
141 }
142 }