Public Member Functions | Protected Member Functions | Private Attributes | List of all members
PLMD::SimpleRMSD Class Referenceabstract

#include <SimpleRMSD.h>

Inheritance diagram for PLMD::SimpleRMSD:
Inheritance graph
[legend]

Public Member Functions

 SimpleRMSD (const ReferenceConfigurationOptions &ro)
 
void read (const PDB &)
 Do all local business for setting the configuration. More...
 
double calc (const std::vector< Vector > &pos, ReferenceValuePack &myder, const bool &squared) const
 
bool pcaIsEnabledForThisReference ()
 Stuff for pca. More...
 
void setupPCAStorage (ReferenceValuePack &mypack)
 Stuff to setup pca. More...
 
double projectAtomicDisplacementOnVector (const unsigned &iv, const Matrix< Vector > &vecs, const std::vector< Vector > &pos, ReferenceValuePack &mypack) const
 
 SimpleRMSD (const std::string &thisname, Action *)
 
void read (const PDB &)
 Do all local business for setting the configuration. More...
 
double dist (const std::vector< Vector > &pos, const bool &squared)
 
double calc (const bool &squared)
 
double simpleAlignment (const std::vector< double > &align, const std::vector< double > &displace, const std::vector< Vector > &positions, bool squared)
 
virtual void setReferenceAtoms (const std::vector< Vector > &conf, const std::vector< double > &align_in, const std::vector< double > &displace_in)
 Set the reference structure. More...
 
double calc (const std::vector< Vector > &pos, const Pbc &pbc, const std::vector< Value * > &vals, const std::vector< double > &arg, ReferenceValuePack &myder, const bool &squared) const
 Calculate. More...
 
virtual double calc (const std::vector< Vector > &pos, const Pbc &pbc, ReferenceValuePack &myder, const bool &squared) const =0
 Calculate the distance using the input position. More...
 
double calculate (const std::vector< Vector > &pos, const Pbc &pbc, ReferenceValuePack &myder, const bool &squared) const
 
double calculate (const std::vector< Vector > &pos, const Pbc &pbc, const std::vector< Value * > &vals, ReferenceValuePack &myder, const bool &squared=false) const
 Calculate the distance from the reference configuration. More...
 
virtual void setBoundsOnDistances (bool dopbc, double lbound=0.0, double ubound=std::numeric_limits< double >::max())
 This sets upper and lower bounds on distances to be used in DRMSD (here it does nothing) More...
 
virtual void setupRMSDObject ()
 This is used by MultiDomainRMSD to setup the RMSD object in Optimal RMSD type. More...
 
unsigned getNumberOfReferencePositions () const
 This returns the number of reference atom positions. More...
 
unsigned getAtomIndex (const unsigned &) const
 This allows us to use a single pos array with RMSD objects using different atom indexes. More...
 
virtual void getAtomRequests (std::vector< AtomNumber > &, bool disable_checks=false)
 Get the atoms required (additional checks are required when we have multiple domains) More...
 
void setAtomNumbers (const std::vector< AtomNumber > &numbers)
 Set the indices of the reference atoms. More...
 
void printAtoms (OFile &ofile, const double &lunits) const
 Print the atomic positions. More...
 
const std::vector< AtomNumber > & getAbsoluteIndexes ()
 Return all atom indexes. More...
 
unsigned getNumberOfAtoms () const
 This returns how many atoms there should be. More...
 
std::string getName () const
 Return the name of this metric. More...
 
virtual unsigned getNumberOfReferenceArguments () const
 
virtual void getArgumentRequests (std::vector< std::string > &, bool disable_checks=false)
 Retrieve the arguments that are required for this guy. More...
 
virtual void set (const PDB &)
 Set the final number of arguments. More...
 
void setWeight (const double &ww)
 Set the weight for this frame. More...
 
double getWeight () const
 Return the weight for this frame. More...
 
template<class T >
bool parse (const std::string &key, T &t, bool ignore_missing=false)
 Return the derivatives of the distance wrt the cell vectors. More...
 
template<class T >
bool parseVector (const std::string &key, std::vector< T > &t, bool ignore_missing=false)
 Parse vector from the pdb remarks. More...
 
void parseFlag (const std::string &key, bool &t)
 Parse a flag. More...
 
void checkRead ()
 Check that all the remarks in the pdb have been read in. More...
 
void copyDerivatives (const ReferenceConfiguration *)
 Copy derivatives from one frame to this frame. More...
 
void setNamesAndAtomNumbers (const std::vector< AtomNumber > &numbers, const std::vector< std::string > &arg)
 Set the atom numbers and the argument names. More...
 
