The Secondary Structure Classes


The Intrinsic Secondary Structure Classes are:


Click here to see Secondary Structure Class documentation


Class IntrCompSubStruc

class IntrCompSubStruc :public UniversalBase {
  
friend class IntrCompound;
friend class SStrucIter;
friend class SubEntityIter;
friend class LinearSSList;
  
protected:
  void * _next;
  void * _previous;
  CompSubStruc * _compSubStrucSelf;  
  IntrCompSubStruc();
  IntrCompSubStruc(const IntrCompSubStruc& );
#if NEED_OBJECTSTORE  
  // To satisfy OSCC compiler.
  virtual void AddAfter(void*) {}
  virtual void InsertBefore(void*) {}
#else  
  virtual void AddAfter(void*)=0;
  virtual void InsertBefore(void*)=0;
#endif
  SSTRUCTYPE _type;
  char _name[4];         //use to be identifier.

public:
  virtual ~IntrCompSubStruc(){delete _subEntityList;}
  ListMgr *_subEntityList;
  void * Next() const {return _next;}
  void * Previous() const {return _previous;}
  SSTRUCTYPE MyType() const {return _type;}
  char * MyName() const {return (char*)_name;}
  void SetName(char *name) {strcpy(_name,name);}
  void DeleteMySubEntityList() {if (_subEntityList) {
				   delete _subEntityList;
				   _subEntityList=0;
                                } //purified
  }
#if NEED_OBJECTSTORE  
  // To satisfy OSCC compiler.
  virtual const Compound * MyCompound() const {return 0;}
  virtual CompSubStruc* MyCompSubStruc() const {return 0;} 
#else
  virtual const Compound * MyCompound() const=0;
  virtual CompSubStruc* MyCompSubStruc() const = 0; 
#endif


};


Class IntrHelix

class IntrHelix: public SStrucSE {
 public:
  IntrHelix();
  IntrHelix(const IntrHelix&);
  int _helixClass;

};


Class IntrTurn

class IntrTurn: public SStrucSE {
 protected:
  IntrTurn(){_type=TURN;}
  IntrTurn(const IntrTurn& t) : SStrucSE(t){}

};


Class IntrMultiEntitySubStruc

class IntrMultiEntitySubStruc : virtual public CompSubStruc {
  Compound * _compound;
 public:
  IntrMultiEntitySubStruc(){ _compound=NULL; _subEntityList=NULL;}
  IntrMultiEntitySubStruc(const IntrMultiEntitySubStruc& m)
   : CompSubStruc(m) { _compound=m._compound; }
  const Compound * MyCompound() const {return _compound;}
  MultiEntitySubStruc *NextMultiEntitySubStruc() const {
    return (MultiEntitySubStruc*)_next;
  }
  MultiEntitySubStruc *PreviousMultiEntitySubStruc() const {
    return (MultiEntitySubStruc*)_previous;
  }
  void AssignCompound(Compound& c){_compound=&c;}
  CompSubStruc * MyCompSubStruc() const {return _compSubStrucSelf;}
};


Class IntrSStruc

class IntrSStruc : virtual public CompSubStruc {
protected:
  IntrSStruc(){};
  IntrSStruc(const IntrSStruc& s) : CompSubStruc(s){ }
  virtual ~IntrSStruc();
  
public:
  SStruc * NextSStruc() const {return (SStruc*)_next;}
  SStruc * PreviousSStruc() const {return (SStruc*)_previous;}
  CompSubStruc * MyCompSubStruc() const {return _compSubStrucSelf;}
};


Class IntrSStrucSE

