19 #ifndef OST_MOL_COORD_FRAME_HH
20 #define OST_MOL_COORD_FRAME_HH
26 #include <boost/shared_ptr.hpp>
32 namespace ost {
namespace mol {
62 ucell_angles_=box_angles;
70 return this->ucell_size_;
78 return this->ucell_angles_;
102 Real GetAngle(
int atom1_index,
int atom2_index,
int atom3_index)
const;
119 std::vector<Real>& masses)
const;
130 std::vector<unsigned long>& indices2, std::vector<Real>& masses2)
const;
137 const std::vector<unsigned long>& indices_sele)
const;
153 std::vector<unsigned long>& index_list2)
const;
164 std::vector<Real>& masses_cm,
165 std::vector<unsigned long>& indices_atoms)
const;
185 std::pair<geom::Line3, Real>
FitCylinder(std::vector<unsigned long>& indices_ca)
const;
198 std::vector<unsigned long>& indices_c,
199 std::vector<unsigned long>& indices_o,
200 std::vector<unsigned long>& indices_n)
const;
232 std::vector<unsigned long>& indices,
233 std::vector<Real>& masses);
243 std::vector<unsigned long>& indices_ca,
244 std::vector<unsigned long>& indices_c,
245 std::vector<unsigned long>& indices_o,
246 std::vector<unsigned long>& indices_n);
Three dimensional vector class, using Real precision.
std::vector< Vec3 > base_type
geom::Plane GetODRPlane(const mol::EntityView &view1) const
geom::Plane GetODRPlane(std::vector< unsigned long > &indices_ca) const
Returns the best fit line to atoms in the EntityView view1.
Real GetRMSD(const std::vector< geom::Vec3 > &ref_pos, const std::vector< unsigned long > &indices_sele) const
Real GetDistanceBetwAtoms(const AtomHandle &a1, const AtomHandle &a2) const
geom::Vec3 GetCenterOfMassPos(std::vector< unsigned long > &indices, std::vector< Real > &masses) const
Calculates the center of mass given a list of indices and provided masses.
Real GetDistanceBetwAtoms(int atom1_index, int atom2_index) const
geom::Vec3 GetAtomPos(int atom_index) const
geom::Vec3 GetCellAngles() const
Real GetDistanceBetwCenterOfMass(std::vector< unsigned long > &indices1, std::vector< Real > &masses1, std::vector< unsigned long > &indices2, std::vector< Real > &masses2) const
void SetCellSize(const geom::Vec3 &s)
Real GetDihedralAngle(int a1_index, int a2_index, int a3_index, int a4_index) const
Returns the Dihedral angle between the four atom indices a1,a2,a3,a4.
Real GetAlphaHelixContent(const mol::EntityView &segment) const
see above
void SetCellAngles(const geom::Vec3 &a)
Real GetMinDistance(const mol::EntityView &view1, const mol::EntityView &view2) const
Returns the minimal distance between the atoms of two views (view1 and view2)
CoordFrame(base_type::iterator b, base_type::iterator e)
Real GetAlphaHelixContent(std::vector< unsigned long > &indices_ca, std::vector< unsigned long > &indices_c, std::vector< unsigned long > &indices_o, std::vector< unsigned long > &indices_n) const
Real GetAngle(int atom1_index, int atom2_index, int atom3_index) const
Real GetRMSD(const mol::EntityView &reference_view, const mol::EntityView &sele_view) const
CoordFrame(size_t size, const geom::Vec3 &value=geom::Vec3())
geom::Line3 GetODRLine(std::vector< unsigned long > &indices_ca) const
Returns the best fit line to atoms with indices in indices_ca.
CoordFrame(const std::vector< geom::Vec3 > &rhs)
Real GetAngle(const AtomHandle &a1, const AtomHandle &a2, const AtomHandle &a3) const
geom::Vec3List GetCellVectors() const
geom::Vec3 GetCellSize() const
std::pair< geom::Line3, Real > FitCylinder(const mol::EntityView &view1) const
see FitCylinder(std::vector<unsigned long>&)
CoordFrame(const std::vector< geom::Vec3 > &rhs, const geom::Vec3 box_size, const geom::Vec3 box_angles)
geom::Line3 GetODRLine(const mol::EntityView &view1) const
Returns the normal to the best fit plane to atoms with indices in indices_ca.
Real GetMinDistance(std::vector< unsigned long > &index_list1, std::vector< unsigned long > &index_list2) const
Returns the minimal distance between two groups of atoms.
geom::Vec3 GetAtomPos(const AtomHandle &atom) const
Real GetMinDistBetwCenterOfMassAndView(const mol::EntityView &view_cm, const mol::EntityView &view_atoms) const
Returns the minimal distance between the center of mass of two views.
Real GetDihedralAngle(const AtomHandle &a1, const AtomHandle &a2, const AtomHandle &a3, const AtomHandle &a4) const
Returns the Dihedral angle between the four atoms a1,a2,a3,a4.
CoordFrame(const base_type &rhs)
geom::Vec3 GetCenterOfMassPos(const mol::EntityView &sele) const
Returns the position of the centor of mass of the atoms in the EntityView.
Real GetMinDistBetwCenterOfMassAndView(std::vector< unsigned long > &indices_cm, std::vector< Real > &masses_cm, std::vector< unsigned long > &indices_atoms) const
Real GetDistanceBetwCenterOfMass(const mol::EntityView &sele1, const mol::EntityView &sele2) const
Returns the distance between the centers of mass of the two EntityViews.
std::pair< geom::Line3, Real > FitCylinder(std::vector< unsigned long > &indices_ca) const
#define DLLEXPORT_OST_MOL
DLLEXPORT_OST_MOL void GetIndices(const EntityView &sele, std::vector< unsigned long > &indices)
DLLEXPORT_OST_MOL void GetIndicesAndMasses(const EntityView &sele, std::vector< unsigned long > &indices, std::vector< Real > &masses)
conveniece for GetIndices and GetMasses in one call
DLLEXPORT_OST_MOL void GetMasses(const EntityView &sele, std::vector< Real > &masses)
DLLEXPORT_OST_MOL void GetCaCONIndices(const EntityView &segment, std::vector< unsigned long > &indices_ca, std::vector< unsigned long > &indices_c, std::vector< unsigned long > &indices_o, std::vector< unsigned long > &indices_n)
Writes the backbone indices of all residues in the EntityView into the provided list.
boost::shared_ptr< CoordFrame > CoordFramePtr
DLLEXPORT_OST_MOL CoordFrame CreateCoordFrame(const geom::Vec3List &atom_pos, const geom::Vec3 &cell_size=geom::Vec3(), const geom::Vec3 &cell_angles=geom::Vec3())
DLLEXPORT_OST_MOL void GetCaIndices(const EntityView &segment, std::vector< unsigned long > &indices_ca)
Writes the indices of all atoms in the EntityView into the provided list.
std::vector< CoordFramePtr > CoordFrameList
DLLEXPORT_OST_MOL void GetPositions(const EntityView &sele, std::vector< geom::Vec3 > &ref_pos)
Writes the positions of all atoms in the EntityView into the provided vec3 list.