17 #ifndef MAGNES_MOLECULE_H 18 #define MAGNES_MOLECULE_H 29 #include "mathtools.h" 30 #include "coreexport.h" 35 typedef std::vector<size_t> Ring;
41 class MoleculePrivate;
58 const std::vector<Frame>& Frames()
const;
60 std::vector<Frame>& Frames();
62 const Frame& CurrentFrame()
const;
64 Frame& CurrentFrame();
66 size_t CurrentFrameIndex()
const;
68 void SetCurrentFrame (
size_t i ) ;
70 const std::vector<Atom>& Atoms()
const;
72 std::vector<Atom>& Atoms() ;
74 const std::vector<Bond>& Bonds()
const;
76 std::vector<Bond>& Bonds();
78 size_t NBonds(
size_t i,
size_t j)
const;
80 const std::vector<double>& Populations()
const;
82 std::vector<double>& Populations();
84 double Weight()
const {
return CalculateWeight(); }
86 void MoveToCentroid();
88 std::vector < std::vector<size_t> > Rings (
size_t size=0 )
const;
90 std::vector< std::vector<size_t> > EssentialRings(
size_t size=0 )
const;
92 bool IsRingTied(
const std::vector<size_t>& ring)
const;
94 std::vector<size_t> ShortestPath(
size_t i,
size_t j)
const;
96 std::vector<int> FindAtomByName (
const std::string& name )
const;
98 double CalculateWeight()
const;
102 void SetBonds (
bool eachframe=
false );
104 const std::vector<PDBResidue*>& Residues()
const;
106 std::vector<PDBResidue*>& Residues();
108 std::list<int> Elements()
const;
110 std::list<std::string> ElementSymbols()
const;
112 std::vector<size_t> Neighbours (
size_t i )
const;
114 size_t IndexFromPDB(
const std::string& pdbname,
const std::string& resname,
const std::string& resindex)
const;
119 std::vector< std::vector<double> > SuperImposeMackay(
size_t reframe,
const std::vector<size_t>& atoms);
124 std::vector< std::vector<double> > SuperImpose(
size_t reframe,
const std::vector<size_t>& atoms,
bool massweighted=
false);
127 std::vector< std::vector< double > > EckartTransform(
size_t reframe,
const std::vector<size_t>& atoms);
129 bool CheckConformersSanity()
const;
131 void ReparentFrames();
133 const std::string& FileName()
const;
135 void SetFileName(
const std::string& filename);
137 bool FindInShell(std::vector<size_t>& searched,
size_t j)
const;
139 MoleculePrivate* m_private;
150 #endif // MAGNES_MOLECULE_H MAGNES_CORE_API std::ostream & operator<<(std::ostream &s, const Coordinate &c)
Definition: coordinate.h:269
the global magnes namespace
Definition: ccchequation.h:38
hybridization
Definition: atom.h:115
Definition: molecule.h:44
double Weight() const
Definition: molecule.h:84
Representation of a conformer.
Definition: frame.h:33