#ifndef __AGROUP_HH__ #define __AGROUP_HH__ #include "AAtom.hh" class AChain; class AGroup { public: //--- Constructor --- virtual AGroup *newGroup( char resChar,int serial) = 0; virtual AGroup *newGroup(const char *residue,int serial) = 0; //--- Destructors --- virtual ~AGroup() { ; } //--- Access to the next group --- virtual AGroup *getNext() = 0; virtual bool setNext(AGroup *group) = 0; // Not recommended for use //--- Access to atoms in the group --- virtual AAtom *getFirstAtom() = 0; virtual AAtom *getCAAtom() = 0; virtual AAtom *getCBAtom() = 0; virtual AAtom *getPSugarAtom() = 0; virtual AAtom *getMainAtom() = 0; // CA for protein, P-sugar -- for nucleo //--- Access to the chain which group belongs to --- virtual AChain *getChain() = 0; //--- Group description index number --- virtual short getRefno() = 0; //--- Group serial number in the chain --- virtual int getSerialNum() = 0; //--- Group count number in the chain --- virtual int getCountNum() = 0; //--- Manipulations with atoms --- virtual bool addAtom(AAtom* atom) = 0; // Appends atoms virtual bool deleteAtom(AAtom* atom) = 0; virtual bool hasAtom(AAtom* atom) = 0; //--- Access to the type of group --- virtual bool isAmino() = 0; virtual bool isNucleo() = 0; virtual bool isAminoNucleo() = 0; virtual bool isProtein() = 0; virtual bool isDNA() = 0; virtual bool isSolvent() = 0; virtual bool isWater() = 0; virtual bool isIon() = 0; virtual bool isPyrimidine() = 0; virtual bool isPurine() = 0; virtual bool isCoenzyme() = 0; //--- Selection status --- virtual void selectAllAtoms() = 0; virtual void unselectAllAtoms() = 0; virtual bool hasSelected() = 0; //--- Temporary selection status --- virtual void tmpSelAllAtoms() = 0; virtual void tmpUnselAllAtoms() = 0; virtual bool hasTmpSel() = 0; //--- Character of the group --- virtual char getNameChar() = 0; virtual std::string getNameString() = 0; //--- Counting number of atoms --- virtual int countAtoms() = 0; //--- Calculating number of contact --- virtual int countContactsWith(AGroup *group) = 0; //--- Access to the type of residue --- virtual bool isAla() = 0; virtual bool isLeu() = 0; virtual bool isVal() = 0; virtual bool isLys() = 0; virtual bool isIle() = 0; virtual bool isGlu() = 0; virtual bool isArg() = 0; virtual bool isGln() = 0; virtual bool isHis() = 0; virtual bool isMet() = 0; virtual bool isGly() = 0; virtual bool isSer() = 0; virtual bool isThr() = 0; virtual bool isAsp() = 0; virtual bool isAsn() = 0; virtual bool isPro() = 0; virtual bool isPhe() = 0; virtual bool isTyr() = 0; virtual bool isCys() = 0; virtual bool isTrp() = 0; virtual bool isAsx() = 0; virtual bool isGlx() = 0; virtual bool isPca() = 0; virtual bool isHyp() = 0; virtual bool isCytosine() = 0; virtual bool isThymine() = 0; virtual bool isAdenine() = 0; virtual bool isGuanine() = 0; //--- (Secondary) Structure flag --- virtual void deleteStrAssignment() = 0; virtual void setHelix3() = 0; virtual void setHelix4() = 0; virtual void setHelix5() = 0; virtual void setSheet() = 0; virtual void setTurn() = 0; virtual bool isHelix() = 0; virtual bool isSheet() = 0; virtual bool isTurn() = 0; }; #endif