libmove3d
3.13.0
|
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