19 #ifndef OST_CHAIN_IMPL_HH
20 #define OST_CHAIN_IMPL_HH
22 #include <boost/enable_shared_from_this.hpp>
39 namespace ost {
namespace mol {
namespace impl {
43 public boost::enable_shared_from_this<ChainImpl>
146 return residue_list_;
162 const String& atom_name)
const;
201 int GetIndexForResNumInSequence(
const ResNum& number)
const;
207 std::list<Shift> shifts_;
Three dimensional vector class, using Real precision.
base class for the implementation
bool IsPolypeptide() const
whether the chain is a polypeptide
EntityImplPtr GetEntity() const
bool IsPolymer() const
whether the chain is a polymer
void SetDescription(const String desc)
Assign a description to a chain.
void RenumberAllResidues(const ResNumList &new_numbers)
ResidueImplPtr GetPrev(const ResidueImplPtr &r) const
ResidueImplPtr GetNext(const ResidueImplPtr &r) const
previous residue, not necessarily in sequence
void DeleteResidue(const ResNum &number)
ResidueImplPtr FindResidue(const ResNum &number) const
Get residue by number. Returns a invalid pointer if the chain does not have any residue with this num...
ResidueImplPtr AppendResidue(const ResidueImplPtr &res, bool deep)
append new residue with exactly the same parameters as res, but no atoms and bonds
void RenumberAllResidues(int start, bool keep_spacing)
int GetIndexForResNum(const ResNum &number) const
bool IsPolynucleotide() const
whether the chain is a polynucleotide
const ResidueImplList & GetResidueList() const
ResidueImplPtr AppendResidue(const ResidueKey &k)
Append residue at end of chain.
ResidueImplPtr InsertResidueBefore(int index, const ResNum &n, const ResidueKey &k)
String GetDescription() const
Get information about a chain.
ResidueImplList & GetResidueList()
geom::AlignedCuboid GetBounds() const
returns the axis-aligned bounding box of the entity
void DeleteResidue(const ResidueImplPtr &residue)
AtomImplPtr FindAtom(const ResNum &number, const String &atom_name) const
int GetAtomCount() const
Get number of atoms of this chain.
void SetInSequence(int index)
checks if the residue with that index breaks the in_sequence property and updates it accordingly
ResidueImplPtr InsertResidueAfter(int index, const ResNum &n, const ResidueKey &k)
ChainImpl(const EntityImplPtr &e, const String &name)
void UpdateTransformedPos()
bool InSequence() const
whether the residue numbers are in ascending order
geom::Vec3 GetCenterOfMass() const
ChainType GetType() const
Get the type of a chain.
void AssignSecondaryStructure(SecStructure ss, const ResNum &start, const ResNum &end)
void SetType(const ChainType type)
Assign a type to a chain.
bool IsOligosaccharide() const
whether the chain is a polysaccharide
int GetIndex(const ResidueImplPtr &res) const
void Apply(EntityVisitor &v)
int GetBondCount() const
Get number of bonds of this chain.
int GetResidueCount() const
Get number of residues of this chain.
void SetName(const String &new_name)
geom::Vec3 GetCenterOfAtoms() const
ResidueImplPtr AppendResidue(const ResidueKey &k, const ResNum &n)
Append residue at end of chain.
bool IsPolysaccharide() const
whether the chain is a polysaccharide
ImageStateConstModOPAlgorithm< ShiftFnc > Shift
boost::shared_ptr< AtomImpl > AtomImplPtr
boost::weak_ptr< EntityImpl > EntityImplW
std::vector< ResidueImplPtr > ResidueImplList
boost::shared_ptr< EntityImpl > EntityImplPtr
pointer_it< T > end(const std::vector< T > &values)
boost::shared_ptr< ResidueImpl > ResidueImplPtr
std::vector< ResNum > ResNumList
@ CHAINTYPE_POLY_RN
polyribonucleotide
@ CHAINTYPE_CYCLIC_PSEUDO_PEPTIDE
cyclic-pseudo-peptide
@ CHAINTYPE_POLY_PEPTIDE_DN_RN
peptide nucleic acid
@ CHAINTYPE_POLY_SAC_L
polysaccharide(L)
@ CHAINTYPE_BRANCHED
carbohydrate
@ CHAINTYPE_OLIGOSACCHARIDE
@ CHAINTYPE_POLY_SAC_D
polysaccharide(D)
@ CHAINTYPE_POLY_PEPTIDE_L
(L) amino acid sequence
@ CHAINTYPE_POLY_DN
polydeoxyribonucleotide
@ CHAINTYPE_POLY_PEPTIDE_D
(D) amino acid sequence
@ CHAINTYPE_POLY_DN_RN
polydeoxyribonucleotide/ -ribonucleotide hybrid
Secondary structure types as defined by DSSP. For convenience, the enum values match the characters u...