libmove3d  3.13.0
/home/slemaign/softs-local/BioMove3D-git/BioTools/ambmov/protein.h
00001 #ifndef PROTEIN_H
00002 #define PROTEIN_H
00003 
00004 #define MAX_NAME_LENGTH 25
00005 
00006 
00007 typedef enum {
00008   ALA, ARG, ASN, ASP, CYS, GLN, GLU, GLY, HIS, ILE, 
00009   LEU, LYS, MET, PHE, PRO, SER, THR, TRP, TYR, VAL,
00010   ALAH, ARGH, ASNH, ASPH, CYSH, GLNH, GLUH, GLYH, HISH, ILEH, 
00011   LEUH, LYSH, METH, PHEH, PROH, SERH, THRH, TRPH, TYRH, VALH 
00012 } residueTypes;
00013 
00014 typedef enum {
00015  SULPHUR, SULPHUR_H, OXYGEN, OXYGEN_H, NITROGEN, NITROGEN_H, NITROGEN_FULL,
00016  CARBON, HYDROGEN, HYDROGEN_P, BROMINE, IODINE, FLUORINE, PHOSPHORUS, CHLORINE
00017 } atomTypes;
00018 
00019 
00020 /**********************************************************************
00021  *                Protein Structure Format (PSF)                      *
00022  **********************************************************************/
00023 
00024 typedef struct s_atom {
00025   struct s_residue *residuePt;
00026   int serial;
00027   char name[5];
00028   atomTypes atomType;
00029   double pos[3];
00030   double vdwR;
00031   int nbondedA;
00032   struct s_atom **bondedAlist;
00033 } atom;
00034 
00035 
00036 typedef struct s_residue {
00037   struct s_AAchain *chainPt;
00038   char chainID[2];
00039   int subchainind;
00040   int resSeq;
00041   char resName[4];
00042   residueTypes resType;
00043   int flagH;    // indicates if it contains hydrogen atoms
00044   int flagCterm;// indicates if it is a C terminal residue with OXT
00045   int flagNterm;// indicates if it is a N terminal residue with 3 H atoms
00046   // NOTE : use pseudo backbone and side-chain
00047   int nbkbatoms;
00048   int nschatoms;
00049   // NOTE : atoms in lists have precise order (defined for BCD)
00050   struct s_atom **bkbAlist;
00051   struct s_atom **schAlist;
00052   struct s_residue *next;
00053   struct s_residue *prev;
00054 } residue;
00055 
00056 
00057 typedef struct s_AAchain {
00058   struct s_protein *proteinPt;
00059   int nresidues;
00060   struct s_residue **reslist;
00061   //struct s_AAchain *next;
00062 } AAchain;
00063 
00064 
00065 typedef struct s_protein {
00066   char name[MAX_NAME_LENGTH];
00067   int nchains;
00068   struct s_AAchain **chainlist;
00069 } protein;
00070 
00071 #endif
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines