MTK++ Latest version: 0.2.0

complex.h
Go to the documentation of this file.
00001 
00033 #ifndef COMPLEX_H
00034 #define COMPLEX_H
00035 
00036 #include <iostream>
00037 #include <string>
00038 #include <vector>
00039 #include <map>
00040 #include <algorithm>
00041 
00042 #include "Utils/constants.h"
00043 
00044 namespace MTKpp
00045 {
00046 class collection;
00047 class molecule;
00048 class submolecule;
00049 class atom;
00050 class vector3d;
00051 
00052 class stdLibrary;
00053 class stdGroup;
00054 class stdFrag;
00055 struct stdAtom;
00056 
00057 class elements;
00058 
00059 struct funcGroup;
00060 // ============================================================
00061 // Class : complex()
00062 // ------------------------------------------------------------
00068 // ============================================================
00069 
00070 class complex
00071 {
00072     friend class collection;
00073 public:
00074 
00080     complex(collection* pCollection, bool bLigOnly);
00081 
00083     virtual ~complex();
00084 
00088     int getNumAtoms();
00089 
00093     int getNumResidues();
00094 
00098     int getNumRecAtoms();
00099 
00103     int getNumRecResidues();
00104 
00108     int getNumLigAtoms();
00109 
00113     int getNumLigResidues();
00114 
00118     int getAtomsMatrixSize();
00119 
00123     int getResMatrixSize();
00124 
00128     bool getLigOnly();
00129 
00133     int getRecRecAtoms();
00134 
00138     int getRecRecResidues();
00139 
00144     int getRecFlags(int recFlags[]);
00145 
00150     int getLigFlags(int ligFlags[]);
00151 
00156     bool isAtomLig(int a);
00157 
00162     int getAtomIndex(int a);
00163 
00168     bool isResLig(int r);
00169 
00174     int getResIndex(int r);
00175 
00181     int setCoreFragment(std::string coreFrag);
00182 
00189     void addMapping(std::string m1, std::string m2);
00190 
00196     std::string getMapping(std::string m1);
00197 
00203     std::string getResNameID(int i);
00204 
00209     std::vector<std::vector<int> > getResidues();
00210 
00215     std::vector<int> getLigandFragments();
00216 
00221     std::vector<submolecule*> getReceptorSubMols();
00222 
00227     std::vector<submolecule*> getLigandSubMols();
00228 
00234     bool isChain(int c, int a);
00235 
00236 protected: // Functions
00237 
00241     void setup();
00242 
00243 protected: // Data
00244 
00246     collection*                                  pCollection;
00247 
00249     int                                          nAtoms;
00250 
00252     int                                          nRecAtoms;
00253 
00255     int                                          nLigAtoms;
00256 
00258     int                                          atomMatrixSize;
00259 
00261     int                                          nResidues;
00262 
00264     int                                          nRecResidues;
00265 
00267     int                                          nLigResidues;
00268 
00270     int                                          resMatrixSize;
00271 
00273     bool                                         bLigOnly;
00274 
00276     int                                          nRecRecAtoms;
00277 
00279     int                                          nRecRecResidues;
00280 
00281     /*
00282           rec = [NATOMS] = [1,1,1,0,0,0,0]
00283           lig = [NATOMS] = [0,0,0,1,1,0,0]
00284           cof = [NATOMS] = [0,0,0,0,0,0,1]
00285           sol = [NATOMS] = [0,0,0,0,0,1,0]
00286        recSol = [NATOMS] = [1,1,1,0,0,1,1]
00287       indices = [NATOMS] = [1,2,3,5,6,4,7]
00288         chain = [NATOMS] = [1,1,1,2,2,2,2]
00289     */
00290 
00292     int                                          *rec;
00293 
00295     int                                          *lig;
00296 
00298     int                                          *cof;
00299 
00301     int                                          *sol;
00302 
00304     int                                          *recSol;
00305 
00307     int                                          *atomIndices;
00308 
00310     int                                          *resRec;
00311 
00313     int                                          *resLig;
00314 
00316     int                                          *resSol;
00317 
00319     int                                          *resRecSol;
00320 
00322     int                                          *resIndices;
00323 
00325     int                                          chainCounter;
00326 
00328     int                                          *chain;
00329 
00331     std::vector<submolecule*>                    receptor;
00332 
00334     molecule*                                    pLigand;
00335 
00337     std::vector<submolecule*>                    ligand;
00338 
00340     std::vector<submolecule*>                    cofactor;
00341 
00343     std::vector<submolecule*>                    solvent;
00344 
00346     std::vector<std::vector<int> >               residues;
00347 
00349     std::vector<int>                             ligandIndices;
00350 
00352     typedef std::map<std::string, std::string>::iterator stringMapIterator;
00353 
00355     std::vector<std::string>                     residueNAMEIDs;
00356 
00358     std::map<std::string, std::string>           residueMap;
00359 
00361     std::vector<std::string>                     cofactors;
00362 };
00363 
00364 } // MTKpp namespace
00365 
00366 #endif // COMPLEX_H

Generated on Fri Dec 23 2011 09:28:49 for MTK++ by Doxygen 1.7.5.1