LOOS
v2.3.2

Class for reading a CHARMM coordinate file. More...
#include <charmm.hpp>
Public Member Functions  
CHARMM (const std::string fname)  
CHARMM (std::istream &ifs)  
virtual CHARMM *  clone (void) const 
Clones an object for polymorphism (see AtomicGroup::clone() for more info)  
CHARMM  copy (void) const 
Creates a deep copy (see AtomicGroup::copy() for more info)  
void  read (std::istream &is) 
Public Member Functions inherited from loos::AtomicGroup  
AtomicGroup (const int n)  
Creates a new AtomicGroup with n uninitialized atoms. More...  
AtomicGroup (const AtomicGroup &g)  
Copy constructor (atoms and box shared)  
AtomicGroup  copy (void) const 
Creates a deep copy of this group. More...  
uint  length (void) const 
uint  size (void) const 
bool  empty (void) const 
pAtom  getAtom (const int i) const 
Get the ith atom from this group.  
pAtom &  operator[] (const int i) 
Same as getAtom(i)  
const pAtom &  operator[] (const int i) const 
AtomicGroup &  append (pAtom pa) 
Append the atom onto the group.  
AtomicGroup &  append (std::vector< pAtom > pas) 
Append a vector of atoms.  
AtomicGroup &  append (const AtomicGroup &grp) 
Append an entire AtomicGroup onto this one (concatenation)  
AtomicGroup &  remove (pAtom pa) 
Delete a single atom.  
AtomicGroup &  remove (std::vector< pAtom > pas) 
Deletes a set of atoms.  
AtomicGroup &  remove (const AtomicGroup &grp) 
Deletes all atoms in the passed grp that are also in the current group.  
AtomicGroup &  operator+= (const AtomicGroup &rhs) 
AtomicGroup &  operator+= (const pAtom &rhs) 
AtomicGroup  operator+ (const AtomicGroup &rhs) 
AtomicGroup  operator+ (const pAtom &rhs) 
bool  operator== (AtomicGroup &rhs) 
Equality test for two groups. More...  
bool  operator!= (AtomicGroup &rhs) 
Inequality test for two groups.  
bool  operator== (const AtomicGroup &rhs) const 
Equality test for const groups. More...  
bool  operator!= (const AtomicGroup &rhs) const 
Inequality test for two groups.  
AtomicGroup  subset (const int offset, const int len=0) 
subset() and excise() args are patterned after perl's substr... More...  
AtomicGroup  excise (const int offset, const int len=0) 
excise returns the excised atoms as a group...  
template<class EqualsOp >  
bool  contains (const pAtom &p, const EqualsOp &op) 
Determines if a pAtom is contained in this group using the EqualsOp atomequality policy. More...  
bool  contains (const pAtom &p) 
Determines if a pAtom is contained in this group using the AtomEquals policy (ie the default comparison policy)  
template<class EqualsOp >  
bool  contains (const AtomicGroup &g, const EqualsOp &op) 
Determines if the passed group is a subset of the current group using the EqualsOp atomequality policy.  
bool  contains (const AtomicGroup &g) 
Determines if a group is a subset of the current group using the default AtomEquals policy.  
template<class EqualsOp >  
bool  containsAny (const AtomicGroup &g, const EqualsOp &op) 
Determines if a group contains any atom.  
bool  containsAny (const AtomicGroup &g) 
Determines if a group contains any atom using the default AtomEquals policy.  
template<class EqualsOp >  
AtomicGroup  intersect (const AtomicGroup &g, const EqualsOp &op) 
Computes the intersection of two groups using the EqualsOp atomequality policy. More...  
AtomicGroup  intersect (const AtomicGroup &g) 
Intersection of two groups.  
template<class EqualsOp >  
AtomicGroup  merge (const AtomicGroup &g, const EqualsOp &op) 
Union of two groups using the specified atomequality policy. More...  
AtomicGroup  merge (const AtomicGroup &g) 
Union of two groups using the default AtomEquals atomequality policy.  
AtomicGroup  select (const AtomSelector &sel) const 
Return a group consisting of atoms for which sel predicate returns true...  
std::vector< AtomicGroup >  splitByUniqueSegid (void) const 
Returns a vector of AtomicGroups split from the current group based on segid. More...  
std::vector< AtomicGroup >  splitByMolecule (void) const 
Returns a vector of AtomicGroups split based on bond connectivity.  
std::vector< AtomicGroup >  splitByResidue (void) const 
Returns a vector of AtomicGroups, each comprising a single residue. More...  
std::map< std::string, AtomicGroup >  splitByName (void) const 
Returns a vector of AtomicGroups, each containing atoms with the same name.  
AtomicGroup  centrifyByMolecule () const 
Replace a group with the center of masses of contained molecules. More...  
AtomicGroup  centrifyByResidue () const 
Replace a group with the cente of masses of contained residues (see centrifyByMolecule())  
pAtom  findById (const int id) const 
Find a contained atom by its atomid. More...  
AtomicGroup  groupFromID (const std::vector< int > &id_list) const 
Create a new group from a vector of atomids. More...  
AtomicGroup  getResidue (pAtom res) 
void  renumber (const int start=1, const int stride=1) 
Renumber the atomid's of the contained atoms...  
int  minId (void) const 
int  maxId (void) const 
int  minResid (void) const 
int  maxResid (void) const 
int  numberOfResidues (void) const 
int  numberOfSegids (void) const 
bool  allHaveProperty (const Atom::bits &property) const 
True if all atoms in the group have the passed property(ies)  
bool  anyHaveProperty (const Atom::bits &property) const 
True if any atom in the group have the passed property(ies)  
bool  hasBonds (void) const 
Does any atom in the group have bond information???  
bool  hasCoords (void) const 
Do all the atoms in the group have coordinates?  
void  clearBonds (void) 
Remove any bonding information present in contained atoms.  
void  pruneBonds () 
Attempt to prune connectivity (only retain bonds to atoms within this AtomicGroup) More...  
void  resetAtomIndices () 
Reset the atom indices (used for interfacing with trajectories) More...  
uint  deduceAtomicNumberFromMass (const double tol=0.1) 
Deduce atomic number from mass (if present), returning number of atoms assigned. More...  
bool  sorted (void) const 
Is the array of atoms already sorted??? More...  
void  sort (void) 
Sort based on atomid.  
bool  isPeriodic (void) const 
Test whether or not periodic boundary conditions are set.  
GCoord  periodicBox (void) const 
Fetch the periodic boundary conditions.  
void  periodicBox (const GCoord &c) 
Set the periodic boundary conditions.  
void  periodicBox (const greal x, const greal y, const greal z) 
Set the periodic boundary conditions.  
loos::SharedPeriodicBox  sharedPeriodicBox () const 
Provide access to the underlying shared periodic box...  
void  removePeriodicBox () 
Remove periodicity.  
void  reimage () 
void  reimageByAtom () 
Reimage atoms individually into the primary cell.  
void  mergeImage (pAtom &p) 
Takes a group that's split across a periodic boundary and reimages it so it's all together. More...  
void  mergeImage () 
Takes a group that's split across a periodic boundary and reimages it so it's all together, using the first atom in the AtomicGroup as the reference. More...  
AtomicGroup  within (const double dist, AtomicGroup &grp) const 
Find atoms in the current group that are within dist angstroms of any atom in grp.  
AtomicGroup  within (const double dist, AtomicGroup &grp, const GCoord &box) const 
Find atoms in grp that are within dist angstroms of atoms in the current group, considering periodicity.  
bool  contactWith (const double dist, const AtomicGroup &grp, const uint min=1) const 
Returns true if any atom of current group is within dist angstroms of grp. More...  
bool  contactWith (const double dist, const AtomicGroup &grp, const GCoord &box, const uint min=1) const 
Returns true if any atom of current group is within dist angstroms of grp. More...  
void  findBonds (const double dist=1.65) 
Distancebased search for bonds. More...  
template<class T >  
T  apply (T func) 
Apply a functor or a function to each atom in the group. More...  
iterator  begin (void) 
iterator  end (void) 
const_iterator  begin (void) const 
const_iterator  end (void) const 
std::vector< GCoord >  boundingBox (void) const 
Bounding box for the group... More...  
GCoord  centerAtOrigin (void) 
Translates the group so that the centroid is at the origin. More...  
GCoord  centroid (void) const 
Centroid of atoms (ignores mass, operates in group coordinates)  
greal  radius (const bool use_atom_as_reference=false) const 
Maximum radius from centroid of all atoms (not gyration) More...  
GCoord  centerOfMass (void) const 
Center of mass of the group (in group coordinates)  
GCoord  centerOfElectrons (void) const 
Analogous to center of mass.  
GCoord  dipoleMoment (void) const 
Dipole moment, relative to group's centroid.  
greal  totalCharge (void) const 
greal  totalMass (void) const 
greal  radiusOfGyration (void) const 
greal  sphericalVariance (const pAtom) const 
Spherical variance of group with respect to target atom. More...  
greal  sphericalVariance (const GCoord) const 
greal  rmsd (const AtomicGroup &) 
Compute the RMSD between two groups. More...  
std::vector< GCoord >  getTransformedCoords (const XForm &) const 
Returns a vector of coordinates transformed by the passed XForm. More...  
void  translate (const GCoord &v) 
Translate an atomic group by vector v.  
void  rotate (const GCoord &axis, const greal angle_in_degrees) 
Rotate group's coordinates (righthanded, about centroid)  
void  applyTransform (const XForm &) 
Apply the given transform to the group's coordinates...  
void  copyCoordinatesFrom (const AtomicGroup &g, const uint offset=0, const uint length=0) 
Copy coordinates from g into current group. More...  
std::vector< uint >  atomOrderMapFrom (const AtomicGroup &g) 
Map the order of atoms in AtomicGroup g into the current group. More...  
void  copyMappedCoordinatesFrom (const AtomicGroup &g, const std::vector< uint > &order) 
Given a mapping of atom order, copy the coordinates into the current group. More...  
void  copyMappedCoordinatesFrom (const AtomicGroup &g) 
Copy the coordinates from the group mapping the atom order. More...  
void  perturbCoords (const greal) 
Each atom is moved in a random direction by a vector of the passed size.  
std::vector< GCoord >  principalAxes (void) const 
Compute the principal axes of a group. More...  
std::vector< GCoord >  momentsOfInertia (void) const 
Computes the moments of inertia for a group. More...  
GMatrix  superposition (const AtomicGroup &) 
Calculates the transformation matrix for superposition of groups. More...  
GMatrix  alignOnto (const AtomicGroup &) 
Superimposes the current group onto the passed group. More...  
void  setCoords (double *seq, int m, int n) 
void  getCoords (double **outseq, int *m, int *n) 
std::vector< double >  coordsAsVector () const 
Static Public Member Functions  
static pAtomicGroup  create (const std::string &fname) 
Additional Inherited Members  
Public Types inherited from loos::AtomicGroup  
typedef std::vector< pAtom >::iterator  iterator 
typedef std::vector< pAtom >::const_iterator  const_iterator 
typedef pAtom  value_type 
Static Public Attributes inherited from loos::AtomicGroup  
static const double  superposition_zero_singular_value = 1e10 
Protected Member Functions inherited from loos::AtomicGroup  
void  setGroupConnectivity () 
Protected Attributes inherited from loos::AtomicGroup  
std::vector< pAtom >  atoms 
loos::SharedPeriodicBox  box 
Class for reading a CHARMM coordinate file.
The code extracts the atom/residue/segment names and numbers, plus the weight, which is assigned into the occupancy record. The code supports both the small and large CHARMM crd formats.
Definition at line 48 of file charmm.hpp.
void loos::CHARMM::read  (  std::istream &  is  ) 
The file starts with one or more comment lines, which begin with a "*" These will be discarded (for now at least – I suppose I could mimic what's done with a PDB file and store them, but I don't feel like it now. Note: For now, we ignore the "RESID" field, but stuff the weighting field into the occupancy.
Definition at line 51 of file charmm.cpp.