libmove3d  3.13.0
/home/slemaign/softs-local/BioMove3D-git/bio/BioStructures/include/psf_defs_bio.h
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
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines