BALL  1.4.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Classes | Private Member Functions | Private Attributes | Friends | List of all members
BALL::FragmentDB Class Reference

#include <BALL/STRUCTURE/fragmentDB.h>

Classes

class  BuildBondsProcessor
 
class  NoFragmentNode
 
class  NormalizeNamesProcessor
 

Public Types

Enums
enum  FragmentTypes { TYPE__UNKNOWN = -1, TYPE__FRAGMENT, TYPE__RESIDUE, TYPE__MOLECULE }
 
Type Definitions
typedef short Type
 
typedef StringHashMap< StringNameMap
 

Public Member Functions

Constructors and destructors
 FragmentDB ()
 
 FragmentDB (const String &filename)
 
 FragmentDB (const FragmentDB &db, bool deep=true)
 
FragmentDBoperator= (const FragmentDB &db)
 Assignment operator. More...
 
virtual ~FragmentDB ()
 
void destroy ()
 
Database Setup
void init ()
 
Inspectors and mutators
void setFilename (const String &filename)
 
const StringgetFilename () const
 
bool has (const String &fragment_name) const
 
const std::vector< Residue * > & getFragments () const
 
FragmentDB::Type getFragmentType (const String &fragment_name) const
 
list< StringgetVariantNames (const String &name) const
 
const FragmentgetFragment (const String &fragment_name) const
 
const FragmentgetReferenceFragment (const Fragment &fragment) const
 
const ResiduegetResidue (const String &fragment_name) const
 
FragmentgetFragmentCopy (const String &fragment_name) const
 
MoleculegetMoleculeCopy (const String &fragment_name) const
 
ResiduegetResidueCopy (const String &fragment_name) const
 
const StringgetDefaultNamingStandard () const
 
StringHashMap< NameMap > & getNamingStandards ()
 
const StringHashMap< String > & getNamingStandard (const String &std) const
 
std::vector< StringgetAvailableNamingStandards () const
 
Debugging and diagnostics
bool isValid () const
 

Public Attributes

Public Variables
NormalizeNamesProcessor normalize_names
 
ReconstructFragmentProcessor add_hydrogens
 
BuildBondsProcessor build_bonds
 
ResourceEntrytree
 

Private Member Functions

void parseAtoms_ (ResourceEntry &entry, Fragment &fragment)
 
void parseBonds_ (ResourceEntry &entry, Fragment &fragment)
 
void parseProperties_ (ResourceEntry &entry, PropertyManager &property_man)
 
void parseDelete_ (ResourceEntry &entry, Fragment &fragment)
 
void parseRename_ (ResourceEntry &entry, Fragment &fragment)
 
Position addNewFragment_ (Residue *fragment)
 
void expandTree_ (ResourceEntry &root_entry)
 
bool expandFirst_ (ResourceEntry &root_entry)
 

Private Attributes

bool valid_
 
String filename_
 
String default_standard_
 
std::vector< Residue * > fragments_
 
NameMap name_to_path_
 
StringHashMap< Positionname_to_frag_index_
 
StringHashMap< list< Position > > name_to_variants_
 
StringHashMap< NameMapstandards_
 

Friends

class FragmentDB::AddHydrogensProcessor
 

Detailed Description

FragmentDB - fragment database class. The fragment database is used to store commonly used subunits as amino acids, sugars and the like. They are entered in a special format described below. The main resource file resides under data/fragments/Fragments.db.

Definition at line 44 of file fragmentDB.h.

Member Typedef Documentation

A hash map used to convert one atom naming convention to another

Definition at line 76 of file fragmentDB.h.

typedef short BALL::FragmentDB::Type

Type definition for the fragment type

Definition at line 74 of file fragmentDB.h.

Member Enumeration Documentation

Fragment types

Enumerator
TYPE__UNKNOWN 
TYPE__FRAGMENT 
TYPE__RESIDUE 
TYPE__MOLECULE 

Definition at line 59 of file fragmentDB.h.

Constructor & Destructor Documentation

BALL::FragmentDB::FragmentDB ( )

Creates a default but invalid FragmentDB instance.

BALL::FragmentDB::FragmentDB ( const String filename)

Creates a FragmentDB object and reads the contents of filename. If filename is an empty string, the default value "fragments/Fragments.db" is used.

Exceptions
Exception::FileNotFoundif the file is not found in the BALL_DATA_PATH
BALL::FragmentDB::FragmentDB ( const FragmentDB db,
bool  deep = true 
)

Copy constructor.

virtual BALL::FragmentDB::~FragmentDB ( )
virtual

Destructor.

Member Function Documentation

Position BALL::FragmentDB::addNewFragment_ ( Residue fragment)
private

Add a new fragment pointer to the database (while parsing)

void BALL::FragmentDB::destroy ( )
bool BALL::FragmentDB::expandFirst_ ( ResourceEntry root_entry)
private
void BALL::FragmentDB::expandTree_ ( ResourceEntry root_entry)
private
std::vector<String> BALL::FragmentDB::getAvailableNamingStandards ( ) const

Return a vector of available naming standards

const String& BALL::FragmentDB::getDefaultNamingStandard ( ) const

Return the default naming standard

const String& BALL::FragmentDB::getFilename ( ) const

Get the filename.

const Fragment* BALL::FragmentDB::getFragment ( const String fragment_name) const

Return a fragment.

Fragment* BALL::FragmentDB::getFragmentCopy ( const String fragment_name) const

Return a copy of a fragment. If a fragment with name fragment_name exists in the fragment database, a copy is created and returned. Otherwise, a null pointer is returned. Take care to destruct the copy again to avoid memory leaks.

Returns
a pointer to the copied fragment or 0
Parameters
fragent_namethe name of the fragment in the database
const std::vector<Residue*>& BALL::FragmentDB::getFragments ( ) const
inline

Definition at line 158 of file fragmentDB.h.

FragmentDB::Type BALL::FragmentDB::getFragmentType ( const String fragment_name) const

Return a fragment.

Molecule* BALL::FragmentDB::getMoleculeCopy ( const String fragment_name) const

Return a copy of a fragment as a molecule. If a fragment with name fragment_name exists in the fragment database, a copy is created, inserted into a new molecule, and returned. Otherwise, a null pointer is returned. Take care to destruct the copy again to avoid memory leaks.

Returns
a pointer to the copied fragment or 0
Parameters
fragent_namethe name of the fragment in the database
const StringHashMap<String>& BALL::FragmentDB::getNamingStandard ( const String std) const

Return the naming standard given by std

Returns
A StringHashMap that maps atom names to atom names
Exceptions
StringHashMap<String>::IllegalKeyif std is not a valid naming standard
StringHashMap<NameMap>& BALL::FragmentDB::getNamingStandards ( )

Return a hash map containing all naming maps.

const Fragment* BALL::FragmentDB::getReferenceFragment ( const Fragment fragment) const

Return a reference fragment. This method returns a standard template of a given fragment or a NULL pointer if the fragment is not known. The first criterion is the fragment name. If there exist multiple variants of the fragment, the correct variant is chosen according to the properties set in fragment.

const Residue* BALL::FragmentDB::getResidue ( const String fragment_name) const

Return a residue.

Residue* BALL::FragmentDB::getResidueCopy ( const String fragment_name) const

Return a copy of a residue. If a fragment with name fragment_name exists in the fragment database, a copy is created and returned as a residue. Otherwise, a null pointer is returned. Take care to destruct the copy again to avoid memory leaks.

Returns
a pointer to the copied fragment or 0
Parameters
fragent_namethe name of the fragment in the database
list<String> BALL::FragmentDB::getVariantNames ( const String name) const

Return a list containing all variant names.

bool BALL::FragmentDB::has ( const String fragment_name) const

Checks whether a specified fragment is known to the fragment database.

void BALL::FragmentDB::init ( )

Initialization of the database.

Exceptions
Exception::FileNotFoundif the file is not found in the BALL_DATA_PATH
Exception::NoFragmentNodeif the FragmentDB file did not contain any node entries
bool BALL::FragmentDB::isValid ( ) const
FragmentDB& BALL::FragmentDB::operator= ( const FragmentDB db)

Assignment operator.

void BALL::FragmentDB::parseAtoms_ ( ResourceEntry entry,
Fragment fragment 
)
private
void BALL::FragmentDB::parseBonds_ ( ResourceEntry entry,
Fragment fragment 
)
private
void BALL::FragmentDB::parseDelete_ ( ResourceEntry entry,
Fragment fragment 
)
private
void BALL::FragmentDB::parseProperties_ ( ResourceEntry entry,
PropertyManager property_man 
)
private
void BALL::FragmentDB::parseRename_ ( ResourceEntry entry,
Fragment fragment 
)
private
void BALL::FragmentDB::setFilename ( const String filename)

Assigns a filename.

Exceptions
Exception::FileNotFoundif the file is not found in the BALL_DATA_PATH

Friends And Related Function Documentation

friend class FragmentDB::AddHydrogensProcessor
friend

Definition at line 48 of file fragmentDB.h.

Member Data Documentation

ReconstructFragmentProcessor BALL::FragmentDB::add_hydrogens

The standard hydrogen adder

Definition at line 480 of file fragmentDB.h.

BuildBondsProcessor BALL::FragmentDB::build_bonds

The standard bond builder

Definition at line 484 of file fragmentDB.h.

String BALL::FragmentDB::default_standard_
private

Definition at line 550 of file fragmentDB.h.

String BALL::FragmentDB::filename_
private

Definition at line 547 of file fragmentDB.h.

std::vector<Residue*> BALL::FragmentDB::fragments_
private

Definition at line 553 of file fragmentDB.h.

StringHashMap<Position> BALL::FragmentDB::name_to_frag_index_
private

Definition at line 559 of file fragmentDB.h.

NameMap BALL::FragmentDB::name_to_path_
private

Definition at line 556 of file fragmentDB.h.

StringHashMap<list<Position> > BALL::FragmentDB::name_to_variants_
private

Definition at line 562 of file fragmentDB.h.

NormalizeNamesProcessor BALL::FragmentDB::normalize_names

The standard name normalization processor

Definition at line 476 of file fragmentDB.h.

StringHashMap<NameMap> BALL::FragmentDB::standards_
private

Definition at line 565 of file fragmentDB.h.

ResourceEntry* BALL::FragmentDB::tree

The resource tree read from the database file

Definition at line 488 of file fragmentDB.h.

bool BALL::FragmentDB::valid_
private

Definition at line 544 of file fragmentDB.h.