Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
InterchainEnvEnergy.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/scoring/methods/InterchainEnvEnergy.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/ScoringManager.hh>
24 // AUTO-REMOVED #include <core/scoring/EnergyGraph.hh>
25 
26 // Project headers
27 #include <core/pose/Pose.hh>
28 // AUTO-REMOVED #include <core/conformation/Residue.hh>
29 
30 
31 // Utility headers
32 
33 #include <basic/Tracer.hh>
34 
36 #include <utility/vector1.hh>
37 
38 using basic::T;
39 using basic::Error;
40 using basic::Warning;
41 
42 static basic::Tracer TR("protocols.scoring.methods.InterchainEnvEnergy");
43 
44 
45 // C++
46 
47 namespace protocols {
48 namespace scoring {
49 namespace methods {
50 
51 
52 /// @details This must return a fresh instance of the InterchainEnvEnergy class,
53 /// never an instance already in use
57 ) const {
58  return new InterchainEnvEnergy;
59 }
60 
63  using namespace core::scoring;
64  ScoreTypes sts;
65  sts.push_back( interchain_env );
66  sts.push_back( interchain_contact );
67  return sts;
68 }
69 
70 
71 /// c-tor
74  potential_( InterchainPotential::get_instance() )
75 {}
76 
77 
78 /// clone
81 {
82  return new InterchainEnvEnergy();
83 }
84 
85 ///
86 void
88 {
89  // compute interpolated number of neighbors at various distance cutoffs
93 }
94 
95 /////////////////////////////////////////////////////////////////////////////
96 // scoring
97 /////////////////////////////////////////////////////////////////////////////
98 
99 //////////////////////////////////////////////////////////////////////////////////
100 /// @brief calculate the env_score for residues at the interface
101 void
103  core::conformation::Residue const & rsd,
104  core::pose::Pose const & pose,
106 ) const
107 {
108  using namespace core::scoring;
109  core::Real env_score ( 0.0 );
110  potential_->evaluate_env_score( pose, rsd, env_score );
111 
112  emap[ interchain_env ] += env_score;
113 }
114 
115 // is there a better way to get the contact score??
116 void
118  core::pose::Pose & pose,
121 ) const
122 {
123  using namespace core;
124  using namespace core::scoring;
125  Real contact_score ( 0.0 );
126  //int interface_residues ( 0 );
127  //interface_residues = potential_.interface_residues( pose );
128  //TR.Debug << "residues at interface: " << interface_residues << std::endl;
129 
130  //contact_score = ( 20 - interface_residues ) * 0.5;
131  //if ( interface_residues == 0 ) contact_score += 2.0;
132  //if ( interface_residues == 1 ) contact_score += 1.0;
133  //if ( interface_residues == 2 ) contact_score += 0.5;
134 
135  potential_->evaluate_contact_score( pose, contact_score );
136  emap[ interchain_contact ] = contact_score;
137 
138  // sets calculated from the CenPairInfo to false
139  potential_->finalize( pose );
140 }
143 {
144  return 1; // Initial versioning
145 }
146 
147 }
148 }
149 }