libmove3d  3.13.0
/home/slemaign/softs-local/BioMove3D-git/BioTools/Translators/Protein/protein.h
00001 #ifndef PROTEIN_H
00002 #define PROTEIN_H
00003 
00004 #define MAX_NAME_LENGTH 50
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   int changedpos; // indicates if pos has been modified
00031   int inapc;      // indicates if the atom is in an articulated chain (NECESSARY ???)
00032   double vdwR;
00033   int nbondedA;
00034   struct s_atom **bondedAlist;
00035   int amber_index;
00036 } atom;
00037 
00038 
00039 typedef struct s_residue {
00040   struct s_AAchain *chainPt;
00041   char chainID[2];
00042   int subchainind;
00043   int resSeq;
00044   char resName[4];
00045   residueTypes resType;
00046   int flagH;    // indicates if it contains hydrogen atoms
00047   int flagCterm;// indicates if it is a C terminal residue with OXT
00048   int flagNterm;// indicates if it is a N terminal residue with 3 H atoms
00049   // NOTE : use pseudo backbone and side-chain
00050   int nbkbatoms;
00051   int nschatoms;
00052   // NOTE : atoms in lists have precise order (defined for BCD)
00053   struct s_atom **bkbAlist;
00054   struct s_atom **schAlist;
00055   struct s_residue *next;
00056   struct s_residue *prev;
00057 } residue;
00058 
00059 
00060 typedef struct s_AAchain {
00061   struct s_protein *proteinPt;
00062   int nresidues;
00063   struct s_residue **reslist;
00064   //struct s_AAchain *next;
00065 } AAchain;
00066 
00067 
00068 typedef struct s_protein {
00069   char name[MAX_NAME_LENGTH];
00070   int nchains;
00071   struct s_AAchain **chainlist;
00072 } protein;
00073 
00074 #endif
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines