9 #ifndef __RNAMake__structure__
10 #define __RNAMake__structure__
15 #include "base/types.h"
16 #include "math/transform.h"
17 #include "math/xyz_matrix.h"
18 #include "structure/chain.fwd.h"
19 #include "structure/chain.h"
20 #include "structure/residue.h"
21 #include "structure/pdb_parser.h"
32 ChainOPs
const & chains):
37 String
const & path) {
39 auto residues = pdb_parser.parse(path);
41 connect_residues_into_chains(residues, chains_);
46 chains_ = ChainOPs(s.chains_.size());
48 for (
auto const & c : s.chains_) {
49 chains_[i] = std::make_shared<Chain>(*c);
58 Strings spl = split_str_by_delimiter(s,
":");
59 for(
auto const & c_str : spl) {
60 chains_.push_back(std::make_shared<Chain>(c_str, rts));
74 ResidueOPs
const & excluded_res) {
77 for (
auto const & r : residues()) {
79 for (
auto const & er : excluded_res) {
80 if( r->uuid() == er->uuid()) {found = 1;
break;}
82 if (found) {
continue; }
83 for (
auto const & b : r->get_beads()) {
107 for (
auto const & r : residues()) {
108 for (
auto const & a : r->atoms()) {
109 if(a.get() != NULL) {
119 move(Point
const & p) {
120 for(
auto & a : atoms()) {
121 a->coords(a->coords() + p);
127 transform(Transform
const & t) {
128 Matrix r = t.rotation().transpose();
129 Point trans = t.translation();
130 for(
auto & a : atoms() ) {
131 dot_vector(r, a->coords(), dummy_);
153 chains() {
return chains_; }
164 typedef std::shared_ptr<Structure> StructureOP;
Definition: residue_type_set.h:15
Definition: pdb_parser.h:18
Definition: structure.h:23