BALL::ResidueChecker Class Reference

#include <BALL/STRUCTURE/residueChecker.h>

Inheritance diagram for BALL::ResidueChecker:
BALL::UnaryProcessor< Residue > BALL::UnaryFunctor< Residue, Processor::Result >

List of all members.

Public Types

enum  TestType {
  MISSING_ATOMS = 0, EXTRA_ATOMS, ELEMENTS, SUSPECT_BOND_LENGTHS,
  NON_INTEGRAL_NET_CHARGE, LARGE_CHARGES, LARGE_NET_CHARGE, NAN_POSITIONS,
  OVERLAPPING_ATOMS, STRONGLY_OVERLAPPING_ATOMS, DUPLICATE_ATOM_NAMES, UNKNOWN_RESIDUES,
  NUMBER_OF_TESTS
}

Public Member Functions

 ResidueChecker ()
 ResidueChecker (FragmentDB &fragment_db)
 ResidueChecker (const ResidueChecker &residue_checker)
virtual ~ResidueChecker ()
void enable (TestType t)
void disable (TestType t)
void enableSelection ()
void disableSelection ()
bool isSelectionEnabled ()
bool getStatus () const
bool isEnabled (TestType t) const
Processor::Result operator() (Residue &residue)
bool start ()
bool finish ()
Explicit tests
bool checkAtomPositions (const Residue &res, const String &res_name)
bool checkCharge (const Residue &res, const String &res_name)
bool checkCompleteness (const Residue &res, const Residue &reference, const String &res_name)
bool checkTemplate (const Residue &res, const Residue &reference, const String &res_name)

Protected Attributes

FragmentDBfragment_db_
bool status_
BitVector tests_
bool selection_

Detailed Description

Residue Consistency Checker. This processor checks residues for internal consistency. It identifies missing or superfluous atoms, suspect bond lengths and non-integral or extremely large charges on the residue. Atom positions are checked as well: a warning is printed, if any of the atom's coordinates is not a number (NaN). Warnings are emitted to Log .

The individual tests can be enabled/disabled using the enable and disable methods. Please use the enum TestTypes to refer to the appropriate tests. By default all tests are enabled except for OVERLAPPING_ATOMS.

The following tests are currently implemented:

  • missing atoms in a residue

    This test checks whether all atoms contained in the fragment database for this type of residue are present in each of the residues.

  • extra atoms

    This test checks whether all atoms contained in the current residue are also present in the template from the fragment database.

  • correct elements

    Check that all atoms in a residue are of the same element as the corresponding atoms in the template from the fragment database.

  • suspect bond lengths

    Check that the bond lengths encountered in each of the residues agree within 15% with the bond length in the template from the reference database.

  • non-integral net charge

    Check that the sum of charges of a residue is integral, i.e. the sum of all charges is an integer (+/- 0.05 elementary charges).

  • large charges

    Check that the none of the atoms bears a charge with an absolute value above 4.0 elementary charges.

  • large net charge

    Check that the net charge of the residue is between -2 and +2 elementary charges.

  • NaN atom positions

    Check whether any atom has NaN (not a number) as any of its corrdinates. This is a frequent source of error after failing simulations, minimizations, etc.

  • strongly overlapping atoms

    Check whether any pair of atoms within a residue is closer than 0.5 Angstrom.

  • overlapping atoms

    Check whether any pair of atoms not sharing a bond is further apart then the sum of their vdW radii minus 0.4 Ansgtrom

  • duplicate atom names

    Check whether two atoms within the residue have the same name.

  • unknown residues

    If unknown residues are encountered (i.e. residues for which no reference template exists in the fragment database), an error occurs. If this test is disabled, the tests requiring a template (missing atoms, extra atoms, suspectr bond lengths, elements) will not be executed for unknown residues.


Member Enumeration Documentation

Enums Enum to refer to the individual tests. The values of this enum are used by enable , disable , and isEnabled .

Enumerator:
MISSING_ATOMS 
EXTRA_ATOMS 
ELEMENTS 
SUSPECT_BOND_LENGTHS 
NON_INTEGRAL_NET_CHARGE 
LARGE_CHARGES 
LARGE_NET_CHARGE 
NAN_POSITIONS 
OVERLAPPING_ATOMS 
STRONGLY_OVERLAPPING_ATOMS 
DUPLICATE_ATOM_NAMES 
UNKNOWN_RESIDUES 
NUMBER_OF_TESTS 

Constructor & Destructor Documentation

BALL::ResidueChecker::ResidueChecker ( )

Constructors and Destructors Default constructor

BALL::ResidueChecker::ResidueChecker ( FragmentDB fragment_db)

Detailed constructor

BALL::ResidueChecker::ResidueChecker ( const ResidueChecker residue_checker)

Copy constructor

virtual BALL::ResidueChecker::~ResidueChecker ( ) [virtual]

Destructor


Member Function Documentation

bool BALL::ResidueChecker::checkAtomPositions ( const Residue res,
const String res_name 
)
bool BALL::ResidueChecker::checkCharge ( const Residue res,
const String res_name 
)
bool BALL::ResidueChecker::checkCompleteness ( const Residue res,
const Residue reference,
const String res_name 
)
bool BALL::ResidueChecker::checkTemplate ( const Residue res,
const Residue reference,
const String res_name 
)
void BALL::ResidueChecker::disable ( TestType  t)

Disable a specific test

void BALL::ResidueChecker::disableSelection ( ) [inline]

Disable selection of problematic atoms

void BALL::ResidueChecker::enable ( TestType  t)

Accessors Enable a specific test

void BALL::ResidueChecker::enableSelection ( ) [inline]

Enable selection of problematic atoms

bool BALL::ResidueChecker::finish ( ) [virtual]

finish method

Reimplemented from BALL::UnaryProcessor< Residue >.

bool BALL::ResidueChecker::getStatus ( ) const

Return true if the last application did not produce any warning. The getStatus method may be called after applying the ResidueChecker to a kernel object.

Returns:
bool true if no warnings occured, false otherwise
bool BALL::ResidueChecker::isEnabled ( TestType  t) const

Check whether a specific test is enabled

bool BALL::ResidueChecker::isSelectionEnabled ( ) [inline]

Return the status of the selection

Processor::Result BALL::ResidueChecker::operator() ( Residue residue) [virtual]

Processor-related methods

Reimplemented from BALL::UnaryProcessor< Residue >.

bool BALL::ResidueChecker::start ( ) [virtual]

start method

Reimplemented from BALL::UnaryProcessor< Residue >.


Member Data Documentation