RNAMake
rna_structure.h
1 //
2 // rna_structure.h
3 // RNAMake
4 //
5 // Created by Joseph Yesselman on 12/2/15.
6 // Copyright (c) 2015 Joseph Yesselman. All rights reserved.
7 //
8 
9 #ifndef RNAMAKE_LIB_RNAMAKE_SRC_STRUCTURE_RNA_STRUCTURE_H_
10 #define RNAMAKE_LIB_RNAMAKE_SRC_STRUCTURE_RNA_STRUCTURE_H_
11 
12 #include <stdio.h>
13 #include <memory>
14 
15 //RNAMake
16 #include "structure/structure.h"
17 #include "structure/basepair.h"
18 #include "structure/residue.h"
19 
20 class RNAStructure {
21 public:
22  RNAStructure()
23  {}
24 
26  StructureOP const & structure,
27  BasepairOPs const & basepairs,
28  BasepairOPs const & ends):
29  structure_(structure),
30  basepairs_(basepairs),
31  ends_(ends)
32  {}
33 
34  virtual
35  ~RNAStructure() {}
36 
37 public:
38  int
39  end_index(
40  BasepairOP const &);
41 
42  int
43  end_index(
44  String const &);
45 
46  BasepairOPs
47  get_basepair(
48  String const &);
49 
50  BasepairOPs
51  get_basepair(
52  Uuid const &);
53 
54  BasepairOPs
55  get_basepair(
56  ResidueOP const &,
57  ResidueOP const &);
58 
59  BasepairOPs
60  get_basepair(
61  Uuid const &,
62  Uuid const &);
63 
64  Beads const &
65  get_beads(
66  BasepairOPs const &);
67 
68  Beads const &
69  get_beads(
70  BasepairOP const &);
71 
72  Beads const &
73  get_beads() {
74  ResidueOPs res;
75  beads_ = structure_->get_beads(res);
76  return beads_;
77  }
78 
79 public: //wrappers from structure
80 
81  inline
82  AtomOPs const
83  atoms() { return structure_->atoms(); }
84 
85  inline
86  ResidueOPs const
87  residues() { return structure_->residues(); }
88 
89  ChainOPs const &
90  chains() { return structure_->chains(); }
91 
92  inline
93  ResidueOP const
94  get_residue(
95  int num,
96  String const & chain_id,
97  String const & i_code) {
98  return structure_->get_residue(num, chain_id, i_code);
99  }
100 
101  inline
102  ResidueOP const
103  get_residue(
104  Uuid const & uuid) {
105  return structure_->get_residue(uuid);
106  }
107 
108  String const
109  to_pdb_str(
110  int rnumber = -1);
111 
112  void
113  to_pdb(
114  String const,
115  int renumber = -1);
116 
117 
118 public: //getters
119  inline
120  BasepairOPs const &
121  ends() const { return ends_; }
122 
123  inline
124  Strings const &
125  end_ids() const { return end_ids_; }
126 
127  inline
128  String const &
129  name() const { return name_; }
130 
131  inline
132  String const &
133  path() const { return path_; }
134 
135  inline
136  BasepairOPs const &
137  basepairs() const { return basepairs_; }
138 
139  inline
140  Beads const &
141  beads() const { return beads_; }
142 
143  inline
144  float const &
145  score() const { return score_; }
146 
147 public: //setters
148 
149  inline
150  void
151  name(String const & nname) { name_ = nname; }
152 
153  inline
154  void
155  path(String const & npath) { path_ = npath; }
156 
157  inline
158  void
159  score(float const & nscore) { score_ = nscore; }
160 
161  inline
162  void
163  end_ids(Strings const & end_ids) {
164  end_ids_ = end_ids;
165  }
166 
167  inline
168  void
169  ends(BasepairOPs const & ends) { ends_ = ends; }
170 
171 
172 protected:
173  StructureOP structure_;
174  BasepairOPs basepairs_, ends_;
175  String name_, path_;
176  Strings end_ids_;
177  Beads beads_;
178  float score_;
179 
180 };
181 
182 
183 typedef std::shared_ptr<RNAStructure> RNAStructureOP;
184 
185 std::unique_ptr<BasepairOPs>
186 end_from_basepairs(
187  StructureOP const &,
188  BasepairOPs const &);
189 
190 std::unique_ptr<BasepairOPs>
191 subselect_basepairs_with_res(
192  ResidueOPs const &,
193  BasepairOPs const &);
194 
195 
196 
197 #endif /* defined(RNAMAKE_LIB_RNAMAKE_SRC_STRUCTURE_RNA_STRUCTURE_H_) */
198 
199 
200 
201 
202 
203 
204 
205 
206 
207 
208 
209 
210 
211 
212 
213 
214 
215 
Definition: rna_structure.h:20