Rosetta 3.5
Main Page
Related Pages
Namespaces
Classes
Files
Examples
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
src
core
scoring
orbitals
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
64
class
OrbitalsStatistics
{
65
public
:
66
67
enum
orbital_type_name
{
68
C_pi_sp2
=1,
69
N_pi_sp2
,
70
N_p_sp2
,
71
O_pi_sp2
,
72
O_p_sp2
,
73
O_p_sp3
,
74
S_p_sp3
75
};
76
77
78
OrbitalsStatistics
();
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
85
void
increment_histogram_bin
(
86
core::Real
&
distance
,
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
();
96
utility::vector1< numeric::histograms::TwoDHistogram<core::Size, core::SSize>
>
get_histogram_vector
();
97
core::Size
get_number_of_histograms
();
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
104
utility::vector1< numeric::histograms::TwoDHistogram<core::Size, core::SSize>
>
histogram_vector_
;
105
numeric::histograms::TwoDHistogram<core::Size, core::SSize>
twoD_histogram_
;
106
core::Size
number_of_histograms_
;
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 */
Generated on Sat Jun 1 2013 11:39:26 for Rosetta 3.5 by
1.8.4