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