Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
RNA_ResidueType.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 RNA_residueType
11 ///
12 /// @brief
13 /// RNA specific properties
14 ///
15 /// @author Parin Sripakdeevong (sripakpa@stanford.edu)
16 ////////////////////////////////////////////////////////////////////////
17 
18 
19 
20 #ifndef INCLUDED_core_chemical_rna_RNA_ResidueType_hh
21 #define INCLUDED_core_chemical_rna_RNA_ResidueType_hh
22 
23 
24 // Package headers
27 
28 // Numeric headers
29 
30 // Utility headers
31 #include <utility/pointer/ReferenceCount.hh>
32 
33 // C++ headers
34 #include <utility/vector1.hh>
35 
36 
37 namespace core {
38 namespace chemical {
39 namespace rna {
40 
41 
42 /////////////////////////////////////Parin S, Dec 23, 2011: RNA stuff//////////////////////////////////////////
44 
45 
46  public:
47 
49 
50  virtual ~RNA_ResidueType();
51 
52  ///////////////////////////Implemented for fast lookup! Parin Sripakdeevong, June 25th, 2011//////////////////
53  private:
54 
55  void
56  rna_note_chi_controls_atom( core::Size const chi, core::Size const atomno, utility::vector1< core::Size > & last_controlling_chi);
57 
58 
59  public:
60 
61  void
62  update_derived_rna_data(ResidueTypeCOP const residue_type_in);
63 
64  void
65  rna_update_last_controlling_chi(ResidueTypeCOP const residue_type_in,
66  utility::vector1< core::Size > & last_controlling_chi,
67  utility::vector1< AtomIndices > & atoms_last_controlled_by_chi);
68 
69  ////////////Fast lookup functions///////
70 
72  Is_virtual_atom_list() const;
73 
74  bool
75  atom_is_virtual( Size const atomno ) const;
76 
78  Is_phosphate_atom_list() const;
79 
80  /// @brief quick lookup: is the atom with the given index is part of the RNA phosphate or not?
81  bool
82  atom_is_phosphate( Size const atomno ) const;
83 
85  Is_RNA_base_atom_list() const;
86 
87  bool
88  is_RNA_base_atom( Size const atomno ) const;
89 
90  AtomIndices const &
91  RNA_base_atoms() const;
92 
93  Size
94  ho2star_index() const;
95 
96  Size
97  o2star_index() const;
98 
99  Size
100  p_atom_index() const;
101 
102  Size
103  o1p_atom_index() const;
104 
105  Size
106  o2p_atom_index() const;
107 
108  Size
109  o5star_atom_index() const;
110 
111  Size
112  o3star_atom_index() const;
113 
114  Size
115  o4star_atom_index() const;
116 
117  Size
118  c1star_atom_index() const;
119 
120  Size
121  c2star_atom_index() const;
122 
123  Size
124  c4star_atom_index() const;
125 
126  ///////////////////////////////////////////////////////////////////////////////////////
127 
128  public:
129 
130  //o2star atom
133 
134  //Phosphate atoms
140 
141  //Ribose atoms
146 
148 
151  //For fast look whether atom is VIRTUAL type.
153  //AtomIndices base_heavy_atoms_;
154  //AtomIndices base_hydrogen_atoms_;
155 
156  ResidueTypeCOP residue_type_; //Pointer to the main ResidueType object that this RNA_ResidueType object belongs to.
157 
158 }; //RNA_ResidueType
159 
160 
161 
162 } // rna
163 } // chemical
164 } // core
165 
166 #endif // INCLUDED_core_chemical_rna_RNA_ResidueType_hh