class IntrSStrucSE :public SStruc {

//
// UniEntitySStruc
//
  
friend class IntrPdbFile;
friend class IntrEntity;
  
protected:
  IntrSStrucSE();
  IntrSStrucSE(const IntrSStrucSE&);
  ~IntrSStrucSE();
  Entity *_entity;
  char * _comment;
  void AddAfter(void*);
  void InsertBefore(void*);
  int _serialNum;
public:
  SubEntity * _beginSubEntity;
  SubEntity * _endSubEntity;
  Entity *MyEntity() const {return _entity;}
  char *MyComment() const {return _comment;}
  int MySerialNumber() const {return _serialNum;}
  SubEntity * MyBeginSubEntity() const {return _beginSubEntity;}
  SubEntity * MyEndSubEntity() const {return _endSubEntity;}
  const Compound *MyCompound() const;
  int AssignSubEntities(SubEntity& subentity1, SubEntity& subentity2);
  void AddSStrucSEAfter(SStrucSE* s){AddAfter(s);}
  void InsertSStrucSEBefore(SStrucSE* s){InsertBefore(s);}
  SStrucSE *NextSStrucSE(){return (SStrucSE*)NextSStruc();}

};


Class IntrSheet

class IntrSheet :public SStruc, public MultiEntitySubStruc {
protected:
  void AddAfter(void*);
  void InsertBefore(void*);
public:
  LListOfSSConn *_ssConnectList;
  IntrSheet(){
    _ssConnectList=NEW_SEG(SECSTRUC_SEG,
                LListOfSSConn::get_os_typespec(),1,LListOfSSConn)

    _subEntityList=NEW_SEG(SECSTRUC_SEG,
                MultiLinearListMgr::get_os_typespec(),1,
		MultiLinearListMgr)
    _type=SHEET;
  }
  IntrSheet(const IntrSheet & s) : SStruc(s), MultiEntitySubStruc(s) 
  {
    _ssConnectList=NEW_SEG(SECSTRUC_SEG,
                LListOfSSConn::get_os_typespec(),1,
		LListOfSSConn(s._ssConnectList))

  }
  ~IntrSheet() { delete _ssConnectList; }
  void AddStrand(Strand *sp);
  void AddConnection(SStrucSE* current,
		     SStrucSE* previous,
		     HydroBond* hb, PARALLELISM parallel){
    _ssConnectList->AddConnection(current, previous, hb, parallel);
  }
  HydroBond * NewHydroBond(SubEntity*, SubEntity*, char*, char*);
  SSConnectivity * SSConnectivityOf(Strand* s);
  HydroBond * HydroBondBetween(Strand*, Strand*) const;
  PARALLELISM ParallelismOf(Strand*, Strand*) const;
  Sheet * NextSheet() const {return (Sheet*)_next;}
  Sheet * PreviousSheet() const {return (Sheet*)_previous;}
  Strand * FindStrand(Strand*) const;
  Strand * FindStrand(char*) const;
  void Merge(Sheet*);
  void RemoveSelfFromList();
  void AddSheetAfter(Sheet* s){AddAfter(s);}
  void InsertSheetBefore(Sheet* s){InsertBefore(s);}
  const Compound * MyCompound() const {
     return MultiEntitySubStruc::MyCompound();
   }

  const SSList * MySSList() const {return  _ssConnectList;}
  CompSubStruc * MyCompSubStruc() const {return _compSubStrucSelf;}

#if NEED_OBJECTSTORE
 static os_typespec *get_os_typespec();
#endif
};


Class IntrSite

class IntrSite :public MultiEntitySubStruc {
protected:
  void AddAfter(void*);
  void InsertBefore(void*);
public:
  IntrSite(){ 
  _type=SITE;
  }
  IntrSite(const IntrSite& s) : MultiEntitySubStruc(s) {}
  Site* NextSite() const {return (Site*)_next;}
  Site* PreviousSite() const {return (Site*)_previous;}
  void AddSiteAfter(Site* s){AddAfter(s);}
  void InsertSiteBefore(Site* s){InsertBefore(s);}
  void AddSubEntity(SubEntity*);
};


Class IntrStrand

class IntrStrand: public SStrucSE {
 protected:
  Sheet * _sheet;
  IntrStrand();
  IntrStrand(const IntrStrand&);
 public:
  Sheet *MySheet() const {return _sheet;}


};

Back to The PDBLib


Currently under Heavy Construction, please excuse the mess


jcooper@cuhhca.hhmi.columbia.edu