HashInterface

The class can build Interface object efficiently by using Geometric Hashing for the particles of the first molecule. template< class MoleculeT>

[ GAMB | Source | Keywords | Summary | Ancestors | All Members | Descendants ]

Quick Index

AUTHORS
CHANGES LOG
GOALS
USAGE

Class Summary

class HashInterface
{
public:
// Constructors
HashInterface(const MoleculeT& iMol1, const MoleculeT& iMol2, const unsigned short d , const float cs );
// distance defined interface
void buildInterface(Interface& face, const float distThr , const MOL_INDEX molIndex );
void buildInterface(Interface& face, const RigidTrans3& trans2, const float distThr , const MOL_INDEX molIndex );
void buildInterface(Interface& face, const MoleculeT& iMol2, const float distThr , const MOL_INDEX molIndex );
void buildInterface(Interface& face, const MoleculeT& iMol2, const RigidTrans3& trans2, const float distThr , const MOL_INDEX molIndex );
void buildInterface(Interface& face1, Interface& face2, const float distThr );
void buildInterface(Interface& face1, Interface& face2, const RigidTrans3& trans2, const float distThr );
void buildInterface(Interface& face1, Interface& face2, const MoleculeT& iMol2, const float distThr );
void buildInterface(Interface& face1, Interface& face2, const MoleculeT& iMol2, const RigidTrans3& trans2, const float distThr );
// probe sphere defined interface
void buildProbeInterface(Interface& face, const float probeRadius, const MOL_INDEX molIndex );
void buildProbeInterface(Interface& face, const RigidTrans3& trans2, const float probeRadius, const MOL_INDEX molIndex );
void buildProbeInterface(Interface& face, const MoleculeT& iMol2, const float probeRadius, const MOL_INDEX molIndex );
void buildProbeInterface(Interface& face, const MoleculeT& iMol2, const RigidTrans3& trans2, const float probeRadius, const MOL_INDEX molIndex );
void buildProbeInterface(Interface& face1, Interface& face2, const float probeRadius);
void buildProbeInterface(Interface& face1, Interface& face2, const RigidTrans3& trans2, const float probeRadius);
void buildProbeInterface(Interface& face1, Interface& face2, const MoleculeT& iMol2, const float probeRadius);
void buildProbeInterface(Interface& face1, Interface& face2, const MoleculeT& iMol2, const RigidTrans3& trans2, const float probeRadius);
protected:
void internalBuildInterface(Interface& face, const MoleculeT& secondMol, const float distThr , const MOL_INDEX molIndex );
void internalBuildInterface(Interface& face1, Interface& face2, const MoleculeT& secondMol, const float distThr );
void internalBuildProbeInterface(Interface& face, const MoleculeT& secondMol, const float probeRadius, const MOL_INDEX molIndex );
void internalBuildProbeInterface(Interface& face, Interface& face2, const MoleculeT& secondMol, const float probeRadius);
const MoleculeT& mol1;
const MoleculeT& mol2;
GeomHash< Vector3, unsigned int> gHash1;
}; // HashInterface

Back to the top of HashInterface


AUTHORS

Inbal Halperin (inbalhal@math.tau.ac.il), Dina Duhovny (duhovka@math.tau.ac.il) and Yuval Inbar (inbaryuv@math.tau.ac.il)

Copyright: SAMBA group, Tel-Aviv Univ. Israel, 1997-9.

Back to the top of HashInterface


CHANGES LOG

Back to the top of HashInterface


GOALS

Create an Interface for two Molecule descendants using Geometric Hashing. This implementation allows fast interface generation.

The class supports 2 interface definitions: 1. If the distance between two atoms, one from each of the molecules, is less than distance_threshold, the two corresponding atoms are marked as interface atom pair. 2. If the distance between two atoms, one from each of the molecules, is less than the sum of their vdW radii and probe diameter, the two corresponding atoms are marked as interface atom pair. Intutively, two atoms are interface pair, if the probe sphere can't be placed between them.

Back to the top of HashInterface


USAGE

In the construction the first molecule is preprocessed into GeomHash. This allows fast mapping of interface pairs.

The class has several options to build the interface. First the user should pick the interface definition he needs (see Goals). For each of the two definitions, 8 functions with different arguments are provided. Below we summarize different options:

The first molecule remains the same in all cases. The second molecule can be the same that was given in constructor or can be specified by the user. In some cases, like generating docking results interfaces, the second molecule is always the same, however the orientation is different. In this case the user may specufy the 3D transformation to apply to the second molecule.

Since the Interface object is not symmetric, it is possible to specify which molecule will be used as first index in the Interface. The first molecule MOL1 is the default. Also it is possible to generate both interfaces at once.

The following example demonstrates how two Interfaces are created for one complex. The complex in the example is composed of an Antibody=Ab and an Antigen=Ag. Ab and Ab are of type Molecule<Atom>.

  HashInterface<Molecule<Atom> > hashInterface(Ab,Ag);
  Interface face1, face2;
  hashInterface.buildInterface(face1, face2);
  for(Interface::iterator it=face2.begin(); it!=face2.end(); ++it) {
    cout << "serial:  " << *it << endl;    
    cout << "pdb first atom:  " << Ab[(*it).second()]<<endl;
    cout << "pdb second atom:  " << Ag[(*it).first()]<<endl;
  }

Back to the top of HashInterface


HashInterface(const MoleculeT& iMol1, const MoleculeT& iMol2, const unsigned short d , const float cs );

Construct hash interface, hash first molecule

  HashInterface(const MoleculeT& iMol1, const MoleculeT& iMol2,
                const unsigned short d=hashParam_d, const float cs=hashParam_cs);

Back to the top of HashInterface


void buildInterface(Interface& face, const float distThr , const MOL_INDEX molIndex );

Construct interface for two molecules.

  void buildInterface(Interface& face,
		      const float distThr=defaultThreshold, const MOL_INDEX molIndex=MOL1);

Back to the top of HashInterface


void buildInterface(Interface& face, const RigidTrans3& trans2, const float distThr , const MOL_INDEX molIndex );

Construct interface for two molecules. Apply transformation on a second molecule.

  void buildInterface(Interface& face, const RigidTrans3& trans2,
		      const float distThr=defaultThreshold, const MOL_INDEX molIndex=MOL1);

Back to the top of HashInterface


void buildInterface(Interface& face, const MoleculeT& iMol2, const float distThr , const MOL_INDEX molIndex );

Construct interface for two molecules: first from class object and the second given as a parameter.

  void buildInterface(Interface& face, const MoleculeT& iMol2,
		      const float distThr=defaultThreshold, const MOL_INDEX molIndex=MOL1);

Back to the top of HashInterface


void buildInterface(Interface& face, const MoleculeT& iMol2, const RigidTrans3& trans2, const float distThr , const MOL_INDEX molIndex );

Construct interface for two molecules: first from class object and the second given as a parameter. Apply transformation on a second molecule.

  void buildInterface(Interface& face, const MoleculeT& iMol2, const RigidTrans3& trans2,
		      const float distThr=defaultThreshold, const MOL_INDEX molIndex=MOL1);

Back to the top of HashInterface


void buildInterface(Interface& face1, Interface& face2, const float distThr );

Construct two interfaces for two molecules.

  void buildInterface(Interface& face1, Interface& face2, const float distThr=defaultThreshold);

Back to the top of HashInterface


void buildInterface(Interface& face1, Interface& face2, const RigidTrans3& trans2, const float distThr );

Construct two interfaces for two molecules. Apply transformation on a second molecule.

  void buildInterface(Interface& face1, Interface& face2,
		      const RigidTrans3& trans2, const float distThr=defaultThreshold);

Back to the top of HashInterface


void buildInterface(Interface& face1, Interface& face2, const MoleculeT& iMol2, const float distThr );

Construct two interfaces for two molecules: first from class object and the second given as a parameter.

  void buildInterface(Interface& face1, Interface& face2,
		      const MoleculeT& iMol2, const float distThr=defaultThreshold);

Back to the top of HashInterface


void buildInterface(Interface& face1, Interface& face2, const MoleculeT& iMol2, const RigidTrans3& trans2, const float distThr );

Construct two interfaces for two molecules: first from class object and the second given as a parameter. Apply transformation on a second molecule.

  void buildInterface(Interface& face1, Interface& face2, const MoleculeT& iMol2,
		      const RigidTrans3& trans2, const float distThr=defaultThreshold);

Back to the top of HashInterface


void buildProbeInterface(Interface& face, const float probeRadius, const MOL_INDEX molIndex );

Construct interface for two molecules.

  void buildProbeInterface(Interface& face, const float probeRadius, const MOL_INDEX molIndex=MOL1);

Back to the top of HashInterface


void buildProbeInterface(Interface& face, const RigidTrans3& trans2, const float probeRadius, const MOL_INDEX molIndex );

Construct interface for two molecules. Apply transformation on a second molecule.

  void buildProbeInterface(Interface& face, const RigidTrans3& trans2,
			   const float probeRadius, const MOL_INDEX molIndex=MOL1);

Back to the top of HashInterface


void buildProbeInterface(Interface& face, const MoleculeT& iMol2, const float probeRadius, const MOL_INDEX molIndex );

Construct interface for two molecules: first from class object and the second given as a parameter.

  void buildProbeInterface(Interface& face, const MoleculeT& iMol2,
			   const float probeRadius, const MOL_INDEX molIndex=MOL1);

Back to the top of HashInterface


void buildProbeInterface(Interface& face, const MoleculeT& iMol2, const RigidTrans3& trans2, const float probeRadius, const MOL_INDEX molIndex );

Construct interface for two molecules: first from class object and the second given as a parameter. Apply transformation on a second molecule.

  void buildProbeInterface(Interface& face, const MoleculeT& iMol2, const RigidTrans3& trans2,
			   const float probeRadius, const MOL_INDEX molIndex=MOL1);

Back to the top of HashInterface


void buildProbeInterface(Interface& face1, Interface& face2, const float probeRadius);

Construct two interfaces for two molecules.

  void buildProbeInterface(Interface& face1, Interface& face2, const float probeRadius);

Back to the top of HashInterface


void buildProbeInterface(Interface& face1, Interface& face2, const RigidTrans3& trans2, const float probeRadius);

Construct two interfaces for two molecules. Apply transformation on a second molecule.

  void buildProbeInterface(Interface& face1, Interface& face2,
			   const RigidTrans3& trans2, const float probeRadius);

Back to the top of HashInterface


void buildProbeInterface(Interface& face1, Interface& face2, const MoleculeT& iMol2, const float probeRadius);

Construct two interfaces for two molecules: first from class object and the second given as a parameter.

  void buildProbeInterface(Interface& face1, Interface& face2,
			   const MoleculeT& iMol2, const float probeRadius);

Back to the top of HashInterface


void buildProbeInterface(Interface& face1, Interface& face2, const MoleculeT& iMol2, const RigidTrans3& trans2, const float probeRadius);

Construct two interfaces for two molecules: first from class object and the second given as a parameter. Apply transformation on a second molecule.

  void buildProbeInterface(Interface& face1, Interface& face2, const MoleculeT& iMol2,
			   const RigidTrans3& trans2, const float probeRadius);

Back to the top of HashInterface


void internalBuildInterface(Interface& face, const MoleculeT& secondMol, const float distThr , const MOL_INDEX molIndex );

function that computes interface pairs and stores them in the Interface object using distance threshold definition

  void internalBuildInterface(Interface& face, const MoleculeT& secondMol,
			      const float distThr=defaultThreshold, const MOL_INDEX molIndex=MOL1);

Back to the top of HashInterface


void internalBuildInterface(Interface& face1, Interface& face2, const MoleculeT& secondMol, const float distThr );

function that computes interface pairs and stores them in two Interface objects (molecule1 and molecule2) using distance threshold definition

  void internalBuildInterface(Interface& face1, Interface& face2,
			      const MoleculeT& secondMol, const float distThr=defaultThreshold);

Back to the top of HashInterface


void internalBuildProbeInterface(Interface& face, const MoleculeT& secondMol, const float probeRadius, const MOL_INDEX molIndex );

function that computes interface pairs and stores them in the Interface object using probe sphere definition

  void internalBuildProbeInterface(Interface& face, const MoleculeT& secondMol,
				   const float probeRadius, const MOL_INDEX molIndex=MOL1);

Back to the top of HashInterface


void internalBuildProbeInterface(Interface& face, Interface& face2, const MoleculeT& secondMol, const float probeRadius);

function that computes interface pairs and stores them in the Interface object using probe sphere definition

  void internalBuildProbeInterface(Interface& face, Interface& face2,
				   const MoleculeT& secondMol, const float probeRadius);

Back to the top of HashInterface


const MoleculeT& mol1;

First molecule

  const MoleculeT& mol1;

Back to the top of HashInterface


const MoleculeT& mol2;

Second molecule

  const MoleculeT& mol2;

Back to the top of HashInterface


GeomHash< Vector3, unsigned int> gHash1;

GeomHash for fast atomic search

  GeomHash< Vector3, unsigned int> gHash1;

Back to the top of HashInterface


All Members

public:
// distance defined interface
void buildInterface(Interface& face, const float distThr , const MOL_INDEX molIndex );
void buildInterface(Interface& face, const RigidTrans3& trans2, const float distThr , const MOL_INDEX molIndex );
void buildInterface(Interface& face, const MoleculeT& iMol2, const float distThr , const MOL_INDEX molIndex );
void buildInterface(Interface& face, const MoleculeT& iMol2, const RigidTrans3& trans2, const float distThr , const MOL_INDEX molIndex );
void buildInterface(Interface& face1, Interface& face2, const float distThr );
void buildInterface(Interface& face1, Interface& face2, const RigidTrans3& trans2, const float distThr );
void buildInterface(Interface& face1, Interface& face2, const MoleculeT& iMol2, const float distThr );
void buildInterface(Interface& face1, Interface& face2, const MoleculeT& iMol2, const RigidTrans3& trans2, const float distThr );
// probe sphere defined interface
void buildProbeInterface(Interface& face, const float probeRadius, const MOL_INDEX molIndex );
void buildProbeInterface(Interface& face, const RigidTrans3& trans2, const float probeRadius, const MOL_INDEX molIndex );
void buildProbeInterface(Interface& face, const MoleculeT& iMol2, const float probeRadius, const MOL_INDEX molIndex );
void buildProbeInterface(Interface& face, const MoleculeT& iMol2, const RigidTrans3& trans2, const float probeRadius, const MOL_INDEX molIndex );
void buildProbeInterface(Interface& face1, Interface& face2, const float probeRadius);
void buildProbeInterface(Interface& face1, Interface& face2, const RigidTrans3& trans2, const float probeRadius);
void buildProbeInterface(Interface& face1, Interface& face2, const MoleculeT& iMol2, const float probeRadius);
void buildProbeInterface(Interface& face1, Interface& face2, const MoleculeT& iMol2, const RigidTrans3& trans2, const float probeRadius);
protected:
void internalBuildInterface(Interface& face, const MoleculeT& secondMol, const float distThr , const MOL_INDEX molIndex );
void internalBuildInterface(Interface& face1, Interface& face2, const MoleculeT& secondMol, const float distThr );
void internalBuildProbeInterface(Interface& face, const MoleculeT& secondMol, const float probeRadius, const MOL_INDEX molIndex );
void internalBuildProbeInterface(Interface& face, Interface& face2, const MoleculeT& secondMol, const float probeRadius);
const MoleculeT& mol1;
const MoleculeT& mol2;
GeomHash< Vector3, unsigned int> gHash1;

Back to the top of HashInterface


Ancestors

Class does not inherit from any other class.

Back to the top of HashInterface


Descendants

Class is not inherited by any others.

Back to the top of HashInterface


Generated from source by the Cocoon utilities on Sun Nov 15 13:35:25 2009 .

Report problems to jkotula@unimax.com