2 #include "../utils/fwd_declares.hpp" 7 #include <unordered_map> 10 #ifndef INDIGOX_CLASSES_MOLECULE_HPP 11 #define INDIGOX_CLASSES_MOLECULE_HPP 36 template <
typename Archive>
37 void serialise(Archive &archive,
const uint32_t version);
250 const std::string &
GetName()
const;
258 void SetName(std::string name);
295 const Atom &d,
bool manual);
389 std::shared_ptr<Impl> m_data;
void OptimiseChargeGroups()
std::vector< Angle > MoleculeAngles
Container for storing IXAngle instances.
Definition: molecule.hpp:28
void SetForcefield(const Forcefield &ff)
Residue GetResidueID(int32_t id)
Angle GetAngle(uint32_t pos)
Get the angle at position pos.
#define INDIGOX_GENERIC_PIMPL_CLASS_DEFAULTS(class_name)
Definition: fwd_declares.hpp:18
std::vector< Atom > MoleculeAtoms
Container for storing IXAtom instances.
Definition: molecule.hpp:22
void ResetForcefield(const Forcefield &ff)
bool RemoveBond(const Bond &bond)
Remove a bond from the molecule.
int64_t PerceiveAngles()
Determine angles in the molecule.
const std::string & GetName() const
Get the name of the molecule.
Definition: condensed.hpp:131
Definition: residue.hpp:11
void ReserveAtoms(int64_t num)
Reserve storage space for atoms.
int64_t NumBonds() const
Get the number of bonds in the molecule.
const MoleculeResidues & GetResidues()
const MoleculeAtoms & GetAtoms() const
int64_t NumDihedrals()
Get the number of dihedrals in the molecule.
const graph::CondensedMolecularGraph & GetCondensedGraph() const
bool RemoveAtom(const Atom &atom)
Remove an atom from the molecule.
int32_t GetMolecularCharge() const
Get the molecular charge of the molecule.
void SetMolecularCharge(int32_t q)
Set the molecular charge of the molecule.
Class containing a graph representation of a molecule.
Definition: molecular.hpp:95
const Forcefield & GetForcefield() const
Molecule LoadMolecule(std::string path)
std::vector< Residue > MoleculeResidues
Definition: molecule.hpp:33
Namespace for all graph related functionality.
Definition: access.hpp:7
Atom GetAtomTag(int64_t tag) const
Get the first atom with the given tag.
Dihedral GetDihedralTag(int64_t tag) const
Get the first dihedral with the given tag.
bool HasAngle(const Angle &angle) const
Check if the angle is owned by this molecule.
int32_t PerceiveResidues()
friend class cereal::access
Friendship allows serialisation.
Definition: molecule.hpp:17
const MoleculeAngles & GetAngles()
Atom GetAtom(uint32_t pos) const
Get the atom at position pos.
void SetName(std::string name)
Set the name of the molecule.
std::vector< Dihedral > MoleculeDihedrals
Container for storing IXDihedral instances.
Definition: molecule.hpp:31
std::vector< Bond > MoleculeBonds
Container for storing IXBond instances.
Definition: molecule.hpp:25
Angle GetAngleID(int64_t id) const
Get the angle with the given id.
const graph::MolecularGraph & GetGraph() const
Get the molecular graph for this molecule.
bool HasForcefield() const
void ReorderAtoms(MoleculeAtoms &new_order)
Definition: dihedral.hpp:14
void SaveMolecule(const Molecule &mol, std::string path)
Definition: molecule_impl.hpp:145
Bond GetBondID(int64_t id) const
Get the bond with the given id.
Definition: molecule.hpp:15
Read only class for storing elemental information.
Definition: periodictable.hpp:28
Bond GetBond(uint32_t pos) const
Get the bond at position pos.
bool HasDihedral(const Dihedral &dihedral) const
Check if the dihedral is owned by this molecule.
#define INDIGOX_GENERIC_PIMPL_CLASS_OPERATORS(class_name, short_name)
Definition: fwd_declares.hpp:26
Definition: forcefield.hpp:333
int64_t PerceiveDihedrals()
Determine dihedrals in the molecule.
int64_t NumAngles()
Get the number of angles in the molecule.
bool HasAtom(const Atom &atom) const
Check if the atom is owned by this molecule.
Dihedral GetDihedral(uint32_t pos)
Get the angle at position pos.
bool HasBond(const Bond &bond) const
Check if the bond is owned by this molecule.
Atom GetAtomID(int64_t id) const
Get the atom with the given id.
Atom NewAtom()
Create a new atom owned by the molecule.
Bond NewBond(const Atom &a, const Atom &b)
Create a bond between two atoms.
int64_t NumAtoms() const
Get the number of atoms in the molecule.
const MoleculeDihedrals & GetDihedrals()
Angle GetAngleTag(int64_t tag) const
Get the first angle with the given tag.
std::string GetFormula()
Get the molecular formula of the molecule.
const MoleculeBonds & GetBonds() const
Bond GetBondTag(int64_t tag) const
Get the first bond with the given tag.
void ReserveBonds(int64_t num)
Reserve storage space for bonds.
Dihedral GetDihedralID(int64_t id) const
Get the dihedral with the given id.