Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ScoreType.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 core/scoring/ScoreType.hh
11 /// @brief Score type enumeration
12 /// @author Phil Bradley
13 
14 
15 #ifndef INCLUDED_core_scoring_ScoreType_hh
16 #define INCLUDED_core_scoring_ScoreType_hh
17 
18 #include <iostream>
19 #include <utility/vector1.hh>
20 
21 namespace core {
22 namespace scoring {
23 
24  /////////////////////////////////////////////////////////////////////////////////
25  /////// WARNING WARNING WARNING
26  ///////
27  /////// if you add a new ScoreType please also add its string name in ScoreTypeManager.cc
28  ///////
29  /////// WARNING WARNING WARNING
30  /////////////////////////////////////////////////////////////////////////////////
31 
32 /// @brief Type for looking up cached energies
33 /// I guess we could get rid of the fa_ prefix, except maybe for
34 /// fa_pair, to distinguish from std::pair and the centroid pair score...
35 enum ScoreType {
36 
37  /// begin short ranged ci2b scores -- these guys are cached
38  /// in the energy graph -- when appropriate --
39  /// they are reused between rounds of scoring.
40  fa_atr = 1, //enumeration starts at 1 for indexing utility::vector1
46  fa_intra_RNA_base_phos_atr, //RNA specific score term
47  fa_intra_RNA_base_phos_rep, //RNA specific score term
48  fa_intra_RNA_base_phos_sol, //RNA specific score term
60  mm_twist, // could be lr 2benergy and not in energy graph
61  mm_bend, // could be lr 2benergy and not in energy graph
62  mm_stretch, // could be lr 2benergy and not in energy graph
66  lk_polar_intra_RNA, //RNA specific score term
67  lk_nonpolar_intra_RNA, //RNA specific score term
68 // csd_torsion, //commenting out until it is implemented
78  pcs, //Pseudocontact Shift Energy
79  pcs2, //Pseudocontact Shift Energy version 2. Will replace pcs end of 2010
80 
81  fastsaxs, // fastsaxs agreement using formulation of Stovgaard et al (BMC Bioinf. 2010)
82  saxs_score, // centroid saxs asessment
84  saxs_fa_score, // full-atom SAXS score
85  pddf_score, // score based on pairwise distance distribution function
86 
87  //pba Membrane all atom terms
88  fa_mbenv, // depth dependent reference term
89  fa_mbsolv, // burial+depth dependent term
90 
91  //Split out hack_elec for RNA.
98 
102 
105  rna_data_backbone, // Using chemical accessibility data for RNA.
106 
107  //Carbon hydrogen bonds -- moved up here since they are currently context independent.
112 
113  /// proline closure energy
116 
117  vdw, // centroid
118  cenpack, // centroid
119 
120  cenpack_smooth, //fpd smooth cenpack
121  cen_hb, //fpd centroid bb hbonding
122 
123  hybrid_vdw, // hybrid centroid+fa
124 
125  // gaussian overlap
127 
128 
129  rna_vdw, // low res clash check for RNA
130  rna_base_backbone, // Bases to 2'-OH, phosphates, etc.
131  rna_backbone_backbone, // 2'-OH to 2'-OH, phosphates, etc.
132  rna_repulsive, // mainly phosphate-phosphate repulsion
133  rna_base_pair_pairwise, // Base-base interactions (Watson-Crick and non-Watson-Crick)
134  rna_base_axis_pairwise, // Force base normals to be parallel
135  rna_base_stagger_pairwise, // Force base pairs to be in same plane.
136  rna_base_stack_pairwise, // Stacking interactions
137  rna_base_stack_axis_pairwise, // Stacking interactions should involve parallel bases.
138  rna_data_base, // Using chemical accessibility data for RNA.
139 
140  //RNA stuff
141  // This is a filtered version of the pairwise RNA low resolution terms above,
142  // disallows a base edge to form more than one base pair, and
143  // disallows two bases to both stack and pair.
144  // THIS IS NOT REALLY PAIR-WISE, but is calculated in a finalize_energy
145  // step at the end of a 2-body score function (RNA_PairwiseLowResolutionEnergy.cc)
146  rna_base_pair, // Base-base interactions (Watson-Crick and non-Watson-Crick)
147  rna_base_axis, // Force base normals to be parallel
148  rna_base_stagger, // Force base pairs to be in same plane.
149  rna_base_stack, // Stacking interactions
150  rna_base_stack_axis, // Stacking interactions should involve parallel bases.
151 
152  rna_mg, //knowledge-based term for mg(2+)/RNA interactions for use in low res modeling.
153  rna_mg_rep, // ad-hoc, empirically validated term to prevent uncommon mg(2+)/atom interactions.
154  rna_mg_indirect, //knowledge-based term for mg(2+)/RNA interactions for use in low res modeling.
155  mg_chem_pot, // chemical potential ('mu') of instantiating an explicit mg(2+) ion. Actually a simple one-body term.
156 
157  // High resolution
158  rna_torsion, // RNA torsional potential.
159  rna_sugar_close, // constraints to keep RNA sugar closed, and with reasonably ideal geometry
160  fa_stack, // stacking interaction modeled as pairwise atom-atom interactions
161  // fa_stack_purine, // stacking interaction modeled as pairwise atom-atom interactions FOR PURINE
162  // fa_stack_pyrimidine, // stacking interaction modeled as pairwise atom-atom interactions FOR PYRIMIDINE
164 
165  // DNA constraints-based torsional potentials
169 
170  CI_geom_sol, //Context independent version. Currently tested only for RNA case.
171  CI_geom_sol_intra_RNA, //RNA specific score term
172 
173  fa_cust_pair_dist, // custom short range 2b
175 
176 
177  // All the orbitals scoretypes
182 
185 
186  // for in-python runtime-defined methods: most inclusive positioning in the
187  // score type enum: user may define any kind of energy method
188  // However, the user may define only a single runtime defined method
189  python, // <-- Deprecated use PyRosettaEnergie* instead
190 
191  n_ci_2b_score_types = python, /// keep this guy at the end of the ci2b scores
192  //end ci2b scores
193 
194  // Begin short-ranged, context dependent two-body energy method types.
195  // These are also cached in the edges of the EnergyGraph.
196  fa_pair, /// == fa_pair_pol_pol
207  hbond_intra, //Currently effects only RNA
208 
211 
212  // protein-protein interface scores
214 
215  // Geometric solvation
217  geom_sol_intra_RNA, //RNA specific score term
221 
222  pair, // centroid
223  cen_pair_smooth, //fpd smooth centroid pair
225  // sucker atom energy
227 
228  //RNA stuff
229  //Low resolution
230  rna_rg, // Radius of gyration for RNA
231 
232  // centroid interchain 1b (docking) scores
235 
236  //
237  // end short ranged two body scores
238  n_shortranged_2b_score_types = interchain_vdw, // keep this guy at the end of the sr ci/cd 2b scores
239  // 30 as of 1/7/2007 -- don't ever code using the literal "30", this is just a helpful count
240 
242 
243  //Full atom disulfide terms
249  //Centroid disulfide terms
255  //disulfide matching terms
259 
268  metalhash_constraint, // Rigid body, metal binding constraints for centroid mode
269  rna_bond_geometry, // deviations from ideal geometry
270 
289  mg_ref, // chemical potential for mg(2+) ('reference weight' in Rosetta lingo)
291 
292  // PB potential
294 
295  /// Whole structure energies
296  /// centroid whole structure energies
297  cen_env_smooth, //fpd smooth centroid env
298  cbeta_smooth, //fpd smooth cbeta
308  rg, // radius of gyration
309  co, // contact order
314  burial, // informatic burial prediction
315  abego, // informatic torsion-bin prediction
316 
317  /// Whole structure energies, centroid score
318  // secondary structure scores
323 
324  /// amino acid composition score
326 
327  dock_ens_conf, //conformer reference energies for docking
328 
329  csa,//NMR chemical shift anisotropy energy
330  dc,//NMR dipolar coupling energy
331  rdc,//NMR residual dipolar coupling energy
332  rdc_segments, //fit alignment on multiple segments independently
334  // end centroid whole structure energies
340 
341  rna_chem_shift, //RNA NMR chemical shift pseudo-energy term
342 
343  dab_sasa, // classic 1.4A probe solvant accessible surface area
344  dab_sev, // solvent excluded volume -- volume of atoms inflated by 1.4A
345  sa, // nonpolar contribution in GBSA
346 
347  // centroid interhcain 1b (docking) scores -- Demonstrate that these improve performance or remove them
350  //
351 
357 
358  cart_bonded, // cartesian bonded potential
359  cart_bonded_angle, // cartesian bonded potential
360  cart_bonded_length, // cartesian bonded potential
361  cart_bonded_torsion, // cartesian bonded potential
362 
363  //Neighbor Vector solvation approximation
367 
368 
369 
370  //Symmetry bonus
372 
373  //Implicit Ligand interactions (symmetry)
375 
376  // Other energies.
377 
378  // packing score energy
380 
381  // model-quality metrics.
383 
384 
385  // for ResidueConstraint
387 
388  // Residue Type linking constraint
390 
391  // for PocketConstraint
393 
394  // for BackboneStubConstraint
396 
400 
401  // fit-to-density scores
407 
408  // patterson correlation
410 
412  //membrane environment smooth
414 
417 
418  // etc etc
419  // Why is there a total score?
421 
422  /// This element marks the end of the active score types. Elements in the enumeration
423  /// up to this point will have space allocated for them in the EnergyMap object. Elements
424  /// past this point are considered inactive and will not have space allocated for them.
425  /// If you wish to use an inactive score type, you must move that score type into its appropriate
426  /// position in the ScoreType enumeration (described above) and then recompile.
427  /// Inactive score types must still have their names included in the ScoreTypeManager's
428  /// string-to-score-type map.
430 
431  /// This element marks the very end of the score type enumeration. Elements between
432  /// the n_score_types element and this element are considered inactive. They may not
433  /// be used by any EnergyMethod or they will result in an out-of-bounds write and
434  /// unexpected behavior. To use an inactived score type, the score type must be moved
435  /// to an earlier position in this enumeration, and the program must be recompiled.
436  /// Keep this guy last.
438 };
439 
440 
442 
443 /// @brief Returns the ScoreType titled <name>
444 ///
445 /// example(s):
446 /// score_type_from_name("fa_sol")
447 /// See also:
448 /// ScoreFunction
449 /// ScoreType
450 /// Energies
451 /// Energies.residue_total_energies
452 /// name_from_score_type
453 ScoreType
454 score_type_from_name( std::string const & name );
455 
456 /// @brief Returns the name of the ScoreType <score_type>
457 ///
458 /// example(s):
459 /// name_from_score_type(fa_sol)
460 /// See also:
461 /// ScoreFunction
462 /// ScoreType
463 /// Energies
464 /// Energies.residue_total_energies
465 /// score_type_from_name
467 name_from_score_type( ScoreType score_type );
468 
469  /// @brief input operator for ScoreType enum type
470 std::istream & operator >>( std::istream & is, ScoreType & t );
471  /// @brief output operator for ScoreType enum type
472 std::ostream & operator <<( std::ostream & os, ScoreType const & t );
473 
474  /// @brief output operator for ScoreTypes list
475 std::ostream & operator <<( std::ostream & os, ScoreTypes const & score_types );
476 
477 } // namespace scoring
478 } // namespace core
479 
480 
481 #endif