libmove3d
3.13.0
|
00001 #ifndef PSF_DEFS_BIO 00002 #define PSF_DEFS_BIO 00003 00005 00007 // Peptide bond dihedral angle // 00009 00010 #define OMEGAMAX 190.0*(PI/180.0) 00011 #define OMEGAMIN 170.0*(PI/180.0) 00012 00014 // Van Der Walls radii // 00016 00017 #define C_VDWR 1.53 00018 #define N_VDWR 1.38 00019 #define O_VDWR 1.35 00020 #define S_VDWR 1.79 00021 #define H_VDWR 1.10 00022 00023 #define Br_VDWR 1.94 00024 #define Cl_VDWR 1.74 00025 #define F_VDWR 1.29 00026 #define P_VDWR 1.87 00027 #define I_VDWR 2.14 00028 00029 /* #define C_VDWR 1.7 */ 00030 /* #define N_VDWR 1.55 */ 00031 /* #define O_VDWR 1.52 */ 00032 /* #define S_VDWR 1.8 */ 00033 /* #define H_VDWR 1.2 */ 00034 00036 // Covalent factor necessary to // 00037 // make bond in ligands // 00039 00040 #define COVBOND_FACTOR 0.65 00041 00042 00044 // atom names // 00046 00047 typedef enum { 00048 psf_SULPHUR, psf_SULPHUR_H, psf_OXYGEN, psf_OXYGEN_H, psf_NITROGEN, psf_NITROGEN_H, psf_NITROGEN_FULL, 00049 psf_CARBON, psf_HYDROGEN, psf_HYDROGEN_P, psf_BROMINE, psf_IODINE, psf_FLUORINE, psf_PHOSPHORUS, psf_CHLORINE 00050 } atomTypes; 00051 00053 00054 00055 typedef enum { 00056 psf_ALA, psf_ARG, psf_ASN, psf_ASP, psf_CYS, psf_GLN, psf_GLU, psf_GLY, psf_HIS, psf_ILE, 00057 psf_LEU, psf_LYS, psf_MET, psf_PHE, psf_PRO, psf_SER, psf_THR, psf_TRP, psf_TYR, psf_VAL, 00058 psf_ALAH, psf_ARGH, psf_ASNH, psf_ASPH, psf_CYSH, psf_GLNH, psf_GLUH, psf_GLYH, psf_HISH, psf_ILEH, 00059 psf_LEUH, psf_LYSH, psf_METH, psf_PHEH, psf_PROH, psf_SERH, psf_THRH, psf_TRPH, psf_TYRH, psf_VALH 00060 } residueTypes; 00061 00062 00064 00065 00066 // atom indices (BCD order) 00067 // NOTE 1 : BKBs, psf_ILE_sch, psf_LEU_sch, psf_VAL_sch have different order in .p3d file !!! 00068 00069 // NOTE 2 : H' are included in the model. Each enumeration contains H' if they exist. 00070 // BE CAREFULL ! the number of atoms must not take them in account ! 00071 00072 00074 // backbone atoms // 00076 00077 # define N_GEN_BKB_ATOMS 6 00078 typedef enum { 00079 psf_gen_C, psf_gen_O, psf_gen_CA, psf_gen_CB, psf_gen_N, psf_gen_OXT 00080 } psf_gen_bkb_atoms; 00081 00082 # define N_GENH_BKB_ATOMS 7 00083 typedef enum { 00084 psf_genH_C, psf_genH_O, psf_genH_CA, psf_genH_HA, psf_genH_CB, psf_genH_N, 00085 psf_genH_H, psf_genH_H_Nterm, 00086 psf_genH_OXT 00087 } psf_genH_bkb_atoms; 00088 // (psf_genH_H, psf_genH_H_Nterm) are H' 00089 // Generally, there is no H on the terminal COO group in pdb files 00090 00091 # define N_GLY_BKB_ATOMS 5 00092 typedef enum { 00093 psf_GLY_C, psf_GLY_O, psf_GLY_CA, psf_GLY_N, psf_GLY_OXT 00094 } psf_GLY_bkb_atoms; 00095 00096 # define N_GLYH_BKB_ATOMS 7 00097 typedef enum { 00098 psf_GLYH_C, psf_GLYH_O, psf_GLYH_CA, psf_GLYH_1HA, psf_GLYH_2HA, psf_GLYH_N, 00099 psf_GLYH_H, psf_GLYH_H_Nterm, 00100 psf_GLYH_OXT 00101 } psf_GLYH_bkb_atoms; 00102 // (psf_GLYH_H, psf_GLYH_H_Nterm) are H' 00103 // Generally, there is no H on the terminal COO group in pdb files 00104 00105 # define N_PRO_BKB_ATOMS 8 00106 typedef enum psf_PRO_bkb_atoms { 00107 psf_PRO_C, psf_PRO_O, psf_PRO_CA, psf_PRO_CB, psf_PRO_CG, psf_PRO_CD, psf_PRO_N, 00108 psf_PRO_OXT 00109 } psf_PRO_bkb_atoms; 00110 00111 # define N_PROH_BKB_ATOMS 15 00112 typedef enum { 00113 psf_PROH_C, psf_PROH_O, psf_PROH_CA, psf_PROH_HA, psf_PROH_CB, psf_PROH_N, psf_PROH_1HB, psf_PROH_2HB, 00114 psf_PROH_CG, psf_PROH_1HG, psf_PROH_2HG, psf_PROH_CD, psf_PROH_1HD, psf_PROH_2HD, psf_PROH_OXT 00115 } psf_PROH_bkb_atoms; 00116 00117 00119 // side-chains atoms // 00121 00122 00123 # define N_ALA_SCH_ATOMS 0 00124 # define N_ALAH_SCH_ATOMS 3 00125 typedef enum { 00126 psf_ALAH_1HB, psf_ALAH_2HB, psf_ALAH_3HB 00127 } psf_ALAH_sch_atoms; 00128 00129 # define N_ARG_SCH_ATOMS 6 00130 typedef enum { 00131 psf_ARG_CG, psf_ARG_CD, psf_ARG_NE, psf_ARG_CZ, psf_ARG_NH1, psf_ARG_NH2 00132 } psf_ARG_sch_atoms; 00133 00134 # define N_ARGH_SCH_ATOMS 12 00135 typedef enum { 00136 psf_ARGH_1HB, psf_ARGH_2HB, psf_ARGH_CG, psf_ARGH_1HG, psf_ARGH_2HG, psf_ARGH_CD, psf_ARGH_1HD, psf_ARGH_2HD, psf_ARGH_NE, psf_ARGH_CZ, psf_ARGH_NH1, psf_ARGH_NH2, 00137 psf_ARGH_1HH1, psf_ARGH_2HH1, psf_ARGH_1HH2, psf_ARGH_2HH2, psf_ARGH_HE 00138 } psf_ARGH_sch_atoms ; 00139 // (psf_ARGH_1HH1, psf_ARGH_2HH1, psf_ARGH_1HH2, psf_ARGH_2HH2, psf_ARGH_HE) are H' 00140 00141 00142 # define N_ASN_SCH_ATOMS 3 00143 typedef enum { 00144 psf_ASN_CG, psf_ASN_OD1, psf_ASN_ND2 00145 } psf_ASN_sch_atoms; 00146 00147 # define N_ASNH_SCH_ATOMS 5 00148 typedef enum { 00149 psf_ASNH_1HB, psf_ASNH_2HB, psf_ASNH_CG, psf_ASNH_OD1, psf_ASNH_ND2, 00150 psf_ASNH_1HD2, psf_ASNH_2HD2 00151 } psf_ASNH_sch_atoms; 00152 // (psf_ASNH_1HD2, psf_ASNH_2HD2) are H' 00153 00154 # define N_ASP_SCH_ATOMS 3 00155 typedef enum { 00156 psf_ASP_CG, psf_ASP_OD1, psf_ASP_OD2 00157 } psf_ASP_sch_atoms; 00158 00159 # define N_ASPH_SCH_ATOMS 5 00160 typedef enum { 00161 psf_ASPH_1HB, psf_ASPH_2HB, psf_ASPH_CG, psf_ASPH_OD1, psf_ASPH_OD2 00162 } psf_ASPH_sch_atoms; 00163 00164 # define N_CYS_SCH_ATOMS 1 00165 typedef enum { 00166 psf_CYS_SG 00167 } psf_CYS_sch_atoms; 00168 00169 # define N_CYSH_SCH_ATOMS 3 00170 typedef enum { 00171 psf_CYSH_1HB, psf_CYSH_2HB, psf_CYSH_SG, 00172 psf_CYSH_HG 00173 } psf_CYSH_sch_atoms; 00174 // psf_CYSH_HG is H' 00175 00176 # define N_GLN_SCH_ATOMS 4 00177 typedef enum { 00178 psf_GLN_CG, psf_GLN_CD, psf_GLN_OE1, psf_GLN_NE2 00179 } psf_GLN_sch_atoms; 00180 00181 # define N_GLNH_SCH_ATOMS 8 00182 typedef enum { 00183 psf_GLNH_1HB, psf_GLNH_2HB, psf_GLNH_CG, psf_GLNH_1HG, psf_GLNH_2HG, psf_GLNH_CD, psf_GLNH_OE1, psf_GLNH_NE2, 00184 psf_GLNH_1HE2, psf_GLNH_2HE2 00185 } psf_GLNH_sch_atoms; 00186 // (psf_GLNH_1HE2, psf_GLNH_2HE2) are H' 00187 00188 # define N_GLU_SCH_ATOMS 4 00189 typedef enum { 00190 psf_GLU_CG, psf_GLU_CD, psf_GLU_OE1, psf_GLU_OE2 00191 } psf_GLU_sch_atoms; 00192 00193 # define N_GLUH_SCH_ATOMS 8 00194 typedef enum { 00195 psf_GLUH_1HB, psf_GLUH_2HB, psf_GLUH_CG, psf_GLUH_1HG, psf_GLUH_2HG, psf_GLUH_CD, psf_GLUH_OE1, psf_GLUH_OE2 00196 } psf_GLUH_sch_atoms; 00197 00198 # define N_GLY_SCH_ATOMS 0 00199 # define N_GLYH_SCH_ATOMS 0 00200 // psf_GLY : no side-chain 00201 00202 # define N_HIS_SCH_ATOMS 5 00203 typedef enum { 00204 psf_HIS_CG, psf_HIS_ND1, psf_HIS_CD2, psf_HIS_CE1, psf_HIS_NE2 00205 } psf_HIS_sch_atoms; 00206 00207 # define N_HISH_SCH_ATOMS 9 00208 typedef enum { 00209 psf_HISH_1HB, psf_HISH_2HB, psf_HISH_CG, psf_HISH_ND1, psf_HISH_CD2, psf_HISH_HD2, psf_HISH_CE1, psf_HISH_HE1, psf_HISH_NE2, 00210 psf_HISH_HE2, psf_HISH_HD1 00211 } psf_HISH_sch_atoms; 00212 // (psf_HISH_HE2, psf_HISH_HD1) is H' 00213 00214 # define N_ILE_SCH_ATOMS 3 00215 typedef enum { 00216 psf_ILE_CG2, psf_ILE_CG1, psf_ILE_CD1 00217 } psf_ILE_sch_atoms; 00218 00219 # define N_ILEH_SCH_ATOMS 12 00220 typedef enum { 00221 psf_ILEH_CG2, psf_ILEH_HB, psf_ILEH_CG1, psf_ILEH_1HG1, psf_ILEH_2HG1, psf_ILEH_CD1, 00222 psf_ILEH_1HG2, psf_ILEH_2HG2, psf_ILEH_3HG2, psf_ILEH_1HD1, psf_ILEH_2HD1, psf_ILEH_3HD1 00223 } psf_ILEH_sch_atoms; 00224 00225 # define N_LEU_SCH_ATOMS 3 00226 typedef enum { 00227 psf_LEU_CG, psf_LEU_CD1, psf_LEU_CD2 00228 } psf_LEU_sch_atoms; 00229 00230 # define N_LEUH_SCH_ATOMS 12 00231 typedef enum { 00232 psf_LEUH_1HB, psf_LEUH_2HB, psf_LEUH_CG, psf_LEUH_HG, psf_LEUH_CD1, psf_LEUH_CD2, 00233 psf_LEUH_1HD1, psf_LEUH_2HD1, psf_LEUH_3HD1, psf_LEUH_1HD2, psf_LEUH_2HD2, psf_LEUH_3HD2 00234 } psf_LEUH_sch_atoms; 00235 00236 # define N_LYS_SCH_ATOMS 4 00237 typedef enum { 00238 psf_LYS_CG, psf_LYS_CD, psf_LYS_CE, psf_LYS_NZ 00239 } psf_LYS_sch_atoms; 00240 00241 # define N_LYSH_SCH_ATOMS 12 00242 typedef enum { 00243 psf_LYSH_1HB, psf_LYSH_2HB, psf_LYSH_CG, psf_LYSH_1HG, psf_LYSH_2HG, psf_LYSH_CD, psf_LYSH_1HD, psf_LYSH_2HD, 00244 psf_LYSH_CE, psf_LYSH_1HE, psf_LYSH_2HE, psf_LYSH_NZ, 00245 psf_LYSH_1HZ, psf_LYSH_2HZ, psf_LYSH_3HZ 00246 } psf_LYSH_sch_atoms; 00247 // (psf_LYSH_1HZ, psf_LYSH_2HZ, psf_LYSH_3HZ ) are H' 00248 00249 00250 # define N_MET_SCH_ATOMS 3 00251 typedef enum { 00252 psf_MET_CG, psf_MET_SD, psf_MET_CE 00253 } psf_MET_sch_atoms; 00254 00255 # define N_METH_SCH_ATOMS 10 00256 typedef enum { 00257 psf_METH_1HB, psf_METH_2HB, psf_METH_CG, psf_METH_1HG, psf_METH_2HG, psf_METH_SD, psf_METH_CE, psf_METH_1HE, psf_METH_2HE, psf_METH_3HE 00258 } psf_METH_sch_atoms; 00259 00260 # define N_PHE_SCH_ATOMS 6 00261 typedef enum { 00262 psf_PHE_CG, psf_PHE_CD1, psf_PHE_CD2, psf_PHE_CE1, psf_PHE_CE2, psf_PHE_CZ 00263 } psf_PHE_sch_atoms; 00264 00265 # define N_PHEH_SCH_ATOMS 13 00266 typedef enum { 00267 psf_PHEH_1HB, psf_PHEH_2HB, psf_PHEH_CG, psf_PHEH_CD1, psf_PHEH_CD2, psf_PHEH_HD1, psf_PHEH_HD2, 00268 psf_PHEH_CE1, psf_PHEH_CE2, psf_PHEH_CZ, psf_PHEH_HE1, psf_PHEH_HE2, psf_PHEH_HZ 00269 } psf_PHEH_sch_atoms; 00270 00271 # define N_PRO_SCH_ATOMS 0 00272 # define N_PROH_SCH_ATOMS 0 00273 // psf_PRO : no side-chain 00274 00275 # define N_SER_SCH_ATOMS 1 00276 typedef enum { 00277 psf_SER_OG 00278 } psf_SER_sch_atoms; 00279 00280 # define N_SERH_SCH_ATOMS 3 00281 typedef enum { 00282 psf_SERH_1HB, psf_SERH_2HB, psf_SERH_OG, 00283 psf_SERH_HG 00284 } psf_SERH_sch_atoms; 00285 // psf_SERH_HG is H' 00286 00287 # define N_THR_SCH_ATOMS 2 00288 typedef enum { 00289 psf_THR_OG1, psf_THR_CG2 00290 } psf_THR_sch_atoms; 00291 00292 # define N_THRH_SCH_ATOMS 6 00293 typedef enum { 00294 psf_THRH_HB, psf_THRH_OG1, psf_THRH_CG2, psf_THRH_1HG2, psf_THRH_2HG2, psf_THRH_3HG2, 00295 psf_THRH_HG1 00296 } psf_THRH_sch_atoms; 00297 // psf_THRH_HG1 is H' 00298 00299 # define N_TRP_SCH_ATOMS 9 00300 typedef enum { 00301 psf_TRP_CG, psf_TRP_CD1, psf_TRP_CD2, psf_TRP_NE1, psf_TRP_CE2, psf_TRP_CE3, psf_TRP_CZ2, psf_TRP_CZ3, psf_TRP_CH2 00302 } psf_TRP_sch_atoms; 00303 00304 # define N_TRPH_SCH_ATOMS 16 00305 typedef enum { 00306 psf_TRPH_1HB, psf_TRPH_2HB, psf_TRPH_CG, psf_TRPH_CD1, psf_TRPH_CD2, psf_TRPH_HD1, psf_TRPH_NE1, psf_TRPH_CE2, psf_TRPH_CE3, psf_TRPH_HE3, 00307 psf_TRPH_CZ2, psf_TRPH_HZ2, psf_TRPH_CZ3, psf_TRPH_HZ3, psf_TRPH_CH2, psf_TRPH_HH2, 00308 psf_TRPH_HE1 00309 } psf_TRPH_sch_atoms; 00310 // psf_TRPH_HE1 is H' 00311 00312 # define N_TYR_SCH_ATOMS 7 00313 typedef enum { 00314 psf_TYR_CG, psf_TYR_CD1, psf_TYR_CD2, psf_TYR_CE1, psf_TYR_CE2, psf_TYR_CZ, psf_TYR_OH 00315 } psf_TYR_sch_atoms; 00316 00317 # define N_TYRH_SCH_ATOMS 13 00318 typedef enum { 00319 psf_TYRH_1HB, psf_TYRH_2HB, psf_TYRH_CG, psf_TYRH_CD1, psf_TYRH_CD2, psf_TYRH_CE1, psf_TYRH_CE2, 00320 psf_TYRH_HD1, psf_TYRH_HD2, psf_TYRH_HE1, psf_TYRH_HE2, psf_TYRH_CZ, psf_TYRH_OH, 00321 psf_TYRH_HH 00322 } psf_TYRH_sch_atoms; 00323 // psf_TYRH_HH is H' 00324 00325 # define N_VAL_SCH_ATOMS 2 00326 typedef enum { 00327 psf_VAL_CG1, psf_VAL_CG2 00328 } psf_VAL_sch_atoms; 00329 00330 # define N_VALH_SCH_ATOMS 9 00331 typedef enum { 00332 psf_VALH_HB, psf_VALH_CG1, psf_VALH_CG2, psf_VALH_1HG1, psf_VALH_2HG1, psf_VALH_3HG1, psf_VALH_1HG2, psf_VALH_2HG2, psf_VALH_3HG2 00333 } psf_VALH_sch_atoms; 00334 00335 00336 #endif