AromaticRing

Implementation Note (Oranit): There are aromatic groups that are not rings. Currently, we ignore these groups. However, in the future we may consider adding a new class called AromaticGroup that will extend Feature and the current AromaticRing class will be its subclassL: AromaticRing extends AromaticGroup extends Feature

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

Quick Index

KEYWORD
AUTHORS
CHANGES LOG
GOALS
USAGE

Class Summary

class AromaticRing
: public Feature
{
public:
// Constructors
AromaticRing(const unsigned int id_, const FeaturedMolecule& molecule_, const vector< leda::node>& ring_);
// Inspectors
static bool isAromaticRing(const FeaturedMolecule& molecule, const vector< leda::node>& ring);
static bool isAromaticRing(const Feature* feature) ;
static bool isPlanarRing(const FeaturedMolecule& molecule, const vector< leda::node>& ring);
void getAtoms(vector< const Mol2Atom*>& atoms) const;
void getAtomIndices(vector< unsigned int>& atomIndices) const;
const Vector3 getNormal() const ;
// Misc.
bool canBeMatched(const RigidTrans3& transformation, const Feature* otherFeature) const;
bool operator==(const Feature& otherFeature) const;
// Output
void dump(ostream& output) const;
void outputMol2(ostream& output) const ;
void outputMol2(const RigidTrans3& transformation, ostream& output) const ;
friend ostream& operator<<(ostream& s, const AromaticRing& ring);
// Destructors
~AromaticRing();
protected:
float getScoreVirtual(const Feature* otherFeature) const;
static bool isAromaticHetero(const Mol2Atom& atom);
void outputMol2(ostream& output, const Vector3& center) const;
}; // AromaticRing

Back to the top of AromaticRing


KEYWORD

Back to the top of AromaticRing


AUTHORS

Oranit Dror (mailto: oranit@post.tau.ac.il)

Copyright: SAMBA group, Tel-Aviv Univ. Israel, 2004.

Back to the top of AromaticRing


CHANGES LOG

Back to the top of AromaticRing


GOALS

Back to the top of AromaticRing

		

USAGE

		

Back to the top of AromaticRing


AromaticRing(const unsigned int id_, const FeaturedMolecule& molecule_, const vector< leda::node>& ring_);

  AromaticRing(const unsigned int id_, const FeaturedMolecule& molecule_, const vector< leda::node>& ring_);

Back to the top of AromaticRing


bool isAromaticRing(const FeaturedMolecule& molecule, const vector< leda::node>& ring);

Return true if the given ring is aromatic. Otherwise, return false.

  static bool isAromaticRing(const FeaturedMolecule& molecule, const vector< leda::node>& ring);

Back to the top of AromaticRing


bool isAromaticRing(const Feature* feature) ;

  static bool isAromaticRing(const Feature* feature)                                                       
;

Function is currently defined inline.


Back to the top of AromaticRing


bool isPlanarRing(const FeaturedMolecule& molecule, const vector< leda::node>& ring);

Return true if the given ring is planar. Otherwise, return false.

  static bool isPlanarRing(const FeaturedMolecule& molecule, const vector< leda::node>& ring);

Back to the top of AromaticRing


void getAtoms(vector< const Mol2Atom*>& atoms) const;

Return the atoms of the aromatic ring

  void getAtoms(vector< const Mol2Atom*>& atoms) const;

Back to the top of AromaticRing


void getAtomIndices(vector< unsigned int>& atomIndices) const;

Return the identifiers of atoms of the aromatic ring in the molecule

  void getAtomIndices(vector< unsigned int>& atomIndices) const;

Back to the top of AromaticRing


const Vector3 getNormal() const ;

Return a unit vector that is perpendicular to the aromaic ring

  const Vector3 getNormal() const                   
;

Function is currently defined inline.


Back to the top of AromaticRing


bool canBeMatched(const RigidTrans3& transformation, const Feature* otherFeature) const;

Return true if the two features can be matched after applying the given transformation on the current feature according to their type, the distance between their centers and the difference between their normals

  bool canBeMatched(const RigidTrans3& transformation, const Feature* otherFeature) const;

Back to the top of AromaticRing


bool operator==(const Feature& otherFeature) const;

Return true if the given feature is aromatic ring and the rings' centers and normals are the same.

  bool operator==(const Feature& otherFeature) const;

Back to the top of AromaticRing


void dump(ostream& output) const;

  void dump(ostream& output) const;

Back to the top of AromaticRing


void outputMol2(ostream& output) const ;

  void outputMol2(ostream& output) const                                           
;

Function is currently defined inline.


Back to the top of AromaticRing


void outputMol2(const RigidTrans3& transformation, ostream& output) const ;

output transformed feature center

  void outputMol2(const RigidTrans3& transformation, ostream& output) const                                                          
;

Function is currently defined inline.


Back to the top of AromaticRing


friend ostream& operator<<(ostream& s, const AromaticRing& ring);

Prints the atoms of the ring to the output stream

  friend ostream& operator<<(ostream& s, const AromaticRing& ring);

Back to the top of AromaticRing


~AromaticRing();

  ~AromaticRing(); 

Back to the top of AromaticRing


float getScoreVirtual(const Feature* otherFeature) const;

Return the score for matching the two features.

  float getScoreVirtual(const Feature* otherFeature) const;

Back to the top of AromaticRing


bool isAromaticHetero(const Mol2Atom& atom);

Return true if the type of the given atom is one of the three hetero types that can participate in an aromatic ring (N, O, or S).

  static bool isAromaticHetero(const Mol2Atom& atom);

Back to the top of AromaticRing


void outputMol2(ostream& output, const Vector3& center) const;

  void outputMol2(ostream& output, const Vector3& center) const;

Back to the top of AromaticRing


All Members

public:
// Inspectors
FEATURE_TYPE featureType() const ;
char* getFeatureTypeString() const ;
unsigned int getID() const ;
unsigned int getRigidGroupID() const ;
const vector< unsigned int>& getAllRigidGroups() const ;
const Vector3& getCenter() const ;
float getScore(const Feature* otherFeature) const ;
bool isValid() ;
float weight() const ;
void getAtoms(vector< const Mol2Atom*>& atoms) const; // pure virtual
float getRadiusForCenterFit() const ;
float getRadiusForCenterFit(const Feature* otherFeature) const ;
bool canBeMatched(const RigidTrans3& transformation, const Feature* otherFeature) const; // pure virtual
bool operator==(const Feature& otherFeature) const; // pure virtual
// Setters
void setCenter(const Vector3& center) ;
void addRigidGroup(unsigned int groupID) ;
void setValidity(bool valid) ;
void setWeight(float w) ;
void setRadiusForCenterFit(float r) ;
// Misc.
void resetValidityAndWeight() ;
// Output
void dump(ostream& output) const; // pure virtual
void outputMol2(ostream& output) const; // pure virtual
void outputMol2(const RigidTrans3& transformation, ostream& output) const; // pure virtual
friend ostream& operator<<(ostream& s, const Feature& feature) ;
// Inspectors
static bool isAromaticRing(const FeaturedMolecule& molecule, const vector< leda::node>& ring);
static bool isAromaticRing(const Feature* feature) ;
static bool isPlanarRing(const FeaturedMolecule& molecule, const vector< leda::node>& ring);
void getAtomIndices(vector< unsigned int>& atomIndices) const;
const Vector3 getNormal() const ;
// Output
void outputMol2(ostream& output) const ;
void outputMol2(const RigidTrans3& transformation, ostream& output) const ;
friend ostream& operator<<(ostream& s, const AromaticRing& ring);
protected:
float getScoreVirtual(const Feature* otherFeature) const; // pure virtual
unsigned int id;
vector< unsigned int> rigidGroups;
Vector3 center_;
bool isValidFeature_;
FEATURE_TYPE type_;
float weight_;
float radiusForCenterFit_;
static bool isAromaticHetero(const Mol2Atom& atom);
void outputMol2(ostream& output, const Vector3& center) const;

Back to the top of AromaticRing


Ancestors

Inheritance chain for AromaticRing:

Back to the top of AromaticRing


Descendants

Class is not inherited by any others.

Back to the top of AromaticRing


Generated from source by the Cocoon utilities on Mon Dec 21 11:44:46 2009 .

Report problems to jkotula@unimax.com