libmove3d  3.13.0
/home/slemaign/softs-local/BioMove3D-git/bio/BioStructures/include/psf_type.h
00001 #ifndef PSF_TYPE
00002 #define PSF_TYPE
00003 
00004 #include "psf_defs_bio.h"
00005 
00006 #define PSF_MAX_NAME_LENGTH 30
00007 
00008 /**********************************************************************
00009  *                Protein Structure Format (PSF)                      *
00010  **********************************************************************/
00011 
00012 typedef struct s_psf_atom {
00013   struct s_psf_residue *residuePt;
00014   int serial;
00015   char name[5];
00016   atomTypes atomType;
00017   double pos[3];
00018   double vdwR;
00019   int nbondedA;
00020   struct s_psf_atom **bondedAtomList;
00021   struct s_psf_rigid *rigidPt;
00022 } psf_atom;
00023 
00024 
00025 // PROTEIN
00026 
00027 typedef struct s_psf_residue {
00028   struct s_psf_AAchain *chainPt;
00029   int resSeq;
00030   char resName[4];
00031   residueTypes resType;
00032   int flagH;      // indicates if it contains hydrogen atoms
00033   int flagCterm;  // indicates if it is a C terminal residue with OXT
00034   // NOTE : use pseudo backbone and side-chain
00035   int nbkbatoms;
00036   int nschatoms;
00037   // NOTE : atoms in lists have precise order (defined for BCD)
00038   struct s_psf_atom **bkbAtomList;
00039   struct s_psf_atom **schAtomList;
00040   struct s_psf_residue *nextResidue;
00041   struct s_psf_residue *prevResidue;
00042 } psf_residue;
00043 
00044 
00045 typedef struct s_psf_AAchain {
00046   struct s_psf_protein *proteinPt;
00047   char chainID[2];
00048   int subchainind;
00049   int nresidues;
00050   struct s_psf_residue **resList;
00051 } psf_AAchain;
00052 
00053 
00054 typedef struct s_psf_protein {
00055   char name[PSF_MAX_NAME_LENGTH];
00056   int nchains;
00057   struct s_psf_AAchain **chainList;
00058 } psf_protein;
00059 
00060 
00061 // LIGAND
00062 
00063 typedef struct s_psf_rigid {
00064   int natoms;
00065   int noutJnts;
00066   int ninJnts;
00067   struct s_psf_atom **atomList;
00068   struct s_psf_joint **outJntsList;
00069   struct s_psf_joint **inJntsList;
00070   int indexparentj;
00071 } psf_rigid;
00072 
00073 typedef struct s_psf_joint {
00074   struct s_psf_atom *dihedralAtoms[4];
00075   double vmin;
00076   double vmax;
00077   double value;
00078   struct s_psf_rigid *rigidIn;
00079   struct s_psf_rigid *rigidOut;
00080 } psf_joint;
00081 
00082 
00083 typedef struct s_psf_ligand {
00084   char name[PSF_MAX_NAME_LENGTH];
00085   int natoms;
00086   int nrigids;
00087   int njoints;
00088   struct s_psf_atom **atomList;
00089   struct s_psf_rigid **rigidList;
00090   struct s_psf_joint **jointList;
00091   double oref[3];
00092 } psf_ligand;
00093 
00094 // MOLECULE
00095 
00096 typedef struct s_psf_molecule {
00097   char name[PSF_MAX_NAME_LENGTH];
00098   int nproteins;
00099   int nligands;
00100   struct s_psf_protein** proteinList;
00101   struct s_psf_ligand** ligandList;
00102 } psf_molecule;
00103 
00104 #endif
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines