Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
OrbitalsStatistics.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 /// @begin OrbitalStatistics
11 ///
12 /// @brief
13 /// A class for generating statistics from orbitals
14 ///
15 /// @detailed
16 /// This is an attempt to be transparent in how the orbital-hydrogen interactions were converted into
17 /// a KBP. In general terms, a set of proteins from PDB were taken and the shortest distance from an
18 /// orbital to a polar or aromatic hydrogen was recorded and binned. In addition to the shortest distance,
19 /// an angle was taken. The angle considered is the angle between the base atom that contains the orbital, the
20 /// orbital, and the hydrogen. For polar hydrogens, only sidechain polar hydrogens were considered.
21 ///
22 /// For protein interactions, there are 7 classes (orbital types) of orbitals that statistics are generated.
23 /// These 7 types are mapped using a map to enum data structure. For each sidechain interaction, only the shortest
24 /// distance between any given orbital type to a hydrogen is calculated. That means, that for each sidechain interaction
25 /// only 1 distance, 1 angle, and 1 class is recorded.
26 ///
27 /// Bin sizes were calculated by .1A for distance and cos of 1 for angles. See below:
28 ///
29 /// angle
30 /// -1 -.9 -.8 -.7..........
31 /// d .1 | 0 0 0 0
32 /// i .2 | 500 0 0 0
33 /// s .3 | 25 0 0 0
34 /// t .4 | 0 30 5 0
35 ///
36 /// This is not the original code that was used to generate the statistics. The original code was much more
37 /// convoluted than this because I had no idea how to program. I wrote this piece for clarity. I have tested
38 /// it and it produces the same results.
39 ///
40 /// @authors
41 /// Steven Combs
42 ///
43 ///
44 /////////////////////////////////////////////////////////////////////////
45 #ifndef INCLUDED_core_scoring_orbitals_OrbitalsStatistics_hh
46 #define INCLUDED_core_scoring_orbitals_OrbitalsStatistics_hh
47 
48 #include <core/pose/Pose.fwd.hh>
49 #include <numeric/histograms/TwoDHistogram.hh>
50 #include <utility/vector1.hh>
51 #include <map>
52 #include <core/types.hh>
53 // AUTO-REMOVED #include <core/chemical/orbitals/OrbitalType.hh>
54 // AUTO-REMOVED #include <core/scoring/orbitals/OrbitalStatistics.fwd.hh>
55 // AUTO-REMOVED #include <iostream>
56 // AUTO-REMOVED #include <iomanip>
57 #include <fstream>
58 
59 //Auto Headers
60 namespace core{
61 namespace scoring{
62 namespace orbitals{
63 
65 public:
66 
75  };
76 
77 
79 
80  //void orbital_orbital(core::pose::Pose & pose);
81 
82  void sc_H_orbital(core::pose::Pose & pose);
83  /// Undefined, commenting out to fix PyRosetta build void bb_stats(core::pose::Pose & pose);
84 
87  core::Real & angle,
88  numeric::histograms::TwoDHistogram<core::Size, core::SSize> & histogram
89  );
90 
91  void bb_stats(
92  core::pose::Pose & pdb
93  );
94 
95  numeric::histograms::TwoDHistogram<core::Size, core::SSize> get_2D_histogram();
98 
99 
100 private:
101  OrbitalsStatistics(OrbitalsStatistics const & ); /// Non-copyable due to std::ofstream member, we need so PyRosetta builder
102  /// can figure out not to try to create copy constructor.
103 
105  numeric::histograms::TwoDHistogram<core::Size, core::SSize> twoD_histogram_;
107  std::map<std::string, orbital_type_name> orbital_type_2_enum_;
108  std::ofstream statistics_output_;
109 
110 
111 
112 };
113 
114 
115 
116 }
117 }
118 }
119 
120 #endif /* INCLUDED_core_scoring_orbitals_generate_statistics_OrbitalStatistics_hh */