Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
OrbitalType.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 OrbitalType.cc
11 ///
12 /// @brief
13 /// A class that contains orbital parameters
14 ///
15 /// @details
16 /// This class contains the "chemical" information for orbitals. This does not contain the actual
17 /// xyz coordinates of the class which is managed by the conformation/Residue.hh. The orbital_type properties
18 /// are assigned by the class OrbitalTypeSet which is initiated from the ChemicalManager. Orbital type properties
19 /// are currently are read in from the file located chemical/orbital_type_sets/fa_standard/orbital_properties.txt.
20 /// These properties contain the the parameters of distance, but can be modified. Currently this is a very small
21 /// class that will be added on as more and more properties are identified and added.
22 /// Note that information about the atomtype is stored along with the orbital type. This may or may not be useful
23 /// later. Just adding the functionality for shits and giggles.
24 ///
25 /// Orbital type name: the orbital type name contains the hybridization, orbital name, and element associated with the orbital
26 ///
27 /// Hybridization: the hybridiztion of the atom that the orbital is bonded to (sp, sp2, sp3)
28 ///
29 /// Orbital Name: the name of the orbital. This usually is p, d, pi, sigma. The orbital name is different than the orbital type name
30 ///
31 /// Atom Type Name: the type of atom associated with an orbital
32 ///
33 /// Distance: distance the orbital comes off of the atom. Currently, for residues, the distance is the Bohr radius of Hydrogen+element
34 ///
35 ///
36 ///
37 ///
38 ///
39 /// @author Steven Combs
40 ///
41 ///
42 /// @last_modified December 15 2010
43 /////////////////////////////////////////////////////////////////////////
44 #ifndef INCLUDED_core_chemical_orbitals_OrbitalType_hh
45 #define INCLUDED_core_chemical_orbitals_OrbitalType_hh
46 
47 #include <utility/vector1.hh>
48 #include <core/types.hh>
49 #include <string>
51 
52 namespace core{
53 namespace chemical{
54 namespace orbitals{
55 
56 class OrbitalType {
57 public:
58 
59 
61 
62  ///@brief The parameters are the actual headings in the orbital_properties.txt. If you want to add more paramters,
63  /// you must edit orbital_properties.txt and add another heading. You also need to edit AtomTypeSet.txt so that
64  /// it recognizes that parameter and parses it. The parameters are different form the properties in that they
65  /// are Reals/Size and properties are strings.
66  void
68  std::string const & param,
69  core::Real const setting
70  );
71 
72  ///@brief Currently, these properties are not actually in the orbital_properties.txt. I have them here
73  /// as an example on how to add properties. This is also a place holder as the ligand code will
74  /// soon be using these properties. The Acceptor/Donor could refer to orbitals that have a lone pair
75  /// and are donating to a hydrogen, or an electron defficient region. In order to add properties, one
76  /// must add the properties to the last line of orbital_properties.txt and make a private member variable
77  /// for that property in the header file. Then do a string match comparision, like seen below. These properties
78  /// are set via OrbitalTypeSet.hh
79  void
81  std::string const & property,
82  bool const setting
83  );
84 
85  ///@brief returns the name of the orbital type. defined in orbital_properties.txt
86  std::string name() const;
87 
88  ///@brief returns the distance from the atom the orbital comes off. defined in orbital_properties.txt
89  Real distance() const;
90 
91  ///@brief returns the atom_types associated with the orbital type. defined in orbital_properties.txt
93 
94  ///@brief returns hybrdiziation of atom the orbital is attached to
95  std::string hybridization() const;
96 
97  ///@brief returns the orbital associated with the type
98  std::string orbital_name() const;
99 
101 
102 
103 private:
104  ///@brief is the orbital an acceptor?
106 
107  ///@brief is the orbital a donor?
109 
110  ///@brief the orbital type name
112 
113  ///@brief hybridization of atom the orbital is attached to
115 
116  ///@brief orbital name associated with the orbital type
118 
119  ///@brief atom type associated with a given orbital type
121 
122 
123  ///@brief distance of orbital from center of atom
125 
127 
128 
129 };
130 
131 }
132 }
133 }
134 
135 
136 
137 #endif /* ORBITALTYPE_HH_ */