void setReferenceConfig (const std::vector< Vector > &pos, const std::vector< double > &arg, const std::vector< double > &metric)
 Set the reference structure (perhaps should also pass the pbc and align and displace ) More...
 
void print (OFile &ofile, const double &time, const double &weight, const double &lunits, const double &old_norm)
 Print a pdb file containing the reference configuration. More...
 
void print (OFile &ofile, const std::string &fmt, const double &lunits)
 
virtual double getReferenceArgument (const unsigned &i) const
 Get one of the referene arguments. More...
 
virtual const std::vector< double > & getReferenceArguments ()
 
virtual const std::vector< double > & getReferenceMetric ()
 
virtual const std::vector< std::string > & getArgumentNames ()
 
bool isDirection () const
 Stuff for sanity checks on distance. More...
 
double calc (const std::vector< Vector > &pos, const Pbc &pbc, ReferenceValuePack &myder, const bool &squared) const
 Calculate the distance using the input position. More...
 
double calc (const std::vector< Vector > &pos, const Pbc &pbc, const std::vector< Value * > &vals, const std::vector< double > &arg, ReferenceValuePack &myder, const bool &squared) const
 Calculate. More...
 
double calculate (const std::vector< Vector > &pos, ReferenceValuePack &myder, const bool &squared) const
 
double calculate (const std::vector< Vector > &pos, const Pbc &pbc, ReferenceValuePack &myder, const bool &squared) const
 
unsigned getNumberOfReferencePositions () const
 This returns the number of reference atom positions. More...
 
unsigned getAtomIndex (const unsigned &) const
 This allows us to use a single pos array with RMSD objects using different atom indexes. More...
 
void setAtomNumbers (const std::vector< AtomNumber > &numbers)
 Set the indices of the reference atoms. More...
 
void printAtoms (OFile &ofile, const double &lunits) const
 Print the atomic positions. More...
 
const std::vector< AtomNumber > & getAbsoluteIndexes ()
 Return all atom indexes. More...
 
unsigned getNumberOfAtoms () const
 This returns how many atoms there should be. More...
 

Protected Member Functions

void readReference (const PDB &pdb)
 
void readAtomsFromPDB (const PDB &)
 Read in the atoms from the pdb file. More...
 
void setAtomIndices (const std::vector< AtomNumber > &atomnumbers)
 Add atom indices to list. More...
 
bool parseAtomList (const std::string &, std::vector< unsigned > &)
 Read a list of atoms from the pdb input file. More...
 
const std::vector< double > & getAlign () const
 Get the vector of alignment weights. More...
 
const std::vector< double > & getDisplace () const
 Get the vector of displacement weights. More...
 
Vector getReferencePosition (const unsigned &iatom) const
 Get the position of the ith atom. More...
 
const std::vector< Vector > & getReferencePositions () const
 Get the reference positions. More...
 
void singleDomainRequests (std::vector< AtomNumber > &, bool disable_checks)
 Add derivatives to iatom th atom in list. More...
 
void error (const std::string &msg)
 Derivatives wrt to the arguments. More...
 
void readReference (const PDB &pdb)
 
void readAtomsFromPDB (const PDB &)
 Read in the atoms from the pdb file. More...
 
void setAtomIndices (const std::vector< AtomNumber > &atomnumbers)
 Add atom indices to list. More...
 
bool parseAtomList (const std::string &, std::vector< unsigned > &)
 Read a list of atoms from the pdb input file. More...
 
const std::vector< double > & getAlign () const
 Get the vector of alignment weights. More...
 
const std::vector< double > & getDisplace () const
 Get the vector of displacement weights. More...
 
Vector getReferencePosition (const unsigned &iatom) const
 Get the position of the ith atom. More...
 
const std::vector< Vector > & getReferencePositions () const
 Get the reference positions. More...
 
void singleDomainRequests (std::vector< AtomNumber > &, bool disable_checks)
 Add derivatives to iatom th atom in list. More...
 

Private Attributes

RMSD myrmsd
 
std::vector< double > weights
 

Constructor & Destructor Documentation

PLMD::SimpleRMSD::SimpleRMSD ( const ReferenceConfigurationOptions ro)
explicit
PLMD::SimpleRMSD::SimpleRMSD ( const std::string &  thisname,
Action  
)

Member Function Documentation

double PLMD::SimpleRMSD::calc ( const std::vector< Vector > &  pos,
ReferenceValuePack myder,
const bool &  squared 
) const
virtual

Implements PLMD::RMSDBase.

double PLMD::SimpleRMSD::calc ( const bool &  squared)
double PLMD::RMSDBase::calc ( const std::vector< Vector > &  pos,
const Pbc pbc,
ReferenceValuePack myder,
const bool &  squared 
) const
virtualinherited

Calculate the distance using the input position.

Implements PLMD::SingleDomainRMSD.

double PLMD::SingleDomainRMSD::calc ( const std::vector< Vector > &  pos,
const Pbc pbc,
const std::vector< Value * > &  vals,
const std::vector< double > &  arg,
ReferenceValuePack myder,
const bool &  squared 
) const
virtualinherited

Calculate.

Implements PLMD::ReferenceConfiguration.

double PLMD::SingleDomainRMSD::calc ( const std::vector< Vector > &  pos,
const Pbc pbc,
const std::vector< Value * > &  vals,
const std::vector< double > &  arg,
ReferenceValuePack myder,
const bool &  squared 
) const
virtualinherited

Calculate.

Implements PLMD::ReferenceConfiguration.

virtual double PLMD::SingleDomainRMSD::calc ( const std::vector< Vector > &  pos,
const Pbc pbc,
ReferenceValuePack myder,
const bool &  squared 
) const
pure virtualinherited

Calculate the distance using the input position.

Implemented in PLMD::DRMSD, and PLMD::RMSDBase.

double PLMD::RMSDBase::calculate ( const std::vector< Vector > &  pos,
ReferenceValuePack myder,
const bool &  squared 
) const
inherited
double PLMD::SingleDomainRMSD::calculate ( const std::vector< Vector > &  pos,
const Pbc pbc,
ReferenceValuePack myder,
const bool &  squared 
) const
inherited
double PLMD::SingleDomainRMSD::calculate ( const std::vector< Vector > &  pos,
const Pbc pbc,
ReferenceValuePack myder,
const bool &  squared 
) const
inherited
double PLMD::ReferenceConfiguration::calculate ( const std::vector< Vector > &  pos,
const Pbc pbc,
const std::vector< Value * > &  vals,
ReferenceValuePack myder,
const bool &  squared = false 
) const
inherited

Calculate the distance from the reference configuration.

void PLMD::ReferenceConfiguration::checkRead ( )
inherited

Check that all the remarks in the pdb have been read in.

void PLMD::ReferenceConfiguration::copyDerivatives ( const ReferenceConfiguration )
inherited

Copy derivatives from one frame to this frame.

double PLMD::SimpleRMSD::dist ( const std::vector< Vector > &  pos,
const bool &  squared 
)
void PLMD::ReferenceConfiguration::error ( const std::string &  msg)
protectedinherited

Derivatives wrt to the arguments.

The virial contribution has to be stored Derivatives wrt to the atoms Crash with an error

const std::vector< AtomNumber > & PLMD::ReferenceAtoms::getAbsoluteIndexes ( )
inlinevirtualinherited

Return all atom indexes.

Reimplemented from PLMD::ReferenceConfiguration.

const std::vector< AtomNumber > & PLMD::ReferenceAtoms::getAbsoluteIndexes ( )
inlinevirtualinherited

Return all atom indexes.

Reimplemented from PLMD::ReferenceConfiguration.

const std::vector< double > & PLMD::ReferenceAtoms::getAlign ( ) const
inlineprotectedinherited

Get the vector of alignment weights.

const std::vector< double > & PLMD::ReferenceAtoms::getAlign ( ) const
inlineprotectedinherited

Get the vector of alignment weights.

const std::vector< std::string > & PLMD::ReferenceConfiguration::getArgumentNames ( )
inlinevirtualinherited

Reimplemented in PLMD::ReferenceArguments.

virtual void PLMD::ReferenceConfiguration::getArgumentRequests ( std::vector< std::string > &  ,
bool  disable_checks = false 
)
inlinevirtualinherited

Retrieve the arguments that are required for this guy.

Reimplemented in PLMD::ReferenceArguments.

unsigned PLMD::ReferenceAtoms::getAtomIndex ( const unsigned &  iatom) const
inlineinherited

This allows us to use a single pos array with RMSD objects using different atom indexes.

unsigned PLMD::ReferenceAtoms::getAtomIndex ( const unsigned &  iatom) const
inlineinherited

This allows us to use a single pos array with RMSD objects using different atom indexes.

void PLMD::ReferenceAtoms::getAtomRequests ( std::vector< AtomNumber > &  numbers,
bool  disable_checks = false 
)
virtualinherited

Get the atoms required (additional checks are required when we have multiple domains)

Reimplemented from PLMD::ReferenceConfiguration.

const std::vector< double > & PLMD::ReferenceAtoms::getDisplace ( ) const
inlineprotectedinherited

Get the vector of displacement weights.

const std::vector< double > & PLMD::ReferenceAtoms::getDisplace ( ) const
inlineprotectedinherited

Get the vector of displacement weights.

std::string PLMD::ReferenceConfiguration::getName ( ) const
inherited

Return the name of this metric.

unsigned PLMD::ReferenceAtoms::getNumberOfAtoms ( ) const
inlineinherited

This returns how many atoms there should be.

unsigned PLMD::ReferenceAtoms::getNumberOfAtoms ( ) const
inlineinherited

This returns how many atoms there should be.

unsigned PLMD::ReferenceConfiguration::getNumberOfReferenceArguments ( ) const
inlinevirtualinherited

Reimplemented in PLMD::ReferenceArguments.

unsigned PLMD::ReferenceAtoms::getNumberOfReferencePositions ( ) const
inlinevirtualinherited

This returns the number of reference atom positions.

Reimplemented from PLMD::ReferenceConfiguration.

unsigned PLMD::ReferenceAtoms::getNumberOfReferencePositions ( ) const
inlinevirtualinherited

This returns the number of reference atom positions.

Reimplemented from PLMD::ReferenceConfiguration.

virtual double PLMD::ReferenceConfiguration::getReferenceArgument ( const unsigned &  i) const
inlinevirtualinherited

Get one of the referene arguments.

Reimplemented in PLMD::ReferenceArguments.

const std::vector< double > & PLMD::ReferenceConfiguration::getReferenceArguments ( )
inlinevirtualinherited

Reimplemented in PLMD::ReferenceArguments.

const std::vector< double > & PLMD::ReferenceConfiguration::getReferenceMetric ( )
inlinevirtualinherited

Reimplemented in PLMD::ReferenceArguments.

Vector PLMD::ReferenceAtoms::getReferencePosition ( const unsigned &  iatom) const
inlineprotectedinherited

Get the position of the ith atom.

Vector PLMD::ReferenceAtoms::getReferencePosition ( const unsigned &  iatom) const
inlineprotectedinherited

Get the position of the ith atom.

const std::vector< Vector > & PLMD::ReferenceAtoms::getReferencePositions ( ) const
inlineprotectedvirtualinherited

Get the reference positions.

Reimplemented from PLMD::ReferenceConfiguration.

const std::vector< Vector > & PLMD::ReferenceAtoms::getReferencePositions ( ) const
inlineprotectedvirtualinherited

Get the reference positions.

Reimplemented from PLMD::ReferenceConfiguration.

double PLMD::ReferenceConfiguration::getWeight ( ) const
inlineinherited

Return the weight for this frame.

bool PLMD::ReferenceConfiguration::isDirection ( ) const
inherited

Stuff for sanity checks on distance.

template<class T >
bool PLMD::ReferenceConfiguration::parse ( const std::string &  key,
T &  t,
bool  ignore_missing = false 
)
inherited

Return the derivatives of the distance wrt the cell vectors.

This returns false for everything other than DRMSD as these sort of calculations have to be done separately when you use RMSD Parse something from the pdb remarks

bool PLMD::ReferenceAtoms::parseAtomList ( const std::string &  key,
std::vector< unsigned > &  numbers 
)
protectedinherited

Read a list of atoms from the pdb input file.

bool PLMD::ReferenceAtoms::parseAtomList ( const std::string &  key,
std::vector< unsigned > &  numbers 
)
protectedinherited

Read a list of atoms from the pdb input file.

void PLMD::ReferenceConfiguration::parseFlag ( const std::string &  key,
bool &  t 
)
inherited

Parse a flag.

template<class T >
bool PLMD::ReferenceConfiguration::parseVector ( const std::string &  key,
std::vector< T > &  t,
bool  ignore_missing = false 
)
inherited

Parse vector from the pdb remarks.

bool PLMD::SimpleRMSD::pcaIsEnabledForThisReference ( )
inlinevirtual

Stuff for pca.

Reimplemented from PLMD::ReferenceConfiguration.

void PLMD::ReferenceConfiguration::print ( OFile ofile,
const double &  time,
const double &  weight,
const double &  lunits,
const double &  old_norm 
)
inherited

Print a pdb file containing the reference configuration.

void PLMD::ReferenceConfiguration::print ( OFile ofile,
const std::string &  fmt,
const double &  lunits 
)
inherited
void PLMD::ReferenceAtoms::printAtoms ( OFile ofile,
const double &  lunits 
) const
inherited

Print the atomic positions.

void PLMD::ReferenceAtoms::printAtoms ( OFile ofile,
const double &  lunits 
) const
inherited

Print the atomic positions.

double PLMD::SimpleRMSD::projectAtomicDisplacementOnVector ( const unsigned &  iv,
const Matrix< Vector > &  vecs,
const std::vector< Vector > &  pos,
ReferenceValuePack mypack 
) const
virtual

Reimplemented from PLMD::ReferenceConfiguration.

void PLMD::SimpleRMSD::read ( const PDB )
virtual

Do all local business for setting the configuration.

Implements PLMD::ReferenceConfiguration.

void PLMD::SimpleRMSD::read ( const PDB )
virtual

Do all local business for setting the configuration.

Implements PLMD::ReferenceConfiguration.

void PLMD::ReferenceAtoms::readAtomsFromPDB ( const PDB pdb)
protectedinherited

Read in the atoms from the pdb file.

void PLMD::ReferenceAtoms::readAtomsFromPDB ( const PDB pdb)
protectedinherited

Read in the atoms from the pdb file.

void PLMD::SingleDomainRMSD::readReference ( const PDB pdb)
protectedinherited
void PLMD::SingleDomainRMSD::readReference ( const PDB pdb)
protectedinherited
void PLMD::ReferenceConfiguration::set ( const PDB pdb)
virtualinherited

Set the final number of arguments.

Set the final number of atoms Set the reference configuration using a PDB

void PLMD::ReferenceAtoms::setAtomIndices ( const std::vector< AtomNumber > &  atomnumbers)
protectedinherited

Add atom indices to list.

void PLMD::ReferenceAtoms::setAtomIndices ( const std::vector< AtomNumber > &  atomnumbers)
protectedinherited

Add atom indices to list.

void PLMD::ReferenceAtoms::setAtomNumbers ( const std::vector< AtomNumber > &  numbers)
inherited

Set the indices of the reference atoms.

void PLMD::ReferenceAtoms::setAtomNumbers ( const std::vector< AtomNumber > &  numbers)
inherited

Set the indices of the reference atoms.

virtual void PLMD::SingleDomainRMSD::setBoundsOnDistances ( bool  dopbc,
double  lbound = 0.0,
double  ubound = std::numeric_limits<double>::max( ) 
)
inlinevirtualinherited

This sets upper and lower bounds on distances to be used in DRMSD (here it does nothing)

Reimplemented in PLMD::DRMSD.

void PLMD::ReferenceConfiguration::setNamesAndAtomNumbers ( const std::vector< AtomNumber > &  numbers,
const std::vector< std::string > &  arg 
)
inherited

Set the atom numbers and the argument names.

void PLMD::SingleDomainRMSD::setReferenceAtoms ( const std::vector< Vector > &  conf,
const std::vector< double > &  align_in,
const std::vector< double > &  displace_in 
)
virtualinherited

Set the reference structure.

Implements PLMD::ReferenceAtoms.

Reimplemented in PLMD::DRMSD.

void PLMD::ReferenceConfiguration::setReferenceConfig ( const std::vector< Vector > &  pos,
const std::vector< double > &  arg,
const std::vector< double > &  metric 
)
inherited

Set the reference structure (perhaps should also pass the pbc and align and displace )

void PLMD::SimpleRMSD::setupPCAStorage ( ReferenceValuePack mypack)
inlinevirtual

Stuff to setup pca.

Reimplemented from PLMD::ReferenceConfiguration.

virtual void PLMD::SingleDomainRMSD::setupRMSDObject ( )
inlinevirtualinherited

This is used by MultiDomainRMSD to setup the RMSD object in Optimal RMSD type.

Reimplemented in PLMD::OptimalRMSD.

void PLMD::ReferenceConfiguration::setWeight ( const double &  ww)
inlineinherited

Set the weight for this frame.

double PLMD::SimpleRMSD::simpleAlignment ( const std::vector< double > &  align,
const std::vector< double > &  displace,
const std::vector< Vector > &  positions,
bool  squared 
)
void PLMD::ReferenceAtoms::singleDomainRequests ( std::vector< AtomNumber > &  numbers,
bool  disable_checks 
)
protectedinherited

Add derivatives to iatom th atom in list.

Get the atomic derivatives on the ith atom in the list Add derivatives to the viral This does the checks that are always required

void PLMD::ReferenceAtoms::singleDomainRequests ( std::vector< AtomNumber > &  numbers,
bool  disable_checks 
)
protectedinherited

Add derivatives to iatom th atom in list.

Get the atomic derivatives on the ith atom in the list Add derivatives to the viral This does the checks that are always required

Member Data Documentation

RMSD PLMD::SimpleRMSD::myrmsd
private
std::vector<double> PLMD::SimpleRMSD::weights
private

The documentation for this class was generated from the following files: