From 86940d4643ef8dc4aa953f917cb2ad9573fe27bf Mon Sep 17 00:00:00 2001 From: rodrigo Date: Thu, 29 Jul 2021 14:55:23 +0200 Subject: [PATCH 1/4] add flexref cns scripts --- src/haddock/modules/flexref/cns/WARNING | 2 + .../cns/amino-acids-bases-energies.cns | 95 + src/haddock/modules/flexref/cns/auto-his.cns | 141 + src/haddock/modules/flexref/cns/bestener.cns | 157 + src/haddock/modules/flexref/cns/boxtyp20.pdb | 658 ++ src/haddock/modules/flexref/cns/bsa.cns | 51 + .../modules/flexref/cns/build-missing.cns | 323 + .../modules/flexref/cns/calc_free-ene.cns | 24 + .../modules/flexref/cns/centroids_create.cns | 56 + .../flexref/cns/centroids_init_placement.cns | 115 + .../flexref/cns/centroids_initialize.cns | 17 + .../modules/flexref/cns/centroids_set_map.cns | 8 + .../flexref/cns/centroids_set_restraints.cns | 70 + src/haddock/modules/flexref/cns/cg-to-aa.cns | 136 + .../flexref/cns/charge-beads-interactions.cns | 33 + .../modules/flexref/cns/check-homomers.cns | 56 + .../modules/flexref/cns/cm-restraints.cns | 142 + src/haddock/modules/flexref/cns/cns_test.csh | 7 + .../modules/flexref/cns/contactairs.cns | 27 + .../modules/flexref/cns/coval-ace-cys.cns | 57 + src/haddock/modules/flexref/cns/covalheme.cns | 128 + src/haddock/modules/flexref/cns/covalions.cns | 82 + src/haddock/modules/flexref/cns/db0.cns | 38 + src/haddock/modules/flexref/cns/db00.cns | 57 + src/haddock/modules/flexref/cns/db1.cns | 323 + .../modules/flexref/cns/db_kyte-doolittle.dat | 773 +++ .../modules/flexref/cns/db_statistical.dat | 773 +++ .../modules/flexref/cns/dbene-methanol.dat | 105 + .../modules/flexref/cns/dbene-water.dat | 105 + .../modules/flexref/cns/def_solv_param.cns | 17 + src/haddock/modules/flexref/cns/default.py | 0 src/haddock/modules/flexref/cns/dmso.pdb | 852 +++ .../flexref/cns/dna-rna_restraints.def | 1221 ++++ src/haddock/modules/flexref/cns/dna_break.cns | 82 + src/haddock/modules/flexref/cns/edesolv.inp | 99 + .../modules/flexref/cns/em_calc_lcc.cns | 123 + .../modules/flexref/cns/em_orien_search.cns | 27 + .../modules/flexref/cns/em_read_data.cns | 100 + .../modules/flexref/cns/em_rot_search.cns | 102 + .../modules/flexref/cns/em_sym_search.cns | 74 + .../modules/flexref/cns/ene-residue.inp | 182 + src/haddock/modules/flexref/cns/energy.inp | 304 + src/haddock/modules/flexref/cns/expand.cns | 91 + .../modules/flexref/cns/flex_segment.cns | 62 + .../modules/flexref/cns/flex_segment_back.cns | 87 + .../modules/flexref/cns/flex_segment_side.cns | 92 + .../flexref/cns/flexauto-neighbors.cns | 48 + src/haddock/modules/flexref/cns/flexauto.cns | 30 + src/haddock/modules/flexref/cns/flexref.cns | 1616 +++++ src/haddock/modules/flexref/cns/flexref.toml | 1875 ++++++ .../modules/flexref/cns/generate-cg.inp | 920 +++ .../modules/flexref/cns/generate-original.inp | 896 +++ .../modules/flexref/cns/generate-water.inp | 1010 ++++ src/haddock/modules/flexref/cns/generate.inp | 896 +++ .../flexref/cns/generate_complex-aa.inp | 56 + .../flexref/cns/generate_complex-water.inp | 95 + .../modules/flexref/cns/generate_complex.inp | 124 + .../modules/flexref/cns/generate_dmso.cns | 123 + .../modules/flexref/cns/generate_water.cns | 127 + .../modules/flexref/cns/get_average.inp | 418 ++ .../flexref/cns/get_random_rotation.cns | 95 + .../modules/flexref/cns/initialize.cns | 16 + .../modules/flexref/cns/make_plane.inp | 98 + .../modules/flexref/cns/make_tensor.inp | 41 + .../modules/flexref/cns/make_tensor_para.inp | 52 + .../modules/flexref/cns/mini_tensor.cns | 134 + .../modules/flexref/cns/mini_tensor_dani.cns | 134 + .../modules/flexref/cns/mini_tensor_para.cns | 143 + src/haddock/modules/flexref/cns/numtrees.cns | 116 + .../modules/flexref/cns/patch-bb-cg.cns | 241 + .../modules/flexref/cns/patch-types-cg.cns | 68 + .../flexref/cns/print_aa-dna-energies.inp | 76 + .../modules/flexref/cns/print_coorheader.cns | 304 + .../modules/flexref/cns/print_dani.inp | 134 + src/haddock/modules/flexref/cns/print_dih.inp | 114 + .../modules/flexref/cns/print_geom.inp | 129 + .../modules/flexref/cns/print_hbonds.inp | 138 + src/haddock/modules/flexref/cns/print_nb.inp | 93 + .../modules/flexref/cns/print_noes.inp | 672 +++ src/haddock/modules/flexref/cns/print_rg.inp | 85 + .../modules/flexref/cns/print_sani.inp | 130 + .../modules/flexref/cns/print_vean.inp | 133 + .../modules/flexref/cns/print_xpcs.inp | 128 + .../modules/flexref/cns/print_xrdc.inp | 127 + .../modules/flexref/cns/prot_break-CA.cns | 87 + .../modules/flexref/cns/prot_break.cns | 144 + .../flexref/cns/protein-ss-restraints-all.def | 108 + .../cns/protein-ss-restraints-alpha-beta.def | 135 + .../cns/protein-ss-restraints-alpha.def | 116 + .../modules/flexref/cns/random_rotations.cns | 179 + .../modules/flexref/cns/randomairs.cns | 240 + src/haddock/modules/flexref/cns/re_dmso.inp | 839 +++ src/haddock/modules/flexref/cns/re_h2o.inp | 854 +++ src/haddock/modules/flexref/cns/read_data.cns | 237 + src/haddock/modules/flexref/cns/read_noes.cns | 90 + .../modules/flexref/cns/read_struc-cg.cns | 24 + .../modules/flexref/cns/read_struc.cns | 198 + .../modules/flexref/cns/read_water1.cns | 41 + .../modules/flexref/cns/rebuild-unknown.cns | 238 + src/haddock/modules/flexref/cns/refine.inp | 1738 ++++++ .../modules/flexref/cns/refine.inp-expand | 1744 ++++++ .../modules/flexref/cns/rg-restraint.cns | 16 + src/haddock/modules/flexref/cns/rmsd-new.inp | 186 + src/haddock/modules/flexref/cns/rmsd.inp | 200 + .../modules/flexref/cns/rotate_pdb.cns | 32 + .../modules/flexref/cns/rotation180.cns | 115 + src/haddock/modules/flexref/cns/run.cns | 5309 +++++++++++++++++ src/haddock/modules/flexref/cns/run.cns~ | 5309 +++++++++++++++++ .../modules/flexref/cns/sa_ltad_cool1.cns | 246 + .../modules/flexref/cns/sa_ltad_cool2.cns | 248 + .../modules/flexref/cns/sa_ltad_cool3.cns | 245 + .../modules/flexref/cns/sa_ltad_hightemp.cns | 109 + .../modules/flexref/cns/scale_inter.cns | 45 + .../modules/flexref/cns/scale_inter_final.cns | 37 + .../modules/flexref/cns/scale_inter_mini.cns | 37 + .../modules/flexref/cns/scale_inter_only.cns | 18 + .../modules/flexref/cns/scale_intra_only.cns | 12 + src/haddock/modules/flexref/cns/separate.cns | 238 + .../modules/flexref/cns/set_noe_scale.cns | 82 + src/haddock/modules/flexref/cns/setflags.cns | 93 + .../modules/flexref/cns/surf-restraints.cns | 71 + .../modules/flexref/cns/symmultimer.cns | 304 + .../modules/flexref/cns/torsiontop.cns | 130 + .../modules/flexref/cns/torsiontop_flex.cns | 126 + .../flexref/cns/torsiontop_flex_back.cns | 127 + .../modules/flexref/cns/water_rest.cns | 46 + .../modules/flexref/cns/waterdock_mini.cns | 75 + .../modules/flexref/cns/waterdock_out0.cns | 41 + .../modules/flexref/cns/waterdock_out1.cns | 42 + .../flexref/cns/waterdock_remove-water.cns | 69 + .../modules/flexref/cns/zrestraining.cns | 37 + 131 files changed, 40366 insertions(+) create mode 100644 src/haddock/modules/flexref/cns/WARNING create mode 100644 src/haddock/modules/flexref/cns/amino-acids-bases-energies.cns create mode 100644 src/haddock/modules/flexref/cns/auto-his.cns create mode 100644 src/haddock/modules/flexref/cns/bestener.cns create mode 100644 src/haddock/modules/flexref/cns/boxtyp20.pdb create mode 100644 src/haddock/modules/flexref/cns/bsa.cns create mode 100644 src/haddock/modules/flexref/cns/build-missing.cns create mode 100644 src/haddock/modules/flexref/cns/calc_free-ene.cns create mode 100644 src/haddock/modules/flexref/cns/centroids_create.cns create mode 100644 src/haddock/modules/flexref/cns/centroids_init_placement.cns create mode 100644 src/haddock/modules/flexref/cns/centroids_initialize.cns create mode 100644 src/haddock/modules/flexref/cns/centroids_set_map.cns create mode 100644 src/haddock/modules/flexref/cns/centroids_set_restraints.cns create mode 100644 src/haddock/modules/flexref/cns/cg-to-aa.cns create mode 100644 src/haddock/modules/flexref/cns/charge-beads-interactions.cns create mode 100644 src/haddock/modules/flexref/cns/check-homomers.cns create mode 100644 src/haddock/modules/flexref/cns/cm-restraints.cns create mode 100644 src/haddock/modules/flexref/cns/cns_test.csh create mode 100644 src/haddock/modules/flexref/cns/contactairs.cns create mode 100644 src/haddock/modules/flexref/cns/coval-ace-cys.cns create mode 100644 src/haddock/modules/flexref/cns/covalheme.cns create mode 100644 src/haddock/modules/flexref/cns/covalions.cns create mode 100644 src/haddock/modules/flexref/cns/db0.cns create mode 100644 src/haddock/modules/flexref/cns/db00.cns create mode 100644 src/haddock/modules/flexref/cns/db1.cns create mode 100644 src/haddock/modules/flexref/cns/db_kyte-doolittle.dat create mode 100644 src/haddock/modules/flexref/cns/db_statistical.dat create mode 100644 src/haddock/modules/flexref/cns/dbene-methanol.dat create mode 100644 src/haddock/modules/flexref/cns/dbene-water.dat create mode 100644 src/haddock/modules/flexref/cns/def_solv_param.cns create mode 100644 src/haddock/modules/flexref/cns/default.py create mode 100644 src/haddock/modules/flexref/cns/dmso.pdb create mode 100644 src/haddock/modules/flexref/cns/dna-rna_restraints.def create mode 100644 src/haddock/modules/flexref/cns/dna_break.cns create mode 100644 src/haddock/modules/flexref/cns/edesolv.inp create mode 100644 src/haddock/modules/flexref/cns/em_calc_lcc.cns create mode 100644 src/haddock/modules/flexref/cns/em_orien_search.cns create mode 100644 src/haddock/modules/flexref/cns/em_read_data.cns create mode 100644 src/haddock/modules/flexref/cns/em_rot_search.cns create mode 100644 src/haddock/modules/flexref/cns/em_sym_search.cns create mode 100644 src/haddock/modules/flexref/cns/ene-residue.inp create mode 100644 src/haddock/modules/flexref/cns/energy.inp create mode 100644 src/haddock/modules/flexref/cns/expand.cns create mode 100644 src/haddock/modules/flexref/cns/flex_segment.cns create mode 100644 src/haddock/modules/flexref/cns/flex_segment_back.cns create mode 100644 src/haddock/modules/flexref/cns/flex_segment_side.cns create mode 100644 src/haddock/modules/flexref/cns/flexauto-neighbors.cns create mode 100644 src/haddock/modules/flexref/cns/flexauto.cns create mode 100644 src/haddock/modules/flexref/cns/flexref.cns create mode 100644 src/haddock/modules/flexref/cns/flexref.toml create mode 100644 src/haddock/modules/flexref/cns/generate-cg.inp create mode 100644 src/haddock/modules/flexref/cns/generate-original.inp create mode 100644 src/haddock/modules/flexref/cns/generate-water.inp create mode 100644 src/haddock/modules/flexref/cns/generate.inp create mode 100644 src/haddock/modules/flexref/cns/generate_complex-aa.inp create mode 100644 src/haddock/modules/flexref/cns/generate_complex-water.inp create mode 100644 src/haddock/modules/flexref/cns/generate_complex.inp create mode 100644 src/haddock/modules/flexref/cns/generate_dmso.cns create mode 100644 src/haddock/modules/flexref/cns/generate_water.cns create mode 100644 src/haddock/modules/flexref/cns/get_average.inp create mode 100644 src/haddock/modules/flexref/cns/get_random_rotation.cns create mode 100644 src/haddock/modules/flexref/cns/initialize.cns create mode 100644 src/haddock/modules/flexref/cns/make_plane.inp create mode 100644 src/haddock/modules/flexref/cns/make_tensor.inp create mode 100644 src/haddock/modules/flexref/cns/make_tensor_para.inp create mode 100644 src/haddock/modules/flexref/cns/mini_tensor.cns create mode 100644 src/haddock/modules/flexref/cns/mini_tensor_dani.cns create mode 100644 src/haddock/modules/flexref/cns/mini_tensor_para.cns create mode 100644 src/haddock/modules/flexref/cns/numtrees.cns create mode 100644 src/haddock/modules/flexref/cns/patch-bb-cg.cns create mode 100644 src/haddock/modules/flexref/cns/patch-types-cg.cns create mode 100644 src/haddock/modules/flexref/cns/print_aa-dna-energies.inp create mode 100644 src/haddock/modules/flexref/cns/print_coorheader.cns create mode 100644 src/haddock/modules/flexref/cns/print_dani.inp create mode 100644 src/haddock/modules/flexref/cns/print_dih.inp create mode 100644 src/haddock/modules/flexref/cns/print_geom.inp create mode 100644 src/haddock/modules/flexref/cns/print_hbonds.inp create mode 100644 src/haddock/modules/flexref/cns/print_nb.inp create mode 100644 src/haddock/modules/flexref/cns/print_noes.inp create mode 100644 src/haddock/modules/flexref/cns/print_rg.inp create mode 100644 src/haddock/modules/flexref/cns/print_sani.inp create mode 100644 src/haddock/modules/flexref/cns/print_vean.inp create mode 100644 src/haddock/modules/flexref/cns/print_xpcs.inp create mode 100644 src/haddock/modules/flexref/cns/print_xrdc.inp create mode 100644 src/haddock/modules/flexref/cns/prot_break-CA.cns create mode 100644 src/haddock/modules/flexref/cns/prot_break.cns create mode 100644 src/haddock/modules/flexref/cns/protein-ss-restraints-all.def create mode 100644 src/haddock/modules/flexref/cns/protein-ss-restraints-alpha-beta.def create mode 100644 src/haddock/modules/flexref/cns/protein-ss-restraints-alpha.def create mode 100644 src/haddock/modules/flexref/cns/random_rotations.cns create mode 100644 src/haddock/modules/flexref/cns/randomairs.cns create mode 100644 src/haddock/modules/flexref/cns/re_dmso.inp create mode 100644 src/haddock/modules/flexref/cns/re_h2o.inp create mode 100644 src/haddock/modules/flexref/cns/read_data.cns create mode 100644 src/haddock/modules/flexref/cns/read_noes.cns create mode 100644 src/haddock/modules/flexref/cns/read_struc-cg.cns create mode 100644 src/haddock/modules/flexref/cns/read_struc.cns create mode 100644 src/haddock/modules/flexref/cns/read_water1.cns create mode 100644 src/haddock/modules/flexref/cns/rebuild-unknown.cns create mode 100644 src/haddock/modules/flexref/cns/refine.inp create mode 100644 src/haddock/modules/flexref/cns/refine.inp-expand create mode 100644 src/haddock/modules/flexref/cns/rg-restraint.cns create mode 100644 src/haddock/modules/flexref/cns/rmsd-new.inp create mode 100644 src/haddock/modules/flexref/cns/rmsd.inp create mode 100644 src/haddock/modules/flexref/cns/rotate_pdb.cns create mode 100644 src/haddock/modules/flexref/cns/rotation180.cns create mode 100644 src/haddock/modules/flexref/cns/run.cns create mode 100644 src/haddock/modules/flexref/cns/run.cns~ create mode 100644 src/haddock/modules/flexref/cns/sa_ltad_cool1.cns create mode 100644 src/haddock/modules/flexref/cns/sa_ltad_cool2.cns create mode 100644 src/haddock/modules/flexref/cns/sa_ltad_cool3.cns create mode 100644 src/haddock/modules/flexref/cns/sa_ltad_hightemp.cns create mode 100644 src/haddock/modules/flexref/cns/scale_inter.cns create mode 100644 src/haddock/modules/flexref/cns/scale_inter_final.cns create mode 100644 src/haddock/modules/flexref/cns/scale_inter_mini.cns create mode 100644 src/haddock/modules/flexref/cns/scale_inter_only.cns create mode 100644 src/haddock/modules/flexref/cns/scale_intra_only.cns create mode 100644 src/haddock/modules/flexref/cns/separate.cns create mode 100644 src/haddock/modules/flexref/cns/set_noe_scale.cns create mode 100644 src/haddock/modules/flexref/cns/setflags.cns create mode 100644 src/haddock/modules/flexref/cns/surf-restraints.cns create mode 100644 src/haddock/modules/flexref/cns/symmultimer.cns create mode 100644 src/haddock/modules/flexref/cns/torsiontop.cns create mode 100644 src/haddock/modules/flexref/cns/torsiontop_flex.cns create mode 100644 src/haddock/modules/flexref/cns/torsiontop_flex_back.cns create mode 100644 src/haddock/modules/flexref/cns/water_rest.cns create mode 100644 src/haddock/modules/flexref/cns/waterdock_mini.cns create mode 100644 src/haddock/modules/flexref/cns/waterdock_out0.cns create mode 100644 src/haddock/modules/flexref/cns/waterdock_out1.cns create mode 100644 src/haddock/modules/flexref/cns/waterdock_remove-water.cns create mode 100644 src/haddock/modules/flexref/cns/zrestraining.cns diff --git a/src/haddock/modules/flexref/cns/WARNING b/src/haddock/modules/flexref/cns/WARNING new file mode 100644 index 000000000..7049bb974 --- /dev/null +++ b/src/haddock/modules/flexref/cns/WARNING @@ -0,0 +1,2 @@ +TOTAL NUMBER OF DISTANCE RESTRAINTS FOR FLEXIBLE REFINEMENT IS ZERO! +CONTROL YOUR PARAMETER SETTINGS AND RESTRAINT DEFINITIONS diff --git a/src/haddock/modules/flexref/cns/amino-acids-bases-energies.cns b/src/haddock/modules/flexref/cns/amino-acids-bases-energies.cns new file mode 100644 index 000000000..d7b10e9e5 --- /dev/null +++ b/src/haddock/modules/flexref/cns/amino-acids-bases-energies.cns @@ -0,0 +1,95 @@ +! amino-acids-bases-energies.cns +! Calculate a free-energy of protein-nucleic acids interaction based +! on the single amino-acids - bases free energies of Zagrovic NAR2015 +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! +eval ($interactene_water=0.0) +eval ($interactene_methanol=0.0) +eval ($numcontacts=0) +eval($testcutoff=5.0) + +evaluate ($icount = 1) +do (store4 = 0) (all) + +! First find all residues making contacts within the testcutoff +! +eval($nchain1 = 0) +while ($nchain1 < $data.ncomponents) loop nloop1 + evaluate($nchain1 = $nchain1 + 1) + do (store4 = 1) ( byres ( (segid $Toppar.prot_segid_$nchain1) and (not (segid $Toppar.prot_segid_$nchain1 or resn WAT or resn HOH or resn TIP* or resn DMS*) ) around $testcutoff )) +end loop nloop1 + +! initialize the contact energies to 0 +! +eval($nchain1 = 0) +while ($nchain1 < $data.ncomponents) loop nloop1 + evaluate($nchain1 = $nchain1 + 1) + eval($nchain2 = 0) + while ($nchain2 < $data.ncomponents) loop nloop2 + evaluate ($nchain2 = $nchain2 + 1) + if ($nchain1 ne $nchain2) then + for $at1_id in id ( tag and segid $Toppar.prot_segid_$nchain1 ) loop atm1 + show (resn) (id $at1_id) + evaluate ($rsn1 = $result) + for $at2_id in id ( tag and segid $Toppar.prot_segid_$nchain2 ) loop atm2 + show (resn) (id $at2_id) + evaluate ($rsn2 = $result) + evaluate ($dbwatene.$rsn1_$rsn2 = 0.0) + evaluate ($dbwatene.$rsn2_$rsn1 = 0.0) + evaluate ($dbmethene.$rsn1_$rsn2 = 0.0) + evaluate ($dbmethene.$rsn2_$rsn1 = 0.0) + end loop atm2 + end loop atm1 + end if + end loop nloop2 +end loop nloop1 + +! read in the contact energy data +! +inline @RUN:dbene-methanol.dat +inline @RUN:dbene-water.dat + +! new calculate the contact energy for all contacts +! +eval($nchain1 = 0) +while ($nchain1 < $data.ncomponents) loop nloop1 + evaluate($nchain1 = $nchain1 + 1) + eval($nchain2 = $nchain1) + while ($nchain2 < $data.ncomponents) loop nloop2 + evaluate ($nchain2 = $nchain2 + 1) + for $at1_id in id ( tag and segid $Toppar.prot_segid_$nchain1 and attr store4 = 1) loop atm1 + show (resn) (id $at1_id) + evaluate ($rsn1 = $result) + for $at2_id in id ( tag and segid $Toppar.prot_segid_$nchain2 and attr store4 = 1 ) loop atm2 + show (resn) (id $at2_id) + evaluate ($rsn2 = $result) +! +! check for distance cutoff +! + do (store8 = 0) (all) + do (store8 = 1) (byres (id $at1_id) and (byres (id $at2_id)) around $testcutoff) + show sum (store8) (all) + if ($result > 0) then + evaluate ($numcontacts = $numcontacts + 1) + evaluate ($interactene_water = $interactene_water + $dbwatene.$rsn1_$rsn2) + evaluate ($interactene_water = $interactene_water + $dbwatene.$rsn2_$rsn1) + evaluate ($interactene_methanol = $interactene_methanol + $dbmethene.$rsn1_$rsn2) + evaluate ($interactene_methanol = $interactene_methanol + $dbmethene.$rsn2_$rsn1) + end if + + end loop atm2 + end loop atm1 + end loop nloop2 +end loop nloop1 + +!display $numcontacts "contacts identified" +!display "interaction free-energy in water = " $interactene_water +!display "interaction free-energy in methanol = " $interactene_methanol + diff --git a/src/haddock/modules/flexref/cns/auto-his.cns b/src/haddock/modules/flexref/cns/auto-his.cns new file mode 100644 index 000000000..d13fd4003 --- /dev/null +++ b/src/haddock/modules/flexref/cns/auto-his.cns @@ -0,0 +1,141 @@ +! auto-his.cns +! Automatically define the protonation state of histidines +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! +{- turn on electrostatic and proper non-bonded-} +{- not needed since already ok as defined in build missing script -} +!parameter +! nbonds +! repel=0 +! nbxmod=5 atom cdie shift +! cutnb=9.5 ctofnb=8.5 ctonnb=6.5 eps=10.0 e14fac=0.4 inhibit 0.25 +! wmin=0.5 +! tolerance 0.5 +! end +!end + +evaluate ($nhisd = 0) +evaluate ($nhise = 0) + +for $id1 in id ( resn HIS and name CA ) loop hisp + + evaluate ($hisdpatch = false) + evaluate ($hisepatch = false) + evaluate ($hiselec = 9999999) + + igroup interaction (not all) (not all) end + + show (segid) (id $id1) + evaluate ($segid1=$result) + show (resid) (id $id1) + evaluate ($resid1=$result) + + do (refx = x) (all) + do (refy = y) (all) + do (refz = z) (all) + + igroup interaction (segid $segid1 and resid $resid1) (not (segid $segid1 and resid $resid1)) end + minimize powell nstep=10 drop=40.0 nprint=5 end + energy end + evaluate ($hiselec = $elec) + + do (x = refx) (all) + do (y = refy) (all) + do (z = refz) (all) + + !change partial charges of HIS side-chain to minic HISD + + do (charge = 0.00) (segid $segid1 and resid $resid1 and name CB) + do (charge = 0.13) (segid $segid1 and resid $resid1 and name CG) + do (charge = -0.57) (segid $segid1 and resid $resid1 and name ND1) + do (charge = 0.42) (segid $segid1 and resid $resid1 and name HD1) + do (charge = 0.10) (segid $segid1 and resid $resid1 and name CD2) + do (charge = -0.49) (segid $segid1 and resid $resid1 and name NE2) + do (charge = 0.41) (segid $segid1 and resid $resid1 and name CE1) + do (charge = 0.00) (segid $segid1 and resid $resid1 and name HE2) + + minimize powell nstep=10 drop=40.0 nprint=5 end + energy end + if ($elec < $hiselec) then + evaluate ($hiselec = $elec) + evaluate ($hisdpatch = true) + end if + + do (x = refx) (all) + do (y = refy) (all) + do (z = refz) (all) + + !change partial charges of HIS side-chain to minic HISE + + do (charge = 0.00) (segid $segid1 and resid $resid1 and name CB) + do (charge = 0.13) (segid $segid1 and resid $resid1 and name CG) + do (charge = -0.49) (segid $segid1 and resid $resid1 and name ND1) + do (charge = 0.00) (segid $segid1 and resid $resid1 and name HD1) + do (charge = 0.10) (segid $segid1 and resid $resid1 and name CD2) + do (charge = -0.57) (segid $segid1 and resid $resid1 and name NE2) + do (charge = 0.41) (segid $segid1 and resid $resid1 and name CE1) + do (charge = 0.42) (segid $segid1 and resid $resid1 and name HE2) + + minimize powell nstep=10 drop=40.0 nprint=5 end + energy end + if ($elec < $hiselec) then + evaluate ($hiselec = $elec) + evaluate ($hisepatch = true) + evaluate ($hisdpatch = false) + end if + + !change partial charges of HIS side-chain to the initial default + + do (charge = 0.00) (segid $segid1 and resid $resid1 and name CB) + do (charge = 0.33) (segid $segid1 and resid $resid1 and name CG) + do (charge = -0.54) (segid $segid1 and resid $resid1 and name ND1) + do (charge = 0.46) (segid $segid1 and resid $resid1 and name HD1) + do (charge = 0.33) (segid $segid1 and resid $resid1 and name CD2) + do (charge = -0.54) (segid $segid1 and resid $resid1 and name NE2) + do (charge = 0.50) (segid $segid1 and resid $resid1 and name CE1) + do (charge = 0.46) (segid $segid1 and resid $resid1 and name HE2) + + do (x = refx) (all) + do (y = refy) (all) + do (z = refz) (all) + + if ($hisdpatch = true) then + evaluate ($nhisd = $nhisd + 1) + evaluate ($seg1.$nhisd=$segid1) + evaluate ($res1.$nhisd=$resid1) + end if + if ($hisepatch = true) then + evaluate ($nhise = $nhise + 1) + evaluate ($seg2.$nhise=$segid1) + evaluate ($res2.$nhise=$resid1) + end if + +end loop hisp + +evaluate ($counter=1) +while ( $counter <= $nhisd ) loop hisd + buffer message + display Patching histidine $res1.$counter to HISD + end + patch hisd reference=nil=(segid $seg1.$counter and resid $res1.$counter) end + evaluate ($counter=$counter+1) +end loop hisd + +evaluate ($counter=1) +while ( $counter <= $nhise ) loop hise + buffer message + display Patching histidine $res2.$counter to HISE + end + patch hise reference=nil=(segid $seg2.$counter and resid $res2.$counter) end + evaluate ($counter=$counter+1) +end loop hise + +igroup interaction (all) (all) end + diff --git a/src/haddock/modules/flexref/cns/bestener.cns b/src/haddock/modules/flexref/cns/bestener.cns new file mode 100644 index 000000000..181996811 --- /dev/null +++ b/src/haddock/modules/flexref/cns/bestener.cns @@ -0,0 +1,157 @@ +! bestener.cns +! Store best score model from rigid-body dokcing (it0) +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + eval ($kinter = 1.0) + @RUN:scale_inter_mini.cns + + evaluate ($unamb_scale = $Data.unamb_cool3) + evaluate ($ambig_scale = $Data.amb_cool3) + evaluate ($hbond_scale = $Data.hbond_cool3) + + noe + scale dist $unamb_scale + scale ambi $ambig_scale + scale hbon $hbond_scale + scale symm 0.0 + end + + evaluate ($nrdc=1) + while ($nrdc <= $data.numrdc) loop rdc + evaluate ($cln = "rd" + encode($nrdc) ) + if ($Data.flags.sani eq true) then + sani class $cln force $Data.rdc_cool3_$nrdc end + end if + if ($Data.flags.xrdc eq true) then + xrdc class $cln force $Data.rdc_cool3_$nrdc end + end if + if ($Data.flags.vean eq true) then + vean class $cln force $Data.fin_bor_cool3_$nrdc $Data.fin_cen_cool3_$nrdc end + end if + evaluate ($nrdc = $nrdc + 1) + end loop rdc + + evaluate ($ndani=1) + while ($ndani <= $data.numdani) loop dani + evaluate ($cln = "da" + encode($ndani) ) + if ($Data.flags.dani eq true) then + dani class $cln force $Data.dan_cool3_$ndani end + end if + evaluate ($ndani = $ndani + 1) + end loop dani + + evaluate ($npcs=1) + while ($npcs <= $data.numpcs) loop pcs + evaluate ($cln = "pc" + encode($ndani) ) + if ($Data.flags.xpcs eq true) then + xpcs class $cln force $Data.pcs_cool3_$npcs end + end if + evaluate ($npcs = $npcs + 1) + end loop pcs + + evaluate ($ener = 0) + evaluate ($vdw = 0) + evaluate ($elec = 0) + evaluate ($noe = 0) + evaluate ($coll = 0) + evaluate ($eair = 0) + evaluate ($cdih = 0) + evaluate ($vean = 0) + evaluate ($sani = 0) + evaluate ($xrdc = 0) + evaluate ($xpcs = 0) + evaluate ($dani = 0) + evaluate ($esym = 0) + evaluate ($zhar = 0) + evaluate ($bsa = 0) + evaluate ($desolv = 0.0) + evaluate ($lcc = 0.0) + + energy end + evaluate ($eair = $noe) + + if ($Data.flags.sym eq true) then + noe + scale * 0.0 + scale symm $Data.ksym + end + energy end + evaluate ($esym = $noe) + end if + + if ($SaProtocol.rigidtrans eq true) then + inline @RUN:bsa.cns + end if + + ! get the local cross-correlation for cryo-EM data + if ($data.flags.em = true) then +! @RUN:em_calc_lcc.cns(Toppar=$toppar; Data=$data; Saprotocol=$saprotocol; lcc=$lcc;) + @RUN:em_calc_lcc.cns + end if + + evaluate ($etot = $iterations.w_vdw * $vdw) + evaluate ($etot = $etot + $iterations.w_elec * $elec) + evaluate ($etot = $etot + $iterations.w_dist * $eair) + evaluate ($etot = $etot + $iterations.w_rg * $coll) + evaluate ($etot = $etot + $iterations.w_cdih * $cdih) + evaluate ($etot = $etot + $iterations.w_sani * $sani) + evaluate ($etot = $etot + $iterations.w_xrdc * $xrdc) + evaluate ($etot = $etot + $iterations.w_xpcs * $xpcs) + evaluate ($etot = $etot + $iterations.w_dani * $dani) + evaluate ($etot = $etot + $iterations.w_vean * $vean) + evaluate ($etot = $etot + $iterations.w_sym * $esym) + evaluate ($etot = $etot + $iterations.w_zres * $zhar) + evaluate ($etot = $etot + $iterations.w_bsa * $bsa) + evaluate ($etot = $etot + $iterations.w_desolv * $desolv) + evaluate ($etot = $etot + $iterations.w_lcc * $lcc) + + if ($nfirst = 1) then + evaluate ($bestener = $etot) + evaluate ($bestair = $eair) + evaluate ($ncvbest = $npart) + do (refx = x) (all) + do (refy = y) (all) + do (refz = z) (all) + evaluate ($nfirst = 0) + if ($data.waterdock eq true) then + ident (store3) (not all) + ident (store3) (store5) + else + ident (store3) (not all) + end if + else + if ($etot < $bestener) then + evaluate ($bestener = $etot) + evaluate ($bestair = $eair) + evaluate ($ncvbest = $npart) + do (refx = x) (all) + do (refy = y) (all) + do (refz = z) (all) + if ($data.waterdock eq true) then + ident (store3) (not all) + ident (store3) (store5) + end if + end if + end if + + evaluate ($kinter = $SaProtocol.inter_rigid) + @RUN:scale_inter_mini.cns + + evaluate ($unamb_scale = $unamb_scale_store) + evaluate ($ambig_scale = $ambig_scale_store) + evaluate ($hbond_scale = $hbond_scale_store) + evaluate ($symm_scale = $symm_scale_store) + + noe + scale dist $unamb_scale + scale ambi $ambig_scale + scale hbon $hbond_scale + scale symm $symm_scale + end diff --git a/src/haddock/modules/flexref/cns/boxtyp20.pdb b/src/haddock/modules/flexref/cns/boxtyp20.pdb new file mode 100644 index 000000000..ad0b4c1d5 --- /dev/null +++ b/src/haddock/modules/flexref/cns/boxtyp20.pdb @@ -0,0 +1,658 @@ +REMARKS ***** CHARMM water box from Charlie Brooks. ******** +REMARKS * This is a box of 216 3-site water molecules in the experimental +REMARKS * geometry. It was constructed from an equilibrated +REMARKS * configuration of TIP3P (3-site water model of Jorgenson) +REMARKS * waters at 1 atm pressure and a density of 0.0334 molecules/A**-3. +REMARKS * The box edgelength is 18.856 A. The minimum image periodic +REMARKS * boundary energy for this configuration using the TIP3P +REMARKS * potentials is -2150.6833 kcal/mol. +REMARKS +ATOM 1 OH2 WAT 1 2.531 0.596 -2.477 0.000 +ATOM 2 H1 WAT 1 2.620 1.540 -2.609 0.000 +ATOM 3 H2 WAT 1 1.892 0.321 -3.135 0.000 +ATOM 4 OH2 WAT 2 1.464 -0.149 0.942 0.000 +ATOM 5 H1 WAT 2 1.426 -0.795 1.647 0.000 +ATOM 6 H2 WAT 2 1.141 -0.615 0.171 0.000 +ATOM 7 OH2 WAT 3 -6.168 -0.534 2.535 0.000 +ATOM 8 H1 WAT 3 -6.126 -1.160 3.259 0.000 +ATOM 9 H2 WAT 3 -5.465 0.089 2.717 0.000 +ATOM 10 OH2 WAT 4 5.170 2.790 -0.756 0.000 +ATOM 11 H1 WAT 4 4.729 2.070 -0.306 0.000 +ATOM 12 H2 WAT 4 5.157 3.511 -0.126 0.000 +ATOM 13 OH2 WAT 5 -5.244 3.916 1.070 0.000 +ATOM 14 H1 WAT 5 -5.614 3.114 0.701 0.000 +ATOM 15 H2 WAT 5 -4.303 3.747 1.117 0.000 +ATOM 16 OH2 WAT 6 -8.634 -2.424 -3.537 0.000 +ATOM 17 H1 WAT 6 -9.082 -1.578 -3.555 0.000 +ATOM 18 H2 WAT 6 -9.195 -3.004 -4.052 0.000 +ATOM 19 OH2 WAT 7 -7.924 -0.262 -1.411 0.000 +ATOM 20 H1 WAT 7 -7.710 -1.032 -0.884 0.000 +ATOM 21 H2 WAT 7 -7.186 -0.173 -2.014 0.000 +ATOM 22 OH2 WAT 8 2.281 7.895 -0.544 0.000 +ATOM 23 H1 WAT 8 2.901 7.218 -0.817 0.000 +ATOM 24 H2 WAT 8 2.073 7.677 0.364 0.000 +ATOM 25 OH2 WAT 9 -0.147 2.284 1.348 0.000 +ATOM 26 H1 WAT 9 0.157 1.598 0.754 0.000 +ATOM 27 H2 WAT 9 0.575 2.402 1.966 0.000 +ATOM 28 OH2 WAT 10 8.516 -6.115 2.209 0.000 +ATOM 29 H1 WAT 10 8.565 -5.505 2.945 0.000 +ATOM 30 H2 WAT 10 8.942 -5.654 1.486 0.000 +ATOM 31 OH2 WAT 11 2.994 -3.322 1.676 0.000 +ATOM 32 H1 WAT 11 3.137 -4.269 1.696 0.000 +ATOM 33 H2 WAT 11 2.888 -3.115 0.747 0.000 +ATOM 34 OH2 WAT 12 -3.851 -5.221 -1.052 0.000 +ATOM 35 H1 WAT 12 -3.808 -4.361 -1.470 0.000 +ATOM 36 H2 WAT 12 -4.309 -5.773 -1.685 0.000 +ATOM 37 OH2 WAT 13 3.871 -5.090 -2.651 0.000 +ATOM 38 H1 WAT 13 4.517 -5.419 -2.026 0.000 +ATOM 39 H2 WAT 13 4.381 -4.572 -3.274 0.000 +ATOM 40 OH2 WAT 14 -7.231 -2.824 -0.290 0.000 +ATOM 41 H1 WAT 14 -6.577 -3.374 0.142 0.000 +ATOM 42 H2 WAT 14 -7.207 -3.098 -1.206 0.000 +ATOM 43 OH2 WAT 15 -2.075 -1.274 -1.074 0.000 +ATOM 44 H1 WAT 15 -1.459 -1.800 -0.565 0.000 +ATOM 45 H2 WAT 15 -2.661 -1.914 -1.478 0.000 +ATOM 46 OH2 WAT 16 8.908 -4.637 4.445 0.000 +ATOM 47 H1 WAT 16 8.219 -3.979 4.350 0.000 +ATOM 48 H2 WAT 16 8.923 -4.834 5.382 0.000 +ATOM 49 OH2 WAT 17 -5.041 -6.303 3.022 0.000 +ATOM 50 H1 WAT 17 -5.260 -5.773 2.256 0.000 +ATOM 51 H2 WAT 17 -5.709 -6.076 3.670 0.000 +ATOM 52 OH2 WAT 18 2.328 3.197 -3.434 0.000 +ATOM 53 H1 WAT 18 2.032 2.875 -4.285 0.000 +ATOM 54 H2 WAT 18 2.004 4.097 -3.392 0.000 +ATOM 55 OH2 WAT 19 -2.472 1.373 3.310 0.000 +ATOM 56 H1 WAT 19 -3.212 1.971 3.413 0.000 +ATOM 57 H2 WAT 19 -1.758 1.927 2.994 0.000 +ATOM 58 OH2 WAT 20 5.635 -5.799 -0.670 0.000 +ATOM 59 H1 WAT 20 5.420 -6.565 -0.138 0.000 +ATOM 60 H2 WAT 20 6.291 -5.327 -0.157 0.000 +ATOM 61 OH2 WAT 21 -5.447 -4.411 0.975 0.000 +ATOM 62 H1 WAT 21 -4.834 -3.778 1.348 0.000 +ATOM 63 H2 WAT 21 -4.935 -4.883 0.318 0.000 +ATOM 64 OH2 WAT 22 -4.064 3.337 4.097 0.000 +ATOM 65 H1 WAT 22 -4.070 4.216 3.719 0.000 +ATOM 66 H2 WAT 22 -4.918 3.254 4.522 0.000 +ATOM 67 OH2 WAT 23 -7.943 3.008 -5.121 0.000 +ATOM 68 H1 WAT 23 -8.215 3.237 -6.010 0.000 +ATOM 69 H2 WAT 23 -7.898 3.846 -4.661 0.000 +ATOM 70 OH2 WAT 24 5.682 4.630 1.592 0.000 +ATOM 71 H1 WAT 24 4.740 4.688 1.753 0.000 +ATOM 72 H2 WAT 24 5.958 5.536 1.455 0.000 +ATOM 73 OH2 WAT 25 5.982 -7.084 3.009 0.000 +ATOM 74 H1 WAT 25 5.246 -6.473 2.971 0.000 +ATOM 75 H2 WAT 25 6.666 -6.669 2.483 0.000 +ATOM 76 OH2 WAT 26 -1.015 -8.997 0.475 0.000 +ATOM 77 H1 WAT 26 -1.132 -9.946 0.421 0.000 +ATOM 78 H2 WAT 26 -1.870 -8.665 0.748 0.000 +ATOM 79 OH2 WAT 27 3.934 6.411 -1.783 0.000 +ATOM 80 H1 WAT 27 4.359 5.704 -2.268 0.000 +ATOM 81 H2 WAT 27 4.251 7.212 -2.200 0.000 +ATOM 82 OH2 WAT 28 5.093 4.312 -3.274 0.000 +ATOM 83 H1 WAT 28 4.836 3.622 -3.886 0.000 +ATOM 84 H2 WAT 28 5.164 3.869 -2.429 0.000 +ATOM 85 OH2 WAT 29 6.779 2.878 5.203 0.000 +ATOM 86 H1 WAT 29 6.919 2.287 4.464 0.000 +ATOM 87 H2 WAT 29 6.947 3.751 4.847 0.000 +ATOM 88 OH2 WAT 30 1.252 -0.160 -5.025 0.000 +ATOM 89 H1 WAT 30 0.540 0.375 -5.376 0.000 +ATOM 90 H2 WAT 30 1.943 -0.104 -5.685 0.000 +ATOM 91 OH2 WAT 31 1.306 -1.702 -7.986 0.000 +ATOM 92 H1 WAT 31 2.007 -1.680 -7.335 0.000 +ATOM 93 H2 WAT 31 1.608 -2.330 -8.642 0.000 +ATOM 94 OH2 WAT 32 8.621 -0.782 3.269 0.000 +ATOM 95 H1 WAT 32 7.969 -0.087 3.358 0.000 +ATOM 96 H2 WAT 32 9.086 -0.572 2.459 0.000 +ATOM 97 OH2 WAT 33 4.658 0.050 -4.073 0.000 +ATOM 98 H1 WAT 33 3.926 0.278 -3.500 0.000 +ATOM 99 H2 WAT 33 5.105 -0.664 -3.618 0.000 +ATOM 100 OH2 WAT 34 4.555 -1.776 4.995 0.000 +ATOM 101 H1 WAT 34 4.635 -1.013 5.567 0.000 +ATOM 102 H2 WAT 34 3.954 -1.497 4.304 0.000 +ATOM 103 OH2 WAT 35 -3.697 0.680 -2.190 0.000 +ATOM 104 H1 WAT 35 -4.027 0.310 -3.009 0.000 +ATOM 105 H2 WAT 35 -3.109 0.010 -1.844 0.000 +ATOM 106 OH2 WAT 36 -2.330 4.108 0.491 0.000 +ATOM 107 H1 WAT 36 -2.425 3.530 -0.266 0.000 +ATOM 108 H2 WAT 36 -1.601 3.737 0.987 0.000 +ATOM 109 OH2 WAT 37 -3.330 -0.551 1.443 0.000 +ATOM 110 H1 WAT 37 -2.765 -0.430 0.680 0.000 +ATOM 111 H2 WAT 37 -3.011 0.086 2.082 0.000 +ATOM 112 OH2 WAT 38 2.979 4.952 2.177 0.000 +ATOM 113 H1 WAT 38 2.738 5.614 2.825 0.000 +ATOM 114 H2 WAT 38 2.781 4.118 2.602 0.000 +ATOM 115 OH2 WAT 39 -2.450 3.848 6.160 0.000 +ATOM 116 H1 WAT 39 -2.762 4.630 6.616 0.000 +ATOM 117 H2 WAT 39 -3.100 3.695 5.474 0.000 +ATOM 118 OH2 WAT 40 3.529 -0.788 -6.388 0.000 +ATOM 119 H1 WAT 40 4.108 -0.638 -5.641 0.000 +ATOM 120 H2 WAT 40 3.943 -0.317 -7.111 0.000 +ATOM 121 OH2 WAT 41 -5.530 0.046 5.389 0.000 +ATOM 122 H1 WAT 41 -5.460 0.697 6.087 0.000 +ATOM 123 H2 WAT 41 -6.421 0.149 5.054 0.000 +ATOM 124 OH2 WAT 42 1.255 5.949 -2.953 0.000 +ATOM 125 H1 WAT 42 1.729 6.244 -2.175 0.000 +ATOM 126 H2 WAT 42 0.692 6.687 -3.186 0.000 +ATOM 127 OH2 WAT 43 -4.211 5.920 6.924 0.000 +ATOM 128 H1 WAT 43 -4.203 5.784 5.976 0.000 +ATOM 129 H2 WAT 43 -5.127 5.802 7.176 0.000 +ATOM 130 OH2 WAT 44 7.227 -9.038 -6.575 0.000 +ATOM 131 H1 WAT 44 6.328 -8.899 -6.280 0.000 +ATOM 132 H2 WAT 44 7.479 -8.207 -6.977 0.000 +ATOM 133 OH2 WAT 45 -4.707 -0.250 -4.601 0.000 +ATOM 134 H1 WAT 45 -4.999 0.518 -5.092 0.000 +ATOM 135 H2 WAT 45 -5.381 -0.910 -4.764 0.000 +ATOM 136 OH2 WAT 46 8.417 5.328 -8.198 0.000 +ATOM 137 H1 WAT 46 8.490 6.267 -8.028 0.000 +ATOM 138 H2 WAT 46 9.322 5.023 -8.255 0.000 +ATOM 139 OH2 WAT 47 -8.614 2.113 4.214 0.000 +ATOM 140 H1 WAT 47 -9.115 2.085 3.399 0.000 +ATOM 141 H2 WAT 47 -8.608 1.207 4.524 0.000 +ATOM 142 OH2 WAT 48 -8.863 4.893 1.098 0.000 +ATOM 143 H1 WAT 48 -7.917 4.749 1.079 0.000 +ATOM 144 H2 WAT 48 -8.976 5.677 1.635 0.000 +ATOM 145 OH2 WAT 49 9.334 5.559 6.780 0.000 +ATOM 146 H1 WAT 49 9.285 4.604 6.743 0.000 +ATOM 147 H2 WAT 49 8.508 5.827 7.182 0.000 +ATOM 148 OH2 WAT 50 0.313 5.133 5.656 0.000 +ATOM 149 H1 WAT 50 0.400 5.959 6.131 0.000 +ATOM 150 H2 WAT 50 -0.551 4.803 5.905 0.000 +ATOM 151 OH2 WAT 51 0.727 8.905 -4.538 0.000 +ATOM 152 H1 WAT 51 0.652 8.784 -5.484 0.000 +ATOM 153 H2 WAT 51 0.760 9.855 -4.419 0.000 +ATOM 154 OH2 WAT 52 -5.619 7.694 -2.757 0.000 +ATOM 155 H1 WAT 52 -5.467 7.346 -1.878 0.000 +ATOM 156 H2 WAT 52 -6.470 7.338 -3.012 0.000 +ATOM 157 OH2 WAT 53 3.829 8.059 -7.535 0.000 +ATOM 158 H1 WAT 53 4.204 7.315 -8.006 0.000 +ATOM 159 H2 WAT 53 3.833 7.789 -6.617 0.000 +ATOM 160 OH2 WAT 54 3.498 7.985 -4.786 0.000 +ATOM 161 H1 WAT 54 2.563 8.085 -4.607 0.000 +ATOM 162 H2 WAT 54 3.778 7.276 -4.208 0.000 +ATOM 163 OH2 WAT 55 6.486 -2.948 7.260 0.000 +ATOM 164 H1 WAT 55 6.079 -2.467 6.540 0.000 +ATOM 165 H2 WAT 55 6.527 -3.853 6.953 0.000 +ATOM 166 OH2 WAT 56 -6.365 3.436 5.257 0.000 +ATOM 167 H1 WAT 56 -6.148 3.075 6.117 0.000 +ATOM 168 H2 WAT 56 -7.220 3.062 5.047 0.000 +ATOM 169 OH2 WAT 57 -3.746 -8.094 1.253 0.000 +ATOM 170 H1 WAT 57 -4.607 -8.181 0.845 0.000 +ATOM 171 H2 WAT 57 -3.768 -7.238 1.680 0.000 +ATOM 172 OH2 WAT 58 0.917 -8.372 4.627 0.000 +ATOM 173 H1 WAT 58 1.337 -8.787 5.380 0.000 +ATOM 174 H2 WAT 58 -0.016 -8.550 4.744 0.000 +ATOM 175 OH2 WAT 59 4.243 -4.616 5.481 0.000 +ATOM 176 H1 WAT 59 3.729 -4.742 6.278 0.000 +ATOM 177 H2 WAT 59 4.088 -3.704 5.236 0.000 +ATOM 178 OH2 WAT 60 5.006 0.245 -8.758 0.000 +ATOM 179 H1 WAT 60 5.048 0.022 -9.688 0.000 +ATOM 180 H2 WAT 60 5.855 0.643 -8.568 0.000 +ATOM 181 OH2 WAT 61 0.579 -5.879 -8.088 0.000 +ATOM 182 H1 WAT 61 0.325 -5.860 -7.165 0.000 +ATOM 183 H2 WAT 61 0.322 -6.751 -8.389 0.000 +ATOM 184 OH2 WAT 62 -3.655 -3.128 2.348 0.000 +ATOM 185 H1 WAT 62 -4.297 -3.169 3.057 0.000 +ATOM 186 H2 WAT 62 -3.618 -2.202 2.110 0.000 +ATOM 187 OH2 WAT 63 -3.658 -2.907 -2.740 0.000 +ATOM 188 H1 WAT 63 -4.551 -3.248 -2.799 0.000 +ATOM 189 H2 WAT 63 -3.207 -3.284 -3.496 0.000 +ATOM 190 OH2 WAT 64 1.878 -2.491 -3.923 0.000 +ATOM 191 H1 WAT 64 1.469 -1.676 -4.215 0.000 +ATOM 192 H2 WAT 64 2.598 -2.631 -4.538 0.000 +ATOM 193 OH2 WAT 65 0.980 -2.316 7.565 0.000 +ATOM 194 H1 WAT 65 0.417 -3.020 7.885 0.000 +ATOM 195 H2 WAT 65 1.806 -2.436 8.032 0.000 +ATOM 196 OH2 WAT 66 2.882 -3.045 -1.109 0.000 +ATOM 197 H1 WAT 66 2.687 -2.440 -1.824 0.000 +ATOM 198 H2 WAT 66 3.064 -3.879 -1.544 0.000 +ATOM 199 OH2 WAT 67 -5.905 -2.808 4.215 0.000 +ATOM 200 H1 WAT 67 -5.943 -2.408 5.083 0.000 +ATOM 201 H2 WAT 67 -6.396 -3.625 4.305 0.000 +ATOM 202 OH2 WAT 68 -2.539 -5.434 -8.987 0.000 +ATOM 203 H1 WAT 68 -2.970 -5.879 -8.257 0.000 +ATOM 204 H2 WAT 68 -3.257 -5.062 -9.499 0.000 +ATOM 205 OH2 WAT 69 -9.297 -5.692 -1.935 0.000 +ATOM 206 H1 WAT 69 -8.666 -5.721 -1.215 0.000 +ATOM 207 H2 WAT 69 -8.847 -6.117 -2.665 0.000 +ATOM 208 OH2 WAT 70 -8.022 -4.946 -6.511 0.000 +ATOM 209 H1 WAT 70 -7.548 -4.355 -7.096 0.000 +ATOM 210 H2 WAT 70 -8.740 -4.415 -6.164 0.000 +ATOM 211 OH2 WAT 71 2.146 -1.407 3.562 0.000 +ATOM 212 H1 WAT 71 2.470 -2.038 2.919 0.000 +ATOM 213 H2 WAT 71 1.706 -1.942 4.223 0.000 +ATOM 214 OH2 WAT 72 -1.076 -5.480 -1.654 0.000 +ATOM 215 H1 WAT 72 -1.987 -5.423 -1.365 0.000 +ATOM 216 H2 WAT 72 -0.571 -5.540 -0.843 0.000 +ATOM 217 OH2 WAT 73 -6.248 -3.851 -2.827 0.000 +ATOM 218 H1 WAT 73 -7.137 -3.751 -3.167 0.000 +ATOM 219 H2 WAT 73 -5.952 -4.693 -3.173 0.000 +ATOM 220 OH2 WAT 74 -2.595 -3.851 -5.171 0.000 +ATOM 221 H1 WAT 74 -1.663 -3.722 -4.993 0.000 +ATOM 222 H2 WAT 74 -2.810 -3.181 -5.820 0.000 +ATOM 223 OH2 WAT 75 3.329 -6.245 1.610 0.000 +ATOM 224 H1 WAT 75 2.652 -6.114 2.274 0.000 +ATOM 225 H2 WAT 75 2.843 -6.400 0.800 0.000 +ATOM 226 OH2 WAT 76 -3.921 -2.656 -7.604 0.000 +ATOM 227 H1 WAT 76 -4.463 -3.036 -8.295 0.000 +ATOM 228 H2 WAT 76 -3.087 -2.462 -8.033 0.000 +ATOM 229 OH2 WAT 77 6.616 9.427 7.887 0.000 +ATOM 230 H1 WAT 77 6.816 9.851 7.052 0.000 +ATOM 231 H2 WAT 77 7.272 9.770 8.494 0.000 +ATOM 232 OH2 WAT 78 -5.786 1.901 7.495 0.000 +ATOM 233 H1 WAT 78 -5.053 2.155 8.056 0.000 +ATOM 234 H2 WAT 78 -6.566 2.105 8.010 0.000 +ATOM 235 OH2 WAT 79 0.244 -2.692 0.233 0.000 +ATOM 236 H1 WAT 79 0.808 -3.239 -0.314 0.000 +ATOM 237 H2 WAT 79 0.096 -3.214 1.022 0.000 +ATOM 238 OH2 WAT 80 -4.754 -6.556 -3.349 0.000 +ATOM 239 H1 WAT 80 -5.071 -7.458 -3.384 0.000 +ATOM 240 H2 WAT 80 -3.973 -6.554 -3.901 0.000 +ATOM 241 OH2 WAT 81 -1.130 -4.304 2.647 0.000 +ATOM 242 H1 WAT 81 -1.965 -3.850 2.757 0.000 +ATOM 243 H2 WAT 81 -0.606 -4.028 3.399 0.000 +ATOM 244 OH2 WAT 82 -0.586 1.909 -5.668 0.000 +ATOM 245 H1 WAT 82 -1.330 1.402 -5.991 0.000 +ATOM 246 H2 WAT 82 -0.720 1.958 -4.722 0.000 +ATOM 247 OH2 WAT 83 6.564 1.042 3.118 0.000 +ATOM 248 H1 WAT 83 7.206 1.499 2.575 0.000 +ATOM 249 H2 WAT 83 5.734 1.155 2.656 0.000 +ATOM 250 OH2 WAT 84 3.312 -5.277 -7.469 0.000 +ATOM 251 H1 WAT 84 2.374 -5.165 -7.620 0.000 +ATOM 252 H2 WAT 84 3.609 -4.420 -7.163 0.000 +ATOM 253 OH2 WAT 85 0.934 2.093 5.569 0.000 +ATOM 254 H1 WAT 85 0.588 1.712 6.375 0.000 +ATOM 255 H2 WAT 85 0.734 3.027 5.640 0.000 +ATOM 256 OH2 WAT 86 4.030 -3.410 -5.808 0.000 +ATOM 257 H1 WAT 86 4.922 -3.547 -5.489 0.000 +ATOM 258 H2 WAT 86 4.087 -2.619 -6.345 0.000 +ATOM 259 OH2 WAT 87 -5.461 1.204 0.101 0.000 +ATOM 260 H1 WAT 87 -4.716 1.202 -0.500 0.000 +ATOM 261 H2 WAT 87 -5.383 0.380 0.583 0.000 +ATOM 262 OH2 WAT 88 1.540 3.368 -6.643 0.000 +ATOM 263 H1 WAT 88 1.245 4.194 -6.261 0.000 +ATOM 264 H2 WAT 88 0.837 2.748 -6.447 0.000 +ATOM 265 OH2 WAT 89 -8.453 -0.335 5.416 0.000 +ATOM 266 H1 WAT 89 -8.230 -0.753 6.248 0.000 +ATOM 267 H2 WAT 89 -9.055 -0.948 4.994 0.000 +ATOM 268 OH2 WAT 90 -1.436 -0.818 7.629 0.000 +ATOM 269 H1 WAT 90 -1.732 -0.984 6.734 0.000 +ATOM 270 H2 WAT 90 -0.505 -1.038 7.619 0.000 +ATOM 271 OH2 WAT 91 3.184 4.555 5.519 0.000 +ATOM 272 H1 WAT 91 2.283 4.738 5.251 0.000 +ATOM 273 H2 WAT 91 3.218 4.814 6.440 0.000 +ATOM 274 OH2 WAT 92 8.915 -3.200 -6.114 0.000 +ATOM 275 H1 WAT 92 8.361 -3.596 -6.786 0.000 +ATOM 276 H2 WAT 92 9.016 -2.290 -6.391 0.000 +ATOM 277 OH2 WAT 93 8.879 2.600 6.723 0.000 +ATOM 278 H1 WAT 93 8.027 2.838 6.356 0.000 +ATOM 279 H2 WAT 93 9.469 2.583 5.970 0.000 +ATOM 280 OH2 WAT 94 7.211 5.586 -5.649 0.000 +ATOM 281 H1 WAT 94 6.838 4.760 -5.339 0.000 +ATOM 282 H2 WAT 94 7.488 5.403 -6.546 0.000 +ATOM 283 OH2 WAT 95 4.371 0.394 1.373 0.000 +ATOM 284 H1 WAT 95 3.443 0.162 1.346 0.000 +ATOM 285 H2 WAT 95 4.822 -0.383 1.043 0.000 +ATOM 286 OH2 WAT 96 -3.086 4.722 -2.494 0.000 +ATOM 287 H1 WAT 96 -2.559 5.495 -2.695 0.000 +ATOM 288 H2 WAT 96 -3.966 4.947 -2.796 0.000 +ATOM 289 OH2 WAT 97 -7.331 -0.416 -7.907 0.000 +ATOM 290 H1 WAT 97 -6.715 0.211 -7.528 0.000 +ATOM 291 H2 WAT 97 -8.193 -0.100 -7.636 0.000 +ATOM 292 OH2 WAT 98 -1.659 2.385 -2.918 0.000 +ATOM 293 H1 WAT 98 -1.900 3.310 -2.876 0.000 +ATOM 294 H2 WAT 98 -2.399 1.926 -2.522 0.000 +ATOM 295 OH2 WAT 99 -1.144 6.534 3.397 0.000 +ATOM 296 H1 WAT 99 -0.781 7.389 3.164 0.000 +ATOM 297 H2 WAT 99 -0.612 6.242 4.138 0.000 +ATOM 298 OH2 WAT 100 -2.975 7.407 -3.373 0.000 +ATOM 299 H1 WAT 100 -3.925 7.512 -3.321 0.000 +ATOM 300 H2 WAT 100 -2.624 8.227 -3.028 0.000 +ATOM 301 OH2 WAT 101 2.400 2.633 3.098 0.000 +ATOM 302 H1 WAT 101 1.974 2.406 3.924 0.000 +ATOM 303 H2 WAT 101 2.981 1.895 2.915 0.000 +ATOM 304 OH2 WAT 102 4.603 3.562 -7.828 0.000 +ATOM 305 H1 WAT 102 4.956 3.182 -7.024 0.000 +ATOM 306 H2 WAT 102 3.654 3.469 -7.742 0.000 +ATOM 307 OH2 WAT 103 5.059 7.185 5.567 0.000 +ATOM 308 H1 WAT 103 4.457 6.630 5.072 0.000 +ATOM 309 H2 WAT 103 5.340 7.852 4.941 0.000 +ATOM 310 OH2 WAT 104 9.107 8.042 -7.627 0.000 +ATOM 311 H1 WAT 104 9.850 8.628 -7.767 0.000 +ATOM 312 H2 WAT 104 8.412 8.610 -7.294 0.000 +ATOM 313 OH2 WAT 105 -6.819 -5.582 4.974 0.000 +ATOM 314 H1 WAT 105 -7.712 -5.243 4.907 0.000 +ATOM 315 H2 WAT 105 -6.918 -6.437 5.392 0.000 +ATOM 316 OH2 WAT 106 5.469 2.235 -5.602 0.000 +ATOM 317 H1 WAT 106 5.192 1.507 -5.046 0.000 +ATOM 318 H2 WAT 106 6.396 2.354 -5.396 0.000 +ATOM 319 OH2 WAT 107 -7.168 6.223 3.409 0.000 +ATOM 320 H1 WAT 107 -6.951 5.291 3.378 0.000 +ATOM 321 H2 WAT 107 -6.921 6.497 4.293 0.000 +ATOM 322 OH2 WAT 108 -1.306 4.674 -9.381 0.000 +ATOM 323 H1 WAT 108 -1.067 3.926 -9.929 0.000 +ATOM 324 H2 WAT 108 -1.575 4.286 -8.549 0.000 +ATOM 325 OH2 WAT 109 -2.369 4.244 -6.925 0.000 +ATOM 326 H1 WAT 109 -2.222 3.724 -6.135 0.000 +ATOM 327 H2 WAT 109 -2.372 5.151 -6.619 0.000 +ATOM 328 OH2 WAT 110 -5.916 1.497 -6.415 0.000 +ATOM 329 H1 WAT 110 -6.602 1.849 -5.848 0.000 +ATOM 330 H2 WAT 110 -5.393 2.260 -6.661 0.000 +ATOM 331 OH2 WAT 111 1.916 -5.841 3.864 0.000 +ATOM 332 H1 WAT 111 2.614 -5.767 4.514 0.000 +ATOM 333 H2 WAT 111 1.535 -6.705 4.019 0.000 +ATOM 334 OH2 WAT 112 2.700 -6.189 -5.039 0.000 +ATOM 335 H1 WAT 112 2.920 -5.717 -5.842 0.000 +ATOM 336 H2 WAT 112 3.258 -5.794 -4.368 0.000 +ATOM 337 OH2 WAT 113 0.369 5.942 -6.176 0.000 +ATOM 338 H1 WAT 113 -0.448 6.439 -6.123 0.000 +ATOM 339 H2 WAT 113 0.898 6.417 -6.816 0.000 +ATOM 340 OH2 WAT 114 -0.100 -4.461 -4.204 0.000 +ATOM 341 H1 WAT 114 0.712 -3.957 -4.158 0.000 +ATOM 342 H2 WAT 114 -0.345 -4.606 -3.290 0.000 +ATOM 343 OH2 WAT 115 0.436 -3.475 4.981 0.000 +ATOM 344 H1 WAT 115 0.555 -2.901 5.738 0.000 +ATOM 345 H2 WAT 115 1.091 -4.163 5.096 0.000 +ATOM 346 OH2 WAT 116 0.784 -7.380 -3.266 0.000 +ATOM 347 H1 WAT 116 0.437 -6.762 -2.621 0.000 +ATOM 348 H2 WAT 116 1.442 -6.879 -3.747 0.000 +ATOM 349 OH2 WAT 117 -2.293 6.985 -6.194 0.000 +ATOM 350 H1 WAT 117 -2.132 7.785 -6.695 0.000 +ATOM 351 H2 WAT 117 -2.490 7.292 -5.309 0.000 +ATOM 352 OH2 WAT 118 -3.559 -6.317 -6.578 0.000 +ATOM 353 H1 WAT 118 -3.642 -5.428 -6.232 0.000 +ATOM 354 H2 WAT 118 -2.669 -6.582 -6.347 0.000 +ATOM 355 OH2 WAT 119 6.640 -5.568 5.816 0.000 +ATOM 356 H1 WAT 119 5.724 -5.305 5.728 0.000 +ATOM 357 H2 WAT 119 6.976 -5.571 4.919 0.000 +ATOM 358 OH2 WAT 120 5.242 -1.817 -0.088 0.000 +ATOM 359 H1 WAT 120 4.445 -2.232 -0.417 0.000 +ATOM 360 H2 WAT 120 5.687 -2.508 0.403 0.000 +ATOM 361 OH2 WAT 121 -5.300 4.111 -7.518 0.000 +ATOM 362 H1 WAT 121 -4.708 4.810 -7.242 0.000 +ATOM 363 H2 WAT 121 -4.841 3.678 -8.237 0.000 +ATOM 364 OH2 WAT 122 -6.984 -3.225 -8.402 0.000 +ATOM 365 H1 WAT 122 -7.029 -2.286 -8.223 0.000 +ATOM 366 H2 WAT 122 -7.872 -3.461 -8.672 0.000 +ATOM 367 OH2 WAT 123 6.329 7.439 1.534 0.000 +ATOM 368 H1 WAT 123 6.173 8.117 0.877 0.000 +ATOM 369 H2 WAT 123 7.261 7.511 1.737 0.000 +ATOM 370 OH2 WAT 124 -6.176 -8.443 0.271 0.000 +ATOM 371 H1 WAT 124 -6.405 -8.384 -0.656 0.000 +ATOM 372 H2 WAT 124 -6.619 -9.235 0.578 0.000 +ATOM 373 OH2 WAT 125 -7.246 5.497 -3.568 0.000 +ATOM 374 H1 WAT 125 -8.078 5.970 -3.541 0.000 +ATOM 375 H2 WAT 125 -6.700 6.007 -4.167 0.000 +ATOM 376 OH2 WAT 126 -7.957 8.110 7.762 0.000 +ATOM 377 H1 WAT 126 -7.417 7.893 8.521 0.000 +ATOM 378 H2 WAT 126 -8.438 7.304 7.572 0.000 +ATOM 379 OH2 WAT 127 -3.360 7.029 9.382 0.000 +ATOM 380 H1 WAT 127 -2.592 6.570 9.723 0.000 +ATOM 381 H2 WAT 127 -3.381 6.803 8.452 0.000 +ATOM 382 OH2 WAT 128 0.732 6.537 -9.243 0.000 +ATOM 383 H1 WAT 128 0.088 5.906 -8.921 0.000 +ATOM 384 H2 WAT 128 1.494 6.006 -9.475 0.000 +ATOM 385 OH2 WAT 129 3.217 5.409 8.111 0.000 +ATOM 386 H1 WAT 129 2.866 4.553 8.354 0.000 +ATOM 387 H2 WAT 129 3.943 5.552 8.718 0.000 +ATOM 388 OH2 WAT 130 5.336 6.354 -9.009 0.000 +ATOM 389 H1 WAT 130 5.619 5.560 -8.556 0.000 +ATOM 390 H2 WAT 130 6.076 6.587 -9.570 0.000 +ATOM 391 OH2 WAT 131 -8.050 1.920 8.716 0.000 +ATOM 392 H1 WAT 131 -7.906 1.018 8.430 0.000 +ATOM 393 H2 WAT 131 -8.823 2.206 8.228 0.000 +ATOM 394 OH2 WAT 132 -3.709 2.264 -9.152 0.000 +ATOM 395 H1 WAT 132 -3.645 1.470 -8.621 0.000 +ATOM 396 H2 WAT 132 -3.056 2.145 -9.841 0.000 +ATOM 397 OH2 WAT 133 -1.395 1.890 8.149 0.000 +ATOM 398 H1 WAT 133 -1.723 2.161 7.291 0.000 +ATOM 399 H2 WAT 133 -1.243 0.949 8.061 0.000 +ATOM 400 OH2 WAT 134 1.643 3.311 -9.416 0.000 +ATOM 401 H1 WAT 134 1.375 3.491 -8.515 0.000 +ATOM 402 H2 WAT 134 1.437 2.385 -9.547 0.000 +ATOM 403 OH2 WAT 135 4.340 1.806 5.532 0.000 +ATOM 404 H1 WAT 135 5.085 2.394 5.412 0.000 +ATOM 405 H2 WAT 135 3.583 2.388 5.595 0.000 +ATOM 406 OH2 WAT 136 -7.218 -0.880 8.136 0.000 +ATOM 407 H1 WAT 136 -6.810 -1.737 8.015 0.000 +ATOM 408 H2 WAT 136 -7.478 -0.865 9.057 0.000 +ATOM 409 OH2 WAT 137 -2.560 0.236 -6.846 0.000 +ATOM 410 H1 WAT 137 -3.019 -0.248 -6.160 0.000 +ATOM 411 H2 WAT 137 -2.305 -0.432 -7.482 0.000 +ATOM 412 OH2 WAT 138 -3.271 -1.871 5.510 0.000 +ATOM 413 H1 WAT 138 -3.889 -1.196 5.791 0.000 +ATOM 414 H2 WAT 138 -2.927 -1.550 4.677 0.000 +ATOM 415 OH2 WAT 139 -1.489 -1.521 -8.583 0.000 +ATOM 416 H1 WAT 139 -1.669 -1.675 -9.511 0.000 +ATOM 417 H2 WAT 139 -0.538 -1.413 -8.539 0.000 +ATOM 418 OH2 WAT 140 1.749 0.600 8.788 0.000 +ATOM 419 H1 WAT 140 2.702 0.684 8.760 0.000 +ATOM 420 H2 WAT 140 1.589 -0.111 9.407 0.000 +ATOM 421 OH2 WAT 141 7.901 0.834 -9.138 0.000 +ATOM 422 H1 WAT 141 7.628 0.409 -9.951 0.000 +ATOM 423 H2 WAT 141 7.941 1.765 -9.355 0.000 +ATOM 424 OH2 WAT 142 -2.931 -4.516 6.593 0.000 +ATOM 425 H1 WAT 142 -2.781 -5.245 5.990 0.000 +ATOM 426 H2 WAT 142 -2.929 -3.739 6.034 0.000 +ATOM 427 OH2 WAT 143 -2.519 -6.146 4.085 0.000 +ATOM 428 H1 WAT 143 -1.983 -5.695 3.433 0.000 +ATOM 429 H2 WAT 143 -3.371 -6.254 3.663 0.000 +ATOM 430 OH2 WAT 144 -0.937 -0.707 4.325 0.000 +ATOM 431 H1 WAT 144 -0.186 -0.863 3.752 0.000 +ATOM 432 H2 WAT 144 -1.276 0.145 4.049 0.000 +ATOM 433 OH2 WAT 145 3.479 -2.892 9.353 0.000 +ATOM 434 H1 WAT 145 3.671 -3.823 9.242 0.000 +ATOM 435 H2 WAT 145 4.336 -2.467 9.343 0.000 +ATOM 436 OH2 WAT 146 4.795 -0.103 7.431 0.000 +ATOM 437 H1 WAT 146 4.514 0.606 6.853 0.000 +ATOM 438 H2 WAT 146 5.738 -0.176 7.280 0.000 +ATOM 439 OH2 WAT 147 -4.453 -3.318 8.504 0.000 +ATOM 440 H1 WAT 147 -5.220 -3.850 8.294 0.000 +ATOM 441 H2 WAT 147 -3.774 -3.628 7.905 0.000 +ATOM 442 OH2 WAT 148 -1.713 -8.690 4.517 0.000 +ATOM 443 H1 WAT 148 -1.811 -7.743 4.411 0.000 +ATOM 444 H2 WAT 148 -2.456 -9.062 4.041 0.000 +ATOM 445 OH2 WAT 149 -0.449 -4.368 8.080 0.000 +ATOM 446 H1 WAT 149 -0.685 -4.588 8.982 0.000 +ATOM 447 H2 WAT 149 -1.232 -4.575 7.571 0.000 +ATOM 448 OH2 WAT 150 2.267 -5.241 7.156 0.000 +ATOM 449 H1 WAT 150 1.319 -5.209 7.288 0.000 +ATOM 450 H2 WAT 150 2.579 -5.866 7.810 0.000 +ATOM 451 OH2 WAT 151 3.901 -6.607 9.161 0.000 +ATOM 452 H1 WAT 151 3.804 -7.559 9.155 0.000 +ATOM 453 H2 WAT 151 3.579 -6.338 10.022 0.000 +ATOM 454 OH2 WAT 152 -6.272 -5.397 8.209 0.000 +ATOM 455 H1 WAT 152 -6.061 -6.104 7.598 0.000 +ATOM 456 H2 WAT 152 -6.384 -5.835 9.053 0.000 +ATOM 457 OH2 WAT 153 -1.491 -9.396 7.188 0.000 +ATOM 458 H1 WAT 153 -0.779 -10.036 7.174 0.000 +ATOM 459 H2 WAT 153 -1.592 -9.129 6.274 0.000 +ATOM 460 OH2 WAT 154 -1.138 -7.713 9.242 0.000 +ATOM 461 H1 WAT 154 -1.269 -8.189 8.421 0.000 +ATOM 462 H2 WAT 154 -1.737 -6.969 9.186 0.000 +ATOM 463 OH2 WAT 155 -1.591 9.170 -7.582 0.000 +ATOM 464 H1 WAT 155 -0.658 9.328 -7.438 0.000 +ATOM 465 H2 WAT 155 -1.855 9.845 -8.207 0.000 +ATOM 466 OH2 WAT 156 -8.023 3.806 -8.099 0.000 +ATOM 467 H1 WAT 156 -7.109 3.885 -7.826 0.000 +ATOM 468 H2 WAT 156 -8.016 3.119 -8.766 0.000 +ATOM 469 OH2 WAT 157 -9.374 9.199 -3.022 0.000 +ATOM 470 H1 WAT 157 -10.021 8.737 -3.555 0.000 +ATOM 471 H2 WAT 157 -9.019 8.527 -2.439 0.000 +ATOM 472 OH2 WAT 158 -8.504 7.280 -1.217 0.000 +ATOM 473 H1 WAT 158 -8.838 6.399 -1.045 0.000 +ATOM 474 H2 WAT 158 -8.282 7.625 -0.353 0.000 +ATOM 475 OH2 WAT 159 9.045 8.089 1.763 0.000 +ATOM 476 H1 WAT 159 9.023 8.274 2.702 0.000 +ATOM 477 H2 WAT 159 9.735 8.658 1.422 0.000 +ATOM 478 OH2 WAT 160 8.608 7.656 4.685 0.000 +ATOM 479 H1 WAT 160 8.121 6.921 4.314 0.000 +ATOM 480 H2 WAT 160 9.157 7.263 5.363 0.000 +ATOM 481 OH2 WAT 161 7.059 3.446 9.323 0.000 +ATOM 482 H1 WAT 161 6.193 3.341 9.717 0.000 +ATOM 483 H2 WAT 161 7.435 4.205 9.770 0.000 +ATOM 484 OH2 WAT 162 8.360 1.703 -5.163 0.000 +ATOM 485 H1 WAT 162 9.210 2.124 -5.035 0.000 +ATOM 486 H2 WAT 162 8.365 0.963 -4.555 0.000 +ATOM 487 OH2 WAT 163 8.754 -0.244 -3.339 0.000 +ATOM 488 H1 WAT 163 8.028 -0.723 -2.941 0.000 +ATOM 489 H2 WAT 163 9.335 -0.038 -2.607 0.000 +ATOM 490 OH2 WAT 164 8.513 2.541 1.609 0.000 +ATOM 491 H1 WAT 164 9.347 2.163 1.328 0.000 +ATOM 492 H2 WAT 164 8.625 3.484 1.490 0.000 +ATOM 493 OH2 WAT 165 7.000 5.419 3.916 0.000 +ATOM 494 H1 WAT 165 6.352 5.744 4.541 0.000 +ATOM 495 H2 WAT 165 6.482 4.979 3.241 0.000 +ATOM 496 OH2 WAT 166 9.022 -0.343 -6.948 0.000 +ATOM 497 H1 WAT 166 8.501 0.014 -7.667 0.000 +ATOM 498 H2 WAT 166 8.989 0.332 -6.270 0.000 +ATOM 499 OH2 WAT 167 7.371 -3.103 -8.397 0.000 +ATOM 500 H1 WAT 167 7.468 -2.436 -9.077 0.000 +ATOM 501 H2 WAT 167 7.231 -3.919 -8.879 0.000 +ATOM 502 OH2 WAT 168 6.541 -1.723 -2.776 0.000 +ATOM 503 H1 WAT 168 6.391 -2.668 -2.796 0.000 +ATOM 504 H2 WAT 168 6.187 -1.442 -1.932 0.000 +ATOM 505 OH2 WAT 169 -8.424 0.355 1.234 0.000 +ATOM 506 H1 WAT 169 -8.240 0.273 0.299 0.000 +ATOM 507 H2 WAT 169 -7.575 0.231 1.658 0.000 +ATOM 508 OH2 WAT 170 7.397 0.247 6.863 0.000 +ATOM 509 H1 WAT 170 7.980 -0.487 7.054 0.000 +ATOM 510 H2 WAT 170 7.961 1.019 6.909 0.000 +ATOM 511 OH2 WAT 171 8.894 -1.850 7.547 0.000 +ATOM 512 H1 WAT 171 8.031 -2.229 7.382 0.000 +ATOM 513 H2 WAT 171 9.498 -2.589 7.473 0.000 +ATOM 514 OH2 WAT 172 6.619 -5.695 -9.280 0.000 +ATOM 515 H1 WAT 172 7.229 -6.067 -8.643 0.000 +ATOM 516 H2 WAT 172 5.782 -6.117 -9.084 0.000 +ATOM 517 OH2 WAT 173 6.251 -4.140 -4.314 0.000 +ATOM 518 H1 WAT 173 6.531 -5.047 -4.189 0.000 +ATOM 519 H2 WAT 173 7.010 -3.706 -4.703 0.000 +ATOM 520 OH2 WAT 174 6.863 -3.559 1.122 0.000 +ATOM 521 H1 WAT 174 7.796 -3.347 1.088 0.000 +ATOM 522 H2 WAT 174 6.628 -3.457 2.045 0.000 +ATOM 523 OH2 WAT 175 6.892 -2.822 3.898 0.000 +ATOM 524 H1 WAT 175 6.049 -2.554 4.264 0.000 +ATOM 525 H2 WAT 175 7.335 -2.000 3.687 0.000 +ATOM 526 OH2 WAT 176 -8.826 -4.374 7.375 0.000 +ATOM 527 H1 WAT 176 -7.907 -4.496 7.611 0.000 +ATOM 528 H2 WAT 176 -9.276 -5.124 7.764 0.000 +ATOM 529 OH2 WAT 177 9.175 -8.842 9.252 0.000 +ATOM 530 H1 WAT 177 9.525 -9.496 8.646 0.000 +ATOM 531 H2 WAT 177 9.322 -8.005 8.812 0.000 +ATOM 532 OH2 WAT 178 6.865 -6.877 -4.265 0.000 +ATOM 533 H1 WAT 178 7.047 -7.326 -3.440 0.000 +ATOM 534 H2 WAT 178 6.265 -7.462 -4.729 0.000 +ATOM 535 OH2 WAT 179 -7.605 -6.062 0.266 0.000 +ATOM 536 H1 WAT 179 -7.160 -6.854 0.568 0.000 +ATOM 537 H2 WAT 179 -7.139 -5.346 0.697 0.000 +ATOM 538 OH2 WAT 180 -9.301 -3.063 1.335 0.000 +ATOM 539 H1 WAT 180 -8.809 -3.284 0.545 0.000 +ATOM 540 H2 WAT 180 -8.939 -2.222 1.616 0.000 +ATOM 541 OH2 WAT 181 8.695 -6.733 7.601 0.000 +ATOM 542 H1 WAT 181 7.778 -6.462 7.565 0.000 +ATOM 543 H2 WAT 181 8.818 -7.268 6.817 0.000 +ATOM 544 OH2 WAT 182 8.731 -6.810 -7.737 0.000 +ATOM 545 H1 WAT 182 9.144 -7.531 -8.213 0.000 +ATOM 546 H2 WAT 182 9.413 -6.140 -7.679 0.000 +ATOM 547 OH2 WAT 183 -8.988 -6.805 -4.610 0.000 +ATOM 548 H1 WAT 183 -9.913 -6.596 -4.740 0.000 +ATOM 549 H2 WAT 183 -8.534 -6.321 -5.300 0.000 +ATOM 550 OH2 WAT 184 5.783 8.179 -2.665 0.000 +ATOM 551 H1 WAT 184 6.436 7.832 -3.273 0.000 +ATOM 552 H2 WAT 184 6.294 8.668 -2.019 0.000 +ATOM 553 OH2 WAT 185 -9.024 -8.067 3.734 0.000 +ATOM 554 H1 WAT 185 -9.689 -8.313 4.377 0.000 +ATOM 555 H2 WAT 185 -9.467 -7.445 3.157 0.000 +ATOM 556 OH2 WAT 186 -6.832 5.108 7.878 0.000 +ATOM 557 H1 WAT 186 -7.653 5.283 7.418 0.000 +ATOM 558 H2 WAT 186 -7.084 5.035 8.799 0.000 +ATOM 559 OH2 WAT 187 -3.878 6.083 4.137 0.000 +ATOM 560 H1 WAT 187 -4.303 6.892 3.854 0.000 +ATOM 561 H2 WAT 187 -2.973 6.168 3.835 0.000 +ATOM 562 OH2 WAT 188 0.433 7.482 7.096 0.000 +ATOM 563 H1 WAT 188 0.618 7.148 7.974 0.000 +ATOM 564 H2 WAT 188 1.280 7.791 6.774 0.000 +ATOM 565 OH2 WAT 189 2.778 8.767 6.340 0.000 +ATOM 566 H1 WAT 189 3.455 8.135 6.100 0.000 +ATOM 567 H2 WAT 189 3.100 9.169 7.148 0.000 +ATOM 568 OH2 WAT 190 7.696 -8.643 5.420 0.000 +ATOM 569 H1 WAT 190 6.883 -8.318 5.032 0.000 +ATOM 570 H2 WAT 190 7.929 -9.403 4.887 0.000 +ATOM 571 OH2 WAT 191 -6.476 9.339 4.184 0.000 +ATOM 572 H1 WAT 191 -7.196 9.779 3.733 0.000 +ATOM 573 H2 WAT 191 -6.842 9.088 5.033 0.000 +ATOM 574 OH2 WAT 192 -4.009 8.939 3.214 0.000 +ATOM 575 H1 WAT 192 -4.874 9.011 3.618 0.000 +ATOM 576 H2 WAT 192 -4.064 9.486 2.430 0.000 +ATOM 577 OH2 WAT 193 0.702 8.827 2.390 0.000 +ATOM 578 H1 WAT 193 0.245 9.356 1.736 0.000 +ATOM 579 H2 WAT 193 0.865 9.430 3.115 0.000 +ATOM 580 OH2 WAT 194 3.029 7.705 3.335 0.000 +ATOM 581 H1 WAT 194 2.125 7.870 3.069 0.000 +ATOM 582 H2 WAT 194 3.458 8.558 3.269 0.000 +ATOM 583 OH2 WAT 195 5.634 9.275 3.630 0.000 +ATOM 584 H1 WAT 195 5.452 10.191 3.419 0.000 +ATOM 585 H2 WAT 195 5.810 8.865 2.783 0.000 +ATOM 586 OH2 WAT 196 -7.061 7.962 1.095 0.000 +ATOM 587 H1 WAT 196 -7.080 7.537 1.952 0.000 +ATOM 588 H2 WAT 196 -6.256 7.644 0.686 0.000 +ATOM 589 OH2 WAT 197 -4.920 6.672 -0.250 0.000 +ATOM 590 H1 WAT 197 -5.139 5.756 -0.081 0.000 +ATOM 591 H2 WAT 197 -4.096 6.812 0.216 0.000 +ATOM 592 OH2 WAT 198 -2.383 7.142 0.598 0.000 +ATOM 593 H1 WAT 198 -2.170 6.254 0.311 0.000 +ATOM 594 H2 WAT 198 -2.318 7.108 1.553 0.000 +ATOM 595 OH2 WAT 199 1.126 -7.194 -0.257 0.000 +ATOM 596 H1 WAT 199 0.451 -7.823 -0.002 0.000 +ATOM 597 H2 WAT 199 1.690 -7.678 -0.860 0.000 +ATOM 598 OH2 WAT 200 6.268 -9.087 -0.145 0.000 +ATOM 599 H1 WAT 200 6.872 -8.539 -0.646 0.000 +ATOM 600 H2 WAT 200 5.399 -8.767 -0.385 0.000 +ATOM 601 OH2 WAT 201 7.995 -7.948 -1.811 0.000 +ATOM 602 H1 WAT 201 8.607 -8.462 -2.338 0.000 +ATOM 603 H2 WAT 201 8.378 -7.070 -1.788 0.000 +ATOM 604 OH2 WAT 202 -6.548 -8.560 -2.435 0.000 +ATOM 605 H1 WAT 202 -7.325 -8.794 -2.943 0.000 +ATOM 606 H2 WAT 202 -6.017 -9.357 -2.427 0.000 +ATOM 607 OH2 WAT 203 -7.711 -8.762 -6.632 0.000 +ATOM 608 H1 WAT 203 -7.272 -8.151 -7.223 0.000 +ATOM 609 H2 WAT 203 -8.345 -8.224 -6.158 0.000 +ATOM 610 OH2 WAT 204 -1.968 -8.633 -2.622 0.000 +ATOM 611 H1 WAT 204 -1.094 -8.245 -2.652 0.000 +ATOM 612 H2 WAT 204 -2.104 -8.848 -1.699 0.000 +ATOM 613 OH2 WAT 205 3.589 -8.603 -0.973 0.000 +ATOM 614 H1 WAT 205 3.665 -8.508 -1.922 0.000 +ATOM 615 H2 WAT 205 3.313 -9.511 -0.844 0.000 +ATOM 616 OH2 WAT 206 4.942 -8.577 -5.280 0.000 +ATOM 617 H1 WAT 206 4.239 -7.963 -5.490 0.000 +ATOM 618 H2 WAT 206 4.497 -9.415 -5.149 0.000 +ATOM 619 OH2 WAT 207 -7.810 7.186 -5.734 0.000 +ATOM 620 H1 WAT 207 -8.495 7.148 -6.402 0.000 +ATOM 621 H2 WAT 207 -7.807 8.099 -5.446 0.000 +ATOM 622 OH2 WAT 208 -5.850 -6.846 -8.189 0.000 +ATOM 623 H1 WAT 208 -5.359 -7.476 -8.717 0.000 +ATOM 624 H2 WAT 208 -5.227 -6.550 -7.526 0.000 +ATOM 625 OH2 WAT 209 -0.824 -6.553 -5.732 0.000 +ATOM 626 H1 WAT 209 -0.646 -7.199 -5.049 0.000 +ATOM 627 H2 WAT 209 -0.878 -5.719 -5.265 0.000 +ATOM 628 OH2 WAT 210 1.054 8.396 -7.337 0.000 +ATOM 629 H1 WAT 210 1.920 8.762 -7.515 0.000 +ATOM 630 H2 WAT 210 0.807 7.956 -8.150 0.000 +ATOM 631 OH2 WAT 211 7.763 7.959 -4.657 0.000 +ATOM 632 H1 WAT 211 7.569 7.211 -5.222 0.000 +ATOM 633 H2 WAT 211 7.724 8.717 -5.241 0.000 +ATOM 634 OH2 WAT 212 -6.590 -8.046 7.082 0.000 +ATOM 635 H1 WAT 212 -6.956 -8.811 7.525 0.000 +ATOM 636 H2 WAT 212 -5.677 -8.017 7.369 0.000 +ATOM 637 OH2 WAT 213 -4.617 -8.695 8.618 0.000 +ATOM 638 H1 WAT 213 -3.718 -8.969 8.433 0.000 +ATOM 639 H2 WAT 213 -5.003 -9.438 9.082 0.000 +ATOM 640 OH2 WAT 214 -5.992 8.106 -8.709 0.000 +ATOM 641 H1 WAT 214 -6.260 8.393 -7.836 0.000 +ATOM 642 H2 WAT 214 -5.221 7.560 -8.557 0.000 +ATOM 643 OH2 WAT 215 3.805 -9.363 8.800 0.000 +ATOM 644 H1 WAT 215 3.881 -9.789 9.654 0.000 +ATOM 645 H2 WAT 215 4.698 -9.349 8.458 0.000 +ATOM 646 OH2 WAT 216 6.981 6.710 7.493 0.000 +ATOM 647 H1 WAT 216 6.199 6.524 6.973 0.000 +ATOM 648 H2 WAT 216 6.909 7.639 7.710 0.000 +END diff --git a/src/haddock/modules/flexref/cns/bsa.cns b/src/haddock/modules/flexref/cns/bsa.cns new file mode 100644 index 000000000..747120788 --- /dev/null +++ b/src/haddock/modules/flexref/cns/bsa.cns @@ -0,0 +1,51 @@ + +! Calculate buried surface area and desolvation energy of the complex +! +! *********************************************************************** +! * Copyright 2003-2016 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! +{====>} {* define ASA-based solvation parameters *} +inline @RUN:def_solv_param.cns + +{====>} {* buried surface area and desolvation of single chains *} +evaluate ($nchain1 = 0) +evaluate ($saafree = 0) +evaluate ($esolfree = 0) +while ($nchain1 < $data.ncomponents) loop nloop1 + evaluate ($nchain1 = $nchain1 + 1) + {====>} {* buried surface area and desolvation*} + do (rmsd = 0) (all) + surface mode=access accu=0.075 rh2o=1.4 sele=(segid $Toppar.prot_segid_$nchain1 and not ((resn WAT or resn HOH or resn TIP*) or resn DMS or resn SHA)) end + show sum (rmsd) (segid $Toppar.prot_segid_$nchain1 and not ((resn WAT or resn HOH or resn TIP*) or resn DMS or resn SHA)) + evaluate ($saafree = $saafree + $result) + do (store2 = rmsd * store1) (segid $Toppar.prot_segid_$nchain1 and not ((resn WAT or resn HOH or resn TIP*) or resn DMS or resn SHA)) + show sum (store2) (segid $Toppar.prot_segid_$nchain1 and not ((resn WAT or resn HOH or resn TIP*) or resn DMS or resn SHA)) + evaluate ($esolfree = $esolfree + $result) +end loop nloop1 + +{====>} {* buried surface area and desolvation of complex *} +do (rmsd = 0) (all) +do (store2 = 0) (all) +surface mode=access accu=0.075 rh2o=1.4 sele=(not ((resn WAT or resn HOH or resn TIP*) or resn DMS or resn SHA)) end +show sum (rmsd) (not ((resn WAT or resn HOH or resn TIP*) or resn DMS or resn SHA)) +evaluate ($satot = $result) +do (store2 = rmsd * store1) (not ((resn WAT or resn HOH or resn TIP*) or resn DMS or resn SHA)) +show sum (store2) (not ((resn WAT or resn HOH or resn TIP*) or resn DMS or resn SHA)) +evaluate ($esolcplx = $result) +evaluate ($saburied = $saafree - $satot) +! minimum BSA value set to 15 (one H atom would have SASA of 12.56 A**2) +if ($saburied < 15) then + evaluate ($saburied = -999999) +end if + +evaluate ($edesolv = $esolcplx - $esolfree) + +if ($data.ncomponents eq 1) then + evaluate ($bsa = 0) + evaluate ($desolv = 0) +end if diff --git a/src/haddock/modules/flexref/cns/build-missing.cns b/src/haddock/modules/flexref/cns/build-missing.cns new file mode 100644 index 000000000..3cb1d4870 --- /dev/null +++ b/src/haddock/modules/flexref/cns/build-missing.cns @@ -0,0 +1,323 @@ +! build-missing.cns +! build missing atoms +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + ! edited + define(atom_build=(not(known))) + + identity (store9) (none) + + identity (store9) (&atom_build) + if ( &hydrogen_build = "all" ) then + identity (store9) (store9 or hydrogen) + elseif ( &hydrogen_build = "unknown" ) then + identity (store9) (store9 or (not(known) and hydrogen)) + end if + + show sum(1) (store9) + evaluate ($tobuild=$result) + + if ( $tobuild > 0 ) then + + fix selection=(not(store9)) end + + show sum(1) (store9) + evaluate ($moving=$result) + + if ( $moving > 0 ) then + for $id in id (tag and byres(store9)) loop avco + + show ave(x) (byres(id $id) and known) + evaluate ($ave_x=$result) + show ave(y) (byres(id $id) and known) + evaluate ($ave_y=$result) + show ave(z) (byres(id $id) and known) + evaluate ($ave_z=$result) + + do (x=$ave_x) (byres(id $id) and store9) + do (y=$ave_y) (byres(id $id) and store9) + do (z=$ave_z) (byres(id $id) and store9) + + !The following is to deal with problems with THY methyl group + show (x) (byres(id $id) and known and name C7) + evaluate ($ave_x=$result) + show ave(y) (byres(id $id) and known and name C7) + evaluate ($ave_y=$result) + show ave(z) (byres(id $id) and known and name C7) + evaluate ($ave_z=$result) + + do (x=$ave_x) (byres(id $id) and store9 and name H7*) + do (y=$ave_y) (byres(id $id) and store9 and name H7*) + do (z=$ave_z) (byres(id $id) and store9 and name H7*) + + end loop avco + + ! Better initial position for rebuilding if atoms to which a missing atom is bonded to exist + for $id in id (store9) loop bndto + + show sum(1) (bondedto(id $id) and known) + if ($result > 0) then + show ave(x) (bondedto(id $id) and known) + evaluate ($ave_x=$result) + show ave(y) (bondedto(id $id) and known) + evaluate ($ave_y=$result) + show ave(z) (bondedto(id $id) and known) + evaluate ($ave_z=$result) + end if + + end loop bndto + + do (x=x+2*random(1.0)-1) (store9) + do (y=y+2*random(1.0)-1) (store9) + do (z=z+2*random(1.0)-1) (store9) + + {- start parameter for the side chain building -} + parameter + nbonds + rcon=20. nbxmod=-2 repel=0.9 wmin=0.1 tolerance=1. + rexp=2 irexp=2 inhibit=0.25 + end + end + + {- Friction coefficient, in 1/ps. -} + do (fbeta=100) (store9) + + evaluate ($bath=300.0) + evaluate ($nstep=500) + evaluate ($timestep=0.0005) + + do (refy=mass) (store9) + + do (mass=20) (store9) + + igroup interaction + (store9) (store9 or known) + end + + {- turn on initial energy terms -} + flags exclude * include bond angle vdw end + + minimize powell nstep=50 nprint=10 end + + do (vx=maxwell($bath)) (store9) + do (vy=maxwell($bath)) (store9) + do (vz=maxwell($bath)) (store9) + + flags exclude vdw include impr end + + dynamics cartesian + nstep=50 + timestep=$timestep + tcoupling=true temperature=$bath + nprint=$nstep + cmremove=false + end + + flags include vdw end + + minimize powell nstep=50 nprint=10 end + + do (vx=maxwell($bath)) (store9) + do (vy=maxwell($bath)) (store9) + do (vz=maxwell($bath)) (store9) + + dynamics cartesian + nstep=50 + timestep=$timestep + tcoupling=true temperature=$bath + nprint=$nstep + cmremove=false + end + + parameter + nbonds + rcon=2. nbxmod=-3 repel=0.75 + end + end + + minimize powell nstep=100 nprint=25 end + + do (vx=maxwell($bath)) (store9) + do (vy=maxwell($bath)) (store9) + do (vz=maxwell($bath)) (store9) + + dynamics cartesian + nstep=$nstep + timestep=$timestep + tcoupling=true temperature=$bath + nprint=$nstep + cmremove=false + end + + {- turn on all energy terms -} + flags include dihe ? end + +! {- turn on electrostatic and proper non-bonded-} +! parameter +! nbonds +! repel=0 +! nbxmod=5 atom cdie shift +! cutnb=9.5 ctofnb=8.5 ctonnb=6.5 eps=10.0 e14fac=0.4 inhibit 0.25 +! wmin=0.5 +! tolerance 0.5 +! end +! end + {- set repel to ~vdw radii -} + parameter + nbonds + repel=0.89 + end + end + + minimize powell nstep=500 nprint=50 end + + flags exclude * include bond angl impr dihe vdw elec end + + {- return masses to something sensible -} + do (mass=refy) (store9) + + do (vx=maxwell($bath)) (store9) + do (vy=maxwell($bath)) (store9) + do (vz=maxwell($bath)) (store9) + + dynamics cartesian + nstep=$nstep + timestep=$timestep + tcoupling=true temperature=$bath + nprint=$nstep + cmremove=false + end + + {- some final minimisation -} + minimize powell + nstep=500 + drop=40.0 + nprint=50 + end + + print thres=0.02 bonds + print thres=5. angles + + end if + + noe reset end + rest dihe reset end + + +! Check for D-amino acids + + for $id in id ( name HA and not resn GLY ) loop ltod + + show (segid) (id $id) + evaluate ($segid=$result) + show (resid) (id $id) + evaluate ($resid=$result) + show (resn) (id $id) + evaluate ($resn=$result) + + show ave(x) (segid $segid and resid $resid and (name CB or name C or name N) and known) + evaluate ($ave_x=$result) + show ave(y) (segid $segid and resid $resid and (name CB or name C or name N) and known) + evaluate ($ave_y=$result) + show ave(z) (segid $segid and resid $resid and (name CB or name C or name N) and known) + evaluate ($ave_z=$result) + show ave(x) (segid $segid and resid $resid and name CA and known) + evaluate ($ha_x=3*$result-2*$ave_x) + show ave(y) (segid $segid and resid $resid and name CA and known) + evaluate ($ha_y=3*$result-2*$ave_y) + show ave(z) (segid $segid and resid $resid and name CA and known) + evaluate ($ha_z=3*$result-2*$ave_z) + + do (x=$ha_x) (segid $segid and resid $resid and name HA) + do (y=$ha_y) (segid $segid and resid $resid and name HA) + do (z=$ha_z) (segid $segid and resid $resid and name HA) + + flags exclude * include bond angle vdw end + minimize powell nstep=50 drop=40.0 nprint=50 end + + pick impr + (segid $segid and resid $resid and name HA) + (segid $segid and resid $resid and name N) + (segid $segid and resid $resid and name C) + (segid $segid and resid $resid and name CB) + geometry + + if ($result lt 0) then + patch LTOD reference=nil=(segid $segid and resid $resid) end + buffer message + display D-amino acid detected for $resn $resid of chain $segid + end + flag exclude * include bond impr end + minimize powell nstep=50 drop=10.0 nprint=10 end + flag include angle end + minimize powell nstep=50 drop=10.0 nprint=10 end + flag include vdw end + minimize powell nstep=50 drop=10.0 nprint=10 end + end if + + end loop ltod + + +! if ($Toppar.dna_$chain eq TRUE) then +! if ($Data.dnarest eq TRUE) then +! noe nres 10000 end +! rest dihed nass=10000 end +! do (segid = $Toppar.prot_segid_$chain) (all) +! @RUN:data/sequence/dna-rna_restraints.def +! do (segid = " ") (all) +! end if +! end if + + fix selection=( none ) end + + flag incl noe cdih end + print threshold=0.3 noe + print threshold=5. cdih + + energy end + +! do (segid = $Toppar.prot_segid_$chain) (all) +! @RUN:flex_segment_back.cns +! do (segid = " ") (all) +! show sum(1) (attr store5 > 0) +! if ($result > 0) then +! fix sele=(attr store5 = 0) end +! minimize powell +! nstep=50 +! drop=40.0 +! nprint=5 +! end +! fix sele=(not all) end +! +! energy end +! +! end if + + print threshold=0.3 noe + print threshold=5. cdih + print thres=0.02 bonds + print thres=5. angles + flag excl noe cdih end + + end if + + do (store2=0) (all) + for $id in id (tag and name BB) loop cgmodel + do (store2=1) (byres(id $id)) + end loop cgmodel + + fix sele=(attr store2 = 0) end + minimize powell + nstep=50 + drop=40.0 + nprint=10 + end + + fix selection=( none ) end diff --git a/src/haddock/modules/flexref/cns/calc_free-ene.cns b/src/haddock/modules/flexref/cns/calc_free-ene.cns new file mode 100644 index 000000000..b54521099 --- /dev/null +++ b/src/haddock/modules/flexref/cns/calc_free-ene.cns @@ -0,0 +1,24 @@ +! calc_free-ene.cns +! Calculate the total energy of the separated components +! +! Script uses the store1 and store2 atom object, and COMP, REF and RMSD object +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! +@RUN:scale_intra_only.cns + +evaluate ($eintfree = 0.0) +@RUN:flex_segment_back.cns +fix sele=(((attr store5 = 0) or resn ANI or resn DAN or resn XAN or resn SHA) and not name H* and not (resn WAT or resn HOH or resn TIP*)) end + +minimize powell nstep=100 drop=10.0 nprint=25 end +fix sele=(not all) end +energy end +evaluate ($eintfree = $bond + $angl + $impr + $dihe + $vdw + $elec) + +display FREE MOLECULES INTERNAL ENERGY = $eintfree diff --git a/src/haddock/modules/flexref/cns/centroids_create.cns b/src/haddock/modules/flexref/cns/centroids_create.cns new file mode 100644 index 000000000..1976346e8 --- /dev/null +++ b/src/haddock/modules/flexref/cns/centroids_create.cns @@ -0,0 +1,56 @@ +!module (ncomponents; Toppar;) + {Create and initialize Dummy residues for each segid + + Parameters + ---------- + ncomponents : int + Number of components/segids + + Toppar : data-structure + The Toppar data-structure + + Side-effects + ------------ + A DUM residue is appended to each segid and placed at the origin + } + + ! define topology of DUM residue + topology + mass DD 100.00 + residue DUM group + atom DUM type=DD charge=0.000 end + atom MAP type=DD charge=0.000 end + end + end + ! define non-bonded parameters + parameter + nonbonded DD 0.001 0.001 0.001 0.001 end + end + + ! place dummy atom of dummy residue in the center of each chain + evaluate($nchain1 = 0) + while ($nchain1 < &ncomponents) loop nloopdum + evaluate($nchain1 = $nchain1 + 1) + + ! create the dummy residue + segment + name="TMP1" + chain + sequence "DUM" end + end + end + + ! set the residue id of dummy to last residue + 1 + show max(decode(resid)) (segid &Toppar.prot_segid_$nchain1) + evaluate($maxresid = $result) + + ! change the segid of the dummy residue + do (segid = &Toppar.prot_segid_$nchain1) (segid TMP1) + + ! set residue id and coordinate of the dummy residue + do (x = 0) (segid &Toppar.prot_segid_$nchain1 and resn DUM) + do (y = 0) (segid &Toppar.prot_segid_$nchain1 and resn DUM) + do (z = 0) (segid &Toppar.prot_segid_$nchain1 and resn DUM) + do (resid = encode($maxresid + 1)) (segid &Toppar.prot_segid_$nchain1 and resn DUM) + + end loop nloopdum diff --git a/src/haddock/modules/flexref/cns/centroids_init_placement.cns b/src/haddock/modules/flexref/cns/centroids_init_placement.cns new file mode 100644 index 000000000..cc659cbaa --- /dev/null +++ b/src/haddock/modules/flexref/cns/centroids_init_placement.cns @@ -0,0 +1,115 @@ +proc cross(in1; in2; out;) + {Calculate the cross-product of two vectors} + eval(&out.x = &in1.y * &in2.z - &in1.z * &in2.y) + eval(&out.y = &in1.z * &in2.x - &in1.x * &in2.z) + eval(&out.z = &in1.x * &in2.y - &in1.y * &in2.x) +endp + +proc get_angle(in1; in2; angle;) + {Calculate the angle in degree between two vectors} + call inner(in1=&in1; in2=&in2; out=$tmp) + call norm(vec=&in1; norm=$norm1;) + call norm(vec=&in2; norm=$norm2;) + eval(&angle = acos($tmp / ($norm1 * $norm2))) +endp + +proc inner(in1; in2; out;) + {In-product of two vectors} + eval(&out = &in1.x * &in2.x + &in1.y * &in2.y + &in1.z * &in2.z) +endp + +proc norm(vec; norm;) + {Calculates the norm of a vector} + eval(&norm = sqrt(&vec.x**2 + &vec.y**2 + &vec.z**2)) +endp + +! get center of map coordinates +show average(x) (name MAP) +eval($map_ave.x = $RESULT) +show average(y) (name MAP) +eval($map_ave.y = $RESULT) +show average(z) (name MAP) +eval($map_ave.z = $RESULT) + +! determine whether the molecules should be placed in the same plane of the +! centroids for symmetric systems +eval($place_molecules_in_plane = false) +if ($data.ncomponents > 2) then + if ($data.flags.sym = true) then + eval($place_molecules_in_plane = true) + end if +end if + +! in case of c-symmetry get axis of symmetry from map-coordinates +if ($place_molecules_in_plane = true) then + + ! axis of symmetry is orthogonal to the symmetry plane + ! get two vectors representing the symmetry plane + eval($pq.x = $Data.centroids.xcom_1 - $map_ave.x) + eval($pq.y = $data.centroids.ycom_1 - $map_ave.y) + eval($pq.z = $data.centroids.zcom_1 - $map_ave.z) + eval($pr.x = $data.centroids.xcom_2 - $map_ave.x) + eval($pr.y = $data.centroids.ycom_2 - $map_ave.y) + eval($pr.z = $data.centroids.zcom_2 - $map_ave.z) + + ! the axis of symmetry is orthogonal to the symmetry plane and + ! is the cross-product of those two vectors + call cross(in1=$pq; in2=$pr; out=$sym_axis;) + + ! get angle between the axis of symmetry and current symmetry z-axis + eval($z_axis.x = 0) + eval($z_axis.y = 0) + eval($z_axis.z = 1) + call get_angle(in1=$sym_axis; in2=$z_axis; angle=$angle) + + ! rotate the current system around the axis orthogonal to the + ! current axis of symmetry and future axis of symmetry + ! first get an orthogonal vector to the axis of symmetry + call cross(in1=$z_axis; in2=$sym_axis; out=$rot_axis;) + + ! do the rotation around the origin + eval($nchain1 = 0) + while ($nchain1 < $Data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + coor rotate + selection=((segid $Toppar.prot_segid_$nchain1 or segid $watersegname_$nchain1) and not name MAP) + axis ($rot_axis.x $rot_axis.y $rot_axis.z) $angle + end + end loop nloop1 + + ! perform an extra random rotation around the symmetry axis for better + ! unbiases sampling for volume data + eval($nchain1 = 0) + eval($angle = 360.0 * random()) + while ($nchain1 < $Data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + coor rotate + selection=((segid $Toppar.prot_segid_$nchain1 or segid $watersegname_$nchain1) and not name MAP) + axis ($sym_axis.x $sym_axis.y $sym_axis.z) $angle + end + end loop nloop1 +else + ! random rotation of the whole system around origin to reduce bias + ! for volume data fitting +! @RUN:get_random_rotation.cns(Rotation=$rr;) + @RUN:get_random_rotation.cns + eval($nchain1 = 0) + while ($nchain1 < $Data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + coor rotate + selection=((segid $Toppar.prot_segid_$nchain1 or segid $watersegname_$nchain1) and not name MAP) + quaternion $rr.q0 $rr.q1 $rr.q2 $rr.q3 + end + end loop nloop1 +end if ! $place_molecules_in_plane = true + +! translate subunits so that the map-center is the origin +eval($nchain1 = 0) +while ($nchain1 < $Data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + + coor translate + selection=((segid $Toppar.prot_segid_$nchain1 or segid $watersegname_$nchain1) and not name MAP) + vector=($map_ave.x $map_ave.y $map_ave.z) + end +end loop nloop1 diff --git a/src/haddock/modules/flexref/cns/centroids_initialize.cns b/src/haddock/modules/flexref/cns/centroids_initialize.cns new file mode 100644 index 000000000..eb4d579b6 --- /dev/null +++ b/src/haddock/modules/flexref/cns/centroids_initialize.cns @@ -0,0 +1,17 @@ +{Places DUM-residue on the center of each segid} + +eval($nchain1 = 0) +while ($nchain1 < $data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + + show ave(x) (segid $Toppar.prot_segid_$nchain1 and (not name H*) and (not resn DUM)) + eval($center.x = $RESULT) + show ave(y) (segid $Toppar.prot_segid_$nchain1 and (not name H*) and (not resn DUM)) + eval($center.y = $RESULT) + show ave(z) (segid $Toppar.prot_segid_$nchain1 and (not name H*) and (not resn DUM)) + eval($center.z = $RESULT) + + do (x = $center.x) (segid $Toppar.prot_segid_$nchain1 and resn DUM) + do (y = $center.y) (segid $Toppar.prot_segid_$nchain1 and resn DUM) + do (z = $center.z) (segid $Toppar.prot_segid_$nchain1 and resn DUM) +end loop nloop1 diff --git a/src/haddock/modules/flexref/cns/centroids_set_map.cns b/src/haddock/modules/flexref/cns/centroids_set_map.cns new file mode 100644 index 000000000..21443c533 --- /dev/null +++ b/src/haddock/modules/flexref/cns/centroids_set_map.cns @@ -0,0 +1,8 @@ +! set coordinates of centroids (MAP atom) +evaluate($nchain1 = 0) +while ($nchain1 < $Data.ncomponents) loop nloop1 + evaluate($nchain1 = $nchain1 + 1) + do (x = $Data.centroids.xcom_$nchain1) (segid $Toppar.prot_segid_$nchain1 and name MAP) + do (y = $Data.centroids.ycom_$nchain1) (segid $Toppar.prot_segid_$nchain1 and name MAP) + do (z = $Data.centroids.zcom_$nchain1) (segid $Toppar.prot_segid_$nchain1 and name MAP) +end loop nloop1 diff --git a/src/haddock/modules/flexref/cns/centroids_set_restraints.cns b/src/haddock/modules/flexref/cns/centroids_set_restraints.cns new file mode 100644 index 000000000..92469348c --- /dev/null +++ b/src/haddock/modules/flexref/cns/centroids_set_restraints.cns @@ -0,0 +1,70 @@ +{Sets the centroid based distance restraints} + +if ($iteration = 0) then + + noe + ! define a new class for the centroid based distance restraints + class centroid + averaging centroid sum + potential centroid soft + scale centroid $Data.centroids.kscale + sqconstant centroid 1.0 + sqexponent centroid 2 + soexponent centroid 1 + rswitch centroid 1.0 + sqoffset centroid 0.0 + asymptote centroid 2.0 + msoexponent centroid 1 + masymptote centroid -0.1 + mrswitch centroid 1.0 + + ! set the restraints between each DUM and MAP atom for each chain. in case + ! of ambiguous restraints, each DUM atom is assigned with all MAP atoms + evaluate($nchain1 = 0) + while ($nchain1 < $Data.ncomponents) loop distloop + evaluate($nchain1 = $nchain1 + 1) + + if ($Data.centroids.ambi_$nchain1 = true) then + assign (name MAP) + ((name DUM) and (segid $Toppar.prot_segid_$nchain1)) 0.0 0.0 0.0 + else + assign ((name MAP) and (segid $Toppar.prot_segid_$nchain1)) + ((name DUM) and (segid $Toppar.prot_segid_$nchain1)) 0.0 0.0 0.0 + end if + end loop distloop + end +end if + +if ($iteration > 0) then + +! define centroid based distance restraints for expand/refine protocol + + noe + ! define a new class for the centroid based distance restraints + class centroid + averaging centroid center + potential centroid soft + scale centroid $Data.centroids.kscale + sqconstant centroid 1.0 + sqexponent centroid 2 + soexponent centroid 1 + rswitch centroid 1.0 + sqoffset centroid 0.0 + asymptote centroid 2.0 + msoexponent centroid 1 + masymptote centroid -0.1 + mrswitch centroid 1.0 + + ! set the restraints between the heavy atoms of each chain and the + ! initially stored center of mass of each chain + evaluate($nchain1 = 0) + while ($nchain1 < $Data.ncomponents) loop distloop + evaluate($nchain1 = $nchain1 + 1) + + assign (not name H* and not name DUM and segid $Toppar.prot_segid_$nchain1) + (name DUM and segid $Toppar.prot_segid_$nchain1) 0.0 0.0 0.0 + end loop distloop + + end + +end if diff --git a/src/haddock/modules/flexref/cns/cg-to-aa.cns b/src/haddock/modules/flexref/cns/cg-to-aa.cns new file mode 100644 index 000000000..c916bad55 --- /dev/null +++ b/src/haddock/modules/flexref/cns/cg-to-aa.cns @@ -0,0 +1,136 @@ +evaluate ($kinter = 1) + +! Change segid of CG structure +! +evaluate ($nchain=0) +while ($nchain < $data.ncomponents) loop nloop1 + evaluate ($nchain = $nchain + 1) + if ($toppar.cg_$nchain eq true) then + evaluate($coor_infile_$nchain= "RUN:begin-aa/" + $Toppar.prot_root_$nchain + ".pdb") + coor @@ $coor_infile_$nchain + end if +end loop nloop1 + +! Read morphing restraints +! +noe + nres 1000000 + class cgaa @@RUN:data/distances/cg-to-aa.tbl + averaging cgaa center + scale cgaa 50.0 + sqconstant cgaa 1.0 + sqexponent cgaa 2 + soexponent cgaa 1 + rswitch cgaa 1.0 + sqoffset cgaa 0.0 + asymptote cgaa 2.0 + msoexponent cgaa 1 + masymptote cgaa -0.1 + mrswitch cgaa 1.0 +end + +! Fix the CG model and existing AA models +! +fix sele=(segid *CG) end +evaluate ($nchain=0) +while ($nchain < $data.ncomponents) loop nloop1 + evaluate ($nchain = $nchain + 1) + if ($toppar.cg_$nchain eq false) then + fix sele=(segid $Toppar.prot_segid_$nchain) end + end if +end loop nloop1 + + +evaluate ($kinter = 0.001) +@RUN:scale_inter.cns + +flag excl * incl noe end + +energy end + +! Rigid body EM to position AA model onto CG model +! +minimize rigid + eval ($nchain = 0) + while ($nchain < $data.ncomponents) loop nloop1 + eval($nchain = $nchain + 1) + if ($toppar.cg_$nchain eq true) then + group (segid $Toppar.prot_segid_$nchain) + translation=true + end if + end loop nloop1 + nstep 200 + nprint 10 +end + +! Starting the morphing for conformational changes +! Powell EM, including covalent terms +! + +flag excl * incl bond angl impr dihe vdw elec noe end +minimize powell nstep=500 drop=40.0 nprint=25 end +evaluate ($kinter = 0.01) +@RUN:scale_inter.cns +minimize powell nstep=500 drop=40.0 nprint=25 end + +energy end + +if ($failure eq false) then +! Short MD optimization +! +{- Friction coefficient, in 1/ps. -} + do (fbeta=100) (not segid *CG) + + evaluate ($bath=300.0) + evaluate ($nstep=500) + evaluate ($timestep=0.0005) + + do (vx=maxwell($bath)) (store1) + do (vy=maxwell($bath)) (store1) + do (vz=maxwell($bath)) (store1) + + dynamics cartesian + nstep=$nstep + timestep=$timestep + tcoupling=true temperature=$bath + nprint=50 + cmremove=true + end + + minimize powell nstep=500 drop=40.0 nprint=25 end +end if + +! Now turn on intermolecular interactions +! +evaluate ($kinter = 0.1) +@RUN:scale_inter.cns +minimize powell nstep=500 drop=10.0 nprint=25 end +evaluate ($kinter = 1.0) +@RUN:scale_inter.cns +minimize powell nstep=500 drop=10.0 nprint=25 end + +if ($failure eq false) then +! Short MD optimization +! + do (vx=maxwell($bath)) (store1) + do (vy=maxwell($bath)) (store1) + do (vz=maxwell($bath)) (store1) + + dynamics cartesian + nstep=$nstep + timestep=$timestep + tcoupling=true temperature=$bath + nprint=50 + cmremove=true + end +end if + +minimize powell nstep=500 drop=40.0 nprint=25 end +minimize powell nstep=500 drop=10.0 nprint=25 end + +energy end + +parameter nbonds eps=1.0 end end + +delete sele=(segid *CG) end + diff --git a/src/haddock/modules/flexref/cns/charge-beads-interactions.cns b/src/haddock/modules/flexref/cns/charge-beads-interactions.cns new file mode 100644 index 000000000..88edac556 --- /dev/null +++ b/src/haddock/modules/flexref/cns/charge-beads-interactions.cns @@ -0,0 +1,33 @@ +for $id1 in id ( (resn SER or resn THR or resn ASN or resn GLN) and name BB ) loop c1beads + + show (segid) (id $id1) + evaluate ($cgsegid=$result) + show (resid) (id $id1) + evaluate ($cgresid=$result) + + igroup + ! turn off all vdw interactions between charged beads and all beads + interaction (segid $cgsegid and resid $cgresid and name SCD1) (all) weight vdw 0.0 end + interaction (segid $cgsegid and resid $cgresid and name SCD2) (all) weight vdw 0.0 end + + ! turn off all vdw and elec interactions between the charged beads within one residue + interaction (segid $cgsegid and resid $cgresid and name SCD1) + (segid $cgsegid and resid $cgresid and name SCD2) weight * 1.0 vdw 0.0 elec 0.0 end + end + +end loop c1beads + +for $id1 in id ( (resn LYS or resn ARG or resn ASP or resn GLU) and name BB ) loop c2beads + + show (segid) (id $id1) + evaluate ($cgsegid=$result) + show (resid) (id $id1) + evaluate ($cgresid=$result) + + igroup + ! turn off all vdw interactions between charged beads and all beads + interaction (segid $cgsegid and resid $cgresid and name SCD1) (all) weight vdw 0.0 end + end + +end loop c2beads + diff --git a/src/haddock/modules/flexref/cns/check-homomers.cns b/src/haddock/modules/flexref/cns/check-homomers.cns new file mode 100644 index 000000000..2699f1e2e --- /dev/null +++ b/src/haddock/modules/flexref/cns/check-homomers.cns @@ -0,0 +1,56 @@ +! check-homomers.cns +! check for homomeric complexes +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + + evaluate ($homosymmetry = false) + + evaluate($n_moving_mol = 0) + evaluate ($ncount = 0) + while ($ncount < $data.ncomponents) loop checkmol + evaluate ($ncount = $ncount + 1) + if ($Toppar.shape_$ncount eq false) then + evaluate($n_moving_mol = $n_moving_mol + 1) + end if + end loop checkmol + + if ($data.flags.sym eq true) then + if ($data.numc2sym > 0) then + if ($n_moving_mol = 2) then + evaluate ($homosymmetry = true) + end if + end if + if ($data.numc2sym = 6) then + if ($n_moving_mol = 4) then + evaluate ($homosymmetry = true) + end if + end if + if ($data.numc3sym > 0) then + if ($n_moving_mol = 3) then + evaluate ($homosymmetry = true) + end if + end if + if ($data.numc4sym > 0) then + if ($n_moving_mol = 4) then + evaluate ($homosymmetry = true) + end if + end if + if ($data.numc5sym > 0) then + if ($n_moving_mol = 5) then + evaluate ($homosymmetry = true) + end if + end if + if ($data.numc6sym > 0) then + if ($n_moving_mol = 6) then + evaluate ($homosymmetry = true) + end if + end if + end if + diff --git a/src/haddock/modules/flexref/cns/cm-restraints.cns b/src/haddock/modules/flexref/cns/cm-restraints.cns new file mode 100644 index 000000000..a84864e89 --- /dev/null +++ b/src/haddock/modules/flexref/cns/cm-restraints.cns @@ -0,0 +1,142 @@ +! cm-restraints.cns +! Define center-of-mass restraints between molecules +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! +!define center of mass restraints between all molecules +!using distance restraints between CA, BB or N1 atoms with center averaging + set echo=on message=on end + + evaluate ($ncount = 0) + + ! store original coordinates + do (refx = x) (all) + do (refy = y) (all) + do (refz = z) (all) + + while ($ncount < $data.ncomponents) loop nloop1 + evaluate ($ncount = $ncount +1) + evaluate ($dim_$ncount = 0.0) + + !orient molecule + coor orient sele=(segid $Toppar.prot_segid_$ncount) end + + ! find dimensions + show max (x) (segid $Toppar.prot_segid_$ncount and (name CA or name BB or name N1)) + evaluate ($xdim = $result) + show max (y) (segid $Toppar.prot_segid_$ncount and (name CA or name BB or name N1)) + evaluate ($ydim = $result) + show max (z) (segid $Toppar.prot_segid_$ncount and (name CA or name BB or name N1)) + evaluate ($zdim = $result) + show min (x) (segid $Toppar.prot_segid_$ncount and (name CA or name BB or name N1)) + evaluate ($xdim = $xdim - $result) + show min (y) (segid $Toppar.prot_segid_$ncount and (name CA or name BB or name N1)) + evaluate ($ydim = $ydim - $result) + show min (z) (segid $Toppar.prot_segid_$ncount and (name CA or name BB or name N1)) + evaluate ($zdim = $zdim - $result) + + evaluate ($corr = max($xdim,$ydim)) + evaluate ($corr = max($corr,$zdim)) + + if ($data.cmtight eq false) then + ! use average of all three dimensions + 10A + evaluate ($dim_$ncount = ($xdim + $ydim + $zdim)/6.0) + else + ! use only the average of the smallest two dimensions + evaluate ($dim_$ncount = ($xdim + $ydim + $zdim - $corr)/4.0) + end if + + if ($toppar.dna_$ncount = true) then + ! Check first if not protein-DNA complex + do (store6 = 0) (all) + do (store6 = 1) (segid $Toppar.prot_segid_$ncount and (name CA or name BB)) + show sum (store6) (all) + if ($result eq 0) then + ! we are dealing with a DNA - set dimension to 0 + evaluate ($dim_$ncount = 0.0) + end if + end if + + do (store6 = 0) (all) + do (store6 = 1) (segid $Toppar.prot_segid_$ncount and (name CA or name BB or name N1)) + show sum (store6) (all) + if ($result eq 0) then + ! we are dealing with a ligand set dimension to 0 + evaluate ($dim_$ncount = 0.0) + end if + + end loop nloop1 + + ! restore original coordinates + do (x = refx) (all) + do (y = refy) (all) + do (z = refz) (all) + + eval($nchain = 0) + do (store9 = 0) (all) + do (store9 = 1) (name CA or name BB or name N1) + while ($nchain < $data.ncomponents) loop nloop0 + eval($nchain = $nchain + 1) + show sum (store9) (segid $Toppar.prot_segid_$nchain) + if ($result < 3) then + evaluate ($selat$nchain = 0 ) + else + evaluate ($selat$nchain = 1 ) + end if + end loop nloop0 + + eval($nchain1 = 0) + noe + class contact + while ($nchain1 < $data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + eval($nchain2 = $nchain1 ) + if ($Toppar.shape_$nchain1 eq false) then + while ($nchain2 < $data.ncomponents) loop nloop2 + eval($nchain2 = $nchain2 + 1) + if ($Toppar.shape_$nchain2 eq false) then + if ($data.cmtight eq false) then + eval($cm_dist = $dim_$nchain1 + $dim_$nchain2) + else + eval($cm_dist = ($dim_$nchain1 + $dim_$nchain2)/2 ) + end if + if ($selat$nchain1 = 1) then + if ($selat$nchain2 = 1) then + assign (segid $Toppar.prot_segid_$nchain1 and ( name CA or name BB or name N1 )) + (segid $Toppar.prot_segid_$nchain2 and ( name CA or name BB or name N1 )) $cm_dist $cm_dist 1.0 + else + assign (segid $Toppar.prot_segid_$nchain1 and ( name CA or name BB or name N1 )) + (segid $Toppar.prot_segid_$nchain2) $cm_dist $cm_dist 1.0 + end if + else + if ($selat$nchain2 = 1) then + assign (segid $Toppar.prot_segid_$nchain1) + (segid $Toppar.prot_segid_$nchain2 and ( name CA or name BB or name N1 )) $cm_dist $cm_dist 1.0 + else + assign (segid $Toppar.prot_segid_$nchain1) + (segid $Toppar.prot_segid_$nchain2) $cm_dist $cm_dist 1.0 + end if + end if + end if + end loop nloop2 + end if + end loop nloop1 + + averaging contact center + scale contact $Data.kcont + sqconstant contact 1.0 + sqexponent contact 2 + soexponent contact 1 + rswitch contact 1.0 + sqoffset contact 0.0 + asymptote contact 2.0 + msoexponent contact 1 + masymptote contact -0.1 + mrswitch contact 1.0 + end diff --git a/src/haddock/modules/flexref/cns/cns_test.csh b/src/haddock/modules/flexref/cns/cns_test.csh new file mode 100644 index 000000000..dd472b6e7 --- /dev/null +++ b/src/haddock/modules/flexref/cns/cns_test.csh @@ -0,0 +1,7 @@ +#!/bin/csh +# +./cns1 <<_Eod_ |grep CNS-OK +set message=off echo=off end +display CNS-OK +stop +_Eod_ diff --git a/src/haddock/modules/flexref/cns/contactairs.cns b/src/haddock/modules/flexref/cns/contactairs.cns new file mode 100644 index 000000000..c90efd3c5 --- /dev/null +++ b/src/haddock/modules/flexref/cns/contactairs.cns @@ -0,0 +1,27 @@ +! contactairs.cns +! Define ambiguous distance restraints between contacting surfaces +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + for $id in id (tag and segid $Toppar.prot_segid_1 and (segid $Toppar.prot_segid_2) around 5.0) loop defnoe1 + show (resid) (id $id) + evaluate ($inres = $result) + noe + assign (resid $inres and segid $Toppar.prot_segid_1) + (byres (segid $Toppar.prot_segid_2 and (segid $Toppar.prot_segid_1) around 5.0)) 2.0 2.0 0.0 + end + end loop defnoe1 + for $id in id (tag and segid $Toppar.prot_segid_2 and (segid $Toppar.prot_segid_1) around 5.0) loop defnoe2 + show (resid) (id $id) + evaluate ($inres = $result) + noe + assign (resid $inres and segid $Toppar.prot_segid_2) + (byres (segid $Toppar.prot_segid_1 and (segid $Toppar.prot_segid_2) around 5.0)) 2.0 2.0 0.0 + end + end loop defnoe2 diff --git a/src/haddock/modules/flexref/cns/coval-ace-cys.cns b/src/haddock/modules/flexref/cns/coval-ace-cys.cns new file mode 100644 index 000000000..4449d7d7c --- /dev/null +++ b/src/haddock/modules/flexref/cns/coval-ace-cys.cns @@ -0,0 +1,57 @@ +! covalions.cns +! Add a covalent bond between an acetylated Nter and a cysteine sulphur +! +! *********************************************************************** +! * Copyright 2003-2016 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + for $id1 in id ( name CA and resn ACE ) loop ace + + show (segid) (id $id1) + evaluate ($segid1=$result) + show (resid) (id $id1) + evaluate ($resid1=$result) + show (resname) (id $id1) + evaluate ($resname1=$result) + show (name) (id $id1) + evaluate ($name1=$result) + show (chem) (id $id1) + evaluate ($chem1=$result) + + evaluate ($mindis = 3.0) + evaluate ($minid = 0) + for $id2 in id ( name SG and (id $id1) around 3.0 and + (resn CYS or resn CYF) ) loop search + + pick bond (id $id1) (id $id2) geometry + + if ( $result < $mindis) then + evaluate ($mindis = $result) + evaluate ($minid = $id2) + end if + + end loop search + + if ($minid > 0) then + show (segid) (id $minid) + evaluate ($segid2=$result) + show (resid) (id $minid) + evaluate ($resid2=$result) + show (resname) (id $minid) + evaluate ($resname2=$result) + show (name) (id $minid) + evaluate ($name2=$result) + show (chem) (id $minid) + evaluate ($chem2=$result) + + evaluate ($pat1 = "1"+$name1) + evaluate ($pat2 = "2"+$name2) + patch accy refe=1=(resid $resid1 and segid $segid1) refe=2=(resid $resid2 and segid $segid2) end + display COVAL-ACE-CYS: ADDED ONE COVALENT BOND BETWEEN $name1 $resid1 AND $name2 $resname2 $resid2 + end if + + end loop ace diff --git a/src/haddock/modules/flexref/cns/covalheme.cns b/src/haddock/modules/flexref/cns/covalheme.cns new file mode 100644 index 000000000..894bfe574 --- /dev/null +++ b/src/haddock/modules/flexref/cns/covalheme.cns @@ -0,0 +1,128 @@ +! covalions.cns +! Add a covalent bond between a hemeC and a cysteine +! +! *********************************************************************** +! * Copyright 2003-2016 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + evaluate ($ncac = 0) + for $id1 in id ( name CAC and resn HEC ) loop heme1 + + show (segid) (id $id1) + evaluate ($segid1=$result) + show (resid) (id $id1) + evaluate ($resid1=$result) + show (resname) (id $id1) + evaluate ($resname1=$result) + show (name) (id $id1) + evaluate ($name1=$result) + + evaluate ($mindis = 4.0) + evaluate ($minid = 0) + for $id2 in id ( name SG and (id $id1) around 4.0 and + (resn CYS or resn CYF) ) loop search + + pick bond (id $id1) (id $id2) geometry + + if ( $result < $mindis) then + evaluate ($mindis = $result) + evaluate ($minid = $id2) + end if + + end loop search + + if ($minid > 0) then + evaluate ($ncac = $ncac + 1) + show (segid) (id $minid) + evaluate ($segid2=$result) + show (resid) (id $minid) + evaluate ($resid2=$result) + show (resname) (id $minid) + evaluate ($resname2=$result) + show (name) (id $minid) + evaluate ($name2=$result) + + evaluate ($seg1.$ncac=$segid1) + evaluate ($seg2.$ncac=$segid2) + evaluate ($res1.$ncac=$resid1) + evaluate ($res2.$ncac=$resid2) + end if + + end loop heme1 + + evaluate ($counter=1) + while ( $counter <= $ncac ) loop ncac + + patch phcc + refe=2=(resid $res1.$counter and segid $seg1.$counter) + refe=1=(resid $res2.$counter and segid $seg2.$counter) + end + buffer message + display COVALHEME: ADDED ONE COVALENT BOND BETWEEN $name1 $resid1 AND $name2 $resname2 $resid2 + evaluate ($counter=$counter+1) + + end loop ncac + + + evaluate ($ncab = 0) + for $id1 in id ( name CAB and resn HEC ) loop heme2 + + show (segid) (id $id1) + evaluate ($segid1=$result) + show (resid) (id $id1) + evaluate ($resid1=$result) + show (resname) (id $id1) + evaluate ($resname1=$result) + show (name) (id $id1) + evaluate ($name1=$result) + + evaluate ($mindis = 4.0) + evaluate ($minid = 0) + for $id2 in id ( name SG and (id $id1) around 4.0 and + (resn CYS or resn CYF) ) loop search + + pick bond (id $id1) (id $id2) geometry + + if ( $result < $mindis) then + evaluate ($mindis = $result) + evaluate ($minid = $id2) + end if + + end loop search + + if ($minid > 0) then + evaluate ($ncab = $ncab + 1) + show (segid) (id $minid) + evaluate ($segid2=$result) + show (resid) (id $minid) + evaluate ($resid2=$result) + show (resname) (id $minid) + evaluate ($resname2=$result) + show (name) (id $minid) + evaluate ($name2=$result) + + evaluate ($seg1.$ncab=$segid1) + evaluate ($seg2.$ncab=$segid2) + evaluate ($res1.$ncab=$resid1) + evaluate ($res2.$ncab=$resid2) + end if + + end loop heme2 + + evaluate ($counter=1) + while ( $counter <= $ncab ) loop ncab + + patch phcb + refe=2=(resid $res1.$counter and segid $seg1.$counter) + refe=1=(resid $res2.$counter and segid $seg2.$counter) + end + buffer message + display COVALHEME: ADDED ONE COVALENT BOND BETWEEN $name1 $resid1 AND $name2 $resname2 $resid2 + evaluate ($counter=$counter+1) + + end loop ncab + diff --git a/src/haddock/modules/flexref/cns/covalions.cns b/src/haddock/modules/flexref/cns/covalions.cns new file mode 100644 index 000000000..a5c8c5311 --- /dev/null +++ b/src/haddock/modules/flexref/cns/covalions.cns @@ -0,0 +1,82 @@ +! covalions.cns +! Add a covalent bond between an ion and its closest coordinating atom +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + evaluate ($pcount = 0) + for $id1 in id ( name "LI+1" or name "F-1" or name "NA+1" or name "MG+2" or name "AL+3" + or name "CL-1" or name "K+1" or name "CA+2" or name "V+2" or name "V+3" + or name "CR+2" or name "CR+3" or name "MN+2" or name "MN+3" or name "FE+2" + or name "FE+3" or name "NI+2" or name "CO+2" or name "CO+3" or name "CU+1" + or name "CU+2" or name "ZN+2" or name "BR-1" or name "SR+2" or name "MO+3" + or name "AG+1" or name "CD+2" or name "I-1" or name "CS+2" or name "HO+3" + or name "YB+2" or name "YB+3" or name "OS+4" or name "IR+3" or name "PT+2" + or name "AU+1" or name "AU+2" or name "HG+1" or name "HG+2" or name "PB+2" + or name "U+3" or name "U+4" or name "ZN+1" or name "ZN" ) loop ions + + show (segid) (id $id1) + evaluate ($segid1=$result) + show (resid) (id $id1) + evaluate ($resid1=$result) + show (resname) (id $id1) + evaluate ($resname1=$result) + show (name) (id $id1) + evaluate ($name1=$result) + show (chem) (id $id1) + evaluate ($chem1=$result) + + evaluate ($mindis = 7.5) + evaluate ($minid = 0) + for $id2 in id ( (name O* or name S* or name N*) and (id $id1) around 7.5 and + (resn ALA or resn ARG or resn ASN or resn ASP or resn CYS or resn GLN or resn GLU or + resn GLY or resn HIS or resn ILE or resn LEU or resn LYS or resn MET or resn PHE or + resn PRO or resn SER or resn THR or resn TRP or resn TYR or resn VAL or resn TYS or + resn TYP or resn NEP or resn CYM or resn ADE or resn CYT or resn GUA or resn THY or + resn A or resn C or resn G or resn T or resn DA or resn DC or resn DG or resn DT or + resn HYP or resn CYP or resn CYM or resn CYF or resn TOP or resn TYP or resn TYS or + resn SEP or resn PTR or resn HYP or resn DDZ)) loop search + + pick bond (id $id1) (id $id2) geometry + + if ( $result < $mindis) then + evaluate ($mindis = $result) + evaluate ($minid = $id2) + end if + + end loop search + + if ($minid> 0) then + show (segid) (id $minid) + evaluate ($segid2=$result) + show (resid) (id $minid) + evaluate ($resid2=$result) + show (resname) (id $minid) + evaluate ($resname2=$result) + show (name) (id $minid) + evaluate ($name2=$result) + show (chem) (id $minid) + evaluate ($chem2=$result) + + evaluate ($pat1 = "1"+$name1) + evaluate ($pat2 = "2"+$name2) + evaluate ($pcount = $pcount + 1) + evaluate ($pname = "cb" + encode($pcount)) + topology + presidue $pname ! Patch to add a covalent bond between two atoms + add bond $pat1 $pat2 + end + end + patch $pname refe=1=(resid $resid1 and segid $segid1) refe=2=(resid $resid2 and segid $segid2) end + display COVALION: ADDED ONE COVALENT BOND BETWEEN $name1 $resid1 AND $name2 $resname2 $resid2 + end if + + param bond $chem1 $chem2 0.0 $mindis end + + end loop ions + diff --git a/src/haddock/modules/flexref/cns/db0.cns b/src/haddock/modules/flexref/cns/db0.cns new file mode 100644 index 000000000..849350c19 --- /dev/null +++ b/src/haddock/modules/flexref/cns/db0.cns @@ -0,0 +1,38 @@ +! db0.cns +! Use in the removal of interfacial waters in solvated docking +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + !store5=1 contains the waters that are to be "removed" + !none at this stage + + do (store5 = 0) (all) + + !"removing" of water: interaction weight 0 + igroup interaction (not all) (not all) end + + igroup + eval($nchain1 = 0) + + while ($nchain1 < $data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + eval($nchain2 = $nchain1 ) + while ($nchain2 < $data.ncomponents) loop nloop2 + eval($nchain2 = $nchain2 + 1) + interaction (segid $Toppar.prot_segid_$nchain1) + (segid $Toppar.prot_segid_$nchain2) weight * 1.0 vdw $kinter elec $kinter end + end loop nloop2 + interaction ((resn WAT or resn HOH or resn TIP*) and (attr store5 ne 1)) (segid $Toppar.prot_segid_$nchain1) weight * 1.0 end + end loop nloop1 + + interaction ((resn WAT or resn HOH or resn TIP*) and (attr store5 ne 1)) + ((resn WAT or resn HOH or resn TIP*) and (attr store5 ne 1)) weight * 1.0 end + interaction (attr store5 = 1) (all) weight * 0.0 end + interaction (resn SHA) (not resn SHA) weight * 0.0 end + end diff --git a/src/haddock/modules/flexref/cns/db00.cns b/src/haddock/modules/flexref/cns/db00.cns new file mode 100644 index 000000000..6ddf6c849 --- /dev/null +++ b/src/haddock/modules/flexref/cns/db00.cns @@ -0,0 +1,57 @@ +! db00.cns +! Used in the removal of interfacial waters in solvated docking +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + !store5 is what is to be removed + !store4 is used to determine what is at an interface + eval ($surfcutoff = $data.water_surfcutoff) + do (store4 = 0) (all) + do (store4 = 1) ((resn WAT or resn HOH) and name oh2) + show sum (store4) (all) + display SOLVATED-DOCKING: INITIAL NUMBER OF WATERS IS $result + do (store4 = 0) (all) + + eval($nchain1 = 0) + while ($nchain1 < $data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + do (store4 = store4 + 1) (name oh2 and ((segid $Toppar.prot_segid_$nchain1) around $surfcutoff)) + end loop nloop1 + + !an interfacial water should have at least store4=2 + do (store4 = 0) (attribute store4 < 2) + do (store4 = 1) (attribute store4 > 0) + show sum (store4) (all) + display SOLVATED-DOCKING: REMAINING NUMBER OF INTERFACIAL WATERS IS $result + + do (store5 = 1) ((attr store5 = 1) or (name oh2 and (attr store4 ne 1))) + do (store5 = 1) (byres (attr store5 = 1)) + +!"removing" of water: interaction weight 0 + igroup interaction (not all) (not all) end + + igroup + eval($nchain1 = 0) + + while ($nchain1 < $data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + eval($nchain2 = $nchain1 ) + while ($nchain2 < $data.ncomponents) loop nloop2 + eval($nchain2 = $nchain2 + 1) + interaction (segid $Toppar.prot_segid_$nchain1) + (segid $Toppar.prot_segid_$nchain2) weight * 1.0 vdw $kinter elec $kinter end + end loop nloop2 + interaction ((resn WAT or resn HOH or resn TIP*) and (attr store5 ne 1)) (segid $Toppar.prot_segid_$nchain1) weight * 1.0 end + end loop nloop1 + + interaction ((resn WAT or resn HOH or resn TIP*) and (attr store5 ne 1)) + ((resn WAT or resn HOH or resn TIP*) and (attr store5 ne 1)) weight * 1.0 end + interaction (attr store5 = 1) (all) weight * 0.0 end + interaction (resn SHA) (not resn SHA) weight * 0.0 end + end diff --git a/src/haddock/modules/flexref/cns/db1.cns b/src/haddock/modules/flexref/cns/db1.cns new file mode 100644 index 000000000..2bd61cfb3 --- /dev/null +++ b/src/haddock/modules/flexref/cns/db1.cns @@ -0,0 +1,323 @@ +! db1.cns +! Used in the removal of interfacial waters in solvated docking +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! +eval ($rmultfact=1.0) +eval($testcutoff=3.5) +eval($enercutoff=0.0) + +show sum(1) ((resn WAT or resn HOH) and name OH2 and (attr store5 ne 1) and (not (name P or name O*P* or name "O3'" or name "O5'") around $testcutoff)) +eval ($watercount=$result) +show sum(1) ((resn WAT or resn HOH) and name OH2 and (attr store5 ne 1) and ((name P or name O*P* or name "O3'" or name "O5'") around $testcutoff)) +eval ($dnapwatercount=$result) + +display SOLVATED-DOCKING: info: watercount $watercount + +evaluate ($icount = 1) +do (store4 = 0) (all) + +for $atom_id in id ((resn WAT or resn HOH) and name OH2 and (attr store5 ne 1)) loop count + do (store4 = $icount) (id $atom_id) + evaluate ($icount = $icount + 1) +end loop count +display SOLVATED-DOCKING: info: watercount $icount + +show min(store4) ((resn WAT or resn HOH) and name OH2 and (attr store5 ne 1)) +evaluate ($rmin = $result) +show max(store4) ((resn WAT or resn HOH) and name OH2 and (attr store5 ne 1)) +evaluate ($rmax = $result) + +evaluate ($nres = $rmax - $rmin + 1) +display SOLVATED-DOCKING: $nres WATERS SELECTED FOR DATABASE-STATISTICS BASED RANDOM REMOVAL +if ($nres < 1) then + display SOLVATED-DOCKING: NO WATER IN DEFINED WATERS + display SOLVATED-DOCKING: DB WATER REMOVAL FAILED + display SOLVATED-DOCKING: STOPPING... + stop +end if + +! initialize water-mediated contact probabilities to average +! value of the protein-protein matrix (0.22 for statistical and 0.33 for Kyte-Doolittle) +! +if ($data.db_method eq 'statistical') then + evaluate ($dbave = 0.22) +else + eval ($dbave = 0.33) +end if +eval($nchain1 = 0) +while ($nchain1 < $data.ncomponents) loop nloop1 + evaluate($nchain1 = $nchain1 + 1) + eval($nchain2 = 0) + while ($nchain2 < $data.ncomponents) loop nloop2 + evaluate ($nchain2 = $nchain2 + 1) + if ($nchain1 ne $nchain2) then + for $at1_id in id ( tag and segid $Toppar.prot_segid_$nchain1 ) loop atm1 + show (resn) (id $at1_id) + evaluate ($rsn1 = $result) + for $at2_id in id ( tag and segid $Toppar.prot_segid_$nchain2 ) loop atm2 + show (resn) (id $at2_id) + evaluate ($rsn2 = $result) + evaluate ($db.$rsn1_$rsn2 = $dbave) + end loop atm2 + end loop atm1 + end if + end loop nloop2 +end loop nloop1 + +if ($data.db_method eq 'statistical') then +! inline @RUN:db_statistical.dat + inline @db_statistical.dat +else +! inline @RUN:db_kyte-doolittle.dat + inline @db_kyte-doolittle.dat +end if + +! First pass, all interactions except those with DNA/RNA Phosphate groups +evaluate ($done = 0) +evaluate ($counttrial = 0) +evaluate ($maxcounttrial = 1000) +while ($done = 0) loop trial + eval($counttrial = $counttrial+1) + if ($counttrial > $maxcounttrial) then + eval($done = 1) + end if + evaluate ($iselres1 = 0) + evaluate ($iselres1 = int(ran() * $rmax) + 1) + + eval($founda=0) + eval($foundb=0) + eval($closesta=1000) + eval($closestb=1000) + + !find first closest residue of all chains + eval($nchain1 = 0) + eval($closechain = 0) + while ($nchain1 < $data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + for $atom_ida in id (segid $Toppar.prot_segid_$nchain1 and (not (name P or name O*P* or name "O3'" or name "O5'")) and (attr store4 = $iselres1) around $testcutoff) loop seg1loop + pick bond (attr store4 = $iselres1) (id $atom_ida) geometry + eval ($dist=$result) + if ($dist<$closesta) then + eval($founda=$founda+1) + eval($closesta=$dist) + show element (resn) (id $atom_ida) + eval($restypea=$result) + eval($closechain=$nchain1) + end if + end loop seg1loop + end loop nloop1 + + ! do not consider if close to a phosphate group + eval($nchain1 = 0) + while ($nchain1 < $data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + for $atom_ida in id (segid $Toppar.prot_segid_$nchain1 and (name P or name O*P* or name "O3'" or name "O5'") and (attr store4 = $iselres1) around $testcutoff) loop seg1loop + eval($founda=0) + end loop seg1loop + end loop nloop1 + + eval($nchain1 = 0) + !find second closest residue from all other chains than the closest residue selected above + while ($nchain1 < $data.ncomponents) loop nloop2 + eval($nchain1 = $nchain1 + 1) + if ($nchain1 ne $closechain) then + for $atom_idb in id (segid $Toppar.prot_segid_$nchain1 and (not (name P or name O*P* or name "O3'" or name "O5'")) and (attr store4 = $iselres1) around $testcutoff) loop seg2loop + pick bond (attr store4 = $iselres1) (id $atom_idb) geometry + eval ($dist=$result) + if ($dist<$closestb) then + eval($foundb=$foundb+1) + eval($closestb=$dist) + show element (resn) (id $atom_idb) + eval($restypeb=$result) + end if + end loop seg2loop + end if + end loop nloop2 + + if ($founda > 0) then + if($foundb > 0) then + display SOLVATED-DOCKING: $iselres1 $closesta $restypea $closestb $restypeb $db.$restypea_$restypeb + eval ($r = random(1.0)) +! display SOLVATED-DOCKING: info: r-value $r + eval ($r = $r*$rmultfact) + if ($r > $db.$restypea_$restypeb) then +! display SOLVATED-DOCKING: $r bigger than $db.$restypea_$restypeb for $iselres1 with $restypea - $restypeb + !so this one is 'deleted' + do (store5=1) (attr store4 = $iselres1) + else +! display SOLVATED-DOCKING: $r smaller than $db.$restypea_$restypeb for $iselres1 with $restypea - $restypeb + end if + else +! display SOLVATED-DOCKING: nothing found for $iselres1 + do (store5=1) (attr store4 = $iselres1) + end if + else +! display SOLVATED-DOCKING: nothing found for $iselres1 + do (store5=1) (attr store4 = $iselres1) + end if + + show sum(1) ((resn WAT or resn HOH) and name OH2 and (attr store5 ne 1)) + if ($watercount > 0) then + eval($fractionleft = $result/$watercount) + else + eval($fractionleft = 0.0) + end if + display SOLVATED-DOCKING: FRACTION LEFT $fractionleft + if ($fractionleft < $data.water_tokeep) then + evaluate ($done = 1) + end if +end loop trial + + +! Second pass, all interactions with DNA/RNA Phosphate groups +evaluate ($done = 0) +evaluate ($counttrial = 0) +evaluate ($maxcounttrial = 1000) +while ($done = 0) loop ptrial + eval($counttrial = $counttrial+1) + if ($counttrial > $maxcounttrial) then + eval($done = 1) + end if + evaluate ($iselres1 = 0) + evaluate ($iselres1 = int(ran() * $rmax) + 1) + + eval($founda=0) + eval($foundb=0) + eval($closesta=1000) + eval($closestb=1000) + + !find first closest residue of all chains + eval($nchain1 = 0) + eval($closechain = 0) + while ($nchain1 < $data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + for $atom_ida in id (segid $Toppar.prot_segid_$nchain1 and (name P or name O*P* or name "O3'" or name "O5'") and (attr store4 = $iselres1) around $testcutoff) loop seg1loop + pick bond (attr store4 = $iselres1) (id $atom_ida) geometry + eval ($dist=$result) + if ($dist<$closesta) then + eval($founda=$founda+1) + eval($closesta=$dist) + show element (resn) (id $atom_ida) + eval($restypea=$result) + eval($closechain=$nchain1) + end if + end loop seg1loop + end loop nloop1 + + eval($nchain1 = 0) + !find second closest residue from all other chains than the closest residue selected above + while ($nchain1 < $data.ncomponents) loop nloop2 + eval($nchain1 = $nchain1 + 1) + if ($nchain1 ne $closechain) then + for $atom_idb in id (segid $Toppar.prot_segid_$nchain1 and (attr store4 = $iselres1) around $testcutoff) loop seg2loop + pick bond (attr store4 = $iselres1) (id $atom_idb) geometry + eval ($dist=$result) + if ($dist<$closestb) then + eval($foundb=$foundb+1) + eval($closestb=$dist) + show element (resn) (id $atom_idb) + eval($restypeb=$result) + end if + end loop seg2loop + end if + end loop nloop2 + + if ($founda > 0) then + if($foundb > 0) then + display SOLVATED-DOCKING DNA PHOSPHATE: $iselres1 $closesta $restypea $closestb $restypeb $db.$restypea_$restypeb + eval ($r = random(1.0)) +! display SOLVATED-DOCKING: info: r-value $r + eval ($r = $r*$rmultfact) + if ($r > $db.DP_$restypea_$restypeb) then +! display SOLVATED-DOCKING: $r bigger than $db.DP_$restypea_$restypeb for $iselres1 with $restypea - $restypeb + !so this one is 'deleted' + do (store5=1) (attr store4 = $iselres1) + else +! display SOLVATED-DOCKING: $r smaller than $db.DP_$restypea_$restypeb for $iselres1 with $restypea - $restypeb + end if + else +! display SOLVATED-DOCKING: nothing found for $iselres1 + do (store5=1) (attr store4 = $iselres1) + end if + else +! display SOLVATED-DOCKING: nothing found for $iselres1 + do (store5=1) (attr store4 = $iselres1) + end if + + show sum(1) ((resn WAT or resn HOH) and name OH2 and (attr store5 ne 1)) + if ($dnapwatercount > 0) then + eval($fractionleft = $result/$dnapwatercount) + else + eval($fractionleft = 0.0) + end if + display SOLVATED-DOCKING: FRACTION LEFT AROUND DNA PHOSPHATE $fractionleft + if ($fractionleft < $data.dnap_water_tokeep) then + evaluate ($done = 1) + end if +end loop ptrial + + + +show sum(1) ((resn WAT or resn HOH) and name OH2 and (attr store5 ne 1)) +if ($watercount > 0) then + eval($fractionleft = $result/$watercount) +else + eval($fractionleft = 0.0) +end if +display SOLVATED-DOCKING: FINAL FRACTION LEFT BEFORE ENERGY FILTER $fractionleft ($result WATERS) + +for $wat_id in id ((resn WAT or resn HOH) and name OH2 and (attr store5 ne 1)) loop dbloop + igroup interaction (not all) (not all) end + igroup interaction (all) (byres(id $wat_id)) end + energy end + eval($waterenergy=$vdw + $elec) + if ($waterenergy>$enercutoff) then + !energy too high --> 'deleted' + do (store5=1) (id $wat_id) +! display SOLVATED-DOCKING: energy of id $wat_id is $waterenergy which is higher than cutoff $enercutoff + else +! display SOLVATED-DOCKING: energy of id $wat_id is $waterenergy which is lower than cutoff $enercutoff + end if +end loop dbloop + +show sum(1) ((resn WAT or resn HOH) and name OH2 and (attr store5 ne 1)) +if ($watercount > 0) then + eval($fractionleft = $result/$watercount) +else + eval($fractionleft = 0.0) +end if +display SOLVATED-DOCKING: FINAL FRACTION LEFT AFTER ENERGY FILTER $fractionleft ($result WATERS) + + +do (store5 = 1) (byres(attr store5 =1 )) + +!"removing" of water: interaction weight 0 +igroup interaction (not all) (not all) end + +igroup + eval($nchain1 = 0) + +while ($nchain1 < $data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + eval($nchain2 = $nchain1 ) + while ($nchain2 < $data.ncomponents) loop nloop2 + eval($nchain2 = $nchain2 + 1) + interaction (segid $Toppar.prot_segid_$nchain1) + (segid $Toppar.prot_segid_$nchain2) weight * 1.0 vdw $kinter elec $kinter end + end loop nloop2 + interaction ((resn WAT or resn HOH or resn TIP*) and (attr store5 ne 1)) (segid $Toppar.prot_segid_$nchain1) weight * 1.0 end +end loop nloop1 + + interaction ((resn WAT or resn HOH or resn TIP*) and (attr store5 ne 1)) + ((resn WAT or resn HOH or resn TIP*) and (attr store5 ne 1)) weight * 1.0 end + interaction (attr store5 = 1) (all) weight * 0.0 end + interaction (resn SHA) (not resn SHA) weight * 0.0 end +end + diff --git a/src/haddock/modules/flexref/cns/db_kyte-doolittle.dat b/src/haddock/modules/flexref/cns/db_kyte-doolittle.dat new file mode 100644 index 000000000..1e5958bca --- /dev/null +++ b/src/haddock/modules/flexref/cns/db_kyte-doolittle.dat @@ -0,0 +1,773 @@ +! db_kyte-doolittle.dat +! Kyte-Doolittle derived probabilities of finding a water molecule +! between two specific amino acids +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! +eval ($db.ALA_ALA = 0.1096) +eval ($db.ALA_ARG = 0.3288) +eval ($db.ALA_ASN = 0.3014) +eval ($db.ALA_ASP = 0.3014) +eval ($db.ALA_CYS = 0.0822) +eval ($db.ALA_GLN = 0.3014) +eval ($db.ALA_GLU = 0.3014) +eval ($db.ALA_GLY = 0.1918) +eval ($db.ALA_HIS = 0.2877) +eval ($db.ALA_ILE = 0.0137) +eval ($db.ALA_LEU = 0.0411) +eval ($db.ALA_LYS = 0.3151) +eval ($db.ALA_MET = 0.1096) +eval ($db.ALA_PHE = 0.0822) +eval ($db.ALA_PRO = 0.2329) +eval ($db.ALA_SER = 0.2055) +eval ($db.ALA_THR = 0.2055) +eval ($db.ALA_TRP = 0.2055) +eval ($db.ALA_TYR = 0.2192) +eval ($db.ALA_VAL = 0.0274) +eval ($db.ALA_NEP = 0.1918) +eval ($db.ARG_ALA = 0.3288) +eval ($db.ARG_ARG = 1.0001) +eval ($db.ARG_ASN = 0.8905) +eval ($db.ARG_ASP = 0.8905) +eval ($db.ARG_CYS = 0.2603) +eval ($db.ARG_GLN = 0.8905) +eval ($db.ARG_GLU = 0.8905) +eval ($db.ARG_GLY = 0.5617) +eval ($db.ARG_HIS = 0.8631) +eval ($db.ARG_ILE = 0.0548) +eval ($db.ARG_LEU = 0.1233) +eval ($db.ARG_LYS = 0.9316) +eval ($db.ARG_MET = 0.3288) +eval ($db.ARG_PHE = 0.2329) +eval ($db.ARG_PRO = 0.685) +eval ($db.ARG_SER = 0.6028) +eval ($db.ARG_THR = 0.6028) +eval ($db.ARG_TRP = 0.6165) +eval ($db.ARG_TYR = 0.6576) +eval ($db.ARG_VAL = 0.0822) +eval ($db.ARG_NEP = 0.5754) +eval ($db.ASN_ALA = 0.3014) +eval ($db.ASN_ARG = 0.8905) +eval ($db.ASN_ASN = 0.7946) +eval ($db.ASN_ASP = 0.7946) +eval ($db.ASN_CYS = 0.2329) +eval ($db.ASN_GLN = 0.7946) +eval ($db.ASN_GLU = 0.7946) +eval ($db.ASN_GLY = 0.5069) +eval ($db.ASN_HIS = 0.7672) +eval ($db.ASN_ILE = 0.0411) +eval ($db.ASN_LEU = 0.1096) +eval ($db.ASN_LYS = 0.8357) +eval ($db.ASN_MET = 0.2877) +eval ($db.ASN_PHE = 0.2055) +eval ($db.ASN_PRO = 0.6165) +eval ($db.ASN_SER = 0.548) +eval ($db.ASN_THR = 0.5343) +eval ($db.ASN_TRP = 0.548) +eval ($db.ASN_TYR = 0.5891) +eval ($db.ASN_VAL = 0.0685) +eval ($db.ASN_NEP = 0.5069) +eval ($db.ASP_ALA = 0.3014) +eval ($db.ASP_ARG = 0.8905) +eval ($db.ASP_ASN = 0.7946) +eval ($db.ASP_ASP = 0.7946) +eval ($db.ASP_CYS = 0.2329) +eval ($db.ASP_GLN = 0.7946) +eval ($db.ASP_GLU = 0.7946) +eval ($db.ASP_GLY = 0.5069) +eval ($db.ASP_HIS = 0.7672) +eval ($db.ASP_ILE = 0.0411) +eval ($db.ASP_LEU = 0.1096) +eval ($db.ASP_LYS = 0.8357) +eval ($db.ASP_MET = 0.2877) +eval ($db.ASP_PHE = 0.2055) +eval ($db.ASP_PRO = 0.6165) +eval ($db.ASP_SER = 0.548) +eval ($db.ASP_THR = 0.5343) +eval ($db.ASP_TRP = 0.548) +eval ($db.ASP_TYR = 0.5891) +eval ($db.ASP_VAL = 0.0685) +eval ($db.ASP_NEP = 0.5069) +eval ($db.CYS_ALA = 0.0822) +eval ($db.CYS_ARG = 0.2603) +eval ($db.CYS_ASN = 0.2329) +eval ($db.CYS_ASP = 0.2329) +eval ($db.CYS_CYS = 0.0685) +eval ($db.CYS_GLN = 0.2329) +eval ($db.CYS_GLU = 0.2329) +eval ($db.CYS_GLY = 0.1507) +eval ($db.CYS_HIS = 0.2192) +eval ($db.CYS_ILE = 0.0137) +eval ($db.CYS_LEU = 0.0274) +eval ($db.CYS_LYS = 0.2466) +eval ($db.CYS_MET = 0.0822) +eval ($db.CYS_PHE = 0.0548) +eval ($db.CYS_PRO = 0.1781) +eval ($db.CYS_SER = 0.1644) +eval ($db.CYS_THR = 0.1507) +eval ($db.CYS_TRP = 0.1644) +eval ($db.CYS_TYR = 0.1781) +eval ($db.CYS_VAL = 0.0274) +eval ($db.CYS_NEP = 0.1507) +eval ($db.GLN_ALA = 0.3014) +eval ($db.GLN_ARG = 0.8905) +eval ($db.GLN_ASN = 0.7946) +eval ($db.GLN_ASP = 0.7946) +eval ($db.GLN_CYS = 0.2329) +eval ($db.GLN_GLN = 0.7946) +eval ($db.GLN_GLU = 0.7946) +eval ($db.GLN_GLY = 0.5069) +eval ($db.GLN_HIS = 0.7672) +eval ($db.GLN_ILE = 0.0411) +eval ($db.GLN_LEU = 0.1096) +eval ($db.GLN_LYS = 0.8357) +eval ($db.GLN_MET = 0.2877) +eval ($db.GLN_PHE = 0.2055) +eval ($db.GLN_PRO = 0.6165) +eval ($db.GLN_SER = 0.548) +eval ($db.GLN_THR = 0.5343) +eval ($db.GLN_TRP = 0.548) +eval ($db.GLN_TYR = 0.5891) +eval ($db.GLN_VAL = 0.0685) +eval ($db.GLN_NEP = 0.5069) +eval ($db.GLU_ALA = 0.3014) +eval ($db.GLU_ARG = 0.8905) +eval ($db.GLU_ASN = 0.7946) +eval ($db.GLU_ASP = 0.7946) +eval ($db.GLU_CYS = 0.2329) +eval ($db.GLU_GLN = 0.7946) +eval ($db.GLU_GLU = 0.7946) +eval ($db.GLU_GLY = 0.5069) +eval ($db.GLU_HIS = 0.7672) +eval ($db.GLU_ILE = 0.0411) +eval ($db.GLU_LEU = 0.1096) +eval ($db.GLU_LYS = 0.8357) +eval ($db.GLU_MET = 0.2877) +eval ($db.GLU_PHE = 0.2055) +eval ($db.GLU_PRO = 0.6165) +eval ($db.GLU_SER = 0.548) +eval ($db.GLU_THR = 0.5343) +eval ($db.GLU_TRP = 0.548) +eval ($db.GLU_TYR = 0.5891) +eval ($db.GLU_VAL = 0.0685) +eval ($db.GLU_NEP = 0.5069) +eval ($db.GLY_ALA = 0.1918) +eval ($db.GLY_ARG = 0.5617) +eval ($db.GLY_ASN = 0.5069) +eval ($db.GLY_ASP = 0.5069) +eval ($db.GLY_CYS = 0.1507) +eval ($db.GLY_GLN = 0.5069) +eval ($db.GLY_GLU = 0.5069) +eval ($db.GLY_GLY = 0.3151) +eval ($db.GLY_HIS = 0.4932) +eval ($db.GLY_ILE = 0.0274) +eval ($db.GLY_LEU = 0.0685) +eval ($db.GLY_LYS = 0.5343) +eval ($db.GLY_MET = 0.1781) +eval ($db.GLY_PHE = 0.137) +eval ($db.GLY_PRO = 0.3973) +eval ($db.GLY_SER = 0.3425) +eval ($db.GLY_THR = 0.3425) +eval ($db.GLY_TRP = 0.3562) +eval ($db.GLY_TYR = 0.3699) +eval ($db.GLY_VAL = 0.0411) +eval ($db.GLY_NEP = 0.3288) +eval ($db.HIS_ALA = 0.2877) +eval ($db.HIS_ARG = 0.8631) +eval ($db.HIS_ASN = 0.7672) +eval ($db.HIS_ASP = 0.7672) +eval ($db.HIS_CYS = 0.2192) +eval ($db.HIS_GLN = 0.7672) +eval ($db.HIS_GLU = 0.7672) +eval ($db.HIS_GLY = 0.4932) +eval ($db.HIS_HIS = 0.7398) +eval ($db.HIS_ILE = 0.0411) +eval ($db.HIS_LEU = 0.1096) +eval ($db.HIS_LYS = 0.8083) +eval ($db.HIS_MET = 0.274) +eval ($db.HIS_PHE = 0.2055) +eval ($db.HIS_PRO = 0.6028) +eval ($db.HIS_SER = 0.5206) +eval ($db.HIS_THR = 0.5206) +eval ($db.HIS_TRP = 0.5343) +eval ($db.HIS_TYR = 0.5754) +eval ($db.HIS_VAL = 0.0685) +eval ($db.HIS_NEP = 0.4932) +eval ($db.ILE_ALA = 0.0137) +eval ($db.ILE_ARG = 0.0548) +eval ($db.ILE_ASN = 0.0411) +eval ($db.ILE_ASP = 0.0411) +eval ($db.ILE_CYS = 0.0137) +eval ($db.ILE_GLN = 0.0411) +eval ($db.ILE_GLU = 0.0411) +eval ($db.ILE_GLY = 0.0274) +eval ($db.ILE_HIS = 0.0411) +eval ($db.ILE_ILE = 0) +eval ($db.ILE_LEU = 0) +eval ($db.ILE_LYS = 0.0548) +eval ($db.ILE_MET = 0.0137) +eval ($db.ILE_PHE = 0.0137) +eval ($db.ILE_PRO = 0.0411) +eval ($db.ILE_SER = 0.0274) +eval ($db.ILE_THR = 0.0274) +eval ($db.ILE_TRP = 0.0274) +eval ($db.ILE_TYR = 0.0411) +eval ($db.ILE_VAL = 0) +eval ($db.ILE_NEP = 0.0274) +eval ($db.LEU_ALA = 0.0411) +eval ($db.LEU_ARG = 0.1233) +eval ($db.LEU_ASN = 0.1096) +eval ($db.LEU_ASP = 0.1096) +eval ($db.LEU_CYS = 0.0274) +eval ($db.LEU_GLN = 0.1096) +eval ($db.LEU_GLU = 0.1096) +eval ($db.LEU_GLY = 0.0685) +eval ($db.LEU_HIS = 0.1096) +eval ($db.LEU_ILE = 0) +eval ($db.LEU_LEU = 0.0137) +eval ($db.LEU_LYS = 0.1233) +eval ($db.LEU_MET = 0.0411) +eval ($db.LEU_PHE = 0.0274) +eval ($db.LEU_PRO = 0.0822) +eval ($db.LEU_SER = 0.0822) +eval ($db.LEU_THR = 0.0822) +eval ($db.LEU_TRP = 0.0822) +eval ($db.LEU_TYR = 0.0822) +eval ($db.LEU_VAL = 0.0137) +eval ($db.LEU_NEP = 0.0685) +eval ($db.LYS_ALA = 0.3151) +eval ($db.LYS_ARG = 0.9316) +eval ($db.LYS_ASN = 0.8357) +eval ($db.LYS_ASP = 0.8357) +eval ($db.LYS_CYS = 0.2466) +eval ($db.LYS_GLN = 0.8357) +eval ($db.LYS_GLU = 0.8357) +eval ($db.LYS_GLY = 0.5343) +eval ($db.LYS_HIS = 0.8083) +eval ($db.LYS_ILE = 0.0548) +eval ($db.LYS_LEU = 0.1233) +eval ($db.LYS_LYS = 0.8768) +eval ($db.LYS_MET = 0.3014) +eval ($db.LYS_PHE = 0.2192) +eval ($db.LYS_PRO = 0.6439) +eval ($db.LYS_SER = 0.5754) +eval ($db.LYS_THR = 0.5617) +eval ($db.LYS_TRP = 0.5754) +eval ($db.LYS_TYR = 0.6165) +eval ($db.LYS_VAL = 0.0822) +eval ($db.LYS_NEP = 0.5343) +eval ($db.MET_ALA = 0.1096) +eval ($db.MET_ARG = 0.3288) +eval ($db.MET_ASN = 0.2877) +eval ($db.MET_ASP = 0.2877) +eval ($db.MET_CYS = 0.0822) +eval ($db.MET_GLN = 0.2877) +eval ($db.MET_GLU = 0.2877) +eval ($db.MET_GLY = 0.1781) +eval ($db.MET_HIS = 0.274) +eval ($db.MET_ILE = 0.0137) +eval ($db.MET_LEU = 0.0411) +eval ($db.MET_LYS = 0.3014) +eval ($db.MET_MET = 0.1096) +eval ($db.MET_PHE = 0.0685) +eval ($db.MET_PRO = 0.2192) +eval ($db.MET_SER = 0.1918) +eval ($db.MET_THR = 0.1918) +eval ($db.MET_TRP = 0.2055) +eval ($db.MET_TYR = 0.2192) +eval ($db.MET_VAL = 0.0274) +eval ($db.MET_NEP = 0.1918) +eval ($db.PHE_ALA = 0.0822) +eval ($db.PHE_ARG = 0.2329) +eval ($db.PHE_ASN = 0.2055) +eval ($db.PHE_ASP = 0.2055) +eval ($db.PHE_CYS = 0.0548) +eval ($db.PHE_GLN = 0.2055) +eval ($db.PHE_GLU = 0.2055) +eval ($db.PHE_GLY = 0.137) +eval ($db.PHE_HIS = 0.2055) +eval ($db.PHE_ILE = 0.0137) +eval ($db.PHE_LEU = 0.0274) +eval ($db.PHE_LYS = 0.2192) +eval ($db.PHE_MET = 0.0685) +eval ($db.PHE_PHE = 0.0548) +eval ($db.PHE_PRO = 0.1644) +eval ($db.PHE_SER = 0.137) +eval ($db.PHE_THR = 0.137) +eval ($db.PHE_TRP = 0.137) +eval ($db.PHE_TYR = 0.1507) +eval ($db.PHE_VAL = 0.0137) +eval ($db.PHE_NEP = 0.137) +eval ($db.PRO_ALA = 0.2329) +eval ($db.PRO_ARG = 0.685) +eval ($db.PRO_ASN = 0.6165) +eval ($db.PRO_ASP = 0.6165) +eval ($db.PRO_CYS = 0.1781) +eval ($db.PRO_GLN = 0.6165) +eval ($db.PRO_GLU = 0.6165) +eval ($db.PRO_GLY = 0.3973) +eval ($db.PRO_HIS = 0.6028) +eval ($db.PRO_ILE = 0.0411) +eval ($db.PRO_LEU = 0.0822) +eval ($db.PRO_LYS = 0.6439) +eval ($db.PRO_MET = 0.2192) +eval ($db.PRO_PHE = 0.1644) +eval ($db.PRO_PRO = 0.4795) +eval ($db.PRO_SER = 0.4247) +eval ($db.PRO_THR = 0.411) +eval ($db.PRO_TRP = 0.4247) +eval ($db.PRO_TYR = 0.4521) +eval ($db.PRO_VAL = 0.0548) +eval ($db.PRO_NEP = 0.3973) +eval ($db.SER_ALA = 0.2055) +eval ($db.SER_ARG = 0.6028) +eval ($db.SER_ASN = 0.548) +eval ($db.SER_ASP = 0.548) +eval ($db.SER_CYS = 0.1644) +eval ($db.SER_GLN = 0.548) +eval ($db.SER_GLU = 0.548) +eval ($db.SER_GLY = 0.3425) +eval ($db.SER_HIS = 0.5206) +eval ($db.SER_ILE = 0.0274) +eval ($db.SER_LEU = 0.0822) +eval ($db.SER_LYS = 0.5754) +eval ($db.SER_MET = 0.1918) +eval ($db.SER_PHE = 0.137) +eval ($db.SER_PRO = 0.4247) +eval ($db.SER_SER = 0.3699) +eval ($db.SER_THR = 0.3699) +eval ($db.SER_TRP = 0.3836) +eval ($db.SER_TYR = 0.3973) +eval ($db.SER_VAL = 0.0548) +eval ($db.SER_NEP = 0.3562) +eval ($db.THR_ALA = 0.2055) +eval ($db.THR_ARG = 0.6028) +eval ($db.THR_ASN = 0.5343) +eval ($db.THR_ASP = 0.5343) +eval ($db.THR_CYS = 0.1507) +eval ($db.THR_GLN = 0.5343) +eval ($db.THR_GLU = 0.5343) +eval ($db.THR_GLY = 0.3425) +eval ($db.THR_HIS = 0.5206) +eval ($db.THR_ILE = 0.0274) +eval ($db.THR_LEU = 0.0822) +eval ($db.THR_LYS = 0.5617) +eval ($db.THR_MET = 0.1918) +eval ($db.THR_PHE = 0.137) +eval ($db.THR_PRO = 0.411) +eval ($db.THR_SER = 0.3699) +eval ($db.THR_THR = 0.3562) +eval ($db.THR_TRP = 0.3699) +eval ($db.THR_TYR = 0.3973) +eval ($db.THR_VAL = 0.0548) +eval ($db.THR_NEP = 0.3425) +eval ($db.TRP_ALA = 0.2055) +eval ($db.TRP_ARG = 0.6165) +eval ($db.TRP_ASN = 0.548) +eval ($db.TRP_ASP = 0.548) +eval ($db.TRP_CYS = 0.1644) +eval ($db.TRP_GLN = 0.548) +eval ($db.TRP_GLU = 0.548) +eval ($db.TRP_GLY = 0.3562) +eval ($db.TRP_HIS = 0.5343) +eval ($db.TRP_ILE = 0.0274) +eval ($db.TRP_LEU = 0.0822) +eval ($db.TRP_LYS = 0.5754) +eval ($db.TRP_MET = 0.2055) +eval ($db.TRP_PHE = 0.137) +eval ($db.TRP_PRO = 0.4247) +eval ($db.TRP_SER = 0.3836) +eval ($db.TRP_THR = 0.3699) +eval ($db.TRP_TRP = 0.3836) +eval ($db.TRP_TYR = 0.411) +eval ($db.TRP_VAL = 0.0548) +eval ($db.TRP_NEP = 0.3562) +eval ($db.TYR_ALA = 0.2192) +eval ($db.TYR_ARG = 0.6576) +eval ($db.TYR_ASN = 0.5891) +eval ($db.TYR_ASP = 0.5891) +eval ($db.TYR_CYS = 0.1781) +eval ($db.TYR_GLN = 0.5891) +eval ($db.TYR_GLU = 0.5891) +eval ($db.TYR_GLY = 0.3699) +eval ($db.TYR_HIS = 0.5754) +eval ($db.TYR_ILE = 0.0411) +eval ($db.TYR_LEU = 0.0822) +eval ($db.TYR_LYS = 0.6165) +eval ($db.TYR_MET = 0.2192) +eval ($db.TYR_PHE = 0.1507) +eval ($db.TYR_PRO = 0.4521) +eval ($db.TYR_SER = 0.3973) +eval ($db.TYR_THR = 0.3973) +eval ($db.TYR_TRP = 0.411) +eval ($db.TYR_TYR = 0.4384) +eval ($db.TYR_VAL = 0.0548) +eval ($db.TYR_NEP = 0.3836) +eval ($db.VAL_ALA = 0.0274) +eval ($db.VAL_ARG = 0.0822) +eval ($db.VAL_ASN = 0.0685) +eval ($db.VAL_ASP = 0.0685) +eval ($db.VAL_CYS = 0.0274) +eval ($db.VAL_GLN = 0.0685) +eval ($db.VAL_GLU = 0.0685) +eval ($db.VAL_GLY = 0.0411) +eval ($db.VAL_HIS = 0.0685) +eval ($db.VAL_ILE = 0) +eval ($db.VAL_LEU = 0.0137) +eval ($db.VAL_LYS = 0.0822) +eval ($db.VAL_MET = 0.0274) +eval ($db.VAL_PHE = 0.0137) +eval ($db.VAL_PRO = 0.0548) +eval ($db.VAL_SER = 0.0548) +eval ($db.VAL_THR = 0.0548) +eval ($db.VAL_TRP = 0.0548) +eval ($db.VAL_TYR = 0.0548) +eval ($db.VAL_VAL = 0.0137) +eval ($db.VAL_NEP = 0.0411) +eval ($db.NEP_ALA = 0.1918) +eval ($db.NEP_ARG = 0.5754) +eval ($db.NEP_ASN = 0.5069) +eval ($db.NEP_ASP = 0.5069) +eval ($db.NEP_CYS = 0.1507) +eval ($db.NEP_GLN = 0.5069) +eval ($db.NEP_GLU = 0.5069) +eval ($db.NEP_GLY = 0.3288) +eval ($db.NEP_HIS = 0.4932) +eval ($db.NEP_ILE = 0.0274) +eval ($db.NEP_LEU = 0.0685) +eval ($db.NEP_LYS = 0.5343) +eval ($db.NEP_MET = 0.1918) +eval ($db.NEP_PHE = 0.137) +eval ($db.NEP_PRO = 0.3973) +eval ($db.NEP_SER = 0.3562) +eval ($db.NEP_THR = 0.3425) +eval ($db.NEP_TRP = 0.3562) +eval ($db.NEP_TYR = 0.3836) +eval ($db.NEP_VAL = 0.0411) +eval ($db.NEP_NEP = 0.3288) +eval ($db.ALA_ADE = 0.00 ) +eval ($db.ALA_CYT = 0.00 ) +eval ($db.ALA_GUA = 0.00 ) +eval ($db.ALA_THY = 0.00 ) +eval ($db.ARG_ADE = 0.14 ) +eval ($db.ARG_CYT = 0.07 ) +eval ($db.ARG_GUA = 0.14 ) +eval ($db.ARG_THY = 0.08 ) +eval ($db.ASN_ADE = 0.19 ) +eval ($db.ASN_CYT = 0.09 ) +eval ($db.ASN_GUA = 0.22 ) +eval ($db.ASN_THY = 0.10 ) +eval ($db.ASP_ADE = 0.44 ) +eval ($db.ASP_CYT = 0.16 ) +eval ($db.ASP_GUA = 0.10 ) +eval ($db.ASP_THY = 0.05 ) +eval ($db.CYS_ADE = 0.00 ) +eval ($db.CYS_CYT = 0.00 ) +eval ($db.CYS_GUA = 0.00 ) +eval ($db.CYS_THY = 0.00 ) +eval ($db.GLN_ADE = 0.15 ) +eval ($db.GLN_CYT = 0.19 ) +eval ($db.GLN_GUA = 0.15 ) +eval ($db.GLN_THY = 0.13 ) +eval ($db.GLU_ADE = 0.11 ) +eval ($db.GLU_CYT = 0.15 ) +eval ($db.GLU_GUA = 0.13 ) +eval ($db.GLU_THY = 0.00 ) +eval ($db.GLY_ADE = 0.00 ) +eval ($db.GLY_CYT = 0.00 ) +eval ($db.GLY_GUA = 0.00 ) +eval ($db.GLY_THY = 0.00 ) +eval ($db.HIS_ADE = 0.10 ) +eval ($db.HIS_CYT = 0.14 ) +eval ($db.HIS_GUA = 0.18 ) +eval ($db.HIS_THY = 0.06 ) +eval ($db.ILE_ADE = 0.00 ) +eval ($db.ILE_CYT = 0.00 ) +eval ($db.ILE_GUA = 0.00 ) +eval ($db.ILE_THY = 0.00 ) +eval ($db.LEU_ADE = 0.00 ) +eval ($db.LEU_CYT = 0.00 ) +eval ($db.LEU_GUA = 0.00 ) +eval ($db.LEU_THY = 0.00 ) +eval ($db.LYS_ADE = 0.31 ) +eval ($db.LYS_CYT = 0.15 ) +eval ($db.LYS_GUA = 0.29 ) +eval ($db.LYS_THY = 0.18 ) +eval ($db.MET_ADE = 0.00 ) +eval ($db.MET_CYT = 0.00 ) +eval ($db.MET_GUA = 0.00 ) +eval ($db.MET_THY = 0.00 ) +eval ($db.PHE_ADE = 0.00 ) +eval ($db.PHE_CYT = 0.00 ) +eval ($db.PHE_GUA = 0.00 ) +eval ($db.PHE_THY = 0.00 ) +eval ($db.PRO_ADE = 0.00 ) +eval ($db.PRO_CYT = 0.00 ) +eval ($db.PRO_GUA = 0.00 ) +eval ($db.PRO_THY = 0.00 ) +eval ($db.SER_ADE = 0.30 ) +eval ($db.SER_CYT = 0.03 ) +eval ($db.SER_GUA = 0.09 ) +eval ($db.SER_THY = 0.03 ) +eval ($db.THR_ADE = 0.16 ) +eval ($db.THR_CYT = 0.16 ) +eval ($db.THR_GUA = 0.03 ) +eval ($db.THR_THY = 0.05 ) +eval ($db.TRP_ADE = 0.00 ) +eval ($db.TRP_CYT = 0.00 ) +eval ($db.TRP_GUA = 0.00 ) +eval ($db.TRP_THY = 0.00 ) +eval ($db.TYR_ADE = 0.13 ) +eval ($db.TYR_CYT = 0.10 ) +eval ($db.TYR_GUA = 0.10 ) +eval ($db.TYR_THY = 0.02 ) +eval ($db.VAL_ADE = 0.00 ) +eval ($db.VAL_CYT = 0.00 ) +eval ($db.VAL_GUA = 0.00 ) +eval ($db.VAL_THY = 0.00 ) +eval ($db.ADE_ALA = 0.00 ) +eval ($db.CYT_ALA = 0.00 ) +eval ($db.GUA_ALA = 0.00 ) +eval ($db.THY_ALA = 0.00 ) +eval ($db.ADE_ARG = 0.14 ) +eval ($db.CYT_ARG = 0.07 ) +eval ($db.GUA_ARG = 0.14 ) +eval ($db.THY_ARG = 0.08 ) +eval ($db.ADE_ASN = 0.19 ) +eval ($db.CYT_ASN = 0.09 ) +eval ($db.GUA_ASN = 0.22 ) +eval ($db.THY_ASN = 0.10 ) +eval ($db.ADE_ASP = 0.44 ) +eval ($db.CYT_ASP = 0.16 ) +eval ($db.GUA_ASP = 0.10 ) +eval ($db.THY_ASP = 0.05 ) +eval ($db.ADE_CYS = 0.00 ) +eval ($db.CYT_CYS = 0.00 ) +eval ($db.GUA_CYS = 0.00 ) +eval ($db.THY_CYS = 0.00 ) +eval ($db.ADE_GLN = 0.15 ) +eval ($db.CYT_GLN = 0.19 ) +eval ($db.GUA_GLN = 0.15 ) +eval ($db.THY_GLN = 0.13 ) +eval ($db.ADE_GLU = 0.11 ) +eval ($db.CYT_GLU = 0.15 ) +eval ($db.GUA_GLU = 0.13 ) +eval ($db.THY_GLU = 0.00 ) +eval ($db.ADE_GLY = 0.00 ) +eval ($db.CYT_GLY = 0.00 ) +eval ($db.GUA_GLY = 0.00 ) +eval ($db.THY_GLY = 0.00 ) +eval ($db.ADE_HIS = 0.10 ) +eval ($db.CYT_HIS = 0.14 ) +eval ($db.GUA_HIS = 0.18 ) +eval ($db.THY_HIS = 0.06 ) +eval ($db.ADE_ILE = 0.00 ) +eval ($db.CYT_ILE = 0.00 ) +eval ($db.GUA_ILE = 0.00 ) +eval ($db.THY_ILE = 0.00 ) +eval ($db.ADE_LEU = 0.00 ) +eval ($db.CYT_LEU = 0.00 ) +eval ($db.GUA_LEU = 0.00 ) +eval ($db.THY_LEU = 0.00 ) +eval ($db.ADE_LYS = 0.31 ) +eval ($db.CYT_LYS = 0.15 ) +eval ($db.GUA_LYS = 0.29 ) +eval ($db.THY_LYS = 0.18 ) +eval ($db.ADE_MET = 0.00 ) +eval ($db.CYT_MET = 0.00 ) +eval ($db.GUA_MET = 0.00 ) +eval ($db.THY_MET = 0.00 ) +eval ($db.ADE_PHE = 0.00 ) +eval ($db.CYT_PHE = 0.00 ) +eval ($db.GUA_PHE = 0.00 ) +eval ($db.THY_PHE = 0.00 ) +eval ($db.ADE_PRO = 0.00 ) +eval ($db.CYT_PRO = 0.00 ) +eval ($db.GUA_PRO = 0.00 ) +eval ($db.THY_PRO = 0.00 ) +eval ($db.ADE_SER = 0.30 ) +eval ($db.CYT_SER = 0.03 ) +eval ($db.GUA_SER = 0.09 ) +eval ($db.THY_SER = 0.03 ) +eval ($db.ADE_THR = 0.16 ) +eval ($db.CYT_THR = 0.16 ) +eval ($db.GUA_THR = 0.03 ) +eval ($db.THY_THR = 0.05 ) +eval ($db.ADE_TRP = 0.00 ) +eval ($db.CYT_TRP = 0.00 ) +eval ($db.GUA_TRP = 0.00 ) +eval ($db.THY_TRP = 0.00 ) +eval ($db.ADE_TYR = 0.13 ) +eval ($db.CYT_TYR = 0.10 ) +eval ($db.GUA_TYR = 0.10 ) +eval ($db.THY_TYR = 0.02 ) +eval ($db.ADE_VAL = 0.00 ) +eval ($db.CYT_VAL = 0.00 ) +eval ($db.GUA_VAL = 0.00 ) +eval ($db.THY_VAL = 0.00 ) +eval ($db.DP_ALA_ADE = 0.51 ) +eval ($db.DP_ALA_CYT = 0.51 ) +eval ($db.DP_ALA_GUA = 0.51 ) +eval ($db.DP_ALA_THY = 0.51 ) +eval ($db.DP_ARG_ADE = 0.34 ) +eval ($db.DP_ARG_CYT = 0.34 ) +eval ($db.DP_ARG_GUA = 0.34 ) +eval ($db.DP_ARG_THY = 0.34 ) +eval ($db.DP_ASN_ADE = 0.52 ) +eval ($db.DP_ASN_CYT = 0.52 ) +eval ($db.DP_ASN_GUA = 0.52 ) +eval ($db.DP_ASN_THY = 0.52 ) +eval ($db.DP_ASP_ADE = 0.93 ) +eval ($db.DP_ASP_CYT = 0.93 ) +eval ($db.DP_ASP_GUA = 0.93 ) +eval ($db.DP_ASP_THY = 0.93 ) +eval ($db.DP_CYS_ADE = 0.43 ) +eval ($db.DP_CYS_CYT = 0.43 ) +eval ($db.DP_CYS_GUA = 0.43 ) +eval ($db.DP_CYS_THY = 0.43 ) +eval ($db.DP_GLN_ADE = 0.47 ) +eval ($db.DP_GLN_CYT = 0.47 ) +eval ($db.DP_GLN_GUA = 0.47 ) +eval ($db.DP_GLN_THY = 0.47 ) +eval ($db.DP_GLU_ADE = 0.83 ) +eval ($db.DP_GLU_CYT = 0.83 ) +eval ($db.DP_GLU_GUA = 0.83 ) +eval ($db.DP_GLU_THY = 0.83 ) +eval ($db.DP_GLY_ADE = 0.38 ) +eval ($db.DP_GLY_CYT = 0.38 ) +eval ($db.DP_GLY_GUA = 0.38 ) +eval ($db.DP_GLY_THY = 0.38 ) +eval ($db.DP_HIS_ADE = 0.40 ) +eval ($db.DP_HIS_CYT = 0.40 ) +eval ($db.DP_HIS_GUA = 0.40 ) +eval ($db.DP_HIS_THY = 0.40 ) +eval ($db.DP_ILE_ADE = 0.54 ) +eval ($db.DP_ILE_CYT = 0.54 ) +eval ($db.DP_ILE_GUA = 0.54 ) +eval ($db.DP_ILE_THY = 0.54 ) +eval ($db.DP_LEU_ADE = 0.38 ) +eval ($db.DP_LEU_CYT = 0.38 ) +eval ($db.DP_LEU_GUA = 0.38 ) +eval ($db.DP_LEU_THY = 0.38 ) +eval ($db.DP_LYS_ADE = 0.35 ) +eval ($db.DP_LYS_CYT = 0.35 ) +eval ($db.DP_LYS_GUA = 0.35 ) +eval ($db.DP_LYS_THY = 0.35 ) +eval ($db.DP_MET_ADE = 0.50 ) +eval ($db.DP_MET_CYT = 0.50 ) +eval ($db.DP_MET_GUA = 0.50 ) +eval ($db.DP_MET_THY = 0.50 ) +eval ($db.DP_PHE_ADE = 0.75 ) +eval ($db.DP_PHE_CYT = 0.75 ) +eval ($db.DP_PHE_GUA = 0.75 ) +eval ($db.DP_PHE_THY = 0.75 ) +eval ($db.DP_PRO_ADE = 1.00 ) +eval ($db.DP_PRO_CYT = 1.00 ) +eval ($db.DP_PRO_GUA = 1.00 ) +eval ($db.DP_PRO_THY = 1.00 ) +eval ($db.DP_SER_ADE = 0.38 ) +eval ($db.DP_SER_CYT = 0.38 ) +eval ($db.DP_SER_GUA = 0.38 ) +eval ($db.DP_SER_THY = 0.38 ) +eval ($db.DP_THR_ADE = 0.40 ) +eval ($db.DP_THR_CYT = 0.40 ) +eval ($db.DP_THR_GUA = 0.40 ) +eval ($db.DP_THR_THY = 0.40 ) +eval ($db.DP_TRP_ADE = 0.67 ) +eval ($db.DP_TRP_CYT = 0.67 ) +eval ($db.DP_TRP_GUA = 0.67 ) +eval ($db.DP_TRP_THY = 0.67 ) +eval ($db.DP_TYR_ADE = 0.43 ) +eval ($db.DP_TYR_CYT = 0.43 ) +eval ($db.DP_TYR_GUA = 0.43 ) +eval ($db.DP_TYR_THY = 0.43 ) +eval ($db.DP_VAL_ADE = 0.50 ) +eval ($db.DP_VAL_CYT = 0.50 ) +eval ($db.DP_VAL_GUA = 0.50 ) +eval ($db.DP_VAL_THY = 0.50 ) +eval ($db.DP_ADE_ALA = 0.51 ) +eval ($db.DP_CYT_ALA = 0.51 ) +eval ($db.DP_GUA_ALA = 0.51 ) +eval ($db.DP_THY_ALA = 0.51 ) +eval ($db.DP_ADE_ARG = 0.34 ) +eval ($db.DP_CYT_ARG = 0.34 ) +eval ($db.DP_GUA_ARG = 0.34 ) +eval ($db.DP_THY_ARG = 0.34 ) +eval ($db.DP_ADE_ASN = 0.52 ) +eval ($db.DP_CYT_ASN = 0.52 ) +eval ($db.DP_GUA_ASN = 0.52 ) +eval ($db.DP_THY_ASN = 0.52 ) +eval ($db.DP_ADE_ASP = 0.93 ) +eval ($db.DP_CYT_ASP = 0.93 ) +eval ($db.DP_GUA_ASP = 0.93 ) +eval ($db.DP_THY_ASP = 0.93 ) +eval ($db.DP_ADE_CYS = 0.43 ) +eval ($db.DP_CYT_CYS = 0.43 ) +eval ($db.DP_GUA_CYS = 0.43 ) +eval ($db.DP_THY_CYS = 0.43 ) +eval ($db.DP_ADE_GLN = 0.47 ) +eval ($db.DP_CYT_GLN = 0.47 ) +eval ($db.DP_GUA_GLN = 0.47 ) +eval ($db.DP_THY_GLN = 0.47 ) +eval ($db.DP_ADE_GLU = 0.83 ) +eval ($db.DP_CYT_GLU = 0.83 ) +eval ($db.DP_GUA_GLU = 0.83 ) +eval ($db.DP_THY_GLU = 0.83 ) +eval ($db.DP_ADE_GLY = 0.38 ) +eval ($db.DP_CYT_GLY = 0.38 ) +eval ($db.DP_GUA_GLY = 0.38 ) +eval ($db.DP_THY_GLY = 0.38 ) +eval ($db.DP_ADE_HIS = 0.40 ) +eval ($db.DP_CYT_HIS = 0.40 ) +eval ($db.DP_GUA_HIS = 0.40 ) +eval ($db.DP_THY_HIS = 0.40 ) +eval ($db.DP_ADE_ILE = 0.54 ) +eval ($db.DP_CYT_ILE = 0.54 ) +eval ($db.DP_GUA_ILE = 0.54 ) +eval ($db.DP_THY_ILE = 0.54 ) +eval ($db.DP_ADE_LEU = 0.38 ) +eval ($db.DP_CYT_LEU = 0.38 ) +eval ($db.DP_GUA_LEU = 0.38 ) +eval ($db.DP_THY_LEU = 0.38 ) +eval ($db.DP_ADE_LYS = 0.35 ) +eval ($db.DP_CYT_LYS = 0.35 ) +eval ($db.DP_GUA_LYS = 0.35 ) +eval ($db.DP_THY_LYS = 0.35 ) +eval ($db.DP_ADE_MET = 0.50 ) +eval ($db.DP_CYT_MET = 0.50 ) +eval ($db.DP_GUA_MET = 0.50 ) +eval ($db.DP_THY_MET = 0.50 ) +eval ($db.DP_ADE_PHE = 0.75 ) +eval ($db.DP_CYT_PHE = 0.75 ) +eval ($db.DP_GUA_PHE = 0.75 ) +eval ($db.DP_THY_PHE = 0.75 ) +eval ($db.DP_ADE_PRO = 1.00 ) +eval ($db.DP_CYT_PRO = 1.00 ) +eval ($db.DP_GUA_PRO = 1.00 ) +eval ($db.DP_THY_PRO = 1.00 ) +eval ($db.DP_ADE_SER = 0.38 ) +eval ($db.DP_CYT_SER = 0.38 ) +eval ($db.DP_GUA_SER = 0.38 ) +eval ($db.DP_THY_SER = 0.38 ) +eval ($db.DP_ADE_THR = 0.40 ) +eval ($db.DP_CYT_THR = 0.40 ) +eval ($db.DP_GUA_THR = 0.40 ) +eval ($db.DP_THY_THR = 0.40 ) +eval ($db.DP_ADE_TRP = 0.67 ) +eval ($db.DP_CYT_TRP = 0.67 ) +eval ($db.DP_GUA_TRP = 0.67 ) +eval ($db.DP_THY_TRP = 0.67 ) +eval ($db.DP_ADE_TYR = 0.43 ) +eval ($db.DP_CYT_TYR = 0.43 ) +eval ($db.DP_GUA_TYR = 0.43 ) +eval ($db.DP_THY_TYR = 0.43 ) +eval ($db.DP_ADE_VAL = 0.50 ) +eval ($db.DP_CYT_VAL = 0.50 ) +eval ($db.DP_GUA_VAL = 0.50 ) +eval ($db.DP_THY_VAL = 0.50 ) diff --git a/src/haddock/modules/flexref/cns/db_statistical.dat b/src/haddock/modules/flexref/cns/db_statistical.dat new file mode 100644 index 000000000..225a3ae2b --- /dev/null +++ b/src/haddock/modules/flexref/cns/db_statistical.dat @@ -0,0 +1,773 @@ +! db_statistical.dat +! PDB-derived probabilities of finding a water molecule +! between two specific amino acids +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! +eval($db.ALA_ALA = 0.190 ) +eval($db.ALA_ARG = 0.220 ) +eval($db.ALA_ASN = 0.290 ) +eval($db.ALA_ASP = 0.330 ) +eval($db.ALA_CYS = 0.150 ) +eval($db.ALA_GLN = 0.170 ) +eval($db.ALA_GLU = 0.260 ) +eval($db.ALA_GLY = 0.290 ) +eval($db.ALA_HIS = 0.240 ) +eval($db.ALA_NEP = 0.240 ) +eval($db.ALA_ILE = 0.170 ) +eval($db.ALA_LEU = 0.110 ) +eval($db.ALA_LYS = 0.210 ) +eval($db.ALA_MET = 0.240 ) +eval($db.ALA_PHE = 0.070 ) +eval($db.ALA_PRO = 0.240 ) +eval($db.ALA_SER = 0.170 ) +eval($db.ALA_THR = 0.060 ) +eval($db.ALA_TRP = 0.150 ) +eval($db.ALA_TYR = 0.150 ) +eval($db.ALA_VAL = 0.080 ) +eval($db.ARG_ALA = 0.220 ) +eval($db.ARG_ARG = 0.660 ) +eval($db.ARG_ASN = 0.260 ) +eval($db.ARG_ASP = 0.390 ) +eval($db.ARG_CYS = 0.200 ) +eval($db.ARG_GLN = 0.310 ) +eval($db.ARG_GLU = 0.340 ) +eval($db.ARG_GLY = 0.270 ) +eval($db.ARG_HIS = 0.340 ) +eval($db.ARG_NEP = 0.340 ) +eval($db.ARG_ILE = 0.240 ) +eval($db.ARG_LEU = 0.240 ) +eval($db.ARG_LYS = 0.350 ) +eval($db.ARG_MET = 0.300 ) +eval($db.ARG_PHE = 0.090 ) +eval($db.ARG_PRO = 0.340 ) +eval($db.ARG_SER = 0.380 ) +eval($db.ARG_THR = 0.120 ) +eval($db.ARG_TRP = 0.180 ) +eval($db.ARG_TYR = 0.280 ) +eval($db.ARG_VAL = 0.280 ) +eval($db.ASN_ALA = 0.290 ) +eval($db.ASN_ARG = 0.260 ) +eval($db.ASN_ASN = 0.460 ) +eval($db.ASN_ASP = 0.350 ) +eval($db.ASN_CYS = 0.220 ) +eval($db.ASN_GLN = 0.260 ) +eval($db.ASN_GLU = 0.230 ) +eval($db.ASN_GLY = 0.280 ) +eval($db.ASN_HIS = 0.230 ) +eval($db.ASN_NEP = 0.230 ) +eval($db.ASN_ILE = 0.070 ) +eval($db.ASN_LEU = 0.100 ) +eval($db.ASN_LYS = 0.270 ) +eval($db.ASN_MET = 0.190 ) +eval($db.ASN_PHE = 0.050 ) +eval($db.ASN_PRO = 0.110 ) +eval($db.ASN_SER = 0.270 ) +eval($db.ASN_THR = 0.250 ) +eval($db.ASN_TRP = 0.000 ) +eval($db.ASN_TYR = 0.170 ) +eval($db.ASN_VAL = 0.260 ) +eval($db.ASP_ALA = 0.330 ) +eval($db.ASP_ARG = 0.390 ) +eval($db.ASP_ASN = 0.350 ) +eval($db.ASP_ASP = 0.420 ) +eval($db.ASP_CYS = 0.230 ) +eval($db.ASP_GLN = 0.300 ) +eval($db.ASP_GLU = 0.450 ) +eval($db.ASP_GLY = 0.120 ) +eval($db.ASP_HIS = 0.700 ) +eval($db.ASP_NEP = 0.700 ) +eval($db.ASP_ILE = 0.100 ) +eval($db.ASP_LEU = 0.140 ) +eval($db.ASP_LYS = 0.460 ) +eval($db.ASP_MET = 0.190 ) +eval($db.ASP_PHE = 0.310 ) +eval($db.ASP_PRO = 0.130 ) +eval($db.ASP_SER = 0.270 ) +eval($db.ASP_THR = 0.250 ) +eval($db.ASP_TRP = 0.140 ) +eval($db.ASP_TYR = 0.280 ) +eval($db.ASP_VAL = 0.310 ) +eval($db.CYS_ALA = 0.150 ) +eval($db.CYS_ARG = 0.200 ) +eval($db.CYS_ASN = 0.220 ) +eval($db.CYS_ASP = 0.230 ) +eval($db.CYS_CYS = 0.120 ) +eval($db.CYS_GLN = 0.000 ) +eval($db.CYS_GLU = 0.180 ) +eval($db.CYS_GLY = 0.400 ) +eval($db.CYS_HIS = 0.000 ) +eval($db.CYS_NEP = 0.000 ) +eval($db.CYS_ILE = 0.090 ) +eval($db.CYS_LEU = 0.050 ) +eval($db.CYS_LYS = 0.330 ) +eval($db.CYS_MET = 0.000 ) +eval($db.CYS_PHE = 0.000 ) +eval($db.CYS_PRO = 0.200 ) +eval($db.CYS_SER = 0.580 ) +eval($db.CYS_THR = 0.000 ) +eval($db.CYS_TRP = 0.250 ) +eval($db.CYS_TYR = 0.060 ) +eval($db.CYS_VAL = 0.140 ) +eval($db.GLN_ALA = 0.170 ) +eval($db.GLN_ARG = 0.310 ) +eval($db.GLN_ASN = 0.260 ) +eval($db.GLN_ASP = 0.300 ) +eval($db.GLN_CYS = 0.000 ) +eval($db.GLN_GLN = 0.270 ) +eval($db.GLN_GLU = 0.370 ) +eval($db.GLN_GLY = 0.240 ) +eval($db.GLN_HIS = 0.240 ) +eval($db.GLN_NEP = 0.240 ) +eval($db.GLN_ILE = 0.150 ) +eval($db.GLN_LEU = 0.190 ) +eval($db.GLN_LYS = 0.350 ) +eval($db.GLN_MET = 0.230 ) +eval($db.GLN_PHE = 0.000 ) +eval($db.GLN_PRO = 0.570 ) +eval($db.GLN_SER = 0.330 ) +eval($db.GLN_THR = 0.130 ) +eval($db.GLN_TRP = 0.000 ) +eval($db.GLN_TYR = 0.470 ) +eval($db.GLN_VAL = 0.230 ) +eval($db.GLU_ALA = 0.260 ) +eval($db.GLU_ARG = 0.340 ) +eval($db.GLU_ASN = 0.230 ) +eval($db.GLU_ASP = 0.450 ) +eval($db.GLU_CYS = 0.180 ) +eval($db.GLU_GLN = 0.370 ) +eval($db.GLU_GLU = 0.310 ) +eval($db.GLU_GLY = 0.270 ) +eval($db.GLU_HIS = 0.730 ) +eval($db.GLU_NEP = 0.730 ) +eval($db.GLU_ILE = 0.260 ) +eval($db.GLU_LEU = 0.230 ) +eval($db.GLU_LYS = 0.390 ) +eval($db.GLU_MET = 0.250 ) +eval($db.GLU_PHE = 0.270 ) +eval($db.GLU_PRO = 0.290 ) +eval($db.GLU_SER = 0.460 ) +eval($db.GLU_THR = 0.270 ) +eval($db.GLU_TRP = 0.170 ) +eval($db.GLU_TYR = 0.310 ) +eval($db.GLU_VAL = 0.270 ) +eval($db.GLY_ALA = 0.290 ) +eval($db.GLY_ARG = 0.270 ) +eval($db.GLY_ASN = 0.280 ) +eval($db.GLY_ASP = 0.120 ) +eval($db.GLY_CYS = 0.400 ) +eval($db.GLY_GLN = 0.240 ) +eval($db.GLY_GLU = 0.270 ) +eval($db.GLY_GLY = 0.190 ) +eval($db.GLY_HIS = 0.240 ) +eval($db.GLY_NEP = 0.240 ) +eval($db.GLY_ILE = 0.090 ) +eval($db.GLY_LEU = 0.190 ) +eval($db.GLY_LYS = 0.520 ) +eval($db.GLY_MET = 0.420 ) +eval($db.GLY_PHE = 0.200 ) +eval($db.GLY_PRO = 0.250 ) +eval($db.GLY_SER = 0.340 ) +eval($db.GLY_THR = 0.240 ) +eval($db.GLY_TRP = 0.110 ) +eval($db.GLY_TYR = 0.370 ) +eval($db.GLY_VAL = 0.250 ) +eval($db.HIS_ALA = 0.240 ) +eval($db.HIS_ARG = 0.340 ) +eval($db.HIS_ASN = 0.230 ) +eval($db.HIS_ASP = 0.700 ) +eval($db.HIS_CYS = 0.000 ) +eval($db.HIS_GLN = 0.240 ) +eval($db.HIS_GLU = 0.730 ) +eval($db.HIS_GLY = 0.240 ) +eval($db.HIS_HIS = 0.570 ) +eval($db.HIS_NEP = 0.570 ) +eval($db.HIS_ILE = 0.190 ) +eval($db.HIS_LEU = 0.100 ) +eval($db.HIS_LYS = 0.280 ) +eval($db.HIS_MET = 0.380 ) +eval($db.HIS_PHE = 0.000 ) +eval($db.HIS_PRO = 0.170 ) +eval($db.HIS_SER = 0.400 ) +eval($db.HIS_THR = 0.430 ) +eval($db.HIS_TRP = 0.400 ) +eval($db.HIS_TYR = 0.160 ) +eval($db.HIS_VAL = 0.000 ) +eval($db.NEP_ALA = 0.240 ) +eval($db.NEP_ARG = 0.340 ) +eval($db.NEP_ASN = 0.230 ) +eval($db.NEP_ASP = 0.700 ) +eval($db.NEP_CYS = 0.000 ) +eval($db.NEP_GLN = 0.240 ) +eval($db.NEP_GLU = 0.730 ) +eval($db.NEP_GLY = 0.240 ) +eval($db.NEP_NEP = 0.570 ) +eval($db.NEP_HIS = 0.570 ) +eval($db.NEP_ILE = 0.190 ) +eval($db.NEP_LEU = 0.100 ) +eval($db.NEP_LYS = 0.280 ) +eval($db.NEP_MET = 0.380 ) +eval($db.NEP_PHE = 0.000 ) +eval($db.NEP_PRO = 0.170 ) +eval($db.NEP_SER = 0.400 ) +eval($db.NEP_THR = 0.430 ) +eval($db.NEP_TRP = 0.400 ) +eval($db.NEP_TYR = 0.160 ) +eval($db.NEP_VAL = 0.000 ) +eval($db.ILE_ALA = 0.170 ) +eval($db.ILE_ARG = 0.240 ) +eval($db.ILE_ASN = 0.070 ) +eval($db.ILE_ASP = 0.100 ) +eval($db.ILE_CYS = 0.090 ) +eval($db.ILE_GLN = 0.150 ) +eval($db.ILE_GLU = 0.260 ) +eval($db.ILE_GLY = 0.090 ) +eval($db.ILE_HIS = 0.190 ) +eval($db.ILE_NEP = 0.190 ) +eval($db.ILE_ILE = 0.090 ) +eval($db.ILE_LEU = 0.110 ) +eval($db.ILE_LYS = 0.240 ) +eval($db.ILE_MET = 0.040 ) +eval($db.ILE_PHE = 0.030 ) +eval($db.ILE_PRO = 0.100 ) +eval($db.ILE_SER = 0.100 ) +eval($db.ILE_THR = 0.060 ) +eval($db.ILE_TRP = 0.000 ) +eval($db.ILE_TYR = 0.020 ) +eval($db.ILE_VAL = 0.080 ) +eval($db.LEU_ALA = 0.110 ) +eval($db.LEU_ARG = 0.240 ) +eval($db.LEU_ASN = 0.100 ) +eval($db.LEU_ASP = 0.140 ) +eval($db.LEU_CYS = 0.050 ) +eval($db.LEU_GLN = 0.190 ) +eval($db.LEU_GLU = 0.230 ) +eval($db.LEU_GLY = 0.190 ) +eval($db.LEU_HIS = 0.100 ) +eval($db.LEU_NEP = 0.100 ) +eval($db.LEU_ILE = 0.110 ) +eval($db.LEU_LEU = 0.110 ) +eval($db.LEU_LYS = 0.180 ) +eval($db.LEU_MET = 0.270 ) +eval($db.LEU_PHE = 0.030 ) +eval($db.LEU_PRO = 0.120 ) +eval($db.LEU_SER = 0.130 ) +eval($db.LEU_THR = 0.130 ) +eval($db.LEU_TRP = 0.110 ) +eval($db.LEU_TYR = 0.090 ) +eval($db.LEU_VAL = 0.100 ) +eval($db.LYS_ALA = 0.210 ) +eval($db.LYS_ARG = 0.350 ) +eval($db.LYS_ASN = 0.270 ) +eval($db.LYS_ASP = 0.460 ) +eval($db.LYS_CYS = 0.330 ) +eval($db.LYS_GLN = 0.350 ) +eval($db.LYS_GLU = 0.390 ) +eval($db.LYS_GLY = 0.520 ) +eval($db.LYS_HIS = 0.280 ) +eval($db.LYS_NEP = 0.280 ) +eval($db.LYS_ILE = 0.240 ) +eval($db.LYS_LEU = 0.180 ) +eval($db.LYS_LYS = 0.580 ) +eval($db.LYS_MET = 0.210 ) +eval($db.LYS_PHE = 0.280 ) +eval($db.LYS_PRO = 0.200 ) +eval($db.LYS_SER = 0.420 ) +eval($db.LYS_THR = 0.320 ) +eval($db.LYS_TRP = 0.220 ) +eval($db.LYS_TYR = 0.240 ) +eval($db.LYS_VAL = 0.260 ) +eval($db.MET_ALA = 0.240 ) +eval($db.MET_ARG = 0.300 ) +eval($db.MET_ASN = 0.190 ) +eval($db.MET_ASP = 0.190 ) +eval($db.MET_CYS = 0.000 ) +eval($db.MET_GLN = 0.230 ) +eval($db.MET_GLU = 0.250 ) +eval($db.MET_GLY = 0.420 ) +eval($db.MET_HIS = 0.380 ) +eval($db.MET_NEP = 0.380 ) +eval($db.MET_ILE = 0.040 ) +eval($db.MET_LEU = 0.270 ) +eval($db.MET_LYS = 0.210 ) +eval($db.MET_MET = 0.400 ) +eval($db.MET_PHE = 0.000 ) +eval($db.MET_PRO = 0.000 ) +eval($db.MET_SER = 0.120 ) +eval($db.MET_THR = 0.350 ) +eval($db.MET_TRP = 0.240 ) +eval($db.MET_TYR = 0.230 ) +eval($db.MET_VAL = 0.170 ) +eval($db.PHE_ALA = 0.070 ) +eval($db.PHE_ARG = 0.090 ) +eval($db.PHE_ASN = 0.050 ) +eval($db.PHE_ASP = 0.310 ) +eval($db.PHE_CYS = 0.000 ) +eval($db.PHE_GLN = 0.000 ) +eval($db.PHE_GLU = 0.270 ) +eval($db.PHE_GLY = 0.200 ) +eval($db.PHE_HIS = 0.000 ) +eval($db.PHE_NEP = 0.000 ) +eval($db.PHE_ILE = 0.030 ) +eval($db.PHE_LEU = 0.030 ) +eval($db.PHE_LYS = 0.280 ) +eval($db.PHE_MET = 0.000 ) +eval($db.PHE_PHE = 0.000 ) +eval($db.PHE_PRO = 0.000 ) +eval($db.PHE_SER = 0.070 ) +eval($db.PHE_THR = 0.030 ) +eval($db.PHE_TRP = 0.000 ) +eval($db.PHE_TYR = 0.120 ) +eval($db.PHE_VAL = 0.110 ) +eval($db.PRO_ALA = 0.240 ) +eval($db.PRO_ARG = 0.340 ) +eval($db.PRO_ASN = 0.110 ) +eval($db.PRO_ASP = 0.130 ) +eval($db.PRO_CYS = 0.200 ) +eval($db.PRO_GLN = 0.570 ) +eval($db.PRO_GLU = 0.290 ) +eval($db.PRO_GLY = 0.250 ) +eval($db.PRO_HIS = 0.170 ) +eval($db.PRO_NEP = 0.170 ) +eval($db.PRO_ILE = 0.100 ) +eval($db.PRO_LEU = 0.120 ) +eval($db.PRO_LYS = 0.200 ) +eval($db.PRO_MET = 0.000 ) +eval($db.PRO_PHE = 0.000 ) +eval($db.PRO_PRO = 0.300 ) +eval($db.PRO_SER = 0.190 ) +eval($db.PRO_THR = 0.240 ) +eval($db.PRO_TRP = 0.140 ) +eval($db.PRO_TYR = 0.550 ) +eval($db.PRO_VAL = 0.200 ) +eval($db.SER_ALA = 0.170 ) +eval($db.SER_ARG = 0.380 ) +eval($db.SER_ASN = 0.270 ) +eval($db.SER_ASP = 0.270 ) +eval($db.SER_CYS = 0.580 ) +eval($db.SER_GLN = 0.330 ) +eval($db.SER_GLU = 0.460 ) +eval($db.SER_GLY = 0.340 ) +eval($db.SER_HIS = 0.400 ) +eval($db.SER_NEP = 0.400 ) +eval($db.SER_ILE = 0.100 ) +eval($db.SER_LEU = 0.130 ) +eval($db.SER_LYS = 0.420 ) +eval($db.SER_MET = 0.120 ) +eval($db.SER_PHE = 0.070 ) +eval($db.SER_PRO = 0.190 ) +eval($db.SER_SER = 0.130 ) +eval($db.SER_THR = 0.340 ) +eval($db.SER_TRP = 0.000 ) +eval($db.SER_TYR = 0.140 ) +eval($db.SER_VAL = 0.220 ) +eval($db.THR_ALA = 0.060 ) +eval($db.THR_ARG = 0.120 ) +eval($db.THR_ASN = 0.250 ) +eval($db.THR_ASP = 0.250 ) +eval($db.THR_CYS = 0.000 ) +eval($db.THR_GLN = 0.130 ) +eval($db.THR_GLU = 0.270 ) +eval($db.THR_GLY = 0.240 ) +eval($db.THR_HIS = 0.430 ) +eval($db.THR_NEP = 0.430 ) +eval($db.THR_ILE = 0.060 ) +eval($db.THR_LEU = 0.130 ) +eval($db.THR_LYS = 0.320 ) +eval($db.THR_MET = 0.350 ) +eval($db.THR_PHE = 0.030 ) +eval($db.THR_PRO = 0.240 ) +eval($db.THR_SER = 0.340 ) +eval($db.THR_THR = 0.090 ) +eval($db.THR_TRP = 0.000 ) +eval($db.THR_TYR = 0.200 ) +eval($db.THR_VAL = 0.140 ) +eval($db.TRP_ALA = 0.150 ) +eval($db.TRP_ARG = 0.180 ) +eval($db.TRP_ASN = 0.000 ) +eval($db.TRP_ASP = 0.140 ) +eval($db.TRP_CYS = 0.250 ) +eval($db.TRP_GLN = 0.000 ) +eval($db.TRP_GLU = 0.170 ) +eval($db.TRP_GLY = 0.110 ) +eval($db.TRP_HIS = 0.400 ) +eval($db.TRP_NEP = 0.400 ) +eval($db.TRP_ILE = 0.000 ) +eval($db.TRP_LEU = 0.110 ) +eval($db.TRP_LYS = 0.220 ) +eval($db.TRP_MET = 0.240 ) +eval($db.TRP_PHE = 0.000 ) +eval($db.TRP_PRO = 0.140 ) +eval($db.TRP_SER = 0.000 ) +eval($db.TRP_THR = 0.000 ) +eval($db.TRP_TRP = 0.000 ) +eval($db.TRP_TYR = 0.250 ) +eval($db.TRP_VAL = 0.140 ) +eval($db.TYR_ALA = 0.150 ) +eval($db.TYR_ARG = 0.280 ) +eval($db.TYR_ASN = 0.170 ) +eval($db.TYR_ASP = 0.280 ) +eval($db.TYR_CYS = 0.060 ) +eval($db.TYR_GLN = 0.470 ) +eval($db.TYR_GLU = 0.310 ) +eval($db.TYR_GLY = 0.370 ) +eval($db.TYR_HIS = 0.160 ) +eval($db.TYR_NEP = 0.160 ) +eval($db.TYR_ILE = 0.020 ) +eval($db.TYR_LEU = 0.090 ) +eval($db.TYR_LYS = 0.240 ) +eval($db.TYR_MET = 0.230 ) +eval($db.TYR_PHE = 0.120 ) +eval($db.TYR_PRO = 0.550 ) +eval($db.TYR_SER = 0.140 ) +eval($db.TYR_THR = 0.200 ) +eval($db.TYR_TRP = 0.250 ) +eval($db.TYR_TYR = 0.270 ) +eval($db.TYR_VAL = 0.220 ) +eval($db.VAL_ALA = 0.080 ) +eval($db.VAL_ARG = 0.280 ) +eval($db.VAL_ASN = 0.260 ) +eval($db.VAL_ASP = 0.310 ) +eval($db.VAL_CYS = 0.140 ) +eval($db.VAL_GLN = 0.230 ) +eval($db.VAL_GLU = 0.270 ) +eval($db.VAL_GLY = 0.250 ) +eval($db.VAL_HIS = 0.000 ) +eval($db.VAL_NEP = 0.000 ) +eval($db.VAL_ILE = 0.080 ) +eval($db.VAL_LEU = 0.100 ) +eval($db.VAL_LYS = 0.260 ) +eval($db.VAL_MET = 0.170 ) +eval($db.VAL_PHE = 0.110 ) +eval($db.VAL_PRO = 0.200 ) +eval($db.VAL_SER = 0.220 ) +eval($db.VAL_THR = 0.140 ) +eval($db.VAL_TRP = 0.140 ) +eval($db.VAL_TYR = 0.220 ) +eval($db.VAL_VAL = 0.170 ) +eval($db.ALA_ADE = 0.00 ) +eval($db.ALA_CYT = 0.00 ) +eval($db.ALA_GUA = 0.00 ) +eval($db.ALA_THY = 0.00 ) +eval($db.ARG_ADE = 0.14 ) +eval($db.ARG_CYT = 0.07 ) +eval($db.ARG_GUA = 0.14 ) +eval($db.ARG_THY = 0.08 ) +eval($db.ASN_ADE = 0.19 ) +eval($db.ASN_CYT = 0.09 ) +eval($db.ASN_GUA = 0.22 ) +eval($db.ASN_THY = 0.10 ) +eval($db.ASP_ADE = 0.44 ) +eval($db.ASP_CYT = 0.16 ) +eval($db.ASP_GUA = 0.10 ) +eval($db.ASP_THY = 0.05 ) +eval($db.CYS_ADE = 0.00 ) +eval($db.CYS_CYT = 0.00 ) +eval($db.CYS_GUA = 0.00 ) +eval($db.CYS_THY = 0.00 ) +eval($db.GLN_ADE = 0.15 ) +eval($db.GLN_CYT = 0.19 ) +eval($db.GLN_GUA = 0.15 ) +eval($db.GLN_THY = 0.13 ) +eval($db.GLU_ADE = 0.11 ) +eval($db.GLU_CYT = 0.15 ) +eval($db.GLU_GUA = 0.13 ) +eval($db.GLU_THY = 0.00 ) +eval($db.GLY_ADE = 0.00 ) +eval($db.GLY_CYT = 0.00 ) +eval($db.GLY_GUA = 0.00 ) +eval($db.GLY_THY = 0.00 ) +eval($db.HIS_ADE = 0.10 ) +eval($db.HIS_CYT = 0.14 ) +eval($db.HIS_GUA = 0.18 ) +eval($db.HIS_THY = 0.06 ) +eval($db.ILE_ADE = 0.00 ) +eval($db.ILE_CYT = 0.00 ) +eval($db.ILE_GUA = 0.00 ) +eval($db.ILE_THY = 0.00 ) +eval($db.LEU_ADE = 0.00 ) +eval($db.LEU_CYT = 0.00 ) +eval($db.LEU_GUA = 0.00 ) +eval($db.LEU_THY = 0.00 ) +eval($db.LYS_ADE = 0.31 ) +eval($db.LYS_CYT = 0.15 ) +eval($db.LYS_GUA = 0.29 ) +eval($db.LYS_THY = 0.18 ) +eval($db.MET_ADE = 0.00 ) +eval($db.MET_CYT = 0.00 ) +eval($db.MET_GUA = 0.00 ) +eval($db.MET_THY = 0.00 ) +eval($db.PHE_ADE = 0.00 ) +eval($db.PHE_CYT = 0.00 ) +eval($db.PHE_GUA = 0.00 ) +eval($db.PHE_THY = 0.00 ) +eval($db.PRO_ADE = 0.00 ) +eval($db.PRO_CYT = 0.00 ) +eval($db.PRO_GUA = 0.00 ) +eval($db.PRO_THY = 0.00 ) +eval($db.SER_ADE = 0.30 ) +eval($db.SER_CYT = 0.03 ) +eval($db.SER_GUA = 0.09 ) +eval($db.SER_THY = 0.03 ) +eval($db.THR_ADE = 0.16 ) +eval($db.THR_CYT = 0.16 ) +eval($db.THR_GUA = 0.03 ) +eval($db.THR_THY = 0.05 ) +eval($db.TRP_ADE = 0.00 ) +eval($db.TRP_CYT = 0.00 ) +eval($db.TRP_GUA = 0.00 ) +eval($db.TRP_THY = 0.00 ) +eval($db.TYR_ADE = 0.13 ) +eval($db.TYR_CYT = 0.10 ) +eval($db.TYR_GUA = 0.10 ) +eval($db.TYR_THY = 0.02 ) +eval($db.VAL_ADE = 0.00 ) +eval($db.VAL_CYT = 0.00 ) +eval($db.VAL_GUA = 0.00 ) +eval($db.VAL_THY = 0.00 ) +eval($db.ADE_ALA = 0.00 ) +eval($db.CYT_ALA = 0.00 ) +eval($db.GUA_ALA = 0.00 ) +eval($db.THY_ALA = 0.00 ) +eval($db.ADE_ARG = 0.14 ) +eval($db.CYT_ARG = 0.07 ) +eval($db.GUA_ARG = 0.14 ) +eval($db.THY_ARG = 0.08 ) +eval($db.ADE_ASN = 0.19 ) +eval($db.CYT_ASN = 0.09 ) +eval($db.GUA_ASN = 0.22 ) +eval($db.THY_ASN = 0.10 ) +eval($db.ADE_ASP = 0.44 ) +eval($db.CYT_ASP = 0.16 ) +eval($db.GUA_ASP = 0.10 ) +eval($db.THY_ASP = 0.05 ) +eval($db.ADE_CYS = 0.00 ) +eval($db.CYT_CYS = 0.00 ) +eval($db.GUA_CYS = 0.00 ) +eval($db.THY_CYS = 0.00 ) +eval($db.ADE_GLN = 0.15 ) +eval($db.CYT_GLN = 0.19 ) +eval($db.GUA_GLN = 0.15 ) +eval($db.THY_GLN = 0.13 ) +eval($db.ADE_GLU = 0.11 ) +eval($db.CYT_GLU = 0.15 ) +eval($db.GUA_GLU = 0.13 ) +eval($db.THY_GLU = 0.00 ) +eval($db.ADE_GLY = 0.00 ) +eval($db.CYT_GLY = 0.00 ) +eval($db.GUA_GLY = 0.00 ) +eval($db.THY_GLY = 0.00 ) +eval($db.ADE_HIS = 0.10 ) +eval($db.CYT_HIS = 0.14 ) +eval($db.GUA_HIS = 0.18 ) +eval($db.THY_HIS = 0.06 ) +eval($db.ADE_ILE = 0.00 ) +eval($db.CYT_ILE = 0.00 ) +eval($db.GUA_ILE = 0.00 ) +eval($db.THY_ILE = 0.00 ) +eval($db.ADE_LEU = 0.00 ) +eval($db.CYT_LEU = 0.00 ) +eval($db.GUA_LEU = 0.00 ) +eval($db.THY_LEU = 0.00 ) +eval($db.ADE_LYS = 0.31 ) +eval($db.CYT_LYS = 0.15 ) +eval($db.GUA_LYS = 0.29 ) +eval($db.THY_LYS = 0.18 ) +eval($db.ADE_MET = 0.00 ) +eval($db.CYT_MET = 0.00 ) +eval($db.GUA_MET = 0.00 ) +eval($db.THY_MET = 0.00 ) +eval($db.ADE_PHE = 0.00 ) +eval($db.CYT_PHE = 0.00 ) +eval($db.GUA_PHE = 0.00 ) +eval($db.THY_PHE = 0.00 ) +eval($db.ADE_PRO = 0.00 ) +eval($db.CYT_PRO = 0.00 ) +eval($db.GUA_PRO = 0.00 ) +eval($db.THY_PRO = 0.00 ) +eval($db.ADE_SER = 0.30 ) +eval($db.CYT_SER = 0.03 ) +eval($db.GUA_SER = 0.09 ) +eval($db.THY_SER = 0.03 ) +eval($db.ADE_THR = 0.16 ) +eval($db.CYT_THR = 0.16 ) +eval($db.GUA_THR = 0.03 ) +eval($db.THY_THR = 0.05 ) +eval($db.ADE_TRP = 0.00 ) +eval($db.CYT_TRP = 0.00 ) +eval($db.GUA_TRP = 0.00 ) +eval($db.THY_TRP = 0.00 ) +eval($db.ADE_TYR = 0.13 ) +eval($db.CYT_TYR = 0.10 ) +eval($db.GUA_TYR = 0.10 ) +eval($db.THY_TYR = 0.02 ) +eval($db.ADE_VAL = 0.00 ) +eval($db.CYT_VAL = 0.00 ) +eval($db.GUA_VAL = 0.00 ) +eval($db.THY_VAL = 0.00 ) +eval($db.DP_ALA_ADE = 0.51 ) +eval($db.DP_ALA_CYT = 0.51 ) +eval($db.DP_ALA_GUA = 0.51 ) +eval($db.DP_ALA_THY = 0.51 ) +eval($db.DP_ARG_ADE = 0.34 ) +eval($db.DP_ARG_CYT = 0.34 ) +eval($db.DP_ARG_GUA = 0.34 ) +eval($db.DP_ARG_THY = 0.34 ) +eval($db.DP_ASN_ADE = 0.52 ) +eval($db.DP_ASN_CYT = 0.52 ) +eval($db.DP_ASN_GUA = 0.52 ) +eval($db.DP_ASN_THY = 0.52 ) +eval($db.DP_ASP_ADE = 0.93 ) +eval($db.DP_ASP_CYT = 0.93 ) +eval($db.DP_ASP_GUA = 0.93 ) +eval($db.DP_ASP_THY = 0.93 ) +eval($db.DP_CYS_ADE = 0.43 ) +eval($db.DP_CYS_CYT = 0.43 ) +eval($db.DP_CYS_GUA = 0.43 ) +eval($db.DP_CYS_THY = 0.43 ) +eval($db.DP_GLN_ADE = 0.47 ) +eval($db.DP_GLN_CYT = 0.47 ) +eval($db.DP_GLN_GUA = 0.47 ) +eval($db.DP_GLN_THY = 0.47 ) +eval($db.DP_GLU_ADE = 0.83 ) +eval($db.DP_GLU_CYT = 0.83 ) +eval($db.DP_GLU_GUA = 0.83 ) +eval($db.DP_GLU_THY = 0.83 ) +eval($db.DP_GLY_ADE = 0.38 ) +eval($db.DP_GLY_CYT = 0.38 ) +eval($db.DP_GLY_GUA = 0.38 ) +eval($db.DP_GLY_THY = 0.38 ) +eval($db.DP_HIS_ADE = 0.40 ) +eval($db.DP_HIS_CYT = 0.40 ) +eval($db.DP_HIS_GUA = 0.40 ) +eval($db.DP_HIS_THY = 0.40 ) +eval($db.DP_ILE_ADE = 0.54 ) +eval($db.DP_ILE_CYT = 0.54 ) +eval($db.DP_ILE_GUA = 0.54 ) +eval($db.DP_ILE_THY = 0.54 ) +eval($db.DP_LEU_ADE = 0.38 ) +eval($db.DP_LEU_CYT = 0.38 ) +eval($db.DP_LEU_GUA = 0.38 ) +eval($db.DP_LEU_THY = 0.38 ) +eval($db.DP_LYS_ADE = 0.35 ) +eval($db.DP_LYS_CYT = 0.35 ) +eval($db.DP_LYS_GUA = 0.35 ) +eval($db.DP_LYS_THY = 0.35 ) +eval($db.DP_MET_ADE = 0.50 ) +eval($db.DP_MET_CYT = 0.50 ) +eval($db.DP_MET_GUA = 0.50 ) +eval($db.DP_MET_THY = 0.50 ) +eval($db.DP_PHE_ADE = 0.75 ) +eval($db.DP_PHE_CYT = 0.75 ) +eval($db.DP_PHE_GUA = 0.75 ) +eval($db.DP_PHE_THY = 0.75 ) +eval($db.DP_PRO_ADE = 1.00 ) +eval($db.DP_PRO_CYT = 1.00 ) +eval($db.DP_PRO_GUA = 1.00 ) +eval($db.DP_PRO_THY = 1.00 ) +eval($db.DP_SER_ADE = 0.38 ) +eval($db.DP_SER_CYT = 0.38 ) +eval($db.DP_SER_GUA = 0.38 ) +eval($db.DP_SER_THY = 0.38 ) +eval($db.DP_THR_ADE = 0.40 ) +eval($db.DP_THR_CYT = 0.40 ) +eval($db.DP_THR_GUA = 0.40 ) +eval($db.DP_THR_THY = 0.40 ) +eval($db.DP_TRP_ADE = 0.67 ) +eval($db.DP_TRP_CYT = 0.67 ) +eval($db.DP_TRP_GUA = 0.67 ) +eval($db.DP_TRP_THY = 0.67 ) +eval($db.DP_TYR_ADE = 0.43 ) +eval($db.DP_TYR_CYT = 0.43 ) +eval($db.DP_TYR_GUA = 0.43 ) +eval($db.DP_TYR_THY = 0.43 ) +eval($db.DP_VAL_ADE = 0.50 ) +eval($db.DP_VAL_CYT = 0.50 ) +eval($db.DP_VAL_GUA = 0.50 ) +eval($db.DP_VAL_THY = 0.50 ) +eval($db.DP_ADE_ALA = 0.51 ) +eval($db.DP_CYT_ALA = 0.51 ) +eval($db.DP_GUA_ALA = 0.51 ) +eval($db.DP_THY_ALA = 0.51 ) +eval($db.DP_ADE_ARG = 0.34 ) +eval($db.DP_CYT_ARG = 0.34 ) +eval($db.DP_GUA_ARG = 0.34 ) +eval($db.DP_THY_ARG = 0.34 ) +eval($db.DP_ADE_ASN = 0.52 ) +eval($db.DP_CYT_ASN = 0.52 ) +eval($db.DP_GUA_ASN = 0.52 ) +eval($db.DP_THY_ASN = 0.52 ) +eval($db.DP_ADE_ASP = 0.93 ) +eval($db.DP_CYT_ASP = 0.93 ) +eval($db.DP_GUA_ASP = 0.93 ) +eval($db.DP_THY_ASP = 0.93 ) +eval($db.DP_ADE_CYS = 0.43 ) +eval($db.DP_CYT_CYS = 0.43 ) +eval($db.DP_GUA_CYS = 0.43 ) +eval($db.DP_THY_CYS = 0.43 ) +eval($db.DP_ADE_GLN = 0.47 ) +eval($db.DP_CYT_GLN = 0.47 ) +eval($db.DP_GUA_GLN = 0.47 ) +eval($db.DP_THY_GLN = 0.47 ) +eval($db.DP_ADE_GLU = 0.83 ) +eval($db.DP_CYT_GLU = 0.83 ) +eval($db.DP_GUA_GLU = 0.83 ) +eval($db.DP_THY_GLU = 0.83 ) +eval($db.DP_ADE_GLY = 0.38 ) +eval($db.DP_CYT_GLY = 0.38 ) +eval($db.DP_GUA_GLY = 0.38 ) +eval($db.DP_THY_GLY = 0.38 ) +eval($db.DP_ADE_HIS = 0.40 ) +eval($db.DP_CYT_HIS = 0.40 ) +eval($db.DP_GUA_HIS = 0.40 ) +eval($db.DP_THY_HIS = 0.40 ) +eval($db.DP_ADE_ILE = 0.54 ) +eval($db.DP_CYT_ILE = 0.54 ) +eval($db.DP_GUA_ILE = 0.54 ) +eval($db.DP_THY_ILE = 0.54 ) +eval($db.DP_ADE_LEU = 0.38 ) +eval($db.DP_CYT_LEU = 0.38 ) +eval($db.DP_GUA_LEU = 0.38 ) +eval($db.DP_THY_LEU = 0.38 ) +eval($db.DP_ADE_LYS = 0.35 ) +eval($db.DP_CYT_LYS = 0.35 ) +eval($db.DP_GUA_LYS = 0.35 ) +eval($db.DP_THY_LYS = 0.35 ) +eval($db.DP_ADE_MET = 0.50 ) +eval($db.DP_CYT_MET = 0.50 ) +eval($db.DP_GUA_MET = 0.50 ) +eval($db.DP_THY_MET = 0.50 ) +eval($db.DP_ADE_PHE = 0.75 ) +eval($db.DP_CYT_PHE = 0.75 ) +eval($db.DP_GUA_PHE = 0.75 ) +eval($db.DP_THY_PHE = 0.75 ) +eval($db.DP_ADE_PRO = 1.00 ) +eval($db.DP_CYT_PRO = 1.00 ) +eval($db.DP_GUA_PRO = 1.00 ) +eval($db.DP_THY_PRO = 1.00 ) +eval($db.DP_ADE_SER = 0.38 ) +eval($db.DP_CYT_SER = 0.38 ) +eval($db.DP_GUA_SER = 0.38 ) +eval($db.DP_THY_SER = 0.38 ) +eval($db.DP_ADE_THR = 0.40 ) +eval($db.DP_CYT_THR = 0.40 ) +eval($db.DP_GUA_THR = 0.40 ) +eval($db.DP_THY_THR = 0.40 ) +eval($db.DP_ADE_TRP = 0.67 ) +eval($db.DP_CYT_TRP = 0.67 ) +eval($db.DP_GUA_TRP = 0.67 ) +eval($db.DP_THY_TRP = 0.67 ) +eval($db.DP_ADE_TYR = 0.43 ) +eval($db.DP_CYT_TYR = 0.43 ) +eval($db.DP_GUA_TYR = 0.43 ) +eval($db.DP_THY_TYR = 0.43 ) +eval($db.DP_ADE_VAL = 0.50 ) +eval($db.DP_CYT_VAL = 0.50 ) +eval($db.DP_GUA_VAL = 0.50 ) +eval($db.DP_THY_VAL = 0.50 ) diff --git a/src/haddock/modules/flexref/cns/dbene-methanol.dat b/src/haddock/modules/flexref/cns/dbene-methanol.dat new file mode 100644 index 000000000..952b27198 --- /dev/null +++ b/src/haddock/modules/flexref/cns/dbene-methanol.dat @@ -0,0 +1,105 @@ +! dbmethene-methanol.dat +! amino-acids - bases free energies of interaction in methanol from +! de Ruiter, A., & Zagrovic, B. (2015). +! Absolute binding-free energies between standard RNA/DNA nucleobases +! and amino-acid sidechain analogs in different environments. +! Nucleic Acids Research, 43(2), 708-718. http://doi.org/10.1093/nar/gku1344 +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! +eval ($dbmethene.ALA_ADE = 1.2 ) +eval ($dbmethene.ALA_CYT = 2.5 ) +eval ($dbmethene.ALA_GUA = 3.0 ) +eval ($dbmethene.ALA_URI = 1.3 ) +eval ($dbmethene.ALA_THY = 0.9 ) +eval ($dbmethene.ARG_ADE = 2.8 ) +eval ($dbmethene.ARG_CYT = 0.8 ) +eval ($dbmethene.ARG_GUA = -1.7 ) +eval ($dbmethene.ARG_URI = 1.1 ) +eval ($dbmethene.ARG_THY = 0.9 ) +eval ($dbmethene.ASN_ADE = 0.5 ) +eval ($dbmethene.ASN_CYT = 0.8 ) +eval ($dbmethene.ASN_GUA = 2.0 ) +eval ($dbmethene.ASN_URI = 1.4 ) +eval ($dbmethene.ASN_THY = 1.2 ) +eval ($dbmethene.ASP_ADE = 1.8 ) +eval ($dbmethene.ASP_CYT = -1.9 ) +eval ($dbmethene.ASP_GUA = -6.4 ) +eval ($dbmethene.ASP_URI = 3.0 ) +eval ($dbmethene.ASP_THY = 5.3 ) +eval ($dbmethene.CYS_ADE = 0.4 ) +eval ($dbmethene.CYS_CYT = 0.8 ) +eval ($dbmethene.CYS_GUA = 1.7 ) +eval ($dbmethene.CYS_URI = 1.1 ) +eval ($dbmethene.CYS_THY = 1.5 ) +eval ($dbmethene.GLN_ADE = 0.8 ) +eval ($dbmethene.GLN_CYT = 0.8 ) +eval ($dbmethene.GLN_GUA = 1.4 ) +eval ($dbmethene.GLN_URI = 0.8 ) +eval ($dbmethene.GLN_THY = 1.4 ) +eval ($dbmethene.GLU_ADE = 2.3 ) +eval ($dbmethene.GLU_CYT = -1.6 ) +eval ($dbmethene.GLU_GUA = -7.0 ) +eval ($dbmethene.GLU_URI = 3.2 ) +eval ($dbmethene.GLU_THY = 4.7 ) +eval ($dbmethene.HIS_ADE = 0.8 ) !HISH value +eval ($dbmethene.HIS_CYT = -1.7) !HISH value +eval ($dbmethene.HIS_GUA = -1.9 )!HISH value +eval ($dbmethene.HIS_URI = 0.5 ) !HISH value +eval ($dbmethene.HIS_THY = 1.0 ) !HISH value +eval ($dbmethene.ILE_ADE = 0.7 ) +eval ($dbmethene.ILE_CYT = 1.3 ) +eval ($dbmethene.ILE_GUA = 1.2 ) +eval ($dbmethene.ILE_URI = -0.3 ) +eval ($dbmethene.ILE_THY = 0.0 ) +eval ($dbmethene.LEU_ADE = 0.1 ) +eval ($dbmethene.LEU_CYT = 0.2 ) +eval ($dbmethene.LEU_GUA = 1.7 ) +eval ($dbmethene.LEU_URI = 0.8 ) +eval ($dbmethene.LEU_THY = 0.1 ) +eval ($dbmethene.LYS_ADE = 3.0 ) +eval ($dbmethene.LYS_CYT = -0.1 ) +eval ($dbmethene.LYS_GUA = -1.0 ) +eval ($dbmethene.LYS_URI = 1.7 ) +eval ($dbmethene.LYS_THY = 2.2 ) +eval ($dbmethene.MET_ADE = -0.3 ) +eval ($dbmethene.MET_CYT = 1.2 ) +eval ($dbmethene.MET_GUA = -1.0 ) +eval ($dbmethene.MET_URI = -0.3 ) +eval ($dbmethene.MET_THY = -0.9 ) +eval ($dbmethene.PHE_ADE = -0.7 ) +eval ($dbmethene.PHE_CYT = 0.8 ) +eval ($dbmethene.PHE_GUA = -0.1 ) +eval ($dbmethene.PHE_URI = -0.6 ) +eval ($dbmethene.PHE_THY = 1.8 ) +eval ($dbmethene.SER_ADE = 1.1 ) +eval ($dbmethene.SER_CYT = 2.4 ) +eval ($dbmethene.SER_GUA = 3.2 ) +eval ($dbmethene.SER_URI = 2.0 ) +eval ($dbmethene.SER_THY = 3.0 ) +eval ($dbmethene.THR_ADE = 0.4 ) +eval ($dbmethene.THR_CYT = 1.8 ) +eval ($dbmethene.THR_GUA = 2.6 ) +eval ($dbmethene.THR_URI = 1.5 ) +eval ($dbmethene.THR_THY = 2.8 ) +eval ($dbmethene.TRP_ADE = -1.2 ) +eval ($dbmethene.TRP_CYT = 0.2 ) +eval ($dbmethene.TRP_GUA = -0.6 ) +eval ($dbmethene.TRP_URI = 0.1 ) +eval ($dbmethene.TRP_THY = -0.9 ) +eval ($dbmethene.TYR_ADE = 0.1 ) +eval ($dbmethene.TYR_CYT = -0.3 ) +eval ($dbmethene.TYR_GUA = -0.1 ) +eval ($dbmethene.TYR_URI = -0.7 ) +eval ($dbmethene.TYR_THY = -1.0 ) +eval ($dbmethene.VAL_ADE = 0.1 ) +eval ($dbmethene.VAL_CYT = 1.3 ) +eval ($dbmethene.VAL_GUA = 1.9 ) +eval ($dbmethene.VAL_URI = 0.0 ) +eval ($dbmethene.VAL_THY = 0.0 ) diff --git a/src/haddock/modules/flexref/cns/dbene-water.dat b/src/haddock/modules/flexref/cns/dbene-water.dat new file mode 100644 index 000000000..ebb34b45d --- /dev/null +++ b/src/haddock/modules/flexref/cns/dbene-water.dat @@ -0,0 +1,105 @@ +! dbwatene-water.dat +! amino-acids - bases free energies of interaction in water from +! de Ruiter, A., & Zagrovic, B. (2015). +! Absolute binding-free energies between standard RNA/DNA nucleobases +! and amino-acid sidechain analogs in different environments. +! Nucleic Acids Research, 43(2), 708-718. http://doi.org/10.1093/nar/gku1344 +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! +eval ($dbwatene.ALA_ADE = 0.2 ) +eval ($dbwatene.ALA_CYT = 0.9 ) +eval ($dbwatene.ALA_GUA = 1.0 ) +eval ($dbwatene.ALA_URI = 0.4 ) +eval ($dbwatene.ALA_THY = 0.3 ) +eval ($dbwatene.ARG_ADE = -0.8 ) +eval ($dbwatene.ARG_CYT = -1.1 ) +eval ($dbwatene.ARG_GUA = -1.2 ) +eval ($dbwatene.ARG_URI = -0.5 ) +eval ($dbwatene.ARG_THY = 0.3 ) +eval ($dbwatene.ASN_ADE = -1.0 ) +eval ($dbwatene.ASN_CYT = -0.7 ) +eval ($dbwatene.ASN_GUA = -0.6 ) +eval ($dbwatene.ASN_URI = -0.7 ) +eval ($dbwatene.ASN_THY = -0.7 ) +eval ($dbwatene.ASP_ADE = 0.5 ) +eval ($dbwatene.ASP_CYT = 2.5 ) +eval ($dbwatene.ASP_GUA = 1.0 ) +eval ($dbwatene.ASP_URI = 2.8 ) +eval ($dbwatene.ASP_THY = 3.7 ) +eval ($dbwatene.CYS_ADE = -1.2 ) +eval ($dbwatene.CYS_CYT = -0.2 ) +eval ($dbwatene.CYS_GUA = -0.9 ) +eval ($dbwatene.CYS_URI = -0.8 ) +eval ($dbwatene.CYS_THY = -0.6 ) +eval ($dbwatene.GLN_ADE = -2.0 ) +eval ($dbwatene.GLN_CYT = -0.5 ) +eval ($dbwatene.GLN_GUA = -2.2 ) +eval ($dbwatene.GLN_URI = -1.5 ) +eval ($dbwatene.GLN_THY = -1.9 ) +eval ($dbwatene.GLU_ADE = 2.0 ) +eval ($dbwatene.GLU_CYT = 1.6 ) +eval ($dbwatene.GLU_GUA = -0.3 ) +eval ($dbwatene.GLU_URI = 2.2 ) +eval ($dbwatene.GLU_THY = 3.7 ) +eval ($dbwatene.HIS_ADE = -0.7 ) !HISH value +eval ($dbwatene.HIS_CYT = 0.0) !HISH value +eval ($dbwatene.HIS_GUA = -0.6 )!HISH value +eval ($dbwatene.HIS_URI = 0.5 ) !HISH value +eval ($dbwatene.HIS_THY = 0.2 ) !HISH value +eval ($dbwatene.ILE_ADE = -2.8 ) +eval ($dbwatene.ILE_CYT = -1.9 ) +eval ($dbwatene.ILE_GUA = -2.6 ) +eval ($dbwatene.ILE_URI = -1.5 ) +eval ($dbwatene.ILE_THY = -1.6 ) +eval ($dbwatene.LEU_ADE = -2.0 ) +eval ($dbwatene.LEU_CYT = -1.9 ) +eval ($dbwatene.LEU_GUA = -2.6 ) +eval ($dbwatene.LEU_URI = -1.8 ) +eval ($dbwatene.LEU_THY = -1.7 ) +eval ($dbwatene.LYS_ADE = 0.9 ) +eval ($dbwatene.LYS_CYT = 1.4 ) +eval ($dbwatene.LYS_GUA = -0.5 ) +eval ($dbwatene.LYS_URI = 0.6 ) +eval ($dbwatene.LYS_THY = 0.9 ) +eval ($dbwatene.MET_ADE = -2.5 ) +eval ($dbwatene.MET_CYT = -1.4 ) +eval ($dbwatene.MET_GUA = -2.2 ) +eval ($dbwatene.MET_URI = -2.1 ) +eval ($dbwatene.MET_THY = -2.3 ) +eval ($dbwatene.PHE_ADE = -3.3 ) +eval ($dbwatene.PHE_CYT = -2.7 ) +eval ($dbwatene.PHE_GUA = -3.6 ) +eval ($dbwatene.PHE_URI = -3.1 ) +eval ($dbwatene.PHE_THY = -3.9 ) +eval ($dbwatene.SER_ADE = 0.3 ) +eval ($dbwatene.SER_CYT = 1.1 ) +eval ($dbwatene.SER_GUA = 1.1 ) +eval ($dbwatene.SER_URI = 0.5 ) +eval ($dbwatene.SER_THY = -0.4 ) +eval ($dbwatene.THR_ADE = -0.5 ) +eval ($dbwatene.THR_CYT = 0.6 ) +eval ($dbwatene.THR_GUA = 0.2 ) +eval ($dbwatene.THR_URI = -0.2 ) +eval ($dbwatene.THR_THY = -0.7 ) +eval ($dbwatene.TRP_ADE = -3.8 ) +eval ($dbwatene.TRP_CYT = -3.6) +eval ($dbwatene.TRP_GUA = -4.8 ) +eval ($dbwatene.TRP_URI = -4.8 ) +eval ($dbwatene.TRP_THY = -6.1 ) +eval ($dbwatene.TYR_ADE = -3.9 ) +eval ($dbwatene.TYR_CYT = -3.3 ) +eval ($dbwatene.TYR_GUA = -5.1 ) +eval ($dbwatene.TYR_URI = -3.3 ) +eval ($dbwatene.TYR_THY = -4.3 ) +eval ($dbwatene.VAL_ADE = -1.5 ) +eval ($dbwatene.VAL_CYT = -1.2 ) +eval ($dbwatene.VAL_GUA = -1.4 ) +eval ($dbwatene.VAL_URI = -1.0 ) +eval ($dbwatene.VAL_THY = -1.1 ) diff --git a/src/haddock/modules/flexref/cns/def_solv_param.cns b/src/haddock/modules/flexref/cns/def_solv_param.cns new file mode 100644 index 000000000..cf0f19b8f --- /dev/null +++ b/src/haddock/modules/flexref/cns/def_solv_param.cns @@ -0,0 +1,17 @@ +! +! Define atomic solvation parameters taken from Fernandez-Recia et al. JMB 335:843 (2004) +! +evaluate ($arofac = 6.26) +evaluate ($alifac = 1.27) +evaluate ($polfac = 2.30) +do (store1 = 0.0000) (all) +do (store1 = 0.0151 * $alifac) (name C*) +do (store1 = 0.0176 * $arofac) ((name CG* or name CD* or name CE* or name CH* or name CZ*) and (resn PHE or resn TYR or resn HIS or resn TRP)) +do (store1 = -0.0170 * $polfac) (name N*) +do (store1 = -0.0548 * $polfac) (name NT* or (name NZ* and resn LYS)) +do (store1 = -0.0273 * $polfac) (name NH* and resn ARG) +do (store1 = -0.0136 * $polfac) (name O*) +do (store1 = -0.0185 * $polfac) (name OG* or name OH) +do (store1 = -0.0299 * $polfac) ((name OD* and resn ASP) or (name OE* and resn GLU)) +do (store1 = 0.0112 * $polfac) (name S*) +do (store1 = 0.0022 * $polfac) ((name S* and attr charge = -0.3) or (name SD and resn MET)) diff --git a/src/haddock/modules/flexref/cns/default.py b/src/haddock/modules/flexref/cns/default.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/haddock/modules/flexref/cns/dmso.pdb b/src/haddock/modules/flexref/cns/dmso.pdb new file mode 100644 index 000000000..8a8c1e603 --- /dev/null +++ b/src/haddock/modules/flexref/cns/dmso.pdb @@ -0,0 +1,852 @@ +! dmso.pdb +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! +REMARK DMSO Box, Alexandre Bonvin, Utrecht University, Jan. 2002 +REMARK This is a DMSO cubic box containing 208 molecules taken +REMARK from the GROMACS 3.0 distribution. +REMARK The box size is 29.096 A resulting in the proper +REMARK experimental density of 1.0955 g/cm**3 for DMSO at 298K. +REMARK This box was equilibrated for 1 ns at 300K under NVT +REMARK conditions using the DMSO parameters from Liu et al +REMARK JACS 117:4363 (1995). The total energy of the system is +REMARK -10197 kJ mol-1 +ATOM 1 SD DMS 1 13.280 17.430 7.870 1.00 0.000 +ATOM 2 CD1 DMS 1 14.750 16.810 6.750 1.00 0.000 +ATOM 3 OD DMS 1 13.790 18.670 8.600 1.00 0.000 +ATOM 4 CD2 DMS 1 12.130 17.950 6.380 1.00 0.000 +ATOM 5 SD DMS 2 9.010 10.650 6.690 1.00 0.000 +ATOM 6 CD1 DMS 2 10.220 9.560 7.770 1.00 0.000 +ATOM 7 OD DMS 2 8.480 11.860 7.450 1.00 0.000 +ATOM 8 CD2 DMS 2 10.320 11.160 5.340 1.00 0.000 +ATOM 9 SD DMS 3 21.660 13.440 9.220 1.00 0.000 +ATOM 10 CD1 DMS 3 21.240 12.090 7.870 1.00 0.000 +ATOM 11 OD DMS 3 21.620 12.660 10.530 1.00 0.000 +ATOM 12 CD2 DMS 3 23.500 13.760 8.650 1.00 0.000 +ATOM 13 SD DMS 4 4.640 13.540 9.630 1.00 0.000 +ATOM 14 CD1 DMS 4 5.880 13.380 8.140 1.00 0.000 +ATOM 15 OD DMS 4 5.130 12.610 10.750 1.00 0.000 +ATOM 16 CD2 DMS 4 5.320 15.280 10.190 1.00 0.000 +ATOM 17 SD DMS 5 3.110 18.030 23.680 1.00 0.000 +ATOM 18 CD1 DMS 5 4.070 19.520 22.870 1.00 0.000 +ATOM 19 OD DMS 5 1.650 18.290 24.070 1.00 0.000 +ATOM 20 CD2 DMS 5 3.120 16.730 22.230 1.00 0.000 +ATOM 21 SD DMS 6 0.390 27.450 12.750 1.00 0.000 +ATOM 22 CD1 DMS 6 -0.410 25.830 13.480 1.00 0.000 +ATOM 23 OD DMS 6 -0.670 28.490 12.380 1.00 0.000 +ATOM 24 CD2 DMS 6 1.160 27.840 14.500 1.00 0.000 +ATOM 25 SD DMS 7 9.910 5.240 13.400 1.00 0.000 +ATOM 26 CD1 DMS 7 9.930 7.160 13.750 1.00 0.000 +ATOM 27 OD DMS 7 10.430 5.110 11.970 1.00 0.000 +ATOM 28 CD2 DMS 7 11.470 4.750 14.450 1.00 0.000 +ATOM 29 SD DMS 8 -0.000 12.330 15.660 1.00 0.000 +ATOM 30 CD1 DMS 8 0.150 12.450 17.600 1.00 0.000 +ATOM 31 OD DMS 8 1.250 11.670 15.070 1.00 0.000 +ATOM 32 CD2 DMS 8 -1.390 10.960 15.580 1.00 0.000 +ATOM 33 SD DMS 9 15.760 8.050 22.200 1.00 0.000 +ATOM 34 CD1 DMS 9 17.430 7.650 21.280 1.00 0.000 +ATOM 35 OD DMS 9 15.120 6.700 22.490 1.00 0.000 +ATOM 36 CD2 DMS 9 16.620 8.600 23.870 1.00 0.000 +ATOM 37 SD DMS 10 9.720 0.760 10.370 1.00 0.000 +ATOM 38 CD1 DMS 10 8.910 2.510 10.080 1.00 0.000 +ATOM 39 OD DMS 10 9.040 -0.340 9.560 1.00 0.000 +ATOM 40 CD2 DMS 10 11.340 1.270 9.410 1.00 0.000 +ATOM 41 SD DMS 11 7.760 10.730 23.480 1.00 0.000 +ATOM 42 CD1 DMS 11 7.030 9.190 22.530 1.00 0.000 +ATOM 43 OD DMS 11 8.360 10.200 24.790 1.00 0.000 +ATOM 44 CD2 DMS 11 9.150 11.190 22.200 1.00 0.000 +ATOM 45 SD DMS 12 15.570 27.790 16.690 1.00 0.000 +ATOM 46 CD1 DMS 12 15.610 28.700 18.410 1.00 0.000 +ATOM 47 OD DMS 12 16.130 26.370 16.760 1.00 0.000 +ATOM 48 CD2 DMS 12 13.660 27.420 16.740 1.00 0.000 +ATOM 49 SD DMS 13 3.980 7.990 18.970 1.00 0.000 +ATOM 50 CD1 DMS 13 2.510 9.270 19.030 1.00 0.000 +ATOM 51 OD DMS 13 5.090 8.870 18.400 1.00 0.000 +ATOM 52 CD2 DMS 13 4.130 7.850 20.910 1.00 0.000 +ATOM 53 SD DMS 14 5.340 10.640 2.890 1.00 0.000 +ATOM 54 CD1 DMS 14 4.190 11.710 1.730 1.00 0.000 +ATOM 55 OD DMS 14 6.780 10.400 2.420 1.00 0.000 +ATOM 56 CD2 DMS 14 5.310 11.810 4.440 1.00 0.000 +ATOM 57 SD DMS 15 1.490 13.030 21.090 1.00 0.000 +ATOM 58 CD1 DMS 15 1.760 13.000 23.020 1.00 0.000 +ATOM 59 OD DMS 15 1.070 11.650 20.580 1.00 0.000 +ATOM 60 CD2 DMS 15 0.110 14.410 21.010 1.00 0.000 +ATOM 61 SD DMS 16 10.070 1.570 17.500 1.00 0.000 +ATOM 62 CD1 DMS 16 8.230 1.550 16.840 1.00 0.000 +ATOM 63 OD DMS 16 10.990 1.330 16.310 1.00 0.000 +ATOM 64 CD2 DMS 16 10.270 3.480 17.810 1.00 0.000 +ATOM 65 SD DMS 17 19.100 10.220 4.410 1.00 0.000 +ATOM 66 CD1 DMS 17 19.420 9.210 6.050 1.00 0.000 +ATOM 67 OD DMS 17 20.380 10.200 3.590 1.00 0.000 +ATOM 68 CD2 DMS 17 17.820 8.900 3.750 1.00 0.000 +ATOM 69 SD DMS 18 13.680 15.190 17.050 1.00 0.000 +ATOM 70 CD1 DMS 18 13.490 13.990 18.570 1.00 0.000 +ATOM 71 OD DMS 18 15.180 15.120 16.720 1.00 0.000 +ATOM 72 CD2 DMS 18 12.560 14.380 15.680 1.00 0.000 +ATOM 73 SD DMS 19 20.830 19.070 21.540 1.00 0.000 +ATOM 74 CD1 DMS 19 18.910 19.400 21.460 1.00 0.000 +ATOM 75 OD DMS 19 21.570 20.340 21.120 1.00 0.000 +ATOM 76 CD2 DMS 19 20.890 18.810 23.470 1.00 0.000 +ATOM 77 SD DMS 20 18.460 18.670 1.770 1.00 0.000 +ATOM 78 CD1 DMS 20 17.920 20.040 3.050 1.00 0.000 +ATOM 79 OD DMS 20 19.990 18.700 1.750 1.00 0.000 +ATOM 80 CD2 DMS 20 17.920 17.270 3.020 1.00 0.000 +ATOM 81 SD DMS 21 24.860 26.540 17.270 1.00 0.000 +ATOM 82 CD1 DMS 21 23.410 26.800 15.990 1.00 0.000 +ATOM 83 OD DMS 21 25.850 27.610 16.800 1.00 0.000 +ATOM 84 CD2 DMS 21 23.850 27.310 18.750 1.00 0.000 +ATOM 85 SD DMS 22 18.110 15.290 13.570 1.00 0.000 +ATOM 86 CD1 DMS 22 18.790 16.240 12.010 1.00 0.000 +ATOM 87 OD DMS 22 19.160 14.330 14.140 1.00 0.000 +ATOM 88 CD2 DMS 22 17.910 16.790 14.790 1.00 0.000 +ATOM 89 SD DMS 23 7.740 5.900 16.780 1.00 0.000 +ATOM 90 CD1 DMS 23 6.890 7.550 16.190 1.00 0.000 +ATOM 91 OD DMS 23 9.250 6.110 16.740 1.00 0.000 +ATOM 92 CD2 DMS 23 7.310 6.310 18.640 1.00 0.000 +ATOM 93 SD DMS 24 24.110 1.840 6.900 1.00 0.000 +ATOM 94 CD1 DMS 24 24.200 3.670 7.560 1.00 0.000 +ATOM 95 OD DMS 24 23.310 1.840 5.590 1.00 0.000 +ATOM 96 CD2 DMS 24 25.910 1.240 6.440 1.00 0.000 +ATOM 97 SD DMS 25 3.430 5.060 10.230 1.00 0.000 +ATOM 98 CD1 DMS 25 3.700 6.780 9.360 1.00 0.000 +ATOM 99 OD DMS 25 2.940 4.050 9.190 1.00 0.000 +ATOM 100 CD2 DMS 25 5.350 4.910 10.520 1.00 0.000 +ATOM 101 SD DMS 26 18.890 5.200 9.120 1.00 0.000 +ATOM 102 CD1 DMS 26 19.530 6.910 8.430 1.00 0.000 +ATOM 103 OD DMS 26 17.550 4.760 8.520 1.00 0.000 +ATOM 104 CD2 DMS 26 20.340 4.260 8.220 1.00 0.000 +ATOM 105 SD DMS 27 20.970 12.420 15.540 1.00 0.000 +ATOM 106 CD1 DMS 27 21.000 11.940 13.660 1.00 0.000 +ATOM 107 OD DMS 27 21.870 11.520 16.390 1.00 0.000 +ATOM 108 CD2 DMS 27 22.080 14.010 15.320 1.00 0.000 +ATOM 109 SD DMS 28 27.090 3.580 10.830 1.00 0.000 +ATOM 110 CD1 DMS 28 28.640 4.190 9.820 1.00 0.000 +ATOM 111 OD DMS 28 25.860 4.180 10.140 1.00 0.000 +ATOM 112 CD2 DMS 28 27.390 1.790 10.110 1.00 0.000 +ATOM 113 SD DMS 29 5.760 3.460 22.180 1.00 0.000 +ATOM 114 CD1 DMS 29 5.610 2.640 23.940 1.00 0.000 +ATOM 115 OD DMS 29 4.330 3.330 21.650 1.00 0.000 +ATOM 116 CD2 DMS 29 6.020 5.240 22.930 1.00 0.000 +ATOM 117 SD DMS 30 16.250 18.720 24.810 1.00 0.000 +ATOM 118 CD1 DMS 30 16.960 17.350 26.000 1.00 0.000 +ATOM 119 OD DMS 30 17.350 19.340 23.940 1.00 0.000 +ATOM 120 CD2 DMS 30 15.310 17.450 23.660 1.00 0.000 +ATOM 121 SD DMS 31 6.360 23.150 12.420 1.00 0.000 +ATOM 122 CD1 DMS 31 7.820 22.730 13.640 1.00 0.000 +ATOM 123 OD DMS 31 6.540 24.560 11.850 1.00 0.000 +ATOM 124 CD2 DMS 31 6.930 21.950 10.990 1.00 0.000 +ATOM 125 SD DMS 32 11.230 2.860 22.070 1.00 0.000 +ATOM 126 CD1 DMS 32 9.300 2.920 22.390 1.00 0.000 +ATOM 127 OD DMS 32 11.550 3.720 20.840 1.00 0.000 +ATOM 128 CD2 DMS 32 11.590 4.010 23.610 1.00 0.000 +ATOM 129 SD DMS 33 25.460 24.730 21.010 1.00 0.000 +ATOM 130 CD1 DMS 33 24.500 26.170 21.920 1.00 0.000 +ATOM 131 OD DMS 33 24.730 24.510 19.680 1.00 0.000 +ATOM 132 CD2 DMS 33 27.110 25.700 20.670 1.00 0.000 +ATOM 133 SD DMS 34 25.770 12.850 12.760 1.00 0.000 +ATOM 134 CD1 DMS 34 26.600 12.850 11.000 1.00 0.000 +ATOM 135 OD DMS 34 24.960 14.150 12.820 1.00 0.000 +ATOM 136 CD2 DMS 34 24.440 11.510 12.260 1.00 0.000 +ATOM 137 SD DMS 35 21.620 2.090 11.640 1.00 0.000 +ATOM 138 CD1 DMS 35 23.090 3.360 11.770 1.00 0.000 +ATOM 139 OD DMS 35 20.330 2.890 11.430 1.00 0.000 +ATOM 140 CD2 DMS 35 22.110 1.380 9.890 1.00 0.000 +ATOM 141 SD DMS 36 12.780 8.130 24.760 1.00 0.000 +ATOM 142 CD1 DMS 36 13.420 8.760 26.490 1.00 0.000 +ATOM 143 OD DMS 36 11.970 6.850 24.960 1.00 0.000 +ATOM 144 CD2 DMS 36 11.600 9.660 24.470 1.00 0.000 +ATOM 145 SD DMS 37 2.890 7.640 13.890 1.00 0.000 +ATOM 146 CD1 DMS 37 3.440 8.840 12.450 1.00 0.000 +ATOM 147 OD DMS 37 3.810 6.440 14.040 1.00 0.000 +ATOM 148 CD2 DMS 37 3.310 8.730 15.450 1.00 0.000 +ATOM 149 SD DMS 38 19.690 9.030 19.370 1.00 0.000 +ATOM 150 CD1 DMS 38 19.300 8.680 17.490 1.00 0.000 +ATOM 151 OD DMS 38 20.960 8.210 19.610 1.00 0.000 +ATOM 152 CD2 DMS 38 20.280 10.880 19.180 1.00 0.000 +ATOM 153 SD DMS 39 7.210 17.240 3.460 1.00 0.000 +ATOM 154 CD1 DMS 39 7.240 15.950 4.920 1.00 0.000 +ATOM 155 OD DMS 39 6.560 18.510 4.010 1.00 0.000 +ATOM 156 CD2 DMS 39 9.080 17.740 3.220 1.00 0.000 +ATOM 157 SD DMS 40 8.980 27.100 15.190 1.00 0.000 +ATOM 158 CD1 DMS 40 8.390 26.840 13.350 1.00 0.000 +ATOM 159 OD DMS 40 9.000 25.700 15.810 1.00 0.000 +ATOM 160 CD2 DMS 40 10.870 27.370 14.810 1.00 0.000 +ATOM 161 SD DMS 41 24.140 6.440 22.860 1.00 0.000 +ATOM 162 CD1 DMS 41 23.230 7.650 21.640 1.00 0.000 +ATOM 163 OD DMS 41 23.390 6.510 24.190 1.00 0.000 +ATOM 164 CD2 DMS 41 23.830 4.760 21.920 1.00 0.000 +ATOM 165 SD DMS 42 11.810 13.940 3.360 1.00 0.000 +ATOM 166 CD1 DMS 42 13.510 14.760 3.860 1.00 0.000 +ATOM 167 OD DMS 42 10.580 14.740 3.800 1.00 0.000 +ATOM 168 CD2 DMS 42 11.920 14.280 1.440 1.00 0.000 +ATOM 169 SD DMS 43 16.690 1.010 22.090 1.00 0.000 +ATOM 170 CD1 DMS 43 17.030 0.790 24.000 1.00 0.000 +ATOM 171 OD DMS 43 15.820 -0.170 21.670 1.00 0.000 +ATOM 172 CD2 DMS 43 15.550 2.590 22.090 1.00 0.000 +ATOM 173 SD DMS 44 26.910 19.520 19.630 1.00 0.000 +ATOM 174 CD1 DMS 44 24.990 19.790 19.880 1.00 0.000 +ATOM 175 OD DMS 44 27.210 20.060 18.240 1.00 0.000 +ATOM 176 CD2 DMS 44 27.520 20.690 21.060 1.00 0.000 +ATOM 177 SD DMS 45 5.380 27.050 3.380 1.00 0.000 +ATOM 178 CD1 DMS 45 5.340 28.130 5.000 1.00 0.000 +ATOM 179 OD DMS 45 6.490 25.990 3.420 1.00 0.000 +ATOM 180 CD2 DMS 45 3.760 26.070 3.850 1.00 0.000 +ATOM 181 SD DMS 46 14.580 15.870 10.810 1.00 0.000 +ATOM 182 CD1 DMS 46 15.670 17.490 10.710 1.00 0.000 +ATOM 183 OD DMS 46 15.590 14.770 10.480 1.00 0.000 +ATOM 184 CD2 DMS 46 14.210 15.830 12.720 1.00 0.000 +ATOM 185 SD DMS 47 13.090 12.000 12.720 1.00 0.000 +ATOM 186 CD1 DMS 47 14.930 11.600 12.210 1.00 0.000 +ATOM 187 OD DMS 47 12.380 12.770 11.610 1.00 0.000 +ATOM 188 CD2 DMS 47 12.310 10.220 12.860 1.00 0.000 +ATOM 189 SD DMS 48 23.710 17.200 10.150 1.00 0.000 +ATOM 190 CD1 DMS 48 25.530 16.520 10.110 1.00 0.000 +ATOM 191 OD DMS 48 23.110 16.640 8.860 1.00 0.000 +ATOM 192 CD2 DMS 48 22.920 16.230 11.650 1.00 0.000 +ATOM 193 SD DMS 49 15.520 24.690 22.260 1.00 0.000 +ATOM 194 CD1 DMS 49 16.500 25.910 23.420 1.00 0.000 +ATOM 195 OD DMS 49 14.050 24.660 22.680 1.00 0.000 +ATOM 196 CD2 DMS 49 15.660 25.670 20.580 1.00 0.000 +ATOM 197 SD DMS 50 20.200 7.150 12.830 1.00 0.000 +ATOM 198 CD1 DMS 50 22.020 6.670 12.340 1.00 0.000 +ATOM 199 OD DMS 50 19.560 7.540 11.490 1.00 0.000 +ATOM 200 CD2 DMS 50 19.390 5.430 13.270 1.00 0.000 +ATOM 201 SD DMS 51 26.250 11.530 19.550 1.00 0.000 +ATOM 202 CD1 DMS 51 24.340 11.140 19.550 1.00 0.000 +ATOM 203 OD DMS 51 26.400 12.900 18.900 1.00 0.000 +ATOM 204 CD2 DMS 51 26.540 11.860 21.450 1.00 0.000 +ATOM 205 SD DMS 52 26.590 13.840 26.850 1.00 0.000 +ATOM 206 CD1 DMS 52 27.870 14.020 28.300 1.00 0.000 +ATOM 207 OD DMS 52 26.620 15.260 26.290 1.00 0.000 +ATOM 208 CD2 DMS 52 27.840 12.740 25.850 1.00 0.000 +ATOM 209 SD DMS 53 14.710 19.000 14.330 1.00 0.000 +ATOM 210 CD1 DMS 53 13.360 18.670 15.690 1.00 0.000 +ATOM 211 OD DMS 53 13.990 19.610 13.120 1.00 0.000 +ATOM 212 CD2 DMS 53 15.470 20.380 15.470 1.00 0.000 +ATOM 213 SD DMS 54 22.690 19.420 15.950 1.00 0.000 +ATOM 214 CD1 DMS 54 24.440 19.950 16.630 1.00 0.000 +ATOM 215 OD DMS 54 22.000 20.700 15.470 1.00 0.000 +ATOM 216 CD2 DMS 54 23.460 18.450 14.440 1.00 0.000 +ATOM 217 SD DMS 55 2.200 14.990 13.270 1.00 0.000 +ATOM 218 CD1 DMS 55 2.330 13.310 12.280 1.00 0.000 +ATOM 219 OD DMS 55 2.900 16.100 12.480 1.00 0.000 +ATOM 220 CD2 DMS 55 0.310 15.400 13.110 1.00 0.000 +ATOM 221 SD DMS 56 17.140 21.830 19.150 1.00 0.000 +ATOM 222 CD1 DMS 56 16.550 23.310 18.030 1.00 0.000 +ATOM 223 OD DMS 56 16.070 20.740 19.300 1.00 0.000 +ATOM 224 CD2 DMS 56 18.470 21.200 17.870 1.00 0.000 +ATOM 225 SD DMS 57 15.190 3.210 10.880 1.00 0.000 +ATOM 226 CD1 DMS 57 14.810 3.340 8.970 1.00 0.000 +ATOM 227 OD DMS 57 14.120 2.290 11.490 1.00 0.000 +ATOM 228 CD2 DMS 57 16.790 2.110 10.840 1.00 0.000 +ATOM 229 SD DMS 58 14.280 9.980 2.480 1.00 0.000 +ATOM 230 CD1 DMS 58 15.390 10.090 0.880 1.00 0.000 +ATOM 231 OD DMS 58 14.770 10.950 3.560 1.00 0.000 +ATOM 232 CD2 DMS 58 12.780 10.930 1.690 1.00 0.000 +ATOM 233 SD DMS 59 2.220 2.320 0.300 1.00 0.000 +ATOM 234 CD1 DMS 59 0.640 3.390 0.690 1.00 0.000 +ATOM 235 OD DMS 59 3.080 3.150 -0.650 1.00 0.000 +ATOM 236 CD2 DMS 59 3.060 2.870 1.970 1.00 0.000 +ATOM 237 SD DMS 60 24.430 20.790 9.160 1.00 0.000 +ATOM 238 CD1 DMS 60 25.810 20.580 7.800 1.00 0.000 +ATOM 239 OD DMS 60 24.340 22.290 9.470 1.00 0.000 +ATOM 240 CD2 DMS 60 22.970 20.240 7.990 1.00 0.000 +ATOM 241 SD DMS 61 12.600 20.430 22.670 1.00 0.000 +ATOM 242 CD1 DMS 61 12.200 21.900 23.890 1.00 0.000 +ATOM 243 OD DMS 61 11.770 20.710 21.420 1.00 0.000 +ATOM 244 CD2 DMS 61 14.370 21.010 22.090 1.00 0.000 +ATOM 245 SD DMS 62 8.840 4.910 26.150 1.00 0.000 +ATOM 246 CD1 DMS 62 10.160 5.630 27.380 1.00 0.000 +ATOM 247 OD DMS 62 7.520 4.630 26.880 1.00 0.000 +ATOM 248 CD2 DMS 62 8.550 6.530 25.110 1.00 0.000 +ATOM 249 SD DMS 63 1.360 0.470 25.810 1.00 0.000 +ATOM 250 CD1 DMS 63 2.470 1.840 24.970 1.00 0.000 +ATOM 251 OD DMS 63 -0.050 1.020 25.990 1.00 0.000 +ATOM 252 CD2 DMS 63 1.310 -0.540 24.140 1.00 0.000 +ATOM 253 SD DMS 64 2.190 27.640 8.260 1.00 0.000 +ATOM 254 CD1 DMS 64 1.340 29.250 8.970 1.00 0.000 +ATOM 255 OD DMS 64 3.690 27.820 8.530 1.00 0.000 +ATOM 256 CD2 DMS 64 1.330 26.430 9.520 1.00 0.000 +ATOM 257 SD DMS 65 0.340 9.060 5.060 1.00 0.000 +ATOM 258 CD1 DMS 65 -0.990 8.790 3.660 1.00 0.000 +ATOM 259 OD DMS 65 1.250 7.830 5.090 1.00 0.000 +ATOM 260 CD2 DMS 65 1.520 10.320 4.170 1.00 0.000 +ATOM 261 SD DMS 66 17.950 23.840 13.490 1.00 0.000 +ATOM 262 CD1 DMS 66 16.800 25.400 13.330 1.00 0.000 +ATOM 263 OD DMS 66 18.610 23.600 12.130 1.00 0.000 +ATOM 264 CD2 DMS 66 19.330 24.640 14.610 1.00 0.000 +ATOM 265 SD DMS 67 10.270 20.470 5.250 1.00 0.000 +ATOM 266 CD1 DMS 67 8.370 20.880 5.040 1.00 0.000 +ATOM 267 OD DMS 67 10.810 20.280 3.830 1.00 0.000 +ATOM 268 CD2 DMS 67 10.760 22.260 5.850 1.00 0.000 +ATOM 269 SD DMS 68 17.290 12.350 21.410 1.00 0.000 +ATOM 270 CD1 DMS 68 17.250 14.230 21.940 1.00 0.000 +ATOM 271 OD DMS 68 17.680 11.460 22.600 1.00 0.000 +ATOM 272 CD2 DMS 68 15.390 12.160 21.020 1.00 0.000 +ATOM 273 SD DMS 69 3.710 0.860 17.270 1.00 0.000 +ATOM 274 CD1 DMS 69 4.730 -0.300 16.080 1.00 0.000 +ATOM 275 OD DMS 69 2.660 0.000 17.980 1.00 0.000 +ATOM 276 CD2 DMS 69 5.210 1.290 18.440 1.00 0.000 +ATOM 277 SD DMS 70 27.350 7.430 20.320 1.00 0.000 +ATOM 278 CD1 DMS 70 28.040 8.160 18.650 1.00 0.000 +ATOM 279 OD DMS 70 26.230 8.350 20.820 1.00 0.000 +ATOM 280 CD2 DMS 70 26.610 5.870 19.410 1.00 0.000 +ATOM 281 SD DMS 71 23.040 7.830 16.210 1.00 0.000 +ATOM 282 CD1 DMS 71 24.530 9.050 16.500 1.00 0.000 +ATOM 283 OD DMS 71 23.480 6.680 15.300 1.00 0.000 +ATOM 284 CD2 DMS 71 23.150 6.870 17.900 1.00 0.000 +ATOM 285 SD DMS 72 27.750 13.130 5.670 1.00 0.000 +ATOM 286 CD1 DMS 72 25.880 12.600 5.690 1.00 0.000 +ATOM 287 OD DMS 72 28.520 12.110 6.530 1.00 0.000 +ATOM 288 CD2 DMS 72 28.230 12.770 3.820 1.00 0.000 +ATOM 289 SD DMS 73 0.790 22.870 7.310 1.00 0.000 +ATOM 290 CD1 DMS 73 0.150 24.420 6.310 1.00 0.000 +ATOM 291 OD DMS 73 2.260 23.060 7.680 1.00 0.000 +ATOM 292 CD2 DMS 73 -0.300 23.390 8.840 1.00 0.000 +ATOM 293 SD DMS 74 21.180 1.920 26.770 1.00 0.000 +ATOM 294 CD1 DMS 74 22.070 3.640 27.080 1.00 0.000 +ATOM 295 OD DMS 74 21.660 0.960 27.860 1.00 0.000 +ATOM 296 CD2 DMS 74 19.290 2.230 27.120 1.00 0.000 +ATOM 297 SD DMS 75 26.720 16.330 22.080 1.00 0.000 +ATOM 298 CD1 DMS 75 25.810 15.030 23.210 1.00 0.000 +ATOM 299 OD DMS 75 25.710 17.390 21.640 1.00 0.000 +ATOM 300 CD2 DMS 75 27.820 17.090 23.500 1.00 0.000 +ATOM 301 SD DMS 76 13.630 25.280 4.030 1.00 0.000 +ATOM 302 CD1 DMS 76 14.210 27.030 4.660 1.00 0.000 +ATOM 303 OD DMS 76 13.110 24.420 5.180 1.00 0.000 +ATOM 304 CD2 DMS 76 12.090 25.890 3.010 1.00 0.000 +ATOM 305 SD DMS 77 19.610 7.000 28.440 1.00 0.000 +ATOM 306 CD1 DMS 77 17.720 6.660 28.770 1.00 0.000 +ATOM 307 OD DMS 77 19.890 7.790 27.160 1.00 0.000 +ATOM 308 CD2 DMS 77 20.000 8.180 29.940 1.00 0.000 +ATOM 309 SD DMS 78 25.940 6.430 28.610 1.00 0.000 +ATOM 310 CD1 DMS 78 26.460 7.250 26.930 1.00 0.000 +ATOM 311 OD DMS 78 26.600 7.140 29.800 1.00 0.000 +ATOM 312 CD2 DMS 78 24.130 7.160 28.730 1.00 0.000 +ATOM 313 SD DMS 79 7.310 9.970 12.160 1.00 0.000 +ATOM 314 CD1 DMS 79 7.270 8.230 11.280 1.00 0.000 +ATOM 315 OD DMS 79 8.410 10.070 13.230 1.00 0.000 +ATOM 316 CD2 DMS 79 8.140 10.790 10.600 1.00 0.000 +ATOM 317 SD DMS 80 21.710 20.250 27.700 1.00 0.000 +ATOM 318 CD1 DMS 80 20.430 18.780 27.700 1.00 0.000 +ATOM 319 OD DMS 80 21.030 21.470 28.330 1.00 0.000 +ATOM 320 CD2 DMS 80 22.940 19.490 29.000 1.00 0.000 +ATOM 321 SD DMS 81 22.880 8.340 5.200 1.00 0.000 +ATOM 322 CD1 DMS 81 23.770 7.350 3.770 1.00 0.000 +ATOM 323 OD DMS 81 22.590 7.510 6.450 1.00 0.000 +ATOM 324 CD2 DMS 81 24.360 9.560 5.570 1.00 0.000 +ATOM 325 SD DMS 82 5.470 18.890 28.080 1.00 0.000 +ATOM 326 CD1 DMS 82 6.660 17.580 28.890 1.00 0.000 +ATOM 327 OD DMS 82 4.430 18.140 27.240 1.00 0.000 +ATOM 328 CD2 DMS 82 4.810 19.400 29.840 1.00 0.000 +ATOM 329 SD DMS 83 23.610 16.760 5.610 1.00 0.000 +ATOM 330 CD1 DMS 83 21.780 16.360 6.150 1.00 0.000 +ATOM 331 OD DMS 83 24.020 15.550 4.760 1.00 0.000 +ATOM 332 CD2 DMS 83 23.070 18.250 4.480 1.00 0.000 +ATOM 333 SD DMS 84 4.310 19.060 13.250 1.00 0.000 +ATOM 334 CD1 DMS 84 4.830 19.380 15.100 1.00 0.000 +ATOM 335 OD DMS 84 3.870 20.430 12.730 1.00 0.000 +ATOM 336 CD2 DMS 84 6.110 18.770 12.560 1.00 0.000 +ATOM 337 SD DMS 85 3.170 26.650 0.600 1.00 0.000 +ATOM 338 CD1 DMS 85 1.970 26.810 -0.930 1.00 0.000 +ATOM 339 OD DMS 85 3.910 25.310 0.570 1.00 0.000 +ATOM 340 CD2 DMS 85 4.260 28.060 -0.190 1.00 0.000 +ATOM 341 SD DMS 86 25.340 28.960 28.930 1.00 0.000 +ATOM 342 CD1 DMS 86 25.010 30.230 27.500 1.00 0.000 +ATOM 343 OD DMS 86 25.110 27.540 28.400 1.00 0.000 +ATOM 344 CD2 DMS 86 27.280 29.120 29.010 1.00 0.000 +ATOM 345 SD DMS 87 21.530 23.230 3.980 1.00 0.000 +ATOM 346 CD1 DMS 87 20.620 22.620 5.590 1.00 0.000 +ATOM 347 OD DMS 87 22.890 23.810 4.400 1.00 0.000 +ATOM 348 CD2 DMS 87 21.890 21.630 2.930 1.00 0.000 +ATOM 349 SD DMS 88 1.070 22.880 26.730 1.00 0.000 +ATOM 350 CD1 DMS 88 -0.760 22.680 26.080 1.00 0.000 +ATOM 351 OD DMS 88 1.150 22.780 28.260 1.00 0.000 +ATOM 352 CD2 DMS 88 1.610 21.110 26.120 1.00 0.000 +ATOM 353 SD DMS 89 28.750 4.250 6.300 1.00 0.000 +ATOM 354 CD1 DMS 89 27.390 5.620 6.520 1.00 0.000 +ATOM 355 OD DMS 89 28.880 3.780 4.850 1.00 0.000 +ATOM 356 CD2 DMS 89 30.350 5.270 6.750 1.00 0.000 +ATOM 357 SD DMS 90 22.080 23.970 18.210 1.00 0.000 +ATOM 358 CD1 DMS 90 23.440 23.490 16.890 1.00 0.000 +ATOM 359 OD DMS 90 21.020 24.680 17.380 1.00 0.000 +ATOM 360 CD2 DMS 90 21.530 22.130 18.570 1.00 0.000 +ATOM 361 SD DMS 91 3.530 27.590 20.760 1.00 0.000 +ATOM 362 CD1 DMS 91 3.240 29.460 21.210 1.00 0.000 +ATOM 363 OD DMS 91 3.990 26.810 21.990 1.00 0.000 +ATOM 364 CD2 DMS 91 1.670 27.060 20.490 1.00 0.000 +ATOM 365 SD DMS 92 20.260 19.920 10.810 1.00 0.000 +ATOM 366 CD1 DMS 92 19.960 20.300 12.700 1.00 0.000 +ATOM 367 OD DMS 92 19.110 19.010 10.380 1.00 0.000 +ATOM 368 CD2 DMS 92 20.260 21.730 10.080 1.00 0.000 +ATOM 369 SD DMS 93 14.700 12.510 26.580 1.00 0.000 +ATOM 370 CD1 DMS 93 16.350 11.890 25.740 1.00 0.000 +ATOM 371 OD DMS 93 14.910 12.390 28.090 1.00 0.000 +ATOM 372 CD2 DMS 93 14.470 14.360 26.020 1.00 0.000 +ATOM 373 SD DMS 94 28.180 18.400 15.290 1.00 0.000 +ATOM 374 CD1 DMS 94 27.120 18.620 13.670 1.00 0.000 +ATOM 375 OD DMS 94 28.470 16.900 15.450 1.00 0.000 +ATOM 376 CD2 DMS 94 29.810 19.090 14.470 1.00 0.000 +ATOM 377 SD DMS 95 7.410 14.110 1.110 1.00 0.000 +ATOM 378 CD1 DMS 95 7.170 12.540 -0.030 1.00 0.000 +ATOM 379 OD DMS 95 6.090 14.780 1.490 1.00 0.000 +ATOM 380 CD2 DMS 95 8.000 13.310 2.790 1.00 0.000 +ATOM 381 SD DMS 96 3.360 14.650 4.130 1.00 0.000 +ATOM 382 CD1 DMS 96 2.020 15.400 5.340 1.00 0.000 +ATOM 383 OD DMS 96 2.870 13.220 3.910 1.00 0.000 +ATOM 384 CD2 DMS 96 2.660 15.790 2.710 1.00 0.000 +ATOM 385 SD DMS 97 10.950 1.470 26.940 1.00 0.000 +ATOM 386 CD1 DMS 97 12.330 0.380 26.110 1.00 0.000 +ATOM 387 OD DMS 97 10.590 2.640 26.020 1.00 0.000 +ATOM 388 CD2 DMS 97 9.480 0.220 26.640 1.00 0.000 +ATOM 389 SD DMS 98 19.850 23.140 21.910 1.00 0.000 +ATOM 390 CD1 DMS 98 20.310 22.290 23.600 1.00 0.000 +ATOM 391 OD DMS 98 18.760 24.180 22.150 1.00 0.000 +ATOM 392 CD2 DMS 98 21.520 24.160 21.890 1.00 0.000 +ATOM 393 SD DMS 99 26.600 27.250 9.690 1.00 0.000 +ATOM 394 CD1 DMS 99 26.110 25.390 10.000 1.00 0.000 +ATOM 395 OD DMS 99 27.550 27.140 8.500 1.00 0.000 +ATOM 396 CD2 DMS 99 24.840 27.890 9.130 1.00 0.000 +ATOM 397 SD DMS 100 7.060 1.920 0.330 1.00 0.000 +ATOM 398 CD1 DMS 100 7.500 3.790 0.680 1.00 0.000 +ATOM 399 OD DMS 100 5.980 1.350 1.250 1.00 0.000 +ATOM 400 CD2 DMS 100 6.300 1.860 -1.460 1.00 0.000 +ATOM 401 SD DMS 101 2.750 5.840 25.570 1.00 0.000 +ATOM 402 CD1 DMS 101 4.300 5.420 26.680 1.00 0.000 +ATOM 403 OD DMS 101 2.880 4.800 24.450 1.00 0.000 +ATOM 404 CD2 DMS 101 1.350 5.450 26.860 1.00 0.000 +ATOM 405 SD DMS 102 15.380 4.430 27.130 1.00 0.000 +ATOM 406 CD1 DMS 102 13.800 3.360 27.530 1.00 0.000 +ATOM 407 OD DMS 102 16.580 3.540 26.800 1.00 0.000 +ATOM 408 CD2 DMS 102 14.870 5.290 25.450 1.00 0.000 +ATOM 409 SD DMS 103 9.750 19.350 11.120 1.00 0.000 +ATOM 410 CD1 DMS 103 11.320 18.500 11.900 1.00 0.000 +ATOM 411 OD DMS 103 9.970 20.850 11.280 1.00 0.000 +ATOM 412 CD2 DMS 103 10.070 19.010 9.230 1.00 0.000 +ATOM 413 SD DMS 104 4.780 5.300 5.480 1.00 0.000 +ATOM 414 CD1 DMS 104 6.030 5.590 6.950 1.00 0.000 +ATOM 415 OD DMS 104 5.350 5.530 4.070 1.00 0.000 +ATOM 416 CD2 DMS 104 4.690 3.360 5.680 1.00 0.000 +ATOM 417 SD DMS 105 21.470 26.230 7.860 1.00 0.000 +ATOM 418 CD1 DMS 105 22.760 24.830 8.290 1.00 0.000 +ATOM 419 OD DMS 105 21.830 27.370 8.820 1.00 0.000 +ATOM 420 CD2 DMS 105 22.010 26.750 6.070 1.00 0.000 +ATOM 421 SD DMS 106 19.920 27.740 20.960 1.00 0.000 +ATOM 422 CD1 DMS 106 19.150 26.310 19.870 1.00 0.000 +ATOM 423 OD DMS 106 21.440 27.590 20.990 1.00 0.000 +ATOM 424 CD2 DMS 106 19.530 29.310 19.880 1.00 0.000 +ATOM 425 SD DMS 107 18.520 4.460 23.450 1.00 0.000 +ATOM 426 CD1 DMS 107 20.040 5.380 22.640 1.00 0.000 +ATOM 427 OD DMS 107 19.070 3.080 23.830 1.00 0.000 +ATOM 428 CD2 DMS 107 18.550 5.490 25.110 1.00 0.000 +ATOM 429 SD DMS 108 1.440 19.730 4.900 1.00 0.000 +ATOM 430 CD1 DMS 108 0.760 19.690 3.070 1.00 0.000 +ATOM 431 OD DMS 108 1.440 18.300 5.450 1.00 0.000 +ATOM 432 CD2 DMS 108 3.230 20.120 4.230 1.00 0.000 +ATOM 433 SD DMS 109 23.130 0.640 23.000 1.00 0.000 +ATOM 434 CD1 DMS 109 23.650 0.930 21.140 1.00 0.000 +ATOM 435 OD DMS 109 24.000 1.540 23.870 1.00 0.000 +ATOM 436 CD2 DMS 109 21.330 1.390 22.920 1.00 0.000 +ATOM 437 SD DMS 110 3.710 7.530 1.150 1.00 0.000 +ATOM 438 CD1 DMS 110 4.840 5.940 1.100 1.00 0.000 +ATOM 439 OD DMS 110 3.150 7.960 -0.200 1.00 0.000 +ATOM 440 CD2 DMS 110 2.220 6.710 2.110 1.00 0.000 +ATOM 441 SD DMS 111 9.580 15.850 17.440 1.00 0.000 +ATOM 442 CD1 DMS 111 7.860 16.750 17.260 1.00 0.000 +ATOM 443 OD DMS 111 10.560 16.740 18.210 1.00 0.000 +ATOM 444 CD2 DMS 111 8.850 14.620 18.760 1.00 0.000 +ATOM 445 SD DMS 112 14.960 6.550 6.190 1.00 0.000 +ATOM 446 CD1 DMS 112 13.370 7.600 5.790 1.00 0.000 +ATOM 447 OD DMS 112 15.630 6.240 4.840 1.00 0.000 +ATOM 448 CD2 DMS 112 15.970 7.910 7.150 1.00 0.000 +ATOM 449 SD DMS 113 26.750 7.970 12.190 1.00 0.000 +ATOM 450 CD1 DMS 113 27.000 7.260 13.990 1.00 0.000 +ATOM 451 OD DMS 113 27.280 9.400 12.320 1.00 0.000 +ATOM 452 CD2 DMS 113 28.170 6.860 11.440 1.00 0.000 +ATOM 453 SD DMS 114 17.850 24.160 2.080 1.00 0.000 +ATOM 454 CD1 DMS 114 18.480 25.380 3.470 1.00 0.000 +ATOM 455 OD DMS 114 16.320 24.120 2.080 1.00 0.000 +ATOM 456 CD2 DMS 114 18.360 25.330 0.610 1.00 0.000 +ATOM 457 SD DMS 115 26.120 23.190 13.680 1.00 0.000 +ATOM 458 CD1 DMS 115 24.570 22.010 13.740 1.00 0.000 +ATOM 459 OD DMS 115 27.110 22.600 14.690 1.00 0.000 +ATOM 460 CD2 DMS 115 26.850 22.520 12.000 1.00 0.000 +ATOM 461 SD DMS 116 8.980 21.020 28.500 1.00 0.000 +ATOM 462 CD1 DMS 116 10.780 21.680 28.170 1.00 0.000 +ATOM 463 OD DMS 116 8.900 19.690 27.760 1.00 0.000 +ATOM 464 CD2 DMS 116 9.170 20.930 30.440 1.00 0.000 +ATOM 465 SD DMS 117 1.180 4.650 19.390 1.00 0.000 +ATOM 466 CD1 DMS 117 1.490 4.370 21.290 1.00 0.000 +ATOM 467 OD DMS 117 1.020 6.150 19.100 1.00 0.000 +ATOM 468 CD2 DMS 117 2.950 4.090 18.790 1.00 0.000 +ATOM 469 SD DMS 118 27.170 17.250 2.480 1.00 0.000 +ATOM 470 CD1 DMS 118 25.570 16.260 1.960 1.00 0.000 +ATOM 471 OD DMS 118 26.980 18.700 2.050 1.00 0.000 +ATOM 472 CD2 DMS 118 27.240 17.160 4.430 1.00 0.000 +ATOM 473 SD DMS 119 -0.220 10.760 28.860 1.00 0.000 +ATOM 474 CD1 DMS 119 0.350 8.910 28.620 1.00 0.000 +ATOM 475 OD DMS 119 -0.150 11.000 30.370 1.00 0.000 +ATOM 476 CD2 DMS 119 1.530 11.390 28.260 1.00 0.000 +ATOM 477 SD DMS 120 14.030 17.520 0.830 1.00 0.000 +ATOM 478 CD1 DMS 120 12.490 18.440 1.600 1.00 0.000 +ATOM 479 OD DMS 120 13.490 16.430 -0.100 1.00 0.000 +ATOM 480 CD2 DMS 120 14.700 19.050 -0.170 1.00 0.000 +ATOM 481 SD DMS 121 5.030 13.660 15.480 1.00 0.000 +ATOM 482 CD1 DMS 121 4.500 12.160 16.600 1.00 0.000 +ATOM 483 OD DMS 121 6.250 14.320 16.120 1.00 0.000 +ATOM 484 CD2 DMS 121 5.500 12.640 13.880 1.00 0.000 +ATOM 485 SD DMS 122 5.400 9.580 7.500 1.00 0.000 +ATOM 486 CD1 DMS 122 3.920 10.410 8.460 1.00 0.000 +ATOM 487 OD DMS 122 6.140 8.480 8.260 1.00 0.000 +ATOM 488 CD2 DMS 122 4.310 8.840 6.070 1.00 0.000 +ATOM 489 SD DMS 123 20.890 0.480 16.120 1.00 0.000 +ATOM 490 CD1 DMS 123 19.750 1.080 14.660 1.00 0.000 +ATOM 491 OD DMS 123 20.970 1.750 16.970 1.00 0.000 +ATOM 492 CD2 DMS 123 19.450 -0.670 16.730 1.00 0.000 +ATOM 493 SD DMS 124 11.630 18.410 25.560 1.00 0.000 +ATOM 494 CD1 DMS 124 9.890 18.980 24.890 1.00 0.000 +ATOM 495 OD DMS 124 12.410 19.640 26.040 1.00 0.000 +ATOM 496 CD2 DMS 124 11.160 17.480 27.200 1.00 0.000 +ATOM 497 SD DMS 125 11.730 23.940 19.710 1.00 0.000 +ATOM 498 CD1 DMS 125 12.790 22.430 19.080 1.00 0.000 +ATOM 499 OD DMS 125 12.430 25.230 19.280 1.00 0.000 +ATOM 500 CD2 DMS 125 10.250 23.480 18.530 1.00 0.000 +ATOM 501 SD DMS 126 3.660 9.780 25.030 1.00 0.000 +ATOM 502 CD1 DMS 126 4.380 11.450 25.720 1.00 0.000 +ATOM 503 OD DMS 126 3.740 9.980 23.520 1.00 0.000 +ATOM 504 CD2 DMS 126 5.020 8.510 25.610 1.00 0.000 +ATOM 505 SD DMS 127 23.220 11.130 25.840 1.00 0.000 +ATOM 506 CD1 DMS 127 22.240 9.540 26.390 1.00 0.000 +ATOM 507 OD DMS 127 23.740 11.830 27.100 1.00 0.000 +ATOM 508 CD2 DMS 127 24.790 10.460 24.890 1.00 0.000 +ATOM 509 SD DMS 128 23.990 9.180 9.870 1.00 0.000 +ATOM 510 CD1 DMS 128 24.480 7.420 9.170 1.00 0.000 +ATOM 511 OD DMS 128 24.610 10.220 8.940 1.00 0.000 +ATOM 512 CD2 DMS 128 22.140 9.080 9.250 1.00 0.000 +ATOM 513 SD DMS 129 14.870 26.790 10.570 1.00 0.000 +ATOM 514 CD1 DMS 129 14.330 28.300 9.450 1.00 0.000 +ATOM 515 OD DMS 129 16.340 27.080 10.880 1.00 0.000 +ATOM 516 CD2 DMS 129 13.770 27.340 12.090 1.00 0.000 +ATOM 517 SD DMS 130 26.240 20.510 28.770 1.00 0.000 +ATOM 518 CD1 DMS 130 27.700 21.500 29.590 1.00 0.000 +ATOM 519 OD DMS 130 25.650 21.300 27.600 1.00 0.000 +ATOM 520 CD2 DMS 130 27.450 19.170 28.050 1.00 0.000 +ATOM 521 SD DMS 131 10.980 27.040 22.930 1.00 0.000 +ATOM 522 CD1 DMS 131 11.670 25.830 24.300 1.00 0.000 +ATOM 523 OD DMS 131 10.690 28.350 23.660 1.00 0.000 +ATOM 524 CD2 DMS 131 12.630 27.210 21.900 1.00 0.000 +ATOM 525 SD DMS 132 8.000 24.160 21.630 1.00 0.000 +ATOM 526 CD1 DMS 132 6.120 23.990 22.140 1.00 0.000 +ATOM 527 OD DMS 132 8.370 25.560 22.110 1.00 0.000 +ATOM 528 CD2 DMS 132 8.700 22.880 22.920 1.00 0.000 +ATOM 529 SD DMS 133 14.310 4.760 18.220 1.00 0.000 +ATOM 530 CD1 DMS 133 13.600 2.950 18.350 1.00 0.000 +ATOM 531 OD DMS 133 13.320 5.440 17.280 1.00 0.000 +ATOM 532 CD2 DMS 133 14.100 5.430 20.050 1.00 0.000 +ATOM 533 SD DMS 134 20.420 14.410 2.930 1.00 0.000 +ATOM 534 CD1 DMS 134 21.890 13.480 3.820 1.00 0.000 +ATOM 535 OD DMS 134 19.680 15.060 4.110 1.00 0.000 +ATOM 536 CD2 DMS 134 21.330 15.820 1.940 1.00 0.000 +ATOM 537 SD DMS 135 6.440 22.750 26.550 1.00 0.000 +ATOM 538 CD1 DMS 135 5.900 21.510 25.140 1.00 0.000 +ATOM 539 OD DMS 135 7.490 23.670 25.920 1.00 0.000 +ATOM 540 CD2 DMS 135 4.830 23.770 26.990 1.00 0.000 +ATOM 541 SD DMS 136 7.250 15.830 25.900 1.00 0.000 +ATOM 542 CD1 DMS 136 6.520 14.200 25.120 1.00 0.000 +ATOM 543 OD DMS 136 8.750 15.540 25.960 1.00 0.000 +ATOM 544 CD2 DMS 136 6.950 17.220 24.560 1.00 0.000 +ATOM 545 SD DMS 137 17.570 14.520 28.330 1.00 0.000 +ATOM 546 CD1 DMS 137 16.440 14.440 29.910 1.00 0.000 +ATOM 547 OD DMS 137 18.510 15.710 28.580 1.00 0.000 +ATOM 548 CD2 DMS 137 18.540 12.830 28.520 1.00 0.000 +ATOM 549 SD DMS 138 8.950 20.590 16.470 1.00 0.000 +ATOM 550 CD1 DMS 138 9.810 19.760 14.920 1.00 0.000 +ATOM 551 OD DMS 138 7.540 20.020 16.560 1.00 0.000 +ATOM 552 CD2 DMS 138 10.030 19.790 17.880 1.00 0.000 +ATOM 553 SD DMS 139 9.930 28.580 6.040 1.00 0.000 +ATOM 554 CD1 DMS 139 9.500 28.120 4.190 1.00 0.000 +ATOM 555 OD DMS 139 11.140 29.520 6.030 1.00 0.000 +ATOM 556 CD2 DMS 139 8.380 29.660 6.540 1.00 0.000 +ATOM 557 SD DMS 140 29.300 9.060 8.360 1.00 0.000 +ATOM 558 CD1 DMS 140 29.630 10.000 10.040 1.00 0.000 +ATOM 559 OD DMS 140 29.460 7.570 8.670 1.00 0.000 +ATOM 560 CD2 DMS 140 27.390 9.430 8.210 1.00 0.000 +ATOM 561 SD DMS 141 15.250 2.100 14.930 1.00 0.000 +ATOM 562 CD1 DMS 141 14.960 4.030 14.930 1.00 0.000 +ATOM 563 OD DMS 141 15.760 1.920 16.360 1.00 0.000 +ATOM 564 CD2 DMS 141 13.480 1.350 14.620 1.00 0.000 +ATOM 565 SD DMS 142 3.880 18.610 7.890 1.00 0.000 +ATOM 566 CD1 DMS 142 5.780 18.240 7.650 1.00 0.000 +ATOM 567 OD DMS 142 3.390 17.510 8.830 1.00 0.000 +ATOM 568 CD2 DMS 142 3.850 20.330 8.800 1.00 0.000 +ATOM 569 SD DMS 143 17.380 25.050 7.200 1.00 0.000 +ATOM 570 CD1 DMS 143 17.280 26.940 7.690 1.00 0.000 +ATOM 571 OD DMS 143 18.700 24.790 6.470 1.00 0.000 +ATOM 572 CD2 DMS 143 17.820 24.500 9.020 1.00 0.000 +ATOM 573 SD DMS 144 19.970 0.000 1.140 1.00 0.000 +ATOM 574 CD1 DMS 144 21.840 -0.490 1.430 1.00 0.000 +ATOM 575 OD DMS 144 19.130 -0.490 2.310 1.00 0.000 +ATOM 576 CD2 DMS 144 20.170 1.920 1.430 1.00 0.000 +ATOM 577 SD DMS 145 16.790 12.440 17.390 1.00 0.000 +ATOM 578 CD1 DMS 145 16.490 12.110 15.490 1.00 0.000 +ATOM 579 OD DMS 145 17.030 11.050 17.980 1.00 0.000 +ATOM 580 CD2 DMS 145 18.350 13.610 17.300 1.00 0.000 +ATOM 581 SD DMS 146 9.360 7.470 3.250 1.00 0.000 +ATOM 582 CD1 DMS 146 9.210 8.810 1.840 1.00 0.000 +ATOM 583 OD DMS 146 10.470 7.830 4.240 1.00 0.000 +ATOM 584 CD2 DMS 146 7.790 7.880 4.330 1.00 0.000 +ATOM 585 SD DMS 147 10.580 25.810 10.430 1.00 0.000 +ATOM 586 CD1 DMS 147 9.330 24.440 9.830 1.00 0.000 +ATOM 587 OD DMS 147 11.380 25.450 11.690 1.00 0.000 +ATOM 588 CD2 DMS 147 11.750 25.200 8.990 1.00 0.000 +ATOM 589 SD DMS 148 11.750 2.190 1.490 1.00 0.000 +ATOM 590 CD1 DMS 148 11.660 0.270 1.140 1.00 0.000 +ATOM 591 OD DMS 148 10.290 2.650 1.520 1.00 0.000 +ATOM 592 CD2 DMS 148 12.240 1.790 3.330 1.00 0.000 +ATOM 593 SD DMS 149 4.250 20.830 18.460 1.00 0.000 +ATOM 594 CD1 DMS 149 5.920 21.700 18.960 1.00 0.000 +ATOM 595 OD DMS 149 4.360 19.350 18.830 1.00 0.000 +ATOM 596 CD2 DMS 149 3.190 21.670 19.870 1.00 0.000 +ATOM 597 SD DMS 150 27.620 3.270 23.310 1.00 0.000 +ATOM 598 CD1 DMS 150 27.390 1.340 23.080 1.00 0.000 +ATOM 599 OD DMS 150 27.010 4.010 22.120 1.00 0.000 +ATOM 600 CD2 DMS 150 26.470 3.650 24.840 1.00 0.000 +ATOM 601 SD DMS 151 1.530 16.220 17.470 1.00 0.000 +ATOM 602 CD1 DMS 151 3.150 16.770 16.540 1.00 0.000 +ATOM 603 OD DMS 151 1.820 15.060 18.410 1.00 0.000 +ATOM 604 CD2 DMS 151 1.390 17.770 18.650 1.00 0.000 +ATOM 605 SD DMS 152 0.800 -0.400 3.600 1.00 0.000 +ATOM 606 CD1 DMS 152 -0.440 1.090 3.360 1.00 0.000 +ATOM 607 OD DMS 152 1.850 -0.390 2.490 1.00 0.000 +ATOM 608 CD2 DMS 152 1.670 0.420 5.140 1.00 0.000 +ATOM 609 SD DMS 153 5.070 24.370 16.680 1.00 0.000 +ATOM 610 CD1 DMS 153 3.750 25.710 17.220 1.00 0.000 +ATOM 611 OD DMS 153 4.190 23.190 16.270 1.00 0.000 +ATOM 612 CD2 DMS 153 5.590 25.300 15.040 1.00 0.000 +ATOM 613 SD DMS 154 21.920 25.710 26.150 1.00 0.000 +ATOM 614 CD1 DMS 154 20.090 26.320 25.870 1.00 0.000 +ATOM 615 OD DMS 154 22.450 24.970 24.910 1.00 0.000 +ATOM 616 CD2 DMS 154 22.630 27.520 25.970 1.00 0.000 +ATOM 617 SD DMS 155 8.620 28.100 19.910 1.00 0.000 +ATOM 618 CD1 DMS 155 10.100 27.510 18.780 1.00 0.000 +ATOM 619 OD DMS 155 8.470 29.620 19.830 1.00 0.000 +ATOM 620 CD2 DMS 155 7.210 27.400 18.760 1.00 0.000 +ATOM 621 SD DMS 156 8.550 15.100 14.100 1.00 0.000 +ATOM 622 CD1 DMS 156 9.450 13.390 13.850 1.00 0.000 +ATOM 623 OD DMS 156 9.630 16.160 14.320 1.00 0.000 +ATOM 624 CD2 DMS 156 7.920 15.300 12.260 1.00 0.000 +ATOM 625 SD DMS 157 24.790 3.360 1.670 1.00 0.000 +ATOM 626 CD1 DMS 157 23.450 2.460 2.770 1.00 0.000 +ATOM 627 OD DMS 157 24.220 4.650 1.090 1.00 0.000 +ATOM 628 CD2 DMS 157 25.890 3.960 3.170 1.00 0.000 +ATOM 629 SD DMS 158 14.070 8.740 16.030 1.00 0.000 +ATOM 630 CD1 DMS 158 14.060 10.160 17.360 1.00 0.000 +ATOM 631 OD DMS 158 14.720 9.160 14.710 1.00 0.000 +ATOM 632 CD2 DMS 158 15.490 7.670 16.830 1.00 0.000 +ATOM 633 SD DMS 159 19.940 5.890 4.200 1.00 0.000 +ATOM 634 CD1 DMS 159 21.490 4.800 4.660 1.00 0.000 +ATOM 635 OD DMS 159 19.570 5.710 2.730 1.00 0.000 +ATOM 636 CD2 DMS 159 18.540 5.010 5.240 1.00 0.000 +ATOM 637 SD DMS 160 18.850 4.650 18.680 1.00 0.000 +ATOM 638 CD1 DMS 160 18.400 3.720 17.020 1.00 0.000 +ATOM 639 OD DMS 160 18.000 4.080 19.820 1.00 0.000 +ATOM 640 CD2 DMS 160 20.710 4.220 19.070 1.00 0.000 +ATOM 641 SD DMS 161 27.970 0.010 20.000 1.00 0.000 +ATOM 642 CD1 DMS 161 27.830 1.910 19.570 1.00 0.000 +ATOM 643 OD DMS 161 26.500 -0.370 20.210 1.00 0.000 +ATOM 644 CD2 DMS 161 28.620 -0.830 18.370 1.00 0.000 +ATOM 645 SD DMS 162 12.550 22.660 14.580 1.00 0.000 +ATOM 646 CD1 DMS 162 13.510 24.280 15.090 1.00 0.000 +ATOM 647 OD DMS 162 12.200 21.800 15.790 1.00 0.000 +ATOM 648 CD2 DMS 162 10.970 23.730 14.170 1.00 0.000 +ATOM 649 SD DMS 163 24.320 11.960 1.420 1.00 0.000 +ATOM 650 CD1 DMS 163 22.600 11.070 1.150 1.00 0.000 +ATOM 651 OD DMS 163 24.750 11.820 2.880 1.00 0.000 +ATOM 652 CD2 DMS 163 25.410 10.510 0.690 1.00 0.000 +ATOM 653 SD DMS 164 14.030 8.180 10.640 1.00 0.000 +ATOM 654 CD1 DMS 164 15.740 7.240 10.640 1.00 0.000 +ATOM 655 OD DMS 164 13.540 8.020 9.200 1.00 0.000 +ATOM 656 CD2 DMS 164 13.130 6.870 11.770 1.00 0.000 +ATOM 657 SD DMS 165 5.990 13.650 20.740 1.00 0.000 +ATOM 658 CD1 DMS 165 4.830 14.490 19.410 1.00 0.000 +ATOM 659 OD DMS 165 5.710 14.380 22.060 1.00 0.000 +ATOM 660 CD2 DMS 165 4.990 11.980 20.590 1.00 0.000 +ATOM 661 SD DMS 166 23.610 23.130 0.300 1.00 0.000 +ATOM 662 CD1 DMS 166 24.930 24.190 -0.670 1.00 0.000 +ATOM 663 OD DMS 166 24.120 23.140 1.740 1.00 0.000 +ATOM 664 CD2 DMS 166 22.100 24.370 0.250 1.00 0.000 +ATOM 665 SD DMS 167 10.020 6.350 20.940 1.00 0.000 +ATOM 666 CD1 DMS 167 11.450 7.210 21.960 1.00 0.000 +ATOM 667 OD DMS 167 8.800 7.250 21.140 1.00 0.000 +ATOM 668 CD2 DMS 167 10.830 6.720 19.210 1.00 0.000 +ATOM 669 SD DMS 168 16.540 22.610 26.730 1.00 0.000 +ATOM 670 CD1 DMS 168 18.220 21.630 26.540 1.00 0.000 +ATOM 671 OD DMS 168 16.810 24.110 26.630 1.00 0.000 +ATOM 672 CD2 DMS 168 16.170 22.370 24.830 1.00 0.000 +ATOM 673 SD DMS 169 24.360 3.530 17.090 1.00 0.000 +ATOM 674 CD1 DMS 169 24.680 1.610 17.110 1.00 0.000 +ATOM 675 OD DMS 169 25.660 4.300 16.840 1.00 0.000 +ATOM 676 CD2 DMS 169 23.300 3.530 15.450 1.00 0.000 +ATOM 677 SD DMS 170 4.770 29.090 11.680 1.00 0.000 +ATOM 678 CD1 DMS 170 5.350 27.380 10.950 1.00 0.000 +ATOM 679 OD DMS 170 5.910 29.190 12.700 1.00 0.000 +ATOM 680 CD2 DMS 170 5.180 30.260 10.170 1.00 0.000 +ATOM 681 SD DMS 171 13.960 13.120 7.990 1.00 0.000 +ATOM 682 CD1 DMS 171 14.630 12.410 6.300 1.00 0.000 +ATOM 683 OD DMS 171 12.870 14.120 7.600 1.00 0.000 +ATOM 684 CD2 DMS 171 13.110 11.440 8.510 1.00 0.000 +ATOM 685 SD DMS 172 9.020 15.070 8.760 1.00 0.000 +ATOM 686 CD1 DMS 172 10.550 15.050 9.970 1.00 0.000 +ATOM 687 OD DMS 172 8.330 16.430 8.830 1.00 0.000 +ATOM 688 CD2 DMS 172 10.040 14.950 7.100 1.00 0.000 +ATOM 689 SD DMS 173 21.830 12.510 22.250 1.00 0.000 +ATOM 690 CD1 DMS 173 20.510 13.540 23.250 1.00 0.000 +ATOM 691 OD DMS 173 23.150 12.700 23.000 1.00 0.000 +ATOM 692 CD2 DMS 173 21.360 10.740 22.910 1.00 0.000 +ATOM 693 SD DMS 174 27.060 22.100 4.190 1.00 0.000 +ATOM 694 CD1 DMS 174 25.960 23.240 5.320 1.00 0.000 +ATOM 695 OD DMS 174 27.880 21.370 5.260 1.00 0.000 +ATOM 696 CD2 DMS 174 25.580 20.920 3.730 1.00 0.000 +ATOM 697 SD DMS 175 13.040 26.020 27.840 1.00 0.000 +ATOM 698 CD1 DMS 175 13.500 24.210 28.400 1.00 0.000 +ATOM 699 OD DMS 175 12.900 27.050 28.960 1.00 0.000 +ATOM 700 CD2 DMS 175 14.670 26.470 26.860 1.00 0.000 +ATOM 701 SD DMS 176 17.370 12.350 9.350 1.00 0.000 +ATOM 702 CD1 DMS 176 18.180 14.050 8.870 1.00 0.000 +ATOM 703 OD DMS 176 17.850 11.250 8.400 1.00 0.000 +ATOM 704 CD2 DMS 176 18.570 12.240 10.890 1.00 0.000 +ATOM 705 SD DMS 177 6.150 27.460 24.290 1.00 0.000 +ATOM 706 CD1 DMS 177 7.570 26.600 25.300 1.00 0.000 +ATOM 707 OD DMS 177 5.310 28.300 25.260 1.00 0.000 +ATOM 708 CD2 DMS 177 7.450 28.610 23.390 1.00 0.000 +ATOM 709 SD DMS 178 28.990 25.130 2.320 1.00 0.000 +ATOM 710 CD1 DMS 178 28.420 25.140 0.460 1.00 0.000 +ATOM 711 OD DMS 178 27.760 24.810 3.180 1.00 0.000 +ATOM 712 CD2 DMS 178 30.230 23.640 2.200 1.00 0.000 +ATOM 713 SD DMS 179 28.080 8.860 23.950 1.00 0.000 +ATOM 714 CD1 DMS 179 28.680 7.020 24.190 1.00 0.000 +ATOM 715 OD DMS 179 28.230 9.600 25.280 1.00 0.000 +ATOM 716 CD2 DMS 179 29.630 9.140 22.810 1.00 0.000 +ATOM 717 SD DMS 180 5.500 3.900 14.520 1.00 0.000 +ATOM 718 CD1 DMS 180 4.120 3.200 13.340 1.00 0.000 +ATOM 719 OD DMS 180 5.520 3.260 15.910 1.00 0.000 +ATOM 720 CD2 DMS 180 7.010 3.150 13.530 1.00 0.000 +ATOM 721 SD DMS 181 10.070 5.480 6.870 1.00 0.000 +ATOM 722 CD1 DMS 181 11.230 4.640 5.550 1.00 0.000 +ATOM 723 OD DMS 181 9.010 4.470 7.330 1.00 0.000 +ATOM 724 CD2 DMS 181 11.480 5.670 8.200 1.00 0.000 +ATOM 725 SD DMS 182 0.690 23.800 17.560 1.00 0.000 +ATOM 726 CD1 DMS 182 -1.240 23.950 17.440 1.00 0.000 +ATOM 727 OD DMS 182 1.110 24.220 18.970 1.00 0.000 +ATOM 728 CD2 DMS 182 0.860 21.880 17.280 1.00 0.000 +ATOM 729 SD DMS 183 7.270 25.090 6.300 1.00 0.000 +ATOM 730 CD1 DMS 183 7.050 26.490 7.630 1.00 0.000 +ATOM 731 OD DMS 183 8.280 24.010 6.720 1.00 0.000 +ATOM 732 CD2 DMS 183 5.470 24.380 6.530 1.00 0.000 +ATOM 733 SD DMS 184 2.170 24.050 12.280 1.00 0.000 +ATOM 734 CD1 DMS 184 2.840 23.170 13.890 1.00 0.000 +ATOM 735 OD DMS 184 2.700 25.480 12.370 1.00 0.000 +ATOM 736 CD2 DMS 184 3.190 23.170 10.870 1.00 0.000 +ATOM 737 SD DMS 185 28.780 19.570 10.110 1.00 0.000 +ATOM 738 CD1 DMS 185 29.400 19.520 8.260 1.00 0.000 +ATOM 739 OD DMS 185 27.290 19.200 10.140 1.00 0.000 +ATOM 740 CD2 DMS 185 29.830 18.030 10.710 1.00 0.000 +ATOM 741 SD DMS 186 13.630 6.790 1.340 1.00 0.000 +ATOM 742 CD1 DMS 186 14.790 5.430 2.130 1.00 0.000 +ATOM 743 OD DMS 186 14.150 7.170 -0.050 1.00 0.000 +ATOM 744 CD2 DMS 186 12.050 5.670 1.150 1.00 0.000 +ATOM 745 SD DMS 187 26.240 27.580 3.620 1.00 0.000 +ATOM 746 CD1 DMS 187 24.940 26.200 3.190 1.00 0.000 +ATOM 747 OD DMS 187 25.400 28.860 3.670 1.00 0.000 +ATOM 748 CD2 DMS 187 26.710 27.020 5.430 1.00 0.000 +ATOM 749 SD DMS 188 19.590 19.130 7.310 1.00 0.000 +ATOM 750 CD1 DMS 188 18.380 17.690 6.810 1.00 0.000 +ATOM 751 OD DMS 188 20.530 19.240 6.110 1.00 0.000 +ATOM 752 CD2 DMS 188 18.200 20.500 7.320 1.00 0.000 +ATOM 753 SD DMS 189 25.580 16.620 16.920 1.00 0.000 +ATOM 754 CD1 DMS 189 26.140 14.990 16.020 1.00 0.000 +ATOM 755 OD DMS 189 24.050 16.590 16.990 1.00 0.000 +ATOM 756 CD2 DMS 189 26.020 16.010 18.720 1.00 0.000 +ATOM 757 SD DMS 190 27.150 26.320 24.440 1.00 0.000 +ATOM 758 CD1 DMS 190 26.800 27.650 25.810 1.00 0.000 +ATOM 759 OD DMS 190 28.460 25.600 24.760 1.00 0.000 +ATOM 760 CD2 DMS 190 25.620 25.160 24.730 1.00 0.000 +ATOM 761 SD DMS 191 2.810 14.960 26.650 1.00 0.000 +ATOM 762 CD1 DMS 191 3.760 14.720 28.330 1.00 0.000 +ATOM 763 OD DMS 191 1.870 13.760 26.480 1.00 0.000 +ATOM 764 CD2 DMS 191 1.950 16.650 27.090 1.00 0.000 +ATOM 765 SD DMS 192 24.730 29.020 13.050 1.00 0.000 +ATOM 766 CD1 DMS 192 26.060 30.100 13.990 1.00 0.000 +ATOM 767 OD DMS 192 24.520 29.540 11.630 1.00 0.000 +ATOM 768 CD2 DMS 192 25.440 27.200 12.920 1.00 0.000 +ATOM 769 SD DMS 193 2.730 23.830 22.880 1.00 0.000 +ATOM 770 CD1 DMS 193 2.620 25.230 24.230 1.00 0.000 +ATOM 771 OD DMS 193 2.980 22.560 23.690 1.00 0.000 +ATOM 772 CD2 DMS 193 0.830 23.920 22.430 1.00 0.000 +ATOM 773 SD DMS 194 15.940 0.350 1.560 1.00 0.000 +ATOM 774 CD1 DMS 194 16.700 0.270 -0.240 1.00 0.000 +ATOM 775 OD DMS 194 14.610 1.040 1.240 1.00 0.000 +ATOM 776 CD2 DMS 194 15.540 -1.550 1.670 1.00 0.000 +ATOM 777 SD DMS 195 14.840 17.810 20.270 1.00 0.000 +ATOM 778 CD1 DMS 195 13.320 18.000 19.060 1.00 0.000 +ATOM 779 OD DMS 195 14.810 16.360 20.750 1.00 0.000 +ATOM 780 CD2 DMS 195 16.170 17.810 18.850 1.00 0.000 +ATOM 781 SD DMS 196 12.000 14.320 23.190 1.00 0.000 +ATOM 782 CD1 DMS 196 10.090 14.650 23.400 1.00 0.000 +ATOM 783 OD DMS 196 12.310 12.860 22.880 1.00 0.000 +ATOM 784 CD2 DMS 196 11.940 15.330 21.520 1.00 0.000 +ATOM 785 SD DMS 197 21.740 15.070 18.890 1.00 0.000 +ATOM 786 CD1 DMS 197 22.760 15.980 20.280 1.00 0.000 +ATOM 787 OD DMS 197 20.790 14.080 19.550 1.00 0.000 +ATOM 788 CD2 DMS 197 20.770 16.670 18.330 1.00 0.000 +ATOM 789 SD DMS 198 14.250 20.290 4.650 1.00 0.000 +ATOM 790 CD1 DMS 198 14.790 21.890 3.670 1.00 0.000 +ATOM 791 OD DMS 198 15.350 19.240 4.760 1.00 0.000 +ATOM 792 CD2 DMS 198 14.190 21.120 6.420 1.00 0.000 +ATOM 793 SD DMS 199 7.880 19.220 21.150 1.00 0.000 +ATOM 794 CD1 DMS 199 6.680 17.780 20.620 1.00 0.000 +ATOM 795 OD DMS 199 7.780 19.510 22.650 1.00 0.000 +ATOM 796 CD2 DMS 199 9.500 18.130 21.110 1.00 0.000 +ATOM 797 SD DMS 200 8.770 25.220 1.040 1.00 0.000 +ATOM 798 CD1 DMS 200 7.260 23.990 1.080 1.00 0.000 +ATOM 799 OD DMS 200 9.700 24.610 -0.010 1.00 0.000 +ATOM 800 CD2 DMS 200 7.870 26.710 0.140 1.00 0.000 +ATOM 801 SD DMS 201 9.180 11.240 17.330 1.00 0.000 +ATOM 802 CD1 DMS 201 8.800 9.810 18.610 1.00 0.000 +ATOM 803 OD DMS 201 10.440 12.040 17.650 1.00 0.000 +ATOM 804 CD2 DMS 201 9.840 9.810 16.180 1.00 0.000 +ATOM 805 SD DMS 202 24.030 21.660 23.550 1.00 0.000 +ATOM 806 CD1 DMS 202 23.930 22.130 25.440 1.00 0.000 +ATOM 807 OD DMS 202 25.240 22.470 23.090 1.00 0.000 +ATOM 808 CD2 DMS 202 24.560 19.790 23.760 1.00 0.000 +ATOM 809 SD DMS 203 21.280 27.100 11.880 1.00 0.000 +ATOM 810 CD1 DMS 203 19.390 27.100 11.390 1.00 0.000 +ATOM 811 OD DMS 203 21.280 27.120 13.410 1.00 0.000 +ATOM 812 CD2 DMS 203 21.800 25.260 11.520 1.00 0.000 +ATOM 813 SD DMS 204 10.760 11.290 27.890 1.00 0.000 +ATOM 814 CD1 DMS 204 10.000 12.400 26.480 1.00 0.000 +ATOM 815 OD DMS 204 10.330 11.690 29.300 1.00 0.000 +ATOM 816 CD2 DMS 204 9.600 9.770 27.480 1.00 0.000 +ATOM 817 SD DMS 205 22.110 14.990 25.730 1.00 0.000 +ATOM 818 CD1 DMS 205 21.910 14.390 27.570 1.00 0.000 +ATOM 819 OD DMS 205 20.810 15.760 25.450 1.00 0.000 +ATOM 820 CD2 DMS 205 23.510 16.300 26.060 1.00 0.000 +ATOM 821 SD DMS 206 14.500 22.950 9.860 1.00 0.000 +ATOM 822 CD1 DMS 206 15.560 21.400 10.410 1.00 0.000 +ATOM 823 OD DMS 206 14.970 23.270 8.440 1.00 0.000 +ATOM 824 CD2 DMS 206 12.900 21.840 9.840 1.00 0.000 +ATOM 825 SD DMS 207 0.660 4.580 14.780 1.00 0.000 +ATOM 826 CD1 DMS 207 1.220 2.840 15.460 1.00 0.000 +ATOM 827 OD DMS 207 -0.160 4.600 13.490 1.00 0.000 +ATOM 828 CD2 DMS 207 -0.440 5.150 16.280 1.00 0.000 +ATOM 829 SD DMS 208 16.990 1.820 6.160 1.00 0.000 +ATOM 830 CD1 DMS 208 15.530 2.540 5.080 1.00 0.000 +ATOM 831 OD DMS 208 16.310 0.900 7.170 1.00 0.000 +ATOM 832 CD2 DMS 208 17.900 0.770 4.780 1.00 0.000 +END diff --git a/src/haddock/modules/flexref/cns/dna-rna_restraints.def b/src/haddock/modules/flexref/cns/dna-rna_restraints.def new file mode 100644 index 000000000..6072b147b --- /dev/null +++ b/src/haddock/modules/flexref/cns/dna-rna_restraints.def @@ -0,0 +1,1221 @@ +! dna-rna_restraints.def +! Define backbone dihedral angles, hbonds and planarity restraints +! for nucleic acids +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! +{+ file: dna-rna_restraints.def directory: protocols +} +{+ description: Creates restraints to maintain conformation of DNA/RNA +

+Additions and changes were made to allow for flexibility during docking

+Changes include:
+ + + +} +{+ comment:This file is to be read by refinement files that modify atom coordinates +} +{+ authors: Axel T. Brunger, and Paul D. Adams,
+ modified by Alexandre Bonvin and Marc van Dijk for HADDOCK use +} + +set message=normal echo=on end + +{- begin block parameter definition -} define( + +{=========================================== base-pair planarity ===========================================} + +{* Use planarity restraints for Watson-Crick base pairing *} +{+ choice: true false +} +{===>} basepair_planar=false; + +{============================================== base planarity =============================================} + +{* Restrain base planarity. This selection must only include nucleotide residues *} +{===>} bases_planar=((resid 1:20 or resid 21:40) and segid B); + +{=================================== sugar-pucker dihedral angle restraints ================================} + +{* Pick the dihedral angles of the sugar pucker from the input structure + and restrain them within the given error range *} +{+ choice: true false +} +{===>} dna_pick_pucdih=true; + +{* residues with sugar pucker restrained - group 1 *} +{===>} pucker_1=(resid 1:20 and segid B); + +{* conformation of group 1 *} +{+ choice: "a-form" "b-form" "other" +} +{===>} form_1="other"; + +{* user defined sugar pucker for group 1 *} + +{* dihedral C1'-C2'-C3'-C4' *} +{===>} dihedral_nu2_1=-34.9; +{* dihedral C1'-C2'-C3'-C4' error range *} +{===>} error_nu2_1=0.0; +{* dihedral C5'-C4'-C3'-C2' *} +{===>} dihedral_nu3_1=-86.4; +{* dihedral C5'-C4'-C3'-C2' error range *} +{===>} error_nu3_1=0.0; +{* dihedral C1'-O4'-C4'-C5' *} +{===>} dihedral_nu4_1=106.4; +{* dihedral C1'-O4'-C4'-C5' error range *} +{===>} error_nu4_1=0.0; + +{* residues with sugar pucker restrained - group 2 *} +{===>} pucker_2=(resid 21:40 and segid B); + +{* conformation of group 2 *} +{+ choice: "a-form" "b-form" "other" +} +{===>} form_2="other"; + +{* user defined sugar pucker for group 2 *} + +{* dihedral C1'-C2'-C3'-C4' *} +{===>} dihedral_nu2_2=-34.9; +{* dihedral C1'-C2'-C3'-C4' error range *} +{===>} error_nu2_2=0.0; +{* dihedral C5'-C4'-C3'-C2' *} +{===>} dihedral_nu3_2=-86.4; +{* dihedral C5'-C4'-C3'-C2' error range *} +{===>} error_nu3_2=0.0; +{* dihedral C1'-O4'-C4'-C5' *} +{===>} dihedral_nu4_2=106.4; +{* dihedral C1'-O4'-C4'-C5' error range *} +{===>} error_nu4_2=0.0; + +{* residues with sugar pucker restrained - group 3 *} +{===>} pucker_3=(none); + +{* conformation of group 3 *} +{+ choice: "a-form" "b-form" "other" +} +{===>} form_3="b-form"; + +{* user defined sugar pucker for group 3 *} + +{* dihedral C1'-C2'-C3'-C4' *} +{===>} dihedral_nu2_3=-34.9; +{* dihedral C1'-C2'-C3'-C4' error range *} +{===>} error_nu2_3=10.0; +{* dihedral C5'-C4'-C3'-C2' *} +{===>} dihedral_nu3_3=-86.4; +{* dihedral C5'-C4'-C3'-C2' error range *} +{===>} error_nu3_3=10.0; +{* dihedral C1'-O4'-C4'-C5' *} +{===>} dihedral_nu4_3=106.4; +{* dihedral C1'-O4'-C4'-C5' error range *} +{===>} error_nu4_3=10.0; + +{* residues with sugar pucker restrained - group 4 *} +{===>} pucker_4=(none); + +{* conformation of group 4 *} +{+ choice: "a-form" "b-form" "other" +} +{===>} form_4="b-form"; + +{* user defined sugar pucker for group 4 *} + +{* dihedral C1'-C2'-C3'-C4' *} +{===>} dihedral_nu2_4=-34.9; +{* dihedral C1'-C2'-C3'-C4' error range *} +{===>} error_nu2_4=10.0; +{* dihedral C5'-C4'-C3'-C2' *} +{===>} dihedral_nu3_4=-86.4; +{* dihedral C5'-C4'-C3'-C2' error range *} +{===>} error_nu3_4=10.0; +{* dihedral C1'-O4'-C4'-C5' *} +{===>} dihedral_nu4_4=106.4; +{* dihedral C1'-O4'-C4'-C5' error range *} +{===>} error_nu4_4=10.0; + +{================================ phosphate backbone dihedral angle restraints =============================} + +{* Pick the dihedral angles of the phosphate backbone from the input structure and + restrain them within the given error range *} +{+ choice: true false +} +{===>} dna_pick_bacdih=true; + +{* residues with phosphate backbone restrained - group 1 *} +{===>} dihedral_1=(resid 1:20 and segid B); + +{* conformation of group 1 *} +{+ choice: "a-form" "b-form" "other" +} +{===>} form_1="other"; + +{* user defined sugar pucker for group 1 *} + +{* alpha dihedral O3'-P-O5'-C5' *} +{===>} dihedral_alpha_1=-10.0; +{* alpha dihedral range *} +{===>} error_alpha_1=10.0; +{* beta dihedral P-O5'-C5'-C4' *} +{===>} dihedral_beta_1=136.4; +{* beta dihedral range *} +{===>} error_beta_1=40.0; +{* gamma dihedral O5'-C5'-C4'-C3' *} +{===>} dihedral_gamma_1=31.1; +{* gamma dihedral range *} +{===>} error_gamma_1=20.0; +{* delta dihedral C5'-C4'-C3'-O3' *} +{===>} dihedral_delta_1=-165.0; +{* delta dihedral range *} +{===>} error_delta_1=50.0; +{* epsilon dihedral C4'-C3'-O3'-P *} +{===>} dihedral_eps_1=-165.0; +{* epsilon dihedral range *} +{===>} error_eps_1=10.0; +{* zeta dihedral C3'-O3'-P-O5' *} +{===>} dihedral_zeta_1=-150.8; +{* zeta dihedral range *} +{===>} error_zeta_1=50.0; + +{* residues with phosphate backbone restrained - group 2 *} +{===>} dihedral_2=(resid 21:40 and segid B); + +{* conformation of group 2 *} +{+ choice: "a-form" "b-form" "other" +} +{===>} form_2="other"; + +{* user defined sugar pucker for group 2 *} + +{* alpha dihedral O3'-P-O5'-C5' *} +{===>} dihedral_alpha_2=-10.0; +{* alpha dihedral range *} +{===>} error_alpha_2=10.0; +{* beta dihedral P-O5'-C5'-C4' *} +{===>} dihedral_beta_2=136.4; +{* beta dihedral range *} +{===>} error_beta_2=40.0; +{* gamma dihedral O5'-C5'-C4'-C3' *} +{===>} dihedral_gamma_2=31.1; +{* gamma dihedral range *} +{===>} error_gamma_2=20.0; +{* delta dihedral C5'-C4'-C3'-O3' *} +{===>} dihedral_delta_2=-165.0; +{* delta dihedral range *} +{===>} error_delta_2=50.0; +{* epsilon dihedral C4'-C3'-O3'-P *} +{===>} dihedral_eps_2=-165.0; +{* epsilon dihedral range *} +{===>} error_eps_2=10.0; +{* zeta dihedral C3'-O3'-P-O5' *} +{===>} dihedral_zeta_2=-150.8; +{* zeta dihedral range *} +{===>} error_zeta_2=50.0; + +{* residues with phosphate backbone restrained - group 3 *} +{===>} dihedral_3=(none); + +{* conformation of group 3 *} +{+ choice: "a-form" "b-form" "other" +} +{===>} form_3="other"; + +{* user defined sugar pucker for group 3 *} + +{* alpha dihedral O3'-P-O5'-C5' *} +{===>} dihedral_alpha_3=-10.0; +{* alpha dihedral range *} +{===>} error_alpha_3=10.0; +{* beta dihedral P-O5'-C5'-C4' *} +{===>} dihedral_beta_3=136.4; +{* beta dihedral range *} +{===>} error_beta_3=40.0; +{* gamma dihedral O5'-C5'-C4'-C3' *} +{===>} dihedral_gamma_3=31.1; +{* gamma dihedral range *} +{===>} error_gamma_3=20.0; +{* delta dihedral C5'-C4'-C3'-O3' *} +{===>} dihedral_delta_3=-165.0; +{* delta dihedral range *} +{===>} error_delta_3=50.0; +{* epsilon dihedral C4'-C3'-O3'-P *} +{===>} dihedral_eps_3=-165.0; +{* epsilon dihedral range *} +{===>} error_eps_3=10.0; +{* zeta dihedral C3'-O3'-P-O5' *} +{===>} dihedral_zeta_3=-150.8; +{* zeta dihedral range *} +{===>} error_zeta_3=50.0; + +{* residues with phosphate backbone restrained - group 4 *} +{===>} dihedral_4=(none); + +{* conformation of group 4 *} +{+ choice: "a-form" "b-form" "other" +} +{===>} form_4="other"; + +{* user defined sugar pucker for group 4 *} + +{* alpha dihedral O3'-P-O5'-C5' *} +{===>} dihedral_alpha_4=-10.0; +{* alpha dihedral range *} +{===>} error_alpha_4=10.0; +{* beta dihedral P-O5'-C5'-C4' *} +{===>} dihedral_beta_4=136.4; +{* beta dihedral range *} +{===>} error_beta_4=40.0; +{* gamma dihedral O5'-C5'-C4'-C3' *} +{===>} dihedral_gamma_4=31.1; +{* gamma dihedral range *} +{===>} error_gamma_4=20.0; +{* delta dihedral C5'-C4'-C3'-O3' *} +{===>} dihedral_delta_4=-165.0; +{* delta dihedral range *} +{===>} error_delta_4=50.0; +{* epsilon dihedral C4'-C3'-O3'-P *} +{===>} dihedral_eps_4=-165.0; +{* epsilon dihedral range *} +{===>} error_eps_4=10.0; +{* zeta dihedral C3'-O3'-P-O5' *} +{===>} dihedral_zeta_4=-150.8; +{* zeta dihedral range *} +{===>} error_zeta_4=50.0; + +{============================================= C1'-C1' restraints ==========================================} + +{* Have the length of the C1'-C1' virtual bonds measured and restraints. *} +{+ choice: true false +} +{===>} dna_pick_c1=false; + +{* Error range used for C1'-C1' virtual bonds *} +{===>} c1_low=0.05; +{===>} c1_up=0.05; + +{=========================================== Watson-Crick base pairs =======================================} + +{* pick Watson-Crick restraint values from structure *} +{+ choice: true false +} +{===>} dna_pick_wc=true; +{* error range used for dna_pick_wc defined Watson-Crick restraints *} +{===>} wc_low=0.05; +{===>} wc_up=0.05; +{* for URI, for default much lower range... why?*} +{===>} wc_low_uri=0.01; +{===>} wc_up_uri=0.01; + +{* residues which form Watson-Crick pairs *} + +{* selection for pair 1 base A *} +{===>} base_a_1=(resid 1 and segid B); +{* selection for pair 1 base B *} +{===>} base_b_1=(resid 40 and segid B); + +{* selection for pair 2 base A *} +{===>} base_a_2=(resid 2 and segid B); +{* selection for pair 2 base B *} +{===>} base_b_2=(resid 39 and segid B); + +{* selection for pair 3 base A *} +{===>} base_a_2=(resid 3 and segid B); +{* selection for pair 3 base B *} +{===>} base_b_2=(resid 38 and segid B); + +{* selection for pair 4 base A *} +{===>} base_a_4=(resid 4 and segid B); +{* selection for pair 4 base B *} +{===>} base_b_4=(resid 37 and segid B); + +{* selection for pair 5 base A *} +{===>} base_a_5=(resid 5 and segid B); +{* selection for pair 5 base B *} +{===>} base_b_5=(resid 36 and segid B); + +{* selection for pair 6 base A *} +{===>} base_a_6=(resid 6 and segid B); +{* selection for pair 6 base B *} +{===>} base_b_6=(resid 35 and segid B); + +{* selection for pair 7 base A *} +{===>} base_a_7=(resid 7 and segid B); +{* selection for pair 7 base B *} +{===>} base_b_7=(resid 34 and segid B); + +{* selection for pair 8 base A *} +{===>} base_a_8=(resid 8 and segid B); +{* selection for pair 8 base B *} +{===>} base_b_8=(resid 33 and segid B); + +{* selection for pair 9 base A *} +{===>} base_a_9=(resid 9 and segid B); +{* selection for pair 9 base B *} +{===>} base_b_9=(resid 32 and segid B); + +{* selection for pair 10 base A *} +{===>} base_a_10=(resid 10 and segid B); +{* selection for pair 10 base B *} +{===>} base_b_10=(resid 31 and segid B); + +{* selection for pair 11 base A *} +{===>} base_a_11=(resid 11 and segid B); +{* selection for pair 11 base B *} +{===>} base_b_11=(resid 30 and segid B); + +{* selection for pair 12 base A *} +{===>} base_a_12=(resid 12 and segid B); +{* selection for pair 12 base B *} +{===>} base_b_12=(resid 29 and segid B); + +{* selection for pair 13 base A *} +{===>} base_a_13=(resid 13 and segid B); +{* selection for pair 13 base B *} +{===>} base_b_13=(resid 28 and segid B); + +{* selection for pair 14 base A *} +{===>} base_a_14=(resid 14 and segid B); +{* selection for pair 14 base B *} +{===>} base_b_14=(resid 27 and segid B); + +{* selection for pair 15 base A *} +{===>} base_a_15=(resid 15 and segid B); +{* selection for pair 15 base B *} +{===>} base_b_15=(resid 26 and segid B); + +{* selection for pair 16 base A *} +{===>} base_a_16=(resid 16 and segid B); +{* selection for pair 16 base B *} +{===>} base_b_16=(resid 25 and segid B); + +{* selection for pair 17 base A *} +{===>} base_a_17=(resid 17 and segid B); +{* selection for pair 17 base B *} +{===>} base_b_17=(resid 24 and segid B); + +{* selection for pair 18 base A *} +{===>} base_a_18=(resid 18 and segid B); +{* selection for pair 18 base B *} +{===>} base_b_18=(resid 23 and segid B); + +{* selection for pair 19 base A *} +{===>} base_a_19=(resid 19 and segid B); +{* selection for pair 19 base B *} +{===>} base_b_19=(resid 22 and segid B); + +{* selection for pair 20 base A *} +{===>} base_a_20=(resid 20 and segid B); +{* selection for pair 20 base B *} +{===>} base_b_20=(resid 21 and segid B); + +{=========================================================================================================} +{ things below this line do not normally need to be changed } +{=========================================================================================================} + + ) {- end block parameter definition -} + +{- the planarity restraints for Watson-Crick base pairing -} + +if (&basepair_planar=true) then + evaluate ($pair=1) + evaluate ($done=false) + while ( $done = false ) loop plan_paired + if ( &exist_base_a_$pair = true ) then + if ( &exist_base_b_$pair = true ) then + show (segid) ( &base_a_$pair and name C1' ) + evaluate ($Asegid=$result) + show (resid) ( &base_a_$pair and name C1' ) + evaluate ($Aresid=$result) + show (segid) ( &base_b_$pair and name C1' ) + evaluate ($Bsegid=$result) + show (resid) ( &base_b_$pair and name C1' ) + evaluate ($Bresid=$result) + evaluate ($plweight = 20) ! Enforce planarity by increasing plweight value. + + restraints plane + + group + selection=(((segid $Asegid and resid $Aresid) or (segid $Bsegid and resid $Bresid)) and + (resn THY or resn CYT or resn GUA or resn ADE or resn URI or + resn T or resn C or resn G or resn A or resn U or + resn DT or resn DC or resn DG or resn DA) and + not (name c#' or name h#' or name h#'' or name o#p or + name h7# or name o#' or name p or name h#t or name o#t)) + weight=$plweight + end + end + end if + else + evalute ($done = true) + end if + evaluate ($pair = $pair + 1) + end loop plan_paired +else +end if +flag include plan end + +{- the planarity restraints single bases -} + + for $id in id ( &bases_planar and tag and not (resn WAT or resn HOH or resn TIP*) ) loop plan + show (segid) (id $id) + evaluate ($segid=$result) + show (resid) (id $id) + evaluate ($resid=decode($result)) + evaluate ($plweight = 20) + + restraints plane + + group + selection=( segid $segid and resid $resid and + (resn THY or resn CYT or resn GUA or resn ADE or resn URI or + resn T or resn C or resn G or resn A or resn U or + resn DT or resn DC or resn DG or resn DA) and + not (name c#' or name h#' or name h#'' or name o#p or + name h7# or name o#' or name p or name h#t or name o#t)) + weight=$plweight + end + end + end loop plan + +{- Dihedral restraints for the sugar pucker -} + +if (&dna_pick_pucdih=true) then + evaluate ($group=1) + evaluate ($done=false) + while ( $done = false ) loop dihe + if ( &exist_pucker_$group = true ) then + show sum(1) ( &pucker_$group ) + if ( $result > 0 ) then + evaluate ($min_resid_$group = 99999) + evaluate ($max_resid_$group = -99999) + evaluate ($error_nu2=&error_nu2_$group) + evaluate ($error_nu3=&error_nu3_$group) + evaluate ($error_nu4=&error_nu4_$group) + for $id in id ( &pucker_$group and tag and not (resn WAT or resn HOH or resn TIP*) ) loop resid + show (segid) (id $id) + evaluate ($segid=$result) + show (resid) ( id $id ) + evaluate ($resid=decode($result)) + evaluate ($min_resid_$group = max($min_resid_$group,$resid)) + evaluate ($max_resid_$group = max($max_resid_$group,$resid)) + pick dihedral + ( segid $segid and resid $resid and name c1' ) + ( segid $segid and resid $resid and name c2' ) + ( segid $segid and resid $resid and name c3' ) + ( segid $segid and resid $resid and name c4' ) + geometry + evaluatate ($dihedral_nu2=$result) + pick dihedral + ( segid $segid and resid $resid and name c5' ) + ( segid $segid and resid $resid and name c4' ) + ( segid $segid and resid $resid and name c3' ) + ( segid $segid and resid $resid and name c2' ) + geometry + evaluatate ($dihedral_nu3=$result) + pick dihedral + ( segid $segid and resid $resid and name c1' ) + ( segid $segid and resid $resid and name o4' ) + ( segid $segid and resid $resid and name c4' ) + ( segid $segid and resid $resid and name c5' ) + geometry + evaluatate ($dihedral_nu4=$result) + + restraints dihedral + assign ( segid $segid and resid $resid and name c1' ) + ( segid $segid and resid $resid and name c2' ) + ( segid $segid and resid $resid and name c3' ) + ( segid $segid and resid $resid and name c4' ) + 20.0 $dihedral_nu2 $error_nu2 2 + assign ( segid $segid and resid $resid and name c5' ) + ( segid $segid and resid $resid and name c4' ) + ( segid $segid and resid $resid and name c3' ) + ( segid $segid and resid $resid and name c2' ) + 20.0 $dihedral_nu3 $error_nu3 2 + assign ( segid $segid and resid $resid and name c1' ) + ( segid $segid and resid $resid and name o4' ) + ( segid $segid and resid $resid and name c4' ) + ( segid $segid and resid $resid and name c5' ) + 20.0 $dihedral_nu4 $error_nu4 2 + scale=20.0 + end + end loop resid + end if + else + evaluate ($done=true) + end if + evaluate ($group=$group+1) + end loop dihe + + else + + evaluate ($group=1) + evaluate ($done=false) + while ( $done = false ) loop dihe + if ( &exist_pucker_$group = true ) then + show sum(1) ( &pucker_$group ) + if ( $result > 0 ) then + if ( &form_$group = "a-form" ) then + evaluate ($dihedral_nu2=37.053) + evaluate ($dihedral_nu3=-155.59) + evaluate ($dihedral_nu4=144.26) + elseif ( &form_$group = "b-form" ) then + evaluate ($dihedral_nu2=-34.9) + evaluate ($dihedral_nu3=-86.4) + evaluate ($dihedral_nu4=106.4) + elseif ( &form_$group = "other" ) then + evaluate ($dihedral_nu2=&dihedral_nu2_$group) + evaluate ($dihedral_nu3=&dihedral_nu3_$group) + evaluate ($dihedral_nu4=&dihedral_nu4_$group) + end if + + evaluate ($min_resid_$group = 99999) + evaluate ($max_resid_$group = -99999) + + for $id in id ( &pucker_$group and tag and not (resn WAT or resn HOH or resn TIP*) ) loop resid + + show (segid) (id $id) + evaluate ($segid=$result) + show (resid) ( id $id ) + evaluate ($resid=decode($result)) + evaluate ($min_resid_$group = max($min_resid_$group,$resid)) + evaluate ($max_resid_$group = max($max_resid_$group,$resid)) + + restraints dihedral + assign ( segid $segid and resid $resid and name c1' ) + ( segid $segid and resid $resid and name c2' ) + ( segid $segid and resid $resid and name c3' ) + ( segid $segid and resid $resid and name c4' ) + 20.0 $dihedral_nu2 0.0 2 + assign ( segid $segid and resid $resid and name c5' ) + ( segid $segid and resid $resid and name c4' ) + ( segid $segid and resid $resid and name c3' ) + ( segid $segid and resid $resid and name c2' ) + 20.0 $dihedral_nu3 0.0 2 + assign ( segid $segid and resid $resid and name c1' ) + ( segid $segid and resid $resid and name o4' ) + ( segid $segid and resid $resid and name c4' ) + ( segid $segid and resid $resid and name c5' ) + 20.0 $dihedral_nu4 0.0 2 + + scale=20.0 + end + end loop resid + end if + else + evaluate ($done=true) + end if + evaluate ($group=$group+1) + end loop dihe +end if +flags include cdih end + +{- Dihedral restraints for the phosphate backbone -} + +if (&dna_pick_bacdih=true) then + evaluate ($group=1) + evaluate ($done=false) + while ( $done = false ) loop bdihe + if ( &exist_dihedral_$group = true ) then + show sum(1) ( &dihedral_$group ) + if ( $result > 0 ) then + evaluate ($resid=$min_resid_$group) + evaluate ($nres=$max_resid_$group - $min_resid_$group + 1) + evaluate ($error_alpha=&error_alpha_$group) + evaluate ($error_beta=&error_beta_$group) + evaluate ($error_gamma=&error_gamma_$group) + evaluate ($error_zeta=&error_zeta_$group) + evaluate ($error_epsilon=&error_eps_$group) + evaluate ($error_delta=&error_delta_$group) + for $id in id ( &dihedral_$group and tag and not (resn WAT or resn HOH or resn TIP*) ) loop resid + show (segid) (id $id) + evaluate ($segid=$result) + show (resid) ( id $id ) + evaluate ($resid=decode($result)) + if ($resid > $min_resid_$group) then + evaluate ($rprec = $resid - 1) + pick dihedral + ( segid $segid and resid $rprec and name O3' ) + ( segid $segid and resid $resid and name P ) + ( segid $segid and resid $resid and name O5' ) + ( segid $segid and resid $resid and name C5' ) + geometry + evaluatate ($dihedral_alpha=$result) + pick dihedral + ( segid $segid and resid $resid and name P ) + ( segid $segid and resid $resid and name O5' ) + ( segid $segid and resid $resid and name C5' ) + ( segid $segid and resid $resid and name C4' ) + geometry + evaluatate ($dihedral_beta=$result) + + restraint dihedral + ! alpha + assign ( segid $segid and resid $rprec and name O3' ) + ( segid $segid and resid $resid and name P ) + ( segid $segid and resid $resid and name O5' ) + ( segid $segid and resid $resid and name C5' ) + 1.0 $dihedral_alpha $error_alpha 2 + ! beta + assign ( segid $segid and resid $resid and name P ) + ( segid $segid and resid $resid and name O5' ) + ( segid $segid and resid $resid and name C5' ) + ( segid $segid and resid $resid and name C4' ) + 1.0 $dihedral_beta $error_beta 2 + scale 200.0 + end + end if + + pick dihedral + ( segid $segid and resid $resid and name O5' ) + ( segid $segid and resid $resid and name C5' ) + ( segid $segid and resid $resid and name C4' ) + ( segid $segid and resid $resid and name C3' ) + geometry + evaluatate ($dihedral_gamma=$result) + pick dihedral + ( segid $segid and resid $resid and name C5' ) + ( segid $segid and resid $resid and name C4' ) + ( segid $segid and resid $resid and name C3' ) + ( segid $segid and resid $resid and name O3' ) + geometry + evaluatate ($dihedral_delta=$result) + + restraints dihedral + ! gamma + assign ( segid $segid and resid $resid and name O5' ) + ( segid $segid and resid $resid and name C5' ) + ( segid $segid and resid $resid and name C4' ) + ( segid $segid and resid $resid and name C3' ) + 1.0 $dihedral_gamma $error_gamma 2 + ! delta + assign ( segid $segid and resid $resid and name C5' ) + ( segid $segid and resid $resid and name C4' ) + ( segid $segid and resid $resid and name C3' ) + ( segid $segid and resid $resid and name O3' ) + 1.0 $dihedral_delta $error_delta 2 + scale=200.0 + end + + if ($resid < $max_resid_$group) then + evaluate ($rfoll = $resid + 1) + pick dihedral + ( segid $segid and resid $resid and name C4' ) + ( segid $segid and resid $resid and name C3' ) + ( segid $segid and resid $resid and name O3' ) + ( segid $segid and resid $rfoll and name P ) + geometry + evaluatate ($dihedral_epsilon=$result) + pick dihedral + ( segid $segid and resid $resid and name C3' ) + ( segid $segid and resid $resid and name O3' ) + ( segid $segid and resid $rfoll and name P ) + ( segid $segid and resid $rfoll and name O5' ) + geometry + evaluatate ($dihedral_zeta=$result) + restraint dihedral + ! epsilon + assign ( segid $segid and resid $resid and name C4' ) + ( segid $segid and resid $resid and name C3' ) + ( segid $segid and resid $resid and name O3' ) + ( segid $segid and resid $rfoll and name P ) + 1.0 $dihedral_epsilon $error_epsilon 2 + ! zeta + assign ( segid $segid and resid $resid and name C3' ) + ( segid $segid and resid $resid and name O3' ) + ( segid $segid and resid $rfoll and name P ) + ( segid $segid and resid $rfoll and name O5' ) + 1.0 $dihedral_zeta $error_zeta 2 + scale 200.0 + end + end if + end loop resid + end if + else + evaluate ($done=true) + end if + evaluate ($group=$group+1) + end loop bdihe + + else + + evaluate ($group=1) + evaluate ($done=false) + while ( $done = false ) loop bdihe + if ( &exist_dihedral_$group = true ) then + show sum(1) ( &dihedral_$group ) + if ( $result > 0 ) then + evaluate ($resid=$min_resid_$group) + evaluate ($nres=$max_resid_$group - $min_resid_$group + 1) + if ( &form_$group = "a-form" ) then + evaluate ($dihedral_alpha=-70) + evaluate ($error_alpha=50) + evaluate ($dihedral_beta=180) + evaluate ($error_beta=50) + evaluate ($dihedral_gamma=60) + evaluate ($error_gamma=35) + evaluate ($dihedral_delta=81) + evaluate ($error_delta=20) + evaluate ($dihedral_zeta=-85) + evaluate ($error_zeta=50) + evaluate ($dihedral_epsilon=180) + evaluate ($error_epsilon=35) + elseif ( &form_$group = "b-form" ) then + evaluate ($dihedral_alpha=-63.6) + evaluate ($error_alpha=6) + evaluate ($dihedral_beta=176) + evaluate ($error_beta=7) + evaluate ($dihedral_gamma=51.4) + evaluate ($error_gamma=7) + evaluate ($dihedral_delta=128) + evaluate ($error_delta=13) + evaluate ($dihedral_epsilon=-171.7) + evaluate ($error_epsilon=3.7) + evaluate ($dihedral_zeta=-103.8) + evaluate ($error_zeta=10) + elseif ( &form_$group = "other" ) then + evaluate ($dihedral_alpha=&dihedral_alpha_$group) + evaluate ($error_alpha=&error_alpha_$group) + evaluate ($dihedral_beta=&dihedral_beta_$group) + evaluate ($error_beta=&error_beta_$group) + evaluate ($dihedral_gamma=&dihedral_gamma_$group) + evaluate ($error_gamma=&error_gamma_$group) + evaluate ($dihedral_delta=&dihedral_delta_$group) + evaluate ($error_delta=&error_delta_$group) + evaluate ($dihedral_zeta=&dihedral_zeta_$group) + evaluate ($error_zeta=&error_zeta_$group) + evaluate ($dihedral_epsilon=&dihedral_eps_$group) + evaluate ($error_epsilon=&error_eps_$group) + end if + + for $id in id ( &dihedral_$group and tag and not (resn WAT or resn HOH or resn TIP*) ) loop resid + show (segid) (id $id) + evaluate ($segid=$result) + show (resid) ( id $id ) + evaluate ($resid=decode($result)) + if ($resid > $min_resid_$group) then + evaluate ($rprec = $resid - 1) + restraint dihedral + ! alpha + assign ( segid $segid and resid $rprec and name O3' ) + ( segid $segid and resid $resid and name P ) + ( segid $segid and resid $resid and name O5' ) + ( segid $segid and resid $resid and name C5' ) + 1.0 $dihedral_alpha $error_alpha 2 + ! beta + assign ( segid $segid and resid $resid and name P ) + ( segid $segid and resid $resid and name O5' ) + ( segid $segid and resid $resid and name C5' ) + ( segid $segid and resid $resid and name C4' ) + 1.0 $dihedral_beta $error_beta 2 + scale 200.0 + end + end if + + restraints dihedral + ! gamma + assign ( segid $segid and resid $resid and name O5' ) + ( segid $segid and resid $resid and name C5' ) + ( segid $segid and resid $resid and name C4' ) + ( segid $segid and resid $resid and name C3' ) + 1.0 $dihedral_gamma $error_gamma 2 + !delta + assign ( segid $segid and resid $resid and name C5' ) + ( segid $segid and resid $resid and name C4' ) + ( segid $segid and resid $resid and name C3' ) + ( segid $segid and resid $resid and name O3' ) + 1.0 $dihedral_delta $error_delta 2 + scale=200.0 + end + + if ($resid < $max_resid_$group) then + evaluate ($rfoll = $resid + 1) + restraint dihedral + ! epsilon + assign ( segid $segid and resid $resid and name C4' ) + ( segid $segid and resid $resid and name C3' ) + ( segid $segid and resid $resid and name O3' ) + ( segid $segid and resid $rfoll and name P ) + 1.0 $dihedral_epsilon $error_epsilon 2 + ! zeta + assign ( segid $segid and resid $resid and name C3' ) + ( segid $segid and resid $resid and name O3' ) + ( segid $segid and resid $rfoll and name P ) + ( segid $segid and resid $rfoll and name O5' ) + 1.0 $dihedral_zeta $error_zeta 2 + scale 200.0 + end + end if + end loop resid + end if + else + evaluate ($done=true) + end if + evaluate ($group=$group+1) + end loop bdihe + end if +flags include cdih end + +{- C1'-C1' virtual bond length restraints -} + +noe + class hres + averaging hres cent + potential hres square + sqconstant hres 1. + sqexponent hres 2 + scale hres 70. + end + +if (&dna_pick_c1 = true) then + evaluate ($pair=1) + evaluate ($done=false) + while ( $done = false ) loop noe + if ( &exist_base_a_$pair = true ) then + if ( &exist_base_b_$pair = true ) then + show ( resn ) ( &base_a_$pair and name C1' ) + evaluate ($ares=$result) + show ( resn ) ( &base_b_$pair and name C1' ) + evaluate ($bres=$result) + pick bond + (&base_a_$pair and name C1') + (&base_b_$pair and name C1') + geometry + evaluate ($c1c1=$result) + noe + assign (&base_a_$pair and name C1') + (&base_b_$pair and name C1') $c1c1 &c1_low &c1_up + end + end if + else + evaluate ($done=true) + end if + evaluate ($pair=$pair+1) + end loop noe + else +end if +flags include noe end + +{- Watson-Crick base pairing -} + + noe + class hres + averaging hres cent + potential hres square + sqconstant hres 1. + sqexponent hres 2 + scale hres 70. + end + + if (&dna_pick_wc = true) then + evaluate ($pair=1) + evaluate ($done=false) + while ( $done = false ) loop noe + if ( &exist_base_a_$pair = true ) then + if ( &exist_base_b_$pair = true ) then + show ( resn ) ( &base_a_$pair and name C1' ) + evaluate ($ares=$result) + show ( resn ) ( &base_b_$pair and name C1' ) + evaluate ($bres=$result) + if ( $ares = THY ) then + pick bond + (&base_a_$pair and name o4) + (&base_b_$pair and name n6) + geometry + evaluate ($o4n6=$result) + pick bond + (&base_a_$pair and name n3) + (&base_b_$pair and name n1) + geometry + evaluate ($n3n1=$result) + pick bond + (&base_a_$pair and name h3) + (&base_b_$pair and name n1) + geometry + evaluate ($h3n1=$result) + pick bond + (&base_a_$pair and name o2) + (&base_b_$pair and name h2) + geometry + evaluate ($o2h2=$result) + pick bond + (&base_a_$pair and name o4) + (&base_b_$pair and name n1) + geometry + evaluate ($o4n1=$result) + pick bond + (&base_a_$pair and name o2) + (&base_b_$pair and name n1) + geometry + evaluate ($o2n1=$result) + elseif ( $ares = URI ) then + pick bond + (&base_a_$pair and name o4) + (&base_b_$pair and name n6) + geometry + evaluate ($o4n6=$result) + pick bond + (&base_a_$pair and name n3) + (&base_b_$pair and name n1) + geometry + evaluate ($n3n1=$result) + pick bond + (&base_a_$pair and name o4) + (&base_b_$pair and name n1) + geometry + evaluate ($o4n1=$result) + pick bond + (&base_a_$pair and name o2) + (&base_b_$pair and name n6) + geometry + evaluate ($o2n6=$result) + elseif ( $ares = ADE ) then + pick bond + (&base_b_$pair and name o4) + (&base_a_$pair and name n6) + geometry + evaluate ($o4n6=$result) + pick bond + (&base_b_$pair and name n3) + (&base_a_$pair and name n1) + geometry + evaluate ($n3n1=$result) + pick bond + (&base_b_$pair and name h3) + (&base_a_$pair and name n1) + geometry + evaluate ($h3n1=$result) + pick bond + (&base_b_$pair and name o2) + (&base_a_$pair and name h2) + geometry + evaluate ($o2h2=$result) + pick bond + (&base_b_$pair and name o4) + (&base_a_$pair and name n1) + geometry + evaluate ($o4n1=$result) + pick bond + (&base_b_$pair and name o2) + (&base_a_$pair and name n1) + geometry + evaluate ($o2n1=$result) + elseif ( $ares = CYT ) then + pick bond + (&base_a_$pair and name n3) + (&base_b_$pair and name n1) + geometry + evaluate ($n3n1=$result) + pick bond + (&base_a_$pair and name n3) + (&base_b_$pair and name h1) + geometry + evaluate ($n3h1=$result) + pick bond + (&base_a_$pair and name n4) + (&base_b_$pair and name o6) + geometry + evaluate ($n4o6=$result) + pick bond + (&base_a_$pair and name o2) + (&base_b_$pair and name n2) + geometry + evaluate ($o2n2=$result) + pick bond + (&base_a_$pair and name n3) + (&base_b_$pair and name o6) + geometry + evaluate ($n3o6=$result) + pick bond + (&base_a_$pair and name n3) + (&base_b_$pair and name n2) + geometry + evaluate ($n3n2=$result) + elseif ( $ares = GUA ) then + pick bond + (&base_b_$pair and name n3) + (&base_a_$pair and name n1) + geometry + evaluate ($n3n1=$result) + pick bond + (&base_b_$pair and name n3) + (&base_a_$pair and name h1) + geometry + evaluate ($n3h1=$result) + pick bond + (&base_b_$pair and name n4) + (&base_a_$pair and name o6) + geometry + evaluate ($n4o6=$result) + pick bond + (&base_b_$pair and name o2) + (&base_a_$pair and name n2) + geometry + evaluate ($o2n2=$result) + pick bond + (&base_b_$pair and name n3) + (&base_a_$pair and name o6) + geometry + evaluate ($n3o6=$result) + pick bond + (&base_b_$pair and name n3) + (&base_a_$pair and name n2) + geometry + evaluate ($n3n2=$result) + + end if + noe + if ( $ares = THY ) then + assign (&base_a_$pair and name o4) + (&base_b_$pair and name n6) $o4n6 &wc_low &wc_up + assign (&base_a_$pair and name n3) + (&base_b_$pair and name n1) $n3n1 &wc_low &wc_up + assign (&base_a_$pair and name h3) + (&base_b_$pair and name n1) $h3n1 &wc_low &wc_up + assign (&base_a_$pair and name o2) + (&base_b_$pair and name h2) $o2h2 &wc_low &wc_up + assign (&base_a_$pair and name o4) + (&base_b_$pair and name n1) $o4n1 &wc_low &wc_up + assign (&base_a_$pair and name o2) + (&base_b_$pair and name n1) $o2n1 &wc_low &wc_up + elseif ( $ares = URI ) then + assign (&base_a_$pair and name o4) + (&base_b_$pair and name n6) $o4n6 &wc_low_uri &wc_up_uri + assign (&base_a_$pair and name n3) + (&base_b_$pair and name n1) $n3n1 &wc_low_uri &wc_up_uri + assign (&base_a_$pair and name o4) + (&base_b_$pair and name n1) $o4n1 &wc_low_uri &wc_up_uri + assign (&base_a_$pair and name o2) + (&base_b_$pair and name n6) $o2n6 &wc_low_uri &wc_up_uri + elseif ( $ares = ADE ) then + assign (&base_b_$pair and name o4) + (&base_a_$pair and name n6) $o4n6 &wc_low &wc_up + assign (&base_b_$pair and name n3) + (&base_a_$pair and name n1) $n3n1 &wc_low &wc_up + assign (&base_b_$pair and name h3) + (&base_a_$pair and name n1) $h3n1 &wc_low &wc_up + assign (&base_b_$pair and name o2) + (&base_a_$pair and name h2) $o2h2 &wc_low &wc_up + assign (&base_b_$pair and name o4) + (&base_a_$pair and name n1) $o4n1 &wc_low &wc_up + assign (&base_b_$pair and name o2) + (&base_a_$pair and name n1) $o2n1 &wc_low &wc_up + elseif ( $ares = CYT ) then + assign (&base_a_$pair and name n3) + (&base_b_$pair and name n1) $n3n1 &wc_low &wc_up + assign (&base_a_$pair and name n3) + (&base_b_$pair and name h1) $n3h1 &wc_low &wc_up + assign (&base_a_$pair and name n4) + (&base_b_$pair and name o6) $n4o6 &wc_low &wc_up + assign (&base_a_$pair and name o2) + (&base_b_$pair and name n2) $o2n2 &wc_low &wc_up + assign (&base_a_$pair and name n3) + (&base_b_$pair and name o6) $n3o6 &wc_low &wc_up + assign (&base_a_$pair and name n3) + (&base_b_$pair and name n2) $n3n2 &wc_low &wc_up + elseif ( $ares = GUA ) then + assign (&base_b_$pair and name n3) + (&base_a_$pair and name n1) $n3n1 &wc_low &wc_up + assign (&base_b_$pair and name n3) + (&base_a_$pair and name h1) $n3h1 &wc_low &wc_up + assign (&base_b_$pair and name n4) + (&base_a_$pair and name o6) $n4o6 &wc_low &wc_up + assign (&base_b_$pair and name o2) + (&base_a_$pair and name n2) $o2n2 &wc_low &wc_up + assign (&base_b_$pair and name n3) + (&base_a_$pair and name o6) $n3o6 &wc_low &wc_up + assign (&base_b_$pair and name n3) + (&base_a_$pair and name n2) $n3n2 &wc_low &wc_up + end if + end + end if + else + evaluate ($done=true) + end if + evaluate ($pair=$pair+1) + end loop noe + + else + + evaluate ($pair=1) + evaluate ($done=false) + while ( $done = false ) loop noe + if ( &exist_base_a_$pair = true ) then + if ( &exist_base_b_$pair = true ) then + show ( resn ) ( &base_a_$pair and name C1' ) + evaluate ($ares=$result) + show ( resn ) ( &base_b_$pair and name C1' ) + evaluate ($bres=$result) + noe + if ( $ares = THY ) then + assign (&base_a_$pair and name o4) + (&base_b_$pair and name n6) 2.89 0.2 0.2 + assign (&base_a_$pair and name n3) + (&base_b_$pair and name n1) 2.92 0.2 0.2 + assign (&base_a_$pair and name h3) + (&base_b_$pair and name n1) 1.87 0.2 0.2 + assign (&base_a_$pair and name o2) + (&base_b_$pair and name h2) 2.94 0.2 0.2 + assign (&base_a_$pair and name o4) + (&base_b_$pair and name n1) 3.69 0.2 0.2 + assign (&base_a_$pair and name o2) + (&base_b_$pair and name n1) 3.67 0.2 0.2 + elseif ( $ares = URI ) then + assign (&base_a_$pair and name o4) + (&base_b_$pair and name n6) 2.95 0.01 0.01 + assign (&base_a_$pair and name n3) + (&base_b_$pair and name n1) 2.82 0.01 0.01 + assign (&base_a_$pair and name o4) + (&base_b_$pair and name n1) 3.63 0.01 0.01 + assign (&base_a_$pair and name o2) + (&base_b_$pair and name n6) 5.40 0.01 0.01 + elseif ( $ares = ADE ) then + assign (&base_b_$pair and name o4) + (&base_a_$pair and name n6) 2.89 0.2 0.2 + assign (&base_b_$pair and name n3) + (&base_a_$pair and name n1) 2.92 0.2 0.2 + assign (&base_b_$pair and name h3) + (&base_a_$pair and name n1) 1.87 0.2 0.2 + assign (&base_b_$pair and name o2) + (&base_a_$pair and name h2) 2.94 0.2 0.2 + assign (&base_b_$pair and name o4) + (&base_a_$pair and name n1) 3.69 0.2 0.2 + assign (&base_b_$pair and name o2) + (&base_a_$pair and name n1) 3.67 0.2 0.2 + elseif ( $ares = CYT ) then + assign (&base_a_$pair and name n3) + (&base_b_$pair and name n1) 2.87 0.2 0.2 + assign (&base_a_$pair and name n3) + (&base_b_$pair and name h1) 1.86 0.2 0.2 + assign (&base_a_$pair and name n4) + (&base_b_$pair and name o6) 2.81 0.2 0.2 + assign (&base_a_$pair and name o2) + (&base_b_$pair and name n2) 2.81 0.2 0.2 + assign (&base_a_$pair and name n3) + (&base_b_$pair and name o6) 3.58 0.2 0.2 + assign (&base_a_$pair and name n3) + (&base_b_$pair and name n2) 3.63 0.2 0.2 + elseif ( $ares = GUA ) then + assign (&base_b_$pair and name n3) + (&base_a_$pair and name n1) 2.87 0.2 0.2 + assign (&base_b_$pair and name n3) + (&base_a_$pair and name h1) 1.86 0.2 0.2 + assign (&base_b_$pair and name n4) + (&base_a_$pair and name o6) 2.81 0.2 0.2 + assign (&base_b_$pair and name o2) + (&base_a_$pair and name n2) 2.81 0.2 0.2 + assign (&base_b_$pair and name n3) + (&base_a_$pair and name o6) 3.58 0.2 0.2 + assign (&base_b_$pair and name n3) + (&base_a_$pair and name n2) 3.63 0.2 0.2 + end if + end + end if + else + evaluate ($done=true) + end if + evaluate ($pair=$pair+1) + end loop noe + end if + flags include noe end + +set message=off echo=off end + + diff --git a/src/haddock/modules/flexref/cns/dna_break.cns b/src/haddock/modules/flexref/cns/dna_break.cns new file mode 100644 index 000000000..51aac18ff --- /dev/null +++ b/src/haddock/modules/flexref/cns/dna_break.cns @@ -0,0 +1,82 @@ +! dna_break.cns +! Check for DNA chain breaks +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + + evaluate ($dbreak=0) + + for $id1 in id ( name O5' and bondedto(name C5') ) loop dbreak + + show (segid) (id $id1) + evaluate ($segid1=$result) + show (resid) (id $id1) + evaluate ($resid1=$result) + show (resn) (id $id1) + evaluate ($resn1=$result) + + show sum(1) (id $id1) + if ( $result = 0 ) then + display unknown coordinates for segid $segid1 resn $resn1 resid $resid1 name O5' + display this coordinate must be known for automatic dna chain break detection + abort + end if + + identity (store1) ( name O3' and bondedto( segid $segid1 and resid $resid1 and name P ) ) + + if ( $select = 1 ) then + show element (store1) (attribute store1 > 0) + evaluate ($id2=$result) + show (segid) (id $id2) + evaluate ($segid2=$result) + show (resid) (id $id2) + evaluate ($resid2=$result) + show (resn) (id $id2) + evaluate ($resn2=$result) + + show sum(1) (id $id2) + if ( $result = 0 ) then + display unknown coordinates for segid $segid2 resn $resn2 resid $resid2 name O3' + display this coordinate must be known for automatic dna chain break detection + abort + end if + + pick bond + (name P and segid $segid1 and resid $resid1) + (name O3' and segid $segid2 and resid $resid2) + geometry + + if ( $result > &dbreak_cutoff ) then + evaluate ($dbreak=$dbreak+1) + evaluate ($seg1.$dbreak=$segid2) + evaluate ($res1.$dbreak=$resid2) + evaluate ($seg2.$dbreak=$segid1) + evaluate ($res2.$dbreak=$resid1) + evaluate ($patch.$dbreak=DNUC) + end if + end if + + end loop dbreak + + evaluate ($counter=1) + + while ($counter <= $dbreak) loop delete + patch $patch.$counter + reference=-=(segid $seg1.$counter and resid $res1.$counter) + reference=+=(segid $seg2.$counter and resid $res2.$counter) + end + buffer message + display dna link removed (applied $patch.$counter): from \ +$seg1.$counter[a4] $res1.$counter[a4] to $seg2.$counter[a4] $res2.$counter[a4] + end + evaluate ($counter=$counter+1) + end loop delete + + + diff --git a/src/haddock/modules/flexref/cns/edesolv.inp b/src/haddock/modules/flexref/cns/edesolv.inp new file mode 100644 index 000000000..34f5e28a5 --- /dev/null +++ b/src/haddock/modules/flexref/cns/edesolv.inp @@ -0,0 +1,99 @@ +! edesolv.inp +! Calculate the empirical desolvation enery of a complex +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + +@RUN:initialize.cns(iteration=$iteration;) + +@NEWIT:iteration.cns(iteration=$iteration;) + +@RUN:run.cns( +iteration =$iteration; +filenames =$filenames; +data =$data; +iterations=$iterations; +saprotocol=$saprotocol; +refine =$refine; +toppar =$toppar; +analysis =$analysis; +) +set message=on echo=on end + +!reads in structure, coordinates and parameter files +@RUN:read_struc.cns +@RUN:read_struc-cg.cns + +@PREVIT:file.cns(filenames=$filenames) +evaluate ($file = $filenames.bestfile_1) +coor @@$file + +delete sele=(not(known)) end + +set display NEWIT:analysis/edesolv.disp end + +display #Complex statistics +display # +display #Desolvation energy + +evaluate ($sum_desolv = 0) +evaluate ($sumsq_desolv = 0) + +@PREVIT:file.cns(filenames=$filenames) + +{====>} {* define ASA-based solvation parameters *} +inline @RUN:def_solv_param.cns + +evaluate ($count = 1) +evaluate ($nstruc1 = 0) +while ($count le $Iterations.anastruc) loop main + evaluate ($file = $filenames.bestfile_$count) + coor init end + if ($file ne "") then + coor @@$file + evaluate ($nstruc1 = $nstruc1 + 1) + + evaluate ($nchain1 = 1) + evaluate ($saafree = 0) + evaluate ($esolfree = 0) + while ($nchain1 <= $data.ncomponents) loop nloop1 + {====>} {* buried surface area *} + do (rmsd = 0) (all) + do (store2 = 0) (all) + surface mode=access accu=0.075 rh2o=1.4 sele=(segid $Toppar.prot_segid_$nchain1) end + do (store2 = rmsd * store1) (segid $Toppar.prot_segid_$nchain1 and not ((resn WAT or resn HOH or resn TIP*) or resn DMS)) + show sum (store2) (segid $Toppar.prot_segid_$nchain1 and not ((resn WAT or resn HOH or resn TIP*) or resn DMS)) + evaluate ($esolfree = $esolfree + $result) + evaluate ($nchain1 = $nchain1 + 1) + end loop nloop1 + + do (rmsd = 0) (all) + do (store2 = 0) (all) + surface mode=access accu=0.075 rh2o=1.4 sele=(not ((resn WAT or resn HOH or resn TIP*) or resn DMS)) end + do (store2 = rmsd * store1) (not ((resn WAT or resn HOH or resn TIP*) or resn DMS)) + show sum (store2) (not ((resn WAT or resn HOH or resn TIP*) or resn DMS)) + evaluate ($esolcplx = $result) + evaluate ($edesolv = ($esolcplx - $esolfree)) + evaluate ($sum_desolv = $sum_desolv + $edesolv) + evaluate ($sumsq_desolv = $sumsq_desolv + $edesolv**2) + + display # $file $edesolv + + end if + if ($count ge $Iterations.anastruc) then exit loop main end if + evaluate ($count = $count + 1) +end loop main + +evaluate ($mean_desolv = $sum_desolv / $nstruc1) +evaluate ($stdev_desolv = sqrt(($sumsq_desolv - $nstruc1*$mean_desolv**2)/ $nstruc1)) + +display # mean values +display # desolv $mean_desolv (+/- $stdev_desolv ) [kcal/Mol] + +stop diff --git a/src/haddock/modules/flexref/cns/em_calc_lcc.cns b/src/haddock/modules/flexref/cns/em_calc_lcc.cns new file mode 100644 index 000000000..5d8ab6b3b --- /dev/null +++ b/src/haddock/modules/flexref/cns/em_calc_lcc.cns @@ -0,0 +1,123 @@ +!module (Toppar; +! Data; +! Saprotocol; +! lcc; +! ) + {*The module calculates the local cross-correlation coefficient (lcc) between + the targetmap and the atomic model. + + Parameters + ---------- + Toppar + Toppar object + + Data + Data object + + Saprotocol + Saprotocol object + + lcc : float (output) + The local cross correlation value in the interval [-1, 1] + + Examples + -------- + >>> ! lcc calculation requires that the cryoEM data is read + !>>> @RUN:em_read_data.cns(Data=$Data;) + !>>> @RUN:em_calc_lcc.cns(Toppar=$Toppar; Data=$Data; Saprotocol=$Saprotocol; + >>> lcc=$lcc;) + >>> display Local cross correlation-coefficient: $lcc + + Notes + ----- + This module uses the "b" atomobject. + *} + + ! get the time + evaluate($time0 = $CPU) + + ! check whether the arrays that are required for the lcc calculation exist + xray + query name=modelmap domain=real end + if ($OBJECT_EXIST = false) then + declare name=modelmap domain=real end + do (modelmap = 0) (all) + end if + + query name=map_tmp domain=real end + if ($OBJECT_EXIST = false) then + declare name=map_tmp domain=real end + do (map_tmp = 0) (all) + end if + + query name=modelmask domain=real end + if ($OBJECT_EXIST = false) then + declare name=modelmask domain=real end + do (modelmask = 0) (all) + end if + end + + do (b = 0) (all) + evaluate($nchain1 = 0) + while ($nchain1 < $Data.ncomponents) loop nloop1 + evaluate($nchain1 = $nchain1 + 1) + + !if ($Saprotocol.init_placement.prot_segid_$nchain1.fixed = False) then + do (b = 1) (segid &Toppar.prot_segid_$nchain1 and not resn DUM) + !end if + end loop nloop1 + + ! Create the modelmap up to a certain resolution. We need to do + ! this via reciprocal space, by first creating the structure factors + ! and afters performing an inverse FFT to get the density. + xray + predict + mode=reciprocal + to=fcalc + atomselectiom=(attr b > 0) + selection=(all) + end + + do (modelmap=real(ft(fcalc))) (all) + end + + ! create mask around the model + xray + mask + to=modelmask + selection=(attr b > 0) + averaging_mode=False + mode=sigma + proberadius=3 + end + + ! normalize modelmap and map within the modelmask + show average(modelmap) (modelmask=0) + evaluate($ave_modelmap = $RESULT) + do (modelmap = modelmap - $ave_modelmap) (modelmask=0) + + show sum(modelmap*modelmap) (modelmask=0) + evaluate($std_modelmap = sqrt($RESULT)) + do (modelmap = modelmap / $std_modelmap) (modelmask=0) + + ! normalize map within range of modelmask + show average(map) (modelmask=0) + evaluate($ave_map = $RESULT) + do (map_tmp = map - $ave_map) (modelmask=0) + + show sum(map_tmp*map_tmp) (modelmask=0) + evaluate($std_map = sqrt($RESULT)) + ! check if the std of the targetmap is larger than zero, else lcc is undefined. + if ($std_map > 0) then + do (map_tmp = map_tmp / $std_map) (modelmask=0) + ! now calculate the local cross correlation coefficient + show sum(modelmap * map_tmp) (modelmask=0) + evaluate(&lcc = $RESULT) + else + evaluate(&lcc = 0) + end if + end + + evaluate($time0 = $CPU - $time0) + display Local cross correlation coefficient: &lcc + display Time used for local cross correlation calculation: $time0 s diff --git a/src/haddock/modules/flexref/cns/em_orien_search.cns b/src/haddock/modules/flexref/cns/em_orien_search.cns new file mode 100644 index 000000000..86ae78815 --- /dev/null +++ b/src/haddock/modules/flexref/cns/em_orien_search.cns @@ -0,0 +1,27 @@ +! perform a search to orient the complex properly in the density. +if ($data.ncomponents = 2) then +! @RUN:em_rot_search.cns(data=$data; saprotocol=$saprotocol; +! toppar=$toppar;) + @RUN:em_rot_search.cns +elseif ($data.flags.sym = true) then + ! the search for symmetry only works for C-symmetry. Other symmetries + ! will break! +! @RUN:em_sym_search.cns(data=$data; saprotocol=$saprotocol; +! toppar=$toppar;) + @RUN:em_sym_search.cns +end if + +! do a final rigid body energy minimization directly against the EM +! density, but without the centroid restraints +flags include xref end +minimize rigid + eval($nchain1 = 0) + while ($nchain1 < $data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + group (segid $toppar.prot_segid_$nchain1 or segid $watersegname_$nchain1 and not name MAP) + translation=true + end loop nloop1 + nstep 250 + nprint 10 +end +flags exclude xref end diff --git a/src/haddock/modules/flexref/cns/em_read_data.cns b/src/haddock/modules/flexref/cns/em_read_data.cns new file mode 100644 index 000000000..f415e519d --- /dev/null +++ b/src/haddock/modules/flexref/cns/em_read_data.cns @@ -0,0 +1,100 @@ +!module (Data;) + {* + Module reads in the cryoEM data, supposed to be the CryoEM map. Since CNS + is mainly build for X-ray Crystallography and thus reciprocal space, + working in real space is a bit cumbersome. Therefor we first determine the + map size and such befor reading it in. The unit cell is determined first + and the resolution cutoff. After that the FFT parameters can be determined + and space is generated for the reflections. + + It follows with reading in the form factors for all the atoms. The arrays + FOBS, FCALC, FPART and MAP are allocated. The CryoEM map is read and the + target function is set, which is here the so called vector potential. The + vector potential is the reciprocal space variant of the cross correlation + between two maps. + + Parameters + ---------- + Data : Data object + The Data object holds all the parameter for the CryoEM functionality + + Notes + ----- + After the call of this module one is able to use the XREF energy flag at will. + + Examples + -------- + >>> ! Use the XREF energy term + !>>> @RUN:em_read_data.cns(Data=&Data;) + >>> flags include XREF end + *} + + xray + ! Set unit cell parameters. The angles are implicitely assumed to be 90' + symmetry=(x, y, z) + a=$Data.em.xlength + b=$Data.em.ylength + c=$Data.em.zlength + + ! set target resolution + mapresolution $Data.em.resolution + + ! set up FFT + method=FFT + evaluate($voxelspacing = $Data.em.xlength / $Data.em.nx) + evaluate($gridsize = $voxelspacing/$Data.em.resolution) + fft + automemory=true + gridsize=$gridsize + bscale=100 + elimit=9 + prime=5 + end + + ! allocate space for the reflections. + generate 100000 $Data.em.resolution + end + + xray + ! read in atomic form factors + @@$scatter_lib + + ! reciprocal space complex arrays + declare name=fobs domain=reciprocal type=complex end + declare name=fcalc domain=reciprocal type=complex end + declare name=fpart domain=reciprocal type=complex end + + ! real space arrays + declare name=map domain=real end + + ! only calculate structure factors for protein and DNA + associate fcalc (not (name H* or resn HOH or resn TIP3 or resn DAN or resn XAN or resn DUM)) + + ! read in map + read map + to=map + input=RUN:data/cryo-em/cryo-em.xplor + formatted=True + end + + ! set initial values + do (fobs = ft(map)) (all) + do (fcalc = 0) (all) + do (fpart = 0) (all) + + ! set which Fourier coefficients are used for XREF term and which + ! are used for cross-validation + tselection=(all) + cvselection=(not all) + + ! set target function and target derivative function for XREF energy + target =( vector(combine(amplitude(fobs),phase(fobs)), (fcalc), 1)) + dtarget=(dvector(combine(amplitude(fobs),phase(fobs)), (fcalc), 1)) + + ! set weight of target function + wa=$Data.em.kscale + + ! set tolerance level for recomputing structure factors. This + ! should maybe be higher during the refinement stage. + tolerance=0.0 + end diff --git a/src/haddock/modules/flexref/cns/em_rot_search.cns b/src/haddock/modules/flexref/cns/em_rot_search.cns new file mode 100644 index 000000000..f85470ebf --- /dev/null +++ b/src/haddock/modules/flexref/cns/em_rot_search.cns @@ -0,0 +1,102 @@ +!module(Data; +! Saprotocol; +! Toppar; +! ) +! {*Module optimizes the orientation of binary systems in the EM-density +! +! The orientation is optimized by a fine rotation search of the axis that is +! formed by the line that joins the two centroids. The XREF energy is +! calculated at every orientation to differentiate. +! +! Parameters +! ---------- +! Data +! The Data object +! +! Toppar +! The Toppar object +! +! Notes +! ----- +! The module uses the COMP coordinate set +! The MAIN coordinate set are set to the orientation with the lowest XREF energy +! +! *} + + eval($time0 = $CPU) + + ! Copy main coordinates to the comp set + coor copy selection=(all) end + + ! Get rotation axis used for search. ! It is the line that is made by + ! joining the two centroids + show (x) (name DUM and segid &Toppar.prot_segid_1) + eval($x1 = $result) + show (x) (name DUM and segid &Toppar.prot_segid_2) + eval($x2 = $result) + eval($rot_axis.x = $x1 - $x2) + + show (y) (name DUM and segid &Toppar.prot_segid_1) + eval($y1 = $result) + show (y) (name DUM and segid &Toppar.prot_segid_2) + eval($y2 = $result) + eval($rot_axis.y = $y1 - $y2) + + show (z) (name DUM and segid &Toppar.prot_segid_1) + eval($z1 = $result) + show (z) (name DUM and segid &Toppar.prot_segid_2) + eval($z2 = $result) + eval($rot_axis.z = $z1 - $z2) + + ! Set the XREF flag to calculate the cross correlation potential in CNS + flags include xref end + ! Initialize the search values + eval($angle = 0) + eval($bestangle = 0) + eval($anglestep = 6) + eval($best_fit_energy = 9999) + + while ($angle < 360.0) loop loopsearch + + ! Rotate the system around the axis that is formed + ! by the line created by joining the two centroids. + coor rotate + center=($x1 $y1 $z1) + selection=(not name MAP) + axis ($rot_axis.x $rot_axis.y $rot_axis.z) $angle + end + + ! Calculate the XREF energy + energy end + + ! XREF is internally calculated by CNS + if ($XREF < $best_fit_energy) then + ! Update optimal parameters + eval($best_fit_energy = $XREF) + eval($bestangle = $angle) + end if + + eval($angle = $angle + $anglestep) + + ! Copy the original locations to the main coordinate set + coor swap end + coor copy end + + end loop loopsearch + + ! Reorient the original coordinates to the best fit values + coor rotate + center=($x1 $y1 $z1) + selection=(not name MAP) + axis ($rot_axis.x $rot_axis.y $rot_axis.z) $bestangle + end + + ! Calculate the energy to check + energy end + + ! Turn off the XREF energy term again + flags exclude xref end + + ! Show the time required for the search + eval($time0 = $CPU - $time0) + display Time used for rotational search: $time0 s diff --git a/src/haddock/modules/flexref/cns/em_sym_search.cns b/src/haddock/modules/flexref/cns/em_sym_search.cns new file mode 100644 index 000000000..86aa9903c --- /dev/null +++ b/src/haddock/modules/flexref/cns/em_sym_search.cns @@ -0,0 +1,74 @@ +!module (Data; +! Saprotocol; +! Toppar;) +! {*Module determines the correct orientation for symmetric complexes +! +! Parameters +! ---------- +! Data +! Data object +! +! Saprotocol +! Saprotocol object +! +! Toppar +! Toppar object +! +! Notes +! ----- +! Only C-symmetry is supported. +! Module uses the COMP coordinate set. +! Module might change the MAIN coordinate set +! *} +! +! ! get the local cross correlation of the current orientation +! @RUN:em_calc_lcc.cns(Toppar=&Toppar; +! Data=&Data; +! Saprotocol=&Saprotocol; +! lcc=$lcc; +! ) + @RUN:em_calc_lcc.cns + ! calculate the mid point of the centroids + show average(x) (name MAP) + evaluate($center.x = $result) + show average(y) (name MAP) + evaluate($center.y = $result) + show average(z) (name MAP) + evaluate($center.z = $result) + + ! determine the vector going from the first centroid to the midpoint + ! of the centroids. this represents the axis of rotation + show (x) (name MAP and segid &Toppar.prot_segid_1) + evaluate($map.x = $result) + show (y) (name MAP and segid &Toppar.prot_segid_1) + evaluate($map.y = $result) + show (z) (name MAP and segid &Toppar.prot_segid_1) + evaluate($map.z = $result) + + evaluate($rot_axis.x = $center.x - $map.x) + evaluate($rot_axis.y = $center.y - $map.y) + evaluate($rot_axis.z = $center.z - $map.z) + + ! store the current coordinates in the COMP coordinate set + coor copy selection=(all) end + + ! rotate around the previous determined axis with 180 degrees. + coor rotate + center=($center.x $center.y $center.z) + selection=(not name MAP) + axis ($rot_axis.x $rot_axis.y $rot_axis.z) 180.0 + end + + ! calculate the local cross correlation for the rotated orientation +! @RUN:em_calc_lcc.cns(Toppar=&Toppar; +! Data=&Data; +! Saprotocol=&Saprotocol; +! lcc=$newlcc; +! ) + @RUN:em_calc_lcc.cns + ! if the lcc of the initial orientation is better, swap the COMP + ! coordinate set to the MAIN coordinate set + if ($lcc > $newlcc) then + coor swap selection=(all) end + end if + diff --git a/src/haddock/modules/flexref/cns/ene-residue.inp b/src/haddock/modules/flexref/cns/ene-residue.inp new file mode 100644 index 000000000..4988a87d9 --- /dev/null +++ b/src/haddock/modules/flexref/cns/ene-residue.inp @@ -0,0 +1,182 @@ +! ene-residue.inp +! Calculate the per-residue intermolecular energies (Evdw, Eelec) +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + +@RUN:initialize.cns(iteration=$iteration;) + +@NEWIT:iteration.cns(iteration=$iteration;) + +@RUN:run.cns( +iteration =$iteration; +filenames =$filenames; +data =$data; +iterations=$iterations; +saprotocol=$saprotocol; +refine =$refine; +toppar =$toppar; +analysis =$analysis; +) + +!reads in structure, coordinates and parameter files +@RUN:read_struc.cns +@RUN:read_struc-cg.cns + +@PREVIT:file.cns(filenames=$filenames) + +!deletes shape atoms if present +dele sele=(resn SHA) end + +evaluate ($count = 1) +while ($count le $Iterations.anastruc) loop loop00 + evaluate ($file = $filenames.bestfile_$count) + coor init end + if ($file ne "") then + coor @@$file + dele sele=(not known) end + end if + evaluate ($count = $count + 1) +end loop loop00 + +flags exclude * include vdw elec end + +set display=NEWIT:analysis/ene-residue.disp end + +@PREVIT:file.cns(filenames=$filenames) + +{====>} {* define ASA-based solvation parameters *} +! Uses store1 +inline @RUN:def_solv_param.cns + +evaluate ($count = 1) +evaluate ($nstruc1 = 0) +do (store2 = 0) (all) +do (store3 = 0) (all) +do (store4 = 0) (all) +do (store5 = 0) (all) +do (store6 = 0) (all) +while ($count le $Iterations.anastruc) loop loop0 + evaluate ($file = $filenames.bestfile_$count) + coor init end + if ($file ne "") then + coor @@$file + evaluate ($nstruc1 = $nstruc1 + 1) + eval($nchain1 = 0) + while ($nchain1 < $data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + do (store2 = 1) (byres (segid $Toppar.prot_segid_$nchain1 and not hydrogen and + (not segid $Toppar.prot_segid_$nchain1 and not hydrogen) around 5.0)) + do (rmsd = 0) (all) + surface mode=access accu=0.075 rh2o=1.4 sele=(segid $Toppar.prot_segid_$nchain1) end + do (store3 = store3 + rmsd * store1) (segid $Toppar.prot_segid_$nchain1 and not ((resn WAT or resn HOH or resn TIP*) or resn DMS)) + do (store5 = store5 + rmsd**2 * store1**2) (segid $Toppar.prot_segid_$nchain1 and not ((resn WAT or resn HOH or resn TIP*) or resn DMS)) + end loop nloop1 + surface mode=access accu=0.075 rh2o=1.4 sele=(not ((resn WAT or resn HOH or resn TIP*) or resn DMS)) end + do (store4 = store4 + rmsd * store1) (not ((resn WAT or resn HOH or resn TIP*) or resn DMS)) + do (store6 = store6 + rmsd**2* store1**2) (not ((resn WAT or resn HOH or resn TIP*) or resn DMS)) + end if + evaluate ($count = $count + 1) +end loop loop + +do (store3 = store3 / $nstruc1) (all) +do (store4 = store4 / $nstruc1) (all) +do (store5 = sqrt(store5 - $nstruc1 * store3**2)/$nstruc1) (all) +do (store6 = sqrt(store6 - $nstruc1 * store4**2)/$nstruc1) (all) + +for $id in id (attr store2 = 1 and tag) loop loop2 + show (resid) (id $id) + evaluate ($ires = $result) + show (resn) (id $id) + evaluate ($nres = $result) + show (segid) (id $id) + evaluate ($iseg = $result) + + igroup interaction (segid $iseg and resid $ires) (not segid $iseg and not ((resn WAT or resn HOH or resn TIP*) or resn DMSO)) end + display # + display # + display #Residue $nres $ires $iseg - intermolecular energies + display #file Etot Evdw Eelec + + evaluate ($sum_tot = 0) + evaluate ($sumsq_tot = 0) + evaluate ($sum_vdw = 0) + evaluate ($sumsq_vdw = 0) + evaluate ($sum_elec = 0) + evaluate ($sumsq_elec = 0) + evaluate ($sum_desolv = 0) + evaluate ($sumsq_desolv = 0) + evaluate ($sum_haddockscore = 0) + evaluate ($sumsq_haddockscore = 0) + + @PREVIT:file.cns(filenames=$filenames) + + show sum (store3) (segid $iseg and resid $ires) + evaluate ($esolfree = $result) + show sum (store4) (segid $iseg and resid $ires) + evaluate ($esolcplx = $result) + evaluate ($edesolv = ($esolcplx - $esolfree)) + evaluate ($mean_desolv = $edesolv) + + evaluate ($count = 1) + evaluate ($nstruc1 = 0) + while ($count le $Iterations.anastruc) loop loop3 + evaluate ($file = $filenames.bestfile_$count) + coor init end + if ($file ne "") then + coor @@$file + evaluate ($nstruc1 = $nstruc1 + 1) + energy end + evaluate ($sum_tot = $sum_tot + $ener) + evaluate ($sumsq_tot = $sumsq_tot + $ener**2) + evaluate ($sum_vdw = $sum_vdw + $vdw) + evaluate ($sumsq_vdw = $sumsq_vdw + $vdw**2) + evaluate ($sum_elec = $sum_elec + $elec) + evaluate ($sumsq_elec = $sumsq_elec + $elec**2) + + evaluate ($haddockscore = $iterations.w_vdw * $vdw + $iterations.w_elec * $elec + $iterations.w_desolv * $edesolv) + evaluate ($sum_haddockscore = $sum_haddockscore + $haddockscore) + evaluate ($sumsq_haddockscore = $sumsq_haddockscore + $haddockscore**2) + + display # $file $ener $vdw $elec + end if + evaluate ($count = $count + 1) + end loop loop3 + + show sum (store5) (segid $iseg and resid $ires) + evaluate ($stdev_esolfree = $result**2) + show sum (store6) (segid $iseg and resid $ires) + evaluate ($stdev_esolcplx = $result**2) + evaluate ($stdev_desolv = sqrt($stdev_esolfree+$stdev_esolcplx)) + + evaluate ($mean_tot = $sum_tot / $nstruc1) + evaluate ($stdev_tot = sqrt(max(0.0,($sumsq_tot - $nstruc1*$mean_tot**2))/ $nstruc1)) + evaluate ($mean_vdw = $sum_vdw / $nstruc1) + evaluate ($stdev_vdw = sqrt(max(0.0,($sumsq_vdw - $nstruc1*$mean_vdw**2))/ $nstruc1)) + evaluate ($mean_elec = $sum_elec / $nstruc1) + evaluate ($stdev_elec = sqrt(max(0.0,($sumsq_elec - $nstruc1*$mean_elec**2))/ $nstruc1)) + evaluate ($mean_haddockscore = $sum_haddockscore / $nstruc1) + evaluate ($stdev_haddockscore = sqrt(($sumsq_haddockscore - $nstruc1*$mean_haddockscore**2)/ $nstruc1)) + + display # mean values for interaction with residue $nres $ires $iseg + display # $nres $ires $iseg : Etot $mean_tot (+/- $stdev_tot ) [kcal/Mol] + display # $nres $ires $iseg : Evdw $mean_vdw (+/- $stdev_vdw ) [kcal/Mol] + display # $nres $ires $iseg : Eelec $mean_elec (+/- $stdev_elec ) [kcal/Mol] + display # $nres $ires $iseg : Edesol $mean_desolv (+/- $stdev_desolv ) [kcal/Mol] + display # $nres $ires $iseg : HADDOCKscore $mean_haddockscore (+/- $stdev_haddockscore ) [a.u.] + +end loop loop2 + +close NEWIT:analysis/ene-residue.disp end + +evaluate ($outdis = "NEWIT:analysis/ENE_DONE") +set display=$outdis end +display DONE + +stop diff --git a/src/haddock/modules/flexref/cns/energy.inp b/src/haddock/modules/flexref/cns/energy.inp new file mode 100644 index 000000000..e55b38836 --- /dev/null +++ b/src/haddock/modules/flexref/cns/energy.inp @@ -0,0 +1,304 @@ +! energy.inp +! Calculate statistics for all energy terms +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + +@RUN:initialize.cns(iteration=$iteration;) + +@NEWIT:iteration.cns(iteration=$iteration;) + +@RUN:run.cns( +iteration =$iteration; +filenames =$filenames; +data =$data; +iterations=$iterations; +saprotocol=$saprotocol; +refine =$refine; +toppar =$toppar; +analysis =$analysis; +) +set message=on echo=on end + +!reads in structure, coordinates and parameter files +@RUN:read_struc.cns +@RUN:read_struc-cg.cns + +@PREVIT:file.cns(filenames=$filenames) +evaluate ($file = $filenames.bestfile_1) +coor @@$file + +delete sele=(not(known)) end +delete sele=(resn ANI or resn DAN or resn XAN or resn SHA or resn DUM) end + +!set the energy flags: +inline @RUN:setflags.cns + +flags include dihed elec end + +set display NEWIT:analysis/energies.disp end + +display #Complex statistics +display #file Etot Ebond Eangle Eimpr Edihed Evdw Eelec + +evaluate ($sum_tot = 0) +evaluate ($sumsq_tot = 0) +evaluate ($sum_bond = 0) +evaluate ($sumsq_bond = 0) +evaluate ($sum_angle = 0) +evaluate ($sumsq_angle = 0) +evaluate ($sum_impr = 0) +evaluate ($sumsq_impr = 0) +evaluate ($sum_dihed= 0) +evaluate ($sumsq_dihed = 0) +evaluate ($sum_vdw = 0) +evaluate ($sumsq_vdw = 0) +evaluate ($sum_elec = 0) +evaluate ($sumsq_elec = 0) + +@PREVIT:file.cns(filenames=$filenames) + +evaluate ($count = 1) +evaluate ($nstruc1 = 0) +while ($count le $Iterations.anastruc) loop main + evaluate ($file = $filenames.bestfile_$count) + coor init end + if ($file ne "") then + coor @@$file + evaluate ($nstruc1 = $nstruc1 + 1) + energy end + evaluate ($sum_tot = $sum_tot + $ener) + evaluate ($sumsq_tot = $sumsq_tot + $ener**2) + evaluate ($sum_bond = $sum_bond + $bond) + evaluate ($sumsq_bond = $sumsq_bond + $bond**2) + evaluate ($sum_angle = $sum_angle + $angl) + evaluate ($sumsq_angle = $sumsq_angle + $angl**2) + evaluate ($sum_impr = $sum_impr + $impr) + evaluate ($sumsq_impr = $sumsq_impr + $impr**2) + evaluate ($sum_dihed = $sum_dihed + $dihe) + evaluate ($sumsq_dihed = $sumsq_dihed + $dihe**2) + evaluate ($sum_vdw = $sum_vdw + $vdw) + evaluate ($sumsq_vdw = $sumsq_vdw + $vdw**2) + evaluate ($sum_elec = $sum_elec + $elec) + evaluate ($sumsq_elec = $sumsq_elec + $elec**2) + + display # $file $ener $bond $angl $impr $dihe $vdw $elec + + end if + if ($count ge $Iterations.anastruc) then exit loop main end if + evaluate ($count = $count + 1) +end loop main + +evaluate ($mean_tot = $sum_tot / $nstruc1) +evaluate ($stdev_tot = sqrt(($sumsq_tot - $nstruc1*$mean_tot**2)/ $nstruc1)) +evaluate ($mean_bond = $sum_bond / $nstruc1) +evaluate ($stdev_bond = sqrt(($sumsq_bond - $nstruc1*$mean_bond**2)/ $nstruc1)) +evaluate ($mean_angle = $sum_angle / $nstruc1) +evaluate ($stdev_angle = sqrt(($sumsq_angle - $nstruc1*$mean_angle**2)/ $nstruc1)) +evaluate ($mean_impr = $sum_impr / $nstruc1) +evaluate ($stdev_impr = sqrt(($sumsq_impr - $nstruc1*$mean_impr**2)/ $nstruc1)) +evaluate ($mean_dihed = $sum_dihed / $nstruc1) +evaluate ($stdev_dihed = sqrt(($sumsq_dihed - $nstruc1*$mean_dihed**2)/ $nstruc1)) +evaluate ($mean_vdw = $sum_vdw / $nstruc1) +evaluate ($stdev_vdw = sqrt(($sumsq_vdw - $nstruc1*$mean_vdw**2)/ $nstruc1)) +evaluate ($mean_elec = $sum_elec / $nstruc1) +evaluate ($stdev_elec = sqrt(($sumsq_elec - $nstruc1*$mean_elec**2)/ $nstruc1)) + +display # mean values protein +display # Etot $mean_tot (+/- $stdev_tot ) [kcal/Mol] +display # Ebond $mean_bond (+/- $stdev_bond ) [kcal/Mol] +display # Eangle $mean_angle (+/- $stdev_angle ) [kcal/Mol] +display # Eimpr $mean_impr (+/- $stdev_impr ) [kcal/Mol] +display # Edihed $mean_dihed (+/- $stdev_dihed ) [kcal/Mol] +display # Evdw $mean_vdw (+/- $stdev_vdw ) [kcal/Mol] +display # Eelec $mean_elec (+/- $stdev_elec ) [kcal/Mol] + +@PREVIT:file.cns(filenames=$filenames) + +!define flexible segments + +do (store5 = 0) (all) +eval($nchain1= 0) +while ($nchain1 < $data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + evaluate($fcounter=0) + while ($fcounter < $Toppar.nseg_$nchain1) loop flex + evaluate($fcounter=$fcounter + 1) + do (store5 = $nchain1) (resid $Toppar.start_seg_$nchain1_$fcounter : $Toppar.end_seg_$nchain1_$fcounter + and segid $Toppar.prot_segid_$nchain1 ) + end loop flex +end loop nloop1 + +do (store5 = 0) (resn ANI or resn DAN or resn XAN) + +igroup interaction (not all) (not all) end + +igroup + eval($nchain1= 1) + while ($nchain1 <= $data.ncomponents) loop nloop1 + eval($nchain2 = $nchain1) + while ($nchain2 <= $data.ncomponents) loop nloop2 + interaction (attr store5 = $nchain1) (attr store5 = $nchain2) weights * 1 end + eval($nchain2 = $nchain2 + 1) + end loop nloop2 + eval($nchain1 = $nchain1 + 1) + end loop nloop1 +end + +evaluate ($sum_tot = 0) +evaluate ($sumsq_tot = 0) +evaluate ($sum_vdw = 0) +evaluate ($sumsq_vdw = 0) +evaluate ($sum_elec = 0) +evaluate ($sumsq_elec = 0) + +display # +display # +display #Proteins flexible interface energies +display #file Etot Evdw Eelec + +evaluate ($count = 1) +evaluate ($nstruc1 = 0) +while ($count le $Iterations.anastruc) loop main + evaluate ($file = $filenames.bestfile_$count) + coor init end + if ($file ne "") then + coor @@$file + evaluate ($nstruc1 = $nstruc1 + 1) + energy end + evaluate ($sum_tot = $sum_tot + $ener) + evaluate ($sumsq_tot = $sumsq_tot + $ener**2) + evaluate ($sum_vdw = $sum_vdw + $vdw) + evaluate ($sumsq_vdw = $sumsq_vdw + $vdw**2) + evaluate ($sum_elec = $sum_elec + $elec) + evaluate ($sumsq_elec = $sumsq_elec + $elec**2) + + display # $file $ener $vdw $elec + end if + if ($count ge $Iterations.anastruc) then exit loop main end if + evaluate ($count = $count + 1) +end loop main + +evaluate ($mean_tot = $sum_tot / $nstruc1) +evaluate ($stdev_tot = sqrt(($sumsq_tot - $nstruc1*$mean_tot**2)/ $nstruc1)) +evaluate ($mean_vdw = $sum_vdw / $nstruc1) +evaluate ($stdev_vdw = sqrt(($sumsq_vdw - $nstruc1*$mean_vdw**2)/ $nstruc1)) +evaluate ($mean_elec = $sum_elec / $nstruc1) +evaluate ($stdev_elec = sqrt(($sumsq_elec - $nstruc1*$mean_elec**2)/ $nstruc1)) + +display # mean values +display # Etot $mean_tot (+/- $stdev_tot ) [kcal/Mol] +display # Evdw $mean_vdw (+/- $stdev_vdw ) [kcal/Mol] +display # Eelec $mean_elec (+/- $stdev_elec ) [kcal/Mol] + +evaluate ($kinter = 1.0) +@RUN:scale_inter_only.cns + +display # +display # +display #Protein-Protein intermolecular energies +display #file Etot Evdw Eelec + +evaluate ($sum_tot = 0) +evaluate ($sumsq_tot = 0) +evaluate ($sum_vdw = 0) +evaluate ($sumsq_vdw = 0) +evaluate ($sum_elec = 0) +evaluate ($sumsq_elec = 0) + +@PREVIT:file.cns(filenames=$filenames) + +evaluate ($count = 1) +evaluate ($nstruc1 = 0) +while ($count le $Iterations.anastruc) loop main + evaluate ($file = $filenames.bestfile_$count) + coor init end + if ($file ne "") then + coor @@$file + evaluate ($nstruc1 = $nstruc1 + 1) + energy end + evaluate ($sum_tot = $sum_tot + $ener) + evaluate ($sumsq_tot = $sumsq_tot + $ener**2) + evaluate ($sum_vdw = $sum_vdw + $vdw) + evaluate ($sumsq_vdw = $sumsq_vdw + $vdw**2) + evaluate ($sum_elec = $sum_elec + $elec) + evaluate ($sumsq_elec = $sumsq_elec + $elec**2) + + display # $file $ener $vdw $elec + + end if + if ($count ge $Iterations.anastruc) then exit loop main end if + evaluate ($count = $count + 1) +end loop main + +evaluate ($mean_tot = $sum_tot / $nstruc1) +evaluate ($stdev_tot = sqrt(($sumsq_tot - $nstruc1*$mean_tot**2)/ $nstruc1)) +evaluate ($mean_vdw = $sum_vdw / $nstruc1) +evaluate ($stdev_vdw = sqrt(($sumsq_vdw - $nstruc1*$mean_vdw**2)/ $nstruc1)) +evaluate ($mean_elec = $sum_elec / $nstruc1) +evaluate ($stdev_elec = sqrt(($sumsq_elec - $nstruc1*$mean_elec**2)/ $nstruc1)) + +display # mean values +display # Etot $mean_tot (+/- $stdev_tot ) [kcal/Mol] +display # Evdw $mean_vdw (+/- $stdev_vdw ) [kcal/Mol] +display # Eelec $mean_elec (+/- $stdev_elec ) [kcal/Mol] + +display # +display # +display #Protein-Protein Buried_surface_area + +evaluate ($sum_bsa = 0) +evaluate ($sumsq_bsa = 0) + +@PREVIT:file.cns(filenames=$filenames) + +evaluate ($count = 1) +evaluate ($nstruc1 = 0) +while ($count le $Iterations.anastruc) loop main + evaluate ($file = $filenames.bestfile_$count) + coor init end + if ($file ne "") then + coor @@$file + evaluate ($nstruc1 = $nstruc1 + 1) + + evaluate ($nchain1 = 1) + evaluate ($saafree = 0) + evaluate ($esolfree = 0) + while ($nchain1 <= $data.ncomponents) loop nloop1 + {====>} {* buried surface area *} + do (rmsd = 0) (all) + surface mode=access accu=0.075 rh2o=1.4 sele=(segid $Toppar.prot_segid_$nchain1) end + show sum (rmsd) (segid $Toppar.prot_segid_$nchain1 and not ((resn WAT or resn HOH or resn TIP*) or resn DMS)) + evaluate ($saafree = $saafree + $result) + evaluate ($nchain1 = $nchain1 + 1) + end loop nloop1 + + do (rmsd = 0) (all) + surface mode=access accu=0.075 rh2o=1.4 sele=(not ((resn WAT or resn HOH or resn TIP*) or resn DMS)) end + show sum (rmsd) (not ((resn WAT or resn HOH or resn TIP*) or resn DMS)) + evaluate ($satot = $result) + evaluate ($saburied = $saafree - $satot) + evaluate ($sum_bsa = $sum_bsa + $saburied) + evaluate ($sumsq_bsa = $sumsq_bsa + $saburied**2) + + display # $file $saburied + + end if + if ($count ge $Iterations.anastruc) then exit loop main end if + evaluate ($count = $count + 1) +end loop main + +evaluate ($mean_bsa = $sum_bsa / $nstruc1) +evaluate ($stdev_bsa = sqrt(($sumsq_bsa - $nstruc1*$mean_bsa**2)/ $nstruc1)) + +display # mean values +display # BSA $mean_bsa (+/- $stdev_bsa ) [A^2] + +stop diff --git a/src/haddock/modules/flexref/cns/expand.cns b/src/haddock/modules/flexref/cns/expand.cns new file mode 100644 index 000000000..ec4a8a7c5 --- /dev/null +++ b/src/haddock/modules/flexref/cns/expand.cns @@ -0,0 +1,91 @@ +! expand.cns +! Expand the initial structure and randomly rotate each component +! Save the initial center of mass positions +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** + +! find out the center of mass of each component +eval ($ncount=1) +while ($ncount le $data.ncomponents) loop findcm + show ave (x) (not name H* and not name DUM and segid $Toppar.prot_segid_$ncount) + eval ($xcm_$ncount=$result) + show ave (y) (not name H* and not name DUM and segid $Toppar.prot_segid_$ncount) + eval ($ycm_$ncount=$result) + show ave (z) (not name H* and not name DUM and segid $Toppar.prot_segid_$ncount) + eval ($zcm_$ncount=$result) + eval ($ncount=$ncount + 1) +end loop findcm + +! find the center of mass of the entire complex +show ave (x) (not name H* and not name DUM) +eval ($xcm_tot=$result) +show ave (y) (not name H* and not name DUM) +eval ($ycm_tot=$result) +show ave (z) (not name H* and not name DUM) +eval ($zcm_tot=$result) + +! find the difference vector between the center of mass each component and the center of mass of the entire complex +! multiply difference vector by expansion factor +! translate components by difference vectors + +eval ($ncount=1) +while ($ncount le $data.ncomponents) loop transvec + eval ($v_x$ncount=($xcm_$ncount-$xcm_tot)*$saprotocol.expansion) + eval ($v_y$ncount=($ycm_$ncount-$ycm_tot)*$saprotocol.expansion) + eval ($v_z$ncount=($zcm_$ncount-$zcm_tot)*$saprotocol.expansion) + coor trans sele=(segid $Toppar.prot_segid_$ncount and not name DUM ) vector = ($v_x$ncount, $v_y$ncount,$v_z$ncount) end + eval ($ncount= $ncount + 1) +end loop transvec + +! Rotate over random angle + +eval ($ncount=1) +while ($ncount le $data.ncomponents) loop quatgen + ! Generate 3 random axes, for pure quaternion: u = xi + yj + zk + evaluate ($RRM_e1_$ncount = random() * 2 - 1) + evaluate ($RRM_e2_$ncount = random() * 2 - 1) + evaluate ($RRM_e3_$ncount = random() * 2 - 1) + + evaluate ($unit_quat_$ncount = $RRM_e1_$ncount * $RRM_e1_$ncount + $RRM_e2_$ncount * $RRM_e2_$ncount + $RRM_e3_$ncount * $RRM_e3_$ncount) + + ! Normalize to create pure unit quaternion u = xi + yj + zk; |u| = 1 + eval ($RRM_e1_$ncount = $RRM_e1_$ncount / SQRT($unit_quat_$ncount)) + eval ($RRM_e2_$ncount = $RRM_e2_$ncount / sqrt($unit_quat_$ncount)) + eval ($RRM_e3_$ncount = $RRM_e3_$ncount / sqrt($unit_quat_$ncount)) + evaluate ($unit_quat_$ncount = $RRM_e1_$ncount * $RRM_e1_$ncount + $RRM_e2_$ncount * $RRM_e2_$ncount + $RRM_e3_$ncount * $RRM_e3_$ncount) + + ! Create unit quaternion q = cos (alpha/2) + sin (alpha/2)* u + ! Alpha is the rotation angle + + if ($unit_quat_$ncount eq 1) then + eval ($q0_$ncount = cos($saprotocol.randangle/2)) + eval ($q1_$ncount = sin($saprotocol.randangle/2)*$RRM_e1_$ncount) + eval ($q2_$ncount = sin($saprotocol.randangle/2)*$RRM_e2_$ncount) + eval ($q3_$ncount = sin($saprotocol.randangle/2)*$RRM_e3_$ncount) + end if + + ! define center of rotation + show ave (x) (not name H* and not name DUM and segid $Toppar.prot_segid_$ncount) + eval ($xdis = $result) + show ave (y) (not name H* and not name DUM and segid $Toppar.prot_segid_$ncount) + eval ($ydis = $result) + show ave (z) (not name H* and not name DUM and segid $Toppar.prot_segid_$ncount) + eval ($zdis = $result) + + ! Rotate molecules using generated quaternion q + coor rotate + quaternion $q0_$ncount $q1_$ncount $q2_$ncount $q3_$ncount + center = ($xdis $ydis $zdis) + sele = (segid $Toppar.prot_segid_$ncount and not name DUM) + end + + eval ($ncount = $ncount + 1) + +end loop quatgen + diff --git a/src/haddock/modules/flexref/cns/flex_segment.cns b/src/haddock/modules/flexref/cns/flex_segment.cns new file mode 100644 index 000000000..d86259465 --- /dev/null +++ b/src/haddock/modules/flexref/cns/flex_segment.cns @@ -0,0 +1,62 @@ +! flex_segment.cns +! Define fully flexible segments for docking +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + +do (store5 = 0) (all) + +display NO FLEXIBLE SEGMENTS for all molecule at this stage +evaluate($nchain1 = 0) +while ($nchain1 < $data.ncomponents) loop nloop1 + evaluate($nchain1 = $nchain1 + 1) + if ($Toppar.nfle_$nchain1 = 0) then + display NO FULLY FLEXIBLE SEGMENTS for molecule $nchain1 + else + display FULLY FLEXIBLE SEGMENTS for molecule $nchain1 + evaluate($nf=0) + while ($nf < $Toppar.nfle_$nchain1) loop Xfflex + evaluate($nf=$nf + 1) + do (store5 = $nchain1) ( resid $Toppar.start_fle_$nchain1_$nf : $Toppar.end_fle_$nchain1_$nf + and segid $Toppar.prot_segid_$nchain1 ) + display FULLY FLEXIBLE SEGMENT NR $nf FROM $Toppar.start_fle_$nchain1_$nf TO $Toppar.end_fle_$nchain1_$nf + end loop Xfflex + end if +end loop nloop1 + +do (store5 = 21) (resn WAT or resn HOH or resn TIP*) + +evaluate ($nfletot = 0) +! check number of flexible residues per molecule +evaluate($nchain1 = 0) +while ($nchain1 < $data.ncomponents) loop nloop2 + evaluate($nchain1 = $nchain1 + 1) + do (store6 = 0) (all) + do (store6 = 1) (tag and attr store5 = $nchain1) + show sum (store6) (all) + evaluate ($numfle=$result) + do (store6 = 0) (all) + do (store6 = 1) (tag and segid $Toppar.prot_segid_$nchain1 and not attr store5 = $nchain1) + show sum (store6) (all) + evaluate ($numrig=$result) + do (store6 = 0) (all) + do (store6 = 1) (tag and segid $Toppar.prot_segid_$nchain1) + show sum (store6) (all) + evaluate ($numres=$result) + display FLEXIBILITY STATISTIC FOR MOLECULE $nchain1 : Nres=$numres Nrigid=$numrig Nflex=$numfle + evaluate ($nfletot = $nfletot + $numfle) +end loop nloop2 + +do (store1 = 0) (all) +do (store1 = 1) ((resn WAT or resn HOH or resn TIP*) and name OH2) +show sum (store1) ((resn WAT or resn HOH or resn TIP*)) +evaluate ($nfletot = $nfletot + $result) + +evaluate ($nfletot = $nfletot + 10) + diff --git a/src/haddock/modules/flexref/cns/flex_segment_back.cns b/src/haddock/modules/flexref/cns/flex_segment_back.cns new file mode 100644 index 000000000..76f0f4213 --- /dev/null +++ b/src/haddock/modules/flexref/cns/flex_segment_back.cns @@ -0,0 +1,87 @@ +! flex_segment_back.cns +! Define the semi-flexible segments (both side-chains and backbone) +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + +do (store5 = 0) (all) +do (store6 = 0) (all) +do (store7 = 0) (all) + +!first flexible segments for docking +evaluate($nchain1 = 0) +while ($nchain1 < $data.ncomponents) loop nloop1 + evaluate($nchain1 = $nchain1 + 1) + evaluate($nf=0) + + if ($Toppar.nseg_$nchain1 = 0) then + display NO FLEXIBLE SEGMENTS for molecule $nchain1 + else + if ($Toppar.nseg_$nchain1 < 0) then + display AUTOMATIC DEFINITION OF FLEXIBLE SEGMENTS BASED ON INTERMOLECULAR PROXIMITY FOR MOLECULE $nchain1 + inline @RUN:flexauto-neighbors.cns + else + display FLEXIBLE SIDE-CHAINS SEGMENTS for molecule $nchain1 + while ($nf < $Toppar.nseg_$nchain1) loop Xflex + evaluate($nf=$nf + 1) + do (store5 = $nchain1) ( resid $Toppar.start_seg_$nchain1_$nf : $Toppar.end_seg_$nchain1_$nf + and segid $Toppar.prot_segid_$nchain1) + display FLEXIBLE SEGMENT NR $nf FROM $Toppar.start_seg_$nchain1_$nf TO $Toppar.end_seg_$nchain1_$nf + end loop Xflex + end if + end if +end loop nloop1 + +!then fully flexible segments for all stages +evaluate($nchain1 = 0) +while ($nchain1 < $data.ncomponents) loop nloop2 + evaluate($nchain1 = $nchain1 + 1) + if ($Toppar.nfle_$nchain1 = 0) then + display NO FULLY FLEXIBLE SEGMENTS for molecule $nchain1 + else + display FULLY FLEXIBLE SEGMENTS for molecule $nchain1 + evaluate($nf=0) + while ($nf < $Toppar.nfle_$nchain1) loop Xfflex + evaluate($nf=$nf + 1) + do (store5 = $nchain1) ( resid $Toppar.start_fle_$nchain1_$nf : $Toppar.end_fle_$nchain1_$nf + and segid $Toppar.prot_segid_$nchain1 ) + display FULLY FLEXIBLE SEGMENT NR $nf FROM $Toppar.start_fle_$nchain1_$nf TO $Toppar.end_fle_$nchain1_$nf + end loop Xfflex + end if +end loop nloop2 + +do (store5 = 21) (resn WAT or resn HOH or resn TIP*) +evaluate ($nfletot = 0) + +! check number of flexible residues per molecule +evaluate($nchain1 = 0) +while ($nchain1 < $data.ncomponents) loop nloop3 + evaluate($nchain1 = $nchain1 + 1) + do (store6 = 0) (all) + do (store6 = 1) (tag and (attr store5 = $nchain1)) + show sum (store6) (all) + evaluate ($numfle=$result) + do (store6 = 0) (all) + do (store6 = 1) (tag and segid $Toppar.prot_segid_$nchain1 and not (attr store5 = $nchain1)) + show sum (store6) (all) + evaluate ($numrig=$result) + do (store6 = 0) (all) + do (store6 = 1) (tag and segid $Toppar.prot_segid_$nchain1) + show sum (store6) (all) + evaluate ($numres=$result) + display FLEXIBILITY STATISTIC FOR MOLECULE $nchain1 : Nres=$numres Nrigid=$numrig Nflex=$numfle + evaluate ($nfletot = $nfletot + $numfle) +end loop nloop3 + +do (store1 = 0) (all) +do (store1 = 1) ((resn WAT or resn HOH or resn TIP*) and name OH2) +show sum (store1) ((resn WAT or resn HOH or resn TIP*)) +evaluate ($nfletot = $nfletot + $result) + +evaluate ($nfletot = $nfletot + 10) diff --git a/src/haddock/modules/flexref/cns/flex_segment_side.cns b/src/haddock/modules/flexref/cns/flex_segment_side.cns new file mode 100644 index 000000000..4b11ff2d4 --- /dev/null +++ b/src/haddock/modules/flexref/cns/flex_segment_side.cns @@ -0,0 +1,92 @@ +! flex_segment_side.cns +! Define semi-flexible segments (side-chains only) +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + +do (store5 = 0) (all) +do (store6 = 0) (all) +do (store7 = 0) (all) + +!first flexible segments for docking +evaluate($nchain1 = 0) +while ($nchain1 < $data.ncomponents) loop nloop1 + evaluate($nchain1 = $nchain1 + 1) + evaluate($nf=0) + if ($Toppar.nseg_$nchain1 = 0) then + display NO FLEXIBLE SIDE-CHAINS SEGMENTS for molecule $nchain1 + else + if ($Toppar.nseg_$nchain1 < 0) then + display AUTOMATIC DEFINITION OF FLEXIBLE SEGMENTS BASED ON INTERMOLECULAR PROXIMITY FOR MOLECULE $nchain1 + inline @RUN:flexauto-neighbors.cns + do (store5 = 0) (name CA or name BB or name C or name N or name O) + else + display FLEXIBLE SIDE-CHAINS SEGMENTS for molecule $nchain1 + while ($nf < $Toppar.nseg_$nchain1) loop Xflex + evaluate($nf=$nf + 1) + do (store5 = $nchain1) ( resid $Toppar.start_seg_$nchain1_$nf : $Toppar.end_seg_$nchain1_$nf + and segid $Toppar.prot_segid_$nchain1 + and not(name CA or name BB or name C or name N or name O) ) + do (store7 = $nchain1) ( resid $Toppar.start_seg_$nchain1_$nf : $Toppar.end_seg_$nchain1_$nf + and segid $Toppar.prot_segid_$nchain1) + display FLEXIBLE SIDE-CHAINS SEGMENT NR $nf FROM $Toppar.start_seg_$nchain1_$nf TO $Toppar.end_seg_$nchain1_$nf + end loop Xflex + end if + end if +end loop nloop1 + +!then fully flexible segments for all stages +evaluate($nchain1 = 0) +while ($nchain1 < $data.ncomponents) loop nloop2 + evaluate($nchain1 = $nchain1 + 1) + if ($Toppar.nfle_$nchain1 = 0) then + display NO FULLY FLEXIBLE SEGMENTS for molecule $nchain1 + else + display FULLY FLEXIBLE SEGMENTS for molecule $nchain1 + evaluate($nf=0) + while ($nf < $Toppar.nfle_$nchain1) loop Xfflex + evaluate($nf=$nf + 1) + do (store5 = $nchain1) ( resid $Toppar.start_fle_$nchain1_$nf : $Toppar.end_fle_$nchain1_$nf + and segid $Toppar.prot_segid_$nchain1) + do (store7 = $nchain1) ( resid $Toppar.start_fle_$nchain1_$nf : $Toppar.end_fle_$nchain1_$nf + and segid $Toppar.prot_segid_$nchain1) + display FULLY FLEXIBLE SEGMENT NR $nf FROM $Toppar.start_fle_$nchain1_$nf TO $Toppar.end_fle_$nchain1_$nf + end loop Xfflex + end if +end loop nloop2 + +do (store5 = 21) (resn WAT or resn HOH or resn TIP*) + +evaluate ($nfletot = 0) +! check number of flexible residues per molecule +evaluate($nchain1 = 0) +while ($nchain1 < $data.ncomponents) loop nloop3 + evaluate($nchain1 = $nchain1 + 1) + do (store6 = 0) (all) + do (store6 = 1) (tag and (attr store7 = $nchain1)) + show sum (store6) (all) + evaluate ($numfle=$result) + do (store6 = 0) (all) + do (store6 = 1) (tag and segid $Toppar.prot_segid_$nchain1 and not (attr store7 = $nchain1)) + show sum (store6) (all) + evaluate ($numrig=$result) + do (store6 = 0) (all) + do (store6 = 1) (tag and segid $Toppar.prot_segid_$nchain1) + show sum (store6) (all) + evaluate ($numres=$result) + display FLEXIBILITY STATISTIC FOR MOLECULE $nchain1 : Nres=$numres Nrigid=$numrig Nflex=$numfle + evaluate ($nfletot = $nfletot + $numfle) +end loop nloop3 + +do (store1 = 0) (all) +do (store1 = 1) ((resn WAT or resn HOH or resn TIP*) and name OH2) +show sum (store1) ((resn WAT or resn HOH or resn TIP*)) +evaluate ($nfletot = $nfletot + $result) + +evaluate ($nfletot = $nfletot + 10) diff --git a/src/haddock/modules/flexref/cns/flexauto-neighbors.cns b/src/haddock/modules/flexref/cns/flexauto-neighbors.cns new file mode 100644 index 000000000..81b25609e --- /dev/null +++ b/src/haddock/modules/flexref/cns/flexauto-neighbors.cns @@ -0,0 +1,48 @@ +! flexauto-neighbors.cns +! Automatic definition of flexible segments for docking for contacting residues +! including neighboring residues of residues making contacts +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + +evaluate ($flcut = 5.0) + +do (store5 = $nchain1) (byres (segid $Toppar.prot_segid_$nchain1 + and (not (segid $Toppar.prot_segid_$nchain1 or resn SHA)) around $flcut)) +do (store7 = $nchain1) (byres (segid $Toppar.prot_segid_$nchain1 + and (not (segid $Toppar.prot_segid_$nchain1 or resn SHA)) around $flcut)) + +do (store6 = 0) (segid $Toppar.prot_segid_$nchain1) +for $id in id (tag and attr store5 >0 and not ((resn WAT or resn HOH or resn TIP*) or resn DMSO) and segid $Toppar.prot_segid_$nchain1) loop flexres1 + show (resid) (id $id) + evaluate ($inres = decode($result)) + evaluate ($preres = $inres) + evaluate ($nexres = $inres) + if ($iteration = 1) then + evaluate ($preres = $preres - 1) +! evaluate ($nexres = $nexres + 1) + end if + do (store6 = $nchain1) (resid $preres and segid $Toppar.prot_segid_$nchain1) + do (store6 = $nchain1) (resid $nexres and segid $Toppar.prot_segid_$nchain1) +end loop flexres1 + +do (store5 = store6) (segid $Toppar.prot_segid_$nchain1) +do (store7 = store6) (segid $Toppar.prot_segid_$nchain1) + +display THE FOLLOWING RESIDUES HAVE BEEN DEFINED AS FLEXIBLE for molecule $nchain1 +for $id in id (tag and attr store5 >0 and not ((resn WAT or resn HOH or resn TIP*) or resn DMSO) and segid $Toppar.prot_segid_$nchain1) loop flexres2 + show (resid) (id $id) + evaluate ($inres = $result) + show (resn) (id $id) + evaluate ($nares = $result) + show (segid) (id $id) + evaluate ($seres = $result) + display AUTOMATICALLY SELECTED SEGMENT: $nares,$inres,$seres +end loop flexres2 + diff --git a/src/haddock/modules/flexref/cns/flexauto.cns b/src/haddock/modules/flexref/cns/flexauto.cns new file mode 100644 index 000000000..28613ade3 --- /dev/null +++ b/src/haddock/modules/flexref/cns/flexauto.cns @@ -0,0 +1,30 @@ +! flexauto.cns +! Automatic definition of flexible segments for docking for contacting residues +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + +evaluate ($flcut = 5.0) + +do (store5 = $nchain1) (byres (segid $Toppar.prot_segid_$nchain1 + and (not (segid $Toppar.prot_segid_$nchain1 or resn SHA)) around $flcut)) +do (store7 = $nchain1) (byres (segid $Toppar.prot_segid_$nchain1 + and (not (segid $Toppar.prot_segid_$nchain1 or resn SHA)) around $flcut)) + +display THE FOLLOWING RESIDUES HAVE BEEN DEFINED AS FLEXIBLE for molecule $nchain1 +for $id in id (tag and attr store5 >0 and not ((resn WAT or resn HOH or resn TIP*) or resn DMSO) and segid $Toppar.prot_segid_$nchain1) loop flexres + show (resid) (id $id) + evaluate ($inres = $result) + show (resn) (id $id) + evaluate ($nares = $result) + show (segid) (id $id) + evaluate ($seres = $result) + display AUTOMATICALLY SELECTED SEGMENT: $nares,$inres,$seres +end loop flexres + diff --git a/src/haddock/modules/flexref/cns/flexref.cns b/src/haddock/modules/flexref/cns/flexref.cns new file mode 100644 index 000000000..b0f2353df --- /dev/null +++ b/src/haddock/modules/flexref/cns/flexref.cns @@ -0,0 +1,1616 @@ +! refine.inp +! The core docking script of HADDOCK performing rigid-body docking +! and semi-flexible refinement in torsion angle space +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + +!@RUN:initialize.cns(iteration=$iteration;) +! +!@NEWIT:iteration.cns(iteration=$iteration;) +! +!@RUN:run.cns( +!iteration =$iteration; +!filenames =$filenames; +!Data =$Data; +!iterations=$iterations; +!saprotocol=$saprotocol; +!refine =$refine; +!toppar =$toppar; +!analysis =$analysis;) + +!evaluate ($log_level=quiet) +!evaluate ($log_level=verbose) +eval ($toppar.prot_segid_1="A") +eval ($toppar.prot_segid_2="B") +eval ($toppar.fix_origin_1=false) +eval ($toppar.fix_origin_2=false) +!eval ($toppar.shape_1=false) +!eval ($toppar.shape_2=false) +!eval ($toppar.dna_1=false) +!eval ($toppar.dna_2=false) +eval ($iteration = 1) + +noe + reset + nrestraints = 12000000 ! allocate space for NOEs + ceiling 1000 +end + +!==================================================================! +evaluate ($saprotocol.crossdock=$crossdock) +evaluate ($saprotocol.randorien=$randorien) +evaluate ($saprotocol.rebuildcplx=$rebuildcplx) +evaluate ($saprotocol.rigidmini=$rigidmini) +evaluate ($saprotocol.rigidtrans=$rigidtrans) +evaluate ($saprotocol.expand=$expand) +evaluate ($saprotocol.expansion=$expansion) +evaluate ($saprotocol.randangle=$randangle) + +if ($saprotocol.expand eq true) then + evaluate ($saprotocol.randorien = false) + evaluate ($saprotocol.rigidmini = false) +end if + +evaluate ($saprotocol.ntrials=$ntrials) +evaluate ($saprotocol.iniseed=$iniseed) +evaluate ($saprotocol.tadhigh_t=$tadhigh_t) +evaluate ($saprotocol.t1_init=$tadinit1_t) +evaluate ($saprotocol.t2_init=$tadinit2_t) +evaluate ($saprotocol.t3_init=$tadinit3_t) +evaluate ($saprotocol.t1_final=$tadfinal1_t) +evaluate ($saprotocol.t2_final=$tadfinal2_t) +evaluate ($saprotocol.t3_final=$tadfinal3_t) +evaluate ($saprotocol.inter_rigid=$inter_rigid) +evaluate ($saprotocol.inter_init_rigid=$init_rigid) +evaluate ($saprotocol.inter_fin_rigid=$fin_rigid) +evaluate ($saprotocol.inter_init_cool2=$init_cool2) +evaluate ($saprotocol.inter_fin_cool2=$fin_cool2) +evaluate ($saprotocol.inter_init_cool3=$init_cool3) +evaluate ($saprotocol.inter_fin_cool3=$fin_cool3) +!evaluate ($saprotocol.rotate180_it0=$rotate180_it0) +evaluate ($saprotocol.rotate180_it1=$rotate180_it1) +evaluate ($saprotocol.tempstep=50) +evaluate ($saprotocol.timestep=$timestep) +evaluate ($saprotocol.tadfactor=$tadfactor) +evaluate ($saprotocol.emstepstrans=$emstepstrans) +evaluate ($saprotocol.initiosteps=$initiosteps) +evaluate ($saprotocol.cool1_steps=$cool1_steps) +evaluate ($saprotocol.cool2_steps=$cool2_steps) +evaluate ($saprotocol.cool3_steps=$cool3_steps) +evaluate ($saprotocol.fbeta=100) +evaluate ($saprotocol.mass=100) + +evaluate ($fileroot="") +evaluate ($filenames.fileroot=$fileroot) +evaluate ($filenames.template=$fileroot + "_1.pdb") + +evaluate ($iterations.ini_count =1) +!evaluate ($iterations.structures =$structures_$iteration) +!evaluate ($iterations.keepstruct =$keepstruct_$iteration) +evaluate ($iterations.w_vdw =$w_vdw_$iteration) +evaluate ($iterations.w_elec =$w_elec_$iteration) +evaluate ($iterations.w_dist =$w_dist_$iteration) +evaluate ($iterations.w_rg =$w_rg_$iteration) +evaluate ($iterations.w_sani =$w_sani_$iteration) +evaluate ($iterations.w_xrdc =$w_xrdc_$iteration) +evaluate ($iterations.w_xpcs =$w_xpcs_$iteration) +evaluate ($iterations.w_dani =$w_dani_$iteration) +evaluate ($iterations.w_vean =$w_vean_$iteration) +evaluate ($iterations.w_cdih =$w_cdih_$iteration) +evaluate ($iterations.w_sym =$w_sym_$iteration) +evaluate ($iterations.w_zres =$w_zres_$iteration) +evaluate ($iterations.w_bsa =$w_bsa_$iteration) +evaluate ($iterations.w_deint =$w_deint_$iteration) +evaluate ($iterations.w_desolv =$w_desolv_$iteration) +evaluate ($iterations.anastruc =$anastruc_$iteration) +evaluate ($iterations.w_lcc =$w_lcc_$iteration) + + +evaluate ($data.ncomponents=$ncomponents) +! +evaluate ($nmol=1) +while ($nmol <= $data.ncomponents) loop mol +! +! !aa topology, linkage and parameters files +! evaluate ($toppar.prot_top_$nmol=$prot_top_mol$nmol ) +! evaluate ($toppar.prot_link_$nmol=$prot_link_mol$nmol ) +! evaluate ($toppar.prot_par_$nmol=$prot_par_mol$nmol ) +! +! !coarse grained topology, linkage and parameters files +! evaluate ($toppar.prot_cg_top_$nmol=$prot_cg_top_mol$nmol ) +! evaluate ($toppar.prot_cg_link_$nmol=$prot_cg_link_mol$nmol ) +! evaluate ($toppar.prot_cg_par_$nmol=$prot_cg_par_mol$nmol ) +! +! !molecule related (coordinate files, rootname, fix, type, coarse grained, segid) +! evaluate ($toppar.prot_coor_$nmol=$prot_coor_mol$nmol) +! evaluate ($toppar.prot_root_$nmol=$prot_root_mol$nmol) + evaluate ($toppar.fix_origin_$nmol=$fix_origin_mol$nmol) +! evaluate ($toppar.dna_$nmol=$dna_mol$nmol) +! evaluate ($toppar.cyclicpept_$nmol = $cyclicpept_mol$nmol) +! evaluate ($toppar.shape_$nmol = $shape_mol$nmol) +! evaluate ($toppar.cg_$nmol = $cg_mol$nmol) + evaluate ($toppar.prot_segid_$nmol = $prot_segid_mol$nmol) + + !semi flexible segments + evaluate ($toppar.nseg_$nmol = $nseg_$nmol) + evaluate ($nseg = 1) + while ($nseg <=$toppar.nseg_$nmol) loop seg + evaluate ($toppar.start_seg_$nmol_$nseg = $start_seg_$nmol_$nseg) + evaluate ($toppar.end_seg_$nmol_$nseg = $end_seg_$nmol_$nseg) + evaluate ($nseg = $nseg + 1) + end loop seg + + !fully flexible segments + evaluate ($toppar.nfle_$nmol = $nfle_$nmol) + evaluate ($nfle = 1) + while ($nfle <=$toppar.nfle_$nmol) loop fle + evaluate ($toppar.start_fle_$nmol_$nfle = $start_fle_$nmol_$nfle) + evaluate ($toppar.end_fle_$nmol_$nfle = $end_fle_$nmol_$nfle) + evaluate ($nfle = $nfle + 1) + end loop fle +! +! !histidine patches + evaluate ($toppar.autohis = $autohis) +! evaluate ($toppar.nhisd_$nmol = $numhisd_$nmol) +! evaluate ($ncc=1) +! while ($ncc <=$toppar.nhisd_$nmol) loop hisd +! evaluate ($toppar.hisd_resid_$nmol_$ncc = $hisd_$nmol_$ncc) +! evaluate ($ncc = $ncc + 1) +! end loop hisd +! +! evaluate ($toppar.nhise_$nmol = $numhise_$nmol) +! evaluate ($ncc=1) +! while ($ncc <=$toppar.nhise_$nmol) loop hisd +! evaluate ($toppar.hise_resid_$nmol_$ncc = $hise_$nmol_$ncc) +! evaluate ($ncc = $ncc + 1) +! end loop hisd +! + evaluate ($nmol = $nmol + 1) +end loop mol + +! non-bonded parameter set to use +evaluate ($toppar.par_nonbonded = $par_nonbonded) + +! z-restraining +evaluate ($Data.flags.zres = $zres_on) +evaluate ($data.numzres = $numzres) +evaluate ($ncc=1) +while ($ncc <= $numzres) loop zres + evaluate ($toppar.zres_sta_$ncc = $zres_sta_$ncc) + evaluate ($toppar.zres_end_$ncc = $zres_end_$ncc) + evaluate ($toppar.zres_seg_$ncc = $zres_seg_$ncc) + evaluate ($toppar.zres_type_$ncc = $zres_type_$ncc) + evaluate ($ncc = $ncc + 1) +end loop zres + +! NCS restraints +evaluate ($data.kncs = $kncs) +evaluate ($Data.flags.ncs = $ncs_on) +evaluate ($data.numncs = $numncs) +evaluate ($ncc=1) +while ($ncc <= $numncs) loop ncs + evaluate ($toppar.ncs_sta1_$ncc = $ncs_sta1_$ncc) + evaluate ($toppar.ncs_end1_$ncc = $ncs_end1_$ncc) + evaluate ($toppar.ncs_seg1_$ncc = $ncs_seg1_$ncc) + evaluate ($toppar.ncs_sta2_$ncc = $ncs_sta2_$ncc) + evaluate ($toppar.ncs_end2_$ncc = $ncs_end2_$ncc) + evaluate ($toppar.ncs_seg2_$ncc = $ncs_seg2_$ncc) + evaluate ($ncc = $ncc + 1) +end loop ncs + +! Symmetry restraints +evaluate ($data.ksym = $ksym) +evaluate ($Data.flags.sym = $sym_on) +evaluate ($data.numc2sym = $numc2sym) +evaluate ($nsym=1) +while ($nsym <= $numc2sym) loop sym + evaluate ($toppar.c2sym_sta1_$nsym = $c2sym_sta1_$nsym) + evaluate ($toppar.c2sym_end1_$nsym = $c2sym_end1_$nsym) + evaluate ($toppar.c2sym_seg1_$nsym = $c2sym_seg1_$nsym) + evaluate ($toppar.c2sym_sta2_$nsym = $c2sym_sta2_$nsym) + evaluate ($toppar.c2sym_end2_$nsym = $c2sym_end2_$nsym) + evaluate ($toppar.c2sym_seg2_$nsym = $c2sym_seg2_$nsym) + evaluate ($nsym = $nsym + 1) +end loop sym + +evaluate ($data.numc3sym = $numc3sym) +evaluate ($nsym=1) +while ($nsym <=$numc3sym) loop sym + evaluate ($toppar.c3sym_sta1_$nsym = $c3sym_sta1_$nsym) + evaluate ($toppar.c3sym_end1_$nsym = $c3sym_end1_$nsym) + evaluate ($toppar.c3sym_seg1_$nsym = $c3sym_seg1_$nsym) + evaluate ($toppar.c3sym_sta2_$nsym = $c3sym_sta2_$nsym) + evaluate ($toppar.c3sym_end2_$nsym = $c3sym_end2_$nsym) + evaluate ($toppar.c3sym_seg2_$nsym = $c3sym_seg2_$nsym) + evaluate ($toppar.c3sym_sta3_$nsym = $c3sym_sta3_$nsym) + evaluate ($toppar.c3sym_end3_$nsym = $c3sym_end3_$nsym) + evaluate ($toppar.c3sym_seg3_$nsym = $c3sym_seg3_$nsym) + evaluate ($nsym = $nsym + 1) +end loop sym + +evaluate ($data.nums3sym=$nums3sym) +evaluate ($nsym=1) +while ($nsym <=$nums3sym) loop sym + evaluate ($toppar.s3sym_sta1_$nsym = $s3sym_sta1_$nsym) + evaluate ($toppar.s3sym_end1_$nsym = $s3sym_end1_$nsym) + evaluate ($toppar.s3sym_seg1_$nsym = $s3sym_seg1_$nsym) + evaluate ($toppar.s3sym_sta2_$nsym = $s3sym_sta2_$nsym) + evaluate ($toppar.s3sym_end2_$nsym = $s3sym_end2_$nsym) + evaluate ($toppar.s3sym_seg2_$nsym = $s3sym_seg2_$nsym) + evaluate ($toppar.s3sym_sta3_$nsym = $s3sym_sta3_$nsym) + evaluate ($toppar.s3sym_end3_$nsym = $s3sym_end3_$nsym) + evaluate ($toppar.s3sym_seg3_$nsym = $s3sym_seg3_$nsym) + evaluate ($nsym = $nsym + 1) +end loop sym + +evaluate ($data.numc4sym=$numc4sym) +evaluate ($nsym=1) +while ($nsym <=$numc4sym) loop sym + evaluate ($toppar.c4sym_sta1_$nsym = $c4sym_sta1_$nsym) + evaluate ($toppar.c4sym_end1_$nsym = $c4sym_end1_$nsym) + evaluate ($toppar.c4sym_seg1_$nsym = $c4sym_seg1_$nsym) + evaluate ($toppar.c4sym_sta2_$nsym = $c4sym_sta2_$nsym) + evaluate ($toppar.c4sym_end2_$nsym = $c4sym_end2_$nsym) + evaluate ($toppar.c4sym_seg2_$nsym = $c4sym_seg2_$nsym) + evaluate ($toppar.c4sym_sta3_$nsym = $c4sym_sta3_$nsym) + evaluate ($toppar.c4sym_end3_$nsym = $c4sym_end3_$nsym) + evaluate ($toppar.c4sym_seg3_$nsym = $c4sym_seg3_$nsym) + evaluate ($toppar.c4sym_sta4_$nsym = $c4sym_sta4_$nsym) + evaluate ($toppar.c4sym_end4_$nsym = $c4sym_end4_$nsym) + evaluate ($toppar.c4sym_seg4_$nsym = $c4sym_seg4_$nsym) + evaluate ($nsym = $nsym + 1) +end loop sym + +evaluate ($data.numc5sym=$numc5sym) +evaluate ($nsym=1) +while ($nsym <=$numc5sym) loop sym + evaluate ($toppar.c5sym_sta1_$nsym = $c5sym_sta1_$nsym) + evaluate ($toppar.c5sym_end1_$nsym = $c5sym_end1_$nsym) + evaluate ($toppar.c5sym_seg1_$nsym = $c5sym_seg1_$nsym) + evaluate ($toppar.c5sym_sta2_$nsym = $c5sym_sta2_$nsym) + evaluate ($toppar.c5sym_end2_$nsym = $c5sym_end2_$nsym) + evaluate ($toppar.c5sym_seg2_$nsym = $c5sym_seg2_$nsym) + evaluate ($toppar.c5sym_sta3_$nsym = $c5sym_sta3_$nsym) + evaluate ($toppar.c5sym_end3_$nsym = $c5sym_end3_$nsym) + evaluate ($toppar.c5sym_seg3_$nsym = $c5sym_seg3_$nsym) + evaluate ($toppar.c5sym_sta4_$nsym = $c5sym_sta4_$nsym) + evaluate ($toppar.c5sym_end4_$nsym = $c5sym_end4_$nsym) + evaluate ($toppar.c5sym_seg4_$nsym = $c5sym_seg4_$nsym) + evaluate ($toppar.c5sym_sta5_$nsym = $c5sym_sta5_$nsym) + evaluate ($toppar.c5sym_end5_$nsym = $c5sym_end5_$nsym) + evaluate ($toppar.c5sym_seg5_$nsym = $c5sym_seg5_$nsym) + evaluate ($nsym = $nsym + 1) +end loop sym + + +evaluate ($data.numc6sym=$numc6sym) +evaluate ($nsym=1) +while ($nsym <=$numc6sym) loop sym + evaluate ($toppar.c6sym_sta1_$nsym = $c6sym_sta1_$nsym) + evaluate ($toppar.c6sym_end1_$nsym = $c6sym_end1_$nsym) + evaluate ($toppar.c6sym_seg1_$nsym = $c6sym_seg1_$nsym) + evaluate ($toppar.c6sym_sta2_$nsym = $c6sym_sta2_$nsym) + evaluate ($toppar.c6sym_end2_$nsym = $c6sym_end2_$nsym) + evaluate ($toppar.c6sym_seg2_$nsym = $c6sym_seg2_$nsym) + evaluate ($toppar.c6sym_sta3_$nsym = $c6sym_sta3_$nsym) + evaluate ($toppar.c6sym_end3_$nsym = $c6sym_end3_$nsym) + evaluate ($toppar.c6sym_seg3_$nsym = $c6sym_seg3_$nsym) + evaluate ($toppar.c6sym_sta4_$nsym = $c6sym_sta4_$nsym) + evaluate ($toppar.c6sym_end4_$nsym = $c6sym_end4_$nsym) + evaluate ($toppar.c6sym_seg4_$nsym = $c6sym_seg4_$nsym) + evaluate ($toppar.c6sym_sta5_$nsym = $c6sym_sta5_$nsym) + evaluate ($toppar.c6sym_end5_$nsym = $c6sym_end5_$nsym) + evaluate ($toppar.c6sym_seg5_$nsym = $c6sym_seg5_$nsym) + evaluate ($toppar.c6sym_sta6_$nsym = $c6sym_sta6_$nsym) + evaluate ($toppar.c6sym_end6_$nsym = $c6sym_end6_$nsym) + evaluate ($toppar.c6sym_seg6_$nsym = $c6sym_seg6_$nsym) + evaluate ($nsym = $nsym + 1) +end loop sym + +if ( data.numc2sym eq 6) then +! evaluate ($saprotocol.rotate180_it0 = false) + evaluate ($saprotocol.rotate180_it1 = false) +end if +if ( data.numc3sym ne 0) then +! evaluate ($saprotocol.rotate180_it0 = false) + evaluate ($saprotocol.rotate180_it1 = false) +end if +if ( data.numc4sym ne 0) then +! evaluate ($saprotocol.rotate180_it0 = false) + evaluate ($saprotocol.rotate180_it1 = false) +end if +if ( data.numc5sym ne 0) then +! evaluate ($saprotocol.rotate180_it0 = false) + evaluate ($saprotocol.rotate180_it1 = false) +end if +if ( data.numc6sym ne 0) then +! evaluate ($saprotocol.rotate180_it0 = false) + evaluate ($saprotocol.rotate180_it1 = false) +end if + + +!Dihedrals, DNA and distance restraints +evaluate ($Data.dnarest =$dnarest_on) +evaluate ($Data.flags.cdih =$dihedrals_on) +evaluate ($Data.cdih.on =$dihedrals_on) +evaluate ($Data.ssdihed =$ssdihed) +evaluate ($Data.error_dih =$error_dih) +evaluate ($data.dihedrals.on=$dihedrals_on) +evaluate ($data.dihedrals_hot=$dihedrals_hot) +evaluate ($data.dihedrals_cool1=$dihedrals_cool1) +evaluate ($data.dihedrals_cool2=$dihedrals_cool2) +evaluate ($data.dihedrals_cool3=$dihedrals_cool3) +evaluate ($data.hbonds_on=$hbonds_on) + +! RDC restraints +evaluate ($Data.flags.vean = false) +evaluate ($Data.flags.xrdc = false) +evaluate ($Data.flags.sani = false) +evaluate ($data.numrdc=$numrdc) +evaluate ($ncc=1) +while ($ncc <=$data.numrdc) loop rdc + if ($rdc_choice_$ncc = "VANGLE") then + evaluate ($Data.flags.vean = true) + end if + if ($rdc_choice_$ncc = "SANI") then + evaluate ($Data.flags.sani = true) + end if + if ($rdc_choice_$ncc = "XRDC") then + evaluate ($Data.flags.xrdc = true) + end if + evaluate ($data.rdc_choice_$ncc=$rdc_choice_$ncc) + evaluate ($data.rdc_firstIt_$ncc=$rdc_firstIt_$ncc) + evaluate ($data.rdc_lastIt_$ncc=$rdc_lastIt_$ncc) + evaluate ($data.rdc_hot_$ncc=$rdc_hot_$ncc) + evaluate ($data.rdc_cool1_$ncc=$rdc_cool1_$ncc) + evaluate ($data.rdc_cool2_$ncc=$rdc_cool2_$ncc) + evaluate ($data.rdc_cool3_$ncc=$rdc_cool3_$ncc) + evaluate ($data.rdc_r_$ncc=$rdc_r_$ncc) + evaluate ($data.rdc_d_$ncc=$rdc_d_$ncc) + evaluate ($data.ini_bor_hot_$ncc=$ini_bor_hot_$ncc) + evaluate ($data.ini_bor_cool1_$ncc=$ini_bor_cool1_$ncc) + evaluate ($data.ini_bor_cool2_$ncc=$ini_bor_cool2_$ncc) + evaluate ($data.ini_bor_cool3_$ncc=$ini_bor_cool3_$ncc) + evaluate ($data.ini_cen_hot_$ncc=$ini_cen_hot_$ncc) + evaluate ($data.ini_cen_cool1_$ncc=$ini_cen_cool1_$ncc) + evaluate ($data.ini_cen_cool2_$ncc=$ini_cen_cool2_$ncc) + evaluate ($data.ini_cen_cool3_$ncc=$ini_cen_cool3_$ncc) + evaluate ($data.fin_bor_hot_$ncc=$fin_bor_hot_$ncc) + evaluate ($data.fin_bor_cool1_$ncc=$fin_bor_cool1_$ncc) + evaluate ($data.fin_bor_cool2_$ncc=$fin_bor_cool2_$ncc) + evaluate ($data.fin_bor_cool3_$ncc=$fin_bor_cool3_$ncc) + evaluate ($data.fin_cen_hot_$ncc=$fin_cen_hot_$ncc) + evaluate ($data.fin_cen_cool1_$ncc=$fin_cen_cool1_$ncc) + evaluate ($data.fin_cen_cool2_$ncc=$fin_cen_cool2_$ncc) + evaluate ($data.fin_cen_cool3_$ncc=$fin_cen_cool3_$ncc) + evaluate ($ncc=$ncc+1) +end loop rdc + +! PCS restraints +evaluate ($Data.flags.xpcs = false) +evaluate ($data.numpcs=$numpcs) +evaluate ($ncc=1) +while ($ncc <=$numpcs) loop pcs + if ($pcs_choice_$ncc = "XPCS") then + evaluate ($Data.flags.xpcs = true) + end if + evaluate ($data.pcs_choice_$ncc=$pcs_choice_$ncc) + evaluate ($data.pcs_firstIt_$ncc=$pcs_firstIt_$ncc) + evaluate ($data.pcs_lastIt_$ncc=$pcs_lastIt_$ncc) + evaluate ($data.pcs_hot_$ncc=$pcs_hot_$ncc) + evaluate ($data.pcs_cool1_$ncc=$pcs_cool1_$ncc) + evaluate ($data.pcs_cool2_$ncc=$pcs_cool2_$ncc) + evaluate ($data.pcs_cool3_$ncc=$pcs_cool3_$ncc) + evaluate ($data.pcs_r_$ncc=$pcs_r_$ncc) + evaluate ($data.pcs_d_$ncc=$pcs_d_$ncc) + evaluate ($ncc=$ncc+1) +end loop pcs + +! DANI restraints +evaluate ($Data.flags.dani = false) +evaluate ($data.numdani=$numdani) +evaluate ($ncc=1) +while ($ncc <=$numdani) loop dani + if ($dan_choice_$ncc = "DANI") then + evaluate ($Data.flags.dani = true) + end if + evaluate ($data.dan_choice_$ncc=$dan_choice_$ncc) + evaluate ($data.dan_firstIt_$ncc=$dan_firstIt_$ncc) + evaluate ($data.dan_lastIt_$ncc=$dan_lastIt_$ncc) + evaluate ($data.dan_hot_$ncc=$dan_hot_$ncc) + evaluate ($data.dan_cool1_$ncc=$dan_cool1_$ncc) + evaluate ($data.dan_cool2_$ncc=$dan_cool2_$ncc) + evaluate ($data.dan_cool3_$ncc=$dan_cool3_$ncc) + evaluate ($data.dan_tc_$ncc=$dan_tc_$ncc) + evaluate ($data.dan_anis_$ncc=$dan_anis_$ncc) + evaluate ($data.dan_r_$ncc=$dan_r_$ncc) + evaluate ($data.dan_wh_$ncc=$dan_wh_$ncc) + evaluate ($data.dan_wn_$ncc=$dan_wn_$ncc) + evaluate ($ncc=$ncc+1) +end loop dani + +! planarity restraints +evaluate ($Data.flags.plan = false) + +! distance restraints +evaluate ($Data.flags.noe = true) +evaluate ($data.scaling=$air_scaling) +evaluate ($data.totnoe_unamb=$tot_unamb) +evaluate ($data.unamb_firstit=$unamb_firstit) +evaluate ($data.unamb_lastit=$unamb_lastit) +evaluate ($data.unamb_hot=$unamb_hot) +evaluate ($data.unamb_cool1=$unamb_cool1) +evaluate ($data.unamb_cool2=$unamb_cool2) +evaluate ($data.unamb_cool3=$unamb_cool3) +evaluate ($data.noecv=$noecv) +evaluate ($data.ncvpart=$ncvpart) + +evaluate ($data.totnoe_amb=$tot_amb) +evaluate ($data.amb_firstit=$amb_firstit) +evaluate ($data.amb_lastit=$amb_lastit) +evaluate ($data.amb_hot=$amb_hot) +evaluate ($data.amb_cool1=$amb_cool1) +evaluate ($data.amb_cool2=$amb_cool2) +evaluate ($data.amb_cool3=$amb_cool3) + +evaluate ($data.hbond_firstit=$hbond_firstit) +evaluate ($data.hbond_lastit=$hbond_lastit) +evaluate ($data.hbond_hot=$hbond_hot) +evaluate ($data.hbond_cool1=$hbond_cool1) +evaluate ($data.hbond_cool2=$hbond_cool2) +evaluate ($data.hbond_cool3=$hbond_cool3) + +evaluate ($data.mrswi_hot=$mrswi_hot) +evaluate ($data.mrswi_cool1=$mrswi_cool1) +evaluate ($data.mrswi_cool2=$mrswi_cool2) +evaluate ($data.mrswi_cool3=$mrswi_cool3) + +evaluate ($data.rswi_hot=$rswi_hot) +evaluate ($data.rswi_cool1=$rswi_cool1) +evaluate ($data.rswi_cool2=$rswi_cool2) +evaluate ($data.rswi_cool3=$rswi_cool3) + +evaluate ($data.masy_hot=$masy_hot) +evaluate ($data.masy_cool1=$masy_cool1) +evaluate ($data.masy_cool2=$masy_cool2) +evaluate ($data.masy_cool3=$masy_cool3) + +evaluate ($data.asy_hot=$asy_hot) +evaluate ($data.asy_cool1=$asy_cool1) +evaluate ($data.asy_cool2=$asy_cool2) +evaluate ($data.asy_cool3=$asy_cool3) + +evaluate ($data.ranair=$ranair) +if ($data.ranair eq true) then + evaluate ($data.noecv = false) +end if +evaluate ($data.cmrest=$cmrest) +evaluate ($data.cmtight=$cmtight) +evaluate ($data.kcont=$kcont) +evaluate ($data.surfrest=$surfrest) +evaluate ($data.ksurf=$ksurf) + + +! radius of gydration restraints +evaluate ($data.flags.rg=$rgrest) +evaluate ($data.rgtarg=$rgtarg) +evaluate ($data.krg_hot=$krg_hot) +evaluate ($data.krg_cool1=$krg_cool1) +evaluate ($data.krg_cool2=$krg_cool2) +evaluate ($data.krg_cool3=$krg_cool3) +evaluate ($data.rgsele=$rgsele) + +evaluate ($data.kzres=$kzres) +evaluate ($data.zresmax=$zresmax) +evaluate ($data.zresmin=$zresmin) + +! keep or delete non-polar hydrogens +evaluate ($toppar.delenph=$delenph) + + +!Electrostatics: +evaluate ($Data.flags.dihed =$dihedflag) +evaluate ($Data.flags.elec0 =$elecflag_0) +evaluate ($Data.flags.elec1 =$elecflag_1) +evaluate ($Data.epsilon0 =$epsilon_0) +evaluate ($Data.epsilon1 =$epsilon_1) +evaluate ($Data.dielec0 =$dielec_0) +evaluate ($Data.dielec1 =$dielec_1) + + +!Interaction matrix: +evaluate ($nmol1=1) +while ($nmol1 <=$data.ncomponents) loop mol1 + evaluate ($nmol2=$nmol1 + 1) + evaluate ($toppar.int_$nmol1_$nmol1 =$int_$nmol1_$nmol1) + while ($nmol2 <=$data.ncomponents) loop mol2 + evaluate ($toppar.int_$nmol1_$nmol2 =$int_$nmol1_$nmol2) + evaluate ($toppar.int_$nmol2_$nmol1 =$int_$nmol1_$nmol2) + evaluate ($nmol2=$nmol2 + 1) + end loop mol2 + evaluate ($nmol1 = $nmol1 + 1) +end loop mol1 + +!intermolecular contacts analysis +evaluate ($data.hb_dist=$dist_hb) +evaluate ($data.nb_dist=$dist_nb) + + +!water refinement +evaluate ($refine.firstwater=$firstwater) +evaluate ($refine.solvshell=$solvshell) +evaluate ($refine.keepwater=$keepwater) +!evaluate ($refine.waterrefine=$min($structures_1,waterrefine)) +evaluate ($refine.solvent=$solvent) +evaluate ($refine.heatsteps=$waterheatsteps) +evaluate ($refine.steps=$watersteps) +evaluate ($refine.coolsteps=$watercoolsteps) + + +!for the non-bonded parameters (the section was taken out of +!parallhdg5.0.pro and parallhdg5.1.pro, so be careful!): +if ($toppar.par_nonbonded eq "PROLSQ") then + evaluate ($toppar.repel_radius = 1.0) + evaluate ($toppar.repel_rcons = 20) + evaluate ($toppar.repel_rexpo = 4) + evaluate ($toppar.repel_irexp = 1) +elseif ($toppar.par_nonbonded eq "PARMALLH6") then + evaluate ($toppar.repel_radius = 0.8) + evaluate ($toppar.repel_rcons = 5.0) + evaluate ($toppar.repel_rexpo = 2) + evaluate ($toppar.repel_irexp = 2) +elseif ($toppar.par_nonbonded eq "OPLSX") then + evaluate ($toppar.repel_radius = 0.0) +else {...now the standard PARALLHDG parameters} + evaluate ($toppar.repel_radius = 0.78) + evaluate ($toppar.repel_rcons = 5.0) + evaluate ($toppar.repel_rexpo = 2) + evaluate ($toppar.repel_irexp = 2) +end if + +! Water in rigid body docking +evaluate ($data.waterdock=$waterdock) +evaluate ($data.db_method=$db_method) +evaluate ($data.water_tokeep=$water_tokeep) +evaluate ($data.dnap_water_tokeep=$dnap_water_tokeep) +evaluate ($data.water_randfrac=$water_randfrac) +evaluate ($data.solvate_method=$solvate_method) +evaluate ($data.water_surfcutoff=$water_surfcutoff) +evaluate ($data.water_analysis=$water_analysis) +evaluate ($data.transwater=$transwater) +evaluate ($data.water_restraint_initial=$water_restraint_initial) +evaluate ($data.water_restraint_cutoff=$water_restraint_cutoff) +evaluate ($data.water_restraint_scale=$water_restraint_scale) +evaluate ($data.waterensemble=$waterensemble) + +if ($data.waterdock eq true) then +! evaluate ($saprotocol.rotate180_it0 = false) + evaluate ($saprotocol.rotate180_it1 = false) + evaluate ($SaProtocol.initiosteps = 0) + evaluate ($SaProtocol.cool1_steps = 0) + evaluate ($refine.keepwater = true) + display SOLVATED DOCKING TURNED ON: initiosteps and cool1_steps set to 0, rotate180 set to false +end if + +! Centroid parameters +evaluate ($data.flags.centroids =$centroid_rest) +evaluate ($data.centroids.kscale =$centroid_kscale) +evaluate ($nchain = 0) +while ($nchain < $data.ncomponents) loop nloop1 + evaluate ($nchain = $nchain + 1) + evaluate ($data.centroids.xcom_$nchain =$xcom_$nchain) + evaluate ($data.centroids.ycom_$nchain =$ycom_$nchain) + evaluate ($data.centroids.zcom_$nchain =$zcom_$nchain) + evaluate ($data.centroids.ambi_$nchain =$ambi_$nchain) +end loop nloop1 + +if ($saprotocol.expand eq true) then + evaluate ($data.flags.centroids = true) +end if + +! Cryo-EM parameters +evaluate ($data.flags.em =$em_rest) +evaluate ($data.em.kscale =$em_kscale) +evaluate ($data.em.it0 =$em_it0) +evaluate ($data.em.it1 =$em_it1) +evaluate ($data.em.itw =$em_itw) +evaluate ($data.em.resolution =$em_resolution) +evaluate ($data.em.nx =$nx) +evaluate ($data.em.ny =$ny) +evaluate ($data.em.nz =$nz) +evaluate ($data.em.xlength =$xlength) +evaluate ($data.em.ylength =$ylength) +evaluate ($data.em.zlength =$zlength) + +! Restraints +evaluate ($npart = $ncvpart) + +!==================================================================! + +if ( $log_level = "verbose" ) then + set message=normal echo=on end +else + set message=off echo=off end +end if + +noe + averaging * sum + potential * soft + scale * 1.0 + sqconstant * 1.0 + sqexponent * 2 + soexponent * 1 + rswitch * 1.0 + sqoffset * 0.0 + asymptote * 2.0 + msoexponent * 1 + masymptote * -0.1 + mrswitch * 1.0 + avexpo hbond 20 +end + +!fileexist $errfile end +! if ($result eq false) then +! +!fileexist $ambig_fname end +!if ($result eq true) then +! noe class ambi @@$ambig_fname end +!end if +! +!fileexist $unambig_fname end +!if ($result eq true) then +! noe class dist @@$unambig_fname end +!end if + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!The next line will be changed automatically from python: +evaluate ($whichMD="torsion") +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!The next line will be changed automatically from python: +evaluate ($count = 1) +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!The next line will be changed automatically from python: +evaluate ($file = "") +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +!reads in structure, coordinates and parameter files + +@RUN:read_struc.cns + +flag include bond angle impr vdw end + +if ($Data.flags.dihed eq true) then + flag include dihed end +end if + +do (fbeta=$Saprotocol.fbeta) (all) +do (mass=$Saprotocol.mass) (all) +do (mass=1000) (resn ani) +do (mass=1000) (resn xan) +do (mass=1000) (resn dan) + +!evaluate ($end_count = $iterations.ini_count + $iterations.structures - 1) +!evaluate ($end_count = $iterations.ini_count + $structures_0) + +! What is the purpose of this? +!if ($Data.noecv eq true) then +! evaluate ($npart = 1 + mod($count,$Data.ncvpart)) +! evaluate ($fileseed="NEWIT:" + $Filenames.fileroot + "_" + encode($count) + ".seed") +! evaluate ($fileseed="NEWIT:complex" + "_" + encode($count) + ".seed") + +! evaluate ($seed = max($iteration,1)*$count*$Saprotocol.iniseed) +evaluate ($fileseed=$output_pdb_filename - ".pdb" + ".seed") +set display=$fileseed end +display module(seed;npart) +display define ( +display currentseed = $seed; +display currentpart = $npart; +display ) +display evaluate (&seed=currentseed) +display evaluate (&npart=currentpart) +close $fileseed end + +!else +! evaluate ($seed = max($iteration,1)*$count*$Saprotocol.iniseed) +!end if + +!display $seed +set seed $seed end + +!coor init end +!coor @@$file + +! reinitialize the DUM residue +if ($Data.flags.centroids = true) then + if ($iteration = 0) then + @RUN:centroids_initialize.cns + end if +end if + +{* Find CoM of protein *} +show ave (x) (name CA or name BB or name C1') +evaluate ($xcent=$result) +show ave (y) (name CA or name BB or name C1') +evaluate ($ycent=$result) +show ave (z) (name CA or name BB or name C1') +evaluate ($zcent=$result) + +coor select (not known and resn ani) end +if ($select gt 0) then + coor @@$tensor_pdb + + {* Find CoM of protein and move tensor 100 A away *} + show ave (x) (name CA or name BB or name C1') + evaluate ($xcent=$result) + show ave (y) (name CA or name BB or name C1') + evaluate ($ycent=$result) + show ave (z) (name CA or name BB or name C1') + evaluate ($zcent=$result) + do (x=x+$xcent+100) (resn ANI) + do (y=y+$ycent+100) (resn ANI) + do (z=z+$zcent+100) (resn ANI) + evaluate ($rantens = true) +else + evaluate ($rantens = false) +end if + +coor select (not known and resn xan) end +if ($select gt 0) then + coor @@$tensor_para_pdb + evaluate ($rantens_para = true) +else + evaluate ($rantens_para = false) +end if + +coor select (not known and resn dan) end +if ($select gt 0) then +! coor @@RUN:toppar/tensor_dani.pdb + coor @@toppar/tensor_dani.pdb + + {* Find CoM of protein and move tensor 100 A away *} + show ave (x) (name CA or name BB or name C1') + evaluate ($xcent=$result) + show ave (y) (name CA or name BB or name C1') + evaluate ($ycent=$result) + show ave (z) (name CA or name BB or name C1') + evaluate ($zcent=$result) + do (x=x+$xcent+100) (resn DAN) + do (y=y+$ycent+100) (resn DAN) + do (z=z+$zcent+100) (resn DAN) + evaluate ($rantens_dani = true) +else + evaluate ($rantens_dani = false) +end if + +!catch possible bound water and set high T steps to 0 +coor select ((resn WAT or resn HOH or resn TIP*)) end +if ($select gt 0) then + evaluate ($SaProtocol.initiosteps = 0) + evaluate ($SaProtocol.cool1_steps = 0) + evaluate ($refine.keepwater = true) +end if + +do (refx=x) (all) +do (refy=y) (all) +do (refz=z) (all) + +!set the energy flags: +inline @RUN:setflags.cns + +!read all the experimental Data: +evaluate ($lcc = 0) +set seed $seed end +set message=normal echo=on end +if ($data.waterdock eq false) then + inline @RUN:read_data.cns + if ($data.flags.em = true) then +! @RUN:em_read_data.cns(Data=$data;) + @RUN:em_read_data.cns + end if + + if ($Data.flags.centroids = true) then + if ($iteration = 0) then + @RUN:centroids_set_restraints.cns + end if + end if +end if + +{* ======================= reset coordinates and proceed *} + +do (x = refx) (all) +do (y = refy) (all) +do (z = refz) (all) + +inline @RUN:read_water1.cns +if ($data.waterdock eq true) then + inline @RUN:water_rest.cns + set seed $seed end + set message=normal echo=on end + inline @RUN:read_data.cns +end if + +!set the energy flags: +inline @RUN:setflags.cns + +{* random removal of restaints ================================== *} +if ($Data.noecv eq true) then + set message=on echo=on end + noe cv $npart ? end +else + evaluate ($npart = 0) +end if + +if ( $log_level = "verbose" ) then + set message=normal echo=on end +else + set message=off echo=off end +end if + +!set the rdc coefficients: +evaluate ($nrdc=1) +while ($nrdc <= $data.numrdc) loop rdc + evaluate ($cln = "rd" + encode($nrdc) ) + if ($Data.rdc_choice_$nrdc eq "SANI") then + sani class $cln coeff 0.0 $Data.rdc_d_$nrdc $Data.rdc_r_$nrdc end + end if + if ($Data.rdc_choice_$nrdc eq "XRDC") then + xrdc class $cln coeff $Data.rdc_d_$nrdc $Data.rdc_r_$nrdc end + end if + evaluate ($nrdc=$nrdc+1) +end loop rdc + +!set the pcs coefficients: +evaluate ($npcs=1) +while ($npcs <= $data.numpcs) loop pcs + if ($Data.pcs_choice_$npcs eq "XPCS") then + evaluate ($cln = "pc"+encode($npcs) ) + xpcs class $cln coeff $Data.pcs_d_$npcs $Data.pcs_r_$npcs end + end if + evaluate ($npcs=$npcs+1) +end loop pcs + +! set dani coefficients: +evaluate ($ndani=1) +while ($ndani <= $data.numdani) loop dani + if ($Data.dan_choice_$ndani eq "DANI") then + evaluate ($cln = "da"+encode($ndani) ) + dani class $cln coeff $Data.dan_tc_$ndani $Data.dan_anis_$ndani $Data.dan_r_$ndani $Data.dan_wh_$ndani $Data.dan_wn_$ndani end + end if + evaluate ($ndani=$ndani+1) +end loop dani + + +{* ============================================================== *} +eval ($anisotropy = false) +if ($Data.flags.sani eq true) then + flag incl sani end + eval ($anisotropy = true) +else + flag excl sani end +end if + +if ($Data.flags.xrdc eq true) then + flag incl xrdc end + eval ($anisotropy = true) +else + flag excl xrdc end +end if + +if ($Data.flags.xpcs eq true) then + flag incl xpcs end + eval ($anisotropy = true) +else + flag excl xpcs end +end if + +if ($Data.flags.vean eq true) then + flag incl vean end +else + flag excl vean end +end if + +if ($Data.flags.dani eq true) then + flag incl dani end + eval ($anisotropy = true) +else + flag excl dani end +end if + +! determine whether the final models should be reoriented along their principal +! axes before writing to file in it0 and it1 +eval($reorient = true) +if ($data.flags.zres = true) then + eval($reorient = false) +elseif ($data.flags.em = true) then + eval($reorient = false) +elseif ($data.flags.centroids = true) then + eval($reorient = false) +end if +! also check for fixed molecules +evaluate ($ncount = 0) +while ($ncount < $data.ncomponents) loop orientmol + evaluate ($ncount = $ncount + 1) + if ($Toppar.fix_origin_$ncount eq true) then + eval($reorient = false) + end if +end loop orientmol + + +eval ($nchain1 = 0) +while ($nchain1 < $data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + if ($Toppar.fix_origin_$nchain1 eq true) then + eval($reorient = false) + end if +end loop nloop1 + +evaluate ($numnoe = 0) + +{*======================= semi-flexible SA refinement*} + + if ($saprotocol.expand eq TRUE ) then + @RUN:centroids_initialize.cns + @RUN:centroids_set_restraints.cns + noe scale centroid $data.centroids.kscale end + @RUN:expand.cns + evaluate ($filename="NEWIT:" + $Filenames.fileroot + "_" + encode($count) + "_expand.pdb") + write coordinates sele=(not resn DUM) output=$filename end + end if + + !Make sure that at least as many distance restraints are successfully + !read as the number of partitions for cross-validation + evaluate ($numnoe = 999) + noe ? end + if ($NUMNOE = 0) then + if ($Data.ncomponents > 1) then + if ($Data.surfrest eq FALSE) then + if ($Data.cmrest eq FALSE) then + if ($Data.ranair eq FALSE) then + if ($Data.flags.rg eq FALSE) then + evaluate ($errfile = "RUN:WARNING") + fileexist $errfile end + if ($result eq false) then + set display=$errfile end + display TOTAL NUMBER OF DISTANCE RESTRAINTS FOR FLEXIBLE REFINEMENT IS ZERO! + display CONTROL YOUR PARAMETER SETTINGS AND RESTRAINT DEFINITIONS + close $errfile end + end if + end if + end if + end if + end if + end if + evaluate ($Data.ncvpart = 1) + evaluate ($Data.noecv = FALSE) + end if + + if ($NUMNOE lt $Data.ncvpart) then + noe part=1 end + evaluate ($Data.ncvpart = 1) + evaluate ($Data.noecv = FALSE) + end if + + {*== check first for failed structures ==*} + evaluate ($failure = false) +! evaluate ($filefail="NEWIT:" + $Filenames.fileroot + "_" + encode($count) + ".fail") +! fileexist $filefail end +! evaluate ($failure = $result) +! evaluate ($failure = true) + + parameter + bond (resn WAT ) (resn WAT ) 1000 TOKEN + angle (resn WAT ) (resn WAT ) (resn WAT ) 500 TOKEN + bond (resn HOH ) (resn HOH ) 1000 TOKEN + angle (resn HOH ) (resn HOH ) (resn HOH ) 500 TOKEN + bond (resn TIP*) (resn TIP*) 1000 TOKEN + angle (resn TIP*) (resn TIP*) (resn TIP*) 500 TOKEN + end + + if ($Data.ranair eq true) then + if ($Data.ncomponents > 2) then + evaluate ($errfile = "RUN:FAILED") + fileexist $errfile end + if ($result eq false) then + set display=$errfile end + display ========= Unsupported option =========== + display Random definition of AIRs with more than + display two molecules currently unsupported + display ======================================== + close $errfile end + end if + stop + end if + evaluate ($Data.noecv = false) + noe + reset + nrestraints = 100000 ! allocate space for NOEs + ceiling 1000 + end + @RUN:contactairs.cns + + !Read back in hbond data + if ($Data.hbond_lastit ge &iteration) then + if ($Data.hbond_firstit le &iteration) then + if ($Data.hbonds_on eq true) then + fileexist $hbond_fname end + if ($result eq true) then +! noe @@$hbond_fname end + noe @@$hbond_fname end + end if + end if + end if + end if + + noe + averaging * sum + potential * soft + scale * 1.0 + sqconstant * 1.0 + sqexponent * 2 + soexponent * 1 + rswitch * 1.0 + sqoffset * 0.0 + asymptote * 2.0 + msoexponent * 1 + masymptote * -0.1 + mrswitch * 1.0 + avexpo hbond 20 + end + inline @RUN:water_rest.cns + end if + + if ($Data.flags.elec1 eq true) then + flag include elec end + if ($Data.dielec1 eq rdie) then + parameter nbonds eps=$Data.epsilon1 rdie shift switch end end + ! shift statement needed first to activate switch (CNS bug?) + else + parameter nbonds eps=$Data.epsilon1 cdie end end + end if + parameter nbonds ? end end + else + evaluate ($elec=0.0) + flag exclude elec end + end if + +!end if + +if ( $log_level = "verbose" ) then + set message=normal echo=on end +else + set message=off echo=off end +end if + +evaluate ($ini_flt = 5.0) + +@RUN:symmultimer.cns + +if ($Data.flags.zres eq true ) then + flag incl zhar end + @RUN:zrestraining.cns +end if + +if ($Data.cmrest eq true ) then + @RUN:cm-restraints.cns +end if + +! use contact airs rather than surface restraints at it1 +if ($Data.surfrest eq true ) then + @RUN:contactairs.cns +end if + +if ($Data.dnarest eq true ) then + @@$dna_rest_file +! @RUN:data/sequence/dna-rna_restraints.def +end if + +if ($Data.flags.rg eq true ) then + collapse + force $Data.krg_hot + target $Data.rgtarg + sele (not (resn ANI or resn XAN or resn TIP*)) + end +end if + +if ($Data.ssdihed eq all ) then + @@$protein_ss_rest_all +! @RUN:protein-ss-restraints-all.def +end if +if ($Data.ssdihed eq alpha ) then + @@$protein_ss_restraints_alpha +! @RUN:protein-ss-restraints-alpha.def +end if +if ($Data.ssdihed eq alphabeta ) then + @@$protein_ss_restraints_alpha_beta +! @RUN:protein-ss-restraints-alpha-beta.def +end if + +! get initial energy +energy end + +coor copy end + +if ($saprotocol.rotate180_it1 eq true) then + evaluate ($rotiter = 2) {* two iteration in rotloop1, rotation *} +else + evaluate ($rotiter = 1) {* only one iteration in rotloop1, no rotation *} +end if + +evaluate ($nlcount = 0) {* two iterations in rotloop1, first rotated *} +{* ================== Loop to sample 180 degrees rotated solutions if requested *} + +while ($nlcount < $rotiter) loop rotloop1 + + evaluate ($nlcount = $nlcount + 1) + + evaluate ($unamb_scale = $Data.unamb_hot) + evaluate ($ambig_scale = $Data.amb_hot) + evaluate ($hbond_scale = $Data.hbond_hot) + + noe + scale dist $unamb_scale + scale ambi $ambig_scale + scale hbon $hbond_scale + end + + if ($Data.flags.dihed eq true) then + flag include dihed end + end if + + if ($Data.scaling eq TRUE) then + inline @RUN:set_noe_scale.cns + energy end + noe + scale dist $Data.unamb_hot + scale ambi $Data.amb_hot + end + energy end + end if + + if ($Data.flags.sani eq true) then + evaluate ($nrdc=1) + while ($nrdc <= $data.numrdc) loop rdc + evaluate ($cln = "rd"+encode($nrdc) ) + sani class $cln force $Data.rdc_hot_$nrdc end + evaluate ($nrdc = $nrdc + 1) + end loop rdc + if ($rantens eq true) then + @RUN:mini_tensor.cns + end if + end if + + evaluate ($paramin = false) + if ($Data.flags.xrdc eq true) then + evaluate ($nrdc=1) + while ($nrdc <= $data.numrdc) loop rdc + evaluate ($cln = "rd"+encode($nrdc) ) + xrdc class $cln force $Data.rdc_hot_$nrdc end + evaluate ($nrdc = $nrdc + 1) + end loop rdc + evaluate ($paramin = true) + end if + + if ($Data.flags.xpcs eq true) then + evaluate ($npcs=1) + while ($npcs <= $data.numpcs) loop pcs + evaluate ($cln = "pc"+encode($npcs) ) + xpcs class $cln force $Data.pcs_hot_$npcs end + evaluate ($paramin = true) + evaluate ($npcs= $npcs + 1) + end loop pcs + end if + + if ($paramin eq TRUE) then + if ($rantens_para eq true) then + @RUN:mini_tensor_para.cns + end if + end if + + if ($Data.flags.dani eq true) then + evaluate ($ndani=1) + while ($ndani <= $data.numdani) loop dani + evaluate ($cln = "da"+encode($ndani) ) + dani class $cln force $Data.dan_hot_$ndani end + evaluate ($ndani = $ndani + 1) + end loop dani + if ($rantens_dani eq true) then + @RUN:mini_tensor_dani.cns + end if + end if + + + if ($nlcount = 2) then + + flag excl bond angl dihe impr zhar end + + evaluate ($kinter = $SaProtocol.inter_rigid) + @RUN:scale_inter_only.cns + + eval($nchain1 = 0) + while ($nchain1 < $data.ncomponents) loop nloop4 + eval($nchain1 = $nchain1 + 1) + eval($nchain2 = $nchain1 ) + while ($nchain2 < $data.ncomponents) loop nloop3 + eval($nchain2 = $nchain2 + 1) + @RUN:rotation180.cns + end loop nloop3 + end loop nloop4 + + inline @RUN:setflags.cns + if ($Data.flags.elec1 eq true) then + flag include elec end + end if + if ($Data.flags.dihed eq true) then + flag include dihed end + end if + flag include bond angle impr vdw end + + end if + + igroup + interaction (not (resn ANI or resn DAN or resn XAN or resn SHA)) + (not (resn ANI or resn DAN or resn XAN or resn SHA)) weight * 1 end + interaction (resn ANI or resn DAN or resn XAN or resn SHA) + (resn ANI or resn DAN or resn XAN or resn SHA) weight * 1 vdw 0.0 elec 0.0 end + end + + energy end + + ! fix the residues describing the shape + fix sele=(resn SHA) end + + ! fix the DUM residue for expand/refine + if ($saprotocol.expand eq TRUE ) then + fix sele=(name DUM) end + end if + +{* 0 ======================================= initial EM for flexible parts only *} + + if ($Data.flags.rg eq true ) then + collapse force $Data.krg_hot end + end if + + if ($SaProtocol.rigidtrans eq true) then + @RUN:flex_segment_back.cns + fix sele=((attr store5 = 0 or name OO or resn SHA) and not name H* and not (resn WAT or resn HOH or resn TIP*)) end + minimize powell nstep=200 drop=10.0 nprint=25 end + fix sele=(not all) end + end if + + energy end + + do (refx = x) (all) + do (refy = y) (all) + do (refz = z) (all) + + do (harm = 0) (all) + do (harm = 20) (name OO and not resn XAN) + restraints harmonic exponent=2 end + flag incl harm end + + ! fix the residues describing the shape + fix sele=(resn SHA) end + + ! fix the DUM residue for expand/refine + if ($saprotocol.expand eq TRUE ) then + fix sele=(name DUM) end + end if + + ! the following is added to avoid the generation of the torsion angle topology if not needed + ! in cases where the number of steps is set to 0 (avoid issues with isolated atoms) + eval ($torsiondone = false) + if ($failure eq false) then +{* 1 ======================================= rigid body high temperature search*} +{* rigid bodies *} + if ($data.flags.em = true) then + if ($data.em.it1 = true) then + flags include xref end + end if + end if + + if ($SaProtocol.initiosteps > 0) then + display ("HERE1") + @RUN:torsiontop.cns + display ("HERE3") + eval ($torsiondone = true) + flags exclude dihed end +! @RUN:sa_ltad_hightemp.cns(SaProtocol=$SaProtocol;Data=$Data;Toppar=$Toppar) + @RUN:sa_ltad_hightemp.cns + end if + +{* 2 ======================================= rigid body first slow cooling *} +{* rigid bodies only *} + + if ($Data.flags.rg eq true ) then + collapse force $Data.krg_cool1 end + end if + + if ($SaProtocol.cool1_steps > 0) then + if ($torsiondone ne true) then + display ("HERE2") + @RUN:torsiontop.cns + eval ($torsiondone = true) + end if + evaluate ($SaProtocol.tadfactor = 4) +! @RUN:sa_ltad_cool1.cns(SaProtocol=$SaProtocol;Data=$Data;Toppar=$Toppar) + @RUN:sa_ltad_cool1.cns + end if + +{* 3 ======================================= second slow cooling *} +{* flexible side-chains and reduced time step *} + + if ($Data.flags.rg eq true ) then + collapse force $Data.krg_cool2 end + end if + + if ($Data.flags.dihed eq true) then flags include dihed end end if + + if ($SaProtocol.cool2_steps > 0) then + if ($torsiondone eq true) then + dyna tors topo reset end end + end if + @RUN:torsiontop_flex.cns + eval ($torsiondone = true) + evaluate ($SaProtocol.tadfactor = 1) +! @RUN:sa_ltad_cool2.cns(SaProtocol=$SaProtocol;Data=$Data;Toppar=$Toppar) + @RUN:sa_ltad_cool2.cns + end if + +{* 4 ============================================ third slow cooling *} +{* flexible side-chains and backbone at interface and reduced time step *} + + if ($Data.flags.rg eq true ) then + collapse force $Data.krg_cool3 end + end if + + if ($SaProtocol.cool3_steps > 0) then + if ($torsiondone eq true) then + dyna tors topo reset end end + end if + @RUN:torsiontop_flex_back.cns + eval ($torsiondone = true) + evaluate ($SaProtocol.tadfactor = 1) +! @RUN:sa_ltad_cool3.cns(SaProtocol=$SaProtocol;Data=$Data;Toppar=$Toppar) + @RUN:sa_ltad_cool3.cns + end if + + end if + +{* 5 =========================== final minimization *} + + if ($Data.scaling eq true) then + inline @RUN:set_noe_scale.cns + energy end + noe + scale dist $Data.unamb_cool3 + scale ambi $Data.amb_cool3 + scale hbon $Data.hbond_cool3 + end + energy end + end if + + @RUN:flex_segment_back.cns + + fix sele=((attr store5 = 0 or name OO or resn SHA) and not name H* and not (resn WAT or resn HOH or resn TIP* or resn XAN)) end + minimize powell nstep=200 drop=10.0 nprint=25 end + fix sele=(not all) end + energy end + + if ($nlcount = 1) then + coor swap end + if ($torsiondone eq true) then + if ($failure eq false) then + dyna tors topo reset end end + end if + end if + end if + +end loop rotloop1 + +coor swap end + +if ($saprotocol.rotate180_it1 eq true) then + evaluate ($rotiter = 2) {* two iteration in rotloop2, rotation *} +else + evaluate ($rotiter = 1) {* only one iteration in rotloop2, no rotation *} +end if + +evaluate ($nlcount = 0) + +{* ================== Loop to write 180 degrees rotated solutions if requested *} + +while ($nlcount < $rotiter) loop rotloop2 + + evaluate ($nlcount = $nlcount + 1) + +{* ======================= calculate free molecules internal energy *} + + igroup + interaction (not (resn ANI or resn DAN or resn XAN or resn SHA or resn WAT or resn HOH or resn TIP* or resn DUM)) + (not (resn ANI or resn DAN or resn XAN or resn SHA or resn WAT or resn HOH or resn TIP* or resn DUM)) weight * 1 end + end + + do (refx=x) (all) + do (refy=y) (all) + do (refz=z) (all) + + fix sele=(resn ANI or resn DAN or resn XAN or resn SHA or resn WAT or resn HOH or resn TIP* or resn DMS) end + + flag excl noe dani sani vean xrdc xpcs coll cdih zhar end + flag include bond angle dihe impr vdw end + + evaluate ($elec = 0.0) + evaluate ($eintfree = 0.0) + if ($Data.flags.elec1 eq true) then + flag include elec end + end if + + if ($Data.dielec1 eq rdie) then + parameter nbonds eps=$Data.epsilon1 rdie shift switch end end + ! shift statement needed first to activate switch (CNS bug?) + else + parameter nbonds eps=$Data.epsilon1 cdie end end + end if + parameter nbonds ? end end + inline @RUN:calc_free-ene.cns + + fix sele=(not all) end + + do (x = refx) (all) + do (y = refy) (all) + do (z = refz) (all) + +{* ===================== calculate complex internal energy *} + + evaluate ($kinter = 1.0) + @RUN:scale_intra_only.cns + + flag include bond angle dihe impr vdw end + + evaluate ($elec = 0.0) + evaluate ($eintcplx = 0.0) + if ($Data.flags.elec1 eq true) then + flag include elec end + end if + + energy end + + evaluate ($eintcplx = $bond + $angl + $impr + $dihe + $vdw + $elec) + +{* ===================== calculate final energies and write structure *} + evaluate ($cdih=0.0) + flag incl noe cdih end + if ($Data.flags.sani eq true) then + flag incl sani end + end if + if ($Data.flags.xrdc eq true) then + flag incl xrdc end + end if + if ($Data.flags.xpcs eq true) then + flag incl xpcs end + end if + if ($Data.flags.dani eq true) then + flag incl dani end + end if + if ($Data.flags.vean eq true) then + flag incl vean end + end if + if ($Data.ncomponents > 1) then + evaluate ($kinter = 1.0) + @RUN:scale_inter_final.cns + else + @RUN:scale_intra_only.cns + end if + + noe + scale dist $Data.unamb_cool3 + scale ambi $Data.amb_cool3 + scale hbon 0.0 + scale symm 0.0 + scale cont 0.0 + end + energy end + evaluate ($eair= $noe) + + evaluate ($esym = 0.0) + evaluate ($ncs = 0.0) + evaluate ($zhar = 0.0) + if ($Data.flags.sym eq true) then + noe reset nres= 200000 end + @RUN:symmultimer.cns + noe + scale symm $Data.ksym + end + energy end + evaluate ($esym = $noe) + if ($Data.noecv eq true) then + evaluate ($violations_test_noe=0) + evaluate ($rms_test_noe=0.0) + display Print out of cross-validated violations and rms not + display possible in combination with symmetry restraints + display CV values set therefore to 0 + end if + noe reset end + set message=normal echo=on end + !read all the experimental Data: +! @@RUN:read_noes.cns(Iteration=$Iteration; Data=$Data; count=$count) + @@RUN:read_noes.cns +! if ( $log_level = verbose ) then +! set message=normal echo=on end +! else +! set message=off echo=off end +! end if + else + print threshold=0.3 noe + evaluate ($rms_noe=$result) + evaluate ($violations_noe=$violations) + if ($Data.noecv eq true) then + evaluate ($rms_test_noe=$test_rms) + evaluate ($violations_test_noe=$test_violations) + else + evaluate ($rms_test_noe=0.0) + evaluate ($violations_test_noe=0) + end if + end if + + if ($Data.dnarest eq true) then + @@$dna_rest_file +! @RUN:data/sequence/dna-rna_restraints.def + end if + + energy end + evaluate ($etot = $ener - $noe) + evaluate ($noe = $eair) + evaluate ($etot = $etot + $noe) + + ! get the local cross-correlation for EM-data + if ($data.flags.em = true) then +! @RUN:em_calc_lcc.cns(toppar=$toppar; data=$data; saprotocol=$saprotocol; lcc=$lcc;) + @RUN:em_calc_lcc.cns + flags exclude xref end + end if + + + evaluate ($Data.flags.dihed = false) + if ($nlcount = 1) then + evaluate ($filename="NEWIT:" + $Filenames.fileroot + "_" + encode($count) + ".pdb0") + else + evaluate ($num = $count + $iterations.structures) + evaluate ($filename="NEWIT:" + $Filenames.fileroot + "_" + encode($num) + ".pdb0") + end if + inline @RUN:print_coorheader.cns + + if ($reorient = true) then + coor sele= (not name H* and not resn ANI and not resn XAN and not resn DAN) orient end + end if + + if ($data.waterdock eq true) then +! write coordinates sele=(not (resn WAT or resn HOH or resn TIP*)) output=$filename end + write coordinates sele=(not (resn WAT or resn HOH or resn TIP*)) output=$output_pdb_filename end + inline @RUN:waterdock_out1.cns + else +! write coordinates output=$filename end + write coordinates output=$output_pdb_filename end + end if + + coor swap end + +end loop rotloop2 + +set message=normal echo=on end + + display OUTPUT: $output_pdb_filename + +stop \ No newline at end of file diff --git a/src/haddock/modules/flexref/cns/flexref.toml b/src/haddock/modules/flexref/cns/flexref.toml new file mode 100644 index 000000000..e9c78bdca --- /dev/null +++ b/src/haddock/modules/flexref/cns/flexref.toml @@ -0,0 +1,1875 @@ +[params] +log_level = "verbose" +prot_segid_mol1 = "A" +prot_segid_mol2 = "B" +fix_origin_mol1 = false +fix_origin_mol2 = false +unambig_fname = "" +amb_cool1 = 10 +amb_cool2 = 50 +amb_cool3 = 50 +amb_firstit = 0 +amb_hot = 10 +ambi_10 = false +ambi_11 = false +ambi_12 = false +ambi_13 = false +ambi_14 = false +ambi_15 = false +ambi_16 = false +ambi_17 = false +ambi_18 = false +ambi_19 = false +ambi_1 = false +ambi_20 = false +ambi_2 = false +ambi_3 = false +ambi_4 = false +ambi_5 = false +ambi_6 = false +ambi_7 = false +ambi_8 = false +ambi_9 = false +amb_lastit = 2 +anastruc_1 = 200 +autohis = true +c2sym_end1_1 = "" +c2sym_end1_10 = "" +c2sym_end1_2 = "" +c2sym_end1_3 = "" +c2sym_end1_4 = "" +c2sym_end1_5 = "" +c2sym_end1_6 = "" +c2sym_end1_7 = "" +c2sym_end1_8 = "" +c2sym_end1_9 = "" +c2sym_end2_1 = "" +c2sym_end2_10 = "" +c2sym_end2_2 = "" +c2sym_end2_3 = "" +c2sym_end2_4 = "" +c2sym_end2_5 = "" +c2sym_end2_6 = "" +c2sym_end2_7 = "" +c2sym_end2_8 = "" +c2sym_end2_9 = "" +c2sym_seg1_1 = "" +c2sym_seg1_10 = "" +c2sym_seg1_2 = "" +c2sym_seg1_3 = "" +c2sym_seg1_4 = "" +c2sym_seg1_5 = "" +c2sym_seg1_6 = "" +c2sym_seg1_7 = "" +c2sym_seg1_8 = "" +c2sym_seg1_9 = "" +c2sym_seg2_1 = "" +c2sym_seg2_10 = "" +c2sym_seg2_2 = "" +c2sym_seg2_3 = "" +c2sym_seg2_4 = "" +c2sym_seg2_5 = "" +c2sym_seg2_6 = "" +c2sym_seg2_7 = "" +c2sym_seg2_8 = "" +c2sym_seg2_9 = "" +c2sym_sta1_1 = "" +c2sym_sta1_10 = "" +c2sym_sta1_2 = "" +c2sym_sta1_3 = "" +c2sym_sta1_4 = "" +c2sym_sta1_5 = "" +c2sym_sta1_6 = "" +c2sym_sta1_7 = "" +c2sym_sta1_8 = "" +c2sym_sta1_9 = "" +c2sym_sta2_1 = "" +c2sym_sta2_10 = "" +c2sym_sta2_2 = "" +c2sym_sta2_3 = "" +c2sym_sta2_4 = "" +c2sym_sta2_5 = "" +c2sym_sta2_6 = "" +c2sym_sta2_7 = "" +c2sym_sta2_8 = "" +c2sym_sta2_9 = "" +c3sym_end1_1 = "" +c3sym_end1_2 = "" +c3sym_end2_1 = "" +c3sym_end2_2 = "" +c3sym_end3_1 = "" +c3sym_end3_2 = "" +c3sym_seg1_1 = "" +c3sym_seg1_2 = "" +c3sym_seg2_1 = "" +c3sym_seg2_2 = "" +c3sym_seg3_1 = "" +c3sym_seg3_2 = "" +c3sym_sta1_1 = "" +c3sym_sta1_2 = "" +c3sym_sta2_1 = "" +c3sym_sta2_2 = "" +c3sym_sta3_1 = "" +c3sym_sta3_2 = "" +c4sym_end1_1 = "" +c4sym_end1_2 = "" +c4sym_end2_1 = "" +c4sym_end2_2 = "" +c4sym_end3_1 = "" +c4sym_end3_2 = "" +c4sym_end4_1 = "" +c4sym_end4_2 = "" +c4sym_seg1_1 = "" +c4sym_seg1_2 = "" +c4sym_seg2_1 = "" +c4sym_seg2_2 = "" +c4sym_seg3_1 = "" +c4sym_seg3_2 = "" +c4sym_seg4_1 = "" +c4sym_seg4_2 = "" +c4sym_sta1_1 = "" +c4sym_sta1_2 = "" +c4sym_sta2_1 = "" +c4sym_sta2_2 = "" +c4sym_sta3_1 = "" +c4sym_sta3_2 = "" +c4sym_sta4_1 = "" +c4sym_sta4_2 = "" +c5sym_end1_1 = "" +c5sym_end1_2 = "" +c5sym_end2_1 = "" +c5sym_end2_2 = "" +c5sym_end3_1 = "" +c5sym_end3_2 = "" +c5sym_end4_1 = "" +c5sym_end4_2 = "" +c5sym_end5_1 = "" +c5sym_end5_2 = "" +c5sym_seg1_1 = "" +c5sym_seg1_2 = "" +c5sym_seg2_1 = "" +c5sym_seg2_2 = "" +c5sym_seg3_1 = "" +c5sym_seg3_2 = "" +c5sym_seg4_1 = "" +c5sym_seg4_2 = "" +c5sym_seg5_1 = "" +c5sym_seg5_2 = "" +c5sym_sta1_1 = "" +c5sym_sta1_2 = "" +c5sym_sta2_1 = "" +c5sym_sta2_2 = "" +c5sym_sta3_1 = "" +c5sym_sta3_2 = "" +c5sym_sta4_1 = "" +c5sym_sta4_2 = "" +c5sym_sta5_1 = "" +c5sym_sta5_2 = "" +c6sym_end1_1 = "" +c6sym_end2_1 = "" +c6sym_end3_1 = "" +c6sym_end4_1 = "" +c6sym_end5_1 = "" +c6sym_end6_1 = "" +c6sym_seg1_1 = "" +c6sym_seg2_1 = "" +c6sym_seg3_1 = "" +c6sym_seg4_1 = "" +c6sym_seg5_1 = "" +c6sym_seg6_1 = "" +c6sym_sta1_1 = "" +c6sym_sta2_1 = "" +c6sym_sta3_1 = "" +c6sym_sta4_1 = "" +c6sym_sta5_1 = "" +c6sym_sta6_1 = "" +centroid_kscale = 50.0 +centroid_rest = false +cleanup = true +clust_cutoff = 0.60 +clust_meth = "FCC" +clust_size = 4 +cmrest = false +cmtight = false +cns_exe_9 = "" +cool1_steps = 500 +cool2_steps = 1000 +cool3_steps = 1000 +crossdock = true +dan_anis_1 = 1.557 +dan_anis_2 = -1.35 +dan_anis_3 = -1.35 +dan_anis_4 = -1.35 +dan_anis_5 = -1.35 +dan_choice_1 = "DANI" +dan_choice_2 = "NO" +dan_choice_3 = "NO" +dan_choice_4 = "NO" +dan_choice_5 = "NO" +dan_cool1_1 = 5 +dan_cool1_2 = 5 +dan_cool1_3 = 5 +dan_cool1_4 = 5 +dan_cool1_5 = 5 +dan_cool2_1 = 10 +dan_cool2_2 = 10 +dan_cool2_3 = 10 +dan_cool2_4 = 10 +dan_cool2_5 = 10 +dan_cool3_1 = 10 +dan_cool3_2 = 10 +dan_cool3_3 = 10 +dan_cool3_4 = 10 +dan_cool3_5 = 10 +dan_firstIt_1 = 0 +dan_firstIt_2 = 0 +dan_firstIt_3 = 1 +dan_firstIt_4 = 0 +dan_firstIt_5 = 0 +dan_hot_1 = 1 +dan_hot_2 = 1 +dan_hot_3 = 1 +dan_hot_4 = 1 +dan_hot_5 = 1 +dan_lastIt_1 = 2 +dan_lastIt_2 = 1 +dan_lastIt_3 = 1 +dan_lastIt_4 = 2 +dan_lastIt_5 = 2 +dan_r_1 = 0.455 +dan_r_2 = 0.308 +dan_r_3 = 0.308 +dan_r_4 = 0.308 +dan_r_5 = 0.308 +dan_tc_1 = 9.771 +dan_tc_2 = 9.84 +dan_tc_3 = 9.84 +dan_tc_4 = 9.84 +dan_tc_5 = 9.84 +dan_wh_1 = 599.91 +dan_wh_2 = 599.91 +dan_wh_3 = 599.91 +dan_wh_4 = 599.91 +dan_wh_5 = 599.91 +dan_wn_1 = 60.82 +dan_wn_2 = 60.82 +dan_wn_3 = 60.82 +dan_wn_4 = 60.82 +dan_wn_5 = 60.82 +db_method = "kytedoolittle" +dielec_0 = "rdie" +dielec_1 = "rdie" +dihedrals_cool1 = 5 +dihedrals_cool2 = 50 +dihedrals_cool3 = 200 +dihedrals_hot = 5 +dihedrals_on = false +dist_hb = 2.5 +dist_nb = 3.9 +dnap_water_tokeep = 0.75 +dnarest_on = false +elecflag_0 = true +elecflag_1 = true +em_it0 = true +em_it1 = true +em_itw = true +em_kscale = 15000 +em_resolution = 10.0 +em_rest = false +emstepstrans = 1000 +end_fle_10_1 = "" +end_fle_10_2 = "" +end_fle_10_3 = "" +end_fle_10_4 = "" +end_fle_10_5 = "" +end_fle_1_1 = "" +end_fle_11_1 = "" +end_fle_11_2 = "" +end_fle_11_3 = "" +end_fle_11_4 = "" +end_fle_11_5 = "" +end_fle_1_2 = "" +end_fle_12_1 = "" +end_fle_12_2 = "" +end_fle_12_3 = "" +end_fle_12_4 = "" +end_fle_12_5 = "" +end_fle_1_3 = "" +end_fle_13_1 = "" +end_fle_13_2 = "" +end_fle_13_3 = "" +end_fle_13_4 = "" +end_fle_13_5 = "" +end_fle_1_4 = "" +end_fle_14_1 = "" +end_fle_14_2 = "" +end_fle_14_3 = "" +end_fle_14_4 = "" +end_fle_14_5 = "" +end_fle_1_5 = "" +end_fle_15_1 = "" +end_fle_15_2 = "" +end_fle_15_3 = "" +end_fle_15_4 = "" +end_fle_15_5 = "" +end_fle_16_1 = "" +end_fle_16_2 = "" +end_fle_16_3 = "" +end_fle_16_4 = "" +end_fle_16_5 = "" +end_fle_17_1 = "" +end_fle_17_2 = "" +end_fle_17_3 = "" +end_fle_17_4 = "" +end_fle_17_5 = "" +end_fle_18_1 = "" +end_fle_18_2 = "" +end_fle_18_3 = "" +end_fle_18_4 = "" +end_fle_18_5 = "" +end_fle_19_1 = "" +end_fle_19_2 = "" +end_fle_19_3 = "" +end_fle_19_4 = "" +end_fle_19_5 = "" +end_fle_20_1 = "" +end_fle_20_2 = "" +end_fle_20_3 = "" +end_fle_20_4 = "" +end_fle_20_5 = "" +end_fle_2_1 = "" +end_fle_2_2 = "" +end_fle_2_3 = "" +end_fle_2_4 = "" +end_fle_2_5 = "" +end_fle_3_1 = "" +end_fle_3_2 = "" +end_fle_3_3 = "" +end_fle_3_4 = "" +end_fle_3_5 = "" +end_fle_4_1 = "" +end_fle_4_2 = "" +end_fle_4_3 = "" +end_fle_4_4 = "" +end_fle_4_5 = "" +end_fle_5_1 = "" +end_fle_5_2 = "" +end_fle_5_3 = "" +end_fle_5_4 = "" +end_fle_5_5 = "" +end_fle_6_1 = "" +end_fle_6_2 = "" +end_fle_6_3 = "" +end_fle_6_4 = "" +end_fle_6_5 = "" +end_fle_7_1 = "" +end_fle_7_2 = "" +end_fle_7_3 = "" +end_fle_7_4 = "" +end_fle_7_5 = "" +end_fle_8_1 = "" +end_fle_8_2 = "" +end_fle_8_3 = "" +end_fle_8_4 = "" +end_fle_8_5 = "" +end_fle_9_1 = "" +end_fle_9_2 = "" +end_fle_9_3 = "" +end_fle_9_4 = "" +end_fle_9_5 = "" +end_seg_1 = "" +end_seg_10 = "" +end_seg_10_1 = "" +end_seg_10_10 = "" +end_seg_10_2 = "" +end_seg_10_3 = "" +end_seg_10_4 = "" +end_seg_10_5 = "" +end_seg_10_6 = "" +end_seg_10_7 = "" +end_seg_10_8 = "" +end_seg_10_9 = "" +end_seg_1_1 = "" +end_seg_1_10 = "" +end_seg_11_1 = "" +end_seg_11_10 = "" +end_seg_11_2 = "" +end_seg_11_3 = "" +end_seg_11_4 = "" +end_seg_11_5 = "" +end_seg_11_6 = "" +end_seg_11_7 = "" +end_seg_11_8 = "" +end_seg_11_9 = "" +end_seg_1_2 = "" +end_seg_12_1 = "" +end_seg_12_10 = "" +end_seg_12_2 = "" +end_seg_12_3 = "" +end_seg_12_4 = "" +end_seg_12_5 = "" +end_seg_12_6 = "" +end_seg_12_7 = "" +end_seg_12_8 = "" +end_seg_12_9 = "" +end_seg_1_3 = "" +end_seg_13_1 = "" +end_seg_13_10 = "" +end_seg_13_2 = "" +end_seg_13_3 = "" +end_seg_13_4 = "" +end_seg_13_5 = "" +end_seg_13_6 = "" +end_seg_13_7 = "" +end_seg_13_8 = "" +end_seg_13_9 = "" +end_seg_1_4 = "" +end_seg_14_1 = "" +end_seg_14_10 = "" +end_seg_14_2 = "" +end_seg_14_3 = "" +end_seg_14_4 = "" +end_seg_14_5 = "" +end_seg_14_6 = "" +end_seg_14_7 = "" +end_seg_14_8 = "" +end_seg_14_9 = "" +end_seg_1_5 = "" +end_seg_15_1 = "" +end_seg_15_10 = "" +end_seg_15_2 = "" +end_seg_15_3 = "" +end_seg_15_4 = "" +end_seg_15_5 = "" +end_seg_15_6 = "" +end_seg_15_7 = "" +end_seg_15_8 = "" +end_seg_15_9 = "" +end_seg_1_6 = "" +end_seg_16_1 = "" +end_seg_16_10 = "" +end_seg_16_2 = "" +end_seg_16_3 = "" +end_seg_16_4 = "" +end_seg_16_5 = "" +end_seg_16_6 = "" +end_seg_16_7 = "" +end_seg_16_8 = "" +end_seg_16_9 = "" +end_seg_1_7 = "" +end_seg_17_1 = "" +end_seg_17_10 = "" +end_seg_17_2 = "" +end_seg_17_3 = "" +end_seg_17_4 = "" +end_seg_17_5 = "" +end_seg_17_6 = "" +end_seg_17_7 = "" +end_seg_17_8 = "" +end_seg_17_9 = "" +end_seg_1_8 = "" +end_seg_18_1 = "" +end_seg_18_10 = "" +end_seg_18_2 = "" +end_seg_18_3 = "" +end_seg_18_4 = "" +end_seg_18_5 = "" +end_seg_18_6 = "" +end_seg_18_7 = "" +end_seg_18_8 = "" +end_seg_18_9 = "" +end_seg_1_9 = "" +end_seg_19_1 = "" +end_seg_19_10 = "" +end_seg_19_2 = "" +end_seg_19_3 = "" +end_seg_19_4 = "" +end_seg_19_5 = "" +end_seg_19_6 = "" +end_seg_19_7 = "" +end_seg_19_8 = "" +end_seg_19_9 = "" +end_seg_2 = "" +end_seg_20_1 = "" +end_seg_20_10 = "" +end_seg_20_2 = "" +end_seg_20_3 = "" +end_seg_20_4 = "" +end_seg_20_5 = "" +end_seg_20_6 = "" +end_seg_20_7 = "" +end_seg_20_8 = "" +end_seg_20_9 = "" +end_seg_2_1 = "" +end_seg_2_10 = "" +end_seg_2_2 = "" +end_seg_2_3 = "" +end_seg_2_4 = "" +end_seg_2_5 = "" +end_seg_2_6 = "" +end_seg_2_7 = "" +end_seg_2_8 = "" +end_seg_2_9 = "" +end_seg_3 = "" +end_seg_3_1 = "" +end_seg_3_10 = "" +end_seg_3_2 = "" +end_seg_3_3 = "" +end_seg_3_4 = "" +end_seg_3_5 = "" +end_seg_3_6 = "" +end_seg_3_7 = "" +end_seg_3_8 = "" +end_seg_3_9 = "" +end_seg_4 = "" +end_seg_4_1 = "" +end_seg_4_10 = "" +end_seg_4_2 = "" +end_seg_4_3 = "" +end_seg_4_4 = "" +end_seg_4_5 = "" +end_seg_4_6 = "" +end_seg_4_7 = "" +end_seg_4_8 = "" +end_seg_4_9 = "" +end_seg_5 = "" +end_seg_5_1 = "" +end_seg_5_10 = "" +end_seg_5_2 = "" +end_seg_5_3 = "" +end_seg_5_4 = "" +end_seg_5_5 = "" +end_seg_5_6 = "" +end_seg_5_7 = "" +end_seg_5_8 = "" +end_seg_5_9 = "" +end_seg_6 = "" +end_seg_7 = "" +end_seg_7_1 = "" +end_seg_7_10 = "" +end_seg_7_2 = "" +end_seg_7_3 = "" +end_seg_7_4 = "" +end_seg_7_5 = "" +end_seg_7_6 = "" +end_seg_7_7 = "" +end_seg_7_8 = "" +end_seg_7_9 = "" +end_seg_8 = "" +end_seg_8_1 = "" +end_seg_8_10 = "" +end_seg_8_2 = "" +end_seg_8_3 = "" +end_seg_8_4 = "" +end_seg_8_5 = "" +end_seg_8_6 = "" +end_seg_8_7 = "" +end_seg_8_8 = "" +end_seg_8_9 = "" +end_seg_9 = "" +end_seg_9_1 = "" +end_seg_9_10 = "" +end_seg_9_2 = "" +end_seg_9_3 = "" +end_seg_9_4 = "" +end_seg_9_5 = "" +end_seg_9_6 = "" +end_seg_9_7 = "" +end_seg_9_8 = "" +end_seg_9_9 = "" +epsilon_0 = 10.0 +epsilon_1 = 1.0 +error_dih = 10 +expand = false +expansion = 0.2 +fcc_ignc = false +fin_bor_cool1_1 = 40.0 +fin_bor_cool1_2 = 40.0 +fin_bor_cool1_3 = 40.0 +fin_bor_cool1_4 = 40.0 +fin_bor_cool1_5 = 40.0 +fin_bor_cool2_1 = 40.0 +fin_bor_cool2_2 = 40.0 +fin_bor_cool2_3 = 40.0 +fin_bor_cool2_4 = 40.0 +fin_bor_cool2_5 = 40.0 +fin_bor_cool3_1 = 40.0 +fin_bor_cool3_2 = 40.0 +fin_bor_cool3_3 = 40.0 +fin_bor_cool3_4 = 40.0 +fin_bor_cool3_5 = 40.0 +fin_bor_hot_1 = 10.0 +fin_bor_hot_2 = 10.0 +fin_bor_hot_3 = 10.0 +fin_bor_hot_4 = 10.0 +fin_bor_hot_5 = 10.0 +fin_cen_cool1_1 = 10.0 +fin_cen_cool1_2 = 10.0 +fin_cen_cool1_3 = 10.0 +fin_cen_cool1_4 = 10.0 +fin_cen_cool1_5 = 10.0 +fin_cen_cool2_1 = 10.0 +fin_cen_cool2_2 = 10.0 +fin_cen_cool2_3 = 10.0 +fin_cen_cool2_4 = 10.0 +fin_cen_cool2_5 = 10.0 +fin_cen_cool3_1 = 10.0 +fin_cen_cool3_2 = 10.0 +fin_cen_cool3_3 = 10.0 +fin_cen_cool3_4 = 10.0 +fin_cen_cool3_5 = 10.0 +fin_cen_hot_1 = 2.5 +fin_cen_hot_2 = 2.5 +fin_cen_hot_3 = 2.5 +fin_cen_hot_4 = 2.5 +fin_cen_hot_5 = 2.5 +fin_cool2 = 1.0 +fin_cool3 = 1.0 +fin_rigid = 0.001 +firstwater = "yes" +hbond_cool1 = 10 +hbond_cool2 = 50 +hbond_cool3 = 50 +hbond_firstit = 1 +hbond_hot = 10 +hbond_lastit = 2 +hbonds_on = false +ini_bor_cool1_1 = 10.0 +ini_bor_cool1_2 = 10.0 +ini_bor_cool1_3 = 10.0 +ini_bor_cool1_4 = 10.0 +ini_bor_cool1_5 = 10.0 +ini_bor_cool2_1 = 40.0 +ini_bor_cool2_2 = 40.0 +ini_bor_cool2_3 = 40.0 +ini_bor_cool2_4 = 40.0 +ini_bor_cool2_5 = 40.0 +ini_bor_cool3_1 = 40.0 +ini_bor_cool3_2 = 40.0 +ini_bor_cool3_3 = 40.0 +ini_bor_cool3_4 = 40.0 +ini_bor_cool3_5 = 40.0 +ini_bor_hot_1 = 1.0 +ini_bor_hot_2 = 1.0 +ini_bor_hot_3 = 1.0 +ini_bor_hot_4 = 1.0 +ini_bor_hot_5 = 1.0 +ini_cen_cool1_1 = 2.5 +ini_cen_cool1_2 = 2.5 +ini_cen_cool1_3 = 2.5 +ini_cen_cool1_4 = 2.5 +ini_cen_cool1_5 = 2.5 +ini_cen_cool2_1 = 10.0 +ini_cen_cool2_2 = 10.0 +ini_cen_cool2_3 = 10.0 +ini_cen_cool2_4 = 10.0 +ini_cen_cool2_5 = 10.0 +ini_cen_cool3_1 = 10.0 +ini_cen_cool3_2 = 10.0 +ini_cen_cool3_3 = 10.0 +ini_cen_cool3_4 = 10.0 +ini_cen_cool3_5 = 10.0 +ini_cen_hot_1 = 0.25 +ini_cen_hot_2 = 0.25 +ini_cen_hot_3 = 0.25 +ini_cen_hot_4 = 0.25 +ini_cen_hot_5 = 0.25 +iniseed = 42 +init_cool2 = 0.001 +init_cool3 = 0.05 +initiosteps = 500 +init_rigid = 0.001 +int_10_10 = 1.0 +int_10_11 = 1.0 +int_10_12 = 1.0 +int_10_13 = 1.0 +int_10_14 = 1.0 +int_10_15 = 1.0 +int_10_16 = 1.0 +int_10_17 = 1.0 +int_10_18 = 1.0 +int_10_19 = 1.0 +int_10_1 = "N.A." +int_10_20 = 1.0 +int_10_2 = "N.A." +int_10_3 = "N.A." +int_10_4 = "N.A." +int_10_5 = "N.A." +int_10_6 = "N.A." +int_10_7 = "N.A." +int_10_8 = "N.A." +int_10_9 = "N.A." +int_1_10 = 1.0 +int_1_1 = 1.0 +int_11_10 = "N.A." +int_1_11 = 1.0 +int_11_11 = 1.0 +int_11_12 = 1.0 +int_11_13 = 1.0 +int_11_14 = 1.0 +int_11_15 = 1.0 +int_11_16 = 1.0 +int_11_17 = 1.0 +int_11_18 = 1.0 +int_11_19 = 1.0 +int_11_1 = "N.A." +int_11_20 = 1.0 +int_1_12 = 1.0 +int_11_2 = "N.A." +int_1_13 = 1.0 +int_11_3 = "N.A." +int_1_14 = 1.0 +int_11_4 = "N.A." +int_1_15 = 1.0 +int_11_5 = "N.A." +int_1_16 = 1.0 +int_11_6 = "N.A." +int_1_17 = 1.0 +int_11_7 = "N.A." +int_1_18 = 1.0 +int_11_8 = "N.A." +int_1_19 = 1.0 +int_11_9 = "N.A." +int_1_20 = 1.0 +int_1_2 = 1.0 +int_12_10 = "N.A." +int_12_11 = "N.A." +int_12_12 = 1.0 +int_12_13 = 1.0 +int_12_14 = 1.0 +int_12_15 = 1.0 +int_12_16 = 1.0 +int_12_17 = 1.0 +int_12_18 = 1.0 +int_12_19 = 1.0 +int_12_1 = "N.A." +int_12_20 = 1.0 +int_12_2 = "N.A." +int_12_3 = "N.A." +int_12_4 = "N.A." +int_12_5 = "N.A." +int_12_6 = "N.A." +int_12_7 = "N.A." +int_12_8 = "N.A." +int_12_9 = "N.A." +int_1_3 = 1.0 +int_13_10 = "N.A." +int_13_11 = "N.A." +int_13_12 = "N.A." +int_13_13 = 1.0 +int_13_14 = 1.0 +int_13_15 = 1.0 +int_13_16 = 1.0 +int_13_17 = 1.0 +int_13_18 = 1.0 +int_13_19 = 1.0 +int_13_1 = "N.A." +int_13_20 = 1.0 +int_13_2 = "N.A." +int_13_3 = "N.A." +int_13_4 = "N.A." +int_13_5 = "N.A." +int_13_6 = "N.A." +int_13_7 = "N.A." +int_13_8 = "N.A." +int_13_9 = "N.A." +int_1_4 = 1.0 +int_14_10 = "N.A." +int_14_11 = "N.A." +int_14_12 = "N.A." +int_14_13 = "N.A." +int_14_14 = 1.0 +int_14_15 = 1.0 +int_14_16 = 1.0 +int_14_17 = 1.0 +int_14_18 = 1.0 +int_14_19 = 1.0 +int_14_1 = "N.A." +int_14_20 = 1.0 +int_14_2 = "N.A." +int_14_3 = "N.A." +int_14_4 = "N.A." +int_14_5 = "N.A." +int_14_6 = "N.A." +int_14_7 = "N.A." +int_14_8 = "N.A." +int_14_9 = "N.A." +int_1_5 = 1.0 +int_15_10 = "N.A." +int_15_11 = "N.A." +int_15_12 = "N.A." +int_15_13 = "N.A." +int_15_14 = "N.A." +int_15_15 = 1.0 +int_15_16 = 1.0 +int_15_17 = 1.0 +int_15_18 = 1.0 +int_15_19 = 1.0 +int_15_20 = 1.0 +int_15_2 = "N.A." +int_15_3 = "N.A." +int_15_4 = "N.A." +int_15_5 = "N.A." +int_15_6 = "N.A." +int_15_7 = "N.A." +int_15_8 = "N.A." +int_15_9 = "N.A." +int_1_6 = 1.0 +int_16_10 = "N.A." +int_16_11 = "N.A." +int_16_12 = "N.A." +int_16_13 = "N.A." +int_16_14 = "N.A." +int_16_15 = "N.A." +int_16_16 = 1.0 +int_16_17 = 1.0 +int_16_18 = 1.0 +int_16_19 = 1.0 +int_16_1 = "N.A." +int_16_20 = 1.0 +int_16_2 = "N.A." +int_16_3 = "N.A." +int_16_4 = "N.A." +int_16_5 = "N.A." +int_16_6 = "N.A." +int_16_7 = "N.A." +int_16_8 = "N.A." +int_16_9 = "N.A." +int_1_7 = 1.0 +int_17_10 = "N.A." +int_17_11 = "N.A." +int_17_12 = "N.A." +int_17_13 = "N.A." +int_17_14 = "N.A." +int_17_15 = "N.A." +int_17_16 = "N.A." +int_17_17 = 1.0 +int_17_18 = 1.0 +int_17_19 = 1.0 +int_17_1 = "N.A." +int_17_20 = 1.0 +int_17_2 = "N.A." +int_17_3 = "N.A." +int_17_4 = "N.A." +int_17_5 = "N.A." +int_17_6 = "N.A." +int_17_7 = "N.A." +int_17_8 = "N.A." +int_17_9 = "N.A." +int_1_8 = 1.0 +int_18_10 = "N.A." +int_18_11 = "N.A." +int_18_12 = "N.A." +int_18_13 = "N.A." +int_18_14 = "N.A." +int_18_15 = "N.A." +int_18_16 = "N.A." +int_18_17 = "N.A." +int_18_18 = 1.0 +int_18_19 = 1.0 +int_18_1 = "N.A." +int_18_20 = 1.0 +int_18_2 = "N.A." +int_18_3 = "N.A." +int_18_4 = "N.A." +int_18_5 = "N.A." +int_18_6 = "N.A." +int_18_7 = "N.A." +int_18_8 = "N.A." +int_18_9 = "N.A." +int_1_9 = 1.0 +int_19_10 = "N.A." +int_19_11 = "N.A." +int_19_12 = "N.A." +int_19_13 = "N.A." +int_19_14 = "N.A." +int_19_15 = "N.A." +int_19_16 = "N.A." +int_19_17 = "N.A." +int_19_18 = "N.A." +int_19_19 = 1.0 +int_19_1 = "N.A." +int_19_20 = 1.0 +int_19_2 = "N.A." +int_19_3 = "N.A." +int_19_4 = "N.A." +int_19_5 = "N.A." +int_19_6 = "N.A." +int_19_7 = "N.A." +int_19_8 = "N.A." +int_19_9 = "N.A." +int_20_10 = "N.A." +int_20_11 = "N.A." +int_20_12 = "N.A." +int_20_13 = "N.A." +int_20_14 = "N.A." +int_20_15 = "N.A." +int_20_16 = "N.A." +int_20_17 = "N.A." +int_20_18 = "N.A." +int_20_19 = "N.A." +int_20_1 = "N.A." +int_20_20 = 1.0 +int_20_2 = "N.A." +int_20_3 = "N.A." +int_20_4 = "N.A." +int_20_5 = "N.A." +int_20_6 = "N.A." +int_20_7 = "N.A." +int_20_8 = "N.A." +int_20_9 = "N.A." +int_2_10 = 1.0 +int_2_11 = 1.0 +int_2_12 = 1.0 +int_2_13 = 1.0 +int_2_14 = 1.0 +int_2_15 = 1.0 +int_2_16 = 1.0 +int_2_17 = 1.0 +int_2_18 = 1.0 +int_2_19 = 1.0 +int_2_1 = "N.A." +int_2_20 = 1.0 +int_2_2 = 1.0 +int_2_3 = 1.0 +int_2_4 = 1.0 +int_2_5 = 1.0 +int_2_6 = 1.0 +int_2_7 = 1.0 +int_2_8 = 1.0 +int_2_9 = 1.0 +int_3_10 = 1.0 +int_3_11 = 1.0 +int_3_12 = 1.0 +int_3_13 = 1.0 +int_3_14 = 1.0 +int_3_15 = 1.0 +int_3_16 = 1.0 +int_3_17 = 1.0 +int_3_18 = 1.0 +int_3_19 = 1.0 +int_3_1 = "N.A." +int_3_20 = 1.0 +int_3_2 = "N.A." +int_3_3 = 1.0 +int_3_4 = 1.0 +int_3_5 = 1.0 +int_3_6 = 1.0 +int_3_7 = 1.0 +int_3_8 = 1.0 +int_3_9 = 1.0 +int_4_10 = 1.0 +int_4_11 = 1.0 +int_4_12 = 1.0 +int_4_13 = 1.0 +int_4_14 = 1.0 +int_4_15 = 1.0 +int_4_16 = 1.0 +int_4_17 = 1.0 +int_4_18 = 1.0 +int_4_19 = 1.0 +int_4_1 = "N.A." +int_4_20 = 1.0 +int_4_2 = "N.A." +int_4_3 = "N.A." +int_4_4 = 1.0 +int_4_5 = 1.0 +int_4_6 = 1.0 +int_4_7 = 1.0 +int_4_8 = 1.0 +int_4_9 = 1.0 +int_5_10 = 1.0 +int_5_11 = 1.0 +int_5_12 = 1.0 +int_5_13 = 1.0 +int_5_14 = 1.0 +int_5_15 = 1.0 +int_5_16 = 1.0 +int_5_17 = 1.0 +int_5_18 = 1.0 +int_5_19 = 1.0 +int_5_1 = "N.A." +int_5_20 = 1.0 +int_5_2 = "N.A." +int_5_3 = "N.A." +int_5_4 = "N.A." +int_5_5 = 1.0 +int_5_6 = 1.0 +int_5_7 = 1.0 +int_5_8 = 1.0 +int_5_9 = 1.0 +int_6_10 = 1.0 +int_6_11 = 1.0 +int_6_12 = 1.0 +int_6_13 = 1.0 +int_6_14 = 1.0 +int_6_15 = 1.0 +int_6_16 = 1.0 +int_6_17 = 1.0 +int_6_18 = 1.0 +int_6_19 = 1.0 +int_6_1 = "N.A." +int_6_20 = 1.0 +int_6_2 = "N.A." +int_6_3 = "N.A." +int_6_4 = "N.A." +int_6_5 = "N.A." +int_6_6 = 1.0 +int_6_7 = 1.0 +int_6_8 = 1.0 +int_6_9 = 1.0 +int_7_10 = 1.0 +int_7_11 = 1.0 +int_7_12 = 1.0 +int_7_13 = 1.0 +int_7_14 = 1.0 +int_7_15 = 1.0 +int_7_16 = 1.0 +int_7_17 = 1.0 +int_7_18 = 1.0 +int_7_19 = 1.0 +int_7_1 = "N.A." +int_7_20 = 1.0 +int_7_2 = "N.A." +int_7_3 = "N.A." +int_7_4 = "N.A." +int_7_5 = "N.A." +int_7_6 = "N.A." +int_7_7 = 1.0 +int_7_8 = 1.0 +int_7_9 = 1.0 +int_8_10 = 1.0 +int_8_11 = 1.0 +int_8_12 = 1.0 +int_8_13 = 1.0 +int_8_14 = 1.0 +int_8_15 = 1.0 +int_8_16 = 1.0 +int_8_17 = 1.0 +int_8_18 = 1.0 +int_8_19 = 1.0 +int_8_1 = "N.A." +int_8_20 = 1.0 +int_8_2 = "N.A." +int_8_3 = "N.A." +int_8_4 = "N.A." +int_8_5 = "N.A." +int_8_6 = "N.A." +int_8_7 = "N.A." +int_8_8 = 1.0 +int_8_9 = 1.0 +int_9_10 = 1.0 +int_9_11 = 1.0 +int_9_12 = 1.0 +int_9_13 = 1.0 +int_9_14 = 1.0 +int_9_15 = 1.0 +int_9_16 = 1.0 +int_9_17 = 1.0 +int_9_18 = 1.0 +int_9_19 = 1.0 +int_9_1 = "N.A." +int_9_20 = 1.0 +int_9_2 = "N.A." +int_9_3 = "N.A." +int_9_4 = "N.A." +int_9_5 = "N.A." +int_9_6 = "N.A." +int_9_7 = "N.A." +int_9_8 = "N.A." +int_9_9 = 1.0 +inter_rigid = 1.0 +kcont = 1.0 +keepwater = false +kncs = 1.0 +krg_cool1 = 100.0 +krg_cool2 = 100.0 +krg_cool3 = 100.0 +krg_hot = 100.0 +ksurf = 1.0 +ksym = 10.0 +kzres = 10.0 +ncs_end1_1 = "" +ncs_end1_2 = "" +ncs_end1_3 = "" +ncs_end1_4 = "" +ncs_end1_5 = "" +ncs_end2_1 = "" +ncs_end2_2 = "" +ncs_end2_3 = "" +ncs_end2_4 = "" +ncs_end2_5 = "" +ncs_on = false +ncs_seg1_1 = "" +ncs_seg1_2 = "" +ncs_seg1_3 = "" +ncs_seg1_4 = "" +ncs_seg1_5 = "" +ncs_seg2_1 = "" +ncs_seg2_2 = "" +ncs_seg2_3 = "" +ncs_seg2_4 = "" +ncs_seg2_5 = "" +ncs_sta1_1 = "" +ncs_sta1_2 = "" +ncs_sta1_3 = "" +ncs_sta1_4 = "" +ncs_sta1_5 = "" +ncs_sta2_1 = "" +ncs_sta2_2 = "" +ncs_sta2_3 = "" +ncs_sta2_4 = "" +ncs_sta2_5 = "" +ncvpart = 2 +nfle_1 = 0 +nfle_10 = 0 +nfle_11 = 0 +nfle_12 = 0 +nfle_13 = 0 +nfle_14 = 0 +nfle_15 = 0 +nfle_16 = 0 +nfle_17 = 0 +nfle_18 = 0 +nfle_19 = 0 +nfle_2 = 0 +nfle_20 = 0 +nfle_3 = 0 +nfle_4 = 0 +nfle_5 = 0 +nfle_6 = 0 +nfle_7 = 0 +nfle_8 = 0 +nfle_9 = 0 +noecv = false +nseg_10 = -1 +nseg_1 = -1 +nseg_11 = -1 +nseg_12 = -1 +nseg_13 = -1 +nseg_14 = -1 +nseg_15 = -1 +nseg_16 = -1 +nseg_17 = -1 +nseg_18 = -1 +nseg_19 = -1 +nseg_20 = -1 +nseg_2 = -1 +nseg_3 = -1 +nseg_4 = -1 +nseg_5 = -1 +nseg_6 = -1 +nseg_7 = -1 +nseg_8 = -1 +nseg_9 = -1 +ntrials = 5 +numc2sym = 0 +numc3sym = 0 +numc4sym = 0 +numc5sym = 0 +numc6sym = 0 +numdani = 0 +numncs = 0 +numpcs = 0 +numrdc = 0 +nums3sym = 0 +numzres = 0 +nx = 32 +ny = 32 +nz = 32 +par_nonbonded = "OPLSX" +pcs_choice_10 = "NO" +pcs_choice_1 = "NO" +pcs_choice_2 = "NO" +pcs_choice_3 = "NO" +pcs_choice_4 = "NO" +pcs_choice_5 = "NO" +pcs_choice_6 = "NO" +pcs_choice_7 = "NO" +pcs_choice_8 = "NO" +pcs_choice_9 = "NO" +pcs_cool1_10 = 100.0 +pcs_cool1_1 = 100.0 +pcs_cool1_2 = 100.0 +pcs_cool1_3 = 100.0 +pcs_cool1_4 = 100.0 +pcs_cool1_5 = 100.0 +pcs_cool1_6 = 100.0 +pcs_cool1_7 = 100.0 +pcs_cool1_8 = 100.0 +pcs_cool1_9 = 100.0 +pcs_cool2_10 = 100.0 +pcs_cool2_1 = 100.0 +pcs_cool2_2 = 100.0 +pcs_cool2_3 = 100.0 +pcs_cool2_4 = 100.0 +pcs_cool2_5 = 100.0 +pcs_cool2_6 = 100.0 +pcs_cool2_7 = 100.0 +pcs_cool2_8 = 100.0 +pcs_cool2_9 = 100.0 +pcs_cool3_10 = 100.0 +pcs_cool3_1 = 100.0 +pcs_cool3_2 = 100.0 +pcs_cool3_3 = 100.0 +pcs_cool3_4 = 100.0 +pcs_cool3_5 = 100.0 +pcs_cool3_6 = 100.0 +pcs_cool3_7 = 100.0 +pcs_cool3_8 = 100.0 +pcs_cool3_9 = 100.0 +pcs_d_10 = 10000 +pcs_d_1 = 10000 +pcs_d_2 = 10000 +pcs_d_3 = 10000 +pcs_d_4 = 10000 +pcs_d_5 = 10000 +pcs_d_6 = 10000 +pcs_d_7 = 10000 +pcs_d_8 = 10000 +pcs_d_9 = 10000 +pcs_firstIt_1 = 0 +pcs_firstIt_10 = 0 +pcs_firstIt_2 = 0 +pcs_firstIt_3 = 0 +pcs_firstIt_4 = 0 +pcs_firstIt_5 = 0 +pcs_firstIt_6 = 0 +pcs_firstIt_7 = 0 +pcs_firstIt_8 = 0 +pcs_firstIt_9 = 0 +pcs_hot_10 = 100.0 +pcs_hot_1 = 100.0 +pcs_hot_2 = 100.0 +pcs_hot_3 = 100.0 +pcs_hot_4 = 100.0 +pcs_hot_5 = 100.0 +pcs_hot_6 = 100.0 +pcs_hot_7 = 100.0 +pcs_hot_8 = 100.0 +pcs_hot_9 = 100.0 +pcs_lastIt_10 = 2 +pcs_lastIt_1 = 2 +pcs_lastIt_2 = 2 +pcs_lastIt_3 = 2 +pcs_lastIt_4 = 2 +pcs_lastIt_5 = 2 +pcs_lastIt_6 = 2 +pcs_lastIt_7 = 2 +pcs_lastIt_8 = 2 +pcs_lastIt_9 = 2 +pcs_r_10 = 1000 +pcs_r_1 = 1000 +pcs_r_2 = 1000 +pcs_r_3 = 1000 +pcs_r_4 = 1000 +pcs_r_5 = 1000 +pcs_r_6 = 1000 +pcs_r_7 = 1000 +pcs_r_8 = 1000 +pcs_r_9 = 1000 +ranair = false +randangle = 6 +randorien = true +rdc_choice_1 = "NO" +rdc_choice_2 = "NO" +rdc_choice_3 = "NO" +rdc_choice_4 = "NO" +rdc_choice_5 = "NO" +rdc_cool1_1 = 0.02 +rdc_cool1_2 = 0.2 +rdc_cool1_3 = 0.2 +rdc_cool1_4 = 1.0 +rdc_cool1_5 = 1.0 +rdc_cool2_1 = 0.2 +rdc_cool2_2 = 1.0 +rdc_cool2_3 = 1.0 +rdc_cool2_4 = 1.0 +rdc_cool2_5 = 1.0 +rdc_cool3_1 = 0.2 +rdc_cool3_2 = 1.0 +rdc_cool3_3 = 1.0 +rdc_cool3_4 = 1.0 +rdc_cool3_5 = 1.0 +rdc_d_1 = -11.49 +rdc_d_2 = 8.0 +rdc_d_3 = 8.0 +rdc_d_4 = 8.0 +rdc_d_5 = 8.0 +rdc_firstIt_1 = 2 +rdc_firstIt_2 = 0 +rdc_firstIt_3 = 1 +rdc_firstIt_4 = 0 +rdc_firstIt_5 = 0 +rdc_hot_1 = 0.001 +rdc_hot_2 = 0.01 +rdc_hot_3 = 0.01 +rdc_hot_4 = 0.1 +rdc_hot_5 = 0.1 +rdc_lastIt_1 = 2 +rdc_lastIt_2 = 1 +rdc_lastIt_3 = 1 +rdc_lastIt_4 = 2 +rdc_lastIt_5 = 2 +rdc_r_1 = 0.057 +rdc_r_2 = 0.4 +rdc_r_3 = 0.4 +rdc_r_4 = 0.4 +rdc_r_5 = 0.4 +rebuildcplx = false +rgrest = false +rgsele = "all" +rgtarg = 17.78 +rigidmini = true +rigidtrans = true +rotate180_it1 = false +runana = "cluster" +s3sym_end1_1 = "" +s3sym_end1_2 = "" +s3sym_end1_3 = "" +s3sym_end1_4 = "" +s3sym_end2_1 = "" +s3sym_end2_2 = "" +s3sym_end2_3 = "" +s3sym_end2_4 = "" +s3sym_end3_1 = "" +s3sym_end3_2 = "" +s3sym_end3_3 = "" +s3sym_end3_4 = "" +s3sym_seg1_1 = "" +s3sym_seg1_2 = "" +s3sym_seg1_3 = "" +s3sym_seg1_4 = "" +s3sym_seg2_1 = "" +s3sym_seg2_2 = "" +s3sym_seg2_3 = "" +s3sym_seg2_4 = "" +s3sym_seg3_1 = "" +s3sym_seg3_2 = "" +s3sym_seg3_3 = "" +s3sym_seg3_4 = "" +s3sym_sta1_1 = "" +s3sym_sta1_2 = "" +s3sym_sta1_3 = "" +s3sym_sta1_4 = "" +s3sym_sta2_1 = "" +s3sym_sta2_2 = "" +s3sym_sta2_3 = "" +s3sym_sta2_4 = "" +s3sym_sta3_1 = "" +s3sym_sta3_2 = "" +s3sym_sta3_3 = "" +s3sym_sta3_4 = "" +skip_struc = 0 +solvate_method = "db" +solvent = "water" +solvshell = false +ssdihed = "none" +start_fle_10_1 = "" +start_fle_10_2 = "" +start_fle_10_3 = "" +start_fle_10_4 = "" +start_fle_10_5 = "" +start_fle_1_1 = "" +start_fle_11_1 = "" +start_fle_11_2 = "" +start_fle_11_3 = "" +start_fle_11_4 = "" +start_fle_11_5 = "" +start_fle_1_2 = "" +start_fle_12_1 = "" +start_fle_12_2 = "" +start_fle_12_3 = "" +start_fle_12_4 = "" +start_fle_12_5 = "" +start_fle_1_3 = "" +start_fle_13_1 = "" +start_fle_13_2 = "" +start_fle_13_3 = "" +start_fle_13_4 = "" +start_fle_13_5 = "" +start_fle_1_4 = "" +start_fle_14_1 = "" +start_fle_14_2 = "" +start_fle_14_3 = "" +start_fle_14_4 = "" +start_fle_14_5 = "" +start_fle_1_5 = "" +start_fle_15_1 = "" +start_fle_15_2 = "" +start_fle_15_3 = "" +start_fle_15_4 = "" +start_fle_15_5 = "" +start_fle_16_1 = "" +start_fle_16_2 = "" +start_fle_16_3 = "" +start_fle_16_4 = "" +start_fle_16_5 = "" +start_fle_17_1 = "" +start_fle_17_2 = "" +start_fle_17_3 = "" +start_fle_17_4 = "" +start_fle_17_5 = "" +start_fle_18_1 = "" +start_fle_18_2 = "" +start_fle_18_3 = "" +start_fle_18_4 = "" +start_fle_18_5 = "" +start_fle_19_1 = "" +start_fle_19_2 = "" +start_fle_19_3 = "" +start_fle_19_4 = "" +start_fle_19_5 = "" +start_fle_20_1 = "" +start_fle_20_2 = "" +start_fle_20_3 = "" +start_fle_20_4 = "" +start_fle_20_5 = "" +start_fle_2_1 = "" +start_fle_2_2 = "" +start_fle_2_3 = "" +start_fle_2_4 = "" +start_fle_2_5 = "" +start_fle_3_1 = "" +start_fle_3_2 = "" +start_fle_3_3 = "" +start_fle_3_4 = "" +start_fle_3_5 = "" +start_fle_4_1 = "" +start_fle_4_2 = "" +start_fle_4_3 = "" +start_fle_4_4 = "" +start_fle_4_5 = "" +start_fle_5_1 = "" +start_fle_5_2 = "" +start_fle_5_3 = "" +start_fle_5_4 = "" +start_fle_5_5 = "" +start_fle_6_1 = "" +start_fle_6_2 = "" +start_fle_6_3 = "" +start_fle_6_4 = "" +start_fle_6_5 = "" +start_fle_7_1 = "" +start_fle_7_2 = "" +start_fle_7_3 = "" +start_fle_7_4 = "" +start_fle_7_5 = "" +start_fle_8_1 = "" +start_fle_8_2 = "" +start_fle_8_3 = "" +start_fle_8_4 = "" +start_fle_8_5 = "" +start_fle_9_1 = "" +start_fle_9_2 = "" +start_fle_9_3 = "" +start_fle_9_4 = "" +start_fle_9_5 = "" +start_seg_1 = "" +start_seg_10 = "" +start_seg_10_1 = "" +start_seg_10_10 = "" +start_seg_10_2 = "" +start_seg_10_3 = "" +start_seg_10_4 = "" +start_seg_10_5 = "" +start_seg_10_6 = "" +start_seg_10_7 = "" +start_seg_10_8 = "" +start_seg_10_9 = "" +start_seg_1_1 = "" +start_seg_1_10 = "" +start_seg_11_1 = "" +start_seg_11_10 = "" +start_seg_11_2 = "" +start_seg_11_3 = "" +start_seg_11_4 = "" +start_seg_11_5 = "" +start_seg_11_6 = "" +start_seg_11_7 = "" +start_seg_11_8 = "" +start_seg_11_9 = "" +start_seg_1_2 = "" +start_seg_12_1 = "" +start_seg_12_10 = "" +start_seg_12_2 = "" +start_seg_12_3 = "" +start_seg_12_4 = "" +start_seg_12_5 = "" +start_seg_12_6 = "" +start_seg_12_7 = "" +start_seg_12_8 = "" +start_seg_12_9 = "" +start_seg_1_3 = "" +start_seg_13_1 = "" +start_seg_13_10 = "" +start_seg_13_2 = "" +start_seg_13_3 = "" +start_seg_13_4 = "" +start_seg_13_5 = "" +start_seg_13_6 = "" +start_seg_13_7 = "" +start_seg_13_8 = "" +start_seg_13_9 = "" +start_seg_1_4 = "" +start_seg_14_1 = "" +start_seg_14_10 = "" +start_seg_14_2 = "" +start_seg_14_3 = "" +start_seg_14_4 = "" +start_seg_14_5 = "" +start_seg_14_6 = "" +start_seg_14_7 = "" +start_seg_14_8 = "" +start_seg_14_9 = "" +start_seg_1_5 = "" +start_seg_15_1 = "" +start_seg_15_10 = "" +start_seg_15_2 = "" +start_seg_15_3 = "" +start_seg_15_4 = "" +start_seg_15_5 = "" +start_seg_15_6 = "" +start_seg_15_7 = "" +start_seg_15_8 = "" +start_seg_15_9 = "" +start_seg_1_6 = "" +start_seg_16_1 = "" +start_seg_16_10 = "" +start_seg_16_2 = "" +start_seg_16_3 = "" +start_seg_16_4 = "" +start_seg_16_5 = "" +start_seg_16_6 = "" +start_seg_16_7 = "" +start_seg_16_8 = "" +start_seg_16_9 = "" +start_seg_1_7 = "" +start_seg_17_1 = "" +start_seg_17_10 = "" +start_seg_17_2 = "" +start_seg_17_3 = "" +start_seg_17_4 = "" +start_seg_17_5 = "" +start_seg_17_6 = "" +start_seg_17_7 = "" +start_seg_17_8 = "" +start_seg_17_9 = "" +start_seg_1_8 = "" +start_seg_18_1 = "" +start_seg_18_10 = "" +start_seg_18_2 = "" +start_seg_18_3 = "" +start_seg_18_4 = "" +start_seg_18_5 = "" +start_seg_18_6 = "" +start_seg_18_7 = "" +start_seg_18_8 = "" +start_seg_18_9 = "" +start_seg_1_9 = "" +start_seg_19_1 = "" +start_seg_19_10 = "" +start_seg_19_2 = "" +start_seg_19_3 = "" +start_seg_19_4 = "" +start_seg_19_5 = "" +start_seg_19_6 = "" +start_seg_19_7 = "" +start_seg_19_8 = "" +start_seg_19_9 = "" +start_seg_2 = "" +start_seg_20_1 = "" +start_seg_20_10 = "" +start_seg_20_2 = "" +start_seg_20_3 = "" +start_seg_20_4 = "" +start_seg_20_5 = "" +start_seg_20_6 = "" +start_seg_20_7 = "" +start_seg_20_8 = "" +start_seg_20_9 = "" +start_seg_2_1 = "" +start_seg_2_10 = "" +start_seg_2_2 = "" +start_seg_2_3 = "" +start_seg_2_4 = "" +start_seg_2_5 = "" +start_seg_2_6 = "" +start_seg_2_7 = "" +start_seg_2_8 = "" +start_seg_2_9 = "" +start_seg_3 = "" +start_seg_3_1 = "" +start_seg_3_10 = "" +start_seg_3_2 = "" +start_seg_3_3 = "" +start_seg_3_4 = "" +start_seg_3_5 = "" +start_seg_3_6 = "" +start_seg_3_7 = "" +start_seg_3_8 = "" +start_seg_3_9 = "" +start_seg_4 = "" +start_seg_4_1 = "" +start_seg_4_10 = "" +start_seg_4_2 = "" +start_seg_4_3 = "" +start_seg_4_4 = "" +start_seg_4_5 = "" +start_seg_4_6 = "" +start_seg_4_7 = "" +start_seg_4_8 = "" +start_seg_4_9 = "" +start_seg_5 = "" +start_seg_5_1 = "" +start_seg_5_10 = "" +start_seg_5_2 = "" +start_seg_5_3 = "" +start_seg_5_4 = "" +start_seg_5_5 = "" +start_seg_5_6 = "" +start_seg_5_7 = "" +start_seg_5_8 = "" +start_seg_5_9 = "" +start_seg_6 = "" +start_seg_7 = "" +start_seg_7_1 = "" +start_seg_7_10 = "" +start_seg_7_2 = "" +start_seg_7_3 = "" +start_seg_7_4 = "" +start_seg_7_5 = "" +start_seg_7_6 = "" +start_seg_7_7 = "" +start_seg_7_8 = "" +start_seg_7_9 = "" +start_seg_8 = "" +start_seg_8_1 = "" +start_seg_8_10 = "" +start_seg_8_2 = "" +start_seg_8_3 = "" +start_seg_8_4 = "" +start_seg_8_5 = "" +start_seg_8_6 = "" +start_seg_8_7 = "" +start_seg_8_8 = "" +start_seg_8_9 = "" +start_seg_9 = "" +start_seg_9_1 = "" +start_seg_9_10 = "" +start_seg_9_2 = "" +start_seg_9_3 = "" +start_seg_9_4 = "" +start_seg_9_5 = "" +start_seg_9_6 = "" +start_seg_9_7 = "" +start_seg_9_8 = "" +start_seg_9_9 = "" +structures_0 = 1000 +structures_1 = 200 +surfrest = false +sym_on = false +tadfactor = 8 +tadfinal1_t = 500 +tadfinal2_t = 50 +tadfinal3_t = 50 +tadhigh_t = 2000 +tadinit1_t = 2000 +tadinit2_t = 1000 +tadinit3_t = 1000 +timestep = 0.002 +transwater = true +unamb_cool1 = 10 +unamb_cool2 = 50 +unamb_cool3 = 50 +unamb_firstit = 0 +unamb_hot = 10 +unamb_lastit = 2 +water_analysis = false +watercoolsteps = 500 +waterdock = false +waterensemble = 1 +waterheatsteps = 100 +water_randfrac = 0.0 +waterrefine = 200 +water_restraint_cutoff = 5.0 +water_restraint_initial = 5.0 +water_restraint_scale = 25.0 +watersteps = 1250 +water_surfcutoff = 8.0 +water_tokeep = 0.50 +w_bsa_0 = -0.01 +w_bsa_1 = -0.01 +w_bsa_2 = 0.0 +w_cdih_0 = 0.0 +w_cdih_1 = 0.0 +w_cdih_2 = 0.0 +w_dani_0 = 0.01 +w_dani_1 = 0.1 +w_dani_2 = 0.1 +w_deint_0 = 0.0 +w_deint_1 = 0.0 +w_deint_2 = 0.0 +w_desolv_0 = 1.0 +w_desolv_1 = 1.0 +w_desolv_2 = 1.0 +w_dist_0 = 0.01 +w_dist_1 = 0.1 +w_dist_2 = 0.1 +w_elec_0 = 1.0 +w_elec_1 = 1.0 +w_elec_2 = 0.2 +w_lcc_0 = -400.0 +w_lcc_1 = -10000.0 +w_lcc_2 = -10000.0 +w_rg_0 = 0.1 +w_rg_1 = 1.0 +w_rg_2 = 1.0 +w_sani_0 = 0.1 +w_sani_1 = 0.1 +w_sani_2 = 0.1 +w_sym_0 = 0.1 +w_sym_1 = 0.1 +w_sym_2 = 0.1 +w_vdw_0 = 0.01 +w_vdw_1 = 1.0 +w_vdw_2 = 1.0 +w_vean_0 = 0.1 +w_vean_1 = 0.1 +w_vean_2 = 0.1 +w_xpcs_0 = 0.1 +w_xpcs_1 = 0.1 +w_xpcs_2 = 0.1 +w_xrdc_0 = 0.1 +w_xrdc_1 = 0.1 +w_xrdc_2 = 0.1 +w_zres_0 = 0.1 +w_zres_1 = 0.1 +w_zres_2 = 0.1 +xcom_10 = 0.0 +xcom_11 = 0.0 +xcom_1 = 12.3 +xcom_12 = 0.0 +xcom_13 = 0.0 +xcom_14 = 0.0 +xcom_15 = 0.0 +xcom_16 = 0.0 +xcom_17 = 0.0 +xcom_18 = 0.0 +xcom_19 = 0.0 +xcom_20 = 0.0 +xcom_2 = 12.7 +xcom_3 = 0.0 +xcom_4 = 0.0 +xcom_5 = 0.0 +xcom_6 = 0.0 +xcom_7 = 0.0 +xcom_8 = 0.0 +xcom_9 = 0.0 +xlength = 80.0 +ycom_10 = 0.0 +ycom_1 = 0.8 +ycom_11 = 0.0 +ycom_12 = 0.0 +ycom_13 = 0.0 +ycom_14 = 0.0 +ycom_15 = 0.0 +ycom_16 = 0.0 +ycom_17 = 0.0 +ycom_18 = 0.0 +ycom_19 = 0.0 +ycom_20 = 0.0 +ycom_2 = -3.4 +ycom_3 = 0.0 +ycom_4 = 0.0 +ycom_5 = 0.0 +ycom_6 = 0.0 +ycom_7 = 0.0 +ycom_8 = 0.0 +ycom_9 = 0.0 +ylength = 80.0 +zcom_10 = 0.0 +zcom_11 = 0.0 +zcom_12 = 0.0 +zcom_13 = 0.0 +zcom_14 = 0.0 +zcom_15 = 0.0 +zcom_16 = 0.0 +zcom_17 = 0.0 +zcom_18 = 0.0 +zcom_19 = 0.0 +zcom_1 = 9.2 +zcom_20 = 0.0 +zcom_2 = 29.7 +zcom_3 = 0.0 +zcom_4 = 0.0 +zcom_5 = 0.0 +zcom_6 = 0.0 +zcom_7 = 0.0 +zcom_8 = 0.0 +zcom_9 = 0.0 +zlength = 80.0 +zres_end_1 = "" +zres_end_10 = "" +zres_end_2 = "" +zres_end_3 = "" +zres_end_4 = "" +zres_end_5 = "" +zres_end_6 = "" +zres_end_7 = "" +zres_end_8 = "" +zres_end_9 = "" +zresmax = 0.0 +zresmin = 0.0 +zres_on = false +zres_seg_1 = "" +zres_seg_10 = "" +zres_seg_2 = "" +zres_seg_3 = "" +zres_seg_4 = "" +zres_seg_5 = "" +zres_seg_6 = "" +zres_seg_7 = "" +zres_seg_8 = "" +zres_seg_9 = "" +zres_sta_1 = "" +zres_sta_10 = "" +zres_sta_2 = "" +zres_sta_3 = "" +zres_sta_4 = "" +zres_sta_5 = "" +zres_sta_6 = "" +zres_sta_7 = "" +zres_sta_8 = "" +zres_sta_9 = "" +zres_type_1 = "" +zres_type_10 = "" +zres_type_2 = "" +zres_type_3 = "" +zres_type_4 = "" +zres_type_5 = "" +zres_type_6 = "" +zres_type_7 = "" +zres_type_8 = "" +zres_type_9 = "" +air_scaling = false +tot_unamb = 25 +tot_amb = 0 +mrswi_hot = 0.5 +mrswi_cool1 = 0.5 +mrswi_cool2 = 0.5 +mrswi_cool3 = 0.5 +rswi_hot = 0.5 +rswi_cool1 = 0.5 +rswi_cool2 = 0.5 +rswi_cool3 = 0.5 +masy_hot = -1.0 +masy_cool1 = -1.0 +masy_cool2 = -0.1 +masy_cool3 = -0.1 +asy_hot = 1.0 +asy_cool1 = 1.0 +asy_cool2 = 0.1 +asy_cool3 = 0.1 +delenph = true +dihedflag = true diff --git a/src/haddock/modules/flexref/cns/generate-cg.inp b/src/haddock/modules/flexref/cns/generate-cg.inp new file mode 100644 index 000000000..143ea8217 --- /dev/null +++ b/src/haddock/modules/flexref/cns/generate-cg.inp @@ -0,0 +1,920 @@ +! generate-cg.inp +! Generates missing coordinates and topology for coarse grained model +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * +! * and from the CNS distriution of Brunger and Adams * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! +{+ file: generate-cg.inp +} +{+ directory: general +} +{+ description: Generate coordinate and structure file for simple models +} +{+ comment: + This is designed to be a means of generating a coordinate + and structure file for commonly encountered models: protein + and/or DNA/RNA. The coordinates + are provided by the user in a single input PDB file. + Disulphide bonds will be automatically determined by distance. + If required generate hydrogens. Any atoms with unknown + coordinates can be automatically generated +} +{+ authors: Paul Adams and Axel Brunger +} +{+ copyright: Yale University +} + +{+ Adapted for use in HADDOCK by Alexandre Bonvin, Utrecht University Feb-2002 +} + +{- Guidelines for using this file: + - all strings must be quoted by double-quotes + - logical variables (true/false) are not quoted + - do not remove any evaluate statements from the file -} + +{- Special patches will have to be entered manually at the relevant points + in the file - see comments throughout the file -} + +{- begin block parameter definition -} define( + +{============================== important =================================} + +{* Different chains in the structure must have either unique segid or + chainid records. If this is no the case, the end of a chain must + be delimited by a TER card. *} + +{* A break in a chain can be detected automatically or should be delimited + by a BREAK card. In this case no patch (head, tail or link) will be + applied between the residues that bound the chain break. *} + +{* NB. The input PDB file must finish with an END statement *} + +{=========================== coordinate files =============================} + +{* coordinate file *} +{===>} coordinate_infile="/home/abonvin/software/haddock/examples/e2a.pdb"; + +{* convert chainid to segid if chainid is non-blank *} +{+ choice: true false +} +{===>} convert=false; + +{* separate chains by segid - a new segid starts a new chain *} +{+ choice: true false +} +{===>} separate=true; +{============================ renaming atoms ===============================} + +{* some atoms may need to be renamed in the topology database to conform + to what is present in the coordinate file *} + +{* delta carbon in isoleucine is named CD in CNS + what is it currently called in the coordinate file? *} +{* this will not be changed if left blank *} +{===>} ile_CD_becomes="CD1"; + +{* terminal oxygens are named OT1 and OT2 in CNS + what are they currently called in the coordinate file? *} +{* these will not be changed if left blank *} +{===>} OT1_becomes="O"; +{===>} OT2_becomes="OXT"; + +{======================= automatic mainchain breaks ========================} + +{* automatically detect mainchain breaks in proteins based on distance *} +{* the peptide link at break points will be removed *} +{+ choice: true false +} +{===>} auto_break=true; + +{* cutoff distance in Angstroms for identification of breaks *} +{* the default of 2.5A for peptide bonds should be reasonable for most cases. If the input + structure has bad geometry it may be necessary to increase this distance *} +{===>} pbreak_cutoff=3.5; +{===>} pcgbreak_cutoff=8.0; +{* the default of 2.5A for nucleic acid linkages should be reasonable for most cases. If the input + structure has bad geometry it may be necessary to increase this distance *} +{===>} dbreak_cutoff=4.5; + +{* file containing patches to delete peptide links *} +{===>} prot_break_infile="RUN:toppar/protein_break.top"; + +{* file containing patches to delete nucleic acid links *} +{===>} dna_break_infile="RUN:toppar/dna_break.top"; + +{======================= automatic disulphide bonds ========================} + +{* cutoff distance in Angstroms for identification of disulphides *} +{* the default of 3.0A should be reasonable for most cases. If the input + structure has bad geometry it may be necessary to increase this distance *} +{===>} disulphide_dist=3.0; + +{======================= automatic iron cluster bonds ======================} + +{* cutoff distance in Angstroms for identification of iron cluster bonds *} +{* the default of 10.0A should be reasonable for most cases. If the input + structure has bad geometry it may be necessary to increase this distance *} +{===>} ironcluster_dist=8.0; + +{======================= automatic cis peptide bonds =======================} + +{* select atoms to be included in calculation of omega angles *} +{* to define cis peptides*} +{===>} atom_select=(known and not hydrogen); + +{========================= RNA to DNA conversion ==========================} + +{* All nucleic acid residues initially have ribose sugars (rather than + deoxyribose). A patch must be applied to convert the ribose to deoxyribose + for DNA residues. Select those residues which need to have the patch + applied to make them DNA. *} +{* Make sure that the atom selection is specific for the nucleic acid + residues *} +{===>} dna_sele=(none); + +{========================= generate parameters =============================} + +{* hydrogen flag - determines whether hydrogens will be output *} +{* must be true for NMR, atomic resolution X-ray crystallography + or modelling. Set to false for most X-ray crystallographic + applications at resolution > 1A *} +{+ choice: true false +} +{===>} hydrogen_flag=true; + +{* which hydrogens to build *} +{+ choice: "all" "unknown" +} +{===>} hydrogen_build="all"; + +{* selection of atoms other than hydrogens for which coordinates + will be generated *} +{* to generate coordinates for all unknown atoms use: (not(known)) *} +{===>} atom_build=(not(known)); + +{* selection of atoms to be deleted *} +{* to delete no atoms use: (none) *} +{===>} atom_delete=(none); + +{* set bfactor flag *} +{+ choice: true false +} +{===>} set_bfactor=true; + +{* set bfactor value *} +{===>} bfactor=15.0; + +{* set occupancy flag *} +{+ choice: true false +} +{===>} set_occupancy=true; + +{* set occupancy value *} +{===>} occupancy=1.0; + +{============================= output files ================================} + +{* output structure file *} +{===>} structure_outfile="haddock.psf"; + +{* output coordinate file *} +{===>} coordinate_outfile="haddock.pdb"; + +{================== protein topology and parameter files ===================} + +{* protein topology file *} +{===>} prot_topology_infile="RUN:toppar/protein-allhdg5-4.top"; + +{* protein linkage file *} +{===>} prot_link_infile="RUN:toppar/protein-allhdg5-4.link"; + +{* protein parameter file *} +{===>} prot_parameter_infile="RUN:toppar/protein-allhdg5-4.param"; + +{================ nucleic acid topology and parameter files =================} + +{* nucleic acid topology file *} +{===>} nucl_topology_infile="RUN:toppar/dna-rna-allatom-hj-opls-1.3.top"; + +{* nucleic acid linkage file *} +{* use RUN:/toppar/dna-rna-pho.link for 5'-phosphate *} +{===>} nucl_link_infile="RUN:/toppar/dna-rna-1.3.link"; + +{* nucleic acid parameter file *} +{===>} nucl_parameter_infile="RUN:/toppar/dna-rna-allatom-hj-opls-1.3.param"; + +{================= carbohydrate topology and parameter files ===============} + +{* carbohydrate topology file *} +{===>} carbo_topology_infile="RUN:/toppar/carbohydrate.top"; + +{* carbohydrate parameter file *} +{===>} carbo_parameter_infile="RUN:/toppar/carbohydrate.param"; + +{================= solvent topology and parameter files ====================} + +{* solvent topology file *} +{===>} solv_topology_infile="RUN:/toppar/water-allhdg5-4.top"; + +{* solvent parameter file *} +{===>} solv_parameter_infile="RUN:/toppar/water-allhdg5-4.param"; + +{================= cofactor topology and parameter files ===================} + +{* co-factor topology file *} +{===>} cofac_topology_infile="RUN:/toppar/ligand.top"; + +{* co-factor linkage file *} +{===>} cofac_link_infile="RUN:toppar/ligand.pep"; + +{* co-factor parameter file *} +{===>} cofac_parameter_infile="RUN:/toppar/ligand.param"; + +{===================== ion topology and parameter files ====================} + +{* ion topology file *} +{===>} ion_topology_infile="RUN:/toppar/ion.top"; + +{* ion parameter file *} +{===>} ion_parameter_infile="RUN:/toppar/ion.param"; + +{===================== heme topology and parameter files ====================} + +{* heme topology file *} +{===>} heme_topology_infile="RUN:/toppar/hemes-allhdg.top"; + +{* heme parameter file *} +{===>} heme_parameter_infile="RUN:/toppar/hemes-allhdg.param"; + +{===================== default number of histidines for patching ===========} + + ) {- end block parameter definition -} + +@RUN:initialize.cns(iteration=$iteration;) + +@RUN:begin/iteration.cns(iteration=$iteration;) + +@RUN:run.cns( +iteration =$iteration; +filenames =$filenames; +data =$data; +iterations=$iterations; +saprotocol=$saprotocol; +refine =$refine; +toppar =$toppar; +analysis =$analysis; +) +! set abort=off end + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!The next line will be changed automatically from python: + evaluate ($chain = 1) +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + evaluate($topology_infile= "RUN:toppar/" + $Toppar.prot_cg_top_$chain) + evaluate($parameter_infile= "RUN:toppar/" + $Toppar.prot_cg_par_$chain) + evaluate($link_file= "RUN:toppar/" + $Toppar.prot_cg_link_$chain) + evaluate($coor_infile= "RUN:data/sequence/" + $Toppar.prot_coor_$chain - ".pdb" + "_cg.pdb") + evaluate($coor_inlist= "RUN:data/sequence/file_" + encode($chain) + ".list-cg") + evaluate($coor_outfile= "BEGIN:" + $Toppar.prot_root_$chain + ".pdb") + evaluate($psf_outfile= "BEGIN:" + $Toppar.prot_root_$chain + ".psf") + evaluate($psf2_outfile= "BEGIN:" + $Toppar.prot_coor_$chain - ".pdb" + ".psf") + evaluate($par_nonbonded= $Toppar.par_nonbonded) + + if ($Toppar.prot_segid_$chain="") then + evaluate($Toppar.prot_segid_$chain=encode($chain)) + end if + + evaluate ($log_level=quiet) + + topology + @@$topology_infile + if ( &BLANK%ion_topology_infile = false ) then + @@&ion_topology_infile + end if + if ( &BLANK%nucl_topology_infile = false ) then + @@&nucl_topology_infile + end if + if ( &BLANK%solv_topology_infile = false ) then + @@&solv_topology_infile + end if + if ( &BLANK%cofac_topology_infile = false ) then + @@&cofac_topology_infile + end if + if ( &BLANK%heme_topology_infile = false ) then + @@&heme_topology_infile + end if + if ( &BLANK%prot_break_infile = false ) then + @@&prot_break_infile + end if + if ( &BLANK%dna_break_infile = false ) then + @@&dna_break_infile + end if + end + + parameter + @@$parameter_infile + if ( &BLANK%ion_parameter_infile = false ) then + @@&ion_parameter_infile + end if + if ( &BLANK%nucl_parameter_infile = false ) then + @@&nucl_parameter_infile + end if + if ( &BLANK%solv_parameter_infile = false ) then + @@&solv_parameter_infile + end if + if ( &BLANK%cofac_parameter_infile = false ) then + @@&cofac_parameter_infile + end if + if ( &BLANK%heme_parameter_infile = false ) then + @@&heme_parameter_infile + end if + end + + segment + chain + if ( &convert = true ) then + convert=true + end if + if ( &separate = true ) then + separate=true + end if + @@$link_file + if ( &BLANK%nucl_link_infile = false ) then + @@&nucl_link_infile + end if + if ( &BLANK%cofac_link_infile = false ) then + @@&cofac_link_infile + end if + coordinates @@$coor_infile + end + end + + coordinates @@$coor_infile end + + if ( &BLANK%ile_CD_becomes = false ) then + do (name=&ile_CD_becomes) (resn ILE and name CD) + end if + if ( &BLANK%OT1_becomes = false ) then + do (name=&OT1_becomes) (name OT1) + end if + if ( &BLANK%OT2_becomes = false ) then + do (name=&OT2_becomes) (name OT2) + end if + +!for the histidine patches: + evaluate($hisd_counter=1) + while ($hisd_counter le $Toppar.nhisd_$chain) loop hisd + if ($Toppar.hisd_resid_$chain_$hisd_counter > 0) then + show (resn) (tag and resid $Toppar.hisd_resid_$chain_$hisd_counter) + if ($result eq "HIS") then + patch hisd reference=nil=(resid $Toppar.hisd_resid_$chain_$hisd_counter) end + end if + end if + evaluate($hisd_counter=$hisd_counter + 1) + end loop hisd + + evaluate($hise_counter=1) + while ($hise_counter le $Toppar.nhise_$chain) loop hise + if ($Toppar.hise_resid_$chain_$hise_counter > 0) then + show (resn) (tag and resid $Toppar.hise_resid_$chain_$hise_counter) + if ($result eq "HIS") then + patch hise reference=nil=(resid $Toppar.hise_resid_$chain_$hise_counter) end + end if + end if + evaluate($hise_counter=$hise_counter + 1) + end loop hise + +! The following patches would define covalent bond between a CA+2 and oxygen ligands +! from Asp and Glu (first selection is amino-acid, second is ion) +! patch dca2 refe=1=(resid 25) refe=2=(resid 83) end +! patch dca2 refe=1=(resid 29) refe=2=(resid 83) end +! patch dca2 refe=1=(resid 35) refe=2=(resid 83) end +! patch eca2 refe=1=(resid 36) refe=2=(resid 83) end +! +! following patch is to attach a heme (resid YY) CAB atom to a cys (resid XX) +! patch phcb refe=1=(resid XX) refe=2=(resid YY) end +! following patch is to attach a heme (resid YY) CAC atom to a cys (resid XX) +! patch phcc refe=1=(resid XX) refe=2=(resid YY) end + + inline @RUN:patch-types-cg.cns + inline @RUN:patch-bb-cg.cns + inline @RUN:charge-beads-interactions.cns + + if ($Toppar.delenph = true) then + delete sele=(name H* and attr charge = 0) end + end if + + evaluate ($nstruc = 1) + for $file in ( @@$coor_inlist ) loop main + + coor init end + coordinates + if ( &convert = true ) then + convert=true + end if + @@$file + + show sum(1) ( not(hydrogen) and not(known) ) + if ( $select = 0 ) then + display %INFO: There are no coordinates missing for non-hydrogen atoms + end if + + if ( $log_level = verbose ) then + set message=normal echo=on end + else + set message=off echo=off end + end if + + if ($nstruc = 1) then + + if ( &auto_break = true ) then + inline @RUN:prot_break.cns + inline @RUN:dna_break.cns + end if + + evaluate ($disu=0) + + for $id1 in id ( resn CYS and name SG ) loop dis1 + + show (segid) (id $id1) + evaluate ($segid1=$result) + show (resid) (id $id1) + evaluate ($resid1=$result) + + identity (store1) (all) + + for $id2 in id ( resn CYS and name SG and + ( attr store1 > $id1 ) ) loop dis2 + + show (segid) (id $id2) + evaluate ($segid2=$result) + show (resid) (id $id2) + evaluate ($resid2=$result) + + pick bond (id $id1) (id $id2) geometry + + if ( $result <= &disulphide_dist ) then + evaluate ($disu=$disu+1) + evaluate ($seg1.$disu=$segid1) + evaluate ($seg2.$disu=$segid2) + evaluate ($res1.$disu=$resid1) + evaluate ($res2.$disu=$resid2) + end if + + end loop dis2 + + end loop dis1 + + evaluate ($counter=1) + while ( $counter <= $disu ) loop disu + patch disu + reference=1=(segid $seg1.$counter and resid $res1.$counter) + reference=2=(segid $seg2.$counter and resid $res2.$counter) + end + buffer message + display disulphide added: from \ +$seg1.$counter[a4] $res1.$counter[a4] to $seg2.$counter[a4] $res2.$counter[a4] + end + evaluate ($counter=$counter+1) + end loop disu + + + evaluate ($ironclus=0) + + for $id1 in id ( resname CFE and name SG ) loop fes1 + + show (segid) (id $id1) + evaluate ($segid1=$result) + show (resid) (id $id1) + evaluate ($resid1=$result) + + identity (store1) (all) + + for $id2 in id ( resname CYF and name SG and + ( attr store1 > $id1 ) ) loop fes2 + + show (segid) (id $id2) + evaluate ($segid2=$result) + show (resid) (id $id2) + evaluate ($resid2=$result) + + pick bond (id $id1) (id $id2) geometry + + if ( $result <= &ironcluster_dist ) then + evaluate ($ironclus=$ironclus+1) + evaluate ($seg1.$ironclus=$segid1) + evaluate ($seg2.$ironclus=$segid2) + evaluate ($res1.$ironclus=$resid1) + evaluate ($res2.$ironclus=$resid2) + end if + + end loop fes2 + + end loop fes1 + + evaluate ($counter=1) + while ( $counter <= $ironclus ) loop iron + patch sef + reference=1=(segid $seg1.$counter and resid $res1.$counter) + reference=2=(segid $seg2.$counter and resid $res2.$counter) + end + buffer message + display iron sulpher bond added: from \ +$seg1.$counter[a4] $res1.$counter[a4] to $seg2.$counter[a4] $res2.$counter[a4] + end + evaluate ($counter=$counter+1) + end loop iron + + + {- patching of RNA to DNA -} + evaluate ($counter=0) + if ($Toppar.dna_$chain eq TRUE) then + for $id in id ( tag and (resn ADE or resn CYT or resn THY or resn GUA or resn A or resn C or resn T or resn G) ) loop dna + evaluate ($counter=$counter+1) + show (segid) (id $id) + evaluate ($dna.segid.$counter=$result) + show (resid) (id $id) + evaluate ($dna.resid.$counter=$result) + end loop dna + end if + evaluate ($dna.num=$counter) + + evaluate ($counter=0) + while ($counter < $dna.num) loop dnap + evaluate ($counter=$counter+1) + patch deox reference=nil=(segid $dna.segid.$counter and + resid $dna.resid.$counter) end + end loop dnap + + + for $id in id ( &atom_select and name ca and resn PRO) loop cisp + + show (segid) (id $id) + evaluate ($segid=$result) + show (resid) (id $id) + evaluate ($resid=$result) + show (resn) (id $id) + evaluate ($resn=$result) + + identity (store1) ( &atom_select and ( name c and bondedto + ( name n and resid $resid and segid $segid ) ) ) + if ( $select = 1 ) then + show element (store1) (attribute store1 > 0) + evaluate ($id_prev=$result) + show (segid) (id $id_prev) + evaluate ($segid_prev=$result) + show (resid) (id $id_prev) + evaluate ($resid_prev=$result) + show (resn) (id $id_prev) + evaluate ($resn_prev=$result) + + pick dihedral + (name ca and segid $segid_prev and resid $resid_prev) + (name c and segid $segid_prev and resid $resid_prev) + (name n and segid $segid and resid $resid) + (name ca and segid $segid and resid $resid) + geometry + + evaluate ($dihedral=mod($result+360,360)) + + if ( $dihedral > 180 ) then + evaluate ($dihedral=$dihedral-360) + end if + + evaluate ($absdihedral=abs($dihedral)) + + if ( $absdihedral < 25 ) then + patch cisp reference=NIL=(segid $segid_prev and resid $resid_prev) end + display CIS peptide bon detected for residue $resid_prev + end if + + end if + + end loop cisp + + end if {! end if for patches based on first structure only !} + + if (&hydrogen_flag=false) then + delete selection=( hydrogen ) end + end if + + delete selection=( &atom_delete ) end + + identity (store1) (none) + + identity (store1) (&atom_build) + if ( &hydrogen_build = "all" ) then + identity (store1) (store1 or hydrogen) + elseif ( &hydrogen_build = "unknown" ) then + identity (store1) (store1 or (not(known) and hydrogen)) + end if + + show sum(1) (store1) + evaluate ($tobuild=$result) + + if ( $tobuild > 0 ) then + + fix selection=(not(store1)) end + + show sum(1) (store1) + evaluate ($moving=$result) + + if ( $moving > 0 ) then + for $id in id (tag and byres(store1)) loop avco + + show ave(x) (byres(id $id) and known) + evaluate ($ave_x=$result) + show ave(y) (byres(id $id) and known) + evaluate ($ave_y=$result) + show ave(z) (byres(id $id) and known) + evaluate ($ave_z=$result) + + do (x=$ave_x) (byres(id $id) and store1) + do (y=$ave_y) (byres(id $id) and store1) + do (z=$ave_z) (byres(id $id) and store1) + + end loop avco + + do (x=x+2*random(1.0)-1) (store1) + do (y=y+2*random(1.0)-1) (store1) + do (z=z+2*random(1.0)-1) (store1) + + {- start parameter for the side chain building -} + parameter + nbonds + rcon=20. nbxmod=-2 repel=0.9 wmin=0.1 tolerance=1. + rexp=2 irexp=2 inhibit=0.25 + end + end + + {- Friction coefficient, in 1/ps. -} + do (fbeta=100) (store1) + + evaluate ($bath=300.0) + evaluate ($nstep=500) + evaluate ($timestep=0.0005) + + do (refy=mass) (store1) + + do (mass=20) (store1) + + igroup interaction + (store1) (store1 or known) + end + + inline @RUN:charge-beads-interactions.cns + + {- turn on initial energy terms -} + flag exclude * include bond angle vdw end + + minimize powell nstep=50 nprint=10 end + + do (vx=maxwell($bath)) (store1) + do (vy=maxwell($bath)) (store1) + do (vz=maxwell($bath)) (store1) + + flag exclude vdw elec include impr end + + dynamics cartesian + nstep=50 + timestep=$timestep + tcoupling=true temperature=$bath + nprint=$nstep + cmremove=false + end + + flag include vdw end + + minimize powell nstep=50 nprint=10 end + + do (vx=maxwell($bath)) (store1) + do (vy=maxwell($bath)) (store1) + do (vz=maxwell($bath)) (store1) + + dynamics cartesian + nstep=50 + timestep=$timestep + tcoupling=true temperature=$bath + nprint=$nstep + cmremove=false + end + + parameter + nbonds + rcon=2. nbxmod=-3 repel=0.75 + end + end + + minimize powell nstep=100 nprint=25 end + + do (vx=maxwell($bath)) (store1) + do (vy=maxwell($bath)) (store1) + do (vz=maxwell($bath)) (store1) + + dynamics cartesian + nstep=$nstep + timestep=$timestep + tcoupling=true temperature=$bath + nprint=$nstep + cmremove=false + end + + {- turn on all energy terms -} + flag include dihe ? end + + {- set repel to ~vdw radii -} + parameter + nbonds + repel=0.89 + end + end + + minimize powell nstep=500 nprint=50 end + + flag exclude * include bond angl impr dihe vdw end + + {- return masses to something sensible -} + do (mass=refy) (store1) + + do (vx=maxwell($bath)) (store1) + do (vy=maxwell($bath)) (store1) + do (vz=maxwell($bath)) (store1) + + dynamics cartesian + nstep=$nstep + timestep=$timestep + tcoupling=true temperature=$bath + nprint=$nstep + cmremove=false + end + + {- some final minimisation -} + minimize powell + nstep=500 + drop=40.0 + nprint=50 + end + + print thres=0.02 bonds + print thres=5. angles + + end if + + noe reset end + rest dihe reset end + + if ($Toppar.dna_$chain eq TRUE) then + if ($Data.dnarest eq TRUE) then + noe nres 10000 end + rest dihed nass=10000 end + do (segid = $Toppar.prot_segid_$chain) (all) + @RUN:data/sequence/dna-rna_restraints.def + do (segid = " ") (all) + end if + end if + + fix selection=( none ) end + + flag incl noe cdih end + print threshold=0.3 noe + print threshold=5. cdih + + energy end + + do (segid = $Toppar.prot_segid_$chain) (all) + @RUN:flex_segment_back.cns + do (segid = " ") (all) + fix sele=((attr store5 = 0) and not name H*) end + minimize powell + nstep=50 + drop=40.0 + nprint=5 + end + fix sele=(not all) end + + energy end + + print threshold=0.3 noe + print threshold=5. cdih + print thres=0.02 bonds + print thres=5. angles + flag excl noe cdih end + + + end if + + do (store2=0) (all) + for $id in id (tag and name BB) loop cgmodel + do (store2=1) (byres(id $id)) + end loop cgmodel + + flag excl elec end + + fix sele=(attr store2 = 0) end + minimize powell + nstep=50 + drop=40.0 + nprint=10 + end + + fix selection=( none ) end + energy end + evaluate ($bonded = $bond + $angl + $impr) + if ($bonded > 10000) then + minimize powell nstep=100 drop=10.0 nprint=10 end + end if + if ($bonded > 10000) then + energy end + evaluate ($bonded = $bond + $angl + $impr) + evaluate ($dispfile = $coor_outfile - ".pdb" + "_" + encode($nstruc) + ".warn") + set display=$dispfile end + display WARNING: the bonded energy is very high: + display Ebonded-total=$bonded Ebond=$bond Eangl=$angl Eimpr=$impr + display Something is possibly wrong with your input structure + close $dispfile end + end if + + show sum(1) (not(known)) + if ( $result < 100 ) then + for $id in id (not(known)) loop print + show (segid) (id $id) + evaluate ($segid=$result) + show (resn) (id $id) + evaluate ($resn=$result) + show (resid) (id $id) + evaluate ($resid=$result) + show (name) (id $id) + evaluate ($name=$result) + buffer message + display unknown coordinates for atom: $segid[a4] $resn[a4] $resid[a4] $name[a4] + end + end loop print + else + buffer message + display unknown coordinates for more than 100 atoms + end + end if + + if (&set_bfactor=true) then + do (b=&bfactor) ( all ) + else + show ave(b) (known and not(store1)) + do (b=$result) (store1 and (attr b < 0.01)) + end if + + if (&set_occupancy=true) then + do (q=&occupancy) ( all ) + end if + + show sum(1) (store1) + if ( $result < 100 ) then + for $id in id (store1) loop print + show (segid) (id $id) + evaluate ($segid=$result) + show (resn) (id $id) + evaluate ($resn=$result) + show (resid) (id $id) + evaluate ($resid=$result) + show (name) (id $id) + evaluate ($name=$result) + buffer message + display coordinates built for atom: $segid[a4] $resn[a4] $resid[a4] $name[a4] + end + end loop print + else + buffer message + display coordinates built for more than 100 hundred atoms + end + end if + + set remarks=reset end + + buffer message + to=remarks + dump + end + + do (segid = $Toppar.prot_segid_$chain) (all) + + if ($nstruc = 1) then + write coordinates output=$coor_outfile end + end if + evaluate ($filename_$nstruc = $coor_outfile - ".pdb" + "_" + encode($nstruc) + ".pdb") + write coordinates output=$filename_$nstruc end + evaluate ($nstruc = $nstruc + 1) + + do (segid = " ") (all) + + end loop main + + do (segid = $Toppar.prot_segid_$chain) (all) + write structure output=$psf_outfile end + write structure output=$psf2_outfile end + + evaluate ($disfile = "BEGIN:file_" + encode($chain) + ".list") + set display=$disfile end + + evaluate ($num = 1) + while ($num < $nstruc) loop wrfile + evaluate ($outstring = """ + $filename_$num + """) + display $outstring + evaluate ($num = $num + 1) + end loop wrfile + + stop + + diff --git a/src/haddock/modules/flexref/cns/generate-original.inp b/src/haddock/modules/flexref/cns/generate-original.inp new file mode 100644 index 000000000..c0b0ee8f6 --- /dev/null +++ b/src/haddock/modules/flexref/cns/generate-original.inp @@ -0,0 +1,896 @@ +! generate.inp +! Generates missing coordinates and topology +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * +! * and from the CNS distriution of Brunger and Adams * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! +{+ file: generate.inp +} +{+ directory: general +} +{+ description: Generate coordinate and structure file for simple models +} +{+ comment: + This is designed to be a means of generating a coordinate + and structure file for commonly encountered models: protein + and/or DNA/RNA. The coordinates + are provided by the user in a single input PDB file. + Disulphide bonds will be automatically determined by distance. + If required generate hydrogens. Any atoms with unknown + coordinates can be automatically generated +} +{+ authors: Paul Adams and Axel Brunger +} +{+ copyright: Yale University +} + +{+ Adapted for use in HADDOCK by Alexandre Bonvin, Utrecht University Feb-2002 +} + +{- Guidelines for using this file: + - all strings must be quoted by double-quotes + - logical variables (true/false) are not quoted + - do not remove any evaluate statements from the file -} + +{- Special patches will have to be entered manually at the relevant points + in the file - see comments throughout the file -} + +{- begin block parameter definition -} define( + +{============================== important =================================} + +{* Different chains in the structure must have either unique segid or + chainid records. If this is no the case, the end of a chain must + be delimited by a TER card. *} + +{* A break in a chain can be detected automatically or should be delimited + by a BREAK card. In this case no patch (head, tail or link) will be + applied between the residues that bound the chain break. *} + +{* NB. The input PDB file must finish with an END statement *} + +{=========================== coordinate files =============================} + +{* coordinate file *} +{===>} coordinate_infile="/home/abonvin/software/haddock/examples/e2a.pdb"; + +{* convert chainid to segid if chainid is non-blank *} +{+ choice: true false +} +{===>} convert=false; + +{* separate chains by segid - a new segid starts a new chain *} +{+ choice: true false +} +{===>} separate=true; +{============================ renaming atoms ===============================} + +{* some atoms may need to be renamed in the topology database to conform + to what is present in the coordinate file *} + +{* delta carbon in isoleucine is named CD in CNS + what is it currently called in the coordinate file? *} +{* this will not be changed if left blank *} +{===>} ile_CD_becomes="CD1"; + +{* terminal oxygens are named OT1 and OT2 in CNS + what are they currently called in the coordinate file? *} +{* these will not be changed if left blank *} +{===>} OT1_becomes="O"; +{===>} OT2_becomes="OXT"; + +{======================= automatic mainchain breaks ========================} + +{* automatically detect mainchain breaks in proteins based on distance *} +{* the peptide link at break points will be removed *} +{+ choice: true false +} +{===>} auto_break=true; + +{* cutoff distance in Angstroms for identification of breaks *} +{* the default of 2.5A for peptide bonds should be reasonable for most cases. If the input + structure has bad geometry it may be necessary to increase this distance *} +{===>} pbreak_cutoff=3.5; +{===>} pcgbreak_cutoff=8.0; +{* the default of 2.5A for nucleic acid linkages should be reasonable for most cases. If the input + structure has bad geometry it may be necessary to increase this distance *} +{===>} dbreak_cutoff=4.5; + +{* file containing patches to delete peptide links *} +{===>} prot_break_infile="RUN:toppar/protein_break.top"; + +{* file containing patches to delete nucleic acid links *} +{===>} dna_break_infile="RUN:toppar/dna_break.top"; + +{======================= automatic disulphide bonds ========================} + +{* cutoff distance in Angstroms for identification of disulphides *} +{* the default of 3.0A should be reasonable for most cases. If the input + structure has bad geometry it may be necessary to increase this distance *} +{===>} disulphide_dist=3.0; + +{======================= automatic cyclic peptidic bond ====================} + +{* cutoff distance in Angstroms for identification of disulphides *} +{* the default of 3.0A should be reasonable for most cases. If the input + structure has bad geometry it may be necessary to increase this distance *} +{===>} cyclicpept_dist=1.5; + +{======================= automatic iron cluster bonds ======================} + +{* cutoff distance in Angstroms for identification of iron cluster bonds *} +{* the default of 8.0A should be reasonable for most cases. If the input + structure has bad geometry it may be necessary to increase this distance *} +{===>} iron1cluster_dist=5.0; +{===>} iron2cluster_dist=8.0; + +{======================= automatic cis peptide bonds =======================} + +{* select atoms to be included in calculation of omega angles *} +{* to define cis peptides*} +{===>} atom_select=(known and not hydrogen); + +{========================= RNA to DNA conversion ==========================} + +{* All nucleic acid residues initially have ribose sugars (rather than + deoxyribose). A patch must be applied to convert the ribose to deoxyribose + for DNA residues. Select those residues which need to have the patch + applied to make them DNA. *} +{* Make sure that the atom selection is specific for the nucleic acid + residues *} +{===>} dna_sele=(none); + +{========================= generate parameters =============================} + +{* hydrogen flag - determines whether hydrogens will be output *} +{* must be true for NMR, atomic resolution X-ray crystallography + or modelling. Set to false for most X-ray crystallographic + applications at resolution > 1A *} +{+ choice: true false +} +{===>} hydrogen_flag=true; + +{* which hydrogens to build *} +{+ choice: "all" "unknown" +} +{===>} hydrogen_build="all"; + +{* selection of atoms other than hydrogens for which coordinates + will be generated *} +{* to generate coordinates for all unknown atoms use: (not(known)) *} +{===>} atom_build=(not(known)); + +{* selection of atoms to be deleted *} +{* to delete no atoms use: (none) *} +{===>} atom_delete=(none); + +{* set bfactor flag *} +{+ choice: true false +} +{===>} set_bfactor=true; + +{* set bfactor value *} +{===>} bfactor=15.0; + +{* set occupancy flag *} +{+ choice: true false +} +{===>} set_occupancy=true; + +{* set occupancy value *} +{===>} occupancy=1.0; + +{============================= output files ================================} + +{* output structure file *} +{===>} structure_outfile="haddock.psf"; + +{* output coordinate file *} +{===>} coordinate_outfile="haddock.pdb"; + +{================== protein topology and parameter files ===================} + +{* protein topology file *} +{===>} prot_topology_infile="RUN:toppar/protein-allhdg5-4.top"; + +{* protein linkage file *} +{===>} prot_link_infile="RUN:toppar/protein-allhdg5-4.link"; + +{* protein parameter file *} +{===>} prot_parameter_infile="RUN:toppar/protein-allhdg5-4.param"; + +{================ nucleic acid topology and parameter files =================} + +{* nucleic acid topology file *} +{===>} nucl_topology_infile="RUN:toppar/dna-rna-allatom-hj-opls-1.3.top"; + +{* nucleic acid linkage file *} +{* use RUN:/toppar/dna-rna-pho.link for 5'-phosphate *} +{===>} nucl_link_infile="RUN:/toppar/dna-rna-1.3.link"; + +{* nucleic acid parameter file *} +{===>} nucl_parameter_infile="RUN:/toppar/dna-rna-allatom-hj-opls-1.3.param"; + +{================= carbohydrate topology and parameter files ===============} + +{* carbohydrate topology file *} +{===>} carbo_topology_infile="RUN:/toppar/carbohydrate.top"; + +{* carbohydrate parameter file *} +{===>} carbo_parameter_infile="RUN:/toppar/carbohydrate.param"; + +{================= solvent topology and parameter files ====================} + +{* solvent topology file *} +{===>} solv_topology_infile="RUN:/toppar/water-allhdg5-4.top"; + +{* solvent parameter file *} +{===>} solv_parameter_infile="RUN:/toppar/water-allhdg5-4.param"; + +{================= cofactor topology and parameter files ===================} + +{* co-factor topology file *} +{===>} cofac_topology_infile="RUN:/toppar/ligand.top"; + +{* co-factor linkage file *} +{===>} cofac_link_infile="RUN:toppar/ligand.pep"; + +{* co-factor parameter file *} +{===>} cofac_parameter_infile="RUN:/toppar/ligand.param"; + +{================= known ligands topology and parameter files ==============} + +{* ligands topology file *} +{===>} ligands_topology_infile="RUN:/toppar/fragment_probes.top"; + +{* ligands parameter file *} +{===>} ligands_parameter_infile="RUN:/toppar/fragment_probes.param"; + +{===================== ion topology and parameter files ====================} + +{* ion topology file *} +{===>} ion_topology_infile="RUN:/toppar/ion.top"; + +{* ion parameter file *} +{===>} ion_parameter_infile="RUN:/toppar/ion.param"; + +{===================== heme topology and parameter files ====================} + +{* heme topology file *} +{===>} heme_topology_infile="RUN:/toppar/hemes-allhdg.top"; + +{* heme parameter file *} +{===>} heme_parameter_infile="RUN:/toppar/hemes-allhdg.param"; + +{===================== default number of histidines for patching ===========} + + ) {- end block parameter definition -} + +@RUN:initialize.cns(iteration=$iteration;) + +@RUN:begin/iteration.cns(iteration=$iteration;) + +@RUN:run.cns( +iteration =$iteration; +filenames =$filenames; +data =$data; +iterations=$iterations; +saprotocol=$saprotocol; +refine =$refine; +toppar =$toppar; +analysis =$analysis; +) +! set abort=off end + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!The next line will be changed automatically from python: + evaluate ($chain = 1) +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + evaluate($topology_infile= "RUN:toppar/" + $Toppar.prot_top_$chain) + evaluate($parameter_infile= "RUN:toppar/" + $Toppar.prot_par_$chain) + evaluate($link_file= "RUN:toppar/" + $Toppar.prot_link_$chain) + evaluate($coor_infile= "RUN:data/sequence/" + $Toppar.prot_coor_$chain) + evaluate($coor_inlist= "RUN:data/sequence/file_" + encode($chain) + ".list") + evaluate($coor_outfile= "BEGIN:" + $Toppar.prot_root_$chain + ".pdb") + evaluate($psf_outfile= "BEGIN:" + $Toppar.prot_root_$chain + ".psf") + evaluate($psf2_outfile= "BEGIN:" + $Toppar.prot_coor_$chain - ".pdb" + ".psf") + evaluate($par_nonbonded= $Toppar.par_nonbonded) + + if ($Toppar.prot_segid_$chain="") then + evaluate($Toppar.prot_segid_$chain=encode($chain)) + end if + + evaluate ($log_level=quiet) + + topology + @@$topology_infile + if ( &BLANK%ion_topology_infile = false ) then + @@&ion_topology_infile + end if + if ( &BLANK%nucl_topology_infile = false ) then + @@&nucl_topology_infile + end if + if ( &BLANK%solv_topology_infile = false ) then + @@&solv_topology_infile + end if + if ( &BLANK%ligands_topology_infile = false ) then + @@&ligands_topology_infile + end if + if ( &BLANK%cofac_topology_infile = false ) then + @@&cofac_topology_infile + end if + if ( &BLANK%heme_topology_infile = false ) then + @@&heme_topology_infile + end if + if ( &BLANK%prot_break_infile = false ) then + @@&prot_break_infile + end if + if ( &BLANK%dna_break_infile = false ) then + @@&dna_break_infile + end if + end + + parameter + @@$parameter_infile + if ( &BLANK%ion_parameter_infile = false ) then + @@&ion_parameter_infile + end if + if ( &BLANK%nucl_parameter_infile = false ) then + @@&nucl_parameter_infile + end if + if ( &BLANK%solv_parameter_infile = false ) then + @@&solv_parameter_infile + end if + if ( &BLANK%ligands_parameter_infile = false ) then + @@&ligands_parameter_infile + end if + if ( &BLANK%cofac_parameter_infile = false ) then + @@&cofac_parameter_infile + end if + if ( &BLANK%heme_parameter_infile = false ) then + @@&heme_parameter_infile + end if + end + + segment + chain + if ( &convert = true ) then + convert=true + end if + if ( &separate = true ) then + separate=true + end if + @@$link_file + if ( &BLANK%nucl_link_infile = false ) then + @@&nucl_link_infile + end if + if ( &BLANK%cofac_link_infile = false ) then + @@&cofac_link_infile + end if + coordinates @@$coor_infile + end + end + + coordinates @@$coor_infile end + + if ( &BLANK%ile_CD_becomes = false ) then + do (name=&ile_CD_becomes) (resn ILE and name CD) + end if + if ( &BLANK%OT1_becomes = false ) then + do (name=&OT1_becomes) (name OT1) + end if + if ( &BLANK%OT2_becomes = false ) then + do (name=&OT2_becomes) (name OT2) + end if + + !for the histidine patches: + if ($Toppar.autohis = false) then + evaluate($hisd_counter=1) + while ($hisd_counter le $Toppar.nhisd_$chain) loop hisd + if ($Toppar.hisd_resid_$chain_$hisd_counter > 0) then + show (resn) (tag and resid $Toppar.hisd_resid_$chain_$hisd_counter) + if ($result eq "HIS") then + patch hisd reference=nil=(resid $Toppar.hisd_resid_$chain_$hisd_counter) end + end if + end if + evaluate($hisd_counter=$hisd_counter + 1) + end loop hisd + + evaluate($hise_counter=1) + while ($hise_counter le $Toppar.nhise_$chain) loop hise + if ($Toppar.hise_resid_$chain_$hise_counter > 0) then + show (resn) (tag and resid $Toppar.hise_resid_$chain_$hise_counter) + if ($result eq "HIS") then + patch hise reference=nil=(resid $Toppar.hise_resid_$chain_$hise_counter) end + end if + end if + evaluate($hise_counter=$hise_counter + 1) + end loop hise + end if + +! The following patches would define covalent bond between a CA+2 and oxygen ligands +! from Asp and Glu (first selection is amino-acid, second is ion) +! patch dca2 refe=1=(resid 25) refe=2=(resid 83) end +! patch dca2 refe=1=(resid 29) refe=2=(resid 83) end +! patch dca2 refe=1=(resid 35) refe=2=(resid 83) end +! patch eca2 refe=1=(resid 36) refe=2=(resid 83) end +! +! following patch is to attach a heme (resid YY) CAB atom to a cys (resid XX) +! patch phcb refe=1=(resid XX) refe=2=(resid YY) end +! following patch is to attach a heme (resid YY) CAC atom to a cys (resid XX) +! patch phcc refe=1=(resid XX) refe=2=(resid YY) end +! +! following patch is to define an isopeptide bond between a Cter and a Lys side-chain +! patch clys refe=1=(resid 72) refe=2=(resid 148) end +! +! following patch is to define an isopeptide bond between a Cter and a Lys side-chain +! patch clys refe=1=(resid 72) refe=2=(resid 148) end + + inline @RUN:patch-types-cg.cns + inline @RUN:patch-bb-cg.cns + + if ($Toppar.delenph = true) then + delete sele=(name H* and attr charge = 0) end + end if + + evaluate ($nstruc = 1) + for $file in ( @@$coor_inlist ) loop main + + set seed=$Saprotocol.iniseed end + + coor init end + coordinates + if ( &convert = true ) then + convert=true + end if + @@$file + + show sum(1) ( not(hydrogen) and not(known) ) + if ( $select = 0 ) then + display %INFO: There are no coordinates missing for non-hydrogen atoms + end if + + if ( $log_level = verbose ) then + set message=normal echo=on end + else + set message=off echo=off end + end if + + inline @RUN:build-missing.cns + + if ($nstruc = 1) then + + if ( &auto_break = true ) then + inline @RUN:prot_break.cns + inline @RUN:dna_break.cns + end if + +! check for disulphide bonds + + evaluate ($disu=0) + + for $id1 in id ( resn CYS and name SG ) loop dis1 + + show (segid) (id $id1) + evaluate ($segid1=$result) + show (resid) (id $id1) + evaluate ($resid1=$result) + + identity (store9) (all) + + for $id2 in id ( resn CYS and name SG and + ( attr store9 > $id1 ) ) loop dis2 + + show (segid) (id $id2) + evaluate ($segid2=$result) + show (resid) (id $id2) + evaluate ($resid2=$result) + + pick bond (id $id1) (id $id2) geometry + + if ( $result <= &disulphide_dist ) then + evaluate ($disu=$disu+1) + evaluate ($seg1.$disu=$segid1) + evaluate ($seg2.$disu=$segid2) + evaluate ($res1.$disu=$resid1) + evaluate ($res2.$disu=$resid2) + end if + + end loop dis2 + + end loop dis1 + + evaluate ($counter=1) + while ( $counter <= $disu ) loop disu + patch disu + reference=1=(segid $seg1.$counter and resid $res1.$counter) + reference=2=(segid $seg2.$counter and resid $res2.$counter) + end + buffer message + display disulphide added: from \ +$seg1.$counter[a4] $res1.$counter[a4] to $seg2.$counter[a4] $res2.$counter[a4] + end + evaluate ($counter=$counter+1) + end loop disu + +! check for cyclid peptidic bonds + + if ($Toppar.cyclicpept_$chain eq TRUE ) then + + evaluate ($cycp=0) + + for $id1 in id ( tag and name N ) loop cyp1 + + show (segid) (id $id1) + evaluate ($segid1=$result) + show (resid) (id $id1) + evaluate ($resid1=$result) + show (resn) (id $id1) + evaluate ($resn1=$result) + + for $id2 in id ( name C and bondedto (name O and not resid $resid1 ) ) loop cyp2 + + show (segid) (id $id2) + evaluate ($segid2=$result) + show (resid) (id $id2) + evaluate ($resid2=$result) + show (resn) (id $id2) + evaluate ($resn2=$result) + + evaluate ($rdiff = decode($resid2) - decode($resid1)) + + if ($rdiff gt 2) then + + pick bond (id $id1) (id $id2) geometry + + if ( $result <= &cyclicpept_dist ) then + evaluate ($cycp=$cycp+1) + evaluate ($seg1.$cycp=$segid1) + evaluate ($seg2.$cycp=$segid2) + evaluate ($res1.$cycp=$resid1) + evaluate ($res2.$cycp=$resid2) + evaluate ($rsn1.$cycp=$resn1) + evaluate ($rsn2.$cycp=$resn2) + end if + + end if + + end loop cyp2 + + end loop cyp1 + + evaluate ($counter=1) + + while ( $counter <= $cycp ) loop cypep + + evaluate ($ptype = PEPT) + evaluate ($patchdone = 0) + if ( $rsn2.$counter eq GLY) then + if ($rsn1.$counter eq PRO) then + evaluate ($ptype = PPGP) + evaluate ($patchdone = 1) + end if + if ($rsn1.$counter eq GLY) then + evaluate ($ptype = PPGG) + evaluate ($patchdone = 1) + end if + if ($patchdone eq 0) then + evaluate ($ptype = PPG1) + end if + else + if ($rsn1.$counter eq PRO) then + evaluate ($ptype = PEPP) + end if + if ($rsn1.$counter eq GLY) then + evaluate ($ptype = PPG2) + end if + end if + + patch $ptype + reference=+=(segid $seg1.$counter and resid $res1.$counter) + reference=-=(segid $seg2.$counter and resid $res2.$counter) + end + + buffer message + display cyclic peptide detected: peptidic bond added between \ +$seg1.$counter[a4] $res1.$counter[a4] and $seg2.$counter[a4] $res2.$counter[a4] + end + evaluate ($counter=$counter+1) + end loop cypep + + end if ! check for cyclic peptide + +! check for covalently-linked hemeC + + inline @RUN:covalheme.cns + + + ! check for covalently-linked Acetylated Nter to CYS + + inline @RUN:coval-ace-cys.cns + + evaluate ($ironclus=0) + + ! check for FE1 bonds in iron cluster + for $id1 in id ( resname CFE and name SG ) loop fes1 + + show (segid) (id $id1) + evaluate ($segid1=$result) + show (resid) (id $id1) + evaluate ($resid1=$result) + + identity (store9) (all) + + for $id2 in id ( resname CYF and name SG ) loop fes2 + + show (segid) (id $id2) + evaluate ($segid2=$result) + show (resid) (id $id2) + evaluate ($resid2=$result) + + pick bond (id $id1) (id $id2) geometry + + if ( $result <= &iron1cluster_dist ) then + evaluate ($ironclus=$ironclus+1) + evaluate ($seg1.$ironclus=$segid1) + evaluate ($seg2.$ironclus=$segid2) + evaluate ($res1.$ironclus=$resid1) + evaluate ($res2.$ironclus=$resid2) + end if + + end loop fes2 + + end loop fes1 + + evaluate ($counter=1) + while ( $counter <= $ironclus ) loop iron1 + patch sef1 + reference=1=(segid $seg1.$counter and resid $res1.$counter) + reference=2=(segid $seg2.$counter and resid $res2.$counter) + end + buffer message + display iron FE1 sulphur bond added: from $seg1.$counter[a4] $res1.$counter[a4] to $seg2.$counter[a4] $res2.$counter[a4] + end + evaluate ($counter=$counter+1) + end loop iron1 + + evaluate ($ironclus=0) + + ! check for FE2 bonds in iron cluster + for $id1 in id ( resname CFE and name SG ) loop fes1 + + show (segid) (id $id1) + evaluate ($segid1=$result) + show (resid) (id $id1) + evaluate ($resid1=$result) + + identity (store9) (all) + + for $id2 in id ( resname CYF and name SG ) loop fes2 + + show (segid) (id $id2) + evaluate ($segid2=$result) + show (resid) (id $id2) + evaluate ($resid2=$result) + + pick bond (id $id1) (id $id2) geometry + + if ( $result <= &iron2cluster_dist ) then + if ($result > &iron1cluster_dist ) then + evaluate ($ironclus=$ironclus+1) + evaluate ($seg1.$ironclus=$segid1) + evaluate ($seg2.$ironclus=$segid2) + evaluate ($res1.$ironclus=$resid1) + evaluate ($res2.$ironclus=$resid2) + end if + end if + + end loop fes2 + + end loop fes1 + + evaluate ($counter=1) + while ( $counter <= $ironclus ) loop iron2 + patch sef2 + reference=1=(segid $seg1.$counter and resid $res1.$counter) + reference=2=(segid $seg2.$counter and resid $res2.$counter) + end + buffer message + display iron FE2 sulphur bond added: from $seg1.$counter[a4] $res1.$counter[a4] to $seg2.$counter[a4] $res2.$counter[a4] + end + evaluate ($counter=$counter+1) + end loop iron2 + + + {- patching of RNA to DNA -} + evaluate ($counter=0) + if ($Toppar.dna_$chain eq TRUE) then + for $id in id ( tag and (resn ADE or resn CYT or resn THY or resn GUA or resn A or resn C or resn T or resn G) ) loop dna + evaluate ($counter=$counter+1) + show (segid) (id $id) + evaluate ($dna.segid.$counter=$result) + show (resid) (id $id) + evaluate ($dna.resid.$counter=$result) + end loop dna + end if + evaluate ($dna.num=$counter) + + evaluate ($counter=0) + while ($counter < $dna.num) loop dnap + evaluate ($counter=$counter+1) + patch deox reference=nil=(segid $dna.segid.$counter and + resid $dna.resid.$counter) end + end loop dnap + + + for $id in id ( &atom_select and name ca and resn PRO) loop cisp + + show (segid) (id $id) + evaluate ($segid=$result) + show (resid) (id $id) + evaluate ($resid=$result) + show (resn) (id $id) + evaluate ($resn=$result) + + identity (store9) ( &atom_select and ( name c and bondedto + ( name n and resid $resid and segid $segid ) ) ) + if ( $select = 1 ) then + show element (store9) (attribute store9 > 0) + evaluate ($id_prev=$result) + show (segid) (id $id_prev) + evaluate ($segid_prev=$result) + show (resid) (id $id_prev) + evaluate ($resid_prev=$result) + show (resn) (id $id_prev) + evaluate ($resn_prev=$result) + + pick dihedral + (name ca and segid $segid_prev and resid $resid_prev) + (name c and segid $segid_prev and resid $resid_prev) + (name n and segid $segid and resid $resid) + (name ca and segid $segid and resid $resid) + geometry + + evaluate ($dihedral=mod($result+360,360)) + + if ( $dihedral > 180 ) then + evaluate ($dihedral=$dihedral-360) + end if + + evaluate ($absdihedral=abs($dihedral)) + + if ( $absdihedral < 25 ) then + patch cisp reference=NIL=(segid $segid_prev and resid $resid_prev) end + display CIS peptide bon detected for residue $resid_prev + end if + + end if + + end loop cisp + + end if {! end if for patches based on first structure only !} + + if (&hydrogen_flag=false) then + delete selection=( hydrogen ) end + end if + + delete selection=( &atom_delete ) end + + inline @RUN:build-missing.cns + + !check for histidine protonation state if auto mode on + !but only for the first model + if ($nstruc = 1) then + if ($Toppar.autohis = true) then + inline @RUN:auto-his.cns + end if + end if + + energy end + evaluate ($bonded = $bond + $angl + $impr) + if ($bonded > 10000) then + minimize powell nstep=100 drop=10.0 nprint=10 end + end if + if ($bonded > 10000) then + energy end + evaluate ($bonded = $bond + $angl + $impr) + evaluate ($dispfile = $coor_outfile - ".pdb" + "_" + encode($nstruc) + ".warn") + set display=$dispfile end + display WARNING: the bonded energy is very high: + display Ebonded-total=$bonded Ebond=$bond Eangl=$angl Eimpr=$impr + display Something is possibly wrong with your input structure + close $dispfile end + end if + + show sum(1) (not(known)) + if ( $result < 100 ) then + for $id in id (not(known)) loop print + show (segid) (id $id) + evaluate ($segid=$result) + show (resn) (id $id) + evaluate ($resn=$result) + show (resid) (id $id) + evaluate ($resid=$result) + show (name) (id $id) + evaluate ($name=$result) + buffer message + display unknown coordinates for atom: $segid[a4] $resn[a4] $resid[a4] $name[a4] + end + end loop print + else + buffer message + display unknown coordinates for more than 100 atoms + end + end if + + if (&set_bfactor=true) then + do (b=&bfactor) ( all ) + else + show ave(b) (known and not(store9)) + do (b=$result) (store9 and (attr b < 0.01)) + end if + + if ($saprotocol.randorien eq true) then + if (&set_occupancy=true) then + do (q=&occupancy) ( all ) + end if + else + if (&set_occupancy=true) then + do (q=&occupancy) ( not(store9) ) + do (q=0.0) (store9) + end if + end if + + show sum(1) (store9) + if ( $result < 100 ) then + for $id in id (store9) loop print + show (segid) (id $id) + evaluate ($segid=$result) + show (resn) (id $id) + evaluate ($resn=$result) + show (resid) (id $id) + evaluate ($resid=$result) + show (name) (id $id) + evaluate ($name=$result) + buffer message + display coordinates built for atom: $segid[a4] $resn[a4] $resid[a4] $name[a4] + end + end loop print + else + buffer message + display coordinates built for more than 100 hundred atoms + end + end if + + set remarks=reset end + + buffer message + to=remarks + dump + end + buffer message reset end + + do (segid = $Toppar.prot_segid_$chain) (all) + + if ($nstruc = 1) then + write coordinates output=$coor_outfile end + end if + evaluate ($filename_$nstruc = $coor_outfile - ".pdb" + "_" + encode($nstruc) + ".pdb") + write coordinates output=$filename_$nstruc end + evaluate ($nstruc = $nstruc + 1) + + do (segid = " ") (all) + + end loop main + + do (segid = $Toppar.prot_segid_$chain) (all) + write structure output=$psf_outfile end + write structure output=$psf2_outfile end + + evaluate ($disfile = "BEGIN:file_" + encode($chain) + ".list") + set display=$disfile end + + evaluate ($num = 1) + while ($num < $nstruc) loop wrfile + evaluate ($outstring = """ + $filename_$num + """) + display $outstring + evaluate ($num = $num + 1) + end loop wrfile + + stop + + diff --git a/src/haddock/modules/flexref/cns/generate-water.inp b/src/haddock/modules/flexref/cns/generate-water.inp new file mode 100644 index 000000000..b16f8cad3 --- /dev/null +++ b/src/haddock/modules/flexref/cns/generate-water.inp @@ -0,0 +1,1010 @@ +! generate-water.inp +! Generate a solvated molecule and topology +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * +! * and from the CNS distriution of Brunger and Adams * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! +{+ file: generate-water.inp +} +{+ directory: general +} +{+ description: Generate coordinate and structure file for simple models +} +{+ comment: + This is designed to be a means of generating a coordinate + and structure file for commonly encountered models: protein + and/or DNA/RNA. The coordinates + are provided by the user in a single input PDB file. + Disulphide bonds will be automatically determined by distance. + If required generate hydrogens. Any atoms with unknown + coordinates can be automatically generated +} +{+ authors: Paul Adams and Axel Brunger +} +{+ copyright: Yale University +} + +{+ Adapted for use in HADDOCK by Alexandre Bonvin, Utrecht University Feb-2002 +} + +{- Guidelines for using this file: + - all strings must be quoted by double-quotes + - logical variables (true/false) are not quoted + - do not remove any evaluate statements from the file -} + +{- Special patches will have to be entered manually at the relevant points + in the file - see comments throughout the file -} + +{- begin block parameter definition -} define( + +{============================== important =================================} + +{* Different chains in the structure must have either unique segid or + chainid records. If this is no the case, the end of a chain must + be delimited by a TER card. *} + +{* A break in a chain can be detected automatically or should be delimited + by a BREAK card. In this case no patch (head, tail or link) will be + applied between the residues that bound the chain break. *} + +{* NB. The input PDB file must finish with an END statement *} + +{=========================== coordinate files =============================} + +{* coordinate file *} +{===>} coordinate_infile="/home/abonvin/software/haddock/examples/e2a.pdb"; + +{* convert chainid to segid if chainid is non-blank *} +{+ choice: true false +} +{===>} convert=false; + +{* separate chains by segid - a new segid starts a new chain *} +{+ choice: true false +} +{===>} separate=true; +{============================ renaming atoms ===============================} + +{* some atoms may need to be renamed in the topology database to conform + to what is present in the coordinate file *} + +{* delta carbon in isoleucine is named CD in CNS + what is it currently called in the coordinate file? *} +{* this will not be changed if left blank *} +{===>} ile_CD_becomes="CD1"; + +{* terminal oxygens are named OT1 and OT2 in CNS + what are they currently called in the coordinate file? *} +{* these will not be changed if left blank *} +{===>} OT1_becomes="O"; +{===>} OT2_becomes="OXT"; + +{======================= automatic mainchain breaks ========================} + +{* automatically detect mainchain breaks in proteins based on distance *} +{* the peptide link at break points will be removed *} +{+ choice: true false +} +{===>} auto_break=true; + +{* cutoff distance in Angstroms for identification of breaks *} +{* the default of 2.5A for peptide bonds should be reasonable for most cases. If the input + structure has bad geometry it may be necessary to increase this distance *} +{===>} pbreak_cutoff=3.5; +{===>} pcgbreak_cutoff=8.0; +{* the default of 2.5A for nucleic acid linkages should be reasonable for most cases. If the input + structure has bad geometry it may be necessary to increase this distance *} +{===>} dbreak_cutoff=4.5; + +{* file containing patches to delete peptide links *} +{===>} prot_break_infile="RUN:toppar/protein_break.top"; + +{* file containing patches to delete nucleic acid links *} +{===>} dna_break_infile="RUN:toppar/dna_break.top"; + +{======================= automatic disulphide bonds ========================} + +{* cutoff distance in Angstroms for identification of disulphides *} +{* the default of 3.0A should be reasonable for most cases. If the input + structure has bad geometry it may be necessary to increase this distance *} +{===>} disulphide_dist=3.0; + +{======================= automatic cyclic peptidic bond ====================} + +{* cutoff distance in Angstroms for identification of disulphides *} +{* the default of 3.0A should be reasonable for most cases. If the input + structure has bad geometry it may be necessary to increase this distance *} +{===>} cyclicpept_dist=1.5; + +{======================= automatic iron cluster bonds ======================} + +{* cutoff distance in Angstroms for identification of iron cluster bonds *} +{* the default of 8.0A should be reasonable for most cases. If the input + structure has bad geometry it may be necessary to increase this distance *} +{===>} iron1cluster_dist=5.0; +{===>} iron2cluster_dist=8.0; + +{======================= automatic cis peptide bonds =======================} + +{* select atoms to be included in calculation of omega angles *} +{* to define cis peptides*} +{===>} atom_select=(known and not hydrogen); + +{========================= RNA to DNA conversion ==========================} + +{* All nucleic acid residues initially have ribose sugars (rather than + deoxyribose). A patch must be applied to convert the ribose to deoxyribose + for DNA residues. Select those residues which need to have the patch + applied to make them DNA. *} +{* Make sure that the atom selection is specific for the nucleic acid + residues *} +{===>} dna_sele=(none); + +{========================= generate parameters =============================} + +{* hydrogen flag - determines whether hydrogens will be output *} +{* must be true for NMR, atomic resolution X-ray crystallography + or modelling. Set to false for most X-ray crystallographic + applications at resolution > 1A *} +{+ choice: true false +} +{===>} hydrogen_flag=true; + +{* which hydrogens to build *} +{+ choice: "all" "unknown" +} +{===>} hydrogen_build="all"; + +{* selection of atoms other than hydrogens for which coordinates + will be generated *} +{* to generate coordinates for all unknown atoms use: (not(known)) *} +{===>} atom_build=(not(known)); + +{* selection of atoms to be deleted *} +{* to delete no atoms use: (none) *} +{===>} atom_delete=(none); + +{* set bfactor flag *} +{+ choice: true false +} +{===>} set_bfactor=true; + +{* set bfactor value *} +{===>} bfactor=15.0; + +{* set occupancy flag *} +{+ choice: true false +} +{===>} set_occupancy=true; + +{* set occupancy value *} +{===>} occupancy=1.0; + +{============================= output files ================================} + +{* output structure file *} +{===>} structure_outfile="haddock.psf"; + +{* output coordinate file *} +{===>} coordinate_outfile="haddock.pdb"; + +{================== protein topology and parameter files ===================} + +{* protein topology file *} +{===>} prot_topology_infile="RUN:toppar/protein-allhdg5-4.top"; + +{* protein linkage file *} +{===>} prot_link_infile="RUN:toppar/protein-allhdg5-4.link"; + +{* protein parameter file *} +{===>} prot_parameter_infile="RUN:toppar/protein-allhdg5-4.param"; + +{================ nucleic acid topology and parameter files =================} + +{* nucleic acid topology file *} +{===>} nucl_topology_infile="RUN:toppar/dna-rna-allatom-hj-opls-1.3.top"; + +{* nucleic acid linkage file *} +{* use RUN:/toppar/dna-rna-pho.link for 5'-phosphate *} +{===>} nucl_link_infile="RUN:/toppar/dna-rna-1.3.link"; + +{* nucleic acid parameter file *} +{===>} nucl_parameter_infile="RUN:/toppar/dna-rna-allatom-hj-opls-1.3.param"; + +{================= carbohydrate topology and parameter files ===============} + +{* carbohydrate topology file *} +{===>} carbo_topology_infile="RUN:/toppar/carbohydrate.top"; + +{* carbohydrate parameter file *} +{===>} carbo_parameter_infile="RUN:/toppar/carbohydrate.param"; + +{================= solvent topology and parameter files ====================} + +{* solvent topology file *} +{===>} solv_topology_infile="RUN:/toppar/water-allhdg5-4.top"; + +{* solvent parameter file *} +{===>} solv_parameter_infile="RUN:/toppar/water-allhdg5-4.param"; + +{================= cofactor topology and parameter files ===================} + +{* co-factor topology file *} +{===>} cofac_topology_infile="RUN:/toppar/ligand.top"; + +{* co-factor linkage file *} +{===>} cofac_link_infile="RUN:toppar/ligand.pep"; + +{* co-factor parameter file *} +{===>} cofac_parameter_infile="RUN:/toppar/ligand.param"; + +{================= known ligands topology and parameter files ==============} + +{* ligands topology file *} +{===>} ligands_topology_infile="RUN:/toppar/fragment_probes.top"; + +{* ligands parameter file *} +{===>} ligands_parameter_infile="RUN:/toppar/fragment_probes.param"; + +{===================== ion topology and parameter files ====================} + +{* ion topology file *} +{===>} ion_topology_infile="RUN:/toppar/ion.top"; + +{* ion parameter file *} +{===>} ion_parameter_infile="RUN:/toppar/ion.param"; + +{===================== heme topology and parameter files ====================} + +{* heme topology file *} +{===>} heme_topology_infile="RUN:/toppar/hemes-allhdg.top"; + +{* heme parameter file *} +{===>} heme_parameter_infile="RUN:/toppar/hemes-allhdg.param"; + +{===================== default number of histidines for patching ===========} + + ) {- end block parameter definition -} + +@RUN:initialize.cns(iteration=$iteration;) + +@RUN:begin/iteration.cns(iteration=$iteration;) + +@RUN:run.cns( +iteration =$iteration; +filenames =$filenames; +data =$data; +iterations=$iterations; +saprotocol=$saprotocol; +refine =$refine; +toppar =$toppar; +analysis =$analysis; +) +! set abort=off end + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!The next line will be changed automatically from python: + evaluate ($chain = 1) +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + evaluate($topology_infile= "RUN:toppar/" + $Toppar.prot_top_$chain) + evaluate($parameter_infile= "RUN:toppar/" + $Toppar.prot_par_$chain) + evaluate($link_file= "RUN:toppar/" + $Toppar.prot_link_$chain) + evaluate($coor_infile= "RUN:data/sequence/" + $Toppar.prot_coor_$chain) + evaluate($coor_inlist= "RUN:data/sequence/file_" + encode($chain) + ".list") + evaluate($coor_outfile= "BEGIN:" + $Toppar.prot_root_$chain + ".pdb") + evaluate($psf_outfile= "BEGIN:" + $Toppar.prot_root_$chain + ".psf") + evaluate($psf2_outfile= "BEGIN:" + $Toppar.prot_coor_$chain - ".pdb" + ".psf") + evaluate($par_nonbonded= $Toppar.par_nonbonded) + + if ($Toppar.prot_segid_$chain="") then + evaluate($Toppar.prot_segid_$chain=encode($chain)) + end if + + evaluate ($log_level=quiet) + + topology + @@$topology_infile + if ( &BLANK%ion_topology_infile = false ) then + @@&ion_topology_infile + end if + if ( &BLANK%nucl_topology_infile = false ) then + @@&nucl_topology_infile + end if + if ( &BLANK%solv_topology_infile = false ) then + @@&solv_topology_infile + end if + if ( &BLANK%ligands_topology_infile = false ) then + @@&ligands_topology_infile + end if + if ( &BLANK%cofac_topology_infile = false ) then + @@&cofac_topology_infile + end if + if ( &BLANK%heme_topology_infile = false ) then + @@&heme_topology_infile + end if + if ( &BLANK%prot_break_infile = false ) then + @@&prot_break_infile + end if + if ( &BLANK%dna_break_infile = false ) then + @@&dna_break_infile + end if + end + + parameter + @@$parameter_infile + if ( &BLANK%ion_parameter_infile = false ) then + @@&ion_parameter_infile + end if + if ( &BLANK%nucl_parameter_infile = false ) then + @@&nucl_parameter_infile + end if + if ( &BLANK%solv_parameter_infile = false ) then + @@&solv_parameter_infile + end if + if ( &BLANK%ligands_parameter_infile = false ) then + @@&ligands_parameter_infile + end if + if ( &BLANK%cofac_parameter_infile = false ) then + @@&cofac_parameter_infile + end if + if ( &BLANK%heme_parameter_infile = false ) then + @@&heme_parameter_infile + end if + end + + segment + chain + if ( &convert = true ) then + convert=true + end if + if ( &separate = true ) then + separate=true + end if + @@$link_file + if ( &BLANK%nucl_link_infile = false ) then + @@&nucl_link_infile + end if + if ( &BLANK%cofac_link_infile = false ) then + @@&cofac_link_infile + end if + coordinates @@$coor_infile + end + end + + coordinates @@$coor_infile end + + if ( &BLANK%ile_CD_becomes = false ) then + do (name=&ile_CD_becomes) (resn ILE and name CD) + end if + if ( &BLANK%OT1_becomes = false ) then + do (name=&OT1_becomes) (name OT1) + end if + if ( &BLANK%OT2_becomes = false ) then + do (name=&OT2_becomes) (name OT2) + end if + + !for the histidine patches: + if ($Toppar.autohis = false) then + evaluate($hisd_counter=1) + while ($hisd_counter le $Toppar.nhisd_$chain) loop hisd + if ($Toppar.hisd_resid_$chain_$hisd_counter > 0) then + show (resn) (tag and resid $Toppar.hisd_resid_$chain_$hisd_counter) + if ($result eq "HIS") then + patch hisd reference=nil=(resid $Toppar.hisd_resid_$chain_$hisd_counter) end + end if + end if + evaluate($hisd_counter=$hisd_counter + 1) + end loop hisd + + evaluate($hise_counter=1) + while ($hise_counter le $Toppar.nhise_$chain) loop hise + if ($Toppar.hise_resid_$chain_$hise_counter > 0) then + show (resn) (tag and resid $Toppar.hise_resid_$chain_$hise_counter) + if ($result eq "HIS") then + patch hise reference=nil=(resid $Toppar.hise_resid_$chain_$hise_counter) end + end if + end if + evaluate($hise_counter=$hise_counter + 1) + end loop hise + end if + +! The following patches would define covalent bond between a CA+2 and oxygen ligands +! from Asp and Glu (first selection is amino-acid, second is ion) +! patch dca2 refe=1=(resid 25) refe=2=(resid 83) end +! patch dca2 refe=1=(resid 29) refe=2=(resid 83) end +! patch dca2 refe=1=(resid 35) refe=2=(resid 83) end +! patch eca2 refe=1=(resid 36) refe=2=(resid 83) end +! +! following patch is to attach a heme (resid YY) CAB atom to a cys (resid XX) +! patch phcb refe=1=(resid XX) refe=2=(resid YY) end +! following patch is to attach a heme (resid YY) CAC atom to a cys (resid XX) +! patch phcc refe=1=(resid XX) refe=2=(resid YY) end +! +! following patch is to define an isopeptide bond between a Cter and a Lys side-chain +! patch clys refe=1=(resid 72) refe=2=(resid 148) end +! +! following patch is to define an isopeptide bond between a Cter and a Lys side-chain +! patch clys refe=1=(resid 72) refe=2=(resid 148) end + + if ($Toppar.delenph = true) then + delete sele=(name H* and attr charge = 0) end + end if + + evaluate ($nstruc = 1) + for $file in ( @@$coor_inlist ) loop main + + set seed=$Saprotocol.iniseed end + + coor init end + coordinates + if ( &convert = true ) then + convert=true + end if + @@$file + + show sum(1) ( not(hydrogen) and not(known) ) + if ( $select = 0 ) then + display %INFO: There are no coordinates missing for non-hydrogen atoms + end if + + if ( $log_level = verbose ) then + set message=normal echo=on end + else + set message=off echo=off end + end if + + inline @RUN:build-missing.cns + + if ($nstruc = 1) then + + if ( &auto_break = true ) then + inline @RUN:prot_break.cns + inline @RUN:dna_break.cns + end if + +! check for disulphide bonds + + evaluate ($disu=0) + + for $id1 in id ( resn CYS and name SG ) loop dis1 + + show (segid) (id $id1) + evaluate ($segid1=$result) + show (resid) (id $id1) + evaluate ($resid1=$result) + + identity (store9) (all) + + for $id2 in id ( resn CYS and name SG and + ( attr store9 > $id1 ) ) loop dis2 + + show (segid) (id $id2) + evaluate ($segid2=$result) + show (resid) (id $id2) + evaluate ($resid2=$result) + + pick bond (id $id1) (id $id2) geometry + + if ( $result <= &disulphide_dist ) then + evaluate ($disu=$disu+1) + evaluate ($seg1.$disu=$segid1) + evaluate ($seg2.$disu=$segid2) + evaluate ($res1.$disu=$resid1) + evaluate ($res2.$disu=$resid2) + end if + + end loop dis2 + + end loop dis1 + + evaluate ($counter=1) + while ( $counter <= $disu ) loop disu + patch disu + reference=1=(segid $seg1.$counter and resid $res1.$counter) + reference=2=(segid $seg2.$counter and resid $res2.$counter) + end + buffer message + display disulphide added: from \ +$seg1.$counter[a4] $res1.$counter[a4] to $seg2.$counter[a4] $res2.$counter[a4] + end + evaluate ($counter=$counter+1) + end loop disu + +! check for cyclid peptidic bonds + + if ($Toppar.cyclicpept_$chain eq TRUE ) then + + evaluate ($cycp=0) + + for $id1 in id ( tag and name N ) loop cyp1 + + show (segid) (id $id1) + evaluate ($segid1=$result) + show (resid) (id $id1) + evaluate ($resid1=$result) + show (resn) (id $id1) + evaluate ($resn1=$result) + + for $id2 in id ( name C and bondedto (name O and not resid $resid1 ) ) loop cyp2 + + show (segid) (id $id2) + evaluate ($segid2=$result) + show (resid) (id $id2) + evaluate ($resid2=$result) + show (resn) (id $id2) + evaluate ($resn2=$result) + + evaluate ($rdiff = decode($resid2) - decode($resid1)) + + if ($rdiff gt 2) then + + pick bond (id $id1) (id $id2) geometry + + if ( $result <= &cyclicpept_dist ) then + evaluate ($cycp=$cycp+1) + evaluate ($seg1.$cycp=$segid1) + evaluate ($seg2.$cycp=$segid2) + evaluate ($res1.$cycp=$resid1) + evaluate ($res2.$cycp=$resid2) + evaluate ($rsn1.$cycp=$resn1) + evaluate ($rsn2.$cycp=$resn2) + end if + + end if + + end loop cyp2 + + end loop cyp1 + + evaluate ($counter=1) + + while ( $counter <= $cycp ) loop cypep + + evaluate ($ptype = PEPT) + evaluate ($patchdone = 0) + if ( $rsn2.$counter eq GLY) then + if ($rsn1.$counter eq PRO) then + evaluate ($ptype = PPGP) + evaluate ($patchdone = 1) + end if + if ($rsn1.$counter eq GLY) then + evaluate ($ptype = PPGG) + evaluate ($patchdone = 1) + end if + if ($patchdone eq 0) then + evaluate ($ptype = PPG1) + end if + else + if ($rsn1.$counter eq PRO) then + evaluate ($ptype = PEPP) + end if + if ($rsn1.$counter eq GLY) then + evaluate ($ptype = PPG2) + end if + end if + + patch $ptype + reference=+=(segid $seg1.$counter and resid $res1.$counter) + reference=-=(segid $seg2.$counter and resid $res2.$counter) + end + + buffer message + display cyclic peptide detected: peptidic bond added between \ +$seg1.$counter[a4] $res1.$counter[a4] and $seg2.$counter[a4] $res2.$counter[a4] + end + evaluate ($counter=$counter+1) + end loop cypep + + end if ! check for cyclic peptide + +! check for covalently-linked hemeC + + inline @RUN:covalheme.cns + + + ! check for covalently-linked Acetylated Nter to CYS + + inline @RUN:coval-ace-cys.cns + + evaluate ($ironclus=0) + + ! check for FE1 bonds in iron cluster + for $id1 in id ( resname CFE and name SG ) loop fes1 + + show (segid) (id $id1) + evaluate ($segid1=$result) + show (resid) (id $id1) + evaluate ($resid1=$result) + + identity (store9) (all) + + for $id2 in id ( resname CYF and name SG ) loop fes2 + + show (segid) (id $id2) + evaluate ($segid2=$result) + show (resid) (id $id2) + evaluate ($resid2=$result) + + pick bond (id $id1) (id $id2) geometry + + if ( $result <= &iron1cluster_dist ) then + evaluate ($ironclus=$ironclus+1) + evaluate ($seg1.$ironclus=$segid1) + evaluate ($seg2.$ironclus=$segid2) + evaluate ($res1.$ironclus=$resid1) + evaluate ($res2.$ironclus=$resid2) + end if + + end loop fes2 + + end loop fes1 + + evaluate ($counter=1) + while ( $counter <= $ironclus ) loop iron1 + patch sef1 + reference=1=(segid $seg1.$counter and resid $res1.$counter) + reference=2=(segid $seg2.$counter and resid $res2.$counter) + end + buffer message + display iron FE1 sulphur bond added: from $seg1.$counter[a4] $res1.$counter[a4] to $seg2.$counter[a4] $res2.$counter[a4] + end + evaluate ($counter=$counter+1) + end loop iron1 + + evaluate ($ironclus=0) + + ! check for FE2 bonds in iron cluster + for $id1 in id ( resname CFE and name SG ) loop fes1 + + show (segid) (id $id1) + evaluate ($segid1=$result) + show (resid) (id $id1) + evaluate ($resid1=$result) + + identity (store9) (all) + + for $id2 in id ( resname CYF and name SG ) loop fes2 + + show (segid) (id $id2) + evaluate ($segid2=$result) + show (resid) (id $id2) + evaluate ($resid2=$result) + + pick bond (id $id1) (id $id2) geometry + + if ( $result <= &iron2cluster_dist ) then + if ($result > &iron1cluster_dist ) then + evaluate ($ironclus=$ironclus+1) + evaluate ($seg1.$ironclus=$segid1) + evaluate ($seg2.$ironclus=$segid2) + evaluate ($res1.$ironclus=$resid1) + evaluate ($res2.$ironclus=$resid2) + end if + end if + + end loop fes2 + + end loop fes1 + + evaluate ($counter=1) + while ( $counter <= $ironclus ) loop iron2 + patch sef2 + reference=1=(segid $seg1.$counter and resid $res1.$counter) + reference=2=(segid $seg2.$counter and resid $res2.$counter) + end + buffer message + display iron FE2 sulphur bond added: from $seg1.$counter[a4] $res1.$counter[a4] to $seg2.$counter[a4] $res2.$counter[a4] + end + evaluate ($counter=$counter+1) + end loop iron2 + + + {- patching of RNA to DNA -} + evaluate ($counter=0) + if ($Toppar.dna_$chain eq TRUE) then + for $id in id ( tag and (resn ADE or resn CYT or resn THY or resn GUA or resn A or resn C or resn T or resn G) ) loop dna + evaluate ($counter=$counter+1) + show (segid) (id $id) + evaluate ($dna.segid.$counter=$result) + show (resid) (id $id) + evaluate ($dna.resid.$counter=$result) + end loop dna + end if + evaluate ($dna.num=$counter) + + evaluate ($counter=0) + while ($counter < $dna.num) loop dnap + evaluate ($counter=$counter+1) + patch deox reference=nil=(segid $dna.segid.$counter and + resid $dna.resid.$counter) end + end loop dnap + + + for $id in id ( &atom_select and name ca and resn PRO) loop cisp + + show (segid) (id $id) + evaluate ($segid=$result) + show (resid) (id $id) + evaluate ($resid=$result) + show (resn) (id $id) + evaluate ($resn=$result) + + identity (store9) ( &atom_select and ( name c and bondedto + ( name n and resid $resid and segid $segid ) ) ) + if ( $select = 1 ) then + show element (store9) (attribute store9 > 0) + evaluate ($id_prev=$result) + show (segid) (id $id_prev) + evaluate ($segid_prev=$result) + show (resid) (id $id_prev) + evaluate ($resid_prev=$result) + show (resn) (id $id_prev) + evaluate ($resn_prev=$result) + + pick dihedral + (name ca and segid $segid_prev and resid $resid_prev) + (name c and segid $segid_prev and resid $resid_prev) + (name n and segid $segid and resid $resid) + (name ca and segid $segid and resid $resid) + geometry + + evaluate ($dihedral=mod($result+360,360)) + + if ( $dihedral > 180 ) then + evaluate ($dihedral=$dihedral-360) + end if + + evaluate ($absdihedral=abs($dihedral)) + + if ( $absdihedral < 25 ) then + patch cisp reference=NIL=(segid $segid_prev and resid $resid_prev) end + display CIS peptide bon detected for residue $resid_prev + end if + + end if + + end loop cisp + + end if {! end if for patches based on first structure only !} + + if (&hydrogen_flag=false) then + delete selection=( hydrogen ) end + end if + + delete selection=( &atom_delete ) end + + inline @RUN:build-missing.cns + + !check for histidine protonation state if auto mode on + !but only for the first model + if ($nstruc = 1) then + if ($Toppar.autohis = true) then + inline @RUN:auto-his.cns + end if + end if + + energy end + evaluate ($bonded = $bond + $angl + $impr) + if ($bonded > 10000) then + minimize powell nstep=100 drop=10.0 nprint=10 end + end if + if ($bonded > 10000) then + energy end + evaluate ($bonded = $bond + $angl + $impr) + evaluate ($dispfile = $coor_outfile - ".pdb" + "_" + encode($nstruc) + ".warn") + set display=$dispfile end + display WARNING: the bonded energy is very high: + display Ebonded-total=$bonded Ebond=$bond Eangl=$angl Eimpr=$impr + display Something is possibly wrong with your input structure + close $dispfile end + end if + + show sum(1) (not(known)) + if ( $result < 100 ) then + for $id in id (not(known)) loop print + show (segid) (id $id) + evaluate ($segid=$result) + show (resn) (id $id) + evaluate ($resn=$result) + show (resid) (id $id) + evaluate ($resid=$result) + show (name) (id $id) + evaluate ($name=$result) + buffer message + display unknown coordinates for atom: $segid[a4] $resn[a4] $resid[a4] $name[a4] + end + end loop print + else + buffer message + display unknown coordinates for more than 100 atoms + end + end if + + if (&set_bfactor=true) then + do (b=&bfactor) ( all ) + else + show ave(b) (known and not(store9)) + do (b=$result) (store9 and (attr b < 0.01)) + end if + + if ($saprotocol.randorien eq true) then + if (&set_occupancy=true) then + do (q=&occupancy) ( all ) + end if + else + if (&set_occupancy=true) then + do (q=&occupancy) ( not(store9) ) + do (q=0.0) (store9) + end if + end if + + show sum(1) (store9) + if ( $result < 100 ) then + for $id in id (store9) loop print + show (segid) (id $id) + evaluate ($segid=$result) + show (resn) (id $id) + evaluate ($resn=$result) + show (resid) (id $id) + evaluate ($resid=$result) + show (name) (id $id) + evaluate ($name=$result) + buffer message + display coordinates built for atom: $segid[a4] $resn[a4] $resid[a4] $name[a4] + end + end loop print + else + buffer message + display coordinates built for more than 100 hundred atoms + end + end if + + set remarks=reset end + + buffer message + to=remarks + dump + end + buffer message reset end + + do (segid = $Toppar.prot_segid_$chain) (all) + + parameter + nbonds + repel=0.0 vswitch + nbxmod=5 atom cdiel shift vswitch + cutnb=9.5 ctofnb=8.5 ctonnb=6.5 eps=1.0 e14fac=0.4 inhibit 0.25 + wmin=0.5 + tolerance 0.5 + end + end + + fix sele=(not all) end + + igroup interaction (all) (all) end + energy end + + !here: loop over #waterensemble (rotate) + eval($waterstruc = 0) + while ($waterstruc < $data.waterensemble) loop waterensemble + igroup interaction (all) (all) end + eval($waterstruc = $waterstruc + 1) + if ($SaProtocol.randorien eq true) then + @RUN:rotate_pdb.cns + end if + + ! generate water layer + do (segid = "PROT") (segid $Toppar.prot_segid_$chain) + @RUN:generate_water.cns + + parameter + bond (resn WAT ) (resn WAT ) 1000 TOKEN + angle (resn WAT ) (resn WAT ) (resn WAT ) 500 TOKEN + bond (resn HOH ) (resn HOH ) 1000 TOKEN + angle (resn HOH ) (resn HOH ) (resn HOH ) 500 TOKEN + bond (resn TIP*) (resn TIP*) 1000 TOKEN + angle (resn TIP*) (resn TIP*) (resn TIP*) 500 TOKEN + end + + do (segid = $Toppar.prot_segid_$chain) (not (resn WAT or resn HOH or resn TIP*)) + + do (q=&occupancy) (resn WAT or resn HOH or resn TIP*) + + delete sele=(byres ((resn WAT or resn HOH or resn TIP*) and not (segid $Toppar.prot_segid_$chain and not hydro) around 7.0) ) end + + fix sele=(not (resn WAT or resn HOH or resn TIP*)) end + igroup interaction (all) (all) end + + flags exclude * include bond angl impr dihe vdw elec harm end + + energy end + minimize powell + nstep=200 + drop=40.0 + nprint=5 + end + energy end + + {- Friction coefficient, in 1/ps. -} + do (mass =100) (all) + do (fbeta = 20. {1/ps} ) ( all ) + + evaluate ($nstep=1000) + evaluate ($timestep=0.001) + + evaluate ($bath=600.0) + do (vx=maxwell($bath)) (all) + do (vy=maxwell($bath)) (all) + do (vz=maxwell($bath)) (all) + + for $bath in (600 500 400 300) loop cool + fix sele=(not (resn WAT or resn HOH or resn TIP*)) end + dynamics cartesian + nstep=$nstep + timestep=$timestep + tcoupling=true temperature=$bath + nprint=200 + end + end loop cool + + delete sele=(byres ((resn WAT or resn HOH or resn TIP*) and not (segid $Toppar.prot_segid_$chain and not hydro) around 5.5) ) end + + fix sele=(not (resn WAT or resn HOH or resn TIP*)) end + igroup interaction (all) (all) end + + energy end + minimize powell + nstep=200 + drop=40.0 + nprint=5 + end + energy end + + if ($data.solvate_method eq "restraints") then + delete sele= (byres (name oh2 and not (resn arg or resn asn or resn asp or resn gln or resn glu + or resn his* or resn lys or resn pro or resn ser or resn thr or resn tyr) around $data.water_restraint_initial)) end + end if + + !renumber solvent molecules + do (store1 = decode(resid)) (all) + show max (store1) (not (resn WAT or resn HOH or resn TIP*)) + evaluate ($counter=$result+1) + for $id in id ((resn WAT or resn HOH or resn TIP*) and (name OH2 or name O)) loop sol + eval ($rstr=encode($counter)) + do (resid=$rstr) (bygroup(id $id)) + eval ($counter=$counter+1) + end loop sol + + do (segid = $Toppar.prot_segid_$chain) (not (resn WAT or resn HOH or resn TIP*)) + eval ($waterseg="WA" + encode($chain)) + do (segid = $waterseg) (resn WAT or resn HOH or resn TIP*) + + if ($nstruc = 1) then + evaluate ($wateroutfile=$coor_outfile -".pdb" + "_water.pdbw") + write coordinates sele = (not (resn WAT or resn HOH or resn TIP*)) output=$coor_outfile end + write coordinates sele = (resn WAT or resn HOH or resn TIP*) output=$wateroutfile end + end if + evaluate ($filename_$nstruc = $coor_outfile - ".pdb" + "_" + encode($nstruc) + ".pdb") + evaluate ($wateroutfile_$nstruc=$coor_outfile -".pdb" + "_" + encode($nstruc)+ "_water.pdbw") + write coordinates sele = (not (resn WAT or resn HOH or resn TIP*)) output=$filename_$nstruc end + write coordinates sele = (resn WAT or resn HOH or resn TIP*) output=$wateroutfile_$nstruc end + evaluate ($nstruc = $nstruc + 1) + + dele sele=(resn WAT or resn HOH or resn TIP*) end + end loop waterensemble + + do (segid = " ") (all) + + end loop main + + do (segid = $Toppar.prot_segid_$chain) (all) + write structure output=$psf_outfile end + write structure output=$psf2_outfile end + + evaluate ($disfile = "BEGIN:file_" + encode($chain) + ".list") + set display=$disfile end + + evaluate ($num = 1) + while ($num < $nstruc) loop wrfile + evaluate ($outstring = """ + $filename_$num + """) + display $outstring + evaluate ($num = $num + 1) + end loop wrfile + + stop + + diff --git a/src/haddock/modules/flexref/cns/generate.inp b/src/haddock/modules/flexref/cns/generate.inp new file mode 100644 index 000000000..c0b0ee8f6 --- /dev/null +++ b/src/haddock/modules/flexref/cns/generate.inp @@ -0,0 +1,896 @@ +! generate.inp +! Generates missing coordinates and topology +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * +! * and from the CNS distriution of Brunger and Adams * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! +{+ file: generate.inp +} +{+ directory: general +} +{+ description: Generate coordinate and structure file for simple models +} +{+ comment: + This is designed to be a means of generating a coordinate + and structure file for commonly encountered models: protein + and/or DNA/RNA. The coordinates + are provided by the user in a single input PDB file. + Disulphide bonds will be automatically determined by distance. + If required generate hydrogens. Any atoms with unknown + coordinates can be automatically generated +} +{+ authors: Paul Adams and Axel Brunger +} +{+ copyright: Yale University +} + +{+ Adapted for use in HADDOCK by Alexandre Bonvin, Utrecht University Feb-2002 +} + +{- Guidelines for using this file: + - all strings must be quoted by double-quotes + - logical variables (true/false) are not quoted + - do not remove any evaluate statements from the file -} + +{- Special patches will have to be entered manually at the relevant points + in the file - see comments throughout the file -} + +{- begin block parameter definition -} define( + +{============================== important =================================} + +{* Different chains in the structure must have either unique segid or + chainid records. If this is no the case, the end of a chain must + be delimited by a TER card. *} + +{* A break in a chain can be detected automatically or should be delimited + by a BREAK card. In this case no patch (head, tail or link) will be + applied between the residues that bound the chain break. *} + +{* NB. The input PDB file must finish with an END statement *} + +{=========================== coordinate files =============================} + +{* coordinate file *} +{===>} coordinate_infile="/home/abonvin/software/haddock/examples/e2a.pdb"; + +{* convert chainid to segid if chainid is non-blank *} +{+ choice: true false +} +{===>} convert=false; + +{* separate chains by segid - a new segid starts a new chain *} +{+ choice: true false +} +{===>} separate=true; +{============================ renaming atoms ===============================} + +{* some atoms may need to be renamed in the topology database to conform + to what is present in the coordinate file *} + +{* delta carbon in isoleucine is named CD in CNS + what is it currently called in the coordinate file? *} +{* this will not be changed if left blank *} +{===>} ile_CD_becomes="CD1"; + +{* terminal oxygens are named OT1 and OT2 in CNS + what are they currently called in the coordinate file? *} +{* these will not be changed if left blank *} +{===>} OT1_becomes="O"; +{===>} OT2_becomes="OXT"; + +{======================= automatic mainchain breaks ========================} + +{* automatically detect mainchain breaks in proteins based on distance *} +{* the peptide link at break points will be removed *} +{+ choice: true false +} +{===>} auto_break=true; + +{* cutoff distance in Angstroms for identification of breaks *} +{* the default of 2.5A for peptide bonds should be reasonable for most cases. If the input + structure has bad geometry it may be necessary to increase this distance *} +{===>} pbreak_cutoff=3.5; +{===>} pcgbreak_cutoff=8.0; +{* the default of 2.5A for nucleic acid linkages should be reasonable for most cases. If the input + structure has bad geometry it may be necessary to increase this distance *} +{===>} dbreak_cutoff=4.5; + +{* file containing patches to delete peptide links *} +{===>} prot_break_infile="RUN:toppar/protein_break.top"; + +{* file containing patches to delete nucleic acid links *} +{===>} dna_break_infile="RUN:toppar/dna_break.top"; + +{======================= automatic disulphide bonds ========================} + +{* cutoff distance in Angstroms for identification of disulphides *} +{* the default of 3.0A should be reasonable for most cases. If the input + structure has bad geometry it may be necessary to increase this distance *} +{===>} disulphide_dist=3.0; + +{======================= automatic cyclic peptidic bond ====================} + +{* cutoff distance in Angstroms for identification of disulphides *} +{* the default of 3.0A should be reasonable for most cases. If the input + structure has bad geometry it may be necessary to increase this distance *} +{===>} cyclicpept_dist=1.5; + +{======================= automatic iron cluster bonds ======================} + +{* cutoff distance in Angstroms for identification of iron cluster bonds *} +{* the default of 8.0A should be reasonable for most cases. If the input + structure has bad geometry it may be necessary to increase this distance *} +{===>} iron1cluster_dist=5.0; +{===>} iron2cluster_dist=8.0; + +{======================= automatic cis peptide bonds =======================} + +{* select atoms to be included in calculation of omega angles *} +{* to define cis peptides*} +{===>} atom_select=(known and not hydrogen); + +{========================= RNA to DNA conversion ==========================} + +{* All nucleic acid residues initially have ribose sugars (rather than + deoxyribose). A patch must be applied to convert the ribose to deoxyribose + for DNA residues. Select those residues which need to have the patch + applied to make them DNA. *} +{* Make sure that the atom selection is specific for the nucleic acid + residues *} +{===>} dna_sele=(none); + +{========================= generate parameters =============================} + +{* hydrogen flag - determines whether hydrogens will be output *} +{* must be true for NMR, atomic resolution X-ray crystallography + or modelling. Set to false for most X-ray crystallographic + applications at resolution > 1A *} +{+ choice: true false +} +{===>} hydrogen_flag=true; + +{* which hydrogens to build *} +{+ choice: "all" "unknown" +} +{===>} hydrogen_build="all"; + +{* selection of atoms other than hydrogens for which coordinates + will be generated *} +{* to generate coordinates for all unknown atoms use: (not(known)) *} +{===>} atom_build=(not(known)); + +{* selection of atoms to be deleted *} +{* to delete no atoms use: (none) *} +{===>} atom_delete=(none); + +{* set bfactor flag *} +{+ choice: true false +} +{===>} set_bfactor=true; + +{* set bfactor value *} +{===>} bfactor=15.0; + +{* set occupancy flag *} +{+ choice: true false +} +{===>} set_occupancy=true; + +{* set occupancy value *} +{===>} occupancy=1.0; + +{============================= output files ================================} + +{* output structure file *} +{===>} structure_outfile="haddock.psf"; + +{* output coordinate file *} +{===>} coordinate_outfile="haddock.pdb"; + +{================== protein topology and parameter files ===================} + +{* protein topology file *} +{===>} prot_topology_infile="RUN:toppar/protein-allhdg5-4.top"; + +{* protein linkage file *} +{===>} prot_link_infile="RUN:toppar/protein-allhdg5-4.link"; + +{* protein parameter file *} +{===>} prot_parameter_infile="RUN:toppar/protein-allhdg5-4.param"; + +{================ nucleic acid topology and parameter files =================} + +{* nucleic acid topology file *} +{===>} nucl_topology_infile="RUN:toppar/dna-rna-allatom-hj-opls-1.3.top"; + +{* nucleic acid linkage file *} +{* use RUN:/toppar/dna-rna-pho.link for 5'-phosphate *} +{===>} nucl_link_infile="RUN:/toppar/dna-rna-1.3.link"; + +{* nucleic acid parameter file *} +{===>} nucl_parameter_infile="RUN:/toppar/dna-rna-allatom-hj-opls-1.3.param"; + +{================= carbohydrate topology and parameter files ===============} + +{* carbohydrate topology file *} +{===>} carbo_topology_infile="RUN:/toppar/carbohydrate.top"; + +{* carbohydrate parameter file *} +{===>} carbo_parameter_infile="RUN:/toppar/carbohydrate.param"; + +{================= solvent topology and parameter files ====================} + +{* solvent topology file *} +{===>} solv_topology_infile="RUN:/toppar/water-allhdg5-4.top"; + +{* solvent parameter file *} +{===>} solv_parameter_infile="RUN:/toppar/water-allhdg5-4.param"; + +{================= cofactor topology and parameter files ===================} + +{* co-factor topology file *} +{===>} cofac_topology_infile="RUN:/toppar/ligand.top"; + +{* co-factor linkage file *} +{===>} cofac_link_infile="RUN:toppar/ligand.pep"; + +{* co-factor parameter file *} +{===>} cofac_parameter_infile="RUN:/toppar/ligand.param"; + +{================= known ligands topology and parameter files ==============} + +{* ligands topology file *} +{===>} ligands_topology_infile="RUN:/toppar/fragment_probes.top"; + +{* ligands parameter file *} +{===>} ligands_parameter_infile="RUN:/toppar/fragment_probes.param"; + +{===================== ion topology and parameter files ====================} + +{* ion topology file *} +{===>} ion_topology_infile="RUN:/toppar/ion.top"; + +{* ion parameter file *} +{===>} ion_parameter_infile="RUN:/toppar/ion.param"; + +{===================== heme topology and parameter files ====================} + +{* heme topology file *} +{===>} heme_topology_infile="RUN:/toppar/hemes-allhdg.top"; + +{* heme parameter file *} +{===>} heme_parameter_infile="RUN:/toppar/hemes-allhdg.param"; + +{===================== default number of histidines for patching ===========} + + ) {- end block parameter definition -} + +@RUN:initialize.cns(iteration=$iteration;) + +@RUN:begin/iteration.cns(iteration=$iteration;) + +@RUN:run.cns( +iteration =$iteration; +filenames =$filenames; +data =$data; +iterations=$iterations; +saprotocol=$saprotocol; +refine =$refine; +toppar =$toppar; +analysis =$analysis; +) +! set abort=off end + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!The next line will be changed automatically from python: + evaluate ($chain = 1) +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + + evaluate($topology_infile= "RUN:toppar/" + $Toppar.prot_top_$chain) + evaluate($parameter_infile= "RUN:toppar/" + $Toppar.prot_par_$chain) + evaluate($link_file= "RUN:toppar/" + $Toppar.prot_link_$chain) + evaluate($coor_infile= "RUN:data/sequence/" + $Toppar.prot_coor_$chain) + evaluate($coor_inlist= "RUN:data/sequence/file_" + encode($chain) + ".list") + evaluate($coor_outfile= "BEGIN:" + $Toppar.prot_root_$chain + ".pdb") + evaluate($psf_outfile= "BEGIN:" + $Toppar.prot_root_$chain + ".psf") + evaluate($psf2_outfile= "BEGIN:" + $Toppar.prot_coor_$chain - ".pdb" + ".psf") + evaluate($par_nonbonded= $Toppar.par_nonbonded) + + if ($Toppar.prot_segid_$chain="") then + evaluate($Toppar.prot_segid_$chain=encode($chain)) + end if + + evaluate ($log_level=quiet) + + topology + @@$topology_infile + if ( &BLANK%ion_topology_infile = false ) then + @@&ion_topology_infile + end if + if ( &BLANK%nucl_topology_infile = false ) then + @@&nucl_topology_infile + end if + if ( &BLANK%solv_topology_infile = false ) then + @@&solv_topology_infile + end if + if ( &BLANK%ligands_topology_infile = false ) then + @@&ligands_topology_infile + end if + if ( &BLANK%cofac_topology_infile = false ) then + @@&cofac_topology_infile + end if + if ( &BLANK%heme_topology_infile = false ) then + @@&heme_topology_infile + end if + if ( &BLANK%prot_break_infile = false ) then + @@&prot_break_infile + end if + if ( &BLANK%dna_break_infile = false ) then + @@&dna_break_infile + end if + end + + parameter + @@$parameter_infile + if ( &BLANK%ion_parameter_infile = false ) then + @@&ion_parameter_infile + end if + if ( &BLANK%nucl_parameter_infile = false ) then + @@&nucl_parameter_infile + end if + if ( &BLANK%solv_parameter_infile = false ) then + @@&solv_parameter_infile + end if + if ( &BLANK%ligands_parameter_infile = false ) then + @@&ligands_parameter_infile + end if + if ( &BLANK%cofac_parameter_infile = false ) then + @@&cofac_parameter_infile + end if + if ( &BLANK%heme_parameter_infile = false ) then + @@&heme_parameter_infile + end if + end + + segment + chain + if ( &convert = true ) then + convert=true + end if + if ( &separate = true ) then + separate=true + end if + @@$link_file + if ( &BLANK%nucl_link_infile = false ) then + @@&nucl_link_infile + end if + if ( &BLANK%cofac_link_infile = false ) then + @@&cofac_link_infile + end if + coordinates @@$coor_infile + end + end + + coordinates @@$coor_infile end + + if ( &BLANK%ile_CD_becomes = false ) then + do (name=&ile_CD_becomes) (resn ILE and name CD) + end if + if ( &BLANK%OT1_becomes = false ) then + do (name=&OT1_becomes) (name OT1) + end if + if ( &BLANK%OT2_becomes = false ) then + do (name=&OT2_becomes) (name OT2) + end if + + !for the histidine patches: + if ($Toppar.autohis = false) then + evaluate($hisd_counter=1) + while ($hisd_counter le $Toppar.nhisd_$chain) loop hisd + if ($Toppar.hisd_resid_$chain_$hisd_counter > 0) then + show (resn) (tag and resid $Toppar.hisd_resid_$chain_$hisd_counter) + if ($result eq "HIS") then + patch hisd reference=nil=(resid $Toppar.hisd_resid_$chain_$hisd_counter) end + end if + end if + evaluate($hisd_counter=$hisd_counter + 1) + end loop hisd + + evaluate($hise_counter=1) + while ($hise_counter le $Toppar.nhise_$chain) loop hise + if ($Toppar.hise_resid_$chain_$hise_counter > 0) then + show (resn) (tag and resid $Toppar.hise_resid_$chain_$hise_counter) + if ($result eq "HIS") then + patch hise reference=nil=(resid $Toppar.hise_resid_$chain_$hise_counter) end + end if + end if + evaluate($hise_counter=$hise_counter + 1) + end loop hise + end if + +! The following patches would define covalent bond between a CA+2 and oxygen ligands +! from Asp and Glu (first selection is amino-acid, second is ion) +! patch dca2 refe=1=(resid 25) refe=2=(resid 83) end +! patch dca2 refe=1=(resid 29) refe=2=(resid 83) end +! patch dca2 refe=1=(resid 35) refe=2=(resid 83) end +! patch eca2 refe=1=(resid 36) refe=2=(resid 83) end +! +! following patch is to attach a heme (resid YY) CAB atom to a cys (resid XX) +! patch phcb refe=1=(resid XX) refe=2=(resid YY) end +! following patch is to attach a heme (resid YY) CAC atom to a cys (resid XX) +! patch phcc refe=1=(resid XX) refe=2=(resid YY) end +! +! following patch is to define an isopeptide bond between a Cter and a Lys side-chain +! patch clys refe=1=(resid 72) refe=2=(resid 148) end +! +! following patch is to define an isopeptide bond between a Cter and a Lys side-chain +! patch clys refe=1=(resid 72) refe=2=(resid 148) end + + inline @RUN:patch-types-cg.cns + inline @RUN:patch-bb-cg.cns + + if ($Toppar.delenph = true) then + delete sele=(name H* and attr charge = 0) end + end if + + evaluate ($nstruc = 1) + for $file in ( @@$coor_inlist ) loop main + + set seed=$Saprotocol.iniseed end + + coor init end + coordinates + if ( &convert = true ) then + convert=true + end if + @@$file + + show sum(1) ( not(hydrogen) and not(known) ) + if ( $select = 0 ) then + display %INFO: There are no coordinates missing for non-hydrogen atoms + end if + + if ( $log_level = verbose ) then + set message=normal echo=on end + else + set message=off echo=off end + end if + + inline @RUN:build-missing.cns + + if ($nstruc = 1) then + + if ( &auto_break = true ) then + inline @RUN:prot_break.cns + inline @RUN:dna_break.cns + end if + +! check for disulphide bonds + + evaluate ($disu=0) + + for $id1 in id ( resn CYS and name SG ) loop dis1 + + show (segid) (id $id1) + evaluate ($segid1=$result) + show (resid) (id $id1) + evaluate ($resid1=$result) + + identity (store9) (all) + + for $id2 in id ( resn CYS and name SG and + ( attr store9 > $id1 ) ) loop dis2 + + show (segid) (id $id2) + evaluate ($segid2=$result) + show (resid) (id $id2) + evaluate ($resid2=$result) + + pick bond (id $id1) (id $id2) geometry + + if ( $result <= &disulphide_dist ) then + evaluate ($disu=$disu+1) + evaluate ($seg1.$disu=$segid1) + evaluate ($seg2.$disu=$segid2) + evaluate ($res1.$disu=$resid1) + evaluate ($res2.$disu=$resid2) + end if + + end loop dis2 + + end loop dis1 + + evaluate ($counter=1) + while ( $counter <= $disu ) loop disu + patch disu + reference=1=(segid $seg1.$counter and resid $res1.$counter) + reference=2=(segid $seg2.$counter and resid $res2.$counter) + end + buffer message + display disulphide added: from \ +$seg1.$counter[a4] $res1.$counter[a4] to $seg2.$counter[a4] $res2.$counter[a4] + end + evaluate ($counter=$counter+1) + end loop disu + +! check for cyclid peptidic bonds + + if ($Toppar.cyclicpept_$chain eq TRUE ) then + + evaluate ($cycp=0) + + for $id1 in id ( tag and name N ) loop cyp1 + + show (segid) (id $id1) + evaluate ($segid1=$result) + show (resid) (id $id1) + evaluate ($resid1=$result) + show (resn) (id $id1) + evaluate ($resn1=$result) + + for $id2 in id ( name C and bondedto (name O and not resid $resid1 ) ) loop cyp2 + + show (segid) (id $id2) + evaluate ($segid2=$result) + show (resid) (id $id2) + evaluate ($resid2=$result) + show (resn) (id $id2) + evaluate ($resn2=$result) + + evaluate ($rdiff = decode($resid2) - decode($resid1)) + + if ($rdiff gt 2) then + + pick bond (id $id1) (id $id2) geometry + + if ( $result <= &cyclicpept_dist ) then + evaluate ($cycp=$cycp+1) + evaluate ($seg1.$cycp=$segid1) + evaluate ($seg2.$cycp=$segid2) + evaluate ($res1.$cycp=$resid1) + evaluate ($res2.$cycp=$resid2) + evaluate ($rsn1.$cycp=$resn1) + evaluate ($rsn2.$cycp=$resn2) + end if + + end if + + end loop cyp2 + + end loop cyp1 + + evaluate ($counter=1) + + while ( $counter <= $cycp ) loop cypep + + evaluate ($ptype = PEPT) + evaluate ($patchdone = 0) + if ( $rsn2.$counter eq GLY) then + if ($rsn1.$counter eq PRO) then + evaluate ($ptype = PPGP) + evaluate ($patchdone = 1) + end if + if ($rsn1.$counter eq GLY) then + evaluate ($ptype = PPGG) + evaluate ($patchdone = 1) + end if + if ($patchdone eq 0) then + evaluate ($ptype = PPG1) + end if + else + if ($rsn1.$counter eq PRO) then + evaluate ($ptype = PEPP) + end if + if ($rsn1.$counter eq GLY) then + evaluate ($ptype = PPG2) + end if + end if + + patch $ptype + reference=+=(segid $seg1.$counter and resid $res1.$counter) + reference=-=(segid $seg2.$counter and resid $res2.$counter) + end + + buffer message + display cyclic peptide detected: peptidic bond added between \ +$seg1.$counter[a4] $res1.$counter[a4] and $seg2.$counter[a4] $res2.$counter[a4] + end + evaluate ($counter=$counter+1) + end loop cypep + + end if ! check for cyclic peptide + +! check for covalently-linked hemeC + + inline @RUN:covalheme.cns + + + ! check for covalently-linked Acetylated Nter to CYS + + inline @RUN:coval-ace-cys.cns + + evaluate ($ironclus=0) + + ! check for FE1 bonds in iron cluster + for $id1 in id ( resname CFE and name SG ) loop fes1 + + show (segid) (id $id1) + evaluate ($segid1=$result) + show (resid) (id $id1) + evaluate ($resid1=$result) + + identity (store9) (all) + + for $id2 in id ( resname CYF and name SG ) loop fes2 + + show (segid) (id $id2) + evaluate ($segid2=$result) + show (resid) (id $id2) + evaluate ($resid2=$result) + + pick bond (id $id1) (id $id2) geometry + + if ( $result <= &iron1cluster_dist ) then + evaluate ($ironclus=$ironclus+1) + evaluate ($seg1.$ironclus=$segid1) + evaluate ($seg2.$ironclus=$segid2) + evaluate ($res1.$ironclus=$resid1) + evaluate ($res2.$ironclus=$resid2) + end if + + end loop fes2 + + end loop fes1 + + evaluate ($counter=1) + while ( $counter <= $ironclus ) loop iron1 + patch sef1 + reference=1=(segid $seg1.$counter and resid $res1.$counter) + reference=2=(segid $seg2.$counter and resid $res2.$counter) + end + buffer message + display iron FE1 sulphur bond added: from $seg1.$counter[a4] $res1.$counter[a4] to $seg2.$counter[a4] $res2.$counter[a4] + end + evaluate ($counter=$counter+1) + end loop iron1 + + evaluate ($ironclus=0) + + ! check for FE2 bonds in iron cluster + for $id1 in id ( resname CFE and name SG ) loop fes1 + + show (segid) (id $id1) + evaluate ($segid1=$result) + show (resid) (id $id1) + evaluate ($resid1=$result) + + identity (store9) (all) + + for $id2 in id ( resname CYF and name SG ) loop fes2 + + show (segid) (id $id2) + evaluate ($segid2=$result) + show (resid) (id $id2) + evaluate ($resid2=$result) + + pick bond (id $id1) (id $id2) geometry + + if ( $result <= &iron2cluster_dist ) then + if ($result > &iron1cluster_dist ) then + evaluate ($ironclus=$ironclus+1) + evaluate ($seg1.$ironclus=$segid1) + evaluate ($seg2.$ironclus=$segid2) + evaluate ($res1.$ironclus=$resid1) + evaluate ($res2.$ironclus=$resid2) + end if + end if + + end loop fes2 + + end loop fes1 + + evaluate ($counter=1) + while ( $counter <= $ironclus ) loop iron2 + patch sef2 + reference=1=(segid $seg1.$counter and resid $res1.$counter) + reference=2=(segid $seg2.$counter and resid $res2.$counter) + end + buffer message + display iron FE2 sulphur bond added: from $seg1.$counter[a4] $res1.$counter[a4] to $seg2.$counter[a4] $res2.$counter[a4] + end + evaluate ($counter=$counter+1) + end loop iron2 + + + {- patching of RNA to DNA -} + evaluate ($counter=0) + if ($Toppar.dna_$chain eq TRUE) then + for $id in id ( tag and (resn ADE or resn CYT or resn THY or resn GUA or resn A or resn C or resn T or resn G) ) loop dna + evaluate ($counter=$counter+1) + show (segid) (id $id) + evaluate ($dna.segid.$counter=$result) + show (resid) (id $id) + evaluate ($dna.resid.$counter=$result) + end loop dna + end if + evaluate ($dna.num=$counter) + + evaluate ($counter=0) + while ($counter < $dna.num) loop dnap + evaluate ($counter=$counter+1) + patch deox reference=nil=(segid $dna.segid.$counter and + resid $dna.resid.$counter) end + end loop dnap + + + for $id in id ( &atom_select and name ca and resn PRO) loop cisp + + show (segid) (id $id) + evaluate ($segid=$result) + show (resid) (id $id) + evaluate ($resid=$result) + show (resn) (id $id) + evaluate ($resn=$result) + + identity (store9) ( &atom_select and ( name c and bondedto + ( name n and resid $resid and segid $segid ) ) ) + if ( $select = 1 ) then + show element (store9) (attribute store9 > 0) + evaluate ($id_prev=$result) + show (segid) (id $id_prev) + evaluate ($segid_prev=$result) + show (resid) (id $id_prev) + evaluate ($resid_prev=$result) + show (resn) (id $id_prev) + evaluate ($resn_prev=$result) + + pick dihedral + (name ca and segid $segid_prev and resid $resid_prev) + (name c and segid $segid_prev and resid $resid_prev) + (name n and segid $segid and resid $resid) + (name ca and segid $segid and resid $resid) + geometry + + evaluate ($dihedral=mod($result+360,360)) + + if ( $dihedral > 180 ) then + evaluate ($dihedral=$dihedral-360) + end if + + evaluate ($absdihedral=abs($dihedral)) + + if ( $absdihedral < 25 ) then + patch cisp reference=NIL=(segid $segid_prev and resid $resid_prev) end + display CIS peptide bon detected for residue $resid_prev + end if + + end if + + end loop cisp + + end if {! end if for patches based on first structure only !} + + if (&hydrogen_flag=false) then + delete selection=( hydrogen ) end + end if + + delete selection=( &atom_delete ) end + + inline @RUN:build-missing.cns + + !check for histidine protonation state if auto mode on + !but only for the first model + if ($nstruc = 1) then + if ($Toppar.autohis = true) then + inline @RUN:auto-his.cns + end if + end if + + energy end + evaluate ($bonded = $bond + $angl + $impr) + if ($bonded > 10000) then + minimize powell nstep=100 drop=10.0 nprint=10 end + end if + if ($bonded > 10000) then + energy end + evaluate ($bonded = $bond + $angl + $impr) + evaluate ($dispfile = $coor_outfile - ".pdb" + "_" + encode($nstruc) + ".warn") + set display=$dispfile end + display WARNING: the bonded energy is very high: + display Ebonded-total=$bonded Ebond=$bond Eangl=$angl Eimpr=$impr + display Something is possibly wrong with your input structure + close $dispfile end + end if + + show sum(1) (not(known)) + if ( $result < 100 ) then + for $id in id (not(known)) loop print + show (segid) (id $id) + evaluate ($segid=$result) + show (resn) (id $id) + evaluate ($resn=$result) + show (resid) (id $id) + evaluate ($resid=$result) + show (name) (id $id) + evaluate ($name=$result) + buffer message + display unknown coordinates for atom: $segid[a4] $resn[a4] $resid[a4] $name[a4] + end + end loop print + else + buffer message + display unknown coordinates for more than 100 atoms + end + end if + + if (&set_bfactor=true) then + do (b=&bfactor) ( all ) + else + show ave(b) (known and not(store9)) + do (b=$result) (store9 and (attr b < 0.01)) + end if + + if ($saprotocol.randorien eq true) then + if (&set_occupancy=true) then + do (q=&occupancy) ( all ) + end if + else + if (&set_occupancy=true) then + do (q=&occupancy) ( not(store9) ) + do (q=0.0) (store9) + end if + end if + + show sum(1) (store9) + if ( $result < 100 ) then + for $id in id (store9) loop print + show (segid) (id $id) + evaluate ($segid=$result) + show (resn) (id $id) + evaluate ($resn=$result) + show (resid) (id $id) + evaluate ($resid=$result) + show (name) (id $id) + evaluate ($name=$result) + buffer message + display coordinates built for atom: $segid[a4] $resn[a4] $resid[a4] $name[a4] + end + end loop print + else + buffer message + display coordinates built for more than 100 hundred atoms + end + end if + + set remarks=reset end + + buffer message + to=remarks + dump + end + buffer message reset end + + do (segid = $Toppar.prot_segid_$chain) (all) + + if ($nstruc = 1) then + write coordinates output=$coor_outfile end + end if + evaluate ($filename_$nstruc = $coor_outfile - ".pdb" + "_" + encode($nstruc) + ".pdb") + write coordinates output=$filename_$nstruc end + evaluate ($nstruc = $nstruc + 1) + + do (segid = " ") (all) + + end loop main + + do (segid = $Toppar.prot_segid_$chain) (all) + write structure output=$psf_outfile end + write structure output=$psf2_outfile end + + evaluate ($disfile = "BEGIN:file_" + encode($chain) + ".list") + set display=$disfile end + + evaluate ($num = 1) + while ($num < $nstruc) loop wrfile + evaluate ($outstring = """ + $filename_$num + """) + display $outstring + evaluate ($num = $num + 1) + end loop wrfile + + stop + + diff --git a/src/haddock/modules/flexref/cns/generate_complex-aa.inp b/src/haddock/modules/flexref/cns/generate_complex-aa.inp new file mode 100644 index 000000000..4887840d3 --- /dev/null +++ b/src/haddock/modules/flexref/cns/generate_complex-aa.inp @@ -0,0 +1,56 @@ +! generate_complex.inp +! Merge the coordinates and topologies of the various components of the complex +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + +! a maximum number of structures to be written to avoid +! filling the disk space +evalute ($maxstruc = 5000) + +@RUN:initialize.cns(iteration=$iteration;) + +@RUN:begin/iteration.cns(iteration=$iteration;) + +@RUN:run.cns( +iteration =$iteration; +filenames =$filenames; +Data =$Data; +iterations=$iterations; +saprotocol=$saprotocol; +refine =$refine; +toppar =$toppar; +analysis =$analysis;) + +eval($nchain1 = 0) +while ($nchain1 < $data.ncomponents) loop cloop1 + eval($nchain1 = $nchain1 + 1) + evaluate($coor_infile_$nchain1= "RUN:begin-aa/" + $Toppar.prot_root_$nchain1 + ".pdb") + evaluate($psf_infile_$nchain1= "RUN:begin-aa/" + $Toppar.prot_root_$nchain1 + ".psf") + fileexist $coor_infile_$nchain1 end + evaluate ($coorexist_$nchain1 = $result) + fileexist $psf_infile_$nchain1 end + evaluate ($psfexist_$nchain1 = $result) + if ($coorexist_$nchain1 eq false) then + evaluate($coor_infile_$nchain1= "RUN:begin/" + $Toppar.prot_root_$nchain1 + ".pdb") + end if + if ($psfexist_$nchain1 eq false) then + evaluate($psf_infile_$nchain1= "RUN:begin/" + $Toppar.prot_root_$nchain1 + ".psf") + end if + structure @@$psf_infile_$nchain1 end + coor @@ $coor_infile_$nchain1 +end loop cloop1 + +evaluate ($structurefile = "RUN:begin-aa/" + $Filenames.fileroot + ".psf") +write structure output=$structurefile end + +evaluate ($coorfile = "RUN:begin-aa/" + $Filenames.fileroot + ".pdb") +write coor output=$coorfile end + +stop diff --git a/src/haddock/modules/flexref/cns/generate_complex-water.inp b/src/haddock/modules/flexref/cns/generate_complex-water.inp new file mode 100644 index 000000000..23263a1e7 --- /dev/null +++ b/src/haddock/modules/flexref/cns/generate_complex-water.inp @@ -0,0 +1,95 @@ +! generate_complex-water.inp +! Merge the coordinates and topologies of a complex for solvated docking +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + +! a maximum number of structures to be written to avoid +! filling the disk space +evalute ($maxstruc = 5000) + +@RUN:initialize.cns(iteration=$iteration;) + +@RUN:begin/iteration.cns(iteration=$iteration;) + +@RUN:run.cns( +iteration =$iteration; +filenames =$filenames; +Data =$Data; +iterations=$iterations; +saprotocol=$saprotocol; +refine =$refine; +toppar =$toppar; +analysis =$analysis;) + +! Read in topologies +eval($nchain1 = 0) +while ($nchain1 < $data.ncomponents) loop cloop1 + eval($nchain1 = $nchain1 + 1) + evaluate($psf_infile_$nchain1= "RUN:begin/" + $Toppar.prot_root_$nchain1 + ".psf") + structure + @@$psf_infile_$nchain1 + end +end loop cloop1 + +! Read in water topology +evaluate($sol_topology_infile="RUN:/toppar/water-allhdg5-4.top") +topology + @@$sol_topology_infile +end + +evaluate ($nstruc = 1) +evaluate ($nline = 0) +for $molecule in ( @@RUN:begin/combinations.list ) loop write_complexes + evaluate ($nline = $nline + 1) + evaluate ($nummod = mod($nline, $data.ncomponents)) + + coor @@$molecule + + ! Use modulo to get chain number + if ($nummod = 0) then + evaluate ($watersegname = "WA" + encode($data.ncomponents)) + else + evaluate ($watersegname = "WA" + encode($nummod)) + end if + + display LINE $nline AND REMOVING $watersegname + + dele sele=(segid $watersegname) end + evaluate ($waterfilename = $molecule - ".pdb" + "_water.pdbw") + segment + name=$watersegname + chain + coor @@$waterfilename + end + end + coor @@$waterfilename + + if ($nummod = 0) then + if ($saprotocol.rebuildcplx eq true) then + do (store9=0) (all) + do (store9=1) (attr q=0.0) + @@RUN:rebuild-unknown.cns + end if + + evaluate ($coorfile_$nstruc = "RUN:begin/" + $Filenames.fileroot + "_" + encode($nstruc) + ".pdb") + write coor sele= (not (resn WAT or resn HOH or resn TIP3)) output=$coorfile_$nstruc end + evaluate ($watercoorfile_$nstruc = "RUN:begin/" + $Filenames.fileroot + "_" + encode($nstruc) + "_water.pdbw") + write coor sele= ((resn WAT or resn HOH or resn TIP3)) output=$watercoorfile_$nstruc end + evaluate ($nstruc = $nstruc + 1) + + end if + +end loop write_complexes + +evaluate ($structurefile = "RUN:begin/" + $Filenames.fileroot + ".psf") +dele sele=((resn WAT or resn HOH or resn TIP3)) end +write structure output=$structurefile end + +stop diff --git a/src/haddock/modules/flexref/cns/generate_complex.inp b/src/haddock/modules/flexref/cns/generate_complex.inp new file mode 100644 index 000000000..c7ffbed01 --- /dev/null +++ b/src/haddock/modules/flexref/cns/generate_complex.inp @@ -0,0 +1,124 @@ +! generate_complex.inp +! Merge the coordinates and topologies of the various components of the complex +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! +! +{- begin block parameter definition -} define( + +{================== parameter files ===================} + +{* protein parameter file *} +{===>} prot_parameter_infile="RUN:toppar/protein-allhdg5-4.param"; + +{* nucleic acid parameter file *} +{===>} nucl_parameter_infile="RUN:/toppar/dna-rna-allatom-hj-opls-1.3.param"; + +{* carbohydrate parameter file *} +{===>} carbo_parameter_infile="RUN:/toppar/carbohydrate.param"; + +{* solvent parameter file *} +{===>} solv_parameter_infile="RUN:/toppar/water-allhdg5-4.param"; + +{* co-factor parameter file *} +{===>} cofac_parameter_infile="RUN:/toppar/ligand.param"; + +{* ligands parameter file *} +{===>} ligands_parameter_infile="RUN:/toppar/fragment_probes.param"; + +{* ion parameter file *} +{===>} ion_parameter_infile="RUN:/toppar/ion.param"; + +{* heme parameter file *} +{===>} heme_parameter_infile="RUN:/toppar/hemes-allhdg.param"; + + ) {- end block parameter definition -} + + +@RUN:initialize.cns(iteration=$iteration;) + +@RUN:initialize.cns(iteration=$iteration;) +@RUN:begin/iteration.cns(iteration=$iteration;) +@RUN:run.cns( +iteration =$iteration; +filenames =$filenames; +Data =$Data; +iterations=$iterations; +saprotocol=$saprotocol; +refine =$refine; +toppar =$toppar; +analysis =$analysis;) + + +! Read in parameter files +parameter + if ( &BLANK%prot_parameter_infile = false ) then + @@&prot_parameter_infile + end if + if ( &BLANK%ion_parameter_infile = false ) then + @@&ion_parameter_infile + end if + if ( &BLANK%nucl_parameter_infile = false ) then + @@&nucl_parameter_infile + end if + if ( &BLANK%solv_parameter_infile = false ) then + @@&solv_parameter_infile + end if + if ( &BLANK%ligands_parameter_infile = false ) then + @@&ligands_parameter_infile + end if + if ( &BLANK%cofac_parameter_infile = false ) then + @@&cofac_parameter_infile + end if + if ( &BLANK%heme_parameter_infile = false ) then + @@&heme_parameter_infile + end if +end + +! Read in topologies, one per MOL (psf) +eval($nchain1 = 0) +while ($nchain1 < $data.ncomponents) loop cloop1 + eval($nchain1 = $nchain1 + 1) + evaluate($psf_infile_$nchain1= "RUN:begin/" + $Toppar.prot_root_$nchain1 + ".psf") + structure + @@$psf_infile_$nchain1 + end +end loop cloop1 + +! Write structures of complexes +evaluate ($nstruc = 1) +evaluate ($nline = 0) + +for $molecule in ( @@RUN:begin/combinations.list ) loop write_complexes + evaluate ($nline = $nline + 1) + evaluate ($nummod = mod($nline, $data.ncomponents)) + + coor @@$molecule + + if ($nummod eq 0) then + if ($saprotocol.rebuildcplx eq true) then + do (store9=0) (all) + do (store9=1) (attr q=0.0) + @RUN:rebuild-unknown.cns + end if + + evaluate ($coorfile_$nstruc = "RUN:begin/" + $Filenames.fileroot + "_" + encode($nstruc) + ".pdb") + + do (q=1) (all) + do (b=10) (all) + write coor output=$coorfile_$nstruc end + evaluate ($nstruc = $nstruc + 1) + end if + +end loop write_complexes + +! Write complex topology (one is enough) +evaluate ($structurefile = "RUN:begin/" + $Filenames.fileroot + ".psf") +write structure output=$structurefile end +stop diff --git a/src/haddock/modules/flexref/cns/generate_dmso.cns b/src/haddock/modules/flexref/cns/generate_dmso.cns new file mode 100644 index 000000000..4b3ac2a27 --- /dev/null +++ b/src/haddock/modules/flexref/cns/generate_dmso.cns @@ -0,0 +1,123 @@ +! generate_dmso.cns +! Generate a DMSO solvent layer around the molecule +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + +eval ($boxlength = 29.1) ! length of the dmso box +eval ($thickness = 12.5) ! maxi. initial dmso-protein distance (heavy atoms) +eval ($pw_dist = 2.4) ! mini. initial dmso-protein distance (heavy atoms) +eval ($dmso_diam = 4.1) ! diameter of dmso molecule +eval ($dyncount = 1) ! iteration number (usually 1) + +eval ($dmso = "DMS" + encode($dyncount)) + +!-------------------------------------------------- +! read in the same box of dmso several times, and move it around +! so as to cover all the space around the site of interest. +! take into account box offset + +show max (x) ((not resn dms) and not resn ANI and not resn DAN and not resn XAN or resn DUM or resn SHA) +evaluate ($xmax = $result) +show min (x) ((not resn DMS) and not resn ANI and not resn DAN and not resn XAN or resn DUM or resn SHA) +evaluate ($xmin = $result) + +show max (y) ((not resn DMS) and not resn ANI and not resn DAN and not resn XAN or resn DUM or resn SHA) +evaluate ($ymax = $result) +show min (y) ((not resn DMS) and not resn ANI and not resn DAN and not resn XAN or resn DUM or resn SHA) +evaluate ($ymin = $result) + +show max (z) ((not resn DMS) and not resn ANI and not resn DAN and not resn XAN or resn DUM or resn SHA) +evaluate ($zmax = $result) +show min (z) ((not resn DMS) and not resn ANI and not resn DAN and not resn XAN or resn DUM or resn SHA) +evaluate ($zmin = $result) + + +! loop over several iterations of dmso filling and dynamics + + +!-------------------------------------------------- +! read in the same box of dmso several times, and move it around +! so as to cover all the space around the site of interest. +! take into account box offset + + +! determine how many boxes are necessary in each dimension +eval ($xbox = int( ($xmax - $xmin + 2 * ($thickness + $dmso_diam)) / $boxlength + 0.5)) +eval ($ybox = int( ($ymax - $ymin + 2 * ($thickness + $dmso_diam)) / $boxlength + 0.5)) +eval ($zbox = int( ($zmax - $zmin + 2 * ($thickness + $dmso_diam)) / $boxlength + 0.5)) + +eval ($xmtran = $xmax + $thickness - $boxlength/2 + $dmso_diam) +eval ($ymtran = $ymax + $thickness - $boxlength/2 + $dmso_diam) +eval ($zmtran = $zmax + $thickness - $boxlength/2 + $dmso_diam) + +eval ($xcount=0) +eval ($xtrans = $xmin - $thickness - $dmso_diam - $boxlength ) +while ($xtrans < $xmtran) loop dms1 + eval ($xcount=$xcount+1) + eval ($xtrans = $xtrans + $boxlength) + + eval ($ycount=0) + eval ($ytrans = $ymin - $thickness - $dmso_diam - $boxlength ) + while ($ytrans < $ymtran) loop dms2 + eval ($ycount=$ycount+1) + eval ($ytrans = $ytrans + $boxlength) + + eval ($zcount=0) + eval ($ztrans = $zmin - $thickness - $dmso_diam - $boxlength ) + while ($ztrans < $zmtran) loop dms3 + eval ($zcount=$zcount+1) + eval ($ztrans = $ztrans + $boxlength) + + + segment + name=" " + chain + coordinates @@RUN:dmso.pdb + end + end + coor @@RUN:dmso.pdb + do (segid=DMSO) (segid " ") + coor sele=(segid DMSO) translate vector = ($xtrans $ytrans $ztrans) end + + ! all new dmso oxygens + ident (store1) (segid DMSO and name sd) + ! all new dmso oxygens close to a protein heavy atom + ident (store2) (store1 and (not (resn DMS or resn ANI or resn DAN or resn XAN or resn DUM or resn SHA or hydro)) around $pw_dist) + ! all new dmso oxygens close to old dmso oxygens + ident (store3) (store1 and (segid DMS# and not hydro) around $dmso_diam) + ! all new dmso oxygens further than thickness away from a protein heavy atom + ident (store4) (store1 and not (not (resn DMS or resn ANI or resn DAN or resn XAN or resn DUM or resn SHA or hydro)) around $thickness) + delete sele= (byres (store2 or store3 or store4)) end + + + ! give dmso unique segid name + eval ($segid= "W" + + encode($xcount) + encode($ycount) + encode($zcount)) + do (segid = $segid) (segid DMSO) + + end loop dms3 + end loop dms2 +end loop dms1 + +! now, give dmso a unique resid so that we get the segid to play around with +ident (store1) (all) +show min (store1) (segid w*) +do (store1 = store1 - $result + 1) (segid w*) +do (resid = encode(int(store1/3 -0.1) +1)) (segid w* and not segid DMS#) +do (segid = $dmso) (segid w* and not segid DMS#) + +! shave off any dmso that left +delete sele= (byres (name sd and not (not (resn DMS or resn ANI or resn DAN or resn XAN or resn DUM or resn SHA or hydro)) around $thickness)) end + +{* write out initial coordinates for testing *} +! evaluate ($filename=$Filenames.fileroot+ encode($count)+ "wini.pdb") +! write coordinates sele= (all) output =$filename end + diff --git a/src/haddock/modules/flexref/cns/generate_water.cns b/src/haddock/modules/flexref/cns/generate_water.cns new file mode 100644 index 000000000..01b3e46b6 --- /dev/null +++ b/src/haddock/modules/flexref/cns/generate_water.cns @@ -0,0 +1,127 @@ +! generate_water.cns +! Generate a water solvent layer around the molecule +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + +eval ($boxlength = 18.856) ! length of Brooks' water box +eval ($thickness = 8) ! maxi. initial water-protein distance (heavy atoms) +if ($iteration = 2) then + eval ($pw_dist = 2.4) ! mini. initial water-protein distance (heavy atoms) +else + eval ($pw_dist = 4.0) ! mini. initial water-protein distance (heavy atoms) +end if +eval ($water_diam = 2.4) ! diameter of water molecule +eval ($dyncount = 21) ! for water segid (max number of molecules + 1) + +eval ($water = "WA" + encode($dyncount)) + +!-------------------------------------------------- +! read in the same box of water several times, and move it around +! so as to cover all the space around the site of interest. +! take into account box offset + +show max (x) ((not (resn WAT or resn HOH or resn TIP*)) and not (resn ANI or resn DAN or resn XAN or resn DUM or resn SHA)) +evaluate ($xmax = $result) +show min (x) ((not (resn WAT or resn HOH or resn TIP*)) and not (resn ANI or resn DAN or resn XAN or resn DUM or resn SHA)) +evaluate ($xmin = $result) + +show max (y) ((not (resn WAT or resn HOH or resn TIP*)) and not (resn ANI or resn DAN or resn XAN or resn DUM or resn SHA)) +evaluate ($ymax = $result) +show min (y) ((not (resn WAT or resn HOH or resn TIP*)) and not (resn ANI or resn DAN or resn XAN or resn DUM or resn SHA)) +evaluate ($ymin = $result) + +show max (z) ((not (resn WAT or resn HOH or resn TIP*)) and not (resn ANI or resn DAN or resn XAN or resn DUM or resn SHA)) +evaluate ($zmax = $result) +show min (z) ((not (resn WAT or resn HOH or resn TIP*)) and not (resn ANI or resn DAN or resn XAN or resn DUM or resn SHA)) +evaluate ($zmin = $result) + + +! loop over several iterations of water filling and dynamics + + +!-------------------------------------------------- +! read in the same box of water several times, and move it around +! so as to cover all the space around the site of interest. +! take into account box offset + + +! determine how many boxes are necessary in each dimension +eval ($xbox = int( ($xmax - $xmin + 2 * ($thickness + $water_diam)) / $boxlength + 0.5)) +eval ($ybox = int( ($ymax - $ymin + 2 * ($thickness + $water_diam)) / $boxlength + 0.5)) +eval ($zbox = int( ($zmax - $zmin + 2 * ($thickness + $water_diam)) / $boxlength + 0.5)) + +eval ($xmtran = $xmax + $thickness - $boxlength/2 + $water_diam) +eval ($ymtran = $ymax + $thickness - $boxlength/2 + $water_diam) +eval ($zmtran = $zmax + $thickness - $boxlength/2 + $water_diam) + +eval ($xcount=0) +eval ($xtrans = $xmin - $thickness - $water_diam - $boxlength/2 ) +while ($xtrans < $xmtran) loop wat1 + eval ($xcount=$xcount+1) + eval ($xtrans = $xtrans + $boxlength) + + eval ($ycount=0) + eval ($ytrans = $ymin - $thickness - $water_diam - $boxlength/2 ) + while ($ytrans < $ymtran) loop wat2 + eval ($ycount=$ycount+1) + eval ($ytrans = $ytrans + $boxlength) + + eval ($zcount=0) + eval ($ztrans = $zmin - $thickness - $water_diam - $boxlength/2 ) + while ($ztrans < $zmtran) loop wat3 + eval ($zcount=$zcount+1) + eval ($ztrans = $ztrans + $boxlength) + + + segment + name=" " + chain + coordinates @@RUN:boxtyp20.pdb + end + end + coor @@RUN:boxtyp20.pdb + do (segid=W000) (segid " ") + coor sele=(segid W000) translate vector = ($xtrans $ytrans $ztrans) end + + ! all new water oxygens + ident (store1) (segid W000 and name oh2) + ! all new water oxygens close to a protein heavy atom + ident (store2) (store1 and (not (resn WAT or resn HOH or resn TIP* or resn ANI or resn DAN or resn XAN or resn DUM or resn SHA or hydro)) around $pw_dist) + ! all new water oxygens close to old water oxygens + ident (store3) (store1 and (segid wat# and not hydro) around $water_diam) + ! all new water oxygens further than thickness away from a protein heavy atom + ident (store4) (store1 and not (not (resn WAT or resn HOH or resn TIP* or resn ANI or resn DAN or resn XAN or resn DUM or resn SHA or hydro)) around $thickness) + delete sele= (byres (store2 or store3 or store4)) end + + + ! give waters unique segid name + eval ($segid= "W" + + encode($xcount) + encode($ycount) + encode($zcount)) + do (segid = $segid) (segid W000) + + end loop wat3 + end loop wat2 +end loop wat1 + +! now, give waters a unique resid so that we get the segid to play around with +ident (store1) (all) +show min (store1) (segid w*) +do (store1 = store1 - $result + 1) (segid w*) +do (resid = encode(int(store1/3 -0.1) +1)) (segid w* and not segid wat#) +do (segid = $water) (segid w* and not segid wat#) + +! shave off any waters that left +delete sele= (byres (name oh2 and segid W* and not (not (resn WAT or resn HOH or resn TIP* or resn ANI or resn DAN or resn XAN or resn DUM or resn SHA or hydro)) around $thickness)) end + +{* write out initial coordinates just for testing *} +! evaluate ($filename=$Filenames.fileroot+ encode($count)+ "wini.pdb") +! write coordinates sele= (all) output =$filename end + diff --git a/src/haddock/modules/flexref/cns/get_average.inp b/src/haddock/modules/flexref/cns/get_average.inp new file mode 100644 index 000000000..80d7b1cb5 --- /dev/null +++ b/src/haddock/modules/flexref/cns/get_average.inp @@ -0,0 +1,418 @@ +! get_average.inp +! Calculate the average structure using interface residues for fitting +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + +remarks get_average.inp: calculate average structure using +remarks the interface definition for fitting +remarks HADDOCK +remarks Alexandre Bonvin, Utrecht University + +@RUN:initialize.cns(iteration=$iteration;) + +@NEWIT:iteration.cns(iteration=$iteration;) + +@RUN:run.cns( +iteration =$iteration; +filenames =$filenames; +data =$data; +iterations=$iterations; +saprotocol=$saprotocol; +refine =$refine; +toppar =$toppar; +analysis =$analysis; +) + +!reads in structure, coordinates and parameter files +@RUN:read_struc.cns +@RUN:read_struc-cg.cns + +@PREVIT:file.cns(filenames=$filenames) +evaluate ($file = $filenames.bestfile_1) +coor @@$file + +delete sele=(resname ANI or resname XAN or resname DAN or resname TIP3 or resname WAT or resname HOH) end +delete sele=(not(known)) end + +!defines interface +do (store5 = 0) (all) + +eval($nchain=0) +while ($nchain < $data.ncomponents) loop nloop1 + eval($nchain=$nchain + 1) + if ($Toppar.shape_$nchain eq false) then + evaluate($fcounter=0) + do (store6 = 0) (all) + while ($fcounter < $Toppar.nseg_$nchain) loop Xflex + evaluate($fcounter=$fcounter + 1) + display $Toppar.start_seg_$nchain_$fcounter $Toppar.end_seg_$nchain_$fcounter + do (store5 = $nchain) ( resid $Toppar.start_seg_$nchain_$fcounter : $Toppar.end_seg_$nchain_$fcounter + and segid $Toppar.prot_segid_$nchain + and (name CA or name BB or name C or name N or name P or name C#)) + do (store6 = 1) ( resid $Toppar.start_seg_$nchain_$fcounter : $Toppar.end_seg_$nchain_$fcounter + and segid $Toppar.prot_segid_$nchain + and (name CA or name BB or name C or name N or name P or name C#)) + end loop Xflex + show sum (store6) (all) + if ($result < 3) then + do (store5 = $nchain) ( segid $Toppar.prot_segid_$nchain and (name CA or name BB or name C or name N or name P or name C#)) + do (store6 = 1) ( segid $Toppar.prot_segid_$nchain and (name CA or name BB or name C or name N or name P or name C#)) + end if + show sum (store6) (all) + if ($result < 3) then + do (store5 = $nchain) ( segid $Toppar.prot_segid_$nchain and not name H*) + endif + if ($Toppar.nseg_$nchain = 0) then + display NO FLEXIBLE SEGMENTS for molecule $nchain USING ALL BACKBONE + do (store5 = $nchain) ((name CA or name BB or name P or name C#) and segid $Toppar.prot_segid_$nchain) + do (store6 = 1) ((name CA or name BB or name P or name C#) and segid $Toppar.prot_segid_$nchain) + end if + + show sum (store6) (attr store5 = $nchain) + if ($result < 3) then + do (store5 = $nchain) ( segid $Toppar.prot_segid_$nchain ) + end if + + end if + +end loop nloop1 + +do (store8 = 0) (all) +eval($nchain=0) +while ($nchain < $data.ncomponents) loop nloop1 + eval($nchain=$nchain + 1) + if ($Toppar.shape_$nchain eq false) then + do (store8 = 1) (attr store5 = $nchain) + end if +end loop nloop1 + +{* filenames *} +evaluate ($outroot = "NEWIT:analysis/" + $Filenames.fileroot) +evaluate ($trajfile=$outroot+".crd") +evaluate ($trajfilered=$outroot+"-reduced.crd") +evaluate ($dispfile=$outroot+".prt") + +{* ==================================== *} +{* part 1: generate a pseudo trajectory *} +{* ==================================== *} + +@PREVIT:file.cns(filenames=$filenames) + +evaluate ($count = 0) +evaluate ($nstruc = 0) +while ($count lt $Iterations.Structures) loop main + evaluate ($count = $count + 1) + evaluate ($file = $filenames.bestfile_$count) + coor init end + if ($file ne "") then + coor @@$file + evaluate ($nstruc = $nstruc + 1) + if ($nstruc = 1) then coor copy end end if + + show aver (x) (all) + evaluate ($xc = $result) + show aver (y) (all) + evaluate ($yc = $result) + show aver (z) (all) + evaluate ($zc = $result) + + @RUN:get_random_rotation.cns(Rotation=$rand_rot;) + coor + center=($xc $yc $zc) + rotate quaternion $rand_rot.q0 $rand_rot.q1 $rand_rot.q2 $rand_rot.q3 + sele=(all) + end + + coor sele= (store8) fit end + + if ($nstruc eq 1) then + write trajectory + ascii true + output= $trajfile + end + else + write traj next end + end if + end if +end loop main + +evaluate ($TotalNstruct = $nstruc) + +close $trajfile end + +{* ============================================ *} +{* part 2: generate a reduced pseudo trajectory *} +{* ============================================ *} + +@PREVIT:file.cns(filenames=$filenames) + +evaluate ($count = 0) +evaluate ($nstruc = 0) +while ($count lt $Iterations.Structures) loop main + evaluate ($count = $count + 1) + evaluate ($file = $filenames.bestfile_$count) + coor init end + if ($file ne "") then + coor @@$file + evaluate ($nstruc = $nstruc + 1) + show aver (x) (all) + evaluate ($xc = $result) + show aver (y) (all) + evaluate ($yc = $result) + show aver (z) (all) + evaluate ($zc = $result) +{ + @RUN:get_random_rotation.cns(Rotation=$rand_rot;) + coor + center=($xc $yc $zc) + rotate quaternion $rand_rot.q0 $rand_rot.q1 $rand_rot.q2 $rand_rot.q3 + sele=(all) + end +} + if ($nstruc eq 1) then + write trajectory + reset + ascii = true + output = $trajfilered + sele = (attr store8 = 1 and not (name N or name O)) + end + else + write traj next end + end if + end if +end loop main + +evaluate ($TotalNstruct = $nstruc) + +close $trajfilered end + +if ($Iterations.anastruc < $TotalNstruct) then + evaluate ($FittedStructures = $Iterations.anastruc) +else + evaluate ($FittedStructures = $TotalNstruct) +end if + +{* ====================================== *} +{* part 3: generate the average structure *} +{* ====================================== *} + +do (store1 = 0) (all) +do (store2 = 0) (all) +do (store3 = 0) (all) +do (store4 = 0) (all) +evaluate ($nstruc = 0) + +!read trajectory: +while ($nstruc lt $FittedStructures) loop fitt + evaluate ($nstruc = $nstruc + 1) + if ($nstruc eq 1) then + read trajectory + ascii true + input= $trajfile + begin 1 skip 1 stop $FittedStructures + end + else + read traj next end + end if + coor sele= (store8) fit end + do (store1 = store1 + x) (all) + do (store2 = store2 + y) (all) + do (store3 = store3 + z) (all) + do (store4 = store4 + x**2 + y**2 + z**2) (all) +end loop fitt + +do (xcomp = store1/$nstruc) (all) +do (ycomp = store2/$nstruc) (all) +do (zcomp = store3/$nstruc) (all) +do (b = sqrt(store4/$nstruc - (xcomp**2 + ycomp**2 + zcomp**2))) (all) + +! calcuate mean rms fluctuation and sigma + +show ave (b) (attr store5 > 0) +evaluate ($mean_inter = $result) +show rms (b) (attr store5 > 0) +evaluate ($stdev_inter = $result) + +show ave (b) (name CA or name BB or name C or name O or name C#) +evaluate ($mean_all = $result) +show rms (b) (name CA or name BB or name C or name O or name C#) +evaluate ($stdev_all = $result) + +evaluate ($nchain=0) +while ($nchain < $data.ncomponents ) loop nloop1 + evaluate ($nchain=$nchain + 1) + evaluate ($mean_$nchain=0) + evaluate ($stdev_$nchain=0) +end loop nloop1 + +evaluate ($nchain=0) +while ($nchain < $data.ncomponents) loop nloop1 + evaluate ($nchain=$nchain + 1) + if ($Toppar.shape_$nchain eq false) then + show ave (b) (attr store5 = $nchain) + evaluate ($mean_$nchain = $result) + show rms (b) (attr store5 = $nchain) + evaluate ($stdev_$nchain = $result) + end if +end loop nloop1 + +set remarks=reset end + +remark HADDOCK average structure from fit on interface +remark Average rms difference backbone interface all $mean_inter +- $stdev_inter +remark Average rms difference backbone all $mean_all +- $stdev_all + +set remark accumulate end + +evaluate ($nchain=0) +while ($nchain < $data.ncomponents) loop rmsdif + evaluate ($nchain = $nchain +1) + remark Average rms difference backbone interface $Toppar.prot_segid_$nchain $mean_$nchain +- $stdev_$nchain +end loop rmsdif + +do (bcomp = b) (all) +do (qcomp = 0) (all) +do (qcomp = 1) (store8) + +evaluate ($filename = $outroot + "_ave.pdb") +write coor from=comp sele= (all) output= $filename end + + +{* ============================================= *} +{* part 4: sequence dependend rms difference *} +{* ============================================= *} + +evaluate ($filename = $outroot + "_ave.pdb") +coor @@$filename + +set display NEWIT:analysis/rmsdseq.disp end +display # sequential rms differences +display resid rmsback3 rmsback5 rmsside rmsall +for $id in id (tag) loop rmss + show element (resid) (id $id) + evaluate ($resid = $result) + show element (segid) (id $id) + evaluate ($segid = $result) + show norm (b) + (byres(id $id) and (name c or name CA or name BB or name cb or name n or name o or name C#)) + evaluate ($rmsback5 = $result) + show norm (b) + (byres(id $id) and (name c or name CA or name BB or name n or name C#)) + evaluate ($rmsback3 = $result) + show norm (b) + (byres(id $id) and not hydro and not + (name c or name CA or name BB or name cb or name n or name o or name C#)) + evaluate ($rmsside = $result) + show norm (b) + (byres(id $id) and not hydro) + evaluate ($rmsall = $result) + + display $resid $segid $rmsback3 $rmsback5 $rmsside $rmsall +end loop rmss + +set display NEWIT:analysis/rmsave.disp end + +display # HADDOCK average structure from fit on interface +display # Average rms difference backbone interface all $mean_inter +- $stdev_inter +display # Average rms difference backbone all $mean_all +- $stdev_all +evaluate ($nchain=0) +while ($nchain < $data.ncomponents) loop rmsdif + evaluate ($nchain = $nchain +1) + display # Average rms difference backbone interface $Toppar.prot_segid_$nchain $mean_$nchain +- $stdev_$nchain +end loop rmsdif + +{* ============================================= *} +{* part 5: fit the ensemble to the average *} +{* ============================================= *} + +evaluate ($nchain = 0) +while ($nchain < $data.ncomponents) loop rmsdif + evaluate ($nchaini=$nchain) + evaluate ($nchain = $nchain +1) + if ($nchaini eq 0 ) then + evaluate ($meani_name = "rms_back_" + $Toppar.prot_segid_$nchain ) + else + evaluate ($meani_name = $meani_name + " " + "rms_back_" + $Toppar.prot_segid_$nchain ) + end if +end loop rmsdif + +display # +display # RMSD from average structure +display # filename rms_back_inter rms_back_all $meani_name + +evaluate ($nstruc = 0) + +!fit structures to average structure and write pdb files: +while ($nstruc < $FittedStructures) loop fitt + evaluate ($nstruc = $nstruc + 1) + + if ($nstruc eq 1) then + read trajectory + ascii true + input= $trajfile + begin 1 skip 1 stop $FittedStructures + end + else + read traj next end + end if + + coor sele= (store8) fit end + + coor sele= (store8) rms end + evaluate ($mean_inter = $result) + + coor sele= (name CA or name BB or name C or name N or name C#) rms end + evaluate ($mean_all = $result) + + evaluate ($nchain=0) + while ($nchain < $data.ncomponents) loop nloop1 + evaluate ($nchaini=$nchain) + evaluate ($nchain=$nchain + 1) + + coor sele= ( attr store5 = $nchain ) rms end + evaluate ($mean_$nchain = $result ) + + if ($nchaini eq 0 ) then + evaluate ($meani = encode($mean_$nchain) ) + else + evaluate ($meani = $meani + " " + encode($mean_$nchain) ) + end if + + end loop nloop1 + + do (b=bcomp) (all) + do (q=1.0) (all) + + evaluate ($filename = $outroot + "fit" + "_" + encode($nstruc) + ".pdb" ) + + set remarks=reset end + remark HADDOCK best fit to average + remark fitted on interface + remark rms from average on interface $mean_inter + remark rms from average backbone all $mean_all + set remark accumulate end + + evaluate ($nchain=0) + while ($nchain < $data.ncomponents) loop rmsdif + evaluate ($nchain = $nchain +1) + remark rms from average backbone interface $Toppar.prot_segid_$nchain $mean_$nchain + end loop rmsdif + write coor output= $filename sele= (all) end + set remarks=reset end + display $filename $mean_inter $mean_all $meani + +end loop fitt + +evaluate ($outdis = "NEWIT:analysis/AVE_DONE") +set display=$outdis end +display DONE + +stop diff --git a/src/haddock/modules/flexref/cns/get_random_rotation.cns b/src/haddock/modules/flexref/cns/get_random_rotation.cns new file mode 100644 index 000000000..228e00a1f --- /dev/null +++ b/src/haddock/modules/flexref/cns/get_random_rotation.cns @@ -0,0 +1,95 @@ +! get_random_rotation.cns +! Define a random rotation +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! +{* + The random rotation is calculated by taking a random unit quaternion, + so that all rotations are uniformely distributed. For more details, see + "Quaternions in molecular modeling" Charles F.F. Karney + Journal of Molecular Graphics and Modelling 25 (2007) 595-604 + + Original author: Christophe Schmidt + Modularized it: Gydo van Zundert + + Parameters + ---------- + Rotation : A struct which will hold the random rotation + + Type : Optional string, either 'Quaternion' or 'Matrix' + Determines whether the random rotation is expressed as a quaternion or a matrix + + Note + ---- + There is no need in general to specify the Type as a matrix when performing the rotation. + + Example: + >>>> ! $rand_rot does NOT have to exist currently + !>>>> @RUN:get_random_rotation.cns(Rotation=$rand_rot;) + >>>> coor rotate + >>>> quaternion $rand_rot.q0 $rand_rot.q1 $rand_rot.q2 $rand_rot.q3 + >>>> selection=(all) + >>>> end + + Example using a rotation matrix: + !>>>> @RUN:get_random_rotation.cns(Rotation=$rr; Type='Matrix';) + >>>> coor rotate + >>>> matrix $rr.a11 $rr.a12 $rr.a13 + >>>> $rr.a21 $rr.a22 $rr.a23 + >>>> $rr.a31 $rr.a32 $rr.a33 + >>>> selection=(all) + >>>> end +*} + +!module {random_rotation} (Rotation; +! Type='Quaternion'; +! ) + + !1. Generate random e1 e2 e3 and e4 in [-1, 1] so that e1^2 + e2^2 < 1 and e3^2+e4^2 < 1 + evaluate ($RRM_e1 = random() * 2 - 1) + evaluate ($RRM_e2 = random() * 2 - 1) + evaluate ($RRM_s1 = ($RRM_e1)*($RRM_e1) + ($RRM_e2)*($RRM_e2)) + while ( $RRM_s1 >= 1) loop s1loop + evaluate ($RRM_e1 = random() * 2 - 1) + evaluate ($RRM_e2 = random() * 2 - 1) + evaluate ($RRM_s1 = ($RRM_e1)*($RRM_e1) + ($RRM_e2)*($RRM_e2)) + end loop s1loop + + evaluate ($RRM_e3 = random() * 2 - 1) + evaluate ($RRM_e4 = random() * 2 - 1) + evaluate ($RRM_s2 = ($RRM_e3)*($RRM_e3) + ($RRM_e4)*($RRM_e4)) + while ( $RRM_s2 >= 1) loop s2loop + evaluate ($RRM_e3 = random() * 2 - 1) + evaluate ($RRM_e4 = random() * 2 - 1) + evaluate ($RRM_s2 = ($RRM_e3)*($RRM_e3) + ($RRM_e4)*($RRM_e4)) + end loop s2loop + + !2. the quaternion q0 q1 q2 q3 + evaluate($RRM_q0 = $RRM_e1) + evaluate($RRM_q1 = $RRM_e2) + evaluate($RRM_q2 = $RRM_e3 * sqrt((1 - $RRM_s1)/$RRM_s2) ) + evaluate($RRM_q3 = $RRM_e4 * sqrt((1 - $RRM_s1)/$RRM_s2) ) + + ! package it in a struct + if (&Type='Quaternion') then + evaluate(&Rotation.q0 = $RRM_q0) + evaluate(&Rotation.q1 = $RRM_q1) + evaluate(&Rotation.q2 = $RRM_q2) + evaluate(&Rotation.q3 = $RRM_q3) + elseif (&Type='Matrix') then + evaluate (&Rotation.a11 = $RRM_q0 * $RRM_q0 + $RRM_q1 * $RRM_q1 - $RRM_q2 * $RRM_q2 - $RRM_q3 * $RRM_q3) + evaluate (&Rotation.a12 = 2 * ($RRM_q1 * $RRM_q2 - $RRM_q0 * $RRM_q3) ) + evaluate (&Rotation.a13 = 2 * ($RRM_q1 * $RRM_q3 + $RRM_q0 * $RRM_q2) ) + evaluate (&Rotation.a21 = 2 * ($RRM_q1 * $RRM_q2 + $RRM_q0 * $RRM_q3) ) + evaluate (&Rotation.a22 = $RRM_q0 * $RRM_q0 - $RRM_q1 * $RRM_q1 + $RRM_q2 * $RRM_q2 - $RRM_q3 * $RRM_q3) + evaluate (&Rotation.a23 = 2 * ($RRM_q2 * $RRM_q3 - $RRM_q0 * $RRM_q1) ) + evaluate (&Rotation.a31 = 2 * ($RRM_q1 * $RRM_q3 - $RRM_q0 * $RRM_q2) ) + evaluate (&Rotation.a32 = 2 * ($RRM_q2 * $RRM_q3 + $RRM_q0 * $RRM_q1) ) + evaluate (&Rotation.a33 = $RRM_q0 * $RRM_q0 - $RRM_q1 * $RRM_q1 - $RRM_q2 * $RRM_q2 + $RRM_q3 * $RRM_q3) + end if diff --git a/src/haddock/modules/flexref/cns/initialize.cns b/src/haddock/modules/flexref/cns/initialize.cns new file mode 100644 index 000000000..d31c31407 --- /dev/null +++ b/src/haddock/modules/flexref/cns/initialize.cns @@ -0,0 +1,16 @@ +! initialize.cns +! Iteration initialization +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + +module (iteration;) +evaluate (&iteration = "") + diff --git a/src/haddock/modules/flexref/cns/make_plane.inp b/src/haddock/modules/flexref/cns/make_plane.inp new file mode 100644 index 000000000..d07d6a1a7 --- /dev/null +++ b/src/haddock/modules/flexref/cns/make_plane.inp @@ -0,0 +1,98 @@ +! make_tensor_para.inp +! Create a tensor file and topology for Pseudo Contact Shifts +! +! *********************************************************************** +! * Copyright 2003-2018 AleSHAdre Bonvin, Utrecht University. * +! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + +topology + @@../toppar/shape.top +end + +evaluate ($xdim = 250) +evaluate ($ydim = 250) +evaluate ($spacing = 12.5) +evaluate ($numxd = $xdim/$spacing) +evaluate ($numyd = $ydim/$spacing) + +evaluate ($numres = $xdim*$xdim/$spacing**2) + +segment + name="SHA" + chain + sequence + "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" + "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" + "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" + "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" + "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" + "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" + "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" + "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" + "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" + "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" + "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" + "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" + "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" + "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" + "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" + "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" + "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" + "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" + "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" + "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" + "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" + "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" + "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" + "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" + "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" + "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" + "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" + "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" + "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" + "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" + "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" + "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" + "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" + "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" + "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" + "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" + "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" + "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" + "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" + "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" + end + end +end + + +do (z = 0) (all) + +evaluate ($count1 = 0) +evaluate ($nresid = 0) +evaluate ($xstart = 0) +while ($count1 < $numxd) loop shape1 + evaluate ($count1 = $count1 + 1) + evaluate ($count2 = 0) + evaluate ($ystart = 0) + while ($count2 < $numyd) loop shape2 + evaluate ($count2 = $count2 + 1) + evaluate ($nresid = $nresid + 1) + do (x = $xstart) (resid $nresid) + do (y = $ystart) (resid $nresid) + evaluate ($ystart = $ystart + $spacing) + end loop shape2 + evaluate ($xstart = $xstart + $spacing) + +end loop shape1 + +write structure output=plane.psf end +write coor output=plane.pdb end + +stop diff --git a/src/haddock/modules/flexref/cns/make_tensor.inp b/src/haddock/modules/flexref/cns/make_tensor.inp new file mode 100644 index 000000000..ec6a1288f --- /dev/null +++ b/src/haddock/modules/flexref/cns/make_tensor.inp @@ -0,0 +1,41 @@ +! make_tensor.inp +! Create a tensor file and topology for RDCs +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + +remarks generate.inp (ARIA) +remarks creates tensor.psf and tensor.pdb for residual dipolar coupling refinement +remarks Niklas Blomberg & Jens Linge, June 1999 + +topology + @@top_axis.pro +end + +segment + name="ANI" + chain + sequence "ANI" END + end +end + +do (resid = encode (999)) (all) +do (x = 0) (all) +do (y = 0) (all) +do (z = 0) (all) +do (x = 3 ) (name X) +do (y = 3 ) (name Y) +do (z = 3 ) (name Z) + +!write psf file: +write structure output=tensor.psf end +write coor output=tensor.pdb end + +stop diff --git a/src/haddock/modules/flexref/cns/make_tensor_para.inp b/src/haddock/modules/flexref/cns/make_tensor_para.inp new file mode 100644 index 000000000..458912018 --- /dev/null +++ b/src/haddock/modules/flexref/cns/make_tensor_para.inp @@ -0,0 +1,52 @@ +! make_tensor_para.inp +! Create a tensor file and topology for Pseudo Contact Shifts +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + +remarks creates tensor.psf and tensor.pdb for PCS refinement + +topology + @@top_axis.pro +end + +segment + name="XAN" + chain + sequence "XAN" "XAN" "XAN" "XAN" "XAN" "XAN" "XAN" "XAN" "XAN" "XAN" END + end +end + +do (resid = encode (990)) (resid 1) +do (resid = encode (991)) (resid 2) +do (resid = encode (992)) (resid 3) +do (resid = encode (993)) (resid 4) +do (resid = encode (994)) (resid 5) +do (resid = encode (995)) (resid 6) +do (resid = encode (996)) (resid 7) +do (resid = encode (997)) (resid 8) +do (resid = encode (998)) (resid 9) +do (resid = encode (999)) (resid 10) +do (x = 0) (all) +do (y = 0) (all) +do (z = 0) (all) +do (x = 3 ) (name X) +do (y = 3 ) (name Y) +do (z = 3 ) (name Z) +do (x = -3 ) (name XM) +do (y = -3 ) (name YM) +do (z = -3 ) (name ZM) +do (resn = "XAN") (all) + +!write psf file: +write structure output=tensor_para.psf end +write coor output=tensor_para.pdb end + +stop diff --git a/src/haddock/modules/flexref/cns/mini_tensor.cns b/src/haddock/modules/flexref/cns/mini_tensor.cns new file mode 100644 index 000000000..1aaf31fe6 --- /dev/null +++ b/src/haddock/modules/flexref/cns/mini_tensor.cns @@ -0,0 +1,134 @@ +! mini_tensor.cns +! Optimize the RDC tensor orientation +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! +{* Optimize tensor orientation *} + +{* first randomize the tensor orientation because of some CNS problems *} +{* possible resulting in infinite gradient and a failure of the EM *} + +eval ($erdc = 999999999.0) +eval ($ncount = 0) +while ($ncount < 4) loop trial + eval ($ncount = $ncount + 1) + do (xcomp = x) (resn ANI) + do (ycomp = y) (resn ANI) + do (zcomp = z) (resn ANI) + + !random rotation of tensor + + show aver (x) (resn ANI) + evaluate ($xc = $result) + show aver (y) (resn ANI) + evaluate ($yc = $result) + show aver (z) (resn ANI) + evaluate ($zc = $result) + + evaluate ($xr = ran ()) + {* rotate around z axis *} + evaluate ($xr = $xr * 360) + evaluate ($x1 = cos($xr)) + evaluate ($x2 = -sin($xr)) + evaluate ($x3 = 0 ) + evaluate ($y1 = sin($xr)) + evaluate ($y2 = cos($xr)) + evaluate ($y3 = 0 ) + evaluate ($z1 = 0 ) + evaluate ($z2 = 0 ) + evaluate ($z3 = 1 ) + coor + center=($xc $yc $zc) + rotate matrix=($x1 $x2 $x3) ($y1 $y2 $y3) ($z1 $z2 $z3) + sele=(resn ANI) + end + + {* rotate around x axis *} + evaluate ($xr = ran ()) + evaluate ($xr = $xr * 360) + evaluate ($x1 = 1 ) + evaluate ($x2 = 0 ) + evaluate ($x3 = 0 ) + evaluate ($y1 = 0 ) + evaluate ($y2 = cos($xr)) + evaluate ($y3 = -sin($xr)) + evaluate ($z1 = 0 ) + evaluate ($z2 = sin($xr)) + evaluate ($z3 = cos($xr)) + coor + center=($xc $yc $zc) + rotate matrix=($x1 $x2 $x3) ($y1 $y2 $y3) ($z1 $z2 $z3) + sele=(resn ANI) + end + {* rotate around y axis *} + evaluate ($xr = ran ()) + evaluate ($xr = $xr * 360) + evaluate ($x1 = cos($xr)) + evaluate ($x2 = 0 ) + evaluate ($x3 = -sin($xr)) + evaluate ($y1 = 0 ) + evaluate ($y2 = 1 ) + evaluate ($y3 = 0 ) + evaluate ($z1 = sin($xr)) + evaluate ($z2 = 0 ) + evaluate ($z3 = cos($xr)) + coor + center=($xc $yc $zc) + rotate matrix=($x1 $x2 $x3) ($y1 $y2 $y3) ($z1 $z2 $z3) + sele=(resn ANI) + end + + energy end + + if ($ncount = 1) then + eval ($erdc=$sani) + end if + if ($sani < $erdc) then + eval ($erdc=$sani) + do (xcomp = x) (resn ANI) + do (ycomp = y) (resn ANI) + do (zcomp = z) (resn ANI) + else + do (x = xcomp) (resn ANI) + do (y = ycomp) (resn ANI) + do (z = zcomp) (resn ANI) + end if + +end loop trial + +fix sele=(not all) end +fix sele=(name OO) end +minimize rigid + group (not resn ANI) + translation=false + for $id in id (resn ANI and name OO) loop miniani + group (byres(id $id)) + translation=false + end loop miniani + translation=false + nstep 500 + nprint 10 +end +minimize rigid + eval($nchain1= 1) + while ($nchain1 <= $data.ncomponents) loop cloop1 + group (segid $Toppar.prot_segid_$nchain1) + translation=false + eval($nchain1 = $nchain1 + 1) + end loop cloop1 + for $id in id (resn ANI and name OO) loop miniani + group (byres(id $id)) + translation=false + end loop miniani + translation=false + nstep 500 + nprint 10 +end + diff --git a/src/haddock/modules/flexref/cns/mini_tensor_dani.cns b/src/haddock/modules/flexref/cns/mini_tensor_dani.cns new file mode 100644 index 000000000..95f5fb9fd --- /dev/null +++ b/src/haddock/modules/flexref/cns/mini_tensor_dani.cns @@ -0,0 +1,134 @@ +! mini_tensor_dani.cns +! Optimize the tensor orientation for diffusion anisotropy restraints +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! +{* Optimize tensor orientation *} +{* ADJ van Dijk*} +!{* copied from mini_tensor.cns *} + +{* first randomize the tensor orientation because of some CNS problems *} +{* possible resulting in infinite gradient and a failure of the EM *} + +eval ($edani = 999999999.0) +eval ($ncount = 0) +while ($ncount < 4) loop trial + eval ($ncount = $ncount + 1) + do (xcomp = x) (resn DAN) + do (ycomp = y) (resn DAN) + do (zcomp = z) (resn DAN) + + !random rotation of tensor + + show aver (x) (resn DAN) + evaluate ($xc = $result) + show aver (y) (resn DAN) + evaluate ($yc = $result) + show aver (z) (resn DAN) + evaluate ($zc = $result) + + evaluate ($xr = ran ()) + {* rotate around z axis *} + evaluate ($xr = $xr * 360) + evaluate ($x1 = cos($xr)) + evaluate ($x2 = -sin($xr)) + evaluate ($x3 = 0 ) + evaluate ($y1 = sin($xr)) + evaluate ($y2 = cos($xr)) + evaluate ($y3 = 0 ) + evaluate ($z1 = 0 ) + evaluate ($z2 = 0 ) + evaluate ($z3 = 1 ) + coor + center=($xc $yc $zc) + rotate matrix=($x1 $x2 $x3) ($y1 $y2 $y3) ($z1 $z2 $z3) + sele=(resn DAN) + end + + {* rotate around x axis *} + evaluate ($xr = ran ()) + evaluate ($xr = $xr * 360) + evaluate ($x1 = 1 ) + evaluate ($x2 = 0 ) + evaluate ($x3 = 0 ) + evaluate ($y1 = 0 ) + evaluate ($y2 = cos($xr)) + evaluate ($y3 = -sin($xr)) + evaluate ($z1 = 0 ) + evaluate ($z2 = sin($xr)) + evaluate ($z3 = cos($xr)) + coor + center=($xc $yc $zc) + rotate matrix=($x1 $x2 $x3) ($y1 $y2 $y3) ($z1 $z2 $z3) + sele=(resn DAN) + end + {* rotate around y axis *} + evaluate ($xr = ran ()) + evaluate ($xr = $xr * 360) + evaluate ($x1 = cos($xr)) + evaluate ($x2 = 0 ) + evaluate ($x3 = -sin($xr)) + evaluate ($y1 = 0 ) + evaluate ($y2 = 1 ) + evaluate ($y3 = 0 ) + evaluate ($z1 = sin($xr)) + evaluate ($z2 = 0 ) + evaluate ($z3 = cos($xr)) + coor + center=($xc $yc $zc) + rotate matrix=($x1 $x2 $x3) ($y1 $y2 $y3) ($z1 $z2 $z3) + sele=(resn DAN) + end + + energy end + + if ($ncount = 1) then + eval ($edani=$dani) + end if + if ($dani < $edani) then + eval ($edani=$dani) + do (xcomp = x) (resn DAN) + do (ycomp = y) (resn DAN) + do (zcomp = z) (resn DAN) + else + do (x = xcomp) (resn DAN) + do (y = ycomp) (resn DAN) + do (z = zcomp) (resn DAN) + end if + +end loop trial + +fix sele=(not all) end +fix sele=(name OO) end +minimize rigid + group (not resn DAN) + translation=false + for $id in id (resn DAN and name OO) loop minidan + group (byres(id $id)) + translation=false + end loop minidan + nstep 500 + nprint 10 +end +minimize rigid + eval($nchain1= 1) + while ($nchain1 <= $data.ncomponents) loop cloop1 + group (segid $Toppar.prot_segid_$nchain1) + eval($nchain1 = $nchain1 + 1) + translation=false + end loop cloop1 + for $id in id (resn DAN and name OO) loop minidan + group (byres(id $id)) + translation=false + end loop minidan + nstep 500 + nprint 10 +end + diff --git a/src/haddock/modules/flexref/cns/mini_tensor_para.cns b/src/haddock/modules/flexref/cns/mini_tensor_para.cns new file mode 100644 index 000000000..f88970f7c --- /dev/null +++ b/src/haddock/modules/flexref/cns/mini_tensor_para.cns @@ -0,0 +1,143 @@ +! mini_tensor_para.cns +! Optimize the tensor orientation for PCS restraints +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! +!set message on echo on end + +!display STARTing mini_tensor_para.cns + +!write coordinates sele=(resn XAN) output="trial.pdb" end + + +{* minimize tensor position *} +display STARTing minimization of OO-LA distance + +!flag excl * include noe end +flag excl xpcs include noe end +fix sele=(not resn XAN) end + + +igroup + interaction (not all) (not all) +end + + +minimize rigid + group (resname XAN) + translation=true + nstep 1000 + tole 0.1 + nprint 10 +end + +!write coordinates sele=(resn XAN) output="position.pdb" end + +display ENDing minimization of OO-LA distance + +display STARTing minimization of orientation + +{* minimize tensor orientation *} + +evaluate ($protocol = 0) + + +if ($protocol = 0) then {* powell minimization protocol together *} + + display protocol 0 +! flag excl * include noe xpcs bond end + flag include noe xpcs bond end + + igroup + interaction (not all) (not all) + interaction ( resn XAN ) ( resn XAN ) weight * 0 bond 1.0 end + end + + fix sele=(not (resn XAN)) end + + minimize powell + nstep=5000 + drop=10 + nprint=10 + tolgradient=0.01 + end +elseif ($protocol = 1) then {* powell minimization protocol *} + + display protocol 1 + flag excl * include noe xpcs bond end + + for $id in id (resn XAN and name OO) loop miniani + igroup + interaction (not all) (not all) + interaction ( (byres(id $id)) ) ( (byres(id $id)) ) weight * 0 bond 1.0 end + end + + fix sele=(not ( (byres(id $id)) )) end + + minimize powell + nstep=500 + drop=10 + nprint=10 + tolgradient=0.01 + end + end loop miniani + +elseif ($protocol = 4) then {* powell minimization protocol simultaneously *} + + display protocol 4 + flag excl * include noe xpcs end + + fix sele=(not ( resname XAN )) end + + minimize powell + nstep=5000 + drop=10 + nprint=10 + tolgradient=0.01 + end + +elseif ($protocol = 2) then {* rigid body minimization protocol *} + + display protocol 2 + flag excl * include noe xpcs end + for $id in id (resn XAN and name OO) loop miniani + minimize rigid + group (byres(id $id)) + translation=true + nstep 500 + nprint 10 + drop=10 + end + end loop miniani + +elseif ($protocol = 3) then {* original rigid body minimization protocol *} + display protocol 3 + flag excl * include noe xpcs end + fix sele=(not resname XAN) end + minimize rigid + group (not resname XAN) + translation=true + for $id in id (resn XAN and name OO) loop miniani + group (byres(id $id)) + translation=true + end loop miniani + translation=true + nstep 5000 + + nprint 10 + end + display XPCS_ENERGY $xpcs + fix sele=(not all) end + +end if + +fix sele=(not all) end + +display ENDing minimization of orientation diff --git a/src/haddock/modules/flexref/cns/numtrees.cns b/src/haddock/modules/flexref/cns/numtrees.cns new file mode 100644 index 000000000..b50b36f37 --- /dev/null +++ b/src/haddock/modules/flexref/cns/numtrees.cns @@ -0,0 +1,116 @@ +! numtrees.cns +! Define the number of trees for torsion angle MD +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + +!module (numtrees; Data; Toppar;) + +evaluate ($numtrees = 1) +evaluate ($ncount = 0) +evaluate ($break=$data.ncomponents) + +while ($ncount < $data.ncomponents) loop nsloop + + evaluate ($ncount = $ncount + 1) + + for $id1 in id ( name C and bondedto(name CA) and segid $Toppar.prot_segid_$ncount) loop break + + show (resid) (id $id1) + evaluate ($resid1=$result) + + evaluate ($resid2=encode(decode($resid1)+1)) + + show sum(1) (id $id1 and known) + if ( $result ne 0 ) then + + identity (store1) ( name N and bondedto(name CA) and segid $Toppar.prot_segid_$ncount and resid $resid2 ) + show element (store1) (attribute store1 > 0) + if ( $result ne 0) then + evaluate ($id2=$result) + + show sum(1) (id $id2 and known) + + if ( $result ne 0 ) then + + pick bond + (name c and segid $Toppar.prot_segid_$ncount and resid $resid1) + (name n and segid $Toppar.prot_segid_$ncount and resid $resid2) + geometry + + if ( $result > 2.5 ) then + evaluate ($break=$break+1) + end if + else + evaluate ($break=$break+1) + end if + end if + end if + + end loop break + + for $id1 in id ( name BB ) loop bbbreak + + show (resid) (id $id1) + evaluate ($resid1=$result) + + evaluate ($resid2=encode(decode($resid1)+1)) + + show sum(1) (id $id1 and known) + if ( $result ne 0 ) then + + identity (store1) ( name BB and segid $Toppar.prot_segid_$ncount and resid $resid2 ) + show element (store1) (attribute store1 > 0) + if ( $result ne 0) then + evaluate ($id2=$result) + + show sum(1) (id $id2 and known) + + if ( $result ne 0 ) then + + pick bond + (name BB and segid $Toppar.prot_segid_$ncount and resid $resid1) + (name BB and segid $Toppar.prot_segid_$ncount and resid $resid2) + geometry + + if ( $result > 8.0 ) then + evaluate ($break=$break+1) + end if + else + evaluate ($break=$break+1) + end if + end if + end if + + end loop bbbreak + +end loop nsloop + +! check for water molecules + +do (store1 = 0) (all) +do (store1 = 1) ((resn WAT or resn HOH or resn TIP*) and name OH2) +show sum (store1) ((resn WAT or resn HOH or resn TIP*)) +evaluate ($numtrees = $numtrees + $break + $result) + +!if ($data.flags.sani eq true) then +! evaluate ($numtrees = $numtrees + 5) +!end if +!if ($data.flags.xrdc eq true) then +! evaluate ($numtrees = $numtrees + 5) +!end if +!if ($data.flags.xpcs eq true) then +! evaluate ($numtrees = $numtrees + 5) +!end if +!if ($data.flags.dani eq true) then +! evaluate ($numtrees = $numtrees + 5) +!end if + +evaluate ($numtrees = $numtrees + 300) diff --git a/src/haddock/modules/flexref/cns/patch-bb-cg.cns b/src/haddock/modules/flexref/cns/patch-bb-cg.cns new file mode 100644 index 000000000..4673ae185 --- /dev/null +++ b/src/haddock/modules/flexref/cns/patch-bb-cg.cns @@ -0,0 +1,241 @@ +! patch-bb-cg.cns +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * +! * and from the CNS distriution of Brunger and Adams * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! +set echo=true end +! define cutoff for chain break +evaluate ($bdbreak = 8.0) + +! encode beads info +evaluate ($bdnum = 0) +for $id in id (name BB) loop cg1 + evaluate ($bdnum = $bdnum + 1) + show (name) (id $id) + evaluate ($bdname_$bdnum = $result) + show (resid) (id $id) + evaluate ($bdresi_$bdnum = $result) + show (name) (bondedto (name $bdname_$bdnum and resid $bdresi_$bdnum)) + if ($result NE 0) then + evaluate ($sbdname_$bdnum = $result) + else + evaluate ($sbdname_$bdnum = "XXX") + end if +end loop cg1 + + +!!! BBB Angles + +evaluate ($ncount = 0) +evaluate ($nend = $bdnum - 2) +while ($ncount < $nend) loop cg2 + evaluate ($ncount = $ncount + 1) + +! define three consecutive backbone beads + evaluate ($nat1 = $ncount) + evaluate ($nat2 = $ncount + 1) + evaluate ($nat3 = $ncount + 2) + +! get their atom names + evaluate ($bname1 = $bdname_$nat1) + evaluate ($bname2 = $bdname_$nat2) + evaluate ($bname3 = $bdname_$nat3) + +! get their residue number + evaluate ($bresi1 = $bdresi_$nat1) + evaluate ($bresi2 = $bdresi_$nat2) + evaluate ($bresi3 = $bdresi_$nat3) + +! define atom names for patch + evaluate ($pat1 = "1"+$bname1) + evaluate ($pat2 = "2"+$bname2) + evaluate ($pat3 = "3"+$bname3) + +! check for breaks before defining any angle + evaluate ($break = "FALSE") + pick bond (name $bname1 and resid $bresi1) (name $bname2 and resid $bresi2) geometry + if ($result > $bdbreak) then + evaluate ($break = "TRUE") + end if + pick bond (name $bname2 and resid $bresi2) (name $bname3 and resid $bresi3) geometry + if ($result > $bdbreak) then + evaluate ($break = "TRUE") + end if + + if ($break EQ FALSE) then + +! define new backbone angle patch + topology + presidue cgang ! Patch to add an angle between three beads + add angle $pat1 $pat2 $pat3 + end + end + +! apply new patch to the selected three beads + patch cgang refe=1=(resid $bresi1) refe=2=(resid $bresi2) refe=3=(resid $bresi3) end + display PATCH-BB-CG: ADDED ONE ANGLE BETWEEN $bname1 $bresi1 , $bname2 $bresi2 , $bname3 $bresi3 + + end if + +end loop cg2 + + +!!! BBS Angles +evaluate ($ncount = 0) +evaluate ($nend = $bdnum - 1) +while ($ncount < $nend) loop cg3 + evaluate ($ncount = $ncount + 1) + +!! BBA Angles +! define two consecutive backbone beads + evaluate ($nat1 = $ncount) + evaluate ($nat2 = $ncount + 1) + +! get their atom names + evaluate ($bname1 = $bdname_$nat1) + evaluate ($bname2 = $bdname_$nat2) + +! get their side-chain beads names + evaluate ($sbname1 = $sbdname_$nat1) + evaluate ($sbname2 = $sbdname_$nat2) + +! get their residue number + evaluate ($bresi1 = $bdresi_$nat1) + evaluate ($bresi2 = $bdresi_$nat2) + +! define atom names for patch + evaluate ($pat1 = "1"+$bname1) + evaluate ($pat2 = "2"+$bname2) + evaluate ($pas1 = "1"+$sbname1) + evaluate ($pas2 = "2"+$sbname2) + +! check for breaks before defining any angle + evaluate ($break = "FALSE") + evaluate ($pbreak = "FALSE") + pick bond (name $bname1 and resid $bresi1) (name $bname2 and resid $bresi2) geometry + if ($result > $bdbreak) then + evaluate ($break = "TRUE") + evaluate ($pbreak = "TRUE") + end if + + if ($break EQ FALSE) then + +! define new side-chain angle patch for 1st residue + if ($ncount EQ 1) then + if ($sbname1 NE "XXX") then +! define SBB angle patch + topology + presidue scgang ! Patch to add an angle between three beads + add angle $pas1 $pat1 $pat2 + end + end +! apply new patch to the selected three beads + patch scgang refe=1=(resid $bresi1) refe=2=(resid $bresi1) refe=3=(resid $bresi2) end + display PATCH-SBB-CG: ADDED ONE SIDE-CHAIN/BB ANGLE BETWEEN $sbname1 $bresi1 , $bname1 $bresi1 , $bname2 $bresi2 + end if + end if + +! define new side-chain angle patch for 1st residue after chain break + if ($pbreak EQ TRUE) then + if ($sbname1 NE "XXX") then +! define SBB angle patch + topology + presidue scgsang ! Patch to add an angle between three beads + add angle $pas1 $pat1 $pat2 + end + end +! apply new patch to the selected three beads + patch scgsang refe=1=(resid $bresi1) refe=2=(resid $bresi1) refe=3=(resid $bresi2) end + display PATCH-SBB-CG: ADDED ONE SIDE-CHAIN/BB ANGLE BETWEEN $sbname1 $bresi1 , $bname1 $bresi1 , $bname2 $bresi2 + end if + end if + +! define BBS angle patch + if ($sbname2 NE "XXX") then + topology + presidue cgsang ! Patch to add an angle between three beads + add angle $pat1 $pat2 $pas2 + end + end +! apply new patch to the selected three beads + patch cgsang refe=1=(resid $bresi1) refe=2=(resid $bresi2) refe=3=(resid $bresi2) end + display PATCH-BBS-CG: ADDED ONE BB/SIDE-CHAIN ANGLE BETWEEN $bname1 $bresi1 , $bname2 $bresi2 , $sbname2 $bresi2 + end if + + end if + +end loop cg3 + + +!! BBB dihedral + +evaluate ($ncount = 0) +evaluate ($nend = $bdnum - 3) +while ($ncount < $nend) loop cg4 + evaluate ($ncount = $ncount + 1) + +! define four consecutive beads + evaluate ($nat1 = $ncount) + evaluate ($nat2 = $ncount + 1) + evaluate ($nat3 = $ncount + 2) + evaluate ($nat4 = $ncount + 3) + +! get their atom names + evaluate ($bname1 = $bdname_$nat1) + evaluate ($bname2 = $bdname_$nat2) + evaluate ($bname3 = $bdname_$nat3) + evaluate ($bname4 = $bdname_$nat4) + +! get their residue number + evaluate ($bresi1 = $bdresi_$nat1) + evaluate ($bresi2 = $bdresi_$nat2) + evaluate ($bresi3 = $bdresi_$nat3) + evaluate ($bresi4 = $bdresi_$nat4) + +! define atom names for patch + evaluate ($pat1 = "1"+$bname1) + evaluate ($pat2 = "2"+$bname2) + evaluate ($pat3 = "3"+$bname3) + evaluate ($pat4 = "4"+$bname4) + + evaluate ($break = "FALSE") +! check for breaks before defining any dihedral + pick bond (name $bname1 and resid $bresi1) (name $bname2 and resid $bresi2) geometry + if ($result > $bdbreak) then + evaluate ($break = "TRUE") + end if + pick bond (name $bname2 and resid $bresi2) (name $bname3 and resid $bresi3) geometry + if ($result > $bdbreak) then + evaluate ($break = "TRUE") + end if + pick bond (name $bname3 and resid $bresi3) (name $bname4 and resid $bresi4) geometry + if ($result > $bdbreak) then + evaluate ($break = "TRUE") + end if + + if ($break EQ FALSE) then + +! define new patch + topology + presidue cgdihe ! Patch to add a dihedral angle between four beads + add dihedral $pat1 $pat2 $pat3 $pat4 + end + end + +! apply new patch to the selected four beads + patch cgdihe refe=1=(resid $bresi1) refe=2=(resid $bresi2) refe=3=(resid $bresi3) refe=4=(resid $bresi4) end + display PATCH-BB-CG: ADDED ONE DIHEDRAL BETWEEN $bname1 $bresi1 , $bname2 $bresi2 , $bname3 $bresi3 , $bname4 $bresi4 + + end if + +end loop cg4 + + + diff --git a/src/haddock/modules/flexref/cns/patch-types-cg.cns b/src/haddock/modules/flexref/cns/patch-types-cg.cns new file mode 100644 index 000000000..fd34e0a67 --- /dev/null +++ b/src/haddock/modules/flexref/cns/patch-types-cg.cns @@ -0,0 +1,68 @@ +! patch-types-cg.cns +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * +! * and from the CNS distriution of Brunger and Adams * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! +! encode beads info +evaluate ($bdnum = 0) +for $id in id (name BB and (not (resn ALA or resn PRO or resn HYP))) loop cgt1 + evaluate ($bdnum = $bdnum + 1) + show (name) (id $id) + evaluate ($bdname_$bdnum = $result) + show (resid) (id $id) + evaluate ($bdresi_$bdnum = $result) + show (b) (id $id) + evaluate ($bfactor_$bdnum = $result) + evaluate ($ptype= "PTY"+encode($bfactor_$bdnum)) + patch $ptype refe=NIL=(resid $bdresi_$bdnum) end +end loop cgt1 + +! encode beads info for ALA +evaluate ($bdnum = 0) +for $id in id (name BB and resn ALA) loop cgt2 + evaluate ($bdnum = $bdnum + 1) + show (name) (id $id) + evaluate ($bdname_$bdnum = $result) + show (resid) (id $id) + evaluate ($bdresi_$bdnum = $result) + show (b) (id $id) + evaluate ($bfactor_$bdnum = $result) + evaluate ($ptype= "PTA"+encode($bfactor_$bdnum)) + patch $ptype refe=NIL=(resid $bdresi_$bdnum) end +end loop cgt2 + +! encode beads info for PRO +evaluate ($bdnum = 0) +for $id in id (name BB and resn PRO) loop cgt3 + evaluate ($bdnum = $bdnum + 1) + show (name) (id $id) + evaluate ($bdname_$bdnum = $result) + show (resid) (id $id) + evaluate ($bdresi_$bdnum = $result) + show (b) (id $id) + evaluate ($bfactor_$bdnum = $result) + evaluate ($ptype= "PTP"+encode($bfactor_$bdnum)) + patch $ptype refe=NIL=(resid $bdresi_$bdnum) end +end loop cgt3 + +! encode beads info for HYP +evaluate ($bdnum = 0) +for $id in id (name BB and resn HYP) loop cgt4 + evaluate ($bdnum = $bdnum + 1) + show (name) (id $id) + evaluate ($bdname_$bdnum = $result) + show (resid) (id $id) + evaluate ($bdresi_$bdnum = $result) + show (b) (id $id) + evaluate ($bfactor_$bdnum = $result) + evaluate ($ptype= "PTH"+encode($bfactor_$bdnum)) + patch $ptype refe=NIL=(resid $bdresi_$bdnum) end +end loop cgt4 + diff --git a/src/haddock/modules/flexref/cns/print_aa-dna-energies.inp b/src/haddock/modules/flexref/cns/print_aa-dna-energies.inp new file mode 100644 index 000000000..722892dc5 --- /dev/null +++ b/src/haddock/modules/flexref/cns/print_aa-dna-energies.inp @@ -0,0 +1,76 @@ +! print_aa-dna-energies.inp +! Analyze and print amino-acids - base based free energy of interaction +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + +@RUN:initialize.cns(iteration=$iteration;) + +@NEWIT:iteration.cns(iteration=$iteration;) + +@RUN:run.cns( +iteration =$iteration; +filenames =$filenames; +data =$data; +iterations=$iterations; +saprotocol=$saprotocol; +refine =$refine; +toppar =$toppar; +analysis =$analysis; +) + +!reads in structure, coordinates and parameter files +@RUN:read_struc.cns +@RUN:read_struc-cg.cns + +@PREVIT:file.cns(filenames=$filenames) +evaluate ($file = $filenames.bestfile_1) +coor @@$file + +dele sele=(resn TIP* or resn WAT or resn HOH or resn DMSO) end +delete sele=(not(known)) end + +set display=NEWIT:analysis/aa-base-energies.disp end +display # Protein-DNA free-energy of interaction +display # filename Ewater Emethanol + +@PREVIT:file.cns(filenames=$filenames) + +evaluate ($count = 0) +evaluate ($TotalNstruct = 0) +while ($count lt $Iterations.Structures) loop main + evaluate ($count=$count+1) + evaluate ($file = $filenames.bestfile_$count) + if ($file ne "") then + evaluate ($TotalNstruct = $TotalNstruct + 1) + end if +end loop main + +if ($Iterations.anastruc > $TotalNstruct) then + evaluate ($Iterations.anastruc = $ToTalNstruct) +end if + +evaluate ($count = 1) +evaluate ($nstruc1 = 0) +while ($count le $Iterations.anastruc) loop main + evaluate ($file = $filenames.bestfile_$count) + coor init end + if ($file ne "") then + coor @@$file + evaluate ($nstruc1 = $nstruc1 + 1) + inline @RUN:amino-acids-bases-energies.cns + display # $file $interactene_water $interactene_methanol + end if + if ($count ge $Iterations.anastruc) then + exit loop main + end if + evaluate ($count = $count + 1) +end loop main + +stop diff --git a/src/haddock/modules/flexref/cns/print_coorheader.cns b/src/haddock/modules/flexref/cns/print_coorheader.cns new file mode 100644 index 000000000..d8e1a32c8 --- /dev/null +++ b/src/haddock/modules/flexref/cns/print_coorheader.cns @@ -0,0 +1,304 @@ +! print_coorheader.cns +! Generate the coordinate header (REMARKS) +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + +if ($Data.flags.dihed eq false) then evaluate ($dihe = 0) end if +if ($Data.flags.sani eq false) then evaluate ($sani = 0) end if +if ($Data.flags.xrdc eq false) then evaluate ($xrdc = 0) end if +if ($Data.flags.xpcs eq false) then evaluate ($xpcs = 0) end if +if ($Data.flags.dani eq false) then evaluate ($dani = 0) end if +if ($Data.flags.vean eq false) then evaluate ($vean = 0) end if +if ($Data.flags.cdih eq false) then evaluate ($cdih = 0) end if +if ($Data.flags.noe eq false) then evaluate ($noe = 0) end if +if ($Data.flags.rg eq false) then evaluate ($coll = 0) end if +if ($Data.flags.zres eq false) then evaluate ($zhar = 0) end if +if ($Data.flags.em eq false) then evaluate ($lcc = 0) end if + +evaluate($enerall=$etot) +evaluate($bondall=$bond) +evaluate($anglall=$angl) +evaluate($imprall=$impr) +evaluate($diheall=$dihe) +evaluate($vdwall=$vdw) +evaluate($elecall=$elec) +evaluate($noeall=$noe) +evaluate($rgall=$coll) +evaluate($zresall=$zhar) +evaluate($cdihall=$cdih) +evaluate($coupall=0) +evaluate($saniall=$sani+$xrdc) +evaluate($veanall=$vean) +evaluate($xpcsall=$xpcs) +evaluate($daniall=$dani) + +if ($Data.flags.sym eq true) then + evaluate ($result=0) + evaluate ($violations=0) + print threshold=0.3 noe + evaluate ($rms_noe=$result) + evaluate ($violations_noe=$violations) +end if + +if ($Data.noecv eq false) then + evaluate ($violations_test_noe= 0) + evaluate ($rms_test_noe = 0) + evaluate ($npart = 0) +end if + +evaluate ($result=0) +evaluate ($violations=0) +print threshold=5. cdih +evaluate ($rms_cdih=$result) +evaluate ($violations_cdih=$violations) +evaluate ($result=0) +print thres=0.05 bonds +evaluate ($rms_bonds=$result) +evaluate ($result=0) +print thres=5. angles +evaluate ($rms_angles=$result) +evaluate ($result=0) +print thres=5. impropers +evaluate ($rms_impropers=$result) +evaluate ($result=0) +print thres=30. dihedrals +evaluate ($rms_dihedrals=$result) +evaluate ($result=0) +evaluate ($violations=0) +evaluate ($rms_coup = 0) +evaluate ($violations_coup = 0) + +evaluate( $rms_sani = 0) +evaluate( $violations_sani = 0) +if ($Data.flags.sani eq TRUE) then + sani print threshold = 0.20 class rd* end + evaluate( $rms_sani = $result) + evaluate( $violations_sani = $violations) +end if + +evaluate( $rms_xrdc = 0) +evaluate( $violations_xrdc = 0) +if ($Data.flags.xrdc eq TRUE) then + xrdc print threshold = 0.2 class xr* end + evaluate( $rms_xrdc = $result) + evaluate( $violations_xrdc = $violations) +end if + +evaluate( $violations_sani = $violations_sani + $violations_xrdc) +evaluate( $rms_sani = $rms_sani + $rms_xrdc) + +evaluate( $rms_xpcs = 0) +evaluate( $violations_xpcs = 0) +if ($Data.flags.xpcs eq TRUE) then + xpcs print threshold = 0.2 class pc* end + evaluate( $rms_xpcs = $result) + evaluate( $violations_xpcs = $violations) +end if + +evaluate( $rms_vean = 0) +evaluate( $violations_vean = 0) +if ($Data.flags.vean eq TRUE) then + vean print threshold = 5.00 class ve* end + evaluate( $rms_vean = $result) + evaluate( $violations_vean = $violations) +end if + +evaluate( $rms_dani = 0) +evaluate( $violations_dani = 0) +if ($Data.flags.dani eq TRUE) then + dani print threshold = 0.20 class da* end + evaluate( $rms_dani = $result) + evaluate( $violations_dani = $violations) +end if + +{====>} {* define ASA-based solvation parameters *} +inline @RUN:def_solv_param.cns + +{====>} {* buried surface area and desolvation*} +evaluate ($nchain1 = 0) +evaluate ($saafree = 0) +evaluate ($esolfree = 0) +while ($nchain1 < $data.ncomponents) loop nloop1 + evaluate ($nchain1 = $nchain1 + 1) + {====>} {* buried surface area and desolvation*} + do (rmsd = 0) (all) + surface mode=access accu=0.075 rh2o=1.4 sele=(segid $Toppar.prot_segid_$nchain1 and not (resn WAT or resn HOH or resn TIP* or resn DMS or resn SHA)) end + show sum (rmsd) (segid $Toppar.prot_segid_$nchain1 and not (resn WAT or resn HOH or resn TIP* or resn DMS or resn SHA)) + evaluate ($saafree = $saafree + $result) + do (store2 = rmsd * store1) (segid $Toppar.prot_segid_$nchain1 and not (resn WAT or resn HOH or resn TIP* or resn DMS or resn SHA)) + show sum (store2) (segid $Toppar.prot_segid_$nchain1 and not (resn WAT or resn HOH or resn TIP* or resn DMS or resn SHA)) + evaluate ($esolfree = $esolfree + $result) +end loop nloop1 + +do (rmsd = 0) (all) +do (store2 = 0) (all) +surface mode=access accu=0.075 rh2o=1.4 sele=(not (resn WAT or resn HOH or resn TIP* or resn DMS or resn SHA)) end +show sum (rmsd) (not ((resn WAT or resn HOH or resn TIP*) or resn DMS or resn SHA)) +evaluate ($satot = $result) +do (store2 = rmsd * store1) (not (resn WAT or resn HOH or resn TIP* or resn DMS or resn SHA)) +show sum (store2) (not (resn WAT or resn HOH or resn TIP* or resn DMS or resn SHA)) +evaluate ($esolcplx = $result) +evaluate ($saburied = $saafree - $satot) +if ($saburied < 0) then + evaluate ($saburied = -999999) +end if + +evaluate ($edesolv = $esolcplx - $esolfree) + +evaluate ($dhbinding = $edesolv + $eintcplx - $eintfree + $elecall + $vdwall) + +if ($data.ncomponents = 1) then + evaluate ($saburied = 0) + evaluate ($edesolv = 0) + evaluate ($dhbinding = 0) +end if + +if ($Data.flags.sym eq true) then + evaluate ($enerall = $enerall + $esym) +end if +if ($Data.flags.ncs eq true) then + evaluate ($enerall = $enerall + $ncs) +end if + +evaluate ($procwat = false) +if ($refine.keepwater eq true) then + evaluate ($procwat = true) +end if +if ($data.waterdock eq true) then + evaluate ($procwat = true) +end if + +if ($procwat eq true) then + if ($iteration eq 2) then + do (store3 = 0) (all) + eval($nchain1 = 0) + while ($nchain1 < $data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + eval($nchain2 = $nchain1) + while ($nchain2 < $data.ncomponents) loop nloop2 + eval($nchain2 = $nchain2 + 1) + do (store3 = 1) (byres ((resn WAT or resn HOH or resn TIP* or resn DMS) and (segid $Toppar.prot_segid_$nchain1) around 3.5 + and (segid $Toppar.prot_segid_$nchain2) around 3.5)) + end loop nloop2 + end loop nloop1 + dele sele=(attr store3=0 and (resn DMS or resn WAT or resn HOH or resn TIP*)) end + end if + if ($iteration ne 0) then + ident (store3) (not all) + end if + flag exclude * include vdw elec end + + eval($nchain1 = 0) + + while ($nchain1 < $data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + + igroup + interaction (segid $Toppar.prot_segid_$nchain1) ((resn WAT or resn HOH or resn TIP* or resn DMS) and not store3) weight * 1.0 end + interaction (not segid $Toppar.prot_segid_$nchain1) (resn WAT or resn HOH or resn TIP* or resn DMS) weight * 0.0 end + interaction (segid $Toppar.prot_segid_$nchain1) (not ((resn WAT or resn HOH or resn TIP* or resn DMS) and store3)) weight * 0.0 end + end + energy end + evaluate ($ener_water_$nchain1 = $ener) + evaluate ($enerall = $enerall + $ener) + evaluate ($vdw_water_$nchain1 = $vdw) + evaluate ($elec_water_$nchain1 = $elec) + + end loop nloop1 + if ($data.ncomponents > 1) then + eval($nchain1 = $data.ncomponents) + while ($nchain1 < $data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + evaluate ($ener_water_$nchain1 = 0.0) + evaluate ($vdw_water_$nchain1 = 0.0) + evaluate ($elec_water_$nchain1 = 0.0) + end loop nloop1 + end if + + eval($nchain1 = 0) + + igroup + while ($nchain1 < $data.ncomponents) loop nloop2 + eval($nchain1 = $nchain1 + 1) + interaction (segid $Toppar.prot_segid_$nchain1) (all) weight * 0.0 end + end loop nloop2 + interaction ((resn WAT or resn HOH or resn TIP* or resn DMS) and not store3) + ((resn WAT or resn HOH or resn TIP* or resn DMS) and not store3) weight * 1.0 end + interaction (store3) (store3) weight * 0.0 end + interaction (resn SHA) (not resn SHA) weight * 0.0 end + interaction (resn SHA) (resn SHA) weight * 0.0 end + end + energy end + evaluate ($ener_water_water = $ener) + evaluate ($enerall = $enerall + $ener) + evaluate ($vdw_water_water = $vdw) + evaluate ($elec_water_water = $elec) +else + eval($nchain1 = 0) + + while ($nchain1 < $data.ncomponents ) loop nloop1 + eval($nchain1 = $nchain1 + 1) + evaluate ($ener_water_$nchain1 = 0.0) + evaluate ($vdw_water_$nchain1 = 0.0) + evaluate ($elec_water_$nchain1 = 0.0) + end loop nloop1 + evaluate ($ener_water_water = 0.0) + evaluate ($vdw_water_water = 0.0) + evaluate ($elec_water_water = 0.0) +end if + +! File name +evaluate ($initialstruct = $file - "PREVIT:") +evaluate($ncount = 0) + +set remarks=reset end +set remarks=accumulate end +remarks =============================================================== +remarks HADDOCK run for $Filenames.fileroot +!remarks initial structure: $initialstruct +!remarks final NOE weights: unambig $Data.unamb_cool3 amb: $Data.amb_cool3 +remarks =============================================================== +remarks total,bonds,angles,improper,dihe,vdw,elec,air,cdih,coup,rdcs,vean,dani,xpcs,rg +remarks energies: $enerall, $bondall, $anglall, $imprall, $diheall, $vdwall, $elecall, $noeall, $cdihall, $coupall, $saniall, $veanall, $daniall, $xpcsall, $rgall +remarks =============================================================== +remarks bonds,angles,impropers,dihe,air,cdih,coup,rdcs,vean,dani,xpcs +remarks rms-dev.: $rms_bonds,$rms_angles,$rms_impropers,$rms_dihedrals,$rms_noe,$rms_cdih,$rms_coup, $rms_sani, $rms_vean, $rms_dani, $rms_xpcs +remarks =============================================================== +remarks air,cdih,coup,rdcs,vean,dani,xpcs +remarks >0.3,>5,>1,>0,>5,>0.2,>0.2 +remarks violations.: $violations_noe, $violations_cdih, $violations_coup, $violations_sani, $violations_vean, $violations_dani, $violations_xpcs +remarks =============================================================== +remarks CVpartition#,violations,rms +remarks AIRs cross-validation: $npart, $violations_test_noe, $rms_test_noe +remarks =============================================================== +remarks NCS energy: $ncs +remarks =============================================================== +remarks Symmetry energy: $esym +remarks =============================================================== +remarks Membrane restraining energy: $zresall +remarks =============================================================== +remarks Local cross-correlation: $lcc[f7.4] +remarks =============================================================== +remarks Desolvation energy: $edesolv +remarks Internal energy free molecules: $eintfree +remarks Internal energy complex: $eintcplx +remarks Binding energy: $dhbinding +remarks =============================================================== +remarks buried surface area: $saburied +remarks =============================================================== +set remark accumulate end +while ($ncount < $data.ncomponents) loop waterremark + evaluate ($ncount = $ncount +1) + remarks water - chain_$ncount: $ener_water_$ncount $vdw_water_$ncount $elec_water_$ncount +end loop waterremark +remarks =============================================================== +remarks water - water: $ener_water_water $vdw_water_water $elec_water_water +remarks =============================================================== diff --git a/src/haddock/modules/flexref/cns/print_dani.inp b/src/haddock/modules/flexref/cns/print_dani.inp new file mode 100644 index 000000000..e56d28ce4 --- /dev/null +++ b/src/haddock/modules/flexref/cns/print_dani.inp @@ -0,0 +1,134 @@ +! print_dani.inp +! Analyse and print diffusion anisotropy restraints statistics +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + +@RUN:initialize.cns(iteration=$iteration;) + +@NEWIT:iteration.cns(iteration=$iteration;) + +@RUN:run.cns( +iteration =$iteration; +filenames =$filenames; +data =$data; +iterations=$iterations; +saprotocol=$saprotocol; +refine =$refine; +toppar =$toppar; +analysis =$analysis; +) + +!reads in structure, coordinates and parameter files +@RUN:read_struc.cns +@RUN:read_struc-cg.cns + +@PREVIT:file.cns(filenames=$filenames) +evaluate ($file = $filenames.bestfile_1) +coor @@$file + +delete sele=(not(known)) end + +flags exclude * include dani end + + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!DANI restraints: + +evaluate ($ndani=1) +dani reset nres=5000 end +while ($ndani <= $data.numdani) loop dani + evaluate ($sum_rms_dan$ndani = 0) + evaluate ($sumsq_rms_dan$ndani = 0) + evaluate ($cln = "da" + encode($ndani) ) + evaluate ($restfile="RUN:data/dani/dani"+encode($ndani)+".tbl") + if ($data.dan_choice_$ndani eq "DANI") then + evaluate ($data.flags.dani = true) + dani + class $cln + force 1.0 + coeff $Data.dan_tc_$ndani $Data.dan_anis_$ndani $Data.dan_r_$ndani $Data.dan_wh_$ndani $Data.dan_wn_$ndani + potential square + @@$restfile + end + end if + evaluate ($ndani = $ndani + 1) +end loop dani + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +set display=NEWIT:analysis/dani.disp end + +@PREVIT:file.cns(filenames=$filenames) + +evaluate ($count = 0) +evaluate ($TotalNstruct = 0) +while ($count lt $Iterations.Structures) loop main + evaluate ($count=$count+1) + evaluate ($file = $filenames.bestfile_$count) + if ($file ne "") then + evaluate ($TotalNstruct = $TotalNstruct + 1) + end if +end loop main + +if ($Iterations.anastruc > $TotalNstruct) then + evaluate ($Iterations.anastruc = $ToTalNstruct) +end if + +display #filename rms_dani #viol>1Hz #viol>0.5Hz #viol>0.2Hz + +evaluate ($count = 0) +evaluate ($nstruc1 = 0) +!NB: for some reason, the dani print thresh statement only gives back 'result; +!when first sani has done this.... +!and then it keeps 0.0 +!so probably it does not work at all?? +sani print thresh=100.0 all end +while ($count le $Iterations.anastruc) loop main + evaluate ($count = $count + 1) + evaluate ($file = $filenames.bestfile_$count) + coor init end + if ($file ne "") then + coor @@$file + evaluate ($nstruc1 = $nstruc1 + 1) + + evaluate ($ndani=1) + while ($ndani <= $data.numdani) loop dani + evaluate ($violations = 0) + evaluate ($result = 0) + evaluate ($cln = "da" + encode($ndani) ) + if ($data.dan_choice_$ndani eq "DANI") then + dani print thresh=1.0 class $cln end + evaluate ($violations1 = $violations) + dani print thresh=0.5 class $cln end + evaluate ($violations2 = $violations) + dani print thresh=0.2 class $cln end + evaluate ($violations3 = $violations) + evaluate ($rms_dan$ndani = $rms) + evaluate ($sum_rms_dan$ndani = $sum_rms_dan$ndani + $rms_dan$ndani) + evaluate ($sumsq_rms_dan$ndani = $sumsq_rms_dan$ndani + $rms_dan$ndani**2) + display # dan$ndani $file $rms_dan$ndani $violations1 $violations2 $violations3 + end if + evaluate ($ndani = $ndani + 1) + end loop dani + end if +end loop main + +evaluate ($ndani=1) +while ($ndani <= $data.numdani) loop dani + if ($data.dan_choice_$ndani eq "DANI") then + evaluate ($mean_rms_dan$ndani = $sum_rms_dan$ndani / $nstruc1) + evaluate ($stdev_rms_dan$ndani = sqrt(($sumsq_rms_dan$ndani - $nstruc1*$mean_rms_dan$ndani**2)/ $nstruc$ndani)) + display # mean values dan(dani) class dan$ndani + display # dani $mean_rms_dan$ndani (+/- $stdev_rms_dan$ndani ) + end if + evaluate ($ndani = $ndani + 1) +end loop dani + +stop diff --git a/src/haddock/modules/flexref/cns/print_dih.inp b/src/haddock/modules/flexref/cns/print_dih.inp new file mode 100644 index 000000000..5f3205ba5 --- /dev/null +++ b/src/haddock/modules/flexref/cns/print_dih.inp @@ -0,0 +1,114 @@ +! print_dih.inp +! Analyze and print dihedral angle restraints statistics +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + +@RUN:initialize.cns(iteration=$iteration;) + +@NEWIT:iteration.cns(iteration=$iteration;) + +@RUN:run.cns( +iteration =$iteration; +filenames =$filenames; +data =$data; +iterations=$iterations; +saprotocol=$saprotocol; +refine =$refine; +toppar =$toppar; +analysis =$analysis; +) + +!reads in structure, coordinates and parameter files +@RUN:read_struc.cns +@RUN:read_struc-cg.cns + +@PREVIT:file.cns(filenames=$filenames) +evaluate ($file = $filenames.bestfile_1) +coor @@$file + +delete sele=(not(known)) end + +evaluate ($cutdih = 5.0) + +set display=NEWIT:analysis/dihedrals.disp end + +display # dihedral restraints +!read tbl file +evaluate ($filename = "RUN:data/dihedrals/dihedrals.tbl") +restraints dihedral nass=2000 @@$filename scale = $data.dihedrals_cool3 end + +flags exclude * include cdih end + +evaluate ($sum_rms_dih = 0) +evaluate ($sumsq_rms_dih = 0) +evaluate ($svio_dih = 0) ! sum violations +evaluate ($ssvio_dih = 0) ! square sum of violations + +@PREVIT:file.cns(filenames=$filenames) + +evaluate ($count = 0) +evaluate ($TotalNstruct = 0) +while ($count lt $Iterations.Structures) loop main + evaluate ($count=$count+1) + evaluate ($file = $filenames.bestfile_$count) + if ($file ne "") then + evaluate ($TotalNstruct = $TotalNstruct + 1) + end if +end loop main + +if ($Iterations.anastruc > $TotalNstruct) then + evaluate ($Iterations.anastruc = $ToTalNstruct) +end if + +evaluate ($count = 1) +evaluate ($nstruc1 = 0) +while ($count le $Iterations.anastruc) loop main + evaluate ($count = $count + 1) + evaluate ($file = $filenames.bestfile_$count) + coor init end + if ($file ne "") then + coor @@$file + evaluate ($nstruc1 = $nstruc1 + 1) + + print thresh=$cutdih cdih + evaluate ($rms_dih = $result) + evaluate ($sum_rms_dih = $sum_rms_dih + $rms_dih ) + evaluate ($sumsq_rms_dih = $sumsq_rms_dih + $rms_dih**2 ) + + evaluate ($vio_dih = $violations) + evaluate ($svio_dih = $svio_dih +$vio_dih) + evaluate ($ssvio_dih = $ssvio_dih +$vio_dih**2) + + display # DIH $file rmsd: $rms_dih vio: $vio_dih + + end if +end loop main + + +evaluate ($m_rms_dih = $sum_rms_dih / $nstruc1) +evaluate ($m_vio_dih = $svio_dih / $nstruc1) +evaluate ($sd_rms_dih = + sqrt(($sumsq_rms_dih - $nstruc1*$m_rms_dih**2)/ $nstruc1)) +evaluate ($sd_vio_dih = + sqrt(($ssvio_dih - $nstruc1*$m_vio_dih**2)/ $nstruc1)) + +display # mean values $filename +display # DIH rmsd (deg) $m_rms_dih ($sd_rms_dih) +display # DIH vio > $cutdih deg: $m_vio_dih ($sd_vio_dih) +display m_rms_dih sd_rms_dih cutdih m_vio_dih sd_vio_dih +display $m_rms_dih $sd_rms_dih $cutdih $m_vio_dih $sd_vio_dih +display # + +evaluate ($outdis = "NEWIT:analysis/DIH_DONE") +set display=$outdis end +display DONE + +stop diff --git a/src/haddock/modules/flexref/cns/print_geom.inp b/src/haddock/modules/flexref/cns/print_geom.inp new file mode 100644 index 000000000..4bd10d36d --- /dev/null +++ b/src/haddock/modules/flexref/cns/print_geom.inp @@ -0,0 +1,129 @@ +! print_geom.inp +! Analyze and print covalent geometry statistics +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + +@RUN:initialize.cns(iteration=$iteration;) + +@NEWIT:iteration.cns(iteration=$iteration;) + +@RUN:run.cns( +iteration =$iteration; +filenames =$filenames; +data =$data; +iterations=$iterations; +saprotocol=$saprotocol; +refine =$refine; +toppar =$toppar; +analysis =$analysis; +) + +!reads in structure, coordinates and parameter files +@RUN:read_struc.cns +@RUN:read_struc-cg.cns + +@PREVIT:file.cns(filenames=$filenames) +evaluate ($file = $filenames.bestfile_1) +coor @@$file + +delete sele=(not(known)) end + +set display=NEWIT:analysis/geom.disp end +display # geometry analysis +display # filename rms_bond rms_angle rms_impr rmsd_dihe + +flags exclude * include bond angle impr dihe end + +evaluate ($sum_rms_bond = 0) +evaluate ($sumsq_rms_bond = 0) +evaluate ($sum_rms_angle = 0) +evaluate ($sumsq_rms_angle = 0) +evaluate ($sum_rms_impr = 0) +evaluate ($sumsq_rms_impr = 0) +evaluate ($sum_rms_dihe = 0) +evaluate ($sumsq_rms_dihe = 0) + +@PREVIT:file.cns(filenames=$filenames) + +evaluate ($count = 0) +evaluate ($TotalNstruct = 0) +while ($count lt $Iterations.Structures) loop main + evaluate ($count=$count+1) + evaluate ($file = $filenames.bestfile_$count) + if ($file ne "") then + evaluate ($TotalNstruct = $TotalNstruct + 1) + end if +end loop main + +if ($Iterations.anastruc > $TotalNstruct) then + evaluate ($Iterations.anastruc = $ToTalNstruct) +end if + +evaluate ($count = 1) +evaluate ($nstruc1 = 0) +while ($count le $Iterations.anastruc) loop main + evaluate ($file = $filenames.bestfile_$count) + coor init end + if ($file ne "") then + coor @@$file + evaluate ($nstruc1 = $nstruc1 + 1) + + print thresh=0.025 bonds evaluate ($rms_bond = $result) + evaluate ($sum_rms_bond = $sum_rms_bond + $rms_bond) + evaluate ($sumsq_rms_bond = $sumsq_rms_bond + $rms_bond**2) + + print thresh=2.5 angle evaluate ($rms_angle = $result) + evaluate ($sum_rms_angle = $sum_rms_angle + $rms_angle) + evaluate ($sumsq_rms_angle = $sumsq_rms_angle + $rms_angle**2) + + print thresh=2.5 impr evaluate ($rms_impr = $result) + evaluate ($sum_rms_impr = $sum_rms_impr + $rms_impr) + evaluate ($sumsq_rms_impr = $sumsq_rms_impr + $rms_impr**2) + + ! the following is needed to avoid having dihedral violations for the + ! backbone phi/psi dihedrals that are a sum of six cos terms that + ! are analysed separately in the print dihe statement. + ! Note that a few ch1 dihedral will be excluded as well... + igroup interaction (not name C) (not name C) end + print thresh=30.0 dihe evaluate ($rms_dihe = $result) + igroup interaction (all) (all) end + evaluate ($sum_rms_dihe = $sum_rms_dihe + $rms_dihe) + evaluate ($sumsq_rms_dihe = $sumsq_rms_dihe + $rms_dihe**2) + + energy end + display # $file $rms_bond $rms_angle $rms_impr $rms_dihe + end if + if ($count ge $Iterations.anastruc) then exit loop main end if + evaluate ($count = $count + 1) +end loop main + +evaluate ($mean_rms_bond = $sum_rms_bond / $nstruc1) +evaluate ($stdev_rms_bond = + sqrt(($sumsq_rms_bond - $nstruc1*$mean_rms_bond**2)/ $nstruc1)) +evaluate ($mean_rms_angle = $sum_rms_angle / $nstruc1) +evaluate ($stdev_rms_angle = + sqrt(($sumsq_rms_angle - $nstruc1*$mean_rms_angle**2)/ $nstruc1)) +evaluate ($mean_rms_impr = $sum_rms_impr / $nstruc1) +evaluate ($stdev_rms_impr = + sqrt(($sumsq_rms_impr - $nstruc1*$mean_rms_impr**2)/ $nstruc1)) +evaluate ($mean_rms_dihe = $sum_rms_dihe / $nstruc1) +evaluate ($stdev_rms_dihe = + sqrt(($sumsq_rms_dihe - $nstruc1*$mean_rms_dihe**2)/ $nstruc1)) + +display # mean values all +display # bond $mean_rms_bond (+/- $stdev_rms_bond ) +display # angle $mean_rms_angle (+/- $stdev_rms_angle ) +display # impr $mean_rms_impr (+/- $stdev_rms_impr ) +display # dihe $mean_rms_dihe (+/- $stdev_rms_dihe ) +display mean_rms_bond stdev_rms_bond mean_rms_angle stdev_rms_angle mean_rms_impr stdev_rms_impr +display $mean_rms_bond $stdev_rms_bond $mean_rms_angle $stdev_rms_angle $mean_rms_impr $stdev_rms_impr $mean_rms_dihe $stdev_rms_dihe + +stop diff --git a/src/haddock/modules/flexref/cns/print_hbonds.inp b/src/haddock/modules/flexref/cns/print_hbonds.inp new file mode 100644 index 000000000..07c4dd962 --- /dev/null +++ b/src/haddock/modules/flexref/cns/print_hbonds.inp @@ -0,0 +1,138 @@ +! print_hbonds.inp +! Analyze and print intermolecular hydrogen bond statistics +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + +@RUN:initialize.cns(iteration=$iteration;) + +@NEWIT:iteration.cns(iteration=$iteration;) + +@RUN:run.cns( +iteration =$iteration; +filenames =$filenames; +data =$data; +iterations=$iterations; +saprotocol=$saprotocol; +refine =$refine; +toppar =$toppar; +analysis =$analysis; +) + +!reads in structure, coordinates and parameter files +@RUN:read_struc.cns +@RUN:read_struc-cg.cns + +@PREVIT:file.cns(filenames=$filenames) +evaluate ($file = $filenames.bestfile_1) +coor @@$file + +delete sele=(not(known)) end + +@PREVIT:file.cns(filenames=$filenames) + +evaluate ($count = 0) +evaluate ($TotalNstruct = 0) +while ($count lt $Iterations.Structures) loop main + evaluate ($count=$count+1) + evaluate ($file = $filenames.bestfile_$count) + if ($file ne "") then + coor init end + coor @@$file + dele sele=(not known) end + evaluate ($TotalNstruct = $TotalNstruct + 1) + end if +end loop main + +if ($Iterations.anastruc > $TotalNstruct) then + evaluate ($Iterations.anastruc = $ToTalNstruct) +end if + +! define hydrogen bond donors +do (store1 = 0) (all) +do (store1 = 1) (name HN or name HT*) +do (store1 = 1) (resn ARG and (name HE or name HH*)) +do (store1 = 1) (resn ASN and name HD*) +do (store1 = 1) (resn CYS and name HG) +do (store1 = 1) (resn GLN and name HE*) +do (store1 = 1) (resn HIS* and (name HD1 or name HE2)) +do (store1 = 1) (resn LYS and name HZ*) +do (store1 = 1) (resn SER and name HG) +do (store1 = 1) (resn THR and name HG1) +do (store1 = 1) (resn DDZ and name HG*) +do (store1 = 1) (resn TRP and name HE1) +do (store1 = 1) (resn TYR and name HH) +do (store1 = 1) (name HO2') +do (store1 = 1) ((resn ADE or resn A or resn DA) and name H6*) +do (store1 = 1) ((resn GUA or resn G or resn DG) and (name H2* or name H1)) +do (store1 = 1) ((resn CYT or resn C or resn DC) and name H4*) +do (store1 = 1) ((resn THY or resn T or resn DT) and name H3) +do (store1 = 1) (resn URI and name H3) +do (store1 = 1) ((resn WAT or resn HOH or resn TIP*) and name H1) +do (store1 = 1) ((resn WAT or resn HOH or resn TIP*) and name H2) + +! define hydrogen bond acceptors +do (store2 = 0) (all) +do (store2 = 1) (name O or name OXT or name OT1 or name OT2) +do (store2 = 1) (resn ASN and name OD1) +do (store2 = 1) (resn ASP and name OD*) +do (store2 = 1) (resn GLN and name OE1) +do (store2 = 1) (resn GLU and name OE*) +do (store2 = 1) (resn SER and name OG) +do (store2 = 1) (resn THR and name OG1) +do (store2 = 1) (resn DDZ and name OG*) +do (store2 = 1) (resn TYR and name OH) +do (store2 = 1) (name O1P or name OP1 or name OP2 or name O2P) +do (store2 = 1) (name O2' or name O3' or name O4' or name O5') +do (store2 = 1) ((resn ADE or resn A or resn DA) and (name N1 or name N3 or name N7)) +do (store2 = 1) ((resn GUA or resn G or resn DG) and (name O6 or name N3 or name N7)) +do (store2 = 1) ((resn CYT or resn C or resn DC) and (name O2 or name N3)) +do (store2 = 1) ((resn THY or resn T or resn DT) and (name O2 or name O4)) +do (store2 = 1) ((resn URI or resn U) and (name O2 or name O4)) +do (store2 = 1) ((resn WAT or resn HOH or resn TIP*) and name OH2) + +if ($Data.ncomponents > 1) then + evaluate ($kinter = 1.0) + @RUN:scale_inter_only.cns +end if + +set message off echo off end +evaluate ($count = 0) +evaluate ($nstruc = 0) + +set display=NEWIT:analysis/hbonds.disp end + +while ($count lt $Iterations.anastruc) loop main + evaluate ($count = $count + 1) + evaluate ($file = $filenames.bestfile_$count) + coor init end + if ($file ne "") then + coor @@$file + evaluate ($nstruc = $nstruc + 1) + + display $file + + dist + from (attr store1=1) + to (attr store2=1) + cuton = 1.0 + cutoff = $Data.hb_dist + disp = print + output = NEWIT:analysis/hbonds.disp + end + + end if +end loop main + +evaluate ($outdis = "NEWIT:analysis/HBONDS_DONE") +set display=$outdis end +display DONE + +stop + diff --git a/src/haddock/modules/flexref/cns/print_nb.inp b/src/haddock/modules/flexref/cns/print_nb.inp new file mode 100644 index 000000000..742217f65 --- /dev/null +++ b/src/haddock/modules/flexref/cns/print_nb.inp @@ -0,0 +1,93 @@ +! print_nb.inp +! Analysze and print intermolecular non-bonded contacts statistics +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + +@RUN:initialize.cns(iteration=$iteration;) + +@NEWIT:iteration.cns(iteration=$iteration;) + +@RUN:run.cns( +iteration =$iteration; +filenames =$filenames; +data =$data; +iterations=$iterations; +saprotocol=$saprotocol; +refine =$refine; +toppar =$toppar; +analysis =$analysis; +) + +!reads in structure, coordinates and parameter files +@RUN:read_struc.cns +@RUN:read_struc-cg.cns + +@PREVIT:file.cns(filenames=$filenames) +evaluate ($file = $filenames.bestfile_1) +coor @@$file + +delete sele=(not(known)) end + +@PREVIT:file.cns(filenames=$filenames) + +evaluate ($count = 0) +evaluate ($TotalNstruct = 0) +while ($count lt $Iterations.Structures) loop main + evaluate ($count=$count+1) + evaluate ($file = $filenames.bestfile_$count) + if ($file ne "") then + coor init end + coor @@$file + dele sele=(not known) end + evaluate ($TotalNstruct = $TotalNstruct + 1) + end if +end loop main + +if ($Iterations.anastruc > $TotalNstruct) then + evaluate ($Iterations.anastruc = $ToTalNstruct) +end if + +evaluate ($kinter = 1.0) +@RUN:scale_inter_only.cns + +set message off echo off end +evaluate ($count = 0) +evaluate ($nstruc = 0) + +set display=NEWIT:analysis/nbcontacts.disp end + +while ($count lt $Iterations.anastruc) loop main + evaluate ($count = $count + 1) + evaluate ($file = $filenames.bestfile_$count) + coor init end + if ($file ne "") then + coor @@$file + evaluate ($nstruc = $nstruc + 1) + + display $file + + dist + from (name C*) + to (name C*) + cuton = 1.0 + cutoff = $Data.nb_dist + disp = print + output = NEWIT:analysis/nbcontacts.disp + end + + end if +end loop main + +evaluate ($outdis = "NEWIT:analysis/NB_DONE") +set display=$outdis end +display DONE + +stop + diff --git a/src/haddock/modules/flexref/cns/print_noes.inp b/src/haddock/modules/flexref/cns/print_noes.inp new file mode 100644 index 000000000..f005c31b0 --- /dev/null +++ b/src/haddock/modules/flexref/cns/print_noes.inp @@ -0,0 +1,672 @@ +! print_noes.inp +! Analyze and print distance restraints statistics +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + +@RUN:initialize.cns(iteration=$iteration;) + +@NEWIT:iteration.cns(iteration=$iteration;) + +@RUN:run.cns( +iteration =$iteration; +filenames =$filenames; +data =$data; +iterations=$iterations; +saprotocol=$saprotocol; +refine =$refine; +toppar =$toppar; +analysis =$analysis; +) + +!reads in structure, coordinates and parameter files +@RUN:read_struc.cns +@RUN:read_struc-cg.cns + +@PREVIT:file.cns(filenames=$filenames) +evaluate ($file = $filenames.bestfile_1) +coor @@$file + +delete sele=(not(known)) end + +! the following lines are only to avoid error messages +evaluate ($test_rms = 0) + +set display=NEWIT:analysis/noe.disp end + +flags exclude * include noe end + +display #all distance restraints +display #structure rms-noe #viol>0.5A #viol>0.3A #viol>0.1A #Enoe +noe + reset + nrestraints = 12000000 ! allocate space for NOEs + ceiling 100 + + set echo off message off end + class dist @@NEWIT:unambig.tbl + class ambi @@NEWIT:ambig.tbl + class hbon @@$hbond_fname + set echo on message on end + + averaging * sum + potential * soft + scale * 1.0 + sqconstant * 1.0 + sqexponent * 2 + soexponent * 1 + rswitch * 1.0 + sqoffset * 0.0 + asymptote * 2.0 + + msoexponent * 1 + masymptote * -2.0 + mrswitch * 1.0 + + avexpo hbond 20 +end + +evaluate ($sum_enoe = 0) +evaluate ($sumsq_enoe = 0) +evaluate ($sum_rms_noe = 0) +evaluate ($sumsq_rms_noe = 0) +evaluate ($sum_trms_noe = 0) +evaluate ($sumsq_trms_noe = 0) +evaluate ($sum_viol_noe1 = 0) +evaluate ($sumsq_viol_noe1 = 0) +evaluate ($sum_viol_noe2 = 0) +evaluate ($sumsq_viol_noe2 = 0) +evaluate ($sum_viol_noe3 = 0) +evaluate ($sumsq_viol_noe3 = 0) +evaluate ($violations = 0) + +@PREVIT:file.cns(filenames=$filenames) + +evaluate ($count = 0) +evaluate ($TotalNstruct = 0) +while ($count lt $Iterations.Structures) loop main + evaluate ($count=$count+1) + evaluate ($file = $filenames.bestfile_$count) + if ($file ne "") then + evaluate ($TotalNstruct = $TotalNstruct + 1) + end if +end loop main + +if ($Iterations.anastruc > $TotalNstruct) then + evaluate ($Iterations.anastruc = $ToTalNstruct) +end if + + +set message off echo off end +evaluate ($count = 0) +evaluate ($nstruc = 0) +while ($count lt $Iterations.anastruc) loop main + evaluate ($count = $count + 1) + evaluate ($file = $filenames.bestfile_$count) + coor init end + if ($file ne "") then + coor @@$file + evaluate ($nstruc = $nstruc + 1) + + energy end + + evaluate ($sum_enoe = $sum_enoe + $noe) + evaluate ($sumsq_enoe = $sumsq_enoe + $noe**2) + + evaluate ($violations = 0) + evaluate ($result = 0) + noe print thresh=0.025 end + evaluate ($rms_noe = $result) + evaluate ($sum_rms_noe = $sum_rms_noe + $rms_noe) + evaluate ($sumsq_rms_noe = $sumsq_rms_noe + $rms_noe**2) + evaluate ($sum_trms_noe = $sum_trms_noe + $test_rms) + evaluate ($sumsq_trms_noe = $sumsq_trms_noe + $test_rms**2) + + evaluate ($violations = 0) + evaluate ($result = 0) + noe print thresh=0.5 end + evaluate ($sum_viol_noe1 = $sum_viol_noe1 + $violations) + evaluate ($sumsq_viol_noe1 = $sumsq_viol_noe1 + $violations**2) + evaluate ($violations1 = $violations) + + set print=NEWIT:analysis/print_dist_all.out end + evaluate ($violations = 0) + evaluate ($result = 0) + noe print thresh=0.3 end + + set print=NEWIT:analysis/print_noe.out end + evaluate ($sum_viol_noe2 = $sum_viol_noe2 + $violations) + evaluate ($sumsq_viol_noe2 = $sumsq_viol_noe2 + $violations**2) + evaluate ($violations2 = $violations) + evaluate ($violations = 0) + evaluate ($result = 0) + noe print thresh=0.1 end + evaluate ($sum_viol_noe3 = $sum_viol_noe3 + $violations) + evaluate ($sumsq_viol_noe3 = $sumsq_viol_noe3 + $violations**2) + evaluate ($violations3 = $violations) + + display $file $rms_noe $violations1 $violations2 $violations3 $noe + end if +end loop main + +evaluate ($mean_enoe = $sum_enoe / $nstruc) +evaluate ($stdev_enoe = + sqrt(($sumsq_enoe - $nstruc*$mean_enoe**2)/ $nstruc)) +evaluate ($mean_rms_noe = $sum_rms_noe / $nstruc) +evaluate ($stdev_rms_noe = + sqrt(($sumsq_rms_noe - $nstruc*$mean_rms_noe**2)/ $nstruc)) +evaluate ($mean_viol_noe1 = $sum_viol_noe1 / $nstruc) +evaluate ($stdev_viol_noe1 = + sqrt(($sumsq_viol_noe1 - $nstruc*$mean_viol_noe1**2)/ $nstruc)) +evaluate ($mean_viol_noe2 = $sum_viol_noe2 / $nstruc) +evaluate ($stdev_viol_noe2 = + sqrt(($sumsq_viol_noe2 - $nstruc*$mean_viol_noe2**2)/ $nstruc)) +evaluate ($mean_viol_noe3 = $sum_viol_noe3 / $nstruc) +evaluate ($stdev_viol_noe3 = + sqrt(($sumsq_viol_noe3 - $nstruc*$mean_viol_noe3**2)/ $nstruc)) +display mean values +display Enoe $mean_enoe (+/- $stdev_enoe ) +display noe rms $mean_rms_noe (+/- $stdev_rms_noe ) +display violations > 0.5A $mean_viol_noe1 (+/- $stdev_viol_noe1 ) +display violations > 0.3A $mean_viol_noe2 (+/- $stdev_viol_noe2 ) +display violations > 0.1A $mean_viol_noe3 (+/- $stdev_viol_noe3 ) + +display +display #only unambiguous +display #structure rms-noe #viol>0.5A #viol>0.3A #viol>0.1A #Enoe +noe + reset + nrestraints = 4000000 ! allocate space for NOEs + ceiling 100 + + set echo off message off end + class dist @@NEWIT:unambig.tbl +!!! class ambi @@NEWIT:ambig.tbl +!!! class hbon @@$hbond_fname + set echo on message on end + + averaging * sum + potential * soft + scale * 1.0 + sqconstant * 1.0 + sqexponent * 2 + soexponent * 1 + rswitch * 1.0 + sqoffset * 0.0 + asymptote * 2.0 + + msoexponent * 1 + masymptote * -2.0 + mrswitch * 1.0 + + avexpo hbond 20 +end + +evaluate ($sum_enoe = 0) +evaluate ($sumsq_enoe = 0) +evaluate ($sum_rms_noe = 0) +evaluate ($sumsq_rms_noe = 0) +evaluate ($sum_trms_noe = 0) +evaluate ($sumsq_trms_noe = 0) +evaluate ($sum_viol_noe1 = 0) +evaluate ($sumsq_viol_noe1 = 0) +evaluate ($sum_viol_noe2 = 0) +evaluate ($sumsq_viol_noe2 = 0) +evaluate ($sum_viol_noe3 = 0) +evaluate ($sumsq_viol_noe3 = 0) +evaluate ($violations = 0) + + +set message off echo off end +evaluate ($count = 0) +evaluate ($nstruc = 0) +while ($count lt $Iterations.anastruc) loop main + evaluate ($count = $count + 1) + evaluate ($file = $filenames.bestfile_$count) + coor init end + if ($file ne "") then + coor @@$file + evaluate ($nstruc = $nstruc + 1) + + energy end + + evaluate ($sum_enoe = $sum_enoe + $noe) + evaluate ($sumsq_enoe = $sumsq_enoe + $noe**2) + + evaluate ($violations = 0) + evaluate ($result = 0) + noe print thresh=0.025 end + evaluate ($rms_noe = $result) + evaluate ($sum_rms_noe = $sum_rms_noe + $rms_noe) + evaluate ($sumsq_rms_noe = $sumsq_rms_noe + $rms_noe**2) + evaluate ($sum_trms_noe = $sum_trms_noe + $test_rms) + evaluate ($sumsq_trms_noe = $sumsq_trms_noe + $test_rms**2) + + evaluate ($violations = 0) + evaluate ($result = 0) + noe print thresh=0.5 end + evaluate ($sum_viol_noe1 = $sum_viol_noe1 + $violations) + evaluate ($sumsq_viol_noe1 = $sumsq_viol_noe1 + $violations**2) + evaluate ($violations1 = $violations) + + set print=NEWIT:analysis/print_noe_unambig.out end + evaluate ($violations = 0) + evaluate ($result = 0) + noe print thresh=0.3 end + + set print=NEWIT:analysis/print_noe.out end + evaluate ($sum_viol_noe2 = $sum_viol_noe2 + $violations) + evaluate ($sumsq_viol_noe2 = $sumsq_viol_noe2 + $violations**2) + evaluate ($violations2 = $violations) + evaluate ($violations = 0) + evaluate ($result = 0) + noe print thresh=0.1 end + evaluate ($sum_viol_noe3 = $sum_viol_noe3 + $violations) + evaluate ($sumsq_viol_noe3 = $sumsq_viol_noe3 + $violations**2) + evaluate ($violations3 = $violations) + + display $file $rms_noe $violations1 $violations2 $violations3 $noe + end if +end loop main + +evaluate ($mean_enoe = $sum_enoe / $nstruc) +evaluate ($stdev_enoe = + sqrt(($sumsq_enoe - $nstruc*$mean_enoe**2)/ $nstruc)) +evaluate ($mean_rms_noe = $sum_rms_noe / $nstruc) +evaluate ($stdev_rms_noe = + sqrt(($sumsq_rms_noe - $nstruc*$mean_rms_noe**2)/ $nstruc)) +evaluate ($mean_viol_noe1 = $sum_viol_noe1 / $nstruc) +evaluate ($stdev_viol_noe1 = + sqrt(($sumsq_viol_noe1 - $nstruc*$mean_viol_noe1**2)/ $nstruc)) +evaluate ($mean_viol_noe2 = $sum_viol_noe2 / $nstruc) +evaluate ($stdev_viol_noe2 = + sqrt(($sumsq_viol_noe2 - $nstruc*$mean_viol_noe2**2)/ $nstruc)) +evaluate ($mean_viol_noe3 = $sum_viol_noe3 / $nstruc) +evaluate ($stdev_viol_noe3 = + sqrt(($sumsq_viol_noe3 - $nstruc*$mean_viol_noe3**2)/ $nstruc)) +display mean values +display Enoe $mean_enoe (+/- $stdev_enoe ) +display noe rms $mean_rms_noe (+/- $stdev_rms_noe ) +display violations > 0.5A $mean_viol_noe1 (+/- $stdev_viol_noe1 ) +display violations > 0.3A $mean_viol_noe2 (+/- $stdev_viol_noe2 ) +display violations > 0.1A $mean_viol_noe3 (+/- $stdev_viol_noe3 ) + + + +display +display #only ambiguous +display #structure rms-noe #viol>0.5A #viol>0.3A #viol>0.1A #Enoe +noe + reset + nrestraints = 4000000 ! allocate space for NOEs + ceiling 100 + + set echo off message off end +!!! class dist @@NEWIT:unambig.tbl + class ambi @@NEWIT:ambig.tbl +!!! class hbon @@$hbond_fname + set echo on message on end + + averaging * sum + potential * soft + scale * 1.0 + sqconstant * 1.0 + sqexponent * 2 + soexponent * 1 + rswitch * 1.0 + sqoffset * 0.0 + asymptote * 2.0 + + msoexponent * 1 + masymptote * -2.0 + mrswitch * 1.0 + + avexpo hbond 20 +end + +evaluate ($sum_enoe = 0) +evaluate ($sumsq_enoe = 0) +evaluate ($sum_rms_noe = 0) +evaluate ($sumsq_rms_noe = 0) +evaluate ($sum_trms_noe = 0) +evaluate ($sumsq_trms_noe = 0) +evaluate ($sum_viol_noe1 = 0) +evaluate ($sumsq_viol_noe1 = 0) +evaluate ($sum_viol_noe2 = 0) +evaluate ($sumsq_viol_noe2 = 0) +evaluate ($sum_viol_noe3 = 0) +evaluate ($sumsq_viol_noe3 = 0) +evaluate ($violations = 0) + + +!set message off echo off end +evaluate ($count = 0) +evaluate ($nstruc = 0) +while ($count lt $Iterations.anastruc) loop main + evaluate ($count = $count + 1) + evaluate ($file = $filenames.bestfile_$count) + coor init end + if ($file ne "") then + coor @@$file + evaluate ($nstruc = $nstruc + 1) + + energy end + + evaluate ($sum_enoe = $sum_enoe + $noe) + evaluate ($sumsq_enoe = $sumsq_enoe + $noe**2) + + evaluate ($violations = 0) + evaluate ($result = 0) + noe print thresh=0.025 end + evaluate ($rms_noe = $result) + evaluate ($sum_rms_noe = $sum_rms_noe + $rms_noe) + evaluate ($sumsq_rms_noe = $sumsq_rms_noe + $rms_noe**2) + evaluate ($sum_trms_noe = $sum_trms_noe + $test_rms) + evaluate ($sumsq_trms_noe = $sumsq_trms_noe + $test_rms**2) + + evaluate ($violations = 0) + evaluate ($result = 0) + noe print thresh=0.5 end + evaluate ($sum_viol_noe1 = $sum_viol_noe1 + $violations) + evaluate ($sumsq_viol_noe1 = $sumsq_viol_noe1 + $violations**2) + evaluate ($violations1 = $violations) + + set print=NEWIT:analysis/print_noe_ambig.out end + evaluate ($violations = 0) + evaluate ($result = 0) + noe print thresh=0.3 end + + set print=NEWIT:analysis/print_noe.out end + evaluate ($sum_viol_noe2 = $sum_viol_noe2 + $violations) + evaluate ($sumsq_viol_noe2 = $sumsq_viol_noe2 + $violations**2) + evaluate ($violations2 = $violations) + evaluate ($violations = 0) + evaluate ($result = 0) + noe print thresh=0.1 end + evaluate ($sum_viol_noe3 = $sum_viol_noe3 + $violations) + evaluate ($sumsq_viol_noe3 = $sumsq_viol_noe3 + $violations**2) + evaluate ($violations3 = $violations) + + display $file $rms_noe $violations1 $violations2 $violations3 $noe + end if +end loop main + +evaluate ($mean_enoe = $sum_enoe / $nstruc) +evaluate ($stdev_enoe = + sqrt(($sumsq_enoe - $nstruc*$mean_enoe**2)/ $nstruc)) +evaluate ($mean_rms_noe = $sum_rms_noe / $nstruc) +evaluate ($stdev_rms_noe = + sqrt(($sumsq_rms_noe - $nstruc*$mean_rms_noe**2)/ $nstruc)) +evaluate ($mean_viol_noe1 = $sum_viol_noe1 / $nstruc) +evaluate ($stdev_viol_noe1 = + sqrt(($sumsq_viol_noe1 - $nstruc*$mean_viol_noe1**2)/ $nstruc)) +evaluate ($mean_viol_noe2 = $sum_viol_noe2 / $nstruc) +evaluate ($stdev_viol_noe2 = + sqrt(($sumsq_viol_noe2 - $nstruc*$mean_viol_noe2**2)/ $nstruc)) +evaluate ($mean_viol_noe3 = $sum_viol_noe3 / $nstruc) +evaluate ($stdev_viol_noe3 = + sqrt(($sumsq_viol_noe3 - $nstruc*$mean_viol_noe3**2)/ $nstruc)) +display mean values +display Enoe $mean_enoe (+/- $stdev_enoe ) +display noe rms $mean_rms_noe (+/- $stdev_rms_noe ) +display violations > 0.5A $mean_viol_noe1 (+/- $stdev_viol_noe1 ) +display violations > 0.3A $mean_viol_noe2 (+/- $stdev_viol_noe2 ) +display violations > 0.1A $mean_viol_noe3 (+/- $stdev_viol_noe3 ) + + + + +display +display #all noe distance restraints +display #structure rms-noe #viol>0.5A #viol>0.3A #viol>0.1A #Enoe +noe + reset + nrestraints = 4000000 ! allocate space for NOEs + ceiling 100 + + set echo off message off end + class dist @@NEWIT:unambig.tbl + class ambi @@NEWIT:ambig.tbl +!!! class hbon @@$hbond_fname + set echo on message on end + + averaging * sum + potential * soft + scale * 1.0 + sqconstant * 1.0 + sqexponent * 2 + soexponent * 1 + rswitch * 1.0 + sqoffset * 0.0 + asymptote * 2.0 + + msoexponent * 1 + masymptote * -2.0 + mrswitch * 1.0 + + avexpo hbond 20 +end + +evaluate ($sum_enoe = 0) +evaluate ($sumsq_enoe = 0) +evaluate ($sum_rms_noe = 0) +evaluate ($sumsq_rms_noe = 0) +evaluate ($sum_trms_noe = 0) +evaluate ($sumsq_trms_noe = 0) +evaluate ($sum_viol_noe1 = 0) +evaluate ($sumsq_viol_noe1 = 0) +evaluate ($sum_viol_noe2 = 0) +evaluate ($sumsq_viol_noe2 = 0) +evaluate ($sum_viol_noe3 = 0) +evaluate ($sumsq_viol_noe3 = 0) +evaluate ($violations = 0) + + +!set message off echo off end +evaluate ($count = 0) +evaluate ($nstruc = 0) +while ($count lt $Iterations.anastruc) loop main + evaluate ($count = $count + 1) + evaluate ($file = $filenames.bestfile_$count) + coor init end + if ($file ne "") then + coor @@$file + evaluate ($nstruc = $nstruc + 1) + + energy end + + evaluate ($sum_enoe = $sum_enoe + $noe) + evaluate ($sumsq_enoe = $sumsq_enoe + $noe**2) + + evaluate ($violations = 0) + evaluate ($result = 0) + noe print thresh=0.025 end + evaluate ($rms_noe = $result) + evaluate ($sum_rms_noe = $sum_rms_noe + $rms_noe) + evaluate ($sumsq_rms_noe = $sumsq_rms_noe + $rms_noe**2) + evaluate ($sum_trms_noe = $sum_trms_noe + $test_rms) + evaluate ($sumsq_trms_noe = $sumsq_trms_noe + $test_rms**2) + + evaluate ($violations = 0) + evaluate ($result = 0) + noe print thresh=0.5 end + evaluate ($sum_viol_noe1 = $sum_viol_noe1 + $violations) + evaluate ($sumsq_viol_noe1 = $sumsq_viol_noe1 + $violations**2) + evaluate ($violations1 = $violations) + + set print=NEWIT:analysis/print_dist_noes.out end + evaluate ($violations = 0) + evaluate ($result = 0) + noe print thresh=0.3 end + + set print=NEWIT:analysis/print_noe_all.out end + evaluate ($sum_viol_noe2 = $sum_viol_noe2 + $violations) + evaluate ($sumsq_viol_noe2 = $sumsq_viol_noe2 + $violations**2) + evaluate ($violations2 = $violations) + evaluate ($violations = 0) + evaluate ($result = 0) + noe print thresh=0.1 end + evaluate ($sum_viol_noe3 = $sum_viol_noe3 + $violations) + evaluate ($sumsq_viol_noe3 = $sumsq_viol_noe3 + $violations**2) + evaluate ($violations3 = $violations) + + display $file $rms_noe $violations1 $violations2 $violations3 $noe + end if +end loop main + +evaluate ($mean_enoe = $sum_enoe / $nstruc) +evaluate ($stdev_enoe = + sqrt(($sumsq_enoe - $nstruc*$mean_enoe**2)/ $nstruc)) +evaluate ($mean_rms_noe = $sum_rms_noe / $nstruc) +evaluate ($stdev_rms_noe = + sqrt(($sumsq_rms_noe - $nstruc*$mean_rms_noe**2)/ $nstruc)) +evaluate ($mean_viol_noe1 = $sum_viol_noe1 / $nstruc) +evaluate ($stdev_viol_noe1 = + sqrt(($sumsq_viol_noe1 - $nstruc*$mean_viol_noe1**2)/ $nstruc)) +evaluate ($mean_viol_noe2 = $sum_viol_noe2 / $nstruc) +evaluate ($stdev_viol_noe2 = + sqrt(($sumsq_viol_noe2 - $nstruc*$mean_viol_noe2**2)/ $nstruc)) +evaluate ($mean_viol_noe3 = $sum_viol_noe3 / $nstruc) +evaluate ($stdev_viol_noe3 = + sqrt(($sumsq_viol_noe3 - $nstruc*$mean_viol_noe3**2)/ $nstruc)) +display mean values +display Enoe $mean_enoe (+/- $stdev_enoe ) +display noe rms $mean_rms_noe (+/- $stdev_rms_noe ) +display violations > 0.5A $mean_viol_noe1 (+/- $stdev_viol_noe1 ) +display violations > 0.3A $mean_viol_noe2 (+/- $stdev_viol_noe2 ) +display violations > 0.1A $mean_viol_noe3 (+/- $stdev_viol_noe3 ) + + + +display +display #only hydrogen bond +display #structure rms-noe #viol>0.5A #viol>0.3A #viol>0.1A #Enoe +noe + reset + nrestraints = 4000000 ! allocate space for NOEs + ceiling 100 + + set echo off message off end +!!! class dist @@NEWIT:unambig.tbl +!!! class ambi @@NEWIT:ambig.tbl + class hbon @@$hbond_fname + set echo on message on end + + averaging * sum + potential * soft + scale * 1.0 + sqconstant * 1.0 + sqexponent * 2 + soexponent * 1 + rswitch * 1.0 + sqoffset * 0.0 + asymptote * 2.0 + + msoexponent * 1 + masymptote * -2.0 + mrswitch * 1.0 + + avexpo hbond 20 +end + +evaluate ($sum_enoe = 0) +evaluate ($sumsq_enoe = 0) +evaluate ($sum_rms_noe = 0) +evaluate ($sumsq_rms_noe = 0) +evaluate ($sum_trms_noe = 0) +evaluate ($sumsq_trms_noe = 0) +evaluate ($sum_viol_noe1 = 0) +evaluate ($sumsq_viol_noe1 = 0) +evaluate ($sum_viol_noe2 = 0) +evaluate ($sumsq_viol_noe2 = 0) +evaluate ($sum_viol_noe3 = 0) +evaluate ($sumsq_viol_noe3 = 0) +evaluate ($violations = 0) + +!set message off echo off end +evaluate ($count = 0) +evaluate ($nstruc = 0) +while ($count lt $Iterations.anastruc) loop main + evaluate ($count = $count + 1) + evaluate ($file = $filenames.bestfile_$count) + coor init end + if ($file ne "") then + coor @@$file + evaluate ($nstruc = $nstruc + 1) + + energy end + + evaluate ($sum_enoe = $sum_enoe + $noe) + evaluate ($sumsq_enoe = $sumsq_enoe + $noe**2) + + evaluate ($violations = 0) + evaluate ($result = 0) + noe print thresh=0.025 end + evaluate ($rms_noe = $result) + evaluate ($sum_rms_noe = $sum_rms_noe + $rms_noe) + evaluate ($sumsq_rms_noe = $sumsq_rms_noe + $rms_noe**2) + evaluate ($sum_trms_noe = $sum_trms_noe + $test_rms) + evaluate ($sumsq_trms_noe = $sumsq_trms_noe + $test_rms**2) + + evaluate ($violations = 0) + evaluate ($result = 0) + noe print thresh=0.5 end + evaluate ($sum_viol_noe1 = $sum_viol_noe1 + $violations) + evaluate ($sumsq_viol_noe1 = $sumsq_viol_noe1 + $violations**2) + evaluate ($violations1 = $violations) + + set print=NEWIT:analysis/print_dist_hbonds.out end + evaluate ($violations = 0) + evaluate ($result = 0) + noe print thresh=0.3 end + + set print=NEWIT:analysis/print_noe.out end + evaluate ($sum_viol_noe2 = $sum_viol_noe2 + $violations) + evaluate ($sumsq_viol_noe2 = $sumsq_viol_noe2 + $violations**2) + evaluate ($violations2 = $violations) + evaluate ($violations = 0) + evaluate ($result = 0) + noe print thresh=0.1 end + evaluate ($sum_viol_noe3 = $sum_viol_noe3 + $violations) + evaluate ($sumsq_viol_noe3 = $sumsq_viol_noe3 + $violations**2) + evaluate ($violations3 = $violations) + + display $file $rms_noe $violations1 $violations2 $violations3 $noe + end if +end loop main + +evaluate ($mean_enoe = $sum_enoe / $nstruc) +evaluate ($stdev_enoe = + sqrt(($sumsq_enoe - $nstruc*$mean_enoe**2)/ $nstruc)) +evaluate ($mean_rms_noe = $sum_rms_noe / $nstruc) +evaluate ($stdev_rms_noe = + sqrt(($sumsq_rms_noe - $nstruc*$mean_rms_noe**2)/ $nstruc)) +evaluate ($mean_viol_noe1 = $sum_viol_noe1 / $nstruc) +evaluate ($stdev_viol_noe1 = + sqrt(($sumsq_viol_noe1 - $nstruc*$mean_viol_noe1**2)/ $nstruc)) +evaluate ($mean_viol_noe2 = $sum_viol_noe2 / $nstruc) +evaluate ($stdev_viol_noe2 = + sqrt(($sumsq_viol_noe2 - $nstruc*$mean_viol_noe2**2)/ $nstruc)) +evaluate ($mean_viol_noe3 = $sum_viol_noe3 / $nstruc) +evaluate ($stdev_viol_noe3 = + sqrt(($sumsq_viol_noe3 - $nstruc*$mean_viol_noe3**2)/ $nstruc)) +display mean values +display Enoe $mean_enoe (+/- $stdev_enoe ) +display noe rms $mean_rms_noe (+/- $stdev_rms_noe ) +display violations > 0.5A $mean_viol_noe1 (+/- $stdev_viol_noe1 ) +display violations > 0.3A $mean_viol_noe2 (+/- $stdev_viol_noe2 ) +display violations > 0.1A $mean_viol_noe3 (+/- $stdev_viol_noe3 ) + +evaluate ($outdis = "NEWIT:analysis/NOE_DONE") +set display=$outdis end +display DONE + +stop + diff --git a/src/haddock/modules/flexref/cns/print_rg.inp b/src/haddock/modules/flexref/cns/print_rg.inp new file mode 100644 index 000000000..e598ac213 --- /dev/null +++ b/src/haddock/modules/flexref/cns/print_rg.inp @@ -0,0 +1,85 @@ +! print_rg.inp +! Analyze and print radius of gyration restraint statistics +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + +@RUN:initialize.cns(iteration=$iteration;) + +@NEWIT:iteration.cns(iteration=$iteration;) + +@RUN:run.cns( +iteration =$iteration; +filenames =$filenames; +data =$data; +iterations=$iterations; +saprotocol=$saprotocol; +refine =$refine; +toppar =$toppar; +analysis =$analysis; +) + +!reads in structure, coordinates and parameter files +@RUN:read_struc.cns +@RUN:read_struc-cg.cns + +@PREVIT:file.cns(filenames=$filenames) +evaluate ($file = $filenames.bestfile_1) +coor @@$file + +delete sele=(resn TIP* or resn WAT or resn HOH or resn DMS* or resn ANI or resn DAN or resn XAN or resn SHA) end +delete sele=(not(known)) end + +set display=NEWIT:analysis/rg.disp end +display # Rg analysis +display # filename Rg + +evaluate ($sum_rg = 0) +evaluate ($sumsq_rg = 0) + +@PREVIT:file.cns(filenames=$filenames) + +evaluate ($count = 0) +evaluate ($TotalNstruct = 0) +while ($count lt $Iterations.Structures) loop main + evaluate ($count=$count+1) + evaluate ($file = $filenames.bestfile_$count) + if ($file ne "") then + evaluate ($TotalNstruct = $TotalNstruct + 1) + end if +end loop main + +if ($Iterations.anastruc > $TotalNstruct) then + evaluate ($Iterations.anastruc = $ToTalNstruct) +end if + +evaluate ($count = 1) +evaluate ($nstruc1 = 0) +while ($count le $Iterations.anastruc) loop main + evaluate ($file = $filenames.bestfile_$count) + coor init end + if ($file ne "") then + coor @@$file + evaluate ($nstruc1 = $nstruc1 + 1) + coor rgyration sele=(all) end + evaluate ($sum_rg = $sum_rg + $rg) + evaluate ($sumsq_rg = $sumsq_rg + $rg**2) + display # $file $rg + end if + if ($count ge $Iterations.anastruc) then exit loop main end if + evaluate ($count = $count + 1) +end loop main + +evaluate ($mean_rg = $sum_rg / $nstruc1) +evaluate ($stdev_rg = sqrt(($sumsq_rg - $nstruc1*$mean_rg**2)/ $nstruc1)) + +display # mean values all +display # Rg $mean_rg (+/- $stdev_rg ) + +stop diff --git a/src/haddock/modules/flexref/cns/print_sani.inp b/src/haddock/modules/flexref/cns/print_sani.inp new file mode 100644 index 000000000..c0416ad6f --- /dev/null +++ b/src/haddock/modules/flexref/cns/print_sani.inp @@ -0,0 +1,130 @@ +! print_sani.inp +! Analyze and print RDC restraints (SANI) statistics +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + +@RUN:initialize.cns(iteration=$iteration;) + +@NEWIT:iteration.cns(iteration=$iteration;) + +@RUN:run.cns( +iteration =$iteration; +filenames =$filenames; +data =$data; +iterations=$iterations; +saprotocol=$saprotocol; +refine =$refine; +toppar =$toppar; +analysis =$analysis; +) + +!reads in structure, coordinates and parameter files +@RUN:read_struc.cns +@RUN:read_struc-cg.cns + +@PREVIT:file.cns(filenames=$filenames) +evaluate ($file = $filenames.bestfile_1) +coor @@$file + +delete sele=(not(known)) end + +set display=NEWIT:analysis/sani.disp end + +flags exclude * include sani end + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!sani restraints: + +evaluate ($nrdc=1) +sani reset nres=5000 end +while ($nrdc <= $data.numrdc) loop sani + evaluate ($sum_rms_rdc$nrdc = 0) + evaluate ($sumsq_rms_rdc$nrdc = 0) + evaluate ($cln = "rd" + encode($nrdc) ) + evaluate ($restfile="RUN:data/rdcs/rdc"+encode($nrdc)+".tbl") + if ($data.rdc_choice_$nrdc eq "SANI") then + evaluate ($data.flags.sani = true) + sani + class $cln + force 1.0 + coeff 0.0 $Data.rdc_d_$nrdc $Data.rdc_r_$nrdc + potential square + @@$restfile + end + end if + evaluate ($nrdc = $nrdc + 1) +end loop sani + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +@PREVIT:file.cns(filenames=$filenames) + +evaluate ($count = 0) +evaluate ($TotalNstruct = 0) +while ($count lt $Iterations.Structures) loop main + evaluate ($count=$count+1) + evaluate ($file = $filenames.bestfile_$count) + if ($file ne "") then + evaluate ($TotalNstruct = $TotalNstruct + 1) + end if +end loop main + +if ($Iterations.anastruc > $TotalNstruct) then + evaluate ($Iterations.anastruc = $ToTalNstruct) +end if + +display #filename rms_sani #viol>1Hz #viol>0.5Hz #viol>0.2Hz + +evaluate ($count = 0) +evaluate ($nstruc1 = 0) +while ($count le $Iterations.anastruc) loop main + evaluate ($count = $count + 1) + evaluate ($file = $filenames.bestfile_$count) + coor init end + if ($file ne "") then + coor @@$file + evaluate ($nstruc1 = $nstruc1 + 1) + + evaluate ($nrdc=1) + while ($nrdc <= $data.numrdc) loop sani + evaluate ($violations = 0) + evaluate ($result = 0) + evaluate ($cln = "rd" + encode($nrdc) ) + if ($Data.rdc_choice_$nrdc eq "SANI") then + sani print thresh=1.0 class $cln end + evaluate ($violations1 = $violations) + sani print thresh=0.5 class $cln end + evaluate ($violations2 = $violations) + sani print thresh=0.2 class $cln end + evaluate ($violations3 = $violations) + evaluate ($rms_rdc$nrdc = $result) + evaluate ($sum_rms_rdc$nrdc = $sum_rms_rdc$nrdc + $rms_rdc$nrdc) + evaluate ($sumsq_rms_rdc$nrdc = $sumsq_rms_rdc$nrdc + $rms_rdc$nrdc**2) + display # rdc$nrdc $file $rms_rdc$nrdc $violations1 $violations2 $violations3 + end if + evaluate ($nrdc = $nrdc + 1) + end loop sani + + end if +end loop main + +evaluate ($nrdc=1) +while ($nrdc <= $data.numrdc) loop sani + if ($Data.rdc_choice_$nrdc eq "SANI") then + evaluate ($mean_rms_rdc$nrdc = $sum_rms_rdc$nrdc / $nstruc1) + evaluate ($stdev_rms_rdc$nrdc = sqrt(($sumsq_rms_rdc$nrdc - $nstruc1*$mean_rms_rdc$nrdc**2)/ $nstruc1)) + display # mean values RDC(sani) class rdc$nrdc + display # sani $mean_rms_rdc$nrdc (+/- $stdev_rms_rdc$nrdc ) + end if +evaluate ($nrdc = $nrdc + 1) +end loop sani + +stop diff --git a/src/haddock/modules/flexref/cns/print_vean.inp b/src/haddock/modules/flexref/cns/print_vean.inp new file mode 100644 index 000000000..3554bb6a5 --- /dev/null +++ b/src/haddock/modules/flexref/cns/print_vean.inp @@ -0,0 +1,133 @@ +! print_vean.inp +! Analyze and print RDC restraints (VEAN) statistics +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + +@RUN:initialize.cns(iteration=$iteration;) + +@NEWIT:iteration.cns(iteration=$iteration;) + +@RUN:run.cns( +iteration =$iteration; +filenames =$filenames; +data =$data; +iterations=$iterations; +saprotocol=$saprotocol; +refine =$refine; +toppar =$toppar; +analysis =$analysis; +) + +!reads in structure, coordinates and parameter files +@RUN:read_struc.cns +@RUN:read_struc-cg.cns + +@PREVIT:file.cns(filenames=$filenames) +evaluate ($file = $filenames.bestfile_1) +coor @@$file + +delete sele=(not(known)) end + +!set the energy flags: + +flags exclude * include vean end + + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!residual dipolar couplings - vean restraints: +vean nrestraints=10000 end +set echo off message on end + +evaluate ($nrdc=1) +while ($nrdc <= $data.numrdc) loop rdc + evaluate ($sum_rms_rdc$nrdc = 0) + evaluate ($sumsq_rms_rdc$nrdc = 0) + evaluate ($sum_viol_rdc$nrdc = 0) + evaluate ($sumsq_viol_rdc$nrdc = 0) + evaluate ($cln = "rd" + encode($nrdc) ) + evaluate ($restfile="RUN:data/rdcs/rdc"+encode($nrdc)+".tbl") + if ($Data.rdc_choice_$nrdc eq "VANGLE") then + vean + class $cln + force 1.0 1.0 + @@$restfile + end + end if + evaluate ($nrdc = $nrdc + 1) +end loop rdc +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +set display=NEWIT:analysis/vean.disp end + +@PREVIT:file.cns(filenames=$filenames) + +evaluate ($count = 0) +evaluate ($TotalNstruct = 0) +while ($count lt $Iterations.Structures) loop main + evaluate ($count=$count+1) + evaluate ($file = $filenames.bestfile_$count) + if ($file ne "") then + evaluate ($TotalNstruct = $TotalNstruct + 1) + end if +end loop main + +if ($Iterations.anastruc > $TotalNstruct) then + evaluate ($Iterations.anastruc = $ToTalNstruct) +end if + +display #rdcset filename RMSvean #viol>5 +evaluate ($count = 0) +evaluate ($nstruc1 = 0) +while ($count le $Iterations.anastruc) loop main + evaluate ($count = $count + 1) + evaluate ($file = $filenames.bestfile_$count) + coor init end + if ($file ne "") then + coor @@$file + evaluate ($nstruc1 = $nstruc1 + 1) + + evaluate ($nrdc=1) + while ($nrdc <= $data.numrdc) loop rdc + evaluate ($violations = 0) + evaluate ($result = 0) + evaluate ($cln = "rd" + encode($nrdc) ) + if ($Data.rdc_choice_$nrdc eq "VANGLE") then + vean print threshold=5.0 class $cln end + evaluate ($rms_rdc$nrdc = $result) + evaluate ($sum_rms_rdc$nrdc = $sum_rms_rdc$nrdc + $rms_rdc$nrdc) + evaluate ($sumsq_rms_rdc$nrdc = $sumsq_rms_rdc$nrdc + $rms_rdc$nrdc**2) + evaluate ($sum_viol_rdc$nrdc = $sum_viol_rdc$nrdc + $violations) + evaluate ($sumsq_viol_rdc$nrdc = $sumsq_viol_rdc$nrdc + $violations**2) + display # rdc$nrdc $file $rms_rdc$nrdc $violations + end if + evaluate ($nrdc = $nrdc + 1) + end loop rdc + + end if +end loop main + + +evaluate ($nrdc=1) +while ($nrdc <= $data.numrdc) loop rdc + if ($Data.rdc_choice_$nrdc eq "VANGLE") then + evaluate ($mean_rms_rdc$nrdc = $sum_rms_rdc$nrdc / $nstruc1) + evaluate ($stdev_rms_rdc$nrdc = sqrt(($sumsq_rms_rdc$nrdc - $nstruc1*$mean_rms_rdc$nrdc**2)/ $nstruc1)) + evaluate ($mean_viol_rdc$nrdc = $sum_viol_rdc$nrdc / $nstruc1) + evaluate ($stdev_viol_rdc$nrdc = sqrt(($sumsq_viol_rdc$nrdc - $nstruc1*$mean_viol_rdc$nrdc**2)/ $nstruc1)) + display # mean values RDC(VANGLE) class vea$nrdc + display # VANGLE-RMS $mean_rms_rdc$nrdc (+/- $stdev_rms_rdc$nrdc ) + display # VANGLE-VIOLATIONS $mean_viol_rdc$nrdc (+/- $stdev_viol_rdc$nrdc ) + end if + evaluate ($nrdc = $nrdc + 1) +end loop rdc + +stop + diff --git a/src/haddock/modules/flexref/cns/print_xpcs.inp b/src/haddock/modules/flexref/cns/print_xpcs.inp new file mode 100644 index 000000000..824cbfbb0 --- /dev/null +++ b/src/haddock/modules/flexref/cns/print_xpcs.inp @@ -0,0 +1,128 @@ +! print_xpcs.inp +! Analyze and print Pseudo Contact Shift restraints statistics +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + +@RUN:initialize.cns(iteration=$iteration;) + +@NEWIT:iteration.cns(iteration=$iteration;) + +@RUN:run.cns( +iteration =$iteration; +filenames =$filenames; +data =$data; +iterations=$iterations; +saprotocol=$saprotocol; +refine =$refine; +toppar =$toppar; +analysis =$analysis; +) + +!reads in structure, coordinates and parameter files +@RUN:read_struc.cns +@RUN:read_struc-cg.cns + +@PREVIT:file.cns(filenames=$filenames) +evaluate ($file = $filenames.bestfile_1) +coor @@$file + +delete sele=(not(known)) end + +flags exclude * include xpcs end + +xpcs reset nres=5000 end + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!pseudo contact shifts: +evaluate ($npcs=1) +while ($npcs <= $data.numpcs) loop pcs + evaluate ($sum_rms_pcs$npcs = 0) + evaluate ($sumsq_rms_pcs$npcs = 0) + evaluate ($cln = "pc" + encode($npcs) ) + evaluate ($restfile="RUN:data/pcs/pcs"+encode($npcs)+".tbl") + if ($data.pcs_choice_$npcs eq "XPCS") then + evaluate ($data.flags.xpcs = true) + xpcs + class $cln + force 1.0 + coeff $Data.pcs_d_$npcs $Data.pcs_r_$npcs + @@$restfile + end + end if + evaluate ($npcs = $npcs + 1) +end loop pcs +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +set display=NEWIT:analysis/xpcs.disp end + +@PREVIT:file.cns(filenames=$filenames) + +evaluate ($count = 0) +evaluate ($TotalNstruct = 0) +while ($count lt $Iterations.Structures) loop main + evaluate ($count=$count+1) + evaluate ($file = $filenames.bestfile_$count) + if ($file ne "") then + evaluate ($TotalNstruct = $TotalNstruct + 1) + end if +end loop main + +if ($Iterations.anastruc > $TotalNstruct) then + evaluate ($Iterations.anastruc = $ToTalNstruct) +end if + +display #filename rms_xpcs #viol>1ppm #viol>0.5ppm #viol>0.2ppm + +evaluate ($count = 0) +evaluate ($nstruc1 = 0) +while ($count le $Iterations.anastruc) loop main + evaluate ($count = $count + 1) + evaluate ($file = $filenames.bestfile_$count) + coor init end + if ($file ne "") then + coor @@$file + evaluate ($nstruc1 = $nstruc1 + 1) + + evaluate ($npcs=1) + while ($npcs <= $data.numpcs) loop pcs + evaluate ($violations = 0) + evaluate ($result = 0) + evaluate ($cln = "pc" + encode($npcs) ) + if ($Data.pcs_choice_$npcs eq "XPCS") then + xpcs print thresh=1.0 class $cln end + evaluate ($violations1 = $violations) + xpcs print thresh=0.5 class $cln end + evaluate ($violations2 = $violations) + xpcs print thresh=0.2 class $cln end + evaluate ($violations3 = $violations) + evaluate ($rms_pcs$npcs = $result) + evaluate ($sum_rms_pcs$npcs = $sum_rms_pcs$npcs + $rms_pcs$npcs) + evaluate ($sumsq_rms_pcs$npcs = $sumsq_rms_pcs$npcs + $rms_pcs$npcs**2) + display # pcs$npcs $file $rms_pcs$npcs $violations1 $violations2 $violations3 + end if + evaluate ($npcs = $npcs + 1) + end loop pcs + + end if +end loop main + + +evaluate ($npcs=1) +while ($npcs <= $data.numpcs) loop pcs + if ($Data.pcs_choice_$npcs eq "XPCS") then + evaluate ($mean_rms_pcs$npcs = $sum_rms_pcs$npcs / $nstruc1) + evaluate ($stdev_rms_pcs$npcs = sqrt(($sumsq_rms_pcs$npcs - $nstruc1*$mean_rms_pcs$npcs**2)/ $nstruc1)) + display # mean values pcs(xpcs) class pcs$npcs + display # xpcs $mean_rms_pcs$npcs (+/- $stdev_rms_pcs$npcs ) + end if + evaluate ($npcs = $npcs + 1) +end loop pcs + +stop diff --git a/src/haddock/modules/flexref/cns/print_xrdc.inp b/src/haddock/modules/flexref/cns/print_xrdc.inp new file mode 100644 index 000000000..761b122a1 --- /dev/null +++ b/src/haddock/modules/flexref/cns/print_xrdc.inp @@ -0,0 +1,127 @@ +! print_xrdc.inp +! Analyze and print RDC restraints (para code) statistics +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + +@RUN:initialize.cns(iteration=$iteration;) + +@NEWIT:iteration.cns(iteration=$iteration;) + +@RUN:run.cns( +iteration =$iteration; +filenames =$filenames; +data =$data; +iterations=$iterations; +saprotocol=$saprotocol; +refine =$refine; +toppar =$toppar; +analysis =$analysis; +) + +!reads in structure, coordinates and parameter files +@RUN:read_struc.cns +@RUN:read_struc-cg.cns + +@PREVIT:file.cns(filenames=$filenames) +evaluate ($file = $filenames.bestfile_1) +coor @@$file + +delete sele=(not(known)) end + +flags exclude * include xrdc end + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!XRDC restraints: +xrdc reset nres=5000 end +evaluate ($nrdc=1) +while ($nrdc <= $data.numrdc) loop rdc + evaluate ($sum_rms_rdc$nrdc = 0) + evaluate ($sumsq_rms_rdc$nrdc = 0) + evaluate ($cln = "rd" + encode($nrdc) ) + evaluate ($restfile="RUN:data/rdcs/rdc"+encode($nrdc)+".tbl") + if ($data.rdc_choice_$nrdc eq "XRDC") then + evaluate ($data.flags.xrdc = true) + evaluate ($inixrdc=1) + xrdc + class $cln + force 1.0 + coeff $Data.rdc_d_$nrdc $Data.rdc_r_$nrdc + @@$restfile + end + end if + evaluate ($nrdc = $nrdc + 1) +end loop rdc +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +set display=NEWIT:analysis/xrdc.disp end + +@PREVIT:file.cns(filenames=$filenames) + +evaluate ($count = 0) +evaluate ($TotalNstruct = 0) +while ($count lt $Iterations.Structures) loop main + evaluate ($count=$count+1) + evaluate ($file = $filenames.bestfile_$count) + if ($file ne "") then + evaluate ($TotalNstruct = $TotalNstruct + 1) + end if +end loop main + +if ($Iterations.anastruc > $TotalNstruct) then + evaluate ($Iterations.anastruc = $ToTalNstruct) +end if + +display #filename rms_xrdc #viol>1Hz #viol>0.5Hz #viol>0.2Hz + +evaluate ($count = 0) +evaluate ($nstruc1 = 0) +while ($count le $Iterations.anastruc) loop main + evaluate ($count = $count + 1) + evaluate ($file = $filenames.bestfile_$count) + coor init end + if ($file ne "") then + coor @@$file + evaluate ($nstruc1 = $nstruc1 + 1) + + evaluate ($nrdc=1) + while ($nrdc <= $data.numrdc) loop rdc + evaluate ($violations = 0) + evaluate ($result = 0) + evaluate ($cln = "rd" + encode($nrdc) ) + if ($Data.rdc_choice_$nrdc eq "XRDC") then + xrdc print thresh=1.0 class $cln end + evaluate ($violations1 = $violations) + xrdc print thresh=0.5 class $cln end + evaluate ($violations2 = $violations) + xrdc print thresh=0.2 class $cln end + evaluate ($violations3 = $violations) + evaluate ($rms_rdc$nrdc = $result) + evaluate ($sum_rms_rdc$nrdc = $sum_rms_rdc$nrdc + $rms_rdc$nrdc) + evaluate ($sumsq_rms_rdc$nrdc = $sumsq_rms_rdc$nrdc + $rms_rdc$nrdc**2) + display # rdc$nrdc $file $rms_rdc$nrdc $violations1 $violations2 $violations3 + end if + evaluate ($nrdc = $nrdc + 1) + end loop rdc + + end if +end loop main + +evaluate ($nrdc=1) +while ($nrdc <= $data.numrdc) loop rdc + if ($Data.rdc_choice_$nrdc eq "XRDC") then + evaluate ($mean_rms_rdc$nrdc = $sum_rms_rdc$nrdc / $nstruc1) + evaluate ($stdev_rms_rdc$nrdc = sqrt(($sumsq_rms_rdc$nrdc - $nstruc1*$mean_rms_rdc$nrdc**2)/ $nstruc1)) + display # mean values RDC(xrdc) class rdc$nrdc + display # xrdc $mean_rms_rdc$nrdc (+/- $stdev_rms_rdc$nrdc ) + end if + evaluate ($nrdc = $nrdc + 1) +end loop rdc + +stop diff --git a/src/haddock/modules/flexref/cns/prot_break-CA.cns b/src/haddock/modules/flexref/cns/prot_break-CA.cns new file mode 100644 index 000000000..11fbb1528 --- /dev/null +++ b/src/haddock/modules/flexref/cns/prot_break-CA.cns @@ -0,0 +1,87 @@ +! prot_break-CA.cns +! Detect chain breaks in CA coordinates only models +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + evaluate ($pbreak=0) + + for $id1 in id ( name C and bondedto(name CA) and bondedto(name O) ) loop pbreak + + show (segid) (id $id1) + evaluate ($segid1=$result) + show (resid) (id $id1) + evaluate ($resid1=$result) + show (resn) (id $id1) + evaluate ($resn1=$result) + + show sum(1) (id $id1) + if ( $result = 0 ) then + display unknown coordinates for segid $segid1 resn $resn1 resid $resid1 name C + display this coordinate must be known for automatic protein chain break detection + abort + end if + + identity (store1) ( name N and bondedto( segid $segid1 and resid $resid1 and name c ) ) + + if ( $select = 1 ) then + show element (store1) (attribute store1 > 0) + evaluate ($id2=$result) + show (segid) (id $id2) + evaluate ($segid2=$result) + show (resid) (id $id2) + evaluate ($resid2=$result) + show (resn) (id $id2) + evaluate ($resn2=$result) + + show sum(1) (id $id2) + if ( $result = 0 ) then + display unknown coordinates for segid $segid2 resn $resn2 resid $resid2 name N + display this coordinate must be known for automatic protein chain break detection + abort + end if + + pick bond + (name ca and segid $segid1 and resid $resid1) + (name ca and segid $segid2 and resid $resid2) + geometry + + if ( $result > &pbreak_cutoff ) then + evaluate ($pbreak=$pbreak+1) + evaluate ($seg1.$pbreak=$segid1) + evaluate ($res1.$pbreak=$resid1) + evaluate ($seg2.$pbreak=$segid2) + evaluate ($res2.$pbreak=$resid2) + if ( $resn2 = PRO ) then + evaluate ($patch.$pbreak=DPPP) + elseif ( $resn2 = CPR ) then + evaluate ($patch.$pbreak=DPPP) + else + evaluate ($patch.$pbreak=DPEP) + end if + end if + end if + + end loop pbreak + + evaluate ($counter=1) + + while ($counter <= $pbreak) loop delete + patch $patch.$counter + reference=-=(segid $seg1.$counter and resid $res1.$counter) + reference=+=(segid $seg2.$counter and resid $res2.$counter) + end + buffer message + display peptide link removed (applied $patch.$counter): from \ +$seg1.$counter[a4] $res1.$counter[a4] to $seg2.$counter[a4] $res2.$counter[a4] + end + evaluate ($counter=$counter+1) + end loop delete + + + diff --git a/src/haddock/modules/flexref/cns/prot_break.cns b/src/haddock/modules/flexref/cns/prot_break.cns new file mode 100644 index 000000000..45fe76931 --- /dev/null +++ b/src/haddock/modules/flexref/cns/prot_break.cns @@ -0,0 +1,144 @@ +! prot_break.cns +! Detect protein chain breaks +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + evaluate ($pbreak=0) + + for $id1 in id ( name C and bondedto(name CA) and bondedto(name O) ) loop pbreak + + show (segid) (id $id1) + evaluate ($segid1=$result) + show (resid) (id $id1) + evaluate ($resid1=$result) + show (resn) (id $id1) + evaluate ($resn1=$result) + + show sum(1) (id $id1) + if ( $result = 0 ) then + display unknown coordinates for segid $segid1 resn $resn1 resid $resid1 name C + display this coordinate must be known for automatic protein chain break detection + abort + end if + + identity (store1) ( name N and bondedto( segid $segid1 and resid $resid1 and name c ) ) + + if ( $select = 1 ) then + show element (store1) (attribute store1 > 0) + evaluate ($id2=$result) + show (segid) (id $id2) + evaluate ($segid2=$result) + show (resid) (id $id2) + evaluate ($resid2=$result) + show (resn) (id $id2) + evaluate ($resn2=$result) + + show sum(1) (id $id2) + if ( $result = 0 ) then + display unknown coordinates for segid $segid2 resn $resn2 resid $resid2 name N + display this coordinate must be known for automatic protein chain break detection + abort + end if + + pick bond + (name c and segid $segid1 and resid $resid1) + (name n and segid $segid2 and resid $resid2) + geometry + + if ( $result > &pbreak_cutoff ) then + evaluate ($pbreak=$pbreak+1) + evaluate ($seg1.$pbreak=$segid1) + evaluate ($res1.$pbreak=$resid1) + evaluate ($seg2.$pbreak=$segid2) + evaluate ($res2.$pbreak=$resid2) + if ( $resn2 = PRO ) then + evaluate ($patch.$pbreak=DPPP) + elseif ( $resn2 = CPR ) then + evaluate ($patch.$pbreak=DPPP) + else + evaluate ($patch.$pbreak=DPEP) + end if + end if + end if + + end loop pbreak + + for $id1 in id ( name BB ) loop cgpbreak + + show (segid) (id $id1) + evaluate ($segid1=$result) + show (resid) (id $id1) + evaluate ($resid1=$result) + show (resn) (id $id1) + evaluate ($resn1=$result) + + show sum(1) (id $id1) + if ( $result = 0 ) then + display unknown coordinates for segid $segid1 resn $resn1 resid $resid1 name BB + display this coordinate must be known for automatic protein chain break detection + abort + end if + + for $id2 in id ( name BB and bondedto( segid $segid1 and resid $resid1 and name BB ) ) loop cg2pbreak + + show (segid) (id $id2) + evaluate ($segid2=$result) + show (resid) (id $id2) + evaluate ($resid2=$result) + show (resn) (id $id2) + evaluate ($resn2=$result) + + show sum(1) (id $id2) + if ( $result = 0 ) then + display unknown coordinates for segid $segid2 resn $resn2 resid $resid2 name BB + display this coordinate must be known for automatic protein chain break detection + abort + end if + + pick bond + (name BB and segid $segid1 and resid $resid1) + (name BB and segid $segid2 and resid $resid2) + geometry + + if ( $result > &pcgbreak_cutoff ) then + evaluate ($pbreak=$pbreak+1) + evaluate ($seg1.$pbreak=$segid1) + evaluate ($res1.$pbreak=$resid1) + evaluate ($seg2.$pbreak=$segid2) + evaluate ($res2.$pbreak=$resid2) + evaluate ($patch.$pbreak=DCGP) + end if + + end loop cg2pbreak + + end loop cgpbreak + + evaluate ($counter=1) + + while ($counter <= $pbreak) loop delete + if ($patch.$counter ne "DCGP") then + patch $patch.$counter + reference=-=(segid $seg1.$counter and resid $res1.$counter) + reference=+=(segid $seg2.$counter and resid $res2.$counter) + end + else + patch $patch.$counter + reference=-=(segid $seg1.$counter and resid $res1.$counter and name BB) + reference=+=(segid $seg2.$counter and resid $res2.$counter and name BB) + end + end if + buffer message + display peptide link removed (applied $patch.$counter): from \ +$seg1.$counter[a4] $res1.$counter[a4] to $seg2.$counter[a4] $res2.$counter[a4] + end + evaluate ($counter=$counter+1) + end loop delete + + + diff --git a/src/haddock/modules/flexref/cns/protein-ss-restraints-all.def b/src/haddock/modules/flexref/cns/protein-ss-restraints-all.def new file mode 100644 index 000000000..ea54d54d7 --- /dev/null +++ b/src/haddock/modules/flexref/cns/protein-ss-restraints-all.def @@ -0,0 +1,108 @@ +! protein-ss-restraints-all.def +! Define automatically secondary stucture dihedral angle restraints for all residues +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! +{+ file: protein-ss-restraints.def directory: protocols +} +{+ description: Creates dihedral angle restraints to maintain conformation of the protein backbone +

+Additions and changes were made to allow for flexibility during docking

+Changes include:
+ + + +} +{+ comment:This file is to be read by refinement files that modify atom coordinates +} +{+ authors: Axel T. Brunger, and Paul D. Adams,
+ modified by Alexandre Bonvin for HADDOCK use +} + +set message=normal echo=on end + +{=========================================================================================================} +{ things below this line do not normally need to be changed } +{=========================================================================================================} + +{- Dihedral restraints for the protein backbone -} + restraint dihedral + nass = 10000 + end + evaluate ($group=1) + evaluate ($done=false) + while ( $done = false ) loop bdihe + if ( $exist_Toppar.prot_segid_$group = true ) then + show sum(1) ( segid $Toppar.prot_segid_$group ) + if ( $result > 0 ) then + evaluate ($error_phi=$Data.error_dih) + evaluate ($error_psi=$Data.error_dih) + + for $id in id ( segid $Toppar.prot_segid_$group and tag and not resn TIP3 ) loop resid + show (segid) (id $id) + evaluate ($segid=$result) + show (resid) ( id $id ) + evaluate ($resid=decode($result)) + evaluate ($rprec = $resid - 1) + show (resid) (resid $rprec and name CA) + if ($result ne 0) then + evaluate ($rprec = $resid - 1) + pick dihedral + ( segid $segid and resid $rprec and name C ) + ( segid $segid and resid $resid and name N ) + ( segid $segid and resid $resid and name CA ) + ( segid $segid and resid $resid and name C ) + geometry + evaluatate ($dihedral_phi=$result) + restraint dihedral + ! phi + assign ( segid $segid and resid $rprec and name C ) + ( segid $segid and resid $resid and name N ) + ( segid $segid and resid $resid and name CA ) + ( segid $segid and resid $resid and name C ) + 1.0 $dihedral_phi $error_phi 2 + scale 200.0 + end + end if + + evaluate ($rnext = $resid + 1) + show (resid) (resid $rnext and name CA) + if ($result ne 0) then + pick dihedral + ( segid $segid and resid $resid and name N ) + ( segid $segid and resid $resid and name CA ) + ( segid $segid and resid $resid and name C ) + ( segid $segid and resid $rnext and name N ) + geometry + evaluatate ($dihedral_psi=$result) + restraint dihedral + ! psi + assign ( segid $segid and resid $resid and name N ) + ( segid $segid and resid $resid and name CA ) + ( segid $segid and resid $resid and name C ) + ( segid $segid and resid $rnext and name N ) + 1.0 $dihedral_psi $error_psi 2 + scale 200.0 + end + end if + end loop resid + end if + else + evaluate ($done=true) + end if + evaluate ($group=$group+1) + end loop bdihe + + flags include cdih end + +set message=off echo=off end + + diff --git a/src/haddock/modules/flexref/cns/protein-ss-restraints-alpha-beta.def b/src/haddock/modules/flexref/cns/protein-ss-restraints-alpha-beta.def new file mode 100644 index 000000000..659a6f5fa --- /dev/null +++ b/src/haddock/modules/flexref/cns/protein-ss-restraints-alpha-beta.def @@ -0,0 +1,135 @@ +! protein-ss-restraints-alpha-beta.def +! Define automatically secondary structure dihedral angle restraints +! for helical and beta-sheet segments +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! +{+ file: protein-ss-restraints.def directory: protocols +} +{+ description: Creates dihedral angle restraints to maintain conformation of the protein backbone +} +{+ comment:This file is to be read by refinement files that modify atom coordinates +} +{+ authors: Axel T. Brunger, and Paul D. Adams,
+ modified by Alexandre Bonvin for HADDOCK use +} + +set message=normal echo=on end + +{=========================================================================================================} +{ things below this line do not normally need to be changed } +{=========================================================================================================} + +{- Dihedral restraints for the protein backbone in alpha-beta regions -} + + restraint dihedral + nass = 10000 + end + evaluate ($group=1) + evaluate ($done=false) + while ( $done = false ) loop bdihe + if ( $exist_Toppar.prot_segid_$group = true ) then + show sum(1) ( segid $Toppar.prot_segid_$group ) + if ( $result > 0 ) then + evaluate ($error_phi=$Data.error_dih) + evaluate ($error_psi=$Data.error_dih) + + for $id in id ( segid $Toppar.prot_segid_$group and tag and not resn TIP* ) loop resid + show (segid) (id $id) + evaluate ($segid=$result) + show (resid) ( id $id ) + evaluate ($resid=decode($result)) + evaluate ($alphaphi = 0) + evaluate ($alphapsi = 0) + evaluate ($alpha_check = 0) + evaluate ($betaphi = 0) + evaluate ($betapsi = 0) + evaluate ($beta_check = 0) + + evaluate ($rprec = $resid - 1) + show (resid) (resid $rprec and name CA) + if ($result ne 0) then + pick dihedral + ( segid $segid and resid $rprec and name C ) + ( segid $segid and resid $resid and name N ) + ( segid $segid and resid $resid and name CA ) + ( segid $segid and resid $resid and name C ) + geometry + evaluate ($dihedral_phi=$result) + evaluate ($alphaphi=max($dihedral_phi,-77)) + evaluate ($alphaphi=max($dihedral_phi,-37)) + if ($alphaphi eq -37) then + evaluate ($alpha_check = 1) + else + evaluate ($alpha_check = 0) + end if + evaluate ($betaphi=max($dihedral_phi,-145)) + evaluate ($betaphi=max($dihedral_phi,-105)) + if ($betaphi eq -105) then + evaluate ($beta_check = 1) + else + evaluate ($beta_check = 0) + end if + end if + + evaluate ($rnext = $resid + 1) + show (resid) (resid $rnext and name CA) + if ($result ne 0) then + pick dihedral + ( segid $segid and resid $resid and name N ) + ( segid $segid and resid $resid and name CA ) + ( segid $segid and resid $resid and name C ) + ( segid $segid and resid $rnext and name N ) + geometry + evaluate ($dihedral_psi=$result) + evaluate ($alphapsi=max($dihedral_psi,-67)) + evaluate ($alphapsi=max($dihedral_psi,-27)) + if ($alphapsi eq -27) then + evaluate ($alpha_check = $alpha_check + 1) + end if + evaluate ($betapsi=max($dihedral_psi,105)) + evaluate ($betapsi=max($dihedral_psi,145)) + if ($betapsi eq 145) then + evaluate ($beta_check = $beta_check + 1) + end if + end if + + evaluate ($defrest = 0) + if ($alpha_check eq 2) then + evaluate ($defrest = 1) + end if + if ($beta_check eq 2) then + evaluate ($defrest = 1) + end if + if ($defrest = 1) then + restraint dihedral + ! phi + assign ( segid $segid and resid $rprec and name C ) + ( segid $segid and resid $resid and name N ) + ( segid $segid and resid $resid and name CA ) + ( segid $segid and resid $resid and name C ) + 1.0 $dihedral_phi $error_phi 2 + ! psi + assign ( segid $segid and resid $resid and name N ) + ( segid $segid and resid $resid and name CA ) + ( segid $segid and resid $resid and name C ) + ( segid $segid and resid $rnext and name N ) + 1.0 $dihedral_psi $error_psi 2 + scale 200.0 + end + end if + end loop resid + end if + else + evaluate ($done=true) + end if + evaluate ($group=$group+1) + end loop bdihe + + flags include cdih end + +set message=off echo=off end + + diff --git a/src/haddock/modules/flexref/cns/protein-ss-restraints-alpha.def b/src/haddock/modules/flexref/cns/protein-ss-restraints-alpha.def new file mode 100644 index 000000000..4f4e63c90 --- /dev/null +++ b/src/haddock/modules/flexref/cns/protein-ss-restraints-alpha.def @@ -0,0 +1,116 @@ +! protein-ss-restraints-alpha.def +! Define automatically secondary structure dihedral angle restraints +! for helical segments +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! +{+ file: protein-ss-restraints.def directory: protocols +} +{+ description: Creates dihedral angle restraints to maintain conformation of the protein backbone +} +{+ comment:This file is to be read by refinement files that modify atom coordinates +} +{+ authors: Axel T. Brunger, and Paul D. Adams,
+ modified by Alexandre Bonvin for HADDOCK use +} + +set message=normal echo=on end + +{=========================================================================================================} +{ things below this line do not normally need to be changed } +{=========================================================================================================} + +{- Dihedral restraints for the protein backbone in alpha-helical regions -} + restraint dihedral + nass = 10000 + end + evaluate ($group=1) + evaluate ($done=false) + while ( $done = false ) loop bdihe + if ( $exist_Toppar.prot_segid_$group = true ) then + show sum(1) ( segid $Toppar.prot_segid_$group ) + if ( $result > 0 ) then + evaluate ($error_phi=$Data.error_dih) + evaluate ($error_psi=$Data.error_dih) + + for $id in id (segid $Toppar.prot_segid_$group and tag and not resn TIP3 ) loop resid + show (segid) (id $id) + evaluate ($segid=$result) + show (resid) ( id $id ) + evaluate ($resid=decode($result)) + evaluate ($alphaphi = 0) + evaluate ($alphapsi = 0) + evaluate ($alpha_check = 0) + + evaluate ($rprec = $resid - 1) + show (resid) (resid $rprec and name CA) + if ($result ne 0) then + pick dihedral + ( segid $segid and resid $rprec and name C ) + ( segid $segid and resid $resid and name N ) + ( segid $segid and resid $resid and name CA ) + ( segid $segid and resid $resid and name C ) + geometry + evaluate ($dihedral_phi=$result) + evaluate ($alphaphi=max($dihedral_phi,-77)) + evaluate ($alphaphi=max($dihedral_phi,-37)) + if ($alphaphi eq -37) then + evaluate ($alpha_check = 1) + else + evaluate ($alpha_check = 0) + end if + end if + + evaluate ($rnext = $resid + 1) + show (resid) (resid $rnext and name CA) + if ($result ne 0) then + pick dihedral + ( segid $segid and resid $resid and name N ) + ( segid $segid and resid $resid and name CA ) + ( segid $segid and resid $resid and name C ) + ( segid $segid and resid $rnext and name N ) + geometry + evaluate ($dihedral_psi=$result) + evaluate ($alphapsi=max($dihedral_psi,-67)) + evaluate ($alphapsi=max($dihedral_psi,-27)) + if ($alphapsi eq -27) then + evaluate ($alpha_check = $alpha_check + 1) + end if + end if + + evaluate ($defrest = 0) + if ($alpha_check eq 2) then + evaluate ($defrest = 1) + end if + if ($defrest = 1) then + restraint dihedral + ! phi + assign ( segid $segid and resid $rprec and name C ) + ( segid $segid and resid $resid and name N ) + ( segid $segid and resid $resid and name CA ) + ( segid $segid and resid $resid and name C ) + 1.0 $dihedral_phi $error_phi 2 + ! psi + assign ( segid $segid and resid $resid and name N ) + ( segid $segid and resid $resid and name CA ) + ( segid $segid and resid $resid and name C ) + ( segid $segid and resid $rnext and name N ) + 1.0 $dihedral_psi $error_psi 2 + scale 200.0 + end + end if + end loop resid + end if + else + evaluate ($done=true) + end if + evaluate ($group=$group+1) + end loop bdihe + + flags include cdih end + +set message=off echo=off end + + diff --git a/src/haddock/modules/flexref/cns/random_rotations.cns b/src/haddock/modules/flexref/cns/random_rotations.cns new file mode 100644 index 000000000..5703e4d27 --- /dev/null +++ b/src/haddock/modules/flexref/cns/random_rotations.cns @@ -0,0 +1,179 @@ +! random_rotations.cns +! Perform a random rotation +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! +! check if homomer + +inline @RUN:check-homomers.cns + +do (store4 = 0) (all) +evaluate ($ncount = 0) +while ($ncount < $data.ncomponents) loop fixed + evaluate ($ncount = $ncount + 1) + if ($Toppar.fix_origin_$ncount eq true) then + do (store4 = 1) (segid $Toppar.prot_segid_$ncount) + end if +end loop fixed + +if ($homosymmetry eq false) then + ! Random translation within a 10A cube + evaluate ($ncount = 0) + while ($ncount < $data.ncomponents) loop randtrans + evaluate ($ncount = $ncount +1) + if ($Toppar.fix_origin_$ncount eq false) then + evaluate ($xd = 10.0 * (0.5 - ran())) + evaluate ($yd = 10.0 * (0.5 - ran())) + evaluate ($zd = 10.0 * (0.5 - ran())) + coor trans sele=(segid $Toppar.prot_segid_$ncount or segid $watersegname_$ncount) vector=($xd,$yd,$zd) end + end if + end loop randtrans +end if + +! Random rotation of molecules +evaluate ($ncount = 0) +evaluate ($nrotset = 0) +while ($ncount < $data.ncomponents) loop randrot + evaluate ($ncount = $ncount +1) + if ($Toppar.fix_origin_$ncount eq false) then + show ave (x) (segid $Toppar.prot_segid_$ncount or segid $watersegname_$ncount) + evaluate ($xc = $result) + show ave (y) (segid $Toppar.prot_segid_$ncount or segid $watersegname_$ncount) + evaluate ($yc = $result) + show ave (z) (segid $Toppar.prot_segid_$ncount or segid $watersegname_$ncount) + evaluate ($zc = $result) + + ! Random rotation for each molecule except for symmtrical homomers for which + ! the same rotation is applied to all molecules to keep the symmetry + if ($nrotset = 0) then + !1. Generate random e1 e2 e3 and e4 in [-1, 1] so that e1^2 + e2^2 < 1 and e3^2+e4^2 < 1 + evaluate ($RRM_e1 = ran () * 2 - 1) + evaluate ($RRM_e2 = ran () * 2 - 1) + evaluate ($RRM_s1 = ($RRM_e1)*($RRM_e1) + ($RRM_e2)*($RRM_e2)) + + while ( $RRM_s1 >= 1) loop s1loop + evaluate ($RRM_e1 = ran () * 2 - 1) + evaluate ($RRM_e2 = ran () * 2 - 1) + evaluate ($RRM_s1 = ($RRM_e1)*($RRM_e1) + ($RRM_e2)*($RRM_e2)) + end loop s1loop + + evaluate ($RRM_e3 = ran () * 2 - 1) + evaluate ($RRM_e4 = ran () * 2 - 1) + evaluate ($RRM_s2 = ($RRM_e3)*($RRM_e3) + ($RRM_e4)*($RRM_e4)) + while ( $RRM_s2 >= 1) loop s2loop + evaluate ($RRM_e3 = ran () * 2 - 1) + evaluate ($RRM_e4 = ran () * 2 - 1) + evaluate ($RRM_s2 = ($RRM_e3)*($RRM_e3) + ($RRM_e4)*($RRM_e4)) + end loop s2loop + + !2. the quaternion q0 q1 q2 q3 + evaluate($RRM_q0 = $RRM_e1) + evaluate($RRM_q1 = $RRM_e2) + evaluate($RRM_q2 = $RRM_e3 * sqrt((1 - $RRM_s1)/$RRM_s2) ) + evaluate($RRM_q3 = $RRM_e4 * sqrt((1 - $RRM_s1)/$RRM_s2) ) + + !3. The rotation matrix from the quaternion + evaluate ($x1 = $RRM_q0 * $RRM_q0 + $RRM_q1 * $RRM_q1 - $RRM_q2 * $RRM_q2 - $RRM_q3 * $RRM_q3) + evaluate ($x2 = 2 * ($RRM_q1 * $RRM_q2 - $RRM_q0 * $RRM_q3) ) + evaluate ($x3 = 2 * ($RRM_q1 * $RRM_q3 + $RRM_q0 * $RRM_q2) ) + evaluate ($y1 = 2 * ($RRM_q1 * $RRM_q2 + $RRM_q0 * $RRM_q3) ) + evaluate ($y2 = $RRM_q0 * $RRM_q0 - $RRM_q1 * $RRM_q1 + $RRM_q2 * $RRM_q2 - $RRM_q3 * $RRM_q3) + evaluate ($y3 = 2 * ($RRM_q2 * $RRM_q3 - $RRM_q0 * $RRM_q1) ) + evaluate ($z1 = 2 * ($RRM_q1 * $RRM_q3 - $RRM_q0 * $RRM_q2) ) + evaluate ($z2 = 2 * ($RRM_q2 * $RRM_q3 + $RRM_q0 * $RRM_q1) ) + evaluate ($z3 = $RRM_q0 * $RRM_q0 - $RRM_q1 * $RRM_q1 - $RRM_q2 * $RRM_q2 + $RRM_q3 * $RRM_q3) + + if ($homosymmetry eq true) then + evaluate ($nrotset = 1) + end if + end if + + !4. The rotation + coor + center=($xc $yc $zc) + rotate matrix=($x1 $x2 $x3) ($y1 $y2 $y3) ($z1 $z2 $z3) + sele=(segid $Toppar.prot_segid_$ncount or segid $watersegname_$ncount) + end + end if +end loop randrot + + +! If there are fixed molecules, randomly rotate as one unit all non-fixed ones +! around the geometric center of the fixed ones + +show sum (store4) (all) + +if ($result > 0) then + + show ave (x) (attribute store4 = 1) + evaluate ($xc = $result) + show ave (y) (attribute store4 = 1) + evaluate ($yc = $result) + show ave (z) (attribute store4 = 1) + evaluate ($zc = $result) + + ! Random rotation for each molecule except for symmtrical homomers for which + ! the same rotation is applied to all molecules to keep the symmetry + if ($nrotset = 0) then + !1. Generate random e1 e2 e3 and e4 in [-1, 1] so that e1^2 + e2^2 < 1 and e3^2+e4^2 < 1 + evaluate ($RRM_e1 = ran () * 2 - 1) + evaluate ($RRM_e2 = ran () * 2 - 1) + evaluate ($RRM_s1 = ($RRM_e1)*($RRM_e1) + ($RRM_e2)*($RRM_e2)) + + while ( $RRM_s1 >= 1) loop s1loop + evaluate ($RRM_e1 = ran () * 2 - 1) + evaluate ($RRM_e2 = ran () * 2 - 1) + evaluate ($RRM_s1 = ($RRM_e1)*($RRM_e1) + ($RRM_e2)*($RRM_e2)) + end loop s1loop + + evaluate ($RRM_e3 = ran () * 2 - 1) + evaluate ($RRM_e4 = ran () * 2 - 1) + evaluate ($RRM_s2 = ($RRM_e3)*($RRM_e3) + ($RRM_e4)*($RRM_e4)) + while ( $RRM_s2 >= 1) loop s2loop + evaluate ($RRM_e3 = ran () * 2 - 1) + evaluate ($RRM_e4 = ran () * 2 - 1) + evaluate ($RRM_s2 = ($RRM_e3)*($RRM_e3) + ($RRM_e4)*($RRM_e4)) + end loop s2loop + + !2. the quaternion q0 q1 q2 q3 + evaluate($RRM_q0 = $RRM_e1) + evaluate($RRM_q1 = $RRM_e2) + evaluate($RRM_q2 = $RRM_e3 * sqrt((1 - $RRM_s1)/$RRM_s2) ) + evaluate($RRM_q3 = $RRM_e4 * sqrt((1 - $RRM_s1)/$RRM_s2) ) + + !3. The rotation matrix from the quaternion + evaluate ($x1 = $RRM_q0 * $RRM_q0 + $RRM_q1 * $RRM_q1 - $RRM_q2 * $RRM_q2 - $RRM_q3 * $RRM_q3) + evaluate ($x2 = 2 * ($RRM_q1 * $RRM_q2 - $RRM_q0 * $RRM_q3) ) + evaluate ($x3 = 2 * ($RRM_q1 * $RRM_q3 + $RRM_q0 * $RRM_q2) ) + evaluate ($y1 = 2 * ($RRM_q1 * $RRM_q2 + $RRM_q0 * $RRM_q3) ) + evaluate ($y2 = $RRM_q0 * $RRM_q0 - $RRM_q1 * $RRM_q1 + $RRM_q2 * $RRM_q2 - $RRM_q3 * $RRM_q3) + evaluate ($y3 = 2 * ($RRM_q2 * $RRM_q3 - $RRM_q0 * $RRM_q1) ) + evaluate ($z1 = 2 * ($RRM_q1 * $RRM_q3 - $RRM_q0 * $RRM_q2) ) + evaluate ($z2 = 2 * ($RRM_q2 * $RRM_q3 + $RRM_q0 * $RRM_q1) ) + evaluate ($z3 = $RRM_q0 * $RRM_q0 - $RRM_q1 * $RRM_q1 - $RRM_q2 * $RRM_q2 + $RRM_q3 * $RRM_q3) + + if ($homosymmetry eq true) then + evaluate ($nrotset = 1) + end if + end if + + !4. The rotation + coor + center=($xc $yc $zc) + rotate matrix=($x1 $x2 $x3) ($y1 $y2 $y3) ($z1 $z2 $z3) + sele=(attribute store4 = 0) + end +end if + +do (x = refx) (resn ANI or resn DAN or resn XAN or resn SHA) +do (y = refy) (resn ANI or resn DAN or resn XAN or resn SHA) +do (z = refz) (resn ANI or resn DAN or resn XAN or resn SHA) + +!evaluate ($outname = "RUN:" + "begin/" + $Filenames.fileroot + "_init_" + encode($count) + ".pdb") +!write coor output=$outname end diff --git a/src/haddock/modules/flexref/cns/randomairs.cns b/src/haddock/modules/flexref/cns/randomairs.cns new file mode 100644 index 000000000..d690cde4a --- /dev/null +++ b/src/haddock/modules/flexref/cns/randomairs.cns @@ -0,0 +1,240 @@ +! randomairs.cns +! Define random AIRs from solvent accessible residues +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + +if ($data.ncomponents > 2) then + evaluate ($errfile = "RUN:FAILED") + fileexist $errfile end + if ($result eq false) then + set display=$errfile end + display RANDOM DEFINITION OF AIRS FROM SOLVENT ACCESSIBLE RESIDUES ONLY + display SUPPORTED FOR TWO MOLECULES. USE CENTER-OF-MASS RESTRAINTS INSTEAD + close $errfile end + end if +end if +! +! first calculate accessible surface area +! +do (store3 = 0) (all) +surface mode=access rh2o=1.4 sele=(segid $Toppar.prot_segid_1 and not (resn WAT or resn HOH or resn TIP*)) end +show sum (rmsd) (segid $Toppar.prot_segid_1 and not (resn WAT or resn HOH or resn TIP*)) +do (store3 = rmsd) (segid $Toppar.prot_segid_1 and not (resn WAT or resn HOH or resn TIP*)) +surface mode=access rh2o=1.4 sele=(segid $Toppar.prot_segid_2 and not (resn WAT or resn HOH or resn TIP*)) end +do (store3 = rmsd) (segid $Toppar.prot_segid_2 and not (resn WAT or resn HOH or resn TIP*)) +! +! normalize by standard residue accessibilities (taken from NACCESS) +! +do (store3 = store3 / 107.95) (resn ALA) +do (store3 = store3 / 134.28) (resn CYS*) +do (store3 = store3 / 134.28) (resn CSP) +do (store3 = store3 / 140.39) (resn ASP) +do (store3 = store3 / 140.39) (resn ASH) +do (store3 = store3 / 172.25) (resn GLU) +do (store3 = store3 / 172.25) (resn GLH) +do (store3 = store3 / 199.48) (resn PHE) +do (store3 = store3 / 80.10) (resn GLY) +do (store3 = store3 / 182.88) (resn HIS) +do (store3 = store3 / 182.88) (resn NEP) +do (store3 = store3 / 175.12) (resn ILE) +do (store3 = store3 / 200.81) (resn LYS) +do (store3 = store3 / 200.81) (resn ALY) +do (store3 = store3 / 200.81) (resn MLZ) +do (store3 = store3 / 200.81) (resn MLY) +do (store3 = store3 / 200.81) (resn M3L) +do (store3 = store3 / 178.63) (resn LEU) +do (store3 = store3 / 194.15) (resn MET) +do (store3 = store3 / 194.15) (resn MSE) +do (store3 = store3 / 143.94) (resn ASN) +do (store3 = store3 / 136.13) (resn PRO) +do (store3 = store3 / 136.13) (resn HYP) +do (store3 = store3 / 178.50) (resn GLN) +do (store3 = store3 / 238.76) (resn ARG) +do (store3 = store3 / 116.50) (resn SER) +do (store3 = store3 / 116.50) (resn SEP) +do (store3 = store3 / 139.27) (resn THR) +do (store3 = store3 / 139.27) (resn DDZ) +do (store3 = store3 / 139.27) (resn TOP) +do (store3 = store3 / 151.44) (resn VAL) +do (store3 = store3 / 249.36) (resn TRP) +do (store3 = store3 / 212.76) (resn TYR) +do (store3 = store3 / 212.76) (resn TYP) +do (store3 = store3 / 212.76) (resn PTR) +do (store3 = store3 / 212.76) (resn TYS) +! DNA/RNA bases +do (store3 = store3 / 170.0) (resn ADE) +do (store3 = store3 / 170.0) (resn CYT) +do (store3 = store3 / 170.0) (resn GUA) +do (store3 = store3 / 170.0) (resn THY) +do (store3 = store3 / 170.0) (resn URI) +! +! Define random AIR restraints +! +evaluate ($icount = 1) +do (store4 = 0) (all) + +! Check if flexible segments defined from which to sample random AIRs +evaluate($nchain1 = 0) +while ($nchain1 < $data.ncomponents) loop nloop1 + evaluate($nchain1 = $nchain1 + 1) + evaluate($fcounter=0) + evaluate($samplesurf = false) + + if ($Toppar.nseg_$nchain1 = 0) then + evaluate($samplesurf = true) + end if + if ($Toppar.nseg_$nchain1 = -1) then + evaluate($samplesurf = true) + end if + + if ($samplesurf eq true) then + do (store5 = $nchain1) (segid $Toppar.prot_segid_$nchain1) + display RANDOM AIRS SAMPLED FROM ENTIRE SURFACE FOR MOLECULE $nchain1 + else + evaluate ($numseg = abs($Toppar.nseg_$nchain1)) + display RANDOM AIRS SAMPLED FROM SEMI-FLEXIBLE SEGMENTS FOR MOLECULE $nchain1 + while ($fcounter < $numseg) loop Xflex + evaluate($fcounter=$fcounter + 1) + do (store5 = $nchain1) ( resid $Toppar.start_seg_$nchain1_$fcounter : $Toppar.end_seg_$nchain1_$fcounter + and segid $Toppar.prot_segid_$nchain1) + display FLEXIBLE SEGMENT NR $fcounter FROM $Toppar.start_seg_$nchain1_$fcounter TO $Toppar.end_seg_$nchain1_$fcounter + end loop Xflex + end if +end loop nloop1 + +for $atom_id in id ( tag and (attr store5 ne 0)) loop count + do (store4 = $icount) (byres (id $atom_id)) + show sum (store3) (byres (id $atom_id)) + do (store2 = $result) (byres (id $atom_id)) + evaluate ($icount = $icount + 1) +end loop count + +set message=on echo=on end + +show min(store4) (segid $Toppar.prot_segid_1 and (attr store5 ne 0)) +evaluate ($rmin = $result) + +show max(store4) (segid $Toppar.prot_segid_1 and (attr store5 ne 0)) +evaluate ($rmax = $result) + +evaluate ($nres = $rmax - $rmin + 1) +display $nres RESIDUE IN MOLECULE A SELECTED FOR RANDOM AIR DEFINITION +if ($nres < 1) then + display NO RESIDUES IN DEFINED FLEXIBLE SEGMENTS FOR MOLECULE A + display RANDOM RESTRAINTS DEFINITION FAILED + display STOPPING... + stop +end if + +if ($nres = 1) then + evaluate ($iselres1 = $rmax) +else + evaluate ($done = 0) + while ($done = 0) loop trial + evaluate ($iselres1 = 0) + evaluate ($iselres1 = int(ran() * $rmax) + 1) + show sum (store3) (attribute store4 = $iselres1) + if ($result > 0.2) then + evaluate ($done = 1) + end if + end loop trial +end if + +show min(store4) (segid $Toppar.prot_segid_2 and (attr store5 ne 0)) +evaluate ($rmin = $result) + +show max(store4) (segid $Toppar.prot_segid_2 and (attr store5 ne 0)) +evaluate ($rmax = $result) + +display $nres RESIDUE IN MOLECULE B SELECTED FOR RANDOM AIR DEFINITION +evaluate ($nres = $rmax - $rmin + 1) +if ($nres < 1) then + display NO RESIDUES IN DEFINED FLEXIBLE SEGMENTS FOR MOLECULE B + display RANDOM RESTRAINTS DEFINITION FAILED + display STOPPING... + stop +end if + +if ($nres = 1) then + evaluate ($iselres2 = $rmax) +else + evaluate ($done = 0) + while ($done = 0) loop trial + evaluate ($iselres2 = 0) + evaluate ($iselres2 = int(ran() * ($rmax-$rmin+1)) + $rmin) + show sum (store3) (attribute store4 = $iselres2) + if ($result > 0.2) then + evaluate ($done = 1) + end if + end loop trial +end if + +show (resid) (attribute store4 = $iselres1 and tag) +evaluate ($selres1 = $result) +show (segid) (attribute store4 = $iselres1 and tag) +evaluate ($selseg1 = $result) +show (resn) (attribute store4 = $iselres1 and tag) +evaluate ($selnam1 = $result) + +show (resid) (attribute store4 = $iselres2 and tag) +evaluate ($selres2 = $result) +show (segid) (attribute store4 = $iselres2 and tag) +evaluate ($selseg2 = $result) +show (resn) (attribute store4 = $iselres2 and tag) +evaluate ($selnam2 = $result) + +evaluate ($dispname="NEWIT:" + $Filenames.fileroot + "_" + encode($count) + ".disp") +set display=$dispname end + +display $selnam1 $selres1 $selseg1 + +noe class ambig end + +noe + assign (resid $selres1 and segid $Toppar.prot_segid_1) + (attr store2 > 0.2 and segid $Toppar.prot_segid_2 and + attr store5 ne 0 and (resid $selres2 or (resid $selres2) around 7.5)) 2.0 2.0 0.0 + assign (resid $selres2 and segid $Toppar.prot_segid_2) + (attr store2 > 0.2 and segid $Toppar.prot_segid_1 and + attr store5 ne 0 and (resid $selres1 or (resid $selres1) around 7.5)) 2.0 2.0 0.0 +end + +for $id in id ((resid $selres1 and attr store2 > 0.2) around 5.0 and tag and segid $selseg1 and not resid $selres1) loop neighbors1 + show (resid) (id $id) + evaluate ($inres = $result) + show (segid) (id $id) + evaluate ($inseg = $result) + show (resn) (id $id) + evaluate ($inrsn = $result) + display $inrsn $inres $inseg + noe + assign (resid $inres and segid $Toppar.prot_segid_1) + (attr store2 > 0.2 and segid $Toppar.prot_segid_2 and + attr store5 ne 0 and (resid $selres2 or (resid $selres2) around 7.5)) 2.0 2.0 0.0 + end +end loop neighbors1 + +for $id in id ((resid $selres2 and attr store2 > 0.2) around 5.0 and tag and segid $selseg2 and not resid $selres2) loop neighbors2 + show (resid) (id $id) + evaluate ($inres = $result) + show (segid) (id $id) + evaluate ($inseg = $result) + show (resn) (id $id) + evaluate ($inrsn = $result) + display $inrsn $inres $inseg + noe + assign (resid $inres and segid $Toppar.prot_segid_2) + (attr store2 > 0.2 and segid $Toppar.prot_segid_1 and + attr store5 ne 0 and (resid $selres1 or (resid $selres1) around 7.5)) 2.0 2.0 0.0 + end +end loop neighbors2 + +close $dispname end +set message=off end diff --git a/src/haddock/modules/flexref/cns/re_dmso.inp b/src/haddock/modules/flexref/cns/re_dmso.inp new file mode 100644 index 000000000..4faa4ef9b --- /dev/null +++ b/src/haddock/modules/flexref/cns/re_dmso.inp @@ -0,0 +1,839 @@ +! re_dmso.inp +! Perform an explitic solvent (DMSO) refinement +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + +@RUN:initialize.cns(iteration=$iteration;) + +@NEWIT:water/iteration.cns(iteration=$iteration;) + +@RUN:run.cns( +iteration =$iteration; +filenames =$filenames; +data =$data; +iterations=$iterations; +saprotocol=$saprotocol; +refine =$refine; +toppar =$toppar; +analysis =$analysis; +) + +evaluate ($log_level=quiet) + +if ( $log_level = verbose ) then + set message=normal echo=on end +else + set message=off echo=off end +end if + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!The next line will be changed automatically from python: +evaluate ($count = 1) +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!The next line will be changed automatically from python: +evaluate ($file = "") +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +!reads in structure, coordinates and parameter files +@RUN:read_struc.cns + +!set the energy flags: +inline @RUN:setflags.cns + +evaluate ($Data.flags.zres = false) +evaluate ($zhar = 0.0) + +evaluate ($Data.flags.elec = true) +flags include elec end + +!load the solvent topology files: +topology @@RUN:toppar/water-allhdg5-4.top end + +if ($Data.noecv eq true) then + evaluate ($fileseed=$file - ".pdb" + ".seed") + @@$fileseed(seed=$seed;npart=$npart) +else + evaluate ($seed = max($iteration,1)*$count*$Saprotocol.iniseed) +end if +set seed $seed end + +! read coordinate and copy to reference coordinate set +coor @@$file +coor copy end + +{*== check first for failed structures ==*} +evaluate ($failure = false) +evaluate ($filefail= "NEWIT:water/" + $file - "PREVIT:" - ".pdb" + "w.fail") +fileexist $filefail end +evaluate ($failure = $result) + +! check for CG molecule +eval($nchain1= 1) +eval($coarse = false) +while ($nchain1 <= $data.ncomponents) loop cloop0 + if ($toppar.cg_$nchain1 = true) then + eval($coarse = true) + end if + eval($nchain1 = $nchain1 + 1) +end loop cloop0 + +! perform the morphing to all atoms model if needed +if ($coarse eq true) then + inline @RUN:read_struc-cg.cns + inline @RUN:cg-to-aa.cns +end if + +if ($data.waterdock eq true) then + inline @RUN:read_water1.cns +end if + +if ($Data.flags.sani eq true) then + flag incl sani end + coor select (not known and resn ani) end + if ($select gt 0) then + coor @@$tensor_pdb + + {* Find CoM of protein and move tensor 100 A away *} + show ave (x) (name CA or name BB or name C1') + evaluate ($xcent=$result) + show ave (y) (name CA or name BB or name C1') + evaluate ($ycent=$result) + show ave (z) (name CA or name BB or name C1') + evaluate ($zcent=$result) + do (x=x+$xcent+100) (resn ANI) + do (y=y+$ycent+100) (resn ANI) + do (z=z+$zcent+100) (resn ANI) + + evaluate ($rantens = true) + else + evaluate ($rantens = false) + end if + + {* Harmonic restraints to keep it far away *} + do (refx=x) (all) + do (refy=y) (all) + do (refz=z) (all) + do (harmonic=20.0)(resn ANI and name OO) + do (harmonic=0.0) (resn ANI and name X ) + do (harmonic=0.0) (resn ANI and name Y ) + do (harmonic=0.0) (resn ANI and name Z ) + do (harmonic=0.0) (not (resn ANI)) + restraints harmonic exponent=2 end + flags include harm end +end if + +evaluate ($xanmin = false) +if ($Data.flags.xrdc eq true) then + evaluate ($xanmin = true) + flag incl xrdc end +end if +if ($Data.flags.xpcs eq true) then + evaluate ($xanmin = true) + flag incl xpcs end +end if +if ($xanmin eq true) then + coor select (not known and resn xan) end + if ($select gt 0) then + coor @@$tensor_para_pdb + + {* Find CoM of protein and move tensor 100 A away *} + show ave (x) (name CA or name BB or name C1') + evaluate ($xcent=$result) + show ave (y) (name CA or name BB or name C1') + evaluate ($ycent=$result) + show ave (z) (name CA or name BB or name C1') + evaluate ($zcent=$result) + do (x=x+$xcent+100) (resn XAN) + do (y=y+$ycent+100) (resn XAN) + do (z=z+$zcent+100) (resn XAN) + evaluate ($rantens_para = true) + else + evaluate ($rantens_para = false) + end if +end if + +if ($Data.flags.dani eq true) then + flag incl dani end + coor select (not known and resn DAN) end + if ($select gt 0) then + coor @@RUN:toppar/tensor_dani.pdb + + {* Find CoM of protein and move tensor 100 A away *} + show ave (x) (name CA or name BB or name C1') + evaluate ($xcent=$result) + show ave (y) (name CA or name BB or name C1') + evaluate ($ycent=$result) + show ave (z) (name CA or name BB or name C1') + evaluate ($zcent=$result) + do (x=x+$xcent+100) (resn DAN) + do (y=y+$ycent+100) (resn DAN) + do (z=z+$zcent+100) (resn DAN) + + evaluate ($rantens_dani = true) + else + evaluate ($rantens_dani = false) + end if + + {* Harmonic restraints to keep it far away *} + do (refx=x) (all) + do (refy=y) (all) + do (refz=z) (all) + do (harmonic=20.0)(resn DAN and name OO) + do (harmonic=0.0) (resn DAN and name X ) + do (harmonic=0.0) (resn DAN and name Y ) + do (harmonic=0.0) (resn DAN and name Z ) + do (harmonic=0.0) (not (resn ANI or resn DAN)) + restraints harmonic exponent=2 end + flags include harm end +end if + +if ($Data.flags.rg eq true ) then + collapse + force $Data.krg_cool3 + target $Data.rgtarg + sele (not (resn ANI or resn XAN or resn DMS)) + end +end if + +do (refx = x) (all) +do (refy = y) (all) +do (refz = z) (all) + +{*== check if DMSO refinement should be performed ==*} +if ($refine.firstwater eq "yes") then + if ($refine.solvshell eq true) then + if ($failure eq false) then + ! generate DMSO layer + do (segid = "PROT") (segid " ") + @RUN:generate_dmso.cns + do (segid = " ") (segid "PROT") + end if + else + parameter nbonds eps=$Data.epsilon end end + end if +end if + +set seed $seed end +set message=normal echo=on end +inline @RUN:read_data.cns + +! read EM-data +if ($data.flags.em = true) then + @RUN:em_read_data.cns(data=$data;) + if ($data.em.itw = true) then + flags include xref end + end if +end if + +if ($refine.solvshell eq true) then + inline @RUN:water_rest.cns +end if + +if ($Data.ranair eq true) then + if ($Data.ncomponents > 2) then + display ========= Unsupported option =========== + display Random definition of AIRs with more than + display two molecules currently unsupported + display ======================================== + stop + end if + evaluate ($Data.noecv = false) + noe + reset + nrestraints = 100000 ! allocate space for NOEs + ceiling 1000 + end +! @RUN:contactairs.cns + + !Read back in hbond data + if ($Data.hbond_lastit ge &iteration) then + if ($Data.hbond_firstit le &iteration) then + if ($Data.hbonds_on eq true) then + noe @@$hbond_fname end + end if + end if + end if + + noe + averaging * sum + potential * soft + scale * 1.0 + sqconstant * 1.0 + sqexponent * 2 + soexponent * 1 + rswitch * 1.0 + sqoffset * 0.0 + asymptote * 2.0 + msoexponent * 1 + masymptote * -0.1 + mrswitch * 1.0 + avexpo hbond 20 + end + inline @RUN:water_rest.cns +end if + +{* random removal of restaints ================================== *} +!Make sure that at least as many distance restraints are successfully +!read as the number of partitions for cross-validation +evaluate ($numnoe = 999) +noe ? end +if ($NUMNOE = 0) then + evaluate ($Data.ncvpart = 1) + evaluate ($Data.noecv = FALSE) +end if + +if ($NUMNOE lt $Data.ncvpart) then + noe part=1 end + evaluate ($Data.ncvpart = 1) + evaluate ($Data.noecv = FALSE) +end if + +if ($Data.noecv eq true) then + set message=on echo=on end + noe cv $npart ? end +else + evaluate ($npart = 0) +end if + +if ( $log_level = verbose ) then + set message=normal echo=on end +else + set message=off echo=off end +end if + +if ($Data.flags.sani eq true) then + flag incl sani end +else + flag excl sani end +end if + +if ($Data.flags.xrdc eq true) then + flag incl xrdc end +else + flag excl xrdc end +end if + +if ($Data.flags.xpcs eq true) then + flag incl xpcs end +else + flag excl xpcs end +end if + +if ($Data.flags.dani eq true) then + flag incl dani end +else + flag excl dani end +end if + +if ($Data.flags.vean eq true) then + flag incl vean end +else + flag excl vean end +end if + +!set the rdc coefficients: +evaluate ($nrdc=1) +while ($nrdc <= $data.numrdc) loop rdc + evaluate ($cln = "rd" + encode($nrdc) ) + if ($Data.rdc_choice_$nrdc eq "SANI") then + sani class $cln coeff 0.0 $Data.rdc_d_$nrdc $Data.rdc_r_$nrdc end + sani class $cln force $data.rdc_cool3_$nrdc end + end if + if ($Data.rdc_choice_$nrdc eq "VANGLE") then + vean class $cln force $Data.fin_bor_cool3_$nrdc $Data.fin_cen_cool3_$nrdc end + end if + if ($Data.rdc_choice_$nrdc eq "XRDC") then + xrdc class $cln coeff $Data.rdc_d_$nrdc $Data.rdc_r_$nrdc end + xrdc class $cln force $data.rdc_cool3_$nrdc end + end if + evaluate ($nrdc=$nrdc+1) +end loop rdc + +!set the pcs coefficients: +evaluate ($npcs=1) +while ($npcs <= $data.numpcs) loop pcs + evaluate ($cln = "pc" + encode($npcs) ) + if ($Data.pcs_choice_$npcs eq "XPCS") then + xpcs class $cln coeff $Data.pcs_d_$npcs $Data.pcs_r_$npcs end + xpcs class $cln force $data.pcs_cool3_$npcs end + end if + evaluate ($npcs=$npcs+1) +end loop pcs + +! set dani coefficients: +evaluate ($ndani=1) +while ($ndani <= $data.numdani) loop dani + evaluate ($cln = "da" + encode($ndani) ) + if ($Data.dan_choice_$ndani eq "DANI") then + dani class $cln coeff $Data.dan_tc_$ndani $Data.dan_anis_$ndani $Data.dan_r_$ndani $Data.dan_wh_$ndani $Data.dan_wn_$ndani end + dani class $cln force $data.dan_cool3_$ndani end + end if + evaluate ($ndani=$ndani+1) +end loop dani + + +@RUN:symmultimer.cns + +if ($Data.scaling eq true) then + inline @RUN:set_noe_scale.cns +end if +igroup + interaction (not (resn ANI or resn DAN or resn XAN)) (not (resn ANI or resn DAN or resn XAN)) weight * 1 end + interaction (resn ANI or resn DAN or resn XAN) + (resn ANI or resn DAN or resn XAN) weight * 1 vdw 0.0 elec 0.0 end +end + +noe + rswitch ambi $Data.Rswi_cool3 + rswitch dist $Data.Rswi_cool3 + rswitch hbon $Data.Rswi_cool3 + + mrswitch ambi $Data.mRswi_cool3 + mrswitch dist $Data.mRswi_cool3 + mrswitch hbon $Data.mRswi_cool3 + + asym ambi $Data.asy_cool3 + asym dist $Data.asy_cool3 + asym hbon $Data.asy_cool3 + + masym ambi $Data.masy_cool3 + masym dist $Data.masy_cool3 + masym hbon $Data.masy_cool3 + + scale ambi $Data.amb_cool3 + scale dist $Data.unamb_cool3 + scale hbon $Data.hbond_cool3 +end + +restraints dihedral + scale=$Data.dihedrals_cool3 +end + +if ($Data.dnarest eq true) then + @RUN:data/sequence/dna-rna_restraints.def +end if + +if ($Data.flags.sani eq true) then + if ($rantens eq true) then + @RUN:mini_tensor.cns + end if +end if + +evaluate ($xanmin = false) +if ($Data.flags.xrdc eq true) then + evaluate ($xanmin = true) +end if +if ($Data.flags.xpcs eq true) then + evaluate ($xanmin = true) +end if +if ($xanmin eq true) then +! if ($rantens_para eq true) then + @RUN:mini_tensor_para.cns +! end if +end if + +if ($Data.flags.dani eq true) then + if ($rantens_dani eq true) then + @RUN:mini_tensor_dani.cns + end if +end if + +if ($Data.ssdihed eq all ) then + inline @RUN:protein-ss-restraints-all.def + flag incl cdih end +end if +if ($Data.ssdihed eq alpha ) then + inline @RUN:protein-ss-restraints-alpha.def + flag incl cdih end +end if +if ($Data.ssdihed eq alphabeta ) then + inline @RUN:protein-ss-restraints-alpha-beta.def + flag incl cdih end +end if + +energy end + +{*== check if water refinement should be performed ==*} +if ($refine.firstwater eq "yes") then + +! since we do not use SHAKe, increase the DMSO bond angle energy constant +parameter + angle (resn DMS) (resn DMS) (resn DMS) 500 TOKEN +end + +! fix the protein for initial minimization +fix sele = (not (resn WAT or resn HOH or resn TIP*)) end + +! fix rigid molecules including their waters if present +evaluate($nchain1 = 0) +while ($nchain1 < $data.ncomponents) loop nloop1 + evaluate($nchain1 = $nchain1 + 1) + evaluate($fcounter=0) + if ($Toppar.nseg_$nchain1 = 0) then + display NO FLEXIBLE SIDE-CHAINS SEGMENTS for molecule $nchain1 + display FIXING IT + fix sele = (segid $Toppar.prot_segid_$nchain1 and not name H*) end + end if +end loop nloop1 + +! fix the shape +fix sele = (resn SHA) end + +minimize powell nstep=40 drop=100 end + +! release protein and restrain harmonically +fix sele = (not all) end + +! fix the shape +fix sele = (resn SHA) end + +! fix rigid molecules +evaluate($nchain1 = 0) +while ($nchain1 < $data.ncomponents) loop nloop1 + evaluate($nchain1 = $nchain1 + 1) + evaluate($fcounter=0) + if ($Toppar.nseg_$nchain1 = 0) then + display NO FLEXIBLE SIDE-CHAINS SEGMENTS for molecule $nchain1 + display FIXING IT + fix sele = (segid $Toppar.prot_segid_$nchain1 and not name H*) end + end if +end loop nloop1 + +do (refx=x) (all) +do (refy=y) (all) +do (refz=z) (all) +restraints harmonic + exponent = 2 +end +do (harm = 0) (all) +do (harm = 5) (not name h* and not resn DMS) +do (harmonic=20.0)(resn ANI and name OO) +do (harmonic=0.0) (resn ANI and name X ) +do (harmonic=0.0) (resn ANI and name Y ) +do (harmonic=0.0) (resn ANI and name Z ) +do (harmonic=20.0)(resn DAN and name OO) +do (harmonic=0.0) (resn DAN and name X ) +do (harmonic=0.0) (resn DAN and name Y ) +do (harmonic=0.0) (resn DAN and name Z ) + +igroup + interaction (not (resn ANI or resn DAN or resn XAN)) (not (resn ANI or resn DAN or resn XAN)) weight * 1 end + interaction (resn ANI or resn DAN or resn XAN) + (resn ANI or resn DAN or resn XAN) weight * 1 vdw 0.0 elec 0.0 end +end + +minimize powell nstep=40 drop=10 end +minimize powell nstep=40 drop=10 end + +!define flexible segments: +@RUN:flex_segment_side.cns + +do (mass =$Saprotocol.mass) (all) +do (mass=1000) (resn ANI or resn DAN or resn XAN) +do (fbeta = 0) (all) +do (fbeta = $Saprotocol.fbeta {1/ps} ) ( all ) + +if ($failure eq false) then + +if ($refine.solvshell eq true) then + + ! heat to 300 K + for $bath in (100 200 300) loop heat + do (harm = 0) (all) + do (harm = 5) (not name h* and not resn ANI and not resn DAN and not resn XAN and not resn DMS) + eval ($nchain1 = 0) + while ($nchain1 < $data.ncomponents) loop nloop1 + eval ($nchain1=$nchain1+1) + do (harm = 0) (attribute store5 = $nchain1 and + not ( name CA or name BB or name C or name N or name P or name C# or name C## )) + end loop nloop1 + do (vx=maxwell($bath)) (all) + do (vy=maxwell($bath)) (all) + do (vz=maxwell($bath)) (all) + if ($Data.scaling eq true) then + inline @RUN:set_noe_scale.cns + end if + + noe + scale ambi $Data.amb_cool3 + scale dist $Data.unamb_cool3 + end + igroup + interaction (not (resn ANI or resn DAN or resn XAN)) (not (resn ANI or resn DAN or resn XAN)) weight * 1 end + interaction (resn ANI or resn DAN or resn XAN) + (resn ANI or resn DAN or resn XAN) weight * 1 vdw 0.0 elec 0.0 end + end + + dynamics cartesian + nstep=$refine.heatsteps timest=0.002{ps} + temperature=$bath tcoupling = true + nprint=50 + end + end loop heat + + !define flexible segments: + @RUN:flex_segment_back.cns + + do (harm = 0) (all) + do (harm = 1) (not name h* and not resn ANI and not resn DAN and not resn XAN and not resn DMS) + eval ($nchain1 = 0) + while ($nchain1 < $data.ncomponents) loop nloop1 + eval ($nchain1=$nchain1+1) + do (harm = 0) (attribute store5 = $nchain1) + end loop nloop1 + do (harm = 20) (resn ANI and name OO) + do (harm = 20) (resn DAN and name OO) + + if ($Data.scaling eq true) then + inline @RUN:set_noe_scale.cns + end if + + noe + scale ambi $Data.amb_cool3 + scale dist $Data.unamb_cool3 + end + igroup + interaction (not (resn ANI or resn DAN or resn XAN)) (not (resn ANI or resn DAN or resn XAN)) weight * 1 end + interaction (resn ANI or resn DAN or resn XAN) + (resn ANI or resn DAN or resn XAN) weight * 1 vdw 0.0 elec 0.0 end + end + + dynamics cartesian + nstep=$refine.steps timest=0.002{ps} + temperature=$bath tcoupling = true + nprint=50 + end + + do (mass = $Saprotocol.mass) (all) + do (harm = 0) (all) + do (harm = 1) (name CA or name BB or name C or name N or name P or name C# or name C##) + do (harm = 20) (resn ANI and name OO) + do (harm = 20) (resn DAN and name OO) + eval ($nchain1 = 0) + while ($nchain1 < $data.ncomponents) loop nloop1 + eval ($nchain1=$nchain1+1) + do (harm = 0) (attribute store5 = $nchain1) + end loop nloop1 + + ! cool + for $bath in (300 200 100) loop cool + + if ($Data.scaling eq true) then + inline @RUN:set_noe_scale.cns + end if + + noe + scale ambi $Data.amb_cool3 + scale dist $Data.unamb_cool3 + end + igroup + interaction (not (resn ANI or resn DAN or resn XAN)) (not (resn ANI or resn DAN or resn XAN)) weight * 1 end + interaction (resn ANI or resn DAN or resn XAN) + (resn ANI or resn DAN or resn XAN) weight * 1 vdw 0.0 elec 0.0 end + end + dynamics cartesian + nstep=$refine.coolsteps timest=0.002{ps} + temperature=$bath tcoupling = true + nprint=50 + end + end loop cool + +end if + +end if + +if ($Data.scaling eq true) then + inline @RUN:set_noe_scale.cns +end if + +noe + scale ambi $Data.amb_cool3 + scale dist $Data.unamb_cool3 +end +igroup + interaction (not (resn ANI or resn DAN or resn XAN)) (not (resn ANI or resn DAN or resn XAN)) weight * 1 end + interaction (resn ANI or resn DAN or resn XAN) + (resn ANI or resn DAN or resn XAN) weight * 1 vdw 0.0 elec 0.0 end +end + +flag excl harm end + +if ($Data.flags.cdih eq true) then + flag incl cdih end +end if + +mini powell nstep 200 end + +{*== End if statement to turn on or off DMSO refinement ==*} +end if + +{* ======================= calculate free molecules internal energy *} + +parameter nbonds eps=1.0 end end + +igroup + interaction (not resn ANI and not resn DAN and not resn XAN and not (resn WAT or resn HOH or resn TIP*)) + (not resn ANI and not resn DAN and not resn XAN and not (resn WAT or resn HOH or resn TIP*)) weight * 1 end +end + +fix sele=(resn ANI or resn DAN or resn XAN or resn WAT or resn HOH or resn TIP* or resn DMS or resn SHA) end + +do (refx=x) (all) +do (refy=y) (all) +do (refz=z) (all) + +flag excl noe dani sani vean xrdc xpcs coll cdih zhar end +flag include bond angle dihe impr vdw elec end + +evaluate ($elec = 0.0) +evaluate ($eintfree = 0.0) +inline @RUN:calc_free-ene.cns + +fix sele=(not all) end + +! fix the shape +fix sele = (resn SHA) end + +do (x = refx) (all) +do (y = refy) (all) +do (z = refz) (all) + +{* ======================= final analysis *} + +igroup + interaction (not resn ANI and not resn DAN and not resn XAN and not resn DMS) + (not resn ANI and not resn DAN and not resn XAN and not resn DMS) weight * 1 end +end + +evaluate ($esolcplx = 0.0) +evaluate ($edesolv = 0.0) + +{* ===================== calculate complex internal energy *} +evaluate ($kinter = 1.0) +@RUN:scale_intra_only.cns +energy end +evaluate ($eintcplx = $bond + $angl + $impr + $dihe + $vdw + $elec) +if ($data.ncomponents = 1) then + evaluate ($eintfree = $eintcplx) +end if + +{* ===================== calculate final energies and write structure *} +if ($data.ncomponents > 1) then + evaluate ($kinter = 1.0) + @RUN:scale_inter_final.cns +else + @RUN:scale_intra_only.cns +end if + +evaluate ($cdih=0.0) +flag incl noe cdih end +if ($Data.flags.sani eq true) then + flag incl sani end +end if +if ($Data.flags.xrdc eq true) then + flag incl xrdc end +end if +if ($Data.flags.xpcs eq true) then + flag incl xpcs end +end if +if ($Data.flags.dani eq true) then + flag incl dani end +end if +if ($Data.flags.vean eq true) then + flag incl vean end +end if + +noe + scale dist $Data.unamb_cool3 + scale ambi $Data.amb_cool3 + scale hbon 0.0 + scale symm 0.0 + scale cont 0.0 +end +energy end +evaluate ($eair= $noe) +evaluate ($rms_test_noe=0.0) +evaluate ($violations_test_noe=0) +evaluate ($esym = 0.0) +evaluate ($ncs = 0.0) +evaluate ($zhar = 0.0) +if ($Data.flags.sym eq true) then + noe reset nres= 2000000 end + @RUN:symmultimer.cns + noe + scale symm $Data.ksym + end + energy end + evaluate ($esym = $noe) + if ($Data.noecv eq true) then + evaluate ($violations_test_noe=0) + evaluate ($rms_test_noe=0.0) + display Print out of cross-validated violations and rms not + display possible in combination with symmetry restraints + display CV values set therefore to 0 + end if + noe reset nres= 2000000 end + set message=normal echo=on end + !read all the experimental Data: + @@RUN:read_noes.cns(Iteration=$Iteration; Data=$Data; count=$count) + if ( $log_level = verbose ) then + set message=normal echo=on end + else + set message=off echo=off end + end if +else + print threshold=0.3 noe + evaluate ($rms_noe=$result) + evaluate ($violations_noe=$violations) + if ($Data.noecv eq true) then + evaluate ($rms_test_noe=$test_rms) + evaluate ($violations_test_noe=$test_violations) + else + evaluate ($rms_test_noe=0.0) + evaluate ($violations_test_noe=0) + end if +end if + +if ($Data.dnarest eq true) then + @RUN:data/sequence/dna-rna_restraints.def +end if + +energy end +evaluate ($etot = $ener - $noe) +evaluate ($noe = $eair) +evaluate ($etot = $etot + $noe) +if ($data.flags.em = true) then + @RUN:em_calc_lcc.cns(toppar=$toppar; data=$data; + saprotocol=$saprotocol; lcc=$lcc;) + flags exclude xref end +end if + +if ($refine.keepwater eq true) then + evaluate ($filename= "NEWIT:water/" + $file - "PREVIT:" - ".pdb" + "_dmso-all.pdb") + write coordinates sele= (all) output =$filename end +end if + +evaluate ($Data.flags.dihed = false) +evaluate ($filename= "NEWIT:water/" + $file - "PREVIT:" - ".pdb" + "w.pdb0") +@RUN:print_coorheader.cns + +do (q=1) (all) +write coordinates sele= (not (segid DMS* or resn DMS)) output =$filename end + +if ($refine.keepwater eq true) then + evaluate ($filename= "NEWIT:water/" + $file - "PREVIT:" - ".pdb" + "_dmso-inter.pdb") + write coordinates sele= (all) output =$filename end +end if + +stop + diff --git a/src/haddock/modules/flexref/cns/re_h2o.inp b/src/haddock/modules/flexref/cns/re_h2o.inp new file mode 100644 index 000000000..b0f29795d --- /dev/null +++ b/src/haddock/modules/flexref/cns/re_h2o.inp @@ -0,0 +1,854 @@ +! re_h2o.inp +! Perform an explitic solvent (water) refinement +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + +@RUN:initialize.cns(iteration=$iteration;) + +@NEWIT:water/iteration.cns(iteration=$iteration;) + +@RUN:run.cns( +iteration =$iteration; +filenames =$filenames; +data =$data; +iterations=$iterations; +saprotocol=$saprotocol; +refine =$refine; +toppar =$toppar; +analysis =$analysis; +) + +evaluate ($log_level=quiet) + +if ( $log_level = verbose ) then + set message=normal echo=on end +else + set message=off echo=off end +end if + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!The next line will be changed automatically from python: +evaluate ($count = 1) +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!The next line will be changed automatically from python: +evaluate ($file = "") +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +!reads in structure, coordinates and parameter files +@RUN:read_struc.cns + +!set the energy flags: +inline @RUN:setflags.cns + +evaluate ($Data.flags.zres = false) +evaluate ($zhar = 0.0) + +evaluate ($Data.flags.elec = true) +flags include elec end + +!load the solvent topology files: +topology @@RUN:toppar/water-allhdg5-4.top end + +if ($Data.noecv eq true) then + evaluate ($fileseed=$file - ".pdb" + ".seed") + @@$fileseed(seed=$seed;npart=$npart) +else + evaluate ($seed = max($iteration,1)*$count*$Saprotocol.iniseed) +end if +set seed $seed end + +! read coordinate and copy to reference coordinate set +coor @@$file +coor copy end + +{*== check first for failed structures ==*} +evaluate ($failure = false) +evaluate ($filefail= "NEWIT:water/" + $file - "PREVIT:" - ".pdb" + "w.fail") +fileexist $filefail end +evaluate ($failure = $result) + +! check for CG molecule +eval($nchain1= 1) +eval($coarse = false) +while ($nchain1 <= $data.ncomponents) loop cloop0 + if ($toppar.cg_$nchain1 = true) then + eval($coarse = true) + end if + eval($nchain1 = $nchain1 + 1) +end loop cloop0 + +! perform the morphing to all atoms model if needed +if ($coarse eq true) then + inline @RUN:read_struc-cg.cns + inline @RUN:cg-to-aa.cns + + ! reset non-bonded parameters to all atoms defaults + parameter + nbonds + nbxmod=5 atom cdie shift + cutnb=9.5 ctofnb=8.5 ctonnb=6.5 eps=1.0 e14fac=0.4 inhibit 0.25 + wmin=0.5 tolerance 0.5 + end + end + +end if + +if ($data.waterdock eq true) then + inline @RUN:read_water1.cns +end if + +if ($Data.flags.sani eq true) then + flag incl sani end + coor select (not known and resn ani) end + if ($select gt 0) then + coor @@$tensor_pdb + + {* Find CoM of protein and move tensor 100 A away *} + show ave (x) (name CA or name BB or name C1') + evaluate ($xcent=$result) + show ave (y) (name CA or name BB or name C1') + evaluate ($ycent=$result) + show ave (z) (name CA or name BB or name C1') + evaluate ($zcent=$result) + do (x=x+$xcent+100) (resn ANI) + do (y=y+$ycent+100) (resn ANI) + do (z=z+$zcent+100) (resn ANI) + + evaluate ($rantens = true) + else + evaluate ($rantens = false) + end if + + {* Harmonic restraints to keep it far away *} + do (refx=x) (all) + do (refy=y) (all) + do (refz=z) (all) + do (harmonic=20.0)(resn ANI and name OO) + do (harmonic=0.0) (resn ANI and name X ) + do (harmonic=0.0) (resn ANI and name Y ) + do (harmonic=0.0) (resn ANI and name Z ) + do (harmonic=0.0) (not (resn ANI)) + restraints harmonic exponent=2 end + flags include harm end +end if + +evaluate ($xanmin = false) +if ($Data.flags.xrdc eq true) then + evaluate ($xanmin = true) + flag incl xrdc end +end if +if ($Data.flags.xpcs eq true) then + evaluate ($xanmin = true) + flag incl xpcs end +end if +if ($xanmin eq true) then + coor select (not known and resn xan) end + if ($select gt 0) then + coor @@$tensor_para_pdb + + {* Find CoM of protein and move tensor 100 A away *} + show ave (x) (name CA or name BB or name C1') + evaluate ($xcent=$result) + show ave (y) (name CA or name BB or name C1') + evaluate ($ycent=$result) + show ave (z) (name CA or name BB or name C1') + evaluate ($zcent=$result) + do (x=x+$xcent+100) (resn XAN) + do (y=y+$ycent+100) (resn XAN) + do (z=z+$zcent+100) (resn XAN) + evaluate ($rantens_para = true) + else + evaluate ($rantens_para = false) + end if +end if + +if ($Data.flags.dani eq true) then + flag incl dani end + coor select (not known and resn DAN) end + if ($select gt 0) then + coor @@RUN:toppar/tensor_dani.pdb + + {* Find CoM of protein and move tensor 100 A away *} + show ave (x) (name CA or name BB or name C1') + evaluate ($xcent=$result) + show ave (y) (name CA or name BB or name C1') + evaluate ($ycent=$result) + show ave (z) (name CA or name BB or name C1') + evaluate ($zcent=$result) + do (x=x+$xcent+100) (resn DAN) + do (y=y+$ycent+100) (resn DAN) + do (z=z+$zcent+100) (resn DAN) + + evaluate ($rantens_dani = true) + else + evaluate ($rantens_dani = false) + end if + + {* Harmonic restraints to keep it far away *} + do (refx=x) (all) + do (refy=y) (all) + do (refz=z) (all) + do (harmonic=20.0)(resn DAN and name OO) + do (harmonic=0.0) (resn DAN and name X ) + do (harmonic=0.0) (resn DAN and name Y ) + do (harmonic=0.0) (resn DAN and name Z ) + do (harmonic=0.0) (not (resn ANI or resn DAN)) + restraints harmonic exponent=2 end + flags include harm end +end if + +if ($Data.flags.rg eq true ) then + collapse + force $Data.krg_cool3 + target $Data.rgtarg + sele (not (resn ANI or resn XAN or resn WAT or resn HOH or resn TIP3)) + end +end if + +do (refx = x) (all) +do (refy = y) (all) +do (refz = z) (all) + +{*== check if water refinement should be performed ==*} +if ($refine.firstwater eq "yes") then + if ($refine.solvshell eq true) then + if ($failure eq false) then + ! generate water layer + do (segid = "PROT") (segid " ") + @RUN:generate_water.cns + do (segid = " ") (segid "PROT") + end if + else + parameter nbonds eps=$Data.epsilon end end + end if +end if + +set seed $seed end +set message=normal echo=on end +inline @RUN:read_data.cns + +! read EM-data +if ($data.flags.em = true) then + @RUN:em_read_data.cns(data=$data;) + if ($data.em.itw = true) then + flags include xref end + end if +end if + +if ($refine.solvshell eq true) then + inline @RUN:water_rest.cns +end if + +if ($Data.ranair eq true) then + if ($Data.ncomponents > 2) then + display ========= Unsupported option =========== + display Random definition of AIRs with more than + display two molecules currently unsupported + display ======================================== + stop + end if + evaluate ($Data.noecv = false) + noe + reset + nrestraints = 100000 ! allocate space for NOEs + ceiling 1000 + end +! @RUN:contactairs.cns + + !Read back in hbond data + if ($Data.hbond_lastit ge &iteration) then + if ($Data.hbond_firstit le &iteration) then + if ($Data.hbonds_on eq true) then + noe @@$hbond_fname end + end if + end if + end if + + noe + averaging * sum + potential * soft + scale * 1.0 + sqconstant * 1.0 + sqexponent * 2 + soexponent * 1 + rswitch * 1.0 + sqoffset * 0.0 + asymptote * 2.0 + msoexponent * 1 + masymptote * -0.1 + mrswitch * 1.0 + avexpo hbond 20 + end + inline @RUN:water_rest.cns +end if + +{* random removal of restaints ================================== *} +!Make sure that at least as many distance restraints are successfully +!read as the number of partitions for cross-validation +evaluate ($numnoe = 999) +noe ? end +if ($NUMNOE = 0) then + evaluate ($Data.ncvpart = 1) + evaluate ($Data.noecv = FALSE) +end if + +if ($NUMNOE lt $Data.ncvpart) then + noe part=1 end + evaluate ($Data.ncvpart = 1) + evaluate ($Data.noecv = FALSE) +end if + +if ($Data.noecv eq true) then + set message=on echo=on end + noe cv $npart ? end +else + evaluate ($npart = 0) +end if + +if ( $log_level = verbose ) then + set message=normal echo=on end +else + set message=off echo=off end +end if + +if ($Data.flags.sani eq true) then + flag incl sani end +else + flag excl sani end +end if + +if ($Data.flags.xrdc eq true) then + flag incl xrdc end +else + flag excl xrdc end +end if + +if ($Data.flags.xpcs eq true) then + flag incl xpcs end +else + flag excl xpcs end +end if + +if ($Data.flags.dani eq true) then + flag incl dani end +else + flag excl dani end +end if + +if ($Data.flags.vean eq true) then + flag incl vean end +else + flag excl vean end +end if + +!set the rdc coefficients: +evaluate ($nrdc=1) +while ($nrdc <= $data.numrdc) loop rdc + evaluate ($cln = "rd" + encode($nrdc) ) + if ($Data.rdc_choice_$nrdc eq "SANI") then + sani class $cln coeff 0.0 $Data.rdc_d_$nrdc $Data.rdc_r_$nrdc end + sani class $cln force $data.rdc_cool3_$nrdc end + end if + if ($Data.rdc_choice_$nrdc eq "VANGLE") then + vean class $cln force $Data.fin_bor_cool3_$nrdc $Data.fin_cen_cool3_$nrdc end + end if + if ($Data.rdc_choice_$nrdc eq "XRDC") then + xrdc class $cln coeff $Data.rdc_d_$nrdc $Data.rdc_r_$nrdc end + xrdc class $cln force $data.rdc_cool3_$nrdc end + end if + evaluate ($nrdc=$nrdc+1) +end loop rdc + +!set the pcs coefficients: +evaluate ($npcs=1) +while ($npcs <= $data.numpcs) loop pcs + evaluate ($cln = "pc" + encode($npcs) ) + if ($Data.pcs_choice_$npcs eq "XPCS") then + xpcs class $cln coeff $Data.pcs_d_$npcs $Data.pcs_r_$npcs end + xpcs class $cln force $data.pcs_cool3_$npcs end + end if + evaluate ($npcs=$npcs+1) +end loop pcs + +! set dani coefficients: +evaluate ($ndani=1) +while ($ndani <= $data.numdani) loop dani + evaluate ($cln = "da" + encode($ndani) ) + if ($Data.dan_choice_$ndani eq "DANI") then + dani class $cln coeff $Data.dan_tc_$ndani $Data.dan_anis_$ndani $Data.dan_r_$ndani $Data.dan_wh_$ndani $Data.dan_wn_$ndani end + dani class $cln force $data.dan_cool3_$ndani end + end if + evaluate ($ndani=$ndani+1) +end loop dani + + +@RUN:symmultimer.cns + +if ($Data.scaling eq true) then + inline @RUN:set_noe_scale.cns +end if +igroup + interaction (not (resn ANI or resn DAN or resn XAN)) (not (resn ANI or resn DAN or resn XAN)) weight * 1 end + interaction (resn ANI or resn DAN or resn XAN) + (resn ANI or resn DAN or resn XAN) weight * 1 vdw 0.0 elec 0.0 end +end + +noe + rswitch ambi $Data.Rswi_cool3 + rswitch dist $Data.Rswi_cool3 + rswitch hbon $Data.Rswi_cool3 + + mrswitch ambi $Data.mRswi_cool3 + mrswitch dist $Data.mRswi_cool3 + mrswitch hbon $Data.mRswi_cool3 + + asym ambi $Data.asy_cool3 + asym dist $Data.asy_cool3 + asym hbon $Data.asy_cool3 + + masym ambi $Data.masy_cool3 + masym dist $Data.masy_cool3 + masym hbon $Data.masy_cool3 + + scale ambi $Data.amb_cool3 + scale dist $Data.unamb_cool3 + scale hbon $Data.hbond_cool3 +end + +restraints dihedral + scale=$Data.dihedrals_cool3 +end + +if ($Data.dnarest eq true) then + @RUN:data/sequence/dna-rna_restraints.def +end if + +if ($Data.flags.sani eq true) then + if ($rantens eq true) then + @RUN:mini_tensor.cns + end if +end if + +evaluate ($xanmin = false) +if ($Data.flags.xrdc eq true) then + evaluate ($xanmin = true) +end if +if ($Data.flags.xpcs eq true) then + evaluate ($xanmin = true) +end if +if ($xanmin eq true) then +! if ($rantens_para eq true) then + @RUN:mini_tensor_para.cns +! end if +end if + +if ($Data.flags.dani eq true) then + if ($rantens_dani eq true) then + @RUN:mini_tensor_dani.cns + end if +end if + +if ($Data.ssdihed eq all ) then + inline @RUN:protein-ss-restraints-all.def + flag incl cdih end +end if +if ($Data.ssdihed eq alpha ) then + inline @RUN:protein-ss-restraints-alpha.def + flag incl cdih end +end if +if ($Data.ssdihed eq alphabeta ) then + inline @RUN:protein-ss-restraints-alpha-beta.def + flag incl cdih end +end if + +energy end + +{*== check if water refinement should be performed ==*} +if ($refine.firstwater eq "yes") then + +! since we do not use SHAKe, increase the water bond angle energy constant +parameter + bond (resn WAT ) (resn WAT ) 1000 TOKEN + angle (resn WAT ) (resn WAT ) (resn WAT ) 500 TOKEN + bond (resn HOH ) (resn HOH ) 1000 TOKEN + angle (resn HOH ) (resn HOH ) (resn HOH ) 500 TOKEN + bond (resn TIP*) (resn TIP*) 1000 TOKEN + angle (resn TIP*) (resn TIP*) (resn TIP*) 500 TOKEN +end + +! fix the protein for initial minimization +fix sele = (not (resn WAT or resn HOH or resn TIP*)) end + +! fix rigid molecules including their waters if present +evaluate($nchain1 = 0) +while ($nchain1 < $data.ncomponents) loop nloop1 + evaluate($nchain1 = $nchain1 + 1) + evaluate($fcounter=0) + if ($Toppar.nseg_$nchain1 = 0) then + display NO FLEXIBLE SIDE-CHAINS SEGMENTS for molecule $nchain1 + display FIXING IT + fix sele = (segid $Toppar.prot_segid_$nchain1 and not name H*) end + end if +end loop nloop1 + +! fix the shape +fix sele = (resn SHA) end + +minimize powell nstep=40 drop=100 end + +! release protein and restrain harmonically +fix sele = (not all) end + +! fix the shape +fix sele = (resn SHA) end + +! fix rigid molecules +evaluate($nchain1 = 0) +while ($nchain1 < $data.ncomponents) loop nloop1 + evaluate($nchain1 = $nchain1 + 1) + evaluate($fcounter=0) + if ($Toppar.nseg_$nchain1 = 0) then + display NO FLEXIBLE SIDE-CHAINS SEGMENTS for molecule $nchain1 + display FIXING IT + fix sele = (segid $Toppar.prot_segid_$nchain1 and not name H*) end + end if +end loop nloop1 + +do (refx=x) (all) +do (refy=y) (all) +do (refz=z) (all) +restraints harmonic + exponent = 2 +end +do (harm = 0) (all) +do (harm = 5) (not name h* and not (resn WAT or resn HOH or resn TIP*)) +do (harmonic=20.0)(resn ANI and name OO) +do (harmonic=0.0) (resn ANI and name X ) +do (harmonic=0.0) (resn ANI and name Y ) +do (harmonic=0.0) (resn ANI and name Z ) +do (harmonic=20.0)(resn DAN and name OO) +do (harmonic=0.0) (resn DAN and name X ) +do (harmonic=0.0) (resn DAN and name Y ) +do (harmonic=0.0) (resn DAN and name Z ) + +igroup + interaction (not (resn ANI or resn DAN or resn XAN)) (not (resn ANI or resn DAN or resn XAN)) weight * 1 end + interaction (resn ANI or resn DAN or resn XAN) + (resn ANI or resn DAN or resn XAN) weight * 1 vdw 0.0 elec 0.0 end +end + +minimize powell nstep=40 drop=10 end +minimize powell nstep=40 drop=10 end + +!define flexible segments: +@RUN:flex_segment_side.cns + +do (mass =$Saprotocol.mass) (all) +do (mass=1000) (resn ANI or resn DAN or resn XAN) +do (fbeta = 0) (all) +do (fbeta = $Saprotocol.fbeta {1/ps} ) ( all ) + +if ($failure eq false) then + +if ($refine.solvshell eq true) then + + ! heat to 300 K + for $bath in (100 200 300) loop heat + do (harm = 0) (all) + do (harm = 5) (not name h* and not resn ANI and not resn DAN and not resn XAN and not (resn WAT or resn HOH or resn TIP3)) + eval ($nchain1 = 0) + while ($nchain1 < $data.ncomponents) loop nloop1 + eval ($nchain1=$nchain1+1) + do (harm = 0) (attribute store5 = $nchain1 and + not ( name CA or name BB or name C or name N or name P or name C# or name C## )) + end loop nloop1 + do (vx=maxwell($bath)) (all) + do (vy=maxwell($bath)) (all) + do (vz=maxwell($bath)) (all) + if ($Data.scaling eq true) then + inline @RUN:set_noe_scale.cns + end if + + noe + scale ambi $Data.amb_cool3 + scale dist $Data.unamb_cool3 + end + igroup + interaction (not (resn ANI or resn DAN or resn XAN)) (not (resn ANI or resn DAN or resn XAN)) weight * 1 end + interaction (resn ANI or resn DAN or resn XAN) + (resn ANI or resn DAN or resn XAN) weight * 1 vdw 0.0 elec 0.0 end + end + + dynamics cartesian + nstep=$refine.heatsteps timest=0.002{ps} + temperature=$bath tcoupling = true + nprint=50 + end + end loop heat + + !define flexible segments: + @RUN:flex_segment_back.cns + + do (harm = 0) (all) + do (harm = 1) (not name h* and not resn ANI and not resn DAN and not resn XAN and not (resn WAT or resn HOH or resn TIP3)) + eval ($nchain1 = 0) + while ($nchain1 < $data.ncomponents) loop nloop1 + eval ($nchain1=$nchain1+1) + do (harm = 0) (attribute store5 = $nchain1) + end loop nloop1 + do (harm = 20) (resn ANI and name OO) + do (harm = 20) (resn DAN and name OO) + + if ($Data.scaling eq true) then + inline @RUN:set_noe_scale.cns + end if + + noe + scale ambi $Data.amb_cool3 + scale dist $Data.unamb_cool3 + end + igroup + interaction (not (resn ANI or resn DAN or resn XAN)) (not (resn ANI or resn DAN or resn XAN)) weight * 1 end + interaction (resn ANI or resn DAN or resn XAN) + (resn ANI or resn DAN or resn XAN) weight * 1 vdw 0.0 elec 0.0 end + end + + dynamics cartesian + nstep=$refine.steps timest=0.002{ps} + temperature=$bath tcoupling = true + nprint=50 + end + + do (mass = $Saprotocol.mass) (all) + do (harm = 0) (all) + do (harm = 1) (name CA or name BB or name C or name N or name P or name C# or name C##) + do (harm = 20) (resn ANI and name OO) + do (harm = 20) (resn DAN and name OO) + eval ($nchain1 = 0) + while ($nchain1 < $data.ncomponents) loop nloop1 + eval ($nchain1=$nchain1+1) + do (harm = 0) (attribute store5 = $nchain1) + end loop nloop1 + + ! cool + for $bath in (300 200 100) loop cool + + if ($Data.scaling eq true) then + inline @RUN:set_noe_scale.cns + end if + + noe + scale ambi $Data.amb_cool3 + scale dist $Data.unamb_cool3 + end + igroup + interaction (not (resn ANI or resn DAN or resn XAN)) (not (resn ANI or resn DAN or resn XAN)) weight * 1 end + interaction (resn ANI or resn DAN or resn XAN) + (resn ANI or resn DAN or resn XAN) weight * 1 vdw 0.0 elec 0.0 end + end + dynamics cartesian + nstep=$refine.coolsteps timest=0.002{ps} + temperature=$bath tcoupling = true + nprint=50 + end + end loop cool + +end if + +end if + +if ($Data.scaling eq true) then + inline @RUN:set_noe_scale.cns +end if + +noe + scale ambi $Data.amb_cool3 + scale dist $Data.unamb_cool3 +end +igroup + interaction (not (resn ANI or resn DAN or resn XAN)) (not (resn ANI or resn DAN or resn XAN)) weight * 1 end + interaction (resn ANI or resn DAN or resn XAN) + (resn ANI or resn DAN or resn XAN) weight * 1 vdw 0.0 elec 0.0 end +end + +flag excl harm end + +if ($Data.flags.cdih eq true) then + flag incl cdih end +end if + +mini powell nstep 200 end + +{*== End if statement to turn on or off water refinement ==*} +end if + +{* ======================= calculate free molecules internal energy *} + +parameter nbonds eps=1.0 end end + +igroup + interaction (not resn ANI and not resn DAN and not resn XAN and not (resn WAT or resn HOH or resn TIP*)) + (not resn ANI and not resn DAN and not resn XAN and not (resn WAT or resn HOH or resn TIP*)) weight * 1 end +end + +fix sele=(resn ANI or resn DAN or resn XAN or resn WAT or resn HOH or resn TIP* or resn DMS or resn SHA) end + +do (refx=x) (all) +do (refy=y) (all) +do (refz=z) (all) + +flag excl noe dani sani vean xrdc xpcs coll cdih zhar end +flag include bond angle dihe impr vdw elec end + +evaluate ($elec = 0.0) +evaluate ($eintfree = 0.0) +inline @RUN:calc_free-ene.cns + +fix sele=(not all) end + +! fix the shape +fix sele = (resn SHA) end + +do (x = refx) (all) +do (y = refy) (all) +do (z = refz) (all) + +{* ======================= final analysis *} + +igroup + interaction (not resn ANI and not resn DAN and not resn XAN and not (resn WAT or resn HOH or resn TIP*)) + (not resn ANI and not resn DAN and not resn XAN and not (resn WAT or resn HOH or resn TIP*)) weight * 1 end +end + +evaluate ($esolcplx = 0.0) +evaluate ($edesolv = 0.0) + +{* ===================== calculate complex internal energy *} +evaluate ($kinter = 1.0) +@RUN:scale_intra_only.cns +energy end +evaluate ($eintcplx = $bond + $angl + $impr + $dihe + $vdw + $elec) +if ($data.ncomponents = 1) then + evaluate ($eintfree = $eintcplx) +end if + +{* ===================== calculate final energies and write structure *} +if ($data.ncomponents > 1) then + evaluate ($kinter = 1.0) + @RUN:scale_inter_final.cns +else + @RUN:scale_intra_only.cns +end if + +evaluate ($cdih=0.0) +flag incl noe cdih end +if ($Data.flags.sani eq true) then + flag incl sani end +end if +if ($Data.flags.xrdc eq true) then + flag incl xrdc end +end if +if ($Data.flags.xpcs eq true) then + flag incl xpcs end +end if +if ($Data.flags.dani eq true) then + flag incl dani end +end if +if ($Data.flags.vean eq true) then + flag incl vean end +end if + +noe + scale dist $Data.unamb_cool3 + scale ambi $Data.amb_cool3 + scale hbon 0.0 + scale symm 0.0 + scale cont 0.0 +end +energy end +evaluate ($eair= $noe) +evaluate ($rms_test_noe=0.0) +evaluate ($violations_test_noe=0) +evaluate ($esym = 0.0) +evaluate ($ncs = 0.0) +evaluate ($zhar = 0.0) +if ($Data.flags.sym eq true) then + noe reset nres= 2000000 end + @RUN:symmultimer.cns + noe + scale symm $Data.ksym + end + energy end + evaluate ($esym = $noe) + if ($Data.noecv eq true) then + evaluate ($violations_test_noe=0) + evaluate ($rms_test_noe=0.0) + display Print out of cross-validated violations and rms not + display possible in combination with symmetry restraints + display CV values set therefore to 0 + end if + noe reset nres= 2000000 end + set message=normal echo=on end + !read all the experimental Data: + @@RUN:read_noes.cns(Iteration=$Iteration; Data=$Data; count=$count) + if ( $log_level = verbose ) then + set message=normal echo=on end + else + set message=off echo=off end + end if +else + print threshold=0.3 noe + evaluate ($rms_noe=$result) + evaluate ($violations_noe=$violations) + if ($Data.noecv eq true) then + evaluate ($rms_test_noe=$test_rms) + evaluate ($violations_test_noe=$test_violations) + else + evaluate ($rms_test_noe=0.0) + evaluate ($violations_test_noe=0) + end if +end if + +if ($Data.dnarest eq true) then + @RUN:data/sequence/dna-rna_restraints.def +end if + +energy end +evaluate ($etot = $ener - $noe) +evaluate ($noe = $eair) +evaluate ($etot = $etot + $noe) +if ($data.flags.em = true) then + @RUN:em_calc_lcc.cns(toppar=$toppar; data=$data; + saprotocol=$saprotocol; lcc=$lcc;) + flags exclude xref end +end if + +if ($refine.keepwater eq true) then + evaluate ($filename= "NEWIT:water/" + $file - "PREVIT:" - ".pdb" + "_h2o-all.pdb") + write coordinates sele= (all) output =$filename end +end if + +evaluate ($Data.flags.dihed = false) +evaluate ($filename= "NEWIT:water/" + $file - "PREVIT:" - ".pdb" + "w.pdb0") +@RUN:print_coorheader.cns + +do (q=1) (all) +write coordinates sele= (not (resn WAT or resn HOH or resn TIP*)) output =$filename end + +if ($refine.keepwater eq true) then + evaluate ($filename= "NEWIT:water/" + $file - "PREVIT:" - ".pdb" + "_h2o-inter.pdb") + write coordinates sele= (all) output =$filename end +end if + +stop + diff --git a/src/haddock/modules/flexref/cns/read_data.cns b/src/haddock/modules/flexref/cns/read_data.cns new file mode 100644 index 000000000..d4b1e305f --- /dev/null +++ b/src/haddock/modules/flexref/cns/read_data.cns @@ -0,0 +1,237 @@ +! read_data.cns +! Read the various restraints data +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + +!module(Iteration; Data; count;) + +!NOEs, hbonds +noe + reset + nrestraints = 12000000 ! allocate space for NOEs + ceiling 1000 +end + +if ($Data.amb_lastit ge $Iteration) then + if ($Data.amb_firstit le $Iteration) then +! evaluate ($filenam0 = "NEWIT:ambig.tbl_" + encode($count)) + evaluate ($filenam0 = $ambig_fname + "_" + encode($count)) + + fileexist $filenam0 end + if ($result eq false) then +! evaluate ($filenam0 = "NEWIT:ambig.tbl") + evaluate ($filenam0 = $ambig_fname) + end if + + fileexist $filenam0 end + if ($result eq true) then + noe class ambi @@$filenam0 end + end if + + if ($Data.noecv eq true) then + noe part $Data.ncvpart end + end if + end if +end if + +if ($Data.unamb_lastit ge $Iteration) then + + if ($Data.unamb_firstit le $Iteration) then +! noe class dist @@NEWIT:unambig.tbl end + + fileexist $unambig_fname end + if ($result eq true) then + noe class dist @@$unambig_fname end + end if + + end if + +end if + +if ($Data.hbond_lastit ge $Iteration) then + + if ($Data.hbond_firstit le $Iteration) then + if ($Data.hbonds_on eq true) then + + fileexist $hbond_fname end + if ($result eq true) then +! noe @@$hbond_fname end + noe @@$hbond_fname end + end if + + end if + end if +end if + +noe + averaging * sum + potential * soft + scale * 1.0 + sqconstant * 1.0 + sqexponent * 2 + soexponent * 1 + rswitch * 1.0 + sqoffset * 0.0 + asymptote * 2.0 + msoexponent * 1 + masymptote * -0.1 + mrswitch * 1.0 + avexpo hbond 20 +end + + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!dihedral restraints: +restraints dihedral + reset + nassign 10000 +end +if ($Data.cdih.on eq true) then + fileexist $dihe_fname end + if ($result eq true) then + restraints dihedral +! @@RUN:data/dihedrals/dihedrals.tbl + @@$dihe_fname + end + end if +end if + +restraints dihedral ? end + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!residual dipolar couplings: + +evaluate ($Data.flags.sani = false) +evaluate ($Data.flags.xrdc = false) +evaluate ($Data.flags.xpcs = false) +evaluate ($Data.flags.dani = false) +evaluate ($Data.flags.vean = false) +evaluate ($inisani=0) +evaluate ($inixrdc=0) +evaluate ($inixpcs=0) +evaluate ($inidani=0) +evaluate ($inivean = 0) + +sani reset nres=5000 end +vean reset nres=10000 end +xrdc reset nres=5000 end +evaluate ($nrdc=1) +while ($nrdc <= $Data.numrdc) loop rdc + evaluate ($cln="rd"+encode($nrdc)) + if ($Data.rdc_lastit_$nrdc ge $Iteration) then + if ($Data.rdc_firstit_$nrdc le $Iteration) then + if ($Data.rdc_choice_$nrdc eq "SANI") then + evaluate ($Data.flags.sani = true) + evaluate ($restfile="RUN:data/rdcs/rdc"+encode($nrdc)+".tbl") + evaluate ($inisani=1) + sani + class $cln + force 0.0 + potential square + @@$restfile + end + end if + if ($Data.rdc_choice_$nrdc eq "XRDC") then + evaluate ($Data.flags.xrdc = true) + evaluate ($restfile="RUN:data/rdcs/rdc"+encode($nrdc)+".tbl") + evaluate ($inixrdc=1) + xrdc + class $cln + force 0.0 + @@$restfile + end + end if + if ($Data.rdc_choice_$nrdc eq "VANGLE") then + evaluate ($Data.flags.vean = true) + evaluate ($restfile="RUN:data/rdcs/rdc"+encode($nrdc)+".tbl") + evaluate ($inivean = 1) + if ($Data.rdc_firstIt_$nrdc le $Iteration) then + vean + class $cln + force 0.0 0.0 + @@$restfile + end + end if + end if + end if + end if + evaluate ($nrdc = $nrdc + 1) +end loop rdc + +evaluate ($tensread = false) +if ($Data.flags.xrdc = true) then + noe + class tens + @@$tensor_tbl + potential tens square + scale tens 500.0 + end + evaluate ($tensread = true) +end if + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!PCS restraints: +xpcs reset nres=5000 end +evaluate ($npcs=1) +while ($npcs <= $Data.numpcs) loop pcs + if ($Data.pcs_lastit_$npcs ge $Iteration) then + if ($Data.pcs_firstit_$npcs le $Iteration) then + if ($Data.pcs_choice_$npcs eq "XPCS") then + evaluate ($Data.flags.xpcs = true) + evaluate ($restfile="RUN:data/pcs/pcs"+encode($npcs)+".tbl") + evaluate ($cln="pc"+encode($npcs)) + evaluate ($inixpcs=1) + xpcs + class $cln + force 0.0 + @@$restfile + end + end if + end if + end if + evaluate ($npcs= $npcs + 1) +end loop pcs + +if ($Data.flags.xpcs = true) then + if ($tensread eq FALSE) then + noe + class tens + @@$tensor_tbl + potential tens square + scale tens 500.0 + end + end if +end if + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!DANI restraints: + +evaluate ($ndani=1) +dani reset nres=5000 end +while ($ndani <= $Data.numdani) loop dani + if ($Data.dan_lastit_$ndani ge $Iteration) then + if ($Data.dan_firstit_$ndani le $Iteration) then + if ($Data.dan_choice_$ndani eq "DANI") then + evaluate ($Data.flags.dani = true) + evaluate ($restfile="RUN:data/dani/dani"+encode($ndani)+".tbl") + evaluate ($cln="da"+encode($ndani)) + evaluate ($inidani=1) + dani + class $cln + force 0.0 + potential square + @@$restfile + end + end if + end if + end if + evaluate ($ndani = $ndani + 1) +end loop dani diff --git a/src/haddock/modules/flexref/cns/read_noes.cns b/src/haddock/modules/flexref/cns/read_noes.cns new file mode 100644 index 000000000..c6a5e121c --- /dev/null +++ b/src/haddock/modules/flexref/cns/read_noes.cns @@ -0,0 +1,90 @@ +! read_noes.cns +! Read distance restraints +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + +!module(Iteration; Data; count;) + + +noe + reset + nrestraints = 12000000 ! allocate space for NOEs + ceiling 1000 +end + +!display reading NEWIT:unambig.tbl in iteration &iteration with option $Data.unamb_firstit +!display reading data/unambig.tbl in iteration &iteration with option $Data.unamb_firstit + + +if ($Data.amb_firstit le &iteration) then +! evaluate ($filenam0 = "NEWIT:ambig.tbl_" + encode($count)) + evaluate ($filenam0="data/ambig.tbl_" + encode($count)) + fileexist $filenam0 end + if ($result eq false) then +! evaluate ($filenam0 = "NEWIT:ambig.tbl") + evaluate ($filenam0 = "data/ambig.tbl") + end if + noe class ambi @@$filenam0 end +end if + +if ($Data.unamb_firstit le &iteration) then +! noe class dist @@NEWIT:unambig.tbl end + fileexist $unambig_fname end + if ($result eq true) then + noe class dist @@$unambig_fname end + end if +end if + +if ($Data.hbond_firstit le &iteration) then + if ($Data.hbonds_on eq true) then +! noe @@$hbond_fname end + fileexist $hbond_fname end + if ($result eq true) then +! noe @@$hbond_fname end + noe @@$hbond_fname end + end if + end if +end if + +noe + averaging * sum + potential * soft + scale * 1.0 + sqconstant * 1.0 + sqexponent * 2 + soexponent * 1 + rswitch * 1.0 + sqoffset * 0.0 + asymptote * 2.0 + msoexponent * 1 + masymptote * -0.1 + mrswitch * 1.0 + avexpo hbond 20 +end + +if ($Data.waterdock eq true) then + if (&iteration eq 0) then + if ($Data.solvate_method eq "restraints") then + evaluate ($nchain=0) + while ($nchain < $Data.ncomponents) loop nloop1 + evaluate ($nchain = $nchain + 1) + evaluate ($watersegname_$nchain="WA" + encode($nchain)) + noe class amwa end + for $atom_id in id ((resn WAT or resn HOH or resn TIP*) and name OH2 and segid $watersegname_$nchain and not store5) loop waterrestraint + noe + assi (segid $toppar.prot_segid_$nchain and (resn arg or resn glu or resn lys or resn asp or resn tyr) and ((id $atom_id) around $Data.water_restraint_cutoff)) + (id $atom_id) $Data.water_restraint_cutoff $Data.water_restraint_cutoff 0.0 + end + end loop waterrestraint + end loop nloop1 + end if + end if +end if diff --git a/src/haddock/modules/flexref/cns/read_struc-cg.cns b/src/haddock/modules/flexref/cns/read_struc-cg.cns new file mode 100644 index 000000000..b9d25a751 --- /dev/null +++ b/src/haddock/modules/flexref/cns/read_struc-cg.cns @@ -0,0 +1,24 @@ +! +! Change segid of CG structure and read AA topology file +! +if ($iteration = 2) then + evaluate ($nchain=0) + while ($nchain < $data.ncomponents) loop nloop1 + evaluate ($nchain = $nchain + 1) + if ($toppar.cg_$nchain eq true) then + evaluate ($newseg = $Toppar.prot_segid_$nchain + "CG") + do (segid = $newseg) (segid $Toppar.prot_segid_$nchain) + evaluate($psf_infile_$nchain= "RUN:begin-aa/" + $Toppar.prot_root_$nchain + ".psf") + structure @@$psf_infile_$nchain end + end if + end loop nloop1 +end if + +igroup + interaction (not (resn ANI or resn DAN or resn XAN)) + (not (resn ANI or resn DAN or resn XAN)) weight * 1 end + interaction (resn ANI or resn DAN or resn XAN) + (resn ANI or resn DAN or resn XAN) weight * 1 vdw 0.0 elec 0.0 end +end + +inline @RUN:charge-beads-interactions.cns diff --git a/src/haddock/modules/flexref/cns/read_struc.cns b/src/haddock/modules/flexref/cns/read_struc.cns new file mode 100644 index 000000000..e828d0e4c --- /dev/null +++ b/src/haddock/modules/flexref/cns/read_struc.cns @@ -0,0 +1,198 @@ +! read_struc.cns + +! create and set the dummy atoms if centroids are required in rigid body stage +if ($Data.flags.centroids = true) then + if ($iteration = 0) then +! @RUN:centroids_create.cns(ncomponents=$Data.ncomponents; Toppar=$Toppar;) + @RUN:centroids_create.cns + @RUN:centroids_initialize.cns + end if + if ($iteration = 1) then + if ($saprotocol.expand = true) then +! @RUN:centroids_create.cns(ncomponents=$Data.ncomponents; Toppar=$Toppar;) + @RUN:centroids_create.cns + @RUN:centroids_initialize.cns + delete sele=(name MAP) end + end if + end if +end if + +!for the rdc restraints: +if ($Data.flags.sani = true) then + topology @@$top_axis end + parameter @@$par_axis end + structure @@$tensor_psf end +end if +eval ($xtensor = false) +if ($Data.flags.xrdc = true) then + eval ($xtensor = true) +end if +if ($Data.flags.xpcs = true) then + eval ($xtensor = true) +end if +if ($xtensor = true) then + topology @@$top_axis end + parameter @@$par_axis end + structure @@$tensor_para_psf end +end if +if ($Data.flags.dani = true) then + topology @@$top_axis_dani end + parameter @@$par_axis end + structure @@$tensor_dani_psf end +end if + +!read the parameter files: +if ($toppar.par_nonbonded = "") then + evaluate ($toppar.par_nonbonded = "OPLSX") +end if +evaluate ($par_nonbonded = $toppar.par_nonbonded) + +! CG not supported yet +!eval($nchain1= 1) +!eval($coarse = false) +!while ($nchain1 <= $data.ncomponents) loop cloop1 +! evaluate ($par_cg_$nchain1 = false) +! evaluate ($parstatus_cg_$nchain1 = false) +! if ($toppar.cg_$nchain1 = true) then +! eval($coarse = true) +! if ( $iteration < 2) then +! evaluate ($par_nonbonded_$nchain1 = "RUN:toppar/" + $toppar.prot_cg_par_$nchain1) +! else +! evaluate ($par_nonbonded_$nchain1 = "RUN:toppar/" + $toppar.prot_par_$nchain1) +! evaluate ($par_cg_$nchain1 = true) +! evaluate ($par_cg_nonbonded_$nchain1 = "RUN:toppar/" + $toppar.prot_cg_par_$nchain1) +! end if +! else +! evaluate ($par_nonbonded_$nchain1 = "RUN:toppar/" + $toppar.prot_par_$nchain1) +! end if +! eval($nchain1 = $nchain1 + 1) +!end loop cloop1 +! +!eval($nchain1= 0) +!while ($nchain1 < $data.ncomponents) loop cloop1 +! eval($nchain1 = $nchain1 + 1) +! eval($parstatus_$nchain1 = true) +!end loop cloop1 +! +!eval($nchain1= 1) +!while ($nchain1 < $data.ncomponents) loop cloop2 +! eval($nchain2 = $nchain1 + 1) +! while ($nchain2 <= $data.ncomponents) loop cloop3 +! if ($par_nonbonded_$nchain2 eq $par_nonbonded_$nchain1) then +! eval($parstatus_$nchain2 = false) +! end if +! eval($nchain2 = $nchain2 + 1) +! end loop cloop3 +! eval($nchain1 = $nchain1 + 1) +!end loop cloop2 +! +!parameter @@$par_nonbonded_1 end +!eval($nchain1= 2) +!while ($nchain1 <= $data.ncomponents) loop cloop1 +! if ($parstatus_$nchain1 = true) then +! parameter @@$par_nonbonded_$nchain1 end +! end if +! eval($nchain1 = $nchain1 + 1) +!end loop cloop1 + +parameter + nbonds + nbxmod=5 atom cdie shift + cutnb=9.5 ctofnb=8.5 ctonnb=6.5 eps=1.0 e14fac=0.4 inhibit 0.25 + wmin=0.5 tolerance 0.5 + end +end + +!if ($coarse eq true) then +! eval($nchain1= 1) +! while ($nchain1 < $data.ncomponents) loop cloop1 +! eval($nchain2 = $nchain1 + 1) +! if ($par_cg_$nchain1 eq true) then +! if ($nchain1 = 1) then +! eval($parstatus_cg_$nchain1 = true) +! end if +! while ($nchain2 <= $data.ncomponents) loop cloop2 +! if ($par_cg_$nchain2 eq true) then +! if ($par_cg_nonbonded_$nchain2 eq $par_cg_nonbonded_$nchain1) then +! eval($parstatus_cg_$nchain2 = false) +! end if +! end if +! eval($nchain2 = $nchain2 + 1) +! end loop cloop2 +! else +! eval($parstatus_cg_$nchain1 = false) +! end if +! eval($nchain1 = $nchain1 + 1) +! end loop cloop1 +! +! eval($nchain1= 1) +! while ($nchain1 <= $data.ncomponents) loop cloop1 +! if ($parstatus_cg_$nchain1 = true) then +! parameter @@$par_cg_nonbonded_$nchain1 end +! end if +! eval($nchain1 = $nchain1 + 1) +! end loop cloop1 +! +! if ( $iteration < 2) then +! parameter +! nbonds +! nbxmod=5 atom cdie shift +! cutnb=15.0 ctofnb=14.0 ctonnb=12.0 eps=1.0 e14fac=0.4 inhibit 0.25 +! wmin=0.5 tolerance 0.5 +! end +! end +! end if +!end if + +!! this is required for protein-DNA complexes +!! bur not needed if a DNA param file has already been defined +!if ( &BLANK%nucl_parameter_infile = false ) then +! eval($dnaparam = "RUN:toppar/" + &nucl_parameter_infile) +! eval($read_dna_param = true) +! eval($nchain1 = 1) +! while ($nchain1 <= $data.ncomponents) loop cloop1 +! if ($par_nonbonded_$nchain1 = $dnaparam) then +! eval($read_dna_param = false) +! end if +! eval($nchain1 = $nchain1 + 1) +! end loop cloop1 +! if ($read_dna_param = true) then +! param @@$dnaparam end +! end if +!end if +! +!! and the same for the CG version +!if ($coarse eq true) then +! if ( &BLANK%nucl_cgparameter_infile = false ) then +! eval($dnacgparam = "RUN:toppar/" + &nucl_cgparameter_infile) +! eval($read_dna_cgparam = true) +! eval($nchain1 = 1) +! while ($nchain1 <= $data.ncomponents) loop cloop1 +! if ($par_cg_nonbonded_$nchain1 = $dnacgparam) then +! eval($read_dna_cgparam = false) +! end if +! eval($nchain1 = $nchain1 + 1) +! end loop cloop1 +! if ($read_dna_cgparam = true) then +! param @@$dnacgparam end +! end if +! end if +!end if + +!parameter @@RUN:toppar/ion.param end +!parameter @@RUN:toppar/ligand.param end +!parameter @@RUN:toppar/fragment_probes.param end +!parameter @@RUN:toppar/hemes-allhdg.param end +!parameter @@RUN:toppar/water-allhdg5-4.param end +!parameter @@RUN:toppar/shape.param end + +igroup + interaction (not (resn ANI or resn DAN or resn XAN or resn DUM or resn SHA)) + (not (resn ANI or resn DAN or resn XAN or resn DUM or resn SHA)) weight * 1 end + interaction (resn ANI or resn DAN or resn XAN or resn DUM or resn DUM) + (resn ANI or resn DAN or resn XAN or resn DUM or resn DUM) weight * 1 vdw 0.0 elec 0.0 end + interaction (resn SHA) (not resn SHA) weight * 0 end + +end + +inline @RUN:charge-beads-interactions.cns diff --git a/src/haddock/modules/flexref/cns/read_water1.cns b/src/haddock/modules/flexref/cns/read_water1.cns new file mode 100644 index 000000000..1a6273953 --- /dev/null +++ b/src/haddock/modules/flexref/cns/read_water1.cns @@ -0,0 +1,41 @@ +! read_water1.cns +! Read water coordinates from solvated docking +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + +evaluate ($nchain=0) +while ($nchain < $data.ncomponents) loop nloop1 + evaluate ($nchain = $nchain + 1) + evaluate ($watersegname_$nchain="WA" + encode($nchain)) +end loop nloop1 + + +if ($data.waterdock eq true) then + noe reset end + rest dihe reset end + evaluate($watercoorfile = $file - ".pdb" + "_water.pdbw") + fileexist $watercoorfile end + evaluate ($waterfileexist=$result) + if ($waterfileexist eq true) then + if ($iteration < 2) then + evaluate($sol_topology_infile="RUN:/toppar/water-allhdg5-4.top") + topology @@$sol_topology_infile end + end if + segment + chain + separate-by-segid = true + coor @@$watercoorfile + end + end + coor @@$watercoorfile + ident (store5) (not all) + end if + +end if diff --git a/src/haddock/modules/flexref/cns/rebuild-unknown.cns b/src/haddock/modules/flexref/cns/rebuild-unknown.cns new file mode 100644 index 000000000..f2bc6f1b5 --- /dev/null +++ b/src/haddock/modules/flexref/cns/rebuild-unknown.cns @@ -0,0 +1,238 @@ + ! rebuild-unknown.cns +! Rebuild unknown atoms in the context of the complex +! +! *********************************************************************** +! * Copyright 2003-2017 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! +show sum(1) (store9) +evaluate ($tobuild=$result) +display REBUILDING $tobuild ATOMS + +energy end + +if ( $tobuild > 0 ) then + + fix selection=(not(store9)) end + + show sum(1) (store9) + evaluate ($moving=$result) + + if ( $moving > 0 ) then + for $id in id (tag and byres(store9)) loop avco + + show ave(x) (byres(id $id) and known) + evaluate ($ave_x=$result) + show ave(y) (byres(id $id) and known) + evaluate ($ave_y=$result) + show ave(z) (byres(id $id) and known) + evaluate ($ave_z=$result) + + do (x=$ave_x) (byres(id $id) and store9) + do (y=$ave_y) (byres(id $id) and store9) + do (z=$ave_z) (byres(id $id) and store9) + + end loop avco + + do (x=x+2*random(1.0)-1) (store9) + do (y=y+2*random(1.0)-1) (store9) + do (z=z+2*random(1.0)-1) (store9) + + {- start parameter for the side chain building -} + parameter + nbonds + rcon=20. nbxmod=-2 repel=0.9 wmin=0.1 tolerance=1. + rexp=2 irexp=2 inhibit=0.25 + end + end + + {- Friction coefficient, in 1/ps. -} + do (fbeta=100) (store9) + + evaluate ($bath=300.0) + evaluate ($nstep=500) + evaluate ($timestep=0.0005) + + do (refy=mass) (store9) + + do (mass=20) (store9) + + igroup interaction + (store9) (store9 or known) + end + + {- turn on initial energy terms -} + flags exclude * include bond angle vdw end + + minimize powell nstep=50 nprint=10 end + + do (vx=maxwell($bath)) (store9) + do (vy=maxwell($bath)) (store9) + do (vz=maxwell($bath)) (store9) + + flags exclude vdw include impr end + + dynamics cartesian + nstep=50 + timestep=$timestep + tcoupling=true temperature=$bath + nprint=$nstep + cmremove=false + end + + flags include vdw end + + minimize powell nstep=50 nprint=10 end + + do (vx=maxwell($bath)) (store9) + do (vy=maxwell($bath)) (store9) + do (vz=maxwell($bath)) (store9) + + dynamics cartesian + nstep=50 + timestep=$timestep + tcoupling=true temperature=$bath + nprint=$nstep + cmremove=false + end + + parameter + nbonds + rcon=2. nbxmod=-3 repel=0.75 + end + end + + minimize powell nstep=100 nprint=25 end + + do (vx=maxwell($bath)) (store9) + do (vy=maxwell($bath)) (store9) + do (vz=maxwell($bath)) (store9) + + dynamics cartesian + nstep=$nstep + timestep=$timestep + tcoupling=true temperature=$bath + nprint=$nstep + cmremove=false + end + + {- turn on all energy terms -} + flags include dihe ? end + + {- set repel to ~vdw radii -} + parameter + nbonds + repel=0.89 + end + end + + minimize powell nstep=500 nprint=50 end + + flags exclude * include bond angl impr dihe vdw elec end + + {- return masses to something sensible -} + do (mass=refy) (store9) + + do (vx=maxwell($bath)) (store9) + do (vy=maxwell($bath)) (store9) + do (vz=maxwell($bath)) (store9) + + dynamics cartesian + nstep=$nstep + timestep=$timestep + tcoupling=true temperature=$bath + nprint=$nstep + cmremove=false + end + + {- some minimisation -} + minimize powell + nstep=500 + drop=40.0 + nprint=50 + end + + {- turn on electrostatic and proper non-bonded-} + parameter + nbonds + repel=0 + nbxmod=5 atom cdie shift + cutnb=9.5 ctofnb=8.5 ctonnb=6.5 eps=10.0 e14fac=0.4 inhibit 0.25 + wmin=0.5 + tolerance 0.5 + end + end + + flags exclude * include bond angl impr dihe vdw elec end + + minimize powell + nstep=500 + drop=40.0 + nprint=50 + end + + do (vx=maxwell($bath)) (store9) + do (vy=maxwell($bath)) (store9) + do (vz=maxwell($bath)) (store9) + + dynamics cartesian + nstep=$nstep + timestep=$timestep + tcoupling=true temperature=$bath + nprint=$nstep + cmremove=false + end + + {- some final minimisation -} + minimize powell + nstep=500 + drop=40.0 + nprint=50 + end + + print thres=0.02 bonds + print thres=5. angles + + end if + + energy end + + @RUN:flex_segment_back.cns + fix sele=((attr store5 = 0) and not name H*) end + minimize powell + nstep=50 + drop=40.0 + nprint=5 + end + fix sele=(not all) end + + energy end + + print thres=0.02 bonds + print thres=5. angles + flag excl noe cdih end + + do (q=1.0) (store9) + end if + + fix selection=( none ) end + energy end + evaluate ($bonded = $bond + $angl + $impr) + if ($bonded > 10000) then + minimize powell nstep=100 drop=10.0 nprint=10 end + end if + if ($bonded > 10000) then + energy end + evaluate ($bonded = $bond + $angl + $impr) + evaluate ($dispfile = $coor_outfile - ".pdb" + "_" + encode($nstruc) + ".warn") + set display=$dispfile end + display WARNING: the bonded energy is very high: + display Ebonded-total=$bonded Ebond=$bond Eangl=$angl Eimpr=$impr + display Something is possibly wrong with your input structure + close $dispfile end + end if + diff --git a/src/haddock/modules/flexref/cns/refine.inp b/src/haddock/modules/flexref/cns/refine.inp new file mode 100644 index 000000000..bab82adc3 --- /dev/null +++ b/src/haddock/modules/flexref/cns/refine.inp @@ -0,0 +1,1738 @@ +! refine.inp +! The core docking script of HADDOCK performing rigid-body docking +! and semi-flexible refinement in torsion angle space +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + +@RUN:initialize.cns(iteration=$iteration;) + +@NEWIT:iteration.cns(iteration=$iteration;) + +@RUN:run.cns( +iteration =$iteration; +filenames =$filenames; +Data =$Data; +iterations=$iterations; +saprotocol=$saprotocol; +refine =$refine; +toppar =$toppar; +analysis =$analysis;) + +evaluate ($log_level=quiet) +!evaluate ($log_level=verbose) + +if ( $log_level = verbose ) then + set message=normal echo=on end +else + set message=off echo=off end +end if + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!The next line will be changed automatically from python: +evaluate ($whichMD="torsion") +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!The next line will be changed automatically from python: +evaluate ($count = 1) +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!The next line will be changed automatically from python: +evaluate ($file = "") +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +!reads in structure, coordinates and parameter files +@RUN:read_struc.cns + +flag include bond angle impr vdw end + +if ($Data.flags.dihed eq true) then + flag include dihed end +end if + +do (fbeta=$Saprotocol.fbeta) (all) +do (mass=$Saprotocol.mass) (all) +do (mass=1000) (resn ani) +do (mass=1000) (resn xan) +do (mass=1000) (resn dan) + +evaluate ($end_count = $iterations.ini_count + $iterations.structures - 1) + +if ($Data.noecv eq true) then + if ($iteration = 0) then + evaluate ($npart = 1 + mod($count,$Data.ncvpart)) + evaluate ($fileseed="NEWIT:" + $Filenames.fileroot + "_" + encode($count) + ".seed") + evaluate ($seed = max($iteration,1)*$count*$Saprotocol.iniseed) + else + evaluate ($fileseed= $file - ".pdb" + ".seed") + @@$fileseed (seed=$seed;npart=$npart ) + evaluate ($fileseed="NEWIT:" + $Filenames.fileroot + "_" + encode($count) + ".seed") + evaluate ($num = $count + $iterations.structures) + evaluate ($file_r_seed="NEWIT:" + $Filenames.fileroot + "_" + encode($num) + ".seed") + if ($saprotocol.rotate180_it1 eq true) then + set display=$file_r_seed end + display module(seed;npart) + display define ( + display currentseed = $seed; + display currentpart = $npart; + display ) + display evaluate (&seed=¤tseed) + display evaluate (&npart=¤tpart) + close $file_r_seed end + end if + end if + set display=$fileseed end + display module(seed;npart) + display define ( + display currentseed = $seed; + display currentpart = $npart; + display ) + display evaluate (&seed=¤tseed) + display evaluate (&npart=¤tpart) + close $fileseed end +else + evaluate ($seed = max($iteration,1)*$count*$Saprotocol.iniseed) +end if +set seed $seed end + +coor init end +coor @@$file + +! reinitialize the DUM residue +if ($Data.flags.centroids = true) then + if ($iteration = 0) then + @RUN:centroids_initialize.cns + end if +end if + +! check for the presence of ions and add covalent bond +if ($iteration = 1) then + @RUN:covalions.cns +end if + +{* Find CoM of protein *} +show ave (x) (name CA or name BB or name C1') +evaluate ($xcent=$result) +show ave (y) (name CA or name BB or name C1') +evaluate ($ycent=$result) +show ave (z) (name CA or name BB or name C1') +evaluate ($zcent=$result) + +coor select (not known and resn ani) end +if ($select gt 0) then + coor @@$tensor_pdb + + {* Find CoM of protein and move tensor 100 A away *} + show ave (x) (name CA or name BB or name C1') + evaluate ($xcent=$result) + show ave (y) (name CA or name BB or name C1') + evaluate ($ycent=$result) + show ave (z) (name CA or name BB or name C1') + evaluate ($zcent=$result) + do (x=x+$xcent+100) (resn ANI) + do (y=y+$ycent+100) (resn ANI) + do (z=z+$zcent+100) (resn ANI) + evaluate ($rantens = true) +else + evaluate ($rantens = false) +end if + +coor select (not known and resn xan) end +if ($select gt 0) then + coor @@$tensor_para_pdb + evaluate ($rantens_para = true) +else + evaluate ($rantens_para = false) +end if + +coor select (not known and resn dan) end +if ($select gt 0) then + coor @@RUN:toppar/tensor_dani.pdb + + {* Find CoM of protein and move tensor 100 A away *} + show ave (x) (name CA or name BB or name C1') + evaluate ($xcent=$result) + show ave (y) (name CA or name BB or name C1') + evaluate ($ycent=$result) + show ave (z) (name CA or name BB or name C1') + evaluate ($zcent=$result) + do (x=x+$xcent+100) (resn DAN) + do (y=y+$ycent+100) (resn DAN) + do (z=z+$zcent+100) (resn DAN) + evaluate ($rantens_dani = true) +else + evaluate ($rantens_dani = false) +end if + +!catch possible bound water and set high T steps to 0 +coor select ((resn WAT or resn HOH or resn TIP*)) end +if ($select gt 0) then + evaluate ($SaProtocol.initiosteps = 0) + evaluate ($SaProtocol.cool1_steps = 0) + evaluate ($refine.keepwater = true) +end if + +do (refx=x) (all) +do (refy=y) (all) +do (refz=z) (all) + +!set the energy flags: +inline @RUN:setflags.cns + +!read all the experimental Data: +evaluate ($lcc = 0) +set seed $seed end +set message=normal echo=on end +if ($data.waterdock eq false) then + inline @RUN:read_data.cns + if ($data.flags.em = true) then + @RUN:em_read_data.cns(Data=$data;) + end if + + if ($Data.flags.centroids = true) then + if ($iteration = 0) then + @RUN:centroids_set_restraints.cns + end if + end if +end if + +{* ======================= reset coordinates and proceed *} + +do (x = refx) (all) +do (y = refy) (all) +do (z = refz) (all) + +inline @RUN:read_water1.cns +if ($data.waterdock eq true) then + inline @RUN:water_rest.cns + set seed $seed end + set message=normal echo=on end + inline @RUN:read_data.cns +end if + +!set the energy flags: +inline @RUN:setflags.cns + +{* random removal of restaints ================================== *} +if ($Data.noecv eq true) then + set message=on echo=on end + noe cv $npart ? end +else + evaluate ($npart = 0) +end if + +if ( $log_level = verbose ) then + set message=normal echo=on end +else + set message=off echo=off end +end if + +!set the rdc coefficients: +evaluate ($nrdc=1) +while ($nrdc <= $data.numrdc) loop rdc + evaluate ($cln = "rd" + encode($nrdc) ) + if ($Data.rdc_choice_$nrdc eq "SANI") then + sani class $cln coeff 0.0 $Data.rdc_d_$nrdc $Data.rdc_r_$nrdc end + end if + if ($Data.rdc_choice_$nrdc eq "XRDC") then + xrdc class $cln coeff $Data.rdc_d_$nrdc $Data.rdc_r_$nrdc end + end if + evaluate ($nrdc=$nrdc+1) +end loop rdc + +!set the pcs coefficients: +evaluate ($npcs=1) +while ($npcs <= $data.numpcs) loop pcs + if ($Data.pcs_choice_$npcs eq "XPCS") then + evaluate ($cln = "pc"+encode($npcs) ) + xpcs class $cln coeff $Data.pcs_d_$npcs $Data.pcs_r_$npcs end + end if + evaluate ($npcs=$npcs+1) +end loop pcs + +! set dani coefficients: +evaluate ($ndani=1) +while ($ndani <= $data.numdani) loop dani + if ($Data.dan_choice_$ndani eq "DANI") then + evaluate ($cln = "da"+encode($ndani) ) + dani class $cln coeff $Data.dan_tc_$ndani $Data.dan_anis_$ndani $Data.dan_r_$ndani $Data.dan_wh_$ndani $Data.dan_wn_$ndani end + end if + evaluate ($ndani=$ndani+1) +end loop dani + + +{* ============================================================== *} +eval ($anisotropy = false) +if ($Data.flags.sani eq true) then + flag incl sani end + eval ($anisotropy = true) +else + flag excl sani end +end if + +if ($Data.flags.xrdc eq true) then + flag incl xrdc end + eval ($anisotropy = true) +else + flag excl xrdc end +end if + +if ($Data.flags.xpcs eq true) then + flag incl xpcs end + eval ($anisotropy = true) +else + flag excl xpcs end +end if + +if ($Data.flags.vean eq true) then + flag incl vean end +else + flag excl vean end +end if + +if ($Data.flags.dani eq true) then + flag incl dani end + eval ($anisotropy = true) +else + flag excl dani end +end if + +! determine whether the final models should be reoriented along their principal +! axes before writing to file in it0 and it1 +eval($reorient = true) +if ($data.flags.zres = true) then + eval($reorient = false) +elseif ($data.flags.em = true) then + eval($reorient = false) +elseif ($data.flags.centroids = true) then + eval($reorient = false) +end if +! also check for fixed molecules +evaluate ($ncount = 0) +while ($ncount < $data.ncomponents) loop orientmol + evaluate ($ncount = $ncount + 1) + if ($Toppar.fix_origin_$ncount eq true) then + eval($reorient = false) + end if +end loop orientmol + + +eval ($nchain1 = 0) +while ($nchain1 < $data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + if ($Toppar.fix_origin_$nchain1 eq true) then + eval($reorient = false) + end if +end loop nloop1 + +evaluate ($numnoe = 0) + +{*======================= random orientations and rigid body minimisation *} +if ($iteration = 0) then + if ($SaProtocol.rigidmini eq true) then + !Make sure that at least as many distance restraints are successfully + !read as the number of partitions for cross-validation + evaluate ($numnoe = 0) + noe ? end + if ($NUMNOE = 0) then + if ($Data.ncomponents > 1) then + if ($Data.surfrest eq FALSE) then + if ($Data.cmrest eq FALSE) then + if ($Data.ranair eq FALSE) then + if ($Data.flags.rg eq FALSE) then + evaluate ($errfile = "RUN:WARNING") + fileexist $errfile end + if ($result eq false) then + set display=$errfile end + display TOTAL NUMBER OF DISTANCE RESTRAINTS FOR RIGID BODY DOCKING IS ZERO! + display CONTROL YOUR PARAMETER SETTINGS AND RESTRAINT DEFINITIONS + display STRUCTURE NUMBER $count + close $errfile end + end if + end if + end if + end if + end if + end if + evaluate ($Data.ncvpart = 1) + evaluate ($Data.noecv = FALSE) + end if + end if + + if ($NUMNOE lt $Data.ncvpart) then + noe part=1 end + evaluate ($Data.ncvpart = 1) + evaluate ($Data.noecv = FALSE) + end if + + flag excl bond angl dihe impr zhar end + + if ($Data.flags.elec0 eq true) then + flag include elec end + if ($Data.dielec0 eq rdie) then + parameter nbonds eps=$Data.epsilon0 rdie shift switch end end + ! shift statement needed first to activate switch (CNS bug?) + else + parameter nbonds eps=$Data.epsilon0 cdie shift end end + end if + parameter nbonds ? end end + else + evaluate ($elec=0.0) + flag exclude elec end + end if + + flag excl cdih end + + if ($Data.ranair eq true) then + if ($Data.ncomponents > 2) then + evaluate ($errfile = "RUN:FAILED") + fileexist $errfile end + if ($result eq false) then + set display=$errfile end + display ========= Unsupported option =========== + display Random definition of AIRs with more than + display two molecules currently unsupported + display ======================================== + close $errfile end + end if + stop + end if + evaluate ($Data.noecv = false) + noe + reset + nrestraints = 100000 ! allocate space for NOEs + ceiling 1000 + end + @RUN:randomairs.cns + + !Read back in hbond data + if ($Data.hbond_lastit ge &iteration) then + if ($Data.hbond_firstit le &iteration) then + if ($Data.hbonds_on eq true) then + noe @@$hbond_fname end + end if + end if + end if + + noe + averaging * sum + potential * soft + scale * 1.0 + sqconstant * 1.0 + sqexponent * 2 + soexponent * 1 + rswitch * 1.0 + sqoffset * 0.0 + asymptote * 2.0 + msoexponent * 1 + masymptote * -0.1 + mrswitch * 1.0 + avexpo hbond 20 + end + inline @RUN:water_rest.cns + end if + + @RUN:symmultimer.cns + + @RUN:zrestraining.cns + + if ($Data.flags.rg eq true ) then + collapse + force $Data.krg_hot + target $Data.rgtarg + sele (not (resn ANI or resn XAN or resn WAT or resn HOH or resn TIP* or resn DUM or resh SHA)) + end + end if + + if ($Data.cmrest eq true ) then + @RUN:cm-restraints.cns + end if + + if ($Data.surfrest eq true ) then + @RUN:surf-restraints.cns + end if + + if ($Data.flags.centroids eq true) then + @RUN:centroids_initialize.cns + @RUN:centroids_set_map.cns + noe scale centroid $data.centroids.kscale end + end if + + flag excl ncs end + evaluate ($nrig = 0) + evaluate ($nfirst = 1) + evaluate ($bestair = 0) + + if ($SaProtocol.rigidmini eq true) then + while ($nrig < $SaProtocol.ntrials) loop trials + + evaluate ($nrig = $nrig + 1) + + if ( $log_level = verbose ) then + set message=normal echo=on end + else + set message=off echo=off end + end if + + ! random placement of molecules + if ($SaProtocol.randorien eq true) then + @RUN:separate.cns(Data=$Data; Toppar=$Toppar) + @RUN:random_rotations.cns + if ($Data.flags.centroids eq true) then + ! place the centroids on their positions + @RUN:centroids_initialize.cns + @RUN:centroids_set_map.cns + ! place the molecules around the centroids + @RUN:centroids_init_placement.cns + end if + end if + + if ($Data.flags.sani eq true) then + coor @@$tensor_pdb + do (x = x + $xcent + 100) (resn ANI) + do (y = y + $ycent + 100) (resn ANI) + do (z = z + $zcent + 100) (resn ANI) + end if + + if ($Data.flags.dani eq true) then + coor @@RUN:toppar/tensor_dani.pdb + do (x=x+$xcent+100) (resn DAN) + do (y=y+$ycent+100) (resn DAN) + do (z=z+$zcent+100) (resn DAN) + end if + + if ($Data.flags.xrdc eq true) then + coor @@$tensor_para_pdb + do (x=x+$xcent+100) (resn XAN) + do (y=y+$ycent+100) (resn XAN) + do (z=z+$zcent+100) (resn XAN) + end if + + if ($Data.flags.xpcs eq true) then + coor @@$tensor_para_pdb + do (x=x+$xcent+100) (resn XAN) + do (y=y+$ycent+100) (resn XAN) + do (z=z+$zcent+100) (resn XAN) + end if + + evaluate ($unamb_scale = 1.0) + evaluate ($ambig_scale = 1.0) + evaluate ($hbond_scale = 1.0) + evaluate ($symm_scale = 1.0) + evaluate ($cont_scale = 0.0) + evaluate ($surf_scale = 0.0) + + noe + scale dist $unamb_scale + scale ambi $ambig_scale + scale hbon $hbond_scale + scale symm $symm_scale + scale contact $cont_scale + scale surface $surf_scale + end + + evaluate ($nrdc=1) + while ($nrdc <= $data.numrdc) loop rdc + evaluate ($vea_bor_scale_$nrdc = min($Data.ini_bor_hot_$nrdc,$Data.fin_bor_cool3_$nrdc)) + evaluate ($vea_cen_scale_$nrdc = min($Data.ini_cen_hot_$nrdc,$Data.fin_cen_cool3_$nrdc)) + evaluate ($cln = "rd"+encode($nrdc) ) + evaluate ($san_scale_$nrdc = min($Data.rdc_hot_$nrdc,$Data.rdc_cool3_$nrdc)) + if ($Data.flags.vean eq true) then + vean class $cln force 0.0 0.0 end + end if + if ($Data.flags.sani eq true) then + sani class $cln force 0.0 end + end if + if ($Data.flags.xrdc eq true) then + xrdc class $cln force 0.0 end + end if + evaluate ($nrdc = $nrdc + 1) + end loop rdc + + evaluate ($ndani=1) + while ($ndani <= $data.numdani) loop dani + evaluate ($dan_scale_$ndani = min($Data.dan_hot_$ndani,$Data.dan_cool3_$ndani)) + if ($Data.flags.dani eq true) then + evaluate ($cln = "da"+encode($ndani) ) + dani class $cln force 0.0 end + end if + evaluate ($ndani = $ndani + 1) + end loop dani + + if ($Data.flags.xpcs eq true) then + evaluate ($npcs=1) + while ($npcs <= $data.numpcs) loop pcs + evaluate ($pcs_scale_$npcs = min($Data.pcs_hot_$npcs,$Data.pcs_cool3_$npcs)) + evaluate ($cln = "pc"+encode($npcs) ) + xpcs class $cln force 0.0 end + evaluate ($npcs= $npcs + 1) + end loop pcs + end if + + evaluate ($kinter = $SaProtocol.inter_rigid) + @RUN:scale_inter_mini.cns + + + ! a few rounds of rotational rigid body minimization for each independent chain + evaluate ($imini = 0) + while ($imini le 4) loop rigmin + + if ($imini >= 1) then + evaluate ($paramin = false) + evaluate ($nrdc=1) + while ($nrdc <= $data.numrdc) loop rdc + evaluate ($vea_bor_scale_$nrdc = min($Data.ini_bor_hot_$nrdc,$Data.fin_bor_cool3_$nrdc)) + evaluate ($vea_cen_scale_$nrdc = min($Data.ini_cen_hot_$nrdc,$Data.fin_cen_cool3_$nrdc)) + evaluate ($san_scale_$nrdc = min($Data.rdc_hot_$nrdc,$Data.rdc_cool3_$nrdc)) + evaluate ($cln = "rd"+encode($nrdc) ) + if ($Data.flags.vean eq true) then + vean class $cln force $vea_bor_scale_$nrdc $vea_cen_scale_$nrdc end + evaluate ($vea_bor_scale_$nrdc = min(($vea_bor_scale_$nrdc * 2),$Data.fin_bor_cool3_$nrdc)) + evaluate ($vea_cen_scale_$nrdc = min(($vea_cen_scale_$nrdc * 2),$Data.fin_cen_cool3_$nrdc)) + end if + if ($Data.flags.sani eq true) then + sani class $cln force $san_scale_$nrdc end + evaluate ($san_scale_$nrdc = min($san_scale_$nrdc * 2,$Data.rdc_cool3_$nrdc)) + end if + if ($Data.flags.xrdc eq true) then + xrdc class $cln force $san_scale_$nrdc end + evaluate ($san_scale_$nrdc = min($san_scale_$nrdc * 2,$Data.rdc_cool3_$nrdc)) + evaluate ($paramin = true) + end if + evaluate ($nrdc = $nrdc + 1) + end loop rdc + + if ($Data.flags.sani eq true) then + if ($rantens eq true) then + @RUN:mini_tensor.cns + end if + end if + + if ($Data.flags.xpcs eq true) then + evaluate ($npcs=1) + while ($npcs <= $data.numpcs) loop pcs + evaluate ($cln = "pc"+encode($npcs) ) + xpcs class $cln force $pcs_scale_$npcs end + evaluate ($pcs_scale_$npcs = min($pcs_scale_$npcs * 2,$Data.pcs_cool3_$npcs)) + evaluate ($npcs= $npcs + 1) + end loop pcs + end if + + if ($paramin eq TRUE) then + if ($rantens_para eq true) then + @RUN:mini_tensor_para.cns + end if + end if + + if ($Data.flags.dani eq true) then + evaluate ($ndani=1) + while ($ndani <= $data.numdani) loop dani + evaluate ($cln = "da"+encode($ndani) ) + dani class $cln force $dan_scale_$ndani end + evaluate ($dan_scale_$ndani = min($dan_scale_$ndani * 2,$Data.dan_cool3_$ndani)) + evaluate ($ndani = $ndani + 1) + end loop dani + if ($rantens_dani eq true) then + @RUN:mini_tensor_dani.cns + end if + end if + + end if + + evaluate ($imini = $imini + 1) + eval ($ministeps = 500 * nint ($data.ncomponents/6 + 1)) + if ($SaProtocol.randorien eq true) then + flag excl vdw elec coll zhar end + end if + eval ($nchain1 = 0) + while ($nchain1 < $data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + if ($Toppar.fix_origin_$nchain1 eq false) then + fix sele=(not all) end + fix sele=( not (segid $Toppar.prot_segid_$nchain1 or segid $watersegname_$nchain1) and not name OO) end + minimize rigid + group (segid $Toppar.prot_segid_$nchain1 or segid $watersegname_$nchain1 and not name MAP) + translation=false + nstep $ministeps + drop 10.0 + tole 0.1 + nprint 10 + end + end if + end loop nloop1 + fix sele=(not all) end + + flag include vdw end + if ($Data.flags.elec0 eq true) then + flag include elec end + end if + + evaluate ($unamb_scale = min(($unamb_scale * 2),$Data.unamb_cool3)) + evaluate ($ambig_scale = min(($ambig_scale * 2),$Data.amb_cool3)) + evaluate ($hbond_scale = min(($hbond_scale * 2),$Data.hbond_cool3)) + evaluate ($symm_scale = min(($symm_scale * 2),$Data.ksym)) + + noe + scale dist $unamb_scale + scale ambi $ambig_scale + scale hbon $hbond_scale + scale symm $symm_scale + if ($data.flags.centroids = true) then + scale centroid $data.centroids.kscale end + end if + end + + end loop rigmin + + evaluate ($unamb_scale_store = $unamb_scale) + evaluate ($ambig_scale_store = $ambig_scale) + evaluate ($hbond_scale_store = $hbond_scale) + evaluate ($symm_scale_store = $symm_scale) + + flag include vdw end + if ($Data.flags.elec0 eq true) then + flag include elec end + end if + + if ($SaProtocol.rigidtrans eq true) then + + if ($data.waterdock eq true) then + if ($data.solvate_method ne "db") then + inline @RUN:waterdock_remove-water.cns + else + inline @RUN:db0.cns + end if + end if + + evaluate ($cont_scale = $Data.kcont) + evaluate ($surf_scale = $Data.ksurf) + noe + scale contact $cont_scale + scale surface $surf_scale + end + fix sele=(name OO and not resn XAN) end + minimize rigid + eval ($nchain1 = 0) + while ($nchain1 < $data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + if ($Toppar.fix_origin_$nchain1 eq false) then + group (segid $Toppar.prot_segid_$nchain1 or segid $watersegname_$nchain1 and not name MAP) + end if + translation=false + end loop nloop1 + nstep 1000 + nprint 10 + end + + if ($data.solvate_method eq "db") then + inline @RUN:db00.cns + end if + + energy end + + if ($Data.flags.rg eq true) then + flag include coll end + end if + + if ($Data.flags.zres eq true) then + flag incl zhar end + end if + + fix sele=(name OO and not resn XAN) end + eval ($ministeps = $SaProtocol.emstepstrans) + minimize rigid + eval ($nchain1 = 0) + while ($nchain1 < $data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + if ($Toppar.fix_origin_$nchain1 eq false) then + group (segid $Toppar.prot_segid_$nchain1 or segid $watersegname_$nchain1 and not name MAP) + end if + translation=true + end loop nloop1 + nstep $ministeps + nprint 10 + end + + energy end + + if ($data.waterdock eq true) then + if ($data.solvate_method eq "db") then + display MINIMIZATION ENERGY BEFORE: $grad $ener $vdw $elec + minimize rigid + eval ($nchain1 = 0) + while ($nchain1 < $data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + if ($Toppar.fix_origin_$nchain1 eq false) then + group (segid $Toppar.prot_segid_$nchain1 and not (resn WAT or resn HOH or resn TIP* or name MAP)) + end if + translation=true + end loop nloop1 + for $id in id ((resn WAT or resn HOH or resn TIP*) and name OH2 and (attr store5 ne 1)) loop miniwater + group (byres(id $id)) + end loop miniwater + translation=$data.transwater + nstep $ministeps + nprint 100 + end + display MINIMIZATION ENERGY AFTER: $grad $ener $vdw $elec + inline @RUN:db1.cns + end if + inline @RUN:waterdock_mini.cns + end if + + fix sele=(name OO and not resn XAN) end + minimize rigid + eval ($nchain1 = 0) + while ($nchain1 < $data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + if ($Toppar.fix_origin_$nchain1 eq false) then + group (segid $Toppar.prot_segid_$nchain1 and not (resn WAT or resn HOH or resn TIP* or name MAP)) + end if + translation=true + end loop nloop1 + for $id in id (segid WA* and (resn WAT or resn HOH or resn TIP*) and name OH2 and (attr store5 ne 1)) loop miniwater + group (byres(id $id)) + end loop miniwater + translation=true + nstep $ministeps + nprint 10 + end + energy end + + if ($data.waterdock eq true) then + inline @RUN:waterdock_mini.cns + end if + + fix sele=(not all) end + + if ($anisotropy eq true) then + fix sele=(not all) end + fix sele=(name OO and not resn XAN) end + minimize rigid + for $id in id ((resn ANI or resn DAN or resn XAN) and name OO) loop miniani + group (byres(id $id)) + translation=false + end loop miniani + translation=false + nstep 100 + drop 10.0 + nprint 10 + end + minimize rigid + eval ($nchain1 = 0) + while ($nchain1 < $data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + if ($Toppar.fix_origin_$nchain1 eq false) then + group (segid $Toppar.prot_segid_$nchain1 or segid $watersegname_$nchain1 and not name MAP) + end if + translation=true + end loop nloop1 + for $id in id ((resn ANI or resn DAN or resn XAN) and name OO) loop miniani + group (byres(id $id)) + translation=false + end loop miniani + translation=true + nstep $ministeps + nprint 10 + end + end if + + fix sele=(not all) end + + end if ! ($Saprotocol.rigidtrans eq true) + + ! centroids based energy should not be part of the $NOE energy + if ($data.flags.centroids = true) then + noe scale centroid 0 end + end if + + if ($data.flags.em = true) then + ! determine the best orientation of the complex in the density + @RUN:em_orien_search.cns + end if + + inline @RUN:bestener.cns + + if ($saprotocol.rotate180_it0 eq true) then + eval($nchain1 = 0) + while ($nchain1 < $data.ncomponents) loop nloop4 + eval($nchain1 = $nchain1 + 1) + if ($Toppar.shape_$nchain1 eq false) then + eval($nchain2 = $nchain1 ) + while ($nchain2 < $data.ncomponents) loop nloop3 + eval($nchain2 = $nchain2 + 1) + if ($Toppar.shape_$nchain2 eq false) then + @RUN:rotation180.cns + if ($data.flags.em = true) then + @RUN:em_orien_search.cns + end if + inline @RUN:bestener.cns + end if + end loop nloop3 + end if + end loop nloop4 + end if + + end loop trials + + else ! if ($Saprotocol.rigidmini = False) + + evaluate ($kinter = $SaProtocol.inter_rigid) + @RUN:scale_inter_only.cns + + if ($Data.flags.sani eq true) then + evaluate ($nrdc=1) + while ($nrdc <= $data.numrdc) loop rdc + evaluate ($cln = "rd"+encode($nrdc) ) + sani class $cln force $Data.rdc_hot_$nrdc end + evaluate ($nrdc = $nrdc + 1) + end loop rdc + if ($rantens eq true) then + @RUN:mini_tensor.cns + end if + end if + + evaluate ($paramin = false) + if ($Data.flags.xrdc eq true) then + evaluate ($nrdc=1) + while ($nrdc <= $data.numrdc) loop rdc + evaluate ($cln = "rd"+encode($nrdc) ) + xrdc class $cln force $Data.rdc_hot_$nrdc end + evaluate ($nrdc = $nrdc + 1) + end loop rdc + evaluate ($paramin = true) + end if + + if ($Data.flags.xpcs eq true) then + evaluate ($npcs=1) + while ($npcs <= $data.numpcs) loop pcs + evaluate ($cln = "pc"+encode($npcs) ) + xpcs class $cln force $Data.pcs_hot_$npcs end + evaluate ($paramin = true) + evaluate ($npcs= $npcs + 1) + end loop pcs + end if + + if ($paramin eq TRUE) then + if ($rantens_para eq true) then + @RUN:mini_tensor_para.cns + end if + end if + + if ($Data.flags.dani eq true) then + evaluate ($ndani=1) + while ($ndani <= $data.numdani) loop dani + evaluate ($cln = "da"+encode($ndani) ) + dani class $cln force $Data.dan_hot_$ndani end + evaluate ($ndani = $ndani + 1) + end loop dani + if ($rantens_dani eq true) then + @RUN:mini_tensor_dani.cns + end if + end if + + do (refx=x) (all) + do (refy=y) (all) + do (refz=z) (all) + + ! the centroid based restraints should not be included in the energy calculation + if ($data.flags.centroids eq true) then + noe scale centroid 0 end + end if + + energy end + evaluate ($bestair = $noe) + + end if ! ($Saprotocol.rigidmini = true) + + +{* ===================== calculate complex internal energy *} + evaluate ($kinter = 1.0) + @RUN:scale_intra_only.cns + + flag include bond angle dihe impr vdw end + + evaluate ($elec = 0.0) + evaluate ($eintfree = 0.0) + if ($Data.flags.elec0 eq true) then + flag include elec end + end if + + energy end + + evaluate ($eintcplx = $bond + $angl + $impr + $dihe + $vdw + $elec) + evaluate ($eintfree = $eintcplx) + {* at this stage the two are similar since rigid-body EM only *} + +{* =========================== write out structure after rigid body refinement *} + + !bestener.cns: for waterdock, store3 contains store5 from lowest energy structure + do (x = refx) (not store3) + do (y = refy) (not store3) + do (z = refz) (not store3) + if ($data.waterdock eq true) then + if ($data.solvate_method eq "restraints") then + noe reset end + @RUN:read_noes.cns(Iteration=$Iteration; Data=$Data; count=$count) + end if + end if + + evaluate ($esym = 0.0) + evaluate ($ncs = 0.0) + evaluate ($zhar = 0.0) + evaluate ($rms_test_noe = 0.0) + evaluate ($violations_test_noe = 0) + if ($Data.flags.sym eq true) then + noe reset nres= 2000000 end + @RUN:symmultimer.cns + noe + scale symm $Data.ksym + end + energy end + evaluate ($esym = $noe) + if ($Data.noecv eq true) then + display Print out of cross-validated violations and rms not + display possible in combination with symmetry restraints + display CV values set therefore to 0 + end if + noe reset end + set message=normal echo=on end + !read again the NOE data, needed to remove the symmetry restraints + @@RUN:read_noes.cns(Iteration=$Iteration; Data=$Data; count=$count) + if ( $log_level = verbose ) then + set message=normal echo=on end + else + set message=off echo=off end + end if + else + if ($Data.noecv eq true) then + set message=on echo=on end + noe cv $ncvbest ? end + end if + if ( $log_level = verbose ) then + set message=normal echo=on end + else + set message=off echo=off end + end if + print threshold=0.3 noe + evaluate ($rms_noe=$result) + evaluate ($violations_noe=$violations) + if ($Data.noecv eq true) then + evaluate ($rms_test_noe=$test_rms) + evaluate ($violations_test_noe=$test_violations) + end if + end if + + evaluate ($unamb_scale = $Data.unamb_cool3) + evaluate ($ambig_scale = $Data.amb_cool3) + evaluate ($hbond_scale = $Data.hbond_cool3) + if ($data.solvate_method eq "restraints") then + evaluate ($amwa_scale = $data.water_restraint_scale) + end if + + noe + scale dist $unamb_scale + scale ambi $ambig_scale + scale hbon 0.0 + scale cont 0.0 + if ($data.solvate_method eq "restraints") then + scale amwa $amwa_scale + end if + end + +{* ===================== calculate final energies and write structure *} + flag incl bond angl impr noe end + flag exclude xref end + if ($Data.flags.sani eq true) then + flag incl sani end + end if + if ($Data.flags.xrdc eq true) then + flag incl xrdc end + end if + if ($Data.flags.xpcs eq true) then + flag incl xpcs end + end if + if ($Data.flags.dani eq true) then + flag incl dani end + end if + if ($Data.flags.vean eq true) then + flag incl vean end + end if + + if ($Data.flags.rg eq true ) then + collapse force $Data.krg_cool3 end + end if + + if ($Data.flags.zres eq true) then + flag incl zhar end + end if + + if ($data.ncomponents > 1) then + evaluate ($kinter = 1.0) + @RUN:scale_inter_final.cns + else + @RUN:scale_intra_only.cns + end if + energy end + evaluate ($cdih = 0.0) + evaluate ($etot = $ener - $noe) + evaluate ($noe = $bestair) + evaluate ($etot = $etot + $noe) + + evaluate ($Data.flags.dihed = false) + evaluate ($filename="NEWIT:" + $Filenames.fileroot + "_" + encode($count) + ".pdb0") + inline @RUN:print_coorheader.cns + + if ($reorient eq true) then + coor sele=(segid $Toppar.prot_segid_1) orient end + end if + + if ($data.waterdock eq true) then + write coordinates sele=(not (resn WAT or resn HOH or resn DUM)) output=$filename end + inline @RUN:waterdock_out0.cns + else + write coordinates sele=(not resn DUM) output=$filename end + end if + + stop + +{*======================= semi-flexible SA refinement*} +else + + if ($saprotocol.expand eq TRUE ) then + @RUN:centroids_initialize.cns + @RUN:centroids_set_restraints.cns + noe scale centroid $data.centroids.kscale end + @RUN:expand.cns + evaluate ($filename="NEWIT:" + $Filenames.fileroot + "_" + encode($count) + "_expand.pdb") + write coordinates sele=(not resn DUM) output=$filename end + end if + + !Make sure that at least as many distance restraints are successfully + !read as the number of partitions for cross-validation + evaluate ($numnoe = 999) + noe ? end + if ($NUMNOE = 0) then + if ($Data.ncomponents > 1) then + if ($Data.surfrest eq FALSE) then + if ($Data.cmrest eq FALSE) then + if ($Data.ranair eq FALSE) then + if ($Data.flags.rg eq FALSE) then + evaluate ($errfile = "RUN:WARNING") + fileexist $errfile end + if ($result eq false) then + set display=$errfile end + display TOTAL NUMBER OF DISTANCE RESTRAINTS FOR FLEXIBLE REFINEMENT IS ZERO! + display CONTROL YOUR PARAMETER SETTINGS AND RESTRAINT DEFINITIONS + close $errfile end + end if + end if + end if + end if + end if + end if + evaluate ($Data.ncvpart = 1) + evaluate ($Data.noecv = FALSE) + end if + + if ($NUMNOE lt $Data.ncvpart) then + noe part=1 end + evaluate ($Data.ncvpart = 1) + evaluate ($Data.noecv = FALSE) + end if + + {*== check first for failed structures ==*} + evaluate ($failure = false) + evaluate ($filefail="NEWIT:" + $Filenames.fileroot + "_" + encode($count) + ".fail") + fileexist $filefail end + evaluate ($failure = $result) + + parameter + bond (resn WAT ) (resn WAT ) 1000 TOKEN + angle (resn WAT ) (resn WAT ) (resn WAT ) 500 TOKEN + bond (resn HOH ) (resn HOH ) 1000 TOKEN + angle (resn HOH ) (resn HOH ) (resn HOH ) 500 TOKEN + bond (resn TIP*) (resn TIP*) 1000 TOKEN + angle (resn TIP*) (resn TIP*) (resn TIP*) 500 TOKEN + end + + if ($Data.ranair eq true) then + if ($Data.ncomponents > 2) then + evaluate ($errfile = "RUN:FAILED") + fileexist $errfile end + if ($result eq false) then + set display=$errfile end + display ========= Unsupported option =========== + display Random definition of AIRs with more than + display two molecules currently unsupported + display ======================================== + close $errfile end + end if + stop + end if + evaluate ($Data.noecv = false) + noe + reset + nrestraints = 100000 ! allocate space for NOEs + ceiling 1000 + end + @RUN:contactairs.cns + + !Read back in hbond data + if ($Data.hbond_lastit ge &iteration) then + if ($Data.hbond_firstit le &iteration) then + if ($Data.hbonds_on eq true) then + noe @@$hbond_fname end + end if + end if + end if + + noe + averaging * sum + potential * soft + scale * 1.0 + sqconstant * 1.0 + sqexponent * 2 + soexponent * 1 + rswitch * 1.0 + sqoffset * 0.0 + asymptote * 2.0 + msoexponent * 1 + masymptote * -0.1 + mrswitch * 1.0 + avexpo hbond 20 + end + inline @RUN:water_rest.cns + end if + + if ($Data.flags.elec1 eq true) then + flag include elec end + if ($Data.dielec1 eq rdie) then + parameter nbonds eps=$Data.epsilon1 rdie shift switch end end + ! shift statement needed first to activate switch (CNS bug?) + else + parameter nbonds eps=$Data.epsilon1 cdie end end + end if + parameter nbonds ? end end + else + evaluate ($elec=0.0) + flag exclude elec end + end if + +end if + +if ( $log_level = verbose ) then + set message=normal echo=on end +else + set message=off echo=off end +end if + +evaluate ($ini_flt = 5.0) + +@RUN:symmultimer.cns + +if ($Data.flags.zres eq true ) then + flag incl zhar end + @RUN:zrestraining.cns +end if + +if ($Data.cmrest eq true ) then + @RUN:cm-restraints.cns +end if + +! use contact airs rather than surface restraints at it1 +if ($Data.surfrest eq true ) then + @RUN:contactairs.cns +end if + +if ($Data.dnarest eq true ) then + @RUN:data/sequence/dna-rna_restraints.def +end if + +if ($Data.flags.rg eq true ) then + collapse + force $Data.krg_hot + target $Data.rgtarg + sele (not (resn ANI or resn XAN or resn TIP*)) + end +end if + +if ($Data.ssdihed eq all ) then + @RUN:protein-ss-restraints-all.def +end if +if ($Data.ssdihed eq alpha ) then + @RUN:protein-ss-restraints-alpha.def +end if +if ($Data.ssdihed eq alphabeta ) then + @RUN:protein-ss-restraints-alpha-beta.def +end if + +! get initial energy +energy end + +coor copy end + +if ($saprotocol.rotate180_it1 eq true) then + evaluate ($rotiter = 2) {* two iteration in rotloop1, rotation *} +else + evaluate ($rotiter = 1) {* only one iteration in rotloop1, no rotation *} +end if + +evaluate ($nlcount = 0) {* two iterations in rotloop1, first rotated *} +{* ================== Loop to sample 180 degrees rotated solutions if requested *} + +while ($nlcount < $rotiter) loop rotloop1 + + evaluate ($nlcount = $nlcount + 1) + + evaluate ($unamb_scale = $Data.unamb_hot) + evaluate ($ambig_scale = $Data.amb_hot) + evaluate ($hbond_scale = $Data.hbond_hot) + + noe + scale dist $unamb_scale + scale ambi $ambig_scale + scale hbon $hbond_scale + end + + if ($Data.flags.dihed eq true) then + flag include dihed end + end if + + if ($Data.scaling eq TRUE) then + inline @RUN:set_noe_scale.cns + energy end + noe + scale dist $Data.unamb_hot + scale ambi $Data.amb_hot + end + energy end + end if + + if ($Data.flags.sani eq true) then + evaluate ($nrdc=1) + while ($nrdc <= $data.numrdc) loop rdc + evaluate ($cln = "rd"+encode($nrdc) ) + sani class $cln force $Data.rdc_hot_$nrdc end + evaluate ($nrdc = $nrdc + 1) + end loop rdc + if ($rantens eq true) then + @RUN:mini_tensor.cns + end if + end if + + evaluate ($paramin = false) + if ($Data.flags.xrdc eq true) then + evaluate ($nrdc=1) + while ($nrdc <= $data.numrdc) loop rdc + evaluate ($cln = "rd"+encode($nrdc) ) + xrdc class $cln force $Data.rdc_hot_$nrdc end + evaluate ($nrdc = $nrdc + 1) + end loop rdc + evaluate ($paramin = true) + end if + + if ($Data.flags.xpcs eq true) then + evaluate ($npcs=1) + while ($npcs <= $data.numpcs) loop pcs + evaluate ($cln = "pc"+encode($npcs) ) + xpcs class $cln force $Data.pcs_hot_$npcs end + evaluate ($paramin = true) + evaluate ($npcs= $npcs + 1) + end loop pcs + end if + + if ($paramin eq TRUE) then + if ($rantens_para eq true) then + @RUN:mini_tensor_para.cns + end if + end if + + if ($Data.flags.dani eq true) then + evaluate ($ndani=1) + while ($ndani <= $data.numdani) loop dani + evaluate ($cln = "da"+encode($ndani) ) + dani class $cln force $Data.dan_hot_$ndani end + evaluate ($ndani = $ndani + 1) + end loop dani + if ($rantens_dani eq true) then + @RUN:mini_tensor_dani.cns + end if + end if + + + if ($nlcount = 2) then + + flag excl bond angl dihe impr zhar end + + evaluate ($kinter = $SaProtocol.inter_rigid) + @RUN:scale_inter_only.cns + + eval($nchain1 = 0) + while ($nchain1 < $data.ncomponents) loop nloop4 + eval($nchain1 = $nchain1 + 1) + eval($nchain2 = $nchain1 ) + while ($nchain2 < $data.ncomponents) loop nloop3 + eval($nchain2 = $nchain2 + 1) + @RUN:rotation180.cns + end loop nloop3 + end loop nloop4 + + inline @RUN:setflags.cns + if ($Data.flags.elec1 eq true) then + flag include elec end + end if + if ($Data.flags.dihed eq true) then + flag include dihed end + end if + flag include bond angle impr vdw end + + end if + + igroup + interaction (not (resn ANI or resn DAN or resn XAN or resn SHA)) + (not (resn ANI or resn DAN or resn XAN or resn SHA)) weight * 1 end + interaction (resn ANI or resn DAN or resn XAN or resn SHA) + (resn ANI or resn DAN or resn XAN or resn SHA) weight * 1 vdw 0.0 elec 0.0 end + end + + energy end + + ! fix the residues describing the shape + fix sele=(resn SHA) end + + ! fix the DUM residue for expand/refine + if ($saprotocol.expand eq TRUE ) then + fix sele=(name DUM) end + end if + +{* 0 ======================================= initial EM for flexible parts only *} + + if ($Data.flags.rg eq true ) then + collapse force $Data.krg_hot end + end if + + if ($SaProtocol.rigidtrans eq true) then + @RUN:flex_segment_back.cns + fix sele=((attr store5 = 0 or name OO or resn SHA) and not name H* and not (resn WAT or resn HOH or resn TIP*)) end + minimize powell nstep=200 drop=10.0 nprint=25 end + fix sele=(not all) end + end if + + energy end + + do (refx = x) (all) + do (refy = y) (all) + do (refz = z) (all) + + do (harm = 0) (all) + do (harm = 20) (name OO and not resn XAN) + restraints harmonic exponent=2 end + flag incl harm end + + ! fix the residues describing the shape + fix sele=(resn SHA) end + + ! fix the DUM residue for expand/refine + if ($saprotocol.expand eq TRUE ) then + fix sele=(name DUM) end + end if + + ! the following is added to avoid the generation of the torsion angle topology if not needed + ! in cases where the number of steps is set to 0 (avoid issues with isolated atoms) + eval ($torsiondone = false) + if ($failure eq false) then +{* 1 ======================================= rigid body high temperature search*} +{* rigid bodies *} + if ($data.flags.em = true) then + if ($data.em.it1 = true) then + flags include xref end + end if + end if + + if ($SaProtocol.initiosteps > 0) then + @RUN:torsiontop.cns + eval ($torsiondone = true) + flags exclude dihed end + @RUN:sa_ltad_hightemp.cns(SaProtocol=$SaProtocol;Data=$Data;Toppar=$Toppar) + end if + +{* 2 ======================================= rigid body first slow cooling *} +{* rigid bodies only *} + + if ($Data.flags.rg eq true ) then + collapse force $Data.krg_cool1 end + end if + + if ($SaProtocol.cool1_steps > 0) then + if ($torsiondone ne true) then + @RUN:torsiontop.cns + eval ($torsiondone = true) + end if + evaluate ($SaProtocol.tadfactor = 4) + @RUN:sa_ltad_cool1.cns(SaProtocol=$SaProtocol;Data=$Data;Toppar=$Toppar) + end if + +{* 3 ======================================= second slow cooling *} +{* flexible side-chains and reduced time step *} + + if ($Data.flags.rg eq true ) then + collapse force $Data.krg_cool2 end + end if + + if ($Data.flags.dihed eq true) then flags include dihed end end if + + if ($SaProtocol.cool2_steps > 0) then + if ($torsiondone eq true) then + dyna tors topo reset end end + end if + @RUN:torsiontop_flex.cns + eval ($torsiondone = true) + evaluate ($SaProtocol.tadfactor = 1) + @RUN:sa_ltad_cool2.cns(SaProtocol=$SaProtocol;Data=$Data;Toppar=$Toppar) + end if + +{* 4 ============================================ third slow cooling *} +{* flexible side-chains and backbone at interface and reduced time step *} + + if ($Data.flags.rg eq true ) then + collapse force $Data.krg_cool3 end + end if + + if ($SaProtocol.cool3_steps > 0) then + if ($torsiondone eq true) then + dyna tors topo reset end end + end if + @RUN:torsiontop_flex_back.cns + eval ($torsiondone = true) + evaluate ($SaProtocol.tadfactor = 1) + @RUN:sa_ltad_cool3.cns(SaProtocol=$SaProtocol;Data=$Data;Toppar=$Toppar) + end if + + end if + +{* 5 =========================== final minimization *} + + if ($Data.scaling eq true) then + inline @RUN:set_noe_scale.cns + energy end + noe + scale dist $Data.unamb_cool3 + scale ambi $Data.amb_cool3 + scale hbon $Data.hbond_cool3 + end + energy end + end if + + @RUN:flex_segment_back.cns + + fix sele=((attr store5 = 0 or name OO or resn SHA) and not name H* and not (resn WAT or resn HOH or resn TIP* or resn XAN)) end + minimize powell nstep=200 drop=10.0 nprint=25 end + fix sele=(not all) end + energy end + + if ($nlcount = 1) then + coor swap end + if ($torsiondone eq true) then + if ($failure eq false) then + dyna tors topo reset end end + end if + end if + end if + +end loop rotloop1 + +coor swap end + +if ($saprotocol.rotate180_it1 eq true) then + evaluate ($rotiter = 2) {* two iteration in rotloop2, rotation *} +else + evaluate ($rotiter = 1) {* only one iteration in rotloop2, no rotation *} +end if + +evaluate ($nlcount = 0) + +{* ================== Loop to write 180 degrees rotated solutions if requested *} + +while ($nlcount < $rotiter) loop rotloop2 + + evaluate ($nlcount = $nlcount + 1) + +{* ======================= calculate free molecules internal energy *} + + igroup + interaction (not (resn ANI or resn DAN or resn XAN or resn SHA or resn WAT or resn HOH or resn TIP* or resn DUM)) + (not (resn ANI or resn DAN or resn XAN or resn SHA or resn WAT or resn HOH or resn TIP* or resn DUM)) weight * 1 end + end + + do (refx=x) (all) + do (refy=y) (all) + do (refz=z) (all) + + fix sele=(resn ANI or resn DAN or resn XAN or resn SHA or resn WAT or resn HOH or resn TIP* or resn DMS) end + + flag excl noe dani sani vean xrdc xpcs coll cdih zhar end + flag include bond angle dihe impr vdw end + + evaluate ($elec = 0.0) + evaluate ($eintfree = 0.0) + if ($Data.flags.elec1 eq true) then + flag include elec end + end if + + if ($Data.dielec1 eq rdie) then + parameter nbonds eps=$Data.epsilon1 rdie shift switch end end + ! shift statement needed first to activate switch (CNS bug?) + else + parameter nbonds eps=$Data.epsilon1 cdie end end + end if + parameter nbonds ? end end + inline @RUN:calc_free-ene.cns + + fix sele=(not all) end + + do (x = refx) (all) + do (y = refy) (all) + do (z = refz) (all) + +{* ===================== calculate complex internal energy *} + + evaluate ($kinter = 1.0) + @RUN:scale_intra_only.cns + + flag include bond angle dihe impr vdw end + + evaluate ($elec = 0.0) + evaluate ($eintcplx = 0.0) + if ($Data.flags.elec1 eq true) then + flag include elec end + end if + + energy end + + evaluate ($eintcplx = $bond + $angl + $impr + $dihe + $vdw + $elec) + +{* ===================== calculate final energies and write structure *} + evaluate ($cdih=0.0) + flag incl noe cdih end + if ($Data.flags.sani eq true) then + flag incl sani end + end if + if ($Data.flags.xrdc eq true) then + flag incl xrdc end + end if + if ($Data.flags.xpcs eq true) then + flag incl xpcs end + end if + if ($Data.flags.dani eq true) then + flag incl dani end + end if + if ($Data.flags.vean eq true) then + flag incl vean end + end if + if ($Data.ncomponents > 1) then + evaluate ($kinter = 1.0) + @RUN:scale_inter_final.cns + else + @RUN:scale_intra_only.cns + end if + + noe + scale dist $Data.unamb_cool3 + scale ambi $Data.amb_cool3 + scale hbon 0.0 + scale symm 0.0 + scale cont 0.0 + end + energy end + evaluate ($eair= $noe) + + evaluate ($esym = 0.0) + evaluate ($ncs = 0.0) + evaluate ($zhar = 0.0) + if ($Data.flags.sym eq true) then + noe reset nres= 200000 end + @RUN:symmultimer.cns + noe + scale symm $Data.ksym + end + energy end + evaluate ($esym = $noe) + if ($Data.noecv eq true) then + evaluate ($violations_test_noe=0) + evaluate ($rms_test_noe=0.0) + display Print out of cross-validated violations and rms not + display possible in combination with symmetry restraints + display CV values set therefore to 0 + end if + noe reset end + set message=normal echo=on end + !read all the experimental Data: + @@RUN:read_noes.cns(Iteration=$Iteration; Data=$Data; count=$count) + if ( $log_level = verbose ) then + set message=normal echo=on end + else + set message=off echo=off end + end if + else + print threshold=0.3 noe + evaluate ($rms_noe=$result) + evaluate ($violations_noe=$violations) + if ($Data.noecv eq true) then + evaluate ($rms_test_noe=$test_rms) + evaluate ($violations_test_noe=$test_violations) + else + evaluate ($rms_test_noe=0.0) + evaluate ($violations_test_noe=0) + end if + end if + + if ($Data.dnarest eq true) then + @RUN:data/sequence/dna-rna_restraints.def + end if + + energy end + evaluate ($etot = $ener - $noe) + evaluate ($noe = $eair) + evaluate ($etot = $etot + $noe) + + ! get the local cross-correlation for EM-data + if ($data.flags.em = true) then + @RUN:em_calc_lcc.cns(toppar=$toppar; data=$data; saprotocol=$saprotocol; lcc=$lcc;) + flags exclude xref end + end if + + + evaluate ($Data.flags.dihed = false) + if ($nlcount = 1) then + evaluate ($filename="NEWIT:" + $Filenames.fileroot + "_" + encode($count) + ".pdb0") + else + evaluate ($num = $count + $iterations.structures) + evaluate ($filename="NEWIT:" + $Filenames.fileroot + "_" + encode($num) + ".pdb0") + end if + inline @RUN:print_coorheader.cns + + if ($reorient = true) then + coor sele= (not name H* and not resn ANI and not resn XAN and not resn DAN) orient end + end if + + if ($data.waterdock eq true) then + write coordinates sele=(not (resn WAT or resn HOH or resn TIP*)) output=$filename end + inline @RUN:waterdock_out1.cns + else + write coordinates output=$filename end + end if + + coor swap end + +end loop rotloop2 +stop diff --git a/src/haddock/modules/flexref/cns/refine.inp-expand b/src/haddock/modules/flexref/cns/refine.inp-expand new file mode 100644 index 000000000..713737142 --- /dev/null +++ b/src/haddock/modules/flexref/cns/refine.inp-expand @@ -0,0 +1,1744 @@ +! refine.inp +! The core docking script of HADDOCK performing rigid-body docking +! and semi-flexible refinement in torsion angle space +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + +@RUN:initialize.cns(iteration=$iteration;) + +@NEWIT:iteration.cns(iteration=$iteration;) + +@RUN:run.cns( +iteration =$iteration; +filenames =$filenames; +Data =$Data; +iterations=$iterations; +saprotocol=$saprotocol; +refine =$refine; +toppar =$toppar; +analysis =$analysis;) + +evaluate ($log_level=quiet) +!evaluate ($log_level=verbose) + +if ( $log_level = verbose ) then + set message=normal echo=on end +else + set message=off echo=off end +end if + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!The next line will be changed automatically from python: +evaluate ($whichMD="torsion") +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!The next line will be changed automatically from python: +evaluate ($count = 1) +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +!The next line will be changed automatically from python: +evaluate ($file = "") +!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +!reads in structure, coordinates and parameter files +@RUN:read_struc.cns + +flag include bond angle impr vdw end + +if ($Data.flags.dihed eq true) then + flag include dihed end +end if + +do (fbeta=$Saprotocol.fbeta) (all) +do (mass=$Saprotocol.mass) (all) +do (mass=1000) (resn ani) +do (mass=1000) (resn xan) +do (mass=1000) (resn dan) + +evaluate ($end_count = $iterations.ini_count + $iterations.structures - 1) + +if ($Data.noecv eq true) then + if ($iteration = 0) then + evaluate ($npart = 1 + mod($count,$Data.ncvpart)) + evaluate ($fileseed="NEWIT:" + $Filenames.fileroot + "_" + encode($count) + ".seed") + evaluate ($seed = max($iteration,1)*$count*$Saprotocol.iniseed) + else + evaluate ($fileseed= $file - ".pdb" + ".seed") + @@$fileseed (seed=$seed;npart=$npart ) + evaluate ($fileseed="NEWIT:" + $Filenames.fileroot + "_" + encode($count) + ".seed") + evaluate ($num = $count + $iterations.structures) + evaluate ($file_r_seed="NEWIT:" + $Filenames.fileroot + "_" + encode($num) + ".seed") + if ($saprotocol.rotate180_it1 eq true) then + set display=$file_r_seed end + display module(seed;npart) + display define ( + display currentseed = $seed; + display currentpart = $npart; + display ) + display evaluate (&seed=¤tseed) + display evaluate (&npart=¤tpart) + close $file_r_seed end + end if + end if + set display=$fileseed end + display module(seed;npart) + display define ( + display currentseed = $seed; + display currentpart = $npart; + display ) + display evaluate (&seed=¤tseed) + display evaluate (&npart=¤tpart) + close $fileseed end +else + evaluate ($seed = max($iteration,1)*$count*$Saprotocol.iniseed) +end if +set seed $seed end + +coor init end +coor @@$file + +! reinitialize the DUM residue +if ($Data.flags.centroids = true) then + if ($iteration = 0) then + @RUN:centroids_initialize.cns + end if +end if + +! check for the presence of ions and add covalent bond +if ($iteration = 1) then + @RUN:covalions.cns +end if + +{* Find CoM of protein *} +show ave (x) (name CA or name BB or name C1') +evaluate ($xcent=$result) +show ave (y) (name CA or name BB or name C1') +evaluate ($ycent=$result) +show ave (z) (name CA or name BB or name C1') +evaluate ($zcent=$result) + +coor select (not known and resn ani) end +if ($select gt 0) then + coor @@$tensor_pdb + + {* Find CoM of protein and move tensor 100 A away *} + show ave (x) (name CA or name BB or name C1') + evaluate ($xcent=$result) + show ave (y) (name CA or name BB or name C1') + evaluate ($ycent=$result) + show ave (z) (name CA or name BB or name C1') + evaluate ($zcent=$result) + do (x=x+$xcent+100) (resn ANI) + do (y=y+$ycent+100) (resn ANI) + do (z=z+$zcent+100) (resn ANI) + evaluate ($rantens = true) +else + evaluate ($rantens = false) +end if + +coor select (not known and resn xan) end +if ($select gt 0) then + coor @@$tensor_para_pdb + evaluate ($rantens_para = true) +else + evaluate ($rantens_para = false) +end if + +coor select (not known and resn dan) end +if ($select gt 0) then + coor @@RUN:toppar/tensor_dani.pdb + + {* Find CoM of protein and move tensor 100 A away *} + show ave (x) (name CA or name BB or name C1') + evaluate ($xcent=$result) + show ave (y) (name CA or name BB or name C1') + evaluate ($ycent=$result) + show ave (z) (name CA or name BB or name C1') + evaluate ($zcent=$result) + do (x=x+$xcent+100) (resn DAN) + do (y=y+$ycent+100) (resn DAN) + do (z=z+$zcent+100) (resn DAN) + evaluate ($rantens_dani = true) +else + evaluate ($rantens_dani = false) +end if + +!catch possible bound water and set high T steps to 0 +coor select ((resn WAT or resn HOH or resn TIP*)) end +if ($select gt 0) then + evaluate ($SaProtocol.initiosteps = 0) + evaluate ($SaProtocol.cool1_steps = 0) + evaluate ($refine.keepwater = true) +end if + +do (refx=x) (all) +do (refy=y) (all) +do (refz=z) (all) + +!set the energy flags: +inline @RUN:setflags.cns + +!read all the experimental Data: +evaluate ($lcc = 0) +set seed $seed end +set message=normal echo=on end +if ($data.waterdock eq false) then + inline @RUN:read_data.cns + if ($data.flags.em = true) then + @RUN:em_read_data.cns(Data=$data;) + end if + + if ($Data.flags.centroids = true) then + if ($iteration = 0) then + @RUN:centroids_set_restraints.cns + end if + end if +end if + +{* ======================= reset coordinates and proceed *} + +do (x = refx) (all) +do (y = refy) (all) +do (z = refz) (all) + +inline @RUN:read_water1.cns +if ($data.waterdock eq true) then + inline @RUN:water_rest.cns + set seed $seed end + set message=normal echo=on end + inline @RUN:read_data.cns +end if + +!set the energy flags: +inline @RUN:setflags.cns + +{* random removal of restaints ================================== *} +if ($Data.noecv eq true) then + set message=on echo=on end + noe cv $npart ? end +else + evaluate ($npart = 0) +end if + +if ( $log_level = verbose ) then + set message=normal echo=on end +else + set message=off echo=off end +end if + +!set the rdc coefficients: +evaluate ($nrdc=1) +while ($nrdc <= $data.numrdc) loop rdc + evaluate ($cln = "rd" + encode($nrdc) ) + if ($Data.rdc_choice_$nrdc eq "SANI") then + sani class $cln coeff 0.0 $Data.rdc_d_$nrdc $Data.rdc_r_$nrdc end + end if + if ($Data.rdc_choice_$nrdc eq "XRDC") then + xrdc class $cln coeff $Data.rdc_d_$nrdc $Data.rdc_r_$nrdc end + end if + evaluate ($nrdc=$nrdc+1) +end loop rdc + +!set the pcs coefficients: +evaluate ($npcs=1) +while ($npcs <= $data.numpcs) loop pcs + if ($Data.pcs_choice_$npcs eq "XPCS") then + evaluate ($cln = "pc"+encode($npcs) ) + xpcs class $cln coeff $Data.pcs_d_$npcs $Data.pcs_r_$npcs end + end if + evaluate ($npcs=$npcs+1) +end loop pcs + +! set dani coefficients: +evaluate ($ndani=1) +while ($ndani <= $data.numdani) loop dani + if ($Data.dan_choice_$ndani eq "DANI") then + evaluate ($cln = "da"+encode($ndani) ) + dani class $cln coeff $Data.dan_tc_$ndani $Data.dan_anis_$ndani $Data.dan_r_$ndani $Data.dan_wh_$ndani $Data.dan_wn_$ndani end + end if + evaluate ($ndani=$ndani+1) +end loop dani + + +{* ============================================================== *} +eval ($anisotropy = false) +if ($Data.flags.sani eq true) then + flag incl sani end + eval ($anisotropy = true) +else + flag excl sani end +end if + +if ($Data.flags.xrdc eq true) then + flag incl xrdc end + eval ($anisotropy = true) +else + flag excl xrdc end +end if + +if ($Data.flags.xpcs eq true) then + flag incl xpcs end + eval ($anisotropy = true) +else + flag excl xpcs end +end if + +if ($Data.flags.vean eq true) then + flag incl vean end +else + flag excl vean end +end if + +if ($Data.flags.dani eq true) then + flag incl dani end + eval ($anisotropy = true) +else + flag excl dani end +end if + +! determine whether the final models should be reoriented along their principal +! axes before writing to file in it0 and it1 +eval($reorient = true) +if ($data.flags.zres = true) then + eval($reorient = false) +elseif ($data.flags.em = true) then + eval($reorient = false) +elseif ($data.flags.centroids = true) then + eval($reorient = false) +end if + +eval ($nchain1 = 0) +while ($nchain1 < $data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + if ($Toppar.fix_origin_$nchain1 eq true) then + eval($reorient = false) + end if +end loop nloop1 + +evaluate ($numnoe = 0) + +{*======================= random orientations and rigid body minimisation *} +if ($iteration = 0) then + if ($SaProtocol.rigidmini eq true) then + !Make sure that at least as many distance restraints are successfully + !read as the number of partitions for cross-validation + evaluate ($numnoe = 0) + noe ? end + if ($NUMNOE = 0) then + if ($Data.ncomponents > 1) then + if ($Data.surfrest eq FALSE) then + if ($Data.cmrest eq FALSE) then + if ($Data.ranair eq FALSE) then + if ($Data.flags.rg eq FALSE) then + evaluate ($errfile = "RUN:WARNING") + fileexist $errfile end + if ($result eq false) then + set display=$errfile end + display TOTAL NUMBER OF DISTANCE RESTRAINTS FOR RIGID BODY DOCKING IS ZERO! + display CONTROL YOUR PARAMETER SETTINGS AND RESTRAINT DEFINITIONS + display STRUCTURE NUMBER $count + close $errfile end + end if + end if + end if + end if + end if + end if + evaluate ($Data.ncvpart = 1) + evaluate ($Data.noecv = FALSE) + end if + end if + + if ($NUMNOE lt $Data.ncvpart) then + noe part=1 end + evaluate ($Data.ncvpart = 1) + evaluate ($Data.noecv = FALSE) + end if + + flag excl bond angl dihe impr zhar end + + if ($Data.flags.elec0 eq true) then + flag include elec end + if ($Data.dielec0 eq rdie) then + parameter nbonds eps=$Data.epsilon0 rdie shift switch end end + ! shift statement needed first to activate switch (CNS bug?) + else + parameter nbonds eps=$Data.epsilon0 cdie shift end end + end if + parameter nbonds ? end end + else + evaluate ($elec=0.0) + flag exclude elec end + end if + + flag excl cdih end + + if ($Data.ranair eq true) then + if ($Data.ncomponents > 2) then + evaluate ($errfile = "RUN:FAILED") + fileexist $errfile end + if ($result eq false) then + set display=$errfile end + display ========= Unsupported option =========== + display Random definition of AIRs with more than + display two molecules currently unsupported + display ======================================== + close $errfile end + end if + stop + end if + evaluate ($Data.noecv = false) + noe + reset + nrestraints = 100000 ! allocate space for NOEs + ceiling 1000 + end + @RUN:randomairs.cns + + !Read back in hbond data + if ($Data.hbond_lastit ge &iteration) then + if ($Data.hbond_firstit le &iteration) then + if ($Data.hbonds_on eq true) then + noe @@$hbond_fname end + end if + end if + end if + + noe + averaging * sum + potential * soft + scale * 1.0 + sqconstant * 1.0 + sqexponent * 2 + soexponent * 1 + rswitch * 1.0 + sqoffset * 0.0 + asymptote * 2.0 + msoexponent * 1 + masymptote * -0.1 + mrswitch * 1.0 + avexpo hbond 20 + end + inline @RUN:water_rest.cns + end if + + @RUN:symmultimer.cns + + @RUN:zrestraining.cns + + if ($Data.flags.rg eq true ) then + collapse + force $Data.krg_hot + target $Data.rgtarg + sele (not (resn ANI or resn XAN or resn WAT or resn HOH or resn TIP* or resn DUM or resh SHA)) + end + end if + + if ($Data.cmrest eq true ) then + @RUN:cm-restraints.cns + end if + + if ($Data.surfrest eq true ) then + @RUN:surf-restraints.cns + end if + + if ($Data.flags.centroids eq true) then + @RUN:centroids_initialize.cns + @RUN:centroids_set_map.cns + noe scale centroid $data.centroids.kscale end + end if + + flag excl ncs end + evaluate ($nrig = 0) + evaluate ($nfirst = 1) + evaluate ($bestair = 0) + + if ($SaProtocol.rigidmini eq true) then + while ($nrig < $SaProtocol.ntrials) loop trials + + evaluate ($nrig = $nrig + 1) + + if ( $log_level = verbose ) then + set message=normal echo=on end + else + set message=off echo=off end + end if + + ! random placement of molecules + if ($SaProtocol.randorien eq true) then + @RUN:separate.cns(Data=$Data; Toppar=$Toppar) + @RUN:random_rotations.cns + if ($Data.flags.centroids eq true) then + ! place the centroids on their positions + @RUN:centroids_initialize.cns + @RUN:centroids_set_map.cns + ! place the molecules around the centroids + @RUN:centroids_init_placement.cns + end if + end if + + if ($Data.flags.sani eq true) then + coor @@$tensor_pdb + do (x = x + $xcent + 100) (resn ANI) + do (y = y + $ycent + 100) (resn ANI) + do (z = z + $zcent + 100) (resn ANI) + end if + + if ($Data.flags.dani eq true) then + coor @@RUN:toppar/tensor_dani.pdb + do (x=x+$xcent+100) (resn DAN) + do (y=y+$ycent+100) (resn DAN) + do (z=z+$zcent+100) (resn DAN) + end if + + if ($Data.flags.xrdc eq true) then + coor @@$tensor_para_pdb + do (x=x+$xcent+100) (resn XAN) + do (y=y+$ycent+100) (resn XAN) + do (z=z+$zcent+100) (resn XAN) + end if + + if ($Data.flags.xpcs eq true) then + coor @@$tensor_para_pdb + do (x=x+$xcent+100) (resn XAN) + do (y=y+$ycent+100) (resn XAN) + do (z=z+$zcent+100) (resn XAN) + end if + + evaluate ($unamb_scale = 1.0) + evaluate ($ambig_scale = 1.0) + evaluate ($hbond_scale = 1.0) + evaluate ($symm_scale = 1.0) + evaluate ($cont_scale = 0.0) + evaluate ($surf_scale = 0.0) + + noe + scale dist $unamb_scale + scale ambi $ambig_scale + scale hbon $hbond_scale + scale symm $symm_scale + scale contact $cont_scale + scale surface $surf_scale + end + + evaluate ($nrdc=1) + while ($nrdc <= $data.numrdc) loop rdc + evaluate ($vea_bor_scale_$nrdc = min($Data.ini_bor_hot_$nrdc,$Data.fin_bor_cool3_$nrdc)) + evaluate ($vea_cen_scale_$nrdc = min($Data.ini_cen_hot_$nrdc,$Data.fin_cen_cool3_$nrdc)) + evaluate ($cln = "rd"+encode($nrdc) ) + evaluate ($san_scale_$nrdc = min($Data.rdc_hot_$nrdc,$Data.rdc_cool3_$nrdc)) + if ($Data.flags.vean eq true) then + vean class $cln force 0.0 0.0 end + end if + if ($Data.flags.sani eq true) then + sani class $cln force 0.0 end + end if + if ($Data.flags.xrdc eq true) then + xrdc class $cln force 0.0 end + end if + evaluate ($nrdc = $nrdc + 1) + end loop rdc + + evaluate ($ndani=1) + while ($ndani <= $data.numdani) loop dani + evaluate ($dan_scale_$ndani = min($Data.dan_hot_$ndani,$Data.dan_cool3_$ndani)) + if ($Data.flags.dani eq true) then + evaluate ($cln = "da"+encode($ndani) ) + dani class $cln force 0.0 end + end if + evaluate ($ndani = $ndani + 1) + end loop dani + + if ($Data.flags.xpcs eq true) then + evaluate ($npcs=1) + while ($npcs <= $data.numpcs) loop pcs + evaluate ($pcs_scale_$npcs = min($Data.pcs_hot_$npcs,$Data.pcs_cool3_$npcs)) + evaluate ($cln = "pc"+encode($npcs) ) + xpcs class $cln force 0.0 end + evaluate ($npcs= $npcs + 1) + end loop pcs + end if + + evaluate ($kinter = $SaProtocol.inter_rigid) + @RUN:scale_inter_mini.cns + + + ! a few rounds of rotational rigid body minimization for each independent chain + evaluate ($imini = 0) + while ($imini le 4) loop rigmin + + if ($imini >= 1) then + evaluate ($paramin = false) + evaluate ($nrdc=1) + while ($nrdc <= $data.numrdc) loop rdc + evaluate ($vea_bor_scale_$nrdc = min($Data.ini_bor_hot_$nrdc,$Data.fin_bor_cool3_$nrdc)) + evaluate ($vea_cen_scale_$nrdc = min($Data.ini_cen_hot_$nrdc,$Data.fin_cen_cool3_$nrdc)) + evaluate ($san_scale_$nrdc = min($Data.rdc_hot_$nrdc,$Data.rdc_cool3_$nrdc)) + evaluate ($cln = "rd"+encode($nrdc) ) + if ($Data.flags.vean eq true) then + vean class $cln force $vea_bor_scale_$nrdc $vea_cen_scale_$nrdc end + evaluate ($vea_bor_scale_$nrdc = min(($vea_bor_scale_$nrdc * 2),$Data.fin_bor_cool3_$nrdc)) + evaluate ($vea_cen_scale_$nrdc = min(($vea_cen_scale_$nrdc * 2),$Data.fin_cen_cool3_$nrdc)) + end if + if ($Data.flags.sani eq true) then + sani class $cln force $san_scale_$nrdc end + evaluate ($san_scale_$nrdc = min($san_scale_$nrdc * 2,$Data.rdc_cool3_$nrdc)) + end if + if ($Data.flags.xrdc eq true) then + xrdc class $cln force $san_scale_$nrdc end + evaluate ($san_scale_$nrdc = min($san_scale_$nrdc * 2,$Data.rdc_cool3_$nrdc)) + evaluate ($paramin = true) + end if + evaluate ($nrdc = $nrdc + 1) + end loop rdc + + if ($Data.flags.sani eq true) then + if ($rantens eq true) then + @RUN:mini_tensor.cns + end if + end if + + if ($Data.flags.xpcs eq true) then + evaluate ($npcs=1) + while ($npcs <= $data.numpcs) loop pcs + evaluate ($cln = "pc"+encode($npcs) ) + xpcs class $cln force $pcs_scale_$npcs end + evaluate ($pcs_scale_$npcs = min($pcs_scale_$npcs * 2,$Data.pcs_cool3_$npcs)) + evaluate ($npcs= $npcs + 1) + end loop pcs + end if + + if ($paramin eq TRUE) then + if ($rantens_para eq true) then + @RUN:mini_tensor_para.cns + end if + end if + + if ($Data.flags.dani eq true) then + evaluate ($ndani=1) + while ($ndani <= $data.numdani) loop dani + evaluate ($cln = "da"+encode($ndani) ) + dani class $cln force $dan_scale_$ndani end + evaluate ($dan_scale_$ndani = min($dan_scale_$ndani * 2,$Data.dan_cool3_$ndani)) + evaluate ($ndani = $ndani + 1) + end loop dani + if ($rantens_dani eq true) then + @RUN:mini_tensor_dani.cns + end if + end if + + end if + + evaluate ($imini = $imini + 1) + eval ($ministeps = 500 * nint ($data.ncomponents/6 + 1)) + if ($SaProtocol.randorien eq true) then + flag excl vdw elec coll zhar end + end if + eval ($nchain1 = 0) + while ($nchain1 < $data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + if ($Toppar.fix_origin_$nchain1 eq false) then + fix sele=(not all) end + fix sele=( not (segid $Toppar.prot_segid_$nchain1 or segid $watersegname_$nchain1) and not name OO) end + minimize rigid + group (segid $Toppar.prot_segid_$nchain1 or segid $watersegname_$nchain1 and not name MAP) + translation=false + nstep $ministeps + drop 10.0 + tole 0.1 + nprint 10 + end + end if + end loop nloop1 + fix sele=(not all) end + + flag include vdw end + if ($Data.flags.elec0 eq true) then + flag include elec end + end if + + evaluate ($unamb_scale = min(($unamb_scale * 2),$Data.unamb_cool3)) + evaluate ($ambig_scale = min(($ambig_scale * 2),$Data.amb_cool3)) + evaluate ($hbond_scale = min(($hbond_scale * 2),$Data.hbond_cool3)) + evaluate ($symm_scale = min(($symm_scale * 2),$Data.ksym)) + + noe + scale dist $unamb_scale + scale ambi $ambig_scale + scale hbon $hbond_scale + scale symm $symm_scale + if ($data.flags.centroids = true) then + scale centroid $data.centroids.kscale end + end if + end + + end loop rigmin + + evaluate ($unamb_scale_store = $unamb_scale) + evaluate ($ambig_scale_store = $ambig_scale) + evaluate ($hbond_scale_store = $hbond_scale) + evaluate ($symm_scale_store = $symm_scale) + + flag include vdw end + if ($Data.flags.elec0 eq true) then + flag include elec end + end if + + if ($SaProtocol.rigidtrans eq true) then + + if ($data.waterdock eq true) then + if ($data.solvate_method ne "db") then + inline @RUN:waterdock_remove-water.cns + else + inline @RUN:db0.cns + end if + end if + + evaluate ($cont_scale = $Data.kcont) + evaluate ($surf_scale = $Data.ksurf) + noe + scale contact $cont_scale + scale surface $surf_scale + end + fix sele=(name OO and not resn XAN) end + minimize rigid + eval ($nchain1 = 0) + while ($nchain1 < $data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + if ($Toppar.fix_origin_$nchain1 eq false) then + group (segid $Toppar.prot_segid_$nchain1 or segid $watersegname_$nchain1 and not name MAP) + end if + translation=false + end loop nloop1 + nstep 1000 + nprint 10 + end + + if ($data.solvate_method eq "db") then + inline @RUN:db00.cns + end if + + energy end + + if ($Data.flags.rg eq true) then + flag include coll end + end if + + if ($Data.flags.zres eq true) then + flag incl zhar end + end if + + fix sele=(name OO and not resn XAN) end + eval ($ministeps = $SaProtocol.emstepstrans) + minimize rigid + eval ($nchain1 = 0) + while ($nchain1 < $data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + if ($Toppar.fix_origin_$nchain1 eq false) then + group (segid $Toppar.prot_segid_$nchain1 or segid $watersegname_$nchain1 and not name MAP) + end if + translation=true + end loop nloop1 + nstep $ministeps + nprint 10 + end + + energy end + + if ($data.waterdock eq true) then + if ($data.solvate_method eq "db") then + display MINIMIZATION ENERGY BEFORE: $grad $ener $vdw $elec + minimize rigid + eval ($nchain1 = 0) + while ($nchain1 < $data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + if ($Toppar.fix_origin_$nchain1 eq false) then + group (segid $Toppar.prot_segid_$nchain1 and not (resn WAT or resn HOH or resn TIP* or name MAP)) + end if + translation=true + end loop nloop1 + for $id in id ((resn WAT or resn HOH or resn TIP*) and name OH2 and (attr store5 ne 1)) loop miniwater + group (byres(id $id)) + end loop miniwater + translation=$data.transwater + nstep $ministeps + nprint 100 + end + display MINIMIZATION ENERGY AFTER: $grad $ener $vdw $elec + inline @RUN:db1.cns + end if + inline @RUN:waterdock_mini.cns + end if + + fix sele=(name OO and not resn XAN) end + minimize rigid + eval ($nchain1 = 0) + while ($nchain1 < $data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + if ($Toppar.fix_origin_$nchain1 eq false) then + group (segid $Toppar.prot_segid_$nchain1 and not (resn WAT or resn HOH or resn TIP* or name MAP)) + end if + translation=true + end loop nloop1 + for $id in id (segid WA* and (resn WAT or resn HOH or resn TIP*) and name OH2 and (attr store5 ne 1)) loop miniwater + group (byres(id $id)) + end loop miniwater + translation=true + nstep $ministeps + nprint 10 + end + energy end + + if ($data.waterdock eq true) then + inline @RUN:waterdock_mini.cns + end if + + fix sele=(not all) end + + if ($anisotropy eq true) then + fix sele=(not all) end + fix sele=(name OO and not resn XAN) end + minimize rigid + for $id in id ((resn ANI or resn DAN or resn XAN) and name OO) loop miniani + group (byres(id $id)) + translation=false + end loop miniani + translation=false + nstep 100 + drop 10.0 + nprint 10 + end + minimize rigid + eval ($nchain1 = 0) + while ($nchain1 < $data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + if ($Toppar.fix_origin_$nchain1 eq false) then + group (segid $Toppar.prot_segid_$nchain1 or segid $watersegname_$nchain1 and not name MAP) + end if + translation=true + end loop nloop1 + for $id in id ((resn ANI or resn DAN or resn XAN) and name OO) loop miniani + group (byres(id $id)) + translation=false + end loop miniani + translation=true + nstep $ministeps + nprint 10 + end + end if + + fix sele=(not all) end + + end if ! ($Saprotocol.rigidtrans eq true) + + ! centroids based energy should not be part of the $NOE energy + if ($data.flags.centroids = true) then + noe scale centroid 0 end + end if + + if ($data.flags.em = true) then + ! determine the best orientation of the complex in the density + @RUN:em_orien_search.cns + end if + + inline @RUN:bestener.cns + + if ($saprotocol.rotate180_it0 eq true) then + eval($nchain1 = 0) + while ($nchain1 < $data.ncomponents) loop nloop4 + eval($nchain1 = $nchain1 + 1) + if ($Toppar.shape_$nchain1 eq false) then + eval($nchain2 = $nchain1 ) + while ($nchain2 < $data.ncomponents) loop nloop3 + eval($nchain2 = $nchain2 + 1) + if ($Toppar.shape_$nchain2 eq false) then + @RUN:rotation180.cns + if ($data.flags.em = true) then + @RUN:em_orien_search.cns + end if + inline @RUN:bestener.cns + end if + end loop nloop3 + end if + end loop nloop4 + end if + + end loop trials + + else ! if ($Saprotocol.rigidmini = False) + + evaluate ($kinter = $SaProtocol.inter_rigid) + @RUN:scale_inter_only.cns + + if ($Data.flags.sani eq true) then + evaluate ($nrdc=1) + while ($nrdc <= $data.numrdc) loop rdc + evaluate ($cln = "rd"+encode($nrdc) ) + sani class $cln force $Data.rdc_hot_$nrdc end + evaluate ($nrdc = $nrdc + 1) + end loop rdc + if ($rantens eq true) then + @RUN:mini_tensor.cns + end if + end if + + evaluate ($paramin = false) + if ($Data.flags.xrdc eq true) then + evaluate ($nrdc=1) + while ($nrdc <= $data.numrdc) loop rdc + evaluate ($cln = "rd"+encode($nrdc) ) + xrdc class $cln force $Data.rdc_hot_$nrdc end + evaluate ($nrdc = $nrdc + 1) + end loop rdc + evaluate ($paramin = true) + end if + + if ($Data.flags.xpcs eq true) then + evaluate ($npcs=1) + while ($npcs <= $data.numpcs) loop pcs + evaluate ($cln = "pc"+encode($npcs) ) + xpcs class $cln force $Data.pcs_hot_$npcs end + evaluate ($paramin = true) + evaluate ($npcs= $npcs + 1) + end loop pcs + end if + + if ($paramin eq TRUE) then + if ($rantens_para eq true) then + @RUN:mini_tensor_para.cns + end if + end if + + if ($Data.flags.dani eq true) then + evaluate ($ndani=1) + while ($ndani <= $data.numdani) loop dani + evaluate ($cln = "da"+encode($ndani) ) + dani class $cln force $Data.dan_hot_$ndani end + evaluate ($ndani = $ndani + 1) + end loop dani + if ($rantens_dani eq true) then + @RUN:mini_tensor_dani.cns + end if + end if + + do (refx=x) (all) + do (refy=y) (all) + do (refz=z) (all) + + ! the centroid based restraints should not be included in the energy calculation + if ($data.flags.centroids eq true) then + noe scale centroid 0 end + end if + + energy end + evaluate ($bestair = $noe) + + end if ! ($Saprotocol.rigidmini = true) + + +{* ===================== calculate complex internal energy *} + evaluate ($kinter = 1.0) + @RUN:scale_intra_only.cns + + flag include bond angle dihe impr vdw end + + evaluate ($elec = 0.0) + evaluate ($eintfree = 0.0) + if ($Data.flags.elec0 eq true) then + flag include elec end + end if + + energy end + + evaluate ($eintcplx = $bond + $angl + $impr + $dihe + $vdw + $elec) + evaluate ($eintfree = $eintcplx) + {* at this stage the two are similar since rigid-body EM only *} + +{* =========================== write out structure after rigid body refinement *} + + !bestener.cns: for waterdock, store3 contains store5 from lowest energy structure + do (x = refx) (not store3) + do (y = refy) (not store3) + do (z = refz) (not store3) + if ($data.waterdock eq true) then + if ($data.solvate_method eq "restraints") then + noe reset end + @RUN:read_noes.cns(Iteration=$Iteration; Data=$Data; count=$count) + end if + end if + + evaluate ($esym = 0.0) + evaluate ($ncs = 0.0) + evaluate ($zhar = 0.0) + evaluate ($rms_test_noe = 0.0) + evaluate ($violations_test_noe = 0) + if ($Data.flags.sym eq true) then + noe reset nres= 2000000 end + @RUN:symmultimer.cns + noe + scale symm $Data.ksym + end + energy end + evaluate ($esym = $noe) + if ($Data.noecv eq true) then + display Print out of cross-validated violations and rms not + display possible in combination with symmetry restraints + display CV values set therefore to 0 + end if + noe reset end + set message=normal echo=on end + !read again the NOE data, needed to remove the symmetry restraints + @@RUN:read_noes.cns(Iteration=$Iteration; Data=$Data; count=$count) + if ( $log_level = verbose ) then + set message=normal echo=on end + else + set message=off echo=off end + end if + else + if ($Data.noecv eq true) then + set message=on echo=on end + noe cv $ncvbest ? end + end if + if ( $log_level = verbose ) then + set message=normal echo=on end + else + set message=off echo=off end + end if + print threshold=0.3 noe + evaluate ($rms_noe=$result) + evaluate ($violations_noe=$violations) + if ($Data.noecv eq true) then + evaluate ($rms_test_noe=$test_rms) + evaluate ($violations_test_noe=$test_violations) + end if + end if + + evaluate ($unamb_scale = $Data.unamb_cool3) + evaluate ($ambig_scale = $Data.amb_cool3) + evaluate ($hbond_scale = $Data.hbond_cool3) + if ($data.solvate_method eq "restraints") then + evaluate ($amwa_scale = $data.water_restraint_scale) + end if + + noe + scale dist $unamb_scale + scale ambi $ambig_scale + scale hbon 0.0 + scale cont 0.0 + if ($data.solvate_method eq "restraints") then + scale amwa $amwa_scale + end if + end + +{* ===================== calculate final energies and write structure *} + flag incl bond angl impr noe end + flag exclude xref end + if ($Data.flags.sani eq true) then + flag incl sani end + end if + if ($Data.flags.xrdc eq true) then + flag incl xrdc end + end if + if ($Data.flags.xpcs eq true) then + flag incl xpcs end + end if + if ($Data.flags.dani eq true) then + flag incl dani end + end if + if ($Data.flags.vean eq true) then + flag incl vean end + end if + + if ($Data.flags.rg eq true ) then + collapse force $Data.krg_cool3 end + end if + + if ($Data.flags.zres eq true) then + flag incl zhar end + end if + + if ($data.ncomponents > 1) then + evaluate ($kinter = 1.0) + @RUN:scale_inter_final.cns + else + @RUN:scale_intra_only.cns + end if + energy end + evaluate ($cdih = 0.0) + evaluate ($etot = $ener - $noe) + evaluate ($noe = $bestair) + evaluate ($etot = $etot + $noe) + + evaluate ($Data.flags.dihed = false) + evaluate ($filename="NEWIT:" + $Filenames.fileroot + "_" + encode($count) + ".pdb0") + inline @RUN:print_coorheader.cns + + if ($reorient eq true) then + coor sele=(segid $Toppar.prot_segid_1) orient end + end if + + if ($data.waterdock eq true) then + write coordinates sele=(not (resn WAT or resn HOH or resn DUM)) output=$filename end + inline @RUN:waterdock_out0.cns + else + write coordinates sele=(not resn DUM) output=$filename end + end if + + stop + +{*======================= semi-flexible SA refinement*} +else + + if ($saprotocol.expand eq TRUE ) then + @RUN:centroids_initialize.cns + @RUN:centroids_set_restraints.cns + noe scale centroid $data.centroids.kscale end + @RUN:expand.cns + evaluate ($filename="NEWIT:" + $Filenames.fileroot + "_" + encode($count) + "_expand.pdb") + !write coordinates sele=(not resn DUM) output=$filename end + end if + + !Make sure that at least as many distance restraints are successfully + !read as the number of partitions for cross-validation + evaluate ($numnoe = 999) + noe ? end + if ($NUMNOE = 0) then + if ($Data.ncomponents > 1) then + if ($Data.surfrest eq FALSE) then + if ($Data.cmrest eq FALSE) then + if ($Data.ranair eq FALSE) then + if ($Data.flags.rg eq FALSE) then + evaluate ($errfile = "RUN:WARNING") + fileexist $errfile end + if ($result eq false) then + set display=$errfile end + display TOTAL NUMBER OF DISTANCE RESTRAINTS FOR FLEXIBLE REFINEMENT IS ZERO! + display CONTROL YOUR PARAMETER SETTINGS AND RESTRAINT DEFINITIONS + close $errfile end + end if + end if + end if + end if + end if + end if + evaluate ($Data.ncvpart = 1) + evaluate ($Data.noecv = FALSE) + end if + + if ($NUMNOE lt $Data.ncvpart) then + noe part=1 end + evaluate ($Data.ncvpart = 1) + evaluate ($Data.noecv = FALSE) + end if + + {*== check first for failed structures ==*} + evaluate ($failure = false) + evaluate ($filefail="NEWIT:" + $Filenames.fileroot + "_" + encode($count) + ".fail") + fileexist $filefail end + evaluate ($failure = $result) + + parameter + bond (resn WAT ) (resn WAT ) 1000 TOKEN + angle (resn WAT ) (resn WAT ) (resn WAT ) 500 TOKEN + bond (resn HOH ) (resn HOH ) 1000 TOKEN + angle (resn HOH ) (resn HOH ) (resn HOH ) 500 TOKEN + bond (resn TIP*) (resn TIP*) 1000 TOKEN + angle (resn TIP*) (resn TIP*) (resn TIP*) 500 TOKEN + end + + if ($Data.ranair eq true) then + if ($Data.ncomponents > 2) then + evaluate ($errfile = "RUN:FAILED") + fileexist $errfile end + if ($result eq false) then + set display=$errfile end + display ========= Unsupported option =========== + display Random definition of AIRs with more than + display two molecules currently unsupported + display ======================================== + close $errfile end + end if + stop + end if + evaluate ($Data.noecv = false) + noe + reset + nrestraints = 100000 ! allocate space for NOEs + ceiling 1000 + end + @RUN:contactairs.cns + + !Read back in hbond data + if ($Data.hbond_lastit ge &iteration) then + if ($Data.hbond_firstit le &iteration) then + if ($Data.hbonds_on eq true) then + noe @@$hbond_fname end + end if + end if + end if + + noe + averaging * sum + potential * soft + scale * 1.0 + sqconstant * 1.0 + sqexponent * 2 + soexponent * 1 + rswitch * 1.0 + sqoffset * 0.0 + asymptote * 2.0 + msoexponent * 1 + masymptote * -0.1 + mrswitch * 1.0 + avexpo hbond 20 + end + inline @RUN:water_rest.cns + end if + + if ($Data.flags.elec1 eq true) then + flag include elec end + if ($Data.dielec1 eq rdie) then + parameter nbonds eps=$Data.epsilon1 rdie shift switch end end + ! shift statement needed first to activate switch (CNS bug?) + else + parameter nbonds eps=$Data.epsilon1 cdie end end + end if + parameter nbonds ? end end + else + evaluate ($elec=0.0) + flag exclude elec end + end if + +end if + +if ( $log_level = verbose ) then + set message=normal echo=on end +else + set message=off echo=off end +end if + +evaluate ($ini_flt = 5.0) + +@RUN:symmultimer.cns + +if ($Data.flags.zres eq true ) then + flag incl zhar end + @RUN:zrestraining.cns +end if + +if ($Data.cmrest eq true ) then + @RUN:cm-restraints.cns +end if + +! use contact airs rather than surface restraints at it1 +if ($Data.surfrest eq true ) then + @RUN:contactairs.cns +end if + +if ($Data.dnarest eq true ) then + @RUN:data/sequence/dna-rna_restraints.def +end if + +if ($Data.flags.rg eq true ) then + collapse + force $Data.krg_hot + target $Data.rgtarg + sele (not (resn ANI or resn XAN or resn TIP*)) + end +end if + +if ($Data.ssdihed eq all ) then + @RUN:protein-ss-restraints-all.def +end if +if ($Data.ssdihed eq alpha ) then + @RUN:protein-ss-restraints-alpha.def +end if +if ($Data.ssdihed eq alphabeta ) then + @RUN:protein-ss-restraints-alpha-beta.def +end if + +! get initial energy +energy end + +coor copy end + +if ($saprotocol.rotate180_it1 eq true) then + evaluate ($rotiter = 2) {* two iteration in rotloop1, rotation *} +else + evaluate ($rotiter = 1) {* only one iteration in rotloop1, no rotation *} +end if + +evaluate ($nlcount = 0) {* two iterations in rotloop1, first rotated *} +{* ================== Loop to sample 180 degrees rotated solutions if requested *} + +while ($nlcount < $rotiter) loop rotloop1 + + evaluate ($nlcount = $nlcount + 1) + + evaluate ($unamb_scale = $Data.unamb_hot) + evaluate ($ambig_scale = $Data.amb_hot) + evaluate ($hbond_scale = $Data.hbond_hot) + + noe + scale dist $unamb_scale + scale ambi $ambig_scale + scale hbon $hbond_scale + end + + if ($Data.flags.dihed eq true) then + flag include dihed end + end if + + if ($Data.scaling eq TRUE) then + inline @RUN:set_noe_scale.cns + energy end + noe + scale dist $Data.unamb_hot + scale ambi $Data.amb_hot + end + energy end + end if + + if ($Data.flags.sani eq true) then + evaluate ($nrdc=1) + while ($nrdc <= $data.numrdc) loop rdc + evaluate ($cln = "rd"+encode($nrdc) ) + sani class $cln force $Data.rdc_hot_$nrdc end + evaluate ($nrdc = $nrdc + 1) + end loop rdc + if ($rantens eq true) then + @RUN:mini_tensor.cns + end if + end if + + evaluate ($paramin = false) + if ($Data.flags.xrdc eq true) then + evaluate ($nrdc=1) + while ($nrdc <= $data.numrdc) loop rdc + evaluate ($cln = "rd"+encode($nrdc) ) + xrdc class $cln force $Data.rdc_hot_$nrdc end + evaluate ($nrdc = $nrdc + 1) + end loop rdc + evaluate ($paramin = true) + end if + + if ($Data.flags.xpcs eq true) then + evaluate ($npcs=1) + while ($npcs <= $data.numpcs) loop pcs + evaluate ($cln = "pc"+encode($npcs) ) + xpcs class $cln force $Data.pcs_hot_$npcs end + evaluate ($paramin = true) + evaluate ($npcs= $npcs + 1) + end loop pcs + end if + + if ($paramin eq TRUE) then + if ($rantens_para eq true) then + @RUN:mini_tensor_para.cns + end if + end if + + if ($Data.flags.dani eq true) then + evaluate ($ndani=1) + while ($ndani <= $data.numdani) loop dani + evaluate ($cln = "da"+encode($ndani) ) + dani class $cln force $Data.dan_hot_$ndani end + evaluate ($ndani = $ndani + 1) + end loop dani + if ($rantens_dani eq true) then + @RUN:mini_tensor_dani.cns + end if + end if + + + if ($nlcount = 2) then + + flag excl bond angl dihe impr zhar end + + evaluate ($kinter = $SaProtocol.inter_rigid) + @RUN:scale_inter_only.cns + + eval($nchain1 = 0) + while ($nchain1 < $data.ncomponents) loop nloop4 + eval($nchain1 = $nchain1 + 1) + eval($nchain2 = $nchain1 ) + while ($nchain2 < $data.ncomponents) loop nloop3 + eval($nchain2 = $nchain2 + 1) + @RUN:rotation180.cns + end loop nloop3 + end loop nloop4 + + inline @RUN:setflags.cns + if ($Data.flags.elec1 eq true) then + flag include elec end + end if + if ($Data.flags.dihed eq true) then + flag include dihed end + end if + flag include bond angle impr vdw end + + end if + + igroup + interaction (not (resn ANI or resn DAN or resn XAN or resn SHA)) + (not (resn ANI or resn DAN or resn XAN or resn SHA)) weight * 1 end + interaction (resn ANI or resn DAN or resn XAN or resn SHA) + (resn ANI or resn DAN or resn XAN or resn SHA) weight * 1 vdw 0.0 elec 0.0 end + end + + energy end + + ! fix the residues describing the shape + fix sele=(resn SHA) end + + ! fix the DUM residue for expand/refine and perform a first rigid body EM + if ($saprotocol.expand eq TRUE ) then + fix sele=(name DUM) end + fix sele=(name OO and not resn XAN) end + eval ($ministeps = $SaProtocol.emstepstrans) + minimize rigid + eval ($nchain1 = 0) + while ($nchain1 < $data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + if ($Toppar.fix_origin_$nchain1 eq false) then + group (segid $Toppar.prot_segid_$nchain1 or segid $watersegname_$nchain1 and not (name MAP or name DUM)) + end if + translation=true + end loop nloop1 + nstep $ministeps + nprint 10 + end + energy end + end if + +{* 0 ======================================= initial EM for flexible parts only *} + + if ($Data.flags.rg eq true ) then + collapse force $Data.krg_hot end + end if + + if ($SaProtocol.rigidtrans eq true) then + @RUN:flex_segment_back.cns + fix sele=((attr store5 = 0 or name OO or resn SHA) and not name H* and not (resn WAT or resn HOH or resn TIP*)) end + minimize powell nstep=200 drop=10.0 nprint=25 end + fix sele=(not all) end + end if + + energy end + + do (refx = x) (all) + do (refy = y) (all) + do (refz = z) (all) + + do (harm = 0) (all) + do (harm = 20) (name OO and not resn XAN) + restraints harmonic exponent=2 end + flag incl harm end + + ! fix the residues describing the shape + fix sele=(resn SHA) end + + ! fix the DUM residue for expand/refine + if ($saprotocol.expand eq TRUE ) then + fix sele=(name DUM) end + end if + + ! the following is added to avoid the generation of the torsion angle topology if not needed + ! in cases where the number of steps is set to 0 (avoid issues with isolated atoms) + eval ($torsiondone = false) + if ($failure eq false) then +{* 1 ======================================= rigid body high temperature search*} +{* rigid bodies *} + if ($data.flags.em = true) then + if ($data.em.it1 = true) then + flags include xref end + end if + end if + + if ($SaProtocol.initiosteps > 0) then + @RUN:torsiontop.cns + eval ($torsiondone = true) + flags exclude dihed end + @RUN:sa_ltad_hightemp.cns(SaProtocol=$SaProtocol;Data=$Data;Toppar=$Toppar) + end if + +{* 2 ======================================= rigid body first slow cooling *} +{* rigid bodies only *} + + if ($Data.flags.rg eq true ) then + collapse force $Data.krg_cool1 end + end if + + if ($SaProtocol.cool1_steps > 0) then + if ($torsiondone ne true) then + @RUN:torsiontop.cns + eval ($torsiondone = true) + end if + evaluate ($SaProtocol.tadfactor = 4) + @RUN:sa_ltad_cool1.cns(SaProtocol=$SaProtocol;Data=$Data;Toppar=$Toppar) + end if + +{* 3 ======================================= second slow cooling *} +{* flexible side-chains and reduced time step *} + + if ($Data.flags.rg eq true ) then + collapse force $Data.krg_cool2 end + end if + + if ($Data.flags.dihed eq true) then flags include dihed end end if + + if ($SaProtocol.cool2_steps > 0) then + if ($torsiondone eq true) then + dyna tors topo reset end end + end if + @RUN:torsiontop_flex.cns + eval ($torsiondone = true) + evaluate ($SaProtocol.tadfactor = 1) + @RUN:sa_ltad_cool2.cns(SaProtocol=$SaProtocol;Data=$Data;Toppar=$Toppar) + end if + +{* 4 ============================================ third slow cooling *} +{* flexible side-chains and backbone at interface and reduced time step *} + + if ($Data.flags.rg eq true ) then + collapse force $Data.krg_cool3 end + end if + + if ($SaProtocol.cool3_steps > 0) then + if ($torsiondone eq true) then + dyna tors topo reset end end + end if + @RUN:torsiontop_flex_back.cns + eval ($torsiondone = true) + evaluate ($SaProtocol.tadfactor = 1) + @RUN:sa_ltad_cool3.cns(SaProtocol=$SaProtocol;Data=$Data;Toppar=$Toppar) + end if + + end if + +{* 5 =========================== final minimization *} + + if ($Data.scaling eq true) then + inline @RUN:set_noe_scale.cns + energy end + noe + scale dist $Data.unamb_cool3 + scale ambi $Data.amb_cool3 + scale hbon $Data.hbond_cool3 + end + energy end + end if + + @RUN:flex_segment_back.cns + + fix sele=((attr store5 = 0 or name OO or resn SHA) and not name H* and not (resn WAT or resn HOH or resn TIP* or resn XAN)) end + minimize powell nstep=200 drop=10.0 nprint=25 end + fix sele=(not all) end + energy end + + if ($nlcount = 1) then + coor swap end + if ($torsiondone eq true) then + if ($failure eq false) then + dyna tors topo reset end end + end if + end if + end if + +end loop rotloop1 + +coor swap end + +if ($saprotocol.rotate180_it1 eq true) then + evaluate ($rotiter = 2) {* two iteration in rotloop2, rotation *} +else + evaluate ($rotiter = 1) {* only one iteration in rotloop2, no rotation *} +end if + +evaluate ($nlcount = 0) + +{* ================== Loop to write 180 degrees rotated solutions if requested *} + +while ($nlcount < $rotiter) loop rotloop2 + + evaluate ($nlcount = $nlcount + 1) + +{* ======================= calculate free molecules internal energy *} + + igroup + interaction (not (resn ANI or resn DAN or resn XAN or resn SHA or resn WAT or resn HOH or resn TIP* or resn DUM)) + (not (resn ANI or resn DAN or resn XAN or resn SHA or resn WAT or resn HOH or resn TIP* or resn DUM)) weight * 1 end + end + + do (refx=x) (all) + do (refy=y) (all) + do (refz=z) (all) + + fix sele=(resn ANI or resn DAN or resn XAN or resn SHA or resn WAT or resn HOH or resn TIP* or resn DMS) end + + flag excl noe dani sani vean xrdc xpcs coll cdih zhar end + flag include bond angle dihe impr vdw end + + evaluate ($elec = 0.0) + evaluate ($eintfree = 0.0) + if ($Data.flags.elec1 eq true) then + flag include elec end + end if + + if ($Data.dielec1 eq rdie) then + parameter nbonds eps=$Data.epsilon1 rdie shift switch end end + ! shift statement needed first to activate switch (CNS bug?) + else + parameter nbonds eps=$Data.epsilon1 cdie end end + end if + parameter nbonds ? end end + inline @RUN:calc_free-ene.cns + + fix sele=(not all) end + + do (x = refx) (all) + do (y = refy) (all) + do (z = refz) (all) + +{* ===================== calculate complex internal energy *} + + evaluate ($kinter = 1.0) + @RUN:scale_intra_only.cns + + flag include bond angle dihe impr vdw end + + evaluate ($elec = 0.0) + evaluate ($eintcplx = 0.0) + if ($Data.flags.elec1 eq true) then + flag include elec end + end if + + energy end + + evaluate ($eintcplx = $bond + $angl + $impr + $dihe + $vdw + $elec) + +{* ===================== calculate final energies and write structure *} + evaluate ($cdih=0.0) + flag incl noe cdih end + if ($Data.flags.sani eq true) then + flag incl sani end + end if + if ($Data.flags.xrdc eq true) then + flag incl xrdc end + end if + if ($Data.flags.xpcs eq true) then + flag incl xpcs end + end if + if ($Data.flags.dani eq true) then + flag incl dani end + end if + if ($Data.flags.vean eq true) then + flag incl vean end + end if + if ($Data.ncomponents > 1) then + evaluate ($kinter = 1.0) + @RUN:scale_inter_final.cns + else + @RUN:scale_intra_only.cns + end if + + noe + scale dist $Data.unamb_cool3 + scale ambi $Data.amb_cool3 + scale hbon 0.0 + scale symm 0.0 + scale cont 0.0 + end + energy end + evaluate ($eair= $noe) + + evaluate ($esym = 0.0) + evaluate ($ncs = 0.0) + evaluate ($zhar = 0.0) + if ($Data.flags.sym eq true) then + noe reset nres= 200000 end + @RUN:symmultimer.cns + noe + scale symm $Data.ksym + end + energy end + evaluate ($esym = $noe) + if ($Data.noecv eq true) then + evaluate ($violations_test_noe=0) + evaluate ($rms_test_noe=0.0) + display Print out of cross-validated violations and rms not + display possible in combination with symmetry restraints + display CV values set therefore to 0 + end if + noe reset end + set message=normal echo=on end + !read all the experimental Data: + @@RUN:read_noes.cns(Iteration=$Iteration; Data=$Data; count=$count) + if ( $log_level = verbose ) then + set message=normal echo=on end + else + set message=off echo=off end + end if + else + print threshold=0.3 noe + evaluate ($rms_noe=$result) + evaluate ($violations_noe=$violations) + if ($Data.noecv eq true) then + evaluate ($rms_test_noe=$test_rms) + evaluate ($violations_test_noe=$test_violations) + else + evaluate ($rms_test_noe=0.0) + evaluate ($violations_test_noe=0) + end if + end if + + if ($Data.dnarest eq true) then + @RUN:data/sequence/dna-rna_restraints.def + end if + + energy end + evaluate ($etot = $ener - $noe) + evaluate ($noe = $eair) + evaluate ($etot = $etot + $noe) + + ! get the local cross-correlation for EM-data + if ($data.flags.em = true) then + @RUN:em_calc_lcc.cns(toppar=$toppar; data=$data; saprotocol=$saprotocol; lcc=$lcc;) + flags exclude xref end + end if + + + evaluate ($Data.flags.dihed = false) + if ($nlcount = 1) then + evaluate ($filename="NEWIT:" + $Filenames.fileroot + "_" + encode($count) + ".pdb0") + else + evaluate ($num = $count + $iterations.structures) + evaluate ($filename="NEWIT:" + $Filenames.fileroot + "_" + encode($num) + ".pdb0") + end if + inline @RUN:print_coorheader.cns + + if ($reorient = true) then + coor sele= (not name H* and not resn ANI and not resn XAN and not resn DAN) orient end + end if + + if ($data.waterdock eq true) then + write coordinates sele=(not (resn WAT or resn HOH or resn TIP*)) output=$filename end + inline @RUN:waterdock_out1.cns + else + write coordinates output=$filename end + end if + + coor swap end + +end loop rotloop2 +stop diff --git a/src/haddock/modules/flexref/cns/rg-restraint.cns b/src/haddock/modules/flexref/cns/rg-restraint.cns new file mode 100644 index 000000000..514b7a693 --- /dev/null +++ b/src/haddock/modules/flexref/cns/rg-restraint.cns @@ -0,0 +1,16 @@ +! rg-restraint.cns +! Define the radius of gyration restraint +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! +collapse + force $Data.krg + target $Data.rgtarg + sele ($Data.rgsele) +end diff --git a/src/haddock/modules/flexref/cns/rmsd-new.inp b/src/haddock/modules/flexref/cns/rmsd-new.inp new file mode 100644 index 000000000..14d6a57b1 --- /dev/null +++ b/src/haddock/modules/flexref/cns/rmsd-new.inp @@ -0,0 +1,186 @@ +! rmsd.inp +! Calculate the pairwise RMSD matrix by fitting on all contacting residues +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + +set timing=on end + +@RUN:initialize.cns(iteration=$iteration;) + +@NEWIT:iteration.cns(iteration=$iteration;) + +@RUN:run.cns( +iteration =$iteration; +filenames =$filenames; +data =$data; +iterations=$iterations; +saprotocol=$saprotocol; +refine =$refine; +toppar =$toppar; +analysis =$analysis; +) + +!reads in structure, coordinates and parameter files +@RUN:read_struc.cns + +delete sele=(resn ANI) end +delete sele=(resn DAN) end +delete sele=(resn XAN) end + +!check if automatic flexible segment option is on +evaluate($nchain1 = 0) +evaluate($autoflex = 0) +while ($nchain1 < $data.ncomponents) loop nloop0 + evaluate($nchain1 = $nchain1 + 1) + evaluate($Toppar.nseg_$nchain1 = -1) + if ($Toppar.nseg_$nchain1 < 0) then + evaluate ($autoflex = 1) + end if +end loop nloop0 + +if ($autoflex = 1) then + + @PREVIT:file.cns(filenames=$filenames) + + evaluate ($count = 1) + evaluate ($nstruc1 = 0) + do (store1 = 0) (all) + while ($count le $Iterations.anastruc) loop loop1 + evaluate ($file = $filenames.bestfile_$count) + coor init end + if ($file ne "") then + coor @@$file + evaluate ($nstruc1 = $nstruc1 + 1) + eval($nchain1 = 0) + while ($nchain1 < $data.ncomponents) loop nloop2 + eval($nchain1 = $nchain1 + 1) + do (store1 = 1) (byres (segid $Toppar.prot_segid_$nchain1 and + (not segid $Toppar.prot_segid_$nchain1) around 5.0)) + end loop nloop2 + end if + evaluate ($count = $count + 1) + end loop loop1 +end if + +do (store7 = 0) (all) +do (store6 = 0) (all) + +{* define part for fitting and RMS calculations: flexible interface*} +evaluate($nchain1 = 0) +while ($nchain1 < $data.ncomponents) loop nloop3 + evaluate($nchain1 = $nchain1 + 1) + evaluate($fcounter=0) + do (store6 = 0) (all) + if ($Toppar.nseg_$nchain1 = 0) then + display NO FLEXIBLE SEGMENTS for molecule $nchain1 USING ALL BACKBONE + do (store7 = $nchain1) ((name CA or name C#) and segid $Toppar.prot_segid_$nchain1) + do (store6 = 1) ((name CA or name C#) and segid $Toppar.prot_segid_$nchain1) + show sum (store6) (segid $Toppar.prot_segid_$nchain1) + evaluate ($nata=$result) + if ($nata < 3) then + display not enough backbone atoms recognized for molecule $nchain1 USING ALL ATOMS for RMS calculation + do (store7 = $nchain1) (segid $Toppar.prot_segid_$nchain1) + do (store6 = 1) (segid $Toppar.prot_segid_$nchain1) + end if + else + if ($Toppar.nseg_$nchain1 < 0) then + display AUTOMATIC DEFINITION OF INTERFACE REGION FROM CONTACT ANALYSIS + do (store7 = $nchain1) (attr store1 = 1 and (name CA or name C#) and segid $Toppar.prot_segid_$nchain1) + do (store6 = 1) (attr store1 = 1 and (name CA or name C#) and segid $Toppar.prot_segid_$nchain1) + show sum (store6) (segid $Toppar.prot_segid_$nchain1) + evaluate ($nata=$result) + if ($nata < 3) then + display not enough backbone atoms recognized for molecule $nchain1 USING ALL ATOMS for RMS calculation + do (store7 = $nchain1) (segid $Toppar.prot_segid_$nchain1) + do (store6 = 1) (segid $Toppar.prot_segid_$nchain1) + end if + else + display FLEXIBLE SEGMENTS for molecule $nchain1 + while ($fcounter < $Toppar.nseg_$nchain1) loop Xflex + evaluate($fcounter=$fcounter + 1) + do (store7 = $nchain1) ( resid $Toppar.start_seg_$nchain1_$fcounter : $Toppar.end_seg_$nchain1_$fcounter + and segid $Toppar.prot_segid_$nchain1 and (name CA or name C#)) + do (store6 = 1) ( resid $Toppar.start_seg_$nchain1_$fcounter : $Toppar.end_seg_$nchain1_$fcounter + and segid $Toppar.prot_segid_$nchain1 and (name CA or name C#)) + end loop Xflex + show sum (store6) (segid $Toppar.prot_segid_$nchain1) + evaluate ($nata=$result) + if ($nata < 3) then + display not enough backbone atoms recognized for molecule $nchain1 USING ALL ATOMS for RMS calculation + do (store7 = $nchain1) (segid $Toppar.prot_segid_$nchain1) + do (store6 = 1) (segid $Toppar.prot_segid_$nchain1) + end if + end if + end if + show sum (store6) (segid $Toppar.prot_segid_$nchain1) + display CHAIN $nchain1 HAS $result ATOMS FOR FITTING +end loop nloop3 + +evaluate ($nstruc_total = 0) +for $filename in ( @@NEWIT:file.list ) loop fitt + evaluate ($nstruc_total = $nstruc_total + 1) +end loop fitt +evaluate ($nstruc_total = min($nstruc_total,$iterations.anastruc)) + +{* filenames *} +evaluate ($outroot = "NEWIT:analysis/" + $Filenames.fileroot) +evaluate ($trajfile=$outroot+"-reduced.crd") +evaluate ($dispfile=$outroot+"_rmsd.disp") + +set display=$dispfile end + +evaluate ($nstruc_i = 0) +while ($nstruc_i < $nstruc_total) loop fiti + + evaluate ($nstruc_i = $nstruc_i + 1) + + read trajectory + ascii true + input= $trajfile + begin $nstruc_i skip 1 stop $nstruc_i + end + coor copy end + + if ($data.ncomponents > 1) then + eval($nrms=$data.ncomponents-1) + else + eval($nrms=1) + end if + + evaluate ($nstruc_j = $nstruc_i) + while ($nstruc_j < $nstruc_total) loop fitj + evaluate ($nstruc_j = $nstruc_j + 1) + read trajectory + ascii true + input= $trajfile + begin $nstruc_j skip 1 stop $nstruc_j + end + ! fit on flexible interface of first molecule + coor sele= (attr store7 = 1) fit end + ! rms on flexible interface of remaining molecules + eval($nchain = 1) + eval($rmsdist = 0) + while ($nchain < $data.ncomponents) loop nloop3 + eval($nchain = $nchain + 1) + coor sele= (attr store7 = $nchain) rms end + eval($rmsdist=$rmsdist+$result**2) + end loop nloop3 + eval($rmsdist=sqrt($rmsdist)/$nrms) + display $nstruc_i $nstruc_j $rmsdist + end loop fitj + +end loop fiti + +evaluate ($outdis = "NEWIT:analysis/MTX_DONE") +set display=$outdis end +display DONE + +stop diff --git a/src/haddock/modules/flexref/cns/rmsd.inp b/src/haddock/modules/flexref/cns/rmsd.inp new file mode 100644 index 000000000..18845aec9 --- /dev/null +++ b/src/haddock/modules/flexref/cns/rmsd.inp @@ -0,0 +1,200 @@ +! rmsd.inp +! Calculate the pairwise RMSD matrix by fitting on all contacting residues +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + +set timing=on end + +@RUN:initialize.cns(iteration=$iteration;) + +@NEWIT:iteration.cns(iteration=$iteration;) + +@RUN:run.cns( +iteration =$iteration; +filenames =$filenames; +data =$data; +iterations=$iterations; +saprotocol=$saprotocol; +refine =$refine; +toppar =$toppar; +analysis =$analysis; +) + +!reads in structure, coordinates and parameter files +@RUN:read_struc.cns +@RUN:read_struc-cg.cns + +@PREVIT:file.cns(filenames=$filenames) +evaluate ($file = $filenames.bestfile_1) +coor @@$file + +delete sele=(not(known)) end + +delete sele=(resn ANI) end +delete sele=(resn DAN) end +delete sele=(resn XAN) end +delete sele=(resn TIP* or resn WAT or resn HOH or resn DMSO) end + +!check if automatic flexible segment option is on +evaluate($nchain1 = 0) +evaluate($autoflex = 0) +while ($nchain1 < $data.ncomponents) loop nloop0 + evaluate($nchain1 = $nchain1 + 1) + evaluate($Toppar.nseg_$nchain1 = -1) + if ($Toppar.nseg_$nchain1 < 0) then + evaluate ($autoflex = 1) + end if +end loop nloop0 + +if ($autoflex = 1) then + + @PREVIT:file.cns(filenames=$filenames) + + evaluate ($count = 1) + evaluate ($nstruc1 = 0) + do (store1 = 0) (all) + while ($count le $Iterations.anastruc) loop loop1 + evaluate ($file = $filenames.bestfile_$count) + coor init end + if ($file ne "") then + coor @@$file + evaluate ($nstruc1 = $nstruc1 + 1) + eval($nchain1 = 0) + while ($nchain1 < $data.ncomponents) loop nloop2 + eval($nchain1 = $nchain1 + 1) + if ($Toppar.shape_$nchain1 eq false) then + do (store1 = 1) (byres (segid $Toppar.prot_segid_$nchain1 and + (not segid $Toppar.prot_segid_$nchain1) around 5.0)) + end if + end loop nloop2 + end if + evaluate ($count = $count + 1) + end loop loop1 +end if + +do (store7 = 0) (all) +do (store6 = 0) (all) + +{* define part for fitting and RMS calculations: flexible interface*} +evaluate($nchain1 = 0) +while ($nchain1 < $data.ncomponents) loop nloop3 + evaluate($nchain1 = $nchain1 + 1) + if ($Toppar.shape_$nchain1 eq false) then + evaluate($fcounter=0) + do (store6 = 0) (all) + if ($Toppar.nseg_$nchain1 = 0) then + display NO FLEXIBLE SEGMENTS for molecule $nchain1 USING ALL BACKBONE + do (store7 = $nchain1) ((name CA or name BB or name C#) and segid $Toppar.prot_segid_$nchain1) + do (store6 = 1) ((name CA or name BB or name C#) and segid $Toppar.prot_segid_$nchain1) + show sum (store6) (segid $Toppar.prot_segid_$nchain1) + evaluate ($nata=$result) + if ($nata < 3) then + display not enough backbone atoms recognized for molecule $nchain1 USING ALL ATOMS for RMS calculation + do (store7 = $nchain1) (segid $Toppar.prot_segid_$nchain1) + do (store6 = 1) (segid $Toppar.prot_segid_$nchain1) + end if + else + if ($Toppar.nseg_$nchain1 < 0) then + display AUTOMATIC DEFINITION OF INTERFACE REGION FROM CONTACT ANALYSIS + do (store7 = $nchain1) (attr store1 = 1 and (name CA or name BB or name C#) and segid $Toppar.prot_segid_$nchain1) + do (store6 = 1) (attr store1 = 1 and (name CA or name BB or name C#) and segid $Toppar.prot_segid_$nchain1) + show sum (store6) (segid $Toppar.prot_segid_$nchain1) + evaluate ($nata=$result) + if ($nata < 3) then + display not enough backbone atoms recognized for molecule $nchain1 USING ALL ATOMS for RMS calculation + do (store7 = $nchain1) (segid $Toppar.prot_segid_$nchain1) + do (store6 = 1) (segid $Toppar.prot_segid_$nchain1) + end if + else + display FLEXIBLE SEGMENTS for molecule $nchain1 + while ($fcounter < $Toppar.nseg_$nchain1) loop Xflex + evaluate($fcounter=$fcounter + 1) + do (store7 = $nchain1) ( resid $Toppar.start_seg_$nchain1_$fcounter : $Toppar.end_seg_$nchain1_$fcounter + and segid $Toppar.prot_segid_$nchain1 and (name CA or name BB or name C#)) + do (store6 = 1) ( resid $Toppar.start_seg_$nchain1_$fcounter : $Toppar.end_seg_$nchain1_$fcounter + and segid $Toppar.prot_segid_$nchain1 and (name CA or name BB or name C#)) + end loop Xflex + show sum (store6) (segid $Toppar.prot_segid_$nchain1) + evaluate ($nata=$result) + if ($nata < 3) then + display not enough backbone atoms recognized for molecule $nchain1 USING ALL ATOMS for RMS calculation + do (store7 = $nchain1) (segid $Toppar.prot_segid_$nchain1) + do (store6 = 1) (segid $Toppar.prot_segid_$nchain1) + end if + end if + end if + show sum (store6) (segid $Toppar.prot_segid_$nchain1) + display CHAIN $nchain1 HAS $result ATOMS FOR FITTING + end if +end loop nloop3 + +evaluate ($nstruc_total = 0) +for $filename in ( @@NEWIT:file.list ) loop fitt + evaluate ($nstruc_total = $nstruc_total + 1) +end loop fitt +evaluate ($nstruc_total = min($nstruc_total,$iterations.anastruc)) + +{* filenames *} +evaluate ($outroot = "NEWIT:analysis/" + $Filenames.fileroot) +evaluate ($trajfile=$outroot+"-reduced.crd") +evaluate ($dispfile=$outroot+"_rmsd.disp") + +set display=$dispfile end + +evaluate ($nstruc_i = 0) +while ($nstruc_i < $nstruc_total) loop fiti + + evaluate ($nstruc_i = $nstruc_i + 1) + + read trajectory + ascii true + input= $trajfile + begin $nstruc_i skip 1 stop $nstruc_i + end + + show aver (x) (all) + evaluate ($xc = $result) + show aver (y) (all) + evaluate ($yc = $result) + show aver (z) (all) + evaluate ($zc = $result) + + @RUN:get_random_rotation.cns(Rotation=$rand_rot;) + coor + center=($xc $yc $zc) + rotate quaternion $rand_rot.q0 $rand_rot.q1 $rand_rot.q2 $rand_rot.q3 + sele=(all) + end + + coor copy end + + evaluate ($nstruc_j = $nstruc_i) + while ($nstruc_j < $nstruc_total) loop fitj + evaluate ($nstruc_j = $nstruc_j + 1) + read trajectory + ascii true + input= $trajfile + begin $nstruc_j skip 1 stop $nstruc_j + end + ! fit on flexible interface of first molecule + coor sele= (attr store7 = 1) fit end + ! rms on flexible interface of remaining molecules + coor sele= (attr store7 > 1) rms end + display $nstruc_i $nstruc_j $result + end loop fitj + +end loop fiti + +evaluate ($outdis = "NEWIT:analysis/MTX_DONE") +set display=$outdis end +display DONE + +stop diff --git a/src/haddock/modules/flexref/cns/rotate_pdb.cns b/src/haddock/modules/flexref/cns/rotate_pdb.cns new file mode 100644 index 000000000..00d1183c9 --- /dev/null +++ b/src/haddock/modules/flexref/cns/rotate_pdb.cns @@ -0,0 +1,32 @@ +! rotate_pdb.cns +! Apply a random rotation to a molecule +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + coor orient sele=(all) end + + !random translation within a 10A cube + evaluate ($xd = 10.0 * (0.5 - ran())) + evaluate ($yd = 10.0 * (0.5 - ran())) + evaluate ($zd = 10.0 * (0.5 - ran())) + coor trans sele=(all) vector=($xd,$yd,$zd) end + + show aver (x) (all) + evaluate ($xc = $result) + show aver (y) (all) + evaluate ($yc = $result) + show aver (z) (all) + evaluate ($zc = $result) + + @RUN:get_random_rotation.cns(Rotation=$rand_rot;) + coor + center=($xc $yc $zc) + rotate quaternion $rand_rot.q0 $rand_rot.q1 $rand_rot.q2 $rand_rot.q3 + sele=(all) + end diff --git a/src/haddock/modules/flexref/cns/rotation180.cns b/src/haddock/modules/flexref/cns/rotation180.cns new file mode 100644 index 000000000..6444b33e0 --- /dev/null +++ b/src/haddock/modules/flexref/cns/rotation180.cns @@ -0,0 +1,115 @@ +! rotation180.cns +! Perform a 180 degree rotation around a vector perpendicular to +! the interface of the complex +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + + eval($distcu = 5.0) + eval($rotate180 = 180.0) + eval($xa = 0.0) + eval($ya = 0.0) + eval($za = 0.0) + eval($xb = 0.0) + eval($zb = 0.0) + eval($zb = 0.0) + + show aver (x) (segid $Toppar.prot_segid_$nchain1 and ((segid $Toppar.prot_segid_$nchain2) around $distcu)) + evaluate ($xa = $result) + show aver (y) (segid $Toppar.prot_segid_$nchain1 and ((segid $Toppar.prot_segid_$nchain2) around $distcu)) + evaluate ($ya = $result) + show aver (z) (segid $Toppar.prot_segid_$nchain1 and ((segid $Toppar.prot_segid_$nchain2) around $distcu)) + evaluate ($za = $result) + show aver (x) (segid $Toppar.prot_segid_$nchain2 and ((segid $Toppar.prot_segid_$nchain1) around $distcu)) + evaluate ($xb = $result) + show aver (y) (segid $Toppar.prot_segid_$nchain2 and ((segid $Toppar.prot_segid_$nchain1) around $distcu)) + evaluate ($yb = $result) + show aver (z) (segid $Toppar.prot_segid_$nchain2 and ((segid $Toppar.prot_segid_$nchain1) around $distcu)) + evaluate ($zb = $result) + eval($xdiff=$xa-$xb) + eval($ydiff=$ya-$yb) + eval($zdiff=$za-$zb) + eval($rnorm=$xdiff**2+$ydiff**2+$zdiff**2) + + if ($rnorm > 0.0) then + + coor + rotate sele= (segid $Toppar.prot_segid_$nchain2 or segid $watersegname_$nchain2 and not name MAP) + center=($xa $ya $za) + axis ($xdiff $ydiff $zdiff) + $rotate180 + end + + fix sele=(name OO) end + + minimize rigid + eval ($nch1 = 0) + while ($nch1 < $data.ncomponents) loop nloop1 + eval($nch1 = $nch1 + 1) + if ($Toppar.fix_origin_$nch1 eq false) then + group (segid $Toppar.prot_segid_$nch1 or segid $watersegname_$nch1 and not name MAP) + end if + translation=true + end loop nloop1 + translation=true + nstep 250 + nprint 10 + end + + minimize rigid + eval ($nch1 = 0) + while ($nch1 < $data.ncomponents) loop nloop1 + eval($nch1 = $nch1 + 1) + if ($Toppar.fix_origin_$nch1 eq false) then + group (segid $Toppar.prot_segid_$nch1 or segid $watersegname_$nch1 and not name MAP) + end if + translation=true + end loop nloop1 + translation=true + nstep 250 + nprint 10 + end + + energy end + + if ($anisotropy eq true) then + fix sele=(not all) end + fix sele=(name OO) end + minimize rigid + group (not (resn ANI or resn DAN or resn XAN or name MAP)) + translation=false + for $id in id ((resn ANI or resn DAN or resn XAN) and name OO) loop miniani + group (byres(id $id)) + translation=false + end loop miniani + translation=false + nstep 100 + drop 10.0 + nprint 10 + end + minimize rigid + eval ($nch1 = 0) + while ($nch1 < $data.ncomponents) loop nloop1 + eval($nch1 = $nch1 + 1) + if ($Toppar.fix_origin_$nch1 eq false) then + group (segid $Toppar.prot_segid_$nch1 or segid $watersegname_$nch1 and not name MAP) + end if + translation=true + end loop nloop1 + for $id in id ((resn ANI or resn DAN or resn XAN) and name OO) loop miniani + group (byres(id $id)) + translation=true + end loop miniani + translation=true + nstep 250 + nprint 10 + end + end if + + end if diff --git a/src/haddock/modules/flexref/cns/run.cns b/src/haddock/modules/flexref/cns/run.cns new file mode 100644 index 000000000..77f7f7f0f --- /dev/null +++ b/src/haddock/modules/flexref/cns/run.cns @@ -0,0 +1,5309 @@ +! run.cns +! The file containing all parameters for HADDOCK +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! +module( +iteration; +filenames; +data; +iterations; +saprotocol; +refine; +toppar; +analysis; +) + +{+ File: run.cns +} +{+ Description: this file contains all necessary information to run HADDOCK. +} + +{+ Authors: Ezgi Karaca, Joao Rodrigues, Mikael Trellet, Alexandre Bonvin
+HADDOCK version 2.4

+Initially adapted from ARIA of Nilges and Linge +} + +{+ Please cite the following references when using this protocol: +} +{+ reference: Cyril Dominguez, Rolf Boelens and Alexandre M.J.J. Bonvin (2003). HADDOCK: a protein-protein docking approach +based on biochemical and/or biophysical information. J. Am. Chem. Soc. 125, 1731-1737. +

+When using residual dipolar couplings in HADDOCK cite in addition:

+

  • A.D.J. van Dijk, D. Fushman and A.M.J.J. Bonvin (2005). Various strategies of using residual dipolar +couplings in NMR-driven protein docking: Application to Lys48-linked di-ubiquitin and validation against +15N-relaxation data. Proteins: Struc. Funct. & Bioinformatics, 60, 367-381.
  • +

    +When using diffusion anisotropy data in HADDOCK cite in addition:

    +

  • A.D.J. van Dijk, R. Kaptein, R. Boelens and A.M.J.J. Bonvin (2006). Combining NMR relaxation with +chemical shift perturbation data to drive protein-protein docking. J. Biomol. NMR, +34, 237-244.
  • +

    +When using solvated docking in HADDOCK cite in addition:

    +

  • A.D.J. van Dijk and A.M.J.J. Bonvin (2006). Solvated docking: introducing water into the modelling +of biomolecular complexes. Bioinformatics, 22 2340-2347. +

    +When performing flexible protein-DNA docking using HADDOCK cite in addition:

    +

  • M. van Dijk, A.D.J. van Dijk, V. Hsu, R. Boelens and A.M.J.J. Bonvin (2006). +Information-driven Protein-DNA Docking using HADDOCK: it is a matter of flexibility. +Nucl. Acids Res., 34 3317-3325.
  • +

    +When performing the Nmolecule integrative modelling protocol please cite:

    +

  • Ezgi Karaca, Joao P.G.L.M. Rodrigues, Andrea Graziadei, Alexandre M.J.J. Bonvin, Teresa Carlomagno (2017). +An Integrative Framework for Structure Determination of Molecular Machines. +Nature Methods, Advanced Online Publication.
  • ++} + +{- Guidelines for using this file: + - all strings must be quoted by double-quotes + - logical variables (true/false) are not quoted + - do not remove any evaluate statements from the file + - pathnames should not exceed 80 characters -} +{- begin block parameter definition -} define( + + +{======== number of molecules for docking ==================} +{* number of components *} +{===>} ncomponents=2; + + + +{======================= filenames =========================} +{* the name of your current project *} +{* this will be used as name for the generated structures *} +{===>} fileroot="e2a-hpr"; + +{* RUN directory *} +{* the absolute path of your current run, e.g. /home/haddock/run1*} +{===>} run_dir="/home/abonvin/haddock_git/haddock2.4/examples/e2a-hpr/run1"; +{* PDB file of molecule 1 *} +{===>} prot_coor_mol1="e2aP_1F3G.pdb"; +{* PSF file of molecule 1 *} +{===>} prot_psf_mol1="e2aP_1F3G.psf"; +{* segid of molecule 1 *} +{===>} prot_segid_mol1="A"; +{* fileroot of molecule 1 *} +{===>} prot_root_mol1="e2aP_1F3G"; +{* Fix Molecule at Origin during it0 *} +{+ choice: true false +} +{===>} fix_origin_mol1=false; +{* Is molecule 1 DNA? *} +{+ choice: true false +} +{===>} dna_mol1=false; +{* Is molecule 1 a cyclic peptide? *} +{+ choice: true false +} +{===>} cyclicpept_mol1=false; +{* Is molecule 1 a shape? *} +{+ choice: true false +} +{===>} shape_mol1=false; +{* Coarse grained molecule? *} +{+ choice: true false +} +{===>} cg_mol1=false; + +{* PDB file of molecule 2 *} +{===>} prot_coor_mol2="hpr_1.pdb"; +{* PSF file of molecule 2 *} +{===>} prot_psf_mol2="hpr_1.psf"; +{* segid file of molecule 2 *} +{===>} prot_segid_mol2="B"; +{* fileroot of molecule 2 *} +{===>} prot_root_mol2="hpr_1"; +{* Fix Molecule at Origin during it0 *} +{+ choice: true false +} +{===>} fix_origin_mol2=false; +{* Is molecule 2 DNA? *} +{+ choice: true false +} +{===>} dna_mol2=false; +{* Is molecule 2 a cyclic peptide? *} +{+ choice: true false +} +{===>} cyclicpept_mol2=false; +{* Is molecule 2 a shape? *} +{+ choice: true false +} +{===>} shape_mol2=false; +{* Coarse grained molecule? *} +{+ choice: true false +} +{===>} cg_mol2=false; + +{* PDB file of molecule 3 *} +{===>} prot_coor_mol3=""; +{* PSF file of molecule 3 *} +{===>} prot_psf_mol3=""; +{* segid file of molecule 3 *} +{===>} prot_segid_mol3="C"; +{* fileroot of molecule 3 *} +{===>} prot_root_mol3=""; +{* Fix Molecule at Origin during it0 *} +{+ choice: true false +} +{===>} fix_origin_mol3=false; +{* Is molecule 3 DNA? *} +{+ choice: true false +} +{===>} dna_mol3=false; +{* Is molecule 3 a cyclic peptide? *} +{+ choice: true false +} +{===>} cyclicpept_mol3=false; +{* Is molecule 3 a shape? *} +{+ choice: true false +} +{===>} shape_mol3=false; +{* Coarse grained molecule? *} +{+ choice: true false +} +{===>} cg_mol3=false; + +{* PDB file of molecule 4 *} +{===>} prot_coor_mol4=""; +{* PSF file of molecule 4 *} +{===>} prot_psf_mol4=""; +{* segid file of molecule 4 *} +{===>} prot_segid_mol4="D"; +{* fileroot of molecule 4 *} +{===>} prot_root_mol4=""; +{* Fix Molecule at Origin during it0 *} +{+ choice: true false +} +{===>} fix_origin_mol4=false; +{* Is molecule 4 DNA? *} +{+ choice: true false +} +{===>} dna_mol4=false; +{* Is molecule 4 a cyclic peptide? *} +{+ choice: true false +} +{===>} cyclicpept_mol4=false; +{* Is molecule 4 a shape? *} +{+ choice: true false +} +{===>} shape_mol4=false; +{* Coarse grained molecule? *} +{+ choice: true false +} +{===>} cg_mol4=false; + +{* PDB file of molecule 5 *} +{===>} prot_coor_mol5=""; +{* PSF file of molecule 5 *} +{===>} prot_psf_mol5=""; +{* segid file of molecule 5 *} +{===>} prot_segid_mol5="E"; +{* fileroot of molecule 5 *} +{===>} prot_root_mol5=""; +{* Fix Molecule at Origin during it0 *} +{+ choice: true false +} +{===>} fix_origin_mol5=false; +{* Is molecule 5 DNA? *} +{+ choice: true false +} +{===>} dna_mol5=false; +{* Is molecule 5 a cyclic peptide? *} +{+ choice: true false +} +{===>} cyclicpept_mol5=false; +{* Is molecule 5 a shape? *} +{+ choice: true false +} +{===>} shape_mol5=false; +{* Coarse grained molecule? *} +{+ choice: true false +} +{===>} cg_mol5=false; + +{* PDB file of molecule 6 *} +{===>} prot_coor_mol6=""; +{* PSF file of molecule 6 *} +{===>} prot_psf_mol6=""; +{* segid file of molecule 6 *} +{===>} prot_segid_mol6="F"; +{* fileroot of molecule 6 *} +{===>} prot_root_mol6=""; +{* Fix Molecule at Origin during it0 *} +{+ choice: true false +} +{===>} fix_origin_mol6=false; +{* Is molecule 6 DNA? *} +{+ choice: true false +} +{===>} dna_mol6=false; +{* Is molecule 6 a cyclic peptide? *} +{+ choice: true false +} +{===>} cyclicpept_mol6=false; +{* Is molecule 6 a shape? *} +{+ choice: true false +} +{===>} shape_mol6=false; +{* Coarse grained molecule? *} +{+ choice: true false +} +{===>} cg_mol6=false; + +{* PDB file of molecule 7 *} +{===>} prot_coor_mol7=""; +{* PSF file of molecule 7 *} +{===>} prot_psf_mol7=""; +{* segid file of molecule 7 *} +{===>} prot_segid_mol7="G"; +{* fileroot of molecule 7 *} +{===>} prot_root_mol7=""; +{* Fix Molecule at Origin during it0 *} +{+ choice: true false +} +{===>} fix_origin_mol7=false; +{* Is molecule 7 DNA? *} +{+ choice: true false +} +{===>} dna_mol7=false; +{* Is molecule 7 a cyclic peptide? *} +{+ choice: true false +} +{===>} cyclicpept_mol7=false; +{* Is molecule 7 a shape? *} +{+ choice: true false +} +{===>} shape_mol7=false; +{* Coarse grained molecule? *} +{+ choice: true false +} +{===>} cg_mol7=false; + +{* PDB file of molecule 8 *} +{===>} prot_coor_mol8=""; +{* PSF file of molecule 8 *} +{===>} prot_psf_mol8=""; +{* segid file of molecule 8 *} +{===>} prot_segid_mol8="H"; +{* fileroot of molecule 8 *} +{===>} prot_root_mol8=""; +{* Fix Molecule at Origin during it0 *} +{+ choice: true false +} +{===>} fix_origin_mol8=false; +{* Is molecule 8 DNA? *} +{+ choice: true false +} +{===>} dna_mol8=false; +{* Is molecule 8 a cyclic peptide? *} +{+ choice: true false +} +{===>} cyclicpept_mol8=false; +{* Is molecule 8 a shape? *} +{+ choice: true false +} +{===>} shape_mol8=false; +{* Coarse grained molecule? *} +{+ choice: true false +} +{===>} cg_mol8=false; + +{* PDB file of molecule 9 *} +{===>} prot_coor_mol9=""; +{* PSF file of molecule 9 *} +{===>} prot_psf_mol9=""; +{* segid file of molecule 9 *} +{===>} prot_segid_mol9="I"; +{* fileroot of molecule 9 *} +{===>} prot_root_mol9=""; +{* Fix Molecule at Origin during it0 *} +{+ choice: true false +} +{===>} fix_origin_mol9=false; +{* Is molecule 9 DNA? *} +{+ choice: true false +} +{===>} dna_mol9=false; +{* Is molecule 9 a cyclic peptide? *} +{+ choice: true false +} +{===>} cyclicpept_mol9=false; +{* Is molecule 9 a shape? *} +{+ choice: true false +} +{===>} shape_mol9=false; +{* Coarse grained molecule? *} +{+ choice: true false +} +{===>} cg_mol9=false; + +{* PDB file of molecule 10 *} +{===>} prot_coor_mol10=""; +{* PSF file of molecule 10 *} +{===>} prot_psf_mol10=""; +{* segid file of molecule 10 *} +{===>} prot_segid_mol10="J"; +{* fileroot of molecule 10 *} +{===>} prot_root_mol10=""; +{* Fix Molecule at Origin during it0 *} +{+ choice: true false +} +{===>} fix_origin_mol10=false; +{* Is molecule 10 DNA? *} +{+ choice: true false +} +{===>} dna_mol10=false; +{* Is molecule 10 a cyclic peptide? *} +{+ choice: true false +} +{===>} cyclicpept_mol10=false; +{* Is molecule 10 a shape? *} +{+ choice: true false +} +{===>} shape_mol10=false; +{* Coarse grained molecule? *} +{+ choice: true false +} +{===>} cg_mol10=false; + +{* PDB file of molecule 11 *} +{===>} prot_coor_mol11=""; +{* PSF file of molecule 11 *} +{===>} prot_psf_mol11=""; +{* segid file of molecule 11 *} +{===>} prot_segid_mol11="K"; +{* fileroot of molecule 11 *} +{===>} prot_root_mol11=""; +{* Fix Molecule at Origin during it0 *} +{+ choice: true false +} +{===>} fix_origin_mol11=false; +{* Is molecule 11 DNA? *} +{+ choice: true false +} +{===>} dna_mol11=false; +{* Is molecule 11 a cyclic peptide? *} +{+ choice: true false +} +{===>} cyclicpept_mol11=false; +{* Is molecule 11 a shape? *} +{+ choice: true false +} +{===>} shape_mol11=false; +{* Coarse grained molecule? *} +{+ choice: true false +} +{===>} cg_mol11=false; + +{* PDB file of molecule 12 *} +{===>} prot_coor_mol12=""; +{* PSF file of molecule 12 *} +{===>} prot_psf_mol12=""; +{* segid file of molecule 12 *} +{===>} prot_segid_mol12="L"; +{* fileroot of molecule 12 *} +{===>} prot_root_mol12=""; +{* Fix Molecule at Origin during it0 *} +{+ choice: true false +} +{===>} fix_origin_mol12=false; +{* Is molecule 12 DNA? *} +{+ choice: true false +} +{===>} dna_mol12=false; +{* Is molecule 12 a cyclic peptide? *} +{+ choice: true false +} +{===>} cyclicpept_mol12=false; +{* Is molecule 12 a shape? *} +{+ choice: true false +} +{===>} shape_mol12=false; +{* Coarse grained molecule? *} +{+ choice: true false +} +{===>} cg_mol12=false; + +{===>} prot_coor_mol13=""; +{* PSF file of molecule 13 *} +{===>} prot_psf_mol13=""; +{* segid file of molecule 13 *} +{===>} prot_segid_mol13="M"; +{* fileroot of molecule 13 *} +{===>} prot_root_mol13=""; +{* Fix Molecule at Origin during it0 *} +{+ choice: true false +} +{===>} fix_origin_mol13=false; +{* Is molecule 13 DNA? *} +{+ choice: true false +} +{===>} dna_mol13=false; +{* Is molecule 13 a cyclic peptide? *} +{+ choice: true false +} +{===>} cyclicpept_mol13=false; +{* Is molecule 13 a shape? *} +{+ choice: true false +} +{===>} shape_mol13=false; +{* Coarse grained molecule? *} +{+ choice: true false +} +{===>} cg_mol13=false; + +{===>} prot_coor_mol14=""; +{* PSF file of molecule 14 *} +{===>} prot_psf_mol14=""; +{* segid file of molecule 14 *} +{===>} prot_segid_mol14="N"; +{* fileroot of molecule 14 *} +{===>} prot_root_mol14=""; +{* Fix Molecule at Origin during it0 *} +{+ choice: true false +} +{===>} fix_origin_mol14=false; +{* Is molecule 14 DNA? *} +{+ choice: true false +} +{===>} dna_mol14=false; +{* Is molecule 14 a cyclic peptide? *} +{+ choice: true false +} +{===>} cyclicpept_mol14=false; +{* Is molecule 14 a shape? *} +{+ choice: true false +} +{===>} shape_mol14=false; +{* Coarse grained molecule? *} +{+ choice: true false +} +{===>} cg_mol14=false; + +{===>} prot_coor_mol15=""; +{* PSF file of molecule 15 *} +{===>} prot_psf_mol15=""; +{* segid file of molecule 15 *} +{===>} prot_segid_mol15="O"; +{* fileroot of molecule 15 *} +{===>} prot_root_mol15=""; +{* Fix Molecule at Origin during it0 *} +{+ choice: true false +} +{===>} fix_origin_mol15=false; +{* Is molecule 15 DNA? *} +{+ choice: true false +} +{===>} dna_mol15=false; +{* Is molecule 15 a cyclic peptide? *} +{+ choice: true false +} +{===>} cyclicpept_mol15=false; +{* Is molecule 15 a shape? *} +{+ choice: true false +} +{===>} shape_mol15=false; +{* Coarse grained molecule? *} +{+ choice: true false +} +{===>} cg_mol15=false; + +{===>} prot_coor_mol16=""; +{* PSF file of molecule 16 *} +{===>} prot_psf_mol16=""; +{* segid file of molecule 16 *} +{===>} prot_segid_mol16="P"; +{* fileroot of molecule 16 *} +{===>} prot_root_mol16=""; +{* Fix Molecule at Origin during it0 *} +{+ choice: true false +} +{===>} fix_origin_mol16=false; +{* Is molecule 16 DNA? *} +{+ choice: true false +} +{===>} dna_mol16=false; +{* Is molecule 16 a cyclic peptide? *} +{+ choice: true false +} +{===>} cyclicpept_mol16=false; +{* Is molecule 16 a shape? *} +{+ choice: true false +} +{===>} shape_mol16=false; +{* Coarse grained molecule? *} +{+ choice: true false +} +{===>} cg_mol16=false; + +{===>} prot_coor_mol17=""; +{* PSF file of molecule 17 *} +{===>} prot_psf_mol17=""; +{* segid file of molecule 17 *} +{===>} prot_segid_mol17="Q"; +{* fileroot of molecule 17 *} +{===>} prot_root_mol17=""; +{* Fix Molecule at Origin during it0 *} +{+ choice: true false +} +{===>} fix_origin_mol17=false; +{* Is molecule 17 DNA? *} +{+ choice: true false +} +{===>} dna_mol17=false; +{* Is molecule 17 a cyclic peptide? *} +{+ choice: true false +} +{===>} cyclicpept_mol17=false; +{* Is molecule 17 a shape? *} +{+ choice: true false +} +{===>} shape_mol17=false; +{* Coarse grained molecule? *} +{+ choice: true false +} +{===>} cg_mol17=false; + + +{===>} prot_coor_mol18=""; +{* PSF file of molecule 18 *} +{===>} prot_psf_mol18=""; +{* segid file of molecule 18 *} +{===>} prot_segid_mol18="R"; +{* fileroot of molecule 18 *} +{===>} prot_root_mol18=""; +{* Fix Molecule at Origin during it0 *} +{+ choice: true false +} +{===>} fix_origin_mol18=false; +{* Is molecule 18 DNA? *} +{+ choice: true false +} +{===>} dna_mol18=false; +{* Is molecule 18 a cyclic peptide? *} +{+ choice: true false +} +{===>} cyclicpept_mol18=false; +{* Is molecule 18 a shape? *} +{+ choice: true false +} +{===>} shape_mol18=false; +{* Coarse grained molecule? *} +{+ choice: true false +} +{===>} cg_mol18=false; + +{===>} prot_coor_mol19=""; +{* PSF file of molecule 19 *} +{===>} prot_psf_mol19=""; +{* segid file of molecule 19 *} +{===>} prot_segid_mol19="S"; +{* fileroot of molecule 19 *} +{===>} prot_root_mol19=""; +{* Fix Molecule at Origin during it0 *} +{+ choice: true false +} +{===>} fix_origin_mol19=false; +{* Is molecule 19 DNA? *} +{+ choice: true false +} +{===>} dna_mol19=false; +{* Is molecule 19 a cyclic peptide? *} +{+ choice: true false +} +{===>} cyclicpept_mol19=false; +{* Is molecule 19 a shape? *} +{+ choice: true false +} +{===>} shape_mol19=false; +{* Coarse grained molecule? *} +{+ choice: true false +} +{===>} cg_mol19=false; + +{===>} prot_coor_mol20=""; +{* PSF file of molecule 20 *} +{===>} prot_psf_mol20=""; +{* segid file of molecule 20 *} +{===>} prot_segid_mol20="T"; +{* fileroot of molecule 20 *} +{===>} prot_root_mol20=""; +{* Fix Molecule at Origin during it0 *} +{+ choice: true false +} +{===>} fix_origin_mol20=false; +{* Is molecule 20 DNA? *} +{+ choice: true false +} +{===>} dna_mol20=false; +{* Is molecule 20 a cyclic peptide? *} +{+ choice: true false +} +{===>} cyclicpept_mol20=false; +{* Is molecule 20 a shape? *} +{+ choice: true false +} +{===>} shape_mol20=false; +{* Coarse grained molecule? *} +{+ choice: true false +} +{===>} cg_mol20=false; + +{* Remove non-polar hydrogens? *} +{+ choice: true false +} +{===>} delenph=true; + +{* HADDOCK directory *} +{* the absolute path of the HADDOCK program files *} +{===>} haddock_dir="/home/abonvin/haddock_git/haddock2.4"; + +{* Logfile directory *} +{* specify a directory for the large CNS log files *} +{===>} temptrash_dir="/home/abonvin/haddock_git/haddock2.4/examples/e2a-hpr/run1"; + + +{==================== histidine patches =====================} +{* Automatically define histidine protonation state based on energetics *} +{===>} autohis=true; + +{* Patch to change doubly protonated HIS to singly protonated histidine (HD1) *} +{* just give the residue number of the histidines for the HISD patch, set them to zero if you don't want them *} + +{* Number of HISD for molecule 1 *} +{===>} numhisd_1=0; + +{===>} hisd_1_1=0; +{===>} hisd_1_2=0; +{===>} hisd_1_3=0; +{===>} hisd_1_4=0; +{===>} hisd_1_5=0; +{===>} hisd_1_6=0; +{===>} hisd_1_7=0; +{===>} hisd_1_8=0; +{===>} hisd_1_9=0; +{===>} hisd_1_10=0; +{===>} hisd_1_11=0; +{===>} hisd_1_12=0; +{===>} hisd_1_13=0; +{===>} hisd_1_14=0; +{===>} hisd_1_15=0; +{===>} hisd_1_16=0; +{===>} hisd_1_17=0; +{===>} hisd_1_18=0; +{===>} hisd_1_19=0; +{===>} hisd_1_20=0; +{===>} hisd_1_21=0; +{===>} hisd_1_22=0; +{===>} hisd_1_23=0; +{===>} hisd_1_24=0; +{===>} hisd_1_25=0; + +{* Number of HISD for molecule 2 *} +{===>} numhisd_2=0; + +{===>} hisd_2_1=0; +{===>} hisd_2_2=0; +{===>} hisd_2_3=0; +{===>} hisd_2_4=0; +{===>} hisd_2_5=0; +{===>} hisd_2_6=0; +{===>} hisd_2_7=0; +{===>} hisd_2_8=0; +{===>} hisd_2_9=0; +{===>} hisd_2_10=0; +{===>} hisd_2_11=0; +{===>} hisd_2_12=0; +{===>} hisd_2_13=0; +{===>} hisd_2_14=0; +{===>} hisd_2_15=0; +{===>} hisd_2_16=0; +{===>} hisd_2_17=0; +{===>} hisd_2_18=0; +{===>} hisd_2_19=0; +{===>} hisd_2_20=0; +{===>} hisd_2_21=0; +{===>} hisd_2_22=0; +{===>} hisd_2_23=0; +{===>} hisd_2_24=0; +{===>} hisd_2_25=0; + +{* Number of HISD for molecule 3 *} +{===>} numhisd_3=0; + +{===>} hisd_3_1=0; +{===>} hisd_3_2=0; +{===>} hisd_3_3=0; +{===>} hisd_3_4=0; +{===>} hisd_3_5=0; +{===>} hisd_3_6=0; +{===>} hisd_3_7=0; +{===>} hisd_3_8=0; +{===>} hisd_3_9=0; +{===>} hisd_3_10=0; +{===>} hisd_3_11=0; +{===>} hisd_3_12=0; +{===>} hisd_3_13=0; +{===>} hisd_3_14=0; +{===>} hisd_3_15=0; +{===>} hisd_3_16=0; +{===>} hisd_3_17=0; +{===>} hisd_3_18=0; +{===>} hisd_3_19=0; +{===>} hisd_3_20=0; +{===>} hisd_3_21=0; +{===>} hisd_3_22=0; +{===>} hisd_3_23=0; +{===>} hisd_3_24=0; +{===>} hisd_3_25=0; + +{* Number of HISD for molecule 4 *} +{===>} numhisd_4=0; + +{===>} hisd_4_1=0; +{===>} hisd_4_2=0; +{===>} hisd_4_3=0; +{===>} hisd_4_4=0; +{===>} hisd_4_5=0; +{===>} hisd_4_6=0; +{===>} hisd_4_7=0; +{===>} hisd_4_8=0; +{===>} hisd_4_9=0; +{===>} hisd_4_10=0; +{===>} hisd_4_11=0; +{===>} hisd_4_12=0; +{===>} hisd_4_13=0; +{===>} hisd_4_14=0; +{===>} hisd_4_15=0; +{===>} hisd_4_16=0; +{===>} hisd_4_17=0; +{===>} hisd_4_18=0; +{===>} hisd_4_19=0; +{===>} hisd_4_20=0; +{===>} hisd_4_21=0; +{===>} hisd_4_22=0; +{===>} hisd_4_23=0; +{===>} hisd_4_24=0; +{===>} hisd_4_25=0; + +{* Number of HISD for molecule 5 *} +{===>} numhisd_5=0; + +{===>} hisd_5_1=0; +{===>} hisd_5_2=0; +{===>} hisd_5_3=0; +{===>} hisd_5_4=0; +{===>} hisd_5_5=0; +{===>} hisd_5_6=0; +{===>} hisd_5_7=0; +{===>} hisd_5_8=0; +{===>} hisd_5_9=0; +{===>} hisd_5_10=0; +{===>} hisd_5_11=0; +{===>} hisd_5_12=0; +{===>} hisd_5_13=0; +{===>} hisd_5_14=0; +{===>} hisd_5_15=0; +{===>} hisd_5_16=0; +{===>} hisd_5_17=0; +{===>} hisd_5_18=0; +{===>} hisd_5_19=0; +{===>} hisd_5_20=0; +{===>} hisd_5_21=0; +{===>} hisd_5_22=0; +{===>} hisd_5_23=0; +{===>} hisd_5_24=0; +{===>} hisd_5_25=0; + +{* Number of HISD for molecule 6 *} +{===>} numhisd_6=0; + +{===>} hisd_6_1=0; +{===>} hisd_6_2=0; +{===>} hisd_6_3=0; +{===>} hisd_6_4=0; +{===>} hisd_6_5=0; +{===>} hisd_6_6=0; +{===>} hisd_6_7=0; +{===>} hisd_6_8=0; +{===>} hisd_6_9=0; +{===>} hisd_6_10=0; +{===>} hisd_6_11=0; +{===>} hisd_6_12=0; +{===>} hisd_6_13=0; +{===>} hisd_6_14=0; +{===>} hisd_6_15=0; +{===>} hisd_6_16=0; +{===>} hisd_6_17=0; +{===>} hisd_6_18=0; +{===>} hisd_6_19=0; +{===>} hisd_6_20=0; +{===>} hisd_6_21=0; +{===>} hisd_6_22=0; +{===>} hisd_6_23=0; +{===>} hisd_6_24=0; +{===>} hisd_6_25=0; + +{* Number of HISD for molecule 7 *} +{===>} numhisd_7=0; + +{===>} hisd_7_1=0; +{===>} hisd_7_2=0; +{===>} hisd_7_3=0; +{===>} hisd_7_4=0; +{===>} hisd_7_5=0; +{===>} hisd_7_6=0; +{===>} hisd_7_7=0; +{===>} hisd_7_8=0; +{===>} hisd_7_9=0; +{===>} hisd_7_10=0; +{===>} hisd_7_11=0; +{===>} hisd_7_12=0; +{===>} hisd_7_13=0; +{===>} hisd_7_14=0; +{===>} hisd_7_15=0; +{===>} hisd_7_16=0; +{===>} hisd_7_17=0; +{===>} hisd_7_18=0; +{===>} hisd_7_19=0; +{===>} hisd_7_20=0; +{===>} hisd_7_21=0; +{===>} hisd_7_22=0; +{===>} hisd_7_23=0; +{===>} hisd_7_24=0; +{===>} hisd_7_25=0; + +{* Number of HISD for molecule 8 *} +{===>} numhisd_8=0; + +{===>} hisd_8_1=0; +{===>} hisd_8_2=0; +{===>} hisd_8_3=0; +{===>} hisd_8_4=0; +{===>} hisd_8_5=0; +{===>} hisd_8_6=0; +{===>} hisd_8_7=0; +{===>} hisd_8_8=0; +{===>} hisd_8_9=0; +{===>} hisd_8_10=0; +{===>} hisd_8_11=0; +{===>} hisd_8_12=0; +{===>} hisd_8_13=0; +{===>} hisd_8_14=0; +{===>} hisd_8_15=0; +{===>} hisd_8_16=0; +{===>} hisd_8_17=0; +{===>} hisd_8_18=0; +{===>} hisd_8_19=0; +{===>} hisd_8_20=0; +{===>} hisd_8_21=0; +{===>} hisd_8_22=0; +{===>} hisd_8_23=0; +{===>} hisd_8_24=0; +{===>} hisd_8_25=0; + +{* Number of HISD for molecule 9 *} +{===>} numhisd_9=0; + +{===>} hisd_9_1=0; +{===>} hisd_9_2=0; +{===>} hisd_9_3=0; +{===>} hisd_9_4=0; +{===>} hisd_9_5=0; +{===>} hisd_9_6=0; +{===>} hisd_9_7=0; +{===>} hisd_9_8=0; +{===>} hisd_9_9=0; +{===>} hisd_9_10=0; +{===>} hisd_9_11=0; +{===>} hisd_9_12=0; +{===>} hisd_9_13=0; +{===>} hisd_9_14=0; +{===>} hisd_9_15=0; +{===>} hisd_9_16=0; +{===>} hisd_9_17=0; +{===>} hisd_9_18=0; +{===>} hisd_9_19=0; +{===>} hisd_9_20=0; +{===>} hisd_9_21=0; +{===>} hisd_9_22=0; +{===>} hisd_9_23=0; +{===>} hisd_9_24=0; +{===>} hisd_9_25=0; + +{* Number of HISD for molecule 10 *} +{===>} numhisd_10=0; + +{===>} hisd_10_1=0; +{===>} hisd_10_2=0; +{===>} hisd_10_3=0; +{===>} hisd_10_4=0; +{===>} hisd_10_5=0; +{===>} hisd_10_6=0; +{===>} hisd_10_7=0; +{===>} hisd_10_8=0; +{===>} hisd_10_9=0; +{===>} hisd_10_10=0; +{===>} hisd_10_11=0; +{===>} hisd_10_12=0; +{===>} hisd_10_13=0; +{===>} hisd_10_14=0; +{===>} hisd_10_15=0; +{===>} hisd_10_16=0; +{===>} hisd_10_17=0; +{===>} hisd_10_18=0; +{===>} hisd_10_19=0; +{===>} hisd_10_20=0; +{===>} hisd_10_21=0; +{===>} hisd_10_22=0; +{===>} hisd_10_23=0; +{===>} hisd_10_24=0; +{===>} hisd_10_25=0; + +{* Number of HISD for molecule 11 *} +{===>} numhisd_11=0; + +{===>} hisd_11_1=0; +{===>} hisd_11_2=0; +{===>} hisd_11_3=0; +{===>} hisd_11_4=0; +{===>} hisd_11_5=0; +{===>} hisd_11_6=0; +{===>} hisd_11_7=0; +{===>} hisd_11_8=0; +{===>} hisd_11_9=0; +{===>} hisd_11_10=0; +{===>} hisd_11_11=0; +{===>} hisd_11_12=0; +{===>} hisd_11_13=0; +{===>} hisd_11_14=0; +{===>} hisd_11_15=0; +{===>} hisd_11_16=0; +{===>} hisd_11_17=0; +{===>} hisd_11_18=0; +{===>} hisd_11_19=0; +{===>} hisd_11_20=0; +{===>} hisd_11_21=0; +{===>} hisd_11_22=0; +{===>} hisd_11_23=0; +{===>} hisd_11_24=0; +{===>} hisd_11_25=0; + +{* Number of HISD for molecule 12 *} +{===>} numhisd_12=0; + +{===>} hisd_12_1=0; +{===>} hisd_12_2=0; +{===>} hisd_12_3=0; +{===>} hisd_12_4=0; +{===>} hisd_12_5=0; +{===>} hisd_12_6=0; +{===>} hisd_12_7=0; +{===>} hisd_12_8=0; +{===>} hisd_12_9=0; +{===>} hisd_12_10=0; +{===>} hisd_12_11=0; +{===>} hisd_12_12=0; +{===>} hisd_12_13=0; +{===>} hisd_12_14=0; +{===>} hisd_12_15=0; +{===>} hisd_12_16=0; +{===>} hisd_12_17=0; +{===>} hisd_12_18=0; +{===>} hisd_12_19=0; +{===>} hisd_12_20=0; +{===>} hisd_12_21=0; +{===>} hisd_12_22=0; +{===>} hisd_12_23=0; +{===>} hisd_12_24=0; +{===>} hisd_12_25=0; + +{* Number of HISD for molecule 13 *} +{===>} numhisd_13=0; + +{===>} hisd_13_1=0; +{===>} hisd_13_2=0; +{===>} hisd_13_3=0; +{===>} hisd_13_4=0; +{===>} hisd_13_5=0; +{===>} hisd_13_6=0; +{===>} hisd_13_7=0; +{===>} hisd_13_8=0; +{===>} hisd_13_9=0; +{===>} hisd_13_10=0; +{===>} hisd_13_11=0; +{===>} hisd_13_12=0; +{===>} hisd_13_13=0; +{===>} hisd_13_14=0; +{===>} hisd_13_15=0; +{===>} hisd_13_16=0; +{===>} hisd_13_17=0; +{===>} hisd_13_18=0; +{===>} hisd_13_19=0; +{===>} hisd_13_20=0; +{===>} hisd_13_21=0; +{===>} hisd_13_22=0; +{===>} hisd_13_23=0; +{===>} hisd_13_24=0; +{===>} hisd_13_25=0; + +{* Number of HISD for molecule 14 *} +{===>} numhisd_14=0; + +{===>} hisd_14_1=0; +{===>} hisd_14_2=0; +{===>} hisd_14_3=0; +{===>} hisd_14_4=0; +{===>} hisd_14_5=0; +{===>} hisd_14_6=0; +{===>} hisd_14_7=0; +{===>} hisd_14_8=0; +{===>} hisd_14_9=0; +{===>} hisd_14_10=0; +{===>} hisd_14_11=0; +{===>} hisd_14_12=0; +{===>} hisd_14_13=0; +{===>} hisd_14_14=0; +{===>} hisd_14_15=0; +{===>} hisd_14_16=0; +{===>} hisd_14_17=0; +{===>} hisd_14_18=0; +{===>} hisd_14_19=0; +{===>} hisd_14_20=0; +{===>} hisd_14_21=0; +{===>} hisd_14_22=0; +{===>} hisd_14_23=0; +{===>} hisd_14_24=0; +{===>} hisd_14_25=0; + +{* Number of HISD for molecule 15 *} +{===>} numhisd_15=0; + +{===>} hisd_15_1=0; +{===>} hisd_15_2=0; +{===>} hisd_15_3=0; +{===>} hisd_15_4=0; +{===>} hisd_15_5=0; +{===>} hisd_15_6=0; +{===>} hisd_15_7=0; +{===>} hisd_15_8=0; +{===>} hisd_15_9=0; +{===>} hisd_15_10=0; +{===>} hisd_15_11=0; +{===>} hisd_15_12=0; +{===>} hisd_15_13=0; +{===>} hisd_15_14=0; +{===>} hisd_15_15=0; +{===>} hisd_15_16=0; +{===>} hisd_15_17=0; +{===>} hisd_15_18=0; +{===>} hisd_15_19=0; +{===>} hisd_15_20=0; +{===>} hisd_15_21=0; +{===>} hisd_15_22=0; +{===>} hisd_15_23=0; +{===>} hisd_15_24=0; +{===>} hisd_15_25=0; + +{* Number of HISD for molecule 16 *} +{===>} numhisd_16=0; + +{===>} hisd_16_1=0; +{===>} hisd_16_2=0; +{===>} hisd_16_3=0; +{===>} hisd_16_4=0; +{===>} hisd_16_5=0; +{===>} hisd_16_6=0; +{===>} hisd_16_7=0; +{===>} hisd_16_8=0; +{===>} hisd_16_9=0; +{===>} hisd_16_10=0; +{===>} hisd_16_11=0; +{===>} hisd_16_12=0; +{===>} hisd_16_13=0; +{===>} hisd_16_14=0; +{===>} hisd_16_15=0; +{===>} hisd_16_16=0; +{===>} hisd_16_17=0; +{===>} hisd_16_18=0; +{===>} hisd_16_19=0; +{===>} hisd_16_20=0; +{===>} hisd_16_21=0; +{===>} hisd_16_22=0; +{===>} hisd_16_23=0; +{===>} hisd_16_24=0; +{===>} hisd_16_25=0; + +{* Number of HISD for molecule 17 *} +{===>} numhisd_17=0; + +{===>} hisd_17_1=0; +{===>} hisd_17_2=0; +{===>} hisd_17_3=0; +{===>} hisd_17_4=0; +{===>} hisd_17_5=0; +{===>} hisd_17_6=0; +{===>} hisd_17_7=0; +{===>} hisd_17_8=0; +{===>} hisd_17_9=0; +{===>} hisd_17_10=0; +{===>} hisd_17_11=0; +{===>} hisd_17_12=0; +{===>} hisd_17_13=0; +{===>} hisd_17_14=0; +{===>} hisd_17_15=0; +{===>} hisd_17_16=0; +{===>} hisd_17_17=0; +{===>} hisd_17_18=0; +{===>} hisd_17_19=0; +{===>} hisd_17_20=0; +{===>} hisd_17_21=0; +{===>} hisd_17_22=0; +{===>} hisd_17_23=0; +{===>} hisd_17_24=0; +{===>} hisd_17_25=0; + +{* Number of HISD for molecule 18 *} +{===>} numhisd_18=0; + +{===>} hisd_18_1=0; +{===>} hisd_18_2=0; +{===>} hisd_18_3=0; +{===>} hisd_18_4=0; +{===>} hisd_18_5=0; +{===>} hisd_18_6=0; +{===>} hisd_18_7=0; +{===>} hisd_18_8=0; +{===>} hisd_18_9=0; +{===>} hisd_18_10=0; +{===>} hisd_18_11=0; +{===>} hisd_18_12=0; +{===>} hisd_18_13=0; +{===>} hisd_18_14=0; +{===>} hisd_18_15=0; +{===>} hisd_18_16=0; +{===>} hisd_18_17=0; +{===>} hisd_18_18=0; +{===>} hisd_18_19=0; +{===>} hisd_18_20=0; +{===>} hisd_18_21=0; +{===>} hisd_18_22=0; +{===>} hisd_18_23=0; +{===>} hisd_18_24=0; +{===>} hisd_18_25=0; + +{* Number of HISD for molecule 19 *} +{===>} numhisd_19=0; + +{===>} hisd_19_1=0; +{===>} hisd_19_2=0; +{===>} hisd_19_3=0; +{===>} hisd_19_4=0; +{===>} hisd_19_5=0; +{===>} hisd_19_6=0; +{===>} hisd_19_7=0; +{===>} hisd_19_8=0; +{===>} hisd_19_9=0; +{===>} hisd_19_10=0; +{===>} hisd_19_11=0; +{===>} hisd_19_12=0; +{===>} hisd_19_13=0; +{===>} hisd_19_14=0; +{===>} hisd_19_15=0; +{===>} hisd_19_16=0; +{===>} hisd_19_17=0; +{===>} hisd_19_18=0; +{===>} hisd_19_19=0; +{===>} hisd_19_20=0; +{===>} hisd_19_21=0; +{===>} hisd_19_22=0; +{===>} hisd_19_23=0; +{===>} hisd_19_24=0; +{===>} hisd_19_25=0; + +{* Number of HISD for molecule 20 *} +{===>} numhisd_20=0; + +{===>} hisd_20_1=0; +{===>} hisd_20_2=0; +{===>} hisd_20_3=0; +{===>} hisd_20_4=0; +{===>} hisd_20_5=0; +{===>} hisd_20_6=0; +{===>} hisd_20_7=0; +{===>} hisd_20_8=0; +{===>} hisd_20_9=0; +{===>} hisd_20_10=0; +{===>} hisd_20_11=0; +{===>} hisd_20_12=0; +{===>} hisd_20_13=0; +{===>} hisd_20_14=0; +{===>} hisd_20_15=0; +{===>} hisd_20_16=0; +{===>} hisd_20_17=0; +{===>} hisd_20_18=0; +{===>} hisd_20_19=0; +{===>} hisd_20_20=0; +{===>} hisd_20_21=0; +{===>} hisd_20_22=0; +{===>} hisd_20_23=0; +{===>} hisd_20_24=0; +{===>} hisd_20_25=0; + +{* Patch to change doubly protonated HIS to singly protonated histidine (HE1) *} +{* just give the residue number of the histidines for the HISD patch, set them to zero if you don't want them *} + +{* Number of HISE for molecule 1 *} +{===>} numhise_1=0; + +{===>} hise_1_1=0; +{===>} hise_1_2=0; +{===>} hise_1_3=0; +{===>} hise_1_4=0; +{===>} hise_1_5=0; +{===>} hise_1_6=0; +{===>} hise_1_7=0; +{===>} hise_1_8=0; +{===>} hise_1_9=0; +{===>} hise_1_10=0; +{===>} hise_1_11=0; +{===>} hise_1_12=0; +{===>} hise_1_13=0; +{===>} hise_1_14=0; +{===>} hise_1_15=0; +{===>} hise_1_16=0; +{===>} hise_1_17=0; +{===>} hise_1_18=0; +{===>} hise_1_19=0; +{===>} hise_1_20=0; +{===>} hise_1_21=0; +{===>} hise_1_22=0; +{===>} hise_1_23=0; +{===>} hise_1_24=0; +{===>} hise_1_25=0; + +{* Number of hise for molecule 2 *} +{===>} numhise_2=0; + +{===>} hise_2_1=0; +{===>} hise_2_2=0; +{===>} hise_2_3=0; +{===>} hise_2_4=0; +{===>} hise_2_5=0; +{===>} hise_2_6=0; +{===>} hise_2_7=0; +{===>} hise_2_8=0; +{===>} hise_2_9=0; +{===>} hise_2_10=0; +{===>} hise_2_11=0; +{===>} hise_2_12=0; +{===>} hise_2_13=0; +{===>} hise_2_14=0; +{===>} hise_2_15=0; +{===>} hise_2_16=0; +{===>} hise_2_17=0; +{===>} hise_2_18=0; +{===>} hise_2_19=0; +{===>} hise_2_20=0; +{===>} hise_2_21=0; +{===>} hise_2_22=0; +{===>} hise_2_23=0; +{===>} hise_2_24=0; +{===>} hise_2_25=0; + +{* Number of hise for molecule 3 *} +{===>} numhise_3=0; + +{===>} hise_3_1=0; +{===>} hise_3_2=0; +{===>} hise_3_3=0; +{===>} hise_3_4=0; +{===>} hise_3_5=0; +{===>} hise_3_6=0; +{===>} hise_3_7=0; +{===>} hise_3_8=0; +{===>} hise_3_9=0; +{===>} hise_3_10=0; +{===>} hise_3_11=0; +{===>} hise_3_12=0; +{===>} hise_3_13=0; +{===>} hise_3_14=0; +{===>} hise_3_15=0; +{===>} hise_3_16=0; +{===>} hise_3_17=0; +{===>} hise_3_18=0; +{===>} hise_3_19=0; +{===>} hise_3_20=0; +{===>} hise_3_21=0; +{===>} hise_3_22=0; +{===>} hise_3_23=0; +{===>} hise_3_24=0; +{===>} hise_3_25=0; + +{* Number of hise for molecule 4 *} +{===>} numhise_4=0; + +{===>} hise_4_1=0; +{===>} hise_4_2=0; +{===>} hise_4_3=0; +{===>} hise_4_4=0; +{===>} hise_4_5=0; +{===>} hise_4_6=0; +{===>} hise_4_7=0; +{===>} hise_4_8=0; +{===>} hise_4_9=0; +{===>} hise_4_10=0; +{===>} hise_4_11=0; +{===>} hise_4_12=0; +{===>} hise_4_13=0; +{===>} hise_4_14=0; +{===>} hise_4_15=0; +{===>} hise_4_16=0; +{===>} hise_4_17=0; +{===>} hise_4_18=0; +{===>} hise_4_19=0; +{===>} hise_4_20=0; +{===>} hise_4_21=0; +{===>} hise_4_22=0; +{===>} hise_4_23=0; +{===>} hise_4_24=0; +{===>} hise_4_25=0; + +{* Number of hise for molecule 5 *} +{===>} numhise_5=0; + +{===>} hise_5_1=0; +{===>} hise_5_2=0; +{===>} hise_5_3=0; +{===>} hise_5_4=0; +{===>} hise_5_5=0; +{===>} hise_5_6=0; +{===>} hise_5_7=0; +{===>} hise_5_8=0; +{===>} hise_5_9=0; +{===>} hise_5_10=0; +{===>} hise_5_11=0; +{===>} hise_5_12=0; +{===>} hise_5_13=0; +{===>} hise_5_14=0; +{===>} hise_5_15=0; +{===>} hise_5_16=0; +{===>} hise_5_17=0; +{===>} hise_5_18=0; +{===>} hise_5_19=0; +{===>} hise_5_20=0; +{===>} hise_5_21=0; +{===>} hise_5_22=0; +{===>} hise_5_23=0; +{===>} hise_5_24=0; +{===>} hise_5_25=0; + +{* Number of hise for molecule 6 *} +{===>} numhise_6=0; + +{===>} hise_6_1=0; +{===>} hise_6_2=0; +{===>} hise_6_3=0; +{===>} hise_6_4=0; +{===>} hise_6_5=0; +{===>} hise_6_6=0; +{===>} hise_6_7=0; +{===>} hise_6_8=0; +{===>} hise_6_9=0; +{===>} hise_6_10=0; +{===>} hise_6_11=0; +{===>} hise_6_12=0; +{===>} hise_6_13=0; +{===>} hise_6_14=0; +{===>} hise_6_15=0; +{===>} hise_6_16=0; +{===>} hise_6_17=0; +{===>} hise_6_18=0; +{===>} hise_6_19=0; +{===>} hise_6_20=0; +{===>} hise_6_21=0; +{===>} hise_6_22=0; +{===>} hise_6_23=0; +{===>} hise_6_24=0; +{===>} hise_6_25=0; + +{* Number of hise for molecule 7 *} +{===>} numhise_7=0; + +{===>} hise_7_1=0; +{===>} hise_7_2=0; +{===>} hise_7_3=0; +{===>} hise_7_4=0; +{===>} hise_7_5=0; +{===>} hise_7_6=0; +{===>} hise_7_7=0; +{===>} hise_7_8=0; +{===>} hise_7_9=0; +{===>} hise_7_10=0; +{===>} hise_7_11=0; +{===>} hise_7_12=0; +{===>} hise_7_13=0; +{===>} hise_7_14=0; +{===>} hise_7_15=0; +{===>} hise_7_16=0; +{===>} hise_7_17=0; +{===>} hise_7_18=0; +{===>} hise_7_19=0; +{===>} hise_7_20=0; +{===>} hise_7_21=0; +{===>} hise_7_22=0; +{===>} hise_7_23=0; +{===>} hise_7_24=0; +{===>} hise_7_25=0; + +{* Number of hise for molecule 8 *} +{===>} numhise_8=0; + +{===>} hise_8_1=0; +{===>} hise_8_2=0; +{===>} hise_8_3=0; +{===>} hise_8_4=0; +{===>} hise_8_5=0; +{===>} hise_8_6=0; +{===>} hise_8_7=0; +{===>} hise_8_8=0; +{===>} hise_8_9=0; +{===>} hise_8_10=0; +{===>} hise_8_11=0; +{===>} hise_8_12=0; +{===>} hise_8_13=0; +{===>} hise_8_14=0; +{===>} hise_8_15=0; +{===>} hise_8_16=0; +{===>} hise_8_17=0; +{===>} hise_8_18=0; +{===>} hise_8_19=0; +{===>} hise_8_20=0; +{===>} hise_8_21=0; +{===>} hise_8_22=0; +{===>} hise_8_23=0; +{===>} hise_8_24=0; +{===>} hise_8_25=0; + +{* Number of hise for molecule 9 *} +{===>} numhise_9=0; + +{===>} hise_9_1=0; +{===>} hise_9_2=0; +{===>} hise_9_3=0; +{===>} hise_9_4=0; +{===>} hise_9_5=0; +{===>} hise_9_6=0; +{===>} hise_9_7=0; +{===>} hise_9_8=0; +{===>} hise_9_9=0; +{===>} hise_9_10=0; +{===>} hise_9_11=0; +{===>} hise_9_12=0; +{===>} hise_9_13=0; +{===>} hise_9_14=0; +{===>} hise_9_15=0; +{===>} hise_9_16=0; +{===>} hise_9_17=0; +{===>} hise_9_18=0; +{===>} hise_9_19=0; +{===>} hise_9_20=0; +{===>} hise_9_21=0; +{===>} hise_9_22=0; +{===>} hise_9_23=0; +{===>} hise_9_24=0; +{===>} hise_9_25=0; + +{* Number of hise for molecule 10 *} +{===>} numhise_10=0; + +{===>} hise_10_1=0; +{===>} hise_10_2=0; +{===>} hise_10_3=0; +{===>} hise_10_4=0; +{===>} hise_10_5=0; +{===>} hise_10_6=0; +{===>} hise_10_7=0; +{===>} hise_10_8=0; +{===>} hise_10_9=0; +{===>} hise_10_10=0; +{===>} hise_10_11=0; +{===>} hise_10_12=0; +{===>} hise_10_13=0; +{===>} hise_10_14=0; +{===>} hise_10_15=0; +{===>} hise_10_16=0; +{===>} hise_10_17=0; +{===>} hise_10_18=0; +{===>} hise_10_19=0; +{===>} hise_10_20=0; +{===>} hise_10_21=0; +{===>} hise_10_22=0; +{===>} hise_10_23=0; +{===>} hise_10_24=0; +{===>} hise_10_25=0; + +{* Number of hise for molecule 11 *} +{===>} numhise_11=0; + +{===>} hise_11_1=0; +{===>} hise_11_2=0; +{===>} hise_11_3=0; +{===>} hise_11_4=0; +{===>} hise_11_5=0; +{===>} hise_11_6=0; +{===>} hise_11_7=0; +{===>} hise_11_8=0; +{===>} hise_11_9=0; +{===>} hise_11_10=0; +{===>} hise_11_11=0; +{===>} hise_11_12=0; +{===>} hise_11_13=0; +{===>} hise_11_14=0; +{===>} hise_11_15=0; +{===>} hise_11_16=0; +{===>} hise_11_17=0; +{===>} hise_11_18=0; +{===>} hise_11_19=0; +{===>} hise_11_20=0; +{===>} hise_11_21=0; +{===>} hise_11_22=0; +{===>} hise_11_23=0; +{===>} hise_11_24=0; +{===>} hise_11_25=0; + +{* Number of hise for molecule 12 *} +{===>} numhise_12=0; + +{===>} hise_12_1=0; +{===>} hise_12_2=0; +{===>} hise_12_3=0; +{===>} hise_12_4=0; +{===>} hise_12_5=0; +{===>} hise_12_6=0; +{===>} hise_12_7=0; +{===>} hise_12_8=0; +{===>} hise_12_9=0; +{===>} hise_12_10=0; +{===>} hise_12_11=0; +{===>} hise_12_12=0; +{===>} hise_12_13=0; +{===>} hise_12_14=0; +{===>} hise_12_15=0; +{===>} hise_12_16=0; +{===>} hise_12_17=0; +{===>} hise_12_18=0; +{===>} hise_12_19=0; +{===>} hise_12_20=0; +{===>} hise_12_21=0; +{===>} hise_12_22=0; +{===>} hise_12_23=0; +{===>} hise_12_24=0; +{===>} hise_12_25=0; + +{* Number of hise for molecule 13 *} +{===>} numhise_13=0; + +{===>} hise_13_1=0; +{===>} hise_13_2=0; +{===>} hise_13_3=0; +{===>} hise_13_4=0; +{===>} hise_13_5=0; +{===>} hise_13_6=0; +{===>} hise_13_7=0; +{===>} hise_13_8=0; +{===>} hise_13_9=0; +{===>} hise_13_10=0; +{===>} hise_13_11=0; +{===>} hise_13_12=0; +{===>} hise_13_13=0; +{===>} hise_13_14=0; +{===>} hise_13_15=0; +{===>} hise_13_16=0; +{===>} hise_13_17=0; +{===>} hise_13_18=0; +{===>} hise_13_19=0; +{===>} hise_13_20=0; +{===>} hise_13_21=0; +{===>} hise_13_22=0; +{===>} hise_13_23=0; +{===>} hise_13_24=0; +{===>} hise_13_25=0; + +{* Number of hise for molecule 14 *} +{===>} numhise_14=0; + +{===>} hise_14_1=0; +{===>} hise_14_2=0; +{===>} hise_14_3=0; +{===>} hise_14_4=0; +{===>} hise_14_5=0; +{===>} hise_14_6=0; +{===>} hise_14_7=0; +{===>} hise_14_8=0; +{===>} hise_14_9=0; +{===>} hise_14_10=0; +{===>} hise_14_11=0; +{===>} hise_14_12=0; +{===>} hise_14_13=0; +{===>} hise_14_14=0; +{===>} hise_14_15=0; +{===>} hise_14_16=0; +{===>} hise_14_17=0; +{===>} hise_14_18=0; +{===>} hise_14_19=0; +{===>} hise_14_20=0; +{===>} hise_14_21=0; +{===>} hise_14_22=0; +{===>} hise_14_23=0; +{===>} hise_14_24=0; +{===>} hise_14_25=0; + +{* Number of hise for molecule 15 *} +{===>} numhise_15=0; + +{===>} hise_15_1=0; +{===>} hise_15_2=0; +{===>} hise_15_3=0; +{===>} hise_15_4=0; +{===>} hise_15_5=0; +{===>} hise_15_6=0; +{===>} hise_15_7=0; +{===>} hise_15_8=0; +{===>} hise_15_9=0; +{===>} hise_15_10=0; +{===>} hise_15_11=0; +{===>} hise_15_12=0; +{===>} hise_15_13=0; +{===>} hise_15_14=0; +{===>} hise_15_15=0; +{===>} hise_15_16=0; +{===>} hise_15_17=0; +{===>} hise_15_18=0; +{===>} hise_15_19=0; +{===>} hise_15_20=0; +{===>} hise_15_21=0; +{===>} hise_15_22=0; +{===>} hise_15_23=0; +{===>} hise_15_24=0; +{===>} hise_15_25=0; + +{* Number of hise for molecule 16 *} +{===>} numhise_16=0; + +{===>} hise_16_1=0; +{===>} hise_16_2=0; +{===>} hise_16_3=0; +{===>} hise_16_4=0; +{===>} hise_16_5=0; +{===>} hise_16_6=0; +{===>} hise_16_7=0; +{===>} hise_16_8=0; +{===>} hise_16_9=0; +{===>} hise_16_10=0; +{===>} hise_16_11=0; +{===>} hise_16_12=0; +{===>} hise_16_13=0; +{===>} hise_16_14=0; +{===>} hise_16_15=0; +{===>} hise_16_16=0; +{===>} hise_16_17=0; +{===>} hise_16_18=0; +{===>} hise_16_19=0; +{===>} hise_16_20=0; +{===>} hise_16_21=0; +{===>} hise_16_22=0; +{===>} hise_16_23=0; +{===>} hise_16_24=0; +{===>} hise_16_25=0; + +{* Number of hise for molecule 17 *} +{===>} numhise_17=0; + +{===>} hise_17_1=0; +{===>} hise_17_2=0; +{===>} hise_17_3=0; +{===>} hise_17_4=0; +{===>} hise_17_5=0; +{===>} hise_17_6=0; +{===>} hise_17_7=0; +{===>} hise_17_8=0; +{===>} hise_17_9=0; +{===>} hise_17_10=0; +{===>} hise_17_11=0; +{===>} hise_17_12=0; +{===>} hise_17_13=0; +{===>} hise_17_14=0; +{===>} hise_17_15=0; +{===>} hise_17_16=0; +{===>} hise_17_17=0; +{===>} hise_17_18=0; +{===>} hise_17_19=0; +{===>} hise_17_20=0; +{===>} hise_17_21=0; +{===>} hise_17_22=0; +{===>} hise_17_23=0; +{===>} hise_17_24=0; +{===>} hise_17_25=0; + +{* Number of hise for molecule 18 *} +{===>} numhise_18=0; + +{===>} hise_18_1=0; +{===>} hise_18_2=0; +{===>} hise_18_3=0; +{===>} hise_18_4=0; +{===>} hise_18_5=0; +{===>} hise_18_6=0; +{===>} hise_18_7=0; +{===>} hise_18_8=0; +{===>} hise_18_9=0; +{===>} hise_18_10=0; +{===>} hise_18_11=0; +{===>} hise_18_12=0; +{===>} hise_18_13=0; +{===>} hise_18_14=0; +{===>} hise_18_15=0; +{===>} hise_18_16=0; +{===>} hise_18_17=0; +{===>} hise_18_18=0; +{===>} hise_18_19=0; +{===>} hise_18_20=0; +{===>} hise_18_21=0; +{===>} hise_18_22=0; +{===>} hise_18_23=0; +{===>} hise_18_24=0; +{===>} hise_18_25=0; + +{* Number of hise for molecule 19 *} +{===>} numhise_19=0; + +{===>} hise_19_1=0; +{===>} hise_19_2=0; +{===>} hise_19_3=0; +{===>} hise_19_4=0; +{===>} hise_19_5=0; +{===>} hise_19_6=0; +{===>} hise_19_7=0; +{===>} hise_19_8=0; +{===>} hise_19_9=0; +{===>} hise_19_10=0; +{===>} hise_19_11=0; +{===>} hise_19_12=0; +{===>} hise_19_13=0; +{===>} hise_19_14=0; +{===>} hise_19_15=0; +{===>} hise_19_16=0; +{===>} hise_19_17=0; +{===>} hise_19_18=0; +{===>} hise_19_19=0; +{===>} hise_19_20=0; +{===>} hise_19_21=0; +{===>} hise_19_22=0; +{===>} hise_19_23=0; +{===>} hise_19_24=0; +{===>} hise_19_25=0; + +{* Number of hise for molecule 20 *} +{===>} numhise_20=0; + +{===>} hise_20_1=0; +{===>} hise_20_2=0; +{===>} hise_20_3=0; +{===>} hise_20_4=0; +{===>} hise_20_5=0; +{===>} hise_20_6=0; +{===>} hise_20_7=0; +{===>} hise_20_8=0; +{===>} hise_20_9=0; +{===>} hise_20_10=0; +{===>} hise_20_11=0; +{===>} hise_20_12=0; +{===>} hise_20_13=0; +{===>} hise_20_14=0; +{===>} hise_20_15=0; +{===>} hise_20_16=0; +{===>} hise_20_17=0; +{===>} hise_20_18=0; +{===>} hise_20_19=0; +{===>} hise_20_20=0; +{===>} hise_20_21=0; +{===>} hise_20_22=0; +{===>} hise_20_23=0; +{===>} hise_20_24=0; +{===>} hise_20_25=0; + + +{========= Definition of semi-flexible interface ============} +{* Define the interface of each molecule.*} +{* Side-chains and backbone of these residues will be allowed to move during semi-flexible refinement*} + +{* number of semi-flexible segments for molecule 1 (-1 for automated mode) *} +{* Note that current max is 10 (edit the run.cns to add more segments *} + +{===>} nseg_1=-1; + +{* Residues of molecule 1 at interface *} +{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} + +{===>} start_seg_1_1=""; +{===>} end_seg_1_1=""; +{===>} start_seg_1_2=""; +{===>} end_seg_1_2=""; +{===>} start_seg_1_3=""; +{===>} end_seg_1_3=""; +{===>} start_seg_1_4=""; +{===>} end_seg_1_4=""; +{===>} start_seg_1_5=""; +{===>} end_seg_1_5=""; +{===>} start_seg_1_6=""; +{===>} end_seg_1_6=""; +{===>} start_seg_1_7=""; +{===>} end_seg_1_7=""; +{===>} start_seg_1_8=""; +{===>} end_seg_1_8=""; +{===>} start_seg_1_9=""; +{===>} end_seg_1_9=""; +{===>} start_seg_1_10=""; +{===>} end_seg_1_10=""; + +{* number of semi-flexible segments for molecule 2 (-1 for automated mode) *} +{* Note that current max is 10 (edit the run.cns to add more segments *} + +{===>} nseg_2=-1; + +{* Residues of molecule 2 at interface *} +{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} +{===>} start_seg_2_1=""; +{===>} end_seg_2_1=""; +{===>} start_seg_2_2=""; +{===>} end_seg_2_2=""; +{===>} start_seg_2_3=""; +{===>} end_seg_2_3=""; +{===>} start_seg_2_4=""; +{===>} end_seg_2_4=""; +{===>} start_seg_2_5=""; +{===>} end_seg_2_5=""; +{===>} start_seg_2_6=""; +{===>} end_seg_2_6=""; +{===>} start_seg_2_7=""; +{===>} end_seg_2_7=""; +{===>} start_seg_2_8=""; +{===>} end_seg_2_8=""; +{===>} start_seg_2_9=""; +{===>} end_seg_2_9=""; +{===>} start_seg_2_10=""; +{===>} end_seg_2_10=""; + +{* number of semi-flexible segments for molecule 3 (-1 for automated mode) *} +{* Note that current max is 10 (edit the run.cns to add more segments *} + +{===>} nseg_3=-1; + +{* Residues of molecule 3 at interface *} +{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} +{===>} start_seg_3_1=""; +{===>} end_seg_3_1=""; +{===>} start_seg_3_2=""; +{===>} end_seg_3_2=""; +{===>} start_seg_3_3=""; +{===>} end_seg_3_3=""; +{===>} start_seg_3_4=""; +{===>} end_seg_3_4=""; +{===>} start_seg_3_5=""; +{===>} end_seg_3_5=""; +{===>} start_seg_3_6=""; +{===>} end_seg_3_6=""; +{===>} start_seg_3_7=""; +{===>} end_seg_3_7=""; +{===>} start_seg_3_8=""; +{===>} end_seg_3_8=""; +{===>} start_seg_3_9=""; +{===>} end_seg_3_9=""; +{===>} start_seg_3_10=""; +{===>} end_seg_3_10=""; + +{* number of semi-flexible segments for molecule 4 (-1 for automated mode) *} +{* Note that current max is 10 (edit the run.cns to add more segments *} + +{===>} nseg_4=-1; + +{* Residues of molecule 4 at interface *} +{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} +{===>} start_seg_4_1=""; +{===>} end_seg_4_1=""; +{===>} start_seg_4_2=""; +{===>} end_seg_4_2=""; +{===>} start_seg_4_3=""; +{===>} end_seg_4_3=""; +{===>} start_seg_4_4=""; +{===>} end_seg_4_4=""; +{===>} start_seg_4_5=""; +{===>} end_seg_4_5=""; +{===>} start_seg_4_6=""; +{===>} end_seg_4_6=""; +{===>} start_seg_4_7=""; +{===>} end_seg_4_7=""; +{===>} start_seg_4_8=""; +{===>} end_seg_4_8=""; +{===>} start_seg_4_9=""; +{===>} end_seg_4_9=""; +{===>} start_seg_4_10=""; +{===>} end_seg_4_10=""; + +{* number of semi-flexible segments for molecule 5 (-1 for automated mode) *} +{* Note that current max is 10 (edit the run.cns to add more segments *} + +{===>} nseg_5=-1; + +{* Residues of molecule 5 at interface *} +{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} +{===>} start_seg_5_1=""; +{===>} end_seg_5_1=""; +{===>} start_seg_5_2=""; +{===>} end_seg_5_2=""; +{===>} start_seg_5_3=""; +{===>} end_seg_5_3=""; +{===>} start_seg_5_4=""; +{===>} end_seg_5_4=""; +{===>} start_seg_5_5=""; +{===>} end_seg_5_5=""; +{===>} start_seg_5_6=""; +{===>} end_seg_5_6=""; +{===>} start_seg_5_7=""; +{===>} end_seg_5_7=""; +{===>} start_seg_5_8=""; +{===>} end_seg_5_8=""; +{===>} start_seg_5_9=""; +{===>} end_seg_5_9=""; +{===>} start_seg_5_10=""; +{===>} end_seg_5_10=""; + +{* number of semi-flexible segments for molecule 6 (-1 for automated mode) *} +{* Note that current max is 10 (edit the run.cns to add more segments *} + +{===>} nseg_6=-1; + +{* Residues of molecule 6 at interface *} +{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} +{===>} start_seg_1=""; +{===>} end_seg_1=""; +{===>} start_seg_2=""; +{===>} end_seg_2=""; +{===>} start_seg_3=""; +{===>} end_seg_3=""; +{===>} start_seg_4=""; +{===>} end_seg_4=""; +{===>} start_seg_5=""; +{===>} end_seg_5=""; +{===>} start_seg_6=""; +{===>} end_seg_6=""; +{===>} start_seg_7=""; +{===>} end_seg_7=""; +{===>} start_seg_8=""; +{===>} end_seg_8=""; +{===>} start_seg_9=""; +{===>} end_seg_9=""; +{===>} start_seg_10=""; +{===>} end_seg_10=""; + +{* number of semi-flexible segments for molecule 7 (-1 for automated mode) *} +{* Note that current max is 10 (edit the run.cns to add more segments *} + +{===>} nseg_7=-1; + +{* Residues of molecule 7 at interface *} +{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} +{===>} start_seg_7_1=""; +{===>} end_seg_7_1=""; +{===>} start_seg_7_2=""; +{===>} end_seg_7_2=""; +{===>} start_seg_7_3=""; +{===>} end_seg_7_3=""; +{===>} start_seg_7_4=""; +{===>} end_seg_7_4=""; +{===>} start_seg_7_5=""; +{===>} end_seg_7_5=""; +{===>} start_seg_7_6=""; +{===>} end_seg_7_6=""; +{===>} start_seg_7_7=""; +{===>} end_seg_7_7=""; +{===>} start_seg_7_8=""; +{===>} end_seg_7_8=""; +{===>} start_seg_7_9=""; +{===>} end_seg_7_9=""; +{===>} start_seg_7_10=""; +{===>} end_seg_7_10=""; + +{* number of semi-flexible segments for molecule 8 (-1 for automated mode) *} +{* Note that current max is 10 (edit the run.cns to add more segments *} + +{===>} nseg_8=-1; + +{* Residues of molecule 8 at interface *} +{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} +{===>} start_seg_8_1=""; +{===>} end_seg_8_1=""; +{===>} start_seg_8_2=""; +{===>} end_seg_8_2=""; +{===>} start_seg_8_3=""; +{===>} end_seg_8_3=""; +{===>} start_seg_8_4=""; +{===>} end_seg_8_4=""; +{===>} start_seg_8_5=""; +{===>} end_seg_8_5=""; +{===>} start_seg_8_6=""; +{===>} end_seg_8_6=""; +{===>} start_seg_8_7=""; +{===>} end_seg_8_7=""; +{===>} start_seg_8_8=""; +{===>} end_seg_8_8=""; +{===>} start_seg_8_9=""; +{===>} end_seg_8_9=""; +{===>} start_seg_8_10=""; +{===>} end_seg_8_10=""; + +{* number of semi-flexible segments for molecule 9 (-1 for automated mode) *} +{* Note that current max is 10 (edit the run.cns to add more segments *} + +{===>} nseg_9=-1; + +{* Residues of molecule 9 at interface *} +{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} +{===>} start_seg_9_1=""; +{===>} end_seg_9_1=""; +{===>} start_seg_9_2=""; +{===>} end_seg_9_2=""; +{===>} start_seg_9_3=""; +{===>} end_seg_9_3=""; +{===>} start_seg_9_4=""; +{===>} end_seg_9_4=""; +{===>} start_seg_9_5=""; +{===>} end_seg_9_5=""; +{===>} start_seg_9_6=""; +{===>} end_seg_9_6=""; +{===>} start_seg_9_7=""; +{===>} end_seg_9_7=""; +{===>} start_seg_9_8=""; +{===>} end_seg_9_8=""; +{===>} start_seg_9_9=""; +{===>} end_seg_9_9=""; +{===>} start_seg_9_10=""; +{===>} end_seg_9_10=""; + +{* number of semi-flexible segments for molecule 10 (-1 for automated mode) *} +{* Note that current max is 10 (edit the run.cns to add more segments *} + +{===>} nseg_10=-1; + +{* Residues of molecule 10 at interface *} +{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} +{===>} start_seg_10_1=""; +{===>} end_seg_10_1=""; +{===>} start_seg_10_2=""; +{===>} end_seg_10_2=""; +{===>} start_seg_10_3=""; +{===>} end_seg_10_3=""; +{===>} start_seg_10_4=""; +{===>} end_seg_10_4=""; +{===>} start_seg_10_5=""; +{===>} end_seg_10_5=""; +{===>} start_seg_10_6=""; +{===>} end_seg_10_6=""; +{===>} start_seg_10_7=""; +{===>} end_seg_10_7=""; +{===>} start_seg_10_8=""; +{===>} end_seg_10_8=""; +{===>} start_seg_10_9=""; +{===>} end_seg_10_9=""; +{===>} start_seg_10_10=""; +{===>} end_seg_10_10=""; + +{* number of semi-flexible segments for molecule 11 (-1 for automated mode) *} +{* Note that current max is 10 (edit the run.cns to add more segments *} + +{===>} nseg_11=-1; + +{* Residues of molecule 11 at interface *} +{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} +{===>} start_seg_11_1=""; +{===>} end_seg_11_1=""; +{===>} start_seg_11_2=""; +{===>} end_seg_11_2=""; +{===>} start_seg_11_3=""; +{===>} end_seg_11_3=""; +{===>} start_seg_11_4=""; +{===>} end_seg_11_4=""; +{===>} start_seg_11_5=""; +{===>} end_seg_11_5=""; +{===>} start_seg_11_6=""; +{===>} end_seg_11_6=""; +{===>} start_seg_11_7=""; +{===>} end_seg_11_7=""; +{===>} start_seg_11_8=""; +{===>} end_seg_11_8=""; +{===>} start_seg_11_9=""; +{===>} end_seg_11_9=""; +{===>} start_seg_11_10=""; +{===>} end_seg_11_10=""; + +{* number of semi-flexible segments for molecule 12 (-1 for automated mode) *} +{* Note that current max is 10 (edit the run.cns to add more segments *} + +{===>} nseg_12=-1; + +{* Residues of molecule 12 at interface *} +{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} +{===>} start_seg_12_1=""; +{===>} end_seg_12_1=""; +{===>} start_seg_12_2=""; +{===>} end_seg_12_2=""; +{===>} start_seg_12_3=""; +{===>} end_seg_12_3=""; +{===>} start_seg_12_4=""; +{===>} end_seg_12_4=""; +{===>} start_seg_12_5=""; +{===>} end_seg_12_5=""; +{===>} start_seg_12_6=""; +{===>} end_seg_12_6=""; +{===>} start_seg_12_7=""; +{===>} end_seg_12_7=""; +{===>} start_seg_12_8=""; +{===>} end_seg_12_8=""; +{===>} start_seg_12_9=""; +{===>} end_seg_12_9=""; +{===>} start_seg_12_10=""; +{===>} end_seg_12_10=""; + +{* number of semi-flexible segments for molecule 13 (-1 for automated mode) *} +{* Note that current max is 10 (edit the run.cns to add more segments *} + +{===>} nseg_13=-1; + +{* Residues of molecule 13 at interface *} +{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} +{===>} start_seg_13_1=""; +{===>} end_seg_13_1=""; +{===>} start_seg_13_2=""; +{===>} end_seg_13_2=""; +{===>} start_seg_13_3=""; +{===>} end_seg_13_3=""; +{===>} start_seg_13_4=""; +{===>} end_seg_13_4=""; +{===>} start_seg_13_5=""; +{===>} end_seg_13_5=""; +{===>} start_seg_13_6=""; +{===>} end_seg_13_6=""; +{===>} start_seg_13_7=""; +{===>} end_seg_13_7=""; +{===>} start_seg_13_8=""; +{===>} end_seg_13_8=""; +{===>} start_seg_13_9=""; +{===>} end_seg_13_9=""; +{===>} start_seg_13_10=""; +{===>} end_seg_13_10=""; + +{* number of semi-flexible segments for molecule 14 (-1 for automated mode) *} +{* Note that current max is 10 (edit the run.cns to add more segments *} + +{===>} nseg_14=-1; + +{* Residues of molecule 14 at interface *} +{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} +{===>} start_seg_14_1=""; +{===>} end_seg_14_1=""; +{===>} start_seg_14_2=""; +{===>} end_seg_14_2=""; +{===>} start_seg_14_3=""; +{===>} end_seg_14_3=""; +{===>} start_seg_14_4=""; +{===>} end_seg_14_4=""; +{===>} start_seg_14_5=""; +{===>} end_seg_14_5=""; +{===>} start_seg_14_6=""; +{===>} end_seg_14_6=""; +{===>} start_seg_14_7=""; +{===>} end_seg_14_7=""; +{===>} start_seg_14_8=""; +{===>} end_seg_14_8=""; +{===>} start_seg_14_9=""; +{===>} end_seg_14_9=""; +{===>} start_seg_14_10=""; +{===>} end_seg_14_10=""; + +{* number of semi-flexible segments for molecule 15 (-1 for automated mode) *} +{* Note that current max is 10 (edit the run.cns to add more segments *} + +{===>} nseg_15=-1; + +{* Residues of molecule 15 at interface *} +{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} +{===>} start_seg_15_1=""; +{===>} end_seg_15_1=""; +{===>} start_seg_15_2=""; +{===>} end_seg_15_2=""; +{===>} start_seg_15_3=""; +{===>} end_seg_15_3=""; +{===>} start_seg_15_4=""; +{===>} end_seg_15_4=""; +{===>} start_seg_15_5=""; +{===>} end_seg_15_5=""; +{===>} start_seg_15_6=""; +{===>} end_seg_15_6=""; +{===>} start_seg_15_7=""; +{===>} end_seg_15_7=""; +{===>} start_seg_15_8=""; +{===>} end_seg_15_8=""; +{===>} start_seg_15_9=""; +{===>} end_seg_15_9=""; +{===>} start_seg_15_10=""; +{===>} end_seg_15_10=""; + +{* number of semi-flexible segments for molecule 16 (-1 for automated mode) *} +{* Note that current max is 10 (edit the run.cns to add more segments *} + +{===>} nseg_16=-1; + +{* Residues of molecule 16 at interface *} +{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} +{===>} start_seg_16_1=""; +{===>} end_seg_16_1=""; +{===>} start_seg_16_2=""; +{===>} end_seg_16_2=""; +{===>} start_seg_16_3=""; +{===>} end_seg_16_3=""; +{===>} start_seg_16_4=""; +{===>} end_seg_16_4=""; +{===>} start_seg_16_5=""; +{===>} end_seg_16_5=""; +{===>} start_seg_16_6=""; +{===>} end_seg_16_6=""; +{===>} start_seg_16_7=""; +{===>} end_seg_16_7=""; +{===>} start_seg_16_8=""; +{===>} end_seg_16_8=""; +{===>} start_seg_16_9=""; +{===>} end_seg_16_9=""; +{===>} start_seg_16_10=""; +{===>} end_seg_16_10=""; + +{* number of semi-flexible segments for molecule 17 (-1 for automated mode) *} +{* Note that current max is 10 (edit the run.cns to add more segments *} + +{===>} nseg_17=-1; + +{* Residues of molecule 17 at interface *} +{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} +{===>} start_seg_17_1=""; +{===>} end_seg_17_1=""; +{===>} start_seg_17_2=""; +{===>} end_seg_17_2=""; +{===>} start_seg_17_3=""; +{===>} end_seg_17_3=""; +{===>} start_seg_17_4=""; +{===>} end_seg_17_4=""; +{===>} start_seg_17_5=""; +{===>} end_seg_17_5=""; +{===>} start_seg_17_6=""; +{===>} end_seg_17_6=""; +{===>} start_seg_17_7=""; +{===>} end_seg_17_7=""; +{===>} start_seg_17_8=""; +{===>} end_seg_17_8=""; +{===>} start_seg_17_9=""; +{===>} end_seg_17_9=""; +{===>} start_seg_17_10=""; +{===>} end_seg_17_10=""; + +{* number of semi-flexible segments for molecule 18 (-1 for automated mode) *} +{* Note that current max is 10 (edit the run.cns to add more segments *} + +{===>} nseg_18=-1; + +{* Residues of molecule 18 at interface *} +{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} +{===>} start_seg_18_1=""; +{===>} end_seg_18_1=""; +{===>} start_seg_18_2=""; +{===>} end_seg_18_2=""; +{===>} start_seg_18_3=""; +{===>} end_seg_18_3=""; +{===>} start_seg_18_4=""; +{===>} end_seg_18_4=""; +{===>} start_seg_18_5=""; +{===>} end_seg_18_5=""; +{===>} start_seg_18_6=""; +{===>} end_seg_18_6=""; +{===>} start_seg_18_7=""; +{===>} end_seg_18_7=""; +{===>} start_seg_18_8=""; +{===>} end_seg_18_8=""; +{===>} start_seg_18_9=""; +{===>} end_seg_18_9=""; +{===>} start_seg_18_10=""; +{===>} end_seg_18_10=""; + +{* number of semi-flexible segments for molecule 19 (-1 for automated mode) *} +{* Note that current max is 10 (edit the run.cns to add more segments *} + +{===>} nseg_19=-1; + +{* Residues of molecule 19 at interface *} +{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} +{===>} start_seg_19_1=""; +{===>} end_seg_19_1=""; +{===>} start_seg_19_2=""; +{===>} end_seg_19_2=""; +{===>} start_seg_19_3=""; +{===>} end_seg_19_3=""; +{===>} start_seg_19_4=""; +{===>} end_seg_19_4=""; +{===>} start_seg_19_5=""; +{===>} end_seg_19_5=""; +{===>} start_seg_19_6=""; +{===>} end_seg_19_6=""; +{===>} start_seg_19_7=""; +{===>} end_seg_19_7=""; +{===>} start_seg_19_8=""; +{===>} end_seg_19_8=""; +{===>} start_seg_19_9=""; +{===>} end_seg_19_9=""; +{===>} start_seg_19_10=""; +{===>} end_seg_19_10=""; + +{* number of semi-flexible segments for molecule 20 (-1 for automated mode) *} +{* Note that current max is 10 (edit the run.cns to add more segments *} + +{===>} nseg_20=-1; + +{* Residues of molecule 20 at interface *} +{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} +{===>} start_seg_20_1=""; +{===>} end_seg_20_1=""; +{===>} start_seg_20_2=""; +{===>} end_seg_20_2=""; +{===>} start_seg_20_3=""; +{===>} end_seg_20_3=""; +{===>} start_seg_20_4=""; +{===>} end_seg_20_4=""; +{===>} start_seg_20_5=""; +{===>} end_seg_20_5=""; +{===>} start_seg_20_6=""; +{===>} end_seg_20_6=""; +{===>} start_seg_20_7=""; +{===>} end_seg_20_7=""; +{===>} start_seg_20_8=""; +{===>} end_seg_20_8=""; +{===>} start_seg_20_9=""; +{===>} end_seg_20_9=""; +{===>} start_seg_20_10=""; +{===>} end_seg_20_10=""; + +{=========== Definition of fully flexible segments ==========} +{* Define the fully flexible segment of each molecule.*} +{* These segments will be allowed to move at all stages of it1 *} + +{* Number of fully flexible segments for molecule 1 *} +{* Note that current max is 5 (edit the run.cns to add more segments *} + +{===>} nfle_1=0; + +{* Fully flexible segments of molecule 1 *} +{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} + +{===>} start_fle_1_1=""; +{===>} end_fle_1_1=""; +{===>} start_fle_1_2=""; +{===>} end_fle_1_2=""; +{===>} start_fle_1_3=""; +{===>} end_fle_1_3=""; +{===>} start_fle_1_4=""; +{===>} end_fle_1_4=""; +{===>} start_fle_1_5=""; +{===>} end_fle_1_5=""; + +{* Fully flexible segments for molecule 2 *} +{* Note that current max is 5 (edit the run.cns to add more segments *} + +{===>} nfle_2=0; + +{* Residues of molecule 2 at interface *} +{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} +{===>} start_fle_2_1=""; +{===>} end_fle_2_1=""; +{===>} start_fle_2_2=""; +{===>} end_fle_2_2=""; +{===>} start_fle_2_3=""; +{===>} end_fle_2_3=""; +{===>} start_fle_2_4=""; +{===>} end_fle_2_4=""; +{===>} start_fle_2_5=""; +{===>} end_fle_2_5=""; + +{* Fully flexible segments for molecule 3 *} +{* Note that current max is 5 (edit the run.cns to add more segments *} + +{===>} nfle_3=0; + +{* Residues of molecule 3 at interface *} +{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} +{===>} start_fle_3_1=""; +{===>} end_fle_3_1=""; +{===>} start_fle_3_2=""; +{===>} end_fle_3_2=""; +{===>} start_fle_3_3=""; +{===>} end_fle_3_3=""; +{===>} start_fle_3_4=""; +{===>} end_fle_3_4=""; +{===>} start_fle_3_5=""; +{===>} end_fle_3_5=""; + +{* Fully flexible segments for molecule 4 *} +{* Note that current max is 5 (edit the run.cns to add more segments *} + +{===>} nfle_4=0; + +{* Residues of molecule 4 at interface *} +{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} +{===>} start_fle_4_1=""; +{===>} end_fle_4_1=""; +{===>} start_fle_4_2=""; +{===>} end_fle_4_2=""; +{===>} start_fle_4_3=""; +{===>} end_fle_4_3=""; +{===>} start_fle_4_4=""; +{===>} end_fle_4_4=""; +{===>} start_fle_4_5=""; +{===>} end_fle_4_5=""; + + +{* Fully flexible segments for molecule 5 *} +{* Note that current max is 5 (edit the run.cns to add more segments *} + +{===>} nfle_5=0; + +{* Residues of molecule 5 at interface *} +{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} +{===>} start_fle_5_1=""; +{===>} end_fle_5_1=""; +{===>} start_fle_5_2=""; +{===>} end_fle_5_2=""; +{===>} start_fle_5_3=""; +{===>} end_fle_5_3=""; +{===>} start_fle_5_4=""; +{===>} end_fle_5_4=""; +{===>} start_fle_5_5=""; +{===>} end_fle_5_5=""; + + +{* Fully flexible segments for molecule 6 *} +{* Note that current max is 5 (edit the run.cns to add more segments *} + +{===>} nfle_6=0; + +{* Residues of molecule 6 at interface *} +{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} +{===>} start_fle_6_1=""; +{===>} end_fle_6_1=""; +{===>} start_fle_6_2=""; +{===>} end_fle_6_2=""; +{===>} start_fle_6_3=""; +{===>} end_fle_6_3=""; +{===>} start_fle_6_4=""; +{===>} end_fle_6_4=""; +{===>} start_fle_6_5=""; +{===>} end_fle_6_5=""; + + +{* Fully flexible segments for molecule 7 *} +{* Note that current max is 5 (edit the run.cns to add more segments *} + +{===>} nfle_7=0; + +{* Residues of molecule 7 at interface *} +{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} +{===>} start_fle_7_1=""; +{===>} end_fle_7_1=""; +{===>} start_fle_7_2=""; +{===>} end_fle_7_2=""; +{===>} start_fle_7_3=""; +{===>} end_fle_7_3=""; +{===>} start_fle_7_4=""; +{===>} end_fle_7_4=""; +{===>} start_fle_7_5=""; +{===>} end_fle_7_5=""; + +{* Fully flexible segments for molecule 8 *} +{* Note that current max is 5 (edit the run.cns to add more segments *} + +{===>} nfle_8=0; + +{* Residues of molecule 8 at interface *} +{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} +{===>} start_fle_8_1=""; +{===>} end_fle_8_1=""; +{===>} start_fle_8_2=""; +{===>} end_fle_8_2=""; +{===>} start_fle_8_3=""; +{===>} end_fle_8_3=""; +{===>} start_fle_8_4=""; +{===>} end_fle_8_4=""; +{===>} start_fle_8_5=""; +{===>} end_fle_8_5=""; + +{* Fully flexible segments for molecule 9 *} +{* Note that current max is 5 (edit the run.cns to add more segments *} + +{===>} nfle_9=0; + +{* Residues of molecule 9 at interface *} +{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} +{===>} start_fle_9_1=""; +{===>} end_fle_9_1=""; +{===>} start_fle_9_2=""; +{===>} end_fle_9_2=""; +{===>} start_fle_9_3=""; +{===>} end_fle_9_3=""; +{===>} start_fle_9_4=""; +{===>} end_fle_9_4=""; +{===>} start_fle_9_5=""; +{===>} end_fle_9_5=""; + +{* Fully flexible segments for molecule 10 *} +{* Note that current max is 5 (edit the run.cns to add more segments *} + +{===>} nfle_10=0; + +{* Residues of molecule 10 at interface *} +{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} +{===>} start_fle_10_1=""; +{===>} end_fle_10_1=""; +{===>} start_fle_10_2=""; +{===>} end_fle_10_2=""; +{===>} start_fle_10_3=""; +{===>} end_fle_10_3=""; +{===>} start_fle_10_4=""; +{===>} end_fle_10_4=""; +{===>} start_fle_10_5=""; +{===>} end_fle_10_5=""; + +{* Fully flexible segments for molecule 11 *} +{* Note that current max is 5 (edit the run.cns to add more segments *} + +{===>} nfle_11=0; + +{* Residues of molecule 11 at interface *} +{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} +{===>} start_fle_11_1=""; +{===>} end_fle_11_1=""; +{===>} start_fle_11_2=""; +{===>} end_fle_11_2=""; +{===>} start_fle_11_3=""; +{===>} end_fle_11_3=""; +{===>} start_fle_11_4=""; +{===>} end_fle_11_4=""; +{===>} start_fle_11_5=""; +{===>} end_fle_11_5=""; + +{* Fully flexible segments for molecule 12 *} +{* Note that current max is 5 (edit the run.cns to add more segments *} + +{===>} nfle_12=0; + +{* Residues of molecule 12 at interface *} +{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} +{===>} start_fle_12_1=""; +{===>} end_fle_12_1=""; +{===>} start_fle_12_2=""; +{===>} end_fle_12_2=""; +{===>} start_fle_12_3=""; +{===>} end_fle_12_3=""; +{===>} start_fle_12_4=""; +{===>} end_fle_12_4=""; +{===>} start_fle_12_5=""; +{===>} end_fle_12_5=""; + +{* Fully flexible segments for molecule 13 *} +{* Note that current max is 5 (edit the run.cns to add more segments *} + +{===>} nfle_13=0; + +{* Residues of molecule 13 at interface *} +{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} +{===>} start_fle_13_1=""; +{===>} end_fle_13_1=""; +{===>} start_fle_13_2=""; +{===>} end_fle_13_2=""; +{===>} start_fle_13_3=""; +{===>} end_fle_13_3=""; +{===>} start_fle_13_4=""; +{===>} end_fle_13_4=""; +{===>} start_fle_13_5=""; +{===>} end_fle_13_5=""; + +{* Fully flexible segments for molecule 14 *} +{* Note that current max is 5 (edit the run.cns to add more segments *} + +{===>} nfle_14=0; + +{* Residues of molecule 14 at interface *} +{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} +{===>} start_fle_14_1=""; +{===>} end_fle_14_1=""; +{===>} start_fle_14_2=""; +{===>} end_fle_14_2=""; +{===>} start_fle_14_3=""; +{===>} end_fle_14_3=""; +{===>} start_fle_14_4=""; +{===>} end_fle_14_4=""; +{===>} start_fle_14_5=""; +{===>} end_fle_14_5=""; + +{* Fully flexible segments for molecule 15 *} +{* Note that current max is 5 (edit the run.cns to add more segments *} + +{===>} nfle_15=0; + +{* Residues of molecule 15 at interface *} +{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} +{===>} start_fle_15_1=""; +{===>} end_fle_15_1=""; +{===>} start_fle_15_2=""; +{===>} end_fle_15_2=""; +{===>} start_fle_15_3=""; +{===>} end_fle_15_3=""; +{===>} start_fle_15_4=""; +{===>} end_fle_15_4=""; +{===>} start_fle_15_5=""; +{===>} end_fle_15_5=""; + +{* Fully flexible segments for molecule 16 *} +{* Note that current max is 5 (edit the run.cns to add more segments *} + +{===>} nfle_16=0; + +{* Residues of molecule 16 at interface *} +{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} +{===>} start_fle_16_1=""; +{===>} end_fle_16_1=""; +{===>} start_fle_16_2=""; +{===>} end_fle_16_2=""; +{===>} start_fle_16_3=""; +{===>} end_fle_16_3=""; +{===>} start_fle_16_4=""; +{===>} end_fle_16_4=""; +{===>} start_fle_16_5=""; +{===>} end_fle_16_5=""; + +{* Fully flexible segments for molecule 17 *} +{* Note that current max is 5 (edit the run.cns to add more segments *} + +{===>} nfle_17=0; + +{* Residues of molecule 17 at interface *} +{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} +{===>} start_fle_17_1=""; +{===>} end_fle_17_1=""; +{===>} start_fle_17_2=""; +{===>} end_fle_17_2=""; +{===>} start_fle_17_3=""; +{===>} end_fle_17_3=""; +{===>} start_fle_17_4=""; +{===>} end_fle_17_4=""; +{===>} start_fle_17_5=""; +{===>} end_fle_17_5=""; + + +{* Fully flexible segments for molecule 18 *} +{* Note that current max is 5 (edit the run.cns to add more segments *} + +{===>} nfle_18=0; + +{* Residues of molecule 18 at interface *} +{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} +{===>} start_fle_18_1=""; +{===>} end_fle_18_1=""; +{===>} start_fle_18_2=""; +{===>} end_fle_18_2=""; +{===>} start_fle_18_3=""; +{===>} end_fle_18_3=""; +{===>} start_fle_18_4=""; +{===>} end_fle_18_4=""; +{===>} start_fle_18_5=""; +{===>} end_fle_18_5=""; + + +{* Fully flexible segments for molecule 19 *} +{* Note that current max is 5 (edit the run.cns to add more segments *} + +{===>} nfle_19=0; + +{* Sesidues of molecule 19 at interface *} +{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} +{===>} start_fle_19_1=""; +{===>} end_fle_19_1=""; +{===>} start_fle_19_2=""; +{===>} end_fle_19_2=""; +{===>} start_fle_19_3=""; +{===>} end_fle_19_3=""; +{===>} start_fle_19_4=""; +{===>} end_fle_19_4=""; +{===>} start_fle_19_5=""; +{===>} end_fle_19_5=""; + +{* Fully flexible segments for molecule 20 *} +{* Note that current max is 5 (edit the run.cns to add more segments *} + +{===>} nfle_20=0; + +{* Sesidues of molecule 20 at interface *} +{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} +{===>} start_fle_20_1=""; +{===>} end_fle_20_1=""; +{===>} start_fle_20_2=""; +{===>} end_fle_20_2=""; +{===>} start_fle_20_3=""; +{===>} end_fle_20_3=""; +{===>} start_fle_20_4=""; +{===>} end_fle_20_4=""; +{===>} start_fle_20_5=""; +{===>} end_fle_20_5=""; + +{==================== membrane positioning restraints ==================} +{* Do you want to use membrane positioning restraints ? *} +{+ choice: true false +} +{===>} zres_on=false; + +{* Force constant for membrane positioning restraints ? *} +{===>} kzres=10.0; + +{* Maximum z value for membrane positioning restraints ? *} +{===>} zresmax=0.0; + +{* Minimum z value for membrane positioning restraints ? *} +{===>} zresmin=0.0; + +{* Number of membrane positioning restrained segments *} +{===>} numzres=0; + +{* Define the segment for membrane positioning restraints *} +{+ table: rows=10 "seg 1" "seg 2" "seg 3" "seg 4" "seg 5" "seg 6" "seg 7" "seg 8" "seg 9" "seg 10" cols=4 "Start res seg1" "End res seg1" "Segid seg1" "inside/outside" +} +{===>} zres_sta_1=""; +{===>} zres_end_1=""; +{===>} zres_seg_1=""; +{+ choice: "inside" "outside"+} +{===>} zres_type_1=""; +{===>} zres_sta_2=""; +{===>} zres_end_2=""; +{===>} zres_seg_2=""; +{+ choice: "inside" "outside"+} +{===>} zres_type_2=""; +{===>} zres_sta_3=""; +{===>} zres_end_3=""; +{===>} zres_seg_3=""; +{+ choice: "inside" "outside"+} +{===>} zres_type_3=""; +{===>} zres_sta_4=""; +{===>} zres_end_4=""; +{===>} zres_seg_4=""; +{+ choice: "inside" "outside"+} +{===>} zres_type_4=""; +{===>} zres_sta_5=""; +{===>} zres_end_5=""; +{===>} zres_seg_5=""; +{+ choice: "inside" "outside"+} +{===>} zres_type_5=""; +{===>} zres_sta_6=""; +{===>} zres_end_6=""; +{===>} zres_seg_6=""; +{+ choice: "inside" "outside"+} +{===>} zres_type_6=""; +{===>} zres_sta_7=""; +{===>} zres_end_7=""; +{===>} zres_seg_7=""; +{+ choice: "inside" "outside"+} +{===>} zres_type_7=""; +{===>} zres_sta_8=""; +{===>} zres_end_8=""; +{===>} zres_seg_8=""; +{+ choice: "inside" "outside"+} +{===>} zres_type_8=""; +{===>} zres_sta_9=""; +{===>} zres_end_9=""; +{===>} zres_seg_9=""; +{+ choice: "inside" "outside"+} +{===>} zres_type_9=""; +{===>} zres_sta_10=""; +{===>} zres_end_10=""; +{===>} zres_seg_10=""; +{+ choice: "inside" "outside"+} +{===>} zres_type_10=""; + + +{====================== NCS restraints =====================} +{* Do you want to use NCS restraints? *} +{+ choice: true false +} +{===>} ncs_on=false; + +{* Force constant for NCS restraints *} +{===>} kncs=1.0; + +{* Number of NCS pairs *} +{===>} numncs=0; + +{* Define the segments pairs for NCS restraints *} +{+ table: rows=5 "pair 1" "pair 2" "pair 3" "pair 4" "pair 5" cols=6 "Start res seg1" "End res seg1" "Segid seg1" "Start res seg2" "End res seg2" "Segid seg2" +} +{===>} ncs_sta1_1=""; +{===>} ncs_end1_1=""; +{===>} ncs_seg1_1=""; +{===>} ncs_sta2_1=""; +{===>} ncs_end2_1=""; +{===>} ncs_seg2_1=""; +{===>} ncs_sta1_2=""; +{===>} ncs_end1_2=""; +{===>} ncs_seg1_2=""; +{===>} ncs_sta2_2=""; +{===>} ncs_end2_2=""; +{===>} ncs_seg2_2=""; +{===>} ncs_sta1_3=""; +{===>} ncs_end1_3=""; +{===>} ncs_seg1_3=""; +{===>} ncs_sta2_3=""; +{===>} ncs_end2_3=""; +{===>} ncs_seg2_3=""; +{===>} ncs_sta1_4=""; +{===>} ncs_end1_4=""; +{===>} ncs_seg1_4=""; +{===>} ncs_sta2_4=""; +{===>} ncs_end2_4=""; +{===>} ncs_seg2_4=""; +{===>} ncs_sta1_5=""; +{===>} ncs_end1_5=""; +{===>} ncs_seg1_5=""; +{===>} ncs_sta2_5=""; +{===>} ncs_end2_5=""; +{===>} ncs_seg2_5=""; + +{==================== Symmetry restraints ==================} +{* Do you want to use symmetry restraints ? *} +{+ choice: true false +} +{===>} sym_on=false; + +{* Force constant for symmetry restraints ? *} +{===>} ksym=10.0; + +{* Number of C2 symmetry pairs *} +{===>} numc2sym=0; + +{* Define the segment pairs C2 symmetry restraints *} +{+ table: rows=10 "pair 1" "pair 2" "pair 3" "pair 4" "pair 5" "pair 6" "pair 7" "pair 8" "pair 9" "pair 10" cols=6 "Start res seg1" "End res seg1" "Segid seg1" "Start res seg2" "End res seg2" "Segid seg2" +} +{===>} c2sym_sta1_1=""; +{===>} c2sym_end1_1=""; +{===>} c2sym_seg1_1=""; +{===>} c2sym_sta2_1=""; +{===>} c2sym_end2_1=""; +{===>} c2sym_seg2_1=""; +{===>} c2sym_sta1_2=""; +{===>} c2sym_end1_2=""; +{===>} c2sym_seg1_2=""; +{===>} c2sym_sta2_2=""; +{===>} c2sym_end2_2=""; +{===>} c2sym_seg2_2=""; +{===>} c2sym_sta1_3=""; +{===>} c2sym_end1_3=""; +{===>} c2sym_seg1_3=""; +{===>} c2sym_sta2_3=""; +{===>} c2sym_end2_3=""; +{===>} c2sym_seg2_3=""; +{===>} c2sym_sta1_4=""; +{===>} c2sym_end1_4=""; +{===>} c2sym_seg1_4=""; +{===>} c2sym_sta2_4=""; +{===>} c2sym_end2_4=""; +{===>} c2sym_seg2_4=""; +{===>} c2sym_sta1_5=""; +{===>} c2sym_end1_5=""; +{===>} c2sym_seg1_5=""; +{===>} c2sym_sta2_5=""; +{===>} c2sym_end2_5=""; +{===>} c2sym_seg2_5=""; +{===>} c2sym_sta1_6=""; +{===>} c2sym_end1_6=""; +{===>} c2sym_seg1_6=""; +{===>} c2sym_sta2_6=""; +{===>} c2sym_end2_6=""; +{===>} c2sym_seg2_6=""; +{===>} c2sym_sta1_7=""; +{===>} c2sym_end1_7=""; +{===>} c2sym_seg1_7=""; +{===>} c2sym_sta2_7=""; +{===>} c2sym_end2_7=""; +{===>} c2sym_seg2_7=""; +{===>} c2sym_sta1_8=""; +{===>} c2sym_end1_8=""; +{===>} c2sym_seg1_8=""; +{===>} c2sym_sta2_8=""; +{===>} c2sym_end2_8=""; +{===>} c2sym_seg2_8=""; +{===>} c2sym_sta1_9=""; +{===>} c2sym_end1_9=""; +{===>} c2sym_seg1_9=""; +{===>} c2sym_sta2_9=""; +{===>} c2sym_end2_9=""; +{===>} c2sym_seg2_9=""; +{===>} c2sym_sta1_10=""; +{===>} c2sym_end1_10=""; +{===>} c2sym_seg1_10=""; +{===>} c2sym_sta2_10=""; +{===>} c2sym_end2_10=""; +{===>} c2sym_seg2_10=""; + + +{* Number of C3 symmetry triples*} +{===>} numc3sym=0; + +{* Define the segment triples for C3 symmetry restraints *} +{+ table: rows=2 "triple 1" "triple 2" cols=9 "Start res seg1" "End res seg1" "Segid seg1" "Start res seg2" "End res seg2" "Segid seg2" "Start res seg3" "End res seg3" "Segid seg3" +} +{===>} c3sym_sta1_1=""; +{===>} c3sym_end1_1=""; +{===>} c3sym_seg1_1=""; +{===>} c3sym_sta2_1=""; +{===>} c3sym_end2_1=""; +{===>} c3sym_seg2_1=""; +{===>} c3sym_sta3_1=""; +{===>} c3sym_end3_1=""; +{===>} c3sym_seg3_1=""; +{===>} c3sym_sta1_2=""; +{===>} c3sym_end1_2=""; +{===>} c3sym_seg1_2=""; +{===>} c3sym_sta2_2=""; +{===>} c3sym_end2_2=""; +{===>} c3sym_seg2_2=""; +{===>} c3sym_sta3_2=""; +{===>} c3sym_end3_2=""; +{===>} c3sym_seg3_2=""; + + +{* Number of S3 symmetry triples*} +{===>} nums3sym=0; + +{* Define the segment triples for S3 symmetry restraints *} +{+ table: rows=4 "triple 1" "triple 2" "triple 3" "triple 4" cols=9 "Start res seg1" "End res seg1" "Segid seg1" "Start res seg2" "End res seg2" "Segid seg2" "Start res seg3" "End res seg3" "Segid seg3" +} +{===>} s3sym_sta1_1=""; +{===>} s3sym_end1_1=""; +{===>} s3sym_seg1_1=""; +{===>} s3sym_sta2_1=""; +{===>} s3sym_end2_1=""; +{===>} s3sym_seg2_1=""; +{===>} s3sym_sta3_1=""; +{===>} s3sym_end3_1=""; +{===>} s3sym_seg3_1=""; +{===>} s3sym_sta1_2=""; +{===>} s3sym_end1_2=""; +{===>} s3sym_seg1_2=""; +{===>} s3sym_sta2_2=""; +{===>} s3sym_end2_2=""; +{===>} s3sym_seg2_2=""; +{===>} s3sym_sta3_2=""; +{===>} s3sym_end3_2=""; +{===>} s3sym_seg3_2=""; +{===>} s3sym_sta1_3=""; +{===>} s3sym_end1_3=""; +{===>} s3sym_seg1_3=""; +{===>} s3sym_sta2_3=""; +{===>} s3sym_end2_3=""; +{===>} s3sym_seg2_3=""; +{===>} s3sym_sta3_3=""; +{===>} s3sym_end3_3=""; +{===>} s3sym_seg3_3=""; +{===>} s3sym_sta1_4=""; +{===>} s3sym_end1_4=""; +{===>} s3sym_seg1_4=""; +{===>} s3sym_sta2_4=""; +{===>} s3sym_end2_4=""; +{===>} s3sym_seg2_4=""; +{===>} s3sym_sta3_4=""; +{===>} s3sym_end3_4=""; +{===>} s3sym_seg3_4=""; + + +{* Number of C4 symmetry quadruples *} +{===>} numc4sym=0; + +{* Define the segment quadruples for C4 symmetry restraints *} +{+ table: rows=2 "quadruples 1" "quadruples 2" cols=12 "Start res seg1" "End res seg1" "Segid seg1" "Start res seg2" "End res seg2" "Segid seg2" "Start res seg3" "End res seg3" "Segid seg3" "Start res seg4" "End res seg4" "Segid seg4" +} +{===>} c4sym_sta1_1=""; +{===>} c4sym_end1_1=""; +{===>} c4sym_seg1_1=""; +{===>} c4sym_sta2_1=""; +{===>} c4sym_end2_1=""; +{===>} c4sym_seg2_1=""; +{===>} c4sym_sta3_1=""; +{===>} c4sym_end3_1=""; +{===>} c4sym_seg3_1=""; +{===>} c4sym_sta4_1=""; +{===>} c4sym_end4_1=""; +{===>} c4sym_seg4_1=""; +{===>} c4sym_sta1_2=""; +{===>} c4sym_end1_2=""; +{===>} c4sym_seg1_2=""; +{===>} c4sym_sta2_2=""; +{===>} c4sym_end2_2=""; +{===>} c4sym_seg2_2=""; +{===>} c4sym_sta3_2=""; +{===>} c4sym_end3_2=""; +{===>} c4sym_seg3_2=""; +{===>} c4sym_sta4_2=""; +{===>} c4sym_end4_2=""; +{===>} c4sym_seg4_2=""; + + +{* Number of C5 symmetry *} +{===>} numc5sym=0; + +{* Define the segments for C5 symmetry restraints *} +{+ table: rows=5 "Segment1" "Segment2" "Segment3" "Segment4" "Segment5" cols=3 "Start residue" "End residue" "Segid" +} +{===>} c5sym_sta1_1=""; +{===>} c5sym_end1_1=""; +{===>} c5sym_seg1_1=""; +{===>} c5sym_sta2_1=""; +{===>} c5sym_end2_1=""; +{===>} c5sym_seg2_1=""; +{===>} c5sym_sta3_1=""; +{===>} c5sym_end3_1=""; +{===>} c5sym_seg3_1=""; +{===>} c5sym_sta4_1=""; +{===>} c5sym_end4_1=""; +{===>} c5sym_seg4_1=""; +{===>} c5sym_sta5_1=""; +{===>} c5sym_end5_1=""; +{===>} c5sym_seg5_1=""; +{===>} c5sym_sta1_2=""; +{===>} c5sym_end1_2=""; +{===>} c5sym_seg1_2=""; +{===>} c5sym_sta2_2=""; +{===>} c5sym_end2_2=""; +{===>} c5sym_seg2_2=""; +{===>} c5sym_sta3_2=""; +{===>} c5sym_end3_2=""; +{===>} c5sym_seg3_2=""; +{===>} c5sym_sta4_2=""; +{===>} c5sym_end4_2=""; +{===>} c5sym_seg4_2=""; +{===>} c5sym_sta5_2=""; +{===>} c5sym_end5_2=""; +{===>} c5sym_seg5_2=""; + + +{* Number of c6 symmetry *} +{===>} numc6sym=0; + +{* Define the segments for c6 symmetry restraints *} +{+ table: rows=5 "Segment1" "Segment2" "Segment3" "Segment4" "Segment5" cols=3 "Start residue" "End residue" "Segid" +} +{===>} c6sym_sta1_1=""; +{===>} c6sym_end1_1=""; +{===>} c6sym_seg1_1=""; +{===>} c6sym_sta2_1=""; +{===>} c6sym_end2_1=""; +{===>} c6sym_seg2_1=""; +{===>} c6sym_sta3_1=""; +{===>} c6sym_end3_1=""; +{===>} c6sym_seg3_1=""; +{===>} c6sym_sta4_1=""; +{===>} c6sym_end4_1=""; +{===>} c6sym_seg4_1=""; +{===>} c6sym_sta5_1=""; +{===>} c6sym_end5_1=""; +{===>} c6sym_seg5_1=""; +{===>} c6sym_sta6_1=""; +{===>} c6sym_end6_1=""; +{===>} c6sym_seg6_1=""; + + +{=========================== Distance restraints ========================} +{* Turn on/off and energy constants for distance restraints *} +{+ table: rows=3 "distances" "AIR (ambig)" "hbonds" cols=6 "firstIteration" "lastIteration" "hot" "cool1" "cool2" "cool3"+} + +{===>} unamb_firstit=0; +{===>} unamb_lastit=2; +{===>} unamb_hot=10; +{===>} unamb_cool1=10; +{===>} unamb_cool2=50; +{===>} unamb_cool3=50; +{===>} amb_firstit=0; +{===>} amb_lastit=2; +{===>} amb_hot=10; +{===>} amb_cool1=10; +{===>} amb_cool2=50; +{===>} amb_cool3=50; +{===>} hbond_firstit=1; +{===>} hbond_lastit=2; +{===>} hbond_hot=10; +{===>} hbond_cool1=10; +{===>} hbond_cool2=50; +{===>} hbond_cool3=50; + +{* Do you want to randomly exclude a fraction of the ambiguous restraints (AIRs)? *} +{+ choice: true false +} +{===>} noecv=true; + +{* Number of partitions for random exclusion (%excluded=100/number of partitions)? *} +{===>} ncvpart=2; + +{* Do you want to use hydrogen bond restraints? *} +{+ choice: true false +} +{===>} hbonds_on=false; + +{* Do you want to define randomly ambiguous interaction restraints from accessible residues? *} +{* Only residues in the defined flexible segments will be considered *} +{* Note that this option is exclusive with any other distance restraints and only for it0 *} +{+ choice: true false +} +{===>} ranair=false; + +{* Do you want to define center of mass (CM) restraints to enforce contact between the molecules? *} +{* Note that these are only active during it0 and it1 *} +{+ choice: true false +} +{===>} cmrest=false; + +{* Define tight CM restraints? *} +{+ choice: true false +} +{===>} cmtight=true; + +{* Force constant for center of mass restraints *} +{===>} kcont=1.0; + +{* Do you want to define surface contact restraints to enforce contact between the molecules? *} +{* Note that these are only active during it0 and it1 *} +{+ choice: true false +} +{===>} surfrest=false; + +{* Force constant for surface contact restraints *} +{===>} ksurf=1.0; + +{ Use automated distance restraints weighting } +{ choice: true false } +air_scaling=false; + +{ Define the number of distance restraints for automated weighting } +tot_unamb=25; +{ Define the number of AIR restraints for automated weighting } +tot_amb=0; + +{ potential shape } +mrswi_hot=0.5; +mrswi_cool1=0.5; +mrswi_cool2=0.5; +mrswi_cool3=0.5; +rswi_hot=0.5; +rswi_cool1=0.5; +rswi_cool2=0.5; +rswi_cool3=0.5; +masy_hot=-1.0; +masy_cool1=-1.0; +masy_cool2=-0.1; +masy_cool3=-0.1; +asy_hot=1.0; +asy_cool1=1.0; +asy_cool2=0.1; +asy_cool3=0.1; + + +{=========================== radius of gyration restraint ============} +{* Turn on/off and energy constants for Rg restraints *} +{* Do you want to define a radius of gyration restraint (e.g. from SAXS)? *} +{+ choice: true false +} +{===>} rgrest=false; + +{* Radius of gyration *} +{===>} rgtarg=17.78; + +{* Force constant for radius of gyration restraint *} +{===>} krg_hot=100.0; +{===>} krg_cool1=100.0; +{===>} krg_cool2=100.0; +{===>} krg_cool3=100.0; + +{* Atom selections for the radius of gyration restraint *} +{===>} rgsele="all"; + + +{======================DNA-RNA restraints ============================} +{* Use DNA/RNA restraints (dna-rna_restraints.def in data/sequence)? *} +{+ choice: true false +} +{===>} dnarest_on=false; + + +{=========================== dihedrals restraints ====================} +{* energy constants *} +{+ table: rows=1 "dihedrals" cols=5 "use?" "hot" "cool1" "cool2" "cool3" +} + +{+ choice: true false +} +{===>} dihedrals_on=false; +{===>} dihedrals_hot=5; +{===>} dihedrals_cool1=5; +{===>} dihedrals_cool2=50; +{===>} dihedrals_cool3=200; + +{* Automatically define backbone dihedral angle restraints from structure? *} +{* Error treshold for restraint violation is defined by error_dih *} +{+ choice: none all alpha alphabeta +} +{+ define the error treshold for the restraint violation +} +{===>} ssdihed=none; +{===>} error_dih=10; + + +{=========================== residual dipolar couplings ======================} + +{* Parameters *} +{+ table: rows=5 "class1" "class2" "class3" "class4" "class5" + cols=25 "type" "firstIt" "lastIt" "Ksani
    (hot)" "Ksani
    (cool1)" "Ksani
    (cool2)" "Ksani
    (cool3)" "R" "D" + "Kvean
    (ini_bor_hot)" "Kvean
    (fin_bor_hot)" + "Kvean
    (ini_bor_cool1)" "Kvean
    (fin_bor_cool1)" + "Kvean
    (ini_bor_cool2)" "Kvean
    (fin_bor_cool2)" + "Kvean
    (ini_bor_cool3)" "Kvean
    (fin_bor_cool3)" + "Kvean
    (ini_cen_hot)" "Kvean
    (fin_cen_hot)" + "Kvean
    (ini_cen_cool1)" "Kvean
    (fin_cen_cool1)" + "Kvean
    (ini_cen_cool2)" "Kvean
    (fin_cen_cool2)" + "Kvean
    (ini_cen_cool3)" "Kvean
    (fin_cen_cool3)"+} + +{* Number of RDC restraint sets *} +{===>} numrdc=0; + +{+ choice: "NO" "SANI" "VANGLE" +} +{===>} rdc_choice_1="NO"; +{===>} rdc_firstIt_1=2; +{===>} rdc_lastIt_1=2; +{===>} rdc_hot_1=0.001; +{===>} rdc_cool1_1=0.02; +{===>} rdc_cool2_1=0.2; +{===>} rdc_cool3_1=0.2; +{===>} rdc_r_1=0.057; +{===>} rdc_d_1=-11.49; +{===>} ini_bor_hot_1=1.0; +{===>} fin_bor_hot_1=10.0; +{===>} ini_bor_cool1_1=10.0; +{===>} fin_bor_cool1_1=40.0; +{===>} ini_bor_cool2_1=40.0; +{===>} fin_bor_cool2_1=40.0; +{===>} ini_bor_cool3_1=40.0; +{===>} fin_bor_cool3_1=40.0; +{===>} ini_cen_hot_1=0.25; +{===>} fin_cen_hot_1=2.5; +{===>} ini_cen_cool1_1=2.5; +{===>} fin_cen_cool1_1=10.0; +{===>} ini_cen_cool2_1=10.0; +{===>} fin_cen_cool2_1=10.0; +{===>} ini_cen_cool3_1=10.0; +{===>} fin_cen_cool3_1=10.0; + +{+ choice: "NO" "SANI" "XRDC" "VANGLE" +} +{===>} rdc_choice_2="NO"; +{===>} rdc_firstIt_2=0; +{===>} rdc_lastIt_2=1; +{===>} rdc_hot_2=0.01; +{===>} rdc_cool1_2=0.2; +{===>} rdc_cool2_2=1.0; +{===>} rdc_cool3_2=1.0; +{===>} rdc_r_2=0.4; +{===>} rdc_d_2=8.0; +{===>} ini_bor_hot_2=1.0; +{===>} fin_bor_hot_2=10.0; +{===>} ini_bor_cool1_2=10.0; +{===>} fin_bor_cool1_2=40.0; +{===>} ini_bor_cool2_2=40.0; +{===>} fin_bor_cool2_2=40.0; +{===>} ini_bor_cool3_2=40.0; +{===>} fin_bor_cool3_2=40.0; +{===>} ini_cen_hot_2=0.25; +{===>} fin_cen_hot_2=2.5; +{===>} ini_cen_cool1_2=2.5; +{===>} fin_cen_cool1_2=10.0; +{===>} ini_cen_cool2_2=10.0; +{===>} fin_cen_cool2_2=10.0; +{===>} ini_cen_cool3_2=10.0; +{===>} fin_cen_cool3_2=10.0; + +{+ choice: "NO" "SANI" "XRDC" "VANGLE" +} +{===>} rdc_choice_3="NO"; +{===>} rdc_firstIt_3=1; +{===>} rdc_lastIt_3=1; +{===>} rdc_hot_3=0.01; +{===>} rdc_cool1_3=0.2; +{===>} rdc_cool2_3=1.0; +{===>} rdc_cool3_3=1.0; +{===>} rdc_r_3=0.4; +{===>} rdc_d_3=8.0; +{===>} ini_bor_hot_3=1.0; +{===>} fin_bor_hot_3=10.0; +{===>} ini_bor_cool1_3=10.0; +{===>} fin_bor_cool1_3=40.0; +{===>} ini_bor_cool2_3=40.0; +{===>} fin_bor_cool2_3=40.0; +{===>} ini_bor_cool3_3=40.0; +{===>} fin_bor_cool3_3=40.0; +{===>} ini_cen_hot_3=0.25; +{===>} fin_cen_hot_3=2.5; +{===>} ini_cen_cool1_3=2.5; +{===>} fin_cen_cool1_3=10.0; +{===>} ini_cen_cool2_3=10.0; +{===>} fin_cen_cool2_3=10.0; +{===>} ini_cen_cool3_3=10.0; +{===>} fin_cen_cool3_3=10.0; + +{+ choice: "NO" "SANI" "XRDC" "VANGLE" +} +{===>} rdc_choice_4="NO"; +{===>} rdc_firstIt_4=0; +{===>} rdc_lastIt_4=2; +{===>} rdc_hot_4=0.1; +{===>} rdc_cool1_4=1.0; +{===>} rdc_cool2_4=1.0; +{===>} rdc_cool3_4=1.0; +{===>} rdc_r_4=0.4; +{===>} rdc_d_4=8.0; +{===>} ini_bor_hot_4=1.0; +{===>} fin_bor_hot_4=10.0; +{===>} ini_bor_cool1_4=10.0; +{===>} fin_bor_cool1_4=40.0; +{===>} ini_bor_cool2_4=40.0; +{===>} fin_bor_cool2_4=40.0; +{===>} ini_bor_cool3_4=40.0; +{===>} fin_bor_cool3_4=40.0; +{===>} ini_cen_hot_4=0.25; +{===>} fin_cen_hot_4=2.5; +{===>} ini_cen_cool1_4=2.5; +{===>} fin_cen_cool1_4=10.0; +{===>} ini_cen_cool2_4=10.0; +{===>} fin_cen_cool2_4=10.0; +{===>} ini_cen_cool3_4=10.0; +{===>} fin_cen_cool3_4=10.0; + +{+ choice: "NO" "SANI" "XRDC" "VANGLE" +} +{===>} rdc_choice_5="NO"; +{===>} rdc_firstIt_5=0; +{===>} rdc_lastIt_5=2; +{===>} rdc_hot_5=0.1; +{===>} rdc_cool1_5=1.0; +{===>} rdc_cool2_5=1.0; +{===>} rdc_cool3_5=1.0; +{===>} rdc_r_5=0.4; +{===>} rdc_d_5=8.0; +{===>} ini_bor_hot_5=1.0; +{===>} fin_bor_hot_5=10.0; +{===>} ini_bor_cool1_5=10.0; +{===>} fin_bor_cool1_5=40.0; +{===>} ini_bor_cool2_5=40.0; +{===>} fin_bor_cool2_5=40.0; +{===>} ini_bor_cool3_5=40.0; +{===>} fin_bor_cool3_5=40.0; +{===>} ini_cen_hot_5=0.25; +{===>} fin_cen_hot_5=2.5; +{===>} ini_cen_cool1_5=2.5; +{===>} fin_cen_cool1_5=10.0; +{===>} ini_cen_cool2_5=10.0; +{===>} fin_cen_cool2_5=10.0; +{===>} ini_cen_cool3_5=10.0; +{===>} fin_cen_cool3_5=10.0; + + +{=========================== pseudo contact shifts ===========================} + +{* Parameters *} +{+ table: rows=10 "class1" "class2" "class3" "class4" "class5" "class6" "class7" "class8" "class9" "class10" + cols=9 "type" "firstIt" "lastIt" "Kpcs
    (hot)" "Kpcs
    (cool1)" "Kpcs
    (cool2)" "Kpcs
    (cool3)" "R" "D" +} + +{* Number of PCS restraint sets *} +{===>} numpcs=0; + +{+ choice: "NO" "XPCS" +} +{===>} pcs_choice_1="NO"; +{===>} pcs_firstIt_1=0; +{===>} pcs_lastIt_1=2; +{===>} pcs_hot_1=100.0; +{===>} pcs_cool1_1=100.0; +{===>} pcs_cool2_1=100.0; +{===>} pcs_cool3_1=100.0; +{===>} pcs_r_1=1000; +{===>} pcs_d_1=10000; + +{+ choice: "NO" "XPCS" +} +{===>} pcs_choice_2="NO"; +{===>} pcs_firstIt_2=0; +{===>} pcs_lastIt_2=2; +{===>} pcs_hot_2=100.0; +{===>} pcs_cool1_2=100.0; +{===>} pcs_cool2_2=100.0; +{===>} pcs_cool3_2=100.0; +{===>} pcs_r_2=1000; +{===>} pcs_d_2=10000; + +{+ choice: "NO" "XPCS" +} +{===>} pcs_choice_3="NO"; +{===>} pcs_firstIt_3=0; +{===>} pcs_lastIt_3=2; +{===>} pcs_hot_3=100.0; +{===>} pcs_cool1_3=100.0; +{===>} pcs_cool2_3=100.0; +{===>} pcs_cool3_3=100.0; +{===>} pcs_r_3=1000; +{===>} pcs_d_3=10000; + +{+ choice: "NO" "XPCS" +} +{===>} pcs_choice_4="NO"; +{===>} pcs_firstIt_4=0; +{===>} pcs_lastIt_4=2; +{===>} pcs_hot_4=100.0; +{===>} pcs_cool1_4=100.0; +{===>} pcs_cool2_4=100.0; +{===>} pcs_cool3_4=100.0; +{===>} pcs_r_4=1000; +{===>} pcs_d_4=10000; + +{+ choice: "NO" "XPCS" +} +{===>} pcs_choice_5="NO"; +{===>} pcs_firstIt_5=0; +{===>} pcs_lastIt_5=2; +{===>} pcs_hot_5=100.0; +{===>} pcs_cool1_5=100.0; +{===>} pcs_cool2_5=100.0; +{===>} pcs_cool3_5=100.0; +{===>} pcs_r_5=1000; +{===>} pcs_d_5=10000; + +{+ choice: "NO" "XPCS" +} +{===>} pcs_choice_6="NO"; +{===>} pcs_firstIt_6=0; +{===>} pcs_lastIt_6=2; +{===>} pcs_hot_6=100.0; +{===>} pcs_cool1_6=100.0; +{===>} pcs_cool2_6=100.0; +{===>} pcs_cool3_6=100.0; +{===>} pcs_r_6=1000; +{===>} pcs_d_6=10000; + +{+ choice: "NO" "XPCS" +} +{===>} pcs_choice_7="NO"; +{===>} pcs_firstIt_7=0; +{===>} pcs_lastIt_7=2; +{===>} pcs_hot_7=100.0; +{===>} pcs_cool1_7=100.0; +{===>} pcs_cool2_7=100.0; +{===>} pcs_cool3_7=100.0; +{===>} pcs_r_7=1000; +{===>} pcs_d_7=10000; + +{+ choice: "NO" "XPCS" +} +{===>} pcs_choice_8="NO"; +{===>} pcs_firstIt_8=0; +{===>} pcs_lastIt_8=2; +{===>} pcs_hot_8=100.0; +{===>} pcs_cool1_8=100.0; +{===>} pcs_cool2_8=100.0; +{===>} pcs_cool3_8=100.0; +{===>} pcs_r_8=1000; +{===>} pcs_d_8=10000; + +{+ choice: "NO" "XPCS" +} +{===>} pcs_choice_9="NO"; +{===>} pcs_firstIt_9=0; +{===>} pcs_lastIt_9=2; +{===>} pcs_hot_9=100.0; +{===>} pcs_cool1_9=100.0; +{===>} pcs_cool2_9=100.0; +{===>} pcs_cool3_9=100.0; +{===>} pcs_r_9=1000; +{===>} pcs_d_9=10000; + + +{+ choice: "NO" "XPCS" +} +{===>} pcs_choice_10="NO"; +{===>} pcs_firstIt_10=0; +{===>} pcs_lastIt_10=2; +{===>} pcs_hot_10=100.0; +{===>} pcs_cool1_10=100.0; +{===>} pcs_cool2_10=100.0; +{===>} pcs_cool3_10=100.0; +{===>} pcs_r_10=1000; +{===>} pcs_d_10=10000; + +{=========================== relaxation data ======================} +{* Parameters *} +{+ table: rows=5 "class1" "class2" "class3" "class4" "class5" + cols=12 "type" "firstIt" "lastIt" "Kdani(hot)" "Kdani(cool1)" "Kdani(cool2)" "Kdani(cool3)" "Correlation time" "D" "R" "H frequency" "N frequency" +} + +{* Number of DANI restraint sets *} +{===>} numdani=0; + +{+ choice: "NO" "DANI" +} +{===>} dan_choice_1="DANI"; +{===>} dan_firstIt_1=0; +{===>} dan_lastIt_1=2; +{===>} dan_hot_1=1; +{===>} dan_cool1_1=5; +{===>} dan_cool2_1=10; +{===>} dan_cool3_1=10; +{===>} dan_tc_1=9.771; +{===>} dan_anis_1=1.557; +{===>} dan_r_1=0.455; +{===>} dan_wh_1=599.91; +{===>} dan_wn_1=60.82; + +{+ choice: "NO" "DANI" +} +{===>} dan_choice_2="NO"; +{===>} dan_firstIt_2=0; +{===>} dan_lastIt_2=1; +{===>} dan_hot_2=1; +{===>} dan_cool1_2=5; +{===>} dan_cool2_2=10; +{===>} dan_cool3_2=10; +{===>} dan_tc_2=9.84; +{===>} dan_anis_2=-1.35; +{===>} dan_r_2=0.308; +{===>} dan_wh_2=599.91; +{===>} dan_wn_2=60.82; + +{+ choice: "NO" "DANI" +} +{===>} dan_choice_3="NO"; +{===>} dan_firstIt_3=1; +{===>} dan_lastIt_3=1; +{===>} dan_hot_3=1; +{===>} dan_cool1_3=5; +{===>} dan_cool2_3=10; +{===>} dan_cool3_3=10; +{===>} dan_tc_3=9.84; +{===>} dan_anis_3=-1.35; +{===>} dan_r_3=0.308; +{===>} dan_wh_3=599.91; +{===>} dan_wn_3=60.82; + +{+ choice: "NO" "DANI" +} +{===>} dan_choice_4="NO"; +{===>} dan_firstIt_4=0; +{===>} dan_lastIt_4=2; +{===>} dan_hot_4=1; +{===>} dan_cool1_4=5; +{===>} dan_cool2_4=10; +{===>} dan_cool3_4=10; +{===>} dan_tc_4=9.84; +{===>} dan_anis_4=-1.35; +{===>} dan_r_4=0.308; +{===>} dan_wh_4=599.91; +{===>} dan_wn_4=60.82; + +{+ choice: "NO" "DANI" +} +{===>} dan_choice_5="NO"; +{===>} dan_firstIt_5=0; +{===>} dan_lastIt_5=2; +{===>} dan_hot_5=1; +{===>} dan_cool1_5=5; +{===>} dan_cool2_5=10; +{===>} dan_cool3_5=10; +{===>} dan_tc_5=9.84; +{===>} dan_anis_5=-1.35; +{===>} dan_r_5=0.308; +{===>} dan_wh_5=599.91; +{===>} dan_wn_5=60.82; + + +{========================== Cryo-EM parameters ============================} + +{* Centroid definitions *} +{+ choice: true false +} +{===>} centroid_rest=false; +{===>} centroid_kscale=50.0; + +{* Placement of centroids in absolute coordinates *} +{===>} xcom_1=12.3; +{===>} ycom_1=0.8; +{===>} zcom_1=9.2; + +{===>} xcom_2=12.7; +{===>} ycom_2=-3.4; +{===>} zcom_2=29.7; + +{===>} xcom_3=0.0; +{===>} ycom_3=0.0; +{===>} zcom_3=0.0; + +{===>} xcom_4=0.0; +{===>} ycom_4=0.0; +{===>} zcom_4=0.0; + +{===>} xcom_5=0.0; +{===>} ycom_5=0.0; +{===>} zcom_5=0.0; + +{===>} xcom_6=0.0; +{===>} ycom_6=0.0; +{===>} zcom_6=0.0; + +{===>} xcom_7=0.0; +{===>} ycom_7=0.0; +{===>} zcom_7=0.0; + +{===>} xcom_8=0.0; +{===>} ycom_8=0.0; +{===>} zcom_8=0.0; + +{===>} xcom_9=0.0; +{===>} ycom_9=0.0; +{===>} zcom_9=0.0; + +{===>} xcom_10=0.0; +{===>} ycom_10=0.0; +{===>} zcom_10=0.0; + +{===>} xcom_11=0.0; +{===>} ycom_11=0.0; +{===>} zcom_11=0.0; + +{===>} xcom_12=0.0; +{===>} ycom_12=0.0; +{===>} zcom_12=0.0; + +{===>} xcom_13=0.0; +{===>} ycom_13=0.0; +{===>} zcom_13=0.0; + +{===>} xcom_14=0.0; +{===>} ycom_14=0.0; +{===>} zcom_14=0.0; + +{===>} xcom_15=0.0; +{===>} ycom_15=0.0; +{===>} zcom_15=0.0; + +{===>} xcom_16=0.0; +{===>} ycom_16=0.0; +{===>} zcom_16=0.0; + +{===>} xcom_17=0.0; +{===>} ycom_17=0.0; +{===>} zcom_17=0.0; + +{===>} xcom_18=0.0; +{===>} ycom_18=0.0; +{===>} zcom_18=0.0; + +{===>} xcom_19=0.0; +{===>} ycom_19=0.0; +{===>} zcom_19=0.0; + +{===>} xcom_20=0.0; +{===>} ycom_20=0.0; +{===>} zcom_20=0.0; + +{* Are the centroid retraints ambiguous *} +{+ choice: true false +} +{===>} ambi_1=false; +{+ choice: true false +} +{===>} ambi_2=false; +{+ choice: true false +} +{===>} ambi_3=false; +{+ choice: true false +} +{===>} ambi_4=false; +{+ choice: true false +} +{===>} ambi_5=false; +{+ choice: true false +} +{===>} ambi_6=false; +{+ choice: true false +} +{===>} ambi_7=false; +{+ choice: true false +} +{===>} ambi_8=false; +{+ choice: true false +} +{===>} ambi_9=false; +{+ choice: true false +} +{===>} ambi_10=false; +{+ choice: true false +} +{===>} ambi_11=false; +{+ choice: true false +} +{===>} ambi_12=false; +{+ choice: true false +} +{===>} ambi_13=false; +{+ choice: true false +} +{===>} ambi_14=false; +{+ choice: true false +} +{===>} ambi_15=false; +{+ choice: true false +} +{===>} ambi_16=false; +{+ choice: true false +} +{===>} ambi_17=false; +{+ choice: true false +} +{===>} ambi_18=false; +{+ choice: true false +} +{===>} ambi_19=false; +{+ choice: true false +} +{===>} ambi_20=false; + +{* Density/XREF restraints *} +{+ choice: true false +} +{===>} em_rest=false; +{===>} em_kscale=15000; +{+ choice: true false +} +{===>} em_it0=true; +{+ choice: true false +} +{===>} em_it1=true; +{+ choice: true false +} +{===>} em_itw=true; + +{* Resolution of data in angstrom *} +{===>} em_resolution=10.0; + +{* Density parameters *} +{* Number of voxels in each dimension *} +{===>} nx=32; +{===>} ny=32; +{===>} nz=32; + +{* Length of each dimension in angstrom *} +{===>} xlength=80.0; +{===>} ylength=80.0; +{===>} zlength=80.0; + +{* Cryo-EM scoring weights *} +{===>} w_lcc_0=-400.0; +{===>} w_lcc_1=-10000.0; +{===>} w_lcc_2=-10000.0; + +{===================== topology and parameter files ======================} + +{* topology file for molecule 1 *} +{===>} prot_top_mol1="protein-allhdg5-4.top"; +{* topology file for molecule 2 *} +{===>} prot_top_mol2="protein-allhdg5-4.top"; +{* topology file for molecule 3 *} +{===>} prot_top_mol3="protein-allhdg5-4.top"; +{* topology file for molecule 4 *} +{===>} prot_top_mol4="protein-allhdg5-4.top"; +{* topology file for molecule 5 *} +{===>} prot_top_mol5="protein-allhdg5-4.top"; +{* topology file for molecule 6 *} +{===>} prot_top_mol6="protein-allhdg5-4.top"; +{* topology file for molecule 7 *} +{===>} prot_top_mol7="protein-allhdg5-4.top"; +{* topology file for molecule 8 *} +{===>} prot_top_mol8="protein-allhdg5-4.top"; +{* topology file for molecule 9 *} +{===>} prot_top_mol9="protein-allhdg5-4.top"; +{* topology file for molecule 10 *} +{===>} prot_top_mol10="protein-allhdg5-4.top"; +{* topology file for molecule 11 *} +{===>} prot_top_mol11="protein-allhdg5-4.top"; +{* topology file for molecule 12 *} +{===>} prot_top_mol12="protein-allhdg5-4.top"; +{* topology file for molecule 13 *} +{===>} prot_top_mol13="protein-allhdg5-4.top"; +{* topology file for molecule 14 *} +{===>} prot_top_mol14="protein-allhdg5-4.top"; +{* topology file for molecule 15 *} +{===>} prot_top_mol15="protein-allhdg5-4.top"; +{* topology file for molecule 16 *} +{===>} prot_top_mol16="protein-allhdg5-4.top"; +{* topology file for molecule 17 *} +{===>} prot_top_mol17="protein-allhdg5-4.top"; +{* topology file for molecule 18 *} +{===>} prot_top_mol18="protein-allhdg5-4.top"; +{* topology file for molecule 19 *} +{===>} prot_top_mol19="protein-allhdg5-4.top"; +{* topology file for molecule 20 *} +{===>} prot_top_mol20="protein-allhdg5-4.top"; + +{* linkage file for molecule 1 *} +{===>} prot_link_mol1="protein-allhdg5-4-noter.link"; +{* linkage file for molecule 2 *} +{===>} prot_link_mol2="protein-allhdg5-4-noter.link"; +{* linkage file for molecule 3 *} +{===>} prot_link_mol3="protein-allhdg5-4-noter.link"; +{* linkage file for molecule 4 *} +{===>} prot_link_mol4="protein-allhdg5-4-noter.link"; +{* linkage file for molecule 5 *} +{===>} prot_link_mol5="protein-allhdg5-4-noter.link"; +{* linkage file for molecule 6 *} +{===>} prot_link_mol6="protein-allhdg5-4-noter.link"; +{* linkage file for molecule 7 *} +{===>} prot_link_mol7="protein-allhdg5-4-noter.link"; +{* linkage file for molecule 8 *} +{===>} prot_link_mol8="protein-allhdg5-4-noter.link"; +{* linkage file for molecule 9 *} +{===>} prot_link_mol9="protein-allhdg5-4-noter.link"; +{* linkage file for molecule 10 *} +{===>} prot_link_mol10="protein-allhdg5-4-noter.link"; +{* linkage file for molecule 11 *} +{===>} prot_link_mol11="protein-allhdg5-4-noter.link"; +{* linkage file for molecule 12 *} +{===>} prot_link_mol12="protein-allhdg5-4-noter.link"; +{* linkage file for molecule 13 *} +{===>} prot_link_mol13="protein-allhdg5-4-noter.link"; +{* linkage file for molecule 14 *} +{===>} prot_link_mol14="protein-allhdg5-4-noter.link"; +{* linkage file for molecule 15 *} +{===>} prot_link_mol15="protein-allhdg5-4-noter.link"; +{* linkage file for molecule 16 *} +{===>} prot_link_mol16="protein-allhdg5-4-noter.link"; +{* linkage file for molecule 17 *} +{===>} prot_link_mol17="protein-allhdg5-4-noter.link"; +{* linkage file for molecule 18 *} +{===>} prot_link_mol18="protein-allhdg5-4-noter.link"; +{* linkage file for molecule 19 *} +{===>} prot_link_mol19="protein-allhdg5-4-noter.link"; +{* linkage file for molecule 20 *} +{===>} prot_link_mol20="protein-allhdg5-4-noter.link"; + +{* energy parameter file for molecule 1 *} +{===>} prot_par_mol1="protein-allhdg5-4.param"; +{* energy parameter file for molecule 2 *} +{===>} prot_par_mol2="protein-allhdg5-4.param"; +{* energy parameter file for molecule 3 *} +{===>} prot_par_mol3="protein-allhdg5-4.param"; +{* energy parameter file for molecule 4 *} +{===>} prot_par_mol4="protein-allhdg5-4.param"; +{* energy parameter file for molecule 5 *} +{===>} prot_par_mol5="protein-allhdg5-4.param"; +{* energy parameter file for molecule 6 *} +{===>} prot_par_mol6="protein-allhdg5-4.param"; +{* energy parameter file for molecule 7 *} +{===>} prot_par_mol7="protein-allhdg5-4.param"; +{* energy parameter file for molecule 8 *} +{===>} prot_par_mol8="protein-allhdg5-4.param"; +{* energy parameter file for molecule 9 *} +{===>} prot_par_mol9="protein-allhdg5-4.param"; +{* energy parameter file for molecule 10 *} +{===>} prot_par_mol10="protein-allhdg5-4.param"; +{* energy parameter file for molecule 11 *} +{===>} prot_par_mol11="protein-allhdg5-4.param"; +{* energy parameter file for molecule 12 *} +{===>} prot_par_mol12="protein-allhdg5-4.param"; +{* energy parameter file for molecule 13 *} +{===>} prot_par_mol13="protein-allhdg5-4.param"; +{* energy parameter file for molecule 14 *} +{===>} prot_par_mol14="protein-allhdg5-4.param"; +{* energy parameter file for molecule 15 *} +{===>} prot_par_mol15="protein-allhdg5-4.param"; +{* energy parameter file for molecule 16 *} +{===>} prot_par_mol16="protein-allhdg5-4.param"; +{* energy parameter file for molecule 17 *} +{===>} prot_par_mol17="protein-allhdg5-4.param"; +{* energy parameter file for molecule 18 *} +{===>} prot_par_mol18="protein-allhdg5-4.param"; +{* energy parameter file for molecule 19 *} +{===>} prot_par_mol19="protein-allhdg5-4.param"; +{* energy parameter file for molecule 20 *} +{===>} prot_par_mol20="protein-allhdg5-4.param"; + +{* type of non-bonded parameters *} +{* specify the type of non-bonded interaction *} +{+ choice: "PROLSQ" "PARMALLH6" "PARALLHDG" "OPLSX" +} +{===>} par_nonbonded="OPLSX"; + +{============coarse graining topology and parameter files ==================} + +{* topology file for molecule 1 *} +{===>} prot_cg_top_mol1="protein-CG-Martini-2-2.top"; +{* topology file for molecule 2 *} +{===>} prot_cg_top_mol2="protein-CG-Martini-2-2.top"; +{* topology file for molecule 3 *} +{===>} prot_cg_top_mol3="protein-CG-Martini-2-2.top"; +{* topology file for molecule 4 *} +{===>} prot_cg_top_mol4="protein-CG-Martini-2-2.top"; +{* topology file for molecule 5 *} +{===>} prot_cg_top_mol5="protein-CG-Martini-2-2.top"; +{* topology file for molecule 6 *} +{===>} prot_cg_top_mol6="protein-CG-Martini-2-2.top"; +{* topology file for molecule 7 *} +{===>} prot_cg_top_mol7="protein-CG-Martini-2-2.top"; +{* topology file for molecule 8 *} +{===>} prot_cg_top_mol8="protein-CG-Martini-2-2.top"; +{* topology file for molecule 9 *} +{===>} prot_cg_top_mol9="protein-CG-Martini-2-2.top"; +{* topology file for molecule 10 *} +{===>} prot_cg_top_mol10="protein-CG-Martini-2-2.top"; +{* topology file for molecule 11 *} +{===>} prot_cg_top_mol11="protein-CG-Martini-2-2.top"; +{* topology file for molecule 12 *} +{===>} prot_cg_top_mol12="protein-CG-Martini-2-2.top"; +{* topology file for molecule 13 *} +{===>} prot_cg_top_mol13="protein-CG-Martini-2-2.top"; +{* topology file for molecule 14 *} +{===>} prot_cg_top_mol14="protein-CG-Martini-2-2.top"; +{* topology file for molecule 15 *} +{===>} prot_cg_top_mol15="protein-CG-Martini-2-2.top"; +{* topology file for molecule 16 *} +{===>} prot_cg_top_mol16="protein-CG-Martini-2-2.top"; +{* topology file for molecule 17 *} +{===>} prot_cg_top_mol17="protein-CG-Martini-2-2.top"; +{* topology file for molecule 18 *} +{===>} prot_cg_top_mol18="protein-CG-Martini-2-2.top"; +{* topology file for molecule 19 *} +{===>} prot_cg_top_mol19="protein-CG-Martini-2-2.top"; +{* topology file for molecule 20 *} +{===>} prot_cg_top_mol20="protein-CG-Martini-2-2.top"; + +{* linkage file for molecule 1 *} +{===>} prot_cg_link_mol1="protein-CG-Martini-2-2.link"; +{* linkage file for molecule 2 *} +{===>} prot_cg_link_mol2="protein-CG-Martini-2-2.link"; +{* linkage file for molecule 3 *} +{===>} prot_cg_link_mol3="protein-CG-Martini-2-2.link"; +{* linkage file for molecule 4 *} +{===>} prot_cg_link_mol4="protein-CG-Martini-2-2.link"; +{* linkage file for molecule 5 *} +{===>} prot_cg_link_mol5="protein-CG-Martini-2-2.link"; +{* linkage file for molecule 6 *} +{===>} prot_cg_link_mol6="protein-CG-Martini-2-2.link"; +{* linkage file for molmolecule 7 *} +{===>} prot_cg_link_mol7="protein-CG-Martini-2-2.link"; +{* linkage file for molecule 8 *} +{===>} prot_cg_link_mol8="protein-CG-Martini-2-2.link"; +{* linkage file for molecule 9 *} +{===>} prot_cg_link_mol9="protein-CG-Martini-2-2.link"; +{* linkage file for molecule 10 *} +{===>} prot_cg_link_mol10="protein-CG-Martini-2-2.link"; +{* linkage file for molecule 11 *} +{===>} prot_cg_link_mol11="protein-CG-Martini-2-2.link"; +{* linkage file for molecule 12 *} +{===>} prot_cg_link_mol12="protein-CG-Martini-2-2.link"; +{* linkage file for molecule 13 *} +{===>} prot_cg_link_mol13="protein-CG-Martini-2-2.link"; +{* linkage file for molecule 14 *} +{===>} prot_cg_link_mol14="protein-CG-Martini-2-2.link"; +{* linkage file for molecule 15 *} +{===>} prot_cg_link_mol15="protein-CG-Martini-2-2.link"; +{* linkage file for molecule 16 *} +{===>} prot_cg_link_mol16="protein-CG-Martini-2-2.link"; +{* linkage file for molecule 17 *} +{===>} prot_cg_link_mol17="protein-CG-Martini-2-2.link"; +{* linkage file for molecule 18 *} +{===>} prot_cg_link_mol18="protein-CG-Martini-2-2.link"; +{* linkage file for molecule 19 *} +{===>} prot_cg_link_mol19="protein-CG-Martini-2-2.link"; +{* linkage file for molecule 20 *} +{===>} prot_cg_link_mol20="protein-CG-Martini-2-2.link"; + +{* energy parameter file for molecule 1 *} +{===>} prot_cg_par_mol1="protein-CG-Martini-2-2.param"; +{* energy parameter file for molecule 2 *} +{===>} prot_cg_par_mol2="protein-CG-Martini-2-2.param"; +{* energy parameter file for molecule 3 *} +{===>} prot_cg_par_mol3="protein-CG-Martini-2-2.param"; +{* energy parameter file for molecule 4 *} +{===>} prot_cg_par_mol4="protein-CG-Martini-2-2.param"; +{* energy parameter file for molecule 5 *} +{===>} prot_cg_par_mol5="protein-CG-Martini-2-2.param"; +{* energy parameter file for molecule 6 *} +{===>} prot_cg_par_mol6="protein-CG-Martini-2-2.param"; +{* energy parameter file for molecule 7 *} +{===>} prot_cg_par_mol7="protein-CG-Martini-2-2.param"; +{* energy parameter file for molecule 8 *} +{===>} prot_cg_par_mol8="protein-CG-Martini-2-2.param"; +{* energy parameter file for molecule 9 *} +{===>} prot_cg_par_mol9="protein-CG-Martini-2-2.param"; +{* energy parameter file for molecule 10 *} +{===>} prot_cg_par_mol10="protein-CG-Martini-2-2.param"; +{* energy parameter file for molecule 11 *} +{===>} prot_cg_par_mol11="protein-CG-Martini-2-2.param"; +{* energy parameter file for molecule 12 *} +{===>} prot_cg_par_mol12="protein-CG-Martini-2-2.param"; +{* energy parameter file for molecule 13 *} +{===>} prot_cg_par_mol13="protein-CG-Martini-2-2.param"; +{* energy parameter file for molecule 14 *} +{===>} prot_cg_par_mol14="protein-CG-Martini-2-2.param"; +{* energy parameter file for molecule 15 *} +{===>} prot_cg_par_mol15="protein-CG-Martini-2-2.param"; +{* energy parameter file for molecule 16 *} +{===>} prot_cg_par_mol16="protein-CG-Martini-2-2.param"; +{* energy parameter file for molecule 17 *} +{===>} prot_cg_par_mol17="protein-CG-Martini-2-2.param"; +{* energy parameter file for molecule 18 *} +{===>} prot_cg_par_mol18="protein-CG-Martini-2-2.param"; +{* energy parameter file for molecule 19 *} +{===>} prot_cg_par_mol19="protein-CG-Martini-2-2.param"; +{* energy parameter file for molecule 20 *} +{===>} prot_cg_par_mol20="protein-CG-Martini-2-2.param"; + + +{===================== energy and interaction parameters ==================} + +{ Do you want to include dihedral angle energy terms? } +{ choice: true false } +dihedflag=true; + +{* Do you want to include the electrostatic energy term for docking? *} +{* Note that it will be automatically included in the solvent refinement *} + +{* Include electrostatic during rigid body docking (it0)? *} +{+ choice: true false +} +{===>} elecflag_0=true; + +{* Give the epsilon constant for the electrostatic energy term in it0 *} +{===>} epsilon_0=10.0; + +{* Use constant (cdie) or distance-dependent (rdie) dielectric in it0? *} +{+ choice: cdie rdie +} +{===>} dielec_0=rdie; + +{* Include electrostatic during semi-flexible SA (it1)? *} +{+ choice: true false +} +{===>} elecflag_1=true; + +{* Give the epsilon constant for the electrostatic energy term in it1 *} +{===>} epsilon_1=1.0; + +{* Use constant (cdie) or distance-dependent (rdie) dielectric in it0? *} +{+ choice: cdie rdie +} +{===>} dielec_1=rdie; + +{* Scaling of intermolecular interactions for rigid body EM*} +{===>} inter_rigid=1.0; + +{* Scaling of intermolecular interactions for semi-flexible SA*} +{+ table: rows=3 "Rigid body dynamic " "SA with flexible side-chains (cool2)" "SA with flexible backbone and side-chains (cool3)" + cols=2 "Init value" "Final value" +} +{===>} init_rigid=0.001; +{===>} fin_rigid=0.001; +{===>} init_cool2=0.001; +{===>} fin_cool2=1.0; +{===>} init_cool3=0.05; +{===>} fin_cool3=1.0; + +{* Interaction matrix for non-bonded interactions*} +{+ table: rows=6 "Mol 1" "Mol 2" "Mol 3" "Mol 4" "Mol 5" "Mol 6" "Mol 7" "Mol 8" "Mol 9" Mol 10" "Mol 11" Mol 12" "Mol 13" "Mol 14" "Mol 15" "Mol 16" "Mol 17" "Mol 18" "Mol 19" "Mol 20" + cols=6 "Mol 1" "Mol 2" "Mol 3" "Mol 4" "Mol 5" "Mol 6" "Mol 7" "Mol 8" "Mol 9" Mol 10" "Mol 11" Mol 12" "Mol 13" "Mol 14" "Mol 15" "Mol 16" "Mol 17" "Mol 18" "Mol 19" "Mol 20" +} +{===>} int_1_1=1.0; +{===>} int_1_2=1.0; +{===>} int_1_3=1.0; +{===>} int_1_4=1.0; +{===>} int_1_5=1.0; +{===>} int_1_6=1.0; +{===>} int_1_7=1.0; +{===>} int_1_8=1.0; +{===>} int_1_9=1.0; +{===>} int_1_10=1.0; +{===>} int_1_11=1.0; +{===>} int_1_12=1.0; +{===>} int_1_13=1.0; +{===>} int_1_14=1.0; +{===>} int_1_15=1.0; +{===>} int_1_16=1.0; +{===>} int_1_17=1.0; +{===>} int_1_18=1.0; +{===>} int_1_19=1.0; +{===>} int_1_20=1.0; +{===>} int_2_1="N.A."; +{===>} int_2_2=1.0; +{===>} int_2_3=1.0; +{===>} int_2_4=1.0; +{===>} int_2_5=1.0; +{===>} int_2_6=1.0; +{===>} int_2_7=1.0; +{===>} int_2_8=1.0; +{===>} int_2_9=1.0; +{===>} int_2_10=1.0; +{===>} int_2_11=1.0; +{===>} int_2_12=1.0; +{===>} int_2_13=1.0; +{===>} int_2_14=1.0; +{===>} int_2_15=1.0; +{===>} int_2_16=1.0; +{===>} int_2_17=1.0; +{===>} int_2_18=1.0; +{===>} int_2_19=1.0; +{===>} int_2_20=1.0; +{===>} int_3_1="N.A."; +{===>} int_3_2="N.A."; +{===>} int_3_3=1.0; +{===>} int_3_4=1.0; +{===>} int_3_5=1.0; +{===>} int_3_6=1.0; +{===>} int_3_7=1.0; +{===>} int_3_8=1.0; +{===>} int_3_9=1.0; +{===>} int_3_10=1.0; +{===>} int_3_11=1.0; +{===>} int_3_12=1.0; +{===>} int_3_13=1.0; +{===>} int_3_14=1.0; +{===>} int_3_15=1.0; +{===>} int_3_16=1.0; +{===>} int_3_17=1.0; +{===>} int_3_18=1.0; +{===>} int_3_19=1.0; +{===>} int_3_20=1.0; +{===>} int_4_1="N.A."; +{===>} int_4_2="N.A."; +{===>} int_4_3="N.A."; +{===>} int_4_4=1.0; +{===>} int_4_5=1.0; +{===>} int_4_6=1.0; +{===>} int_4_7=1.0; +{===>} int_4_8=1.0; +{===>} int_4_9=1.0; +{===>} int_4_10=1.0; +{===>} int_4_11=1.0; +{===>} int_4_12=1.0; +{===>} int_4_13=1.0; +{===>} int_4_14=1.0; +{===>} int_4_15=1.0; +{===>} int_4_16=1.0; +{===>} int_4_17=1.0; +{===>} int_4_18=1.0; +{===>} int_4_19=1.0; +{===>} int_4_20=1.0; +{===>} int_5_1="N.A."; +{===>} int_5_2="N.A."; +{===>} int_5_3="N.A."; +{===>} int_5_4="N.A."; +{===>} int_5_5=1.0; +{===>} int_5_6=1.0; +{===>} int_5_7=1.0; +{===>} int_5_8=1.0; +{===>} int_5_9=1.0; +{===>} int_5_10=1.0; +{===>} int_5_11=1.0; +{===>} int_5_12=1.0; +{===>} int_5_13=1.0; +{===>} int_5_14=1.0; +{===>} int_5_15=1.0; +{===>} int_5_16=1.0; +{===>} int_5_17=1.0; +{===>} int_5_18=1.0; +{===>} int_5_19=1.0; +{===>} int_5_20=1.0; +{===>} int_6_1="N.A."; +{===>} int_6_2="N.A."; +{===>} int_6_3="N.A."; +{===>} int_6_4="N.A."; +{===>} int_6_5="N.A."; +{===>} int_6_6=1.0; +{===>} int_6_7=1.0; +{===>} int_6_8=1.0; +{===>} int_6_9=1.0; +{===>} int_6_10=1.0; +{===>} int_6_11=1.0; +{===>} int_6_12=1.0; +{===>} int_6_13=1.0; +{===>} int_6_14=1.0; +{===>} int_6_15=1.0; +{===>} int_6_16=1.0; +{===>} int_6_17=1.0; +{===>} int_6_18=1.0; +{===>} int_6_19=1.0; +{===>} int_6_20=1.0; +{===>} int_7_1="N.A."; +{===>} int_7_2="N.A."; +{===>} int_7_3="N.A."; +{===>} int_7_4="N.A."; +{===>} int_7_5="N.A."; +{===>} int_7_6="N.A."; +{===>} int_7_7=1.0; +{===>} int_7_8=1.0; +{===>} int_7_9=1.0; +{===>} int_7_10=1.0; +{===>} int_7_11=1.0; +{===>} int_7_12=1.0; +{===>} int_7_13=1.0; +{===>} int_7_14=1.0; +{===>} int_7_15=1.0; +{===>} int_7_16=1.0; +{===>} int_7_17=1.0; +{===>} int_7_18=1.0; +{===>} int_7_19=1.0; +{===>} int_7_20=1.0; +{===>} int_8_1="N.A."; +{===>} int_8_2="N.A."; +{===>} int_8_3="N.A."; +{===>} int_8_4="N.A."; +{===>} int_8_5="N.A."; +{===>} int_8_6="N.A."; +{===>} int_8_7="N.A."; +{===>} int_8_8=1.0; +{===>} int_8_9=1.0; +{===>} int_8_10=1.0; +{===>} int_8_11=1.0; +{===>} int_8_12=1.0; +{===>} int_8_13=1.0; +{===>} int_8_14=1.0; +{===>} int_8_15=1.0; +{===>} int_8_16=1.0; +{===>} int_8_17=1.0; +{===>} int_8_18=1.0; +{===>} int_8_19=1.0; +{===>} int_8_20=1.0; +{===>} int_9_1="N.A."; +{===>} int_9_2="N.A."; +{===>} int_9_3="N.A."; +{===>} int_9_4="N.A."; +{===>} int_9_5="N.A."; +{===>} int_9_6="N.A."; +{===>} int_9_7="N.A."; +{===>} int_9_8="N.A."; +{===>} int_9_9=1.0; +{===>} int_9_10=1.0; +{===>} int_9_11=1.0; +{===>} int_9_12=1.0; +{===>} int_9_13=1.0; +{===>} int_9_14=1.0; +{===>} int_9_15=1.0; +{===>} int_9_16=1.0; +{===>} int_9_17=1.0; +{===>} int_9_18=1.0; +{===>} int_9_19=1.0; +{===>} int_9_20=1.0; +{===>} int_10_1="N.A."; +{===>} int_10_2="N.A."; +{===>} int_10_3="N.A."; +{===>} int_10_4="N.A."; +{===>} int_10_5="N.A."; +{===>} int_10_6="N.A."; +{===>} int_10_7="N.A."; +{===>} int_10_8="N.A."; +{===>} int_10_9="N.A."; +{===>} int_10_10=1.0; +{===>} int_10_11=1.0; +{===>} int_10_12=1.0; +{===>} int_10_13=1.0; +{===>} int_10_14=1.0; +{===>} int_10_15=1.0; +{===>} int_10_16=1.0; +{===>} int_10_17=1.0; +{===>} int_10_18=1.0; +{===>} int_10_19=1.0; +{===>} int_10_20=1.0; +{===>} int_11_1="N.A."; +{===>} int_11_2="N.A."; +{===>} int_11_3="N.A."; +{===>} int_11_4="N.A."; +{===>} int_11_5="N.A."; +{===>} int_11_6="N.A."; +{===>} int_11_7="N.A."; +{===>} int_11_8="N.A."; +{===>} int_11_9="N.A."; +{===>} int_11_10="N.A."; +{===>} int_11_11=1.0; +{===>} int_11_12=1.0; +{===>} int_11_13=1.0; +{===>} int_11_14=1.0; +{===>} int_11_15=1.0; +{===>} int_11_16=1.0; +{===>} int_11_17=1.0; +{===>} int_11_18=1.0; +{===>} int_11_19=1.0; +{===>} int_11_20=1.0; +{===>} int_12_1="N.A."; +{===>} int_12_2="N.A."; +{===>} int_12_3="N.A."; +{===>} int_12_4="N.A."; +{===>} int_12_5="N.A."; +{===>} int_12_6="N.A."; +{===>} int_12_7="N.A."; +{===>} int_12_8="N.A."; +{===>} int_12_9="N.A."; +{===>} int_12_10="N.A."; +{===>} int_12_11="N.A."; +{===>} int_12_12=1.0; +{===>} int_12_13=1.0; +{===>} int_12_14=1.0; +{===>} int_12_15=1.0; +{===>} int_12_16=1.0; +{===>} int_12_17=1.0; +{===>} int_12_18=1.0; +{===>} int_12_19=1.0; +{===>} int_12_20=1.0; +{===>} int_13_1="N.A."; +{===>} int_13_2="N.A."; +{===>} int_13_3="N.A."; +{===>} int_13_4="N.A."; +{===>} int_13_5="N.A."; +{===>} int_13_6="N.A."; +{===>} int_13_7="N.A."; +{===>} int_13_8="N.A."; +{===>} int_13_9="N.A."; +{===>} int_13_10="N.A."; +{===>} int_13_11="N.A."; +{===>} int_13_12="N.A."; +{===>} int_13_13=1.0; +{===>} int_13_14=1.0; +{===>} int_13_15=1.0; +{===>} int_13_16=1.0; +{===>} int_13_17=1.0; +{===>} int_13_18=1.0; +{===>} int_13_19=1.0; +{===>} int_13_20=1.0; +{===>} int_14_1="N.A."; +{===>} int_14_2="N.A."; +{===>} int_14_3="N.A."; +{===>} int_14_4="N.A."; +{===>} int_14_5="N.A."; +{===>} int_14_6="N.A."; +{===>} int_14_7="N.A."; +{===>} int_14_8="N.A."; +{===>} int_14_9="N.A."; +{===>} int_14_10="N.A."; +{===>} int_14_11="N.A."; +{===>} int_14_12="N.A."; +{===>} int_14_13="N.A."; +{===>} int_14_14=1.0; +{===>} int_14_15=1.0; +{===>} int_14_16=1.0; +{===>} int_14_17=1.0; +{===>} int_14_18=1.0; +{===>} int_14_19=1.0; +{===>} int_14_20=1.0; +{===>} int_15_2="N.A."; +{===>} int_15_3="N.A."; +{===>} int_15_4="N.A."; +{===>} int_15_5="N.A."; +{===>} int_15_6="N.A."; +{===>} int_15_7="N.A."; +{===>} int_15_8="N.A."; +{===>} int_15_9="N.A."; +{===>} int_15_10="N.A."; +{===>} int_15_11="N.A."; +{===>} int_15_12="N.A."; +{===>} int_15_13="N.A."; +{===>} int_15_14="N.A."; +{===>} int_15_15=1.0; +{===>} int_15_16=1.0; +{===>} int_15_17=1.0; +{===>} int_15_18=1.0; +{===>} int_15_19=1.0; +{===>} int_15_20=1.0; +{===>} int_16_1="N.A."; +{===>} int_16_2="N.A."; +{===>} int_16_3="N.A."; +{===>} int_16_4="N.A."; +{===>} int_16_5="N.A."; +{===>} int_16_6="N.A."; +{===>} int_16_7="N.A."; +{===>} int_16_8="N.A."; +{===>} int_16_9="N.A."; +{===>} int_16_10="N.A."; +{===>} int_16_11="N.A."; +{===>} int_16_12="N.A."; +{===>} int_16_13="N.A."; +{===>} int_16_14="N.A."; +{===>} int_16_15="N.A."; +{===>} int_16_16=1.0; +{===>} int_16_17=1.0; +{===>} int_16_18=1.0; +{===>} int_16_19=1.0; +{===>} int_16_20=1.0; +{===>} int_17_1="N.A."; +{===>} int_17_2="N.A."; +{===>} int_17_3="N.A."; +{===>} int_17_4="N.A."; +{===>} int_17_5="N.A."; +{===>} int_17_6="N.A."; +{===>} int_17_7="N.A."; +{===>} int_17_8="N.A."; +{===>} int_17_9="N.A."; +{===>} int_17_10="N.A."; +{===>} int_17_11="N.A."; +{===>} int_17_12="N.A."; +{===>} int_17_13="N.A."; +{===>} int_17_14="N.A."; +{===>} int_17_15="N.A."; +{===>} int_17_16="N.A."; +{===>} int_17_17=1.0; +{===>} int_17_18=1.0; +{===>} int_17_19=1.0; +{===>} int_17_20=1.0; +{===>} int_18_1="N.A."; +{===>} int_18_2="N.A."; +{===>} int_18_3="N.A."; +{===>} int_18_4="N.A."; +{===>} int_18_5="N.A."; +{===>} int_18_6="N.A."; +{===>} int_18_7="N.A."; +{===>} int_18_8="N.A."; +{===>} int_18_9="N.A."; +{===>} int_18_10="N.A."; +{===>} int_18_11="N.A."; +{===>} int_18_12="N.A."; +{===>} int_18_13="N.A."; +{===>} int_18_14="N.A."; +{===>} int_18_15="N.A."; +{===>} int_18_16="N.A."; +{===>} int_18_17="N.A."; +{===>} int_18_18=1.0; +{===>} int_18_19=1.0; +{===>} int_18_20=1.0; +{===>} int_19_1="N.A."; +{===>} int_19_2="N.A."; +{===>} int_19_3="N.A."; +{===>} int_19_4="N.A."; +{===>} int_19_5="N.A."; +{===>} int_19_6="N.A."; +{===>} int_19_7="N.A."; +{===>} int_19_8="N.A."; +{===>} int_19_9="N.A."; +{===>} int_19_10="N.A."; +{===>} int_19_11="N.A."; +{===>} int_19_12="N.A."; +{===>} int_19_13="N.A."; +{===>} int_19_14="N.A."; +{===>} int_19_15="N.A."; +{===>} int_19_16="N.A."; +{===>} int_19_17="N.A."; +{===>} int_19_18="N.A."; +{===>} int_19_19=1.0; +{===>} int_19_20=1.0; +{===>} int_20_1="N.A."; +{===>} int_20_2="N.A."; +{===>} int_20_3="N.A."; +{===>} int_20_4="N.A."; +{===>} int_20_5="N.A."; +{===>} int_20_6="N.A."; +{===>} int_20_7="N.A."; +{===>} int_20_8="N.A."; +{===>} int_20_9="N.A."; +{===>} int_20_10="N.A."; +{===>} int_20_11="N.A."; +{===>} int_20_12="N.A."; +{===>} int_20_13="N.A."; +{===>} int_20_14="N.A."; +{===>} int_20_15="N.A."; +{===>} int_20_16="N.A."; +{===>} int_20_17="N.A."; +{===>} int_20_18="N.A."; +{===>} int_20_19="N.A."; +{===>} int_20_20=1.0; + +{===================== Number of structures to dock =======================} +{* Setting for the rigid-body (it0) and semi-flexible refiment (it1) *} + +{* number of structures for rigid body docking *} +{===>} structures_0=1000; + keepstruct_0=&structures_0; +{* number of structures for refinement *} +{===>} structures_1=200; + keepstruct_1=&structures_1; + keepstruct_2=&structures_1; +{* number of structures to be analysed*} +{===>} anastruc_1=200; + anastruc_0=&anastruc_1; + anastruc_2=&anastruc_1; + +{* Sampling of symmetry related solutions *} + +{* Sample 180 degrees rotated solutions during rigid body EM? *} +{+ choice: true false +} +{===>} rotate180_it0=true; + +{* Sample 180 degrees rotated solutions during semi-flexible SA?*} +{+ choice: true false +} +{===>} rotate180_it1=false; + + +{=========================== DOCKING protocol =============================} +{* Cross-dock all combinations in the ensembles of starting structures? *} +{* Turn off this option if you only want to dock structure 1 of ensemble A *} +{* to structure 1 of ensemble B, structure 2 to structure 2, etc. *} +{+ choice: true false +} +{===>} crossdock=true; + +{* Randomize starting orientations? *} +{+ choice: true false +} +{===>} randorien=true; + +{* Expand starting orientations? *} +{+ choice: true false +} +{===>} expand=false; + +{* Expansion percentage *} +{===>} expansion=0.2; + +{* Random rotation angle *} +{===>} randangle=6; + +{* Rebuild missing atoms in the context of the complex? (refinement mode) *} +{+ choice: true false +} +{===>} rebuildcplx=false; + +{* Perform initial rigid body minimisation? *} +{+ choice: true false +} +{===>} rigidmini=true; + +{* Allow translation in rigid body minimisation? *} +{+ choice: true false +} +{===>} rigidtrans=true; + +{* Number of trials for rigid body minimisation? *} +{===>} ntrials=5; + +{* initial seed for random number generator *} +{* change to get different initial velocities *} +{===>} iniseed=917; + +{* temperature for rigid body high temperature TAD *} +{===>} tadhigh_t=2000; + +{* initial temperature for rigid body first TAD cooling step *} +{===>} tadinit1_t=2000; + +{* final temperature after first cooling step *} +{===>} tadfinal1_t=500; + +{* initial temperature for second TAD cooling step with flexible side-chain at the inferface *} +{===>} tadinit2_t=1000; + +{* finale temperature after second cooling step *} +{===>} tadfinal2_t=50; + +{* initial temperature for third TAD cooling step with fully flexible interface *} +{===>} tadinit3_t=1000; + +{* finale temperature after third cooling step *} +{===>} tadfinal3_t=50; + +{* time step *} +{===>} timestep=0.002; +{* factor for timestep in TAD *} +{===>} tadfactor=8; + +{* Number of EM steps for translational minimisation? *} +{===>} emstepstrans=1000; + +{* number of MD steps for rigid body high temperature TAD *} +{===>} initiosteps=500; + +{* number of MD steps during first rigid body cooling stage *} +{===>} cool1_steps=500; + +{* number of MD steps during second cooling stage with flexible side-chains at interface *} +{===>} cool2_steps=1000; + +{* number of MD steps during third cooling stage with fully flexible interface *} +{===>} cool3_steps=1000; + + +{======================= Solvated rigid body docking=======================} +{* perform solvated docking ? *} +{+ choice: true false +} +{===>} waterdock=false; + +{* which method to use for solvating? *} +{* db: database-based (recommended), restraints: for restrained solvating to amino-acid most often forming +water mediated contacts and blank (""): for uniform waterlayer *} +{+ choice: "db" "restraints" "" +} +{===>} solvate_method="db"; + +{* which propensity database to use? *} +{* statistical: based on an analysis of water-mediated contacts in the PDB, kyte-doolittle: based on the Kyte-Doolittle hydrophobicity scalte *} +{+ choice: "statistical" "kytedoolittle" +} +{===>} db_method="kytedoolittle"; + +{* initial cutoff for restraints solvating method *} +{* all waters further away from a highly occuring water solvated residue will be removed in the generation +of the initial solvation shell *} +{===>} water_restraint_initial=5.0; + +{* cutoff for restraints solvating method *} +{* upper distance limit for defining distance restraints between water and amino-acids often found to be +involved in water-mediated contacts *} +{===>} water_restraint_cutoff=5.0; + +{* force constant for restrainted solvating method *} +{===>} water_restraint_scale=25.0; + +{* fraction of water to keep *} +{* this is the fraction of all interface water after the initial rigid body docking that will be kept +(note that more waters might be removed if the interaction energy is unfavorable *} +{===>} water_tokeep=0.50; + +{* fraction of water around DNA to keep *} +{* this is the fraction of interface water involving DNA phoshpates after the initial rigid body docking that will be kept +(note that more waters might be removed if the interaction energy is unfavorable *} +{===>} dnap_water_tokeep=0.75; + +{* random fraction to be added to the fraction of water to keep *} +{===>} water_randfrac=0.0; + +{* water-protein surface-cutoff *} +{* waters further away than this cutoff distance from any component of the complex will be removed *} +{===>} water_surfcutoff=8.0; + +{* do some water analysis *} +{+ choice: true false +} +{===>} water_analysis=false; + +{* allows translation of water molecules during rigid-body docking, true or false: *} +{+ choice: true false +} +{===>} transwater=true; + +{* number of different initial solvation shells to generate *} +{===>} waterensemble=1; + + +{==================== final explicit solvent refinement ==================} +{* Do you want to refine your docking models in explicit solvent? *} +{+ choice: "yes" "no" +} +{===>} firstwater="yes"; + +{* Build explicit solvent shell? (Can be turned off the large molecules or when morphing CG to AA models) *} +{* Only EM will then be performed *} +{+ choice: true false +} +{===>} solvshell=false; + +{* Which solvent do you want to use? *} +{+ choice: "water" "dmso" +} +{===>} solvent="water"; + +{* number of structures for the explicit solvent refinement *} +{* the n best structures will be refined *} +{===>} waterrefine=200; + structures_2=&waterrefine; + +{* number of steps for heating phase (100, 200, 300K)? *} +{===>} waterheatsteps=100; + +{* number of steps for 300K sampling phase? *} +{===>} watersteps=1250; + +{* number of steps for cooling phase (300, 200, 100K)? *} +{===>} watercoolsteps=500; + +{* write additional PDB files including solvent ? *} +{+ choice: true false +} +{===>} keepwater=false; + + +{================================ Scoring =================================} +{* Settings for the scoring of the docking solutions *} + +{* Define the weights for the various terms for the sorting of structures (scoring) *} +{+ table: rows=15 "Evdw" "Eelec" "Eair" "Erg" "Esani" "Exrdc" "Expcs" "Edani" "Evean" "Ecdih" "Esym" "Ezres" "BSA" "dEint" "Edesolv" + cols=3 "Rigid body EM" "semi-flexible SA" "Water refinement" +} +{===>} w_vdw_0=0.01; +{===>} w_vdw_1=1.0; +{===>} w_vdw_2=1.0; + +{===>} w_elec_0=1.0; +{===>} w_elec_1=1.0; +{===>} w_elec_2=0.2; + +{===>} w_dist_0=0.01; +{===>} w_dist_1=0.1; +{===>} w_dist_2=0.1; + +{===>} w_rg_0=0.1; +{===>} w_rg_1=1.0; +{===>} w_rg_2=1.0; + +{===>} w_sani_0=0.1; +{===>} w_sani_1=0.1; +{===>} w_sani_2=0.1; + +{===>} w_xrdc_0=0.1; +{===>} w_xrdc_1=0.1; +{===>} w_xrdc_2=0.1; + +{===>} w_xpcs_0=0.1; +{===>} w_xpcs_1=0.1; +{===>} w_xpcs_2=0.1; + +{===>} w_dani_0=0.01; +{===>} w_dani_1=0.1; +{===>} w_dani_2=0.1; + +{===>} w_vean_0=0.1; +{===>} w_vean_1=0.1; +{===>} w_vean_2=0.1; + +{===>} w_cdih_0=0.0; +{===>} w_cdih_1=0.0; +{===>} w_cdih_2=0.0; + +{===>} w_sym_0=0.1; +{===>} w_sym_1=0.1; +{===>} w_sym_2=0.1; + +{===>} w_zres_0=0.1; +{===>} w_zres_1=0.1; +{===>} w_zres_2=0.1; + +{===>} w_bsa_0=-0.01; +{===>} w_bsa_1=-0.01; +{===>} w_bsa_2=0.0; + +{===>} w_deint_0=0.0; +{===>} w_deint_1=0.0; +{===>} w_deint_2=0.0; + +{===>} w_desolv_0=1.0; +{===>} w_desolv_1=1.0; +{===>} w_desolv_2=1.0; + +{* It is possible to skip structures in the selection of structure in it0 *} +{* Give for this the number of structures to skip: *} +{===>} skip_struc=0; + + +{======================= analysis and clustering ==========================} +{* Full or limited analysis of results? *} +{+ choice: "full" "cluster" "none" +} +{===>} runana="cluster"; + +{* Cutoff distance (proton-acceptor) to define an hydrogen bond? *} +{===>} dist_hb=2.5; + +{* Cutoff distance (carbon-carbon) to define an hydrophobic contact? *} +{===>} dist_nb=3.9; + +{* Clustering method (RMSD or Fraction of Common Contacts (FCC)) *} +{+ choice: "RMSD" "FCC" +} +{===>} clust_meth="FCC"; + +{* RMSD cutoff for clustering? (Recommended values: RMSD 7.5, FCC 0.60) *} +{===>} clust_cutoff=0.60; + +{* Minimum cluster size? *} +{===>} clust_size=4; + +{* Chain-Agnostic Algorithm (used for FCC clustering in symmetrical complexes) *} +{+ choice: "true" "false" +} +{===>} fcc_ignc=false; + +{======================= final clean-up ===================================} +{* Clean up the run directory after completion (only files for struct #1 are kept) ? *} +{+ choice: true false +} +{===>} cleanup=true; + + +{============================ parallel jobs ===============================} +{* How many nodes do you want to use in parallel? *} +{* leave unused fields blank, make sure that the queues are actually running *} +{+ table: rows=10 "1" "2" "3" "4" "5" "6" "7" "8" "9" "10" + cols=3 "queue command" "cns executable" "number of jobs" +} + +{===>} queue_1="ssub short"; +{===>} cns_exe_1="/home/software/science/cns/cns_solve_1.31-UU/intel-x86_64bit-linux/bin/cns"; +{===>} cpunumber_1=50; + +{===>} queue_2=""; +{===>} cns_exe_2=""; +{===>} cpunumber_2=0; + +{===>} queue_3=""; +{===>} cns_exe_3=""; +{===>} cpunumber_3=0; + +{===>} queue_4=""; +{===>} cns_exe_4=""; +{===>} cpunumber_4=0; + +{===>} queue_5=""; +{===>} cns_exe_5=""; +{===>} cpunumber_5=0; + +{===>} queue_6=""; +{===>} cns_exe_6=""; +{===>} cpunumber_6=0; + +{===>} queue_7=""; +{===>} cns_exe_7=""; +{===>} cpunumber_7=0; + +{===>} queue_8=""; +{===>} cns_exe_8=""; +{===>} cpunumber_8=0; + +{===>} queue_9=""; +{===>} cns_exe_9=""; +{===>} cpunumber_9=0; + +{===>} queue_10=""; +{===>} cns_exe_10=""; +{===>} cpunumber_10=0; + +{===========================================================================} +{ things below this line do not normally need to be changed } +{===========================================================================} + +) {- end block parameter definition -} + +!for global parameters (local variables (suffix ) => global variables): +evaluate (&saprotocol.crossdock=&crossdock) +evaluate (&saprotocol.randorien=&randorien) +evaluate (&saprotocol.rebuildcplx=&rebuildcplx) +evaluate (&saprotocol.rigidmini=&rigidmini) +evaluate (&saprotocol.rigidtrans=&rigidtrans) +evaluate (&saprotocol.expand=&expand) +evaluate (&saprotocol.expansion=&expansion) +evaluate (&saprotocol.randangle=&randangle) + +if (&saprotocol.expand eq true) then + evaluate (&saprotocol.randorien=false) + evaluate (&saprotocol.rigidmini=false) +end if + +evaluate (&saprotocol.ntrials=&ntrials) +evaluate (&saprotocol.iniseed=&iniseed) +evaluate (&saprotocol.tadhigh_t=&tadhigh_t) +evaluate (&saprotocol.t1_init=&tadinit1_t) +evaluate (&saprotocol.t2_init=&tadinit2_t) +evaluate (&saprotocol.t3_init=&tadinit3_t) +evaluate (&saprotocol.t1_final=&tadfinal1_t) +evaluate (&saprotocol.t2_final=&tadfinal2_t) +evaluate (&saprotocol.t3_final=&tadfinal3_t) +evaluate (&saprotocol.inter_rigid=&inter_rigid) +evaluate (&saprotocol.inter_init_rigid=&init_rigid) +evaluate (&saprotocol.inter_fin_rigid=&fin_rigid) +evaluate (&saprotocol.inter_init_cool2=&init_cool2) +evaluate (&saprotocol.inter_fin_cool2=&fin_cool2) +evaluate (&saprotocol.inter_init_cool3=&init_cool3) +evaluate (&saprotocol.inter_fin_cool3=&fin_cool3) +evaluate (&saprotocol.rotate180_it0=&rotate180_it0) +evaluate (&saprotocol.rotate180_it1=&rotate180_it1) +evaluate (&saprotocol.tempstep=50) +evaluate (&saprotocol.timestep=×tep) +evaluate (&saprotocol.tadfactor=&tadfactor) +evaluate (&saprotocol.emstepstrans=&emstepstrans) +evaluate (&saprotocol.initiosteps=&initiosteps) +evaluate (&saprotocol.cool1_steps=&cool1_steps) +evaluate (&saprotocol.cool2_steps=&cool2_steps) +evaluate (&saprotocol.cool3_steps=&cool3_steps) +evaluate (&saprotocol.fbeta=100) +evaluate (&saprotocol.mass=100) + +evaluate (&filenames.fileroot=&fileroot) +evaluate (&filenames.template=&fileroot + "_1.pdb") + +evaluate (&iterations.ini_count =1) +evaluate (&iterations.structures =&structures_$iteration) +evaluate (&iterations.keepstruct =&keepstruct_$iteration) +evaluate (&iterations.w_vdw =&w_vdw_$iteration) +evaluate (&iterations.w_elec =&w_elec_$iteration) +evaluate (&iterations.w_dist =&w_dist_$iteration) +evaluate (&iterations.w_rg =&w_rg_$iteration) +evaluate (&iterations.w_sani =&w_sani_$iteration) +evaluate (&iterations.w_xrdc =&w_xrdc_$iteration) +evaluate (&iterations.w_xpcs =&w_xpcs_$iteration) +evaluate (&iterations.w_dani =&w_dani_$iteration) +evaluate (&iterations.w_vean =&w_vean_$iteration) +evaluate (&iterations.w_cdih =&w_cdih_$iteration) +evaluate (&iterations.w_sym =&w_sym_$iteration) +evaluate (&iterations.w_zres =&w_zres_$iteration) +evaluate (&iterations.w_bsa =&w_bsa_$iteration) +evaluate (&iterations.w_deint =&w_deint_$iteration) +evaluate (&iterations.w_desolv =&w_desolv_$iteration) +evaluate (&iterations.anastruc =&anastruc_$iteration) +evaluate (&iterations.w_lcc = &w_lcc_$iteration) + + +evaluate ($Data.ncomponents=&ncomponents) + +evaluate ($nmol=1) +while ($nmol <= $Data.ncomponents) loop mol + + !aa topology, linkage and parameters files + evaluate (&toppar.prot_top_$nmol=&prot_top_mol$nmol ) + evaluate (&toppar.prot_link_$nmol=&prot_link_mol$nmol ) + evaluate (&toppar.prot_par_$nmol=&prot_par_mol$nmol ) + + !coarse grained topology, linkage and parameters files + evaluate (&toppar.prot_cg_top_$nmol=&prot_cg_top_mol$nmol ) + evaluate (&toppar.prot_cg_link_$nmol=&prot_cg_link_mol$nmol ) + evaluate (&toppar.prot_cg_par_$nmol=&prot_cg_par_mol$nmol ) + + !molecule related (coordinate files, rootname, fix, type, coarse grained, segid) + evaluate (&toppar.prot_coor_$nmol=&prot_coor_mol$nmol) + evaluate (&toppar.prot_root_$nmol=&prot_root_mol$nmol) + evaluate (&toppar.fix_origin_$nmol=&fix_origin_mol$nmol) + evaluate (&toppar.dna_$nmol=&dna_mol$nmol) + evaluate (&toppar.cyclicpept_$nmol=&cyclicpept_mol$nmol) + evaluate (&toppar.shape_$nmol=&shape_mol$nmol) + evaluate (&toppar.cg_$nmol=&cg_mol$nmol) + evaluate (&toppar.prot_segid_$nmol=&prot_segid_mol$nmol) + + !semi flexible segments + evaluate (&toppar.nseg_$nmol=&nseg_$nmol) + evaluate ($nseg = 1) + while ($nseg <= &toppar.nseg_$nmol) loop seg + evaluate (&toppar.start_seg_$nmol_$nseg=&start_seg_$nmol_$nseg) + evaluate (&toppar.end_seg_$nmol_$nseg=&end_seg_$nmol_$nseg) + evaluate ($nseg = $nseg + 1) + end loop seg + + !fully flexible segments + evaluate (&toppar.nfle_$nmol=&nfle_$nmol) + evaluate ($nfle = 1) + while ($nfle <= &toppar.nfle_$nmol) loop fle + evaluate (&toppar.start_fle_$nmol_$nfle=&start_fle_$nmol_$nfle) + evaluate (&toppar.end_fle_$nmol_$nfle=&end_fle_$nmol_$nfle) + evaluate ($nfle = $nfle + 1) + end loop fle + + !histidine patches + evaluate (&toppar.autohis=&autohis) + evaluate (&toppar.nhisd_$nmol=&numhisd_$nmol) + evaluate ($ncc=1) + while ($ncc <= &toppar.nhisd_$nmol) loop hisd + evaluate (&toppar.hisd_resid_$nmol_$ncc=&hisd_$nmol_$ncc) + evaluate ($ncc = $ncc + 1) + end loop hisd + + evaluate (&toppar.nhise_$nmol=&numhise_$nmol) + evaluate ($ncc=1) + while ($ncc <= &toppar.nhise_$nmol) loop hisd + evaluate (&toppar.hise_resid_$nmol_$ncc=&hise_$nmol_$ncc) + evaluate ($ncc = $ncc + 1) + end loop hisd + + evaluate ($nmol = $nmol + 1) + +end loop mol + +! non-bonded parameter set to use +evaluate (&toppar.par_nonbonded=&par_nonbonded) + +! z-restraining +evaluate ($Data.flags.zres = &zres_on) +evaluate ($Data.numzres=&numzres) +evaluate ($ncc=1) +while ($ncc <= &numzres) loop zres + evaluate (&toppar.zres_sta_$ncc=&zres_sta_$ncc) + evaluate (&toppar.zres_end_$ncc=&zres_end_$ncc) + evaluate (&toppar.zres_seg_$ncc=&zres_seg_$ncc) + evaluate (&toppar.zres_type_$ncc=&zres_type_$ncc) + evaluate ($ncc = $ncc + 1) +end loop zres + +! NCS restraints +evaluate ($Data.kncs=&kncs) +evaluate ($Data.flags.ncs = &ncs_on) +evaluate ($Data.numncs=&numncs) +evaluate ($ncc=1) +while ($ncc <= &numncs) loop ncs + evaluate (&toppar.ncs_sta1_$ncc=&ncs_sta1_$ncc) + evaluate (&toppar.ncs_end1_$ncc=&ncs_end1_$ncc) + evaluate (&toppar.ncs_seg1_$ncc=&ncs_seg1_$ncc) + evaluate (&toppar.ncs_sta2_$ncc=&ncs_sta2_$ncc) + evaluate (&toppar.ncs_end2_$ncc=&ncs_end2_$ncc) + evaluate (&toppar.ncs_seg2_$ncc=&ncs_seg2_$ncc) + evaluate ($ncc = $ncc + 1) +end loop ncs + +! Symmetry restraints +evaluate ($Data.ksym=&ksym) +evaluate ($Data.flags.sym = &sym_on) +evaluate ($Data.numc2sym=&numc2sym) +evaluate ($nsym=1) +while ($nsym <= &numc2sym) loop sym + evaluate (&toppar.c2sym_sta1_$nsym=&c2sym_sta1_$nsym) + evaluate (&toppar.c2sym_end1_$nsym=&c2sym_end1_$nsym) + evaluate (&toppar.c2sym_seg1_$nsym=&c2sym_seg1_$nsym) + evaluate (&toppar.c2sym_sta2_$nsym=&c2sym_sta2_$nsym) + evaluate (&toppar.c2sym_end2_$nsym=&c2sym_end2_$nsym) + evaluate (&toppar.c2sym_seg2_$nsym=&c2sym_seg2_$nsym) + evaluate ($nsym = $nsym + 1) +end loop sym + +evaluate ($Data.numc3sym=&numc3sym) +evaluate ($nsym=1) +while ($nsym <= &numc3sym) loop sym + evaluate (&toppar.c3sym_sta1_$nsym=&c3sym_sta1_$nsym) + evaluate (&toppar.c3sym_end1_$nsym=&c3sym_end1_$nsym) + evaluate (&toppar.c3sym_seg1_$nsym=&c3sym_seg1_$nsym) + evaluate (&toppar.c3sym_sta2_$nsym=&c3sym_sta2_$nsym) + evaluate (&toppar.c3sym_end2_$nsym=&c3sym_end2_$nsym) + evaluate (&toppar.c3sym_seg2_$nsym=&c3sym_seg2_$nsym) + evaluate (&toppar.c3sym_sta3_$nsym=&c3sym_sta3_$nsym) + evaluate (&toppar.c3sym_end3_$nsym=&c3sym_end3_$nsym) + evaluate (&toppar.c3sym_seg3_$nsym=&c3sym_seg3_$nsym) + evaluate ($nsym = $nsym + 1) +end loop sym + +evaluate ($Data.nums3sym=&nums3sym) +evaluate ($nsym=1) +while ($nsym <= &nums3sym) loop sym + evaluate (&toppar.s3sym_sta1_$nsym=&s3sym_sta1_$nsym) + evaluate (&toppar.s3sym_end1_$nsym=&s3sym_end1_$nsym) + evaluate (&toppar.s3sym_seg1_$nsym=&s3sym_seg1_$nsym) + evaluate (&toppar.s3sym_sta2_$nsym=&s3sym_sta2_$nsym) + evaluate (&toppar.s3sym_end2_$nsym=&s3sym_end2_$nsym) + evaluate (&toppar.s3sym_seg2_$nsym=&s3sym_seg2_$nsym) + evaluate (&toppar.s3sym_sta3_$nsym=&s3sym_sta3_$nsym) + evaluate (&toppar.s3sym_end3_$nsym=&s3sym_end3_$nsym) + evaluate (&toppar.s3sym_seg3_$nsym=&s3sym_seg3_$nsym) + evaluate ($nsym = $nsym + 1) +end loop sym + +evaluate ($Data.numc4sym=&numc4sym) +evaluate ($nsym=1) +while ($nsym <= &numc4sym) loop sym + evaluate (&toppar.c4sym_sta1_$nsym=&c4sym_sta1_$nsym) + evaluate (&toppar.c4sym_end1_$nsym=&c4sym_end1_$nsym) + evaluate (&toppar.c4sym_seg1_$nsym=&c4sym_seg1_$nsym) + evaluate (&toppar.c4sym_sta2_$nsym=&c4sym_sta2_$nsym) + evaluate (&toppar.c4sym_end2_$nsym=&c4sym_end2_$nsym) + evaluate (&toppar.c4sym_seg2_$nsym=&c4sym_seg2_$nsym) + evaluate (&toppar.c4sym_sta3_$nsym=&c4sym_sta3_$nsym) + evaluate (&toppar.c4sym_end3_$nsym=&c4sym_end3_$nsym) + evaluate (&toppar.c4sym_seg3_$nsym=&c4sym_seg3_$nsym) + evaluate (&toppar.c4sym_sta4_$nsym=&c4sym_sta4_$nsym) + evaluate (&toppar.c4sym_end4_$nsym=&c4sym_end4_$nsym) + evaluate (&toppar.c4sym_seg4_$nsym=&c4sym_seg4_$nsym) + evaluate ($nsym = $nsym + 1) +end loop sym + +evaluate ($Data.numc5sym=&numc5sym) +evaluate ($nsym=1) +while ($nsym <= &numc5sym) loop sym + evaluate (&toppar.c5sym_sta1_$nsym=&c5sym_sta1_$nsym) + evaluate (&toppar.c5sym_end1_$nsym=&c5sym_end1_$nsym) + evaluate (&toppar.c5sym_seg1_$nsym=&c5sym_seg1_$nsym) + evaluate (&toppar.c5sym_sta2_$nsym=&c5sym_sta2_$nsym) + evaluate (&toppar.c5sym_end2_$nsym=&c5sym_end2_$nsym) + evaluate (&toppar.c5sym_seg2_$nsym=&c5sym_seg2_$nsym) + evaluate (&toppar.c5sym_sta3_$nsym=&c5sym_sta3_$nsym) + evaluate (&toppar.c5sym_end3_$nsym=&c5sym_end3_$nsym) + evaluate (&toppar.c5sym_seg3_$nsym=&c5sym_seg3_$nsym) + evaluate (&toppar.c5sym_sta4_$nsym=&c5sym_sta4_$nsym) + evaluate (&toppar.c5sym_end4_$nsym=&c5sym_end4_$nsym) + evaluate (&toppar.c5sym_seg4_$nsym=&c5sym_seg4_$nsym) + evaluate (&toppar.c5sym_sta5_$nsym=&c5sym_sta5_$nsym) + evaluate (&toppar.c5sym_end5_$nsym=&c5sym_end5_$nsym) + evaluate (&toppar.c5sym_seg5_$nsym=&c5sym_seg5_$nsym) + evaluate ($nsym = $nsym + 1) +end loop sym + + +evaluate ($Data.numc6sym=&numc6sym) +evaluate ($nsym=1) +while ($nsym <= &numc6sym) loop sym + evaluate (&toppar.c6sym_sta1_$nsym=&c6sym_sta1_$nsym) + evaluate (&toppar.c6sym_end1_$nsym=&c6sym_end1_$nsym) + evaluate (&toppar.c6sym_seg1_$nsym=&c6sym_seg1_$nsym) + evaluate (&toppar.c6sym_sta2_$nsym=&c6sym_sta2_$nsym) + evaluate (&toppar.c6sym_end2_$nsym=&c6sym_end2_$nsym) + evaluate (&toppar.c6sym_seg2_$nsym=&c6sym_seg2_$nsym) + evaluate (&toppar.c6sym_sta3_$nsym=&c6sym_sta3_$nsym) + evaluate (&toppar.c6sym_end3_$nsym=&c6sym_end3_$nsym) + evaluate (&toppar.c6sym_seg3_$nsym=&c6sym_seg3_$nsym) + evaluate (&toppar.c6sym_sta4_$nsym=&c6sym_sta4_$nsym) + evaluate (&toppar.c6sym_end4_$nsym=&c6sym_end4_$nsym) + evaluate (&toppar.c6sym_seg4_$nsym=&c6sym_seg4_$nsym) + evaluate (&toppar.c6sym_sta5_$nsym=&c6sym_sta5_$nsym) + evaluate (&toppar.c6sym_end5_$nsym=&c6sym_end5_$nsym) + evaluate (&toppar.c6sym_seg5_$nsym=&c6sym_seg5_$nsym) + evaluate (&toppar.c6sym_sta6_$nsym=&c6sym_sta6_$nsym) + evaluate (&toppar.c6sym_end6_$nsym=&c6sym_end6_$nsym) + evaluate (&toppar.c6sym_seg6_$nsym=&c6sym_seg6_$nsym) + evaluate ($nsym = $nsym + 1) +end loop sym + +if ( $Data.numc2sym eq 6) then + evaluate (&saprotocol.rotate180_it0 = false) + evaluate (&saprotocol.rotate180_it1 = false) +end if +if ( $Data.numc3sym ne 0) then + evaluate (&saprotocol.rotate180_it0 = false) + evaluate (&saprotocol.rotate180_it1 = false) +end if +if ( $Data.numc4sym ne 0) then + evaluate (&saprotocol.rotate180_it0 = false) + evaluate (&saprotocol.rotate180_it1 = false) +end if +if ( $Data.numc5sym ne 0) then + evaluate (&saprotocol.rotate180_it0 = false) + evaluate (&saprotocol.rotate180_it1 = false) +end if +if ( $Data.numc6sym ne 0) then + evaluate (&saprotocol.rotate180_it0 = false) + evaluate (&saprotocol.rotate180_it1 = false) +end if + + +!Dihedrals, DNA and distance restraints +evaluate ($Data.dnarest = &dnarest_on) +evaluate ($Data.flags.cdih = &dihedrals_on) +evaluate ($Data.cdih.on = &dihedrals_on) +evaluate ($Data.ssdihed = &ssdihed) +evaluate ($Data.error_dih = &error_dih) +evaluate ($Data.dihedrals.on=&dihedrals_on) +evaluate ($Data.dihedrals_hot=&dihedrals_hot) +evaluate ($Data.dihedrals_cool1=&dihedrals_cool1) +evaluate ($Data.dihedrals_cool2=&dihedrals_cool2) +evaluate ($Data.dihedrals_cool3=&dihedrals_cool3) +evaluate ($Data.hbonds_on=&hbonds_on) + +! RDC restraints +evaluate ($Data.flags.vean = false) +evaluate ($Data.flags.xrdc = false) +evaluate ($Data.flags.sani = false) +evaluate ($Data.numrdc=&numrdc) +evaluate ($ncc=1) +while ($ncc <= $Data.numrdc) loop rdc + if (&rdc_choice_$ncc = "VANGLE") then + evaluate ($Data.flags.vean = true) + end if + if (&rdc_choice_$ncc = "SANI") then + evaluate ($Data.flags.sani = true) + end if + if (&rdc_choice_$ncc = "XRDC") then + evaluate ($Data.flags.xrdc = true) + end if + evaluate ($Data.rdc_choice_$ncc=&rdc_choice_$ncc) + evaluate ($Data.rdc_firstIt_$ncc=&rdc_firstIt_$ncc) + evaluate ($Data.rdc_lastIt_$ncc=&rdc_lastIt_$ncc) + evaluate ($Data.rdc_hot_$ncc=&rdc_hot_$ncc) + evaluate ($Data.rdc_cool1_$ncc=&rdc_cool1_$ncc) + evaluate ($Data.rdc_cool2_$ncc=&rdc_cool2_$ncc) + evaluate ($Data.rdc_cool3_$ncc=&rdc_cool3_$ncc) + evaluate ($Data.rdc_r_$ncc=&rdc_r_$ncc) + evaluate ($Data.rdc_d_$ncc=&rdc_d_$ncc) + evaluate ($Data.ini_bor_hot_$ncc=&ini_bor_hot_$ncc) + evaluate ($Data.ini_bor_cool1_$ncc=&ini_bor_cool1_$ncc) + evaluate ($Data.ini_bor_cool2_$ncc=&ini_bor_cool2_$ncc) + evaluate ($Data.ini_bor_cool3_$ncc=&ini_bor_cool3_$ncc) + evaluate ($Data.ini_cen_hot_$ncc=&ini_cen_hot_$ncc) + evaluate ($Data.ini_cen_cool1_$ncc=&ini_cen_cool1_$ncc) + evaluate ($Data.ini_cen_cool2_$ncc=&ini_cen_cool2_$ncc) + evaluate ($Data.ini_cen_cool3_$ncc=&ini_cen_cool3_$ncc) + evaluate ($Data.fin_bor_hot_$ncc=&fin_bor_hot_$ncc) + evaluate ($Data.fin_bor_cool1_$ncc=&fin_bor_cool1_$ncc) + evaluate ($Data.fin_bor_cool2_$ncc=&fin_bor_cool2_$ncc) + evaluate ($Data.fin_bor_cool3_$ncc=&fin_bor_cool3_$ncc) + evaluate ($Data.fin_cen_hot_$ncc=&fin_cen_hot_$ncc) + evaluate ($Data.fin_cen_cool1_$ncc=&fin_cen_cool1_$ncc) + evaluate ($Data.fin_cen_cool2_$ncc=&fin_cen_cool2_$ncc) + evaluate ($Data.fin_cen_cool3_$ncc=&fin_cen_cool3_$ncc) + evaluate ($ncc=$ncc+1) +end loop rdc + +! PCS restraints +evaluate ($Data.flags.xpcs = false) +evaluate ($Data.numpcs=&numpcs) +evaluate ($ncc=1) +while ($ncc <= &numpcs) loop pcs + if (&pcs_choice_$ncc = "XPCS") then + evaluate ($Data.flags.xpcs = true) + end if + evaluate ($Data.pcs_choice_$ncc=&pcs_choice_$ncc) + evaluate ($Data.pcs_firstIt_$ncc=&pcs_firstIt_$ncc) + evaluate ($Data.pcs_lastIt_$ncc=&pcs_lastIt_$ncc) + evaluate ($Data.pcs_hot_$ncc=&pcs_hot_$ncc) + evaluate ($Data.pcs_cool1_$ncc=&pcs_cool1_$ncc) + evaluate ($Data.pcs_cool2_$ncc=&pcs_cool2_$ncc) + evaluate ($Data.pcs_cool3_$ncc=&pcs_cool3_$ncc) + evaluate ($Data.pcs_r_$ncc=&pcs_r_$ncc) + evaluate ($Data.pcs_d_$ncc=&pcs_d_$ncc) + evaluate ($ncc=$ncc+1) +end loop pcs + +! DANI restraints +evaluate ($Data.flags.dani = false) +evaluate ($Data.numdani=&numdani) +evaluate ($ncc=1) +while ($ncc <= &numdani) loop dani + if (&dan_choice_$ncc = "DANI") then + evaluate ($Data.flags.dani = true) + end if + evaluate ($Data.dan_choice_$ncc=&dan_choice_$ncc) + evaluate ($Data.dan_firstIt_$ncc=&dan_firstIt_$ncc) + evaluate ($Data.dan_lastIt_$ncc=&dan_lastIt_$ncc) + evaluate ($Data.dan_hot_$ncc=&dan_hot_$ncc) + evaluate ($Data.dan_cool1_$ncc=&dan_cool1_$ncc) + evaluate ($Data.dan_cool2_$ncc=&dan_cool2_$ncc) + evaluate ($Data.dan_cool3_$ncc=&dan_cool3_$ncc) + evaluate ($Data.dan_tc_$ncc=&dan_tc_$ncc) + evaluate ($Data.dan_anis_$ncc=&dan_anis_$ncc) + evaluate ($Data.dan_r_$ncc=&dan_r_$ncc) + evaluate ($Data.dan_wh_$ncc=&dan_wh_$ncc) + evaluate ($Data.dan_wn_$ncc=&dan_wn_$ncc) + evaluate ($ncc=$ncc+1) +end loop dani + +! planarity restraints +evaluate ($Data.flags.plan = false) + +! distance restraints +evaluate ($Data.flags.noe = true) +evaluate ($Data.scaling=&air_scaling) +evaluate ($Data.totnoe_unamb=&tot_unamb) +evaluate ($Data.unamb_firstit=&unamb_firstit) +evaluate ($Data.unamb_lastit=&unamb_lastit) +evaluate ($Data.unamb_hot=&unamb_hot) +evaluate ($Data.unamb_cool1=&unamb_cool1) +evaluate ($Data.unamb_cool2=&unamb_cool2) +evaluate ($Data.unamb_cool3=&unamb_cool3) +evaluate ($Data.noecv=&noecv) +evaluate ($Data.ncvpart=&ncvpart) + +evaluate ($Data.totnoe_amb=&tot_amb) +evaluate ($Data.amb_firstit=&amb_firstit) +evaluate ($Data.amb_lastit=&amb_lastit) +evaluate ($Data.amb_hot=&amb_hot) +evaluate ($Data.amb_cool1=&amb_cool1) +evaluate ($Data.amb_cool2=&amb_cool2) +evaluate ($Data.amb_cool3=&amb_cool3) + +evaluate ($Data.hbond_firstit=&hbond_firstit) +evaluate ($Data.hbond_lastit=&hbond_lastit) +evaluate ($Data.hbond_hot=&hbond_hot) +evaluate ($Data.hbond_cool1=&hbond_cool1) +evaluate ($Data.hbond_cool2=&hbond_cool2) +evaluate ($Data.hbond_cool3=&hbond_cool3) + +evaluate ($Data.mrswi_hot=&mrswi_hot) +evaluate ($Data.mrswi_cool1=&mrswi_cool1) +evaluate ($Data.mrswi_cool2=&mrswi_cool2) +evaluate ($Data.mrswi_cool3=&mrswi_cool3) + +evaluate ($Data.rswi_hot=&rswi_hot) +evaluate ($Data.rswi_cool1=&rswi_cool1) +evaluate ($Data.rswi_cool2=&rswi_cool2) +evaluate ($Data.rswi_cool3=&rswi_cool3) + +evaluate ($Data.masy_hot=&masy_hot) +evaluate ($Data.masy_cool1=&masy_cool1) +evaluate ($Data.masy_cool2=&masy_cool2) +evaluate ($Data.masy_cool3=&masy_cool3) + +evaluate ($Data.asy_hot=&asy_hot) +evaluate ($Data.asy_cool1=&asy_cool1) +evaluate ($Data.asy_cool2=&asy_cool2) +evaluate ($Data.asy_cool3=&asy_cool3) + +evaluate ($Data.ranair=&ranair) +if ($Data.ranair eq true) then + evaluate ($Data.noecv = false) +end if +evaluate ($Data.cmrest=&cmrest) +evaluate ($Data.cmtight=&cmtight) +evaluate ($Data.kcont=&kcont) +evaluate ($Data.surfrest=&surfrest) +evaluate ($Data.ksurf=&ksurf) + + +! radius of gydration restraints +evaluate ($Data.flags.rg=&rgrest) +evaluate ($Data.rgtarg=&rgtarg) +evaluate ($Data.krg_hot=&krg_hot) +evaluate ($Data.krg_cool1=&krg_cool1) +evaluate ($Data.krg_cool2=&krg_cool2) +evaluate ($Data.krg_cool3=&krg_cool3) +evaluate ($Data.rgsele=&rgsele) + +evaluate ($Data.kzres=&kzres) +evaluate ($Data.zresmax=&zresmax) +evaluate ($Data.zresmin=&zresmin) + +! keep or delete non-polar hydrogens +evaluate (&toppar.delenph=&delenph) + + +!Electrostatics: +evaluate ($Data.flags.dihed = &dihedflag) +evaluate ($Data.flags.elec0 = &elecflag_0) +evaluate ($Data.flags.elec1 = &elecflag_1) +evaluate ($Data.epsilon0 = &epsilon_0) +evaluate ($Data.epsilon1 = &epsilon_1) +evaluate ($Data.dielec0 = &dielec_0) +evaluate ($Data.dielec1 = &dielec_1) + + +!Interaction matrix: +evaluate ($nmol1=1) +while ($nmol1 <= $Data.ncomponents) loop mol1 + evaluate ($nmol2=$nmol1 + 1) + evaluate (&toppar.int_$nmol1_$nmol1 = &int_$nmol1_$nmol1) + while ($nmol2 <= $Data.ncomponents) loop mol2 + evaluate (&toppar.int_$nmol1_$nmol2 = &int_$nmol1_$nmol2) + evaluate (&toppar.int_$nmol2_$nmol1 = &int_$nmol1_$nmol2) + evaluate ($nmol2=$nmol2 + 1) + end loop mol2 + evaluate ($nmol1 = $nmol1 + 1) +end loop mol1 + +!intermolecular contacts analysis +evaluate ($Data.hb_dist=&dist_hb) +evaluate ($Data.nb_dist=&dist_nb) + + +!water refinement +evaluate (&refine.firstwater=&firstwater) +evaluate (&refine.solvshell=&solvshell) +evaluate (&refine.keepwater=&keepwater) +evaluate (&refine.waterrefine=min(&structures_1,&waterrefine)) +evaluate (&refine.solvent=&solvent) +evaluate (&refine.heatsteps=&waterheatsteps) +evaluate (&refine.steps=&watersteps) +evaluate (&refine.coolsteps=&watercoolsteps) + + +!for the non-bonded parameters (the section was taken out of +!parallhdg5.0.pro and parallhdg5.1.pro, so be careful!): +if (&toppar.par_nonbonded eq "PROLSQ") then + evaluate (&toppar.repel_radius = 1.0) + evaluate (&toppar.repel_rcons = 20) + evaluate (&toppar.repel_rexpo = 4) + evaluate (&toppar.repel_irexp = 1) +elseif (&toppar.par_nonbonded eq "PARMALLH6") then + evaluate (&toppar.repel_radius = 0.8) + evaluate (&toppar.repel_rcons = 5.0) + evaluate (&toppar.repel_rexpo = 2) + evaluate (&toppar.repel_irexp = 2) +elseif (&toppar.par_nonbonded eq "OPLSX") then + evaluate (&toppar.repel_radius = 0.0) +else {...now the standard PARALLHDG parameters} + evaluate (&toppar.repel_radius = 0.78) + evaluate (&toppar.repel_rcons = 5.0) + evaluate (&toppar.repel_rexpo = 2) + evaluate (&toppar.repel_irexp = 2) +end if + +! Water in rigid body docking +evaluate ($Data.waterdock=&waterdock) +evaluate ($Data.db_method=&db_method) +evaluate ($Data.water_tokeep=&water_tokeep) +evaluate ($Data.dnap_water_tokeep=&dnap_water_tokeep) +evaluate ($Data.water_randfrac=&water_randfrac) +evaluate ($Data.solvate_method=&solvate_method) +evaluate ($Data.water_surfcutoff=&water_surfcutoff) +evaluate ($Data.water_analysis=&water_analysis) +evaluate ($Data.transwater=&transwater) +evaluate ($Data.water_restraint_initial=&water_restraint_initial) +evaluate ($Data.water_restraint_cutoff=&water_restraint_cutoff) +evaluate ($Data.water_restraint_scale=&water_restraint_scale) +evaluate ($Data.waterensemble=&waterensemble) + +if ($Data.waterdock eq true) then + evaluate (&saprotocol.rotate180_it0 = false) + evaluate (&saprotocol.rotate180_it1 = false) + evaluate (&SaProtocol.initiosteps = 0) + evaluate (&SaProtocol.cool1_steps = 0) + evaluate (&refine.keepwater = true) + display SOLVATED DOCKING TURNED ON: initiosteps and cool1_steps set to 0, rotate180 set to false +end if + +! Centroid parameters +eval($Data.flags.centroids = ¢roid_rest) +eval($Data.centroids.kscale = ¢roid_kscale) +eval($nchain = 0) +while ($nchain < &ncomponents) loop nloop1 + eval($nchain = $nchain + 1) + eval($Data.centroids.xcom_$nchain = &xcom_$nchain) + eval($Data.centroids.ycom_$nchain = &ycom_$nchain) + eval($Data.centroids.zcom_$nchain = &zcom_$nchain) + eval($Data.centroids.ambi_$nchain = &ambi_$nchain) +end loop nloop1 + +if (&saprotocol.expand eq true) then + eval($Data.flags.centroids = true) +end if + +! Cryo-EM parameters +eval($Data.flags.em = &em_rest) +eval($Data.em.kscale = &em_kscale) +eval($Data.em.it0 = &em_it0) +eval($Data.em.it1 = &em_it1) +eval($Data.em.itw = &em_itw) +eval($Data.em.resolution = &em_resolution) +eval($Data.em.nx = &nx) +eval($Data.em.ny = &ny) +eval($Data.em.nz = &nz) +eval($Data.em.xlength = &xlength) +eval($Data.em.ylength = &ylength) +eval($Data.em.zlength = &zlength) diff --git a/src/haddock/modules/flexref/cns/run.cns~ b/src/haddock/modules/flexref/cns/run.cns~ new file mode 100644 index 000000000..167979b62 --- /dev/null +++ b/src/haddock/modules/flexref/cns/run.cns~ @@ -0,0 +1,5309 @@ +! run.cns +! The file containing all parameters for HADDOCK +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! +module( +iteration; +filenames; +data; +iterations; +saprotocol; +refine; +toppar; +analysis; +) + +{+ File: run.cns +} +{+ Description: this file contains all necessary information to run HADDOCK. +} + +{+ Authors: Ezgi Karaca, Joao Rodrigues, Mikael Trellet, Alexandre Bonvin
    +HADDOCK version 2.4

    +Initially adapted from ARIA of Nilges and Linge +} + +{+ Please cite the following references when using this protocol: +} +{+ reference: Cyril Dominguez, Rolf Boelens and Alexandre M.J.J. Bonvin (2003). HADDOCK: a protein-protein docking approach +based on biochemical and/or biophysical information. J. Am. Chem. Soc. 125, 1731-1737. +

    +When using residual dipolar couplings in HADDOCK cite in addition:

    +

  • A.D.J. van Dijk, D. Fushman and A.M.J.J. Bonvin (2005). Various strategies of using residual dipolar +couplings in NMR-driven protein docking: Application to Lys48-linked di-ubiquitin and validation against +15N-relaxation data. Proteins: Struc. Funct. & Bioinformatics, 60, 367-381.
  • +

    +When using diffusion anisotropy data in HADDOCK cite in addition:

    +

  • A.D.J. van Dijk, R. Kaptein, R. Boelens and A.M.J.J. Bonvin (2006). Combining NMR relaxation with +chemical shift perturbation data to drive protein-protein docking. J. Biomol. NMR, +34, 237-244.
  • +

    +When using solvated docking in HADDOCK cite in addition:

    +

  • A.D.J. van Dijk and A.M.J.J. Bonvin (2006). Solvated docking: introducing water into the modelling +of biomolecular complexes. Bioinformatics, 22 2340-2347. +

    +When performing flexible protein-DNA docking using HADDOCK cite in addition:

    +

  • M. van Dijk, A.D.J. van Dijk, V. Hsu, R. Boelens and A.M.J.J. Bonvin (2006). +Information-driven Protein-DNA Docking using HADDOCK: it is a matter of flexibility. +Nucl. Acids Res., 34 3317-3325.
  • +

    +When performing the Nmolecule integrative modelling protocol please cite:

    +

  • Ezgi Karaca, Joao P.G.L.M. Rodrigues, Andrea Graziadei, Alexandre M.J.J. Bonvin, Teresa Carlomagno (2017). +An Integrative Framework for Structure Determination of Molecular Machines. +Nature Methods, Advanced Online Publication.
  • ++} + +{- Guidelines for using this file: + - all strings must be quoted by double-quotes + - logical variables (true/false) are not quoted + - do not remove any evaluate statements from the file + - pathnames should not exceed 80 characters -} +{- begin block parameter definition -} define( + + +{======== number of molecules for docking ==================} +{* number of components *} +{===>} ncomponents=2; + + + +{======================= filenames =========================} +{* the name of your current project *} +{* this will be used as name for the generated structures *} +{===>} fileroot="e2a-hpr"; + +{* RUN directory *} +{* the absolute path of your current run, e.g. /home/haddock/run1*} +{===>} run_dir="/home/abonvin/haddock_git/haddock2.4/examples/e2a-hpr/run1"; +{* PDB file of molecule 1 *} +{===>} prot_coor_mol1="e2aP_1F3G.pdb"; +{* PSF file of molecule 1 *} +{===>} prot_psf_mol1="e2aP_1F3G.psf"; +{* segid of molecule 1 *} +{===>} prot_segid_mol1="A"; +{* fileroot of molecule 1 *} +{===>} prot_root_mol1="e2aP_1F3G"; +{* Fix Molecule at Origin during it0 *} +{+ choice: true false +} +{===>} fix_origin_mol1=false; +{* Is molecule 1 DNA? *} +{+ choice: true false +} +{===>} dna_mol1=false; +{* Is molecule 1 a cyclic peptide? *} +{+ choice: true false +} +{===>} cyclicpept_mol1=false; +{* Is molecule 1 a shape? *} +{+ choice: true false +} +{===>} shape_mol1=false; +{* Coarse grained molecule? *} +{+ choice: true false +} +{===>} cg_mol1=false; + +{* PDB file of molecule 2 *} +{===>} prot_coor_mol2="hpr_1.pdb"; +{* PSF file of molecule 2 *} +{===>} prot_psf_mol2="hpr_1.psf"; +{* segid file of molecule 2 *} +{===>} prot_segid_mol2="B"; +{* fileroot of molecule 2 *} +{===>} prot_root_mol2="hpr_1"; +{* Fix Molecule at Origin during it0 *} +{+ choice: true false +} +{===>} fix_origin_mol2=false; +{* Is molecule 2 DNA? *} +{+ choice: true false +} +{===>} dna_mol2=false; +{* Is molecule 2 a cyclic peptide? *} +{+ choice: true false +} +{===>} cyclicpept_mol2=false; +{* Is molecule 2 a shape? *} +{+ choice: true false +} +{===>} shape_mol2=false; +{* Coarse grained molecule? *} +{+ choice: true false +} +{===>} cg_mol2=false; + +{* PDB file of molecule 3 *} +{===>} prot_coor_mol3=""; +{* PSF file of molecule 3 *} +{===>} prot_psf_mol3=""; +{* segid file of molecule 3 *} +{===>} prot_segid_mol3="C"; +{* fileroot of molecule 3 *} +{===>} prot_root_mol3=""; +{* Fix Molecule at Origin during it0 *} +{+ choice: true false +} +{===>} fix_origin_mol3=false; +{* Is molecule 3 DNA? *} +{+ choice: true false +} +{===>} dna_mol3=false; +{* Is molecule 3 a cyclic peptide? *} +{+ choice: true false +} +{===>} cyclicpept_mol3=false; +{* Is molecule 3 a shape? *} +{+ choice: true false +} +{===>} shape_mol3=false; +{* Coarse grained molecule? *} +{+ choice: true false +} +{===>} cg_mol3=false; + +{* PDB file of molecule 4 *} +{===>} prot_coor_mol4=""; +{* PSF file of molecule 4 *} +{===>} prot_psf_mol4=""; +{* segid file of molecule 4 *} +{===>} prot_segid_mol4="D"; +{* fileroot of molecule 4 *} +{===>} prot_root_mol4=""; +{* Fix Molecule at Origin during it0 *} +{+ choice: true false +} +{===>} fix_origin_mol4=false; +{* Is molecule 4 DNA? *} +{+ choice: true false +} +{===>} dna_mol4=false; +{* Is molecule 4 a cyclic peptide? *} +{+ choice: true false +} +{===>} cyclicpept_mol4=false; +{* Is molecule 4 a shape? *} +{+ choice: true false +} +{===>} shape_mol4=false; +{* Coarse grained molecule? *} +{+ choice: true false +} +{===>} cg_mol4=false; + +{* PDB file of molecule 5 *} +{===>} prot_coor_mol5=""; +{* PSF file of molecule 5 *} +{===>} prot_psf_mol5=""; +{* segid file of molecule 5 *} +{===>} prot_segid_mol5="E"; +{* fileroot of molecule 5 *} +{===>} prot_root_mol5=""; +{* Fix Molecule at Origin during it0 *} +{+ choice: true false +} +{===>} fix_origin_mol5=false; +{* Is molecule 5 DNA? *} +{+ choice: true false +} +{===>} dna_mol5=false; +{* Is molecule 5 a cyclic peptide? *} +{+ choice: true false +} +{===>} cyclicpept_mol5=false; +{* Is molecule 5 a shape? *} +{+ choice: true false +} +{===>} shape_mol5=false; +{* Coarse grained molecule? *} +{+ choice: true false +} +{===>} cg_mol5=false; + +{* PDB file of molecule 6 *} +{===>} prot_coor_mol6=""; +{* PSF file of molecule 6 *} +{===>} prot_psf_mol6=""; +{* segid file of molecule 6 *} +{===>} prot_segid_mol6="F"; +{* fileroot of molecule 6 *} +{===>} prot_root_mol6=""; +{* Fix Molecule at Origin during it0 *} +{+ choice: true false +} +{===>} fix_origin_mol6=false; +{* Is molecule 6 DNA? *} +{+ choice: true false +} +{===>} dna_mol6=false; +{* Is molecule 6 a cyclic peptide? *} +{+ choice: true false +} +{===>} cyclicpept_mol6=false; +{* Is molecule 6 a shape? *} +{+ choice: true false +} +{===>} shape_mol6=false; +{* Coarse grained molecule? *} +{+ choice: true false +} +{===>} cg_mol6=false; + +{* PDB file of molecule 7 *} +{===>} prot_coor_mol7=""; +{* PSF file of molecule 7 *} +{===>} prot_psf_mol7=""; +{* segid file of molecule 7 *} +{===>} prot_segid_mol7="G"; +{* fileroot of molecule 7 *} +{===>} prot_root_mol7=""; +{* Fix Molecule at Origin during it0 *} +{+ choice: true false +} +{===>} fix_origin_mol7=false; +{* Is molecule 7 DNA? *} +{+ choice: true false +} +{===>} dna_mol7=false; +{* Is molecule 7 a cyclic peptide? *} +{+ choice: true false +} +{===>} cyclicpept_mol7=false; +{* Is molecule 7 a shape? *} +{+ choice: true false +} +{===>} shape_mol7=false; +{* Coarse grained molecule? *} +{+ choice: true false +} +{===>} cg_mol7=false; + +{* PDB file of molecule 8 *} +{===>} prot_coor_mol8=""; +{* PSF file of molecule 8 *} +{===>} prot_psf_mol8=""; +{* segid file of molecule 8 *} +{===>} prot_segid_mol8="H"; +{* fileroot of molecule 8 *} +{===>} prot_root_mol8=""; +{* Fix Molecule at Origin during it0 *} +{+ choice: true false +} +{===>} fix_origin_mol8=false; +{* Is molecule 8 DNA? *} +{+ choice: true false +} +{===>} dna_mol8=false; +{* Is molecule 8 a cyclic peptide? *} +{+ choice: true false +} +{===>} cyclicpept_mol8=false; +{* Is molecule 8 a shape? *} +{+ choice: true false +} +{===>} shape_mol8=false; +{* Coarse grained molecule? *} +{+ choice: true false +} +{===>} cg_mol8=false; + +{* PDB file of molecule 9 *} +{===>} prot_coor_mol9=""; +{* PSF file of molecule 9 *} +{===>} prot_psf_mol9=""; +{* segid file of molecule 9 *} +{===>} prot_segid_mol9="I"; +{* fileroot of molecule 9 *} +{===>} prot_root_mol9=""; +{* Fix Molecule at Origin during it0 *} +{+ choice: true false +} +{===>} fix_origin_mol9=false; +{* Is molecule 9 DNA? *} +{+ choice: true false +} +{===>} dna_mol9=false; +{* Is molecule 9 a cyclic peptide? *} +{+ choice: true false +} +{===>} cyclicpept_mol9=false; +{* Is molecule 9 a shape? *} +{+ choice: true false +} +{===>} shape_mol9=false; +{* Coarse grained molecule? *} +{+ choice: true false +} +{===>} cg_mol9=false; + +{* PDB file of molecule 10 *} +{===>} prot_coor_mol10=""; +{* PSF file of molecule 10 *} +{===>} prot_psf_mol10=""; +{* segid file of molecule 10 *} +{===>} prot_segid_mol10="J"; +{* fileroot of molecule 10 *} +{===>} prot_root_mol10=""; +{* Fix Molecule at Origin during it0 *} +{+ choice: true false +} +{===>} fix_origin_mol10=false; +{* Is molecule 10 DNA? *} +{+ choice: true false +} +{===>} dna_mol10=false; +{* Is molecule 10 a cyclic peptide? *} +{+ choice: true false +} +{===>} cyclicpept_mol10=false; +{* Is molecule 10 a shape? *} +{+ choice: true false +} +{===>} shape_mol10=false; +{* Coarse grained molecule? *} +{+ choice: true false +} +{===>} cg_mol10=false; + +{* PDB file of molecule 11 *} +{===>} prot_coor_mol11=""; +{* PSF file of molecule 11 *} +{===>} prot_psf_mol11=""; +{* segid file of molecule 11 *} +{===>} prot_segid_mol11="K"; +{* fileroot of molecule 11 *} +{===>} prot_root_mol11=""; +{* Fix Molecule at Origin during it0 *} +{+ choice: true false +} +{===>} fix_origin_mol11=false; +{* Is molecule 11 DNA? *} +{+ choice: true false +} +{===>} dna_mol11=false; +{* Is molecule 11 a cyclic peptide? *} +{+ choice: true false +} +{===>} cyclicpept_mol11=false; +{* Is molecule 11 a shape? *} +{+ choice: true false +} +{===>} shape_mol11=false; +{* Coarse grained molecule? *} +{+ choice: true false +} +{===>} cg_mol11=false; + +{* PDB file of molecule 12 *} +{===>} prot_coor_mol12=""; +{* PSF file of molecule 12 *} +{===>} prot_psf_mol12=""; +{* segid file of molecule 12 *} +{===>} prot_segid_mol12="L"; +{* fileroot of molecule 12 *} +{===>} prot_root_mol12=""; +{* Fix Molecule at Origin during it0 *} +{+ choice: true false +} +{===>} fix_origin_mol12=false; +{* Is molecule 12 DNA? *} +{+ choice: true false +} +{===>} dna_mol12=false; +{* Is molecule 12 a cyclic peptide? *} +{+ choice: true false +} +{===>} cyclicpept_mol12=false; +{* Is molecule 12 a shape? *} +{+ choice: true false +} +{===>} shape_mol12=false; +{* Coarse grained molecule? *} +{+ choice: true false +} +{===>} cg_mol12=false; + +{===>} prot_coor_mol13=""; +{* PSF file of molecule 13 *} +{===>} prot_psf_mol13=""; +{* segid file of molecule 13 *} +{===>} prot_segid_mol13="M"; +{* fileroot of molecule 13 *} +{===>} prot_root_mol13=""; +{* Fix Molecule at Origin during it0 *} +{+ choice: true false +} +{===>} fix_origin_mol13=false; +{* Is molecule 13 DNA? *} +{+ choice: true false +} +{===>} dna_mol13=false; +{* Is molecule 13 a cyclic peptide? *} +{+ choice: true false +} +{===>} cyclicpept_mol13=false; +{* Is molecule 13 a shape? *} +{+ choice: true false +} +{===>} shape_mol13=false; +{* Coarse grained molecule? *} +{+ choice: true false +} +{===>} cg_mol13=false; + +{===>} prot_coor_mol14=""; +{* PSF file of molecule 14 *} +{===>} prot_psf_mol14=""; +{* segid file of molecule 14 *} +{===>} prot_segid_mol14="N"; +{* fileroot of molecule 14 *} +{===>} prot_root_mol14=""; +{* Fix Molecule at Origin during it0 *} +{+ choice: true false +} +{===>} fix_origin_mol14=false; +{* Is molecule 14 DNA? *} +{+ choice: true false +} +{===>} dna_mol14=false; +{* Is molecule 14 a cyclic peptide? *} +{+ choice: true false +} +{===>} cyclicpept_mol14=false; +{* Is molecule 14 a shape? *} +{+ choice: true false +} +{===>} shape_mol14=false; +{* Coarse grained molecule? *} +{+ choice: true false +} +{===>} cg_mol14=false; + +{===>} prot_coor_mol15=""; +{* PSF file of molecule 15 *} +{===>} prot_psf_mol15=""; +{* segid file of molecule 15 *} +{===>} prot_segid_mol15="O"; +{* fileroot of molecule 15 *} +{===>} prot_root_mol15=""; +{* Fix Molecule at Origin during it0 *} +{+ choice: true false +} +{===>} fix_origin_mol15=false; +{* Is molecule 15 DNA? *} +{+ choice: true false +} +{===>} dna_mol15=false; +{* Is molecule 15 a cyclic peptide? *} +{+ choice: true false +} +{===>} cyclicpept_mol15=false; +{* Is molecule 15 a shape? *} +{+ choice: true false +} +{===>} shape_mol15=false; +{* Coarse grained molecule? *} +{+ choice: true false +} +{===>} cg_mol15=false; + +{===>} prot_coor_mol16=""; +{* PSF file of molecule 16 *} +{===>} prot_psf_mol16=""; +{* segid file of molecule 16 *} +{===>} prot_segid_mol16="P"; +{* fileroot of molecule 16 *} +{===>} prot_root_mol16=""; +{* Fix Molecule at Origin during it0 *} +{+ choice: true false +} +{===>} fix_origin_mol16=false; +{* Is molecule 16 DNA? *} +{+ choice: true false +} +{===>} dna_mol16=false; +{* Is molecule 16 a cyclic peptide? *} +{+ choice: true false +} +{===>} cyclicpept_mol16=false; +{* Is molecule 16 a shape? *} +{+ choice: true false +} +{===>} shape_mol16=false; +{* Coarse grained molecule? *} +{+ choice: true false +} +{===>} cg_mol16=false; + +{===>} prot_coor_mol17=""; +{* PSF file of molecule 17 *} +{===>} prot_psf_mol17=""; +{* segid file of molecule 17 *} +{===>} prot_segid_mol17="Q"; +{* fileroot of molecule 17 *} +{===>} prot_root_mol17=""; +{* Fix Molecule at Origin during it0 *} +{+ choice: true false +} +{===>} fix_origin_mol17=false; +{* Is molecule 17 DNA? *} +{+ choice: true false +} +{===>} dna_mol17=false; +{* Is molecule 17 a cyclic peptide? *} +{+ choice: true false +} +{===>} cyclicpept_mol17=false; +{* Is molecule 17 a shape? *} +{+ choice: true false +} +{===>} shape_mol17=false; +{* Coarse grained molecule? *} +{+ choice: true false +} +{===>} cg_mol17=false; + + +{===>} prot_coor_mol18=""; +{* PSF file of molecule 18 *} +{===>} prot_psf_mol18=""; +{* segid file of molecule 18 *} +{===>} prot_segid_mol18="R"; +{* fileroot of molecule 18 *} +{===>} prot_root_mol18=""; +{* Fix Molecule at Origin during it0 *} +{+ choice: true false +} +{===>} fix_origin_mol18=false; +{* Is molecule 18 DNA? *} +{+ choice: true false +} +{===>} dna_mol18=false; +{* Is molecule 18 a cyclic peptide? *} +{+ choice: true false +} +{===>} cyclicpept_mol18=false; +{* Is molecule 18 a shape? *} +{+ choice: true false +} +{===>} shape_mol18=false; +{* Coarse grained molecule? *} +{+ choice: true false +} +{===>} cg_mol18=false; + +{===>} prot_coor_mol19=""; +{* PSF file of molecule 19 *} +{===>} prot_psf_mol19=""; +{* segid file of molecule 19 *} +{===>} prot_segid_mol19="S"; +{* fileroot of molecule 19 *} +{===>} prot_root_mol19=""; +{* Fix Molecule at Origin during it0 *} +{+ choice: true false +} +{===>} fix_origin_mol19=false; +{* Is molecule 19 DNA? *} +{+ choice: true false +} +{===>} dna_mol19=false; +{* Is molecule 19 a cyclic peptide? *} +{+ choice: true false +} +{===>} cyclicpept_mol19=false; +{* Is molecule 19 a shape? *} +{+ choice: true false +} +{===>} shape_mol19=false; +{* Coarse grained molecule? *} +{+ choice: true false +} +{===>} cg_mol19=false; + +{===>} prot_coor_mol20=""; +{* PSF file of molecule 20 *} +{===>} prot_psf_mol20=""; +{* segid file of molecule 20 *} +{===>} prot_segid_mol20="T"; +{* fileroot of molecule 20 *} +{===>} prot_root_mol20=""; +{* Fix Molecule at Origin during it0 *} +{+ choice: true false +} +{===>} fix_origin_mol20=false; +{* Is molecule 20 DNA? *} +{+ choice: true false +} +{===>} dna_mol20=false; +{* Is molecule 20 a cyclic peptide? *} +{+ choice: true false +} +{===>} cyclicpept_mol20=false; +{* Is molecule 20 a shape? *} +{+ choice: true false +} +{===>} shape_mol20=false; +{* Coarse grained molecule? *} +{+ choice: true false +} +{===>} cg_mol20=false; + +{* Remove non-polar hydrogens? *} +{+ choice: true false +} +{===>} delenph=true; + +{* HADDOCK directory *} +{* the absolute path of the HADDOCK program files *} +{===>} haddock_dir="/home/abonvin/haddock_git/haddock2.4"; + +{* Logfile directory *} +{* specify a directory for the large CNS log files *} +{===>} temptrash_dir="/home/abonvin/haddock_git/haddock2.4/examples/e2a-hpr/run1"; + + +{==================== histidine patches =====================} +{* Automatically define histidine protonation state based on energetics *} +{===>} autohis=true; + +{* Patch to change doubly protonated HIS to singly protonated histidine (HD1) *} +{* just give the residue number of the histidines for the HISD patch, set them to zero if you don't want them *} + +{* Number of HISD for molecule 1 *} +{===>} numhisd_1=0; + +{===>} hisd_1_1=0; +{===>} hisd_1_2=0; +{===>} hisd_1_3=0; +{===>} hisd_1_4=0; +{===>} hisd_1_5=0; +{===>} hisd_1_6=0; +{===>} hisd_1_7=0; +{===>} hisd_1_8=0; +{===>} hisd_1_9=0; +{===>} hisd_1_10=0; +{===>} hisd_1_11=0; +{===>} hisd_1_12=0; +{===>} hisd_1_13=0; +{===>} hisd_1_14=0; +{===>} hisd_1_15=0; +{===>} hisd_1_16=0; +{===>} hisd_1_17=0; +{===>} hisd_1_18=0; +{===>} hisd_1_19=0; +{===>} hisd_1_20=0; +{===>} hisd_1_21=0; +{===>} hisd_1_22=0; +{===>} hisd_1_23=0; +{===>} hisd_1_24=0; +{===>} hisd_1_25=0; + +{* Number of HISD for molecule 2 *} +{===>} numhisd_2=0; + +{===>} hisd_2_1=0; +{===>} hisd_2_2=0; +{===>} hisd_2_3=0; +{===>} hisd_2_4=0; +{===>} hisd_2_5=0; +{===>} hisd_2_6=0; +{===>} hisd_2_7=0; +{===>} hisd_2_8=0; +{===>} hisd_2_9=0; +{===>} hisd_2_10=0; +{===>} hisd_2_11=0; +{===>} hisd_2_12=0; +{===>} hisd_2_13=0; +{===>} hisd_2_14=0; +{===>} hisd_2_15=0; +{===>} hisd_2_16=0; +{===>} hisd_2_17=0; +{===>} hisd_2_18=0; +{===>} hisd_2_19=0; +{===>} hisd_2_20=0; +{===>} hisd_2_21=0; +{===>} hisd_2_22=0; +{===>} hisd_2_23=0; +{===>} hisd_2_24=0; +{===>} hisd_2_25=0; + +{* Number of HISD for molecule 3 *} +{===>} numhisd_3=0; + +{===>} hisd_3_1=0; +{===>} hisd_3_2=0; +{===>} hisd_3_3=0; +{===>} hisd_3_4=0; +{===>} hisd_3_5=0; +{===>} hisd_3_6=0; +{===>} hisd_3_7=0; +{===>} hisd_3_8=0; +{===>} hisd_3_9=0; +{===>} hisd_3_10=0; +{===>} hisd_3_11=0; +{===>} hisd_3_12=0; +{===>} hisd_3_13=0; +{===>} hisd_3_14=0; +{===>} hisd_3_15=0; +{===>} hisd_3_16=0; +{===>} hisd_3_17=0; +{===>} hisd_3_18=0; +{===>} hisd_3_19=0; +{===>} hisd_3_20=0; +{===>} hisd_3_21=0; +{===>} hisd_3_22=0; +{===>} hisd_3_23=0; +{===>} hisd_3_24=0; +{===>} hisd_3_25=0; + +{* Number of HISD for molecule 4 *} +{===>} numhisd_4=0; + +{===>} hisd_4_1=0; +{===>} hisd_4_2=0; +{===>} hisd_4_3=0; +{===>} hisd_4_4=0; +{===>} hisd_4_5=0; +{===>} hisd_4_6=0; +{===>} hisd_4_7=0; +{===>} hisd_4_8=0; +{===>} hisd_4_9=0; +{===>} hisd_4_10=0; +{===>} hisd_4_11=0; +{===>} hisd_4_12=0; +{===>} hisd_4_13=0; +{===>} hisd_4_14=0; +{===>} hisd_4_15=0; +{===>} hisd_4_16=0; +{===>} hisd_4_17=0; +{===>} hisd_4_18=0; +{===>} hisd_4_19=0; +{===>} hisd_4_20=0; +{===>} hisd_4_21=0; +{===>} hisd_4_22=0; +{===>} hisd_4_23=0; +{===>} hisd_4_24=0; +{===>} hisd_4_25=0; + +{* Number of HISD for molecule 5 *} +{===>} numhisd_5=0; + +{===>} hisd_5_1=0; +{===>} hisd_5_2=0; +{===>} hisd_5_3=0; +{===>} hisd_5_4=0; +{===>} hisd_5_5=0; +{===>} hisd_5_6=0; +{===>} hisd_5_7=0; +{===>} hisd_5_8=0; +{===>} hisd_5_9=0; +{===>} hisd_5_10=0; +{===>} hisd_5_11=0; +{===>} hisd_5_12=0; +{===>} hisd_5_13=0; +{===>} hisd_5_14=0; +{===>} hisd_5_15=0; +{===>} hisd_5_16=0; +{===>} hisd_5_17=0; +{===>} hisd_5_18=0; +{===>} hisd_5_19=0; +{===>} hisd_5_20=0; +{===>} hisd_5_21=0; +{===>} hisd_5_22=0; +{===>} hisd_5_23=0; +{===>} hisd_5_24=0; +{===>} hisd_5_25=0; + +{* Number of HISD for molecule 6 *} +{===>} numhisd_6=0; + +{===>} hisd_6_1=0; +{===>} hisd_6_2=0; +{===>} hisd_6_3=0; +{===>} hisd_6_4=0; +{===>} hisd_6_5=0; +{===>} hisd_6_6=0; +{===>} hisd_6_7=0; +{===>} hisd_6_8=0; +{===>} hisd_6_9=0; +{===>} hisd_6_10=0; +{===>} hisd_6_11=0; +{===>} hisd_6_12=0; +{===>} hisd_6_13=0; +{===>} hisd_6_14=0; +{===>} hisd_6_15=0; +{===>} hisd_6_16=0; +{===>} hisd_6_17=0; +{===>} hisd_6_18=0; +{===>} hisd_6_19=0; +{===>} hisd_6_20=0; +{===>} hisd_6_21=0; +{===>} hisd_6_22=0; +{===>} hisd_6_23=0; +{===>} hisd_6_24=0; +{===>} hisd_6_25=0; + +{* Number of HISD for molecule 7 *} +{===>} numhisd_7=0; + +{===>} hisd_7_1=0; +{===>} hisd_7_2=0; +{===>} hisd_7_3=0; +{===>} hisd_7_4=0; +{===>} hisd_7_5=0; +{===>} hisd_7_6=0; +{===>} hisd_7_7=0; +{===>} hisd_7_8=0; +{===>} hisd_7_9=0; +{===>} hisd_7_10=0; +{===>} hisd_7_11=0; +{===>} hisd_7_12=0; +{===>} hisd_7_13=0; +{===>} hisd_7_14=0; +{===>} hisd_7_15=0; +{===>} hisd_7_16=0; +{===>} hisd_7_17=0; +{===>} hisd_7_18=0; +{===>} hisd_7_19=0; +{===>} hisd_7_20=0; +{===>} hisd_7_21=0; +{===>} hisd_7_22=0; +{===>} hisd_7_23=0; +{===>} hisd_7_24=0; +{===>} hisd_7_25=0; + +{* Number of HISD for molecule 8 *} +{===>} numhisd_8=0; + +{===>} hisd_8_1=0; +{===>} hisd_8_2=0; +{===>} hisd_8_3=0; +{===>} hisd_8_4=0; +{===>} hisd_8_5=0; +{===>} hisd_8_6=0; +{===>} hisd_8_7=0; +{===>} hisd_8_8=0; +{===>} hisd_8_9=0; +{===>} hisd_8_10=0; +{===>} hisd_8_11=0; +{===>} hisd_8_12=0; +{===>} hisd_8_13=0; +{===>} hisd_8_14=0; +{===>} hisd_8_15=0; +{===>} hisd_8_16=0; +{===>} hisd_8_17=0; +{===>} hisd_8_18=0; +{===>} hisd_8_19=0; +{===>} hisd_8_20=0; +{===>} hisd_8_21=0; +{===>} hisd_8_22=0; +{===>} hisd_8_23=0; +{===>} hisd_8_24=0; +{===>} hisd_8_25=0; + +{* Number of HISD for molecule 9 *} +{===>} numhisd_9=0; + +{===>} hisd_9_1=0; +{===>} hisd_9_2=0; +{===>} hisd_9_3=0; +{===>} hisd_9_4=0; +{===>} hisd_9_5=0; +{===>} hisd_9_6=0; +{===>} hisd_9_7=0; +{===>} hisd_9_8=0; +{===>} hisd_9_9=0; +{===>} hisd_9_10=0; +{===>} hisd_9_11=0; +{===>} hisd_9_12=0; +{===>} hisd_9_13=0; +{===>} hisd_9_14=0; +{===>} hisd_9_15=0; +{===>} hisd_9_16=0; +{===>} hisd_9_17=0; +{===>} hisd_9_18=0; +{===>} hisd_9_19=0; +{===>} hisd_9_20=0; +{===>} hisd_9_21=0; +{===>} hisd_9_22=0; +{===>} hisd_9_23=0; +{===>} hisd_9_24=0; +{===>} hisd_9_25=0; + +{* Number of HISD for molecule 10 *} +{===>} numhisd_10=0; + +{===>} hisd_10_1=0; +{===>} hisd_10_2=0; +{===>} hisd_10_3=0; +{===>} hisd_10_4=0; +{===>} hisd_10_5=0; +{===>} hisd_10_6=0; +{===>} hisd_10_7=0; +{===>} hisd_10_8=0; +{===>} hisd_10_9=0; +{===>} hisd_10_10=0; +{===>} hisd_10_11=0; +{===>} hisd_10_12=0; +{===>} hisd_10_13=0; +{===>} hisd_10_14=0; +{===>} hisd_10_15=0; +{===>} hisd_10_16=0; +{===>} hisd_10_17=0; +{===>} hisd_10_18=0; +{===>} hisd_10_19=0; +{===>} hisd_10_20=0; +{===>} hisd_10_21=0; +{===>} hisd_10_22=0; +{===>} hisd_10_23=0; +{===>} hisd_10_24=0; +{===>} hisd_10_25=0; + +{* Number of HISD for molecule 11 *} +{===>} numhisd_11=0; + +{===>} hisd_11_1=0; +{===>} hisd_11_2=0; +{===>} hisd_11_3=0; +{===>} hisd_11_4=0; +{===>} hisd_11_5=0; +{===>} hisd_11_6=0; +{===>} hisd_11_7=0; +{===>} hisd_11_8=0; +{===>} hisd_11_9=0; +{===>} hisd_11_10=0; +{===>} hisd_11_11=0; +{===>} hisd_11_12=0; +{===>} hisd_11_13=0; +{===>} hisd_11_14=0; +{===>} hisd_11_15=0; +{===>} hisd_11_16=0; +{===>} hisd_11_17=0; +{===>} hisd_11_18=0; +{===>} hisd_11_19=0; +{===>} hisd_11_20=0; +{===>} hisd_11_21=0; +{===>} hisd_11_22=0; +{===>} hisd_11_23=0; +{===>} hisd_11_24=0; +{===>} hisd_11_25=0; + +{* Number of HISD for molecule 12 *} +{===>} numhisd_12=0; + +{===>} hisd_12_1=0; +{===>} hisd_12_2=0; +{===>} hisd_12_3=0; +{===>} hisd_12_4=0; +{===>} hisd_12_5=0; +{===>} hisd_12_6=0; +{===>} hisd_12_7=0; +{===>} hisd_12_8=0; +{===>} hisd_12_9=0; +{===>} hisd_12_10=0; +{===>} hisd_12_11=0; +{===>} hisd_12_12=0; +{===>} hisd_12_13=0; +{===>} hisd_12_14=0; +{===>} hisd_12_15=0; +{===>} hisd_12_16=0; +{===>} hisd_12_17=0; +{===>} hisd_12_18=0; +{===>} hisd_12_19=0; +{===>} hisd_12_20=0; +{===>} hisd_12_21=0; +{===>} hisd_12_22=0; +{===>} hisd_12_23=0; +{===>} hisd_12_24=0; +{===>} hisd_12_25=0; + +{* Number of HISD for molecule 13 *} +{===>} numhisd_13=0; + +{===>} hisd_13_1=0; +{===>} hisd_13_2=0; +{===>} hisd_13_3=0; +{===>} hisd_13_4=0; +{===>} hisd_13_5=0; +{===>} hisd_13_6=0; +{===>} hisd_13_7=0; +{===>} hisd_13_8=0; +{===>} hisd_13_9=0; +{===>} hisd_13_10=0; +{===>} hisd_13_11=0; +{===>} hisd_13_12=0; +{===>} hisd_13_13=0; +{===>} hisd_13_14=0; +{===>} hisd_13_15=0; +{===>} hisd_13_16=0; +{===>} hisd_13_17=0; +{===>} hisd_13_18=0; +{===>} hisd_13_19=0; +{===>} hisd_13_20=0; +{===>} hisd_13_21=0; +{===>} hisd_13_22=0; +{===>} hisd_13_23=0; +{===>} hisd_13_24=0; +{===>} hisd_13_25=0; + +{* Number of HISD for molecule 14 *} +{===>} numhisd_14=0; + +{===>} hisd_14_1=0; +{===>} hisd_14_2=0; +{===>} hisd_14_3=0; +{===>} hisd_14_4=0; +{===>} hisd_14_5=0; +{===>} hisd_14_6=0; +{===>} hisd_14_7=0; +{===>} hisd_14_8=0; +{===>} hisd_14_9=0; +{===>} hisd_14_10=0; +{===>} hisd_14_11=0; +{===>} hisd_14_12=0; +{===>} hisd_14_13=0; +{===>} hisd_14_14=0; +{===>} hisd_14_15=0; +{===>} hisd_14_16=0; +{===>} hisd_14_17=0; +{===>} hisd_14_18=0; +{===>} hisd_14_19=0; +{===>} hisd_14_20=0; +{===>} hisd_14_21=0; +{===>} hisd_14_22=0; +{===>} hisd_14_23=0; +{===>} hisd_14_24=0; +{===>} hisd_14_25=0; + +{* Number of HISD for molecule 15 *} +{===>} numhisd_15=0; + +{===>} hisd_15_1=0; +{===>} hisd_15_2=0; +{===>} hisd_15_3=0; +{===>} hisd_15_4=0; +{===>} hisd_15_5=0; +{===>} hisd_15_6=0; +{===>} hisd_15_7=0; +{===>} hisd_15_8=0; +{===>} hisd_15_9=0; +{===>} hisd_15_10=0; +{===>} hisd_15_11=0; +{===>} hisd_15_12=0; +{===>} hisd_15_13=0; +{===>} hisd_15_14=0; +{===>} hisd_15_15=0; +{===>} hisd_15_16=0; +{===>} hisd_15_17=0; +{===>} hisd_15_18=0; +{===>} hisd_15_19=0; +{===>} hisd_15_20=0; +{===>} hisd_15_21=0; +{===>} hisd_15_22=0; +{===>} hisd_15_23=0; +{===>} hisd_15_24=0; +{===>} hisd_15_25=0; + +{* Number of HISD for molecule 16 *} +{===>} numhisd_16=0; + +{===>} hisd_16_1=0; +{===>} hisd_16_2=0; +{===>} hisd_16_3=0; +{===>} hisd_16_4=0; +{===>} hisd_16_5=0; +{===>} hisd_16_6=0; +{===>} hisd_16_7=0; +{===>} hisd_16_8=0; +{===>} hisd_16_9=0; +{===>} hisd_16_10=0; +{===>} hisd_16_11=0; +{===>} hisd_16_12=0; +{===>} hisd_16_13=0; +{===>} hisd_16_14=0; +{===>} hisd_16_15=0; +{===>} hisd_16_16=0; +{===>} hisd_16_17=0; +{===>} hisd_16_18=0; +{===>} hisd_16_19=0; +{===>} hisd_16_20=0; +{===>} hisd_16_21=0; +{===>} hisd_16_22=0; +{===>} hisd_16_23=0; +{===>} hisd_16_24=0; +{===>} hisd_16_25=0; + +{* Number of HISD for molecule 17 *} +{===>} numhisd_17=0; + +{===>} hisd_17_1=0; +{===>} hisd_17_2=0; +{===>} hisd_17_3=0; +{===>} hisd_17_4=0; +{===>} hisd_17_5=0; +{===>} hisd_17_6=0; +{===>} hisd_17_7=0; +{===>} hisd_17_8=0; +{===>} hisd_17_9=0; +{===>} hisd_17_10=0; +{===>} hisd_17_11=0; +{===>} hisd_17_12=0; +{===>} hisd_17_13=0; +{===>} hisd_17_14=0; +{===>} hisd_17_15=0; +{===>} hisd_17_16=0; +{===>} hisd_17_17=0; +{===>} hisd_17_18=0; +{===>} hisd_17_19=0; +{===>} hisd_17_20=0; +{===>} hisd_17_21=0; +{===>} hisd_17_22=0; +{===>} hisd_17_23=0; +{===>} hisd_17_24=0; +{===>} hisd_17_25=0; + +{* Number of HISD for molecule 18 *} +{===>} numhisd_18=0; + +{===>} hisd_18_1=0; +{===>} hisd_18_2=0; +{===>} hisd_18_3=0; +{===>} hisd_18_4=0; +{===>} hisd_18_5=0; +{===>} hisd_18_6=0; +{===>} hisd_18_7=0; +{===>} hisd_18_8=0; +{===>} hisd_18_9=0; +{===>} hisd_18_10=0; +{===>} hisd_18_11=0; +{===>} hisd_18_12=0; +{===>} hisd_18_13=0; +{===>} hisd_18_14=0; +{===>} hisd_18_15=0; +{===>} hisd_18_16=0; +{===>} hisd_18_17=0; +{===>} hisd_18_18=0; +{===>} hisd_18_19=0; +{===>} hisd_18_20=0; +{===>} hisd_18_21=0; +{===>} hisd_18_22=0; +{===>} hisd_18_23=0; +{===>} hisd_18_24=0; +{===>} hisd_18_25=0; + +{* Number of HISD for molecule 19 *} +{===>} numhisd_19=0; + +{===>} hisd_19_1=0; +{===>} hisd_19_2=0; +{===>} hisd_19_3=0; +{===>} hisd_19_4=0; +{===>} hisd_19_5=0; +{===>} hisd_19_6=0; +{===>} hisd_19_7=0; +{===>} hisd_19_8=0; +{===>} hisd_19_9=0; +{===>} hisd_19_10=0; +{===>} hisd_19_11=0; +{===>} hisd_19_12=0; +{===>} hisd_19_13=0; +{===>} hisd_19_14=0; +{===>} hisd_19_15=0; +{===>} hisd_19_16=0; +{===>} hisd_19_17=0; +{===>} hisd_19_18=0; +{===>} hisd_19_19=0; +{===>} hisd_19_20=0; +{===>} hisd_19_21=0; +{===>} hisd_19_22=0; +{===>} hisd_19_23=0; +{===>} hisd_19_24=0; +{===>} hisd_19_25=0; + +{* Number of HISD for molecule 20 *} +{===>} numhisd_20=0; + +{===>} hisd_20_1=0; +{===>} hisd_20_2=0; +{===>} hisd_20_3=0; +{===>} hisd_20_4=0; +{===>} hisd_20_5=0; +{===>} hisd_20_6=0; +{===>} hisd_20_7=0; +{===>} hisd_20_8=0; +{===>} hisd_20_9=0; +{===>} hisd_20_10=0; +{===>} hisd_20_11=0; +{===>} hisd_20_12=0; +{===>} hisd_20_13=0; +{===>} hisd_20_14=0; +{===>} hisd_20_15=0; +{===>} hisd_20_16=0; +{===>} hisd_20_17=0; +{===>} hisd_20_18=0; +{===>} hisd_20_19=0; +{===>} hisd_20_20=0; +{===>} hisd_20_21=0; +{===>} hisd_20_22=0; +{===>} hisd_20_23=0; +{===>} hisd_20_24=0; +{===>} hisd_20_25=0; + +{* Patch to change doubly protonated HIS to singly protonated histidine (HE1) *} +{* just give the residue number of the histidines for the HISD patch, set them to zero if you don't want them *} + +{* Number of HISE for molecule 1 *} +{===>} numhise_1=0; + +{===>} hise_1_1=0; +{===>} hise_1_2=0; +{===>} hise_1_3=0; +{===>} hise_1_4=0; +{===>} hise_1_5=0; +{===>} hise_1_6=0; +{===>} hise_1_7=0; +{===>} hise_1_8=0; +{===>} hise_1_9=0; +{===>} hise_1_10=0; +{===>} hise_1_11=0; +{===>} hise_1_12=0; +{===>} hise_1_13=0; +{===>} hise_1_14=0; +{===>} hise_1_15=0; +{===>} hise_1_16=0; +{===>} hise_1_17=0; +{===>} hise_1_18=0; +{===>} hise_1_19=0; +{===>} hise_1_20=0; +{===>} hise_1_21=0; +{===>} hise_1_22=0; +{===>} hise_1_23=0; +{===>} hise_1_24=0; +{===>} hise_1_25=0; + +{* Number of hise for molecule 2 *} +{===>} numhise_2=0; + +{===>} hise_2_1=0; +{===>} hise_2_2=0; +{===>} hise_2_3=0; +{===>} hise_2_4=0; +{===>} hise_2_5=0; +{===>} hise_2_6=0; +{===>} hise_2_7=0; +{===>} hise_2_8=0; +{===>} hise_2_9=0; +{===>} hise_2_10=0; +{===>} hise_2_11=0; +{===>} hise_2_12=0; +{===>} hise_2_13=0; +{===>} hise_2_14=0; +{===>} hise_2_15=0; +{===>} hise_2_16=0; +{===>} hise_2_17=0; +{===>} hise_2_18=0; +{===>} hise_2_19=0; +{===>} hise_2_20=0; +{===>} hise_2_21=0; +{===>} hise_2_22=0; +{===>} hise_2_23=0; +{===>} hise_2_24=0; +{===>} hise_2_25=0; + +{* Number of hise for molecule 3 *} +{===>} numhise_3=0; + +{===>} hise_3_1=0; +{===>} hise_3_2=0; +{===>} hise_3_3=0; +{===>} hise_3_4=0; +{===>} hise_3_5=0; +{===>} hise_3_6=0; +{===>} hise_3_7=0; +{===>} hise_3_8=0; +{===>} hise_3_9=0; +{===>} hise_3_10=0; +{===>} hise_3_11=0; +{===>} hise_3_12=0; +{===>} hise_3_13=0; +{===>} hise_3_14=0; +{===>} hise_3_15=0; +{===>} hise_3_16=0; +{===>} hise_3_17=0; +{===>} hise_3_18=0; +{===>} hise_3_19=0; +{===>} hise_3_20=0; +{===>} hise_3_21=0; +{===>} hise_3_22=0; +{===>} hise_3_23=0; +{===>} hise_3_24=0; +{===>} hise_3_25=0; + +{* Number of hise for molecule 4 *} +{===>} numhise_4=0; + +{===>} hise_4_1=0; +{===>} hise_4_2=0; +{===>} hise_4_3=0; +{===>} hise_4_4=0; +{===>} hise_4_5=0; +{===>} hise_4_6=0; +{===>} hise_4_7=0; +{===>} hise_4_8=0; +{===>} hise_4_9=0; +{===>} hise_4_10=0; +{===>} hise_4_11=0; +{===>} hise_4_12=0; +{===>} hise_4_13=0; +{===>} hise_4_14=0; +{===>} hise_4_15=0; +{===>} hise_4_16=0; +{===>} hise_4_17=0; +{===>} hise_4_18=0; +{===>} hise_4_19=0; +{===>} hise_4_20=0; +{===>} hise_4_21=0; +{===>} hise_4_22=0; +{===>} hise_4_23=0; +{===>} hise_4_24=0; +{===>} hise_4_25=0; + +{* Number of hise for molecule 5 *} +{===>} numhise_5=0; + +{===>} hise_5_1=0; +{===>} hise_5_2=0; +{===>} hise_5_3=0; +{===>} hise_5_4=0; +{===>} hise_5_5=0; +{===>} hise_5_6=0; +{===>} hise_5_7=0; +{===>} hise_5_8=0; +{===>} hise_5_9=0; +{===>} hise_5_10=0; +{===>} hise_5_11=0; +{===>} hise_5_12=0; +{===>} hise_5_13=0; +{===>} hise_5_14=0; +{===>} hise_5_15=0; +{===>} hise_5_16=0; +{===>} hise_5_17=0; +{===>} hise_5_18=0; +{===>} hise_5_19=0; +{===>} hise_5_20=0; +{===>} hise_5_21=0; +{===>} hise_5_22=0; +{===>} hise_5_23=0; +{===>} hise_5_24=0; +{===>} hise_5_25=0; + +{* Number of hise for molecule 6 *} +{===>} numhise_6=0; + +{===>} hise_6_1=0; +{===>} hise_6_2=0; +{===>} hise_6_3=0; +{===>} hise_6_4=0; +{===>} hise_6_5=0; +{===>} hise_6_6=0; +{===>} hise_6_7=0; +{===>} hise_6_8=0; +{===>} hise_6_9=0; +{===>} hise_6_10=0; +{===>} hise_6_11=0; +{===>} hise_6_12=0; +{===>} hise_6_13=0; +{===>} hise_6_14=0; +{===>} hise_6_15=0; +{===>} hise_6_16=0; +{===>} hise_6_17=0; +{===>} hise_6_18=0; +{===>} hise_6_19=0; +{===>} hise_6_20=0; +{===>} hise_6_21=0; +{===>} hise_6_22=0; +{===>} hise_6_23=0; +{===>} hise_6_24=0; +{===>} hise_6_25=0; + +{* Number of hise for molecule 7 *} +{===>} numhise_7=0; + +{===>} hise_7_1=0; +{===>} hise_7_2=0; +{===>} hise_7_3=0; +{===>} hise_7_4=0; +{===>} hise_7_5=0; +{===>} hise_7_6=0; +{===>} hise_7_7=0; +{===>} hise_7_8=0; +{===>} hise_7_9=0; +{===>} hise_7_10=0; +{===>} hise_7_11=0; +{===>} hise_7_12=0; +{===>} hise_7_13=0; +{===>} hise_7_14=0; +{===>} hise_7_15=0; +{===>} hise_7_16=0; +{===>} hise_7_17=0; +{===>} hise_7_18=0; +{===>} hise_7_19=0; +{===>} hise_7_20=0; +{===>} hise_7_21=0; +{===>} hise_7_22=0; +{===>} hise_7_23=0; +{===>} hise_7_24=0; +{===>} hise_7_25=0; + +{* Number of hise for molecule 8 *} +{===>} numhise_8=0; + +{===>} hise_8_1=0; +{===>} hise_8_2=0; +{===>} hise_8_3=0; +{===>} hise_8_4=0; +{===>} hise_8_5=0; +{===>} hise_8_6=0; +{===>} hise_8_7=0; +{===>} hise_8_8=0; +{===>} hise_8_9=0; +{===>} hise_8_10=0; +{===>} hise_8_11=0; +{===>} hise_8_12=0; +{===>} hise_8_13=0; +{===>} hise_8_14=0; +{===>} hise_8_15=0; +{===>} hise_8_16=0; +{===>} hise_8_17=0; +{===>} hise_8_18=0; +{===>} hise_8_19=0; +{===>} hise_8_20=0; +{===>} hise_8_21=0; +{===>} hise_8_22=0; +{===>} hise_8_23=0; +{===>} hise_8_24=0; +{===>} hise_8_25=0; + +{* Number of hise for molecule 9 *} +{===>} numhise_9=0; + +{===>} hise_9_1=0; +{===>} hise_9_2=0; +{===>} hise_9_3=0; +{===>} hise_9_4=0; +{===>} hise_9_5=0; +{===>} hise_9_6=0; +{===>} hise_9_7=0; +{===>} hise_9_8=0; +{===>} hise_9_9=0; +{===>} hise_9_10=0; +{===>} hise_9_11=0; +{===>} hise_9_12=0; +{===>} hise_9_13=0; +{===>} hise_9_14=0; +{===>} hise_9_15=0; +{===>} hise_9_16=0; +{===>} hise_9_17=0; +{===>} hise_9_18=0; +{===>} hise_9_19=0; +{===>} hise_9_20=0; +{===>} hise_9_21=0; +{===>} hise_9_22=0; +{===>} hise_9_23=0; +{===>} hise_9_24=0; +{===>} hise_9_25=0; + +{* Number of hise for molecule 10 *} +{===>} numhise_10=0; + +{===>} hise_10_1=0; +{===>} hise_10_2=0; +{===>} hise_10_3=0; +{===>} hise_10_4=0; +{===>} hise_10_5=0; +{===>} hise_10_6=0; +{===>} hise_10_7=0; +{===>} hise_10_8=0; +{===>} hise_10_9=0; +{===>} hise_10_10=0; +{===>} hise_10_11=0; +{===>} hise_10_12=0; +{===>} hise_10_13=0; +{===>} hise_10_14=0; +{===>} hise_10_15=0; +{===>} hise_10_16=0; +{===>} hise_10_17=0; +{===>} hise_10_18=0; +{===>} hise_10_19=0; +{===>} hise_10_20=0; +{===>} hise_10_21=0; +{===>} hise_10_22=0; +{===>} hise_10_23=0; +{===>} hise_10_24=0; +{===>} hise_10_25=0; + +{* Number of hise for molecule 11 *} +{===>} numhise_11=0; + +{===>} hise_11_1=0; +{===>} hise_11_2=0; +{===>} hise_11_3=0; +{===>} hise_11_4=0; +{===>} hise_11_5=0; +{===>} hise_11_6=0; +{===>} hise_11_7=0; +{===>} hise_11_8=0; +{===>} hise_11_9=0; +{===>} hise_11_10=0; +{===>} hise_11_11=0; +{===>} hise_11_12=0; +{===>} hise_11_13=0; +{===>} hise_11_14=0; +{===>} hise_11_15=0; +{===>} hise_11_16=0; +{===>} hise_11_17=0; +{===>} hise_11_18=0; +{===>} hise_11_19=0; +{===>} hise_11_20=0; +{===>} hise_11_21=0; +{===>} hise_11_22=0; +{===>} hise_11_23=0; +{===>} hise_11_24=0; +{===>} hise_11_25=0; + +{* Number of hise for molecule 12 *} +{===>} numhise_12=0; + +{===>} hise_12_1=0; +{===>} hise_12_2=0; +{===>} hise_12_3=0; +{===>} hise_12_4=0; +{===>} hise_12_5=0; +{===>} hise_12_6=0; +{===>} hise_12_7=0; +{===>} hise_12_8=0; +{===>} hise_12_9=0; +{===>} hise_12_10=0; +{===>} hise_12_11=0; +{===>} hise_12_12=0; +{===>} hise_12_13=0; +{===>} hise_12_14=0; +{===>} hise_12_15=0; +{===>} hise_12_16=0; +{===>} hise_12_17=0; +{===>} hise_12_18=0; +{===>} hise_12_19=0; +{===>} hise_12_20=0; +{===>} hise_12_21=0; +{===>} hise_12_22=0; +{===>} hise_12_23=0; +{===>} hise_12_24=0; +{===>} hise_12_25=0; + +{* Number of hise for molecule 13 *} +{===>} numhise_13=0; + +{===>} hise_13_1=0; +{===>} hise_13_2=0; +{===>} hise_13_3=0; +{===>} hise_13_4=0; +{===>} hise_13_5=0; +{===>} hise_13_6=0; +{===>} hise_13_7=0; +{===>} hise_13_8=0; +{===>} hise_13_9=0; +{===>} hise_13_10=0; +{===>} hise_13_11=0; +{===>} hise_13_12=0; +{===>} hise_13_13=0; +{===>} hise_13_14=0; +{===>} hise_13_15=0; +{===>} hise_13_16=0; +{===>} hise_13_17=0; +{===>} hise_13_18=0; +{===>} hise_13_19=0; +{===>} hise_13_20=0; +{===>} hise_13_21=0; +{===>} hise_13_22=0; +{===>} hise_13_23=0; +{===>} hise_13_24=0; +{===>} hise_13_25=0; + +{* Number of hise for molecule 14 *} +{===>} numhise_14=0; + +{===>} hise_14_1=0; +{===>} hise_14_2=0; +{===>} hise_14_3=0; +{===>} hise_14_4=0; +{===>} hise_14_5=0; +{===>} hise_14_6=0; +{===>} hise_14_7=0; +{===>} hise_14_8=0; +{===>} hise_14_9=0; +{===>} hise_14_10=0; +{===>} hise_14_11=0; +{===>} hise_14_12=0; +{===>} hise_14_13=0; +{===>} hise_14_14=0; +{===>} hise_14_15=0; +{===>} hise_14_16=0; +{===>} hise_14_17=0; +{===>} hise_14_18=0; +{===>} hise_14_19=0; +{===>} hise_14_20=0; +{===>} hise_14_21=0; +{===>} hise_14_22=0; +{===>} hise_14_23=0; +{===>} hise_14_24=0; +{===>} hise_14_25=0; + +{* Number of hise for molecule 15 *} +{===>} numhise_15=0; + +{===>} hise_15_1=0; +{===>} hise_15_2=0; +{===>} hise_15_3=0; +{===>} hise_15_4=0; +{===>} hise_15_5=0; +{===>} hise_15_6=0; +{===>} hise_15_7=0; +{===>} hise_15_8=0; +{===>} hise_15_9=0; +{===>} hise_15_10=0; +{===>} hise_15_11=0; +{===>} hise_15_12=0; +{===>} hise_15_13=0; +{===>} hise_15_14=0; +{===>} hise_15_15=0; +{===>} hise_15_16=0; +{===>} hise_15_17=0; +{===>} hise_15_18=0; +{===>} hise_15_19=0; +{===>} hise_15_20=0; +{===>} hise_15_21=0; +{===>} hise_15_22=0; +{===>} hise_15_23=0; +{===>} hise_15_24=0; +{===>} hise_15_25=0; + +{* Number of hise for molecule 16 *} +{===>} numhise_16=0; + +{===>} hise_16_1=0; +{===>} hise_16_2=0; +{===>} hise_16_3=0; +{===>} hise_16_4=0; +{===>} hise_16_5=0; +{===>} hise_16_6=0; +{===>} hise_16_7=0; +{===>} hise_16_8=0; +{===>} hise_16_9=0; +{===>} hise_16_10=0; +{===>} hise_16_11=0; +{===>} hise_16_12=0; +{===>} hise_16_13=0; +{===>} hise_16_14=0; +{===>} hise_16_15=0; +{===>} hise_16_16=0; +{===>} hise_16_17=0; +{===>} hise_16_18=0; +{===>} hise_16_19=0; +{===>} hise_16_20=0; +{===>} hise_16_21=0; +{===>} hise_16_22=0; +{===>} hise_16_23=0; +{===>} hise_16_24=0; +{===>} hise_16_25=0; + +{* Number of hise for molecule 17 *} +{===>} numhise_17=0; + +{===>} hise_17_1=0; +{===>} hise_17_2=0; +{===>} hise_17_3=0; +{===>} hise_17_4=0; +{===>} hise_17_5=0; +{===>} hise_17_6=0; +{===>} hise_17_7=0; +{===>} hise_17_8=0; +{===>} hise_17_9=0; +{===>} hise_17_10=0; +{===>} hise_17_11=0; +{===>} hise_17_12=0; +{===>} hise_17_13=0; +{===>} hise_17_14=0; +{===>} hise_17_15=0; +{===>} hise_17_16=0; +{===>} hise_17_17=0; +{===>} hise_17_18=0; +{===>} hise_17_19=0; +{===>} hise_17_20=0; +{===>} hise_17_21=0; +{===>} hise_17_22=0; +{===>} hise_17_23=0; +{===>} hise_17_24=0; +{===>} hise_17_25=0; + +{* Number of hise for molecule 18 *} +{===>} numhise_18=0; + +{===>} hise_18_1=0; +{===>} hise_18_2=0; +{===>} hise_18_3=0; +{===>} hise_18_4=0; +{===>} hise_18_5=0; +{===>} hise_18_6=0; +{===>} hise_18_7=0; +{===>} hise_18_8=0; +{===>} hise_18_9=0; +{===>} hise_18_10=0; +{===>} hise_18_11=0; +{===>} hise_18_12=0; +{===>} hise_18_13=0; +{===>} hise_18_14=0; +{===>} hise_18_15=0; +{===>} hise_18_16=0; +{===>} hise_18_17=0; +{===>} hise_18_18=0; +{===>} hise_18_19=0; +{===>} hise_18_20=0; +{===>} hise_18_21=0; +{===>} hise_18_22=0; +{===>} hise_18_23=0; +{===>} hise_18_24=0; +{===>} hise_18_25=0; + +{* Number of hise for molecule 19 *} +{===>} numhise_19=0; + +{===>} hise_19_1=0; +{===>} hise_19_2=0; +{===>} hise_19_3=0; +{===>} hise_19_4=0; +{===>} hise_19_5=0; +{===>} hise_19_6=0; +{===>} hise_19_7=0; +{===>} hise_19_8=0; +{===>} hise_19_9=0; +{===>} hise_19_10=0; +{===>} hise_19_11=0; +{===>} hise_19_12=0; +{===>} hise_19_13=0; +{===>} hise_19_14=0; +{===>} hise_19_15=0; +{===>} hise_19_16=0; +{===>} hise_19_17=0; +{===>} hise_19_18=0; +{===>} hise_19_19=0; +{===>} hise_19_20=0; +{===>} hise_19_21=0; +{===>} hise_19_22=0; +{===>} hise_19_23=0; +{===>} hise_19_24=0; +{===>} hise_19_25=0; + +{* Number of hise for molecule 20 *} +{===>} numhise_20=0; + +{===>} hise_20_1=0; +{===>} hise_20_2=0; +{===>} hise_20_3=0; +{===>} hise_20_4=0; +{===>} hise_20_5=0; +{===>} hise_20_6=0; +{===>} hise_20_7=0; +{===>} hise_20_8=0; +{===>} hise_20_9=0; +{===>} hise_20_10=0; +{===>} hise_20_11=0; +{===>} hise_20_12=0; +{===>} hise_20_13=0; +{===>} hise_20_14=0; +{===>} hise_20_15=0; +{===>} hise_20_16=0; +{===>} hise_20_17=0; +{===>} hise_20_18=0; +{===>} hise_20_19=0; +{===>} hise_20_20=0; +{===>} hise_20_21=0; +{===>} hise_20_22=0; +{===>} hise_20_23=0; +{===>} hise_20_24=0; +{===>} hise_20_25=0; + + +{========= Definition of semi-flexible interface ============} +{* Define the interface of each molecule.*} +{* Side-chains and backbone of these residues will be allowed to move during semi-flexible refinement*} + +{* number of semi-flexible segments for molecule 1 (-1 for automated mode) *} +{* Note that current max is 10 (edit the run.cns to add more segments *} + +{===>} nseg_1=-1; + +{* Residues of molecule 1 at interface *} +{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} + +{===>} start_seg_1_1=""; +{===>} end_seg_1_1=""; +{===>} start_seg_1_2=""; +{===>} end_seg_1_2=""; +{===>} start_seg_1_3=""; +{===>} end_seg_1_3=""; +{===>} start_seg_1_4=""; +{===>} end_seg_1_4=""; +{===>} start_seg_1_5=""; +{===>} end_seg_1_5=""; +{===>} start_seg_1_6=""; +{===>} end_seg_1_6=""; +{===>} start_seg_1_7=""; +{===>} end_seg_1_7=""; +{===>} start_seg_1_8=""; +{===>} end_seg_1_8=""; +{===>} start_seg_1_9=""; +{===>} end_seg_1_9=""; +{===>} start_seg_1_10=""; +{===>} end_seg_1_10=""; + +{* number of semi-flexible segments for molecule 2 (-1 for automated mode) *} +{* Note that current max is 10 (edit the run.cns to add more segments *} + +{===>} nseg_2=-1; + +{* Residues of molecule 2 at interface *} +{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} +{===>} start_seg_2_1=""; +{===>} end_seg_2_1=""; +{===>} start_seg_2_2=""; +{===>} end_seg_2_2=""; +{===>} start_seg_2_3=""; +{===>} end_seg_2_3=""; +{===>} start_seg_2_4=""; +{===>} end_seg_2_4=""; +{===>} start_seg_2_5=""; +{===>} end_seg_2_5=""; +{===>} start_seg_2_6=""; +{===>} end_seg_2_6=""; +{===>} start_seg_2_7=""; +{===>} end_seg_2_7=""; +{===>} start_seg_2_8=""; +{===>} end_seg_2_8=""; +{===>} start_seg_2_9=""; +{===>} end_seg_2_9=""; +{===>} start_seg_2_10=""; +{===>} end_seg_2_10=""; + +{* number of semi-flexible segments for molecule 3 (-1 for automated mode) *} +{* Note that current max is 10 (edit the run.cns to add more segments *} + +{===>} nseg_3=-1; + +{* Residues of molecule 3 at interface *} +{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} +{===>} start_seg_3_1=""; +{===>} end_seg_3_1=""; +{===>} start_seg_3_2=""; +{===>} end_seg_3_2=""; +{===>} start_seg_3_3=""; +{===>} end_seg_3_3=""; +{===>} start_seg_3_4=""; +{===>} end_seg_3_4=""; +{===>} start_seg_3_5=""; +{===>} end_seg_3_5=""; +{===>} start_seg_3_6=""; +{===>} end_seg_3_6=""; +{===>} start_seg_3_7=""; +{===>} end_seg_3_7=""; +{===>} start_seg_3_8=""; +{===>} end_seg_3_8=""; +{===>} start_seg_3_9=""; +{===>} end_seg_3_9=""; +{===>} start_seg_3_10=""; +{===>} end_seg_3_10=""; + +{* number of semi-flexible segments for molecule 4 (-1 for automated mode) *} +{* Note that current max is 10 (edit the run.cns to add more segments *} + +{===>} nseg_4=-1; + +{* Residues of molecule 4 at interface *} +{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} +{===>} start_seg_4_1=""; +{===>} end_seg_4_1=""; +{===>} start_seg_4_2=""; +{===>} end_seg_4_2=""; +{===>} start_seg_4_3=""; +{===>} end_seg_4_3=""; +{===>} start_seg_4_4=""; +{===>} end_seg_4_4=""; +{===>} start_seg_4_5=""; +{===>} end_seg_4_5=""; +{===>} start_seg_4_6=""; +{===>} end_seg_4_6=""; +{===>} start_seg_4_7=""; +{===>} end_seg_4_7=""; +{===>} start_seg_4_8=""; +{===>} end_seg_4_8=""; +{===>} start_seg_4_9=""; +{===>} end_seg_4_9=""; +{===>} start_seg_4_10=""; +{===>} end_seg_4_10=""; + +{* number of semi-flexible segments for molecule 5 (-1 for automated mode) *} +{* Note that current max is 10 (edit the run.cns to add more segments *} + +{===>} nseg_5=-1; + +{* Residues of molecule 5 at interface *} +{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} +{===>} start_seg_5_1=""; +{===>} end_seg_5_1=""; +{===>} start_seg_5_2=""; +{===>} end_seg_5_2=""; +{===>} start_seg_5_3=""; +{===>} end_seg_5_3=""; +{===>} start_seg_5_4=""; +{===>} end_seg_5_4=""; +{===>} start_seg_5_5=""; +{===>} end_seg_5_5=""; +{===>} start_seg_5_6=""; +{===>} end_seg_5_6=""; +{===>} start_seg_5_7=""; +{===>} end_seg_5_7=""; +{===>} start_seg_5_8=""; +{===>} end_seg_5_8=""; +{===>} start_seg_5_9=""; +{===>} end_seg_5_9=""; +{===>} start_seg_5_10=""; +{===>} end_seg_5_10=""; + +{* number of semi-flexible segments for molecule 6 (-1 for automated mode) *} +{* Note that current max is 10 (edit the run.cns to add more segments *} + +{===>} nseg_6=-1; + +{* Residues of molecule 6 at interface *} +{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} +{===>} start_seg_1=""; +{===>} end_seg_1=""; +{===>} start_seg_2=""; +{===>} end_seg_2=""; +{===>} start_seg_3=""; +{===>} end_seg_3=""; +{===>} start_seg_4=""; +{===>} end_seg_4=""; +{===>} start_seg_5=""; +{===>} end_seg_5=""; +{===>} start_seg_6=""; +{===>} end_seg_6=""; +{===>} start_seg_7=""; +{===>} end_seg_7=""; +{===>} start_seg_8=""; +{===>} end_seg_8=""; +{===>} start_seg_9=""; +{===>} end_seg_9=""; +{===>} start_seg_10=""; +{===>} end_seg_10=""; + +{* number of semi-flexible segments for molecule 7 (-1 for automated mode) *} +{* Note that current max is 10 (edit the run.cns to add more segments *} + +{===>} nseg_7=-1; + +{* Residues of molecule 7 at interface *} +{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} +{===>} start_seg_7_1=""; +{===>} end_seg_7_1=""; +{===>} start_seg_7_2=""; +{===>} end_seg_7_2=""; +{===>} start_seg_7_3=""; +{===>} end_seg_7_3=""; +{===>} start_seg_7_4=""; +{===>} end_seg_7_4=""; +{===>} start_seg_7_5=""; +{===>} end_seg_7_5=""; +{===>} start_seg_7_6=""; +{===>} end_seg_7_6=""; +{===>} start_seg_7_7=""; +{===>} end_seg_7_7=""; +{===>} start_seg_7_8=""; +{===>} end_seg_7_8=""; +{===>} start_seg_7_9=""; +{===>} end_seg_7_9=""; +{===>} start_seg_7_10=""; +{===>} end_seg_7_10=""; + +{* number of semi-flexible segments for molecule 8 (-1 for automated mode) *} +{* Note that current max is 10 (edit the run.cns to add more segments *} + +{===>} nseg_8=-1; + +{* Residues of molecule 8 at interface *} +{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} +{===>} start_seg_8_1=""; +{===>} end_seg_8_1=""; +{===>} start_seg_8_2=""; +{===>} end_seg_8_2=""; +{===>} start_seg_8_3=""; +{===>} end_seg_8_3=""; +{===>} start_seg_8_4=""; +{===>} end_seg_8_4=""; +{===>} start_seg_8_5=""; +{===>} end_seg_8_5=""; +{===>} start_seg_8_6=""; +{===>} end_seg_8_6=""; +{===>} start_seg_8_7=""; +{===>} end_seg_8_7=""; +{===>} start_seg_8_8=""; +{===>} end_seg_8_8=""; +{===>} start_seg_8_9=""; +{===>} end_seg_8_9=""; +{===>} start_seg_8_10=""; +{===>} end_seg_8_10=""; + +{* number of semi-flexible segments for molecule 9 (-1 for automated mode) *} +{* Note that current max is 10 (edit the run.cns to add more segments *} + +{===>} nseg_9=-1; + +{* Residues of molecule 9 at interface *} +{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} +{===>} start_seg_9_1=""; +{===>} end_seg_9_1=""; +{===>} start_seg_9_2=""; +{===>} end_seg_9_2=""; +{===>} start_seg_9_3=""; +{===>} end_seg_9_3=""; +{===>} start_seg_9_4=""; +{===>} end_seg_9_4=""; +{===>} start_seg_9_5=""; +{===>} end_seg_9_5=""; +{===>} start_seg_9_6=""; +{===>} end_seg_9_6=""; +{===>} start_seg_9_7=""; +{===>} end_seg_9_7=""; +{===>} start_seg_9_8=""; +{===>} end_seg_9_8=""; +{===>} start_seg_9_9=""; +{===>} end_seg_9_9=""; +{===>} start_seg_9_10=""; +{===>} end_seg_9_10=""; + +{* number of semi-flexible segments for molecule 10 (-1 for automated mode) *} +{* Note that current max is 10 (edit the run.cns to add more segments *} + +{===>} nseg_10=-1; + +{* Residues of molecule 10 at interface *} +{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} +{===>} start_seg_10_1=""; +{===>} end_seg_10_1=""; +{===>} start_seg_10_2=""; +{===>} end_seg_10_2=""; +{===>} start_seg_10_3=""; +{===>} end_seg_10_3=""; +{===>} start_seg_10_4=""; +{===>} end_seg_10_4=""; +{===>} start_seg_10_5=""; +{===>} end_seg_10_5=""; +{===>} start_seg_10_6=""; +{===>} end_seg_10_6=""; +{===>} start_seg_10_7=""; +{===>} end_seg_10_7=""; +{===>} start_seg_10_8=""; +{===>} end_seg_10_8=""; +{===>} start_seg_10_9=""; +{===>} end_seg_10_9=""; +{===>} start_seg_10_10=""; +{===>} end_seg_10_10=""; + +{* number of semi-flexible segments for molecule 11 (-1 for automated mode) *} +{* Note that current max is 10 (edit the run.cns to add more segments *} + +{===>} nseg_11=-1; + +{* Residues of molecule 11 at interface *} +{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} +{===>} start_seg_11_1=""; +{===>} end_seg_11_1=""; +{===>} start_seg_11_2=""; +{===>} end_seg_11_2=""; +{===>} start_seg_11_3=""; +{===>} end_seg_11_3=""; +{===>} start_seg_11_4=""; +{===>} end_seg_11_4=""; +{===>} start_seg_11_5=""; +{===>} end_seg_11_5=""; +{===>} start_seg_11_6=""; +{===>} end_seg_11_6=""; +{===>} start_seg_11_7=""; +{===>} end_seg_11_7=""; +{===>} start_seg_11_8=""; +{===>} end_seg_11_8=""; +{===>} start_seg_11_9=""; +{===>} end_seg_11_9=""; +{===>} start_seg_11_10=""; +{===>} end_seg_11_10=""; + +{* number of semi-flexible segments for molecule 12 (-1 for automated mode) *} +{* Note that current max is 10 (edit the run.cns to add more segments *} + +{===>} nseg_12=-1; + +{* Residues of molecule 12 at interface *} +{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} +{===>} start_seg_12_1=""; +{===>} end_seg_12_1=""; +{===>} start_seg_12_2=""; +{===>} end_seg_12_2=""; +{===>} start_seg_12_3=""; +{===>} end_seg_12_3=""; +{===>} start_seg_12_4=""; +{===>} end_seg_12_4=""; +{===>} start_seg_12_5=""; +{===>} end_seg_12_5=""; +{===>} start_seg_12_6=""; +{===>} end_seg_12_6=""; +{===>} start_seg_12_7=""; +{===>} end_seg_12_7=""; +{===>} start_seg_12_8=""; +{===>} end_seg_12_8=""; +{===>} start_seg_12_9=""; +{===>} end_seg_12_9=""; +{===>} start_seg_12_10=""; +{===>} end_seg_12_10=""; + +{* number of semi-flexible segments for molecule 13 (-1 for automated mode) *} +{* Note that current max is 10 (edit the run.cns to add more segments *} + +{===>} nseg_13=-1; + +{* Residues of molecule 13 at interface *} +{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} +{===>} start_seg_13_1=""; +{===>} end_seg_13_1=""; +{===>} start_seg_13_2=""; +{===>} end_seg_13_2=""; +{===>} start_seg_13_3=""; +{===>} end_seg_13_3=""; +{===>} start_seg_13_4=""; +{===>} end_seg_13_4=""; +{===>} start_seg_13_5=""; +{===>} end_seg_13_5=""; +{===>} start_seg_13_6=""; +{===>} end_seg_13_6=""; +{===>} start_seg_13_7=""; +{===>} end_seg_13_7=""; +{===>} start_seg_13_8=""; +{===>} end_seg_13_8=""; +{===>} start_seg_13_9=""; +{===>} end_seg_13_9=""; +{===>} start_seg_13_10=""; +{===>} end_seg_13_10=""; + +{* number of semi-flexible segments for molecule 14 (-1 for automated mode) *} +{* Note that current max is 10 (edit the run.cns to add more segments *} + +{===>} nseg_14=-1; + +{* Residues of molecule 14 at interface *} +{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} +{===>} start_seg_14_1=""; +{===>} end_seg_14_1=""; +{===>} start_seg_14_2=""; +{===>} end_seg_14_2=""; +{===>} start_seg_14_3=""; +{===>} end_seg_14_3=""; +{===>} start_seg_14_4=""; +{===>} end_seg_14_4=""; +{===>} start_seg_14_5=""; +{===>} end_seg_14_5=""; +{===>} start_seg_14_6=""; +{===>} end_seg_14_6=""; +{===>} start_seg_14_7=""; +{===>} end_seg_14_7=""; +{===>} start_seg_14_8=""; +{===>} end_seg_14_8=""; +{===>} start_seg_14_9=""; +{===>} end_seg_14_9=""; +{===>} start_seg_14_10=""; +{===>} end_seg_14_10=""; + +{* number of semi-flexible segments for molecule 15 (-1 for automated mode) *} +{* Note that current max is 10 (edit the run.cns to add more segments *} + +{===>} nseg_15=-1; + +{* Residues of molecule 15 at interface *} +{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} +{===>} start_seg_15_1=""; +{===>} end_seg_15_1=""; +{===>} start_seg_15_2=""; +{===>} end_seg_15_2=""; +{===>} start_seg_15_3=""; +{===>} end_seg_15_3=""; +{===>} start_seg_15_4=""; +{===>} end_seg_15_4=""; +{===>} start_seg_15_5=""; +{===>} end_seg_15_5=""; +{===>} start_seg_15_6=""; +{===>} end_seg_15_6=""; +{===>} start_seg_15_7=""; +{===>} end_seg_15_7=""; +{===>} start_seg_15_8=""; +{===>} end_seg_15_8=""; +{===>} start_seg_15_9=""; +{===>} end_seg_15_9=""; +{===>} start_seg_15_10=""; +{===>} end_seg_15_10=""; + +{* number of semi-flexible segments for molecule 16 (-1 for automated mode) *} +{* Note that current max is 10 (edit the run.cns to add more segments *} + +{===>} nseg_16=-1; + +{* Residues of molecule 16 at interface *} +{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} +{===>} start_seg_16_1=""; +{===>} end_seg_16_1=""; +{===>} start_seg_16_2=""; +{===>} end_seg_16_2=""; +{===>} start_seg_16_3=""; +{===>} end_seg_16_3=""; +{===>} start_seg_16_4=""; +{===>} end_seg_16_4=""; +{===>} start_seg_16_5=""; +{===>} end_seg_16_5=""; +{===>} start_seg_16_6=""; +{===>} end_seg_16_6=""; +{===>} start_seg_16_7=""; +{===>} end_seg_16_7=""; +{===>} start_seg_16_8=""; +{===>} end_seg_16_8=""; +{===>} start_seg_16_9=""; +{===>} end_seg_16_9=""; +{===>} start_seg_16_10=""; +{===>} end_seg_16_10=""; + +{* number of semi-flexible segments for molecule 17 (-1 for automated mode) *} +{* Note that current max is 10 (edit the run.cns to add more segments *} + +{===>} nseg_17=-1; + +{* Residues of molecule 17 at interface *} +{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} +{===>} start_seg_17_1=""; +{===>} end_seg_17_1=""; +{===>} start_seg_17_2=""; +{===>} end_seg_17_2=""; +{===>} start_seg_17_3=""; +{===>} end_seg_17_3=""; +{===>} start_seg_17_4=""; +{===>} end_seg_17_4=""; +{===>} start_seg_17_5=""; +{===>} end_seg_17_5=""; +{===>} start_seg_17_6=""; +{===>} end_seg_17_6=""; +{===>} start_seg_17_7=""; +{===>} end_seg_17_7=""; +{===>} start_seg_17_8=""; +{===>} end_seg_17_8=""; +{===>} start_seg_17_9=""; +{===>} end_seg_17_9=""; +{===>} start_seg_17_10=""; +{===>} end_seg_17_10=""; + +{* number of semi-flexible segments for molecule 18 (-1 for automated mode) *} +{* Note that current max is 10 (edit the run.cns to add more segments *} + +{===>} nseg_18=-1; + +{* Residues of molecule 18 at interface *} +{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} +{===>} start_seg_18_1=""; +{===>} end_seg_18_1=""; +{===>} start_seg_18_2=""; +{===>} end_seg_18_2=""; +{===>} start_seg_18_3=""; +{===>} end_seg_18_3=""; +{===>} start_seg_18_4=""; +{===>} end_seg_18_4=""; +{===>} start_seg_18_5=""; +{===>} end_seg_18_5=""; +{===>} start_seg_18_6=""; +{===>} end_seg_18_6=""; +{===>} start_seg_18_7=""; +{===>} end_seg_18_7=""; +{===>} start_seg_18_8=""; +{===>} end_seg_18_8=""; +{===>} start_seg_18_9=""; +{===>} end_seg_18_9=""; +{===>} start_seg_18_10=""; +{===>} end_seg_18_10=""; + +{* number of semi-flexible segments for molecule 19 (-1 for automated mode) *} +{* Note that current max is 10 (edit the run.cns to add more segments *} + +{===>} nseg_19=-1; + +{* Residues of molecule 19 at interface *} +{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} +{===>} start_seg_19_1=""; +{===>} end_seg_19_1=""; +{===>} start_seg_19_2=""; +{===>} end_seg_19_2=""; +{===>} start_seg_19_3=""; +{===>} end_seg_19_3=""; +{===>} start_seg_19_4=""; +{===>} end_seg_19_4=""; +{===>} start_seg_19_5=""; +{===>} end_seg_19_5=""; +{===>} start_seg_19_6=""; +{===>} end_seg_19_6=""; +{===>} start_seg_19_7=""; +{===>} end_seg_19_7=""; +{===>} start_seg_19_8=""; +{===>} end_seg_19_8=""; +{===>} start_seg_19_9=""; +{===>} end_seg_19_9=""; +{===>} start_seg_19_10=""; +{===>} end_seg_19_10=""; + +{* number of semi-flexible segments for molecule 20 (-1 for automated mode) *} +{* Note that current max is 10 (edit the run.cns to add more segments *} + +{===>} nseg_20=-1; + +{* Residues of molecule 20 at interface *} +{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} +{===>} start_seg_20_1=""; +{===>} end_seg_20_1=""; +{===>} start_seg_20_2=""; +{===>} end_seg_20_2=""; +{===>} start_seg_20_3=""; +{===>} end_seg_20_3=""; +{===>} start_seg_20_4=""; +{===>} end_seg_20_4=""; +{===>} start_seg_20_5=""; +{===>} end_seg_20_5=""; +{===>} start_seg_20_6=""; +{===>} end_seg_20_6=""; +{===>} start_seg_20_7=""; +{===>} end_seg_20_7=""; +{===>} start_seg_20_8=""; +{===>} end_seg_20_8=""; +{===>} start_seg_20_9=""; +{===>} end_seg_20_9=""; +{===>} start_seg_20_10=""; +{===>} end_seg_20_10=""; + +{=========== Definition of fully flexible segments ==========} +{* Define the fully flexible segment of each molecule.*} +{* These segments will be allowed to move at all stages of it1 *} + +{* Number of fully flexible segments for molecule 1 *} +{* Note that current max is 5 (edit the run.cns to add more segments *} + +{===>} nfle_1=0; + +{* Fully flexible segments of molecule 1 *} +{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} + +{===>} start_fle_1_1=""; +{===>} end_fle_1_1=""; +{===>} start_fle_1_2=""; +{===>} end_fle_1_2=""; +{===>} start_fle_1_3=""; +{===>} end_fle_1_3=""; +{===>} start_fle_1_4=""; +{===>} end_fle_1_4=""; +{===>} start_fle_1_5=""; +{===>} end_fle_1_5=""; + +{* Fully flexible segments for molecule 2 *} +{* Note that current max is 5 (edit the run.cns to add more segments *} + +{===>} nfle_2=0; + +{* Residues of molecule 2 at interface *} +{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} +{===>} start_fle_2_1=""; +{===>} end_fle_2_1=""; +{===>} start_fle_2_2=""; +{===>} end_fle_2_2=""; +{===>} start_fle_2_3=""; +{===>} end_fle_2_3=""; +{===>} start_fle_2_4=""; +{===>} end_fle_2_4=""; +{===>} start_fle_2_5=""; +{===>} end_fle_2_5=""; + +{* Fully flexible segments for molecule 3 *} +{* Note that current max is 5 (edit the run.cns to add more segments *} + +{===>} nfle_3=0; + +{* Residues of molecule 3 at interface *} +{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} +{===>} start_fle_3_1=""; +{===>} end_fle_3_1=""; +{===>} start_fle_3_2=""; +{===>} end_fle_3_2=""; +{===>} start_fle_3_3=""; +{===>} end_fle_3_3=""; +{===>} start_fle_3_4=""; +{===>} end_fle_3_4=""; +{===>} start_fle_3_5=""; +{===>} end_fle_3_5=""; + +{* Fully flexible segments for molecule 4 *} +{* Note that current max is 5 (edit the run.cns to add more segments *} + +{===>} nfle_4=0; + +{* Residues of molecule 4 at interface *} +{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} +{===>} start_fle_4_1=""; +{===>} end_fle_4_1=""; +{===>} start_fle_4_2=""; +{===>} end_fle_4_2=""; +{===>} start_fle_4_3=""; +{===>} end_fle_4_3=""; +{===>} start_fle_4_4=""; +{===>} end_fle_4_4=""; +{===>} start_fle_4_5=""; +{===>} end_fle_4_5=""; + + +{* Fully flexible segments for molecule 5 *} +{* Note that current max is 5 (edit the run.cns to add more segments *} + +{===>} nfle_5=0; + +{* Residues of molecule 5 at interface *} +{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} +{===>} start_fle_5_1=""; +{===>} end_fle_5_1=""; +{===>} start_fle_5_2=""; +{===>} end_fle_5_2=""; +{===>} start_fle_5_3=""; +{===>} end_fle_5_3=""; +{===>} start_fle_5_4=""; +{===>} end_fle_5_4=""; +{===>} start_fle_5_5=""; +{===>} end_fle_5_5=""; + + +{* Fully flexible segments for molecule 6 *} +{* Note that current max is 5 (edit the run.cns to add more segments *} + +{===>} nfle_6=0; + +{* Residues of molecule 6 at interface *} +{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} +{===>} start_fle_6_1=""; +{===>} end_fle_6_1=""; +{===>} start_fle_6_2=""; +{===>} end_fle_6_2=""; +{===>} start_fle_6_3=""; +{===>} end_fle_6_3=""; +{===>} start_fle_6_4=""; +{===>} end_fle_6_4=""; +{===>} start_fle_6_5=""; +{===>} end_fle_6_5=""; + + +{* Fully flexible segments for molecule 7 *} +{* Note that current max is 5 (edit the run.cns to add more segments *} + +{===>} nfle_7=0; + +{* Residues of molecule 7 at interface *} +{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} +{===>} start_fle_7_1=""; +{===>} end_fle_7_1=""; +{===>} start_fle_7_2=""; +{===>} end_fle_7_2=""; +{===>} start_fle_7_3=""; +{===>} end_fle_7_3=""; +{===>} start_fle_7_4=""; +{===>} end_fle_7_4=""; +{===>} start_fle_7_5=""; +{===>} end_fle_7_5=""; + +{* Fully flexible segments for molecule 8 *} +{* Note that current max is 5 (edit the run.cns to add more segments *} + +{===>} nfle_8=0; + +{* Residues of molecule 8 at interface *} +{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} +{===>} start_fle_8_1=""; +{===>} end_fle_8_1=""; +{===>} start_fle_8_2=""; +{===>} end_fle_8_2=""; +{===>} start_fle_8_3=""; +{===>} end_fle_8_3=""; +{===>} start_fle_8_4=""; +{===>} end_fle_8_4=""; +{===>} start_fle_8_5=""; +{===>} end_fle_8_5=""; + +{* Fully flexible segments for molecule 9 *} +{* Note that current max is 5 (edit the run.cns to add more segments *} + +{===>} nfle_9=0; + +{* Residues of molecule 9 at interface *} +{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} +{===>} start_fle_9_1=""; +{===>} end_fle_9_1=""; +{===>} start_fle_9_2=""; +{===>} end_fle_9_2=""; +{===>} start_fle_9_3=""; +{===>} end_fle_9_3=""; +{===>} start_fle_9_4=""; +{===>} end_fle_9_4=""; +{===>} start_fle_9_5=""; +{===>} end_fle_9_5=""; + +{* Fully flexible segments for molecule 10 *} +{* Note that current max is 5 (edit the run.cns to add more segments *} + +{===>} nfle_10=0; + +{* Residues of molecule 10 at interface *} +{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} +{===>} start_fle_10_1=""; +{===>} end_fle_10_1=""; +{===>} start_fle_10_2=""; +{===>} end_fle_10_2=""; +{===>} start_fle_10_3=""; +{===>} end_fle_10_3=""; +{===>} start_fle_10_4=""; +{===>} end_fle_10_4=""; +{===>} start_fle_10_5=""; +{===>} end_fle_10_5=""; + +{* Fully flexible segments for molecule 11 *} +{* Note that current max is 5 (edit the run.cns to add more segments *} + +{===>} nfle_11=0; + +{* Residues of molecule 11 at interface *} +{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} +{===>} start_fle_11_1=""; +{===>} end_fle_11_1=""; +{===>} start_fle_11_2=""; +{===>} end_fle_11_2=""; +{===>} start_fle_11_3=""; +{===>} end_fle_11_3=""; +{===>} start_fle_11_4=""; +{===>} end_fle_11_4=""; +{===>} start_fle_11_5=""; +{===>} end_fle_11_5=""; + +{* Fully flexible segments for molecule 12 *} +{* Note that current max is 5 (edit the run.cns to add more segments *} + +{===>} nfle_12=0; + +{* Residues of molecule 12 at interface *} +{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} +{===>} start_fle_12_1=""; +{===>} end_fle_12_1=""; +{===>} start_fle_12_2=""; +{===>} end_fle_12_2=""; +{===>} start_fle_12_3=""; +{===>} end_fle_12_3=""; +{===>} start_fle_12_4=""; +{===>} end_fle_12_4=""; +{===>} start_fle_12_5=""; +{===>} end_fle_12_5=""; + +{* Fully flexible segments for molecule 13 *} +{* Note that current max is 5 (edit the run.cns to add more segments *} + +{===>} nfle_13=0; + +{* Residues of molecule 13 at interface *} +{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} +{===>} start_fle_13_1=""; +{===>} end_fle_13_1=""; +{===>} start_fle_13_2=""; +{===>} end_fle_13_2=""; +{===>} start_fle_13_3=""; +{===>} end_fle_13_3=""; +{===>} start_fle_13_4=""; +{===>} end_fle_13_4=""; +{===>} start_fle_13_5=""; +{===>} end_fle_13_5=""; + +{* Fully flexible segments for molecule 14 *} +{* Note that current max is 5 (edit the run.cns to add more segments *} + +{===>} nfle_14=0; + +{* Residues of molecule 14 at interface *} +{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} +{===>} start_fle_14_1=""; +{===>} end_fle_14_1=""; +{===>} start_fle_14_2=""; +{===>} end_fle_14_2=""; +{===>} start_fle_14_3=""; +{===>} end_fle_14_3=""; +{===>} start_fle_14_4=""; +{===>} end_fle_14_4=""; +{===>} start_fle_14_5=""; +{===>} end_fle_14_5=""; + +{* Fully flexible segments for molecule 15 *} +{* Note that current max is 5 (edit the run.cns to add more segments *} + +{===>} nfle_15=0; + +{* Residues of molecule 15 at interface *} +{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} +{===>} start_fle_15_1=""; +{===>} end_fle_15_1=""; +{===>} start_fle_15_2=""; +{===>} end_fle_15_2=""; +{===>} start_fle_15_3=""; +{===>} end_fle_15_3=""; +{===>} start_fle_15_4=""; +{===>} end_fle_15_4=""; +{===>} start_fle_15_5=""; +{===>} end_fle_15_5=""; + +{* Fully flexible segments for molecule 16 *} +{* Note that current max is 5 (edit the run.cns to add more segments *} + +{===>} nfle_16=0; + +{* Residues of molecule 16 at interface *} +{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} +{===>} start_fle_16_1=""; +{===>} end_fle_16_1=""; +{===>} start_fle_16_2=""; +{===>} end_fle_16_2=""; +{===>} start_fle_16_3=""; +{===>} end_fle_16_3=""; +{===>} start_fle_16_4=""; +{===>} end_fle_16_4=""; +{===>} start_fle_16_5=""; +{===>} end_fle_16_5=""; + +{* Fully flexible segments for molecule 17 *} +{* Note that current max is 5 (edit the run.cns to add more segments *} + +{===>} nfle_17=0; + +{* Residues of molecule 17 at interface *} +{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} +{===>} start_fle_17_1=""; +{===>} end_fle_17_1=""; +{===>} start_fle_17_2=""; +{===>} end_fle_17_2=""; +{===>} start_fle_17_3=""; +{===>} end_fle_17_3=""; +{===>} start_fle_17_4=""; +{===>} end_fle_17_4=""; +{===>} start_fle_17_5=""; +{===>} end_fle_17_5=""; + + +{* Fully flexible segments for molecule 18 *} +{* Note that current max is 5 (edit the run.cns to add more segments *} + +{===>} nfle_18=0; + +{* Residues of molecule 18 at interface *} +{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} +{===>} start_fle_18_1=""; +{===>} end_fle_18_1=""; +{===>} start_fle_18_2=""; +{===>} end_fle_18_2=""; +{===>} start_fle_18_3=""; +{===>} end_fle_18_3=""; +{===>} start_fle_18_4=""; +{===>} end_fle_18_4=""; +{===>} start_fle_18_5=""; +{===>} end_fle_18_5=""; + + +{* Fully flexible segments for molecule 19 *} +{* Note that current max is 5 (edit the run.cns to add more segments *} + +{===>} nfle_19=0; + +{* Sesidues of molecule 19 at interface *} +{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} +{===>} start_fle_19_1=""; +{===>} end_fle_19_1=""; +{===>} start_fle_19_2=""; +{===>} end_fle_19_2=""; +{===>} start_fle_19_3=""; +{===>} end_fle_19_3=""; +{===>} start_fle_19_4=""; +{===>} end_fle_19_4=""; +{===>} start_fle_19_5=""; +{===>} end_fle_19_5=""; + +{* Fully flexible segments for molecule 20 *} +{* Note that current max is 5 (edit the run.cns to add more segments *} + +{===>} nfle_20=0; + +{* Sesidues of molecule 20 at interface *} +{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} +{===>} start_fle_20_1=""; +{===>} end_fle_20_1=""; +{===>} start_fle_20_2=""; +{===>} end_fle_20_2=""; +{===>} start_fle_20_3=""; +{===>} end_fle_20_3=""; +{===>} start_fle_20_4=""; +{===>} end_fle_20_4=""; +{===>} start_fle_20_5=""; +{===>} end_fle_20_5=""; + +{==================== membrane positioning restraints ==================} +{* Do you want to use membrane positioning restraints ? *} +{+ choice: true false +} +{===>} zres_on=false; + +{* Force constant for membrane positioning restraints ? *} +{===>} kzres=10.0; + +{* Maximum z value for membrane positioning restraints ? *} +{===>} zresmax=0.0; + +{* Minimum z value for membrane positioning restraints ? *} +{===>} zresmin=0.0; + +{* Number of membrane positioning restrained segments *} +{===>} numzres=0; + +{* Define the segment for membrane positioning restraints *} +{+ table: rows=10 "seg 1" "seg 2" "seg 3" "seg 4" "seg 5" "seg 6" "seg 7" "seg 8" "seg 9" "seg 10" cols=4 "Start res seg1" "End res seg1" "Segid seg1" "inside/outside" +} +{===>} zres_sta_1=""; +{===>} zres_end_1=""; +{===>} zres_seg_1=""; +{+ choice: "inside" "outside"+} +{===>} zres_type_1=""; +{===>} zres_sta_2=""; +{===>} zres_end_2=""; +{===>} zres_seg_2=""; +{+ choice: "inside" "outside"+} +{===>} zres_type_2=""; +{===>} zres_sta_3=""; +{===>} zres_end_3=""; +{===>} zres_seg_3=""; +{+ choice: "inside" "outside"+} +{===>} zres_type_3=""; +{===>} zres_sta_4=""; +{===>} zres_end_4=""; +{===>} zres_seg_4=""; +{+ choice: "inside" "outside"+} +{===>} zres_type_4=""; +{===>} zres_sta_5=""; +{===>} zres_end_5=""; +{===>} zres_seg_5=""; +{+ choice: "inside" "outside"+} +{===>} zres_type_5=""; +{===>} zres_sta_6=""; +{===>} zres_end_6=""; +{===>} zres_seg_6=""; +{+ choice: "inside" "outside"+} +{===>} zres_type_6=""; +{===>} zres_sta_7=""; +{===>} zres_end_7=""; +{===>} zres_seg_7=""; +{+ choice: "inside" "outside"+} +{===>} zres_type_7=""; +{===>} zres_sta_8=""; +{===>} zres_end_8=""; +{===>} zres_seg_8=""; +{+ choice: "inside" "outside"+} +{===>} zres_type_8=""; +{===>} zres_sta_9=""; +{===>} zres_end_9=""; +{===>} zres_seg_9=""; +{+ choice: "inside" "outside"+} +{===>} zres_type_9=""; +{===>} zres_sta_10=""; +{===>} zres_end_10=""; +{===>} zres_seg_10=""; +{+ choice: "inside" "outside"+} +{===>} zres_type_10=""; + + +{====================== NCS restraints =====================} +{* Do you want to use NCS restraints? *} +{+ choice: true false +} +{===>} ncs_on=false; + +{* Force constant for NCS restraints *} +{===>} kncs=1.0; + +{* Number of NCS pairs *} +{===>} numncs=0; + +{* Define the segments pairs for NCS restraints *} +{+ table: rows=5 "pair 1" "pair 2" "pair 3" "pair 4" "pair 5" cols=6 "Start res seg1" "End res seg1" "Segid seg1" "Start res seg2" "End res seg2" "Segid seg2" +} +{===>} ncs_sta1_1=""; +{===>} ncs_end1_1=""; +{===>} ncs_seg1_1=""; +{===>} ncs_sta2_1=""; +{===>} ncs_end2_1=""; +{===>} ncs_seg2_1=""; +{===>} ncs_sta1_2=""; +{===>} ncs_end1_2=""; +{===>} ncs_seg1_2=""; +{===>} ncs_sta2_2=""; +{===>} ncs_end2_2=""; +{===>} ncs_seg2_2=""; +{===>} ncs_sta1_3=""; +{===>} ncs_end1_3=""; +{===>} ncs_seg1_3=""; +{===>} ncs_sta2_3=""; +{===>} ncs_end2_3=""; +{===>} ncs_seg2_3=""; +{===>} ncs_sta1_4=""; +{===>} ncs_end1_4=""; +{===>} ncs_seg1_4=""; +{===>} ncs_sta2_4=""; +{===>} ncs_end2_4=""; +{===>} ncs_seg2_4=""; +{===>} ncs_sta1_5=""; +{===>} ncs_end1_5=""; +{===>} ncs_seg1_5=""; +{===>} ncs_sta2_5=""; +{===>} ncs_end2_5=""; +{===>} ncs_seg2_5=""; + +{==================== Symmetry restraints ==================} +{* Do you want to use symmetry restraints ? *} +{+ choice: true false +} +{===>} sym_on=false; + +{* Force constant for symmetry restraints ? *} +{===>} ksym=10.0; + +{* Number of C2 symmetry pairs *} +{===>} numc2sym=0; + +{* Define the segment pairs C2 symmetry restraints *} +{+ table: rows=10 "pair 1" "pair 2" "pair 3" "pair 4" "pair 5" "pair 6" "pair 7" "pair 8" "pair 9" "pair 10" cols=6 "Start res seg1" "End res seg1" "Segid seg1" "Start res seg2" "End res seg2" "Segid seg2" +} +{===>} c2sym_sta1_1=""; +{===>} c2sym_end1_1=""; +{===>} c2sym_seg1_1=""; +{===>} c2sym_sta2_1=""; +{===>} c2sym_end2_1=""; +{===>} c2sym_seg2_1=""; +{===>} c2sym_sta1_2=""; +{===>} c2sym_end1_2=""; +{===>} c2sym_seg1_2=""; +{===>} c2sym_sta2_2=""; +{===>} c2sym_end2_2=""; +{===>} c2sym_seg2_2=""; +{===>} c2sym_sta1_3=""; +{===>} c2sym_end1_3=""; +{===>} c2sym_seg1_3=""; +{===>} c2sym_sta2_3=""; +{===>} c2sym_end2_3=""; +{===>} c2sym_seg2_3=""; +{===>} c2sym_sta1_4=""; +{===>} c2sym_end1_4=""; +{===>} c2sym_seg1_4=""; +{===>} c2sym_sta2_4=""; +{===>} c2sym_end2_4=""; +{===>} c2sym_seg2_4=""; +{===>} c2sym_sta1_5=""; +{===>} c2sym_end1_5=""; +{===>} c2sym_seg1_5=""; +{===>} c2sym_sta2_5=""; +{===>} c2sym_end2_5=""; +{===>} c2sym_seg2_5=""; +{===>} c2sym_sta1_6=""; +{===>} c2sym_end1_6=""; +{===>} c2sym_seg1_6=""; +{===>} c2sym_sta2_6=""; +{===>} c2sym_end2_6=""; +{===>} c2sym_seg2_6=""; +{===>} c2sym_sta1_7=""; +{===>} c2sym_end1_7=""; +{===>} c2sym_seg1_7=""; +{===>} c2sym_sta2_7=""; +{===>} c2sym_end2_7=""; +{===>} c2sym_seg2_7=""; +{===>} c2sym_sta1_8=""; +{===>} c2sym_end1_8=""; +{===>} c2sym_seg1_8=""; +{===>} c2sym_sta2_8=""; +{===>} c2sym_end2_8=""; +{===>} c2sym_seg2_8=""; +{===>} c2sym_sta1_9=""; +{===>} c2sym_end1_9=""; +{===>} c2sym_seg1_9=""; +{===>} c2sym_sta2_9=""; +{===>} c2sym_end2_9=""; +{===>} c2sym_seg2_9=""; +{===>} c2sym_sta1_10=""; +{===>} c2sym_end1_10=""; +{===>} c2sym_seg1_10=""; +{===>} c2sym_sta2_10=""; +{===>} c2sym_end2_10=""; +{===>} c2sym_seg2_10=""; + + +{* Number of C3 symmetry triples*} +{===>} numc3sym=0; + +{* Define the segment triples for C3 symmetry restraints *} +{+ table: rows=2 "triple 1" "triple 2" cols=9 "Start res seg1" "End res seg1" "Segid seg1" "Start res seg2" "End res seg2" "Segid seg2" "Start res seg3" "End res seg3" "Segid seg3" +} +{===>} c3sym_sta1_1=""; +{===>} c3sym_end1_1=""; +{===>} c3sym_seg1_1=""; +{===>} c3sym_sta2_1=""; +{===>} c3sym_end2_1=""; +{===>} c3sym_seg2_1=""; +{===>} c3sym_sta3_1=""; +{===>} c3sym_end3_1=""; +{===>} c3sym_seg3_1=""; +{===>} c3sym_sta1_2=""; +{===>} c3sym_end1_2=""; +{===>} c3sym_seg1_2=""; +{===>} c3sym_sta2_2=""; +{===>} c3sym_end2_2=""; +{===>} c3sym_seg2_2=""; +{===>} c3sym_sta3_2=""; +{===>} c3sym_end3_2=""; +{===>} c3sym_seg3_2=""; + + +{* Number of S3 symmetry triples*} +{===>} nums3sym=0; + +{* Define the segment triples for S3 symmetry restraints *} +{+ table: rows=4 "triple 1" "triple 2" "triple 3" "triple 4" cols=9 "Start res seg1" "End res seg1" "Segid seg1" "Start res seg2" "End res seg2" "Segid seg2" "Start res seg3" "End res seg3" "Segid seg3" +} +{===>} s3sym_sta1_1=""; +{===>} s3sym_end1_1=""; +{===>} s3sym_seg1_1=""; +{===>} s3sym_sta2_1=""; +{===>} s3sym_end2_1=""; +{===>} s3sym_seg2_1=""; +{===>} s3sym_sta3_1=""; +{===>} s3sym_end3_1=""; +{===>} s3sym_seg3_1=""; +{===>} s3sym_sta1_2=""; +{===>} s3sym_end1_2=""; +{===>} s3sym_seg1_2=""; +{===>} s3sym_sta2_2=""; +{===>} s3sym_end2_2=""; +{===>} s3sym_seg2_2=""; +{===>} s3sym_sta3_2=""; +{===>} s3sym_end3_2=""; +{===>} s3sym_seg3_2=""; +{===>} s3sym_sta1_3=""; +{===>} s3sym_end1_3=""; +{===>} s3sym_seg1_3=""; +{===>} s3sym_sta2_3=""; +{===>} s3sym_end2_3=""; +{===>} s3sym_seg2_3=""; +{===>} s3sym_sta3_3=""; +{===>} s3sym_end3_3=""; +{===>} s3sym_seg3_3=""; +{===>} s3sym_sta1_4=""; +{===>} s3sym_end1_4=""; +{===>} s3sym_seg1_4=""; +{===>} s3sym_sta2_4=""; +{===>} s3sym_end2_4=""; +{===>} s3sym_seg2_4=""; +{===>} s3sym_sta3_4=""; +{===>} s3sym_end3_4=""; +{===>} s3sym_seg3_4=""; + + +{* Number of C4 symmetry quadruples *} +{===>} numc4sym=0; + +{* Define the segment quadruples for C4 symmetry restraints *} +{+ table: rows=2 "quadruples 1" "quadruples 2" cols=12 "Start res seg1" "End res seg1" "Segid seg1" "Start res seg2" "End res seg2" "Segid seg2" "Start res seg3" "End res seg3" "Segid seg3" "Start res seg4" "End res seg4" "Segid seg4" +} +{===>} c4sym_sta1_1=""; +{===>} c4sym_end1_1=""; +{===>} c4sym_seg1_1=""; +{===>} c4sym_sta2_1=""; +{===>} c4sym_end2_1=""; +{===>} c4sym_seg2_1=""; +{===>} c4sym_sta3_1=""; +{===>} c4sym_end3_1=""; +{===>} c4sym_seg3_1=""; +{===>} c4sym_sta4_1=""; +{===>} c4sym_end4_1=""; +{===>} c4sym_seg4_1=""; +{===>} c4sym_sta1_2=""; +{===>} c4sym_end1_2=""; +{===>} c4sym_seg1_2=""; +{===>} c4sym_sta2_2=""; +{===>} c4sym_end2_2=""; +{===>} c4sym_seg2_2=""; +{===>} c4sym_sta3_2=""; +{===>} c4sym_end3_2=""; +{===>} c4sym_seg3_2=""; +{===>} c4sym_sta4_2=""; +{===>} c4sym_end4_2=""; +{===>} c4sym_seg4_2=""; + + +{* Number of C5 symmetry *} +{===>} numc5sym=0; + +{* Define the segments for C5 symmetry restraints *} +{+ table: rows=5 "Segment1" "Segment2" "Segment3" "Segment4" "Segment5" cols=3 "Start residue" "End residue" "Segid" +} +{===>} c5sym_sta1_1=""; +{===>} c5sym_end1_1=""; +{===>} c5sym_seg1_1=""; +{===>} c5sym_sta2_1=""; +{===>} c5sym_end2_1=""; +{===>} c5sym_seg2_1=""; +{===>} c5sym_sta3_1=""; +{===>} c5sym_end3_1=""; +{===>} c5sym_seg3_1=""; +{===>} c5sym_sta4_1=""; +{===>} c5sym_end4_1=""; +{===>} c5sym_seg4_1=""; +{===>} c5sym_sta5_1=""; +{===>} c5sym_end5_1=""; +{===>} c5sym_seg5_1=""; +{===>} c5sym_sta1_2=""; +{===>} c5sym_end1_2=""; +{===>} c5sym_seg1_2=""; +{===>} c5sym_sta2_2=""; +{===>} c5sym_end2_2=""; +{===>} c5sym_seg2_2=""; +{===>} c5sym_sta3_2=""; +{===>} c5sym_end3_2=""; +{===>} c5sym_seg3_2=""; +{===>} c5sym_sta4_2=""; +{===>} c5sym_end4_2=""; +{===>} c5sym_seg4_2=""; +{===>} c5sym_sta5_2=""; +{===>} c5sym_end5_2=""; +{===>} c5sym_seg5_2=""; + + +{* Number of c6 symmetry *} +{===>} numc6sym=0; + +{* Define the segments for c6 symmetry restraints *} +{+ table: rows=5 "Segment1" "Segment2" "Segment3" "Segment4" "Segment5" cols=3 "Start residue" "End residue" "Segid" +} +{===>} c6sym_sta1_1=""; +{===>} c6sym_end1_1=""; +{===>} c6sym_seg1_1=""; +{===>} c6sym_sta2_1=""; +{===>} c6sym_end2_1=""; +{===>} c6sym_seg2_1=""; +{===>} c6sym_sta3_1=""; +{===>} c6sym_end3_1=""; +{===>} c6sym_seg3_1=""; +{===>} c6sym_sta4_1=""; +{===>} c6sym_end4_1=""; +{===>} c6sym_seg4_1=""; +{===>} c6sym_sta5_1=""; +{===>} c6sym_end5_1=""; +{===>} c6sym_seg5_1=""; +{===>} c6sym_sta6_1=""; +{===>} c6sym_end6_1=""; +{===>} c6sym_seg6_1=""; + + +{=========================== Distance restraints ========================} +{* Turn on/off and energy constants for distance restraints *} +{+ table: rows=3 "distances" "AIR (ambig)" "hbonds" cols=6 "firstIteration" "lastIteration" "hot" "cool1" "cool2" "cool3"+} + +{===>} unamb_firstit=0; +{===>} unamb_lastit=2; +{===>} unamb_hot=10; +{===>} unamb_cool1=10; +{===>} unamb_cool2=50; +{===>} unamb_cool3=50; +{===>} amb_firstit=0; +{===>} amb_lastit=2; +{===>} amb_hot=10; +{===>} amb_cool1=10; +{===>} amb_cool2=50; +{===>} amb_cool3=50; +{===>} hbond_firstit=1; +{===>} hbond_lastit=2; +{===>} hbond_hot=10; +{===>} hbond_cool1=10; +{===>} hbond_cool2=50; +{===>} hbond_cool3=50; + +{* Do you want to randomly exclude a fraction of the ambiguous restraints (AIRs)? *} +{+ choice: true false +} +{===>} noecv=true; + +{* Number of partitions for random exclusion (%excluded=100/number of partitions)? *} +{===>} ncvpart=2; + +{* Do you want to use hydrogen bond restraints? *} +{+ choice: true false +} +{===>} hbonds_on=false; + +{* Do you want to define randomly ambiguous interaction restraints from accessible residues? *} +{* Only residues in the defined flexible segments will be considered *} +{* Note that this option is exclusive with any other distance restraints and only for it0 *} +{+ choice: true false +} +{===>} ranair=false; + +{* Do you want to define center of mass (CM) restraints to enforce contact between the molecules? *} +{* Note that these are only active during it0 and it1 *} +{+ choice: true false +} +{===>} cmrest=false; + +{* Define tight CM restraints? *} +{+ choice: true false +} +{===>} cmtight=true; + +{* Force constant for center of mass restraints *} +{===>} kcont=1.0; + +{* Do you want to define surface contact restraints to enforce contact between the molecules? *} +{* Note that these are only active during it0 and it1 *} +{+ choice: true false +} +{===>} surfrest=false; + +{* Force constant for surface contact restraints *} +{===>} ksurf=1.0; + +{ Use automated distance restraints weighting } +{ choice: true false } +air_scaling=false; + +{ Define the number of distance restraints for automated weighting } +tot_unamb=25; +{ Define the number of AIR restraints for automated weighting } +tot_amb=0; + +{ potential shape } +mrswi_hot=0.5; +mrswi_cool1=0.5; +mrswi_cool2=0.5; +mrswi_cool3=0.5; +rswi_hot=0.5; +rswi_cool1=0.5; +rswi_cool2=0.5; +rswi_cool3=0.5; +masy_hot=-1.0; +masy_cool1=-1.0; +masy_cool2=-0.1; +masy_cool3=-0.1; +asy_hot=1.0; +asy_cool1=1.0; +asy_cool2=0.1; +asy_cool3=0.1; + + +{=========================== radius of gyration restraint ============} +{* Turn on/off and energy constants for Rg restraints *} +{* Do you want to define a radius of gyration restraint (e.g. from SAXS)? *} +{+ choice: true false +} +{===>} rgrest=false; + +{* Radius of gyration *} +{===>} rgtarg=17.78; + +{* Force constant for radius of gyration restraint *} +{===>} krg_hot=100.0; +{===>} krg_cool1=100.0; +{===>} krg_cool2=100.0; +{===>} krg_cool3=100.0; + +{* Atom selections for the radius of gyration restraint *} +{===>} rgsele="all"; + + +{======================DNA-RNA restraints ============================} +{* Use DNA/RNA restraints (dna-rna_restraints.def in data/sequence)? *} +{+ choice: true false +} +{===>} dnarest_on=false; + + +{=========================== dihedrals restraints ====================} +{* energy constants *} +{+ table: rows=1 "dihedrals" cols=5 "use?" "hot" "cool1" "cool2" "cool3" +} + +{+ choice: true false +} +{===>} dihedrals_on=false; +{===>} dihedrals_hot=5; +{===>} dihedrals_cool1=5; +{===>} dihedrals_cool2=50; +{===>} dihedrals_cool3=200; + +{* Automatically define backbone dihedral angle restraints from structure? *} +{* Error treshold for restraint violation is defined by error_dih *} +{+ choice: none all alpha alphabeta +} +{+ define the error treshold for the restraint violation +} +{===>} ssdihed=none; +{===>} error_dih=10; + + +{=========================== residual dipolar couplings ======================} + +{* Parameters *} +{+ table: rows=5 "class1" "class2" "class3" "class4" "class5" + cols=25 "type" "firstIt" "lastIt" "Ksani
    (hot)" "Ksani
    (cool1)" "Ksani
    (cool2)" "Ksani
    (cool3)" "R" "D" + "Kvean
    (ini_bor_hot)" "Kvean
    (fin_bor_hot)" + "Kvean
    (ini_bor_cool1)" "Kvean
    (fin_bor_cool1)" + "Kvean
    (ini_bor_cool2)" "Kvean
    (fin_bor_cool2)" + "Kvean
    (ini_bor_cool3)" "Kvean
    (fin_bor_cool3)" + "Kvean
    (ini_cen_hot)" "Kvean
    (fin_cen_hot)" + "Kvean
    (ini_cen_cool1)" "Kvean
    (fin_cen_cool1)" + "Kvean
    (ini_cen_cool2)" "Kvean
    (fin_cen_cool2)" + "Kvean
    (ini_cen_cool3)" "Kvean
    (fin_cen_cool3)"+} + +{* Number of RDC restraint sets *} +{===>} numrdc=0; + +{+ choice: "NO" "SANI" "VANGLE" +} +{===>} rdc_choice_1="NO"; +{===>} rdc_firstIt_1=2; +{===>} rdc_lastIt_1=2; +{===>} rdc_hot_1=0.001; +{===>} rdc_cool1_1=0.02; +{===>} rdc_cool2_1=0.2; +{===>} rdc_cool3_1=0.2; +{===>} rdc_r_1=0.057; +{===>} rdc_d_1=-11.49; +{===>} ini_bor_hot_1=1.0; +{===>} fin_bor_hot_1=10.0; +{===>} ini_bor_cool1_1=10.0; +{===>} fin_bor_cool1_1=40.0; +{===>} ini_bor_cool2_1=40.0; +{===>} fin_bor_cool2_1=40.0; +{===>} ini_bor_cool3_1=40.0; +{===>} fin_bor_cool3_1=40.0; +{===>} ini_cen_hot_1=0.25; +{===>} fin_cen_hot_1=2.5; +{===>} ini_cen_cool1_1=2.5; +{===>} fin_cen_cool1_1=10.0; +{===>} ini_cen_cool2_1=10.0; +{===>} fin_cen_cool2_1=10.0; +{===>} ini_cen_cool3_1=10.0; +{===>} fin_cen_cool3_1=10.0; + +{+ choice: "NO" "SANI" "XRDC" "VANGLE" +} +{===>} rdc_choice_2="NO"; +{===>} rdc_firstIt_2=0; +{===>} rdc_lastIt_2=1; +{===>} rdc_hot_2=0.01; +{===>} rdc_cool1_2=0.2; +{===>} rdc_cool2_2=1.0; +{===>} rdc_cool3_2=1.0; +{===>} rdc_r_2=0.4; +{===>} rdc_d_2=8.0; +{===>} ini_bor_hot_2=1.0; +{===>} fin_bor_hot_2=10.0; +{===>} ini_bor_cool1_2=10.0; +{===>} fin_bor_cool1_2=40.0; +{===>} ini_bor_cool2_2=40.0; +{===>} fin_bor_cool2_2=40.0; +{===>} ini_bor_cool3_2=40.0; +{===>} fin_bor_cool3_2=40.0; +{===>} ini_cen_hot_2=0.25; +{===>} fin_cen_hot_2=2.5; +{===>} ini_cen_cool1_2=2.5; +{===>} fin_cen_cool1_2=10.0; +{===>} ini_cen_cool2_2=10.0; +{===>} fin_cen_cool2_2=10.0; +{===>} ini_cen_cool3_2=10.0; +{===>} fin_cen_cool3_2=10.0; + +{+ choice: "NO" "SANI" "XRDC" "VANGLE" +} +{===>} rdc_choice_3="NO"; +{===>} rdc_firstIt_3=1; +{===>} rdc_lastIt_3=1; +{===>} rdc_hot_3=0.01; +{===>} rdc_cool1_3=0.2; +{===>} rdc_cool2_3=1.0; +{===>} rdc_cool3_3=1.0; +{===>} rdc_r_3=0.4; +{===>} rdc_d_3=8.0; +{===>} ini_bor_hot_3=1.0; +{===>} fin_bor_hot_3=10.0; +{===>} ini_bor_cool1_3=10.0; +{===>} fin_bor_cool1_3=40.0; +{===>} ini_bor_cool2_3=40.0; +{===>} fin_bor_cool2_3=40.0; +{===>} ini_bor_cool3_3=40.0; +{===>} fin_bor_cool3_3=40.0; +{===>} ini_cen_hot_3=0.25; +{===>} fin_cen_hot_3=2.5; +{===>} ini_cen_cool1_3=2.5; +{===>} fin_cen_cool1_3=10.0; +{===>} ini_cen_cool2_3=10.0; +{===>} fin_cen_cool2_3=10.0; +{===>} ini_cen_cool3_3=10.0; +{===>} fin_cen_cool3_3=10.0; + +{+ choice: "NO" "SANI" "XRDC" "VANGLE" +} +{===>} rdc_choice_4="NO"; +{===>} rdc_firstIt_4=0; +{===>} rdc_lastIt_4=2; +{===>} rdc_hot_4=0.1; +{===>} rdc_cool1_4=1.0; +{===>} rdc_cool2_4=1.0; +{===>} rdc_cool3_4=1.0; +{===>} rdc_r_4=0.4; +{===>} rdc_d_4=8.0; +{===>} ini_bor_hot_4=1.0; +{===>} fin_bor_hot_4=10.0; +{===>} ini_bor_cool1_4=10.0; +{===>} fin_bor_cool1_4=40.0; +{===>} ini_bor_cool2_4=40.0; +{===>} fin_bor_cool2_4=40.0; +{===>} ini_bor_cool3_4=40.0; +{===>} fin_bor_cool3_4=40.0; +{===>} ini_cen_hot_4=0.25; +{===>} fin_cen_hot_4=2.5; +{===>} ini_cen_cool1_4=2.5; +{===>} fin_cen_cool1_4=10.0; +{===>} ini_cen_cool2_4=10.0; +{===>} fin_cen_cool2_4=10.0; +{===>} ini_cen_cool3_4=10.0; +{===>} fin_cen_cool3_4=10.0; + +{+ choice: "NO" "SANI" "XRDC" "VANGLE" +} +{===>} rdc_choice_5="NO"; +{===>} rdc_firstIt_5=0; +{===>} rdc_lastIt_5=2; +{===>} rdc_hot_5=0.1; +{===>} rdc_cool1_5=1.0; +{===>} rdc_cool2_5=1.0; +{===>} rdc_cool3_5=1.0; +{===>} rdc_r_5=0.4; +{===>} rdc_d_5=8.0; +{===>} ini_bor_hot_5=1.0; +{===>} fin_bor_hot_5=10.0; +{===>} ini_bor_cool1_5=10.0; +{===>} fin_bor_cool1_5=40.0; +{===>} ini_bor_cool2_5=40.0; +{===>} fin_bor_cool2_5=40.0; +{===>} ini_bor_cool3_5=40.0; +{===>} fin_bor_cool3_5=40.0; +{===>} ini_cen_hot_5=0.25; +{===>} fin_cen_hot_5=2.5; +{===>} ini_cen_cool1_5=2.5; +{===>} fin_cen_cool1_5=10.0; +{===>} ini_cen_cool2_5=10.0; +{===>} fin_cen_cool2_5=10.0; +{===>} ini_cen_cool3_5=10.0; +{===>} fin_cen_cool3_5=10.0; + + +{=========================== pseudo contact shifts ===========================} + +{* Parameters *} +{+ table: rows=10 "class1" "class2" "class3" "class4" "class5" "class6" "class7" "class8" "class9" "class10" + cols=9 "type" "firstIt" "lastIt" "Kpcs
    (hot)" "Kpcs
    (cool1)" "Kpcs
    (cool2)" "Kpcs
    (cool3)" "R" "D" +} + +{* Number of PCS restraint sets *} +{===>} numpcs=0; + +{+ choice: "NO" "XPCS" +} +{===>} pcs_choice_1="NO"; +{===>} pcs_firstIt_1=0; +{===>} pcs_lastIt_1=2; +{===>} pcs_hot_1=100.0; +{===>} pcs_cool1_1=100.0; +{===>} pcs_cool2_1=100.0; +{===>} pcs_cool3_1=100.0; +{===>} pcs_r_1=1000; +{===>} pcs_d_1=10000; + +{+ choice: "NO" "XPCS" +} +{===>} pcs_choice_2="NO"; +{===>} pcs_firstIt_2=0; +{===>} pcs_lastIt_2=2; +{===>} pcs_hot_2=100.0; +{===>} pcs_cool1_2=100.0; +{===>} pcs_cool2_2=100.0; +{===>} pcs_cool3_2=100.0; +{===>} pcs_r_2=1000; +{===>} pcs_d_2=10000; + +{+ choice: "NO" "XPCS" +} +{===>} pcs_choice_3="NO"; +{===>} pcs_firstIt_3=0; +{===>} pcs_lastIt_3=2; +{===>} pcs_hot_3=100.0; +{===>} pcs_cool1_3=100.0; +{===>} pcs_cool2_3=100.0; +{===>} pcs_cool3_3=100.0; +{===>} pcs_r_3=1000; +{===>} pcs_d_3=10000; + +{+ choice: "NO" "XPCS" +} +{===>} pcs_choice_4="NO"; +{===>} pcs_firstIt_4=0; +{===>} pcs_lastIt_4=2; +{===>} pcs_hot_4=100.0; +{===>} pcs_cool1_4=100.0; +{===>} pcs_cool2_4=100.0; +{===>} pcs_cool3_4=100.0; +{===>} pcs_r_4=1000; +{===>} pcs_d_4=10000; + +{+ choice: "NO" "XPCS" +} +{===>} pcs_choice_5="NO"; +{===>} pcs_firstIt_5=0; +{===>} pcs_lastIt_5=2; +{===>} pcs_hot_5=100.0; +{===>} pcs_cool1_5=100.0; +{===>} pcs_cool2_5=100.0; +{===>} pcs_cool3_5=100.0; +{===>} pcs_r_5=1000; +{===>} pcs_d_5=10000; + +{+ choice: "NO" "XPCS" +} +{===>} pcs_choice_6="NO"; +{===>} pcs_firstIt_6=0; +{===>} pcs_lastIt_6=2; +{===>} pcs_hot_6=100.0; +{===>} pcs_cool1_6=100.0; +{===>} pcs_cool2_6=100.0; +{===>} pcs_cool3_6=100.0; +{===>} pcs_r_6=1000; +{===>} pcs_d_6=10000; + +{+ choice: "NO" "XPCS" +} +{===>} pcs_choice_7="NO"; +{===>} pcs_firstIt_7=0; +{===>} pcs_lastIt_7=2; +{===>} pcs_hot_7=100.0; +{===>} pcs_cool1_7=100.0; +{===>} pcs_cool2_7=100.0; +{===>} pcs_cool3_7=100.0; +{===>} pcs_r_7=1000; +{===>} pcs_d_7=10000; + +{+ choice: "NO" "XPCS" +} +{===>} pcs_choice_8="NO"; +{===>} pcs_firstIt_8=0; +{===>} pcs_lastIt_8=2; +{===>} pcs_hot_8=100.0; +{===>} pcs_cool1_8=100.0; +{===>} pcs_cool2_8=100.0; +{===>} pcs_cool3_8=100.0; +{===>} pcs_r_8=1000; +{===>} pcs_d_8=10000; + +{+ choice: "NO" "XPCS" +} +{===>} pcs_choice_9="NO"; +{===>} pcs_firstIt_9=0; +{===>} pcs_lastIt_9=2; +{===>} pcs_hot_9=100.0; +{===>} pcs_cool1_9=100.0; +{===>} pcs_cool2_9=100.0; +{===>} pcs_cool3_9=100.0; +{===>} pcs_r_9=1000; +{===>} pcs_d_9=10000; + + +{+ choice: "NO" "XPCS" +} +{===>} pcs_choice_10="NO"; +{===>} pcs_firstIt_10=0; +{===>} pcs_lastIt_10=2; +{===>} pcs_hot_10=100.0; +{===>} pcs_cool1_10=100.0; +{===>} pcs_cool2_10=100.0; +{===>} pcs_cool3_10=100.0; +{===>} pcs_r_10=1000; +{===>} pcs_d_10=10000; + +{=========================== relaxation data ======================} +{* Parameters *} +{+ table: rows=5 "class1" "class2" "class3" "class4" "class5" + cols=12 "type" "firstIt" "lastIt" "Kdani(hot)" "Kdani(cool1)" "Kdani(cool2)" "Kdani(cool3)" "Correlation time" "D" "R" "H frequency" "N frequency" +} + +{* Number of DANI restraint sets *} +{===>} numdani=0; + +{+ choice: "NO" "DANI" +} +{===>} dan_choice_1="DANI"; +{===>} dan_firstIt_1=0; +{===>} dan_lastIt_1=2; +{===>} dan_hot_1=1; +{===>} dan_cool1_1=5; +{===>} dan_cool2_1=10; +{===>} dan_cool3_1=10; +{===>} dan_tc_1=9.771; +{===>} dan_anis_1=1.557; +{===>} dan_r_1=0.455; +{===>} dan_wh_1=599.91; +{===>} dan_wn_1=60.82; + +{+ choice: "NO" "DANI" +} +{===>} dan_choice_2="NO"; +{===>} dan_firstIt_2=0; +{===>} dan_lastIt_2=1; +{===>} dan_hot_2=1; +{===>} dan_cool1_2=5; +{===>} dan_cool2_2=10; +{===>} dan_cool3_2=10; +{===>} dan_tc_2=9.84; +{===>} dan_anis_2=-1.35; +{===>} dan_r_2=0.308; +{===>} dan_wh_2=599.91; +{===>} dan_wn_2=60.82; + +{+ choice: "NO" "DANI" +} +{===>} dan_choice_3="NO"; +{===>} dan_firstIt_3=1; +{===>} dan_lastIt_3=1; +{===>} dan_hot_3=1; +{===>} dan_cool1_3=5; +{===>} dan_cool2_3=10; +{===>} dan_cool3_3=10; +{===>} dan_tc_3=9.84; +{===>} dan_anis_3=-1.35; +{===>} dan_r_3=0.308; +{===>} dan_wh_3=599.91; +{===>} dan_wn_3=60.82; + +{+ choice: "NO" "DANI" +} +{===>} dan_choice_4="NO"; +{===>} dan_firstIt_4=0; +{===>} dan_lastIt_4=2; +{===>} dan_hot_4=1; +{===>} dan_cool1_4=5; +{===>} dan_cool2_4=10; +{===>} dan_cool3_4=10; +{===>} dan_tc_4=9.84; +{===>} dan_anis_4=-1.35; +{===>} dan_r_4=0.308; +{===>} dan_wh_4=599.91; +{===>} dan_wn_4=60.82; + +{+ choice: "NO" "DANI" +} +{===>} dan_choice_5="NO"; +{===>} dan_firstIt_5=0; +{===>} dan_lastIt_5=2; +{===>} dan_hot_5=1; +{===>} dan_cool1_5=5; +{===>} dan_cool2_5=10; +{===>} dan_cool3_5=10; +{===>} dan_tc_5=9.84; +{===>} dan_anis_5=-1.35; +{===>} dan_r_5=0.308; +{===>} dan_wh_5=599.91; +{===>} dan_wn_5=60.82; + + +{========================== Cryo-EM parameters ============================} + +{* Centroid definitions *} +{+ choice: true false +} +{===>} centroid_rest=false; +{===>} centroid_kscale=50.0; + +{* Placement of centroids in absolute coordinates *} +{===>} xcom_1=12.3; +{===>} ycom_1=0.8; +{===>} zcom_1=9.2; + +{===>} xcom_2=12.7; +{===>} ycom_2=-3.4; +{===>} zcom_2=29.7; + +{===>} xcom_3=0.0; +{===>} ycom_3=0.0; +{===>} zcom_3=0.0; + +{===>} xcom_4=0.0; +{===>} ycom_4=0.0; +{===>} zcom_4=0.0; + +{===>} xcom_5=0.0; +{===>} ycom_5=0.0; +{===>} zcom_5=0.0; + +{===>} xcom_6=0.0; +{===>} ycom_6=0.0; +{===>} zcom_6=0.0; + +{===>} xcom_7=0.0; +{===>} ycom_7=0.0; +{===>} zcom_7=0.0; + +{===>} xcom_8=0.0; +{===>} ycom_8=0.0; +{===>} zcom_8=0.0; + +{===>} xcom_9=0.0; +{===>} ycom_9=0.0; +{===>} zcom_9=0.0; + +{===>} xcom_10=0.0; +{===>} ycom_10=0.0; +{===>} zcom_10=0.0; + +{===>} xcom_11=0.0; +{===>} ycom_11=0.0; +{===>} zcom_11=0.0; + +{===>} xcom_12=0.0; +{===>} ycom_12=0.0; +{===>} zcom_12=0.0; + +{===>} xcom_13=0.0; +{===>} ycom_13=0.0; +{===>} zcom_13=0.0; + +{===>} xcom_14=0.0; +{===>} ycom_14=0.0; +{===>} zcom_14=0.0; + +{===>} xcom_15=0.0; +{===>} ycom_15=0.0; +{===>} zcom_15=0.0; + +{===>} xcom_16=0.0; +{===>} ycom_16=0.0; +{===>} zcom_16=0.0; + +{===>} xcom_17=0.0; +{===>} ycom_17=0.0; +{===>} zcom_17=0.0; + +{===>} xcom_18=0.0; +{===>} ycom_18=0.0; +{===>} zcom_18=0.0; + +{===>} xcom_19=0.0; +{===>} ycom_19=0.0; +{===>} zcom_19=0.0; + +{===>} xcom_20=0.0; +{===>} ycom_20=0.0; +{===>} zcom_20=0.0; + +{* Are the centroid retraints ambiguous *} +{+ choice: true false +} +{===>} ambi_1=false; +{+ choice: true false +} +{===>} ambi_2=false; +{+ choice: true false +} +{===>} ambi_3=false; +{+ choice: true false +} +{===>} ambi_4=false; +{+ choice: true false +} +{===>} ambi_5=false; +{+ choice: true false +} +{===>} ambi_6=false; +{+ choice: true false +} +{===>} ambi_7=false; +{+ choice: true false +} +{===>} ambi_8=false; +{+ choice: true false +} +{===>} ambi_9=false; +{+ choice: true false +} +{===>} ambi_10=false; +{+ choice: true false +} +{===>} ambi_11=false; +{+ choice: true false +} +{===>} ambi_12=false; +{+ choice: true false +} +{===>} ambi_13=false; +{+ choice: true false +} +{===>} ambi_14=false; +{+ choice: true false +} +{===>} ambi_15=false; +{+ choice: true false +} +{===>} ambi_16=false; +{+ choice: true false +} +{===>} ambi_17=false; +{+ choice: true false +} +{===>} ambi_18=false; +{+ choice: true false +} +{===>} ambi_19=false; +{+ choice: true false +} +{===>} ambi_20=false; + +{* Density/XREF restraints *} +{+ choice: true false +} +{===>} em_rest=false; +{===>} em_kscale=15000; +{+ choice: true false +} +{===>} em_it0=true; +{+ choice: true false +} +{===>} em_it1=true; +{+ choice: true false +} +{===>} em_itw=true; + +{* Resolution of data in angstrom *} +{===>} em_resolution=10.0; + +{* Density parameters *} +{* Number of voxels in each dimension *} +{===>} nx=32; +{===>} ny=32; +{===>} nz=32; + +{* Length of each dimension in angstrom *} +{===>} xlength=80.0; +{===>} ylength=80.0; +{===>} zlength=80.0; + +{* Cryo-EM scoring weights *} +{===>} w_lcc_0=-400.0; +{===>} w_lcc_1=-10000.0; +{===>} w_lcc_2=-10000.0; + +{===================== topology and parameter files ======================} + +{* topology file for molecule 1 *} +{===>} prot_top_mol1="protein-allhdg5-4.top"; +{* topology file for molecule 2 *} +{===>} prot_top_mol2="protein-allhdg5-4.top"; +{* topology file for molecule 3 *} +{===>} prot_top_mol3="protein-allhdg5-4.top"; +{* topology file for molecule 4 *} +{===>} prot_top_mol4="protein-allhdg5-4.top"; +{* topology file for molecule 5 *} +{===>} prot_top_mol5="protein-allhdg5-4.top"; +{* topology file for molecule 6 *} +{===>} prot_top_mol6="protein-allhdg5-4.top"; +{* topology file for molecule 7 *} +{===>} prot_top_mol7="protein-allhdg5-4.top"; +{* topology file for molecule 8 *} +{===>} prot_top_mol8="protein-allhdg5-4.top"; +{* topology file for molecule 9 *} +{===>} prot_top_mol9="protein-allhdg5-4.top"; +{* topology file for molecule 10 *} +{===>} prot_top_mol10="protein-allhdg5-4.top"; +{* topology file for molecule 11 *} +{===>} prot_top_mol11="protein-allhdg5-4.top"; +{* topology file for molecule 12 *} +{===>} prot_top_mol12="protein-allhdg5-4.top"; +{* topology file for molecule 13 *} +{===>} prot_top_mol13="protein-allhdg5-4.top"; +{* topology file for molecule 14 *} +{===>} prot_top_mol14="protein-allhdg5-4.top"; +{* topology file for molecule 15 *} +{===>} prot_top_mol15="protein-allhdg5-4.top"; +{* topology file for molecule 16 *} +{===>} prot_top_mol16="protein-allhdg5-4.top"; +{* topology file for molecule 17 *} +{===>} prot_top_mol17="protein-allhdg5-4.top"; +{* topology file for molecule 18 *} +{===>} prot_top_mol18="protein-allhdg5-4.top"; +{* topology file for molecule 19 *} +{===>} prot_top_mol19="protein-allhdg5-4.top"; +{* topology file for molecule 20 *} +{===>} prot_top_mol20="protein-allhdg5-4.top"; + +{* linkage file for molecule 1 *} +{===>} prot_link_mol1="protein-allhdg5-4-noter.link"; +{* linkage file for molecule 2 *} +{===>} prot_link_mol2="protein-allhdg5-4-noter.link"; +{* linkage file for molecule 3 *} +{===>} prot_link_mol3="protein-allhdg5-4-noter.link"; +{* linkage file for molecule 4 *} +{===>} prot_link_mol4="protein-allhdg5-4-noter.link"; +{* linkage file for molecule 5 *} +{===>} prot_link_mol5="protein-allhdg5-4-noter.link"; +{* linkage file for molecule 6 *} +{===>} prot_link_mol6="protein-allhdg5-4-noter.link"; +{* linkage file for molecule 7 *} +{===>} prot_link_mol7="protein-allhdg5-4-noter.link"; +{* linkage file for molecule 8 *} +{===>} prot_link_mol8="protein-allhdg5-4-noter.link"; +{* linkage file for molecule 9 *} +{===>} prot_link_mol9="protein-allhdg5-4-noter.link"; +{* linkage file for molecule 10 *} +{===>} prot_link_mol10="protein-allhdg5-4-noter.link"; +{* linkage file for molecule 11 *} +{===>} prot_link_mol11="protein-allhdg5-4-noter.link"; +{* linkage file for molecule 12 *} +{===>} prot_link_mol12="protein-allhdg5-4-noter.link"; +{* linkage file for molecule 13 *} +{===>} prot_link_mol13="protein-allhdg5-4-noter.link"; +{* linkage file for molecule 14 *} +{===>} prot_link_mol14="protein-allhdg5-4-noter.link"; +{* linkage file for molecule 15 *} +{===>} prot_link_mol15="protein-allhdg5-4-noter.link"; +{* linkage file for molecule 16 *} +{===>} prot_link_mol16="protein-allhdg5-4-noter.link"; +{* linkage file for molecule 17 *} +{===>} prot_link_mol17="protein-allhdg5-4-noter.link"; +{* linkage file for molecule 18 *} +{===>} prot_link_mol18="protein-allhdg5-4-noter.link"; +{* linkage file for molecule 19 *} +{===>} prot_link_mol19="protein-allhdg5-4-noter.link"; +{* linkage file for molecule 20 *} +{===>} prot_link_mol20="protein-allhdg5-4-noter.link"; + +{* energy parameter file for molecule 1 *} +{===>} prot_par_mol1="protein-allhdg5-4.param"; +{* energy parameter file for molecule 2 *} +{===>} prot_par_mol2="protein-allhdg5-4.param"; +{* energy parameter file for molecule 3 *} +{===>} prot_par_mol3="protein-allhdg5-4.param"; +{* energy parameter file for molecule 4 *} +{===>} prot_par_mol4="protein-allhdg5-4.param"; +{* energy parameter file for molecule 5 *} +{===>} prot_par_mol5="protein-allhdg5-4.param"; +{* energy parameter file for molecule 6 *} +{===>} prot_par_mol6="protein-allhdg5-4.param"; +{* energy parameter file for molecule 7 *} +{===>} prot_par_mol7="protein-allhdg5-4.param"; +{* energy parameter file for molecule 8 *} +{===>} prot_par_mol8="protein-allhdg5-4.param"; +{* energy parameter file for molecule 9 *} +{===>} prot_par_mol9="protein-allhdg5-4.param"; +{* energy parameter file for molecule 10 *} +{===>} prot_par_mol10="protein-allhdg5-4.param"; +{* energy parameter file for molecule 11 *} +{===>} prot_par_mol11="protein-allhdg5-4.param"; +{* energy parameter file for molecule 12 *} +{===>} prot_par_mol12="protein-allhdg5-4.param"; +{* energy parameter file for molecule 13 *} +{===>} prot_par_mol13="protein-allhdg5-4.param"; +{* energy parameter file for molecule 14 *} +{===>} prot_par_mol14="protein-allhdg5-4.param"; +{* energy parameter file for molecule 15 *} +{===>} prot_par_mol15="protein-allhdg5-4.param"; +{* energy parameter file for molecule 16 *} +{===>} prot_par_mol16="protein-allhdg5-4.param"; +{* energy parameter file for molecule 17 *} +{===>} prot_par_mol17="protein-allhdg5-4.param"; +{* energy parameter file for molecule 18 *} +{===>} prot_par_mol18="protein-allhdg5-4.param"; +{* energy parameter file for molecule 19 *} +{===>} prot_par_mol19="protein-allhdg5-4.param"; +{* energy parameter file for molecule 20 *} +{===>} prot_par_mol20="protein-allhdg5-4.param"; + +{* type of non-bonded parameters *} +{* specify the type of non-bonded interaction *} +{+ choice: "PROLSQ" "PARMALLH6" "PARALLHDG" "OPLSX" +} +{===>} par_nonbonded="OPLSX"; + +{============coarse graining topology and parameter files ==================} + +{* topology file for molecule 1 *} +{===>} prot_cg_top_mol1="protein-CG-Martini-2-2.top"; +{* topology file for molecule 2 *} +{===>} prot_cg_top_mol2="protein-CG-Martini-2-2.top"; +{* topology file for molecule 3 *} +{===>} prot_cg_top_mol3="protein-CG-Martini-2-2.top"; +{* topology file for molecule 4 *} +{===>} prot_cg_top_mol4="protein-CG-Martini-2-2.top"; +{* topology file for molecule 5 *} +{===>} prot_cg_top_mol5="protein-CG-Martini-2-2.top"; +{* topology file for molecule 6 *} +{===>} prot_cg_top_mol6="protein-CG-Martini-2-2.top"; +{* topology file for molecule 7 *} +{===>} prot_cg_top_mol7="protein-CG-Martini-2-2.top"; +{* topology file for molecule 8 *} +{===>} prot_cg_top_mol8="protein-CG-Martini-2-2.top"; +{* topology file for molecule 9 *} +{===>} prot_cg_top_mol9="protein-CG-Martini-2-2.top"; +{* topology file for molecule 10 *} +{===>} prot_cg_top_mol10="protein-CG-Martini-2-2.top"; +{* topology file for molecule 11 *} +{===>} prot_cg_top_mol11="protein-CG-Martini-2-2.top"; +{* topology file for molecule 12 *} +{===>} prot_cg_top_mol12="protein-CG-Martini-2-2.top"; +{* topology file for molecule 13 *} +{===>} prot_cg_top_mol13="protein-CG-Martini-2-2.top"; +{* topology file for molecule 14 *} +{===>} prot_cg_top_mol14="protein-CG-Martini-2-2.top"; +{* topology file for molecule 15 *} +{===>} prot_cg_top_mol15="protein-CG-Martini-2-2.top"; +{* topology file for molecule 16 *} +{===>} prot_cg_top_mol16="protein-CG-Martini-2-2.top"; +{* topology file for molecule 17 *} +{===>} prot_cg_top_mol17="protein-CG-Martini-2-2.top"; +{* topology file for molecule 18 *} +{===>} prot_cg_top_mol18="protein-CG-Martini-2-2.top"; +{* topology file for molecule 19 *} +{===>} prot_cg_top_mol19="protein-CG-Martini-2-2.top"; +{* topology file for molecule 20 *} +{===>} prot_cg_top_mol20="protein-CG-Martini-2-2.top"; + +{* linkage file for molecule 1 *} +{===>} prot_cg_link_mol1="protein-CG-Martini-2-2.link"; +{* linkage file for molecule 2 *} +{===>} prot_cg_link_mol2="protein-CG-Martini-2-2.link"; +{* linkage file for molecule 3 *} +{===>} prot_cg_link_mol3="protein-CG-Martini-2-2.link"; +{* linkage file for molecule 4 *} +{===>} prot_cg_link_mol4="protein-CG-Martini-2-2.link"; +{* linkage file for molecule 5 *} +{===>} prot_cg_link_mol5="protein-CG-Martini-2-2.link"; +{* linkage file for molecule 6 *} +{===>} prot_cg_link_mol6="protein-CG-Martini-2-2.link"; +{* linkage file for molmolecule 7 *} +{===>} prot_cg_link_mol7="protein-CG-Martini-2-2.link"; +{* linkage file for molecule 8 *} +{===>} prot_cg_link_mol8="protein-CG-Martini-2-2.link"; +{* linkage file for molecule 9 *} +{===>} prot_cg_link_mol9="protein-CG-Martini-2-2.link"; +{* linkage file for molecule 10 *} +{===>} prot_cg_link_mol10="protein-CG-Martini-2-2.link"; +{* linkage file for molecule 11 *} +{===>} prot_cg_link_mol11="protein-CG-Martini-2-2.link"; +{* linkage file for molecule 12 *} +{===>} prot_cg_link_mol12="protein-CG-Martini-2-2.link"; +{* linkage file for molecule 13 *} +{===>} prot_cg_link_mol13="protein-CG-Martini-2-2.link"; +{* linkage file for molecule 14 *} +{===>} prot_cg_link_mol14="protein-CG-Martini-2-2.link"; +{* linkage file for molecule 15 *} +{===>} prot_cg_link_mol15="protein-CG-Martini-2-2.link"; +{* linkage file for molecule 16 *} +{===>} prot_cg_link_mol16="protein-CG-Martini-2-2.link"; +{* linkage file for molecule 17 *} +{===>} prot_cg_link_mol17="protein-CG-Martini-2-2.link"; +{* linkage file for molecule 18 *} +{===>} prot_cg_link_mol18="protein-CG-Martini-2-2.link"; +{* linkage file for molecule 19 *} +{===>} prot_cg_link_mol19="protein-CG-Martini-2-2.link"; +{* linkage file for molecule 20 *} +{===>} prot_cg_link_mol20="protein-CG-Martini-2-2.link"; + +{* energy parameter file for molecule 1 *} +{===>} prot_cg_par_mol1="protein-CG-Martini-2-2.param"; +{* energy parameter file for molecule 2 *} +{===>} prot_cg_par_mol2="protein-CG-Martini-2-2.param"; +{* energy parameter file for molecule 3 *} +{===>} prot_cg_par_mol3="protein-CG-Martini-2-2.param"; +{* energy parameter file for molecule 4 *} +{===>} prot_cg_par_mol4="protein-CG-Martini-2-2.param"; +{* energy parameter file for molecule 5 *} +{===>} prot_cg_par_mol5="protein-CG-Martini-2-2.param"; +{* energy parameter file for molecule 6 *} +{===>} prot_cg_par_mol6="protein-CG-Martini-2-2.param"; +{* energy parameter file for molecule 7 *} +{===>} prot_cg_par_mol7="protein-CG-Martini-2-2.param"; +{* energy parameter file for molecule 8 *} +{===>} prot_cg_par_mol8="protein-CG-Martini-2-2.param"; +{* energy parameter file for molecule 9 *} +{===>} prot_cg_par_mol9="protein-CG-Martini-2-2.param"; +{* energy parameter file for molecule 10 *} +{===>} prot_cg_par_mol10="protein-CG-Martini-2-2.param"; +{* energy parameter file for molecule 11 *} +{===>} prot_cg_par_mol11="protein-CG-Martini-2-2.param"; +{* energy parameter file for molecule 12 *} +{===>} prot_cg_par_mol12="protein-CG-Martini-2-2.param"; +{* energy parameter file for molecule 13 *} +{===>} prot_cg_par_mol13="protein-CG-Martini-2-2.param"; +{* energy parameter file for molecule 14 *} +{===>} prot_cg_par_mol14="protein-CG-Martini-2-2.param"; +{* energy parameter file for molecule 15 *} +{===>} prot_cg_par_mol15="protein-CG-Martini-2-2.param"; +{* energy parameter file for molecule 16 *} +{===>} prot_cg_par_mol16="protein-CG-Martini-2-2.param"; +{* energy parameter file for molecule 17 *} +{===>} prot_cg_par_mol17="protein-CG-Martini-2-2.param"; +{* energy parameter file for molecule 18 *} +{===>} prot_cg_par_mol18="protein-CG-Martini-2-2.param"; +{* energy parameter file for molecule 19 *} +{===>} prot_cg_par_mol19="protein-CG-Martini-2-2.param"; +{* energy parameter file for molecule 20 *} +{===>} prot_cg_par_mol20="protein-CG-Martini-2-2.param"; + + +{===================== energy and interaction parameters ==================} + +{ Do you want to include dihedral angle energy terms? } +{ choice: true false } +dihedflag=true; + +{* Do you want to include the electrostatic energy term for docking? *} +{* Note that it will be automatically included in the solvent refinement *} + +{* Include electrostatic during rigid body docking (it0)? *} +{+ choice: true false +} +{===>} elecflag_0=true; + +{* Give the epsilon constant for the electrostatic energy term in it0 *} +{===>} epsilon_0=10.0; + +{* Use constant (cdie) or distance-dependent (rdie) dielectric in it0? *} +{+ choice: cdie rdie +} +{===>} dielec_0=rdie; + +{* Include electrostatic during semi-flexible SA (it1)? *} +{+ choice: true false +} +{===>} elecflag_1=true; + +{* Give the epsilon constant for the electrostatic energy term in it1 *} +{===>} epsilon_1=1.0; + +{* Use constant (cdie) or distance-dependent (rdie) dielectric in it0? *} +{+ choice: cdie rdie +} +{===>} dielec_1=rdie; + +{* Scaling of intermolecular interactions for rigid body EM*} +{===>} inter_rigid=1.0; + +{* Scaling of intermolecular interactions for semi-flexible SA*} +{+ table: rows=3 "Rigid body dynamic " "SA with flexible side-chains (cool2)" "SA with flexible backbone and side-chains (cool3)" + cols=2 "Init value" "Final value" +} +{===>} init_rigid=0.001; +{===>} fin_rigid=0.001; +{===>} init_cool2=0.001; +{===>} fin_cool2=1.0; +{===>} init_cool3=0.05; +{===>} fin_cool3=1.0; + +{* Interaction matrix for non-bonded interactions*} +{+ table: rows=6 "Mol 1" "Mol 2" "Mol 3" "Mol 4" "Mol 5" "Mol 6" "Mol 7" "Mol 8" "Mol 9" Mol 10" "Mol 11" Mol 12" "Mol 13" "Mol 14" "Mol 15" "Mol 16" "Mol 17" "Mol 18" "Mol 19" "Mol 20" + cols=6 "Mol 1" "Mol 2" "Mol 3" "Mol 4" "Mol 5" "Mol 6" "Mol 7" "Mol 8" "Mol 9" Mol 10" "Mol 11" Mol 12" "Mol 13" "Mol 14" "Mol 15" "Mol 16" "Mol 17" "Mol 18" "Mol 19" "Mol 20" +} +{===>} int_1_1=1.0; +{===>} int_1_2=1.0; +{===>} int_1_3=1.0; +{===>} int_1_4=1.0; +{===>} int_1_5=1.0; +{===>} int_1_6=1.0; +{===>} int_1_7=1.0; +{===>} int_1_8=1.0; +{===>} int_1_9=1.0; +{===>} int_1_10=1.0; +{===>} int_1_11=1.0; +{===>} int_1_12=1.0; +{===>} int_1_13=1.0; +{===>} int_1_14=1.0; +{===>} int_1_15=1.0; +{===>} int_1_16=1.0; +{===>} int_1_17=1.0; +{===>} int_1_18=1.0; +{===>} int_1_19=1.0; +{===>} int_1_20=1.0; +{===>} int_2_1="N.A."; +{===>} int_2_2=1.0; +{===>} int_2_3=1.0; +{===>} int_2_4=1.0; +{===>} int_2_5=1.0; +{===>} int_2_6=1.0; +{===>} int_2_7=1.0; +{===>} int_2_8=1.0; +{===>} int_2_9=1.0; +{===>} int_2_10=1.0; +{===>} int_2_11=1.0; +{===>} int_2_12=1.0; +{===>} int_2_13=1.0; +{===>} int_2_14=1.0; +{===>} int_2_15=1.0; +{===>} int_2_16=1.0; +{===>} int_2_17=1.0; +{===>} int_2_18=1.0; +{===>} int_2_19=1.0; +{===>} int_2_20=1.0; +{===>} int_3_1="N.A."; +{===>} int_3_2="N.A."; +{===>} int_3_3=1.0; +{===>} int_3_4=1.0; +{===>} int_3_5=1.0; +{===>} int_3_6=1.0; +{===>} int_3_7=1.0; +{===>} int_3_8=1.0; +{===>} int_3_9=1.0; +{===>} int_3_10=1.0; +{===>} int_3_11=1.0; +{===>} int_3_12=1.0; +{===>} int_3_13=1.0; +{===>} int_3_14=1.0; +{===>} int_3_15=1.0; +{===>} int_3_16=1.0; +{===>} int_3_17=1.0; +{===>} int_3_18=1.0; +{===>} int_3_19=1.0; +{===>} int_3_20=1.0; +{===>} int_4_1="N.A."; +{===>} int_4_2="N.A."; +{===>} int_4_3="N.A."; +{===>} int_4_4=1.0; +{===>} int_4_5=1.0; +{===>} int_4_6=1.0; +{===>} int_4_7=1.0; +{===>} int_4_8=1.0; +{===>} int_4_9=1.0; +{===>} int_4_10=1.0; +{===>} int_4_11=1.0; +{===>} int_4_12=1.0; +{===>} int_4_13=1.0; +{===>} int_4_14=1.0; +{===>} int_4_15=1.0; +{===>} int_4_16=1.0; +{===>} int_4_17=1.0; +{===>} int_4_18=1.0; +{===>} int_4_19=1.0; +{===>} int_4_20=1.0; +{===>} int_5_1="N.A."; +{===>} int_5_2="N.A."; +{===>} int_5_3="N.A."; +{===>} int_5_4="N.A."; +{===>} int_5_5=1.0; +{===>} int_5_6=1.0; +{===>} int_5_7=1.0; +{===>} int_5_8=1.0; +{===>} int_5_9=1.0; +{===>} int_5_10=1.0; +{===>} int_5_11=1.0; +{===>} int_5_12=1.0; +{===>} int_5_13=1.0; +{===>} int_5_14=1.0; +{===>} int_5_15=1.0; +{===>} int_5_16=1.0; +{===>} int_5_17=1.0; +{===>} int_5_18=1.0; +{===>} int_5_19=1.0; +{===>} int_5_20=1.0; +{===>} int_6_1="N.A."; +{===>} int_6_2="N.A."; +{===>} int_6_3="N.A."; +{===>} int_6_4="N.A."; +{===>} int_6_5="N.A."; +{===>} int_6_6=1.0; +{===>} int_6_7=1.0; +{===>} int_6_8=1.0; +{===>} int_6_9=1.0; +{===>} int_6_10=1.0; +{===>} int_6_11=1.0; +{===>} int_6_12=1.0; +{===>} int_6_13=1.0; +{===>} int_6_14=1.0; +{===>} int_6_15=1.0; +{===>} int_6_16=1.0; +{===>} int_6_17=1.0; +{===>} int_6_18=1.0; +{===>} int_6_19=1.0; +{===>} int_6_20=1.0; +{===>} int_7_1="N.A."; +{===>} int_7_2="N.A."; +{===>} int_7_3="N.A."; +{===>} int_7_4="N.A."; +{===>} int_7_5="N.A."; +{===>} int_7_6="N.A."; +{===>} int_7_7=1.0; +{===>} int_7_8=1.0; +{===>} int_7_9=1.0; +{===>} int_7_10=1.0; +{===>} int_7_11=1.0; +{===>} int_7_12=1.0; +{===>} int_7_13=1.0; +{===>} int_7_14=1.0; +{===>} int_7_15=1.0; +{===>} int_7_16=1.0; +{===>} int_7_17=1.0; +{===>} int_7_18=1.0; +{===>} int_7_19=1.0; +{===>} int_7_20=1.0; +{===>} int_8_1="N.A."; +{===>} int_8_2="N.A."; +{===>} int_8_3="N.A."; +{===>} int_8_4="N.A."; +{===>} int_8_5="N.A."; +{===>} int_8_6="N.A."; +{===>} int_8_7="N.A."; +{===>} int_8_8=1.0; +{===>} int_8_9=1.0; +{===>} int_8_10=1.0; +{===>} int_8_11=1.0; +{===>} int_8_12=1.0; +{===>} int_8_13=1.0; +{===>} int_8_14=1.0; +{===>} int_8_15=1.0; +{===>} int_8_16=1.0; +{===>} int_8_17=1.0; +{===>} int_8_18=1.0; +{===>} int_8_19=1.0; +{===>} int_8_20=1.0; +{===>} int_9_1="N.A."; +{===>} int_9_2="N.A."; +{===>} int_9_3="N.A."; +{===>} int_9_4="N.A."; +{===>} int_9_5="N.A."; +{===>} int_9_6="N.A."; +{===>} int_9_7="N.A."; +{===>} int_9_8="N.A."; +{===>} int_9_9=1.0; +{===>} int_9_10=1.0; +{===>} int_9_11=1.0; +{===>} int_9_12=1.0; +{===>} int_9_13=1.0; +{===>} int_9_14=1.0; +{===>} int_9_15=1.0; +{===>} int_9_16=1.0; +{===>} int_9_17=1.0; +{===>} int_9_18=1.0; +{===>} int_9_19=1.0; +{===>} int_9_20=1.0; +{===>} int_10_1="N.A."; +{===>} int_10_2="N.A."; +{===>} int_10_3="N.A."; +{===>} int_10_4="N.A."; +{===>} int_10_5="N.A."; +{===>} int_10_6="N.A."; +{===>} int_10_7="N.A."; +{===>} int_10_8="N.A."; +{===>} int_10_9="N.A."; +{===>} int_10_10=1.0; +{===>} int_10_11=1.0; +{===>} int_10_12=1.0; +{===>} int_10_13=1.0; +{===>} int_10_14=1.0; +{===>} int_10_15=1.0; +{===>} int_10_16=1.0; +{===>} int_10_17=1.0; +{===>} int_10_18=1.0; +{===>} int_10_19=1.0; +{===>} int_10_20=1.0; +{===>} int_11_1="N.A."; +{===>} int_11_2="N.A."; +{===>} int_11_3="N.A."; +{===>} int_11_4="N.A."; +{===>} int_11_5="N.A."; +{===>} int_11_6="N.A."; +{===>} int_11_7="N.A."; +{===>} int_11_8="N.A."; +{===>} int_11_9="N.A."; +{===>} int_11_10="N.A."; +{===>} int_11_11=1.0; +{===>} int_11_12=1.0; +{===>} int_11_13=1.0; +{===>} int_11_14=1.0; +{===>} int_11_15=1.0; +{===>} int_11_16=1.0; +{===>} int_11_17=1.0; +{===>} int_11_18=1.0; +{===>} int_11_19=1.0; +{===>} int_11_20=1.0; +{===>} int_12_1="N.A."; +{===>} int_12_2="N.A."; +{===>} int_12_3="N.A."; +{===>} int_12_4="N.A."; +{===>} int_12_5="N.A."; +{===>} int_12_6="N.A."; +{===>} int_12_7="N.A."; +{===>} int_12_8="N.A."; +{===>} int_12_9="N.A."; +{===>} int_12_10="N.A."; +{===>} int_12_11="N.A."; +{===>} int_12_12=1.0; +{===>} int_12_13=1.0; +{===>} int_12_14=1.0; +{===>} int_12_15=1.0; +{===>} int_12_16=1.0; +{===>} int_12_17=1.0; +{===>} int_12_18=1.0; +{===>} int_12_19=1.0; +{===>} int_12_20=1.0; +{===>} int_13_1="N.A."; +{===>} int_13_2="N.A."; +{===>} int_13_3="N.A."; +{===>} int_13_4="N.A."; +{===>} int_13_5="N.A."; +{===>} int_13_6="N.A."; +{===>} int_13_7="N.A."; +{===>} int_13_8="N.A."; +{===>} int_13_9="N.A."; +{===>} int_13_10="N.A."; +{===>} int_13_11="N.A."; +{===>} int_13_12="N.A."; +{===>} int_13_13=1.0; +{===>} int_13_14=1.0; +{===>} int_13_15=1.0; +{===>} int_13_16=1.0; +{===>} int_13_17=1.0; +{===>} int_13_18=1.0; +{===>} int_13_19=1.0; +{===>} int_13_20=1.0; +{===>} int_14_1="N.A."; +{===>} int_14_2="N.A."; +{===>} int_14_3="N.A."; +{===>} int_14_4="N.A."; +{===>} int_14_5="N.A."; +{===>} int_14_6="N.A."; +{===>} int_14_7="N.A."; +{===>} int_14_8="N.A."; +{===>} int_14_9="N.A."; +{===>} int_14_10="N.A."; +{===>} int_14_11="N.A."; +{===>} int_14_12="N.A."; +{===>} int_14_13="N.A."; +{===>} int_14_14=1.0; +{===>} int_14_15=1.0; +{===>} int_14_16=1.0; +{===>} int_14_17=1.0; +{===>} int_14_18=1.0; +{===>} int_14_19=1.0; +{===>} int_14_20=1.0; +{===>} int_15_2="N.A."; +{===>} int_15_3="N.A."; +{===>} int_15_4="N.A."; +{===>} int_15_5="N.A."; +{===>} int_15_6="N.A."; +{===>} int_15_7="N.A."; +{===>} int_15_8="N.A."; +{===>} int_15_9="N.A."; +{===>} int_15_10="N.A."; +{===>} int_15_11="N.A."; +{===>} int_15_12="N.A."; +{===>} int_15_13="N.A."; +{===>} int_15_14="N.A."; +{===>} int_15_15=1.0; +{===>} int_15_16=1.0; +{===>} int_15_17=1.0; +{===>} int_15_18=1.0; +{===>} int_15_19=1.0; +{===>} int_15_20=1.0; +{===>} int_16_1="N.A."; +{===>} int_16_2="N.A."; +{===>} int_16_3="N.A."; +{===>} int_16_4="N.A."; +{===>} int_16_5="N.A."; +{===>} int_16_6="N.A."; +{===>} int_16_7="N.A."; +{===>} int_16_8="N.A."; +{===>} int_16_9="N.A."; +{===>} int_16_10="N.A."; +{===>} int_16_11="N.A."; +{===>} int_16_12="N.A."; +{===>} int_16_13="N.A."; +{===>} int_16_14="N.A."; +{===>} int_16_15="N.A."; +{===>} int_16_16=1.0; +{===>} int_16_17=1.0; +{===>} int_16_18=1.0; +{===>} int_16_19=1.0; +{===>} int_16_20=1.0; +{===>} int_17_1="N.A."; +{===>} int_17_2="N.A."; +{===>} int_17_3="N.A."; +{===>} int_17_4="N.A."; +{===>} int_17_5="N.A."; +{===>} int_17_6="N.A."; +{===>} int_17_7="N.A."; +{===>} int_17_8="N.A."; +{===>} int_17_9="N.A."; +{===>} int_17_10="N.A."; +{===>} int_17_11="N.A."; +{===>} int_17_12="N.A."; +{===>} int_17_13="N.A."; +{===>} int_17_14="N.A."; +{===>} int_17_15="N.A."; +{===>} int_17_16="N.A."; +{===>} int_17_17=1.0; +{===>} int_17_18=1.0; +{===>} int_17_19=1.0; +{===>} int_17_20=1.0; +{===>} int_18_1="N.A."; +{===>} int_18_2="N.A."; +{===>} int_18_3="N.A."; +{===>} int_18_4="N.A."; +{===>} int_18_5="N.A."; +{===>} int_18_6="N.A."; +{===>} int_18_7="N.A."; +{===>} int_18_8="N.A."; +{===>} int_18_9="N.A."; +{===>} int_18_10="N.A."; +{===>} int_18_11="N.A."; +{===>} int_18_12="N.A."; +{===>} int_18_13="N.A."; +{===>} int_18_14="N.A."; +{===>} int_18_15="N.A."; +{===>} int_18_16="N.A."; +{===>} int_18_17="N.A."; +{===>} int_18_18=1.0; +{===>} int_18_19=1.0; +{===>} int_18_20=1.0; +{===>} int_19_1="N.A."; +{===>} int_19_2="N.A."; +{===>} int_19_3="N.A."; +{===>} int_19_4="N.A."; +{===>} int_19_5="N.A."; +{===>} int_19_6="N.A."; +{===>} int_19_7="N.A."; +{===>} int_19_8="N.A."; +{===>} int_19_9="N.A."; +{===>} int_19_10="N.A."; +{===>} int_19_11="N.A."; +{===>} int_19_12="N.A."; +{===>} int_19_13="N.A."; +{===>} int_19_14="N.A."; +{===>} int_19_15="N.A."; +{===>} int_19_16="N.A."; +{===>} int_19_17="N.A."; +{===>} int_19_18="N.A."; +{===>} int_19_19=1.0; +{===>} int_19_20=1.0; +{===>} int_20_1="N.A."; +{===>} int_20_2="N.A."; +{===>} int_20_3="N.A."; +{===>} int_20_4="N.A."; +{===>} int_20_5="N.A."; +{===>} int_20_6="N.A."; +{===>} int_20_7="N.A."; +{===>} int_20_8="N.A."; +{===>} int_20_9="N.A."; +{===>} int_20_10="N.A."; +{===>} int_20_11="N.A."; +{===>} int_20_12="N.A."; +{===>} int_20_13="N.A."; +{===>} int_20_14="N.A."; +{===>} int_20_15="N.A."; +{===>} int_20_16="N.A."; +{===>} int_20_17="N.A."; +{===>} int_20_18="N.A."; +{===>} int_20_19="N.A."; +{===>} int_20_20=1.0; + +{===================== Number of structures to dock =======================} +{* Setting for the rigid-body (it0) and semi-flexible refiment (it1) *} + +{* number of structures for rigid body docking *} +{===>} structures_0=1000; + keepstruct_0=&structures_0; +{* number of structures for refinement *} +{===>} structures_1=200; + keepstruct_1=&structures_1; + keepstruct_2=&structures_1; +{* number of structures to be analysed*} +{===>} anastruc_1=200; + anastruc_0=&anastruc_1; + anastruc_2=&anastruc_1; + +{* Sampling of symmetry related solutions *} + +{* Sample 180 degrees rotated solutions during rigid body EM? *} +{+ choice: true false +} +{===>} rotate180_it0=true; + +{* Sample 180 degrees rotated solutions during semi-flexible SA?*} +{+ choice: true false +} +{===>} rotate180_it1=false; + + +{=========================== DOCKING protocol =============================} +{* Cross-dock all combinations in the ensembles of starting structures? *} +{* Turn off this option if you only want to dock structure 1 of ensemble A *} +{* to structure 1 of ensemble B, structure 2 to structure 2, etc. *} +{+ choice: true false +} +{===>} crossdock=true; + +{* Randomize starting orientations? *} +{+ choice: true false +} +{===>} randorien=true; + +{* Expand starting orientations? *} +{+ choice: true false +} +{===>} expand=false; + +{* Expansion percentage *} +{===>} expansion=0.4; + +{* Random rotation angle *} +{===>} randangle=6; + +{* Rebuild missing atoms in the context of the complex? (refinement mode) *} +{+ choice: true false +} +{===>} rebuildcplx=false; + +{* Perform initial rigid body minimisation? *} +{+ choice: true false +} +{===>} rigidmini=true; + +{* Allow translation in rigid body minimisation? *} +{+ choice: true false +} +{===>} rigidtrans=true; + +{* Number of trials for rigid body minimisation? *} +{===>} ntrials=5; + +{* initial seed for random number generator *} +{* change to get different initial velocities *} +{===>} iniseed=917; + +{* temperature for rigid body high temperature TAD *} +{===>} tadhigh_t=2000; + +{* initial temperature for rigid body first TAD cooling step *} +{===>} tadinit1_t=2000; + +{* final temperature after first cooling step *} +{===>} tadfinal1_t=500; + +{* initial temperature for second TAD cooling step with flexible side-chain at the inferface *} +{===>} tadinit2_t=1000; + +{* finale temperature after second cooling step *} +{===>} tadfinal2_t=50; + +{* initial temperature for third TAD cooling step with fully flexible interface *} +{===>} tadinit3_t=1000; + +{* finale temperature after third cooling step *} +{===>} tadfinal3_t=50; + +{* time step *} +{===>} timestep=0.002; +{* factor for timestep in TAD *} +{===>} tadfactor=8; + +{* Number of EM steps for translational minimisation? *} +{===>} emstepstrans=1000; + +{* number of MD steps for rigid body high temperature TAD *} +{===>} initiosteps=500; + +{* number of MD steps during first rigid body cooling stage *} +{===>} cool1_steps=500; + +{* number of MD steps during second cooling stage with flexible side-chains at interface *} +{===>} cool2_steps=1000; + +{* number of MD steps during third cooling stage with fully flexible interface *} +{===>} cool3_steps=1000; + + +{======================= Solvated rigid body docking=======================} +{* perform solvated docking ? *} +{+ choice: true false +} +{===>} waterdock=false; + +{* which method to use for solvating? *} +{* db: database-based (recommended), restraints: for restrained solvating to amino-acid most often forming +water mediated contacts and blank (""): for uniform waterlayer *} +{+ choice: "db" "restraints" "" +} +{===>} solvate_method="db"; + +{* which propensity database to use? *} +{* statistical: based on an analysis of water-mediated contacts in the PDB, kyte-doolittle: based on the Kyte-Doolittle hydrophobicity scalte *} +{+ choice: "statistical" "kytedoolittle" +} +{===>} db_method="kytedoolittle"; + +{* initial cutoff for restraints solvating method *} +{* all waters further away from a highly occuring water solvated residue will be removed in the generation +of the initial solvation shell *} +{===>} water_restraint_initial=5.0; + +{* cutoff for restraints solvating method *} +{* upper distance limit for defining distance restraints between water and amino-acids often found to be +involved in water-mediated contacts *} +{===>} water_restraint_cutoff=5.0; + +{* force constant for restrainted solvating method *} +{===>} water_restraint_scale=25.0; + +{* fraction of water to keep *} +{* this is the fraction of all interface water after the initial rigid body docking that will be kept +(note that more waters might be removed if the interaction energy is unfavorable *} +{===>} water_tokeep=0.50; + +{* fraction of water around DNA to keep *} +{* this is the fraction of interface water involving DNA phoshpates after the initial rigid body docking that will be kept +(note that more waters might be removed if the interaction energy is unfavorable *} +{===>} dnap_water_tokeep=0.75; + +{* random fraction to be added to the fraction of water to keep *} +{===>} water_randfrac=0.0; + +{* water-protein surface-cutoff *} +{* waters further away than this cutoff distance from any component of the complex will be removed *} +{===>} water_surfcutoff=8.0; + +{* do some water analysis *} +{+ choice: true false +} +{===>} water_analysis=false; + +{* allows translation of water molecules during rigid-body docking, true or false: *} +{+ choice: true false +} +{===>} transwater=true; + +{* number of different initial solvation shells to generate *} +{===>} waterensemble=1; + + +{==================== final explicit solvent refinement ==================} +{* Do you want to refine your docking models in explicit solvent? *} +{+ choice: "yes" "no" +} +{===>} firstwater="yes"; + +{* Build explicit solvent shell? (Can be turned off the large molecules or when morphing CG to AA models) *} +{* Only EM will then be performed *} +{+ choice: true false +} +{===>} solvshell=false; + +{* Which solvent do you want to use? *} +{+ choice: "water" "dmso" +} +{===>} solvent="water"; + +{* number of structures for the explicit solvent refinement *} +{* the n best structures will be refined *} +{===>} waterrefine=200; + structures_2=&waterrefine; + +{* number of steps for heating phase (100, 200, 300K)? *} +{===>} waterheatsteps=100; + +{* number of steps for 300K sampling phase? *} +{===>} watersteps=1250; + +{* number of steps for cooling phase (300, 200, 100K)? *} +{===>} watercoolsteps=500; + +{* write additional PDB files including solvent ? *} +{+ choice: true false +} +{===>} keepwater=false; + + +{================================ Scoring =================================} +{* Settings for the scoring of the docking solutions *} + +{* Define the weights for the various terms for the sorting of structures (scoring) *} +{+ table: rows=15 "Evdw" "Eelec" "Eair" "Erg" "Esani" "Exrdc" "Expcs" "Edani" "Evean" "Ecdih" "Esym" "Ezres" "BSA" "dEint" "Edesolv" + cols=3 "Rigid body EM" "semi-flexible SA" "Water refinement" +} +{===>} w_vdw_0=0.01; +{===>} w_vdw_1=1.0; +{===>} w_vdw_2=1.0; + +{===>} w_elec_0=1.0; +{===>} w_elec_1=1.0; +{===>} w_elec_2=0.2; + +{===>} w_dist_0=0.01; +{===>} w_dist_1=0.1; +{===>} w_dist_2=0.1; + +{===>} w_rg_0=0.1; +{===>} w_rg_1=1.0; +{===>} w_rg_2=1.0; + +{===>} w_sani_0=0.1; +{===>} w_sani_1=0.1; +{===>} w_sani_2=0.1; + +{===>} w_xrdc_0=0.1; +{===>} w_xrdc_1=0.1; +{===>} w_xrdc_2=0.1; + +{===>} w_xpcs_0=0.1; +{===>} w_xpcs_1=0.1; +{===>} w_xpcs_2=0.1; + +{===>} w_dani_0=0.01; +{===>} w_dani_1=0.1; +{===>} w_dani_2=0.1; + +{===>} w_vean_0=0.1; +{===>} w_vean_1=0.1; +{===>} w_vean_2=0.1; + +{===>} w_cdih_0=0.0; +{===>} w_cdih_1=0.0; +{===>} w_cdih_2=0.0; + +{===>} w_sym_0=0.1; +{===>} w_sym_1=0.1; +{===>} w_sym_2=0.1; + +{===>} w_zres_0=0.1; +{===>} w_zres_1=0.1; +{===>} w_zres_2=0.1; + +{===>} w_bsa_0=-0.01; +{===>} w_bsa_1=-0.01; +{===>} w_bsa_2=0.0; + +{===>} w_deint_0=0.0; +{===>} w_deint_1=0.0; +{===>} w_deint_2=0.0; + +{===>} w_desolv_0=1.0; +{===>} w_desolv_1=1.0; +{===>} w_desolv_2=1.0; + +{* It is possible to skip structures in the selection of structure in it0 *} +{* Give for this the number of structures to skip: *} +{===>} skip_struc=0; + + +{======================= analysis and clustering ==========================} +{* Full or limited analysis of results? *} +{+ choice: "full" "cluster" "none" +} +{===>} runana="cluster"; + +{* Cutoff distance (proton-acceptor) to define an hydrogen bond? *} +{===>} dist_hb=2.5; + +{* Cutoff distance (carbon-carbon) to define an hydrophobic contact? *} +{===>} dist_nb=3.9; + +{* Clustering method (RMSD or Fraction of Common Contacts (FCC)) *} +{+ choice: "RMSD" "FCC" +} +{===>} clust_meth="FCC"; + +{* RMSD cutoff for clustering? (Recommended values: RMSD 7.5, FCC 0.60) *} +{===>} clust_cutoff=0.60; + +{* Minimum cluster size? *} +{===>} clust_size=4; + +{* Chain-Agnostic Algorithm (used for FCC clustering in symmetrical complexes) *} +{+ choice: "true" "false" +} +{===>} fcc_ignc=false; + +{======================= final clean-up ===================================} +{* Clean up the run directory after completion (only files for struct #1 are kept) ? *} +{+ choice: true false +} +{===>} cleanup=true; + + +{============================ parallel jobs ===============================} +{* How many nodes do you want to use in parallel? *} +{* leave unused fields blank, make sure that the queues are actually running *} +{+ table: rows=10 "1" "2" "3" "4" "5" "6" "7" "8" "9" "10" + cols=3 "queue command" "cns executable" "number of jobs" +} + +{===>} queue_1="ssub short"; +{===>} cns_exe_1="/home/software/science/cns/cns_solve_1.31-UU/intel-x86_64bit-linux/bin/cns"; +{===>} cpunumber_1=50; + +{===>} queue_2=""; +{===>} cns_exe_2=""; +{===>} cpunumber_2=0; + +{===>} queue_3=""; +{===>} cns_exe_3=""; +{===>} cpunumber_3=0; + +{===>} queue_4=""; +{===>} cns_exe_4=""; +{===>} cpunumber_4=0; + +{===>} queue_5=""; +{===>} cns_exe_5=""; +{===>} cpunumber_5=0; + +{===>} queue_6=""; +{===>} cns_exe_6=""; +{===>} cpunumber_6=0; + +{===>} queue_7=""; +{===>} cns_exe_7=""; +{===>} cpunumber_7=0; + +{===>} queue_8=""; +{===>} cns_exe_8=""; +{===>} cpunumber_8=0; + +{===>} queue_9=""; +{===>} cns_exe_9=""; +{===>} cpunumber_9=0; + +{===>} queue_10=""; +{===>} cns_exe_10=""; +{===>} cpunumber_10=0; + +{===========================================================================} +{ things below this line do not normally need to be changed } +{===========================================================================} + +) {- end block parameter definition -} + +!for global parameters (local variables (suffix ) => global variables): +evaluate (&saprotocol.crossdock=&crossdock) +evaluate (&saprotocol.randorien=&randorien) +evaluate (&saprotocol.rebuildcplx=&rebuildcplx) +evaluate (&saprotocol.rigidmini=&rigidmini) +evaluate (&saprotocol.rigidtrans=&rigidtrans) +evaluate (&saprotocol.expand=&expand) +evaluate (&saprotocol.expansion=&expansion) +evaluate (&saprotocol.randangle=&randangle) + +if (&saprotocol.expand eq true) then + evaluate (&saprotocol.randorien=false) + evaluate (&saprotocol.rigidmini=false) +end if + +evaluate (&saprotocol.ntrials=&ntrials) +evaluate (&saprotocol.iniseed=&iniseed) +evaluate (&saprotocol.tadhigh_t=&tadhigh_t) +evaluate (&saprotocol.t1_init=&tadinit1_t) +evaluate (&saprotocol.t2_init=&tadinit2_t) +evaluate (&saprotocol.t3_init=&tadinit3_t) +evaluate (&saprotocol.t1_final=&tadfinal1_t) +evaluate (&saprotocol.t2_final=&tadfinal2_t) +evaluate (&saprotocol.t3_final=&tadfinal3_t) +evaluate (&saprotocol.inter_rigid=&inter_rigid) +evaluate (&saprotocol.inter_init_rigid=&init_rigid) +evaluate (&saprotocol.inter_fin_rigid=&fin_rigid) +evaluate (&saprotocol.inter_init_cool2=&init_cool2) +evaluate (&saprotocol.inter_fin_cool2=&fin_cool2) +evaluate (&saprotocol.inter_init_cool3=&init_cool3) +evaluate (&saprotocol.inter_fin_cool3=&fin_cool3) +evaluate (&saprotocol.rotate180_it0=&rotate180_it0) +evaluate (&saprotocol.rotate180_it1=&rotate180_it1) +evaluate (&saprotocol.tempstep=50) +evaluate (&saprotocol.timestep=×tep) +evaluate (&saprotocol.tadfactor=&tadfactor) +evaluate (&saprotocol.emstepstrans=&emstepstrans) +evaluate (&saprotocol.initiosteps=&initiosteps) +evaluate (&saprotocol.cool1_steps=&cool1_steps) +evaluate (&saprotocol.cool2_steps=&cool2_steps) +evaluate (&saprotocol.cool3_steps=&cool3_steps) +evaluate (&saprotocol.fbeta=100) +evaluate (&saprotocol.mass=100) + +evaluate (&filenames.fileroot=&fileroot) +evaluate (&filenames.template=&fileroot + "_1.pdb") + +evaluate (&iterations.ini_count =1) +evaluate (&iterations.structures =&structures_$iteration) +evaluate (&iterations.keepstruct =&keepstruct_$iteration) +evaluate (&iterations.w_vdw =&w_vdw_$iteration) +evaluate (&iterations.w_elec =&w_elec_$iteration) +evaluate (&iterations.w_dist =&w_dist_$iteration) +evaluate (&iterations.w_rg =&w_rg_$iteration) +evaluate (&iterations.w_sani =&w_sani_$iteration) +evaluate (&iterations.w_xrdc =&w_xrdc_$iteration) +evaluate (&iterations.w_xpcs =&w_xpcs_$iteration) +evaluate (&iterations.w_dani =&w_dani_$iteration) +evaluate (&iterations.w_vean =&w_vean_$iteration) +evaluate (&iterations.w_cdih =&w_cdih_$iteration) +evaluate (&iterations.w_sym =&w_sym_$iteration) +evaluate (&iterations.w_zres =&w_zres_$iteration) +evaluate (&iterations.w_bsa =&w_bsa_$iteration) +evaluate (&iterations.w_deint =&w_deint_$iteration) +evaluate (&iterations.w_desolv =&w_desolv_$iteration) +evaluate (&iterations.anastruc =&anastruc_$iteration) +evaluate (&iterations.w_lcc = &w_lcc_$iteration) + + +evaluate ($Data.ncomponents=&ncomponents) + +evaluate ($nmol=1) +while ($nmol <= $Data.ncomponents) loop mol + + !aa topology, linkage and parameters files + evaluate (&toppar.prot_top_$nmol=&prot_top_mol$nmol ) + evaluate (&toppar.prot_link_$nmol=&prot_link_mol$nmol ) + evaluate (&toppar.prot_par_$nmol=&prot_par_mol$nmol ) + + !coarse grained topology, linkage and parameters files + evaluate (&toppar.prot_cg_top_$nmol=&prot_cg_top_mol$nmol ) + evaluate (&toppar.prot_cg_link_$nmol=&prot_cg_link_mol$nmol ) + evaluate (&toppar.prot_cg_par_$nmol=&prot_cg_par_mol$nmol ) + + !molecule related (coordinate files, rootname, fix, type, coarse grained, segid) + evaluate (&toppar.prot_coor_$nmol=&prot_coor_mol$nmol) + evaluate (&toppar.prot_root_$nmol=&prot_root_mol$nmol) + evaluate (&toppar.fix_origin_$nmol=&fix_origin_mol$nmol) + evaluate (&toppar.dna_$nmol=&dna_mol$nmol) + evaluate (&toppar.cyclicpept_$nmol=&cyclicpept_mol$nmol) + evaluate (&toppar.shape_$nmol=&shape_mol$nmol) + evaluate (&toppar.cg_$nmol=&cg_mol$nmol) + evaluate (&toppar.prot_segid_$nmol=&prot_segid_mol$nmol) + + !semi flexible segments + evaluate (&toppar.nseg_$nmol=&nseg_$nmol) + evaluate ($nseg = 1) + while ($nseg <= &toppar.nseg_$nmol) loop seg + evaluate (&toppar.start_seg_$nmol_$nseg=&start_seg_$nmol_$nseg) + evaluate (&toppar.end_seg_$nmol_$nseg=&end_seg_$nmol_$nseg) + evaluate ($nseg = $nseg + 1) + end loop seg + + !fully flexible segments + evaluate (&toppar.nfle_$nmol=&nfle_$nmol) + evaluate ($nfle = 1) + while ($nfle <= &toppar.nfle_$nmol) loop fle + evaluate (&toppar.start_fle_$nmol_$nfle=&start_fle_$nmol_$nfle) + evaluate (&toppar.end_fle_$nmol_$nfle=&end_fle_$nmol_$nfle) + evaluate ($nfle = $nfle + 1) + end loop fle + + !histidine patches + evaluate (&toppar.autohis=&autohis) + evaluate (&toppar.nhisd_$nmol=&numhisd_$nmol) + evaluate ($ncc=1) + while ($ncc <= &toppar.nhisd_$nmol) loop hisd + evaluate (&toppar.hisd_resid_$nmol_$ncc=&hisd_$nmol_$ncc) + evaluate ($ncc = $ncc + 1) + end loop hisd + + evaluate (&toppar.nhise_$nmol=&numhise_$nmol) + evaluate ($ncc=1) + while ($ncc <= &toppar.nhise_$nmol) loop hisd + evaluate (&toppar.hise_resid_$nmol_$ncc=&hise_$nmol_$ncc) + evaluate ($ncc = $ncc + 1) + end loop hisd + + evaluate ($nmol = $nmol + 1) + +end loop mol + +! non-bonded parameter set to use +evaluate (&toppar.par_nonbonded=&par_nonbonded) + +! z-restraining +evaluate ($Data.flags.zres = &zres_on) +evaluate ($Data.numzres=&numzres) +evaluate ($ncc=1) +while ($ncc <= &numzres) loop zres + evaluate (&toppar.zres_sta_$ncc=&zres_sta_$ncc) + evaluate (&toppar.zres_end_$ncc=&zres_end_$ncc) + evaluate (&toppar.zres_seg_$ncc=&zres_seg_$ncc) + evaluate (&toppar.zres_type_$ncc=&zres_type_$ncc) + evaluate ($ncc = $ncc + 1) +end loop zres + +! NCS restraints +evaluate ($Data.kncs=&kncs) +evaluate ($Data.flags.ncs = &ncs_on) +evaluate ($Data.numncs=&numncs) +evaluate ($ncc=1) +while ($ncc <= &numncs) loop ncs + evaluate (&toppar.ncs_sta1_$ncc=&ncs_sta1_$ncc) + evaluate (&toppar.ncs_end1_$ncc=&ncs_end1_$ncc) + evaluate (&toppar.ncs_seg1_$ncc=&ncs_seg1_$ncc) + evaluate (&toppar.ncs_sta2_$ncc=&ncs_sta2_$ncc) + evaluate (&toppar.ncs_end2_$ncc=&ncs_end2_$ncc) + evaluate (&toppar.ncs_seg2_$ncc=&ncs_seg2_$ncc) + evaluate ($ncc = $ncc + 1) +end loop ncs + +! Symmetry restraints +evaluate ($Data.ksym=&ksym) +evaluate ($Data.flags.sym = &sym_on) +evaluate ($Data.numc2sym=&numc2sym) +evaluate ($nsym=1) +while ($nsym <= &numc2sym) loop sym + evaluate (&toppar.c2sym_sta1_$nsym=&c2sym_sta1_$nsym) + evaluate (&toppar.c2sym_end1_$nsym=&c2sym_end1_$nsym) + evaluate (&toppar.c2sym_seg1_$nsym=&c2sym_seg1_$nsym) + evaluate (&toppar.c2sym_sta2_$nsym=&c2sym_sta2_$nsym) + evaluate (&toppar.c2sym_end2_$nsym=&c2sym_end2_$nsym) + evaluate (&toppar.c2sym_seg2_$nsym=&c2sym_seg2_$nsym) + evaluate ($nsym = $nsym + 1) +end loop sym + +evaluate ($Data.numc3sym=&numc3sym) +evaluate ($nsym=1) +while ($nsym <= &numc3sym) loop sym + evaluate (&toppar.c3sym_sta1_$nsym=&c3sym_sta1_$nsym) + evaluate (&toppar.c3sym_end1_$nsym=&c3sym_end1_$nsym) + evaluate (&toppar.c3sym_seg1_$nsym=&c3sym_seg1_$nsym) + evaluate (&toppar.c3sym_sta2_$nsym=&c3sym_sta2_$nsym) + evaluate (&toppar.c3sym_end2_$nsym=&c3sym_end2_$nsym) + evaluate (&toppar.c3sym_seg2_$nsym=&c3sym_seg2_$nsym) + evaluate (&toppar.c3sym_sta3_$nsym=&c3sym_sta3_$nsym) + evaluate (&toppar.c3sym_end3_$nsym=&c3sym_end3_$nsym) + evaluate (&toppar.c3sym_seg3_$nsym=&c3sym_seg3_$nsym) + evaluate ($nsym = $nsym + 1) +end loop sym + +evaluate ($Data.nums3sym=&nums3sym) +evaluate ($nsym=1) +while ($nsym <= &nums3sym) loop sym + evaluate (&toppar.s3sym_sta1_$nsym=&s3sym_sta1_$nsym) + evaluate (&toppar.s3sym_end1_$nsym=&s3sym_end1_$nsym) + evaluate (&toppar.s3sym_seg1_$nsym=&s3sym_seg1_$nsym) + evaluate (&toppar.s3sym_sta2_$nsym=&s3sym_sta2_$nsym) + evaluate (&toppar.s3sym_end2_$nsym=&s3sym_end2_$nsym) + evaluate (&toppar.s3sym_seg2_$nsym=&s3sym_seg2_$nsym) + evaluate (&toppar.s3sym_sta3_$nsym=&s3sym_sta3_$nsym) + evaluate (&toppar.s3sym_end3_$nsym=&s3sym_end3_$nsym) + evaluate (&toppar.s3sym_seg3_$nsym=&s3sym_seg3_$nsym) + evaluate ($nsym = $nsym + 1) +end loop sym + +evaluate ($Data.numc4sym=&numc4sym) +evaluate ($nsym=1) +while ($nsym <= &numc4sym) loop sym + evaluate (&toppar.c4sym_sta1_$nsym=&c4sym_sta1_$nsym) + evaluate (&toppar.c4sym_end1_$nsym=&c4sym_end1_$nsym) + evaluate (&toppar.c4sym_seg1_$nsym=&c4sym_seg1_$nsym) + evaluate (&toppar.c4sym_sta2_$nsym=&c4sym_sta2_$nsym) + evaluate (&toppar.c4sym_end2_$nsym=&c4sym_end2_$nsym) + evaluate (&toppar.c4sym_seg2_$nsym=&c4sym_seg2_$nsym) + evaluate (&toppar.c4sym_sta3_$nsym=&c4sym_sta3_$nsym) + evaluate (&toppar.c4sym_end3_$nsym=&c4sym_end3_$nsym) + evaluate (&toppar.c4sym_seg3_$nsym=&c4sym_seg3_$nsym) + evaluate (&toppar.c4sym_sta4_$nsym=&c4sym_sta4_$nsym) + evaluate (&toppar.c4sym_end4_$nsym=&c4sym_end4_$nsym) + evaluate (&toppar.c4sym_seg4_$nsym=&c4sym_seg4_$nsym) + evaluate ($nsym = $nsym + 1) +end loop sym + +evaluate ($Data.numc5sym=&numc5sym) +evaluate ($nsym=1) +while ($nsym <= &numc5sym) loop sym + evaluate (&toppar.c5sym_sta1_$nsym=&c5sym_sta1_$nsym) + evaluate (&toppar.c5sym_end1_$nsym=&c5sym_end1_$nsym) + evaluate (&toppar.c5sym_seg1_$nsym=&c5sym_seg1_$nsym) + evaluate (&toppar.c5sym_sta2_$nsym=&c5sym_sta2_$nsym) + evaluate (&toppar.c5sym_end2_$nsym=&c5sym_end2_$nsym) + evaluate (&toppar.c5sym_seg2_$nsym=&c5sym_seg2_$nsym) + evaluate (&toppar.c5sym_sta3_$nsym=&c5sym_sta3_$nsym) + evaluate (&toppar.c5sym_end3_$nsym=&c5sym_end3_$nsym) + evaluate (&toppar.c5sym_seg3_$nsym=&c5sym_seg3_$nsym) + evaluate (&toppar.c5sym_sta4_$nsym=&c5sym_sta4_$nsym) + evaluate (&toppar.c5sym_end4_$nsym=&c5sym_end4_$nsym) + evaluate (&toppar.c5sym_seg4_$nsym=&c5sym_seg4_$nsym) + evaluate (&toppar.c5sym_sta5_$nsym=&c5sym_sta5_$nsym) + evaluate (&toppar.c5sym_end5_$nsym=&c5sym_end5_$nsym) + evaluate (&toppar.c5sym_seg5_$nsym=&c5sym_seg5_$nsym) + evaluate ($nsym = $nsym + 1) +end loop sym + + +evaluate ($Data.numc6sym=&numc6sym) +evaluate ($nsym=1) +while ($nsym <= &numc6sym) loop sym + evaluate (&toppar.c6sym_sta1_$nsym=&c6sym_sta1_$nsym) + evaluate (&toppar.c6sym_end1_$nsym=&c6sym_end1_$nsym) + evaluate (&toppar.c6sym_seg1_$nsym=&c6sym_seg1_$nsym) + evaluate (&toppar.c6sym_sta2_$nsym=&c6sym_sta2_$nsym) + evaluate (&toppar.c6sym_end2_$nsym=&c6sym_end2_$nsym) + evaluate (&toppar.c6sym_seg2_$nsym=&c6sym_seg2_$nsym) + evaluate (&toppar.c6sym_sta3_$nsym=&c6sym_sta3_$nsym) + evaluate (&toppar.c6sym_end3_$nsym=&c6sym_end3_$nsym) + evaluate (&toppar.c6sym_seg3_$nsym=&c6sym_seg3_$nsym) + evaluate (&toppar.c6sym_sta4_$nsym=&c6sym_sta4_$nsym) + evaluate (&toppar.c6sym_end4_$nsym=&c6sym_end4_$nsym) + evaluate (&toppar.c6sym_seg4_$nsym=&c6sym_seg4_$nsym) + evaluate (&toppar.c6sym_sta5_$nsym=&c6sym_sta5_$nsym) + evaluate (&toppar.c6sym_end5_$nsym=&c6sym_end5_$nsym) + evaluate (&toppar.c6sym_seg5_$nsym=&c6sym_seg5_$nsym) + evaluate (&toppar.c6sym_sta6_$nsym=&c6sym_sta6_$nsym) + evaluate (&toppar.c6sym_end6_$nsym=&c6sym_end6_$nsym) + evaluate (&toppar.c6sym_seg6_$nsym=&c6sym_seg6_$nsym) + evaluate ($nsym = $nsym + 1) +end loop sym + +if ( $Data.numc2sym eq 6) then + evaluate (&saprotocol.rotate180_it0 = false) + evaluate (&saprotocol.rotate180_it1 = false) +end if +if ( $Data.numc3sym ne 0) then + evaluate (&saprotocol.rotate180_it0 = false) + evaluate (&saprotocol.rotate180_it1 = false) +end if +if ( $Data.numc4sym ne 0) then + evaluate (&saprotocol.rotate180_it0 = false) + evaluate (&saprotocol.rotate180_it1 = false) +end if +if ( $Data.numc5sym ne 0) then + evaluate (&saprotocol.rotate180_it0 = false) + evaluate (&saprotocol.rotate180_it1 = false) +end if +if ( $Data.numc6sym ne 0) then + evaluate (&saprotocol.rotate180_it0 = false) + evaluate (&saprotocol.rotate180_it1 = false) +end if + + +!Dihedrals, DNA and distance restraints +evaluate ($Data.dnarest = &dnarest_on) +evaluate ($Data.flags.cdih = &dihedrals_on) +evaluate ($Data.cdih.on = &dihedrals_on) +evaluate ($Data.ssdihed = &ssdihed) +evaluate ($Data.error_dih = &error_dih) +evaluate ($Data.dihedrals.on=&dihedrals_on) +evaluate ($Data.dihedrals_hot=&dihedrals_hot) +evaluate ($Data.dihedrals_cool1=&dihedrals_cool1) +evaluate ($Data.dihedrals_cool2=&dihedrals_cool2) +evaluate ($Data.dihedrals_cool3=&dihedrals_cool3) +evaluate ($Data.hbonds_on=&hbonds_on) + +! RDC restraints +evaluate ($Data.flags.vean = false) +evaluate ($Data.flags.xrdc = false) +evaluate ($Data.flags.sani = false) +evaluate ($Data.numrdc=&numrdc) +evaluate ($ncc=1) +while ($ncc <= $Data.numrdc) loop rdc + if (&rdc_choice_$ncc = "VANGLE") then + evaluate ($Data.flags.vean = true) + end if + if (&rdc_choice_$ncc = "SANI") then + evaluate ($Data.flags.sani = true) + end if + if (&rdc_choice_$ncc = "XRDC") then + evaluate ($Data.flags.xrdc = true) + end if + evaluate ($Data.rdc_choice_$ncc=&rdc_choice_$ncc) + evaluate ($Data.rdc_firstIt_$ncc=&rdc_firstIt_$ncc) + evaluate ($Data.rdc_lastIt_$ncc=&rdc_lastIt_$ncc) + evaluate ($Data.rdc_hot_$ncc=&rdc_hot_$ncc) + evaluate ($Data.rdc_cool1_$ncc=&rdc_cool1_$ncc) + evaluate ($Data.rdc_cool2_$ncc=&rdc_cool2_$ncc) + evaluate ($Data.rdc_cool3_$ncc=&rdc_cool3_$ncc) + evaluate ($Data.rdc_r_$ncc=&rdc_r_$ncc) + evaluate ($Data.rdc_d_$ncc=&rdc_d_$ncc) + evaluate ($Data.ini_bor_hot_$ncc=&ini_bor_hot_$ncc) + evaluate ($Data.ini_bor_cool1_$ncc=&ini_bor_cool1_$ncc) + evaluate ($Data.ini_bor_cool2_$ncc=&ini_bor_cool2_$ncc) + evaluate ($Data.ini_bor_cool3_$ncc=&ini_bor_cool3_$ncc) + evaluate ($Data.ini_cen_hot_$ncc=&ini_cen_hot_$ncc) + evaluate ($Data.ini_cen_cool1_$ncc=&ini_cen_cool1_$ncc) + evaluate ($Data.ini_cen_cool2_$ncc=&ini_cen_cool2_$ncc) + evaluate ($Data.ini_cen_cool3_$ncc=&ini_cen_cool3_$ncc) + evaluate ($Data.fin_bor_hot_$ncc=&fin_bor_hot_$ncc) + evaluate ($Data.fin_bor_cool1_$ncc=&fin_bor_cool1_$ncc) + evaluate ($Data.fin_bor_cool2_$ncc=&fin_bor_cool2_$ncc) + evaluate ($Data.fin_bor_cool3_$ncc=&fin_bor_cool3_$ncc) + evaluate ($Data.fin_cen_hot_$ncc=&fin_cen_hot_$ncc) + evaluate ($Data.fin_cen_cool1_$ncc=&fin_cen_cool1_$ncc) + evaluate ($Data.fin_cen_cool2_$ncc=&fin_cen_cool2_$ncc) + evaluate ($Data.fin_cen_cool3_$ncc=&fin_cen_cool3_$ncc) + evaluate ($ncc=$ncc+1) +end loop rdc + +! PCS restraints +evaluate ($Data.flags.xpcs = false) +evaluate ($Data.numpcs=&numpcs) +evaluate ($ncc=1) +while ($ncc <= &numpcs) loop pcs + if (&pcs_choice_$ncc = "XPCS") then + evaluate ($Data.flags.xpcs = true) + end if + evaluate ($Data.pcs_choice_$ncc=&pcs_choice_$ncc) + evaluate ($Data.pcs_firstIt_$ncc=&pcs_firstIt_$ncc) + evaluate ($Data.pcs_lastIt_$ncc=&pcs_lastIt_$ncc) + evaluate ($Data.pcs_hot_$ncc=&pcs_hot_$ncc) + evaluate ($Data.pcs_cool1_$ncc=&pcs_cool1_$ncc) + evaluate ($Data.pcs_cool2_$ncc=&pcs_cool2_$ncc) + evaluate ($Data.pcs_cool3_$ncc=&pcs_cool3_$ncc) + evaluate ($Data.pcs_r_$ncc=&pcs_r_$ncc) + evaluate ($Data.pcs_d_$ncc=&pcs_d_$ncc) + evaluate ($ncc=$ncc+1) +end loop pcs + +! DANI restraints +evaluate ($Data.flags.dani = false) +evaluate ($Data.numdani=&numdani) +evaluate ($ncc=1) +while ($ncc <= &numdani) loop dani + if (&dan_choice_$ncc = "DANI") then + evaluate ($Data.flags.dani = true) + end if + evaluate ($Data.dan_choice_$ncc=&dan_choice_$ncc) + evaluate ($Data.dan_firstIt_$ncc=&dan_firstIt_$ncc) + evaluate ($Data.dan_lastIt_$ncc=&dan_lastIt_$ncc) + evaluate ($Data.dan_hot_$ncc=&dan_hot_$ncc) + evaluate ($Data.dan_cool1_$ncc=&dan_cool1_$ncc) + evaluate ($Data.dan_cool2_$ncc=&dan_cool2_$ncc) + evaluate ($Data.dan_cool3_$ncc=&dan_cool3_$ncc) + evaluate ($Data.dan_tc_$ncc=&dan_tc_$ncc) + evaluate ($Data.dan_anis_$ncc=&dan_anis_$ncc) + evaluate ($Data.dan_r_$ncc=&dan_r_$ncc) + evaluate ($Data.dan_wh_$ncc=&dan_wh_$ncc) + evaluate ($Data.dan_wn_$ncc=&dan_wn_$ncc) + evaluate ($ncc=$ncc+1) +end loop dani + +! planarity restraints +evaluate ($Data.flags.plan = false) + +! distance restraints +evaluate ($Data.flags.noe = true) +evaluate ($Data.scaling=&air_scaling) +evaluate ($Data.totnoe_unamb=&tot_unamb) +evaluate ($Data.unamb_firstit=&unamb_firstit) +evaluate ($Data.unamb_lastit=&unamb_lastit) +evaluate ($Data.unamb_hot=&unamb_hot) +evaluate ($Data.unamb_cool1=&unamb_cool1) +evaluate ($Data.unamb_cool2=&unamb_cool2) +evaluate ($Data.unamb_cool3=&unamb_cool3) +evaluate ($Data.noecv=&noecv) +evaluate ($Data.ncvpart=&ncvpart) + +evaluate ($Data.totnoe_amb=&tot_amb) +evaluate ($Data.amb_firstit=&amb_firstit) +evaluate ($Data.amb_lastit=&amb_lastit) +evaluate ($Data.amb_hot=&amb_hot) +evaluate ($Data.amb_cool1=&amb_cool1) +evaluate ($Data.amb_cool2=&amb_cool2) +evaluate ($Data.amb_cool3=&amb_cool3) + +evaluate ($Data.hbond_firstit=&hbond_firstit) +evaluate ($Data.hbond_lastit=&hbond_lastit) +evaluate ($Data.hbond_hot=&hbond_hot) +evaluate ($Data.hbond_cool1=&hbond_cool1) +evaluate ($Data.hbond_cool2=&hbond_cool2) +evaluate ($Data.hbond_cool3=&hbond_cool3) + +evaluate ($Data.mrswi_hot=&mrswi_hot) +evaluate ($Data.mrswi_cool1=&mrswi_cool1) +evaluate ($Data.mrswi_cool2=&mrswi_cool2) +evaluate ($Data.mrswi_cool3=&mrswi_cool3) + +evaluate ($Data.rswi_hot=&rswi_hot) +evaluate ($Data.rswi_cool1=&rswi_cool1) +evaluate ($Data.rswi_cool2=&rswi_cool2) +evaluate ($Data.rswi_cool3=&rswi_cool3) + +evaluate ($Data.masy_hot=&masy_hot) +evaluate ($Data.masy_cool1=&masy_cool1) +evaluate ($Data.masy_cool2=&masy_cool2) +evaluate ($Data.masy_cool3=&masy_cool3) + +evaluate ($Data.asy_hot=&asy_hot) +evaluate ($Data.asy_cool1=&asy_cool1) +evaluate ($Data.asy_cool2=&asy_cool2) +evaluate ($Data.asy_cool3=&asy_cool3) + +evaluate ($Data.ranair=&ranair) +if ($Data.ranair eq true) then + evaluate ($Data.noecv = false) +end if +evaluate ($Data.cmrest=&cmrest) +evaluate ($Data.cmtight=&cmtight) +evaluate ($Data.kcont=&kcont) +evaluate ($Data.surfrest=&surfrest) +evaluate ($Data.ksurf=&ksurf) + + +! radius of gydration restraints +evaluate ($Data.flags.rg=&rgrest) +evaluate ($Data.rgtarg=&rgtarg) +evaluate ($Data.krg_hot=&krg_hot) +evaluate ($Data.krg_cool1=&krg_cool1) +evaluate ($Data.krg_cool2=&krg_cool2) +evaluate ($Data.krg_cool3=&krg_cool3) +evaluate ($Data.rgsele=&rgsele) + +evaluate ($Data.kzres=&kzres) +evaluate ($Data.zresmax=&zresmax) +evaluate ($Data.zresmin=&zresmin) + +! keep or delete non-polar hydrogens +evaluate (&toppar.delenph=&delenph) + + +!Electrostatics: +evaluate ($Data.flags.dihed = &dihedflag) +evaluate ($Data.flags.elec0 = &elecflag_0) +evaluate ($Data.flags.elec1 = &elecflag_1) +evaluate ($Data.epsilon0 = &epsilon_0) +evaluate ($Data.epsilon1 = &epsilon_1) +evaluate ($Data.dielec0 = &dielec_0) +evaluate ($Data.dielec1 = &dielec_1) + + +!Interaction matrix: +evaluate ($nmol1=1) +while ($nmol1 <= $Data.ncomponents) loop mol1 + evaluate ($nmol2=$nmol1 + 1) + evaluate (&toppar.int_$nmol1_$nmol1 = &int_$nmol1_$nmol1) + while ($nmol2 <= $Data.ncomponents) loop mol2 + evaluate (&toppar.int_$nmol1_$nmol2 = &int_$nmol1_$nmol2) + evaluate (&toppar.int_$nmol2_$nmol1 = &int_$nmol1_$nmol2) + evaluate ($nmol2=$nmol2 + 1) + end loop mol2 + evaluate ($nmol1 = $nmol1 + 1) +end loop mol1 + +!intermolecular contacts analysis +evaluate ($Data.hb_dist=&dist_hb) +evaluate ($Data.nb_dist=&dist_nb) + + +!water refinement +evaluate (&refine.firstwater=&firstwater) +evaluate (&refine.solvshell=&solvshell) +evaluate (&refine.keepwater=&keepwater) +evaluate (&refine.waterrefine=min(&structures_1,&waterrefine)) +evaluate (&refine.solvent=&solvent) +evaluate (&refine.heatsteps=&waterheatsteps) +evaluate (&refine.steps=&watersteps) +evaluate (&refine.coolsteps=&watercoolsteps) + + +!for the non-bonded parameters (the section was taken out of +!parallhdg5.0.pro and parallhdg5.1.pro, so be careful!): +if (&toppar.par_nonbonded eq "PROLSQ") then + evaluate (&toppar.repel_radius = 1.0) + evaluate (&toppar.repel_rcons = 20) + evaluate (&toppar.repel_rexpo = 4) + evaluate (&toppar.repel_irexp = 1) +elseif (&toppar.par_nonbonded eq "PARMALLH6") then + evaluate (&toppar.repel_radius = 0.8) + evaluate (&toppar.repel_rcons = 5.0) + evaluate (&toppar.repel_rexpo = 2) + evaluate (&toppar.repel_irexp = 2) +elseif (&toppar.par_nonbonded eq "OPLSX") then + evaluate (&toppar.repel_radius = 0.0) +else {...now the standard PARALLHDG parameters} + evaluate (&toppar.repel_radius = 0.78) + evaluate (&toppar.repel_rcons = 5.0) + evaluate (&toppar.repel_rexpo = 2) + evaluate (&toppar.repel_irexp = 2) +end if + +! Water in rigid body docking +evaluate ($Data.waterdock=&waterdock) +evaluate ($Data.db_method=&db_method) +evaluate ($Data.water_tokeep=&water_tokeep) +evaluate ($Data.dnap_water_tokeep=&dnap_water_tokeep) +evaluate ($Data.water_randfrac=&water_randfrac) +evaluate ($Data.solvate_method=&solvate_method) +evaluate ($Data.water_surfcutoff=&water_surfcutoff) +evaluate ($Data.water_analysis=&water_analysis) +evaluate ($Data.transwater=&transwater) +evaluate ($Data.water_restraint_initial=&water_restraint_initial) +evaluate ($Data.water_restraint_cutoff=&water_restraint_cutoff) +evaluate ($Data.water_restraint_scale=&water_restraint_scale) +evaluate ($Data.waterensemble=&waterensemble) + +if ($Data.waterdock eq true) then + evaluate (&saprotocol.rotate180_it0 = false) + evaluate (&saprotocol.rotate180_it1 = false) + evaluate (&SaProtocol.initiosteps = 0) + evaluate (&SaProtocol.cool1_steps = 0) + evaluate (&refine.keepwater = true) + display SOLVATED DOCKING TURNED ON: initiosteps and cool1_steps set to 0, rotate180 set to false +end if + +! Centroid parameters +eval($Data.flags.centroids = ¢roid_rest) +eval($Data.centroids.kscale = ¢roid_kscale) +eval($nchain = 0) +while ($nchain < &ncomponents) loop nloop1 + eval($nchain = $nchain + 1) + eval($Data.centroids.xcom_$nchain = &xcom_$nchain) + eval($Data.centroids.ycom_$nchain = &ycom_$nchain) + eval($Data.centroids.zcom_$nchain = &zcom_$nchain) + eval($Data.centroids.ambi_$nchain = &ambi_$nchain) +end loop nloop1 + +if (&saprotocol.expand eq true) then + eval($Data.flags.centroids = true) +end if + +! Cryo-EM parameters +eval($Data.flags.em = &em_rest) +eval($Data.em.kscale = &em_kscale) +eval($Data.em.it0 = &em_it0) +eval($Data.em.it1 = &em_it1) +eval($Data.em.itw = &em_itw) +eval($Data.em.resolution = &em_resolution) +eval($Data.em.nx = &nx) +eval($Data.em.ny = &ny) +eval($Data.em.nz = &nz) +eval($Data.em.xlength = &xlength) +eval($Data.em.ylength = &ylength) +eval($Data.em.zlength = &zlength) diff --git a/src/haddock/modules/flexref/cns/sa_ltad_cool1.cns b/src/haddock/modules/flexref/cns/sa_ltad_cool1.cns new file mode 100644 index 000000000..e257a732b --- /dev/null +++ b/src/haddock/modules/flexref/cns/sa_ltad_cool1.cns @@ -0,0 +1,246 @@ +! sa_ltad_cool1.cns +! Perform the first simulated annealing stage of it1 +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + +!module(SaProtocol;Data;Toppar) + +! module sa_ltad_cool1.cns +! torsion dynamics cooling + +evaluate ($ncycle = 10) + +evaluate ($interstep = ($SaProtocol.inter_fin_rigid - $SaProtocol.inter_init_rigid)/($ncycle-1)) +evaluate ($kinter = $SaProtocol.inter_init_rigid) + +evaluate ($asy_add = ($Data.asy_cool1-$Data.asy_hot)/$ncycle) +evaluate ($masy_add = ($Data.masy_cool1-$Data.masy_hot)/$ncycle) + +evaluate ($asy=$Data.asy_hot) +evaluate ($masy=$Data.masy_hot) +noe + rswitch ambi $Data.Rswi_hot + rswitch dist $Data.Rswi_hot + rswitch hbon $Data.Rswi_hot + + mrswitch ambi $Data.mRswi_hot + mrswitch dist $Data.mRswi_hot + mrswitch hbon $Data.mRswi_hot + + asym ambi $Data.asy_hot + asym dist $Data.asy_hot + asym hbon $Data.asy_hot + + masym ambi $Data.masy_hot + masym dist $Data.masy_hot + masym hbon $Data.masy_hot +end + +restraints dihedral scale=$Data.dihedrals_cool1 end + +evaluate ($nrdc=1) +while ($nrdc <= $data.numrdc) loop rdc + evaluate( $k_sani_$nrdc = $Data.rdc_hot_$nrdc) + evaluate( $k_cen_$nrdc = $Data.ini_cen_cool1_$nrdc) + evaluate( $cen_fac_$nrdc = ( $Data.fin_cen_cool1_$nrdc / $Data.ini_cen_cool1_$nrdc)^( 1 / $ncycle)) + evaluate( $k_bor_$nrdc = $Data.ini_bor_cool1_$nrdc) + evaluate( $bor_fac_$nrdc = ( $Data.fin_bor_cool1_$nrdc / $Data.ini_bor_cool1_$nrdc)^( 1 / $ncycle)) + if ($Data.rdc_hot_$nrdc > 0) then + evaluate( $sani_fac_$nrdc = ( $Data.rdc_cool1_$nrdc / $Data.rdc_hot_$nrdc)^( 1 / $ncycle)) + else + evaluate( $sani_fac_$nrdc = 0) + end if + evaluate ($cln = "rd" + encode($nrdc) ) + if ($Data.flags.vean eq true) then + vean class $cln force $k_bor_$nrdc $k_cen_$nrdc end + end if + if ($Data.flags.sani eq true) then + sani class $cln force $k_sani_$nrdc end + end if + if ($Data.flags.xrdc eq true) then + xrdc class $cln force $k_sani_$nrdc end + end if + evaluate ($nrdc = $nrdc + 1) +end loop rdc + + +evaluate ($ndani=1) +while ($ndani <= $data.numdani) loop dani + evaluate( $k_dani_$ndani = $Data.dan_hot_$ndani) + if ($Data.dan_hot_$ndani > 0) then + evaluate( $dani_fac_$ndani = ( $Data.dan_cool1_$ndani / $Data.dan_hot_$ndani)^( 1 / $ncycle)) + else + evaluate( $dani_fac_$ndani = 0) + end if + evaluate ($cln = "da" + encode($ndani) ) + if ($Data.flags.dani eq true) then + dani class $cln force $Data.dan_hot_$ndani end + end if + dani class $cln force $k_dani_$ndani end + evaluate ($ndani = $ndani + 1) +end loop dani + + +evaluate ($npcs=1) +while ($npcs <= $data.numpcs) loop pcs + if ($Data.flags.xpcs eq true) then + evaluate( $k_xpcs_$npcs = $Data.pcs_hot_$npcs) + if ($Data.pcs_hot_$npcs > 0) then + evaluate( $xpcs_fac_$npcs = ( $Data.pcs_cool1_$npcs / $Data.pcs_hot_$npcs)^( 1 / $ncycle)) + else + evaluate( $xpcs_fac_$npcs = 0) + end if + evaluate ($cln = "pc" + encode($npcs) ) + xpcs class $cln force $k_xpcs_$npcs end + end if + evaluate ($npcs= $npcs + 1) +end loop pcs + + +evaluate ($tempstep = ($SaProtocol.t1_init - $SaProtocol.t1_final)/$ncycle) +evaluate ($calcsteps = int($SaProtocol.cool1_steps/$ncycle)) +evaluate ($printsteps = int($calcsteps / 4)) +evaluate ($timestep = $SaProtocol.timestep*$SaProtocol.tadfactor) + +if ($Data.unamb_hot = 0) then + evaluate ($Data.unamb_hot = 0.000001) +end if +if ($Data.unamb_cool1 = 0) then + evaluate ($Data.unamb_cool1 = 0.000001) +end if +if ($Data.amb_hot = 0)then + evaluate ($Data.amb_hot = 0.000001) +end if +if ($Data.amb_cool1 = 0) then + evaluate ($Data.amb_cool1 = 0.000001) +end if +if ($Data.hbond_hot = 0) then + evaluate ($Data.hbond_hot = 0.000001) +end if +if ($Data.hbond_cool1 = 0) then + evaluate ($Data.hbond_cool1 = 0.000001) +end if + +evaluate ($k_unamb= $Data.unamb_hot) +evaluate ($unamb_fac = ($Data.unamb_cool1/$Data.unamb_hot)^(1/$ncycle)) +evaluate ($k_amb= $Data.amb_hot) +evaluate ($amb_fac = ($Data.amb_cool1/$Data.amb_hot)^(1/$ncycle)) +evaluate ($k_hbond= $Data.hbond_hot) +evaluate ($hbond_fac = ($Data.hbond_cool1/$Data.hbond_hot)^(1/$ncycle)) + + +evaluate ($bath = $SaProtocol.t1_init) +do (vx=maxwell($bath)) ( all ) +do (vy=maxwell($bath)) ( all ) +do (vz=maxwell($bath)) ( all ) + + + +evaluate ($reassign = TRUE) +evaluate ($i_cool = 0) +while ($i_cool < $ncycle) loop cool + + evaluate ($i_cool=$i_cool+1) + + evaluate ($bath = $bath - $tempstep) + evaluate ($k_unamb = $k_unamb*$unamb_fac) + evaluate ($k_amb = $k_amb*$amb_fac) + evaluate ($k_hbond = $k_hbond*$hbond_fac) + evaluate ($asy=$asy+$asy_add) + evaluate ($masy=$masy+$masy_add) + + evaluate ($nrdc=1) + while ($nrdc <= $data.numrdc) loop rdc + evaluate ($k_bor_$nrdc = $k_bor_$nrdc * $bor_fac_$nrdc) + evaluate ($k_cen_$nrdc = $k_cen_$nrdc * $cen_fac_$nrdc) + evaluate ($cln = "rd" + encode($nrdc) ) + if ($Data.flags.vean eq true) then + vean class $cln force $k_bor_$nrdc $k_cen_$nrdc end + end if + evaluate ($k_sani_$nrdc = $k_sani_$nrdc * $sani_fac_$nrdc) + if ($Data.flags.sani eq true) then + sani class $cln force $k_sani_$nrdc end + end if + if ($Data.flags.xrdc eq true) then + xrdc class $cln force $k_sani_$nrdc end + end if + evaluate ($nrdc = $nrdc + 1) + end loop rdc + + if ($Data.flags.xpcs eq true) then + evaluate ($npcs=1) + while ($npcs <= $data.numpcs) loop pcs + evaluate ($k_xpcs_$npcs = $k_xpcs_$npcs * $xpcs_fac_$npcs) + evaluate ($cln = "pc" + encode($npcs) ) + xpcs class $cln force $k_xpcs_$npcs end + evaluate ($npcs= $npcs + 1) + end loop pcs + end if + + if ($Data.flags.dani eq true) then + evaluate ($ndani=1) + while ($ndani <= $data.numdani) loop dani + evaluate ($k_dani_$ndani = $k_dani_$ndani * $dani_fac_$ndani) + evaluate ($cln = "da" + encode($ndani) ) + dani class $cln force $k_dani_$ndani end + evaluate ($ndani = $ndani + 1) + end loop dani + end if + + + if ($Data.scaling eq TRUE) then + inline @RUN:set_noe_scale.cns + noe + scale dist $Data.unamb_cool1 + scale ambi $Data.amb_cool1 + scale hbon $Data.hbond_cool1 + asym ambi $asy + asym dist $asy + asym hbon $asy + masym ambi $masy + masym dist $masy + masym hbon $masy + end + else + noe + scale dist $k_unamb + scale ambi $k_amb + scale hbon $k_hbond + asym ambi $asy + asym dist $asy + asym hbon $asy + masym ambi $masy + masym dist $masy + masym hbon $masy + end + end if + + !scale intermolecular interactions + inline @RUN:scale_inter.cns + evaluate ($kinter = $kinter + $interstep) + + dyna tors + reassign $reassign + timestep=$timestep + nstep=$calcsteps + nprint=$printsteps + ntrfrq=0 + tcoupling = true temperature = $bath + end + + energy end + if ($ener > 99999999) then + display ENERGY PROBLEM, THE SYSTEM IS BLOWING UP: ==> STOPPING + stop + end if + evaluate ($reassign = FALSE) +end loop cool + diff --git a/src/haddock/modules/flexref/cns/sa_ltad_cool2.cns b/src/haddock/modules/flexref/cns/sa_ltad_cool2.cns new file mode 100644 index 000000000..1321927ec --- /dev/null +++ b/src/haddock/modules/flexref/cns/sa_ltad_cool2.cns @@ -0,0 +1,248 @@ +! sa_ltad_cool2.cns +! Perform the second simulation annealing stage of it1 +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + +!module(SaProtocol;Data;Toppar) + +! module sa_ltad_cool2.cns +! torsion dynamics cooling + +evaluate ($ncycle = 10) + +evaluate ($asy_add = ($Data.asy_cool2-$Data.asy_cool1)/$ncycle) +evaluate ($masy_add = ($Data.masy_cool2-$Data.masy_cool1)/$ncycle) + +evaluate ($asy=$Data.asy_cool1) +evaluate ($masy=$Data.masy_cool1) + +noe + rswitch ambi $Data.Rswi_cool1 + rswitch dist $Data.Rswi_cool1 + rswitch hbon $Data.Rswi_cool1 + + mrswitch ambi $Data.mRswi_cool1 + mrswitch dist $Data.mRswi_cool1 + mrswitch hbon $Data.mRswi_cool1 + + asym ambi $Data.asy_cool1 + asym dist $Data.asy_cool1 + asym hbon $Data.asy_cool1 + + masym ambi $Data.masy_cool1 + masym dist $Data.masy_cool1 + masym hbon $Data.masy_cool1 +end + +restraints dihedral scale=$Data.dihedrals_cool2 end + + +evaluate ($nrdc=1) +while ($nrdc <= $data.numrdc) loop rdc + evaluate( $k_sani_$nrdc = $Data.rdc_cool1_$nrdc) + evaluate( $k_cen_$nrdc = $Data.ini_cen_cool2_$nrdc) + evaluate( $cen_fac_$nrdc = ( $Data.fin_cen_cool2_$nrdc / $Data.ini_cen_cool2_$nrdc)^( 1 / $ncycle)) + evaluate( $k_bor_$nrdc = $Data.ini_bor_cool2_$nrdc) + evaluate( $bor_fac_$nrdc = ( $Data.fin_bor_cool2_$nrdc / $Data.ini_bor_cool2_$nrdc)^( 1 / $ncycle)) + if ($Data.rdc_cool1_$nrdc > 0) then + evaluate( $sani_fac_$nrdc = ( $Data.rdc_cool2_$nrdc / $Data.rdc_cool1_$nrdc)^( 1 / $ncycle)) + else + evaluate( $sani_fac_$nrdc = 0) + end if + evaluate ($cln = "rd" + encode($nrdc) ) + if ($Data.flags.vean eq true) then + vean class $cln force $k_bor_$nrdc $k_cen_$nrdc end + end if + if ($Data.flags.sani eq true) then + sani class $cln force $k_sani_$nrdc end + end if + if ($Data.flags.xrdc eq true) then + xrdc class $cln force $k_sani_$nrdc end + end if + evaluate ($nrdc = $nrdc + 1) +end loop rdc + + +evaluate ($ndani=1) +while ($ndani <= $data.numdani) loop dani + evaluate( $k_dani_$ndani = $Data.dan_cool1_$ndani) + if ($Data.dan_cool1_$ndani > 0) then + evaluate( $dani_fac_$ndani = ( $Data.dan_cool2_$ndani / $Data.dan_cool1_$ndani)^( 1 / $ncycle)) + else + evaluate( $dani_fac_$ndani = 0) + end if + evaluate ($cln = "da" + encode($ndani) ) + if ($Data.flags.dani eq true) then + dani class $cln force $Data.dan_hot_$ndani end + end if + dani class $cln force $k_dani_$ndani end + evaluate ($ndani = $ndani + 1) +end loop dani + +evaluate ($npcs=1) +while ($npcs <= $data.numpcs) loop pcs + if ($Data.flags.xpcs eq true) then + evaluate( $k_xpcs_$npcs = $Data.pcs_cool1_$npcs) + if ($Data.pcs_hot_$npcs > 0) then + evaluate( $xpcs_fac_$npcs = ( $Data.pcs_cool2_$npcs / $Data.pcs_cool1_$npcs)^( 1 / $ncycle)) + else + evaluate( $xpcs_fac_$npcs = 0) + end if + evaluate ($cln = "pc" + encode($npcs) ) + xpcs class $cln force $k_xpcs_$npcs end + end if + evaluate ($npcs= $npcs + 1) +end loop pcs + + +evaluate ($interstep = ($SaProtocol.inter_fin_cool2 - $SaProtocol.inter_init_cool2)/($ncycle-1)) +evaluate ($kinter = $SaProtocol.inter_init_cool2) + +evaluate ($tempstep = ($SaProtocol.t2_init - $SaProtocol.t2_final)/$ncycle) +evaluate ($calcsteps = int($SaProtocol.cool2_steps/$ncycle)) +evaluate ($printsteps = int($calcsteps / 4)) +evaluate ($timestep = $SaProtocol.timestep*$SaProtocol.tadfactor) + +if ($Data.unamb_cool1 = 0) then + evaluate ($Data.unamb_cool1 = 0.000001) +end if +if ($Data.unamb_cool2 = 0) then + evaluate ($Data.unamb_cool2 = 0.000001) +end if +if ($Data.amb_cool1 = 0) then + evaluate ($Data.amb_cool1 = 0.000001) +end if +if ($Data.amb_cool2 = 0) then + evaluate ($Data.amb_cool2 = 0.000001) +end if +if ($Data.hbond_cool1 = 0) then + evaluate ($Data.hbond_cool1 = 0.000001) +end if +if ($Data.hbond_cool2 = 0) then + evaluate ($Data.hbond_cool2 = 0.000001) +end if + +evaluate ($k_unamb= $Data.unamb_cool1) +evaluate ($unamb_fac = ($Data.unamb_cool2/$Data.unamb_cool1)^(1/$ncycle)) +evaluate ($k_amb= $Data.amb_cool1) +evaluate ($amb_fac = ($Data.amb_cool2/$Data.amb_cool1)^(1/$ncycle)) +evaluate ($k_hbond= $Data.hbond_cool1) +evaluate ($hbond_fac = ($Data.hbond_cool2/$Data.hbond_cool1)^(1/$ncycle)) + + +evaluate ($bath = $SaProtocol.t2_init) +do (vx=maxwell($bath)) ( all ) +do (vy=maxwell($bath)) ( all ) +do (vz=maxwell($bath)) ( all ) + +evaluate ($reassign = TRUE) +evaluate ($i_cool = 0) +while ($i_cool < $ncycle) loop cool + + evaluate ($i_cool=$i_cool+1) + + evaluate ($bath = $bath - $tempstep) + evaluate ($k_unamb = $k_unamb*$unamb_fac) + evaluate ($k_amb = $k_amb*$amb_fac) + evaluate ($k_hbond = $k_hbond*$hbond_fac) + evaluate ($asy=$asy+$asy_add) + evaluate ($masy=$masy+$masy_add) + + + evaluate ($nrdc=1) + while ($nrdc <= $data.numrdc) loop rdc + evaluate ($k_bor_$nrdc = $k_bor_$nrdc * $bor_fac_$nrdc) + evaluate ($k_cen_$nrdc = $k_cen_$nrdc * $cen_fac_$nrdc) + evaluate ($cln = "rd" + encode($nrdc) ) + evaluate ($k_sani_$nrdc = $k_sani_$nrdc * $sani_fac_$nrdc) + if ($Data.flags.vean eq true) then + vean class $cln force $k_bor_$nrdc $k_cen_$nrdc end + end if + evaluate ($k_sani_$nrdc = $k_sani_$nrdc * $sani_fac_$nrdc) + if ($Data.flags.sani eq true) then + sani class $cln force $k_sani_$nrdc end + end if + if ($Data.flags.xrdc eq true) then + xrdc class $cln force $k_sani_$nrdc end + end if + evaluate ($nrdc = $nrdc + 1) + end loop rdc + + if ($Data.flags.xpcs eq true) then + evaluate ($npcs=1) + while ($npcs <= $data.numpcs) loop pcs + evaluate ($k_xpcs_$npcs = $k_xpcs_$npcs * $xpcs_fac_$npcs) + evaluate ($cln = "pc" + encode($npcs) ) + xpcs class $cln force $k_xpcs_$npcs end + evaluate ($npcs= $npcs + 1) + end loop pcs + end if + + if ($Data.flags.dani eq true) then + evaluate ($ndani=1) + while ($ndani <= $data.numdani) loop dani + evaluate ($k_dani_$ndani = $k_dani_$ndani * $dani_fac_$ndani) + evaluate ($cln = "pc" + encode($ndani) ) + dani class $cln force $k_dani_$ndani end + evaluate ($ndani = $ndani + 1) + end loop dani + end if + + + if ($Data.scaling eq TRUE) then + inline @RUN:set_noe_scale.cns + noe + scale dist $Data.unamb_cool2 + scale ambi $Data.amb_cool2 + scale hbon $Data.hbond_cool2 + asym ambi $asy + asym dist $asy + asym hbon $asy + masym ambi $masy + masym dist $masy + masym hbon $masy + end + else + noe + scale dist $k_unamb + scale ambi $k_amb + scale hbon $k_hbond + asym ambi $asy + asym dist $asy + asym hbon $asy + masym ambi $masy + masym dist $masy + masym hbon $masy + end + end if + + !scale intermolecular interactions: + inline @RUN:scale_inter.cns + evaluate ($kinter = $kinter + $interstep) + + dyna tors + reassign $reassign + timestep=$timestep + nstep=$calcsteps + nprint=$printsteps + ntrfrq=0 + tcoupling = true temperature = $bath + end + evaluate ($reassign = FALSE) + + energy end + if ($ener > 99999999) then + display ENERGY PROBLEM, THE SYSTEM IS BLOWING UP: ==> STOPPING + stop + end if + +end loop cool + diff --git a/src/haddock/modules/flexref/cns/sa_ltad_cool3.cns b/src/haddock/modules/flexref/cns/sa_ltad_cool3.cns new file mode 100644 index 000000000..dfa91e94a --- /dev/null +++ b/src/haddock/modules/flexref/cns/sa_ltad_cool3.cns @@ -0,0 +1,245 @@ +! sa_ltad_cool3.cns +! Perfrom the third simulated annealing stage of it1 +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + +!module(SaProtocol;Data;Toppar) + +! module sa_ltad_cool3.cns +! torsion dynamics cooling + +evaluate ($ncycle = 20) + +evaluate ($asy_add = ($Data.asy_cool3-$Data.asy_cool2)/$ncycle) +evaluate ($masy_add = ($Data.masy_cool3-$Data.masy_cool2)/$ncycle) + +evaluate ($asy=$Data.asy_cool2) +evaluate ($masy=$Data.masy_cool2) + +noe + rswitch ambi $Data.Rswi_cool2 + rswitch dist $Data.Rswi_cool2 + rswitch hbon $Data.Rswi_cool2 + + mrswitch ambi $Data.mRswi_cool2 + mrswitch dist $Data.mRswi_cool2 + mrswitch hbon $Data.mRswi_cool2 + + asym ambi $Data.asy_cool2 + asym dist $Data.asy_cool2 + asym hbon $Data.asy_cool2 + + masym ambi $Data.masy_cool2 + masym dist $Data.masy_cool2 + masym hbon $Data.masy_cool2 +end + +restraints dihedral scale=$Data.dihedrals_cool3 end + + +evaluate ($nrdc=1) +while ($nrdc <= $data.numrdc) loop rdc + evaluate( $k_sani_$nrdc = $Data.rdc_cool2_$nrdc) + evaluate( $k_cen_$nrdc = $Data.ini_cen_cool3_$nrdc) + evaluate( $cen_fac_$nrdc = ( $Data.fin_cen_cool3_$nrdc / $Data.ini_cen_cool3_$nrdc)^( 1 / $ncycle)) + evaluate( $k_bor_$nrdc = $Data.ini_bor_cool3_$nrdc) + evaluate( $bor_fac_$nrdc = ( $Data.fin_bor_cool3_$nrdc / $Data.ini_bor_cool3_$nrdc)^( 1 / $ncycle)) + if ($Data.rdc_cool2_$nrdc > 0) then + evaluate( $sani_fac_$nrdc = ( $Data.rdc_cool3_$nrdc / $Data.rdc_cool2_$nrdc)^( 1 / $ncycle)) + else + evaluate( $sani_fac_$nrdc = 0) + end if + evaluate ($cln = "rd" + encode($nrdc) ) + if ($Data.flags.vean eq true) then + vean class $cln force $k_bor_$nrdc $k_cen_$nrdc end + end if + if ($Data.flags.sani eq true) then + sani class $cln force $k_sani_$nrdc end + end if + if ($Data.flags.xrdc eq true) then + xrdc class $cln force $k_sani_$nrdc end + end if + evaluate ($nrdc = $nrdc + 1) +end loop rdc + + +evaluate ($ndani=1) +while ($ndani <= $data.numdani) loop dani + evaluate( $k_dani_$ndani = $Data.dan_cool2_$ndani) + if ($Data.dan_cool2_$ndani > 0) then + evaluate( $dani_fac_$ndani = ( $Data.dan_cool3_$ndani / $Data.dan_cool2_$ndani)^( 1 / $ncycle)) + else + evaluate( $dani_fac_$ndani = 0) + end if + evaluate ($cln = "da" + encode($ndani) ) + if ($Data.flags.dani eq true) then + dani class $cln force $Data.dan_hot_$ndani end + end if + dani class $cln force $k_dani_$ndani end + evaluate ($ndani = $ndani + 1) +end loop dani + + +evaluate ($npcs=1) +while ($npcs <= $data.numpcs) loop pcs + if ($Data.flags.xpcs eq true) then + evaluate( $k_xpcs_$npcs = $Data.pcs_cool2_$npcs) + if ($Data.pcs_hot_$npcs > 0) then + evaluate( $xpcs_fac_$npcs = ( $Data.pcs_cool3_$npcs / $Data.pcs_cool2_$npcs)^( 1 / $ncycle)) + else + evaluate( $xpcs_fac_$npcs = 0) + end if + evaluate ($cln = "pc" + encode($npcs) ) + xpcs class $cln force $k_xpcs_$npcs end + end if + evaluate ($npcs= $npcs + 1) +end loop pcs + + +evaluate ($interstep = ($SaProtocol.inter_fin_cool3 - $SaProtocol.inter_init_cool3)/($ncycle-1)) +evaluate ($kinter = $SaProtocol.inter_init_cool3) + +evaluate ($tempstep = ($SaProtocol.t3_init - $SaProtocol.t3_final)/$ncycle) +evaluate ($calcsteps = int($SaProtocol.cool3_steps/$ncycle)) +evaluate ($printsteps = int($calcsteps / 4)) +evaluate ($timestep = $SaProtocol.timestep*$SaProtocol.tadfactor) + +if ($Data.unamb_cool2 = 0) then + evaluate ($Data.unamb_cool2 = 0.000001) +end if +if ($Data.unamb_cool3 = 0) then + evaluate ($Data.unamb_cool3 = 0.000001) +end if +if ($Data.amb_cool2 = 0) then + evaluate ($Data.amb_cool2 = 0.000001) +end if +if ($Data.amb_cool3 = 0) then + evaluate ($Data.amb_cool3 = 0.000001) +end if +if ($Data.hbond_cool2 = 0) then + evaluate ($Data.hbond_cool2 = 0.000001) +end if +if ($Data.hbond_cool3 = 0) then + evaluate ($Data.hbond_cool3 = 0.000001) +end if + +evaluate ($k_unamb= $Data.unamb_cool2) +evaluate ($unamb_fac = ($Data.unamb_cool3/$Data.unamb_cool2)^(1/$ncycle)) +evaluate ($k_amb= $Data.amb_cool2) +evaluate ($amb_fac = ($Data.amb_cool3/$Data.amb_cool2)^(1/$ncycle)) +evaluate ($k_hbond= $Data.hbond_cool2) +evaluate ($hbond_fac = ($Data.hbond_cool3/$Data.hbond_cool2)^(1/$ncycle)) + +evaluate ($bath = $SaProtocol.t3_init) +do (vx=maxwell($bath)) ( all ) +do (vy=maxwell($bath)) ( all ) +do (vz=maxwell($bath)) ( all ) + +evaluate ($reassign = TRUE) +evaluate ($i_cool = 0) +while ($i_cool < $ncycle) loop cool + + evaluate ($i_cool=$i_cool+1) + + evaluate ($bath = $bath - $tempstep) + evaluate ($k_unamb = $k_unamb*$unamb_fac) + evaluate ($k_amb = $k_amb*$amb_fac) + evaluate ($k_hbond = $k_hbond*$hbond_fac) + evaluate ($asy=$asy+$asy_add) + evaluate ($masy=$masy+$masy_add) + + evaluate ($nrdc=1) + while ($nrdc <= $data.numrdc) loop rdc + evaluate ($k_bor_$nrdc = $k_bor_$nrdc * $bor_fac_$nrdc) + evaluate ($k_cen_$nrdc = $k_cen_$nrdc * $cen_fac_$nrdc) + evaluate ($cln = "rd" + encode($nrdc) ) + if ($Data.flags.vean eq true) then + vean class $cln force $k_bor_$nrdc $k_cen_$nrdc end + end if + evaluate ($k_sani_$nrdc = $k_sani_$nrdc * $sani_fac_$nrdc) + if ($Data.flags.sani eq true) then + sani class $cln force $k_sani_$nrdc end + end if + if ($Data.flags.xrdc eq true) then + xrdc class $cln force $k_sani_$nrdc end + end if + evaluate ($nrdc = $nrdc + 1) + end loop rdc + + if ($Data.flags.xpcs eq true) then + evaluate ($npcs=1) + while ($npcs <= $data.numpcs) loop pcs + evaluate ($k_xpcs_$npcs = $k_xpcs_$npcs * $xpcs_fac_$npcs) + evaluate ($cln = "pc" + encode($npcs) ) + xpcs class $cln force $k_xpcs_$npcs end + evaluate ($npcs= $npcs + 1) + end loop pcs + end if + + if ($Data.flags.dani eq true) then + evaluate ($ndani=1) + while ($ndani <= $data.numdani) loop dani + evaluate ($k_dani_$ndani = $k_dani_$ndani * $dani_fac_$ndani) + evaluate ($cln = "da" + encode($ndani) ) + dani class $cln force $k_dani_$ndani end + evaluate ($ndani = $ndani + 1) + end loop dani + end if + + if ($Data.scaling eq TRUE) then + inline @RUN:set_noe_scale.cns + noe + scale dist $Data.unamb_cool3 + scale ambi $Data.amb_cool3 + scale hbon $Data.hbond_cool3 + asym ambi $asy + asym dist $asy + asym hbon $asy + masym ambi $masy + masym dist $masy + masym hbon $masy + end + else + noe + scale dist $k_unamb + scale ambi $k_amb + scale hbon $k_hbond + asym ambi $asy + asym dist $asy + asym hbon $asy + masym ambi $masy + masym dist $masy + masym hbon $masy + end + end if + + !scale intermolecular interactions: + inline @RUN:scale_inter.cns + evaluate ($kinter = $kinter + $interstep) + + dyna tors + reassign $reassign + timestep=$timestep + nstep=$calcsteps + nprint=$printsteps + ntrfrq=0 + tcoupling = true temperature = $bath + end + evaluate ($reassign = FALSE) + + energy end + if ($ener > 99999999) then + display ENERGY PROBLEM, THE SYSTEM IS BLOWING UP: ==> STOPPING + stop + end if + +end loop cool + diff --git a/src/haddock/modules/flexref/cns/sa_ltad_hightemp.cns b/src/haddock/modules/flexref/cns/sa_ltad_hightemp.cns new file mode 100644 index 000000000..2301a28af --- /dev/null +++ b/src/haddock/modules/flexref/cns/sa_ltad_hightemp.cns @@ -0,0 +1,109 @@ +! sa_ltad_hightemp.cns +! Perform the high-temperature rigid-body MD of it1 +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! +! module sa_ltad_hightemp.cns +! torsion dynamics high temperature phase + +!module(SaProtocol;Data;Toppar) + +evaluate ($calcsteps= $SaProtocol.initiosteps) +evaluate ($printsteps= max(int($calcsteps/10),1)) + +noe + rswitch ambi $Data.Rswi_hot + rswitch dist $Data.Rswi_hot + rswitch hbon $Data.Rswi_hot + + mrswitch ambi $Data.mRswi_hot + mrswitch dist $Data.mRswi_hot + mrswitch hbon $Data.mRswi_hot + + asym ambi $Data.asy_hot + asym dist $Data.asy_hot + asym hbon $Data.asy_hot + + masym ambi $Data.masy_hot + masym dist $Data.masy_hot + masym hbon $Data.masy_hot +end + +evaluate ($bath = $SaPRotocol.tadhigh_t) +evaluate ($timestep = $SaProtocol.timestep*$SaProtocol.tadfactor) + +do (vx = maxwell($bath)) (all) +do (vy = maxwell($bath)) (all) +do (vz = maxwell($bath)) (all) + + +restraints dihedral scale $Data.dihedrals_hot end + +evaluate ($nrdc=1) +while ($nrdc <= $data.numrdc) loop rdc + !for the vean statement: + evaluate( $k_cen_$nrdc = $data.ini_cen_hot_$nrdc) + evaluate( $k_bor_$nrdc = $data.ini_bor_hot_$nrdc) + evaluate( $cln = "rd" + encode($nrdc) ) + if ($Data.flags.sani eq true) then + sani class $cln force $Data.rdc_hot_$nrdc end + end if + if ($Data.flags.vean eq true) then + vean class $cln force $k_bor_$nrdc $k_cen_$nrdc end + end if + if ($Data.flags.xrdc eq true) then + xrdc class $cln force $Data.rdc_hot_$nrdc end + end if + evaluate ($nrdc = $nrdc + 1) +end loop rdc + +evaluate ($ndani=1) +while ($ndani <= $data.numdani) loop dani + if ($Data.flags.dani eq true) then + evaluate( $cln = "da" + encode($ndani) ) + dani class $cln force $Data.dan_hot_$ndani end + end if + evaluate ($ndani = $ndani + 1) +end loop dani + +evaluate ($npcs=1) +while ($npcs <= $data.numpcs) loop pcs + if ($Data.flags.xpcs eq true) then + evaluate( $cln = "pc" + encode($npcs) ) + xpcs class $cln force $Data.pcs_hot_$npcs end + end if + evaluate ($npcs= $npcs + 1) +end loop pcs + +evaluate ($reassign = TRUE) + +if ($Data.scaling eq TRUE) then + inline @RUN:set_noe_scale.cns +end if + +noe + scale dist $Data.unamb_hot + scale ambi $Data.amb_hot + scale hbon $Data.hbond_hot +end + +evaluate ($kinter = $SaProtocol.inter_init_rigid) +inline @RUN:scale_inter.cns + +dyna tors + reassign $reassign + timestep=$timestep + nstep=$calcsteps + nprint=$printsteps + ntrfrq=0 + tcoupling = true temperature = $bath +end + +evaluate ($reassign = FALSE) diff --git a/src/haddock/modules/flexref/cns/scale_inter.cns b/src/haddock/modules/flexref/cns/scale_inter.cns new file mode 100644 index 000000000..f8f86f494 --- /dev/null +++ b/src/haddock/modules/flexref/cns/scale_inter.cns @@ -0,0 +1,45 @@ +! scale_inter.cns +! Scaling of intermolecular interactions +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! +igroup interaction (not all) (not all) end + +igroup + + eval($nchain1 = 0) + + while ($nchain1 < $data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + + interaction (segid $Toppar.prot_segid_$nchain1 and not (resn ANI or resn DAN or resn XAN or resn DUM or resn SHA)) + (segid $Toppar.prot_segid_$nchain1 and not (resn ANI or resn DAN or resn XAN or resn DUM or resn SHA)) weight * $Toppar.int_$nchain1_$nchain1 end + interaction (segid $Toppar.prot_segid_$nchain1 and not (resn ANI or resn DAN or resn XAN or resn DUM or resn SHA)) + ((resn WAT or resn HOH or resn TIP* or resn DMS)) weight * 1.0 vdw $kinter elec $kinter end + + eval($nchain2 = $nchain1 ) + while ($nchain2 < $data.ncomponents) loop nloop2 + eval($nchain2 = $nchain2 + 1) + eval($scalfac = $kinter * $Toppar.int_$nchain1_$nchain2) + interaction (segid $Toppar.prot_segid_$nchain1 and not (resn ANI or resn DAN or resn XAN or resn DUM or resn SHA)) + (segid $Toppar.prot_segid_$nchain2 and not (resn ANI or resn DAN or resn XAN or resn DUM or resn SHA)) weight * 1.0 vdw $scalfac elec $scalfac end + end loop nloop2 + + end loop nloop1 + + interaction (resn ANI) (resn ANI) weight * 1.0 vdw 0.0 elec 0.0 end + interaction (resn DAN) (resn DAN) weight * 1.0 vdw 0.0 elec 0.0 end + interaction (resn XAN) (resn XAN) weight * 1.0 vdw 0.0 elec 0.0 end + interaction (resn DUM) (resn DUM) weight * 1.0 vdw 0.0 elec 0.0 end + interaction (resn SHA) (resn SHA) weight * 1.0 vdw 0.0 elec 0.0 end + interaction (resn SHA) (not resn SHA) weight * 0.0 end + + interaction ((resn WAT or resn HOH or resn TIP* or resn DMS)) ((resn WAT or resn HOH or resn TIP* or resn DMS)) weight * 1.0 end + +end diff --git a/src/haddock/modules/flexref/cns/scale_inter_final.cns b/src/haddock/modules/flexref/cns/scale_inter_final.cns new file mode 100644 index 000000000..557a0b30f --- /dev/null +++ b/src/haddock/modules/flexref/cns/scale_inter_final.cns @@ -0,0 +1,37 @@ +! scale_inter_final.cns +! Scaling of intermolecular interactions +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! +igroup interaction (not all) (not all) end + +igroup + + eval($nchain1 = 0) + + while ($nchain1 < $data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + eval($nchain2 = $nchain1 ) + while ($nchain2 < $data.ncomponents) loop nloop2 + eval($nchain2 = $nchain2 + 1) + eval($scalfac = $kinter * $Toppar.int_$nchain1_$nchain2) + interaction (segid $Toppar.prot_segid_$nchain1 and not (resn ANI or resn DAN or resn XAN or resn DUM or resn SHA)) + (segid $Toppar.prot_segid_$nchain2 and not (resn ANI or resn DAN or resn XAN or resn DUM or resn SHA)) weight * 1.0 vdw $scalfac elec $scalfac end + end loop nloop2 + + end loop nloop1 + + interaction (resn ANI) (resn ANI) weight * 1.0 vdw 0.0 elec 0.0 end + interaction (resn DAN) (resn DAN) weight * 1.0 vdw 0.0 elec 0.0 end + interaction (resn XAN) (resn XAN) weight * 1.0 vdw 0.0 elec 0.0 end + interaction (resn DUM) (resn DUM) weight * 1.0 vdw 0.0 elec 0.0 end + interaction (resn SHA) (resn SHA) weight * 1.0 vdw 0.0 elec 0.0 end + interaction (resn SHA) (not resn SHA) weight * 0.0 end + +end diff --git a/src/haddock/modules/flexref/cns/scale_inter_mini.cns b/src/haddock/modules/flexref/cns/scale_inter_mini.cns new file mode 100644 index 000000000..1731a7a1a --- /dev/null +++ b/src/haddock/modules/flexref/cns/scale_inter_mini.cns @@ -0,0 +1,37 @@ +! scale_inter_mini.cns +! Scaling of intermolecular interations +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! +igroup interaction (not all) (not all) end + +igroup + + eval($nchain1 = 0) + + while ($nchain1 < $data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + eval($nchain2 = $nchain1 ) + while ($nchain2 < $data.ncomponents) loop nloop2 + eval($nchain2 = $nchain2 + 1) + eval($scalfac = $kinter * $Toppar.int_$nchain1_$nchain2) + interaction (segid $Toppar.prot_segid_$nchain1 and not (resn ANI or resn DAN or resn XAN or resn DUM or resn SHA)) + (segid $Toppar.prot_segid_$nchain2 and not (resn ANI or resn DAN or resn XAN or resn DUM or resn SHA)) weight * 1.0 vdw $scalfac elec $scalfac end + end loop nloop2 + + end loop nloop1 + + interaction (resn ANI) (resn ANI) weight * 1.0 vdw 0.0 elec 0.0 end + interaction (resn DAN) (resn DAN) weight * 1.0 vdw 0.0 elec 0.0 end + interaction (resn XAN) (resn XAN) weight * 1.0 vdw 0.0 elec 0.0 end + interaction (resn DUM) (resn DUM) weight * 1.0 vdw 0.0 elec 0.0 end + interaction (resn SHA) (resn SHA) weight * 1.0 vdw 0.0 elec 0.0 end + interaction (resn SHA) (not resn SHA) weight * 0.0 end + +end diff --git a/src/haddock/modules/flexref/cns/scale_inter_only.cns b/src/haddock/modules/flexref/cns/scale_inter_only.cns new file mode 100644 index 000000000..4b3ab7c2c --- /dev/null +++ b/src/haddock/modules/flexref/cns/scale_inter_only.cns @@ -0,0 +1,18 @@ +igroup interaction (not all) (not all) end + +igroup + + eval($nchain1 = 0) + + while ($nchain1 < $data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + eval($nchain2 = $nchain1 ) + while ($nchain2 < $data.ncomponents) loop nloop2 + eval($nchain2 = $nchain2 + 1) + interaction (segid $Toppar.prot_segid_$nchain1) + (segid $Toppar.prot_segid_$nchain2) weight * 1.0 vdw $kinter elec $kinter end + end loop nloop2 + + end loop nloop1 + +end diff --git a/src/haddock/modules/flexref/cns/scale_intra_only.cns b/src/haddock/modules/flexref/cns/scale_intra_only.cns new file mode 100644 index 000000000..0fdb76bc1 --- /dev/null +++ b/src/haddock/modules/flexref/cns/scale_intra_only.cns @@ -0,0 +1,12 @@ +igroup + + eval($nchain1 = 0) + + while ($nchain1 < $data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + + interaction (segid $Toppar.prot_segid_$nchain1) (segid $Toppar.prot_segid_$nchain1) weight * 1.0 end + + end loop nloop1 + +end diff --git a/src/haddock/modules/flexref/cns/separate.cns b/src/haddock/modules/flexref/cns/separate.cns new file mode 100644 index 000000000..6c3ef50c0 --- /dev/null +++ b/src/haddock/modules/flexref/cns/separate.cns @@ -0,0 +1,238 @@ +! separate.cns +! Distribute molecules in 3D space +! Orient each molecule according to its principal axes +! and restore them all at the end (after the while loop) +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! +!Module(Data;Toppar;) + + ! first flag all fixed molecules + do (store4 = 0) (all) + evaluate ($ncount = 0) + while ($ncount < $data.ncomponents) loop orientmol + evaluate ($ncount = $ncount + 1) + if ($Toppar.fix_origin_$ncount eq true) then + do (store4 = 1) (segid $Toppar.prot_segid_$ncount) + end if + end loop orientmol + + evaluate ($xc = 0.0) + evaluate ($yc = 0.0) + evaluate ($zc = 0.0) + ! then define the geometrical center of the fixed molecules if present + show sum (store4) (all) + if ($result > 0) then + show ave (x) (attribute store4 = 1) + evaluate ($xc = $result) + show ave (y) (attribute store4 = 1) + evaluate ($yc = $result) + show ave (z) (attribute store4 = 1) + evaluatee ($zc = $result) + end if + + do (xcomp = x) (all) + do (ycomp = y) (all) + do (zcomp = z) (all) + + ! then orient each moving molecule separately at the origin + ! and translate it to the geometric center of the fixed molecules + evaluate ($ncount = 0) + while ($ncount < $data.ncomponents) loop orientmol + evaluate ($ncount = $ncount +1) + eval($watersegname_$ncount="WA" + encode($ncount)) + if ($Toppar.fix_origin_$ncount eq false) then + coor orient sele=(segid $Toppar.prot_segid_$ncount or segid $watersegname_$ncount) end + coor sele=(segid $Toppar.prot_segid_$ncount or segid $watersegname_$ncount) translate vector = ($xc $yc $zc) end + do (xcomp = x) (segid $Toppar.prot_segid_$ncount or segid $watersegname_$ncount) + do (ycomp = y) (segid $Toppar.prot_segid_$ncount or segid $watersegname_$ncount) + do (zcomp = z) (segid $Toppar.prot_segid_$ncount or segid $watersegname_$ncount) + end if + end loop orientmol + + do (x = xcomp) (not (resn ANI or resn XAN or resn DAN)) + do (y = ycomp) (not (resn ANI or resn XAN or resn DAN)) + do (z = zcomp) (not (resn ANI or resn XAN or resn DAN)) + + ! Find the largest axis of all molecules + evaluate ($minispacing = 25.0) + evaluate ($mxdim = 0) + evaluate ($ncount = 0) + + while ($ncount < $data.ncomponents) loop findmax + evaluate ($ncount = $ncount +1) + + if ($Toppar.shape_$ncount eq false) then + + show max (x) (segid $Toppar.prot_segid_$ncount or segid $watersegname_$ncount) + evaluate ($xdim = $result) + show min (x) (segid $Toppar.prot_segid_$ncount or segid $watersegname_$ncount) + evaluate ($xdim = $xdim - $result) + + show max (y) (segid $Toppar.prot_segid_$ncount or segid $watersegname_$ncount) + evaluate ($ydim = $result) + show min (y) (segid $Toppar.prot_segid_$ncount or segid $watersegname_$ncount) + evaluate ($ydim = $ydim - $result) + + show max (z) (segid $Toppar.prot_segid_$ncount or segid $watersegname_$ncount) + evaluate ($zdim = $result) + show min (z) (segid $Toppar.prot_segid_$ncount or segid $watersegname_$ncount) + evaluate ($zdim = $zdim - $result) + + ! Check which dimension (x,y,z) is the largest = mxdim + evaluate ($mxdim = max($mxdim, $xdim, $ydim, $zdim)) + + end if + + end loop findmax + + evaluate ($spacing = $minispacing + $mxdim ) + display SPACING SET TO $spacing ANGSTROM + + ! This has to be manually coded because of the variable name + ! Should be fine since we support only a few types of symmetry + ! Maybe change the variable name later if these are expanded + ! to have the number at the end? + + inline @RUN:check-homomers.cns + + if ($homosymmetry eq true) then + ! In case of homosymmetry, place molecules in a plane + do (store4 = 0) (all) + evaluate ($ncount = 0) + while ($ncount < $data.ncomponents) loop orientmol + evaluate ($ncount = $ncount + 1) + if ($Toppar.fix_origin_$ncount eq false) then + do (store4 = 1) (segid $Toppar.prot_segid_$ncount) + end if + end loop orientmol + + {* translate and generate symmetric positions by rotation around z *} + coor trans sele=(attr store4=1) vector=($spacing,0,0) end + + ! if one molecule is fixed (e.g. plane), move all others along z-axis + !if ($data.ncomponents > $n_moving_mol) then + ! coor trans sele=(attr store4=1) vector=(0,0,$spacing) end + !end if + + evaluate ($ncount = 2) + evaluate ($increment = 360/$n_moving_mol) + while ($ncount le $data.ncomponents) loop orientsym + + if ($Toppar.fix_origin_$ncount eq false) then + + {* rotate around z axis *} + evaluate ($xr = $increment) + evaluate ($x1 = cos($xr)) + evaluate ($x2 = -sin($xr)) + evaluate ($x3 = 0 ) + evaluate ($y1 = sin($xr)) + evaluate ($y2 = cos($xr)) + evaluate ($y3 = 0 ) + evaluate ($z1 = 0 ) + evaluate ($z2 = 0 ) + evaluate ($z3 = 1 ) + coor + center=(0 0 0) + rotate matrix=($x1 $x2 $x3) ($y1 $y2 $y3) ($z1 $z2 $z3) + sele=(segid $Toppar.prot_segid_$ncount or segid $watersegname_$ncount) + end + evaluate ($increment = $xr + 360/$n_moving_mol) + + end if + evaluate ($ncount = $ncount + 1) + + end loop orientsym + + else + ! Do we need fix any molecule? + evaluate($n_moving_mol = 0) + evaluate ($ncount = 0) + while ($ncount < $data.ncomponents) loop centermol + evaluate ($ncount = $ncount + 1) + if ($Toppar.fix_origin_$ncount eq false) then + evaluate($n_moving_mol = $n_moving_mol + 1) + end if + end loop centermol + + ! Translate molecules to positions calculated using an algorithm + ! based on minimization of electrostatic potential of N equally charged particles. + ! See Thomson problem: http://en.wikipedia.org/wiki/Thomson_problem +! evaluate ($filename = "RUN:toppar/initial_positions/trans_vector_" + encode($n_moving_mol) ) +! evaluate ($filename = "toppar/initial_positions/trans_vector_" + encode($n_moving_mol) ) + evaluate ($encode_moving_mol = encode($n_moving_mol)) + evaluate ($filename = $trans_vector_$$encode_moving_mol) + inline @@$filename + + ! Logic: + ! Assign a random number larger than 0 to every molecule + ! Assign 0.0 to fixed molecules + ! For every i up to the number of molecules + ! pick the mol with the largest number and displace it + ! then zero its number. + ! This will place molecules in space sort of randomly + ! Stop when the sum of all numbers is zero + + ! Generate as many random numbers as the # of mols + evaluate ($ncount = 0) + while ($ncount < $data.ncomponents) loop genrandom + evaluate ($ncount = $ncount + 1) + if ($Toppar.fix_origin_$ncount eq true) then + evaluate ($random_$ncount = 0.0) + else + evaluate ($random_$ncount = random()) + end if + end loop genrandom + + ! Randomly pick a molecule and place it + ! on the pre-defined position - iterate + evaluate ($sum_random = 999) + evaluate ($molcounter = 1) + + while ($sum_random > 0) loop placemol + evaluate ($maximum = 0) + evaluate ($maxid = 0) + evaluate ($ncount = 0) + + ! Select molecule with largest random number + while ($ncount < $data.ncomponents) loop selectmol + evaluate ($ncount = $ncount + 1) + if ($random_$ncount > $maximum) then + evaluate ($maximum = $random_$ncount) + evaluate ($maxid = $ncount) + end if + end loop selectmol + display $maxid + if ($Toppar.fix_origin_$maxid eq false) then + coor trans + sele=(segid $Toppar.prot_segid_$maxid or segid $watersegname_$maxid) + vector=($x_$molcounter, $y_$molcounter, $z_$molcounter) end + + ! Reset random_ncount to 0 to avoid re-selecting + evaluate ($random_$maxid = 0) + + ! Increment molcounter to update new + evaluate ($molcounter = $molcounter + 1) + + ! Update sum_random + evaluate ($ncount = 0) + evaluate ($sum_random = 0) + + while ($ncount < $data.ncomponents) loop resetsumrandom + evaluate ($ncount = $ncount + 1) + evaluate( $sum_random = $sum_random + $random_$ncount) + end loop resetsumrandom + end if + end loop placemol + end if + + do (x = refx) (resn ANI or resn DAN or resn XAN) + do (y = refy) (resn ANI or resn DAN or resn XAN) + do (z = refz) (resn ANI or resn DAN or resn XAN) + diff --git a/src/haddock/modules/flexref/cns/set_noe_scale.cns b/src/haddock/modules/flexref/cns/set_noe_scale.cns new file mode 100644 index 000000000..e4d65cc0e --- /dev/null +++ b/src/haddock/modules/flexref/cns/set_noe_scale.cns @@ -0,0 +1,82 @@ +! set_noe_scale.cns +! Set the distance restraint force constant +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! +evaluate ($enoe = 0.0 ) +evaluate ($vdw = 0.0 ) +evaluate ($elec = 0.0 ) +evaluate ($einter = 0.0 ) +evaluate ($noescale = 1.0 ) + +if ($Data.flags.sym ne true) then + print threshold=0.5 noe + evaluate ($numnoe=$violations) + + if ($Data.totnoe_amb > 0) then + evaluate ($ambcorr = min(1.0,max(0.0,($numnoe / $Data.totnoe_amb)))) + if ($ambcorr = 0) then + evaluate ($ambcorr = 1) + end if + else + evaluate ($ambcorr = 1) + end if + + if ($Data.totnoe_unamb > 0) then + evaluate ($unambcorr = min(1.0,max(0.0,($numnoe / $Data.totnoe_unamb)))) + if ($unambcorr = 0) then + evaluate ($unambcorr = 1) + end if + else + evaluate ($unambcorr = 1) + end if +else + evaluate ($unambcorr = 1) + evaluate ($ambcorr = 1) +end if + +eval ($nchain1 = 0) +igroup + while ($nchain1 < $data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + eval($nchain2 = $nchain1) + while ($nchain2 < $data.ncomponents) loop nloop2 + eval($nchain2 = $nchain2 + 1) + interaction (segid $Toppar.prot_segid_$nchain1) + (segid $Toppar.prot_segid_$nchain2) weights * 1 end + end loop nloop2 + end loop nloop1 + interaction (resn DUM) (not resn DUM) weight * 0.0 end + interaction (resn SHA) (not resn SHA) weight * 0.0 end +end + +energy end +igroup + interaction (not (resn ANI or resn DAN or resn XAN or resn DUM or resn SHA)) + (not (resn ANI or resn DAN or resn XAN or resn DUM or resn SHA)) weight * 1 end +end + +evaluate ($einter = abs($vdw + $elec)) +evaluate ($enoe = $noe) + +if ($enoe ne 0) then + evaluate ($noescale = min(5000, (2 * $einter / $enoe))) + if ($noescale ne 0) then + evaluate ($Data.unamb_hot = $Data.unamb_hot * $noescale * $unambcorr) + evaluate ($Data.amb_hot = $Data.amb_hot * $noescale * $ambcorr) + evaluate ($Data.unamb_cool1 = $Data.unamb_cool1 * $noescale * $unambcorr) + evaluate ($Data.amb_cool1 = $Data.amb_cool1 * $noescale * $ambcorr) + evaluate ($Data.unamb_cool2 = $Data.unamb_cool2 * $noescale * $unambcorr) + evaluate ($Data.amb_cool2 = $Data.amb_cool2 * $noescale * $ambcorr) + evaluate ($Data.unamb_cool3 = $Data.unamb_cool3 * $noescale * $unambcorr) + evaluate ($Data.amb_cool3 = $Data.amb_cool3 * $noescale * $ambcorr) + end if +end if + diff --git a/src/haddock/modules/flexref/cns/setflags.cns b/src/haddock/modules/flexref/cns/setflags.cns new file mode 100644 index 000000000..b0559f9d4 --- /dev/null +++ b/src/haddock/modules/flexref/cns/setflags.cns @@ -0,0 +1,93 @@ +! setflags.cns +! Defines energy flags +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + +if ($Data.cdih.on eq true) then + evaluate ($Data.flags.cdih = true) +end if + +evaluate ($nrdc=1) +while ($nrdc <= $Data.numrdc) loop rdc + if ($Data.rdc_choice_$nrdc eq "SANI") then + evaluate ($Data.flags.sani = true) + end if + if ($Data.rdc_choice_$nrdc eq "VANGLE") then + evaluate ($Data.flags.vean = true) + end if + if ($Data.rdc_choice_$nrdc eq "XRDC") then + evaluate ($Data.flags.xrdc = true) + end if + evaluate ($nrdc=$nrdc+1) +end loop rdc + +evaluate ($ndani=1) +while ($ndani <= $Data.numdani) loop dani + if ($Data.dan_choice_$ndani eq "DANI") then + evaluate ($Data.flags.DANI = true) + end if + evaluate ($ndani=$ndani+1) +end loop dani + +evaluate ($npcs=1) +while ($npcs <= $Data.numpcs) loop pcs + if ($Data.pcs_choice_$npcs eq "XPCS") then + evaluate ($Data.flags.XPCS = true) + end if + evaluate ($npcs=$npcs+1) +end loop pcs + +if ($Data.flags.sani eq TRUE) then + evaluate ($Data.flags.harm = true) +end if +if ($Data.flags.dani eq TRUE) then + evaluate ($Data.flags.harm = true) +end if + +if ($Data.flags.noe = TRUE) then + flags include noe end +elseif ($Data.flags.centroids = true) then + flags include noe end +end if + +if ($Data.flags.cdih = TRUE) then + flags include cdih end +end if +if ($Data.flags.vean = TRUE) then + flags include vean end +end if +if ($Data.flags.sani = TRUE) then + flags include sani end +end if +if ($Data.flags.xrdc = TRUE) then + flags include xrdc end +end if +if ($Data.flags.xpcs = TRUE) then + flags include xpcs end +end if +if ($Data.flags.dani = TRUE) then + flags include dani end +end if + +if ($Data.flags.plan = TRUE) then + flags include plan end +end if +if ($Data.flags.ncs = TRUE) then + flags include ncs end +end if + +if ($Data.flags.rg = TRUE) then + if ($data.rgtarg > 0) then + flags include coll end + else + evaluate ($Data.flags.rg = false) + end if +end if diff --git a/src/haddock/modules/flexref/cns/surf-restraints.cns b/src/haddock/modules/flexref/cns/surf-restraints.cns new file mode 100644 index 000000000..a1b159cab --- /dev/null +++ b/src/haddock/modules/flexref/cns/surf-restraints.cns @@ -0,0 +1,71 @@ +! surf-restraints.cns +! Define surface contact restraints +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! +!define surface contact restraints between all molecules +!using distance restraints between CA atoms with sum averaging + + set echo=on message=on end + + eval($nchain = 0) + do (store9 = 0) (all) + do (store9 = 1) (name CA or name BB or name N1) + while ($nchain < $data.ncomponents) loop nloop0 + eval($nchain = $nchain + 1) + show sum (store9) (segid $Toppar.prot_segid_$nchain) + if ($result < 3) then + evaluate ($selat$nchain = 0) + evaluate ($dist$nchain = 1.0) + else + evaluate ($selat$nchain = 1) + evaluate ($dist$nchain = 3.5) + end if + end loop nloop0 + + eval($nchain1 = 0) + noe class surface + while ($nchain1 < $data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + eval($nchain2 = $nchain1 ) + while ($nchain2 < $data.ncomponents) loop nloop2 + eval($nchain2 = $nchain2 + 1) + evaluate ($updist = $dist$nchain1 + $dist$nchain2) + if ($selat$nchain1 = 1) then + if ($selat$nchain2 = 1) then + assign (segid $Toppar.prot_segid_$nchain1 and ( name CA or name BB or name N1 )) + (segid $Toppar.prot_segid_$nchain2 and ( name CA or name BB or name N1 )) $updist $updist 1.0 + else + assign (segid $Toppar.prot_segid_$nchain1 and ( name CA or name BB or name N1 )) + (segid $Toppar.prot_segid_$nchain2) $updist $updist 1.0 + end if + else + if ($selat$nchain2 = 1) then + assign (segid $Toppar.prot_segid_$nchain1) + (segid $Toppar.prot_segid_$nchain2 and ( name CA or name BB or name N1 )) $updist $updist 1.0 + else + assign (segid $Toppar.prot_segid_$nchain1) + (segid $Toppar.prot_segid_$nchain2) $updist $updist 1.0 + end if + end if + end loop nloop2 + end loop nloop1 + + averaging surface sum + scale surface $Data.ksurf + sqconstant surface 1.0 + sqexponent surface 2 + soexponent surface 1 + rswitch surface 1.0 + sqoffset surface 0.0 + asymptote surface 2.0 + msoexponent surface 1 + masymptote surface -0.1 + mrswitch surface 1.0 + end diff --git a/src/haddock/modules/flexref/cns/symmultimer.cns b/src/haddock/modules/flexref/cns/symmultimer.cns new file mode 100644 index 000000000..a1d3a8b43 --- /dev/null +++ b/src/haddock/modules/flexref/cns/symmultimer.cns @@ -0,0 +1,304 @@ +!$Revision: 1.0 $ +!$Date: 2003/02/19 08:14:08 $ +!$RCSfile: symdimer.cns,v $ + +! Define NCS restraints for symmetrical multimers +if ($Data.flags.ncs eq true) then + + ncs restraints + initialize + eval ($ncount = 0) + while ($ncount < $data.numncs) loop ncsloop + eval ($ncount = $ncount + 1) + group + equi (resid $Toppar.ncs_sta1_$ncount : $Toppar.ncs_end1_$ncount and segid $Toppar.ncs_seg1_$ncount) + equi (resid $Toppar.ncs_sta2_$ncount : $Toppar.ncs_end2_$ncount and segid $Toppar.ncs_seg2_$ncount) + weight = $Data.kncs + end + end loop ncsloop + ? + end + +end if + +! Define C2 symmetry restraints for symmetrical multimers +! +if ($Data.flags.sym eq true) then + + noe class symm end + + eval ($ncount = 0) + while ($ncount < $data.numc2sym) loop c2symloop + + eval ($ncount = $ncount + 1) + evaluate ($i1start = decode($Toppar.c2sym_sta1_$ncount)) + evaluate ($i1end = decode($Toppar.c2sym_end1_$ncount)) + evaluate ($chain1 = $Toppar.c2sym_seg1_$ncount) + evaluate ($i2start = decode($Toppar.c2sym_sta2_$ncount)) + evaluate ($i2end = decode($Toppar.c2sym_end2_$ncount)) + evaluate ($chain2 = $Toppar.c2sym_seg2_$ncount) + + !first check that the chain lengths are equal for the two defined molecules + evaluate ($diff1 = $i1end - $i1start) + evaluate ($diff2 = $i2end - $i2start) + if ($diff1 ne $diff2) then + display CHAIN LENGHT FOR SYMMETRY RESTRAINTS DO NOT MATCH + display PLEASE CHECK CAREFULLY YOUR INPUT + display ... stopping ... + stop + end if + + eval ($icount = 0) + while ($i1start < $i1end) loop genc2sym + + evaluate ($resid1 = $i1start) + evaluate ($resid2 = $i2end - $icount) + evaluate ($resid3 = $i2start) + evaluate ($resid4 = $i1end - $icount) + + noe + assign (resid $resid1 and name CA and segid $chain1) + (resid $resid2 and name CA and segid $chain2) 0 0 0 + assign (resid $resid3 and name CA and segid $chain2) + (resid $resid4 and name CA and segid $chain1) 0 0 0 + end + + evaluate ($icount = $icount + 1) + evaluate ($i1start = $i1start + 1) + evaluate ($i2start = $i2start + 1) + + end loop genc2sym + + end loop c2symloop + + +! Define C3 symmetry restraints for symmetrical multimers +! + + eval ($ncount = 0) + while ($ncount < $data.numc3sym) loop c3symloop + + eval ($ncount = $ncount + 1) + evaluate ($i1start = decode($Toppar.c3sym_sta1_$ncount)) + evaluate ($i1end = decode($Toppar.c3sym_end1_$ncount)) + evaluate ($chain1 = $Toppar.c3sym_seg1_$ncount) + evaluate ($i2start = decode($Toppar.c3sym_sta2_$ncount)) + evaluate ($i2end = decode($Toppar.c3sym_end2_$ncount)) + evaluate ($chain2 = $Toppar.c3sym_seg2_$ncount) + evaluate ($i3start = decode($Toppar.c3sym_sta3_$ncount)) + evaluate ($i3end = decode($Toppar.c3sym_end3_$ncount)) + evaluate ($chain3 = $Toppar.c3sym_seg3_$ncount) + + !first check that the chain lengths are equal for the two defined molecules + evaluate ($diff1 = $i1end - $i1start) + evaluate ($diff2 = $i2end - $i2start) + evaluate ($diff3 = $i3end - $i3start) + if ($diff1 ne $diff2) then + display CHAIN LENGHT FOR SYMMETRY RESTRAINTS DO NOT MATCH + display PLEASE CHECK CAREFULLY YOUR INPUT + display ... stopping ... + stop + end if + if ($diff1 ne $diff3) then + display CHAIN LENGHT FOR SYMMETRY RESTRAINTS DO NOT MATCH + display PLEASE CHECK CAREFULLY YOUR INPUT + display ... stopping ... + stop + end if + if ($diff2 ne $diff3) then + display CHAIN LENGHT FOR SYMMETRY RESTRAINTS DO NOT MATCH + display PLEASE CHECK CAREFULLY YOUR INPUT + display ... stopping ... + stop + end if + + eval ($icount = 0) + while ($i1start < $i1end) loop genc3sym + + evaluate ($resst1 = $i1start) + evaluate ($resst2 = $i2start) + evaluate ($resst3 = $i3start) + evaluate ($resen1 = $i1end - $icount) + evaluate ($resen2 = $i2end - $icount) + evaluate ($resen3 = $i3end - $icount) + + noe + + assign (resid $resst1 and name CA and segid $chain1) + (resid $resen2 and name CA and segid $chain2) 0 0 0 + assign (resid $resst2 and name CA and segid $chain2) + (resid $resen3 and name CA and segid $chain3) 0 0 0 + + assign (resid $resst2 and name CA and segid $chain2) + (resid $resen3 and name CA and segid $chain3) 0 0 0 + assign (resid $resst3 and name CA and segid $chain3) + (resid $resen1 and name CA and segid $chain1) 0 0 0 + + assign (resid $resst3 and name CA and segid $chain3) + (resid $resen1 and name CA and segid $chain1) 0 0 0 + assign (resid $resst1 and name CA and segid $chain1) + (resid $resen2 and name CA and segid $chain2) 0 0 0 + + end + + evaluate ($icount = $icount + 2) + evaluate ($i1start = $i1start + 2) + evaluate ($i2start = $i2start + 2) + evaluate ($i3start = $i3start + 2) + + end loop genc3sym + + end loop c3symloop + +! Define C5 symmetry restraints for symmetrical multimers +! + + eval ($ncount = 0) + while ($ncount < $data.numc5sym) loop c5symloop + + eval ($ncount = $ncount + 1) + evaluate ($i1start = decode($Toppar.c5sym_sta1_$ncount)) + evaluate ($i1end = decode($Toppar.c5sym_end1_$ncount)) + evaluate ($chain1 = $Toppar.c5sym_seg1_$ncount) + evaluate ($i2start = decode($Toppar.c5sym_sta2_$ncount)) + evaluate ($i2end = decode($Toppar.c5sym_end2_$ncount)) + evaluate ($chain2 = $Toppar.c5sym_seg2_$ncount) + evaluate ($i3start = decode($Toppar.c5sym_sta3_$ncount)) + evaluate ($i3end = decode($Toppar.c5sym_end3_$ncount)) + evaluate ($chain3 = $Toppar.c5sym_seg3_$ncount) + evaluate ($i4start = decode($Toppar.c5sym_sta4_$ncount)) + evaluate ($i4end = decode($Toppar.c5sym_end4_$ncount)) + evaluate ($chain4 = $Toppar.c5sym_seg4_$ncount) + evaluate ($i5start = decode($Toppar.c5sym_sta5_$ncount)) + evaluate ($i5end = decode($Toppar.c5sym_end5_$ncount)) + evaluate ($chain5 = $Toppar.c5sym_seg5_$ncount) + + !first check that the chain lengths are equal for the two defined molecules + evaluate ($diff1 = $i1end - $i1start) + evaluate ($diff2 = $i2end - $i2start) + evaluate ($diff3 = $i3end - $i3start) + evaluate ($diff4 = $i4end - $i4start) + evaluate ($diff5 = $i5end - $i5start) + if ($diff1 ne $diff2) then + display CHAIN LENGHT FOR SYMMETRY RESTRAINTS DO NOT MATCH + display PLEASE CHECK CAREFULLY YOUR INPUT + display ... stopping ... + stop + end if + if ($diff1 ne $diff3) then + display CHAIN LENGHT FOR SYMMETRY RESTRAINTS DO NOT MATCH + display PLEASE CHECK CAREFULLY YOUR INPUT + display ... stopping ... + stop + end if + if ($diff2 ne $diff3) then + display CHAIN LENGHT FOR SYMMETRY RESTRAINTS DO NOT MATCH + display PLEASE CHECK CAREFULLY YOUR INPUT + display ... stopping ... + stop + end if + if ($diff3 ne $diff4) then + display CHAIN LENGHT FOR SYMMETRY RESTRAINTS DO NOT MATCH + display PLEASE CHECK CAREFULLY YOUR INPUT + display ... stopping ... + stop + end if + if ($diff4 ne $diff5) then + display CHAIN LENGHT FOR SYMMETRY RESTRAINTS DO NOT MATCH + display PLEASE CHECK CAREFULLY YOUR INPUT + display ... stopping ... + stop + end if + + eval ($icount = 0) + while ($i1start < $i1end) loop genc5sym + + evaluate ($resst1 = $i1start) + evaluate ($resst2 = $i2start) + evaluate ($resst3 = $i3start) + evaluate ($resst4 = $i4start) + evaluate ($resst5 = $i5start) + evaluate ($resen1 = $i1end - $icount) + evaluate ($resen2 = $i2end - $icount) + evaluate ($resen3 = $i3end - $icount) + evaluate ($resen4 = $i4end - $icount) + evaluate ($resen5 = $i5end - $icount) + + noe +{ + assign (resid $resst1 and name CA and segid $chain1) + (resid $resen2 and name CA and segid $chain2) 0 0 0 + assign (resid $resst2 and name CA and segid $chain2) + (resid $resen3 and name CA and segid $chain3) 0 0 0 + + assign (resid $resst2 and name CA and segid $chain2) + (resid $resen3 and name CA and segid $chain3) 0 0 0 + assign (resid $resst3 and name CA and segid $chain3) + (resid $resen4 and name CA and segid $chain4) 0 0 0 + + assign (resid $resst3 and name CA and segid $chain3) + (resid $resen4 and name CA and segid $chain4) 0 0 0 + assign (resid $resst4 and name CA and segid $chain4) + (resid $resen5 and name CA and segid $chain5) 0 0 0 + + assign (resid $resst4 and name CA and segid $chain4) + (resid $resen5 and name CA and segid $chain5) 0 0 0 + assign (resid $resst5 and name CA and segid $chain5) + (resid $resen1 and name CA and segid $chain1) 0 0 0 + + assign (resid $resst5 and name CA and segid $chain5) + (resid $resen1 and name CA and segid $chain1) 0 0 0 + assign (resid $resst1 and name CA and segid $chain1) + (resid $resen2 and name CA and segid $chain2) 0 0 0 +} + assign (resid $resst1 and name CA and segid $chain1) + (resid $resst3 and name CA and segid $chain3) 0 0 0 + assign (resid $resst1 and name CA and segid $chain1) + (resid $resst4 and name CA and segid $chain4) 0 0 0 + + assign (resid $resst2 and name CA and segid $chain2) + (resid $resst4 and name CA and segid $chain4) 0 0 0 + assign (resid $resst2 and name CA and segid $chain2) + (resid $resst5 and name CA and segid $chain5) 0 0 0 + + assign (resid $resst3 and name CA and segid $chain3) + (resid $resst5 and name CA and segid $chain5) 0 0 0 + assign (resid $resst3 and name CA and segid $chain3) + (resid $resst1 and name CA and segid $chain1) 0 0 0 + + assign (resid $resst4 and name CA and segid $chain4) + (resid $resst1 and name CA and segid $chain1) 0 0 0 + assign (resid $resst4 and name CA and segid $chain4) + (resid $resst2 and name CA and segid $chain2) 0 0 0 + + assign (resid $resst5 and name CA and segid $chain5) + (resid $resst2 and name CA and segid $chain2) 0 0 0 + assign (resid $resst5 and name CA and segid $chain5) + (resid $resst3 and name CA and segid $chain3) 0 0 0 + + end + + evaluate ($icount = $icount + 2) + evaluate ($i1start = $i1start + 2) + evaluate ($i2start = $i2start + 2) + evaluate ($i3start = $i3start + 2) + evaluate ($i4start = $i4start + 2) + evaluate ($i5start = $i5start + 2) + + end loop genc5sym + + end loop c5symloop + + + noe + potential symm symmetry + scale symm $Data.ksym + sqconstant symm 1.0 + sqexponent symm 2 + soexponent symm 1 + rswitch symm 0.5 + sqoffset symm 0.0 + asymptote symm 1.0 + end + +end if diff --git a/src/haddock/modules/flexref/cns/torsiontop.cns b/src/haddock/modules/flexref/cns/torsiontop.cns new file mode 100644 index 000000000..db0452592 --- /dev/null +++ b/src/haddock/modules/flexref/cns/torsiontop.cns @@ -0,0 +1,130 @@ +! torsiontop.cns +! Create the topology for torsion angle MD first stage +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + +evaluate ($nfletot = 150) +!define flexible segments: +!display CALLING flex_segment.cns FOR RIGID BODY SA +inline @RUN:flex_segment.cns + +evaluate ($numtrees=$data.ncomponents) +!@RUN:numtrees.cns(numtrees=$numtrees; Data; Toppar;) +!@RUN:numtrees.cns +inline @RUN:numtrees.cns + + +DISPLAY NUMTREES set to $numtrees + +dyna tors + topology + maxtree $numtrees + kdihmax = 23. + + evaluate ($N_atom_id = 0) + evaluate ($atom_id = 0) + + for $atom_id in id ( name CA ) loop main + if ( $N_atom_id > 0 ) then + fix group + (( byresidue ( id $N_atom_id ) and + (name C or name O {or (name CA or name BB)} )) + or ( byresidue ( id $atom_id ) and + (((name N or name HN {or (name CA or name BB)}) {and not resn pro}) + {or (( name N or name CD or (name CA or name BB) ) and resn pro)}))) + end if + evaluate ($N_atom_id = $atom_id) + end loop main + if ( $atom_id > 0 ) then + fix group + ( byresidue ( id $atom_id ) + and (name c or name ot1 or name ot2 {or (name CA or name BB)} )) + end if + + for $atom_id in id ( name BB and not (resn PHE or resn TYR or resn TRP or resn HIS or resn ARG or resn LYS)) loop main + if ( $atom_id > 0 ) then + fix group ( byresidue ( id $atom_id )) + end if + end loop main + + for $atom_id in id + ( (name CA or name BB) and (resn phe or resn trp or resn his or resn asp or resn asn or resn nep)) + loop main + fix group + ( byresidue ( id $atom_id ) + and ({name CB or} name CG or name %D* or + name %Z* or name %E* or name %H* or name SC# )) + end loop main + for $atom_id in id + ( (name CA or name BB) and (resn tyr)) + loop main + fix group + ( byresidue ( id $atom_id ) + and ({name CB or} name CG or name %D* or + name %Z* or name %E* or name OH or name SC# )) + end loop main + for $atom_id in id + ( (name CA or name BB) and (resn gln or resn glu)) + loop main + fix group + ( byresidue ( id $atom_id ) + and ({name CG or} name %D* or name %E*)) + end loop main + for $atom_id in id + ( (name CA or name BB) and (resn arg)) + loop main + fix group + ( byresidue ( id $atom_id ) + and ({name CD or} name %E* or name %Z* or name %H* or name SC# )) + end loop main + fix group ( resn PRO and not (name c or name o) ) + + !next loop is for all sugars defined in glycans-uu.top + for $atom_id in id + ( name c1 and (resn GCP or resn GCF or resn GTP or resn GTF or resn MNP + or resn MNF or resn ALP or resn ALF or resn ARP or resn ARF or resn GLP + or resn GLF or resn IDP or resn IDF or resn TLP or resn TLF or resn PCP + or resn PCF or resn FTP or resn FTF or resn SBP or resn SBF or resn TTP + or resn TTF or resn NAA or resn RBP or resn RBF or resn ANF or resn XLF + or resn LXF or resn RLF or resn LLF)) + loop main + fix group + ( byresidue ( id $atom_id ) + and (name %1 or name %2 or name %3 or name %4 or name %5 or name O5)) + end loop main + + for $id in id (name C1') loop freeribose + free bond (id $id) (byresid (id $id) and name C2') + end loop freeribose + + fix group ( resn HEC and (name C1* or name C2* or name C3* or name C4* or name N* or name CH*)) + + fix group ( resn CYM and not (name CA or name BB or name C or name O or name OXT or + name N or name HN or name HA or name CB or name HB1 or name HB2 or + name SG or name SAL or name CAJ)) + + fix group ( byresidue (resn WAT)) + fix group ( byresidue (resn HOH)) + fix group ( byresidue (resn TIP*)) + fix group ( byresidue (resn ANI)) + fix group ( byresidue (resn DAN)) + fix group ( byresidue (resn XAN)) + fix group (resn SHA) + + eval($nchain1 = 0) + while ($nchain1 < $data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + fix group (segid $Toppar.prot_segid_$nchain1 and + not (attribute store5 = $nchain1) + and not ((resn WAT or resn HOH or resn TIP*))) + end loop nloop1 + end +end diff --git a/src/haddock/modules/flexref/cns/torsiontop_flex.cns b/src/haddock/modules/flexref/cns/torsiontop_flex.cns new file mode 100644 index 000000000..f5e5d1328 --- /dev/null +++ b/src/haddock/modules/flexref/cns/torsiontop_flex.cns @@ -0,0 +1,126 @@ +! torsiontop_flex.cns +! Set the topology for torsion angle MD with semi-flexible side-chains +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! +evaluate ($nfletot = 150) +!define flexible segments: +!display CALLING flex_segment_side.cns FOR SEMI-FLEXIBLE SA WITH SIDE-CHAINS +inline @RUN:flex_segment_side.cns + +evaluate ($numtrees=$data.ncomponents) +!@RUN:numtrees.cns(numtrees=$numtrees; Data; Toppar;) +inline @RUN:numtrees.cns + +DISPLAY NUMTREES set to $numtrees + +dyna tors + topology + maxtree $numtrees + kdihmax = 23. + evaluate ($N_atom_id = 0) + evaluate ($atom_id = 0) + + for $atom_id in id ( (name CA or name BB) ) loop main + if ( $N_atom_id > 0 ) then + fix group + (( byresidue ( id $N_atom_id ) and + (name C or name O {or (name CA or name BB)} )) + or ( byresidue ( id $atom_id ) and + (((name N or name HN {or (name CA or name BB)}) {and not resn pro}) + {or (( name N or name CD or (name CA or name BB) ) and resn pro)}))) + end if + evaluate ($N_atom_id = $atom_id) + end loop main + if ( $atom_id > 0 ) then + fix group + ( byresidue ( id $atom_id ) + and (name c or name ot1 or name ot2 {or (name CA or name BB)} )) + end if + + for $atom_id in id ( name BB and not (resn PHE or resn TYR or resn TRP or resn HIS or resn ARG or resn LYS)) loop main + if ( $atom_id > 0 ) then + fix group ( byresidue ( id $atom_id )) + end if + end loop main + + for $atom_id in id + ( (name CA or name BB) and (resn phe or resn trp or resn his or resn asp or resn asn or resn nep)) + loop main + fix group + ( byresidue ( id $atom_id ) + and ({name CB or} name CG or name %D* or + name %Z* or name %E* or name %H* or name SC# )) + end loop main + for $atom_id in id + ( (name CA or name BB) and (resn tyr)) + loop main + fix group + ( byresidue ( id $atom_id ) + and ({name CB or} name CG or name %D* or + name %Z* or name %E* or name OH or name SC# )) + end loop main + for $atom_id in id + ( (name CA or name BB) and (resn gln or resn glu)) + loop main + fix group + ( byresidue ( id $atom_id ) + and ({name CG or} name %D* or name %E*)) + end loop main + for $atom_id in id + ( (name CA or name BB) and (resn arg)) + loop main + fix group + ( byresidue ( id $atom_id ) + and ({name CD or} name %E* or name %Z* or name %H* or name SC# )) + end loop main + fix group ( resn PRO and not (name c or name o) ) + + !next loop is for all sugars defined in glycans-uu.top + for $atom_id in id + ( name c1 and (resn GCP or resn GCF or resn GTP or resn GTF or resn MNP + or resn MNF or resn ALP or resn ALF or resn ARP or resn ARF or resn GLP + or resn GLF or resn IDP or resn IDF or resn TLP or resn TLF or resn PCP + or resn PCF or resn FTP or resn FTF or resn SBP or resn SBF or resn TTP + or resn TTF or resn NAA or resn RBP or resn RBF or resn ANF or resn XLF + or resn LXF or resn RLF or resn LLF)) + loop main + fix group + ( byresidue ( id $atom_id ) + and (name %1 or name %2 or name %3 or name %4 or name %5 or name O5)) + end loop main + + for $id in id (name C1') loop freeribose + free bond (id $id) (byresid (id $id) and name C2') + end loop freeribose + + fix group ( resn HEC and (name C1* or name C2* or name C3* or name C4* or name N* or name CH*)) + + fix group ( resn CYM and not (name CA or name BB or name C or name O or name OXT or + name N or name HN or name HA or name CB or name HB1 or name HB2 or + name SG or name SAL or name CA or name BBJ)) + + fix group ( byresidue (resn WAT)) + fix group ( byresidue (resn HOH)) + fix group ( byresidue (resn TIP*)) + fix group ( byresidue (resn ANI)) + fix group ( byresidue (resn DAN)) + fix group ( byresidue (resn XAN)) + fix group (resn SHA) + + eval($nchain1=0) + while ($nchain1 < $data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + fix group (segid $Toppar.prot_segid_$nchain1 and + not (attribute store5 = $nchain1) + and not ((resn WAT or resn HOH or resn TIP*))) + end loop nloop1 + end +end diff --git a/src/haddock/modules/flexref/cns/torsiontop_flex_back.cns b/src/haddock/modules/flexref/cns/torsiontop_flex_back.cns new file mode 100644 index 000000000..2188d5911 --- /dev/null +++ b/src/haddock/modules/flexref/cns/torsiontop_flex_back.cns @@ -0,0 +1,127 @@ +! torsiontop_flex_back.cns +! Set the topology for torsion angle MD with semi-flexible side-chains +! and backbone at the interface +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! +evaluate ($nfletot = 150) +!define flexible segments: +!display CALLING flex_segment_back.cns FOR SEMI-FLEXIBLE SA WITH BACKBONE +inline @RUN:flex_segment_back.cns + +evaluate ($numtrees=$data.ncomponents) +!@RUN:numtrees.cns(numtrees=$numtrees; Data; Toppar;) +inline @RUN:numtrees.cns + +DISPLAY NUMTREES set to $numtrees + +dyna tors + topology + maxtree $numtrees + kdihmax = 23. + evaluate ($N_atom_id = 0) + evaluate ($atom_id = 0) + + for $atom_id in id ( (name CA or name BB) ) loop main + if ( $N_atom_id > 0 ) then + fix group + (( byresidue ( id $N_atom_id ) and + (name C or name O {or (name CA or name BB)} )) + or ( byresidue ( id $atom_id ) and + (((name N or name HN {or (name CA or name BB)}) {and not resn pro}) + {or (( name N or name CD or (name CA or name BB) ) and resn pro)}))) + end if + evaluate ($N_atom_id = $atom_id) + end loop main + if ( $atom_id > 0 ) then + fix group + ( byresidue ( id $atom_id ) + and (name c or name ot1 or name ot2 {or (name CA or name BB)} )) + end if + + for $atom_id in id ( name BB and not (resn PHE or resn TYR or resn TRP or resn HIS or resn ARG or resn LYS)) loop main + if ( $atom_id > 0 ) then + fix group ( byresidue ( id $atom_id )) + end if + end loop main + + for $atom_id in id + ( (name CA or name BB) and (resn phe or resn trp or resn his or resn asp or resn asn or resn nep)) + loop main + fix group + ( byresidue ( id $atom_id ) + and ({name CB or} name CG or name %D* or + name %Z* or name %E* or name %H* or name SC# )) + end loop main + for $atom_id in id + ( (name CA or name BB) and (resn tyr)) + loop main + fix group + ( byresidue ( id $atom_id ) + and ({name CB or} name CG or name %D* or + name %Z* or name %E* or name OH or name SC# )) + end loop main + for $atom_id in id + ( (name CA or name BB) and (resn gln or resn glu)) + loop main + fix group + ( byresidue ( id $atom_id ) + and ({name CG or} name %D* or name %E*)) + end loop main + for $atom_id in id + ( (name CA or name BB) and (resn arg)) + loop main + fix group + ( byresidue ( id $atom_id ) + and ({name CD or} name %E* or name %Z* or name %H* or name SC# )) + end loop main + + !next loop is for all sugars defined in glycans-uu.top + for $atom_id in id + ( name c1 and (resn GCP or resn GCF or resn GTP or resn GTF or resn MNP + or resn MNF or resn ALP or resn ALF or resn ARP or resn ARF or resn GLP + or resn GLF or resn IDP or resn IDF or resn TLP or resn TLF or resn PCP + or resn PCF or resn FTP or resn FTF or resn SBP or resn SBF or resn TTP + or resn TTF or resn NAA or resn RBP or resn RBF or resn ANF or resn XLF + or resn LXF or resn RLF or resn LLF)) + loop main + fix group + ( byresidue ( id $atom_id ) + and (name %1 or name %2 or name %3 or name %4 or name %5 or name O5)) + end loop main + + fix group ( resn HEC and (name C1* or name C2* or name C3* or name C4* or name N* or name CH*)) + + fix group ( resn PRO and not (name c or name o) ) + + fix group ( resn CYM and not ((name CA or name BB) or name C or name O or name OXT or + name N or name HN or name HA or name CB or name HB1 or name HB2 or + name SG or name SAL or name CAJ)) + + fix group ( byresidue (resn WAT)) + fix group ( byresidue (resn HOH)) + fix group ( byresidue (resn TIP*)) + fix group ( byresidue (resn ANI)) + fix group ( byresidue (resn DAN)) + fix group ( byresidue (resn XAN)) + fix group (resn SHA) + + for $id in id (name C1') loop freeribose + free bond (id $id) (byresid (id $id) and name C2') + end loop freeribose + eval($nchain1 = 0) + while ($nchain1 < $data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + fix group (segid $Toppar.prot_segid_$nchain1 and + not (attribute store5 = $nchain1) + and not ((resn WAT or resn HOH or resn TIP*))) + end loop nloop1 + end +end diff --git a/src/haddock/modules/flexref/cns/water_rest.cns b/src/haddock/modules/flexref/cns/water_rest.cns new file mode 100644 index 000000000..e79764e8c --- /dev/null +++ b/src/haddock/modules/flexref/cns/water_rest.cns @@ -0,0 +1,46 @@ +! water_rest.cns +! Define restraints between interfacial water molecules and highly solvated +! amino-acids +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! +! This script define distance restraints between water molecule and amino-acids +! often found to be involved in water-mediated contacts +! See van Dijk and Bonvin, Bioinformatics 2006 +! + +evaluate ($nchain=0) +while ($nchain < $data.ncomponents) loop nloop1 + evaluate ($nchain = $nchain + 1) + evaluate ($watersegname_$nchain="WA" + encode($nchain)) +end loop nloop1 + + +if ($data.waterdock eq true) then + + if ($data.solvate_method eq "restraints") then + evaluate ($nchain=0) + while ($nchain < $data.ncomponents) loop nloop2 + evaluate ($nchain = $nchain + 1) + noe class amwa end + for $atom_id in id ((resn WAT or resn HOH) and name OH2 and segid $watersegname_$nchain and not store5) loop waterrestraint + noe + assi (segid $toppar.prot_segid_$nchain and + (resn arg or resn asn or resn asp or resn gln or resn glu or resn his* + or resn lys or resn pro or resn ser or resn thr or resn tyr) + and ((id $atom_id) around $data.water_restraint_cutoff)) + (id $atom_id) $data.water_restraint_cutoff $data.water_restraint_cutoff 0.0 + end + end loop waterrestraint + end loop nloop2 + evaluate($amwa_scale = $data.water_restraint_scale) + noe scale amwa $amwa_scale end + end if + +end if diff --git a/src/haddock/modules/flexref/cns/waterdock_mini.cns b/src/haddock/modules/flexref/cns/waterdock_mini.cns new file mode 100644 index 000000000..4030bcb59 --- /dev/null +++ b/src/haddock/modules/flexref/cns/waterdock_mini.cns @@ -0,0 +1,75 @@ +! waterdock_mini.cns +! Minimize water molecules in solvated docking +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + minimize rigid + eval ($nchain1 = 0) + while ($nchain1 < $data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + group (segid $Toppar.prot_segid_$nchain1 and not (resn WAT or resn HOH or resn TIP*)) + translation=true + end loop nloop1 + for $id in id ((resn WAT or resn HOH or resn TIP*) and name OH2 and (attr store5 ne 1)) loop miniwater + group (byres(id $id)) + end loop miniwater + translation=$data.transwater + nstep 100 + nprint 10 + end + energy end + + !store5 is what is to be removed + !store4 is used to determine what is at interface + eval ($surfcutoff = $data.water_surfcutoff) + do (store4 = 0) (all) + + eval($nchain1 = 0) + while ($nchain1 < $data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + do (store4 = store4 + 1) (name oh2 and ((segid $Toppar.prot_segid_$nchain1) around $surfcutoff)) + end loop nloop1 + + !an interfacial water should have at least store4=2 + do (store4 = 0) (attribute store4 < 2) + do (store4 = 1) (attribute store4 > 0) + do (store5 = 1) ((attr store5 = 1) or (name oh2 and (not resn TIP*) and (attr store4 ne 1))) + do (store5 = 1) (byres (attr store5 = 1)) + do (store5 = 0) (resn TIP*) + + !"removing" of water: interaction weight 0 + igroup interaction (not all) (not all) end + + igroup + eval($nchain1 = 0) + + while ($nchain1 < $data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + eval($nchain2 = $nchain1 ) + while ($nchain2 < $data.ncomponents) loop nloop2 + eval($nchain2 = $nchain2 + 1) + interaction (segid $Toppar.prot_segid_$nchain1) + (segid $Toppar.prot_segid_$nchain2) weight * 1.0 vdw $kinter elec $kinter end + end loop nloop2 + interaction ((resn WAT or resn HOH or resn TIP*) and (attr store5 ne 1)) (segid $Toppar.prot_segid_$nchain1) weight * 1.0 end + end loop nloop1 + + interaction ((resn WAT or resn HOH or resn TIP*) and (attr store5 ne 1)) + ((resn WAT or resn HOH or resn TIP*) and (attr store5 ne 1)) weight * 1.0 end + interaction (attr store5 = 1) (all) weight * 0.0 end + interaction (resn DUM) (not resn DUM) weight * 0.0 end + interaction (resn SHA) (not resn SHA) weight * 0.0 end + end + + if ($data.solvate_method eq "restraints") then + noe reset end + !read again the NOE data +! @RUN:read_noes.cns(Iteration=$Iteration; Data=$Data; count=$count) + @RUN:read_noes.cns + end if diff --git a/src/haddock/modules/flexref/cns/waterdock_out0.cns b/src/haddock/modules/flexref/cns/waterdock_out0.cns new file mode 100644 index 000000000..442aaa17b --- /dev/null +++ b/src/haddock/modules/flexref/cns/waterdock_out0.cns @@ -0,0 +1,41 @@ +! waterdock_out0.cns +! Output information about waters in solvated docking +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! +evaluate ($filename="NEWIT:" + $Filenames.fileroot + "_" + encode($count) + "_water.pdbw") +do (store1 = 0) (all) +do (store1 = 1) ((resn WAT or resn HOH) and not store3) +show sum (store1) (all) +if ($result > 0) then + write coordinates sele= ((resn WAT or resn HOH) and not store3) output =$filename end +else + set display=$filename end + display REMARK no water kept + display END + close $filename end +end if +if ($data.water_analysis eq true) then + show aver (x*x) ((resn WAT or resn HOH) and not store3) + evaluate ($rx = $result) + show aver (y*y) ((resn WAT or resn HOH) and not store3) + evaluate ($ry = $result) + show aver (z*z) ((resn WAT or resn HOH) and not store3) + evaluate ($rz = $result) + evaluate ($filename = "NEWIT:"+"rxyz_"+encode($count)+".disp") + set display=$filename end + display $rx $ry $rz + close $filename end + show sum(1) ((resn WAT or resn HOH) and name OH2 and not store3) + eval ($nrwater=$result) + evaluate ($filename = "NEWIT:"+"nwater_"+encode($count)+".disp") + set display=$filename end + display $nrwater + close $filename end +end if diff --git a/src/haddock/modules/flexref/cns/waterdock_out1.cns b/src/haddock/modules/flexref/cns/waterdock_out1.cns new file mode 100644 index 000000000..893062b6e --- /dev/null +++ b/src/haddock/modules/flexref/cns/waterdock_out1.cns @@ -0,0 +1,42 @@ +! waterdock_out1.cns +! Output information about waters in solvated docking +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! +evaluate ($filename="NEWIT:" + $Filenames.fileroot + "_" + encode($count) + "_water.pdbw") +do (store1 = 0) (all) +do (store1 = 1) ((resn WAT or resn HOH) and not store3) +show sum (store1) (all) +if ($result > 0) then +! write coordinates sele= ((resn WAT or resn HOH) and not store3) output =$filename end + write coordinates sele= ((resn WAT or resn HOH) and not store3) output =$output_pdb_filename end +else + set display=$filename end + display REMARK no water kept + display END + close $filename end +end if +if ($data.water_analysis eq true) then + show aver (x*x) ((resn WAT or resn HOH)) + evaluate ($rx = $result) + show aver (y*y) ((resn WAT or resn HOH)) + evaluate ($ry = $result) + show aver (z*z) ((resn WAT or resn HOH)) + evaluate ($rz = $result) + evaluate ($filename = "NEWIT:"+"rxyz_"+encode($count)+".disp") + set display=$filename end + display $rx $ry $rz + close $filename end + show sum(1) ((resn WAT or resn HOH) and name OH2) + eval ($nrwater=$result) + evaluate ($filename = "NEWIT:"+"nwater_"+encode($count)+".disp") + set display=$filename end + display $nrwater + close $filename end +end if diff --git a/src/haddock/modules/flexref/cns/waterdock_remove-water.cns b/src/haddock/modules/flexref/cns/waterdock_remove-water.cns new file mode 100644 index 000000000..58d7094f9 --- /dev/null +++ b/src/haddock/modules/flexref/cns/waterdock_remove-water.cns @@ -0,0 +1,69 @@ +! waterdock_remove-water.cns +! MC-based removal of waters in solvated docking +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! + !store5 contains the waters that are to be "removed" + ident (store5) (not all) + + ident (store5) ((resn WAT or resn HOH)) + + !count number of waters + show sum(1) ((resn WAT or resn HOH) and name OH2) + eval ($watercount=$result) + + !determine how many of those to keep + eval ($randfrac = random(1.0)) + eval ($randfrac = $randfrac * $data.water_randfrac) + eval ($fractionkeep =$data.water_tokeep + $randfrac) + eval ($tokeep = $fractionkeep * $watercount) + + display info: watercount $watercount + display info: tokeep $tokeep + !for each nrig value, different waters are "removed" + for $atom_id in id ((resn WAT or resn HOH) and name OH2) loop loop2 + eval ($r = random(1.0) * $watercount) + display info: r-value $r + if ($r > $tokeep) then + ident (store5) (store5 or id $atom_id) + end if + end loop loop2 + + ident (store5) (byres store5) + + !"removing" of water: interaction weight 0 + igroup interaction (not all) (not all) end + + igroup + eval($nchain1 = 0) + + while ($nchain1 < $data.ncomponents) loop nloop1 + eval($nchain1 = $nchain1 + 1) + eval($nchain2 = $nchain1 ) + while ($nchain2 < $data.ncomponents) loop nloop2 + eval($nchain2 = $nchain2 + 1) + interaction (segid $Toppar.prot_segid_$nchain1) + (segid $Toppar.prot_segid_$nchain2) weight * 1.0 vdw $kinter elec $kinter end + end loop nloop2 + interaction ((resn WAT or resn HOH or resn TIP*) and not store5) (segid $Toppar.prot_segid_$nchain1) weight * 1.0 end + end loop nloop1 + + interaction ((resn WAT or resn HOH or resn TIP*) and not store5) + ((resn WAT or resn HOH or resn TIP*) and not store5) weight * 1.0 end + interaction (store5) (all) weight * 0.0 end + interaction (resn DUM) (not resn DUM) weight * 0.0 end + interaction (resn SHA) (not resn SHA) weight * 0.0 end + end + + if ($data.solvate_method eq "restraints") then + noe reset end + !read again the NOE data +! @RUN:read_noes.cns(Iteration=$Iteration; Data=$Data; count=$count) + @RUN:read_noes.cns + end if diff --git a/src/haddock/modules/flexref/cns/zrestraining.cns b/src/haddock/modules/flexref/cns/zrestraining.cns new file mode 100644 index 000000000..9422c24c0 --- /dev/null +++ b/src/haddock/modules/flexref/cns/zrestraining.cns @@ -0,0 +1,37 @@ +! zrestraining.cns +! Define membrane positioning restraints +! +! *********************************************************************** +! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * +! * All rights reserved. * +! * This code is part of the HADDOCK software and governed by its * +! * license. Please see the LICENSE file that should have been included * +! * as part of this package. * +! *********************************************************************** +! +if ($Data.flags.zres eq true) then + + evaluate ($zup = $Data.zresmax) + evaluate ($zlo = $Data.zresmin) + rest zhar zmax=$zup zmin=$zlo expo=2 end + + eval ($ncount = 0) + while ($ncount < $data.numzres) loop zres + + eval ($ncount = $ncount + 1) + evaluate ($istart = decode($Toppar.zres_sta_$ncount)) + evaluate ($iend = decode($Toppar.zres_end_$ncount)) + evaluate ($chain = $Toppar.zres_seg_$ncount) + evaluate ($type = $Toppar.zres_type_$ncount) + + if ($type eq "outside") then + evaluate ($zfconst = - $Data.kzres) + else + evaluate ($zfconst = $Data.kzres) + end if + + do (zharm = $zfconst) (segid $chain and resid $istart:$iend) + + end loop zresloop + +end if From b632eb7887aac516bf999857ab7e77976a8c15bf Mon Sep 17 00:00:00 2001 From: rodrigo Date: Thu, 29 Jul 2021 14:55:56 +0200 Subject: [PATCH 2/4] implement flexref module --- src/haddock/cns/util.py | 4 +- src/haddock/modules/__init__.py | 3 +- src/haddock/modules/flexref/__init__.py | 0 src/haddock/modules/flexref/default.py | 115 +++++++++++++++++++++++ src/haddock/modules/rigidbody/default.py | 2 + src/haddock/modules/topology/default.py | 4 +- src/haddock/ontology.py | 2 +- 7 files changed, 122 insertions(+), 8 deletions(-) create mode 100644 src/haddock/modules/flexref/__init__.py create mode 100644 src/haddock/modules/flexref/default.py diff --git a/src/haddock/cns/util.py b/src/haddock/cns/util.py index 5e1b0352d..98c720826 100644 --- a/src/haddock/cns/util.py +++ b/src/haddock/cns/util.py @@ -3,8 +3,6 @@ from haddock.pdbutil import PDBFactory from haddock.mathutil import RandomNumberGenerator from haddock.defaults import Default -from haddock.ontology import Format -# from haddock.cns.util import load_workflow_params, prepare_input RND = RandomNumberGenerator() @@ -227,7 +225,7 @@ def prepare_multiple_input(pdb_input_list, psf_input_list): for pdb in pdb_input_list: input_str += f'coor @@{pdb}{linesep}' - ncomponents = len(pdb_input_list) + ncomponents = len(psf_input_list) input_str += f'eval ($ncomponents={ncomponents}){linesep}' seed = RND.randint(100, 999) diff --git a/src/haddock/modules/__init__.py b/src/haddock/modules/__init__.py index 182015421..77bf266cc 100644 --- a/src/haddock/modules/__init__.py +++ b/src/haddock/modules/__init__.py @@ -63,8 +63,7 @@ def _load_previous_io(self): def previous_path(self): if self.order > 1: - return (self.path.resolve().parent.absolute() / - f"{MODULE_PATH_NAME}{self.order-1}") + return (self.path.resolve().parent.absolute() / self.stream['input']['order'][self.order-1]) if self.order == 1: return self.path.resolve().parent.absolute() / TOPOLOGY_PATH diff --git a/src/haddock/modules/flexref/__init__.py b/src/haddock/modules/flexref/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/haddock/modules/flexref/default.py b/src/haddock/modules/flexref/default.py new file mode 100644 index 000000000..4dca37c8e --- /dev/null +++ b/src/haddock/modules/flexref/default.py @@ -0,0 +1,115 @@ +"""HADDOCK3 rigid-body docking module""" +import logging +from os import linesep +from pathlib import Path +from haddock.modules import BaseHaddockModule +from haddock.cns.engine import CNSJob, CNSEngine +from haddock.cns.util import generate_default_header, load_ambig +from haddock.cns.util import load_workflow_params, prepare_multiple_input +from haddock.ontology import Format, ModuleIO, PDBFile + +logger = logging.getLogger(__name__) + + +def generate_flexref(identifier, input_file, step_path, recipe_str, defaults, ambig=None): + """Generate the .inp file that will run the docking.""" + # prepare the CNS header that will read the input + + # read the default parameters + default_params = load_workflow_params(defaults) + param, top, link, topology_protonation, \ + trans_vec, tensor, scatter, \ + axis, water_box = generate_default_header() + + # for element in input_files: + pdb = Path(input_file.path, input_file.file_name) + psf_list = [] + for psf in input_file.topology: + psf_list.append(Path(psf.path, psf.file_name)) + + # pdb_list.append(str(pdb)) + # psf_list.append(str(psf)) + + input_str = prepare_multiple_input([pdb], psf_list) + + if ambig: + ambig_str = load_ambig(ambig) + else: + ambig_str = "" + + output_pdb_filename = step_path / f'flexref_{identifier}.pdb' + output = f"{linesep}! Output structure{linesep}" + output += (f"eval ($output_pdb_filename=" + f" \"{output_pdb_filename}\"){linesep}") + inp = default_params + param + top + input_str + output \ + + topology_protonation + ambig_str + recipe_str + + inp_file = step_path / f'flexref_{identifier}.inp' + with open(inp_file, 'w') as fh: + fh.write(inp) + + return inp_file + + +class HaddockModule(BaseHaddockModule): + + def __init__(self, stream, order, path): + self.stream = stream + recipe_path = Path(__file__).resolve().parent.absolute() + cns_script = recipe_path / "cns" / "flexref.cns" + defaults = recipe_path / "cns" / "flexref.toml" + super().__init__(order, path, cns_script, defaults) + + def run(self, module_information): + logger.info("Running [flexref] module") + + # Pool of jobs to be executed by the CNS engine + jobs = [] + + # Get the models generated in previous step + models_to_refine = [p for p in self.previous_io.output if p.file_type == Format.PDB] + + ambig_f = None + if 'ambig' in module_information: + ambig_f = module_information['ambig'] + + refined_structure_list = [] + for idx, model in enumerate(models_to_refine): + inp_file = generate_flexref(idx, + model, + self.path, + self.recipe_str, + self.defaults, + ambig_f) + + out_file = self.path / f"flexref_{idx}.out" + structure_file = self.path / f"flexref_{idx}.pdb" + refined_structure_list.append(structure_file) + + job = CNSJob(inp_file, out_file, cns_folder=self.cns_folder_path) + + jobs.append(job) + + # Run CNS engine + logger.info(f"Running CNS engine with {len(jobs)} jobs") + engine = CNSEngine(jobs) + engine.run() + logger.info("CNS engine has finished") + + # Check for generated output, fail it not all expected files are found + expected = [] + not_found = [] + for model in refined_structure_list: + if not model.exists(): + not_found.append(model.name) + pdb = PDBFile(model, path=self.path) + expected.append(pdb) + if not_found: + self.finish_with_error("Several files were not generated:" + f" {not_found}") + + # Save module information + io = ModuleIO() + io.add(refined_structure_list) + io.add(expected, "o") + io.save(self.path) diff --git a/src/haddock/modules/rigidbody/default.py b/src/haddock/modules/rigidbody/default.py index ee1ba3249..898febca3 100644 --- a/src/haddock/modules/rigidbody/default.py +++ b/src/haddock/modules/rigidbody/default.py @@ -69,6 +69,7 @@ def run(self, module_information): # Get the models generated in previous step models_to_dock = [p for p in self.previous_io.output if p.file_type == Format.PDB] + topologies = [p for p in self.previous_io.output if p.file_type == Format.TOPOLOGY] ambig_f = None if 'ambig' in module_information: @@ -105,6 +106,7 @@ def run(self, module_information): if not model.exists(): not_found.append(model.name) pdb = PDBFile(model, path=self.path) + pdb.topology = topologies expected.append(pdb) if not_found: self.finish_with_error("Several files were not generated:" diff --git a/src/haddock/modules/topology/default.py b/src/haddock/modules/topology/default.py index 14d8216d6..925cc81ca 100644 --- a/src/haddock/modules/topology/default.py +++ b/src/haddock/modules/topology/default.py @@ -125,11 +125,11 @@ def run(self, module_information): if not processed_topology.is_file(): not_found.append(processed_topology.name) topology = TopologyFile(processed_topology, - path=(self.path / TOPOLOGY_PATH)) + path=self.path) expected.append(topology) expected.append(PDBFile(processed_pdb, topology, - path=(self.path / TOPOLOGY_PATH))) + path=self.path)) if not_found: self.finish_with_error("Several files were not generated:" f" {not_found}") diff --git a/src/haddock/ontology.py b/src/haddock/ontology.py index 6cb233e0a..b40b1eb63 100644 --- a/src/haddock/ontology.py +++ b/src/haddock/ontology.py @@ -27,7 +27,7 @@ def __init__(self, file_name, file_type, path='.'): self.created = datetime.datetime.now().isoformat(' ', 'seconds') self.file_name = Path(file_name).name self.file_type = file_type - self.path = str(Path(path).parent.absolute()) + self.path = str(Path(path).absolute()) def __repr__(self): rep = (f"[{self.file_type}|{self.created}] " From c490b9d708371bf02ac86790c7002e56912b6d32 Mon Sep 17 00:00:00 2001 From: rodrigo Date: Thu, 29 Jul 2021 14:56:07 +0200 Subject: [PATCH 3/4] rename example --- .../{rigid_body_docking => simple_docking}/1a2k_l_u.pdb | 0 .../{rigid_body_docking => simple_docking}/1a2k_r_u.pdb | 0 .../{rigid_body_docking => simple_docking}/ambig.tbl | 0 .../simple_docking.toml} | 9 +++++++-- 4 files changed, 7 insertions(+), 2 deletions(-) rename examples/{rigid_body_docking => simple_docking}/1a2k_l_u.pdb (100%) rename examples/{rigid_body_docking => simple_docking}/1a2k_r_u.pdb (100%) rename examples/{rigid_body_docking => simple_docking}/ambig.tbl (100%) rename examples/{rigid_body_docking/rigid_body_docking.toml => simple_docking/simple_docking.toml} (82%) diff --git a/examples/rigid_body_docking/1a2k_l_u.pdb b/examples/simple_docking/1a2k_l_u.pdb similarity index 100% rename from examples/rigid_body_docking/1a2k_l_u.pdb rename to examples/simple_docking/1a2k_l_u.pdb diff --git a/examples/rigid_body_docking/1a2k_r_u.pdb b/examples/simple_docking/1a2k_r_u.pdb similarity index 100% rename from examples/rigid_body_docking/1a2k_r_u.pdb rename to examples/simple_docking/1a2k_r_u.pdb diff --git a/examples/rigid_body_docking/ambig.tbl b/examples/simple_docking/ambig.tbl similarity index 100% rename from examples/rigid_body_docking/ambig.tbl rename to examples/simple_docking/ambig.tbl diff --git a/examples/rigid_body_docking/rigid_body_docking.toml b/examples/simple_docking/simple_docking.toml similarity index 82% rename from examples/rigid_body_docking/rigid_body_docking.toml rename to examples/simple_docking/simple_docking.toml index ae4d383b5..36fe4d65b 100644 --- a/examples/rigid_body_docking/rigid_body_docking.toml +++ b/examples/simple_docking/simple_docking.toml @@ -3,7 +3,7 @@ [input] # in which order the steps must be executed? -order = ["topology", "rigidbody"] +order = ["topology", "rigidbody", "flexref"] # directory in which the scoring will be done project_dir = "run1" @@ -24,7 +24,12 @@ autohis = true ######################## [stage.rigidbody] ambig = 'ambig.tbl' -sampling = 100 +sampling = 2 + +######################## +[stage.flexref] +ambig = 'ambig.tbl' +cool1_steps = 500 # ==================================================================== From dcf3d9721b9dd4437faf46ea9ec3ebba38cfac20 Mon Sep 17 00:00:00 2001 From: rodrigo Date: Thu, 29 Jul 2021 15:09:20 +0200 Subject: [PATCH 4/4] clean cns scripts of flexref --- src/haddock/modules/flexref/cns/WARNING | 2 - .../cns/amino-acids-bases-energies.cns | 95 - src/haddock/modules/flexref/cns/auto-his.cns | 141 - src/haddock/modules/flexref/cns/bestener.cns | 157 - src/haddock/modules/flexref/cns/boxtyp20.pdb | 658 -- src/haddock/modules/flexref/cns/bsa.cns | 51 - .../modules/flexref/cns/build-missing.cns | 323 - .../flexref/cns/centroids_init_placement.cns | 115 - .../modules/flexref/cns/centroids_set_map.cns | 8 - src/haddock/modules/flexref/cns/cg-to-aa.cns | 136 - .../modules/flexref/cns/check-homomers.cns | 56 - src/haddock/modules/flexref/cns/cns_test.csh | 7 - .../modules/flexref/cns/coval-ace-cys.cns | 57 - src/haddock/modules/flexref/cns/covalheme.cns | 128 - src/haddock/modules/flexref/cns/covalions.cns | 82 - src/haddock/modules/flexref/cns/db0.cns | 38 - src/haddock/modules/flexref/cns/db00.cns | 57 - src/haddock/modules/flexref/cns/db1.cns | 323 - .../modules/flexref/cns/db_kyte-doolittle.dat | 773 --- .../modules/flexref/cns/db_statistical.dat | 773 --- .../modules/flexref/cns/dbene-methanol.dat | 105 - .../modules/flexref/cns/dbene-water.dat | 105 - src/haddock/modules/flexref/cns/default.py | 0 src/haddock/modules/flexref/cns/dmso.pdb | 852 --- .../flexref/cns/dna-rna_restraints.def | 1221 ---- src/haddock/modules/flexref/cns/dna_break.cns | 82 - src/haddock/modules/flexref/cns/edesolv.inp | 99 - .../modules/flexref/cns/em_orien_search.cns | 27 - .../modules/flexref/cns/em_rot_search.cns | 102 - .../modules/flexref/cns/em_sym_search.cns | 74 - .../modules/flexref/cns/ene-residue.inp | 182 - src/haddock/modules/flexref/cns/energy.inp | 304 - src/haddock/modules/flexref/cns/flexauto.cns | 30 - .../modules/flexref/cns/generate-cg.inp | 920 --- .../modules/flexref/cns/generate-original.inp | 896 --- .../modules/flexref/cns/generate-water.inp | 1010 ---- src/haddock/modules/flexref/cns/generate.inp | 896 --- .../flexref/cns/generate_complex-aa.inp | 56 - .../flexref/cns/generate_complex-water.inp | 95 - .../modules/flexref/cns/generate_complex.inp | 124 - .../modules/flexref/cns/generate_dmso.cns | 123 - .../modules/flexref/cns/generate_water.cns | 127 - .../modules/flexref/cns/get_average.inp | 418 -- .../flexref/cns/get_random_rotation.cns | 95 - .../modules/flexref/cns/make_plane.inp | 98 - .../modules/flexref/cns/make_tensor.inp | 41 - .../modules/flexref/cns/make_tensor_para.inp | 52 - .../modules/flexref/cns/patch-bb-cg.cns | 241 - .../modules/flexref/cns/patch-types-cg.cns | 68 - .../flexref/cns/print_aa-dna-energies.inp | 76 - .../modules/flexref/cns/print_dani.inp | 134 - src/haddock/modules/flexref/cns/print_dih.inp | 114 - .../modules/flexref/cns/print_geom.inp | 129 - .../modules/flexref/cns/print_hbonds.inp | 138 - src/haddock/modules/flexref/cns/print_nb.inp | 93 - .../modules/flexref/cns/print_noes.inp | 672 --- src/haddock/modules/flexref/cns/print_rg.inp | 85 - .../modules/flexref/cns/print_sani.inp | 130 - .../modules/flexref/cns/print_vean.inp | 133 - .../modules/flexref/cns/print_xpcs.inp | 128 - .../modules/flexref/cns/print_xrdc.inp | 127 - .../modules/flexref/cns/prot_break-CA.cns | 87 - .../modules/flexref/cns/prot_break.cns | 144 - .../flexref/cns/protein-ss-restraints-all.def | 108 - .../cns/protein-ss-restraints-alpha-beta.def | 135 - .../cns/protein-ss-restraints-alpha.def | 116 - .../modules/flexref/cns/random_rotations.cns | 179 - .../modules/flexref/cns/randomairs.cns | 240 - src/haddock/modules/flexref/cns/re_dmso.inp | 839 --- src/haddock/modules/flexref/cns/re_h2o.inp | 854 --- .../modules/flexref/cns/read_struc-cg.cns | 24 - .../modules/flexref/cns/rebuild-unknown.cns | 238 - src/haddock/modules/flexref/cns/refine.inp | 1738 ------ .../modules/flexref/cns/refine.inp-expand | 1744 ------ .../modules/flexref/cns/rg-restraint.cns | 16 - src/haddock/modules/flexref/cns/rmsd-new.inp | 186 - src/haddock/modules/flexref/cns/rmsd.inp | 200 - .../modules/flexref/cns/rotate_pdb.cns | 32 - src/haddock/modules/flexref/cns/run.cns~ | 5309 ----------------- .../modules/flexref/cns/scale_inter_mini.cns | 37 - src/haddock/modules/flexref/cns/separate.cns | 238 - .../modules/flexref/cns/surf-restraints.cns | 71 - .../modules/flexref/cns/waterdock_mini.cns | 75 - .../modules/flexref/cns/waterdock_out0.cns | 41 - .../flexref/cns/waterdock_remove-water.cns | 69 - 85 files changed, 27102 deletions(-) delete mode 100644 src/haddock/modules/flexref/cns/WARNING delete mode 100644 src/haddock/modules/flexref/cns/amino-acids-bases-energies.cns delete mode 100644 src/haddock/modules/flexref/cns/auto-his.cns delete mode 100644 src/haddock/modules/flexref/cns/bestener.cns delete mode 100644 src/haddock/modules/flexref/cns/boxtyp20.pdb delete mode 100644 src/haddock/modules/flexref/cns/bsa.cns delete mode 100644 src/haddock/modules/flexref/cns/build-missing.cns delete mode 100644 src/haddock/modules/flexref/cns/centroids_init_placement.cns delete mode 100644 src/haddock/modules/flexref/cns/centroids_set_map.cns delete mode 100644 src/haddock/modules/flexref/cns/cg-to-aa.cns delete mode 100644 src/haddock/modules/flexref/cns/check-homomers.cns delete mode 100644 src/haddock/modules/flexref/cns/cns_test.csh delete mode 100644 src/haddock/modules/flexref/cns/coval-ace-cys.cns delete mode 100644 src/haddock/modules/flexref/cns/covalheme.cns delete mode 100644 src/haddock/modules/flexref/cns/covalions.cns delete mode 100644 src/haddock/modules/flexref/cns/db0.cns delete mode 100644 src/haddock/modules/flexref/cns/db00.cns delete mode 100644 src/haddock/modules/flexref/cns/db1.cns delete mode 100644 src/haddock/modules/flexref/cns/db_kyte-doolittle.dat delete mode 100644 src/haddock/modules/flexref/cns/db_statistical.dat delete mode 100644 src/haddock/modules/flexref/cns/dbene-methanol.dat delete mode 100644 src/haddock/modules/flexref/cns/dbene-water.dat delete mode 100644 src/haddock/modules/flexref/cns/default.py delete mode 100644 src/haddock/modules/flexref/cns/dmso.pdb delete mode 100644 src/haddock/modules/flexref/cns/dna-rna_restraints.def delete mode 100644 src/haddock/modules/flexref/cns/dna_break.cns delete mode 100644 src/haddock/modules/flexref/cns/edesolv.inp delete mode 100644 src/haddock/modules/flexref/cns/em_orien_search.cns delete mode 100644 src/haddock/modules/flexref/cns/em_rot_search.cns delete mode 100644 src/haddock/modules/flexref/cns/em_sym_search.cns delete mode 100644 src/haddock/modules/flexref/cns/ene-residue.inp delete mode 100644 src/haddock/modules/flexref/cns/energy.inp delete mode 100644 src/haddock/modules/flexref/cns/flexauto.cns delete mode 100644 src/haddock/modules/flexref/cns/generate-cg.inp delete mode 100644 src/haddock/modules/flexref/cns/generate-original.inp delete mode 100644 src/haddock/modules/flexref/cns/generate-water.inp delete mode 100644 src/haddock/modules/flexref/cns/generate.inp delete mode 100644 src/haddock/modules/flexref/cns/generate_complex-aa.inp delete mode 100644 src/haddock/modules/flexref/cns/generate_complex-water.inp delete mode 100644 src/haddock/modules/flexref/cns/generate_complex.inp delete mode 100644 src/haddock/modules/flexref/cns/generate_dmso.cns delete mode 100644 src/haddock/modules/flexref/cns/generate_water.cns delete mode 100644 src/haddock/modules/flexref/cns/get_average.inp delete mode 100644 src/haddock/modules/flexref/cns/get_random_rotation.cns delete mode 100644 src/haddock/modules/flexref/cns/make_plane.inp delete mode 100644 src/haddock/modules/flexref/cns/make_tensor.inp delete mode 100644 src/haddock/modules/flexref/cns/make_tensor_para.inp delete mode 100644 src/haddock/modules/flexref/cns/patch-bb-cg.cns delete mode 100644 src/haddock/modules/flexref/cns/patch-types-cg.cns delete mode 100644 src/haddock/modules/flexref/cns/print_aa-dna-energies.inp delete mode 100644 src/haddock/modules/flexref/cns/print_dani.inp delete mode 100644 src/haddock/modules/flexref/cns/print_dih.inp delete mode 100644 src/haddock/modules/flexref/cns/print_geom.inp delete mode 100644 src/haddock/modules/flexref/cns/print_hbonds.inp delete mode 100644 src/haddock/modules/flexref/cns/print_nb.inp delete mode 100644 src/haddock/modules/flexref/cns/print_noes.inp delete mode 100644 src/haddock/modules/flexref/cns/print_rg.inp delete mode 100644 src/haddock/modules/flexref/cns/print_sani.inp delete mode 100644 src/haddock/modules/flexref/cns/print_vean.inp delete mode 100644 src/haddock/modules/flexref/cns/print_xpcs.inp delete mode 100644 src/haddock/modules/flexref/cns/print_xrdc.inp delete mode 100644 src/haddock/modules/flexref/cns/prot_break-CA.cns delete mode 100644 src/haddock/modules/flexref/cns/prot_break.cns delete mode 100644 src/haddock/modules/flexref/cns/protein-ss-restraints-all.def delete mode 100644 src/haddock/modules/flexref/cns/protein-ss-restraints-alpha-beta.def delete mode 100644 src/haddock/modules/flexref/cns/protein-ss-restraints-alpha.def delete mode 100644 src/haddock/modules/flexref/cns/random_rotations.cns delete mode 100644 src/haddock/modules/flexref/cns/randomairs.cns delete mode 100644 src/haddock/modules/flexref/cns/re_dmso.inp delete mode 100644 src/haddock/modules/flexref/cns/re_h2o.inp delete mode 100644 src/haddock/modules/flexref/cns/read_struc-cg.cns delete mode 100644 src/haddock/modules/flexref/cns/rebuild-unknown.cns delete mode 100644 src/haddock/modules/flexref/cns/refine.inp delete mode 100644 src/haddock/modules/flexref/cns/refine.inp-expand delete mode 100644 src/haddock/modules/flexref/cns/rg-restraint.cns delete mode 100644 src/haddock/modules/flexref/cns/rmsd-new.inp delete mode 100644 src/haddock/modules/flexref/cns/rmsd.inp delete mode 100644 src/haddock/modules/flexref/cns/rotate_pdb.cns delete mode 100644 src/haddock/modules/flexref/cns/run.cns~ delete mode 100644 src/haddock/modules/flexref/cns/scale_inter_mini.cns delete mode 100644 src/haddock/modules/flexref/cns/separate.cns delete mode 100644 src/haddock/modules/flexref/cns/surf-restraints.cns delete mode 100644 src/haddock/modules/flexref/cns/waterdock_mini.cns delete mode 100644 src/haddock/modules/flexref/cns/waterdock_out0.cns delete mode 100644 src/haddock/modules/flexref/cns/waterdock_remove-water.cns diff --git a/src/haddock/modules/flexref/cns/WARNING b/src/haddock/modules/flexref/cns/WARNING deleted file mode 100644 index 7049bb974..000000000 --- a/src/haddock/modules/flexref/cns/WARNING +++ /dev/null @@ -1,2 +0,0 @@ -TOTAL NUMBER OF DISTANCE RESTRAINTS FOR FLEXIBLE REFINEMENT IS ZERO! -CONTROL YOUR PARAMETER SETTINGS AND RESTRAINT DEFINITIONS diff --git a/src/haddock/modules/flexref/cns/amino-acids-bases-energies.cns b/src/haddock/modules/flexref/cns/amino-acids-bases-energies.cns deleted file mode 100644 index d7b10e9e5..000000000 --- a/src/haddock/modules/flexref/cns/amino-acids-bases-energies.cns +++ /dev/null @@ -1,95 +0,0 @@ -! amino-acids-bases-energies.cns -! Calculate a free-energy of protein-nucleic acids interaction based -! on the single amino-acids - bases free energies of Zagrovic NAR2015 -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! -eval ($interactene_water=0.0) -eval ($interactene_methanol=0.0) -eval ($numcontacts=0) -eval($testcutoff=5.0) - -evaluate ($icount = 1) -do (store4 = 0) (all) - -! First find all residues making contacts within the testcutoff -! -eval($nchain1 = 0) -while ($nchain1 < $data.ncomponents) loop nloop1 - evaluate($nchain1 = $nchain1 + 1) - do (store4 = 1) ( byres ( (segid $Toppar.prot_segid_$nchain1) and (not (segid $Toppar.prot_segid_$nchain1 or resn WAT or resn HOH or resn TIP* or resn DMS*) ) around $testcutoff )) -end loop nloop1 - -! initialize the contact energies to 0 -! -eval($nchain1 = 0) -while ($nchain1 < $data.ncomponents) loop nloop1 - evaluate($nchain1 = $nchain1 + 1) - eval($nchain2 = 0) - while ($nchain2 < $data.ncomponents) loop nloop2 - evaluate ($nchain2 = $nchain2 + 1) - if ($nchain1 ne $nchain2) then - for $at1_id in id ( tag and segid $Toppar.prot_segid_$nchain1 ) loop atm1 - show (resn) (id $at1_id) - evaluate ($rsn1 = $result) - for $at2_id in id ( tag and segid $Toppar.prot_segid_$nchain2 ) loop atm2 - show (resn) (id $at2_id) - evaluate ($rsn2 = $result) - evaluate ($dbwatene.$rsn1_$rsn2 = 0.0) - evaluate ($dbwatene.$rsn2_$rsn1 = 0.0) - evaluate ($dbmethene.$rsn1_$rsn2 = 0.0) - evaluate ($dbmethene.$rsn2_$rsn1 = 0.0) - end loop atm2 - end loop atm1 - end if - end loop nloop2 -end loop nloop1 - -! read in the contact energy data -! -inline @RUN:dbene-methanol.dat -inline @RUN:dbene-water.dat - -! new calculate the contact energy for all contacts -! -eval($nchain1 = 0) -while ($nchain1 < $data.ncomponents) loop nloop1 - evaluate($nchain1 = $nchain1 + 1) - eval($nchain2 = $nchain1) - while ($nchain2 < $data.ncomponents) loop nloop2 - evaluate ($nchain2 = $nchain2 + 1) - for $at1_id in id ( tag and segid $Toppar.prot_segid_$nchain1 and attr store4 = 1) loop atm1 - show (resn) (id $at1_id) - evaluate ($rsn1 = $result) - for $at2_id in id ( tag and segid $Toppar.prot_segid_$nchain2 and attr store4 = 1 ) loop atm2 - show (resn) (id $at2_id) - evaluate ($rsn2 = $result) -! -! check for distance cutoff -! - do (store8 = 0) (all) - do (store8 = 1) (byres (id $at1_id) and (byres (id $at2_id)) around $testcutoff) - show sum (store8) (all) - if ($result > 0) then - evaluate ($numcontacts = $numcontacts + 1) - evaluate ($interactene_water = $interactene_water + $dbwatene.$rsn1_$rsn2) - evaluate ($interactene_water = $interactene_water + $dbwatene.$rsn2_$rsn1) - evaluate ($interactene_methanol = $interactene_methanol + $dbmethene.$rsn1_$rsn2) - evaluate ($interactene_methanol = $interactene_methanol + $dbmethene.$rsn2_$rsn1) - end if - - end loop atm2 - end loop atm1 - end loop nloop2 -end loop nloop1 - -!display $numcontacts "contacts identified" -!display "interaction free-energy in water = " $interactene_water -!display "interaction free-energy in methanol = " $interactene_methanol - diff --git a/src/haddock/modules/flexref/cns/auto-his.cns b/src/haddock/modules/flexref/cns/auto-his.cns deleted file mode 100644 index d13fd4003..000000000 --- a/src/haddock/modules/flexref/cns/auto-his.cns +++ /dev/null @@ -1,141 +0,0 @@ -! auto-his.cns -! Automatically define the protonation state of histidines -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! -{- turn on electrostatic and proper non-bonded-} -{- not needed since already ok as defined in build missing script -} -!parameter -! nbonds -! repel=0 -! nbxmod=5 atom cdie shift -! cutnb=9.5 ctofnb=8.5 ctonnb=6.5 eps=10.0 e14fac=0.4 inhibit 0.25 -! wmin=0.5 -! tolerance 0.5 -! end -!end - -evaluate ($nhisd = 0) -evaluate ($nhise = 0) - -for $id1 in id ( resn HIS and name CA ) loop hisp - - evaluate ($hisdpatch = false) - evaluate ($hisepatch = false) - evaluate ($hiselec = 9999999) - - igroup interaction (not all) (not all) end - - show (segid) (id $id1) - evaluate ($segid1=$result) - show (resid) (id $id1) - evaluate ($resid1=$result) - - do (refx = x) (all) - do (refy = y) (all) - do (refz = z) (all) - - igroup interaction (segid $segid1 and resid $resid1) (not (segid $segid1 and resid $resid1)) end - minimize powell nstep=10 drop=40.0 nprint=5 end - energy end - evaluate ($hiselec = $elec) - - do (x = refx) (all) - do (y = refy) (all) - do (z = refz) (all) - - !change partial charges of HIS side-chain to minic HISD - - do (charge = 0.00) (segid $segid1 and resid $resid1 and name CB) - do (charge = 0.13) (segid $segid1 and resid $resid1 and name CG) - do (charge = -0.57) (segid $segid1 and resid $resid1 and name ND1) - do (charge = 0.42) (segid $segid1 and resid $resid1 and name HD1) - do (charge = 0.10) (segid $segid1 and resid $resid1 and name CD2) - do (charge = -0.49) (segid $segid1 and resid $resid1 and name NE2) - do (charge = 0.41) (segid $segid1 and resid $resid1 and name CE1) - do (charge = 0.00) (segid $segid1 and resid $resid1 and name HE2) - - minimize powell nstep=10 drop=40.0 nprint=5 end - energy end - if ($elec < $hiselec) then - evaluate ($hiselec = $elec) - evaluate ($hisdpatch = true) - end if - - do (x = refx) (all) - do (y = refy) (all) - do (z = refz) (all) - - !change partial charges of HIS side-chain to minic HISE - - do (charge = 0.00) (segid $segid1 and resid $resid1 and name CB) - do (charge = 0.13) (segid $segid1 and resid $resid1 and name CG) - do (charge = -0.49) (segid $segid1 and resid $resid1 and name ND1) - do (charge = 0.00) (segid $segid1 and resid $resid1 and name HD1) - do (charge = 0.10) (segid $segid1 and resid $resid1 and name CD2) - do (charge = -0.57) (segid $segid1 and resid $resid1 and name NE2) - do (charge = 0.41) (segid $segid1 and resid $resid1 and name CE1) - do (charge = 0.42) (segid $segid1 and resid $resid1 and name HE2) - - minimize powell nstep=10 drop=40.0 nprint=5 end - energy end - if ($elec < $hiselec) then - evaluate ($hiselec = $elec) - evaluate ($hisepatch = true) - evaluate ($hisdpatch = false) - end if - - !change partial charges of HIS side-chain to the initial default - - do (charge = 0.00) (segid $segid1 and resid $resid1 and name CB) - do (charge = 0.33) (segid $segid1 and resid $resid1 and name CG) - do (charge = -0.54) (segid $segid1 and resid $resid1 and name ND1) - do (charge = 0.46) (segid $segid1 and resid $resid1 and name HD1) - do (charge = 0.33) (segid $segid1 and resid $resid1 and name CD2) - do (charge = -0.54) (segid $segid1 and resid $resid1 and name NE2) - do (charge = 0.50) (segid $segid1 and resid $resid1 and name CE1) - do (charge = 0.46) (segid $segid1 and resid $resid1 and name HE2) - - do (x = refx) (all) - do (y = refy) (all) - do (z = refz) (all) - - if ($hisdpatch = true) then - evaluate ($nhisd = $nhisd + 1) - evaluate ($seg1.$nhisd=$segid1) - evaluate ($res1.$nhisd=$resid1) - end if - if ($hisepatch = true) then - evaluate ($nhise = $nhise + 1) - evaluate ($seg2.$nhise=$segid1) - evaluate ($res2.$nhise=$resid1) - end if - -end loop hisp - -evaluate ($counter=1) -while ( $counter <= $nhisd ) loop hisd - buffer message - display Patching histidine $res1.$counter to HISD - end - patch hisd reference=nil=(segid $seg1.$counter and resid $res1.$counter) end - evaluate ($counter=$counter+1) -end loop hisd - -evaluate ($counter=1) -while ( $counter <= $nhise ) loop hise - buffer message - display Patching histidine $res2.$counter to HISE - end - patch hise reference=nil=(segid $seg2.$counter and resid $res2.$counter) end - evaluate ($counter=$counter+1) -end loop hise - -igroup interaction (all) (all) end - diff --git a/src/haddock/modules/flexref/cns/bestener.cns b/src/haddock/modules/flexref/cns/bestener.cns deleted file mode 100644 index 181996811..000000000 --- a/src/haddock/modules/flexref/cns/bestener.cns +++ /dev/null @@ -1,157 +0,0 @@ -! bestener.cns -! Store best score model from rigid-body dokcing (it0) -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! - eval ($kinter = 1.0) - @RUN:scale_inter_mini.cns - - evaluate ($unamb_scale = $Data.unamb_cool3) - evaluate ($ambig_scale = $Data.amb_cool3) - evaluate ($hbond_scale = $Data.hbond_cool3) - - noe - scale dist $unamb_scale - scale ambi $ambig_scale - scale hbon $hbond_scale - scale symm 0.0 - end - - evaluate ($nrdc=1) - while ($nrdc <= $data.numrdc) loop rdc - evaluate ($cln = "rd" + encode($nrdc) ) - if ($Data.flags.sani eq true) then - sani class $cln force $Data.rdc_cool3_$nrdc end - end if - if ($Data.flags.xrdc eq true) then - xrdc class $cln force $Data.rdc_cool3_$nrdc end - end if - if ($Data.flags.vean eq true) then - vean class $cln force $Data.fin_bor_cool3_$nrdc $Data.fin_cen_cool3_$nrdc end - end if - evaluate ($nrdc = $nrdc + 1) - end loop rdc - - evaluate ($ndani=1) - while ($ndani <= $data.numdani) loop dani - evaluate ($cln = "da" + encode($ndani) ) - if ($Data.flags.dani eq true) then - dani class $cln force $Data.dan_cool3_$ndani end - end if - evaluate ($ndani = $ndani + 1) - end loop dani - - evaluate ($npcs=1) - while ($npcs <= $data.numpcs) loop pcs - evaluate ($cln = "pc" + encode($ndani) ) - if ($Data.flags.xpcs eq true) then - xpcs class $cln force $Data.pcs_cool3_$npcs end - end if - evaluate ($npcs = $npcs + 1) - end loop pcs - - evaluate ($ener = 0) - evaluate ($vdw = 0) - evaluate ($elec = 0) - evaluate ($noe = 0) - evaluate ($coll = 0) - evaluate ($eair = 0) - evaluate ($cdih = 0) - evaluate ($vean = 0) - evaluate ($sani = 0) - evaluate ($xrdc = 0) - evaluate ($xpcs = 0) - evaluate ($dani = 0) - evaluate ($esym = 0) - evaluate ($zhar = 0) - evaluate ($bsa = 0) - evaluate ($desolv = 0.0) - evaluate ($lcc = 0.0) - - energy end - evaluate ($eair = $noe) - - if ($Data.flags.sym eq true) then - noe - scale * 0.0 - scale symm $Data.ksym - end - energy end - evaluate ($esym = $noe) - end if - - if ($SaProtocol.rigidtrans eq true) then - inline @RUN:bsa.cns - end if - - ! get the local cross-correlation for cryo-EM data - if ($data.flags.em = true) then -! @RUN:em_calc_lcc.cns(Toppar=$toppar; Data=$data; Saprotocol=$saprotocol; lcc=$lcc;) - @RUN:em_calc_lcc.cns - end if - - evaluate ($etot = $iterations.w_vdw * $vdw) - evaluate ($etot = $etot + $iterations.w_elec * $elec) - evaluate ($etot = $etot + $iterations.w_dist * $eair) - evaluate ($etot = $etot + $iterations.w_rg * $coll) - evaluate ($etot = $etot + $iterations.w_cdih * $cdih) - evaluate ($etot = $etot + $iterations.w_sani * $sani) - evaluate ($etot = $etot + $iterations.w_xrdc * $xrdc) - evaluate ($etot = $etot + $iterations.w_xpcs * $xpcs) - evaluate ($etot = $etot + $iterations.w_dani * $dani) - evaluate ($etot = $etot + $iterations.w_vean * $vean) - evaluate ($etot = $etot + $iterations.w_sym * $esym) - evaluate ($etot = $etot + $iterations.w_zres * $zhar) - evaluate ($etot = $etot + $iterations.w_bsa * $bsa) - evaluate ($etot = $etot + $iterations.w_desolv * $desolv) - evaluate ($etot = $etot + $iterations.w_lcc * $lcc) - - if ($nfirst = 1) then - evaluate ($bestener = $etot) - evaluate ($bestair = $eair) - evaluate ($ncvbest = $npart) - do (refx = x) (all) - do (refy = y) (all) - do (refz = z) (all) - evaluate ($nfirst = 0) - if ($data.waterdock eq true) then - ident (store3) (not all) - ident (store3) (store5) - else - ident (store3) (not all) - end if - else - if ($etot < $bestener) then - evaluate ($bestener = $etot) - evaluate ($bestair = $eair) - evaluate ($ncvbest = $npart) - do (refx = x) (all) - do (refy = y) (all) - do (refz = z) (all) - if ($data.waterdock eq true) then - ident (store3) (not all) - ident (store3) (store5) - end if - end if - end if - - evaluate ($kinter = $SaProtocol.inter_rigid) - @RUN:scale_inter_mini.cns - - evaluate ($unamb_scale = $unamb_scale_store) - evaluate ($ambig_scale = $ambig_scale_store) - evaluate ($hbond_scale = $hbond_scale_store) - evaluate ($symm_scale = $symm_scale_store) - - noe - scale dist $unamb_scale - scale ambi $ambig_scale - scale hbon $hbond_scale - scale symm $symm_scale - end diff --git a/src/haddock/modules/flexref/cns/boxtyp20.pdb b/src/haddock/modules/flexref/cns/boxtyp20.pdb deleted file mode 100644 index ad0b4c1d5..000000000 --- a/src/haddock/modules/flexref/cns/boxtyp20.pdb +++ /dev/null @@ -1,658 +0,0 @@ -REMARKS ***** CHARMM water box from Charlie Brooks. ******** -REMARKS * This is a box of 216 3-site water molecules in the experimental -REMARKS * geometry. It was constructed from an equilibrated -REMARKS * configuration of TIP3P (3-site water model of Jorgenson) -REMARKS * waters at 1 atm pressure and a density of 0.0334 molecules/A**-3. -REMARKS * The box edgelength is 18.856 A. The minimum image periodic -REMARKS * boundary energy for this configuration using the TIP3P -REMARKS * potentials is -2150.6833 kcal/mol. -REMARKS -ATOM 1 OH2 WAT 1 2.531 0.596 -2.477 0.000 -ATOM 2 H1 WAT 1 2.620 1.540 -2.609 0.000 -ATOM 3 H2 WAT 1 1.892 0.321 -3.135 0.000 -ATOM 4 OH2 WAT 2 1.464 -0.149 0.942 0.000 -ATOM 5 H1 WAT 2 1.426 -0.795 1.647 0.000 -ATOM 6 H2 WAT 2 1.141 -0.615 0.171 0.000 -ATOM 7 OH2 WAT 3 -6.168 -0.534 2.535 0.000 -ATOM 8 H1 WAT 3 -6.126 -1.160 3.259 0.000 -ATOM 9 H2 WAT 3 -5.465 0.089 2.717 0.000 -ATOM 10 OH2 WAT 4 5.170 2.790 -0.756 0.000 -ATOM 11 H1 WAT 4 4.729 2.070 -0.306 0.000 -ATOM 12 H2 WAT 4 5.157 3.511 -0.126 0.000 -ATOM 13 OH2 WAT 5 -5.244 3.916 1.070 0.000 -ATOM 14 H1 WAT 5 -5.614 3.114 0.701 0.000 -ATOM 15 H2 WAT 5 -4.303 3.747 1.117 0.000 -ATOM 16 OH2 WAT 6 -8.634 -2.424 -3.537 0.000 -ATOM 17 H1 WAT 6 -9.082 -1.578 -3.555 0.000 -ATOM 18 H2 WAT 6 -9.195 -3.004 -4.052 0.000 -ATOM 19 OH2 WAT 7 -7.924 -0.262 -1.411 0.000 -ATOM 20 H1 WAT 7 -7.710 -1.032 -0.884 0.000 -ATOM 21 H2 WAT 7 -7.186 -0.173 -2.014 0.000 -ATOM 22 OH2 WAT 8 2.281 7.895 -0.544 0.000 -ATOM 23 H1 WAT 8 2.901 7.218 -0.817 0.000 -ATOM 24 H2 WAT 8 2.073 7.677 0.364 0.000 -ATOM 25 OH2 WAT 9 -0.147 2.284 1.348 0.000 -ATOM 26 H1 WAT 9 0.157 1.598 0.754 0.000 -ATOM 27 H2 WAT 9 0.575 2.402 1.966 0.000 -ATOM 28 OH2 WAT 10 8.516 -6.115 2.209 0.000 -ATOM 29 H1 WAT 10 8.565 -5.505 2.945 0.000 -ATOM 30 H2 WAT 10 8.942 -5.654 1.486 0.000 -ATOM 31 OH2 WAT 11 2.994 -3.322 1.676 0.000 -ATOM 32 H1 WAT 11 3.137 -4.269 1.696 0.000 -ATOM 33 H2 WAT 11 2.888 -3.115 0.747 0.000 -ATOM 34 OH2 WAT 12 -3.851 -5.221 -1.052 0.000 -ATOM 35 H1 WAT 12 -3.808 -4.361 -1.470 0.000 -ATOM 36 H2 WAT 12 -4.309 -5.773 -1.685 0.000 -ATOM 37 OH2 WAT 13 3.871 -5.090 -2.651 0.000 -ATOM 38 H1 WAT 13 4.517 -5.419 -2.026 0.000 -ATOM 39 H2 WAT 13 4.381 -4.572 -3.274 0.000 -ATOM 40 OH2 WAT 14 -7.231 -2.824 -0.290 0.000 -ATOM 41 H1 WAT 14 -6.577 -3.374 0.142 0.000 -ATOM 42 H2 WAT 14 -7.207 -3.098 -1.206 0.000 -ATOM 43 OH2 WAT 15 -2.075 -1.274 -1.074 0.000 -ATOM 44 H1 WAT 15 -1.459 -1.800 -0.565 0.000 -ATOM 45 H2 WAT 15 -2.661 -1.914 -1.478 0.000 -ATOM 46 OH2 WAT 16 8.908 -4.637 4.445 0.000 -ATOM 47 H1 WAT 16 8.219 -3.979 4.350 0.000 -ATOM 48 H2 WAT 16 8.923 -4.834 5.382 0.000 -ATOM 49 OH2 WAT 17 -5.041 -6.303 3.022 0.000 -ATOM 50 H1 WAT 17 -5.260 -5.773 2.256 0.000 -ATOM 51 H2 WAT 17 -5.709 -6.076 3.670 0.000 -ATOM 52 OH2 WAT 18 2.328 3.197 -3.434 0.000 -ATOM 53 H1 WAT 18 2.032 2.875 -4.285 0.000 -ATOM 54 H2 WAT 18 2.004 4.097 -3.392 0.000 -ATOM 55 OH2 WAT 19 -2.472 1.373 3.310 0.000 -ATOM 56 H1 WAT 19 -3.212 1.971 3.413 0.000 -ATOM 57 H2 WAT 19 -1.758 1.927 2.994 0.000 -ATOM 58 OH2 WAT 20 5.635 -5.799 -0.670 0.000 -ATOM 59 H1 WAT 20 5.420 -6.565 -0.138 0.000 -ATOM 60 H2 WAT 20 6.291 -5.327 -0.157 0.000 -ATOM 61 OH2 WAT 21 -5.447 -4.411 0.975 0.000 -ATOM 62 H1 WAT 21 -4.834 -3.778 1.348 0.000 -ATOM 63 H2 WAT 21 -4.935 -4.883 0.318 0.000 -ATOM 64 OH2 WAT 22 -4.064 3.337 4.097 0.000 -ATOM 65 H1 WAT 22 -4.070 4.216 3.719 0.000 -ATOM 66 H2 WAT 22 -4.918 3.254 4.522 0.000 -ATOM 67 OH2 WAT 23 -7.943 3.008 -5.121 0.000 -ATOM 68 H1 WAT 23 -8.215 3.237 -6.010 0.000 -ATOM 69 H2 WAT 23 -7.898 3.846 -4.661 0.000 -ATOM 70 OH2 WAT 24 5.682 4.630 1.592 0.000 -ATOM 71 H1 WAT 24 4.740 4.688 1.753 0.000 -ATOM 72 H2 WAT 24 5.958 5.536 1.455 0.000 -ATOM 73 OH2 WAT 25 5.982 -7.084 3.009 0.000 -ATOM 74 H1 WAT 25 5.246 -6.473 2.971 0.000 -ATOM 75 H2 WAT 25 6.666 -6.669 2.483 0.000 -ATOM 76 OH2 WAT 26 -1.015 -8.997 0.475 0.000 -ATOM 77 H1 WAT 26 -1.132 -9.946 0.421 0.000 -ATOM 78 H2 WAT 26 -1.870 -8.665 0.748 0.000 -ATOM 79 OH2 WAT 27 3.934 6.411 -1.783 0.000 -ATOM 80 H1 WAT 27 4.359 5.704 -2.268 0.000 -ATOM 81 H2 WAT 27 4.251 7.212 -2.200 0.000 -ATOM 82 OH2 WAT 28 5.093 4.312 -3.274 0.000 -ATOM 83 H1 WAT 28 4.836 3.622 -3.886 0.000 -ATOM 84 H2 WAT 28 5.164 3.869 -2.429 0.000 -ATOM 85 OH2 WAT 29 6.779 2.878 5.203 0.000 -ATOM 86 H1 WAT 29 6.919 2.287 4.464 0.000 -ATOM 87 H2 WAT 29 6.947 3.751 4.847 0.000 -ATOM 88 OH2 WAT 30 1.252 -0.160 -5.025 0.000 -ATOM 89 H1 WAT 30 0.540 0.375 -5.376 0.000 -ATOM 90 H2 WAT 30 1.943 -0.104 -5.685 0.000 -ATOM 91 OH2 WAT 31 1.306 -1.702 -7.986 0.000 -ATOM 92 H1 WAT 31 2.007 -1.680 -7.335 0.000 -ATOM 93 H2 WAT 31 1.608 -2.330 -8.642 0.000 -ATOM 94 OH2 WAT 32 8.621 -0.782 3.269 0.000 -ATOM 95 H1 WAT 32 7.969 -0.087 3.358 0.000 -ATOM 96 H2 WAT 32 9.086 -0.572 2.459 0.000 -ATOM 97 OH2 WAT 33 4.658 0.050 -4.073 0.000 -ATOM 98 H1 WAT 33 3.926 0.278 -3.500 0.000 -ATOM 99 H2 WAT 33 5.105 -0.664 -3.618 0.000 -ATOM 100 OH2 WAT 34 4.555 -1.776 4.995 0.000 -ATOM 101 H1 WAT 34 4.635 -1.013 5.567 0.000 -ATOM 102 H2 WAT 34 3.954 -1.497 4.304 0.000 -ATOM 103 OH2 WAT 35 -3.697 0.680 -2.190 0.000 -ATOM 104 H1 WAT 35 -4.027 0.310 -3.009 0.000 -ATOM 105 H2 WAT 35 -3.109 0.010 -1.844 0.000 -ATOM 106 OH2 WAT 36 -2.330 4.108 0.491 0.000 -ATOM 107 H1 WAT 36 -2.425 3.530 -0.266 0.000 -ATOM 108 H2 WAT 36 -1.601 3.737 0.987 0.000 -ATOM 109 OH2 WAT 37 -3.330 -0.551 1.443 0.000 -ATOM 110 H1 WAT 37 -2.765 -0.430 0.680 0.000 -ATOM 111 H2 WAT 37 -3.011 0.086 2.082 0.000 -ATOM 112 OH2 WAT 38 2.979 4.952 2.177 0.000 -ATOM 113 H1 WAT 38 2.738 5.614 2.825 0.000 -ATOM 114 H2 WAT 38 2.781 4.118 2.602 0.000 -ATOM 115 OH2 WAT 39 -2.450 3.848 6.160 0.000 -ATOM 116 H1 WAT 39 -2.762 4.630 6.616 0.000 -ATOM 117 H2 WAT 39 -3.100 3.695 5.474 0.000 -ATOM 118 OH2 WAT 40 3.529 -0.788 -6.388 0.000 -ATOM 119 H1 WAT 40 4.108 -0.638 -5.641 0.000 -ATOM 120 H2 WAT 40 3.943 -0.317 -7.111 0.000 -ATOM 121 OH2 WAT 41 -5.530 0.046 5.389 0.000 -ATOM 122 H1 WAT 41 -5.460 0.697 6.087 0.000 -ATOM 123 H2 WAT 41 -6.421 0.149 5.054 0.000 -ATOM 124 OH2 WAT 42 1.255 5.949 -2.953 0.000 -ATOM 125 H1 WAT 42 1.729 6.244 -2.175 0.000 -ATOM 126 H2 WAT 42 0.692 6.687 -3.186 0.000 -ATOM 127 OH2 WAT 43 -4.211 5.920 6.924 0.000 -ATOM 128 H1 WAT 43 -4.203 5.784 5.976 0.000 -ATOM 129 H2 WAT 43 -5.127 5.802 7.176 0.000 -ATOM 130 OH2 WAT 44 7.227 -9.038 -6.575 0.000 -ATOM 131 H1 WAT 44 6.328 -8.899 -6.280 0.000 -ATOM 132 H2 WAT 44 7.479 -8.207 -6.977 0.000 -ATOM 133 OH2 WAT 45 -4.707 -0.250 -4.601 0.000 -ATOM 134 H1 WAT 45 -4.999 0.518 -5.092 0.000 -ATOM 135 H2 WAT 45 -5.381 -0.910 -4.764 0.000 -ATOM 136 OH2 WAT 46 8.417 5.328 -8.198 0.000 -ATOM 137 H1 WAT 46 8.490 6.267 -8.028 0.000 -ATOM 138 H2 WAT 46 9.322 5.023 -8.255 0.000 -ATOM 139 OH2 WAT 47 -8.614 2.113 4.214 0.000 -ATOM 140 H1 WAT 47 -9.115 2.085 3.399 0.000 -ATOM 141 H2 WAT 47 -8.608 1.207 4.524 0.000 -ATOM 142 OH2 WAT 48 -8.863 4.893 1.098 0.000 -ATOM 143 H1 WAT 48 -7.917 4.749 1.079 0.000 -ATOM 144 H2 WAT 48 -8.976 5.677 1.635 0.000 -ATOM 145 OH2 WAT 49 9.334 5.559 6.780 0.000 -ATOM 146 H1 WAT 49 9.285 4.604 6.743 0.000 -ATOM 147 H2 WAT 49 8.508 5.827 7.182 0.000 -ATOM 148 OH2 WAT 50 0.313 5.133 5.656 0.000 -ATOM 149 H1 WAT 50 0.400 5.959 6.131 0.000 -ATOM 150 H2 WAT 50 -0.551 4.803 5.905 0.000 -ATOM 151 OH2 WAT 51 0.727 8.905 -4.538 0.000 -ATOM 152 H1 WAT 51 0.652 8.784 -5.484 0.000 -ATOM 153 H2 WAT 51 0.760 9.855 -4.419 0.000 -ATOM 154 OH2 WAT 52 -5.619 7.694 -2.757 0.000 -ATOM 155 H1 WAT 52 -5.467 7.346 -1.878 0.000 -ATOM 156 H2 WAT 52 -6.470 7.338 -3.012 0.000 -ATOM 157 OH2 WAT 53 3.829 8.059 -7.535 0.000 -ATOM 158 H1 WAT 53 4.204 7.315 -8.006 0.000 -ATOM 159 H2 WAT 53 3.833 7.789 -6.617 0.000 -ATOM 160 OH2 WAT 54 3.498 7.985 -4.786 0.000 -ATOM 161 H1 WAT 54 2.563 8.085 -4.607 0.000 -ATOM 162 H2 WAT 54 3.778 7.276 -4.208 0.000 -ATOM 163 OH2 WAT 55 6.486 -2.948 7.260 0.000 -ATOM 164 H1 WAT 55 6.079 -2.467 6.540 0.000 -ATOM 165 H2 WAT 55 6.527 -3.853 6.953 0.000 -ATOM 166 OH2 WAT 56 -6.365 3.436 5.257 0.000 -ATOM 167 H1 WAT 56 -6.148 3.075 6.117 0.000 -ATOM 168 H2 WAT 56 -7.220 3.062 5.047 0.000 -ATOM 169 OH2 WAT 57 -3.746 -8.094 1.253 0.000 -ATOM 170 H1 WAT 57 -4.607 -8.181 0.845 0.000 -ATOM 171 H2 WAT 57 -3.768 -7.238 1.680 0.000 -ATOM 172 OH2 WAT 58 0.917 -8.372 4.627 0.000 -ATOM 173 H1 WAT 58 1.337 -8.787 5.380 0.000 -ATOM 174 H2 WAT 58 -0.016 -8.550 4.744 0.000 -ATOM 175 OH2 WAT 59 4.243 -4.616 5.481 0.000 -ATOM 176 H1 WAT 59 3.729 -4.742 6.278 0.000 -ATOM 177 H2 WAT 59 4.088 -3.704 5.236 0.000 -ATOM 178 OH2 WAT 60 5.006 0.245 -8.758 0.000 -ATOM 179 H1 WAT 60 5.048 0.022 -9.688 0.000 -ATOM 180 H2 WAT 60 5.855 0.643 -8.568 0.000 -ATOM 181 OH2 WAT 61 0.579 -5.879 -8.088 0.000 -ATOM 182 H1 WAT 61 0.325 -5.860 -7.165 0.000 -ATOM 183 H2 WAT 61 0.322 -6.751 -8.389 0.000 -ATOM 184 OH2 WAT 62 -3.655 -3.128 2.348 0.000 -ATOM 185 H1 WAT 62 -4.297 -3.169 3.057 0.000 -ATOM 186 H2 WAT 62 -3.618 -2.202 2.110 0.000 -ATOM 187 OH2 WAT 63 -3.658 -2.907 -2.740 0.000 -ATOM 188 H1 WAT 63 -4.551 -3.248 -2.799 0.000 -ATOM 189 H2 WAT 63 -3.207 -3.284 -3.496 0.000 -ATOM 190 OH2 WAT 64 1.878 -2.491 -3.923 0.000 -ATOM 191 H1 WAT 64 1.469 -1.676 -4.215 0.000 -ATOM 192 H2 WAT 64 2.598 -2.631 -4.538 0.000 -ATOM 193 OH2 WAT 65 0.980 -2.316 7.565 0.000 -ATOM 194 H1 WAT 65 0.417 -3.020 7.885 0.000 -ATOM 195 H2 WAT 65 1.806 -2.436 8.032 0.000 -ATOM 196 OH2 WAT 66 2.882 -3.045 -1.109 0.000 -ATOM 197 H1 WAT 66 2.687 -2.440 -1.824 0.000 -ATOM 198 H2 WAT 66 3.064 -3.879 -1.544 0.000 -ATOM 199 OH2 WAT 67 -5.905 -2.808 4.215 0.000 -ATOM 200 H1 WAT 67 -5.943 -2.408 5.083 0.000 -ATOM 201 H2 WAT 67 -6.396 -3.625 4.305 0.000 -ATOM 202 OH2 WAT 68 -2.539 -5.434 -8.987 0.000 -ATOM 203 H1 WAT 68 -2.970 -5.879 -8.257 0.000 -ATOM 204 H2 WAT 68 -3.257 -5.062 -9.499 0.000 -ATOM 205 OH2 WAT 69 -9.297 -5.692 -1.935 0.000 -ATOM 206 H1 WAT 69 -8.666 -5.721 -1.215 0.000 -ATOM 207 H2 WAT 69 -8.847 -6.117 -2.665 0.000 -ATOM 208 OH2 WAT 70 -8.022 -4.946 -6.511 0.000 -ATOM 209 H1 WAT 70 -7.548 -4.355 -7.096 0.000 -ATOM 210 H2 WAT 70 -8.740 -4.415 -6.164 0.000 -ATOM 211 OH2 WAT 71 2.146 -1.407 3.562 0.000 -ATOM 212 H1 WAT 71 2.470 -2.038 2.919 0.000 -ATOM 213 H2 WAT 71 1.706 -1.942 4.223 0.000 -ATOM 214 OH2 WAT 72 -1.076 -5.480 -1.654 0.000 -ATOM 215 H1 WAT 72 -1.987 -5.423 -1.365 0.000 -ATOM 216 H2 WAT 72 -0.571 -5.540 -0.843 0.000 -ATOM 217 OH2 WAT 73 -6.248 -3.851 -2.827 0.000 -ATOM 218 H1 WAT 73 -7.137 -3.751 -3.167 0.000 -ATOM 219 H2 WAT 73 -5.952 -4.693 -3.173 0.000 -ATOM 220 OH2 WAT 74 -2.595 -3.851 -5.171 0.000 -ATOM 221 H1 WAT 74 -1.663 -3.722 -4.993 0.000 -ATOM 222 H2 WAT 74 -2.810 -3.181 -5.820 0.000 -ATOM 223 OH2 WAT 75 3.329 -6.245 1.610 0.000 -ATOM 224 H1 WAT 75 2.652 -6.114 2.274 0.000 -ATOM 225 H2 WAT 75 2.843 -6.400 0.800 0.000 -ATOM 226 OH2 WAT 76 -3.921 -2.656 -7.604 0.000 -ATOM 227 H1 WAT 76 -4.463 -3.036 -8.295 0.000 -ATOM 228 H2 WAT 76 -3.087 -2.462 -8.033 0.000 -ATOM 229 OH2 WAT 77 6.616 9.427 7.887 0.000 -ATOM 230 H1 WAT 77 6.816 9.851 7.052 0.000 -ATOM 231 H2 WAT 77 7.272 9.770 8.494 0.000 -ATOM 232 OH2 WAT 78 -5.786 1.901 7.495 0.000 -ATOM 233 H1 WAT 78 -5.053 2.155 8.056 0.000 -ATOM 234 H2 WAT 78 -6.566 2.105 8.010 0.000 -ATOM 235 OH2 WAT 79 0.244 -2.692 0.233 0.000 -ATOM 236 H1 WAT 79 0.808 -3.239 -0.314 0.000 -ATOM 237 H2 WAT 79 0.096 -3.214 1.022 0.000 -ATOM 238 OH2 WAT 80 -4.754 -6.556 -3.349 0.000 -ATOM 239 H1 WAT 80 -5.071 -7.458 -3.384 0.000 -ATOM 240 H2 WAT 80 -3.973 -6.554 -3.901 0.000 -ATOM 241 OH2 WAT 81 -1.130 -4.304 2.647 0.000 -ATOM 242 H1 WAT 81 -1.965 -3.850 2.757 0.000 -ATOM 243 H2 WAT 81 -0.606 -4.028 3.399 0.000 -ATOM 244 OH2 WAT 82 -0.586 1.909 -5.668 0.000 -ATOM 245 H1 WAT 82 -1.330 1.402 -5.991 0.000 -ATOM 246 H2 WAT 82 -0.720 1.958 -4.722 0.000 -ATOM 247 OH2 WAT 83 6.564 1.042 3.118 0.000 -ATOM 248 H1 WAT 83 7.206 1.499 2.575 0.000 -ATOM 249 H2 WAT 83 5.734 1.155 2.656 0.000 -ATOM 250 OH2 WAT 84 3.312 -5.277 -7.469 0.000 -ATOM 251 H1 WAT 84 2.374 -5.165 -7.620 0.000 -ATOM 252 H2 WAT 84 3.609 -4.420 -7.163 0.000 -ATOM 253 OH2 WAT 85 0.934 2.093 5.569 0.000 -ATOM 254 H1 WAT 85 0.588 1.712 6.375 0.000 -ATOM 255 H2 WAT 85 0.734 3.027 5.640 0.000 -ATOM 256 OH2 WAT 86 4.030 -3.410 -5.808 0.000 -ATOM 257 H1 WAT 86 4.922 -3.547 -5.489 0.000 -ATOM 258 H2 WAT 86 4.087 -2.619 -6.345 0.000 -ATOM 259 OH2 WAT 87 -5.461 1.204 0.101 0.000 -ATOM 260 H1 WAT 87 -4.716 1.202 -0.500 0.000 -ATOM 261 H2 WAT 87 -5.383 0.380 0.583 0.000 -ATOM 262 OH2 WAT 88 1.540 3.368 -6.643 0.000 -ATOM 263 H1 WAT 88 1.245 4.194 -6.261 0.000 -ATOM 264 H2 WAT 88 0.837 2.748 -6.447 0.000 -ATOM 265 OH2 WAT 89 -8.453 -0.335 5.416 0.000 -ATOM 266 H1 WAT 89 -8.230 -0.753 6.248 0.000 -ATOM 267 H2 WAT 89 -9.055 -0.948 4.994 0.000 -ATOM 268 OH2 WAT 90 -1.436 -0.818 7.629 0.000 -ATOM 269 H1 WAT 90 -1.732 -0.984 6.734 0.000 -ATOM 270 H2 WAT 90 -0.505 -1.038 7.619 0.000 -ATOM 271 OH2 WAT 91 3.184 4.555 5.519 0.000 -ATOM 272 H1 WAT 91 2.283 4.738 5.251 0.000 -ATOM 273 H2 WAT 91 3.218 4.814 6.440 0.000 -ATOM 274 OH2 WAT 92 8.915 -3.200 -6.114 0.000 -ATOM 275 H1 WAT 92 8.361 -3.596 -6.786 0.000 -ATOM 276 H2 WAT 92 9.016 -2.290 -6.391 0.000 -ATOM 277 OH2 WAT 93 8.879 2.600 6.723 0.000 -ATOM 278 H1 WAT 93 8.027 2.838 6.356 0.000 -ATOM 279 H2 WAT 93 9.469 2.583 5.970 0.000 -ATOM 280 OH2 WAT 94 7.211 5.586 -5.649 0.000 -ATOM 281 H1 WAT 94 6.838 4.760 -5.339 0.000 -ATOM 282 H2 WAT 94 7.488 5.403 -6.546 0.000 -ATOM 283 OH2 WAT 95 4.371 0.394 1.373 0.000 -ATOM 284 H1 WAT 95 3.443 0.162 1.346 0.000 -ATOM 285 H2 WAT 95 4.822 -0.383 1.043 0.000 -ATOM 286 OH2 WAT 96 -3.086 4.722 -2.494 0.000 -ATOM 287 H1 WAT 96 -2.559 5.495 -2.695 0.000 -ATOM 288 H2 WAT 96 -3.966 4.947 -2.796 0.000 -ATOM 289 OH2 WAT 97 -7.331 -0.416 -7.907 0.000 -ATOM 290 H1 WAT 97 -6.715 0.211 -7.528 0.000 -ATOM 291 H2 WAT 97 -8.193 -0.100 -7.636 0.000 -ATOM 292 OH2 WAT 98 -1.659 2.385 -2.918 0.000 -ATOM 293 H1 WAT 98 -1.900 3.310 -2.876 0.000 -ATOM 294 H2 WAT 98 -2.399 1.926 -2.522 0.000 -ATOM 295 OH2 WAT 99 -1.144 6.534 3.397 0.000 -ATOM 296 H1 WAT 99 -0.781 7.389 3.164 0.000 -ATOM 297 H2 WAT 99 -0.612 6.242 4.138 0.000 -ATOM 298 OH2 WAT 100 -2.975 7.407 -3.373 0.000 -ATOM 299 H1 WAT 100 -3.925 7.512 -3.321 0.000 -ATOM 300 H2 WAT 100 -2.624 8.227 -3.028 0.000 -ATOM 301 OH2 WAT 101 2.400 2.633 3.098 0.000 -ATOM 302 H1 WAT 101 1.974 2.406 3.924 0.000 -ATOM 303 H2 WAT 101 2.981 1.895 2.915 0.000 -ATOM 304 OH2 WAT 102 4.603 3.562 -7.828 0.000 -ATOM 305 H1 WAT 102 4.956 3.182 -7.024 0.000 -ATOM 306 H2 WAT 102 3.654 3.469 -7.742 0.000 -ATOM 307 OH2 WAT 103 5.059 7.185 5.567 0.000 -ATOM 308 H1 WAT 103 4.457 6.630 5.072 0.000 -ATOM 309 H2 WAT 103 5.340 7.852 4.941 0.000 -ATOM 310 OH2 WAT 104 9.107 8.042 -7.627 0.000 -ATOM 311 H1 WAT 104 9.850 8.628 -7.767 0.000 -ATOM 312 H2 WAT 104 8.412 8.610 -7.294 0.000 -ATOM 313 OH2 WAT 105 -6.819 -5.582 4.974 0.000 -ATOM 314 H1 WAT 105 -7.712 -5.243 4.907 0.000 -ATOM 315 H2 WAT 105 -6.918 -6.437 5.392 0.000 -ATOM 316 OH2 WAT 106 5.469 2.235 -5.602 0.000 -ATOM 317 H1 WAT 106 5.192 1.507 -5.046 0.000 -ATOM 318 H2 WAT 106 6.396 2.354 -5.396 0.000 -ATOM 319 OH2 WAT 107 -7.168 6.223 3.409 0.000 -ATOM 320 H1 WAT 107 -6.951 5.291 3.378 0.000 -ATOM 321 H2 WAT 107 -6.921 6.497 4.293 0.000 -ATOM 322 OH2 WAT 108 -1.306 4.674 -9.381 0.000 -ATOM 323 H1 WAT 108 -1.067 3.926 -9.929 0.000 -ATOM 324 H2 WAT 108 -1.575 4.286 -8.549 0.000 -ATOM 325 OH2 WAT 109 -2.369 4.244 -6.925 0.000 -ATOM 326 H1 WAT 109 -2.222 3.724 -6.135 0.000 -ATOM 327 H2 WAT 109 -2.372 5.151 -6.619 0.000 -ATOM 328 OH2 WAT 110 -5.916 1.497 -6.415 0.000 -ATOM 329 H1 WAT 110 -6.602 1.849 -5.848 0.000 -ATOM 330 H2 WAT 110 -5.393 2.260 -6.661 0.000 -ATOM 331 OH2 WAT 111 1.916 -5.841 3.864 0.000 -ATOM 332 H1 WAT 111 2.614 -5.767 4.514 0.000 -ATOM 333 H2 WAT 111 1.535 -6.705 4.019 0.000 -ATOM 334 OH2 WAT 112 2.700 -6.189 -5.039 0.000 -ATOM 335 H1 WAT 112 2.920 -5.717 -5.842 0.000 -ATOM 336 H2 WAT 112 3.258 -5.794 -4.368 0.000 -ATOM 337 OH2 WAT 113 0.369 5.942 -6.176 0.000 -ATOM 338 H1 WAT 113 -0.448 6.439 -6.123 0.000 -ATOM 339 H2 WAT 113 0.898 6.417 -6.816 0.000 -ATOM 340 OH2 WAT 114 -0.100 -4.461 -4.204 0.000 -ATOM 341 H1 WAT 114 0.712 -3.957 -4.158 0.000 -ATOM 342 H2 WAT 114 -0.345 -4.606 -3.290 0.000 -ATOM 343 OH2 WAT 115 0.436 -3.475 4.981 0.000 -ATOM 344 H1 WAT 115 0.555 -2.901 5.738 0.000 -ATOM 345 H2 WAT 115 1.091 -4.163 5.096 0.000 -ATOM 346 OH2 WAT 116 0.784 -7.380 -3.266 0.000 -ATOM 347 H1 WAT 116 0.437 -6.762 -2.621 0.000 -ATOM 348 H2 WAT 116 1.442 -6.879 -3.747 0.000 -ATOM 349 OH2 WAT 117 -2.293 6.985 -6.194 0.000 -ATOM 350 H1 WAT 117 -2.132 7.785 -6.695 0.000 -ATOM 351 H2 WAT 117 -2.490 7.292 -5.309 0.000 -ATOM 352 OH2 WAT 118 -3.559 -6.317 -6.578 0.000 -ATOM 353 H1 WAT 118 -3.642 -5.428 -6.232 0.000 -ATOM 354 H2 WAT 118 -2.669 -6.582 -6.347 0.000 -ATOM 355 OH2 WAT 119 6.640 -5.568 5.816 0.000 -ATOM 356 H1 WAT 119 5.724 -5.305 5.728 0.000 -ATOM 357 H2 WAT 119 6.976 -5.571 4.919 0.000 -ATOM 358 OH2 WAT 120 5.242 -1.817 -0.088 0.000 -ATOM 359 H1 WAT 120 4.445 -2.232 -0.417 0.000 -ATOM 360 H2 WAT 120 5.687 -2.508 0.403 0.000 -ATOM 361 OH2 WAT 121 -5.300 4.111 -7.518 0.000 -ATOM 362 H1 WAT 121 -4.708 4.810 -7.242 0.000 -ATOM 363 H2 WAT 121 -4.841 3.678 -8.237 0.000 -ATOM 364 OH2 WAT 122 -6.984 -3.225 -8.402 0.000 -ATOM 365 H1 WAT 122 -7.029 -2.286 -8.223 0.000 -ATOM 366 H2 WAT 122 -7.872 -3.461 -8.672 0.000 -ATOM 367 OH2 WAT 123 6.329 7.439 1.534 0.000 -ATOM 368 H1 WAT 123 6.173 8.117 0.877 0.000 -ATOM 369 H2 WAT 123 7.261 7.511 1.737 0.000 -ATOM 370 OH2 WAT 124 -6.176 -8.443 0.271 0.000 -ATOM 371 H1 WAT 124 -6.405 -8.384 -0.656 0.000 -ATOM 372 H2 WAT 124 -6.619 -9.235 0.578 0.000 -ATOM 373 OH2 WAT 125 -7.246 5.497 -3.568 0.000 -ATOM 374 H1 WAT 125 -8.078 5.970 -3.541 0.000 -ATOM 375 H2 WAT 125 -6.700 6.007 -4.167 0.000 -ATOM 376 OH2 WAT 126 -7.957 8.110 7.762 0.000 -ATOM 377 H1 WAT 126 -7.417 7.893 8.521 0.000 -ATOM 378 H2 WAT 126 -8.438 7.304 7.572 0.000 -ATOM 379 OH2 WAT 127 -3.360 7.029 9.382 0.000 -ATOM 380 H1 WAT 127 -2.592 6.570 9.723 0.000 -ATOM 381 H2 WAT 127 -3.381 6.803 8.452 0.000 -ATOM 382 OH2 WAT 128 0.732 6.537 -9.243 0.000 -ATOM 383 H1 WAT 128 0.088 5.906 -8.921 0.000 -ATOM 384 H2 WAT 128 1.494 6.006 -9.475 0.000 -ATOM 385 OH2 WAT 129 3.217 5.409 8.111 0.000 -ATOM 386 H1 WAT 129 2.866 4.553 8.354 0.000 -ATOM 387 H2 WAT 129 3.943 5.552 8.718 0.000 -ATOM 388 OH2 WAT 130 5.336 6.354 -9.009 0.000 -ATOM 389 H1 WAT 130 5.619 5.560 -8.556 0.000 -ATOM 390 H2 WAT 130 6.076 6.587 -9.570 0.000 -ATOM 391 OH2 WAT 131 -8.050 1.920 8.716 0.000 -ATOM 392 H1 WAT 131 -7.906 1.018 8.430 0.000 -ATOM 393 H2 WAT 131 -8.823 2.206 8.228 0.000 -ATOM 394 OH2 WAT 132 -3.709 2.264 -9.152 0.000 -ATOM 395 H1 WAT 132 -3.645 1.470 -8.621 0.000 -ATOM 396 H2 WAT 132 -3.056 2.145 -9.841 0.000 -ATOM 397 OH2 WAT 133 -1.395 1.890 8.149 0.000 -ATOM 398 H1 WAT 133 -1.723 2.161 7.291 0.000 -ATOM 399 H2 WAT 133 -1.243 0.949 8.061 0.000 -ATOM 400 OH2 WAT 134 1.643 3.311 -9.416 0.000 -ATOM 401 H1 WAT 134 1.375 3.491 -8.515 0.000 -ATOM 402 H2 WAT 134 1.437 2.385 -9.547 0.000 -ATOM 403 OH2 WAT 135 4.340 1.806 5.532 0.000 -ATOM 404 H1 WAT 135 5.085 2.394 5.412 0.000 -ATOM 405 H2 WAT 135 3.583 2.388 5.595 0.000 -ATOM 406 OH2 WAT 136 -7.218 -0.880 8.136 0.000 -ATOM 407 H1 WAT 136 -6.810 -1.737 8.015 0.000 -ATOM 408 H2 WAT 136 -7.478 -0.865 9.057 0.000 -ATOM 409 OH2 WAT 137 -2.560 0.236 -6.846 0.000 -ATOM 410 H1 WAT 137 -3.019 -0.248 -6.160 0.000 -ATOM 411 H2 WAT 137 -2.305 -0.432 -7.482 0.000 -ATOM 412 OH2 WAT 138 -3.271 -1.871 5.510 0.000 -ATOM 413 H1 WAT 138 -3.889 -1.196 5.791 0.000 -ATOM 414 H2 WAT 138 -2.927 -1.550 4.677 0.000 -ATOM 415 OH2 WAT 139 -1.489 -1.521 -8.583 0.000 -ATOM 416 H1 WAT 139 -1.669 -1.675 -9.511 0.000 -ATOM 417 H2 WAT 139 -0.538 -1.413 -8.539 0.000 -ATOM 418 OH2 WAT 140 1.749 0.600 8.788 0.000 -ATOM 419 H1 WAT 140 2.702 0.684 8.760 0.000 -ATOM 420 H2 WAT 140 1.589 -0.111 9.407 0.000 -ATOM 421 OH2 WAT 141 7.901 0.834 -9.138 0.000 -ATOM 422 H1 WAT 141 7.628 0.409 -9.951 0.000 -ATOM 423 H2 WAT 141 7.941 1.765 -9.355 0.000 -ATOM 424 OH2 WAT 142 -2.931 -4.516 6.593 0.000 -ATOM 425 H1 WAT 142 -2.781 -5.245 5.990 0.000 -ATOM 426 H2 WAT 142 -2.929 -3.739 6.034 0.000 -ATOM 427 OH2 WAT 143 -2.519 -6.146 4.085 0.000 -ATOM 428 H1 WAT 143 -1.983 -5.695 3.433 0.000 -ATOM 429 H2 WAT 143 -3.371 -6.254 3.663 0.000 -ATOM 430 OH2 WAT 144 -0.937 -0.707 4.325 0.000 -ATOM 431 H1 WAT 144 -0.186 -0.863 3.752 0.000 -ATOM 432 H2 WAT 144 -1.276 0.145 4.049 0.000 -ATOM 433 OH2 WAT 145 3.479 -2.892 9.353 0.000 -ATOM 434 H1 WAT 145 3.671 -3.823 9.242 0.000 -ATOM 435 H2 WAT 145 4.336 -2.467 9.343 0.000 -ATOM 436 OH2 WAT 146 4.795 -0.103 7.431 0.000 -ATOM 437 H1 WAT 146 4.514 0.606 6.853 0.000 -ATOM 438 H2 WAT 146 5.738 -0.176 7.280 0.000 -ATOM 439 OH2 WAT 147 -4.453 -3.318 8.504 0.000 -ATOM 440 H1 WAT 147 -5.220 -3.850 8.294 0.000 -ATOM 441 H2 WAT 147 -3.774 -3.628 7.905 0.000 -ATOM 442 OH2 WAT 148 -1.713 -8.690 4.517 0.000 -ATOM 443 H1 WAT 148 -1.811 -7.743 4.411 0.000 -ATOM 444 H2 WAT 148 -2.456 -9.062 4.041 0.000 -ATOM 445 OH2 WAT 149 -0.449 -4.368 8.080 0.000 -ATOM 446 H1 WAT 149 -0.685 -4.588 8.982 0.000 -ATOM 447 H2 WAT 149 -1.232 -4.575 7.571 0.000 -ATOM 448 OH2 WAT 150 2.267 -5.241 7.156 0.000 -ATOM 449 H1 WAT 150 1.319 -5.209 7.288 0.000 -ATOM 450 H2 WAT 150 2.579 -5.866 7.810 0.000 -ATOM 451 OH2 WAT 151 3.901 -6.607 9.161 0.000 -ATOM 452 H1 WAT 151 3.804 -7.559 9.155 0.000 -ATOM 453 H2 WAT 151 3.579 -6.338 10.022 0.000 -ATOM 454 OH2 WAT 152 -6.272 -5.397 8.209 0.000 -ATOM 455 H1 WAT 152 -6.061 -6.104 7.598 0.000 -ATOM 456 H2 WAT 152 -6.384 -5.835 9.053 0.000 -ATOM 457 OH2 WAT 153 -1.491 -9.396 7.188 0.000 -ATOM 458 H1 WAT 153 -0.779 -10.036 7.174 0.000 -ATOM 459 H2 WAT 153 -1.592 -9.129 6.274 0.000 -ATOM 460 OH2 WAT 154 -1.138 -7.713 9.242 0.000 -ATOM 461 H1 WAT 154 -1.269 -8.189 8.421 0.000 -ATOM 462 H2 WAT 154 -1.737 -6.969 9.186 0.000 -ATOM 463 OH2 WAT 155 -1.591 9.170 -7.582 0.000 -ATOM 464 H1 WAT 155 -0.658 9.328 -7.438 0.000 -ATOM 465 H2 WAT 155 -1.855 9.845 -8.207 0.000 -ATOM 466 OH2 WAT 156 -8.023 3.806 -8.099 0.000 -ATOM 467 H1 WAT 156 -7.109 3.885 -7.826 0.000 -ATOM 468 H2 WAT 156 -8.016 3.119 -8.766 0.000 -ATOM 469 OH2 WAT 157 -9.374 9.199 -3.022 0.000 -ATOM 470 H1 WAT 157 -10.021 8.737 -3.555 0.000 -ATOM 471 H2 WAT 157 -9.019 8.527 -2.439 0.000 -ATOM 472 OH2 WAT 158 -8.504 7.280 -1.217 0.000 -ATOM 473 H1 WAT 158 -8.838 6.399 -1.045 0.000 -ATOM 474 H2 WAT 158 -8.282 7.625 -0.353 0.000 -ATOM 475 OH2 WAT 159 9.045 8.089 1.763 0.000 -ATOM 476 H1 WAT 159 9.023 8.274 2.702 0.000 -ATOM 477 H2 WAT 159 9.735 8.658 1.422 0.000 -ATOM 478 OH2 WAT 160 8.608 7.656 4.685 0.000 -ATOM 479 H1 WAT 160 8.121 6.921 4.314 0.000 -ATOM 480 H2 WAT 160 9.157 7.263 5.363 0.000 -ATOM 481 OH2 WAT 161 7.059 3.446 9.323 0.000 -ATOM 482 H1 WAT 161 6.193 3.341 9.717 0.000 -ATOM 483 H2 WAT 161 7.435 4.205 9.770 0.000 -ATOM 484 OH2 WAT 162 8.360 1.703 -5.163 0.000 -ATOM 485 H1 WAT 162 9.210 2.124 -5.035 0.000 -ATOM 486 H2 WAT 162 8.365 0.963 -4.555 0.000 -ATOM 487 OH2 WAT 163 8.754 -0.244 -3.339 0.000 -ATOM 488 H1 WAT 163 8.028 -0.723 -2.941 0.000 -ATOM 489 H2 WAT 163 9.335 -0.038 -2.607 0.000 -ATOM 490 OH2 WAT 164 8.513 2.541 1.609 0.000 -ATOM 491 H1 WAT 164 9.347 2.163 1.328 0.000 -ATOM 492 H2 WAT 164 8.625 3.484 1.490 0.000 -ATOM 493 OH2 WAT 165 7.000 5.419 3.916 0.000 -ATOM 494 H1 WAT 165 6.352 5.744 4.541 0.000 -ATOM 495 H2 WAT 165 6.482 4.979 3.241 0.000 -ATOM 496 OH2 WAT 166 9.022 -0.343 -6.948 0.000 -ATOM 497 H1 WAT 166 8.501 0.014 -7.667 0.000 -ATOM 498 H2 WAT 166 8.989 0.332 -6.270 0.000 -ATOM 499 OH2 WAT 167 7.371 -3.103 -8.397 0.000 -ATOM 500 H1 WAT 167 7.468 -2.436 -9.077 0.000 -ATOM 501 H2 WAT 167 7.231 -3.919 -8.879 0.000 -ATOM 502 OH2 WAT 168 6.541 -1.723 -2.776 0.000 -ATOM 503 H1 WAT 168 6.391 -2.668 -2.796 0.000 -ATOM 504 H2 WAT 168 6.187 -1.442 -1.932 0.000 -ATOM 505 OH2 WAT 169 -8.424 0.355 1.234 0.000 -ATOM 506 H1 WAT 169 -8.240 0.273 0.299 0.000 -ATOM 507 H2 WAT 169 -7.575 0.231 1.658 0.000 -ATOM 508 OH2 WAT 170 7.397 0.247 6.863 0.000 -ATOM 509 H1 WAT 170 7.980 -0.487 7.054 0.000 -ATOM 510 H2 WAT 170 7.961 1.019 6.909 0.000 -ATOM 511 OH2 WAT 171 8.894 -1.850 7.547 0.000 -ATOM 512 H1 WAT 171 8.031 -2.229 7.382 0.000 -ATOM 513 H2 WAT 171 9.498 -2.589 7.473 0.000 -ATOM 514 OH2 WAT 172 6.619 -5.695 -9.280 0.000 -ATOM 515 H1 WAT 172 7.229 -6.067 -8.643 0.000 -ATOM 516 H2 WAT 172 5.782 -6.117 -9.084 0.000 -ATOM 517 OH2 WAT 173 6.251 -4.140 -4.314 0.000 -ATOM 518 H1 WAT 173 6.531 -5.047 -4.189 0.000 -ATOM 519 H2 WAT 173 7.010 -3.706 -4.703 0.000 -ATOM 520 OH2 WAT 174 6.863 -3.559 1.122 0.000 -ATOM 521 H1 WAT 174 7.796 -3.347 1.088 0.000 -ATOM 522 H2 WAT 174 6.628 -3.457 2.045 0.000 -ATOM 523 OH2 WAT 175 6.892 -2.822 3.898 0.000 -ATOM 524 H1 WAT 175 6.049 -2.554 4.264 0.000 -ATOM 525 H2 WAT 175 7.335 -2.000 3.687 0.000 -ATOM 526 OH2 WAT 176 -8.826 -4.374 7.375 0.000 -ATOM 527 H1 WAT 176 -7.907 -4.496 7.611 0.000 -ATOM 528 H2 WAT 176 -9.276 -5.124 7.764 0.000 -ATOM 529 OH2 WAT 177 9.175 -8.842 9.252 0.000 -ATOM 530 H1 WAT 177 9.525 -9.496 8.646 0.000 -ATOM 531 H2 WAT 177 9.322 -8.005 8.812 0.000 -ATOM 532 OH2 WAT 178 6.865 -6.877 -4.265 0.000 -ATOM 533 H1 WAT 178 7.047 -7.326 -3.440 0.000 -ATOM 534 H2 WAT 178 6.265 -7.462 -4.729 0.000 -ATOM 535 OH2 WAT 179 -7.605 -6.062 0.266 0.000 -ATOM 536 H1 WAT 179 -7.160 -6.854 0.568 0.000 -ATOM 537 H2 WAT 179 -7.139 -5.346 0.697 0.000 -ATOM 538 OH2 WAT 180 -9.301 -3.063 1.335 0.000 -ATOM 539 H1 WAT 180 -8.809 -3.284 0.545 0.000 -ATOM 540 H2 WAT 180 -8.939 -2.222 1.616 0.000 -ATOM 541 OH2 WAT 181 8.695 -6.733 7.601 0.000 -ATOM 542 H1 WAT 181 7.778 -6.462 7.565 0.000 -ATOM 543 H2 WAT 181 8.818 -7.268 6.817 0.000 -ATOM 544 OH2 WAT 182 8.731 -6.810 -7.737 0.000 -ATOM 545 H1 WAT 182 9.144 -7.531 -8.213 0.000 -ATOM 546 H2 WAT 182 9.413 -6.140 -7.679 0.000 -ATOM 547 OH2 WAT 183 -8.988 -6.805 -4.610 0.000 -ATOM 548 H1 WAT 183 -9.913 -6.596 -4.740 0.000 -ATOM 549 H2 WAT 183 -8.534 -6.321 -5.300 0.000 -ATOM 550 OH2 WAT 184 5.783 8.179 -2.665 0.000 -ATOM 551 H1 WAT 184 6.436 7.832 -3.273 0.000 -ATOM 552 H2 WAT 184 6.294 8.668 -2.019 0.000 -ATOM 553 OH2 WAT 185 -9.024 -8.067 3.734 0.000 -ATOM 554 H1 WAT 185 -9.689 -8.313 4.377 0.000 -ATOM 555 H2 WAT 185 -9.467 -7.445 3.157 0.000 -ATOM 556 OH2 WAT 186 -6.832 5.108 7.878 0.000 -ATOM 557 H1 WAT 186 -7.653 5.283 7.418 0.000 -ATOM 558 H2 WAT 186 -7.084 5.035 8.799 0.000 -ATOM 559 OH2 WAT 187 -3.878 6.083 4.137 0.000 -ATOM 560 H1 WAT 187 -4.303 6.892 3.854 0.000 -ATOM 561 H2 WAT 187 -2.973 6.168 3.835 0.000 -ATOM 562 OH2 WAT 188 0.433 7.482 7.096 0.000 -ATOM 563 H1 WAT 188 0.618 7.148 7.974 0.000 -ATOM 564 H2 WAT 188 1.280 7.791 6.774 0.000 -ATOM 565 OH2 WAT 189 2.778 8.767 6.340 0.000 -ATOM 566 H1 WAT 189 3.455 8.135 6.100 0.000 -ATOM 567 H2 WAT 189 3.100 9.169 7.148 0.000 -ATOM 568 OH2 WAT 190 7.696 -8.643 5.420 0.000 -ATOM 569 H1 WAT 190 6.883 -8.318 5.032 0.000 -ATOM 570 H2 WAT 190 7.929 -9.403 4.887 0.000 -ATOM 571 OH2 WAT 191 -6.476 9.339 4.184 0.000 -ATOM 572 H1 WAT 191 -7.196 9.779 3.733 0.000 -ATOM 573 H2 WAT 191 -6.842 9.088 5.033 0.000 -ATOM 574 OH2 WAT 192 -4.009 8.939 3.214 0.000 -ATOM 575 H1 WAT 192 -4.874 9.011 3.618 0.000 -ATOM 576 H2 WAT 192 -4.064 9.486 2.430 0.000 -ATOM 577 OH2 WAT 193 0.702 8.827 2.390 0.000 -ATOM 578 H1 WAT 193 0.245 9.356 1.736 0.000 -ATOM 579 H2 WAT 193 0.865 9.430 3.115 0.000 -ATOM 580 OH2 WAT 194 3.029 7.705 3.335 0.000 -ATOM 581 H1 WAT 194 2.125 7.870 3.069 0.000 -ATOM 582 H2 WAT 194 3.458 8.558 3.269 0.000 -ATOM 583 OH2 WAT 195 5.634 9.275 3.630 0.000 -ATOM 584 H1 WAT 195 5.452 10.191 3.419 0.000 -ATOM 585 H2 WAT 195 5.810 8.865 2.783 0.000 -ATOM 586 OH2 WAT 196 -7.061 7.962 1.095 0.000 -ATOM 587 H1 WAT 196 -7.080 7.537 1.952 0.000 -ATOM 588 H2 WAT 196 -6.256 7.644 0.686 0.000 -ATOM 589 OH2 WAT 197 -4.920 6.672 -0.250 0.000 -ATOM 590 H1 WAT 197 -5.139 5.756 -0.081 0.000 -ATOM 591 H2 WAT 197 -4.096 6.812 0.216 0.000 -ATOM 592 OH2 WAT 198 -2.383 7.142 0.598 0.000 -ATOM 593 H1 WAT 198 -2.170 6.254 0.311 0.000 -ATOM 594 H2 WAT 198 -2.318 7.108 1.553 0.000 -ATOM 595 OH2 WAT 199 1.126 -7.194 -0.257 0.000 -ATOM 596 H1 WAT 199 0.451 -7.823 -0.002 0.000 -ATOM 597 H2 WAT 199 1.690 -7.678 -0.860 0.000 -ATOM 598 OH2 WAT 200 6.268 -9.087 -0.145 0.000 -ATOM 599 H1 WAT 200 6.872 -8.539 -0.646 0.000 -ATOM 600 H2 WAT 200 5.399 -8.767 -0.385 0.000 -ATOM 601 OH2 WAT 201 7.995 -7.948 -1.811 0.000 -ATOM 602 H1 WAT 201 8.607 -8.462 -2.338 0.000 -ATOM 603 H2 WAT 201 8.378 -7.070 -1.788 0.000 -ATOM 604 OH2 WAT 202 -6.548 -8.560 -2.435 0.000 -ATOM 605 H1 WAT 202 -7.325 -8.794 -2.943 0.000 -ATOM 606 H2 WAT 202 -6.017 -9.357 -2.427 0.000 -ATOM 607 OH2 WAT 203 -7.711 -8.762 -6.632 0.000 -ATOM 608 H1 WAT 203 -7.272 -8.151 -7.223 0.000 -ATOM 609 H2 WAT 203 -8.345 -8.224 -6.158 0.000 -ATOM 610 OH2 WAT 204 -1.968 -8.633 -2.622 0.000 -ATOM 611 H1 WAT 204 -1.094 -8.245 -2.652 0.000 -ATOM 612 H2 WAT 204 -2.104 -8.848 -1.699 0.000 -ATOM 613 OH2 WAT 205 3.589 -8.603 -0.973 0.000 -ATOM 614 H1 WAT 205 3.665 -8.508 -1.922 0.000 -ATOM 615 H2 WAT 205 3.313 -9.511 -0.844 0.000 -ATOM 616 OH2 WAT 206 4.942 -8.577 -5.280 0.000 -ATOM 617 H1 WAT 206 4.239 -7.963 -5.490 0.000 -ATOM 618 H2 WAT 206 4.497 -9.415 -5.149 0.000 -ATOM 619 OH2 WAT 207 -7.810 7.186 -5.734 0.000 -ATOM 620 H1 WAT 207 -8.495 7.148 -6.402 0.000 -ATOM 621 H2 WAT 207 -7.807 8.099 -5.446 0.000 -ATOM 622 OH2 WAT 208 -5.850 -6.846 -8.189 0.000 -ATOM 623 H1 WAT 208 -5.359 -7.476 -8.717 0.000 -ATOM 624 H2 WAT 208 -5.227 -6.550 -7.526 0.000 -ATOM 625 OH2 WAT 209 -0.824 -6.553 -5.732 0.000 -ATOM 626 H1 WAT 209 -0.646 -7.199 -5.049 0.000 -ATOM 627 H2 WAT 209 -0.878 -5.719 -5.265 0.000 -ATOM 628 OH2 WAT 210 1.054 8.396 -7.337 0.000 -ATOM 629 H1 WAT 210 1.920 8.762 -7.515 0.000 -ATOM 630 H2 WAT 210 0.807 7.956 -8.150 0.000 -ATOM 631 OH2 WAT 211 7.763 7.959 -4.657 0.000 -ATOM 632 H1 WAT 211 7.569 7.211 -5.222 0.000 -ATOM 633 H2 WAT 211 7.724 8.717 -5.241 0.000 -ATOM 634 OH2 WAT 212 -6.590 -8.046 7.082 0.000 -ATOM 635 H1 WAT 212 -6.956 -8.811 7.525 0.000 -ATOM 636 H2 WAT 212 -5.677 -8.017 7.369 0.000 -ATOM 637 OH2 WAT 213 -4.617 -8.695 8.618 0.000 -ATOM 638 H1 WAT 213 -3.718 -8.969 8.433 0.000 -ATOM 639 H2 WAT 213 -5.003 -9.438 9.082 0.000 -ATOM 640 OH2 WAT 214 -5.992 8.106 -8.709 0.000 -ATOM 641 H1 WAT 214 -6.260 8.393 -7.836 0.000 -ATOM 642 H2 WAT 214 -5.221 7.560 -8.557 0.000 -ATOM 643 OH2 WAT 215 3.805 -9.363 8.800 0.000 -ATOM 644 H1 WAT 215 3.881 -9.789 9.654 0.000 -ATOM 645 H2 WAT 215 4.698 -9.349 8.458 0.000 -ATOM 646 OH2 WAT 216 6.981 6.710 7.493 0.000 -ATOM 647 H1 WAT 216 6.199 6.524 6.973 0.000 -ATOM 648 H2 WAT 216 6.909 7.639 7.710 0.000 -END diff --git a/src/haddock/modules/flexref/cns/bsa.cns b/src/haddock/modules/flexref/cns/bsa.cns deleted file mode 100644 index 747120788..000000000 --- a/src/haddock/modules/flexref/cns/bsa.cns +++ /dev/null @@ -1,51 +0,0 @@ - -! Calculate buried surface area and desolvation energy of the complex -! -! *********************************************************************** -! * Copyright 2003-2016 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! -{====>} {* define ASA-based solvation parameters *} -inline @RUN:def_solv_param.cns - -{====>} {* buried surface area and desolvation of single chains *} -evaluate ($nchain1 = 0) -evaluate ($saafree = 0) -evaluate ($esolfree = 0) -while ($nchain1 < $data.ncomponents) loop nloop1 - evaluate ($nchain1 = $nchain1 + 1) - {====>} {* buried surface area and desolvation*} - do (rmsd = 0) (all) - surface mode=access accu=0.075 rh2o=1.4 sele=(segid $Toppar.prot_segid_$nchain1 and not ((resn WAT or resn HOH or resn TIP*) or resn DMS or resn SHA)) end - show sum (rmsd) (segid $Toppar.prot_segid_$nchain1 and not ((resn WAT or resn HOH or resn TIP*) or resn DMS or resn SHA)) - evaluate ($saafree = $saafree + $result) - do (store2 = rmsd * store1) (segid $Toppar.prot_segid_$nchain1 and not ((resn WAT or resn HOH or resn TIP*) or resn DMS or resn SHA)) - show sum (store2) (segid $Toppar.prot_segid_$nchain1 and not ((resn WAT or resn HOH or resn TIP*) or resn DMS or resn SHA)) - evaluate ($esolfree = $esolfree + $result) -end loop nloop1 - -{====>} {* buried surface area and desolvation of complex *} -do (rmsd = 0) (all) -do (store2 = 0) (all) -surface mode=access accu=0.075 rh2o=1.4 sele=(not ((resn WAT or resn HOH or resn TIP*) or resn DMS or resn SHA)) end -show sum (rmsd) (not ((resn WAT or resn HOH or resn TIP*) or resn DMS or resn SHA)) -evaluate ($satot = $result) -do (store2 = rmsd * store1) (not ((resn WAT or resn HOH or resn TIP*) or resn DMS or resn SHA)) -show sum (store2) (not ((resn WAT or resn HOH or resn TIP*) or resn DMS or resn SHA)) -evaluate ($esolcplx = $result) -evaluate ($saburied = $saafree - $satot) -! minimum BSA value set to 15 (one H atom would have SASA of 12.56 A**2) -if ($saburied < 15) then - evaluate ($saburied = -999999) -end if - -evaluate ($edesolv = $esolcplx - $esolfree) - -if ($data.ncomponents eq 1) then - evaluate ($bsa = 0) - evaluate ($desolv = 0) -end if diff --git a/src/haddock/modules/flexref/cns/build-missing.cns b/src/haddock/modules/flexref/cns/build-missing.cns deleted file mode 100644 index 3cb1d4870..000000000 --- a/src/haddock/modules/flexref/cns/build-missing.cns +++ /dev/null @@ -1,323 +0,0 @@ -! build-missing.cns -! build missing atoms -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! - ! edited - define(atom_build=(not(known))) - - identity (store9) (none) - - identity (store9) (&atom_build) - if ( &hydrogen_build = "all" ) then - identity (store9) (store9 or hydrogen) - elseif ( &hydrogen_build = "unknown" ) then - identity (store9) (store9 or (not(known) and hydrogen)) - end if - - show sum(1) (store9) - evaluate ($tobuild=$result) - - if ( $tobuild > 0 ) then - - fix selection=(not(store9)) end - - show sum(1) (store9) - evaluate ($moving=$result) - - if ( $moving > 0 ) then - for $id in id (tag and byres(store9)) loop avco - - show ave(x) (byres(id $id) and known) - evaluate ($ave_x=$result) - show ave(y) (byres(id $id) and known) - evaluate ($ave_y=$result) - show ave(z) (byres(id $id) and known) - evaluate ($ave_z=$result) - - do (x=$ave_x) (byres(id $id) and store9) - do (y=$ave_y) (byres(id $id) and store9) - do (z=$ave_z) (byres(id $id) and store9) - - !The following is to deal with problems with THY methyl group - show (x) (byres(id $id) and known and name C7) - evaluate ($ave_x=$result) - show ave(y) (byres(id $id) and known and name C7) - evaluate ($ave_y=$result) - show ave(z) (byres(id $id) and known and name C7) - evaluate ($ave_z=$result) - - do (x=$ave_x) (byres(id $id) and store9 and name H7*) - do (y=$ave_y) (byres(id $id) and store9 and name H7*) - do (z=$ave_z) (byres(id $id) and store9 and name H7*) - - end loop avco - - ! Better initial position for rebuilding if atoms to which a missing atom is bonded to exist - for $id in id (store9) loop bndto - - show sum(1) (bondedto(id $id) and known) - if ($result > 0) then - show ave(x) (bondedto(id $id) and known) - evaluate ($ave_x=$result) - show ave(y) (bondedto(id $id) and known) - evaluate ($ave_y=$result) - show ave(z) (bondedto(id $id) and known) - evaluate ($ave_z=$result) - end if - - end loop bndto - - do (x=x+2*random(1.0)-1) (store9) - do (y=y+2*random(1.0)-1) (store9) - do (z=z+2*random(1.0)-1) (store9) - - {- start parameter for the side chain building -} - parameter - nbonds - rcon=20. nbxmod=-2 repel=0.9 wmin=0.1 tolerance=1. - rexp=2 irexp=2 inhibit=0.25 - end - end - - {- Friction coefficient, in 1/ps. -} - do (fbeta=100) (store9) - - evaluate ($bath=300.0) - evaluate ($nstep=500) - evaluate ($timestep=0.0005) - - do (refy=mass) (store9) - - do (mass=20) (store9) - - igroup interaction - (store9) (store9 or known) - end - - {- turn on initial energy terms -} - flags exclude * include bond angle vdw end - - minimize powell nstep=50 nprint=10 end - - do (vx=maxwell($bath)) (store9) - do (vy=maxwell($bath)) (store9) - do (vz=maxwell($bath)) (store9) - - flags exclude vdw include impr end - - dynamics cartesian - nstep=50 - timestep=$timestep - tcoupling=true temperature=$bath - nprint=$nstep - cmremove=false - end - - flags include vdw end - - minimize powell nstep=50 nprint=10 end - - do (vx=maxwell($bath)) (store9) - do (vy=maxwell($bath)) (store9) - do (vz=maxwell($bath)) (store9) - - dynamics cartesian - nstep=50 - timestep=$timestep - tcoupling=true temperature=$bath - nprint=$nstep - cmremove=false - end - - parameter - nbonds - rcon=2. nbxmod=-3 repel=0.75 - end - end - - minimize powell nstep=100 nprint=25 end - - do (vx=maxwell($bath)) (store9) - do (vy=maxwell($bath)) (store9) - do (vz=maxwell($bath)) (store9) - - dynamics cartesian - nstep=$nstep - timestep=$timestep - tcoupling=true temperature=$bath - nprint=$nstep - cmremove=false - end - - {- turn on all energy terms -} - flags include dihe ? end - -! {- turn on electrostatic and proper non-bonded-} -! parameter -! nbonds -! repel=0 -! nbxmod=5 atom cdie shift -! cutnb=9.5 ctofnb=8.5 ctonnb=6.5 eps=10.0 e14fac=0.4 inhibit 0.25 -! wmin=0.5 -! tolerance 0.5 -! end -! end - {- set repel to ~vdw radii -} - parameter - nbonds - repel=0.89 - end - end - - minimize powell nstep=500 nprint=50 end - - flags exclude * include bond angl impr dihe vdw elec end - - {- return masses to something sensible -} - do (mass=refy) (store9) - - do (vx=maxwell($bath)) (store9) - do (vy=maxwell($bath)) (store9) - do (vz=maxwell($bath)) (store9) - - dynamics cartesian - nstep=$nstep - timestep=$timestep - tcoupling=true temperature=$bath - nprint=$nstep - cmremove=false - end - - {- some final minimisation -} - minimize powell - nstep=500 - drop=40.0 - nprint=50 - end - - print thres=0.02 bonds - print thres=5. angles - - end if - - noe reset end - rest dihe reset end - - -! Check for D-amino acids - - for $id in id ( name HA and not resn GLY ) loop ltod - - show (segid) (id $id) - evaluate ($segid=$result) - show (resid) (id $id) - evaluate ($resid=$result) - show (resn) (id $id) - evaluate ($resn=$result) - - show ave(x) (segid $segid and resid $resid and (name CB or name C or name N) and known) - evaluate ($ave_x=$result) - show ave(y) (segid $segid and resid $resid and (name CB or name C or name N) and known) - evaluate ($ave_y=$result) - show ave(z) (segid $segid and resid $resid and (name CB or name C or name N) and known) - evaluate ($ave_z=$result) - show ave(x) (segid $segid and resid $resid and name CA and known) - evaluate ($ha_x=3*$result-2*$ave_x) - show ave(y) (segid $segid and resid $resid and name CA and known) - evaluate ($ha_y=3*$result-2*$ave_y) - show ave(z) (segid $segid and resid $resid and name CA and known) - evaluate ($ha_z=3*$result-2*$ave_z) - - do (x=$ha_x) (segid $segid and resid $resid and name HA) - do (y=$ha_y) (segid $segid and resid $resid and name HA) - do (z=$ha_z) (segid $segid and resid $resid and name HA) - - flags exclude * include bond angle vdw end - minimize powell nstep=50 drop=40.0 nprint=50 end - - pick impr - (segid $segid and resid $resid and name HA) - (segid $segid and resid $resid and name N) - (segid $segid and resid $resid and name C) - (segid $segid and resid $resid and name CB) - geometry - - if ($result lt 0) then - patch LTOD reference=nil=(segid $segid and resid $resid) end - buffer message - display D-amino acid detected for $resn $resid of chain $segid - end - flag exclude * include bond impr end - minimize powell nstep=50 drop=10.0 nprint=10 end - flag include angle end - minimize powell nstep=50 drop=10.0 nprint=10 end - flag include vdw end - minimize powell nstep=50 drop=10.0 nprint=10 end - end if - - end loop ltod - - -! if ($Toppar.dna_$chain eq TRUE) then -! if ($Data.dnarest eq TRUE) then -! noe nres 10000 end -! rest dihed nass=10000 end -! do (segid = $Toppar.prot_segid_$chain) (all) -! @RUN:data/sequence/dna-rna_restraints.def -! do (segid = " ") (all) -! end if -! end if - - fix selection=( none ) end - - flag incl noe cdih end - print threshold=0.3 noe - print threshold=5. cdih - - energy end - -! do (segid = $Toppar.prot_segid_$chain) (all) -! @RUN:flex_segment_back.cns -! do (segid = " ") (all) -! show sum(1) (attr store5 > 0) -! if ($result > 0) then -! fix sele=(attr store5 = 0) end -! minimize powell -! nstep=50 -! drop=40.0 -! nprint=5 -! end -! fix sele=(not all) end -! -! energy end -! -! end if - - print threshold=0.3 noe - print threshold=5. cdih - print thres=0.02 bonds - print thres=5. angles - flag excl noe cdih end - - end if - - do (store2=0) (all) - for $id in id (tag and name BB) loop cgmodel - do (store2=1) (byres(id $id)) - end loop cgmodel - - fix sele=(attr store2 = 0) end - minimize powell - nstep=50 - drop=40.0 - nprint=10 - end - - fix selection=( none ) end diff --git a/src/haddock/modules/flexref/cns/centroids_init_placement.cns b/src/haddock/modules/flexref/cns/centroids_init_placement.cns deleted file mode 100644 index cc659cbaa..000000000 --- a/src/haddock/modules/flexref/cns/centroids_init_placement.cns +++ /dev/null @@ -1,115 +0,0 @@ -proc cross(in1; in2; out;) - {Calculate the cross-product of two vectors} - eval(&out.x = &in1.y * &in2.z - &in1.z * &in2.y) - eval(&out.y = &in1.z * &in2.x - &in1.x * &in2.z) - eval(&out.z = &in1.x * &in2.y - &in1.y * &in2.x) -endp - -proc get_angle(in1; in2; angle;) - {Calculate the angle in degree between two vectors} - call inner(in1=&in1; in2=&in2; out=$tmp) - call norm(vec=&in1; norm=$norm1;) - call norm(vec=&in2; norm=$norm2;) - eval(&angle = acos($tmp / ($norm1 * $norm2))) -endp - -proc inner(in1; in2; out;) - {In-product of two vectors} - eval(&out = &in1.x * &in2.x + &in1.y * &in2.y + &in1.z * &in2.z) -endp - -proc norm(vec; norm;) - {Calculates the norm of a vector} - eval(&norm = sqrt(&vec.x**2 + &vec.y**2 + &vec.z**2)) -endp - -! get center of map coordinates -show average(x) (name MAP) -eval($map_ave.x = $RESULT) -show average(y) (name MAP) -eval($map_ave.y = $RESULT) -show average(z) (name MAP) -eval($map_ave.z = $RESULT) - -! determine whether the molecules should be placed in the same plane of the -! centroids for symmetric systems -eval($place_molecules_in_plane = false) -if ($data.ncomponents > 2) then - if ($data.flags.sym = true) then - eval($place_molecules_in_plane = true) - end if -end if - -! in case of c-symmetry get axis of symmetry from map-coordinates -if ($place_molecules_in_plane = true) then - - ! axis of symmetry is orthogonal to the symmetry plane - ! get two vectors representing the symmetry plane - eval($pq.x = $Data.centroids.xcom_1 - $map_ave.x) - eval($pq.y = $data.centroids.ycom_1 - $map_ave.y) - eval($pq.z = $data.centroids.zcom_1 - $map_ave.z) - eval($pr.x = $data.centroids.xcom_2 - $map_ave.x) - eval($pr.y = $data.centroids.ycom_2 - $map_ave.y) - eval($pr.z = $data.centroids.zcom_2 - $map_ave.z) - - ! the axis of symmetry is orthogonal to the symmetry plane and - ! is the cross-product of those two vectors - call cross(in1=$pq; in2=$pr; out=$sym_axis;) - - ! get angle between the axis of symmetry and current symmetry z-axis - eval($z_axis.x = 0) - eval($z_axis.y = 0) - eval($z_axis.z = 1) - call get_angle(in1=$sym_axis; in2=$z_axis; angle=$angle) - - ! rotate the current system around the axis orthogonal to the - ! current axis of symmetry and future axis of symmetry - ! first get an orthogonal vector to the axis of symmetry - call cross(in1=$z_axis; in2=$sym_axis; out=$rot_axis;) - - ! do the rotation around the origin - eval($nchain1 = 0) - while ($nchain1 < $Data.ncomponents) loop nloop1 - eval($nchain1 = $nchain1 + 1) - coor rotate - selection=((segid $Toppar.prot_segid_$nchain1 or segid $watersegname_$nchain1) and not name MAP) - axis ($rot_axis.x $rot_axis.y $rot_axis.z) $angle - end - end loop nloop1 - - ! perform an extra random rotation around the symmetry axis for better - ! unbiases sampling for volume data - eval($nchain1 = 0) - eval($angle = 360.0 * random()) - while ($nchain1 < $Data.ncomponents) loop nloop1 - eval($nchain1 = $nchain1 + 1) - coor rotate - selection=((segid $Toppar.prot_segid_$nchain1 or segid $watersegname_$nchain1) and not name MAP) - axis ($sym_axis.x $sym_axis.y $sym_axis.z) $angle - end - end loop nloop1 -else - ! random rotation of the whole system around origin to reduce bias - ! for volume data fitting -! @RUN:get_random_rotation.cns(Rotation=$rr;) - @RUN:get_random_rotation.cns - eval($nchain1 = 0) - while ($nchain1 < $Data.ncomponents) loop nloop1 - eval($nchain1 = $nchain1 + 1) - coor rotate - selection=((segid $Toppar.prot_segid_$nchain1 or segid $watersegname_$nchain1) and not name MAP) - quaternion $rr.q0 $rr.q1 $rr.q2 $rr.q3 - end - end loop nloop1 -end if ! $place_molecules_in_plane = true - -! translate subunits so that the map-center is the origin -eval($nchain1 = 0) -while ($nchain1 < $Data.ncomponents) loop nloop1 - eval($nchain1 = $nchain1 + 1) - - coor translate - selection=((segid $Toppar.prot_segid_$nchain1 or segid $watersegname_$nchain1) and not name MAP) - vector=($map_ave.x $map_ave.y $map_ave.z) - end -end loop nloop1 diff --git a/src/haddock/modules/flexref/cns/centroids_set_map.cns b/src/haddock/modules/flexref/cns/centroids_set_map.cns deleted file mode 100644 index 21443c533..000000000 --- a/src/haddock/modules/flexref/cns/centroids_set_map.cns +++ /dev/null @@ -1,8 +0,0 @@ -! set coordinates of centroids (MAP atom) -evaluate($nchain1 = 0) -while ($nchain1 < $Data.ncomponents) loop nloop1 - evaluate($nchain1 = $nchain1 + 1) - do (x = $Data.centroids.xcom_$nchain1) (segid $Toppar.prot_segid_$nchain1 and name MAP) - do (y = $Data.centroids.ycom_$nchain1) (segid $Toppar.prot_segid_$nchain1 and name MAP) - do (z = $Data.centroids.zcom_$nchain1) (segid $Toppar.prot_segid_$nchain1 and name MAP) -end loop nloop1 diff --git a/src/haddock/modules/flexref/cns/cg-to-aa.cns b/src/haddock/modules/flexref/cns/cg-to-aa.cns deleted file mode 100644 index c916bad55..000000000 --- a/src/haddock/modules/flexref/cns/cg-to-aa.cns +++ /dev/null @@ -1,136 +0,0 @@ -evaluate ($kinter = 1) - -! Change segid of CG structure -! -evaluate ($nchain=0) -while ($nchain < $data.ncomponents) loop nloop1 - evaluate ($nchain = $nchain + 1) - if ($toppar.cg_$nchain eq true) then - evaluate($coor_infile_$nchain= "RUN:begin-aa/" + $Toppar.prot_root_$nchain + ".pdb") - coor @@ $coor_infile_$nchain - end if -end loop nloop1 - -! Read morphing restraints -! -noe - nres 1000000 - class cgaa @@RUN:data/distances/cg-to-aa.tbl - averaging cgaa center - scale cgaa 50.0 - sqconstant cgaa 1.0 - sqexponent cgaa 2 - soexponent cgaa 1 - rswitch cgaa 1.0 - sqoffset cgaa 0.0 - asymptote cgaa 2.0 - msoexponent cgaa 1 - masymptote cgaa -0.1 - mrswitch cgaa 1.0 -end - -! Fix the CG model and existing AA models -! -fix sele=(segid *CG) end -evaluate ($nchain=0) -while ($nchain < $data.ncomponents) loop nloop1 - evaluate ($nchain = $nchain + 1) - if ($toppar.cg_$nchain eq false) then - fix sele=(segid $Toppar.prot_segid_$nchain) end - end if -end loop nloop1 - - -evaluate ($kinter = 0.001) -@RUN:scale_inter.cns - -flag excl * incl noe end - -energy end - -! Rigid body EM to position AA model onto CG model -! -minimize rigid - eval ($nchain = 0) - while ($nchain < $data.ncomponents) loop nloop1 - eval($nchain = $nchain + 1) - if ($toppar.cg_$nchain eq true) then - group (segid $Toppar.prot_segid_$nchain) - translation=true - end if - end loop nloop1 - nstep 200 - nprint 10 -end - -! Starting the morphing for conformational changes -! Powell EM, including covalent terms -! - -flag excl * incl bond angl impr dihe vdw elec noe end -minimize powell nstep=500 drop=40.0 nprint=25 end -evaluate ($kinter = 0.01) -@RUN:scale_inter.cns -minimize powell nstep=500 drop=40.0 nprint=25 end - -energy end - -if ($failure eq false) then -! Short MD optimization -! -{- Friction coefficient, in 1/ps. -} - do (fbeta=100) (not segid *CG) - - evaluate ($bath=300.0) - evaluate ($nstep=500) - evaluate ($timestep=0.0005) - - do (vx=maxwell($bath)) (store1) - do (vy=maxwell($bath)) (store1) - do (vz=maxwell($bath)) (store1) - - dynamics cartesian - nstep=$nstep - timestep=$timestep - tcoupling=true temperature=$bath - nprint=50 - cmremove=true - end - - minimize powell nstep=500 drop=40.0 nprint=25 end -end if - -! Now turn on intermolecular interactions -! -evaluate ($kinter = 0.1) -@RUN:scale_inter.cns -minimize powell nstep=500 drop=10.0 nprint=25 end -evaluate ($kinter = 1.0) -@RUN:scale_inter.cns -minimize powell nstep=500 drop=10.0 nprint=25 end - -if ($failure eq false) then -! Short MD optimization -! - do (vx=maxwell($bath)) (store1) - do (vy=maxwell($bath)) (store1) - do (vz=maxwell($bath)) (store1) - - dynamics cartesian - nstep=$nstep - timestep=$timestep - tcoupling=true temperature=$bath - nprint=50 - cmremove=true - end -end if - -minimize powell nstep=500 drop=40.0 nprint=25 end -minimize powell nstep=500 drop=10.0 nprint=25 end - -energy end - -parameter nbonds eps=1.0 end end - -delete sele=(segid *CG) end - diff --git a/src/haddock/modules/flexref/cns/check-homomers.cns b/src/haddock/modules/flexref/cns/check-homomers.cns deleted file mode 100644 index 2699f1e2e..000000000 --- a/src/haddock/modules/flexref/cns/check-homomers.cns +++ /dev/null @@ -1,56 +0,0 @@ -! check-homomers.cns -! check for homomeric complexes -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! - - evaluate ($homosymmetry = false) - - evaluate($n_moving_mol = 0) - evaluate ($ncount = 0) - while ($ncount < $data.ncomponents) loop checkmol - evaluate ($ncount = $ncount + 1) - if ($Toppar.shape_$ncount eq false) then - evaluate($n_moving_mol = $n_moving_mol + 1) - end if - end loop checkmol - - if ($data.flags.sym eq true) then - if ($data.numc2sym > 0) then - if ($n_moving_mol = 2) then - evaluate ($homosymmetry = true) - end if - end if - if ($data.numc2sym = 6) then - if ($n_moving_mol = 4) then - evaluate ($homosymmetry = true) - end if - end if - if ($data.numc3sym > 0) then - if ($n_moving_mol = 3) then - evaluate ($homosymmetry = true) - end if - end if - if ($data.numc4sym > 0) then - if ($n_moving_mol = 4) then - evaluate ($homosymmetry = true) - end if - end if - if ($data.numc5sym > 0) then - if ($n_moving_mol = 5) then - evaluate ($homosymmetry = true) - end if - end if - if ($data.numc6sym > 0) then - if ($n_moving_mol = 6) then - evaluate ($homosymmetry = true) - end if - end if - end if - diff --git a/src/haddock/modules/flexref/cns/cns_test.csh b/src/haddock/modules/flexref/cns/cns_test.csh deleted file mode 100644 index dd472b6e7..000000000 --- a/src/haddock/modules/flexref/cns/cns_test.csh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/csh -# -./cns1 <<_Eod_ |grep CNS-OK -set message=off echo=off end -display CNS-OK -stop -_Eod_ diff --git a/src/haddock/modules/flexref/cns/coval-ace-cys.cns b/src/haddock/modules/flexref/cns/coval-ace-cys.cns deleted file mode 100644 index 4449d7d7c..000000000 --- a/src/haddock/modules/flexref/cns/coval-ace-cys.cns +++ /dev/null @@ -1,57 +0,0 @@ -! covalions.cns -! Add a covalent bond between an acetylated Nter and a cysteine sulphur -! -! *********************************************************************** -! * Copyright 2003-2016 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! - for $id1 in id ( name CA and resn ACE ) loop ace - - show (segid) (id $id1) - evaluate ($segid1=$result) - show (resid) (id $id1) - evaluate ($resid1=$result) - show (resname) (id $id1) - evaluate ($resname1=$result) - show (name) (id $id1) - evaluate ($name1=$result) - show (chem) (id $id1) - evaluate ($chem1=$result) - - evaluate ($mindis = 3.0) - evaluate ($minid = 0) - for $id2 in id ( name SG and (id $id1) around 3.0 and - (resn CYS or resn CYF) ) loop search - - pick bond (id $id1) (id $id2) geometry - - if ( $result < $mindis) then - evaluate ($mindis = $result) - evaluate ($minid = $id2) - end if - - end loop search - - if ($minid > 0) then - show (segid) (id $minid) - evaluate ($segid2=$result) - show (resid) (id $minid) - evaluate ($resid2=$result) - show (resname) (id $minid) - evaluate ($resname2=$result) - show (name) (id $minid) - evaluate ($name2=$result) - show (chem) (id $minid) - evaluate ($chem2=$result) - - evaluate ($pat1 = "1"+$name1) - evaluate ($pat2 = "2"+$name2) - patch accy refe=1=(resid $resid1 and segid $segid1) refe=2=(resid $resid2 and segid $segid2) end - display COVAL-ACE-CYS: ADDED ONE COVALENT BOND BETWEEN $name1 $resid1 AND $name2 $resname2 $resid2 - end if - - end loop ace diff --git a/src/haddock/modules/flexref/cns/covalheme.cns b/src/haddock/modules/flexref/cns/covalheme.cns deleted file mode 100644 index 894bfe574..000000000 --- a/src/haddock/modules/flexref/cns/covalheme.cns +++ /dev/null @@ -1,128 +0,0 @@ -! covalions.cns -! Add a covalent bond between a hemeC and a cysteine -! -! *********************************************************************** -! * Copyright 2003-2016 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! - evaluate ($ncac = 0) - for $id1 in id ( name CAC and resn HEC ) loop heme1 - - show (segid) (id $id1) - evaluate ($segid1=$result) - show (resid) (id $id1) - evaluate ($resid1=$result) - show (resname) (id $id1) - evaluate ($resname1=$result) - show (name) (id $id1) - evaluate ($name1=$result) - - evaluate ($mindis = 4.0) - evaluate ($minid = 0) - for $id2 in id ( name SG and (id $id1) around 4.0 and - (resn CYS or resn CYF) ) loop search - - pick bond (id $id1) (id $id2) geometry - - if ( $result < $mindis) then - evaluate ($mindis = $result) - evaluate ($minid = $id2) - end if - - end loop search - - if ($minid > 0) then - evaluate ($ncac = $ncac + 1) - show (segid) (id $minid) - evaluate ($segid2=$result) - show (resid) (id $minid) - evaluate ($resid2=$result) - show (resname) (id $minid) - evaluate ($resname2=$result) - show (name) (id $minid) - evaluate ($name2=$result) - - evaluate ($seg1.$ncac=$segid1) - evaluate ($seg2.$ncac=$segid2) - evaluate ($res1.$ncac=$resid1) - evaluate ($res2.$ncac=$resid2) - end if - - end loop heme1 - - evaluate ($counter=1) - while ( $counter <= $ncac ) loop ncac - - patch phcc - refe=2=(resid $res1.$counter and segid $seg1.$counter) - refe=1=(resid $res2.$counter and segid $seg2.$counter) - end - buffer message - display COVALHEME: ADDED ONE COVALENT BOND BETWEEN $name1 $resid1 AND $name2 $resname2 $resid2 - evaluate ($counter=$counter+1) - - end loop ncac - - - evaluate ($ncab = 0) - for $id1 in id ( name CAB and resn HEC ) loop heme2 - - show (segid) (id $id1) - evaluate ($segid1=$result) - show (resid) (id $id1) - evaluate ($resid1=$result) - show (resname) (id $id1) - evaluate ($resname1=$result) - show (name) (id $id1) - evaluate ($name1=$result) - - evaluate ($mindis = 4.0) - evaluate ($minid = 0) - for $id2 in id ( name SG and (id $id1) around 4.0 and - (resn CYS or resn CYF) ) loop search - - pick bond (id $id1) (id $id2) geometry - - if ( $result < $mindis) then - evaluate ($mindis = $result) - evaluate ($minid = $id2) - end if - - end loop search - - if ($minid > 0) then - evaluate ($ncab = $ncab + 1) - show (segid) (id $minid) - evaluate ($segid2=$result) - show (resid) (id $minid) - evaluate ($resid2=$result) - show (resname) (id $minid) - evaluate ($resname2=$result) - show (name) (id $minid) - evaluate ($name2=$result) - - evaluate ($seg1.$ncab=$segid1) - evaluate ($seg2.$ncab=$segid2) - evaluate ($res1.$ncab=$resid1) - evaluate ($res2.$ncab=$resid2) - end if - - end loop heme2 - - evaluate ($counter=1) - while ( $counter <= $ncab ) loop ncab - - patch phcb - refe=2=(resid $res1.$counter and segid $seg1.$counter) - refe=1=(resid $res2.$counter and segid $seg2.$counter) - end - buffer message - display COVALHEME: ADDED ONE COVALENT BOND BETWEEN $name1 $resid1 AND $name2 $resname2 $resid2 - evaluate ($counter=$counter+1) - - end loop ncab - diff --git a/src/haddock/modules/flexref/cns/covalions.cns b/src/haddock/modules/flexref/cns/covalions.cns deleted file mode 100644 index a5c8c5311..000000000 --- a/src/haddock/modules/flexref/cns/covalions.cns +++ /dev/null @@ -1,82 +0,0 @@ -! covalions.cns -! Add a covalent bond between an ion and its closest coordinating atom -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! - evaluate ($pcount = 0) - for $id1 in id ( name "LI+1" or name "F-1" or name "NA+1" or name "MG+2" or name "AL+3" - or name "CL-1" or name "K+1" or name "CA+2" or name "V+2" or name "V+3" - or name "CR+2" or name "CR+3" or name "MN+2" or name "MN+3" or name "FE+2" - or name "FE+3" or name "NI+2" or name "CO+2" or name "CO+3" or name "CU+1" - or name "CU+2" or name "ZN+2" or name "BR-1" or name "SR+2" or name "MO+3" - or name "AG+1" or name "CD+2" or name "I-1" or name "CS+2" or name "HO+3" - or name "YB+2" or name "YB+3" or name "OS+4" or name "IR+3" or name "PT+2" - or name "AU+1" or name "AU+2" or name "HG+1" or name "HG+2" or name "PB+2" - or name "U+3" or name "U+4" or name "ZN+1" or name "ZN" ) loop ions - - show (segid) (id $id1) - evaluate ($segid1=$result) - show (resid) (id $id1) - evaluate ($resid1=$result) - show (resname) (id $id1) - evaluate ($resname1=$result) - show (name) (id $id1) - evaluate ($name1=$result) - show (chem) (id $id1) - evaluate ($chem1=$result) - - evaluate ($mindis = 7.5) - evaluate ($minid = 0) - for $id2 in id ( (name O* or name S* or name N*) and (id $id1) around 7.5 and - (resn ALA or resn ARG or resn ASN or resn ASP or resn CYS or resn GLN or resn GLU or - resn GLY or resn HIS or resn ILE or resn LEU or resn LYS or resn MET or resn PHE or - resn PRO or resn SER or resn THR or resn TRP or resn TYR or resn VAL or resn TYS or - resn TYP or resn NEP or resn CYM or resn ADE or resn CYT or resn GUA or resn THY or - resn A or resn C or resn G or resn T or resn DA or resn DC or resn DG or resn DT or - resn HYP or resn CYP or resn CYM or resn CYF or resn TOP or resn TYP or resn TYS or - resn SEP or resn PTR or resn HYP or resn DDZ)) loop search - - pick bond (id $id1) (id $id2) geometry - - if ( $result < $mindis) then - evaluate ($mindis = $result) - evaluate ($minid = $id2) - end if - - end loop search - - if ($minid> 0) then - show (segid) (id $minid) - evaluate ($segid2=$result) - show (resid) (id $minid) - evaluate ($resid2=$result) - show (resname) (id $minid) - evaluate ($resname2=$result) - show (name) (id $minid) - evaluate ($name2=$result) - show (chem) (id $minid) - evaluate ($chem2=$result) - - evaluate ($pat1 = "1"+$name1) - evaluate ($pat2 = "2"+$name2) - evaluate ($pcount = $pcount + 1) - evaluate ($pname = "cb" + encode($pcount)) - topology - presidue $pname ! Patch to add a covalent bond between two atoms - add bond $pat1 $pat2 - end - end - patch $pname refe=1=(resid $resid1 and segid $segid1) refe=2=(resid $resid2 and segid $segid2) end - display COVALION: ADDED ONE COVALENT BOND BETWEEN $name1 $resid1 AND $name2 $resname2 $resid2 - end if - - param bond $chem1 $chem2 0.0 $mindis end - - end loop ions - diff --git a/src/haddock/modules/flexref/cns/db0.cns b/src/haddock/modules/flexref/cns/db0.cns deleted file mode 100644 index 849350c19..000000000 --- a/src/haddock/modules/flexref/cns/db0.cns +++ /dev/null @@ -1,38 +0,0 @@ -! db0.cns -! Use in the removal of interfacial waters in solvated docking -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! - !store5=1 contains the waters that are to be "removed" - !none at this stage - - do (store5 = 0) (all) - - !"removing" of water: interaction weight 0 - igroup interaction (not all) (not all) end - - igroup - eval($nchain1 = 0) - - while ($nchain1 < $data.ncomponents) loop nloop1 - eval($nchain1 = $nchain1 + 1) - eval($nchain2 = $nchain1 ) - while ($nchain2 < $data.ncomponents) loop nloop2 - eval($nchain2 = $nchain2 + 1) - interaction (segid $Toppar.prot_segid_$nchain1) - (segid $Toppar.prot_segid_$nchain2) weight * 1.0 vdw $kinter elec $kinter end - end loop nloop2 - interaction ((resn WAT or resn HOH or resn TIP*) and (attr store5 ne 1)) (segid $Toppar.prot_segid_$nchain1) weight * 1.0 end - end loop nloop1 - - interaction ((resn WAT or resn HOH or resn TIP*) and (attr store5 ne 1)) - ((resn WAT or resn HOH or resn TIP*) and (attr store5 ne 1)) weight * 1.0 end - interaction (attr store5 = 1) (all) weight * 0.0 end - interaction (resn SHA) (not resn SHA) weight * 0.0 end - end diff --git a/src/haddock/modules/flexref/cns/db00.cns b/src/haddock/modules/flexref/cns/db00.cns deleted file mode 100644 index 6ddf6c849..000000000 --- a/src/haddock/modules/flexref/cns/db00.cns +++ /dev/null @@ -1,57 +0,0 @@ -! db00.cns -! Used in the removal of interfacial waters in solvated docking -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! - !store5 is what is to be removed - !store4 is used to determine what is at an interface - eval ($surfcutoff = $data.water_surfcutoff) - do (store4 = 0) (all) - do (store4 = 1) ((resn WAT or resn HOH) and name oh2) - show sum (store4) (all) - display SOLVATED-DOCKING: INITIAL NUMBER OF WATERS IS $result - do (store4 = 0) (all) - - eval($nchain1 = 0) - while ($nchain1 < $data.ncomponents) loop nloop1 - eval($nchain1 = $nchain1 + 1) - do (store4 = store4 + 1) (name oh2 and ((segid $Toppar.prot_segid_$nchain1) around $surfcutoff)) - end loop nloop1 - - !an interfacial water should have at least store4=2 - do (store4 = 0) (attribute store4 < 2) - do (store4 = 1) (attribute store4 > 0) - show sum (store4) (all) - display SOLVATED-DOCKING: REMAINING NUMBER OF INTERFACIAL WATERS IS $result - - do (store5 = 1) ((attr store5 = 1) or (name oh2 and (attr store4 ne 1))) - do (store5 = 1) (byres (attr store5 = 1)) - -!"removing" of water: interaction weight 0 - igroup interaction (not all) (not all) end - - igroup - eval($nchain1 = 0) - - while ($nchain1 < $data.ncomponents) loop nloop1 - eval($nchain1 = $nchain1 + 1) - eval($nchain2 = $nchain1 ) - while ($nchain2 < $data.ncomponents) loop nloop2 - eval($nchain2 = $nchain2 + 1) - interaction (segid $Toppar.prot_segid_$nchain1) - (segid $Toppar.prot_segid_$nchain2) weight * 1.0 vdw $kinter elec $kinter end - end loop nloop2 - interaction ((resn WAT or resn HOH or resn TIP*) and (attr store5 ne 1)) (segid $Toppar.prot_segid_$nchain1) weight * 1.0 end - end loop nloop1 - - interaction ((resn WAT or resn HOH or resn TIP*) and (attr store5 ne 1)) - ((resn WAT or resn HOH or resn TIP*) and (attr store5 ne 1)) weight * 1.0 end - interaction (attr store5 = 1) (all) weight * 0.0 end - interaction (resn SHA) (not resn SHA) weight * 0.0 end - end diff --git a/src/haddock/modules/flexref/cns/db1.cns b/src/haddock/modules/flexref/cns/db1.cns deleted file mode 100644 index 2bd61cfb3..000000000 --- a/src/haddock/modules/flexref/cns/db1.cns +++ /dev/null @@ -1,323 +0,0 @@ -! db1.cns -! Used in the removal of interfacial waters in solvated docking -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! -eval ($rmultfact=1.0) -eval($testcutoff=3.5) -eval($enercutoff=0.0) - -show sum(1) ((resn WAT or resn HOH) and name OH2 and (attr store5 ne 1) and (not (name P or name O*P* or name "O3'" or name "O5'") around $testcutoff)) -eval ($watercount=$result) -show sum(1) ((resn WAT or resn HOH) and name OH2 and (attr store5 ne 1) and ((name P or name O*P* or name "O3'" or name "O5'") around $testcutoff)) -eval ($dnapwatercount=$result) - -display SOLVATED-DOCKING: info: watercount $watercount - -evaluate ($icount = 1) -do (store4 = 0) (all) - -for $atom_id in id ((resn WAT or resn HOH) and name OH2 and (attr store5 ne 1)) loop count - do (store4 = $icount) (id $atom_id) - evaluate ($icount = $icount + 1) -end loop count -display SOLVATED-DOCKING: info: watercount $icount - -show min(store4) ((resn WAT or resn HOH) and name OH2 and (attr store5 ne 1)) -evaluate ($rmin = $result) -show max(store4) ((resn WAT or resn HOH) and name OH2 and (attr store5 ne 1)) -evaluate ($rmax = $result) - -evaluate ($nres = $rmax - $rmin + 1) -display SOLVATED-DOCKING: $nres WATERS SELECTED FOR DATABASE-STATISTICS BASED RANDOM REMOVAL -if ($nres < 1) then - display SOLVATED-DOCKING: NO WATER IN DEFINED WATERS - display SOLVATED-DOCKING: DB WATER REMOVAL FAILED - display SOLVATED-DOCKING: STOPPING... - stop -end if - -! initialize water-mediated contact probabilities to average -! value of the protein-protein matrix (0.22 for statistical and 0.33 for Kyte-Doolittle) -! -if ($data.db_method eq 'statistical') then - evaluate ($dbave = 0.22) -else - eval ($dbave = 0.33) -end if -eval($nchain1 = 0) -while ($nchain1 < $data.ncomponents) loop nloop1 - evaluate($nchain1 = $nchain1 + 1) - eval($nchain2 = 0) - while ($nchain2 < $data.ncomponents) loop nloop2 - evaluate ($nchain2 = $nchain2 + 1) - if ($nchain1 ne $nchain2) then - for $at1_id in id ( tag and segid $Toppar.prot_segid_$nchain1 ) loop atm1 - show (resn) (id $at1_id) - evaluate ($rsn1 = $result) - for $at2_id in id ( tag and segid $Toppar.prot_segid_$nchain2 ) loop atm2 - show (resn) (id $at2_id) - evaluate ($rsn2 = $result) - evaluate ($db.$rsn1_$rsn2 = $dbave) - end loop atm2 - end loop atm1 - end if - end loop nloop2 -end loop nloop1 - -if ($data.db_method eq 'statistical') then -! inline @RUN:db_statistical.dat - inline @db_statistical.dat -else -! inline @RUN:db_kyte-doolittle.dat - inline @db_kyte-doolittle.dat -end if - -! First pass, all interactions except those with DNA/RNA Phosphate groups -evaluate ($done = 0) -evaluate ($counttrial = 0) -evaluate ($maxcounttrial = 1000) -while ($done = 0) loop trial - eval($counttrial = $counttrial+1) - if ($counttrial > $maxcounttrial) then - eval($done = 1) - end if - evaluate ($iselres1 = 0) - evaluate ($iselres1 = int(ran() * $rmax) + 1) - - eval($founda=0) - eval($foundb=0) - eval($closesta=1000) - eval($closestb=1000) - - !find first closest residue of all chains - eval($nchain1 = 0) - eval($closechain = 0) - while ($nchain1 < $data.ncomponents) loop nloop1 - eval($nchain1 = $nchain1 + 1) - for $atom_ida in id (segid $Toppar.prot_segid_$nchain1 and (not (name P or name O*P* or name "O3'" or name "O5'")) and (attr store4 = $iselres1) around $testcutoff) loop seg1loop - pick bond (attr store4 = $iselres1) (id $atom_ida) geometry - eval ($dist=$result) - if ($dist<$closesta) then - eval($founda=$founda+1) - eval($closesta=$dist) - show element (resn) (id $atom_ida) - eval($restypea=$result) - eval($closechain=$nchain1) - end if - end loop seg1loop - end loop nloop1 - - ! do not consider if close to a phosphate group - eval($nchain1 = 0) - while ($nchain1 < $data.ncomponents) loop nloop1 - eval($nchain1 = $nchain1 + 1) - for $atom_ida in id (segid $Toppar.prot_segid_$nchain1 and (name P or name O*P* or name "O3'" or name "O5'") and (attr store4 = $iselres1) around $testcutoff) loop seg1loop - eval($founda=0) - end loop seg1loop - end loop nloop1 - - eval($nchain1 = 0) - !find second closest residue from all other chains than the closest residue selected above - while ($nchain1 < $data.ncomponents) loop nloop2 - eval($nchain1 = $nchain1 + 1) - if ($nchain1 ne $closechain) then - for $atom_idb in id (segid $Toppar.prot_segid_$nchain1 and (not (name P or name O*P* or name "O3'" or name "O5'")) and (attr store4 = $iselres1) around $testcutoff) loop seg2loop - pick bond (attr store4 = $iselres1) (id $atom_idb) geometry - eval ($dist=$result) - if ($dist<$closestb) then - eval($foundb=$foundb+1) - eval($closestb=$dist) - show element (resn) (id $atom_idb) - eval($restypeb=$result) - end if - end loop seg2loop - end if - end loop nloop2 - - if ($founda > 0) then - if($foundb > 0) then - display SOLVATED-DOCKING: $iselres1 $closesta $restypea $closestb $restypeb $db.$restypea_$restypeb - eval ($r = random(1.0)) -! display SOLVATED-DOCKING: info: r-value $r - eval ($r = $r*$rmultfact) - if ($r > $db.$restypea_$restypeb) then -! display SOLVATED-DOCKING: $r bigger than $db.$restypea_$restypeb for $iselres1 with $restypea - $restypeb - !so this one is 'deleted' - do (store5=1) (attr store4 = $iselres1) - else -! display SOLVATED-DOCKING: $r smaller than $db.$restypea_$restypeb for $iselres1 with $restypea - $restypeb - end if - else -! display SOLVATED-DOCKING: nothing found for $iselres1 - do (store5=1) (attr store4 = $iselres1) - end if - else -! display SOLVATED-DOCKING: nothing found for $iselres1 - do (store5=1) (attr store4 = $iselres1) - end if - - show sum(1) ((resn WAT or resn HOH) and name OH2 and (attr store5 ne 1)) - if ($watercount > 0) then - eval($fractionleft = $result/$watercount) - else - eval($fractionleft = 0.0) - end if - display SOLVATED-DOCKING: FRACTION LEFT $fractionleft - if ($fractionleft < $data.water_tokeep) then - evaluate ($done = 1) - end if -end loop trial - - -! Second pass, all interactions with DNA/RNA Phosphate groups -evaluate ($done = 0) -evaluate ($counttrial = 0) -evaluate ($maxcounttrial = 1000) -while ($done = 0) loop ptrial - eval($counttrial = $counttrial+1) - if ($counttrial > $maxcounttrial) then - eval($done = 1) - end if - evaluate ($iselres1 = 0) - evaluate ($iselres1 = int(ran() * $rmax) + 1) - - eval($founda=0) - eval($foundb=0) - eval($closesta=1000) - eval($closestb=1000) - - !find first closest residue of all chains - eval($nchain1 = 0) - eval($closechain = 0) - while ($nchain1 < $data.ncomponents) loop nloop1 - eval($nchain1 = $nchain1 + 1) - for $atom_ida in id (segid $Toppar.prot_segid_$nchain1 and (name P or name O*P* or name "O3'" or name "O5'") and (attr store4 = $iselres1) around $testcutoff) loop seg1loop - pick bond (attr store4 = $iselres1) (id $atom_ida) geometry - eval ($dist=$result) - if ($dist<$closesta) then - eval($founda=$founda+1) - eval($closesta=$dist) - show element (resn) (id $atom_ida) - eval($restypea=$result) - eval($closechain=$nchain1) - end if - end loop seg1loop - end loop nloop1 - - eval($nchain1 = 0) - !find second closest residue from all other chains than the closest residue selected above - while ($nchain1 < $data.ncomponents) loop nloop2 - eval($nchain1 = $nchain1 + 1) - if ($nchain1 ne $closechain) then - for $atom_idb in id (segid $Toppar.prot_segid_$nchain1 and (attr store4 = $iselres1) around $testcutoff) loop seg2loop - pick bond (attr store4 = $iselres1) (id $atom_idb) geometry - eval ($dist=$result) - if ($dist<$closestb) then - eval($foundb=$foundb+1) - eval($closestb=$dist) - show element (resn) (id $atom_idb) - eval($restypeb=$result) - end if - end loop seg2loop - end if - end loop nloop2 - - if ($founda > 0) then - if($foundb > 0) then - display SOLVATED-DOCKING DNA PHOSPHATE: $iselres1 $closesta $restypea $closestb $restypeb $db.$restypea_$restypeb - eval ($r = random(1.0)) -! display SOLVATED-DOCKING: info: r-value $r - eval ($r = $r*$rmultfact) - if ($r > $db.DP_$restypea_$restypeb) then -! display SOLVATED-DOCKING: $r bigger than $db.DP_$restypea_$restypeb for $iselres1 with $restypea - $restypeb - !so this one is 'deleted' - do (store5=1) (attr store4 = $iselres1) - else -! display SOLVATED-DOCKING: $r smaller than $db.DP_$restypea_$restypeb for $iselres1 with $restypea - $restypeb - end if - else -! display SOLVATED-DOCKING: nothing found for $iselres1 - do (store5=1) (attr store4 = $iselres1) - end if - else -! display SOLVATED-DOCKING: nothing found for $iselres1 - do (store5=1) (attr store4 = $iselres1) - end if - - show sum(1) ((resn WAT or resn HOH) and name OH2 and (attr store5 ne 1)) - if ($dnapwatercount > 0) then - eval($fractionleft = $result/$dnapwatercount) - else - eval($fractionleft = 0.0) - end if - display SOLVATED-DOCKING: FRACTION LEFT AROUND DNA PHOSPHATE $fractionleft - if ($fractionleft < $data.dnap_water_tokeep) then - evaluate ($done = 1) - end if -end loop ptrial - - - -show sum(1) ((resn WAT or resn HOH) and name OH2 and (attr store5 ne 1)) -if ($watercount > 0) then - eval($fractionleft = $result/$watercount) -else - eval($fractionleft = 0.0) -end if -display SOLVATED-DOCKING: FINAL FRACTION LEFT BEFORE ENERGY FILTER $fractionleft ($result WATERS) - -for $wat_id in id ((resn WAT or resn HOH) and name OH2 and (attr store5 ne 1)) loop dbloop - igroup interaction (not all) (not all) end - igroup interaction (all) (byres(id $wat_id)) end - energy end - eval($waterenergy=$vdw + $elec) - if ($waterenergy>$enercutoff) then - !energy too high --> 'deleted' - do (store5=1) (id $wat_id) -! display SOLVATED-DOCKING: energy of id $wat_id is $waterenergy which is higher than cutoff $enercutoff - else -! display SOLVATED-DOCKING: energy of id $wat_id is $waterenergy which is lower than cutoff $enercutoff - end if -end loop dbloop - -show sum(1) ((resn WAT or resn HOH) and name OH2 and (attr store5 ne 1)) -if ($watercount > 0) then - eval($fractionleft = $result/$watercount) -else - eval($fractionleft = 0.0) -end if -display SOLVATED-DOCKING: FINAL FRACTION LEFT AFTER ENERGY FILTER $fractionleft ($result WATERS) - - -do (store5 = 1) (byres(attr store5 =1 )) - -!"removing" of water: interaction weight 0 -igroup interaction (not all) (not all) end - -igroup - eval($nchain1 = 0) - -while ($nchain1 < $data.ncomponents) loop nloop1 - eval($nchain1 = $nchain1 + 1) - eval($nchain2 = $nchain1 ) - while ($nchain2 < $data.ncomponents) loop nloop2 - eval($nchain2 = $nchain2 + 1) - interaction (segid $Toppar.prot_segid_$nchain1) - (segid $Toppar.prot_segid_$nchain2) weight * 1.0 vdw $kinter elec $kinter end - end loop nloop2 - interaction ((resn WAT or resn HOH or resn TIP*) and (attr store5 ne 1)) (segid $Toppar.prot_segid_$nchain1) weight * 1.0 end -end loop nloop1 - - interaction ((resn WAT or resn HOH or resn TIP*) and (attr store5 ne 1)) - ((resn WAT or resn HOH or resn TIP*) and (attr store5 ne 1)) weight * 1.0 end - interaction (attr store5 = 1) (all) weight * 0.0 end - interaction (resn SHA) (not resn SHA) weight * 0.0 end -end - diff --git a/src/haddock/modules/flexref/cns/db_kyte-doolittle.dat b/src/haddock/modules/flexref/cns/db_kyte-doolittle.dat deleted file mode 100644 index 1e5958bca..000000000 --- a/src/haddock/modules/flexref/cns/db_kyte-doolittle.dat +++ /dev/null @@ -1,773 +0,0 @@ -! db_kyte-doolittle.dat -! Kyte-Doolittle derived probabilities of finding a water molecule -! between two specific amino acids -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! -eval ($db.ALA_ALA = 0.1096) -eval ($db.ALA_ARG = 0.3288) -eval ($db.ALA_ASN = 0.3014) -eval ($db.ALA_ASP = 0.3014) -eval ($db.ALA_CYS = 0.0822) -eval ($db.ALA_GLN = 0.3014) -eval ($db.ALA_GLU = 0.3014) -eval ($db.ALA_GLY = 0.1918) -eval ($db.ALA_HIS = 0.2877) -eval ($db.ALA_ILE = 0.0137) -eval ($db.ALA_LEU = 0.0411) -eval ($db.ALA_LYS = 0.3151) -eval ($db.ALA_MET = 0.1096) -eval ($db.ALA_PHE = 0.0822) -eval ($db.ALA_PRO = 0.2329) -eval ($db.ALA_SER = 0.2055) -eval ($db.ALA_THR = 0.2055) -eval ($db.ALA_TRP = 0.2055) -eval ($db.ALA_TYR = 0.2192) -eval ($db.ALA_VAL = 0.0274) -eval ($db.ALA_NEP = 0.1918) -eval ($db.ARG_ALA = 0.3288) -eval ($db.ARG_ARG = 1.0001) -eval ($db.ARG_ASN = 0.8905) -eval ($db.ARG_ASP = 0.8905) -eval ($db.ARG_CYS = 0.2603) -eval ($db.ARG_GLN = 0.8905) -eval ($db.ARG_GLU = 0.8905) -eval ($db.ARG_GLY = 0.5617) -eval ($db.ARG_HIS = 0.8631) -eval ($db.ARG_ILE = 0.0548) -eval ($db.ARG_LEU = 0.1233) -eval ($db.ARG_LYS = 0.9316) -eval ($db.ARG_MET = 0.3288) -eval ($db.ARG_PHE = 0.2329) -eval ($db.ARG_PRO = 0.685) -eval ($db.ARG_SER = 0.6028) -eval ($db.ARG_THR = 0.6028) -eval ($db.ARG_TRP = 0.6165) -eval ($db.ARG_TYR = 0.6576) -eval ($db.ARG_VAL = 0.0822) -eval ($db.ARG_NEP = 0.5754) -eval ($db.ASN_ALA = 0.3014) -eval ($db.ASN_ARG = 0.8905) -eval ($db.ASN_ASN = 0.7946) -eval ($db.ASN_ASP = 0.7946) -eval ($db.ASN_CYS = 0.2329) -eval ($db.ASN_GLN = 0.7946) -eval ($db.ASN_GLU = 0.7946) -eval ($db.ASN_GLY = 0.5069) -eval ($db.ASN_HIS = 0.7672) -eval ($db.ASN_ILE = 0.0411) -eval ($db.ASN_LEU = 0.1096) -eval ($db.ASN_LYS = 0.8357) -eval ($db.ASN_MET = 0.2877) -eval ($db.ASN_PHE = 0.2055) -eval ($db.ASN_PRO = 0.6165) -eval ($db.ASN_SER = 0.548) -eval ($db.ASN_THR = 0.5343) -eval ($db.ASN_TRP = 0.548) -eval ($db.ASN_TYR = 0.5891) -eval ($db.ASN_VAL = 0.0685) -eval ($db.ASN_NEP = 0.5069) -eval ($db.ASP_ALA = 0.3014) -eval ($db.ASP_ARG = 0.8905) -eval ($db.ASP_ASN = 0.7946) -eval ($db.ASP_ASP = 0.7946) -eval ($db.ASP_CYS = 0.2329) -eval ($db.ASP_GLN = 0.7946) -eval ($db.ASP_GLU = 0.7946) -eval ($db.ASP_GLY = 0.5069) -eval ($db.ASP_HIS = 0.7672) -eval ($db.ASP_ILE = 0.0411) -eval ($db.ASP_LEU = 0.1096) -eval ($db.ASP_LYS = 0.8357) -eval ($db.ASP_MET = 0.2877) -eval ($db.ASP_PHE = 0.2055) -eval ($db.ASP_PRO = 0.6165) -eval ($db.ASP_SER = 0.548) -eval ($db.ASP_THR = 0.5343) -eval ($db.ASP_TRP = 0.548) -eval ($db.ASP_TYR = 0.5891) -eval ($db.ASP_VAL = 0.0685) -eval ($db.ASP_NEP = 0.5069) -eval ($db.CYS_ALA = 0.0822) -eval ($db.CYS_ARG = 0.2603) -eval ($db.CYS_ASN = 0.2329) -eval ($db.CYS_ASP = 0.2329) -eval ($db.CYS_CYS = 0.0685) -eval ($db.CYS_GLN = 0.2329) -eval ($db.CYS_GLU = 0.2329) -eval ($db.CYS_GLY = 0.1507) -eval ($db.CYS_HIS = 0.2192) -eval ($db.CYS_ILE = 0.0137) -eval ($db.CYS_LEU = 0.0274) -eval ($db.CYS_LYS = 0.2466) -eval ($db.CYS_MET = 0.0822) -eval ($db.CYS_PHE = 0.0548) -eval ($db.CYS_PRO = 0.1781) -eval ($db.CYS_SER = 0.1644) -eval ($db.CYS_THR = 0.1507) -eval ($db.CYS_TRP = 0.1644) -eval ($db.CYS_TYR = 0.1781) -eval ($db.CYS_VAL = 0.0274) -eval ($db.CYS_NEP = 0.1507) -eval ($db.GLN_ALA = 0.3014) -eval ($db.GLN_ARG = 0.8905) -eval ($db.GLN_ASN = 0.7946) -eval ($db.GLN_ASP = 0.7946) -eval ($db.GLN_CYS = 0.2329) -eval ($db.GLN_GLN = 0.7946) -eval ($db.GLN_GLU = 0.7946) -eval ($db.GLN_GLY = 0.5069) -eval ($db.GLN_HIS = 0.7672) -eval ($db.GLN_ILE = 0.0411) -eval ($db.GLN_LEU = 0.1096) -eval ($db.GLN_LYS = 0.8357) -eval ($db.GLN_MET = 0.2877) -eval ($db.GLN_PHE = 0.2055) -eval ($db.GLN_PRO = 0.6165) -eval ($db.GLN_SER = 0.548) -eval ($db.GLN_THR = 0.5343) -eval ($db.GLN_TRP = 0.548) -eval ($db.GLN_TYR = 0.5891) -eval ($db.GLN_VAL = 0.0685) -eval ($db.GLN_NEP = 0.5069) -eval ($db.GLU_ALA = 0.3014) -eval ($db.GLU_ARG = 0.8905) -eval ($db.GLU_ASN = 0.7946) -eval ($db.GLU_ASP = 0.7946) -eval ($db.GLU_CYS = 0.2329) -eval ($db.GLU_GLN = 0.7946) -eval ($db.GLU_GLU = 0.7946) -eval ($db.GLU_GLY = 0.5069) -eval ($db.GLU_HIS = 0.7672) -eval ($db.GLU_ILE = 0.0411) -eval ($db.GLU_LEU = 0.1096) -eval ($db.GLU_LYS = 0.8357) -eval ($db.GLU_MET = 0.2877) -eval ($db.GLU_PHE = 0.2055) -eval ($db.GLU_PRO = 0.6165) -eval ($db.GLU_SER = 0.548) -eval ($db.GLU_THR = 0.5343) -eval ($db.GLU_TRP = 0.548) -eval ($db.GLU_TYR = 0.5891) -eval ($db.GLU_VAL = 0.0685) -eval ($db.GLU_NEP = 0.5069) -eval ($db.GLY_ALA = 0.1918) -eval ($db.GLY_ARG = 0.5617) -eval ($db.GLY_ASN = 0.5069) -eval ($db.GLY_ASP = 0.5069) -eval ($db.GLY_CYS = 0.1507) -eval ($db.GLY_GLN = 0.5069) -eval ($db.GLY_GLU = 0.5069) -eval ($db.GLY_GLY = 0.3151) -eval ($db.GLY_HIS = 0.4932) -eval ($db.GLY_ILE = 0.0274) -eval ($db.GLY_LEU = 0.0685) -eval ($db.GLY_LYS = 0.5343) -eval ($db.GLY_MET = 0.1781) -eval ($db.GLY_PHE = 0.137) -eval ($db.GLY_PRO = 0.3973) -eval ($db.GLY_SER = 0.3425) -eval ($db.GLY_THR = 0.3425) -eval ($db.GLY_TRP = 0.3562) -eval ($db.GLY_TYR = 0.3699) -eval ($db.GLY_VAL = 0.0411) -eval ($db.GLY_NEP = 0.3288) -eval ($db.HIS_ALA = 0.2877) -eval ($db.HIS_ARG = 0.8631) -eval ($db.HIS_ASN = 0.7672) -eval ($db.HIS_ASP = 0.7672) -eval ($db.HIS_CYS = 0.2192) -eval ($db.HIS_GLN = 0.7672) -eval ($db.HIS_GLU = 0.7672) -eval ($db.HIS_GLY = 0.4932) -eval ($db.HIS_HIS = 0.7398) -eval ($db.HIS_ILE = 0.0411) -eval ($db.HIS_LEU = 0.1096) -eval ($db.HIS_LYS = 0.8083) -eval ($db.HIS_MET = 0.274) -eval ($db.HIS_PHE = 0.2055) -eval ($db.HIS_PRO = 0.6028) -eval ($db.HIS_SER = 0.5206) -eval ($db.HIS_THR = 0.5206) -eval ($db.HIS_TRP = 0.5343) -eval ($db.HIS_TYR = 0.5754) -eval ($db.HIS_VAL = 0.0685) -eval ($db.HIS_NEP = 0.4932) -eval ($db.ILE_ALA = 0.0137) -eval ($db.ILE_ARG = 0.0548) -eval ($db.ILE_ASN = 0.0411) -eval ($db.ILE_ASP = 0.0411) -eval ($db.ILE_CYS = 0.0137) -eval ($db.ILE_GLN = 0.0411) -eval ($db.ILE_GLU = 0.0411) -eval ($db.ILE_GLY = 0.0274) -eval ($db.ILE_HIS = 0.0411) -eval ($db.ILE_ILE = 0) -eval ($db.ILE_LEU = 0) -eval ($db.ILE_LYS = 0.0548) -eval ($db.ILE_MET = 0.0137) -eval ($db.ILE_PHE = 0.0137) -eval ($db.ILE_PRO = 0.0411) -eval ($db.ILE_SER = 0.0274) -eval ($db.ILE_THR = 0.0274) -eval ($db.ILE_TRP = 0.0274) -eval ($db.ILE_TYR = 0.0411) -eval ($db.ILE_VAL = 0) -eval ($db.ILE_NEP = 0.0274) -eval ($db.LEU_ALA = 0.0411) -eval ($db.LEU_ARG = 0.1233) -eval ($db.LEU_ASN = 0.1096) -eval ($db.LEU_ASP = 0.1096) -eval ($db.LEU_CYS = 0.0274) -eval ($db.LEU_GLN = 0.1096) -eval ($db.LEU_GLU = 0.1096) -eval ($db.LEU_GLY = 0.0685) -eval ($db.LEU_HIS = 0.1096) -eval ($db.LEU_ILE = 0) -eval ($db.LEU_LEU = 0.0137) -eval ($db.LEU_LYS = 0.1233) -eval ($db.LEU_MET = 0.0411) -eval ($db.LEU_PHE = 0.0274) -eval ($db.LEU_PRO = 0.0822) -eval ($db.LEU_SER = 0.0822) -eval ($db.LEU_THR = 0.0822) -eval ($db.LEU_TRP = 0.0822) -eval ($db.LEU_TYR = 0.0822) -eval ($db.LEU_VAL = 0.0137) -eval ($db.LEU_NEP = 0.0685) -eval ($db.LYS_ALA = 0.3151) -eval ($db.LYS_ARG = 0.9316) -eval ($db.LYS_ASN = 0.8357) -eval ($db.LYS_ASP = 0.8357) -eval ($db.LYS_CYS = 0.2466) -eval ($db.LYS_GLN = 0.8357) -eval ($db.LYS_GLU = 0.8357) -eval ($db.LYS_GLY = 0.5343) -eval ($db.LYS_HIS = 0.8083) -eval ($db.LYS_ILE = 0.0548) -eval ($db.LYS_LEU = 0.1233) -eval ($db.LYS_LYS = 0.8768) -eval ($db.LYS_MET = 0.3014) -eval ($db.LYS_PHE = 0.2192) -eval ($db.LYS_PRO = 0.6439) -eval ($db.LYS_SER = 0.5754) -eval ($db.LYS_THR = 0.5617) -eval ($db.LYS_TRP = 0.5754) -eval ($db.LYS_TYR = 0.6165) -eval ($db.LYS_VAL = 0.0822) -eval ($db.LYS_NEP = 0.5343) -eval ($db.MET_ALA = 0.1096) -eval ($db.MET_ARG = 0.3288) -eval ($db.MET_ASN = 0.2877) -eval ($db.MET_ASP = 0.2877) -eval ($db.MET_CYS = 0.0822) -eval ($db.MET_GLN = 0.2877) -eval ($db.MET_GLU = 0.2877) -eval ($db.MET_GLY = 0.1781) -eval ($db.MET_HIS = 0.274) -eval ($db.MET_ILE = 0.0137) -eval ($db.MET_LEU = 0.0411) -eval ($db.MET_LYS = 0.3014) -eval ($db.MET_MET = 0.1096) -eval ($db.MET_PHE = 0.0685) -eval ($db.MET_PRO = 0.2192) -eval ($db.MET_SER = 0.1918) -eval ($db.MET_THR = 0.1918) -eval ($db.MET_TRP = 0.2055) -eval ($db.MET_TYR = 0.2192) -eval ($db.MET_VAL = 0.0274) -eval ($db.MET_NEP = 0.1918) -eval ($db.PHE_ALA = 0.0822) -eval ($db.PHE_ARG = 0.2329) -eval ($db.PHE_ASN = 0.2055) -eval ($db.PHE_ASP = 0.2055) -eval ($db.PHE_CYS = 0.0548) -eval ($db.PHE_GLN = 0.2055) -eval ($db.PHE_GLU = 0.2055) -eval ($db.PHE_GLY = 0.137) -eval ($db.PHE_HIS = 0.2055) -eval ($db.PHE_ILE = 0.0137) -eval ($db.PHE_LEU = 0.0274) -eval ($db.PHE_LYS = 0.2192) -eval ($db.PHE_MET = 0.0685) -eval ($db.PHE_PHE = 0.0548) -eval ($db.PHE_PRO = 0.1644) -eval ($db.PHE_SER = 0.137) -eval ($db.PHE_THR = 0.137) -eval ($db.PHE_TRP = 0.137) -eval ($db.PHE_TYR = 0.1507) -eval ($db.PHE_VAL = 0.0137) -eval ($db.PHE_NEP = 0.137) -eval ($db.PRO_ALA = 0.2329) -eval ($db.PRO_ARG = 0.685) -eval ($db.PRO_ASN = 0.6165) -eval ($db.PRO_ASP = 0.6165) -eval ($db.PRO_CYS = 0.1781) -eval ($db.PRO_GLN = 0.6165) -eval ($db.PRO_GLU = 0.6165) -eval ($db.PRO_GLY = 0.3973) -eval ($db.PRO_HIS = 0.6028) -eval ($db.PRO_ILE = 0.0411) -eval ($db.PRO_LEU = 0.0822) -eval ($db.PRO_LYS = 0.6439) -eval ($db.PRO_MET = 0.2192) -eval ($db.PRO_PHE = 0.1644) -eval ($db.PRO_PRO = 0.4795) -eval ($db.PRO_SER = 0.4247) -eval ($db.PRO_THR = 0.411) -eval ($db.PRO_TRP = 0.4247) -eval ($db.PRO_TYR = 0.4521) -eval ($db.PRO_VAL = 0.0548) -eval ($db.PRO_NEP = 0.3973) -eval ($db.SER_ALA = 0.2055) -eval ($db.SER_ARG = 0.6028) -eval ($db.SER_ASN = 0.548) -eval ($db.SER_ASP = 0.548) -eval ($db.SER_CYS = 0.1644) -eval ($db.SER_GLN = 0.548) -eval ($db.SER_GLU = 0.548) -eval ($db.SER_GLY = 0.3425) -eval ($db.SER_HIS = 0.5206) -eval ($db.SER_ILE = 0.0274) -eval ($db.SER_LEU = 0.0822) -eval ($db.SER_LYS = 0.5754) -eval ($db.SER_MET = 0.1918) -eval ($db.SER_PHE = 0.137) -eval ($db.SER_PRO = 0.4247) -eval ($db.SER_SER = 0.3699) -eval ($db.SER_THR = 0.3699) -eval ($db.SER_TRP = 0.3836) -eval ($db.SER_TYR = 0.3973) -eval ($db.SER_VAL = 0.0548) -eval ($db.SER_NEP = 0.3562) -eval ($db.THR_ALA = 0.2055) -eval ($db.THR_ARG = 0.6028) -eval ($db.THR_ASN = 0.5343) -eval ($db.THR_ASP = 0.5343) -eval ($db.THR_CYS = 0.1507) -eval ($db.THR_GLN = 0.5343) -eval ($db.THR_GLU = 0.5343) -eval ($db.THR_GLY = 0.3425) -eval ($db.THR_HIS = 0.5206) -eval ($db.THR_ILE = 0.0274) -eval ($db.THR_LEU = 0.0822) -eval ($db.THR_LYS = 0.5617) -eval ($db.THR_MET = 0.1918) -eval ($db.THR_PHE = 0.137) -eval ($db.THR_PRO = 0.411) -eval ($db.THR_SER = 0.3699) -eval ($db.THR_THR = 0.3562) -eval ($db.THR_TRP = 0.3699) -eval ($db.THR_TYR = 0.3973) -eval ($db.THR_VAL = 0.0548) -eval ($db.THR_NEP = 0.3425) -eval ($db.TRP_ALA = 0.2055) -eval ($db.TRP_ARG = 0.6165) -eval ($db.TRP_ASN = 0.548) -eval ($db.TRP_ASP = 0.548) -eval ($db.TRP_CYS = 0.1644) -eval ($db.TRP_GLN = 0.548) -eval ($db.TRP_GLU = 0.548) -eval ($db.TRP_GLY = 0.3562) -eval ($db.TRP_HIS = 0.5343) -eval ($db.TRP_ILE = 0.0274) -eval ($db.TRP_LEU = 0.0822) -eval ($db.TRP_LYS = 0.5754) -eval ($db.TRP_MET = 0.2055) -eval ($db.TRP_PHE = 0.137) -eval ($db.TRP_PRO = 0.4247) -eval ($db.TRP_SER = 0.3836) -eval ($db.TRP_THR = 0.3699) -eval ($db.TRP_TRP = 0.3836) -eval ($db.TRP_TYR = 0.411) -eval ($db.TRP_VAL = 0.0548) -eval ($db.TRP_NEP = 0.3562) -eval ($db.TYR_ALA = 0.2192) -eval ($db.TYR_ARG = 0.6576) -eval ($db.TYR_ASN = 0.5891) -eval ($db.TYR_ASP = 0.5891) -eval ($db.TYR_CYS = 0.1781) -eval ($db.TYR_GLN = 0.5891) -eval ($db.TYR_GLU = 0.5891) -eval ($db.TYR_GLY = 0.3699) -eval ($db.TYR_HIS = 0.5754) -eval ($db.TYR_ILE = 0.0411) -eval ($db.TYR_LEU = 0.0822) -eval ($db.TYR_LYS = 0.6165) -eval ($db.TYR_MET = 0.2192) -eval ($db.TYR_PHE = 0.1507) -eval ($db.TYR_PRO = 0.4521) -eval ($db.TYR_SER = 0.3973) -eval ($db.TYR_THR = 0.3973) -eval ($db.TYR_TRP = 0.411) -eval ($db.TYR_TYR = 0.4384) -eval ($db.TYR_VAL = 0.0548) -eval ($db.TYR_NEP = 0.3836) -eval ($db.VAL_ALA = 0.0274) -eval ($db.VAL_ARG = 0.0822) -eval ($db.VAL_ASN = 0.0685) -eval ($db.VAL_ASP = 0.0685) -eval ($db.VAL_CYS = 0.0274) -eval ($db.VAL_GLN = 0.0685) -eval ($db.VAL_GLU = 0.0685) -eval ($db.VAL_GLY = 0.0411) -eval ($db.VAL_HIS = 0.0685) -eval ($db.VAL_ILE = 0) -eval ($db.VAL_LEU = 0.0137) -eval ($db.VAL_LYS = 0.0822) -eval ($db.VAL_MET = 0.0274) -eval ($db.VAL_PHE = 0.0137) -eval ($db.VAL_PRO = 0.0548) -eval ($db.VAL_SER = 0.0548) -eval ($db.VAL_THR = 0.0548) -eval ($db.VAL_TRP = 0.0548) -eval ($db.VAL_TYR = 0.0548) -eval ($db.VAL_VAL = 0.0137) -eval ($db.VAL_NEP = 0.0411) -eval ($db.NEP_ALA = 0.1918) -eval ($db.NEP_ARG = 0.5754) -eval ($db.NEP_ASN = 0.5069) -eval ($db.NEP_ASP = 0.5069) -eval ($db.NEP_CYS = 0.1507) -eval ($db.NEP_GLN = 0.5069) -eval ($db.NEP_GLU = 0.5069) -eval ($db.NEP_GLY = 0.3288) -eval ($db.NEP_HIS = 0.4932) -eval ($db.NEP_ILE = 0.0274) -eval ($db.NEP_LEU = 0.0685) -eval ($db.NEP_LYS = 0.5343) -eval ($db.NEP_MET = 0.1918) -eval ($db.NEP_PHE = 0.137) -eval ($db.NEP_PRO = 0.3973) -eval ($db.NEP_SER = 0.3562) -eval ($db.NEP_THR = 0.3425) -eval ($db.NEP_TRP = 0.3562) -eval ($db.NEP_TYR = 0.3836) -eval ($db.NEP_VAL = 0.0411) -eval ($db.NEP_NEP = 0.3288) -eval ($db.ALA_ADE = 0.00 ) -eval ($db.ALA_CYT = 0.00 ) -eval ($db.ALA_GUA = 0.00 ) -eval ($db.ALA_THY = 0.00 ) -eval ($db.ARG_ADE = 0.14 ) -eval ($db.ARG_CYT = 0.07 ) -eval ($db.ARG_GUA = 0.14 ) -eval ($db.ARG_THY = 0.08 ) -eval ($db.ASN_ADE = 0.19 ) -eval ($db.ASN_CYT = 0.09 ) -eval ($db.ASN_GUA = 0.22 ) -eval ($db.ASN_THY = 0.10 ) -eval ($db.ASP_ADE = 0.44 ) -eval ($db.ASP_CYT = 0.16 ) -eval ($db.ASP_GUA = 0.10 ) -eval ($db.ASP_THY = 0.05 ) -eval ($db.CYS_ADE = 0.00 ) -eval ($db.CYS_CYT = 0.00 ) -eval ($db.CYS_GUA = 0.00 ) -eval ($db.CYS_THY = 0.00 ) -eval ($db.GLN_ADE = 0.15 ) -eval ($db.GLN_CYT = 0.19 ) -eval ($db.GLN_GUA = 0.15 ) -eval ($db.GLN_THY = 0.13 ) -eval ($db.GLU_ADE = 0.11 ) -eval ($db.GLU_CYT = 0.15 ) -eval ($db.GLU_GUA = 0.13 ) -eval ($db.GLU_THY = 0.00 ) -eval ($db.GLY_ADE = 0.00 ) -eval ($db.GLY_CYT = 0.00 ) -eval ($db.GLY_GUA = 0.00 ) -eval ($db.GLY_THY = 0.00 ) -eval ($db.HIS_ADE = 0.10 ) -eval ($db.HIS_CYT = 0.14 ) -eval ($db.HIS_GUA = 0.18 ) -eval ($db.HIS_THY = 0.06 ) -eval ($db.ILE_ADE = 0.00 ) -eval ($db.ILE_CYT = 0.00 ) -eval ($db.ILE_GUA = 0.00 ) -eval ($db.ILE_THY = 0.00 ) -eval ($db.LEU_ADE = 0.00 ) -eval ($db.LEU_CYT = 0.00 ) -eval ($db.LEU_GUA = 0.00 ) -eval ($db.LEU_THY = 0.00 ) -eval ($db.LYS_ADE = 0.31 ) -eval ($db.LYS_CYT = 0.15 ) -eval ($db.LYS_GUA = 0.29 ) -eval ($db.LYS_THY = 0.18 ) -eval ($db.MET_ADE = 0.00 ) -eval ($db.MET_CYT = 0.00 ) -eval ($db.MET_GUA = 0.00 ) -eval ($db.MET_THY = 0.00 ) -eval ($db.PHE_ADE = 0.00 ) -eval ($db.PHE_CYT = 0.00 ) -eval ($db.PHE_GUA = 0.00 ) -eval ($db.PHE_THY = 0.00 ) -eval ($db.PRO_ADE = 0.00 ) -eval ($db.PRO_CYT = 0.00 ) -eval ($db.PRO_GUA = 0.00 ) -eval ($db.PRO_THY = 0.00 ) -eval ($db.SER_ADE = 0.30 ) -eval ($db.SER_CYT = 0.03 ) -eval ($db.SER_GUA = 0.09 ) -eval ($db.SER_THY = 0.03 ) -eval ($db.THR_ADE = 0.16 ) -eval ($db.THR_CYT = 0.16 ) -eval ($db.THR_GUA = 0.03 ) -eval ($db.THR_THY = 0.05 ) -eval ($db.TRP_ADE = 0.00 ) -eval ($db.TRP_CYT = 0.00 ) -eval ($db.TRP_GUA = 0.00 ) -eval ($db.TRP_THY = 0.00 ) -eval ($db.TYR_ADE = 0.13 ) -eval ($db.TYR_CYT = 0.10 ) -eval ($db.TYR_GUA = 0.10 ) -eval ($db.TYR_THY = 0.02 ) -eval ($db.VAL_ADE = 0.00 ) -eval ($db.VAL_CYT = 0.00 ) -eval ($db.VAL_GUA = 0.00 ) -eval ($db.VAL_THY = 0.00 ) -eval ($db.ADE_ALA = 0.00 ) -eval ($db.CYT_ALA = 0.00 ) -eval ($db.GUA_ALA = 0.00 ) -eval ($db.THY_ALA = 0.00 ) -eval ($db.ADE_ARG = 0.14 ) -eval ($db.CYT_ARG = 0.07 ) -eval ($db.GUA_ARG = 0.14 ) -eval ($db.THY_ARG = 0.08 ) -eval ($db.ADE_ASN = 0.19 ) -eval ($db.CYT_ASN = 0.09 ) -eval ($db.GUA_ASN = 0.22 ) -eval ($db.THY_ASN = 0.10 ) -eval ($db.ADE_ASP = 0.44 ) -eval ($db.CYT_ASP = 0.16 ) -eval ($db.GUA_ASP = 0.10 ) -eval ($db.THY_ASP = 0.05 ) -eval ($db.ADE_CYS = 0.00 ) -eval ($db.CYT_CYS = 0.00 ) -eval ($db.GUA_CYS = 0.00 ) -eval ($db.THY_CYS = 0.00 ) -eval ($db.ADE_GLN = 0.15 ) -eval ($db.CYT_GLN = 0.19 ) -eval ($db.GUA_GLN = 0.15 ) -eval ($db.THY_GLN = 0.13 ) -eval ($db.ADE_GLU = 0.11 ) -eval ($db.CYT_GLU = 0.15 ) -eval ($db.GUA_GLU = 0.13 ) -eval ($db.THY_GLU = 0.00 ) -eval ($db.ADE_GLY = 0.00 ) -eval ($db.CYT_GLY = 0.00 ) -eval ($db.GUA_GLY = 0.00 ) -eval ($db.THY_GLY = 0.00 ) -eval ($db.ADE_HIS = 0.10 ) -eval ($db.CYT_HIS = 0.14 ) -eval ($db.GUA_HIS = 0.18 ) -eval ($db.THY_HIS = 0.06 ) -eval ($db.ADE_ILE = 0.00 ) -eval ($db.CYT_ILE = 0.00 ) -eval ($db.GUA_ILE = 0.00 ) -eval ($db.THY_ILE = 0.00 ) -eval ($db.ADE_LEU = 0.00 ) -eval ($db.CYT_LEU = 0.00 ) -eval ($db.GUA_LEU = 0.00 ) -eval ($db.THY_LEU = 0.00 ) -eval ($db.ADE_LYS = 0.31 ) -eval ($db.CYT_LYS = 0.15 ) -eval ($db.GUA_LYS = 0.29 ) -eval ($db.THY_LYS = 0.18 ) -eval ($db.ADE_MET = 0.00 ) -eval ($db.CYT_MET = 0.00 ) -eval ($db.GUA_MET = 0.00 ) -eval ($db.THY_MET = 0.00 ) -eval ($db.ADE_PHE = 0.00 ) -eval ($db.CYT_PHE = 0.00 ) -eval ($db.GUA_PHE = 0.00 ) -eval ($db.THY_PHE = 0.00 ) -eval ($db.ADE_PRO = 0.00 ) -eval ($db.CYT_PRO = 0.00 ) -eval ($db.GUA_PRO = 0.00 ) -eval ($db.THY_PRO = 0.00 ) -eval ($db.ADE_SER = 0.30 ) -eval ($db.CYT_SER = 0.03 ) -eval ($db.GUA_SER = 0.09 ) -eval ($db.THY_SER = 0.03 ) -eval ($db.ADE_THR = 0.16 ) -eval ($db.CYT_THR = 0.16 ) -eval ($db.GUA_THR = 0.03 ) -eval ($db.THY_THR = 0.05 ) -eval ($db.ADE_TRP = 0.00 ) -eval ($db.CYT_TRP = 0.00 ) -eval ($db.GUA_TRP = 0.00 ) -eval ($db.THY_TRP = 0.00 ) -eval ($db.ADE_TYR = 0.13 ) -eval ($db.CYT_TYR = 0.10 ) -eval ($db.GUA_TYR = 0.10 ) -eval ($db.THY_TYR = 0.02 ) -eval ($db.ADE_VAL = 0.00 ) -eval ($db.CYT_VAL = 0.00 ) -eval ($db.GUA_VAL = 0.00 ) -eval ($db.THY_VAL = 0.00 ) -eval ($db.DP_ALA_ADE = 0.51 ) -eval ($db.DP_ALA_CYT = 0.51 ) -eval ($db.DP_ALA_GUA = 0.51 ) -eval ($db.DP_ALA_THY = 0.51 ) -eval ($db.DP_ARG_ADE = 0.34 ) -eval ($db.DP_ARG_CYT = 0.34 ) -eval ($db.DP_ARG_GUA = 0.34 ) -eval ($db.DP_ARG_THY = 0.34 ) -eval ($db.DP_ASN_ADE = 0.52 ) -eval ($db.DP_ASN_CYT = 0.52 ) -eval ($db.DP_ASN_GUA = 0.52 ) -eval ($db.DP_ASN_THY = 0.52 ) -eval ($db.DP_ASP_ADE = 0.93 ) -eval ($db.DP_ASP_CYT = 0.93 ) -eval ($db.DP_ASP_GUA = 0.93 ) -eval ($db.DP_ASP_THY = 0.93 ) -eval ($db.DP_CYS_ADE = 0.43 ) -eval ($db.DP_CYS_CYT = 0.43 ) -eval ($db.DP_CYS_GUA = 0.43 ) -eval ($db.DP_CYS_THY = 0.43 ) -eval ($db.DP_GLN_ADE = 0.47 ) -eval ($db.DP_GLN_CYT = 0.47 ) -eval ($db.DP_GLN_GUA = 0.47 ) -eval ($db.DP_GLN_THY = 0.47 ) -eval ($db.DP_GLU_ADE = 0.83 ) -eval ($db.DP_GLU_CYT = 0.83 ) -eval ($db.DP_GLU_GUA = 0.83 ) -eval ($db.DP_GLU_THY = 0.83 ) -eval ($db.DP_GLY_ADE = 0.38 ) -eval ($db.DP_GLY_CYT = 0.38 ) -eval ($db.DP_GLY_GUA = 0.38 ) -eval ($db.DP_GLY_THY = 0.38 ) -eval ($db.DP_HIS_ADE = 0.40 ) -eval ($db.DP_HIS_CYT = 0.40 ) -eval ($db.DP_HIS_GUA = 0.40 ) -eval ($db.DP_HIS_THY = 0.40 ) -eval ($db.DP_ILE_ADE = 0.54 ) -eval ($db.DP_ILE_CYT = 0.54 ) -eval ($db.DP_ILE_GUA = 0.54 ) -eval ($db.DP_ILE_THY = 0.54 ) -eval ($db.DP_LEU_ADE = 0.38 ) -eval ($db.DP_LEU_CYT = 0.38 ) -eval ($db.DP_LEU_GUA = 0.38 ) -eval ($db.DP_LEU_THY = 0.38 ) -eval ($db.DP_LYS_ADE = 0.35 ) -eval ($db.DP_LYS_CYT = 0.35 ) -eval ($db.DP_LYS_GUA = 0.35 ) -eval ($db.DP_LYS_THY = 0.35 ) -eval ($db.DP_MET_ADE = 0.50 ) -eval ($db.DP_MET_CYT = 0.50 ) -eval ($db.DP_MET_GUA = 0.50 ) -eval ($db.DP_MET_THY = 0.50 ) -eval ($db.DP_PHE_ADE = 0.75 ) -eval ($db.DP_PHE_CYT = 0.75 ) -eval ($db.DP_PHE_GUA = 0.75 ) -eval ($db.DP_PHE_THY = 0.75 ) -eval ($db.DP_PRO_ADE = 1.00 ) -eval ($db.DP_PRO_CYT = 1.00 ) -eval ($db.DP_PRO_GUA = 1.00 ) -eval ($db.DP_PRO_THY = 1.00 ) -eval ($db.DP_SER_ADE = 0.38 ) -eval ($db.DP_SER_CYT = 0.38 ) -eval ($db.DP_SER_GUA = 0.38 ) -eval ($db.DP_SER_THY = 0.38 ) -eval ($db.DP_THR_ADE = 0.40 ) -eval ($db.DP_THR_CYT = 0.40 ) -eval ($db.DP_THR_GUA = 0.40 ) -eval ($db.DP_THR_THY = 0.40 ) -eval ($db.DP_TRP_ADE = 0.67 ) -eval ($db.DP_TRP_CYT = 0.67 ) -eval ($db.DP_TRP_GUA = 0.67 ) -eval ($db.DP_TRP_THY = 0.67 ) -eval ($db.DP_TYR_ADE = 0.43 ) -eval ($db.DP_TYR_CYT = 0.43 ) -eval ($db.DP_TYR_GUA = 0.43 ) -eval ($db.DP_TYR_THY = 0.43 ) -eval ($db.DP_VAL_ADE = 0.50 ) -eval ($db.DP_VAL_CYT = 0.50 ) -eval ($db.DP_VAL_GUA = 0.50 ) -eval ($db.DP_VAL_THY = 0.50 ) -eval ($db.DP_ADE_ALA = 0.51 ) -eval ($db.DP_CYT_ALA = 0.51 ) -eval ($db.DP_GUA_ALA = 0.51 ) -eval ($db.DP_THY_ALA = 0.51 ) -eval ($db.DP_ADE_ARG = 0.34 ) -eval ($db.DP_CYT_ARG = 0.34 ) -eval ($db.DP_GUA_ARG = 0.34 ) -eval ($db.DP_THY_ARG = 0.34 ) -eval ($db.DP_ADE_ASN = 0.52 ) -eval ($db.DP_CYT_ASN = 0.52 ) -eval ($db.DP_GUA_ASN = 0.52 ) -eval ($db.DP_THY_ASN = 0.52 ) -eval ($db.DP_ADE_ASP = 0.93 ) -eval ($db.DP_CYT_ASP = 0.93 ) -eval ($db.DP_GUA_ASP = 0.93 ) -eval ($db.DP_THY_ASP = 0.93 ) -eval ($db.DP_ADE_CYS = 0.43 ) -eval ($db.DP_CYT_CYS = 0.43 ) -eval ($db.DP_GUA_CYS = 0.43 ) -eval ($db.DP_THY_CYS = 0.43 ) -eval ($db.DP_ADE_GLN = 0.47 ) -eval ($db.DP_CYT_GLN = 0.47 ) -eval ($db.DP_GUA_GLN = 0.47 ) -eval ($db.DP_THY_GLN = 0.47 ) -eval ($db.DP_ADE_GLU = 0.83 ) -eval ($db.DP_CYT_GLU = 0.83 ) -eval ($db.DP_GUA_GLU = 0.83 ) -eval ($db.DP_THY_GLU = 0.83 ) -eval ($db.DP_ADE_GLY = 0.38 ) -eval ($db.DP_CYT_GLY = 0.38 ) -eval ($db.DP_GUA_GLY = 0.38 ) -eval ($db.DP_THY_GLY = 0.38 ) -eval ($db.DP_ADE_HIS = 0.40 ) -eval ($db.DP_CYT_HIS = 0.40 ) -eval ($db.DP_GUA_HIS = 0.40 ) -eval ($db.DP_THY_HIS = 0.40 ) -eval ($db.DP_ADE_ILE = 0.54 ) -eval ($db.DP_CYT_ILE = 0.54 ) -eval ($db.DP_GUA_ILE = 0.54 ) -eval ($db.DP_THY_ILE = 0.54 ) -eval ($db.DP_ADE_LEU = 0.38 ) -eval ($db.DP_CYT_LEU = 0.38 ) -eval ($db.DP_GUA_LEU = 0.38 ) -eval ($db.DP_THY_LEU = 0.38 ) -eval ($db.DP_ADE_LYS = 0.35 ) -eval ($db.DP_CYT_LYS = 0.35 ) -eval ($db.DP_GUA_LYS = 0.35 ) -eval ($db.DP_THY_LYS = 0.35 ) -eval ($db.DP_ADE_MET = 0.50 ) -eval ($db.DP_CYT_MET = 0.50 ) -eval ($db.DP_GUA_MET = 0.50 ) -eval ($db.DP_THY_MET = 0.50 ) -eval ($db.DP_ADE_PHE = 0.75 ) -eval ($db.DP_CYT_PHE = 0.75 ) -eval ($db.DP_GUA_PHE = 0.75 ) -eval ($db.DP_THY_PHE = 0.75 ) -eval ($db.DP_ADE_PRO = 1.00 ) -eval ($db.DP_CYT_PRO = 1.00 ) -eval ($db.DP_GUA_PRO = 1.00 ) -eval ($db.DP_THY_PRO = 1.00 ) -eval ($db.DP_ADE_SER = 0.38 ) -eval ($db.DP_CYT_SER = 0.38 ) -eval ($db.DP_GUA_SER = 0.38 ) -eval ($db.DP_THY_SER = 0.38 ) -eval ($db.DP_ADE_THR = 0.40 ) -eval ($db.DP_CYT_THR = 0.40 ) -eval ($db.DP_GUA_THR = 0.40 ) -eval ($db.DP_THY_THR = 0.40 ) -eval ($db.DP_ADE_TRP = 0.67 ) -eval ($db.DP_CYT_TRP = 0.67 ) -eval ($db.DP_GUA_TRP = 0.67 ) -eval ($db.DP_THY_TRP = 0.67 ) -eval ($db.DP_ADE_TYR = 0.43 ) -eval ($db.DP_CYT_TYR = 0.43 ) -eval ($db.DP_GUA_TYR = 0.43 ) -eval ($db.DP_THY_TYR = 0.43 ) -eval ($db.DP_ADE_VAL = 0.50 ) -eval ($db.DP_CYT_VAL = 0.50 ) -eval ($db.DP_GUA_VAL = 0.50 ) -eval ($db.DP_THY_VAL = 0.50 ) diff --git a/src/haddock/modules/flexref/cns/db_statistical.dat b/src/haddock/modules/flexref/cns/db_statistical.dat deleted file mode 100644 index 225a3ae2b..000000000 --- a/src/haddock/modules/flexref/cns/db_statistical.dat +++ /dev/null @@ -1,773 +0,0 @@ -! db_statistical.dat -! PDB-derived probabilities of finding a water molecule -! between two specific amino acids -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! -eval($db.ALA_ALA = 0.190 ) -eval($db.ALA_ARG = 0.220 ) -eval($db.ALA_ASN = 0.290 ) -eval($db.ALA_ASP = 0.330 ) -eval($db.ALA_CYS = 0.150 ) -eval($db.ALA_GLN = 0.170 ) -eval($db.ALA_GLU = 0.260 ) -eval($db.ALA_GLY = 0.290 ) -eval($db.ALA_HIS = 0.240 ) -eval($db.ALA_NEP = 0.240 ) -eval($db.ALA_ILE = 0.170 ) -eval($db.ALA_LEU = 0.110 ) -eval($db.ALA_LYS = 0.210 ) -eval($db.ALA_MET = 0.240 ) -eval($db.ALA_PHE = 0.070 ) -eval($db.ALA_PRO = 0.240 ) -eval($db.ALA_SER = 0.170 ) -eval($db.ALA_THR = 0.060 ) -eval($db.ALA_TRP = 0.150 ) -eval($db.ALA_TYR = 0.150 ) -eval($db.ALA_VAL = 0.080 ) -eval($db.ARG_ALA = 0.220 ) -eval($db.ARG_ARG = 0.660 ) -eval($db.ARG_ASN = 0.260 ) -eval($db.ARG_ASP = 0.390 ) -eval($db.ARG_CYS = 0.200 ) -eval($db.ARG_GLN = 0.310 ) -eval($db.ARG_GLU = 0.340 ) -eval($db.ARG_GLY = 0.270 ) -eval($db.ARG_HIS = 0.340 ) -eval($db.ARG_NEP = 0.340 ) -eval($db.ARG_ILE = 0.240 ) -eval($db.ARG_LEU = 0.240 ) -eval($db.ARG_LYS = 0.350 ) -eval($db.ARG_MET = 0.300 ) -eval($db.ARG_PHE = 0.090 ) -eval($db.ARG_PRO = 0.340 ) -eval($db.ARG_SER = 0.380 ) -eval($db.ARG_THR = 0.120 ) -eval($db.ARG_TRP = 0.180 ) -eval($db.ARG_TYR = 0.280 ) -eval($db.ARG_VAL = 0.280 ) -eval($db.ASN_ALA = 0.290 ) -eval($db.ASN_ARG = 0.260 ) -eval($db.ASN_ASN = 0.460 ) -eval($db.ASN_ASP = 0.350 ) -eval($db.ASN_CYS = 0.220 ) -eval($db.ASN_GLN = 0.260 ) -eval($db.ASN_GLU = 0.230 ) -eval($db.ASN_GLY = 0.280 ) -eval($db.ASN_HIS = 0.230 ) -eval($db.ASN_NEP = 0.230 ) -eval($db.ASN_ILE = 0.070 ) -eval($db.ASN_LEU = 0.100 ) -eval($db.ASN_LYS = 0.270 ) -eval($db.ASN_MET = 0.190 ) -eval($db.ASN_PHE = 0.050 ) -eval($db.ASN_PRO = 0.110 ) -eval($db.ASN_SER = 0.270 ) -eval($db.ASN_THR = 0.250 ) -eval($db.ASN_TRP = 0.000 ) -eval($db.ASN_TYR = 0.170 ) -eval($db.ASN_VAL = 0.260 ) -eval($db.ASP_ALA = 0.330 ) -eval($db.ASP_ARG = 0.390 ) -eval($db.ASP_ASN = 0.350 ) -eval($db.ASP_ASP = 0.420 ) -eval($db.ASP_CYS = 0.230 ) -eval($db.ASP_GLN = 0.300 ) -eval($db.ASP_GLU = 0.450 ) -eval($db.ASP_GLY = 0.120 ) -eval($db.ASP_HIS = 0.700 ) -eval($db.ASP_NEP = 0.700 ) -eval($db.ASP_ILE = 0.100 ) -eval($db.ASP_LEU = 0.140 ) -eval($db.ASP_LYS = 0.460 ) -eval($db.ASP_MET = 0.190 ) -eval($db.ASP_PHE = 0.310 ) -eval($db.ASP_PRO = 0.130 ) -eval($db.ASP_SER = 0.270 ) -eval($db.ASP_THR = 0.250 ) -eval($db.ASP_TRP = 0.140 ) -eval($db.ASP_TYR = 0.280 ) -eval($db.ASP_VAL = 0.310 ) -eval($db.CYS_ALA = 0.150 ) -eval($db.CYS_ARG = 0.200 ) -eval($db.CYS_ASN = 0.220 ) -eval($db.CYS_ASP = 0.230 ) -eval($db.CYS_CYS = 0.120 ) -eval($db.CYS_GLN = 0.000 ) -eval($db.CYS_GLU = 0.180 ) -eval($db.CYS_GLY = 0.400 ) -eval($db.CYS_HIS = 0.000 ) -eval($db.CYS_NEP = 0.000 ) -eval($db.CYS_ILE = 0.090 ) -eval($db.CYS_LEU = 0.050 ) -eval($db.CYS_LYS = 0.330 ) -eval($db.CYS_MET = 0.000 ) -eval($db.CYS_PHE = 0.000 ) -eval($db.CYS_PRO = 0.200 ) -eval($db.CYS_SER = 0.580 ) -eval($db.CYS_THR = 0.000 ) -eval($db.CYS_TRP = 0.250 ) -eval($db.CYS_TYR = 0.060 ) -eval($db.CYS_VAL = 0.140 ) -eval($db.GLN_ALA = 0.170 ) -eval($db.GLN_ARG = 0.310 ) -eval($db.GLN_ASN = 0.260 ) -eval($db.GLN_ASP = 0.300 ) -eval($db.GLN_CYS = 0.000 ) -eval($db.GLN_GLN = 0.270 ) -eval($db.GLN_GLU = 0.370 ) -eval($db.GLN_GLY = 0.240 ) -eval($db.GLN_HIS = 0.240 ) -eval($db.GLN_NEP = 0.240 ) -eval($db.GLN_ILE = 0.150 ) -eval($db.GLN_LEU = 0.190 ) -eval($db.GLN_LYS = 0.350 ) -eval($db.GLN_MET = 0.230 ) -eval($db.GLN_PHE = 0.000 ) -eval($db.GLN_PRO = 0.570 ) -eval($db.GLN_SER = 0.330 ) -eval($db.GLN_THR = 0.130 ) -eval($db.GLN_TRP = 0.000 ) -eval($db.GLN_TYR = 0.470 ) -eval($db.GLN_VAL = 0.230 ) -eval($db.GLU_ALA = 0.260 ) -eval($db.GLU_ARG = 0.340 ) -eval($db.GLU_ASN = 0.230 ) -eval($db.GLU_ASP = 0.450 ) -eval($db.GLU_CYS = 0.180 ) -eval($db.GLU_GLN = 0.370 ) -eval($db.GLU_GLU = 0.310 ) -eval($db.GLU_GLY = 0.270 ) -eval($db.GLU_HIS = 0.730 ) -eval($db.GLU_NEP = 0.730 ) -eval($db.GLU_ILE = 0.260 ) -eval($db.GLU_LEU = 0.230 ) -eval($db.GLU_LYS = 0.390 ) -eval($db.GLU_MET = 0.250 ) -eval($db.GLU_PHE = 0.270 ) -eval($db.GLU_PRO = 0.290 ) -eval($db.GLU_SER = 0.460 ) -eval($db.GLU_THR = 0.270 ) -eval($db.GLU_TRP = 0.170 ) -eval($db.GLU_TYR = 0.310 ) -eval($db.GLU_VAL = 0.270 ) -eval($db.GLY_ALA = 0.290 ) -eval($db.GLY_ARG = 0.270 ) -eval($db.GLY_ASN = 0.280 ) -eval($db.GLY_ASP = 0.120 ) -eval($db.GLY_CYS = 0.400 ) -eval($db.GLY_GLN = 0.240 ) -eval($db.GLY_GLU = 0.270 ) -eval($db.GLY_GLY = 0.190 ) -eval($db.GLY_HIS = 0.240 ) -eval($db.GLY_NEP = 0.240 ) -eval($db.GLY_ILE = 0.090 ) -eval($db.GLY_LEU = 0.190 ) -eval($db.GLY_LYS = 0.520 ) -eval($db.GLY_MET = 0.420 ) -eval($db.GLY_PHE = 0.200 ) -eval($db.GLY_PRO = 0.250 ) -eval($db.GLY_SER = 0.340 ) -eval($db.GLY_THR = 0.240 ) -eval($db.GLY_TRP = 0.110 ) -eval($db.GLY_TYR = 0.370 ) -eval($db.GLY_VAL = 0.250 ) -eval($db.HIS_ALA = 0.240 ) -eval($db.HIS_ARG = 0.340 ) -eval($db.HIS_ASN = 0.230 ) -eval($db.HIS_ASP = 0.700 ) -eval($db.HIS_CYS = 0.000 ) -eval($db.HIS_GLN = 0.240 ) -eval($db.HIS_GLU = 0.730 ) -eval($db.HIS_GLY = 0.240 ) -eval($db.HIS_HIS = 0.570 ) -eval($db.HIS_NEP = 0.570 ) -eval($db.HIS_ILE = 0.190 ) -eval($db.HIS_LEU = 0.100 ) -eval($db.HIS_LYS = 0.280 ) -eval($db.HIS_MET = 0.380 ) -eval($db.HIS_PHE = 0.000 ) -eval($db.HIS_PRO = 0.170 ) -eval($db.HIS_SER = 0.400 ) -eval($db.HIS_THR = 0.430 ) -eval($db.HIS_TRP = 0.400 ) -eval($db.HIS_TYR = 0.160 ) -eval($db.HIS_VAL = 0.000 ) -eval($db.NEP_ALA = 0.240 ) -eval($db.NEP_ARG = 0.340 ) -eval($db.NEP_ASN = 0.230 ) -eval($db.NEP_ASP = 0.700 ) -eval($db.NEP_CYS = 0.000 ) -eval($db.NEP_GLN = 0.240 ) -eval($db.NEP_GLU = 0.730 ) -eval($db.NEP_GLY = 0.240 ) -eval($db.NEP_NEP = 0.570 ) -eval($db.NEP_HIS = 0.570 ) -eval($db.NEP_ILE = 0.190 ) -eval($db.NEP_LEU = 0.100 ) -eval($db.NEP_LYS = 0.280 ) -eval($db.NEP_MET = 0.380 ) -eval($db.NEP_PHE = 0.000 ) -eval($db.NEP_PRO = 0.170 ) -eval($db.NEP_SER = 0.400 ) -eval($db.NEP_THR = 0.430 ) -eval($db.NEP_TRP = 0.400 ) -eval($db.NEP_TYR = 0.160 ) -eval($db.NEP_VAL = 0.000 ) -eval($db.ILE_ALA = 0.170 ) -eval($db.ILE_ARG = 0.240 ) -eval($db.ILE_ASN = 0.070 ) -eval($db.ILE_ASP = 0.100 ) -eval($db.ILE_CYS = 0.090 ) -eval($db.ILE_GLN = 0.150 ) -eval($db.ILE_GLU = 0.260 ) -eval($db.ILE_GLY = 0.090 ) -eval($db.ILE_HIS = 0.190 ) -eval($db.ILE_NEP = 0.190 ) -eval($db.ILE_ILE = 0.090 ) -eval($db.ILE_LEU = 0.110 ) -eval($db.ILE_LYS = 0.240 ) -eval($db.ILE_MET = 0.040 ) -eval($db.ILE_PHE = 0.030 ) -eval($db.ILE_PRO = 0.100 ) -eval($db.ILE_SER = 0.100 ) -eval($db.ILE_THR = 0.060 ) -eval($db.ILE_TRP = 0.000 ) -eval($db.ILE_TYR = 0.020 ) -eval($db.ILE_VAL = 0.080 ) -eval($db.LEU_ALA = 0.110 ) -eval($db.LEU_ARG = 0.240 ) -eval($db.LEU_ASN = 0.100 ) -eval($db.LEU_ASP = 0.140 ) -eval($db.LEU_CYS = 0.050 ) -eval($db.LEU_GLN = 0.190 ) -eval($db.LEU_GLU = 0.230 ) -eval($db.LEU_GLY = 0.190 ) -eval($db.LEU_HIS = 0.100 ) -eval($db.LEU_NEP = 0.100 ) -eval($db.LEU_ILE = 0.110 ) -eval($db.LEU_LEU = 0.110 ) -eval($db.LEU_LYS = 0.180 ) -eval($db.LEU_MET = 0.270 ) -eval($db.LEU_PHE = 0.030 ) -eval($db.LEU_PRO = 0.120 ) -eval($db.LEU_SER = 0.130 ) -eval($db.LEU_THR = 0.130 ) -eval($db.LEU_TRP = 0.110 ) -eval($db.LEU_TYR = 0.090 ) -eval($db.LEU_VAL = 0.100 ) -eval($db.LYS_ALA = 0.210 ) -eval($db.LYS_ARG = 0.350 ) -eval($db.LYS_ASN = 0.270 ) -eval($db.LYS_ASP = 0.460 ) -eval($db.LYS_CYS = 0.330 ) -eval($db.LYS_GLN = 0.350 ) -eval($db.LYS_GLU = 0.390 ) -eval($db.LYS_GLY = 0.520 ) -eval($db.LYS_HIS = 0.280 ) -eval($db.LYS_NEP = 0.280 ) -eval($db.LYS_ILE = 0.240 ) -eval($db.LYS_LEU = 0.180 ) -eval($db.LYS_LYS = 0.580 ) -eval($db.LYS_MET = 0.210 ) -eval($db.LYS_PHE = 0.280 ) -eval($db.LYS_PRO = 0.200 ) -eval($db.LYS_SER = 0.420 ) -eval($db.LYS_THR = 0.320 ) -eval($db.LYS_TRP = 0.220 ) -eval($db.LYS_TYR = 0.240 ) -eval($db.LYS_VAL = 0.260 ) -eval($db.MET_ALA = 0.240 ) -eval($db.MET_ARG = 0.300 ) -eval($db.MET_ASN = 0.190 ) -eval($db.MET_ASP = 0.190 ) -eval($db.MET_CYS = 0.000 ) -eval($db.MET_GLN = 0.230 ) -eval($db.MET_GLU = 0.250 ) -eval($db.MET_GLY = 0.420 ) -eval($db.MET_HIS = 0.380 ) -eval($db.MET_NEP = 0.380 ) -eval($db.MET_ILE = 0.040 ) -eval($db.MET_LEU = 0.270 ) -eval($db.MET_LYS = 0.210 ) -eval($db.MET_MET = 0.400 ) -eval($db.MET_PHE = 0.000 ) -eval($db.MET_PRO = 0.000 ) -eval($db.MET_SER = 0.120 ) -eval($db.MET_THR = 0.350 ) -eval($db.MET_TRP = 0.240 ) -eval($db.MET_TYR = 0.230 ) -eval($db.MET_VAL = 0.170 ) -eval($db.PHE_ALA = 0.070 ) -eval($db.PHE_ARG = 0.090 ) -eval($db.PHE_ASN = 0.050 ) -eval($db.PHE_ASP = 0.310 ) -eval($db.PHE_CYS = 0.000 ) -eval($db.PHE_GLN = 0.000 ) -eval($db.PHE_GLU = 0.270 ) -eval($db.PHE_GLY = 0.200 ) -eval($db.PHE_HIS = 0.000 ) -eval($db.PHE_NEP = 0.000 ) -eval($db.PHE_ILE = 0.030 ) -eval($db.PHE_LEU = 0.030 ) -eval($db.PHE_LYS = 0.280 ) -eval($db.PHE_MET = 0.000 ) -eval($db.PHE_PHE = 0.000 ) -eval($db.PHE_PRO = 0.000 ) -eval($db.PHE_SER = 0.070 ) -eval($db.PHE_THR = 0.030 ) -eval($db.PHE_TRP = 0.000 ) -eval($db.PHE_TYR = 0.120 ) -eval($db.PHE_VAL = 0.110 ) -eval($db.PRO_ALA = 0.240 ) -eval($db.PRO_ARG = 0.340 ) -eval($db.PRO_ASN = 0.110 ) -eval($db.PRO_ASP = 0.130 ) -eval($db.PRO_CYS = 0.200 ) -eval($db.PRO_GLN = 0.570 ) -eval($db.PRO_GLU = 0.290 ) -eval($db.PRO_GLY = 0.250 ) -eval($db.PRO_HIS = 0.170 ) -eval($db.PRO_NEP = 0.170 ) -eval($db.PRO_ILE = 0.100 ) -eval($db.PRO_LEU = 0.120 ) -eval($db.PRO_LYS = 0.200 ) -eval($db.PRO_MET = 0.000 ) -eval($db.PRO_PHE = 0.000 ) -eval($db.PRO_PRO = 0.300 ) -eval($db.PRO_SER = 0.190 ) -eval($db.PRO_THR = 0.240 ) -eval($db.PRO_TRP = 0.140 ) -eval($db.PRO_TYR = 0.550 ) -eval($db.PRO_VAL = 0.200 ) -eval($db.SER_ALA = 0.170 ) -eval($db.SER_ARG = 0.380 ) -eval($db.SER_ASN = 0.270 ) -eval($db.SER_ASP = 0.270 ) -eval($db.SER_CYS = 0.580 ) -eval($db.SER_GLN = 0.330 ) -eval($db.SER_GLU = 0.460 ) -eval($db.SER_GLY = 0.340 ) -eval($db.SER_HIS = 0.400 ) -eval($db.SER_NEP = 0.400 ) -eval($db.SER_ILE = 0.100 ) -eval($db.SER_LEU = 0.130 ) -eval($db.SER_LYS = 0.420 ) -eval($db.SER_MET = 0.120 ) -eval($db.SER_PHE = 0.070 ) -eval($db.SER_PRO = 0.190 ) -eval($db.SER_SER = 0.130 ) -eval($db.SER_THR = 0.340 ) -eval($db.SER_TRP = 0.000 ) -eval($db.SER_TYR = 0.140 ) -eval($db.SER_VAL = 0.220 ) -eval($db.THR_ALA = 0.060 ) -eval($db.THR_ARG = 0.120 ) -eval($db.THR_ASN = 0.250 ) -eval($db.THR_ASP = 0.250 ) -eval($db.THR_CYS = 0.000 ) -eval($db.THR_GLN = 0.130 ) -eval($db.THR_GLU = 0.270 ) -eval($db.THR_GLY = 0.240 ) -eval($db.THR_HIS = 0.430 ) -eval($db.THR_NEP = 0.430 ) -eval($db.THR_ILE = 0.060 ) -eval($db.THR_LEU = 0.130 ) -eval($db.THR_LYS = 0.320 ) -eval($db.THR_MET = 0.350 ) -eval($db.THR_PHE = 0.030 ) -eval($db.THR_PRO = 0.240 ) -eval($db.THR_SER = 0.340 ) -eval($db.THR_THR = 0.090 ) -eval($db.THR_TRP = 0.000 ) -eval($db.THR_TYR = 0.200 ) -eval($db.THR_VAL = 0.140 ) -eval($db.TRP_ALA = 0.150 ) -eval($db.TRP_ARG = 0.180 ) -eval($db.TRP_ASN = 0.000 ) -eval($db.TRP_ASP = 0.140 ) -eval($db.TRP_CYS = 0.250 ) -eval($db.TRP_GLN = 0.000 ) -eval($db.TRP_GLU = 0.170 ) -eval($db.TRP_GLY = 0.110 ) -eval($db.TRP_HIS = 0.400 ) -eval($db.TRP_NEP = 0.400 ) -eval($db.TRP_ILE = 0.000 ) -eval($db.TRP_LEU = 0.110 ) -eval($db.TRP_LYS = 0.220 ) -eval($db.TRP_MET = 0.240 ) -eval($db.TRP_PHE = 0.000 ) -eval($db.TRP_PRO = 0.140 ) -eval($db.TRP_SER = 0.000 ) -eval($db.TRP_THR = 0.000 ) -eval($db.TRP_TRP = 0.000 ) -eval($db.TRP_TYR = 0.250 ) -eval($db.TRP_VAL = 0.140 ) -eval($db.TYR_ALA = 0.150 ) -eval($db.TYR_ARG = 0.280 ) -eval($db.TYR_ASN = 0.170 ) -eval($db.TYR_ASP = 0.280 ) -eval($db.TYR_CYS = 0.060 ) -eval($db.TYR_GLN = 0.470 ) -eval($db.TYR_GLU = 0.310 ) -eval($db.TYR_GLY = 0.370 ) -eval($db.TYR_HIS = 0.160 ) -eval($db.TYR_NEP = 0.160 ) -eval($db.TYR_ILE = 0.020 ) -eval($db.TYR_LEU = 0.090 ) -eval($db.TYR_LYS = 0.240 ) -eval($db.TYR_MET = 0.230 ) -eval($db.TYR_PHE = 0.120 ) -eval($db.TYR_PRO = 0.550 ) -eval($db.TYR_SER = 0.140 ) -eval($db.TYR_THR = 0.200 ) -eval($db.TYR_TRP = 0.250 ) -eval($db.TYR_TYR = 0.270 ) -eval($db.TYR_VAL = 0.220 ) -eval($db.VAL_ALA = 0.080 ) -eval($db.VAL_ARG = 0.280 ) -eval($db.VAL_ASN = 0.260 ) -eval($db.VAL_ASP = 0.310 ) -eval($db.VAL_CYS = 0.140 ) -eval($db.VAL_GLN = 0.230 ) -eval($db.VAL_GLU = 0.270 ) -eval($db.VAL_GLY = 0.250 ) -eval($db.VAL_HIS = 0.000 ) -eval($db.VAL_NEP = 0.000 ) -eval($db.VAL_ILE = 0.080 ) -eval($db.VAL_LEU = 0.100 ) -eval($db.VAL_LYS = 0.260 ) -eval($db.VAL_MET = 0.170 ) -eval($db.VAL_PHE = 0.110 ) -eval($db.VAL_PRO = 0.200 ) -eval($db.VAL_SER = 0.220 ) -eval($db.VAL_THR = 0.140 ) -eval($db.VAL_TRP = 0.140 ) -eval($db.VAL_TYR = 0.220 ) -eval($db.VAL_VAL = 0.170 ) -eval($db.ALA_ADE = 0.00 ) -eval($db.ALA_CYT = 0.00 ) -eval($db.ALA_GUA = 0.00 ) -eval($db.ALA_THY = 0.00 ) -eval($db.ARG_ADE = 0.14 ) -eval($db.ARG_CYT = 0.07 ) -eval($db.ARG_GUA = 0.14 ) -eval($db.ARG_THY = 0.08 ) -eval($db.ASN_ADE = 0.19 ) -eval($db.ASN_CYT = 0.09 ) -eval($db.ASN_GUA = 0.22 ) -eval($db.ASN_THY = 0.10 ) -eval($db.ASP_ADE = 0.44 ) -eval($db.ASP_CYT = 0.16 ) -eval($db.ASP_GUA = 0.10 ) -eval($db.ASP_THY = 0.05 ) -eval($db.CYS_ADE = 0.00 ) -eval($db.CYS_CYT = 0.00 ) -eval($db.CYS_GUA = 0.00 ) -eval($db.CYS_THY = 0.00 ) -eval($db.GLN_ADE = 0.15 ) -eval($db.GLN_CYT = 0.19 ) -eval($db.GLN_GUA = 0.15 ) -eval($db.GLN_THY = 0.13 ) -eval($db.GLU_ADE = 0.11 ) -eval($db.GLU_CYT = 0.15 ) -eval($db.GLU_GUA = 0.13 ) -eval($db.GLU_THY = 0.00 ) -eval($db.GLY_ADE = 0.00 ) -eval($db.GLY_CYT = 0.00 ) -eval($db.GLY_GUA = 0.00 ) -eval($db.GLY_THY = 0.00 ) -eval($db.HIS_ADE = 0.10 ) -eval($db.HIS_CYT = 0.14 ) -eval($db.HIS_GUA = 0.18 ) -eval($db.HIS_THY = 0.06 ) -eval($db.ILE_ADE = 0.00 ) -eval($db.ILE_CYT = 0.00 ) -eval($db.ILE_GUA = 0.00 ) -eval($db.ILE_THY = 0.00 ) -eval($db.LEU_ADE = 0.00 ) -eval($db.LEU_CYT = 0.00 ) -eval($db.LEU_GUA = 0.00 ) -eval($db.LEU_THY = 0.00 ) -eval($db.LYS_ADE = 0.31 ) -eval($db.LYS_CYT = 0.15 ) -eval($db.LYS_GUA = 0.29 ) -eval($db.LYS_THY = 0.18 ) -eval($db.MET_ADE = 0.00 ) -eval($db.MET_CYT = 0.00 ) -eval($db.MET_GUA = 0.00 ) -eval($db.MET_THY = 0.00 ) -eval($db.PHE_ADE = 0.00 ) -eval($db.PHE_CYT = 0.00 ) -eval($db.PHE_GUA = 0.00 ) -eval($db.PHE_THY = 0.00 ) -eval($db.PRO_ADE = 0.00 ) -eval($db.PRO_CYT = 0.00 ) -eval($db.PRO_GUA = 0.00 ) -eval($db.PRO_THY = 0.00 ) -eval($db.SER_ADE = 0.30 ) -eval($db.SER_CYT = 0.03 ) -eval($db.SER_GUA = 0.09 ) -eval($db.SER_THY = 0.03 ) -eval($db.THR_ADE = 0.16 ) -eval($db.THR_CYT = 0.16 ) -eval($db.THR_GUA = 0.03 ) -eval($db.THR_THY = 0.05 ) -eval($db.TRP_ADE = 0.00 ) -eval($db.TRP_CYT = 0.00 ) -eval($db.TRP_GUA = 0.00 ) -eval($db.TRP_THY = 0.00 ) -eval($db.TYR_ADE = 0.13 ) -eval($db.TYR_CYT = 0.10 ) -eval($db.TYR_GUA = 0.10 ) -eval($db.TYR_THY = 0.02 ) -eval($db.VAL_ADE = 0.00 ) -eval($db.VAL_CYT = 0.00 ) -eval($db.VAL_GUA = 0.00 ) -eval($db.VAL_THY = 0.00 ) -eval($db.ADE_ALA = 0.00 ) -eval($db.CYT_ALA = 0.00 ) -eval($db.GUA_ALA = 0.00 ) -eval($db.THY_ALA = 0.00 ) -eval($db.ADE_ARG = 0.14 ) -eval($db.CYT_ARG = 0.07 ) -eval($db.GUA_ARG = 0.14 ) -eval($db.THY_ARG = 0.08 ) -eval($db.ADE_ASN = 0.19 ) -eval($db.CYT_ASN = 0.09 ) -eval($db.GUA_ASN = 0.22 ) -eval($db.THY_ASN = 0.10 ) -eval($db.ADE_ASP = 0.44 ) -eval($db.CYT_ASP = 0.16 ) -eval($db.GUA_ASP = 0.10 ) -eval($db.THY_ASP = 0.05 ) -eval($db.ADE_CYS = 0.00 ) -eval($db.CYT_CYS = 0.00 ) -eval($db.GUA_CYS = 0.00 ) -eval($db.THY_CYS = 0.00 ) -eval($db.ADE_GLN = 0.15 ) -eval($db.CYT_GLN = 0.19 ) -eval($db.GUA_GLN = 0.15 ) -eval($db.THY_GLN = 0.13 ) -eval($db.ADE_GLU = 0.11 ) -eval($db.CYT_GLU = 0.15 ) -eval($db.GUA_GLU = 0.13 ) -eval($db.THY_GLU = 0.00 ) -eval($db.ADE_GLY = 0.00 ) -eval($db.CYT_GLY = 0.00 ) -eval($db.GUA_GLY = 0.00 ) -eval($db.THY_GLY = 0.00 ) -eval($db.ADE_HIS = 0.10 ) -eval($db.CYT_HIS = 0.14 ) -eval($db.GUA_HIS = 0.18 ) -eval($db.THY_HIS = 0.06 ) -eval($db.ADE_ILE = 0.00 ) -eval($db.CYT_ILE = 0.00 ) -eval($db.GUA_ILE = 0.00 ) -eval($db.THY_ILE = 0.00 ) -eval($db.ADE_LEU = 0.00 ) -eval($db.CYT_LEU = 0.00 ) -eval($db.GUA_LEU = 0.00 ) -eval($db.THY_LEU = 0.00 ) -eval($db.ADE_LYS = 0.31 ) -eval($db.CYT_LYS = 0.15 ) -eval($db.GUA_LYS = 0.29 ) -eval($db.THY_LYS = 0.18 ) -eval($db.ADE_MET = 0.00 ) -eval($db.CYT_MET = 0.00 ) -eval($db.GUA_MET = 0.00 ) -eval($db.THY_MET = 0.00 ) -eval($db.ADE_PHE = 0.00 ) -eval($db.CYT_PHE = 0.00 ) -eval($db.GUA_PHE = 0.00 ) -eval($db.THY_PHE = 0.00 ) -eval($db.ADE_PRO = 0.00 ) -eval($db.CYT_PRO = 0.00 ) -eval($db.GUA_PRO = 0.00 ) -eval($db.THY_PRO = 0.00 ) -eval($db.ADE_SER = 0.30 ) -eval($db.CYT_SER = 0.03 ) -eval($db.GUA_SER = 0.09 ) -eval($db.THY_SER = 0.03 ) -eval($db.ADE_THR = 0.16 ) -eval($db.CYT_THR = 0.16 ) -eval($db.GUA_THR = 0.03 ) -eval($db.THY_THR = 0.05 ) -eval($db.ADE_TRP = 0.00 ) -eval($db.CYT_TRP = 0.00 ) -eval($db.GUA_TRP = 0.00 ) -eval($db.THY_TRP = 0.00 ) -eval($db.ADE_TYR = 0.13 ) -eval($db.CYT_TYR = 0.10 ) -eval($db.GUA_TYR = 0.10 ) -eval($db.THY_TYR = 0.02 ) -eval($db.ADE_VAL = 0.00 ) -eval($db.CYT_VAL = 0.00 ) -eval($db.GUA_VAL = 0.00 ) -eval($db.THY_VAL = 0.00 ) -eval($db.DP_ALA_ADE = 0.51 ) -eval($db.DP_ALA_CYT = 0.51 ) -eval($db.DP_ALA_GUA = 0.51 ) -eval($db.DP_ALA_THY = 0.51 ) -eval($db.DP_ARG_ADE = 0.34 ) -eval($db.DP_ARG_CYT = 0.34 ) -eval($db.DP_ARG_GUA = 0.34 ) -eval($db.DP_ARG_THY = 0.34 ) -eval($db.DP_ASN_ADE = 0.52 ) -eval($db.DP_ASN_CYT = 0.52 ) -eval($db.DP_ASN_GUA = 0.52 ) -eval($db.DP_ASN_THY = 0.52 ) -eval($db.DP_ASP_ADE = 0.93 ) -eval($db.DP_ASP_CYT = 0.93 ) -eval($db.DP_ASP_GUA = 0.93 ) -eval($db.DP_ASP_THY = 0.93 ) -eval($db.DP_CYS_ADE = 0.43 ) -eval($db.DP_CYS_CYT = 0.43 ) -eval($db.DP_CYS_GUA = 0.43 ) -eval($db.DP_CYS_THY = 0.43 ) -eval($db.DP_GLN_ADE = 0.47 ) -eval($db.DP_GLN_CYT = 0.47 ) -eval($db.DP_GLN_GUA = 0.47 ) -eval($db.DP_GLN_THY = 0.47 ) -eval($db.DP_GLU_ADE = 0.83 ) -eval($db.DP_GLU_CYT = 0.83 ) -eval($db.DP_GLU_GUA = 0.83 ) -eval($db.DP_GLU_THY = 0.83 ) -eval($db.DP_GLY_ADE = 0.38 ) -eval($db.DP_GLY_CYT = 0.38 ) -eval($db.DP_GLY_GUA = 0.38 ) -eval($db.DP_GLY_THY = 0.38 ) -eval($db.DP_HIS_ADE = 0.40 ) -eval($db.DP_HIS_CYT = 0.40 ) -eval($db.DP_HIS_GUA = 0.40 ) -eval($db.DP_HIS_THY = 0.40 ) -eval($db.DP_ILE_ADE = 0.54 ) -eval($db.DP_ILE_CYT = 0.54 ) -eval($db.DP_ILE_GUA = 0.54 ) -eval($db.DP_ILE_THY = 0.54 ) -eval($db.DP_LEU_ADE = 0.38 ) -eval($db.DP_LEU_CYT = 0.38 ) -eval($db.DP_LEU_GUA = 0.38 ) -eval($db.DP_LEU_THY = 0.38 ) -eval($db.DP_LYS_ADE = 0.35 ) -eval($db.DP_LYS_CYT = 0.35 ) -eval($db.DP_LYS_GUA = 0.35 ) -eval($db.DP_LYS_THY = 0.35 ) -eval($db.DP_MET_ADE = 0.50 ) -eval($db.DP_MET_CYT = 0.50 ) -eval($db.DP_MET_GUA = 0.50 ) -eval($db.DP_MET_THY = 0.50 ) -eval($db.DP_PHE_ADE = 0.75 ) -eval($db.DP_PHE_CYT = 0.75 ) -eval($db.DP_PHE_GUA = 0.75 ) -eval($db.DP_PHE_THY = 0.75 ) -eval($db.DP_PRO_ADE = 1.00 ) -eval($db.DP_PRO_CYT = 1.00 ) -eval($db.DP_PRO_GUA = 1.00 ) -eval($db.DP_PRO_THY = 1.00 ) -eval($db.DP_SER_ADE = 0.38 ) -eval($db.DP_SER_CYT = 0.38 ) -eval($db.DP_SER_GUA = 0.38 ) -eval($db.DP_SER_THY = 0.38 ) -eval($db.DP_THR_ADE = 0.40 ) -eval($db.DP_THR_CYT = 0.40 ) -eval($db.DP_THR_GUA = 0.40 ) -eval($db.DP_THR_THY = 0.40 ) -eval($db.DP_TRP_ADE = 0.67 ) -eval($db.DP_TRP_CYT = 0.67 ) -eval($db.DP_TRP_GUA = 0.67 ) -eval($db.DP_TRP_THY = 0.67 ) -eval($db.DP_TYR_ADE = 0.43 ) -eval($db.DP_TYR_CYT = 0.43 ) -eval($db.DP_TYR_GUA = 0.43 ) -eval($db.DP_TYR_THY = 0.43 ) -eval($db.DP_VAL_ADE = 0.50 ) -eval($db.DP_VAL_CYT = 0.50 ) -eval($db.DP_VAL_GUA = 0.50 ) -eval($db.DP_VAL_THY = 0.50 ) -eval($db.DP_ADE_ALA = 0.51 ) -eval($db.DP_CYT_ALA = 0.51 ) -eval($db.DP_GUA_ALA = 0.51 ) -eval($db.DP_THY_ALA = 0.51 ) -eval($db.DP_ADE_ARG = 0.34 ) -eval($db.DP_CYT_ARG = 0.34 ) -eval($db.DP_GUA_ARG = 0.34 ) -eval($db.DP_THY_ARG = 0.34 ) -eval($db.DP_ADE_ASN = 0.52 ) -eval($db.DP_CYT_ASN = 0.52 ) -eval($db.DP_GUA_ASN = 0.52 ) -eval($db.DP_THY_ASN = 0.52 ) -eval($db.DP_ADE_ASP = 0.93 ) -eval($db.DP_CYT_ASP = 0.93 ) -eval($db.DP_GUA_ASP = 0.93 ) -eval($db.DP_THY_ASP = 0.93 ) -eval($db.DP_ADE_CYS = 0.43 ) -eval($db.DP_CYT_CYS = 0.43 ) -eval($db.DP_GUA_CYS = 0.43 ) -eval($db.DP_THY_CYS = 0.43 ) -eval($db.DP_ADE_GLN = 0.47 ) -eval($db.DP_CYT_GLN = 0.47 ) -eval($db.DP_GUA_GLN = 0.47 ) -eval($db.DP_THY_GLN = 0.47 ) -eval($db.DP_ADE_GLU = 0.83 ) -eval($db.DP_CYT_GLU = 0.83 ) -eval($db.DP_GUA_GLU = 0.83 ) -eval($db.DP_THY_GLU = 0.83 ) -eval($db.DP_ADE_GLY = 0.38 ) -eval($db.DP_CYT_GLY = 0.38 ) -eval($db.DP_GUA_GLY = 0.38 ) -eval($db.DP_THY_GLY = 0.38 ) -eval($db.DP_ADE_HIS = 0.40 ) -eval($db.DP_CYT_HIS = 0.40 ) -eval($db.DP_GUA_HIS = 0.40 ) -eval($db.DP_THY_HIS = 0.40 ) -eval($db.DP_ADE_ILE = 0.54 ) -eval($db.DP_CYT_ILE = 0.54 ) -eval($db.DP_GUA_ILE = 0.54 ) -eval($db.DP_THY_ILE = 0.54 ) -eval($db.DP_ADE_LEU = 0.38 ) -eval($db.DP_CYT_LEU = 0.38 ) -eval($db.DP_GUA_LEU = 0.38 ) -eval($db.DP_THY_LEU = 0.38 ) -eval($db.DP_ADE_LYS = 0.35 ) -eval($db.DP_CYT_LYS = 0.35 ) -eval($db.DP_GUA_LYS = 0.35 ) -eval($db.DP_THY_LYS = 0.35 ) -eval($db.DP_ADE_MET = 0.50 ) -eval($db.DP_CYT_MET = 0.50 ) -eval($db.DP_GUA_MET = 0.50 ) -eval($db.DP_THY_MET = 0.50 ) -eval($db.DP_ADE_PHE = 0.75 ) -eval($db.DP_CYT_PHE = 0.75 ) -eval($db.DP_GUA_PHE = 0.75 ) -eval($db.DP_THY_PHE = 0.75 ) -eval($db.DP_ADE_PRO = 1.00 ) -eval($db.DP_CYT_PRO = 1.00 ) -eval($db.DP_GUA_PRO = 1.00 ) -eval($db.DP_THY_PRO = 1.00 ) -eval($db.DP_ADE_SER = 0.38 ) -eval($db.DP_CYT_SER = 0.38 ) -eval($db.DP_GUA_SER = 0.38 ) -eval($db.DP_THY_SER = 0.38 ) -eval($db.DP_ADE_THR = 0.40 ) -eval($db.DP_CYT_THR = 0.40 ) -eval($db.DP_GUA_THR = 0.40 ) -eval($db.DP_THY_THR = 0.40 ) -eval($db.DP_ADE_TRP = 0.67 ) -eval($db.DP_CYT_TRP = 0.67 ) -eval($db.DP_GUA_TRP = 0.67 ) -eval($db.DP_THY_TRP = 0.67 ) -eval($db.DP_ADE_TYR = 0.43 ) -eval($db.DP_CYT_TYR = 0.43 ) -eval($db.DP_GUA_TYR = 0.43 ) -eval($db.DP_THY_TYR = 0.43 ) -eval($db.DP_ADE_VAL = 0.50 ) -eval($db.DP_CYT_VAL = 0.50 ) -eval($db.DP_GUA_VAL = 0.50 ) -eval($db.DP_THY_VAL = 0.50 ) diff --git a/src/haddock/modules/flexref/cns/dbene-methanol.dat b/src/haddock/modules/flexref/cns/dbene-methanol.dat deleted file mode 100644 index 952b27198..000000000 --- a/src/haddock/modules/flexref/cns/dbene-methanol.dat +++ /dev/null @@ -1,105 +0,0 @@ -! dbmethene-methanol.dat -! amino-acids - bases free energies of interaction in methanol from -! de Ruiter, A., & Zagrovic, B. (2015). -! Absolute binding-free energies between standard RNA/DNA nucleobases -! and amino-acid sidechain analogs in different environments. -! Nucleic Acids Research, 43(2), 708-718. http://doi.org/10.1093/nar/gku1344 -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! -eval ($dbmethene.ALA_ADE = 1.2 ) -eval ($dbmethene.ALA_CYT = 2.5 ) -eval ($dbmethene.ALA_GUA = 3.0 ) -eval ($dbmethene.ALA_URI = 1.3 ) -eval ($dbmethene.ALA_THY = 0.9 ) -eval ($dbmethene.ARG_ADE = 2.8 ) -eval ($dbmethene.ARG_CYT = 0.8 ) -eval ($dbmethene.ARG_GUA = -1.7 ) -eval ($dbmethene.ARG_URI = 1.1 ) -eval ($dbmethene.ARG_THY = 0.9 ) -eval ($dbmethene.ASN_ADE = 0.5 ) -eval ($dbmethene.ASN_CYT = 0.8 ) -eval ($dbmethene.ASN_GUA = 2.0 ) -eval ($dbmethene.ASN_URI = 1.4 ) -eval ($dbmethene.ASN_THY = 1.2 ) -eval ($dbmethene.ASP_ADE = 1.8 ) -eval ($dbmethene.ASP_CYT = -1.9 ) -eval ($dbmethene.ASP_GUA = -6.4 ) -eval ($dbmethene.ASP_URI = 3.0 ) -eval ($dbmethene.ASP_THY = 5.3 ) -eval ($dbmethene.CYS_ADE = 0.4 ) -eval ($dbmethene.CYS_CYT = 0.8 ) -eval ($dbmethene.CYS_GUA = 1.7 ) -eval ($dbmethene.CYS_URI = 1.1 ) -eval ($dbmethene.CYS_THY = 1.5 ) -eval ($dbmethene.GLN_ADE = 0.8 ) -eval ($dbmethene.GLN_CYT = 0.8 ) -eval ($dbmethene.GLN_GUA = 1.4 ) -eval ($dbmethene.GLN_URI = 0.8 ) -eval ($dbmethene.GLN_THY = 1.4 ) -eval ($dbmethene.GLU_ADE = 2.3 ) -eval ($dbmethene.GLU_CYT = -1.6 ) -eval ($dbmethene.GLU_GUA = -7.0 ) -eval ($dbmethene.GLU_URI = 3.2 ) -eval ($dbmethene.GLU_THY = 4.7 ) -eval ($dbmethene.HIS_ADE = 0.8 ) !HISH value -eval ($dbmethene.HIS_CYT = -1.7) !HISH value -eval ($dbmethene.HIS_GUA = -1.9 )!HISH value -eval ($dbmethene.HIS_URI = 0.5 ) !HISH value -eval ($dbmethene.HIS_THY = 1.0 ) !HISH value -eval ($dbmethene.ILE_ADE = 0.7 ) -eval ($dbmethene.ILE_CYT = 1.3 ) -eval ($dbmethene.ILE_GUA = 1.2 ) -eval ($dbmethene.ILE_URI = -0.3 ) -eval ($dbmethene.ILE_THY = 0.0 ) -eval ($dbmethene.LEU_ADE = 0.1 ) -eval ($dbmethene.LEU_CYT = 0.2 ) -eval ($dbmethene.LEU_GUA = 1.7 ) -eval ($dbmethene.LEU_URI = 0.8 ) -eval ($dbmethene.LEU_THY = 0.1 ) -eval ($dbmethene.LYS_ADE = 3.0 ) -eval ($dbmethene.LYS_CYT = -0.1 ) -eval ($dbmethene.LYS_GUA = -1.0 ) -eval ($dbmethene.LYS_URI = 1.7 ) -eval ($dbmethene.LYS_THY = 2.2 ) -eval ($dbmethene.MET_ADE = -0.3 ) -eval ($dbmethene.MET_CYT = 1.2 ) -eval ($dbmethene.MET_GUA = -1.0 ) -eval ($dbmethene.MET_URI = -0.3 ) -eval ($dbmethene.MET_THY = -0.9 ) -eval ($dbmethene.PHE_ADE = -0.7 ) -eval ($dbmethene.PHE_CYT = 0.8 ) -eval ($dbmethene.PHE_GUA = -0.1 ) -eval ($dbmethene.PHE_URI = -0.6 ) -eval ($dbmethene.PHE_THY = 1.8 ) -eval ($dbmethene.SER_ADE = 1.1 ) -eval ($dbmethene.SER_CYT = 2.4 ) -eval ($dbmethene.SER_GUA = 3.2 ) -eval ($dbmethene.SER_URI = 2.0 ) -eval ($dbmethene.SER_THY = 3.0 ) -eval ($dbmethene.THR_ADE = 0.4 ) -eval ($dbmethene.THR_CYT = 1.8 ) -eval ($dbmethene.THR_GUA = 2.6 ) -eval ($dbmethene.THR_URI = 1.5 ) -eval ($dbmethene.THR_THY = 2.8 ) -eval ($dbmethene.TRP_ADE = -1.2 ) -eval ($dbmethene.TRP_CYT = 0.2 ) -eval ($dbmethene.TRP_GUA = -0.6 ) -eval ($dbmethene.TRP_URI = 0.1 ) -eval ($dbmethene.TRP_THY = -0.9 ) -eval ($dbmethene.TYR_ADE = 0.1 ) -eval ($dbmethene.TYR_CYT = -0.3 ) -eval ($dbmethene.TYR_GUA = -0.1 ) -eval ($dbmethene.TYR_URI = -0.7 ) -eval ($dbmethene.TYR_THY = -1.0 ) -eval ($dbmethene.VAL_ADE = 0.1 ) -eval ($dbmethene.VAL_CYT = 1.3 ) -eval ($dbmethene.VAL_GUA = 1.9 ) -eval ($dbmethene.VAL_URI = 0.0 ) -eval ($dbmethene.VAL_THY = 0.0 ) diff --git a/src/haddock/modules/flexref/cns/dbene-water.dat b/src/haddock/modules/flexref/cns/dbene-water.dat deleted file mode 100644 index ebb34b45d..000000000 --- a/src/haddock/modules/flexref/cns/dbene-water.dat +++ /dev/null @@ -1,105 +0,0 @@ -! dbwatene-water.dat -! amino-acids - bases free energies of interaction in water from -! de Ruiter, A., & Zagrovic, B. (2015). -! Absolute binding-free energies between standard RNA/DNA nucleobases -! and amino-acid sidechain analogs in different environments. -! Nucleic Acids Research, 43(2), 708-718. http://doi.org/10.1093/nar/gku1344 -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! -eval ($dbwatene.ALA_ADE = 0.2 ) -eval ($dbwatene.ALA_CYT = 0.9 ) -eval ($dbwatene.ALA_GUA = 1.0 ) -eval ($dbwatene.ALA_URI = 0.4 ) -eval ($dbwatene.ALA_THY = 0.3 ) -eval ($dbwatene.ARG_ADE = -0.8 ) -eval ($dbwatene.ARG_CYT = -1.1 ) -eval ($dbwatene.ARG_GUA = -1.2 ) -eval ($dbwatene.ARG_URI = -0.5 ) -eval ($dbwatene.ARG_THY = 0.3 ) -eval ($dbwatene.ASN_ADE = -1.0 ) -eval ($dbwatene.ASN_CYT = -0.7 ) -eval ($dbwatene.ASN_GUA = -0.6 ) -eval ($dbwatene.ASN_URI = -0.7 ) -eval ($dbwatene.ASN_THY = -0.7 ) -eval ($dbwatene.ASP_ADE = 0.5 ) -eval ($dbwatene.ASP_CYT = 2.5 ) -eval ($dbwatene.ASP_GUA = 1.0 ) -eval ($dbwatene.ASP_URI = 2.8 ) -eval ($dbwatene.ASP_THY = 3.7 ) -eval ($dbwatene.CYS_ADE = -1.2 ) -eval ($dbwatene.CYS_CYT = -0.2 ) -eval ($dbwatene.CYS_GUA = -0.9 ) -eval ($dbwatene.CYS_URI = -0.8 ) -eval ($dbwatene.CYS_THY = -0.6 ) -eval ($dbwatene.GLN_ADE = -2.0 ) -eval ($dbwatene.GLN_CYT = -0.5 ) -eval ($dbwatene.GLN_GUA = -2.2 ) -eval ($dbwatene.GLN_URI = -1.5 ) -eval ($dbwatene.GLN_THY = -1.9 ) -eval ($dbwatene.GLU_ADE = 2.0 ) -eval ($dbwatene.GLU_CYT = 1.6 ) -eval ($dbwatene.GLU_GUA = -0.3 ) -eval ($dbwatene.GLU_URI = 2.2 ) -eval ($dbwatene.GLU_THY = 3.7 ) -eval ($dbwatene.HIS_ADE = -0.7 ) !HISH value -eval ($dbwatene.HIS_CYT = 0.0) !HISH value -eval ($dbwatene.HIS_GUA = -0.6 )!HISH value -eval ($dbwatene.HIS_URI = 0.5 ) !HISH value -eval ($dbwatene.HIS_THY = 0.2 ) !HISH value -eval ($dbwatene.ILE_ADE = -2.8 ) -eval ($dbwatene.ILE_CYT = -1.9 ) -eval ($dbwatene.ILE_GUA = -2.6 ) -eval ($dbwatene.ILE_URI = -1.5 ) -eval ($dbwatene.ILE_THY = -1.6 ) -eval ($dbwatene.LEU_ADE = -2.0 ) -eval ($dbwatene.LEU_CYT = -1.9 ) -eval ($dbwatene.LEU_GUA = -2.6 ) -eval ($dbwatene.LEU_URI = -1.8 ) -eval ($dbwatene.LEU_THY = -1.7 ) -eval ($dbwatene.LYS_ADE = 0.9 ) -eval ($dbwatene.LYS_CYT = 1.4 ) -eval ($dbwatene.LYS_GUA = -0.5 ) -eval ($dbwatene.LYS_URI = 0.6 ) -eval ($dbwatene.LYS_THY = 0.9 ) -eval ($dbwatene.MET_ADE = -2.5 ) -eval ($dbwatene.MET_CYT = -1.4 ) -eval ($dbwatene.MET_GUA = -2.2 ) -eval ($dbwatene.MET_URI = -2.1 ) -eval ($dbwatene.MET_THY = -2.3 ) -eval ($dbwatene.PHE_ADE = -3.3 ) -eval ($dbwatene.PHE_CYT = -2.7 ) -eval ($dbwatene.PHE_GUA = -3.6 ) -eval ($dbwatene.PHE_URI = -3.1 ) -eval ($dbwatene.PHE_THY = -3.9 ) -eval ($dbwatene.SER_ADE = 0.3 ) -eval ($dbwatene.SER_CYT = 1.1 ) -eval ($dbwatene.SER_GUA = 1.1 ) -eval ($dbwatene.SER_URI = 0.5 ) -eval ($dbwatene.SER_THY = -0.4 ) -eval ($dbwatene.THR_ADE = -0.5 ) -eval ($dbwatene.THR_CYT = 0.6 ) -eval ($dbwatene.THR_GUA = 0.2 ) -eval ($dbwatene.THR_URI = -0.2 ) -eval ($dbwatene.THR_THY = -0.7 ) -eval ($dbwatene.TRP_ADE = -3.8 ) -eval ($dbwatene.TRP_CYT = -3.6) -eval ($dbwatene.TRP_GUA = -4.8 ) -eval ($dbwatene.TRP_URI = -4.8 ) -eval ($dbwatene.TRP_THY = -6.1 ) -eval ($dbwatene.TYR_ADE = -3.9 ) -eval ($dbwatene.TYR_CYT = -3.3 ) -eval ($dbwatene.TYR_GUA = -5.1 ) -eval ($dbwatene.TYR_URI = -3.3 ) -eval ($dbwatene.TYR_THY = -4.3 ) -eval ($dbwatene.VAL_ADE = -1.5 ) -eval ($dbwatene.VAL_CYT = -1.2 ) -eval ($dbwatene.VAL_GUA = -1.4 ) -eval ($dbwatene.VAL_URI = -1.0 ) -eval ($dbwatene.VAL_THY = -1.1 ) diff --git a/src/haddock/modules/flexref/cns/default.py b/src/haddock/modules/flexref/cns/default.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/haddock/modules/flexref/cns/dmso.pdb b/src/haddock/modules/flexref/cns/dmso.pdb deleted file mode 100644 index 8a8c1e603..000000000 --- a/src/haddock/modules/flexref/cns/dmso.pdb +++ /dev/null @@ -1,852 +0,0 @@ -! dmso.pdb -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! -REMARK DMSO Box, Alexandre Bonvin, Utrecht University, Jan. 2002 -REMARK This is a DMSO cubic box containing 208 molecules taken -REMARK from the GROMACS 3.0 distribution. -REMARK The box size is 29.096 A resulting in the proper -REMARK experimental density of 1.0955 g/cm**3 for DMSO at 298K. -REMARK This box was equilibrated for 1 ns at 300K under NVT -REMARK conditions using the DMSO parameters from Liu et al -REMARK JACS 117:4363 (1995). The total energy of the system is -REMARK -10197 kJ mol-1 -ATOM 1 SD DMS 1 13.280 17.430 7.870 1.00 0.000 -ATOM 2 CD1 DMS 1 14.750 16.810 6.750 1.00 0.000 -ATOM 3 OD DMS 1 13.790 18.670 8.600 1.00 0.000 -ATOM 4 CD2 DMS 1 12.130 17.950 6.380 1.00 0.000 -ATOM 5 SD DMS 2 9.010 10.650 6.690 1.00 0.000 -ATOM 6 CD1 DMS 2 10.220 9.560 7.770 1.00 0.000 -ATOM 7 OD DMS 2 8.480 11.860 7.450 1.00 0.000 -ATOM 8 CD2 DMS 2 10.320 11.160 5.340 1.00 0.000 -ATOM 9 SD DMS 3 21.660 13.440 9.220 1.00 0.000 -ATOM 10 CD1 DMS 3 21.240 12.090 7.870 1.00 0.000 -ATOM 11 OD DMS 3 21.620 12.660 10.530 1.00 0.000 -ATOM 12 CD2 DMS 3 23.500 13.760 8.650 1.00 0.000 -ATOM 13 SD DMS 4 4.640 13.540 9.630 1.00 0.000 -ATOM 14 CD1 DMS 4 5.880 13.380 8.140 1.00 0.000 -ATOM 15 OD DMS 4 5.130 12.610 10.750 1.00 0.000 -ATOM 16 CD2 DMS 4 5.320 15.280 10.190 1.00 0.000 -ATOM 17 SD DMS 5 3.110 18.030 23.680 1.00 0.000 -ATOM 18 CD1 DMS 5 4.070 19.520 22.870 1.00 0.000 -ATOM 19 OD DMS 5 1.650 18.290 24.070 1.00 0.000 -ATOM 20 CD2 DMS 5 3.120 16.730 22.230 1.00 0.000 -ATOM 21 SD DMS 6 0.390 27.450 12.750 1.00 0.000 -ATOM 22 CD1 DMS 6 -0.410 25.830 13.480 1.00 0.000 -ATOM 23 OD DMS 6 -0.670 28.490 12.380 1.00 0.000 -ATOM 24 CD2 DMS 6 1.160 27.840 14.500 1.00 0.000 -ATOM 25 SD DMS 7 9.910 5.240 13.400 1.00 0.000 -ATOM 26 CD1 DMS 7 9.930 7.160 13.750 1.00 0.000 -ATOM 27 OD DMS 7 10.430 5.110 11.970 1.00 0.000 -ATOM 28 CD2 DMS 7 11.470 4.750 14.450 1.00 0.000 -ATOM 29 SD DMS 8 -0.000 12.330 15.660 1.00 0.000 -ATOM 30 CD1 DMS 8 0.150 12.450 17.600 1.00 0.000 -ATOM 31 OD DMS 8 1.250 11.670 15.070 1.00 0.000 -ATOM 32 CD2 DMS 8 -1.390 10.960 15.580 1.00 0.000 -ATOM 33 SD DMS 9 15.760 8.050 22.200 1.00 0.000 -ATOM 34 CD1 DMS 9 17.430 7.650 21.280 1.00 0.000 -ATOM 35 OD DMS 9 15.120 6.700 22.490 1.00 0.000 -ATOM 36 CD2 DMS 9 16.620 8.600 23.870 1.00 0.000 -ATOM 37 SD DMS 10 9.720 0.760 10.370 1.00 0.000 -ATOM 38 CD1 DMS 10 8.910 2.510 10.080 1.00 0.000 -ATOM 39 OD DMS 10 9.040 -0.340 9.560 1.00 0.000 -ATOM 40 CD2 DMS 10 11.340 1.270 9.410 1.00 0.000 -ATOM 41 SD DMS 11 7.760 10.730 23.480 1.00 0.000 -ATOM 42 CD1 DMS 11 7.030 9.190 22.530 1.00 0.000 -ATOM 43 OD DMS 11 8.360 10.200 24.790 1.00 0.000 -ATOM 44 CD2 DMS 11 9.150 11.190 22.200 1.00 0.000 -ATOM 45 SD DMS 12 15.570 27.790 16.690 1.00 0.000 -ATOM 46 CD1 DMS 12 15.610 28.700 18.410 1.00 0.000 -ATOM 47 OD DMS 12 16.130 26.370 16.760 1.00 0.000 -ATOM 48 CD2 DMS 12 13.660 27.420 16.740 1.00 0.000 -ATOM 49 SD DMS 13 3.980 7.990 18.970 1.00 0.000 -ATOM 50 CD1 DMS 13 2.510 9.270 19.030 1.00 0.000 -ATOM 51 OD DMS 13 5.090 8.870 18.400 1.00 0.000 -ATOM 52 CD2 DMS 13 4.130 7.850 20.910 1.00 0.000 -ATOM 53 SD DMS 14 5.340 10.640 2.890 1.00 0.000 -ATOM 54 CD1 DMS 14 4.190 11.710 1.730 1.00 0.000 -ATOM 55 OD DMS 14 6.780 10.400 2.420 1.00 0.000 -ATOM 56 CD2 DMS 14 5.310 11.810 4.440 1.00 0.000 -ATOM 57 SD DMS 15 1.490 13.030 21.090 1.00 0.000 -ATOM 58 CD1 DMS 15 1.760 13.000 23.020 1.00 0.000 -ATOM 59 OD DMS 15 1.070 11.650 20.580 1.00 0.000 -ATOM 60 CD2 DMS 15 0.110 14.410 21.010 1.00 0.000 -ATOM 61 SD DMS 16 10.070 1.570 17.500 1.00 0.000 -ATOM 62 CD1 DMS 16 8.230 1.550 16.840 1.00 0.000 -ATOM 63 OD DMS 16 10.990 1.330 16.310 1.00 0.000 -ATOM 64 CD2 DMS 16 10.270 3.480 17.810 1.00 0.000 -ATOM 65 SD DMS 17 19.100 10.220 4.410 1.00 0.000 -ATOM 66 CD1 DMS 17 19.420 9.210 6.050 1.00 0.000 -ATOM 67 OD DMS 17 20.380 10.200 3.590 1.00 0.000 -ATOM 68 CD2 DMS 17 17.820 8.900 3.750 1.00 0.000 -ATOM 69 SD DMS 18 13.680 15.190 17.050 1.00 0.000 -ATOM 70 CD1 DMS 18 13.490 13.990 18.570 1.00 0.000 -ATOM 71 OD DMS 18 15.180 15.120 16.720 1.00 0.000 -ATOM 72 CD2 DMS 18 12.560 14.380 15.680 1.00 0.000 -ATOM 73 SD DMS 19 20.830 19.070 21.540 1.00 0.000 -ATOM 74 CD1 DMS 19 18.910 19.400 21.460 1.00 0.000 -ATOM 75 OD DMS 19 21.570 20.340 21.120 1.00 0.000 -ATOM 76 CD2 DMS 19 20.890 18.810 23.470 1.00 0.000 -ATOM 77 SD DMS 20 18.460 18.670 1.770 1.00 0.000 -ATOM 78 CD1 DMS 20 17.920 20.040 3.050 1.00 0.000 -ATOM 79 OD DMS 20 19.990 18.700 1.750 1.00 0.000 -ATOM 80 CD2 DMS 20 17.920 17.270 3.020 1.00 0.000 -ATOM 81 SD DMS 21 24.860 26.540 17.270 1.00 0.000 -ATOM 82 CD1 DMS 21 23.410 26.800 15.990 1.00 0.000 -ATOM 83 OD DMS 21 25.850 27.610 16.800 1.00 0.000 -ATOM 84 CD2 DMS 21 23.850 27.310 18.750 1.00 0.000 -ATOM 85 SD DMS 22 18.110 15.290 13.570 1.00 0.000 -ATOM 86 CD1 DMS 22 18.790 16.240 12.010 1.00 0.000 -ATOM 87 OD DMS 22 19.160 14.330 14.140 1.00 0.000 -ATOM 88 CD2 DMS 22 17.910 16.790 14.790 1.00 0.000 -ATOM 89 SD DMS 23 7.740 5.900 16.780 1.00 0.000 -ATOM 90 CD1 DMS 23 6.890 7.550 16.190 1.00 0.000 -ATOM 91 OD DMS 23 9.250 6.110 16.740 1.00 0.000 -ATOM 92 CD2 DMS 23 7.310 6.310 18.640 1.00 0.000 -ATOM 93 SD DMS 24 24.110 1.840 6.900 1.00 0.000 -ATOM 94 CD1 DMS 24 24.200 3.670 7.560 1.00 0.000 -ATOM 95 OD DMS 24 23.310 1.840 5.590 1.00 0.000 -ATOM 96 CD2 DMS 24 25.910 1.240 6.440 1.00 0.000 -ATOM 97 SD DMS 25 3.430 5.060 10.230 1.00 0.000 -ATOM 98 CD1 DMS 25 3.700 6.780 9.360 1.00 0.000 -ATOM 99 OD DMS 25 2.940 4.050 9.190 1.00 0.000 -ATOM 100 CD2 DMS 25 5.350 4.910 10.520 1.00 0.000 -ATOM 101 SD DMS 26 18.890 5.200 9.120 1.00 0.000 -ATOM 102 CD1 DMS 26 19.530 6.910 8.430 1.00 0.000 -ATOM 103 OD DMS 26 17.550 4.760 8.520 1.00 0.000 -ATOM 104 CD2 DMS 26 20.340 4.260 8.220 1.00 0.000 -ATOM 105 SD DMS 27 20.970 12.420 15.540 1.00 0.000 -ATOM 106 CD1 DMS 27 21.000 11.940 13.660 1.00 0.000 -ATOM 107 OD DMS 27 21.870 11.520 16.390 1.00 0.000 -ATOM 108 CD2 DMS 27 22.080 14.010 15.320 1.00 0.000 -ATOM 109 SD DMS 28 27.090 3.580 10.830 1.00 0.000 -ATOM 110 CD1 DMS 28 28.640 4.190 9.820 1.00 0.000 -ATOM 111 OD DMS 28 25.860 4.180 10.140 1.00 0.000 -ATOM 112 CD2 DMS 28 27.390 1.790 10.110 1.00 0.000 -ATOM 113 SD DMS 29 5.760 3.460 22.180 1.00 0.000 -ATOM 114 CD1 DMS 29 5.610 2.640 23.940 1.00 0.000 -ATOM 115 OD DMS 29 4.330 3.330 21.650 1.00 0.000 -ATOM 116 CD2 DMS 29 6.020 5.240 22.930 1.00 0.000 -ATOM 117 SD DMS 30 16.250 18.720 24.810 1.00 0.000 -ATOM 118 CD1 DMS 30 16.960 17.350 26.000 1.00 0.000 -ATOM 119 OD DMS 30 17.350 19.340 23.940 1.00 0.000 -ATOM 120 CD2 DMS 30 15.310 17.450 23.660 1.00 0.000 -ATOM 121 SD DMS 31 6.360 23.150 12.420 1.00 0.000 -ATOM 122 CD1 DMS 31 7.820 22.730 13.640 1.00 0.000 -ATOM 123 OD DMS 31 6.540 24.560 11.850 1.00 0.000 -ATOM 124 CD2 DMS 31 6.930 21.950 10.990 1.00 0.000 -ATOM 125 SD DMS 32 11.230 2.860 22.070 1.00 0.000 -ATOM 126 CD1 DMS 32 9.300 2.920 22.390 1.00 0.000 -ATOM 127 OD DMS 32 11.550 3.720 20.840 1.00 0.000 -ATOM 128 CD2 DMS 32 11.590 4.010 23.610 1.00 0.000 -ATOM 129 SD DMS 33 25.460 24.730 21.010 1.00 0.000 -ATOM 130 CD1 DMS 33 24.500 26.170 21.920 1.00 0.000 -ATOM 131 OD DMS 33 24.730 24.510 19.680 1.00 0.000 -ATOM 132 CD2 DMS 33 27.110 25.700 20.670 1.00 0.000 -ATOM 133 SD DMS 34 25.770 12.850 12.760 1.00 0.000 -ATOM 134 CD1 DMS 34 26.600 12.850 11.000 1.00 0.000 -ATOM 135 OD DMS 34 24.960 14.150 12.820 1.00 0.000 -ATOM 136 CD2 DMS 34 24.440 11.510 12.260 1.00 0.000 -ATOM 137 SD DMS 35 21.620 2.090 11.640 1.00 0.000 -ATOM 138 CD1 DMS 35 23.090 3.360 11.770 1.00 0.000 -ATOM 139 OD DMS 35 20.330 2.890 11.430 1.00 0.000 -ATOM 140 CD2 DMS 35 22.110 1.380 9.890 1.00 0.000 -ATOM 141 SD DMS 36 12.780 8.130 24.760 1.00 0.000 -ATOM 142 CD1 DMS 36 13.420 8.760 26.490 1.00 0.000 -ATOM 143 OD DMS 36 11.970 6.850 24.960 1.00 0.000 -ATOM 144 CD2 DMS 36 11.600 9.660 24.470 1.00 0.000 -ATOM 145 SD DMS 37 2.890 7.640 13.890 1.00 0.000 -ATOM 146 CD1 DMS 37 3.440 8.840 12.450 1.00 0.000 -ATOM 147 OD DMS 37 3.810 6.440 14.040 1.00 0.000 -ATOM 148 CD2 DMS 37 3.310 8.730 15.450 1.00 0.000 -ATOM 149 SD DMS 38 19.690 9.030 19.370 1.00 0.000 -ATOM 150 CD1 DMS 38 19.300 8.680 17.490 1.00 0.000 -ATOM 151 OD DMS 38 20.960 8.210 19.610 1.00 0.000 -ATOM 152 CD2 DMS 38 20.280 10.880 19.180 1.00 0.000 -ATOM 153 SD DMS 39 7.210 17.240 3.460 1.00 0.000 -ATOM 154 CD1 DMS 39 7.240 15.950 4.920 1.00 0.000 -ATOM 155 OD DMS 39 6.560 18.510 4.010 1.00 0.000 -ATOM 156 CD2 DMS 39 9.080 17.740 3.220 1.00 0.000 -ATOM 157 SD DMS 40 8.980 27.100 15.190 1.00 0.000 -ATOM 158 CD1 DMS 40 8.390 26.840 13.350 1.00 0.000 -ATOM 159 OD DMS 40 9.000 25.700 15.810 1.00 0.000 -ATOM 160 CD2 DMS 40 10.870 27.370 14.810 1.00 0.000 -ATOM 161 SD DMS 41 24.140 6.440 22.860 1.00 0.000 -ATOM 162 CD1 DMS 41 23.230 7.650 21.640 1.00 0.000 -ATOM 163 OD DMS 41 23.390 6.510 24.190 1.00 0.000 -ATOM 164 CD2 DMS 41 23.830 4.760 21.920 1.00 0.000 -ATOM 165 SD DMS 42 11.810 13.940 3.360 1.00 0.000 -ATOM 166 CD1 DMS 42 13.510 14.760 3.860 1.00 0.000 -ATOM 167 OD DMS 42 10.580 14.740 3.800 1.00 0.000 -ATOM 168 CD2 DMS 42 11.920 14.280 1.440 1.00 0.000 -ATOM 169 SD DMS 43 16.690 1.010 22.090 1.00 0.000 -ATOM 170 CD1 DMS 43 17.030 0.790 24.000 1.00 0.000 -ATOM 171 OD DMS 43 15.820 -0.170 21.670 1.00 0.000 -ATOM 172 CD2 DMS 43 15.550 2.590 22.090 1.00 0.000 -ATOM 173 SD DMS 44 26.910 19.520 19.630 1.00 0.000 -ATOM 174 CD1 DMS 44 24.990 19.790 19.880 1.00 0.000 -ATOM 175 OD DMS 44 27.210 20.060 18.240 1.00 0.000 -ATOM 176 CD2 DMS 44 27.520 20.690 21.060 1.00 0.000 -ATOM 177 SD DMS 45 5.380 27.050 3.380 1.00 0.000 -ATOM 178 CD1 DMS 45 5.340 28.130 5.000 1.00 0.000 -ATOM 179 OD DMS 45 6.490 25.990 3.420 1.00 0.000 -ATOM 180 CD2 DMS 45 3.760 26.070 3.850 1.00 0.000 -ATOM 181 SD DMS 46 14.580 15.870 10.810 1.00 0.000 -ATOM 182 CD1 DMS 46 15.670 17.490 10.710 1.00 0.000 -ATOM 183 OD DMS 46 15.590 14.770 10.480 1.00 0.000 -ATOM 184 CD2 DMS 46 14.210 15.830 12.720 1.00 0.000 -ATOM 185 SD DMS 47 13.090 12.000 12.720 1.00 0.000 -ATOM 186 CD1 DMS 47 14.930 11.600 12.210 1.00 0.000 -ATOM 187 OD DMS 47 12.380 12.770 11.610 1.00 0.000 -ATOM 188 CD2 DMS 47 12.310 10.220 12.860 1.00 0.000 -ATOM 189 SD DMS 48 23.710 17.200 10.150 1.00 0.000 -ATOM 190 CD1 DMS 48 25.530 16.520 10.110 1.00 0.000 -ATOM 191 OD DMS 48 23.110 16.640 8.860 1.00 0.000 -ATOM 192 CD2 DMS 48 22.920 16.230 11.650 1.00 0.000 -ATOM 193 SD DMS 49 15.520 24.690 22.260 1.00 0.000 -ATOM 194 CD1 DMS 49 16.500 25.910 23.420 1.00 0.000 -ATOM 195 OD DMS 49 14.050 24.660 22.680 1.00 0.000 -ATOM 196 CD2 DMS 49 15.660 25.670 20.580 1.00 0.000 -ATOM 197 SD DMS 50 20.200 7.150 12.830 1.00 0.000 -ATOM 198 CD1 DMS 50 22.020 6.670 12.340 1.00 0.000 -ATOM 199 OD DMS 50 19.560 7.540 11.490 1.00 0.000 -ATOM 200 CD2 DMS 50 19.390 5.430 13.270 1.00 0.000 -ATOM 201 SD DMS 51 26.250 11.530 19.550 1.00 0.000 -ATOM 202 CD1 DMS 51 24.340 11.140 19.550 1.00 0.000 -ATOM 203 OD DMS 51 26.400 12.900 18.900 1.00 0.000 -ATOM 204 CD2 DMS 51 26.540 11.860 21.450 1.00 0.000 -ATOM 205 SD DMS 52 26.590 13.840 26.850 1.00 0.000 -ATOM 206 CD1 DMS 52 27.870 14.020 28.300 1.00 0.000 -ATOM 207 OD DMS 52 26.620 15.260 26.290 1.00 0.000 -ATOM 208 CD2 DMS 52 27.840 12.740 25.850 1.00 0.000 -ATOM 209 SD DMS 53 14.710 19.000 14.330 1.00 0.000 -ATOM 210 CD1 DMS 53 13.360 18.670 15.690 1.00 0.000 -ATOM 211 OD DMS 53 13.990 19.610 13.120 1.00 0.000 -ATOM 212 CD2 DMS 53 15.470 20.380 15.470 1.00 0.000 -ATOM 213 SD DMS 54 22.690 19.420 15.950 1.00 0.000 -ATOM 214 CD1 DMS 54 24.440 19.950 16.630 1.00 0.000 -ATOM 215 OD DMS 54 22.000 20.700 15.470 1.00 0.000 -ATOM 216 CD2 DMS 54 23.460 18.450 14.440 1.00 0.000 -ATOM 217 SD DMS 55 2.200 14.990 13.270 1.00 0.000 -ATOM 218 CD1 DMS 55 2.330 13.310 12.280 1.00 0.000 -ATOM 219 OD DMS 55 2.900 16.100 12.480 1.00 0.000 -ATOM 220 CD2 DMS 55 0.310 15.400 13.110 1.00 0.000 -ATOM 221 SD DMS 56 17.140 21.830 19.150 1.00 0.000 -ATOM 222 CD1 DMS 56 16.550 23.310 18.030 1.00 0.000 -ATOM 223 OD DMS 56 16.070 20.740 19.300 1.00 0.000 -ATOM 224 CD2 DMS 56 18.470 21.200 17.870 1.00 0.000 -ATOM 225 SD DMS 57 15.190 3.210 10.880 1.00 0.000 -ATOM 226 CD1 DMS 57 14.810 3.340 8.970 1.00 0.000 -ATOM 227 OD DMS 57 14.120 2.290 11.490 1.00 0.000 -ATOM 228 CD2 DMS 57 16.790 2.110 10.840 1.00 0.000 -ATOM 229 SD DMS 58 14.280 9.980 2.480 1.00 0.000 -ATOM 230 CD1 DMS 58 15.390 10.090 0.880 1.00 0.000 -ATOM 231 OD DMS 58 14.770 10.950 3.560 1.00 0.000 -ATOM 232 CD2 DMS 58 12.780 10.930 1.690 1.00 0.000 -ATOM 233 SD DMS 59 2.220 2.320 0.300 1.00 0.000 -ATOM 234 CD1 DMS 59 0.640 3.390 0.690 1.00 0.000 -ATOM 235 OD DMS 59 3.080 3.150 -0.650 1.00 0.000 -ATOM 236 CD2 DMS 59 3.060 2.870 1.970 1.00 0.000 -ATOM 237 SD DMS 60 24.430 20.790 9.160 1.00 0.000 -ATOM 238 CD1 DMS 60 25.810 20.580 7.800 1.00 0.000 -ATOM 239 OD DMS 60 24.340 22.290 9.470 1.00 0.000 -ATOM 240 CD2 DMS 60 22.970 20.240 7.990 1.00 0.000 -ATOM 241 SD DMS 61 12.600 20.430 22.670 1.00 0.000 -ATOM 242 CD1 DMS 61 12.200 21.900 23.890 1.00 0.000 -ATOM 243 OD DMS 61 11.770 20.710 21.420 1.00 0.000 -ATOM 244 CD2 DMS 61 14.370 21.010 22.090 1.00 0.000 -ATOM 245 SD DMS 62 8.840 4.910 26.150 1.00 0.000 -ATOM 246 CD1 DMS 62 10.160 5.630 27.380 1.00 0.000 -ATOM 247 OD DMS 62 7.520 4.630 26.880 1.00 0.000 -ATOM 248 CD2 DMS 62 8.550 6.530 25.110 1.00 0.000 -ATOM 249 SD DMS 63 1.360 0.470 25.810 1.00 0.000 -ATOM 250 CD1 DMS 63 2.470 1.840 24.970 1.00 0.000 -ATOM 251 OD DMS 63 -0.050 1.020 25.990 1.00 0.000 -ATOM 252 CD2 DMS 63 1.310 -0.540 24.140 1.00 0.000 -ATOM 253 SD DMS 64 2.190 27.640 8.260 1.00 0.000 -ATOM 254 CD1 DMS 64 1.340 29.250 8.970 1.00 0.000 -ATOM 255 OD DMS 64 3.690 27.820 8.530 1.00 0.000 -ATOM 256 CD2 DMS 64 1.330 26.430 9.520 1.00 0.000 -ATOM 257 SD DMS 65 0.340 9.060 5.060 1.00 0.000 -ATOM 258 CD1 DMS 65 -0.990 8.790 3.660 1.00 0.000 -ATOM 259 OD DMS 65 1.250 7.830 5.090 1.00 0.000 -ATOM 260 CD2 DMS 65 1.520 10.320 4.170 1.00 0.000 -ATOM 261 SD DMS 66 17.950 23.840 13.490 1.00 0.000 -ATOM 262 CD1 DMS 66 16.800 25.400 13.330 1.00 0.000 -ATOM 263 OD DMS 66 18.610 23.600 12.130 1.00 0.000 -ATOM 264 CD2 DMS 66 19.330 24.640 14.610 1.00 0.000 -ATOM 265 SD DMS 67 10.270 20.470 5.250 1.00 0.000 -ATOM 266 CD1 DMS 67 8.370 20.880 5.040 1.00 0.000 -ATOM 267 OD DMS 67 10.810 20.280 3.830 1.00 0.000 -ATOM 268 CD2 DMS 67 10.760 22.260 5.850 1.00 0.000 -ATOM 269 SD DMS 68 17.290 12.350 21.410 1.00 0.000 -ATOM 270 CD1 DMS 68 17.250 14.230 21.940 1.00 0.000 -ATOM 271 OD DMS 68 17.680 11.460 22.600 1.00 0.000 -ATOM 272 CD2 DMS 68 15.390 12.160 21.020 1.00 0.000 -ATOM 273 SD DMS 69 3.710 0.860 17.270 1.00 0.000 -ATOM 274 CD1 DMS 69 4.730 -0.300 16.080 1.00 0.000 -ATOM 275 OD DMS 69 2.660 0.000 17.980 1.00 0.000 -ATOM 276 CD2 DMS 69 5.210 1.290 18.440 1.00 0.000 -ATOM 277 SD DMS 70 27.350 7.430 20.320 1.00 0.000 -ATOM 278 CD1 DMS 70 28.040 8.160 18.650 1.00 0.000 -ATOM 279 OD DMS 70 26.230 8.350 20.820 1.00 0.000 -ATOM 280 CD2 DMS 70 26.610 5.870 19.410 1.00 0.000 -ATOM 281 SD DMS 71 23.040 7.830 16.210 1.00 0.000 -ATOM 282 CD1 DMS 71 24.530 9.050 16.500 1.00 0.000 -ATOM 283 OD DMS 71 23.480 6.680 15.300 1.00 0.000 -ATOM 284 CD2 DMS 71 23.150 6.870 17.900 1.00 0.000 -ATOM 285 SD DMS 72 27.750 13.130 5.670 1.00 0.000 -ATOM 286 CD1 DMS 72 25.880 12.600 5.690 1.00 0.000 -ATOM 287 OD DMS 72 28.520 12.110 6.530 1.00 0.000 -ATOM 288 CD2 DMS 72 28.230 12.770 3.820 1.00 0.000 -ATOM 289 SD DMS 73 0.790 22.870 7.310 1.00 0.000 -ATOM 290 CD1 DMS 73 0.150 24.420 6.310 1.00 0.000 -ATOM 291 OD DMS 73 2.260 23.060 7.680 1.00 0.000 -ATOM 292 CD2 DMS 73 -0.300 23.390 8.840 1.00 0.000 -ATOM 293 SD DMS 74 21.180 1.920 26.770 1.00 0.000 -ATOM 294 CD1 DMS 74 22.070 3.640 27.080 1.00 0.000 -ATOM 295 OD DMS 74 21.660 0.960 27.860 1.00 0.000 -ATOM 296 CD2 DMS 74 19.290 2.230 27.120 1.00 0.000 -ATOM 297 SD DMS 75 26.720 16.330 22.080 1.00 0.000 -ATOM 298 CD1 DMS 75 25.810 15.030 23.210 1.00 0.000 -ATOM 299 OD DMS 75 25.710 17.390 21.640 1.00 0.000 -ATOM 300 CD2 DMS 75 27.820 17.090 23.500 1.00 0.000 -ATOM 301 SD DMS 76 13.630 25.280 4.030 1.00 0.000 -ATOM 302 CD1 DMS 76 14.210 27.030 4.660 1.00 0.000 -ATOM 303 OD DMS 76 13.110 24.420 5.180 1.00 0.000 -ATOM 304 CD2 DMS 76 12.090 25.890 3.010 1.00 0.000 -ATOM 305 SD DMS 77 19.610 7.000 28.440 1.00 0.000 -ATOM 306 CD1 DMS 77 17.720 6.660 28.770 1.00 0.000 -ATOM 307 OD DMS 77 19.890 7.790 27.160 1.00 0.000 -ATOM 308 CD2 DMS 77 20.000 8.180 29.940 1.00 0.000 -ATOM 309 SD DMS 78 25.940 6.430 28.610 1.00 0.000 -ATOM 310 CD1 DMS 78 26.460 7.250 26.930 1.00 0.000 -ATOM 311 OD DMS 78 26.600 7.140 29.800 1.00 0.000 -ATOM 312 CD2 DMS 78 24.130 7.160 28.730 1.00 0.000 -ATOM 313 SD DMS 79 7.310 9.970 12.160 1.00 0.000 -ATOM 314 CD1 DMS 79 7.270 8.230 11.280 1.00 0.000 -ATOM 315 OD DMS 79 8.410 10.070 13.230 1.00 0.000 -ATOM 316 CD2 DMS 79 8.140 10.790 10.600 1.00 0.000 -ATOM 317 SD DMS 80 21.710 20.250 27.700 1.00 0.000 -ATOM 318 CD1 DMS 80 20.430 18.780 27.700 1.00 0.000 -ATOM 319 OD DMS 80 21.030 21.470 28.330 1.00 0.000 -ATOM 320 CD2 DMS 80 22.940 19.490 29.000 1.00 0.000 -ATOM 321 SD DMS 81 22.880 8.340 5.200 1.00 0.000 -ATOM 322 CD1 DMS 81 23.770 7.350 3.770 1.00 0.000 -ATOM 323 OD DMS 81 22.590 7.510 6.450 1.00 0.000 -ATOM 324 CD2 DMS 81 24.360 9.560 5.570 1.00 0.000 -ATOM 325 SD DMS 82 5.470 18.890 28.080 1.00 0.000 -ATOM 326 CD1 DMS 82 6.660 17.580 28.890 1.00 0.000 -ATOM 327 OD DMS 82 4.430 18.140 27.240 1.00 0.000 -ATOM 328 CD2 DMS 82 4.810 19.400 29.840 1.00 0.000 -ATOM 329 SD DMS 83 23.610 16.760 5.610 1.00 0.000 -ATOM 330 CD1 DMS 83 21.780 16.360 6.150 1.00 0.000 -ATOM 331 OD DMS 83 24.020 15.550 4.760 1.00 0.000 -ATOM 332 CD2 DMS 83 23.070 18.250 4.480 1.00 0.000 -ATOM 333 SD DMS 84 4.310 19.060 13.250 1.00 0.000 -ATOM 334 CD1 DMS 84 4.830 19.380 15.100 1.00 0.000 -ATOM 335 OD DMS 84 3.870 20.430 12.730 1.00 0.000 -ATOM 336 CD2 DMS 84 6.110 18.770 12.560 1.00 0.000 -ATOM 337 SD DMS 85 3.170 26.650 0.600 1.00 0.000 -ATOM 338 CD1 DMS 85 1.970 26.810 -0.930 1.00 0.000 -ATOM 339 OD DMS 85 3.910 25.310 0.570 1.00 0.000 -ATOM 340 CD2 DMS 85 4.260 28.060 -0.190 1.00 0.000 -ATOM 341 SD DMS 86 25.340 28.960 28.930 1.00 0.000 -ATOM 342 CD1 DMS 86 25.010 30.230 27.500 1.00 0.000 -ATOM 343 OD DMS 86 25.110 27.540 28.400 1.00 0.000 -ATOM 344 CD2 DMS 86 27.280 29.120 29.010 1.00 0.000 -ATOM 345 SD DMS 87 21.530 23.230 3.980 1.00 0.000 -ATOM 346 CD1 DMS 87 20.620 22.620 5.590 1.00 0.000 -ATOM 347 OD DMS 87 22.890 23.810 4.400 1.00 0.000 -ATOM 348 CD2 DMS 87 21.890 21.630 2.930 1.00 0.000 -ATOM 349 SD DMS 88 1.070 22.880 26.730 1.00 0.000 -ATOM 350 CD1 DMS 88 -0.760 22.680 26.080 1.00 0.000 -ATOM 351 OD DMS 88 1.150 22.780 28.260 1.00 0.000 -ATOM 352 CD2 DMS 88 1.610 21.110 26.120 1.00 0.000 -ATOM 353 SD DMS 89 28.750 4.250 6.300 1.00 0.000 -ATOM 354 CD1 DMS 89 27.390 5.620 6.520 1.00 0.000 -ATOM 355 OD DMS 89 28.880 3.780 4.850 1.00 0.000 -ATOM 356 CD2 DMS 89 30.350 5.270 6.750 1.00 0.000 -ATOM 357 SD DMS 90 22.080 23.970 18.210 1.00 0.000 -ATOM 358 CD1 DMS 90 23.440 23.490 16.890 1.00 0.000 -ATOM 359 OD DMS 90 21.020 24.680 17.380 1.00 0.000 -ATOM 360 CD2 DMS 90 21.530 22.130 18.570 1.00 0.000 -ATOM 361 SD DMS 91 3.530 27.590 20.760 1.00 0.000 -ATOM 362 CD1 DMS 91 3.240 29.460 21.210 1.00 0.000 -ATOM 363 OD DMS 91 3.990 26.810 21.990 1.00 0.000 -ATOM 364 CD2 DMS 91 1.670 27.060 20.490 1.00 0.000 -ATOM 365 SD DMS 92 20.260 19.920 10.810 1.00 0.000 -ATOM 366 CD1 DMS 92 19.960 20.300 12.700 1.00 0.000 -ATOM 367 OD DMS 92 19.110 19.010 10.380 1.00 0.000 -ATOM 368 CD2 DMS 92 20.260 21.730 10.080 1.00 0.000 -ATOM 369 SD DMS 93 14.700 12.510 26.580 1.00 0.000 -ATOM 370 CD1 DMS 93 16.350 11.890 25.740 1.00 0.000 -ATOM 371 OD DMS 93 14.910 12.390 28.090 1.00 0.000 -ATOM 372 CD2 DMS 93 14.470 14.360 26.020 1.00 0.000 -ATOM 373 SD DMS 94 28.180 18.400 15.290 1.00 0.000 -ATOM 374 CD1 DMS 94 27.120 18.620 13.670 1.00 0.000 -ATOM 375 OD DMS 94 28.470 16.900 15.450 1.00 0.000 -ATOM 376 CD2 DMS 94 29.810 19.090 14.470 1.00 0.000 -ATOM 377 SD DMS 95 7.410 14.110 1.110 1.00 0.000 -ATOM 378 CD1 DMS 95 7.170 12.540 -0.030 1.00 0.000 -ATOM 379 OD DMS 95 6.090 14.780 1.490 1.00 0.000 -ATOM 380 CD2 DMS 95 8.000 13.310 2.790 1.00 0.000 -ATOM 381 SD DMS 96 3.360 14.650 4.130 1.00 0.000 -ATOM 382 CD1 DMS 96 2.020 15.400 5.340 1.00 0.000 -ATOM 383 OD DMS 96 2.870 13.220 3.910 1.00 0.000 -ATOM 384 CD2 DMS 96 2.660 15.790 2.710 1.00 0.000 -ATOM 385 SD DMS 97 10.950 1.470 26.940 1.00 0.000 -ATOM 386 CD1 DMS 97 12.330 0.380 26.110 1.00 0.000 -ATOM 387 OD DMS 97 10.590 2.640 26.020 1.00 0.000 -ATOM 388 CD2 DMS 97 9.480 0.220 26.640 1.00 0.000 -ATOM 389 SD DMS 98 19.850 23.140 21.910 1.00 0.000 -ATOM 390 CD1 DMS 98 20.310 22.290 23.600 1.00 0.000 -ATOM 391 OD DMS 98 18.760 24.180 22.150 1.00 0.000 -ATOM 392 CD2 DMS 98 21.520 24.160 21.890 1.00 0.000 -ATOM 393 SD DMS 99 26.600 27.250 9.690 1.00 0.000 -ATOM 394 CD1 DMS 99 26.110 25.390 10.000 1.00 0.000 -ATOM 395 OD DMS 99 27.550 27.140 8.500 1.00 0.000 -ATOM 396 CD2 DMS 99 24.840 27.890 9.130 1.00 0.000 -ATOM 397 SD DMS 100 7.060 1.920 0.330 1.00 0.000 -ATOM 398 CD1 DMS 100 7.500 3.790 0.680 1.00 0.000 -ATOM 399 OD DMS 100 5.980 1.350 1.250 1.00 0.000 -ATOM 400 CD2 DMS 100 6.300 1.860 -1.460 1.00 0.000 -ATOM 401 SD DMS 101 2.750 5.840 25.570 1.00 0.000 -ATOM 402 CD1 DMS 101 4.300 5.420 26.680 1.00 0.000 -ATOM 403 OD DMS 101 2.880 4.800 24.450 1.00 0.000 -ATOM 404 CD2 DMS 101 1.350 5.450 26.860 1.00 0.000 -ATOM 405 SD DMS 102 15.380 4.430 27.130 1.00 0.000 -ATOM 406 CD1 DMS 102 13.800 3.360 27.530 1.00 0.000 -ATOM 407 OD DMS 102 16.580 3.540 26.800 1.00 0.000 -ATOM 408 CD2 DMS 102 14.870 5.290 25.450 1.00 0.000 -ATOM 409 SD DMS 103 9.750 19.350 11.120 1.00 0.000 -ATOM 410 CD1 DMS 103 11.320 18.500 11.900 1.00 0.000 -ATOM 411 OD DMS 103 9.970 20.850 11.280 1.00 0.000 -ATOM 412 CD2 DMS 103 10.070 19.010 9.230 1.00 0.000 -ATOM 413 SD DMS 104 4.780 5.300 5.480 1.00 0.000 -ATOM 414 CD1 DMS 104 6.030 5.590 6.950 1.00 0.000 -ATOM 415 OD DMS 104 5.350 5.530 4.070 1.00 0.000 -ATOM 416 CD2 DMS 104 4.690 3.360 5.680 1.00 0.000 -ATOM 417 SD DMS 105 21.470 26.230 7.860 1.00 0.000 -ATOM 418 CD1 DMS 105 22.760 24.830 8.290 1.00 0.000 -ATOM 419 OD DMS 105 21.830 27.370 8.820 1.00 0.000 -ATOM 420 CD2 DMS 105 22.010 26.750 6.070 1.00 0.000 -ATOM 421 SD DMS 106 19.920 27.740 20.960 1.00 0.000 -ATOM 422 CD1 DMS 106 19.150 26.310 19.870 1.00 0.000 -ATOM 423 OD DMS 106 21.440 27.590 20.990 1.00 0.000 -ATOM 424 CD2 DMS 106 19.530 29.310 19.880 1.00 0.000 -ATOM 425 SD DMS 107 18.520 4.460 23.450 1.00 0.000 -ATOM 426 CD1 DMS 107 20.040 5.380 22.640 1.00 0.000 -ATOM 427 OD DMS 107 19.070 3.080 23.830 1.00 0.000 -ATOM 428 CD2 DMS 107 18.550 5.490 25.110 1.00 0.000 -ATOM 429 SD DMS 108 1.440 19.730 4.900 1.00 0.000 -ATOM 430 CD1 DMS 108 0.760 19.690 3.070 1.00 0.000 -ATOM 431 OD DMS 108 1.440 18.300 5.450 1.00 0.000 -ATOM 432 CD2 DMS 108 3.230 20.120 4.230 1.00 0.000 -ATOM 433 SD DMS 109 23.130 0.640 23.000 1.00 0.000 -ATOM 434 CD1 DMS 109 23.650 0.930 21.140 1.00 0.000 -ATOM 435 OD DMS 109 24.000 1.540 23.870 1.00 0.000 -ATOM 436 CD2 DMS 109 21.330 1.390 22.920 1.00 0.000 -ATOM 437 SD DMS 110 3.710 7.530 1.150 1.00 0.000 -ATOM 438 CD1 DMS 110 4.840 5.940 1.100 1.00 0.000 -ATOM 439 OD DMS 110 3.150 7.960 -0.200 1.00 0.000 -ATOM 440 CD2 DMS 110 2.220 6.710 2.110 1.00 0.000 -ATOM 441 SD DMS 111 9.580 15.850 17.440 1.00 0.000 -ATOM 442 CD1 DMS 111 7.860 16.750 17.260 1.00 0.000 -ATOM 443 OD DMS 111 10.560 16.740 18.210 1.00 0.000 -ATOM 444 CD2 DMS 111 8.850 14.620 18.760 1.00 0.000 -ATOM 445 SD DMS 112 14.960 6.550 6.190 1.00 0.000 -ATOM 446 CD1 DMS 112 13.370 7.600 5.790 1.00 0.000 -ATOM 447 OD DMS 112 15.630 6.240 4.840 1.00 0.000 -ATOM 448 CD2 DMS 112 15.970 7.910 7.150 1.00 0.000 -ATOM 449 SD DMS 113 26.750 7.970 12.190 1.00 0.000 -ATOM 450 CD1 DMS 113 27.000 7.260 13.990 1.00 0.000 -ATOM 451 OD DMS 113 27.280 9.400 12.320 1.00 0.000 -ATOM 452 CD2 DMS 113 28.170 6.860 11.440 1.00 0.000 -ATOM 453 SD DMS 114 17.850 24.160 2.080 1.00 0.000 -ATOM 454 CD1 DMS 114 18.480 25.380 3.470 1.00 0.000 -ATOM 455 OD DMS 114 16.320 24.120 2.080 1.00 0.000 -ATOM 456 CD2 DMS 114 18.360 25.330 0.610 1.00 0.000 -ATOM 457 SD DMS 115 26.120 23.190 13.680 1.00 0.000 -ATOM 458 CD1 DMS 115 24.570 22.010 13.740 1.00 0.000 -ATOM 459 OD DMS 115 27.110 22.600 14.690 1.00 0.000 -ATOM 460 CD2 DMS 115 26.850 22.520 12.000 1.00 0.000 -ATOM 461 SD DMS 116 8.980 21.020 28.500 1.00 0.000 -ATOM 462 CD1 DMS 116 10.780 21.680 28.170 1.00 0.000 -ATOM 463 OD DMS 116 8.900 19.690 27.760 1.00 0.000 -ATOM 464 CD2 DMS 116 9.170 20.930 30.440 1.00 0.000 -ATOM 465 SD DMS 117 1.180 4.650 19.390 1.00 0.000 -ATOM 466 CD1 DMS 117 1.490 4.370 21.290 1.00 0.000 -ATOM 467 OD DMS 117 1.020 6.150 19.100 1.00 0.000 -ATOM 468 CD2 DMS 117 2.950 4.090 18.790 1.00 0.000 -ATOM 469 SD DMS 118 27.170 17.250 2.480 1.00 0.000 -ATOM 470 CD1 DMS 118 25.570 16.260 1.960 1.00 0.000 -ATOM 471 OD DMS 118 26.980 18.700 2.050 1.00 0.000 -ATOM 472 CD2 DMS 118 27.240 17.160 4.430 1.00 0.000 -ATOM 473 SD DMS 119 -0.220 10.760 28.860 1.00 0.000 -ATOM 474 CD1 DMS 119 0.350 8.910 28.620 1.00 0.000 -ATOM 475 OD DMS 119 -0.150 11.000 30.370 1.00 0.000 -ATOM 476 CD2 DMS 119 1.530 11.390 28.260 1.00 0.000 -ATOM 477 SD DMS 120 14.030 17.520 0.830 1.00 0.000 -ATOM 478 CD1 DMS 120 12.490 18.440 1.600 1.00 0.000 -ATOM 479 OD DMS 120 13.490 16.430 -0.100 1.00 0.000 -ATOM 480 CD2 DMS 120 14.700 19.050 -0.170 1.00 0.000 -ATOM 481 SD DMS 121 5.030 13.660 15.480 1.00 0.000 -ATOM 482 CD1 DMS 121 4.500 12.160 16.600 1.00 0.000 -ATOM 483 OD DMS 121 6.250 14.320 16.120 1.00 0.000 -ATOM 484 CD2 DMS 121 5.500 12.640 13.880 1.00 0.000 -ATOM 485 SD DMS 122 5.400 9.580 7.500 1.00 0.000 -ATOM 486 CD1 DMS 122 3.920 10.410 8.460 1.00 0.000 -ATOM 487 OD DMS 122 6.140 8.480 8.260 1.00 0.000 -ATOM 488 CD2 DMS 122 4.310 8.840 6.070 1.00 0.000 -ATOM 489 SD DMS 123 20.890 0.480 16.120 1.00 0.000 -ATOM 490 CD1 DMS 123 19.750 1.080 14.660 1.00 0.000 -ATOM 491 OD DMS 123 20.970 1.750 16.970 1.00 0.000 -ATOM 492 CD2 DMS 123 19.450 -0.670 16.730 1.00 0.000 -ATOM 493 SD DMS 124 11.630 18.410 25.560 1.00 0.000 -ATOM 494 CD1 DMS 124 9.890 18.980 24.890 1.00 0.000 -ATOM 495 OD DMS 124 12.410 19.640 26.040 1.00 0.000 -ATOM 496 CD2 DMS 124 11.160 17.480 27.200 1.00 0.000 -ATOM 497 SD DMS 125 11.730 23.940 19.710 1.00 0.000 -ATOM 498 CD1 DMS 125 12.790 22.430 19.080 1.00 0.000 -ATOM 499 OD DMS 125 12.430 25.230 19.280 1.00 0.000 -ATOM 500 CD2 DMS 125 10.250 23.480 18.530 1.00 0.000 -ATOM 501 SD DMS 126 3.660 9.780 25.030 1.00 0.000 -ATOM 502 CD1 DMS 126 4.380 11.450 25.720 1.00 0.000 -ATOM 503 OD DMS 126 3.740 9.980 23.520 1.00 0.000 -ATOM 504 CD2 DMS 126 5.020 8.510 25.610 1.00 0.000 -ATOM 505 SD DMS 127 23.220 11.130 25.840 1.00 0.000 -ATOM 506 CD1 DMS 127 22.240 9.540 26.390 1.00 0.000 -ATOM 507 OD DMS 127 23.740 11.830 27.100 1.00 0.000 -ATOM 508 CD2 DMS 127 24.790 10.460 24.890 1.00 0.000 -ATOM 509 SD DMS 128 23.990 9.180 9.870 1.00 0.000 -ATOM 510 CD1 DMS 128 24.480 7.420 9.170 1.00 0.000 -ATOM 511 OD DMS 128 24.610 10.220 8.940 1.00 0.000 -ATOM 512 CD2 DMS 128 22.140 9.080 9.250 1.00 0.000 -ATOM 513 SD DMS 129 14.870 26.790 10.570 1.00 0.000 -ATOM 514 CD1 DMS 129 14.330 28.300 9.450 1.00 0.000 -ATOM 515 OD DMS 129 16.340 27.080 10.880 1.00 0.000 -ATOM 516 CD2 DMS 129 13.770 27.340 12.090 1.00 0.000 -ATOM 517 SD DMS 130 26.240 20.510 28.770 1.00 0.000 -ATOM 518 CD1 DMS 130 27.700 21.500 29.590 1.00 0.000 -ATOM 519 OD DMS 130 25.650 21.300 27.600 1.00 0.000 -ATOM 520 CD2 DMS 130 27.450 19.170 28.050 1.00 0.000 -ATOM 521 SD DMS 131 10.980 27.040 22.930 1.00 0.000 -ATOM 522 CD1 DMS 131 11.670 25.830 24.300 1.00 0.000 -ATOM 523 OD DMS 131 10.690 28.350 23.660 1.00 0.000 -ATOM 524 CD2 DMS 131 12.630 27.210 21.900 1.00 0.000 -ATOM 525 SD DMS 132 8.000 24.160 21.630 1.00 0.000 -ATOM 526 CD1 DMS 132 6.120 23.990 22.140 1.00 0.000 -ATOM 527 OD DMS 132 8.370 25.560 22.110 1.00 0.000 -ATOM 528 CD2 DMS 132 8.700 22.880 22.920 1.00 0.000 -ATOM 529 SD DMS 133 14.310 4.760 18.220 1.00 0.000 -ATOM 530 CD1 DMS 133 13.600 2.950 18.350 1.00 0.000 -ATOM 531 OD DMS 133 13.320 5.440 17.280 1.00 0.000 -ATOM 532 CD2 DMS 133 14.100 5.430 20.050 1.00 0.000 -ATOM 533 SD DMS 134 20.420 14.410 2.930 1.00 0.000 -ATOM 534 CD1 DMS 134 21.890 13.480 3.820 1.00 0.000 -ATOM 535 OD DMS 134 19.680 15.060 4.110 1.00 0.000 -ATOM 536 CD2 DMS 134 21.330 15.820 1.940 1.00 0.000 -ATOM 537 SD DMS 135 6.440 22.750 26.550 1.00 0.000 -ATOM 538 CD1 DMS 135 5.900 21.510 25.140 1.00 0.000 -ATOM 539 OD DMS 135 7.490 23.670 25.920 1.00 0.000 -ATOM 540 CD2 DMS 135 4.830 23.770 26.990 1.00 0.000 -ATOM 541 SD DMS 136 7.250 15.830 25.900 1.00 0.000 -ATOM 542 CD1 DMS 136 6.520 14.200 25.120 1.00 0.000 -ATOM 543 OD DMS 136 8.750 15.540 25.960 1.00 0.000 -ATOM 544 CD2 DMS 136 6.950 17.220 24.560 1.00 0.000 -ATOM 545 SD DMS 137 17.570 14.520 28.330 1.00 0.000 -ATOM 546 CD1 DMS 137 16.440 14.440 29.910 1.00 0.000 -ATOM 547 OD DMS 137 18.510 15.710 28.580 1.00 0.000 -ATOM 548 CD2 DMS 137 18.540 12.830 28.520 1.00 0.000 -ATOM 549 SD DMS 138 8.950 20.590 16.470 1.00 0.000 -ATOM 550 CD1 DMS 138 9.810 19.760 14.920 1.00 0.000 -ATOM 551 OD DMS 138 7.540 20.020 16.560 1.00 0.000 -ATOM 552 CD2 DMS 138 10.030 19.790 17.880 1.00 0.000 -ATOM 553 SD DMS 139 9.930 28.580 6.040 1.00 0.000 -ATOM 554 CD1 DMS 139 9.500 28.120 4.190 1.00 0.000 -ATOM 555 OD DMS 139 11.140 29.520 6.030 1.00 0.000 -ATOM 556 CD2 DMS 139 8.380 29.660 6.540 1.00 0.000 -ATOM 557 SD DMS 140 29.300 9.060 8.360 1.00 0.000 -ATOM 558 CD1 DMS 140 29.630 10.000 10.040 1.00 0.000 -ATOM 559 OD DMS 140 29.460 7.570 8.670 1.00 0.000 -ATOM 560 CD2 DMS 140 27.390 9.430 8.210 1.00 0.000 -ATOM 561 SD DMS 141 15.250 2.100 14.930 1.00 0.000 -ATOM 562 CD1 DMS 141 14.960 4.030 14.930 1.00 0.000 -ATOM 563 OD DMS 141 15.760 1.920 16.360 1.00 0.000 -ATOM 564 CD2 DMS 141 13.480 1.350 14.620 1.00 0.000 -ATOM 565 SD DMS 142 3.880 18.610 7.890 1.00 0.000 -ATOM 566 CD1 DMS 142 5.780 18.240 7.650 1.00 0.000 -ATOM 567 OD DMS 142 3.390 17.510 8.830 1.00 0.000 -ATOM 568 CD2 DMS 142 3.850 20.330 8.800 1.00 0.000 -ATOM 569 SD DMS 143 17.380 25.050 7.200 1.00 0.000 -ATOM 570 CD1 DMS 143 17.280 26.940 7.690 1.00 0.000 -ATOM 571 OD DMS 143 18.700 24.790 6.470 1.00 0.000 -ATOM 572 CD2 DMS 143 17.820 24.500 9.020 1.00 0.000 -ATOM 573 SD DMS 144 19.970 0.000 1.140 1.00 0.000 -ATOM 574 CD1 DMS 144 21.840 -0.490 1.430 1.00 0.000 -ATOM 575 OD DMS 144 19.130 -0.490 2.310 1.00 0.000 -ATOM 576 CD2 DMS 144 20.170 1.920 1.430 1.00 0.000 -ATOM 577 SD DMS 145 16.790 12.440 17.390 1.00 0.000 -ATOM 578 CD1 DMS 145 16.490 12.110 15.490 1.00 0.000 -ATOM 579 OD DMS 145 17.030 11.050 17.980 1.00 0.000 -ATOM 580 CD2 DMS 145 18.350 13.610 17.300 1.00 0.000 -ATOM 581 SD DMS 146 9.360 7.470 3.250 1.00 0.000 -ATOM 582 CD1 DMS 146 9.210 8.810 1.840 1.00 0.000 -ATOM 583 OD DMS 146 10.470 7.830 4.240 1.00 0.000 -ATOM 584 CD2 DMS 146 7.790 7.880 4.330 1.00 0.000 -ATOM 585 SD DMS 147 10.580 25.810 10.430 1.00 0.000 -ATOM 586 CD1 DMS 147 9.330 24.440 9.830 1.00 0.000 -ATOM 587 OD DMS 147 11.380 25.450 11.690 1.00 0.000 -ATOM 588 CD2 DMS 147 11.750 25.200 8.990 1.00 0.000 -ATOM 589 SD DMS 148 11.750 2.190 1.490 1.00 0.000 -ATOM 590 CD1 DMS 148 11.660 0.270 1.140 1.00 0.000 -ATOM 591 OD DMS 148 10.290 2.650 1.520 1.00 0.000 -ATOM 592 CD2 DMS 148 12.240 1.790 3.330 1.00 0.000 -ATOM 593 SD DMS 149 4.250 20.830 18.460 1.00 0.000 -ATOM 594 CD1 DMS 149 5.920 21.700 18.960 1.00 0.000 -ATOM 595 OD DMS 149 4.360 19.350 18.830 1.00 0.000 -ATOM 596 CD2 DMS 149 3.190 21.670 19.870 1.00 0.000 -ATOM 597 SD DMS 150 27.620 3.270 23.310 1.00 0.000 -ATOM 598 CD1 DMS 150 27.390 1.340 23.080 1.00 0.000 -ATOM 599 OD DMS 150 27.010 4.010 22.120 1.00 0.000 -ATOM 600 CD2 DMS 150 26.470 3.650 24.840 1.00 0.000 -ATOM 601 SD DMS 151 1.530 16.220 17.470 1.00 0.000 -ATOM 602 CD1 DMS 151 3.150 16.770 16.540 1.00 0.000 -ATOM 603 OD DMS 151 1.820 15.060 18.410 1.00 0.000 -ATOM 604 CD2 DMS 151 1.390 17.770 18.650 1.00 0.000 -ATOM 605 SD DMS 152 0.800 -0.400 3.600 1.00 0.000 -ATOM 606 CD1 DMS 152 -0.440 1.090 3.360 1.00 0.000 -ATOM 607 OD DMS 152 1.850 -0.390 2.490 1.00 0.000 -ATOM 608 CD2 DMS 152 1.670 0.420 5.140 1.00 0.000 -ATOM 609 SD DMS 153 5.070 24.370 16.680 1.00 0.000 -ATOM 610 CD1 DMS 153 3.750 25.710 17.220 1.00 0.000 -ATOM 611 OD DMS 153 4.190 23.190 16.270 1.00 0.000 -ATOM 612 CD2 DMS 153 5.590 25.300 15.040 1.00 0.000 -ATOM 613 SD DMS 154 21.920 25.710 26.150 1.00 0.000 -ATOM 614 CD1 DMS 154 20.090 26.320 25.870 1.00 0.000 -ATOM 615 OD DMS 154 22.450 24.970 24.910 1.00 0.000 -ATOM 616 CD2 DMS 154 22.630 27.520 25.970 1.00 0.000 -ATOM 617 SD DMS 155 8.620 28.100 19.910 1.00 0.000 -ATOM 618 CD1 DMS 155 10.100 27.510 18.780 1.00 0.000 -ATOM 619 OD DMS 155 8.470 29.620 19.830 1.00 0.000 -ATOM 620 CD2 DMS 155 7.210 27.400 18.760 1.00 0.000 -ATOM 621 SD DMS 156 8.550 15.100 14.100 1.00 0.000 -ATOM 622 CD1 DMS 156 9.450 13.390 13.850 1.00 0.000 -ATOM 623 OD DMS 156 9.630 16.160 14.320 1.00 0.000 -ATOM 624 CD2 DMS 156 7.920 15.300 12.260 1.00 0.000 -ATOM 625 SD DMS 157 24.790 3.360 1.670 1.00 0.000 -ATOM 626 CD1 DMS 157 23.450 2.460 2.770 1.00 0.000 -ATOM 627 OD DMS 157 24.220 4.650 1.090 1.00 0.000 -ATOM 628 CD2 DMS 157 25.890 3.960 3.170 1.00 0.000 -ATOM 629 SD DMS 158 14.070 8.740 16.030 1.00 0.000 -ATOM 630 CD1 DMS 158 14.060 10.160 17.360 1.00 0.000 -ATOM 631 OD DMS 158 14.720 9.160 14.710 1.00 0.000 -ATOM 632 CD2 DMS 158 15.490 7.670 16.830 1.00 0.000 -ATOM 633 SD DMS 159 19.940 5.890 4.200 1.00 0.000 -ATOM 634 CD1 DMS 159 21.490 4.800 4.660 1.00 0.000 -ATOM 635 OD DMS 159 19.570 5.710 2.730 1.00 0.000 -ATOM 636 CD2 DMS 159 18.540 5.010 5.240 1.00 0.000 -ATOM 637 SD DMS 160 18.850 4.650 18.680 1.00 0.000 -ATOM 638 CD1 DMS 160 18.400 3.720 17.020 1.00 0.000 -ATOM 639 OD DMS 160 18.000 4.080 19.820 1.00 0.000 -ATOM 640 CD2 DMS 160 20.710 4.220 19.070 1.00 0.000 -ATOM 641 SD DMS 161 27.970 0.010 20.000 1.00 0.000 -ATOM 642 CD1 DMS 161 27.830 1.910 19.570 1.00 0.000 -ATOM 643 OD DMS 161 26.500 -0.370 20.210 1.00 0.000 -ATOM 644 CD2 DMS 161 28.620 -0.830 18.370 1.00 0.000 -ATOM 645 SD DMS 162 12.550 22.660 14.580 1.00 0.000 -ATOM 646 CD1 DMS 162 13.510 24.280 15.090 1.00 0.000 -ATOM 647 OD DMS 162 12.200 21.800 15.790 1.00 0.000 -ATOM 648 CD2 DMS 162 10.970 23.730 14.170 1.00 0.000 -ATOM 649 SD DMS 163 24.320 11.960 1.420 1.00 0.000 -ATOM 650 CD1 DMS 163 22.600 11.070 1.150 1.00 0.000 -ATOM 651 OD DMS 163 24.750 11.820 2.880 1.00 0.000 -ATOM 652 CD2 DMS 163 25.410 10.510 0.690 1.00 0.000 -ATOM 653 SD DMS 164 14.030 8.180 10.640 1.00 0.000 -ATOM 654 CD1 DMS 164 15.740 7.240 10.640 1.00 0.000 -ATOM 655 OD DMS 164 13.540 8.020 9.200 1.00 0.000 -ATOM 656 CD2 DMS 164 13.130 6.870 11.770 1.00 0.000 -ATOM 657 SD DMS 165 5.990 13.650 20.740 1.00 0.000 -ATOM 658 CD1 DMS 165 4.830 14.490 19.410 1.00 0.000 -ATOM 659 OD DMS 165 5.710 14.380 22.060 1.00 0.000 -ATOM 660 CD2 DMS 165 4.990 11.980 20.590 1.00 0.000 -ATOM 661 SD DMS 166 23.610 23.130 0.300 1.00 0.000 -ATOM 662 CD1 DMS 166 24.930 24.190 -0.670 1.00 0.000 -ATOM 663 OD DMS 166 24.120 23.140 1.740 1.00 0.000 -ATOM 664 CD2 DMS 166 22.100 24.370 0.250 1.00 0.000 -ATOM 665 SD DMS 167 10.020 6.350 20.940 1.00 0.000 -ATOM 666 CD1 DMS 167 11.450 7.210 21.960 1.00 0.000 -ATOM 667 OD DMS 167 8.800 7.250 21.140 1.00 0.000 -ATOM 668 CD2 DMS 167 10.830 6.720 19.210 1.00 0.000 -ATOM 669 SD DMS 168 16.540 22.610 26.730 1.00 0.000 -ATOM 670 CD1 DMS 168 18.220 21.630 26.540 1.00 0.000 -ATOM 671 OD DMS 168 16.810 24.110 26.630 1.00 0.000 -ATOM 672 CD2 DMS 168 16.170 22.370 24.830 1.00 0.000 -ATOM 673 SD DMS 169 24.360 3.530 17.090 1.00 0.000 -ATOM 674 CD1 DMS 169 24.680 1.610 17.110 1.00 0.000 -ATOM 675 OD DMS 169 25.660 4.300 16.840 1.00 0.000 -ATOM 676 CD2 DMS 169 23.300 3.530 15.450 1.00 0.000 -ATOM 677 SD DMS 170 4.770 29.090 11.680 1.00 0.000 -ATOM 678 CD1 DMS 170 5.350 27.380 10.950 1.00 0.000 -ATOM 679 OD DMS 170 5.910 29.190 12.700 1.00 0.000 -ATOM 680 CD2 DMS 170 5.180 30.260 10.170 1.00 0.000 -ATOM 681 SD DMS 171 13.960 13.120 7.990 1.00 0.000 -ATOM 682 CD1 DMS 171 14.630 12.410 6.300 1.00 0.000 -ATOM 683 OD DMS 171 12.870 14.120 7.600 1.00 0.000 -ATOM 684 CD2 DMS 171 13.110 11.440 8.510 1.00 0.000 -ATOM 685 SD DMS 172 9.020 15.070 8.760 1.00 0.000 -ATOM 686 CD1 DMS 172 10.550 15.050 9.970 1.00 0.000 -ATOM 687 OD DMS 172 8.330 16.430 8.830 1.00 0.000 -ATOM 688 CD2 DMS 172 10.040 14.950 7.100 1.00 0.000 -ATOM 689 SD DMS 173 21.830 12.510 22.250 1.00 0.000 -ATOM 690 CD1 DMS 173 20.510 13.540 23.250 1.00 0.000 -ATOM 691 OD DMS 173 23.150 12.700 23.000 1.00 0.000 -ATOM 692 CD2 DMS 173 21.360 10.740 22.910 1.00 0.000 -ATOM 693 SD DMS 174 27.060 22.100 4.190 1.00 0.000 -ATOM 694 CD1 DMS 174 25.960 23.240 5.320 1.00 0.000 -ATOM 695 OD DMS 174 27.880 21.370 5.260 1.00 0.000 -ATOM 696 CD2 DMS 174 25.580 20.920 3.730 1.00 0.000 -ATOM 697 SD DMS 175 13.040 26.020 27.840 1.00 0.000 -ATOM 698 CD1 DMS 175 13.500 24.210 28.400 1.00 0.000 -ATOM 699 OD DMS 175 12.900 27.050 28.960 1.00 0.000 -ATOM 700 CD2 DMS 175 14.670 26.470 26.860 1.00 0.000 -ATOM 701 SD DMS 176 17.370 12.350 9.350 1.00 0.000 -ATOM 702 CD1 DMS 176 18.180 14.050 8.870 1.00 0.000 -ATOM 703 OD DMS 176 17.850 11.250 8.400 1.00 0.000 -ATOM 704 CD2 DMS 176 18.570 12.240 10.890 1.00 0.000 -ATOM 705 SD DMS 177 6.150 27.460 24.290 1.00 0.000 -ATOM 706 CD1 DMS 177 7.570 26.600 25.300 1.00 0.000 -ATOM 707 OD DMS 177 5.310 28.300 25.260 1.00 0.000 -ATOM 708 CD2 DMS 177 7.450 28.610 23.390 1.00 0.000 -ATOM 709 SD DMS 178 28.990 25.130 2.320 1.00 0.000 -ATOM 710 CD1 DMS 178 28.420 25.140 0.460 1.00 0.000 -ATOM 711 OD DMS 178 27.760 24.810 3.180 1.00 0.000 -ATOM 712 CD2 DMS 178 30.230 23.640 2.200 1.00 0.000 -ATOM 713 SD DMS 179 28.080 8.860 23.950 1.00 0.000 -ATOM 714 CD1 DMS 179 28.680 7.020 24.190 1.00 0.000 -ATOM 715 OD DMS 179 28.230 9.600 25.280 1.00 0.000 -ATOM 716 CD2 DMS 179 29.630 9.140 22.810 1.00 0.000 -ATOM 717 SD DMS 180 5.500 3.900 14.520 1.00 0.000 -ATOM 718 CD1 DMS 180 4.120 3.200 13.340 1.00 0.000 -ATOM 719 OD DMS 180 5.520 3.260 15.910 1.00 0.000 -ATOM 720 CD2 DMS 180 7.010 3.150 13.530 1.00 0.000 -ATOM 721 SD DMS 181 10.070 5.480 6.870 1.00 0.000 -ATOM 722 CD1 DMS 181 11.230 4.640 5.550 1.00 0.000 -ATOM 723 OD DMS 181 9.010 4.470 7.330 1.00 0.000 -ATOM 724 CD2 DMS 181 11.480 5.670 8.200 1.00 0.000 -ATOM 725 SD DMS 182 0.690 23.800 17.560 1.00 0.000 -ATOM 726 CD1 DMS 182 -1.240 23.950 17.440 1.00 0.000 -ATOM 727 OD DMS 182 1.110 24.220 18.970 1.00 0.000 -ATOM 728 CD2 DMS 182 0.860 21.880 17.280 1.00 0.000 -ATOM 729 SD DMS 183 7.270 25.090 6.300 1.00 0.000 -ATOM 730 CD1 DMS 183 7.050 26.490 7.630 1.00 0.000 -ATOM 731 OD DMS 183 8.280 24.010 6.720 1.00 0.000 -ATOM 732 CD2 DMS 183 5.470 24.380 6.530 1.00 0.000 -ATOM 733 SD DMS 184 2.170 24.050 12.280 1.00 0.000 -ATOM 734 CD1 DMS 184 2.840 23.170 13.890 1.00 0.000 -ATOM 735 OD DMS 184 2.700 25.480 12.370 1.00 0.000 -ATOM 736 CD2 DMS 184 3.190 23.170 10.870 1.00 0.000 -ATOM 737 SD DMS 185 28.780 19.570 10.110 1.00 0.000 -ATOM 738 CD1 DMS 185 29.400 19.520 8.260 1.00 0.000 -ATOM 739 OD DMS 185 27.290 19.200 10.140 1.00 0.000 -ATOM 740 CD2 DMS 185 29.830 18.030 10.710 1.00 0.000 -ATOM 741 SD DMS 186 13.630 6.790 1.340 1.00 0.000 -ATOM 742 CD1 DMS 186 14.790 5.430 2.130 1.00 0.000 -ATOM 743 OD DMS 186 14.150 7.170 -0.050 1.00 0.000 -ATOM 744 CD2 DMS 186 12.050 5.670 1.150 1.00 0.000 -ATOM 745 SD DMS 187 26.240 27.580 3.620 1.00 0.000 -ATOM 746 CD1 DMS 187 24.940 26.200 3.190 1.00 0.000 -ATOM 747 OD DMS 187 25.400 28.860 3.670 1.00 0.000 -ATOM 748 CD2 DMS 187 26.710 27.020 5.430 1.00 0.000 -ATOM 749 SD DMS 188 19.590 19.130 7.310 1.00 0.000 -ATOM 750 CD1 DMS 188 18.380 17.690 6.810 1.00 0.000 -ATOM 751 OD DMS 188 20.530 19.240 6.110 1.00 0.000 -ATOM 752 CD2 DMS 188 18.200 20.500 7.320 1.00 0.000 -ATOM 753 SD DMS 189 25.580 16.620 16.920 1.00 0.000 -ATOM 754 CD1 DMS 189 26.140 14.990 16.020 1.00 0.000 -ATOM 755 OD DMS 189 24.050 16.590 16.990 1.00 0.000 -ATOM 756 CD2 DMS 189 26.020 16.010 18.720 1.00 0.000 -ATOM 757 SD DMS 190 27.150 26.320 24.440 1.00 0.000 -ATOM 758 CD1 DMS 190 26.800 27.650 25.810 1.00 0.000 -ATOM 759 OD DMS 190 28.460 25.600 24.760 1.00 0.000 -ATOM 760 CD2 DMS 190 25.620 25.160 24.730 1.00 0.000 -ATOM 761 SD DMS 191 2.810 14.960 26.650 1.00 0.000 -ATOM 762 CD1 DMS 191 3.760 14.720 28.330 1.00 0.000 -ATOM 763 OD DMS 191 1.870 13.760 26.480 1.00 0.000 -ATOM 764 CD2 DMS 191 1.950 16.650 27.090 1.00 0.000 -ATOM 765 SD DMS 192 24.730 29.020 13.050 1.00 0.000 -ATOM 766 CD1 DMS 192 26.060 30.100 13.990 1.00 0.000 -ATOM 767 OD DMS 192 24.520 29.540 11.630 1.00 0.000 -ATOM 768 CD2 DMS 192 25.440 27.200 12.920 1.00 0.000 -ATOM 769 SD DMS 193 2.730 23.830 22.880 1.00 0.000 -ATOM 770 CD1 DMS 193 2.620 25.230 24.230 1.00 0.000 -ATOM 771 OD DMS 193 2.980 22.560 23.690 1.00 0.000 -ATOM 772 CD2 DMS 193 0.830 23.920 22.430 1.00 0.000 -ATOM 773 SD DMS 194 15.940 0.350 1.560 1.00 0.000 -ATOM 774 CD1 DMS 194 16.700 0.270 -0.240 1.00 0.000 -ATOM 775 OD DMS 194 14.610 1.040 1.240 1.00 0.000 -ATOM 776 CD2 DMS 194 15.540 -1.550 1.670 1.00 0.000 -ATOM 777 SD DMS 195 14.840 17.810 20.270 1.00 0.000 -ATOM 778 CD1 DMS 195 13.320 18.000 19.060 1.00 0.000 -ATOM 779 OD DMS 195 14.810 16.360 20.750 1.00 0.000 -ATOM 780 CD2 DMS 195 16.170 17.810 18.850 1.00 0.000 -ATOM 781 SD DMS 196 12.000 14.320 23.190 1.00 0.000 -ATOM 782 CD1 DMS 196 10.090 14.650 23.400 1.00 0.000 -ATOM 783 OD DMS 196 12.310 12.860 22.880 1.00 0.000 -ATOM 784 CD2 DMS 196 11.940 15.330 21.520 1.00 0.000 -ATOM 785 SD DMS 197 21.740 15.070 18.890 1.00 0.000 -ATOM 786 CD1 DMS 197 22.760 15.980 20.280 1.00 0.000 -ATOM 787 OD DMS 197 20.790 14.080 19.550 1.00 0.000 -ATOM 788 CD2 DMS 197 20.770 16.670 18.330 1.00 0.000 -ATOM 789 SD DMS 198 14.250 20.290 4.650 1.00 0.000 -ATOM 790 CD1 DMS 198 14.790 21.890 3.670 1.00 0.000 -ATOM 791 OD DMS 198 15.350 19.240 4.760 1.00 0.000 -ATOM 792 CD2 DMS 198 14.190 21.120 6.420 1.00 0.000 -ATOM 793 SD DMS 199 7.880 19.220 21.150 1.00 0.000 -ATOM 794 CD1 DMS 199 6.680 17.780 20.620 1.00 0.000 -ATOM 795 OD DMS 199 7.780 19.510 22.650 1.00 0.000 -ATOM 796 CD2 DMS 199 9.500 18.130 21.110 1.00 0.000 -ATOM 797 SD DMS 200 8.770 25.220 1.040 1.00 0.000 -ATOM 798 CD1 DMS 200 7.260 23.990 1.080 1.00 0.000 -ATOM 799 OD DMS 200 9.700 24.610 -0.010 1.00 0.000 -ATOM 800 CD2 DMS 200 7.870 26.710 0.140 1.00 0.000 -ATOM 801 SD DMS 201 9.180 11.240 17.330 1.00 0.000 -ATOM 802 CD1 DMS 201 8.800 9.810 18.610 1.00 0.000 -ATOM 803 OD DMS 201 10.440 12.040 17.650 1.00 0.000 -ATOM 804 CD2 DMS 201 9.840 9.810 16.180 1.00 0.000 -ATOM 805 SD DMS 202 24.030 21.660 23.550 1.00 0.000 -ATOM 806 CD1 DMS 202 23.930 22.130 25.440 1.00 0.000 -ATOM 807 OD DMS 202 25.240 22.470 23.090 1.00 0.000 -ATOM 808 CD2 DMS 202 24.560 19.790 23.760 1.00 0.000 -ATOM 809 SD DMS 203 21.280 27.100 11.880 1.00 0.000 -ATOM 810 CD1 DMS 203 19.390 27.100 11.390 1.00 0.000 -ATOM 811 OD DMS 203 21.280 27.120 13.410 1.00 0.000 -ATOM 812 CD2 DMS 203 21.800 25.260 11.520 1.00 0.000 -ATOM 813 SD DMS 204 10.760 11.290 27.890 1.00 0.000 -ATOM 814 CD1 DMS 204 10.000 12.400 26.480 1.00 0.000 -ATOM 815 OD DMS 204 10.330 11.690 29.300 1.00 0.000 -ATOM 816 CD2 DMS 204 9.600 9.770 27.480 1.00 0.000 -ATOM 817 SD DMS 205 22.110 14.990 25.730 1.00 0.000 -ATOM 818 CD1 DMS 205 21.910 14.390 27.570 1.00 0.000 -ATOM 819 OD DMS 205 20.810 15.760 25.450 1.00 0.000 -ATOM 820 CD2 DMS 205 23.510 16.300 26.060 1.00 0.000 -ATOM 821 SD DMS 206 14.500 22.950 9.860 1.00 0.000 -ATOM 822 CD1 DMS 206 15.560 21.400 10.410 1.00 0.000 -ATOM 823 OD DMS 206 14.970 23.270 8.440 1.00 0.000 -ATOM 824 CD2 DMS 206 12.900 21.840 9.840 1.00 0.000 -ATOM 825 SD DMS 207 0.660 4.580 14.780 1.00 0.000 -ATOM 826 CD1 DMS 207 1.220 2.840 15.460 1.00 0.000 -ATOM 827 OD DMS 207 -0.160 4.600 13.490 1.00 0.000 -ATOM 828 CD2 DMS 207 -0.440 5.150 16.280 1.00 0.000 -ATOM 829 SD DMS 208 16.990 1.820 6.160 1.00 0.000 -ATOM 830 CD1 DMS 208 15.530 2.540 5.080 1.00 0.000 -ATOM 831 OD DMS 208 16.310 0.900 7.170 1.00 0.000 -ATOM 832 CD2 DMS 208 17.900 0.770 4.780 1.00 0.000 -END diff --git a/src/haddock/modules/flexref/cns/dna-rna_restraints.def b/src/haddock/modules/flexref/cns/dna-rna_restraints.def deleted file mode 100644 index 6072b147b..000000000 --- a/src/haddock/modules/flexref/cns/dna-rna_restraints.def +++ /dev/null @@ -1,1221 +0,0 @@ -! dna-rna_restraints.def -! Define backbone dihedral angles, hbonds and planarity restraints -! for nucleic acids -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! -{+ file: dna-rna_restraints.def directory: protocols +} -{+ description: Creates restraints to maintain conformation of DNA/RNA -

    -Additions and changes were made to allow for flexibility during docking

    -Changes include:
    -
      -
    • flags to turn all options on or off -
    • separation of sugar -
    • pucker restraints and phosphate backbone restraints -
    • option to have sugar-phosphate backbone dihedrals measured and restrained within a user defined error range -
    • option to have the length of the Watson-Crick hydrogen bonds measured from the structure measured and restrained within a user defined error range. -
    - - +} -{+ comment:This file is to be read by refinement files that modify atom coordinates +} -{+ authors: Axel T. Brunger, and Paul D. Adams,
    - modified by Alexandre Bonvin and Marc van Dijk for HADDOCK use +} - -set message=normal echo=on end - -{- begin block parameter definition -} define( - -{=========================================== base-pair planarity ===========================================} - -{* Use planarity restraints for Watson-Crick base pairing *} -{+ choice: true false +} -{===>} basepair_planar=false; - -{============================================== base planarity =============================================} - -{* Restrain base planarity. This selection must only include nucleotide residues *} -{===>} bases_planar=((resid 1:20 or resid 21:40) and segid B); - -{=================================== sugar-pucker dihedral angle restraints ================================} - -{* Pick the dihedral angles of the sugar pucker from the input structure - and restrain them within the given error range *} -{+ choice: true false +} -{===>} dna_pick_pucdih=true; - -{* residues with sugar pucker restrained - group 1 *} -{===>} pucker_1=(resid 1:20 and segid B); - -{* conformation of group 1 *} -{+ choice: "a-form" "b-form" "other" +} -{===>} form_1="other"; - -{* user defined sugar pucker for group 1 *} - -{* dihedral C1'-C2'-C3'-C4' *} -{===>} dihedral_nu2_1=-34.9; -{* dihedral C1'-C2'-C3'-C4' error range *} -{===>} error_nu2_1=0.0; -{* dihedral C5'-C4'-C3'-C2' *} -{===>} dihedral_nu3_1=-86.4; -{* dihedral C5'-C4'-C3'-C2' error range *} -{===>} error_nu3_1=0.0; -{* dihedral C1'-O4'-C4'-C5' *} -{===>} dihedral_nu4_1=106.4; -{* dihedral C1'-O4'-C4'-C5' error range *} -{===>} error_nu4_1=0.0; - -{* residues with sugar pucker restrained - group 2 *} -{===>} pucker_2=(resid 21:40 and segid B); - -{* conformation of group 2 *} -{+ choice: "a-form" "b-form" "other" +} -{===>} form_2="other"; - -{* user defined sugar pucker for group 2 *} - -{* dihedral C1'-C2'-C3'-C4' *} -{===>} dihedral_nu2_2=-34.9; -{* dihedral C1'-C2'-C3'-C4' error range *} -{===>} error_nu2_2=0.0; -{* dihedral C5'-C4'-C3'-C2' *} -{===>} dihedral_nu3_2=-86.4; -{* dihedral C5'-C4'-C3'-C2' error range *} -{===>} error_nu3_2=0.0; -{* dihedral C1'-O4'-C4'-C5' *} -{===>} dihedral_nu4_2=106.4; -{* dihedral C1'-O4'-C4'-C5' error range *} -{===>} error_nu4_2=0.0; - -{* residues with sugar pucker restrained - group 3 *} -{===>} pucker_3=(none); - -{* conformation of group 3 *} -{+ choice: "a-form" "b-form" "other" +} -{===>} form_3="b-form"; - -{* user defined sugar pucker for group 3 *} - -{* dihedral C1'-C2'-C3'-C4' *} -{===>} dihedral_nu2_3=-34.9; -{* dihedral C1'-C2'-C3'-C4' error range *} -{===>} error_nu2_3=10.0; -{* dihedral C5'-C4'-C3'-C2' *} -{===>} dihedral_nu3_3=-86.4; -{* dihedral C5'-C4'-C3'-C2' error range *} -{===>} error_nu3_3=10.0; -{* dihedral C1'-O4'-C4'-C5' *} -{===>} dihedral_nu4_3=106.4; -{* dihedral C1'-O4'-C4'-C5' error range *} -{===>} error_nu4_3=10.0; - -{* residues with sugar pucker restrained - group 4 *} -{===>} pucker_4=(none); - -{* conformation of group 4 *} -{+ choice: "a-form" "b-form" "other" +} -{===>} form_4="b-form"; - -{* user defined sugar pucker for group 4 *} - -{* dihedral C1'-C2'-C3'-C4' *} -{===>} dihedral_nu2_4=-34.9; -{* dihedral C1'-C2'-C3'-C4' error range *} -{===>} error_nu2_4=10.0; -{* dihedral C5'-C4'-C3'-C2' *} -{===>} dihedral_nu3_4=-86.4; -{* dihedral C5'-C4'-C3'-C2' error range *} -{===>} error_nu3_4=10.0; -{* dihedral C1'-O4'-C4'-C5' *} -{===>} dihedral_nu4_4=106.4; -{* dihedral C1'-O4'-C4'-C5' error range *} -{===>} error_nu4_4=10.0; - -{================================ phosphate backbone dihedral angle restraints =============================} - -{* Pick the dihedral angles of the phosphate backbone from the input structure and - restrain them within the given error range *} -{+ choice: true false +} -{===>} dna_pick_bacdih=true; - -{* residues with phosphate backbone restrained - group 1 *} -{===>} dihedral_1=(resid 1:20 and segid B); - -{* conformation of group 1 *} -{+ choice: "a-form" "b-form" "other" +} -{===>} form_1="other"; - -{* user defined sugar pucker for group 1 *} - -{* alpha dihedral O3'-P-O5'-C5' *} -{===>} dihedral_alpha_1=-10.0; -{* alpha dihedral range *} -{===>} error_alpha_1=10.0; -{* beta dihedral P-O5'-C5'-C4' *} -{===>} dihedral_beta_1=136.4; -{* beta dihedral range *} -{===>} error_beta_1=40.0; -{* gamma dihedral O5'-C5'-C4'-C3' *} -{===>} dihedral_gamma_1=31.1; -{* gamma dihedral range *} -{===>} error_gamma_1=20.0; -{* delta dihedral C5'-C4'-C3'-O3' *} -{===>} dihedral_delta_1=-165.0; -{* delta dihedral range *} -{===>} error_delta_1=50.0; -{* epsilon dihedral C4'-C3'-O3'-P *} -{===>} dihedral_eps_1=-165.0; -{* epsilon dihedral range *} -{===>} error_eps_1=10.0; -{* zeta dihedral C3'-O3'-P-O5' *} -{===>} dihedral_zeta_1=-150.8; -{* zeta dihedral range *} -{===>} error_zeta_1=50.0; - -{* residues with phosphate backbone restrained - group 2 *} -{===>} dihedral_2=(resid 21:40 and segid B); - -{* conformation of group 2 *} -{+ choice: "a-form" "b-form" "other" +} -{===>} form_2="other"; - -{* user defined sugar pucker for group 2 *} - -{* alpha dihedral O3'-P-O5'-C5' *} -{===>} dihedral_alpha_2=-10.0; -{* alpha dihedral range *} -{===>} error_alpha_2=10.0; -{* beta dihedral P-O5'-C5'-C4' *} -{===>} dihedral_beta_2=136.4; -{* beta dihedral range *} -{===>} error_beta_2=40.0; -{* gamma dihedral O5'-C5'-C4'-C3' *} -{===>} dihedral_gamma_2=31.1; -{* gamma dihedral range *} -{===>} error_gamma_2=20.0; -{* delta dihedral C5'-C4'-C3'-O3' *} -{===>} dihedral_delta_2=-165.0; -{* delta dihedral range *} -{===>} error_delta_2=50.0; -{* epsilon dihedral C4'-C3'-O3'-P *} -{===>} dihedral_eps_2=-165.0; -{* epsilon dihedral range *} -{===>} error_eps_2=10.0; -{* zeta dihedral C3'-O3'-P-O5' *} -{===>} dihedral_zeta_2=-150.8; -{* zeta dihedral range *} -{===>} error_zeta_2=50.0; - -{* residues with phosphate backbone restrained - group 3 *} -{===>} dihedral_3=(none); - -{* conformation of group 3 *} -{+ choice: "a-form" "b-form" "other" +} -{===>} form_3="other"; - -{* user defined sugar pucker for group 3 *} - -{* alpha dihedral O3'-P-O5'-C5' *} -{===>} dihedral_alpha_3=-10.0; -{* alpha dihedral range *} -{===>} error_alpha_3=10.0; -{* beta dihedral P-O5'-C5'-C4' *} -{===>} dihedral_beta_3=136.4; -{* beta dihedral range *} -{===>} error_beta_3=40.0; -{* gamma dihedral O5'-C5'-C4'-C3' *} -{===>} dihedral_gamma_3=31.1; -{* gamma dihedral range *} -{===>} error_gamma_3=20.0; -{* delta dihedral C5'-C4'-C3'-O3' *} -{===>} dihedral_delta_3=-165.0; -{* delta dihedral range *} -{===>} error_delta_3=50.0; -{* epsilon dihedral C4'-C3'-O3'-P *} -{===>} dihedral_eps_3=-165.0; -{* epsilon dihedral range *} -{===>} error_eps_3=10.0; -{* zeta dihedral C3'-O3'-P-O5' *} -{===>} dihedral_zeta_3=-150.8; -{* zeta dihedral range *} -{===>} error_zeta_3=50.0; - -{* residues with phosphate backbone restrained - group 4 *} -{===>} dihedral_4=(none); - -{* conformation of group 4 *} -{+ choice: "a-form" "b-form" "other" +} -{===>} form_4="other"; - -{* user defined sugar pucker for group 4 *} - -{* alpha dihedral O3'-P-O5'-C5' *} -{===>} dihedral_alpha_4=-10.0; -{* alpha dihedral range *} -{===>} error_alpha_4=10.0; -{* beta dihedral P-O5'-C5'-C4' *} -{===>} dihedral_beta_4=136.4; -{* beta dihedral range *} -{===>} error_beta_4=40.0; -{* gamma dihedral O5'-C5'-C4'-C3' *} -{===>} dihedral_gamma_4=31.1; -{* gamma dihedral range *} -{===>} error_gamma_4=20.0; -{* delta dihedral C5'-C4'-C3'-O3' *} -{===>} dihedral_delta_4=-165.0; -{* delta dihedral range *} -{===>} error_delta_4=50.0; -{* epsilon dihedral C4'-C3'-O3'-P *} -{===>} dihedral_eps_4=-165.0; -{* epsilon dihedral range *} -{===>} error_eps_4=10.0; -{* zeta dihedral C3'-O3'-P-O5' *} -{===>} dihedral_zeta_4=-150.8; -{* zeta dihedral range *} -{===>} error_zeta_4=50.0; - -{============================================= C1'-C1' restraints ==========================================} - -{* Have the length of the C1'-C1' virtual bonds measured and restraints. *} -{+ choice: true false +} -{===>} dna_pick_c1=false; - -{* Error range used for C1'-C1' virtual bonds *} -{===>} c1_low=0.05; -{===>} c1_up=0.05; - -{=========================================== Watson-Crick base pairs =======================================} - -{* pick Watson-Crick restraint values from structure *} -{+ choice: true false +} -{===>} dna_pick_wc=true; -{* error range used for dna_pick_wc defined Watson-Crick restraints *} -{===>} wc_low=0.05; -{===>} wc_up=0.05; -{* for URI, for default much lower range... why?*} -{===>} wc_low_uri=0.01; -{===>} wc_up_uri=0.01; - -{* residues which form Watson-Crick pairs *} - -{* selection for pair 1 base A *} -{===>} base_a_1=(resid 1 and segid B); -{* selection for pair 1 base B *} -{===>} base_b_1=(resid 40 and segid B); - -{* selection for pair 2 base A *} -{===>} base_a_2=(resid 2 and segid B); -{* selection for pair 2 base B *} -{===>} base_b_2=(resid 39 and segid B); - -{* selection for pair 3 base A *} -{===>} base_a_2=(resid 3 and segid B); -{* selection for pair 3 base B *} -{===>} base_b_2=(resid 38 and segid B); - -{* selection for pair 4 base A *} -{===>} base_a_4=(resid 4 and segid B); -{* selection for pair 4 base B *} -{===>} base_b_4=(resid 37 and segid B); - -{* selection for pair 5 base A *} -{===>} base_a_5=(resid 5 and segid B); -{* selection for pair 5 base B *} -{===>} base_b_5=(resid 36 and segid B); - -{* selection for pair 6 base A *} -{===>} base_a_6=(resid 6 and segid B); -{* selection for pair 6 base B *} -{===>} base_b_6=(resid 35 and segid B); - -{* selection for pair 7 base A *} -{===>} base_a_7=(resid 7 and segid B); -{* selection for pair 7 base B *} -{===>} base_b_7=(resid 34 and segid B); - -{* selection for pair 8 base A *} -{===>} base_a_8=(resid 8 and segid B); -{* selection for pair 8 base B *} -{===>} base_b_8=(resid 33 and segid B); - -{* selection for pair 9 base A *} -{===>} base_a_9=(resid 9 and segid B); -{* selection for pair 9 base B *} -{===>} base_b_9=(resid 32 and segid B); - -{* selection for pair 10 base A *} -{===>} base_a_10=(resid 10 and segid B); -{* selection for pair 10 base B *} -{===>} base_b_10=(resid 31 and segid B); - -{* selection for pair 11 base A *} -{===>} base_a_11=(resid 11 and segid B); -{* selection for pair 11 base B *} -{===>} base_b_11=(resid 30 and segid B); - -{* selection for pair 12 base A *} -{===>} base_a_12=(resid 12 and segid B); -{* selection for pair 12 base B *} -{===>} base_b_12=(resid 29 and segid B); - -{* selection for pair 13 base A *} -{===>} base_a_13=(resid 13 and segid B); -{* selection for pair 13 base B *} -{===>} base_b_13=(resid 28 and segid B); - -{* selection for pair 14 base A *} -{===>} base_a_14=(resid 14 and segid B); -{* selection for pair 14 base B *} -{===>} base_b_14=(resid 27 and segid B); - -{* selection for pair 15 base A *} -{===>} base_a_15=(resid 15 and segid B); -{* selection for pair 15 base B *} -{===>} base_b_15=(resid 26 and segid B); - -{* selection for pair 16 base A *} -{===>} base_a_16=(resid 16 and segid B); -{* selection for pair 16 base B *} -{===>} base_b_16=(resid 25 and segid B); - -{* selection for pair 17 base A *} -{===>} base_a_17=(resid 17 and segid B); -{* selection for pair 17 base B *} -{===>} base_b_17=(resid 24 and segid B); - -{* selection for pair 18 base A *} -{===>} base_a_18=(resid 18 and segid B); -{* selection for pair 18 base B *} -{===>} base_b_18=(resid 23 and segid B); - -{* selection for pair 19 base A *} -{===>} base_a_19=(resid 19 and segid B); -{* selection for pair 19 base B *} -{===>} base_b_19=(resid 22 and segid B); - -{* selection for pair 20 base A *} -{===>} base_a_20=(resid 20 and segid B); -{* selection for pair 20 base B *} -{===>} base_b_20=(resid 21 and segid B); - -{=========================================================================================================} -{ things below this line do not normally need to be changed } -{=========================================================================================================} - - ) {- end block parameter definition -} - -{- the planarity restraints for Watson-Crick base pairing -} - -if (&basepair_planar=true) then - evaluate ($pair=1) - evaluate ($done=false) - while ( $done = false ) loop plan_paired - if ( &exist_base_a_$pair = true ) then - if ( &exist_base_b_$pair = true ) then - show (segid) ( &base_a_$pair and name C1' ) - evaluate ($Asegid=$result) - show (resid) ( &base_a_$pair and name C1' ) - evaluate ($Aresid=$result) - show (segid) ( &base_b_$pair and name C1' ) - evaluate ($Bsegid=$result) - show (resid) ( &base_b_$pair and name C1' ) - evaluate ($Bresid=$result) - evaluate ($plweight = 20) ! Enforce planarity by increasing plweight value. - - restraints plane - - group - selection=(((segid $Asegid and resid $Aresid) or (segid $Bsegid and resid $Bresid)) and - (resn THY or resn CYT or resn GUA or resn ADE or resn URI or - resn T or resn C or resn G or resn A or resn U or - resn DT or resn DC or resn DG or resn DA) and - not (name c#' or name h#' or name h#'' or name o#p or - name h7# or name o#' or name p or name h#t or name o#t)) - weight=$plweight - end - end - end if - else - evalute ($done = true) - end if - evaluate ($pair = $pair + 1) - end loop plan_paired -else -end if -flag include plan end - -{- the planarity restraints single bases -} - - for $id in id ( &bases_planar and tag and not (resn WAT or resn HOH or resn TIP*) ) loop plan - show (segid) (id $id) - evaluate ($segid=$result) - show (resid) (id $id) - evaluate ($resid=decode($result)) - evaluate ($plweight = 20) - - restraints plane - - group - selection=( segid $segid and resid $resid and - (resn THY or resn CYT or resn GUA or resn ADE or resn URI or - resn T or resn C or resn G or resn A or resn U or - resn DT or resn DC or resn DG or resn DA) and - not (name c#' or name h#' or name h#'' or name o#p or - name h7# or name o#' or name p or name h#t or name o#t)) - weight=$plweight - end - end - end loop plan - -{- Dihedral restraints for the sugar pucker -} - -if (&dna_pick_pucdih=true) then - evaluate ($group=1) - evaluate ($done=false) - while ( $done = false ) loop dihe - if ( &exist_pucker_$group = true ) then - show sum(1) ( &pucker_$group ) - if ( $result > 0 ) then - evaluate ($min_resid_$group = 99999) - evaluate ($max_resid_$group = -99999) - evaluate ($error_nu2=&error_nu2_$group) - evaluate ($error_nu3=&error_nu3_$group) - evaluate ($error_nu4=&error_nu4_$group) - for $id in id ( &pucker_$group and tag and not (resn WAT or resn HOH or resn TIP*) ) loop resid - show (segid) (id $id) - evaluate ($segid=$result) - show (resid) ( id $id ) - evaluate ($resid=decode($result)) - evaluate ($min_resid_$group = max($min_resid_$group,$resid)) - evaluate ($max_resid_$group = max($max_resid_$group,$resid)) - pick dihedral - ( segid $segid and resid $resid and name c1' ) - ( segid $segid and resid $resid and name c2' ) - ( segid $segid and resid $resid and name c3' ) - ( segid $segid and resid $resid and name c4' ) - geometry - evaluatate ($dihedral_nu2=$result) - pick dihedral - ( segid $segid and resid $resid and name c5' ) - ( segid $segid and resid $resid and name c4' ) - ( segid $segid and resid $resid and name c3' ) - ( segid $segid and resid $resid and name c2' ) - geometry - evaluatate ($dihedral_nu3=$result) - pick dihedral - ( segid $segid and resid $resid and name c1' ) - ( segid $segid and resid $resid and name o4' ) - ( segid $segid and resid $resid and name c4' ) - ( segid $segid and resid $resid and name c5' ) - geometry - evaluatate ($dihedral_nu4=$result) - - restraints dihedral - assign ( segid $segid and resid $resid and name c1' ) - ( segid $segid and resid $resid and name c2' ) - ( segid $segid and resid $resid and name c3' ) - ( segid $segid and resid $resid and name c4' ) - 20.0 $dihedral_nu2 $error_nu2 2 - assign ( segid $segid and resid $resid and name c5' ) - ( segid $segid and resid $resid and name c4' ) - ( segid $segid and resid $resid and name c3' ) - ( segid $segid and resid $resid and name c2' ) - 20.0 $dihedral_nu3 $error_nu3 2 - assign ( segid $segid and resid $resid and name c1' ) - ( segid $segid and resid $resid and name o4' ) - ( segid $segid and resid $resid and name c4' ) - ( segid $segid and resid $resid and name c5' ) - 20.0 $dihedral_nu4 $error_nu4 2 - scale=20.0 - end - end loop resid - end if - else - evaluate ($done=true) - end if - evaluate ($group=$group+1) - end loop dihe - - else - - evaluate ($group=1) - evaluate ($done=false) - while ( $done = false ) loop dihe - if ( &exist_pucker_$group = true ) then - show sum(1) ( &pucker_$group ) - if ( $result > 0 ) then - if ( &form_$group = "a-form" ) then - evaluate ($dihedral_nu2=37.053) - evaluate ($dihedral_nu3=-155.59) - evaluate ($dihedral_nu4=144.26) - elseif ( &form_$group = "b-form" ) then - evaluate ($dihedral_nu2=-34.9) - evaluate ($dihedral_nu3=-86.4) - evaluate ($dihedral_nu4=106.4) - elseif ( &form_$group = "other" ) then - evaluate ($dihedral_nu2=&dihedral_nu2_$group) - evaluate ($dihedral_nu3=&dihedral_nu3_$group) - evaluate ($dihedral_nu4=&dihedral_nu4_$group) - end if - - evaluate ($min_resid_$group = 99999) - evaluate ($max_resid_$group = -99999) - - for $id in id ( &pucker_$group and tag and not (resn WAT or resn HOH or resn TIP*) ) loop resid - - show (segid) (id $id) - evaluate ($segid=$result) - show (resid) ( id $id ) - evaluate ($resid=decode($result)) - evaluate ($min_resid_$group = max($min_resid_$group,$resid)) - evaluate ($max_resid_$group = max($max_resid_$group,$resid)) - - restraints dihedral - assign ( segid $segid and resid $resid and name c1' ) - ( segid $segid and resid $resid and name c2' ) - ( segid $segid and resid $resid and name c3' ) - ( segid $segid and resid $resid and name c4' ) - 20.0 $dihedral_nu2 0.0 2 - assign ( segid $segid and resid $resid and name c5' ) - ( segid $segid and resid $resid and name c4' ) - ( segid $segid and resid $resid and name c3' ) - ( segid $segid and resid $resid and name c2' ) - 20.0 $dihedral_nu3 0.0 2 - assign ( segid $segid and resid $resid and name c1' ) - ( segid $segid and resid $resid and name o4' ) - ( segid $segid and resid $resid and name c4' ) - ( segid $segid and resid $resid and name c5' ) - 20.0 $dihedral_nu4 0.0 2 - - scale=20.0 - end - end loop resid - end if - else - evaluate ($done=true) - end if - evaluate ($group=$group+1) - end loop dihe -end if -flags include cdih end - -{- Dihedral restraints for the phosphate backbone -} - -if (&dna_pick_bacdih=true) then - evaluate ($group=1) - evaluate ($done=false) - while ( $done = false ) loop bdihe - if ( &exist_dihedral_$group = true ) then - show sum(1) ( &dihedral_$group ) - if ( $result > 0 ) then - evaluate ($resid=$min_resid_$group) - evaluate ($nres=$max_resid_$group - $min_resid_$group + 1) - evaluate ($error_alpha=&error_alpha_$group) - evaluate ($error_beta=&error_beta_$group) - evaluate ($error_gamma=&error_gamma_$group) - evaluate ($error_zeta=&error_zeta_$group) - evaluate ($error_epsilon=&error_eps_$group) - evaluate ($error_delta=&error_delta_$group) - for $id in id ( &dihedral_$group and tag and not (resn WAT or resn HOH or resn TIP*) ) loop resid - show (segid) (id $id) - evaluate ($segid=$result) - show (resid) ( id $id ) - evaluate ($resid=decode($result)) - if ($resid > $min_resid_$group) then - evaluate ($rprec = $resid - 1) - pick dihedral - ( segid $segid and resid $rprec and name O3' ) - ( segid $segid and resid $resid and name P ) - ( segid $segid and resid $resid and name O5' ) - ( segid $segid and resid $resid and name C5' ) - geometry - evaluatate ($dihedral_alpha=$result) - pick dihedral - ( segid $segid and resid $resid and name P ) - ( segid $segid and resid $resid and name O5' ) - ( segid $segid and resid $resid and name C5' ) - ( segid $segid and resid $resid and name C4' ) - geometry - evaluatate ($dihedral_beta=$result) - - restraint dihedral - ! alpha - assign ( segid $segid and resid $rprec and name O3' ) - ( segid $segid and resid $resid and name P ) - ( segid $segid and resid $resid and name O5' ) - ( segid $segid and resid $resid and name C5' ) - 1.0 $dihedral_alpha $error_alpha 2 - ! beta - assign ( segid $segid and resid $resid and name P ) - ( segid $segid and resid $resid and name O5' ) - ( segid $segid and resid $resid and name C5' ) - ( segid $segid and resid $resid and name C4' ) - 1.0 $dihedral_beta $error_beta 2 - scale 200.0 - end - end if - - pick dihedral - ( segid $segid and resid $resid and name O5' ) - ( segid $segid and resid $resid and name C5' ) - ( segid $segid and resid $resid and name C4' ) - ( segid $segid and resid $resid and name C3' ) - geometry - evaluatate ($dihedral_gamma=$result) - pick dihedral - ( segid $segid and resid $resid and name C5' ) - ( segid $segid and resid $resid and name C4' ) - ( segid $segid and resid $resid and name C3' ) - ( segid $segid and resid $resid and name O3' ) - geometry - evaluatate ($dihedral_delta=$result) - - restraints dihedral - ! gamma - assign ( segid $segid and resid $resid and name O5' ) - ( segid $segid and resid $resid and name C5' ) - ( segid $segid and resid $resid and name C4' ) - ( segid $segid and resid $resid and name C3' ) - 1.0 $dihedral_gamma $error_gamma 2 - ! delta - assign ( segid $segid and resid $resid and name C5' ) - ( segid $segid and resid $resid and name C4' ) - ( segid $segid and resid $resid and name C3' ) - ( segid $segid and resid $resid and name O3' ) - 1.0 $dihedral_delta $error_delta 2 - scale=200.0 - end - - if ($resid < $max_resid_$group) then - evaluate ($rfoll = $resid + 1) - pick dihedral - ( segid $segid and resid $resid and name C4' ) - ( segid $segid and resid $resid and name C3' ) - ( segid $segid and resid $resid and name O3' ) - ( segid $segid and resid $rfoll and name P ) - geometry - evaluatate ($dihedral_epsilon=$result) - pick dihedral - ( segid $segid and resid $resid and name C3' ) - ( segid $segid and resid $resid and name O3' ) - ( segid $segid and resid $rfoll and name P ) - ( segid $segid and resid $rfoll and name O5' ) - geometry - evaluatate ($dihedral_zeta=$result) - restraint dihedral - ! epsilon - assign ( segid $segid and resid $resid and name C4' ) - ( segid $segid and resid $resid and name C3' ) - ( segid $segid and resid $resid and name O3' ) - ( segid $segid and resid $rfoll and name P ) - 1.0 $dihedral_epsilon $error_epsilon 2 - ! zeta - assign ( segid $segid and resid $resid and name C3' ) - ( segid $segid and resid $resid and name O3' ) - ( segid $segid and resid $rfoll and name P ) - ( segid $segid and resid $rfoll and name O5' ) - 1.0 $dihedral_zeta $error_zeta 2 - scale 200.0 - end - end if - end loop resid - end if - else - evaluate ($done=true) - end if - evaluate ($group=$group+1) - end loop bdihe - - else - - evaluate ($group=1) - evaluate ($done=false) - while ( $done = false ) loop bdihe - if ( &exist_dihedral_$group = true ) then - show sum(1) ( &dihedral_$group ) - if ( $result > 0 ) then - evaluate ($resid=$min_resid_$group) - evaluate ($nres=$max_resid_$group - $min_resid_$group + 1) - if ( &form_$group = "a-form" ) then - evaluate ($dihedral_alpha=-70) - evaluate ($error_alpha=50) - evaluate ($dihedral_beta=180) - evaluate ($error_beta=50) - evaluate ($dihedral_gamma=60) - evaluate ($error_gamma=35) - evaluate ($dihedral_delta=81) - evaluate ($error_delta=20) - evaluate ($dihedral_zeta=-85) - evaluate ($error_zeta=50) - evaluate ($dihedral_epsilon=180) - evaluate ($error_epsilon=35) - elseif ( &form_$group = "b-form" ) then - evaluate ($dihedral_alpha=-63.6) - evaluate ($error_alpha=6) - evaluate ($dihedral_beta=176) - evaluate ($error_beta=7) - evaluate ($dihedral_gamma=51.4) - evaluate ($error_gamma=7) - evaluate ($dihedral_delta=128) - evaluate ($error_delta=13) - evaluate ($dihedral_epsilon=-171.7) - evaluate ($error_epsilon=3.7) - evaluate ($dihedral_zeta=-103.8) - evaluate ($error_zeta=10) - elseif ( &form_$group = "other" ) then - evaluate ($dihedral_alpha=&dihedral_alpha_$group) - evaluate ($error_alpha=&error_alpha_$group) - evaluate ($dihedral_beta=&dihedral_beta_$group) - evaluate ($error_beta=&error_beta_$group) - evaluate ($dihedral_gamma=&dihedral_gamma_$group) - evaluate ($error_gamma=&error_gamma_$group) - evaluate ($dihedral_delta=&dihedral_delta_$group) - evaluate ($error_delta=&error_delta_$group) - evaluate ($dihedral_zeta=&dihedral_zeta_$group) - evaluate ($error_zeta=&error_zeta_$group) - evaluate ($dihedral_epsilon=&dihedral_eps_$group) - evaluate ($error_epsilon=&error_eps_$group) - end if - - for $id in id ( &dihedral_$group and tag and not (resn WAT or resn HOH or resn TIP*) ) loop resid - show (segid) (id $id) - evaluate ($segid=$result) - show (resid) ( id $id ) - evaluate ($resid=decode($result)) - if ($resid > $min_resid_$group) then - evaluate ($rprec = $resid - 1) - restraint dihedral - ! alpha - assign ( segid $segid and resid $rprec and name O3' ) - ( segid $segid and resid $resid and name P ) - ( segid $segid and resid $resid and name O5' ) - ( segid $segid and resid $resid and name C5' ) - 1.0 $dihedral_alpha $error_alpha 2 - ! beta - assign ( segid $segid and resid $resid and name P ) - ( segid $segid and resid $resid and name O5' ) - ( segid $segid and resid $resid and name C5' ) - ( segid $segid and resid $resid and name C4' ) - 1.0 $dihedral_beta $error_beta 2 - scale 200.0 - end - end if - - restraints dihedral - ! gamma - assign ( segid $segid and resid $resid and name O5' ) - ( segid $segid and resid $resid and name C5' ) - ( segid $segid and resid $resid and name C4' ) - ( segid $segid and resid $resid and name C3' ) - 1.0 $dihedral_gamma $error_gamma 2 - !delta - assign ( segid $segid and resid $resid and name C5' ) - ( segid $segid and resid $resid and name C4' ) - ( segid $segid and resid $resid and name C3' ) - ( segid $segid and resid $resid and name O3' ) - 1.0 $dihedral_delta $error_delta 2 - scale=200.0 - end - - if ($resid < $max_resid_$group) then - evaluate ($rfoll = $resid + 1) - restraint dihedral - ! epsilon - assign ( segid $segid and resid $resid and name C4' ) - ( segid $segid and resid $resid and name C3' ) - ( segid $segid and resid $resid and name O3' ) - ( segid $segid and resid $rfoll and name P ) - 1.0 $dihedral_epsilon $error_epsilon 2 - ! zeta - assign ( segid $segid and resid $resid and name C3' ) - ( segid $segid and resid $resid and name O3' ) - ( segid $segid and resid $rfoll and name P ) - ( segid $segid and resid $rfoll and name O5' ) - 1.0 $dihedral_zeta $error_zeta 2 - scale 200.0 - end - end if - end loop resid - end if - else - evaluate ($done=true) - end if - evaluate ($group=$group+1) - end loop bdihe - end if -flags include cdih end - -{- C1'-C1' virtual bond length restraints -} - -noe - class hres - averaging hres cent - potential hres square - sqconstant hres 1. - sqexponent hres 2 - scale hres 70. - end - -if (&dna_pick_c1 = true) then - evaluate ($pair=1) - evaluate ($done=false) - while ( $done = false ) loop noe - if ( &exist_base_a_$pair = true ) then - if ( &exist_base_b_$pair = true ) then - show ( resn ) ( &base_a_$pair and name C1' ) - evaluate ($ares=$result) - show ( resn ) ( &base_b_$pair and name C1' ) - evaluate ($bres=$result) - pick bond - (&base_a_$pair and name C1') - (&base_b_$pair and name C1') - geometry - evaluate ($c1c1=$result) - noe - assign (&base_a_$pair and name C1') - (&base_b_$pair and name C1') $c1c1 &c1_low &c1_up - end - end if - else - evaluate ($done=true) - end if - evaluate ($pair=$pair+1) - end loop noe - else -end if -flags include noe end - -{- Watson-Crick base pairing -} - - noe - class hres - averaging hres cent - potential hres square - sqconstant hres 1. - sqexponent hres 2 - scale hres 70. - end - - if (&dna_pick_wc = true) then - evaluate ($pair=1) - evaluate ($done=false) - while ( $done = false ) loop noe - if ( &exist_base_a_$pair = true ) then - if ( &exist_base_b_$pair = true ) then - show ( resn ) ( &base_a_$pair and name C1' ) - evaluate ($ares=$result) - show ( resn ) ( &base_b_$pair and name C1' ) - evaluate ($bres=$result) - if ( $ares = THY ) then - pick bond - (&base_a_$pair and name o4) - (&base_b_$pair and name n6) - geometry - evaluate ($o4n6=$result) - pick bond - (&base_a_$pair and name n3) - (&base_b_$pair and name n1) - geometry - evaluate ($n3n1=$result) - pick bond - (&base_a_$pair and name h3) - (&base_b_$pair and name n1) - geometry - evaluate ($h3n1=$result) - pick bond - (&base_a_$pair and name o2) - (&base_b_$pair and name h2) - geometry - evaluate ($o2h2=$result) - pick bond - (&base_a_$pair and name o4) - (&base_b_$pair and name n1) - geometry - evaluate ($o4n1=$result) - pick bond - (&base_a_$pair and name o2) - (&base_b_$pair and name n1) - geometry - evaluate ($o2n1=$result) - elseif ( $ares = URI ) then - pick bond - (&base_a_$pair and name o4) - (&base_b_$pair and name n6) - geometry - evaluate ($o4n6=$result) - pick bond - (&base_a_$pair and name n3) - (&base_b_$pair and name n1) - geometry - evaluate ($n3n1=$result) - pick bond - (&base_a_$pair and name o4) - (&base_b_$pair and name n1) - geometry - evaluate ($o4n1=$result) - pick bond - (&base_a_$pair and name o2) - (&base_b_$pair and name n6) - geometry - evaluate ($o2n6=$result) - elseif ( $ares = ADE ) then - pick bond - (&base_b_$pair and name o4) - (&base_a_$pair and name n6) - geometry - evaluate ($o4n6=$result) - pick bond - (&base_b_$pair and name n3) - (&base_a_$pair and name n1) - geometry - evaluate ($n3n1=$result) - pick bond - (&base_b_$pair and name h3) - (&base_a_$pair and name n1) - geometry - evaluate ($h3n1=$result) - pick bond - (&base_b_$pair and name o2) - (&base_a_$pair and name h2) - geometry - evaluate ($o2h2=$result) - pick bond - (&base_b_$pair and name o4) - (&base_a_$pair and name n1) - geometry - evaluate ($o4n1=$result) - pick bond - (&base_b_$pair and name o2) - (&base_a_$pair and name n1) - geometry - evaluate ($o2n1=$result) - elseif ( $ares = CYT ) then - pick bond - (&base_a_$pair and name n3) - (&base_b_$pair and name n1) - geometry - evaluate ($n3n1=$result) - pick bond - (&base_a_$pair and name n3) - (&base_b_$pair and name h1) - geometry - evaluate ($n3h1=$result) - pick bond - (&base_a_$pair and name n4) - (&base_b_$pair and name o6) - geometry - evaluate ($n4o6=$result) - pick bond - (&base_a_$pair and name o2) - (&base_b_$pair and name n2) - geometry - evaluate ($o2n2=$result) - pick bond - (&base_a_$pair and name n3) - (&base_b_$pair and name o6) - geometry - evaluate ($n3o6=$result) - pick bond - (&base_a_$pair and name n3) - (&base_b_$pair and name n2) - geometry - evaluate ($n3n2=$result) - elseif ( $ares = GUA ) then - pick bond - (&base_b_$pair and name n3) - (&base_a_$pair and name n1) - geometry - evaluate ($n3n1=$result) - pick bond - (&base_b_$pair and name n3) - (&base_a_$pair and name h1) - geometry - evaluate ($n3h1=$result) - pick bond - (&base_b_$pair and name n4) - (&base_a_$pair and name o6) - geometry - evaluate ($n4o6=$result) - pick bond - (&base_b_$pair and name o2) - (&base_a_$pair and name n2) - geometry - evaluate ($o2n2=$result) - pick bond - (&base_b_$pair and name n3) - (&base_a_$pair and name o6) - geometry - evaluate ($n3o6=$result) - pick bond - (&base_b_$pair and name n3) - (&base_a_$pair and name n2) - geometry - evaluate ($n3n2=$result) - - end if - noe - if ( $ares = THY ) then - assign (&base_a_$pair and name o4) - (&base_b_$pair and name n6) $o4n6 &wc_low &wc_up - assign (&base_a_$pair and name n3) - (&base_b_$pair and name n1) $n3n1 &wc_low &wc_up - assign (&base_a_$pair and name h3) - (&base_b_$pair and name n1) $h3n1 &wc_low &wc_up - assign (&base_a_$pair and name o2) - (&base_b_$pair and name h2) $o2h2 &wc_low &wc_up - assign (&base_a_$pair and name o4) - (&base_b_$pair and name n1) $o4n1 &wc_low &wc_up - assign (&base_a_$pair and name o2) - (&base_b_$pair and name n1) $o2n1 &wc_low &wc_up - elseif ( $ares = URI ) then - assign (&base_a_$pair and name o4) - (&base_b_$pair and name n6) $o4n6 &wc_low_uri &wc_up_uri - assign (&base_a_$pair and name n3) - (&base_b_$pair and name n1) $n3n1 &wc_low_uri &wc_up_uri - assign (&base_a_$pair and name o4) - (&base_b_$pair and name n1) $o4n1 &wc_low_uri &wc_up_uri - assign (&base_a_$pair and name o2) - (&base_b_$pair and name n6) $o2n6 &wc_low_uri &wc_up_uri - elseif ( $ares = ADE ) then - assign (&base_b_$pair and name o4) - (&base_a_$pair and name n6) $o4n6 &wc_low &wc_up - assign (&base_b_$pair and name n3) - (&base_a_$pair and name n1) $n3n1 &wc_low &wc_up - assign (&base_b_$pair and name h3) - (&base_a_$pair and name n1) $h3n1 &wc_low &wc_up - assign (&base_b_$pair and name o2) - (&base_a_$pair and name h2) $o2h2 &wc_low &wc_up - assign (&base_b_$pair and name o4) - (&base_a_$pair and name n1) $o4n1 &wc_low &wc_up - assign (&base_b_$pair and name o2) - (&base_a_$pair and name n1) $o2n1 &wc_low &wc_up - elseif ( $ares = CYT ) then - assign (&base_a_$pair and name n3) - (&base_b_$pair and name n1) $n3n1 &wc_low &wc_up - assign (&base_a_$pair and name n3) - (&base_b_$pair and name h1) $n3h1 &wc_low &wc_up - assign (&base_a_$pair and name n4) - (&base_b_$pair and name o6) $n4o6 &wc_low &wc_up - assign (&base_a_$pair and name o2) - (&base_b_$pair and name n2) $o2n2 &wc_low &wc_up - assign (&base_a_$pair and name n3) - (&base_b_$pair and name o6) $n3o6 &wc_low &wc_up - assign (&base_a_$pair and name n3) - (&base_b_$pair and name n2) $n3n2 &wc_low &wc_up - elseif ( $ares = GUA ) then - assign (&base_b_$pair and name n3) - (&base_a_$pair and name n1) $n3n1 &wc_low &wc_up - assign (&base_b_$pair and name n3) - (&base_a_$pair and name h1) $n3h1 &wc_low &wc_up - assign (&base_b_$pair and name n4) - (&base_a_$pair and name o6) $n4o6 &wc_low &wc_up - assign (&base_b_$pair and name o2) - (&base_a_$pair and name n2) $o2n2 &wc_low &wc_up - assign (&base_b_$pair and name n3) - (&base_a_$pair and name o6) $n3o6 &wc_low &wc_up - assign (&base_b_$pair and name n3) - (&base_a_$pair and name n2) $n3n2 &wc_low &wc_up - end if - end - end if - else - evaluate ($done=true) - end if - evaluate ($pair=$pair+1) - end loop noe - - else - - evaluate ($pair=1) - evaluate ($done=false) - while ( $done = false ) loop noe - if ( &exist_base_a_$pair = true ) then - if ( &exist_base_b_$pair = true ) then - show ( resn ) ( &base_a_$pair and name C1' ) - evaluate ($ares=$result) - show ( resn ) ( &base_b_$pair and name C1' ) - evaluate ($bres=$result) - noe - if ( $ares = THY ) then - assign (&base_a_$pair and name o4) - (&base_b_$pair and name n6) 2.89 0.2 0.2 - assign (&base_a_$pair and name n3) - (&base_b_$pair and name n1) 2.92 0.2 0.2 - assign (&base_a_$pair and name h3) - (&base_b_$pair and name n1) 1.87 0.2 0.2 - assign (&base_a_$pair and name o2) - (&base_b_$pair and name h2) 2.94 0.2 0.2 - assign (&base_a_$pair and name o4) - (&base_b_$pair and name n1) 3.69 0.2 0.2 - assign (&base_a_$pair and name o2) - (&base_b_$pair and name n1) 3.67 0.2 0.2 - elseif ( $ares = URI ) then - assign (&base_a_$pair and name o4) - (&base_b_$pair and name n6) 2.95 0.01 0.01 - assign (&base_a_$pair and name n3) - (&base_b_$pair and name n1) 2.82 0.01 0.01 - assign (&base_a_$pair and name o4) - (&base_b_$pair and name n1) 3.63 0.01 0.01 - assign (&base_a_$pair and name o2) - (&base_b_$pair and name n6) 5.40 0.01 0.01 - elseif ( $ares = ADE ) then - assign (&base_b_$pair and name o4) - (&base_a_$pair and name n6) 2.89 0.2 0.2 - assign (&base_b_$pair and name n3) - (&base_a_$pair and name n1) 2.92 0.2 0.2 - assign (&base_b_$pair and name h3) - (&base_a_$pair and name n1) 1.87 0.2 0.2 - assign (&base_b_$pair and name o2) - (&base_a_$pair and name h2) 2.94 0.2 0.2 - assign (&base_b_$pair and name o4) - (&base_a_$pair and name n1) 3.69 0.2 0.2 - assign (&base_b_$pair and name o2) - (&base_a_$pair and name n1) 3.67 0.2 0.2 - elseif ( $ares = CYT ) then - assign (&base_a_$pair and name n3) - (&base_b_$pair and name n1) 2.87 0.2 0.2 - assign (&base_a_$pair and name n3) - (&base_b_$pair and name h1) 1.86 0.2 0.2 - assign (&base_a_$pair and name n4) - (&base_b_$pair and name o6) 2.81 0.2 0.2 - assign (&base_a_$pair and name o2) - (&base_b_$pair and name n2) 2.81 0.2 0.2 - assign (&base_a_$pair and name n3) - (&base_b_$pair and name o6) 3.58 0.2 0.2 - assign (&base_a_$pair and name n3) - (&base_b_$pair and name n2) 3.63 0.2 0.2 - elseif ( $ares = GUA ) then - assign (&base_b_$pair and name n3) - (&base_a_$pair and name n1) 2.87 0.2 0.2 - assign (&base_b_$pair and name n3) - (&base_a_$pair and name h1) 1.86 0.2 0.2 - assign (&base_b_$pair and name n4) - (&base_a_$pair and name o6) 2.81 0.2 0.2 - assign (&base_b_$pair and name o2) - (&base_a_$pair and name n2) 2.81 0.2 0.2 - assign (&base_b_$pair and name n3) - (&base_a_$pair and name o6) 3.58 0.2 0.2 - assign (&base_b_$pair and name n3) - (&base_a_$pair and name n2) 3.63 0.2 0.2 - end if - end - end if - else - evaluate ($done=true) - end if - evaluate ($pair=$pair+1) - end loop noe - end if - flags include noe end - -set message=off echo=off end - - diff --git a/src/haddock/modules/flexref/cns/dna_break.cns b/src/haddock/modules/flexref/cns/dna_break.cns deleted file mode 100644 index 51aac18ff..000000000 --- a/src/haddock/modules/flexref/cns/dna_break.cns +++ /dev/null @@ -1,82 +0,0 @@ -! dna_break.cns -! Check for DNA chain breaks -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! - - evaluate ($dbreak=0) - - for $id1 in id ( name O5' and bondedto(name C5') ) loop dbreak - - show (segid) (id $id1) - evaluate ($segid1=$result) - show (resid) (id $id1) - evaluate ($resid1=$result) - show (resn) (id $id1) - evaluate ($resn1=$result) - - show sum(1) (id $id1) - if ( $result = 0 ) then - display unknown coordinates for segid $segid1 resn $resn1 resid $resid1 name O5' - display this coordinate must be known for automatic dna chain break detection - abort - end if - - identity (store1) ( name O3' and bondedto( segid $segid1 and resid $resid1 and name P ) ) - - if ( $select = 1 ) then - show element (store1) (attribute store1 > 0) - evaluate ($id2=$result) - show (segid) (id $id2) - evaluate ($segid2=$result) - show (resid) (id $id2) - evaluate ($resid2=$result) - show (resn) (id $id2) - evaluate ($resn2=$result) - - show sum(1) (id $id2) - if ( $result = 0 ) then - display unknown coordinates for segid $segid2 resn $resn2 resid $resid2 name O3' - display this coordinate must be known for automatic dna chain break detection - abort - end if - - pick bond - (name P and segid $segid1 and resid $resid1) - (name O3' and segid $segid2 and resid $resid2) - geometry - - if ( $result > &dbreak_cutoff ) then - evaluate ($dbreak=$dbreak+1) - evaluate ($seg1.$dbreak=$segid2) - evaluate ($res1.$dbreak=$resid2) - evaluate ($seg2.$dbreak=$segid1) - evaluate ($res2.$dbreak=$resid1) - evaluate ($patch.$dbreak=DNUC) - end if - end if - - end loop dbreak - - evaluate ($counter=1) - - while ($counter <= $dbreak) loop delete - patch $patch.$counter - reference=-=(segid $seg1.$counter and resid $res1.$counter) - reference=+=(segid $seg2.$counter and resid $res2.$counter) - end - buffer message - display dna link removed (applied $patch.$counter): from \ -$seg1.$counter[a4] $res1.$counter[a4] to $seg2.$counter[a4] $res2.$counter[a4] - end - evaluate ($counter=$counter+1) - end loop delete - - - diff --git a/src/haddock/modules/flexref/cns/edesolv.inp b/src/haddock/modules/flexref/cns/edesolv.inp deleted file mode 100644 index 34f5e28a5..000000000 --- a/src/haddock/modules/flexref/cns/edesolv.inp +++ /dev/null @@ -1,99 +0,0 @@ -! edesolv.inp -! Calculate the empirical desolvation enery of a complex -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! - -@RUN:initialize.cns(iteration=$iteration;) - -@NEWIT:iteration.cns(iteration=$iteration;) - -@RUN:run.cns( -iteration =$iteration; -filenames =$filenames; -data =$data; -iterations=$iterations; -saprotocol=$saprotocol; -refine =$refine; -toppar =$toppar; -analysis =$analysis; -) -set message=on echo=on end - -!reads in structure, coordinates and parameter files -@RUN:read_struc.cns -@RUN:read_struc-cg.cns - -@PREVIT:file.cns(filenames=$filenames) -evaluate ($file = $filenames.bestfile_1) -coor @@$file - -delete sele=(not(known)) end - -set display NEWIT:analysis/edesolv.disp end - -display #Complex statistics -display # -display #Desolvation energy - -evaluate ($sum_desolv = 0) -evaluate ($sumsq_desolv = 0) - -@PREVIT:file.cns(filenames=$filenames) - -{====>} {* define ASA-based solvation parameters *} -inline @RUN:def_solv_param.cns - -evaluate ($count = 1) -evaluate ($nstruc1 = 0) -while ($count le $Iterations.anastruc) loop main - evaluate ($file = $filenames.bestfile_$count) - coor init end - if ($file ne "") then - coor @@$file - evaluate ($nstruc1 = $nstruc1 + 1) - - evaluate ($nchain1 = 1) - evaluate ($saafree = 0) - evaluate ($esolfree = 0) - while ($nchain1 <= $data.ncomponents) loop nloop1 - {====>} {* buried surface area *} - do (rmsd = 0) (all) - do (store2 = 0) (all) - surface mode=access accu=0.075 rh2o=1.4 sele=(segid $Toppar.prot_segid_$nchain1) end - do (store2 = rmsd * store1) (segid $Toppar.prot_segid_$nchain1 and not ((resn WAT or resn HOH or resn TIP*) or resn DMS)) - show sum (store2) (segid $Toppar.prot_segid_$nchain1 and not ((resn WAT or resn HOH or resn TIP*) or resn DMS)) - evaluate ($esolfree = $esolfree + $result) - evaluate ($nchain1 = $nchain1 + 1) - end loop nloop1 - - do (rmsd = 0) (all) - do (store2 = 0) (all) - surface mode=access accu=0.075 rh2o=1.4 sele=(not ((resn WAT or resn HOH or resn TIP*) or resn DMS)) end - do (store2 = rmsd * store1) (not ((resn WAT or resn HOH or resn TIP*) or resn DMS)) - show sum (store2) (not ((resn WAT or resn HOH or resn TIP*) or resn DMS)) - evaluate ($esolcplx = $result) - evaluate ($edesolv = ($esolcplx - $esolfree)) - evaluate ($sum_desolv = $sum_desolv + $edesolv) - evaluate ($sumsq_desolv = $sumsq_desolv + $edesolv**2) - - display # $file $edesolv - - end if - if ($count ge $Iterations.anastruc) then exit loop main end if - evaluate ($count = $count + 1) -end loop main - -evaluate ($mean_desolv = $sum_desolv / $nstruc1) -evaluate ($stdev_desolv = sqrt(($sumsq_desolv - $nstruc1*$mean_desolv**2)/ $nstruc1)) - -display # mean values -display # desolv $mean_desolv (+/- $stdev_desolv ) [kcal/Mol] - -stop diff --git a/src/haddock/modules/flexref/cns/em_orien_search.cns b/src/haddock/modules/flexref/cns/em_orien_search.cns deleted file mode 100644 index 86ae78815..000000000 --- a/src/haddock/modules/flexref/cns/em_orien_search.cns +++ /dev/null @@ -1,27 +0,0 @@ -! perform a search to orient the complex properly in the density. -if ($data.ncomponents = 2) then -! @RUN:em_rot_search.cns(data=$data; saprotocol=$saprotocol; -! toppar=$toppar;) - @RUN:em_rot_search.cns -elseif ($data.flags.sym = true) then - ! the search for symmetry only works for C-symmetry. Other symmetries - ! will break! -! @RUN:em_sym_search.cns(data=$data; saprotocol=$saprotocol; -! toppar=$toppar;) - @RUN:em_sym_search.cns -end if - -! do a final rigid body energy minimization directly against the EM -! density, but without the centroid restraints -flags include xref end -minimize rigid - eval($nchain1 = 0) - while ($nchain1 < $data.ncomponents) loop nloop1 - eval($nchain1 = $nchain1 + 1) - group (segid $toppar.prot_segid_$nchain1 or segid $watersegname_$nchain1 and not name MAP) - translation=true - end loop nloop1 - nstep 250 - nprint 10 -end -flags exclude xref end diff --git a/src/haddock/modules/flexref/cns/em_rot_search.cns b/src/haddock/modules/flexref/cns/em_rot_search.cns deleted file mode 100644 index f85470ebf..000000000 --- a/src/haddock/modules/flexref/cns/em_rot_search.cns +++ /dev/null @@ -1,102 +0,0 @@ -!module(Data; -! Saprotocol; -! Toppar; -! ) -! {*Module optimizes the orientation of binary systems in the EM-density -! -! The orientation is optimized by a fine rotation search of the axis that is -! formed by the line that joins the two centroids. The XREF energy is -! calculated at every orientation to differentiate. -! -! Parameters -! ---------- -! Data -! The Data object -! -! Toppar -! The Toppar object -! -! Notes -! ----- -! The module uses the COMP coordinate set -! The MAIN coordinate set are set to the orientation with the lowest XREF energy -! -! *} - - eval($time0 = $CPU) - - ! Copy main coordinates to the comp set - coor copy selection=(all) end - - ! Get rotation axis used for search. ! It is the line that is made by - ! joining the two centroids - show (x) (name DUM and segid &Toppar.prot_segid_1) - eval($x1 = $result) - show (x) (name DUM and segid &Toppar.prot_segid_2) - eval($x2 = $result) - eval($rot_axis.x = $x1 - $x2) - - show (y) (name DUM and segid &Toppar.prot_segid_1) - eval($y1 = $result) - show (y) (name DUM and segid &Toppar.prot_segid_2) - eval($y2 = $result) - eval($rot_axis.y = $y1 - $y2) - - show (z) (name DUM and segid &Toppar.prot_segid_1) - eval($z1 = $result) - show (z) (name DUM and segid &Toppar.prot_segid_2) - eval($z2 = $result) - eval($rot_axis.z = $z1 - $z2) - - ! Set the XREF flag to calculate the cross correlation potential in CNS - flags include xref end - ! Initialize the search values - eval($angle = 0) - eval($bestangle = 0) - eval($anglestep = 6) - eval($best_fit_energy = 9999) - - while ($angle < 360.0) loop loopsearch - - ! Rotate the system around the axis that is formed - ! by the line created by joining the two centroids. - coor rotate - center=($x1 $y1 $z1) - selection=(not name MAP) - axis ($rot_axis.x $rot_axis.y $rot_axis.z) $angle - end - - ! Calculate the XREF energy - energy end - - ! XREF is internally calculated by CNS - if ($XREF < $best_fit_energy) then - ! Update optimal parameters - eval($best_fit_energy = $XREF) - eval($bestangle = $angle) - end if - - eval($angle = $angle + $anglestep) - - ! Copy the original locations to the main coordinate set - coor swap end - coor copy end - - end loop loopsearch - - ! Reorient the original coordinates to the best fit values - coor rotate - center=($x1 $y1 $z1) - selection=(not name MAP) - axis ($rot_axis.x $rot_axis.y $rot_axis.z) $bestangle - end - - ! Calculate the energy to check - energy end - - ! Turn off the XREF energy term again - flags exclude xref end - - ! Show the time required for the search - eval($time0 = $CPU - $time0) - display Time used for rotational search: $time0 s diff --git a/src/haddock/modules/flexref/cns/em_sym_search.cns b/src/haddock/modules/flexref/cns/em_sym_search.cns deleted file mode 100644 index 86aa9903c..000000000 --- a/src/haddock/modules/flexref/cns/em_sym_search.cns +++ /dev/null @@ -1,74 +0,0 @@ -!module (Data; -! Saprotocol; -! Toppar;) -! {*Module determines the correct orientation for symmetric complexes -! -! Parameters -! ---------- -! Data -! Data object -! -! Saprotocol -! Saprotocol object -! -! Toppar -! Toppar object -! -! Notes -! ----- -! Only C-symmetry is supported. -! Module uses the COMP coordinate set. -! Module might change the MAIN coordinate set -! *} -! -! ! get the local cross correlation of the current orientation -! @RUN:em_calc_lcc.cns(Toppar=&Toppar; -! Data=&Data; -! Saprotocol=&Saprotocol; -! lcc=$lcc; -! ) - @RUN:em_calc_lcc.cns - ! calculate the mid point of the centroids - show average(x) (name MAP) - evaluate($center.x = $result) - show average(y) (name MAP) - evaluate($center.y = $result) - show average(z) (name MAP) - evaluate($center.z = $result) - - ! determine the vector going from the first centroid to the midpoint - ! of the centroids. this represents the axis of rotation - show (x) (name MAP and segid &Toppar.prot_segid_1) - evaluate($map.x = $result) - show (y) (name MAP and segid &Toppar.prot_segid_1) - evaluate($map.y = $result) - show (z) (name MAP and segid &Toppar.prot_segid_1) - evaluate($map.z = $result) - - evaluate($rot_axis.x = $center.x - $map.x) - evaluate($rot_axis.y = $center.y - $map.y) - evaluate($rot_axis.z = $center.z - $map.z) - - ! store the current coordinates in the COMP coordinate set - coor copy selection=(all) end - - ! rotate around the previous determined axis with 180 degrees. - coor rotate - center=($center.x $center.y $center.z) - selection=(not name MAP) - axis ($rot_axis.x $rot_axis.y $rot_axis.z) 180.0 - end - - ! calculate the local cross correlation for the rotated orientation -! @RUN:em_calc_lcc.cns(Toppar=&Toppar; -! Data=&Data; -! Saprotocol=&Saprotocol; -! lcc=$newlcc; -! ) - @RUN:em_calc_lcc.cns - ! if the lcc of the initial orientation is better, swap the COMP - ! coordinate set to the MAIN coordinate set - if ($lcc > $newlcc) then - coor swap selection=(all) end - end if - diff --git a/src/haddock/modules/flexref/cns/ene-residue.inp b/src/haddock/modules/flexref/cns/ene-residue.inp deleted file mode 100644 index 4988a87d9..000000000 --- a/src/haddock/modules/flexref/cns/ene-residue.inp +++ /dev/null @@ -1,182 +0,0 @@ -! ene-residue.inp -! Calculate the per-residue intermolecular energies (Evdw, Eelec) -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! - -@RUN:initialize.cns(iteration=$iteration;) - -@NEWIT:iteration.cns(iteration=$iteration;) - -@RUN:run.cns( -iteration =$iteration; -filenames =$filenames; -data =$data; -iterations=$iterations; -saprotocol=$saprotocol; -refine =$refine; -toppar =$toppar; -analysis =$analysis; -) - -!reads in structure, coordinates and parameter files -@RUN:read_struc.cns -@RUN:read_struc-cg.cns - -@PREVIT:file.cns(filenames=$filenames) - -!deletes shape atoms if present -dele sele=(resn SHA) end - -evaluate ($count = 1) -while ($count le $Iterations.anastruc) loop loop00 - evaluate ($file = $filenames.bestfile_$count) - coor init end - if ($file ne "") then - coor @@$file - dele sele=(not known) end - end if - evaluate ($count = $count + 1) -end loop loop00 - -flags exclude * include vdw elec end - -set display=NEWIT:analysis/ene-residue.disp end - -@PREVIT:file.cns(filenames=$filenames) - -{====>} {* define ASA-based solvation parameters *} -! Uses store1 -inline @RUN:def_solv_param.cns - -evaluate ($count = 1) -evaluate ($nstruc1 = 0) -do (store2 = 0) (all) -do (store3 = 0) (all) -do (store4 = 0) (all) -do (store5 = 0) (all) -do (store6 = 0) (all) -while ($count le $Iterations.anastruc) loop loop0 - evaluate ($file = $filenames.bestfile_$count) - coor init end - if ($file ne "") then - coor @@$file - evaluate ($nstruc1 = $nstruc1 + 1) - eval($nchain1 = 0) - while ($nchain1 < $data.ncomponents) loop nloop1 - eval($nchain1 = $nchain1 + 1) - do (store2 = 1) (byres (segid $Toppar.prot_segid_$nchain1 and not hydrogen and - (not segid $Toppar.prot_segid_$nchain1 and not hydrogen) around 5.0)) - do (rmsd = 0) (all) - surface mode=access accu=0.075 rh2o=1.4 sele=(segid $Toppar.prot_segid_$nchain1) end - do (store3 = store3 + rmsd * store1) (segid $Toppar.prot_segid_$nchain1 and not ((resn WAT or resn HOH or resn TIP*) or resn DMS)) - do (store5 = store5 + rmsd**2 * store1**2) (segid $Toppar.prot_segid_$nchain1 and not ((resn WAT or resn HOH or resn TIP*) or resn DMS)) - end loop nloop1 - surface mode=access accu=0.075 rh2o=1.4 sele=(not ((resn WAT or resn HOH or resn TIP*) or resn DMS)) end - do (store4 = store4 + rmsd * store1) (not ((resn WAT or resn HOH or resn TIP*) or resn DMS)) - do (store6 = store6 + rmsd**2* store1**2) (not ((resn WAT or resn HOH or resn TIP*) or resn DMS)) - end if - evaluate ($count = $count + 1) -end loop loop - -do (store3 = store3 / $nstruc1) (all) -do (store4 = store4 / $nstruc1) (all) -do (store5 = sqrt(store5 - $nstruc1 * store3**2)/$nstruc1) (all) -do (store6 = sqrt(store6 - $nstruc1 * store4**2)/$nstruc1) (all) - -for $id in id (attr store2 = 1 and tag) loop loop2 - show (resid) (id $id) - evaluate ($ires = $result) - show (resn) (id $id) - evaluate ($nres = $result) - show (segid) (id $id) - evaluate ($iseg = $result) - - igroup interaction (segid $iseg and resid $ires) (not segid $iseg and not ((resn WAT or resn HOH or resn TIP*) or resn DMSO)) end - display # - display # - display #Residue $nres $ires $iseg - intermolecular energies - display #file Etot Evdw Eelec - - evaluate ($sum_tot = 0) - evaluate ($sumsq_tot = 0) - evaluate ($sum_vdw = 0) - evaluate ($sumsq_vdw = 0) - evaluate ($sum_elec = 0) - evaluate ($sumsq_elec = 0) - evaluate ($sum_desolv = 0) - evaluate ($sumsq_desolv = 0) - evaluate ($sum_haddockscore = 0) - evaluate ($sumsq_haddockscore = 0) - - @PREVIT:file.cns(filenames=$filenames) - - show sum (store3) (segid $iseg and resid $ires) - evaluate ($esolfree = $result) - show sum (store4) (segid $iseg and resid $ires) - evaluate ($esolcplx = $result) - evaluate ($edesolv = ($esolcplx - $esolfree)) - evaluate ($mean_desolv = $edesolv) - - evaluate ($count = 1) - evaluate ($nstruc1 = 0) - while ($count le $Iterations.anastruc) loop loop3 - evaluate ($file = $filenames.bestfile_$count) - coor init end - if ($file ne "") then - coor @@$file - evaluate ($nstruc1 = $nstruc1 + 1) - energy end - evaluate ($sum_tot = $sum_tot + $ener) - evaluate ($sumsq_tot = $sumsq_tot + $ener**2) - evaluate ($sum_vdw = $sum_vdw + $vdw) - evaluate ($sumsq_vdw = $sumsq_vdw + $vdw**2) - evaluate ($sum_elec = $sum_elec + $elec) - evaluate ($sumsq_elec = $sumsq_elec + $elec**2) - - evaluate ($haddockscore = $iterations.w_vdw * $vdw + $iterations.w_elec * $elec + $iterations.w_desolv * $edesolv) - evaluate ($sum_haddockscore = $sum_haddockscore + $haddockscore) - evaluate ($sumsq_haddockscore = $sumsq_haddockscore + $haddockscore**2) - - display # $file $ener $vdw $elec - end if - evaluate ($count = $count + 1) - end loop loop3 - - show sum (store5) (segid $iseg and resid $ires) - evaluate ($stdev_esolfree = $result**2) - show sum (store6) (segid $iseg and resid $ires) - evaluate ($stdev_esolcplx = $result**2) - evaluate ($stdev_desolv = sqrt($stdev_esolfree+$stdev_esolcplx)) - - evaluate ($mean_tot = $sum_tot / $nstruc1) - evaluate ($stdev_tot = sqrt(max(0.0,($sumsq_tot - $nstruc1*$mean_tot**2))/ $nstruc1)) - evaluate ($mean_vdw = $sum_vdw / $nstruc1) - evaluate ($stdev_vdw = sqrt(max(0.0,($sumsq_vdw - $nstruc1*$mean_vdw**2))/ $nstruc1)) - evaluate ($mean_elec = $sum_elec / $nstruc1) - evaluate ($stdev_elec = sqrt(max(0.0,($sumsq_elec - $nstruc1*$mean_elec**2))/ $nstruc1)) - evaluate ($mean_haddockscore = $sum_haddockscore / $nstruc1) - evaluate ($stdev_haddockscore = sqrt(($sumsq_haddockscore - $nstruc1*$mean_haddockscore**2)/ $nstruc1)) - - display # mean values for interaction with residue $nres $ires $iseg - display # $nres $ires $iseg : Etot $mean_tot (+/- $stdev_tot ) [kcal/Mol] - display # $nres $ires $iseg : Evdw $mean_vdw (+/- $stdev_vdw ) [kcal/Mol] - display # $nres $ires $iseg : Eelec $mean_elec (+/- $stdev_elec ) [kcal/Mol] - display # $nres $ires $iseg : Edesol $mean_desolv (+/- $stdev_desolv ) [kcal/Mol] - display # $nres $ires $iseg : HADDOCKscore $mean_haddockscore (+/- $stdev_haddockscore ) [a.u.] - -end loop loop2 - -close NEWIT:analysis/ene-residue.disp end - -evaluate ($outdis = "NEWIT:analysis/ENE_DONE") -set display=$outdis end -display DONE - -stop diff --git a/src/haddock/modules/flexref/cns/energy.inp b/src/haddock/modules/flexref/cns/energy.inp deleted file mode 100644 index e55b38836..000000000 --- a/src/haddock/modules/flexref/cns/energy.inp +++ /dev/null @@ -1,304 +0,0 @@ -! energy.inp -! Calculate statistics for all energy terms -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! - -@RUN:initialize.cns(iteration=$iteration;) - -@NEWIT:iteration.cns(iteration=$iteration;) - -@RUN:run.cns( -iteration =$iteration; -filenames =$filenames; -data =$data; -iterations=$iterations; -saprotocol=$saprotocol; -refine =$refine; -toppar =$toppar; -analysis =$analysis; -) -set message=on echo=on end - -!reads in structure, coordinates and parameter files -@RUN:read_struc.cns -@RUN:read_struc-cg.cns - -@PREVIT:file.cns(filenames=$filenames) -evaluate ($file = $filenames.bestfile_1) -coor @@$file - -delete sele=(not(known)) end -delete sele=(resn ANI or resn DAN or resn XAN or resn SHA or resn DUM) end - -!set the energy flags: -inline @RUN:setflags.cns - -flags include dihed elec end - -set display NEWIT:analysis/energies.disp end - -display #Complex statistics -display #file Etot Ebond Eangle Eimpr Edihed Evdw Eelec - -evaluate ($sum_tot = 0) -evaluate ($sumsq_tot = 0) -evaluate ($sum_bond = 0) -evaluate ($sumsq_bond = 0) -evaluate ($sum_angle = 0) -evaluate ($sumsq_angle = 0) -evaluate ($sum_impr = 0) -evaluate ($sumsq_impr = 0) -evaluate ($sum_dihed= 0) -evaluate ($sumsq_dihed = 0) -evaluate ($sum_vdw = 0) -evaluate ($sumsq_vdw = 0) -evaluate ($sum_elec = 0) -evaluate ($sumsq_elec = 0) - -@PREVIT:file.cns(filenames=$filenames) - -evaluate ($count = 1) -evaluate ($nstruc1 = 0) -while ($count le $Iterations.anastruc) loop main - evaluate ($file = $filenames.bestfile_$count) - coor init end - if ($file ne "") then - coor @@$file - evaluate ($nstruc1 = $nstruc1 + 1) - energy end - evaluate ($sum_tot = $sum_tot + $ener) - evaluate ($sumsq_tot = $sumsq_tot + $ener**2) - evaluate ($sum_bond = $sum_bond + $bond) - evaluate ($sumsq_bond = $sumsq_bond + $bond**2) - evaluate ($sum_angle = $sum_angle + $angl) - evaluate ($sumsq_angle = $sumsq_angle + $angl**2) - evaluate ($sum_impr = $sum_impr + $impr) - evaluate ($sumsq_impr = $sumsq_impr + $impr**2) - evaluate ($sum_dihed = $sum_dihed + $dihe) - evaluate ($sumsq_dihed = $sumsq_dihed + $dihe**2) - evaluate ($sum_vdw = $sum_vdw + $vdw) - evaluate ($sumsq_vdw = $sumsq_vdw + $vdw**2) - evaluate ($sum_elec = $sum_elec + $elec) - evaluate ($sumsq_elec = $sumsq_elec + $elec**2) - - display # $file $ener $bond $angl $impr $dihe $vdw $elec - - end if - if ($count ge $Iterations.anastruc) then exit loop main end if - evaluate ($count = $count + 1) -end loop main - -evaluate ($mean_tot = $sum_tot / $nstruc1) -evaluate ($stdev_tot = sqrt(($sumsq_tot - $nstruc1*$mean_tot**2)/ $nstruc1)) -evaluate ($mean_bond = $sum_bond / $nstruc1) -evaluate ($stdev_bond = sqrt(($sumsq_bond - $nstruc1*$mean_bond**2)/ $nstruc1)) -evaluate ($mean_angle = $sum_angle / $nstruc1) -evaluate ($stdev_angle = sqrt(($sumsq_angle - $nstruc1*$mean_angle**2)/ $nstruc1)) -evaluate ($mean_impr = $sum_impr / $nstruc1) -evaluate ($stdev_impr = sqrt(($sumsq_impr - $nstruc1*$mean_impr**2)/ $nstruc1)) -evaluate ($mean_dihed = $sum_dihed / $nstruc1) -evaluate ($stdev_dihed = sqrt(($sumsq_dihed - $nstruc1*$mean_dihed**2)/ $nstruc1)) -evaluate ($mean_vdw = $sum_vdw / $nstruc1) -evaluate ($stdev_vdw = sqrt(($sumsq_vdw - $nstruc1*$mean_vdw**2)/ $nstruc1)) -evaluate ($mean_elec = $sum_elec / $nstruc1) -evaluate ($stdev_elec = sqrt(($sumsq_elec - $nstruc1*$mean_elec**2)/ $nstruc1)) - -display # mean values protein -display # Etot $mean_tot (+/- $stdev_tot ) [kcal/Mol] -display # Ebond $mean_bond (+/- $stdev_bond ) [kcal/Mol] -display # Eangle $mean_angle (+/- $stdev_angle ) [kcal/Mol] -display # Eimpr $mean_impr (+/- $stdev_impr ) [kcal/Mol] -display # Edihed $mean_dihed (+/- $stdev_dihed ) [kcal/Mol] -display # Evdw $mean_vdw (+/- $stdev_vdw ) [kcal/Mol] -display # Eelec $mean_elec (+/- $stdev_elec ) [kcal/Mol] - -@PREVIT:file.cns(filenames=$filenames) - -!define flexible segments - -do (store5 = 0) (all) -eval($nchain1= 0) -while ($nchain1 < $data.ncomponents) loop nloop1 - eval($nchain1 = $nchain1 + 1) - evaluate($fcounter=0) - while ($fcounter < $Toppar.nseg_$nchain1) loop flex - evaluate($fcounter=$fcounter + 1) - do (store5 = $nchain1) (resid $Toppar.start_seg_$nchain1_$fcounter : $Toppar.end_seg_$nchain1_$fcounter - and segid $Toppar.prot_segid_$nchain1 ) - end loop flex -end loop nloop1 - -do (store5 = 0) (resn ANI or resn DAN or resn XAN) - -igroup interaction (not all) (not all) end - -igroup - eval($nchain1= 1) - while ($nchain1 <= $data.ncomponents) loop nloop1 - eval($nchain2 = $nchain1) - while ($nchain2 <= $data.ncomponents) loop nloop2 - interaction (attr store5 = $nchain1) (attr store5 = $nchain2) weights * 1 end - eval($nchain2 = $nchain2 + 1) - end loop nloop2 - eval($nchain1 = $nchain1 + 1) - end loop nloop1 -end - -evaluate ($sum_tot = 0) -evaluate ($sumsq_tot = 0) -evaluate ($sum_vdw = 0) -evaluate ($sumsq_vdw = 0) -evaluate ($sum_elec = 0) -evaluate ($sumsq_elec = 0) - -display # -display # -display #Proteins flexible interface energies -display #file Etot Evdw Eelec - -evaluate ($count = 1) -evaluate ($nstruc1 = 0) -while ($count le $Iterations.anastruc) loop main - evaluate ($file = $filenames.bestfile_$count) - coor init end - if ($file ne "") then - coor @@$file - evaluate ($nstruc1 = $nstruc1 + 1) - energy end - evaluate ($sum_tot = $sum_tot + $ener) - evaluate ($sumsq_tot = $sumsq_tot + $ener**2) - evaluate ($sum_vdw = $sum_vdw + $vdw) - evaluate ($sumsq_vdw = $sumsq_vdw + $vdw**2) - evaluate ($sum_elec = $sum_elec + $elec) - evaluate ($sumsq_elec = $sumsq_elec + $elec**2) - - display # $file $ener $vdw $elec - end if - if ($count ge $Iterations.anastruc) then exit loop main end if - evaluate ($count = $count + 1) -end loop main - -evaluate ($mean_tot = $sum_tot / $nstruc1) -evaluate ($stdev_tot = sqrt(($sumsq_tot - $nstruc1*$mean_tot**2)/ $nstruc1)) -evaluate ($mean_vdw = $sum_vdw / $nstruc1) -evaluate ($stdev_vdw = sqrt(($sumsq_vdw - $nstruc1*$mean_vdw**2)/ $nstruc1)) -evaluate ($mean_elec = $sum_elec / $nstruc1) -evaluate ($stdev_elec = sqrt(($sumsq_elec - $nstruc1*$mean_elec**2)/ $nstruc1)) - -display # mean values -display # Etot $mean_tot (+/- $stdev_tot ) [kcal/Mol] -display # Evdw $mean_vdw (+/- $stdev_vdw ) [kcal/Mol] -display # Eelec $mean_elec (+/- $stdev_elec ) [kcal/Mol] - -evaluate ($kinter = 1.0) -@RUN:scale_inter_only.cns - -display # -display # -display #Protein-Protein intermolecular energies -display #file Etot Evdw Eelec - -evaluate ($sum_tot = 0) -evaluate ($sumsq_tot = 0) -evaluate ($sum_vdw = 0) -evaluate ($sumsq_vdw = 0) -evaluate ($sum_elec = 0) -evaluate ($sumsq_elec = 0) - -@PREVIT:file.cns(filenames=$filenames) - -evaluate ($count = 1) -evaluate ($nstruc1 = 0) -while ($count le $Iterations.anastruc) loop main - evaluate ($file = $filenames.bestfile_$count) - coor init end - if ($file ne "") then - coor @@$file - evaluate ($nstruc1 = $nstruc1 + 1) - energy end - evaluate ($sum_tot = $sum_tot + $ener) - evaluate ($sumsq_tot = $sumsq_tot + $ener**2) - evaluate ($sum_vdw = $sum_vdw + $vdw) - evaluate ($sumsq_vdw = $sumsq_vdw + $vdw**2) - evaluate ($sum_elec = $sum_elec + $elec) - evaluate ($sumsq_elec = $sumsq_elec + $elec**2) - - display # $file $ener $vdw $elec - - end if - if ($count ge $Iterations.anastruc) then exit loop main end if - evaluate ($count = $count + 1) -end loop main - -evaluate ($mean_tot = $sum_tot / $nstruc1) -evaluate ($stdev_tot = sqrt(($sumsq_tot - $nstruc1*$mean_tot**2)/ $nstruc1)) -evaluate ($mean_vdw = $sum_vdw / $nstruc1) -evaluate ($stdev_vdw = sqrt(($sumsq_vdw - $nstruc1*$mean_vdw**2)/ $nstruc1)) -evaluate ($mean_elec = $sum_elec / $nstruc1) -evaluate ($stdev_elec = sqrt(($sumsq_elec - $nstruc1*$mean_elec**2)/ $nstruc1)) - -display # mean values -display # Etot $mean_tot (+/- $stdev_tot ) [kcal/Mol] -display # Evdw $mean_vdw (+/- $stdev_vdw ) [kcal/Mol] -display # Eelec $mean_elec (+/- $stdev_elec ) [kcal/Mol] - -display # -display # -display #Protein-Protein Buried_surface_area - -evaluate ($sum_bsa = 0) -evaluate ($sumsq_bsa = 0) - -@PREVIT:file.cns(filenames=$filenames) - -evaluate ($count = 1) -evaluate ($nstruc1 = 0) -while ($count le $Iterations.anastruc) loop main - evaluate ($file = $filenames.bestfile_$count) - coor init end - if ($file ne "") then - coor @@$file - evaluate ($nstruc1 = $nstruc1 + 1) - - evaluate ($nchain1 = 1) - evaluate ($saafree = 0) - evaluate ($esolfree = 0) - while ($nchain1 <= $data.ncomponents) loop nloop1 - {====>} {* buried surface area *} - do (rmsd = 0) (all) - surface mode=access accu=0.075 rh2o=1.4 sele=(segid $Toppar.prot_segid_$nchain1) end - show sum (rmsd) (segid $Toppar.prot_segid_$nchain1 and not ((resn WAT or resn HOH or resn TIP*) or resn DMS)) - evaluate ($saafree = $saafree + $result) - evaluate ($nchain1 = $nchain1 + 1) - end loop nloop1 - - do (rmsd = 0) (all) - surface mode=access accu=0.075 rh2o=1.4 sele=(not ((resn WAT or resn HOH or resn TIP*) or resn DMS)) end - show sum (rmsd) (not ((resn WAT or resn HOH or resn TIP*) or resn DMS)) - evaluate ($satot = $result) - evaluate ($saburied = $saafree - $satot) - evaluate ($sum_bsa = $sum_bsa + $saburied) - evaluate ($sumsq_bsa = $sumsq_bsa + $saburied**2) - - display # $file $saburied - - end if - if ($count ge $Iterations.anastruc) then exit loop main end if - evaluate ($count = $count + 1) -end loop main - -evaluate ($mean_bsa = $sum_bsa / $nstruc1) -evaluate ($stdev_bsa = sqrt(($sumsq_bsa - $nstruc1*$mean_bsa**2)/ $nstruc1)) - -display # mean values -display # BSA $mean_bsa (+/- $stdev_bsa ) [A^2] - -stop diff --git a/src/haddock/modules/flexref/cns/flexauto.cns b/src/haddock/modules/flexref/cns/flexauto.cns deleted file mode 100644 index 28613ade3..000000000 --- a/src/haddock/modules/flexref/cns/flexauto.cns +++ /dev/null @@ -1,30 +0,0 @@ -! flexauto.cns -! Automatic definition of flexible segments for docking for contacting residues -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! - -evaluate ($flcut = 5.0) - -do (store5 = $nchain1) (byres (segid $Toppar.prot_segid_$nchain1 - and (not (segid $Toppar.prot_segid_$nchain1 or resn SHA)) around $flcut)) -do (store7 = $nchain1) (byres (segid $Toppar.prot_segid_$nchain1 - and (not (segid $Toppar.prot_segid_$nchain1 or resn SHA)) around $flcut)) - -display THE FOLLOWING RESIDUES HAVE BEEN DEFINED AS FLEXIBLE for molecule $nchain1 -for $id in id (tag and attr store5 >0 and not ((resn WAT or resn HOH or resn TIP*) or resn DMSO) and segid $Toppar.prot_segid_$nchain1) loop flexres - show (resid) (id $id) - evaluate ($inres = $result) - show (resn) (id $id) - evaluate ($nares = $result) - show (segid) (id $id) - evaluate ($seres = $result) - display AUTOMATICALLY SELECTED SEGMENT: $nares,$inres,$seres -end loop flexres - diff --git a/src/haddock/modules/flexref/cns/generate-cg.inp b/src/haddock/modules/flexref/cns/generate-cg.inp deleted file mode 100644 index 143ea8217..000000000 --- a/src/haddock/modules/flexref/cns/generate-cg.inp +++ /dev/null @@ -1,920 +0,0 @@ -! generate-cg.inp -! Generates missing coordinates and topology for coarse grained model -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * -! * and from the CNS distriution of Brunger and Adams * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! -{+ file: generate-cg.inp +} -{+ directory: general +} -{+ description: Generate coordinate and structure file for simple models +} -{+ comment: - This is designed to be a means of generating a coordinate - and structure file for commonly encountered models: protein - and/or DNA/RNA. The coordinates - are provided by the user in a single input PDB file. - Disulphide bonds will be automatically determined by distance. - If required generate hydrogens. Any atoms with unknown - coordinates can be automatically generated +} -{+ authors: Paul Adams and Axel Brunger +} -{+ copyright: Yale University +} - -{+ Adapted for use in HADDOCK by Alexandre Bonvin, Utrecht University Feb-2002 +} - -{- Guidelines for using this file: - - all strings must be quoted by double-quotes - - logical variables (true/false) are not quoted - - do not remove any evaluate statements from the file -} - -{- Special patches will have to be entered manually at the relevant points - in the file - see comments throughout the file -} - -{- begin block parameter definition -} define( - -{============================== important =================================} - -{* Different chains in the structure must have either unique segid or - chainid records. If this is no the case, the end of a chain must - be delimited by a TER card. *} - -{* A break in a chain can be detected automatically or should be delimited - by a BREAK card. In this case no patch (head, tail or link) will be - applied between the residues that bound the chain break. *} - -{* NB. The input PDB file must finish with an END statement *} - -{=========================== coordinate files =============================} - -{* coordinate file *} -{===>} coordinate_infile="/home/abonvin/software/haddock/examples/e2a.pdb"; - -{* convert chainid to segid if chainid is non-blank *} -{+ choice: true false +} -{===>} convert=false; - -{* separate chains by segid - a new segid starts a new chain *} -{+ choice: true false +} -{===>} separate=true; -{============================ renaming atoms ===============================} - -{* some atoms may need to be renamed in the topology database to conform - to what is present in the coordinate file *} - -{* delta carbon in isoleucine is named CD in CNS - what is it currently called in the coordinate file? *} -{* this will not be changed if left blank *} -{===>} ile_CD_becomes="CD1"; - -{* terminal oxygens are named OT1 and OT2 in CNS - what are they currently called in the coordinate file? *} -{* these will not be changed if left blank *} -{===>} OT1_becomes="O"; -{===>} OT2_becomes="OXT"; - -{======================= automatic mainchain breaks ========================} - -{* automatically detect mainchain breaks in proteins based on distance *} -{* the peptide link at break points will be removed *} -{+ choice: true false +} -{===>} auto_break=true; - -{* cutoff distance in Angstroms for identification of breaks *} -{* the default of 2.5A for peptide bonds should be reasonable for most cases. If the input - structure has bad geometry it may be necessary to increase this distance *} -{===>} pbreak_cutoff=3.5; -{===>} pcgbreak_cutoff=8.0; -{* the default of 2.5A for nucleic acid linkages should be reasonable for most cases. If the input - structure has bad geometry it may be necessary to increase this distance *} -{===>} dbreak_cutoff=4.5; - -{* file containing patches to delete peptide links *} -{===>} prot_break_infile="RUN:toppar/protein_break.top"; - -{* file containing patches to delete nucleic acid links *} -{===>} dna_break_infile="RUN:toppar/dna_break.top"; - -{======================= automatic disulphide bonds ========================} - -{* cutoff distance in Angstroms for identification of disulphides *} -{* the default of 3.0A should be reasonable for most cases. If the input - structure has bad geometry it may be necessary to increase this distance *} -{===>} disulphide_dist=3.0; - -{======================= automatic iron cluster bonds ======================} - -{* cutoff distance in Angstroms for identification of iron cluster bonds *} -{* the default of 10.0A should be reasonable for most cases. If the input - structure has bad geometry it may be necessary to increase this distance *} -{===>} ironcluster_dist=8.0; - -{======================= automatic cis peptide bonds =======================} - -{* select atoms to be included in calculation of omega angles *} -{* to define cis peptides*} -{===>} atom_select=(known and not hydrogen); - -{========================= RNA to DNA conversion ==========================} - -{* All nucleic acid residues initially have ribose sugars (rather than - deoxyribose). A patch must be applied to convert the ribose to deoxyribose - for DNA residues. Select those residues which need to have the patch - applied to make them DNA. *} -{* Make sure that the atom selection is specific for the nucleic acid - residues *} -{===>} dna_sele=(none); - -{========================= generate parameters =============================} - -{* hydrogen flag - determines whether hydrogens will be output *} -{* must be true for NMR, atomic resolution X-ray crystallography - or modelling. Set to false for most X-ray crystallographic - applications at resolution > 1A *} -{+ choice: true false +} -{===>} hydrogen_flag=true; - -{* which hydrogens to build *} -{+ choice: "all" "unknown" +} -{===>} hydrogen_build="all"; - -{* selection of atoms other than hydrogens for which coordinates - will be generated *} -{* to generate coordinates for all unknown atoms use: (not(known)) *} -{===>} atom_build=(not(known)); - -{* selection of atoms to be deleted *} -{* to delete no atoms use: (none) *} -{===>} atom_delete=(none); - -{* set bfactor flag *} -{+ choice: true false +} -{===>} set_bfactor=true; - -{* set bfactor value *} -{===>} bfactor=15.0; - -{* set occupancy flag *} -{+ choice: true false +} -{===>} set_occupancy=true; - -{* set occupancy value *} -{===>} occupancy=1.0; - -{============================= output files ================================} - -{* output structure file *} -{===>} structure_outfile="haddock.psf"; - -{* output coordinate file *} -{===>} coordinate_outfile="haddock.pdb"; - -{================== protein topology and parameter files ===================} - -{* protein topology file *} -{===>} prot_topology_infile="RUN:toppar/protein-allhdg5-4.top"; - -{* protein linkage file *} -{===>} prot_link_infile="RUN:toppar/protein-allhdg5-4.link"; - -{* protein parameter file *} -{===>} prot_parameter_infile="RUN:toppar/protein-allhdg5-4.param"; - -{================ nucleic acid topology and parameter files =================} - -{* nucleic acid topology file *} -{===>} nucl_topology_infile="RUN:toppar/dna-rna-allatom-hj-opls-1.3.top"; - -{* nucleic acid linkage file *} -{* use RUN:/toppar/dna-rna-pho.link for 5'-phosphate *} -{===>} nucl_link_infile="RUN:/toppar/dna-rna-1.3.link"; - -{* nucleic acid parameter file *} -{===>} nucl_parameter_infile="RUN:/toppar/dna-rna-allatom-hj-opls-1.3.param"; - -{================= carbohydrate topology and parameter files ===============} - -{* carbohydrate topology file *} -{===>} carbo_topology_infile="RUN:/toppar/carbohydrate.top"; - -{* carbohydrate parameter file *} -{===>} carbo_parameter_infile="RUN:/toppar/carbohydrate.param"; - -{================= solvent topology and parameter files ====================} - -{* solvent topology file *} -{===>} solv_topology_infile="RUN:/toppar/water-allhdg5-4.top"; - -{* solvent parameter file *} -{===>} solv_parameter_infile="RUN:/toppar/water-allhdg5-4.param"; - -{================= cofactor topology and parameter files ===================} - -{* co-factor topology file *} -{===>} cofac_topology_infile="RUN:/toppar/ligand.top"; - -{* co-factor linkage file *} -{===>} cofac_link_infile="RUN:toppar/ligand.pep"; - -{* co-factor parameter file *} -{===>} cofac_parameter_infile="RUN:/toppar/ligand.param"; - -{===================== ion topology and parameter files ====================} - -{* ion topology file *} -{===>} ion_topology_infile="RUN:/toppar/ion.top"; - -{* ion parameter file *} -{===>} ion_parameter_infile="RUN:/toppar/ion.param"; - -{===================== heme topology and parameter files ====================} - -{* heme topology file *} -{===>} heme_topology_infile="RUN:/toppar/hemes-allhdg.top"; - -{* heme parameter file *} -{===>} heme_parameter_infile="RUN:/toppar/hemes-allhdg.param"; - -{===================== default number of histidines for patching ===========} - - ) {- end block parameter definition -} - -@RUN:initialize.cns(iteration=$iteration;) - -@RUN:begin/iteration.cns(iteration=$iteration;) - -@RUN:run.cns( -iteration =$iteration; -filenames =$filenames; -data =$data; -iterations=$iterations; -saprotocol=$saprotocol; -refine =$refine; -toppar =$toppar; -analysis =$analysis; -) -! set abort=off end - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!The next line will be changed automatically from python: - evaluate ($chain = 1) -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - evaluate($topology_infile= "RUN:toppar/" + $Toppar.prot_cg_top_$chain) - evaluate($parameter_infile= "RUN:toppar/" + $Toppar.prot_cg_par_$chain) - evaluate($link_file= "RUN:toppar/" + $Toppar.prot_cg_link_$chain) - evaluate($coor_infile= "RUN:data/sequence/" + $Toppar.prot_coor_$chain - ".pdb" + "_cg.pdb") - evaluate($coor_inlist= "RUN:data/sequence/file_" + encode($chain) + ".list-cg") - evaluate($coor_outfile= "BEGIN:" + $Toppar.prot_root_$chain + ".pdb") - evaluate($psf_outfile= "BEGIN:" + $Toppar.prot_root_$chain + ".psf") - evaluate($psf2_outfile= "BEGIN:" + $Toppar.prot_coor_$chain - ".pdb" + ".psf") - evaluate($par_nonbonded= $Toppar.par_nonbonded) - - if ($Toppar.prot_segid_$chain="") then - evaluate($Toppar.prot_segid_$chain=encode($chain)) - end if - - evaluate ($log_level=quiet) - - topology - @@$topology_infile - if ( &BLANK%ion_topology_infile = false ) then - @@&ion_topology_infile - end if - if ( &BLANK%nucl_topology_infile = false ) then - @@&nucl_topology_infile - end if - if ( &BLANK%solv_topology_infile = false ) then - @@&solv_topology_infile - end if - if ( &BLANK%cofac_topology_infile = false ) then - @@&cofac_topology_infile - end if - if ( &BLANK%heme_topology_infile = false ) then - @@&heme_topology_infile - end if - if ( &BLANK%prot_break_infile = false ) then - @@&prot_break_infile - end if - if ( &BLANK%dna_break_infile = false ) then - @@&dna_break_infile - end if - end - - parameter - @@$parameter_infile - if ( &BLANK%ion_parameter_infile = false ) then - @@&ion_parameter_infile - end if - if ( &BLANK%nucl_parameter_infile = false ) then - @@&nucl_parameter_infile - end if - if ( &BLANK%solv_parameter_infile = false ) then - @@&solv_parameter_infile - end if - if ( &BLANK%cofac_parameter_infile = false ) then - @@&cofac_parameter_infile - end if - if ( &BLANK%heme_parameter_infile = false ) then - @@&heme_parameter_infile - end if - end - - segment - chain - if ( &convert = true ) then - convert=true - end if - if ( &separate = true ) then - separate=true - end if - @@$link_file - if ( &BLANK%nucl_link_infile = false ) then - @@&nucl_link_infile - end if - if ( &BLANK%cofac_link_infile = false ) then - @@&cofac_link_infile - end if - coordinates @@$coor_infile - end - end - - coordinates @@$coor_infile end - - if ( &BLANK%ile_CD_becomes = false ) then - do (name=&ile_CD_becomes) (resn ILE and name CD) - end if - if ( &BLANK%OT1_becomes = false ) then - do (name=&OT1_becomes) (name OT1) - end if - if ( &BLANK%OT2_becomes = false ) then - do (name=&OT2_becomes) (name OT2) - end if - -!for the histidine patches: - evaluate($hisd_counter=1) - while ($hisd_counter le $Toppar.nhisd_$chain) loop hisd - if ($Toppar.hisd_resid_$chain_$hisd_counter > 0) then - show (resn) (tag and resid $Toppar.hisd_resid_$chain_$hisd_counter) - if ($result eq "HIS") then - patch hisd reference=nil=(resid $Toppar.hisd_resid_$chain_$hisd_counter) end - end if - end if - evaluate($hisd_counter=$hisd_counter + 1) - end loop hisd - - evaluate($hise_counter=1) - while ($hise_counter le $Toppar.nhise_$chain) loop hise - if ($Toppar.hise_resid_$chain_$hise_counter > 0) then - show (resn) (tag and resid $Toppar.hise_resid_$chain_$hise_counter) - if ($result eq "HIS") then - patch hise reference=nil=(resid $Toppar.hise_resid_$chain_$hise_counter) end - end if - end if - evaluate($hise_counter=$hise_counter + 1) - end loop hise - -! The following patches would define covalent bond between a CA+2 and oxygen ligands -! from Asp and Glu (first selection is amino-acid, second is ion) -! patch dca2 refe=1=(resid 25) refe=2=(resid 83) end -! patch dca2 refe=1=(resid 29) refe=2=(resid 83) end -! patch dca2 refe=1=(resid 35) refe=2=(resid 83) end -! patch eca2 refe=1=(resid 36) refe=2=(resid 83) end -! -! following patch is to attach a heme (resid YY) CAB atom to a cys (resid XX) -! patch phcb refe=1=(resid XX) refe=2=(resid YY) end -! following patch is to attach a heme (resid YY) CAC atom to a cys (resid XX) -! patch phcc refe=1=(resid XX) refe=2=(resid YY) end - - inline @RUN:patch-types-cg.cns - inline @RUN:patch-bb-cg.cns - inline @RUN:charge-beads-interactions.cns - - if ($Toppar.delenph = true) then - delete sele=(name H* and attr charge = 0) end - end if - - evaluate ($nstruc = 1) - for $file in ( @@$coor_inlist ) loop main - - coor init end - coordinates - if ( &convert = true ) then - convert=true - end if - @@$file - - show sum(1) ( not(hydrogen) and not(known) ) - if ( $select = 0 ) then - display %INFO: There are no coordinates missing for non-hydrogen atoms - end if - - if ( $log_level = verbose ) then - set message=normal echo=on end - else - set message=off echo=off end - end if - - if ($nstruc = 1) then - - if ( &auto_break = true ) then - inline @RUN:prot_break.cns - inline @RUN:dna_break.cns - end if - - evaluate ($disu=0) - - for $id1 in id ( resn CYS and name SG ) loop dis1 - - show (segid) (id $id1) - evaluate ($segid1=$result) - show (resid) (id $id1) - evaluate ($resid1=$result) - - identity (store1) (all) - - for $id2 in id ( resn CYS and name SG and - ( attr store1 > $id1 ) ) loop dis2 - - show (segid) (id $id2) - evaluate ($segid2=$result) - show (resid) (id $id2) - evaluate ($resid2=$result) - - pick bond (id $id1) (id $id2) geometry - - if ( $result <= &disulphide_dist ) then - evaluate ($disu=$disu+1) - evaluate ($seg1.$disu=$segid1) - evaluate ($seg2.$disu=$segid2) - evaluate ($res1.$disu=$resid1) - evaluate ($res2.$disu=$resid2) - end if - - end loop dis2 - - end loop dis1 - - evaluate ($counter=1) - while ( $counter <= $disu ) loop disu - patch disu - reference=1=(segid $seg1.$counter and resid $res1.$counter) - reference=2=(segid $seg2.$counter and resid $res2.$counter) - end - buffer message - display disulphide added: from \ -$seg1.$counter[a4] $res1.$counter[a4] to $seg2.$counter[a4] $res2.$counter[a4] - end - evaluate ($counter=$counter+1) - end loop disu - - - evaluate ($ironclus=0) - - for $id1 in id ( resname CFE and name SG ) loop fes1 - - show (segid) (id $id1) - evaluate ($segid1=$result) - show (resid) (id $id1) - evaluate ($resid1=$result) - - identity (store1) (all) - - for $id2 in id ( resname CYF and name SG and - ( attr store1 > $id1 ) ) loop fes2 - - show (segid) (id $id2) - evaluate ($segid2=$result) - show (resid) (id $id2) - evaluate ($resid2=$result) - - pick bond (id $id1) (id $id2) geometry - - if ( $result <= &ironcluster_dist ) then - evaluate ($ironclus=$ironclus+1) - evaluate ($seg1.$ironclus=$segid1) - evaluate ($seg2.$ironclus=$segid2) - evaluate ($res1.$ironclus=$resid1) - evaluate ($res2.$ironclus=$resid2) - end if - - end loop fes2 - - end loop fes1 - - evaluate ($counter=1) - while ( $counter <= $ironclus ) loop iron - patch sef - reference=1=(segid $seg1.$counter and resid $res1.$counter) - reference=2=(segid $seg2.$counter and resid $res2.$counter) - end - buffer message - display iron sulpher bond added: from \ -$seg1.$counter[a4] $res1.$counter[a4] to $seg2.$counter[a4] $res2.$counter[a4] - end - evaluate ($counter=$counter+1) - end loop iron - - - {- patching of RNA to DNA -} - evaluate ($counter=0) - if ($Toppar.dna_$chain eq TRUE) then - for $id in id ( tag and (resn ADE or resn CYT or resn THY or resn GUA or resn A or resn C or resn T or resn G) ) loop dna - evaluate ($counter=$counter+1) - show (segid) (id $id) - evaluate ($dna.segid.$counter=$result) - show (resid) (id $id) - evaluate ($dna.resid.$counter=$result) - end loop dna - end if - evaluate ($dna.num=$counter) - - evaluate ($counter=0) - while ($counter < $dna.num) loop dnap - evaluate ($counter=$counter+1) - patch deox reference=nil=(segid $dna.segid.$counter and - resid $dna.resid.$counter) end - end loop dnap - - - for $id in id ( &atom_select and name ca and resn PRO) loop cisp - - show (segid) (id $id) - evaluate ($segid=$result) - show (resid) (id $id) - evaluate ($resid=$result) - show (resn) (id $id) - evaluate ($resn=$result) - - identity (store1) ( &atom_select and ( name c and bondedto - ( name n and resid $resid and segid $segid ) ) ) - if ( $select = 1 ) then - show element (store1) (attribute store1 > 0) - evaluate ($id_prev=$result) - show (segid) (id $id_prev) - evaluate ($segid_prev=$result) - show (resid) (id $id_prev) - evaluate ($resid_prev=$result) - show (resn) (id $id_prev) - evaluate ($resn_prev=$result) - - pick dihedral - (name ca and segid $segid_prev and resid $resid_prev) - (name c and segid $segid_prev and resid $resid_prev) - (name n and segid $segid and resid $resid) - (name ca and segid $segid and resid $resid) - geometry - - evaluate ($dihedral=mod($result+360,360)) - - if ( $dihedral > 180 ) then - evaluate ($dihedral=$dihedral-360) - end if - - evaluate ($absdihedral=abs($dihedral)) - - if ( $absdihedral < 25 ) then - patch cisp reference=NIL=(segid $segid_prev and resid $resid_prev) end - display CIS peptide bon detected for residue $resid_prev - end if - - end if - - end loop cisp - - end if {! end if for patches based on first structure only !} - - if (&hydrogen_flag=false) then - delete selection=( hydrogen ) end - end if - - delete selection=( &atom_delete ) end - - identity (store1) (none) - - identity (store1) (&atom_build) - if ( &hydrogen_build = "all" ) then - identity (store1) (store1 or hydrogen) - elseif ( &hydrogen_build = "unknown" ) then - identity (store1) (store1 or (not(known) and hydrogen)) - end if - - show sum(1) (store1) - evaluate ($tobuild=$result) - - if ( $tobuild > 0 ) then - - fix selection=(not(store1)) end - - show sum(1) (store1) - evaluate ($moving=$result) - - if ( $moving > 0 ) then - for $id in id (tag and byres(store1)) loop avco - - show ave(x) (byres(id $id) and known) - evaluate ($ave_x=$result) - show ave(y) (byres(id $id) and known) - evaluate ($ave_y=$result) - show ave(z) (byres(id $id) and known) - evaluate ($ave_z=$result) - - do (x=$ave_x) (byres(id $id) and store1) - do (y=$ave_y) (byres(id $id) and store1) - do (z=$ave_z) (byres(id $id) and store1) - - end loop avco - - do (x=x+2*random(1.0)-1) (store1) - do (y=y+2*random(1.0)-1) (store1) - do (z=z+2*random(1.0)-1) (store1) - - {- start parameter for the side chain building -} - parameter - nbonds - rcon=20. nbxmod=-2 repel=0.9 wmin=0.1 tolerance=1. - rexp=2 irexp=2 inhibit=0.25 - end - end - - {- Friction coefficient, in 1/ps. -} - do (fbeta=100) (store1) - - evaluate ($bath=300.0) - evaluate ($nstep=500) - evaluate ($timestep=0.0005) - - do (refy=mass) (store1) - - do (mass=20) (store1) - - igroup interaction - (store1) (store1 or known) - end - - inline @RUN:charge-beads-interactions.cns - - {- turn on initial energy terms -} - flag exclude * include bond angle vdw end - - minimize powell nstep=50 nprint=10 end - - do (vx=maxwell($bath)) (store1) - do (vy=maxwell($bath)) (store1) - do (vz=maxwell($bath)) (store1) - - flag exclude vdw elec include impr end - - dynamics cartesian - nstep=50 - timestep=$timestep - tcoupling=true temperature=$bath - nprint=$nstep - cmremove=false - end - - flag include vdw end - - minimize powell nstep=50 nprint=10 end - - do (vx=maxwell($bath)) (store1) - do (vy=maxwell($bath)) (store1) - do (vz=maxwell($bath)) (store1) - - dynamics cartesian - nstep=50 - timestep=$timestep - tcoupling=true temperature=$bath - nprint=$nstep - cmremove=false - end - - parameter - nbonds - rcon=2. nbxmod=-3 repel=0.75 - end - end - - minimize powell nstep=100 nprint=25 end - - do (vx=maxwell($bath)) (store1) - do (vy=maxwell($bath)) (store1) - do (vz=maxwell($bath)) (store1) - - dynamics cartesian - nstep=$nstep - timestep=$timestep - tcoupling=true temperature=$bath - nprint=$nstep - cmremove=false - end - - {- turn on all energy terms -} - flag include dihe ? end - - {- set repel to ~vdw radii -} - parameter - nbonds - repel=0.89 - end - end - - minimize powell nstep=500 nprint=50 end - - flag exclude * include bond angl impr dihe vdw end - - {- return masses to something sensible -} - do (mass=refy) (store1) - - do (vx=maxwell($bath)) (store1) - do (vy=maxwell($bath)) (store1) - do (vz=maxwell($bath)) (store1) - - dynamics cartesian - nstep=$nstep - timestep=$timestep - tcoupling=true temperature=$bath - nprint=$nstep - cmremove=false - end - - {- some final minimisation -} - minimize powell - nstep=500 - drop=40.0 - nprint=50 - end - - print thres=0.02 bonds - print thres=5. angles - - end if - - noe reset end - rest dihe reset end - - if ($Toppar.dna_$chain eq TRUE) then - if ($Data.dnarest eq TRUE) then - noe nres 10000 end - rest dihed nass=10000 end - do (segid = $Toppar.prot_segid_$chain) (all) - @RUN:data/sequence/dna-rna_restraints.def - do (segid = " ") (all) - end if - end if - - fix selection=( none ) end - - flag incl noe cdih end - print threshold=0.3 noe - print threshold=5. cdih - - energy end - - do (segid = $Toppar.prot_segid_$chain) (all) - @RUN:flex_segment_back.cns - do (segid = " ") (all) - fix sele=((attr store5 = 0) and not name H*) end - minimize powell - nstep=50 - drop=40.0 - nprint=5 - end - fix sele=(not all) end - - energy end - - print threshold=0.3 noe - print threshold=5. cdih - print thres=0.02 bonds - print thres=5. angles - flag excl noe cdih end - - - end if - - do (store2=0) (all) - for $id in id (tag and name BB) loop cgmodel - do (store2=1) (byres(id $id)) - end loop cgmodel - - flag excl elec end - - fix sele=(attr store2 = 0) end - minimize powell - nstep=50 - drop=40.0 - nprint=10 - end - - fix selection=( none ) end - energy end - evaluate ($bonded = $bond + $angl + $impr) - if ($bonded > 10000) then - minimize powell nstep=100 drop=10.0 nprint=10 end - end if - if ($bonded > 10000) then - energy end - evaluate ($bonded = $bond + $angl + $impr) - evaluate ($dispfile = $coor_outfile - ".pdb" + "_" + encode($nstruc) + ".warn") - set display=$dispfile end - display WARNING: the bonded energy is very high: - display Ebonded-total=$bonded Ebond=$bond Eangl=$angl Eimpr=$impr - display Something is possibly wrong with your input structure - close $dispfile end - end if - - show sum(1) (not(known)) - if ( $result < 100 ) then - for $id in id (not(known)) loop print - show (segid) (id $id) - evaluate ($segid=$result) - show (resn) (id $id) - evaluate ($resn=$result) - show (resid) (id $id) - evaluate ($resid=$result) - show (name) (id $id) - evaluate ($name=$result) - buffer message - display unknown coordinates for atom: $segid[a4] $resn[a4] $resid[a4] $name[a4] - end - end loop print - else - buffer message - display unknown coordinates for more than 100 atoms - end - end if - - if (&set_bfactor=true) then - do (b=&bfactor) ( all ) - else - show ave(b) (known and not(store1)) - do (b=$result) (store1 and (attr b < 0.01)) - end if - - if (&set_occupancy=true) then - do (q=&occupancy) ( all ) - end if - - show sum(1) (store1) - if ( $result < 100 ) then - for $id in id (store1) loop print - show (segid) (id $id) - evaluate ($segid=$result) - show (resn) (id $id) - evaluate ($resn=$result) - show (resid) (id $id) - evaluate ($resid=$result) - show (name) (id $id) - evaluate ($name=$result) - buffer message - display coordinates built for atom: $segid[a4] $resn[a4] $resid[a4] $name[a4] - end - end loop print - else - buffer message - display coordinates built for more than 100 hundred atoms - end - end if - - set remarks=reset end - - buffer message - to=remarks - dump - end - - do (segid = $Toppar.prot_segid_$chain) (all) - - if ($nstruc = 1) then - write coordinates output=$coor_outfile end - end if - evaluate ($filename_$nstruc = $coor_outfile - ".pdb" + "_" + encode($nstruc) + ".pdb") - write coordinates output=$filename_$nstruc end - evaluate ($nstruc = $nstruc + 1) - - do (segid = " ") (all) - - end loop main - - do (segid = $Toppar.prot_segid_$chain) (all) - write structure output=$psf_outfile end - write structure output=$psf2_outfile end - - evaluate ($disfile = "BEGIN:file_" + encode($chain) + ".list") - set display=$disfile end - - evaluate ($num = 1) - while ($num < $nstruc) loop wrfile - evaluate ($outstring = """ + $filename_$num + """) - display $outstring - evaluate ($num = $num + 1) - end loop wrfile - - stop - - diff --git a/src/haddock/modules/flexref/cns/generate-original.inp b/src/haddock/modules/flexref/cns/generate-original.inp deleted file mode 100644 index c0b0ee8f6..000000000 --- a/src/haddock/modules/flexref/cns/generate-original.inp +++ /dev/null @@ -1,896 +0,0 @@ -! generate.inp -! Generates missing coordinates and topology -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * -! * and from the CNS distriution of Brunger and Adams * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! -{+ file: generate.inp +} -{+ directory: general +} -{+ description: Generate coordinate and structure file for simple models +} -{+ comment: - This is designed to be a means of generating a coordinate - and structure file for commonly encountered models: protein - and/or DNA/RNA. The coordinates - are provided by the user in a single input PDB file. - Disulphide bonds will be automatically determined by distance. - If required generate hydrogens. Any atoms with unknown - coordinates can be automatically generated +} -{+ authors: Paul Adams and Axel Brunger +} -{+ copyright: Yale University +} - -{+ Adapted for use in HADDOCK by Alexandre Bonvin, Utrecht University Feb-2002 +} - -{- Guidelines for using this file: - - all strings must be quoted by double-quotes - - logical variables (true/false) are not quoted - - do not remove any evaluate statements from the file -} - -{- Special patches will have to be entered manually at the relevant points - in the file - see comments throughout the file -} - -{- begin block parameter definition -} define( - -{============================== important =================================} - -{* Different chains in the structure must have either unique segid or - chainid records. If this is no the case, the end of a chain must - be delimited by a TER card. *} - -{* A break in a chain can be detected automatically or should be delimited - by a BREAK card. In this case no patch (head, tail or link) will be - applied between the residues that bound the chain break. *} - -{* NB. The input PDB file must finish with an END statement *} - -{=========================== coordinate files =============================} - -{* coordinate file *} -{===>} coordinate_infile="/home/abonvin/software/haddock/examples/e2a.pdb"; - -{* convert chainid to segid if chainid is non-blank *} -{+ choice: true false +} -{===>} convert=false; - -{* separate chains by segid - a new segid starts a new chain *} -{+ choice: true false +} -{===>} separate=true; -{============================ renaming atoms ===============================} - -{* some atoms may need to be renamed in the topology database to conform - to what is present in the coordinate file *} - -{* delta carbon in isoleucine is named CD in CNS - what is it currently called in the coordinate file? *} -{* this will not be changed if left blank *} -{===>} ile_CD_becomes="CD1"; - -{* terminal oxygens are named OT1 and OT2 in CNS - what are they currently called in the coordinate file? *} -{* these will not be changed if left blank *} -{===>} OT1_becomes="O"; -{===>} OT2_becomes="OXT"; - -{======================= automatic mainchain breaks ========================} - -{* automatically detect mainchain breaks in proteins based on distance *} -{* the peptide link at break points will be removed *} -{+ choice: true false +} -{===>} auto_break=true; - -{* cutoff distance in Angstroms for identification of breaks *} -{* the default of 2.5A for peptide bonds should be reasonable for most cases. If the input - structure has bad geometry it may be necessary to increase this distance *} -{===>} pbreak_cutoff=3.5; -{===>} pcgbreak_cutoff=8.0; -{* the default of 2.5A for nucleic acid linkages should be reasonable for most cases. If the input - structure has bad geometry it may be necessary to increase this distance *} -{===>} dbreak_cutoff=4.5; - -{* file containing patches to delete peptide links *} -{===>} prot_break_infile="RUN:toppar/protein_break.top"; - -{* file containing patches to delete nucleic acid links *} -{===>} dna_break_infile="RUN:toppar/dna_break.top"; - -{======================= automatic disulphide bonds ========================} - -{* cutoff distance in Angstroms for identification of disulphides *} -{* the default of 3.0A should be reasonable for most cases. If the input - structure has bad geometry it may be necessary to increase this distance *} -{===>} disulphide_dist=3.0; - -{======================= automatic cyclic peptidic bond ====================} - -{* cutoff distance in Angstroms for identification of disulphides *} -{* the default of 3.0A should be reasonable for most cases. If the input - structure has bad geometry it may be necessary to increase this distance *} -{===>} cyclicpept_dist=1.5; - -{======================= automatic iron cluster bonds ======================} - -{* cutoff distance in Angstroms for identification of iron cluster bonds *} -{* the default of 8.0A should be reasonable for most cases. If the input - structure has bad geometry it may be necessary to increase this distance *} -{===>} iron1cluster_dist=5.0; -{===>} iron2cluster_dist=8.0; - -{======================= automatic cis peptide bonds =======================} - -{* select atoms to be included in calculation of omega angles *} -{* to define cis peptides*} -{===>} atom_select=(known and not hydrogen); - -{========================= RNA to DNA conversion ==========================} - -{* All nucleic acid residues initially have ribose sugars (rather than - deoxyribose). A patch must be applied to convert the ribose to deoxyribose - for DNA residues. Select those residues which need to have the patch - applied to make them DNA. *} -{* Make sure that the atom selection is specific for the nucleic acid - residues *} -{===>} dna_sele=(none); - -{========================= generate parameters =============================} - -{* hydrogen flag - determines whether hydrogens will be output *} -{* must be true for NMR, atomic resolution X-ray crystallography - or modelling. Set to false for most X-ray crystallographic - applications at resolution > 1A *} -{+ choice: true false +} -{===>} hydrogen_flag=true; - -{* which hydrogens to build *} -{+ choice: "all" "unknown" +} -{===>} hydrogen_build="all"; - -{* selection of atoms other than hydrogens for which coordinates - will be generated *} -{* to generate coordinates for all unknown atoms use: (not(known)) *} -{===>} atom_build=(not(known)); - -{* selection of atoms to be deleted *} -{* to delete no atoms use: (none) *} -{===>} atom_delete=(none); - -{* set bfactor flag *} -{+ choice: true false +} -{===>} set_bfactor=true; - -{* set bfactor value *} -{===>} bfactor=15.0; - -{* set occupancy flag *} -{+ choice: true false +} -{===>} set_occupancy=true; - -{* set occupancy value *} -{===>} occupancy=1.0; - -{============================= output files ================================} - -{* output structure file *} -{===>} structure_outfile="haddock.psf"; - -{* output coordinate file *} -{===>} coordinate_outfile="haddock.pdb"; - -{================== protein topology and parameter files ===================} - -{* protein topology file *} -{===>} prot_topology_infile="RUN:toppar/protein-allhdg5-4.top"; - -{* protein linkage file *} -{===>} prot_link_infile="RUN:toppar/protein-allhdg5-4.link"; - -{* protein parameter file *} -{===>} prot_parameter_infile="RUN:toppar/protein-allhdg5-4.param"; - -{================ nucleic acid topology and parameter files =================} - -{* nucleic acid topology file *} -{===>} nucl_topology_infile="RUN:toppar/dna-rna-allatom-hj-opls-1.3.top"; - -{* nucleic acid linkage file *} -{* use RUN:/toppar/dna-rna-pho.link for 5'-phosphate *} -{===>} nucl_link_infile="RUN:/toppar/dna-rna-1.3.link"; - -{* nucleic acid parameter file *} -{===>} nucl_parameter_infile="RUN:/toppar/dna-rna-allatom-hj-opls-1.3.param"; - -{================= carbohydrate topology and parameter files ===============} - -{* carbohydrate topology file *} -{===>} carbo_topology_infile="RUN:/toppar/carbohydrate.top"; - -{* carbohydrate parameter file *} -{===>} carbo_parameter_infile="RUN:/toppar/carbohydrate.param"; - -{================= solvent topology and parameter files ====================} - -{* solvent topology file *} -{===>} solv_topology_infile="RUN:/toppar/water-allhdg5-4.top"; - -{* solvent parameter file *} -{===>} solv_parameter_infile="RUN:/toppar/water-allhdg5-4.param"; - -{================= cofactor topology and parameter files ===================} - -{* co-factor topology file *} -{===>} cofac_topology_infile="RUN:/toppar/ligand.top"; - -{* co-factor linkage file *} -{===>} cofac_link_infile="RUN:toppar/ligand.pep"; - -{* co-factor parameter file *} -{===>} cofac_parameter_infile="RUN:/toppar/ligand.param"; - -{================= known ligands topology and parameter files ==============} - -{* ligands topology file *} -{===>} ligands_topology_infile="RUN:/toppar/fragment_probes.top"; - -{* ligands parameter file *} -{===>} ligands_parameter_infile="RUN:/toppar/fragment_probes.param"; - -{===================== ion topology and parameter files ====================} - -{* ion topology file *} -{===>} ion_topology_infile="RUN:/toppar/ion.top"; - -{* ion parameter file *} -{===>} ion_parameter_infile="RUN:/toppar/ion.param"; - -{===================== heme topology and parameter files ====================} - -{* heme topology file *} -{===>} heme_topology_infile="RUN:/toppar/hemes-allhdg.top"; - -{* heme parameter file *} -{===>} heme_parameter_infile="RUN:/toppar/hemes-allhdg.param"; - -{===================== default number of histidines for patching ===========} - - ) {- end block parameter definition -} - -@RUN:initialize.cns(iteration=$iteration;) - -@RUN:begin/iteration.cns(iteration=$iteration;) - -@RUN:run.cns( -iteration =$iteration; -filenames =$filenames; -data =$data; -iterations=$iterations; -saprotocol=$saprotocol; -refine =$refine; -toppar =$toppar; -analysis =$analysis; -) -! set abort=off end - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!The next line will be changed automatically from python: - evaluate ($chain = 1) -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - evaluate($topology_infile= "RUN:toppar/" + $Toppar.prot_top_$chain) - evaluate($parameter_infile= "RUN:toppar/" + $Toppar.prot_par_$chain) - evaluate($link_file= "RUN:toppar/" + $Toppar.prot_link_$chain) - evaluate($coor_infile= "RUN:data/sequence/" + $Toppar.prot_coor_$chain) - evaluate($coor_inlist= "RUN:data/sequence/file_" + encode($chain) + ".list") - evaluate($coor_outfile= "BEGIN:" + $Toppar.prot_root_$chain + ".pdb") - evaluate($psf_outfile= "BEGIN:" + $Toppar.prot_root_$chain + ".psf") - evaluate($psf2_outfile= "BEGIN:" + $Toppar.prot_coor_$chain - ".pdb" + ".psf") - evaluate($par_nonbonded= $Toppar.par_nonbonded) - - if ($Toppar.prot_segid_$chain="") then - evaluate($Toppar.prot_segid_$chain=encode($chain)) - end if - - evaluate ($log_level=quiet) - - topology - @@$topology_infile - if ( &BLANK%ion_topology_infile = false ) then - @@&ion_topology_infile - end if - if ( &BLANK%nucl_topology_infile = false ) then - @@&nucl_topology_infile - end if - if ( &BLANK%solv_topology_infile = false ) then - @@&solv_topology_infile - end if - if ( &BLANK%ligands_topology_infile = false ) then - @@&ligands_topology_infile - end if - if ( &BLANK%cofac_topology_infile = false ) then - @@&cofac_topology_infile - end if - if ( &BLANK%heme_topology_infile = false ) then - @@&heme_topology_infile - end if - if ( &BLANK%prot_break_infile = false ) then - @@&prot_break_infile - end if - if ( &BLANK%dna_break_infile = false ) then - @@&dna_break_infile - end if - end - - parameter - @@$parameter_infile - if ( &BLANK%ion_parameter_infile = false ) then - @@&ion_parameter_infile - end if - if ( &BLANK%nucl_parameter_infile = false ) then - @@&nucl_parameter_infile - end if - if ( &BLANK%solv_parameter_infile = false ) then - @@&solv_parameter_infile - end if - if ( &BLANK%ligands_parameter_infile = false ) then - @@&ligands_parameter_infile - end if - if ( &BLANK%cofac_parameter_infile = false ) then - @@&cofac_parameter_infile - end if - if ( &BLANK%heme_parameter_infile = false ) then - @@&heme_parameter_infile - end if - end - - segment - chain - if ( &convert = true ) then - convert=true - end if - if ( &separate = true ) then - separate=true - end if - @@$link_file - if ( &BLANK%nucl_link_infile = false ) then - @@&nucl_link_infile - end if - if ( &BLANK%cofac_link_infile = false ) then - @@&cofac_link_infile - end if - coordinates @@$coor_infile - end - end - - coordinates @@$coor_infile end - - if ( &BLANK%ile_CD_becomes = false ) then - do (name=&ile_CD_becomes) (resn ILE and name CD) - end if - if ( &BLANK%OT1_becomes = false ) then - do (name=&OT1_becomes) (name OT1) - end if - if ( &BLANK%OT2_becomes = false ) then - do (name=&OT2_becomes) (name OT2) - end if - - !for the histidine patches: - if ($Toppar.autohis = false) then - evaluate($hisd_counter=1) - while ($hisd_counter le $Toppar.nhisd_$chain) loop hisd - if ($Toppar.hisd_resid_$chain_$hisd_counter > 0) then - show (resn) (tag and resid $Toppar.hisd_resid_$chain_$hisd_counter) - if ($result eq "HIS") then - patch hisd reference=nil=(resid $Toppar.hisd_resid_$chain_$hisd_counter) end - end if - end if - evaluate($hisd_counter=$hisd_counter + 1) - end loop hisd - - evaluate($hise_counter=1) - while ($hise_counter le $Toppar.nhise_$chain) loop hise - if ($Toppar.hise_resid_$chain_$hise_counter > 0) then - show (resn) (tag and resid $Toppar.hise_resid_$chain_$hise_counter) - if ($result eq "HIS") then - patch hise reference=nil=(resid $Toppar.hise_resid_$chain_$hise_counter) end - end if - end if - evaluate($hise_counter=$hise_counter + 1) - end loop hise - end if - -! The following patches would define covalent bond between a CA+2 and oxygen ligands -! from Asp and Glu (first selection is amino-acid, second is ion) -! patch dca2 refe=1=(resid 25) refe=2=(resid 83) end -! patch dca2 refe=1=(resid 29) refe=2=(resid 83) end -! patch dca2 refe=1=(resid 35) refe=2=(resid 83) end -! patch eca2 refe=1=(resid 36) refe=2=(resid 83) end -! -! following patch is to attach a heme (resid YY) CAB atom to a cys (resid XX) -! patch phcb refe=1=(resid XX) refe=2=(resid YY) end -! following patch is to attach a heme (resid YY) CAC atom to a cys (resid XX) -! patch phcc refe=1=(resid XX) refe=2=(resid YY) end -! -! following patch is to define an isopeptide bond between a Cter and a Lys side-chain -! patch clys refe=1=(resid 72) refe=2=(resid 148) end -! -! following patch is to define an isopeptide bond between a Cter and a Lys side-chain -! patch clys refe=1=(resid 72) refe=2=(resid 148) end - - inline @RUN:patch-types-cg.cns - inline @RUN:patch-bb-cg.cns - - if ($Toppar.delenph = true) then - delete sele=(name H* and attr charge = 0) end - end if - - evaluate ($nstruc = 1) - for $file in ( @@$coor_inlist ) loop main - - set seed=$Saprotocol.iniseed end - - coor init end - coordinates - if ( &convert = true ) then - convert=true - end if - @@$file - - show sum(1) ( not(hydrogen) and not(known) ) - if ( $select = 0 ) then - display %INFO: There are no coordinates missing for non-hydrogen atoms - end if - - if ( $log_level = verbose ) then - set message=normal echo=on end - else - set message=off echo=off end - end if - - inline @RUN:build-missing.cns - - if ($nstruc = 1) then - - if ( &auto_break = true ) then - inline @RUN:prot_break.cns - inline @RUN:dna_break.cns - end if - -! check for disulphide bonds - - evaluate ($disu=0) - - for $id1 in id ( resn CYS and name SG ) loop dis1 - - show (segid) (id $id1) - evaluate ($segid1=$result) - show (resid) (id $id1) - evaluate ($resid1=$result) - - identity (store9) (all) - - for $id2 in id ( resn CYS and name SG and - ( attr store9 > $id1 ) ) loop dis2 - - show (segid) (id $id2) - evaluate ($segid2=$result) - show (resid) (id $id2) - evaluate ($resid2=$result) - - pick bond (id $id1) (id $id2) geometry - - if ( $result <= &disulphide_dist ) then - evaluate ($disu=$disu+1) - evaluate ($seg1.$disu=$segid1) - evaluate ($seg2.$disu=$segid2) - evaluate ($res1.$disu=$resid1) - evaluate ($res2.$disu=$resid2) - end if - - end loop dis2 - - end loop dis1 - - evaluate ($counter=1) - while ( $counter <= $disu ) loop disu - patch disu - reference=1=(segid $seg1.$counter and resid $res1.$counter) - reference=2=(segid $seg2.$counter and resid $res2.$counter) - end - buffer message - display disulphide added: from \ -$seg1.$counter[a4] $res1.$counter[a4] to $seg2.$counter[a4] $res2.$counter[a4] - end - evaluate ($counter=$counter+1) - end loop disu - -! check for cyclid peptidic bonds - - if ($Toppar.cyclicpept_$chain eq TRUE ) then - - evaluate ($cycp=0) - - for $id1 in id ( tag and name N ) loop cyp1 - - show (segid) (id $id1) - evaluate ($segid1=$result) - show (resid) (id $id1) - evaluate ($resid1=$result) - show (resn) (id $id1) - evaluate ($resn1=$result) - - for $id2 in id ( name C and bondedto (name O and not resid $resid1 ) ) loop cyp2 - - show (segid) (id $id2) - evaluate ($segid2=$result) - show (resid) (id $id2) - evaluate ($resid2=$result) - show (resn) (id $id2) - evaluate ($resn2=$result) - - evaluate ($rdiff = decode($resid2) - decode($resid1)) - - if ($rdiff gt 2) then - - pick bond (id $id1) (id $id2) geometry - - if ( $result <= &cyclicpept_dist ) then - evaluate ($cycp=$cycp+1) - evaluate ($seg1.$cycp=$segid1) - evaluate ($seg2.$cycp=$segid2) - evaluate ($res1.$cycp=$resid1) - evaluate ($res2.$cycp=$resid2) - evaluate ($rsn1.$cycp=$resn1) - evaluate ($rsn2.$cycp=$resn2) - end if - - end if - - end loop cyp2 - - end loop cyp1 - - evaluate ($counter=1) - - while ( $counter <= $cycp ) loop cypep - - evaluate ($ptype = PEPT) - evaluate ($patchdone = 0) - if ( $rsn2.$counter eq GLY) then - if ($rsn1.$counter eq PRO) then - evaluate ($ptype = PPGP) - evaluate ($patchdone = 1) - end if - if ($rsn1.$counter eq GLY) then - evaluate ($ptype = PPGG) - evaluate ($patchdone = 1) - end if - if ($patchdone eq 0) then - evaluate ($ptype = PPG1) - end if - else - if ($rsn1.$counter eq PRO) then - evaluate ($ptype = PEPP) - end if - if ($rsn1.$counter eq GLY) then - evaluate ($ptype = PPG2) - end if - end if - - patch $ptype - reference=+=(segid $seg1.$counter and resid $res1.$counter) - reference=-=(segid $seg2.$counter and resid $res2.$counter) - end - - buffer message - display cyclic peptide detected: peptidic bond added between \ -$seg1.$counter[a4] $res1.$counter[a4] and $seg2.$counter[a4] $res2.$counter[a4] - end - evaluate ($counter=$counter+1) - end loop cypep - - end if ! check for cyclic peptide - -! check for covalently-linked hemeC - - inline @RUN:covalheme.cns - - - ! check for covalently-linked Acetylated Nter to CYS - - inline @RUN:coval-ace-cys.cns - - evaluate ($ironclus=0) - - ! check for FE1 bonds in iron cluster - for $id1 in id ( resname CFE and name SG ) loop fes1 - - show (segid) (id $id1) - evaluate ($segid1=$result) - show (resid) (id $id1) - evaluate ($resid1=$result) - - identity (store9) (all) - - for $id2 in id ( resname CYF and name SG ) loop fes2 - - show (segid) (id $id2) - evaluate ($segid2=$result) - show (resid) (id $id2) - evaluate ($resid2=$result) - - pick bond (id $id1) (id $id2) geometry - - if ( $result <= &iron1cluster_dist ) then - evaluate ($ironclus=$ironclus+1) - evaluate ($seg1.$ironclus=$segid1) - evaluate ($seg2.$ironclus=$segid2) - evaluate ($res1.$ironclus=$resid1) - evaluate ($res2.$ironclus=$resid2) - end if - - end loop fes2 - - end loop fes1 - - evaluate ($counter=1) - while ( $counter <= $ironclus ) loop iron1 - patch sef1 - reference=1=(segid $seg1.$counter and resid $res1.$counter) - reference=2=(segid $seg2.$counter and resid $res2.$counter) - end - buffer message - display iron FE1 sulphur bond added: from $seg1.$counter[a4] $res1.$counter[a4] to $seg2.$counter[a4] $res2.$counter[a4] - end - evaluate ($counter=$counter+1) - end loop iron1 - - evaluate ($ironclus=0) - - ! check for FE2 bonds in iron cluster - for $id1 in id ( resname CFE and name SG ) loop fes1 - - show (segid) (id $id1) - evaluate ($segid1=$result) - show (resid) (id $id1) - evaluate ($resid1=$result) - - identity (store9) (all) - - for $id2 in id ( resname CYF and name SG ) loop fes2 - - show (segid) (id $id2) - evaluate ($segid2=$result) - show (resid) (id $id2) - evaluate ($resid2=$result) - - pick bond (id $id1) (id $id2) geometry - - if ( $result <= &iron2cluster_dist ) then - if ($result > &iron1cluster_dist ) then - evaluate ($ironclus=$ironclus+1) - evaluate ($seg1.$ironclus=$segid1) - evaluate ($seg2.$ironclus=$segid2) - evaluate ($res1.$ironclus=$resid1) - evaluate ($res2.$ironclus=$resid2) - end if - end if - - end loop fes2 - - end loop fes1 - - evaluate ($counter=1) - while ( $counter <= $ironclus ) loop iron2 - patch sef2 - reference=1=(segid $seg1.$counter and resid $res1.$counter) - reference=2=(segid $seg2.$counter and resid $res2.$counter) - end - buffer message - display iron FE2 sulphur bond added: from $seg1.$counter[a4] $res1.$counter[a4] to $seg2.$counter[a4] $res2.$counter[a4] - end - evaluate ($counter=$counter+1) - end loop iron2 - - - {- patching of RNA to DNA -} - evaluate ($counter=0) - if ($Toppar.dna_$chain eq TRUE) then - for $id in id ( tag and (resn ADE or resn CYT or resn THY or resn GUA or resn A or resn C or resn T or resn G) ) loop dna - evaluate ($counter=$counter+1) - show (segid) (id $id) - evaluate ($dna.segid.$counter=$result) - show (resid) (id $id) - evaluate ($dna.resid.$counter=$result) - end loop dna - end if - evaluate ($dna.num=$counter) - - evaluate ($counter=0) - while ($counter < $dna.num) loop dnap - evaluate ($counter=$counter+1) - patch deox reference=nil=(segid $dna.segid.$counter and - resid $dna.resid.$counter) end - end loop dnap - - - for $id in id ( &atom_select and name ca and resn PRO) loop cisp - - show (segid) (id $id) - evaluate ($segid=$result) - show (resid) (id $id) - evaluate ($resid=$result) - show (resn) (id $id) - evaluate ($resn=$result) - - identity (store9) ( &atom_select and ( name c and bondedto - ( name n and resid $resid and segid $segid ) ) ) - if ( $select = 1 ) then - show element (store9) (attribute store9 > 0) - evaluate ($id_prev=$result) - show (segid) (id $id_prev) - evaluate ($segid_prev=$result) - show (resid) (id $id_prev) - evaluate ($resid_prev=$result) - show (resn) (id $id_prev) - evaluate ($resn_prev=$result) - - pick dihedral - (name ca and segid $segid_prev and resid $resid_prev) - (name c and segid $segid_prev and resid $resid_prev) - (name n and segid $segid and resid $resid) - (name ca and segid $segid and resid $resid) - geometry - - evaluate ($dihedral=mod($result+360,360)) - - if ( $dihedral > 180 ) then - evaluate ($dihedral=$dihedral-360) - end if - - evaluate ($absdihedral=abs($dihedral)) - - if ( $absdihedral < 25 ) then - patch cisp reference=NIL=(segid $segid_prev and resid $resid_prev) end - display CIS peptide bon detected for residue $resid_prev - end if - - end if - - end loop cisp - - end if {! end if for patches based on first structure only !} - - if (&hydrogen_flag=false) then - delete selection=( hydrogen ) end - end if - - delete selection=( &atom_delete ) end - - inline @RUN:build-missing.cns - - !check for histidine protonation state if auto mode on - !but only for the first model - if ($nstruc = 1) then - if ($Toppar.autohis = true) then - inline @RUN:auto-his.cns - end if - end if - - energy end - evaluate ($bonded = $bond + $angl + $impr) - if ($bonded > 10000) then - minimize powell nstep=100 drop=10.0 nprint=10 end - end if - if ($bonded > 10000) then - energy end - evaluate ($bonded = $bond + $angl + $impr) - evaluate ($dispfile = $coor_outfile - ".pdb" + "_" + encode($nstruc) + ".warn") - set display=$dispfile end - display WARNING: the bonded energy is very high: - display Ebonded-total=$bonded Ebond=$bond Eangl=$angl Eimpr=$impr - display Something is possibly wrong with your input structure - close $dispfile end - end if - - show sum(1) (not(known)) - if ( $result < 100 ) then - for $id in id (not(known)) loop print - show (segid) (id $id) - evaluate ($segid=$result) - show (resn) (id $id) - evaluate ($resn=$result) - show (resid) (id $id) - evaluate ($resid=$result) - show (name) (id $id) - evaluate ($name=$result) - buffer message - display unknown coordinates for atom: $segid[a4] $resn[a4] $resid[a4] $name[a4] - end - end loop print - else - buffer message - display unknown coordinates for more than 100 atoms - end - end if - - if (&set_bfactor=true) then - do (b=&bfactor) ( all ) - else - show ave(b) (known and not(store9)) - do (b=$result) (store9 and (attr b < 0.01)) - end if - - if ($saprotocol.randorien eq true) then - if (&set_occupancy=true) then - do (q=&occupancy) ( all ) - end if - else - if (&set_occupancy=true) then - do (q=&occupancy) ( not(store9) ) - do (q=0.0) (store9) - end if - end if - - show sum(1) (store9) - if ( $result < 100 ) then - for $id in id (store9) loop print - show (segid) (id $id) - evaluate ($segid=$result) - show (resn) (id $id) - evaluate ($resn=$result) - show (resid) (id $id) - evaluate ($resid=$result) - show (name) (id $id) - evaluate ($name=$result) - buffer message - display coordinates built for atom: $segid[a4] $resn[a4] $resid[a4] $name[a4] - end - end loop print - else - buffer message - display coordinates built for more than 100 hundred atoms - end - end if - - set remarks=reset end - - buffer message - to=remarks - dump - end - buffer message reset end - - do (segid = $Toppar.prot_segid_$chain) (all) - - if ($nstruc = 1) then - write coordinates output=$coor_outfile end - end if - evaluate ($filename_$nstruc = $coor_outfile - ".pdb" + "_" + encode($nstruc) + ".pdb") - write coordinates output=$filename_$nstruc end - evaluate ($nstruc = $nstruc + 1) - - do (segid = " ") (all) - - end loop main - - do (segid = $Toppar.prot_segid_$chain) (all) - write structure output=$psf_outfile end - write structure output=$psf2_outfile end - - evaluate ($disfile = "BEGIN:file_" + encode($chain) + ".list") - set display=$disfile end - - evaluate ($num = 1) - while ($num < $nstruc) loop wrfile - evaluate ($outstring = """ + $filename_$num + """) - display $outstring - evaluate ($num = $num + 1) - end loop wrfile - - stop - - diff --git a/src/haddock/modules/flexref/cns/generate-water.inp b/src/haddock/modules/flexref/cns/generate-water.inp deleted file mode 100644 index b16f8cad3..000000000 --- a/src/haddock/modules/flexref/cns/generate-water.inp +++ /dev/null @@ -1,1010 +0,0 @@ -! generate-water.inp -! Generate a solvated molecule and topology -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * -! * and from the CNS distriution of Brunger and Adams * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! -{+ file: generate-water.inp +} -{+ directory: general +} -{+ description: Generate coordinate and structure file for simple models +} -{+ comment: - This is designed to be a means of generating a coordinate - and structure file for commonly encountered models: protein - and/or DNA/RNA. The coordinates - are provided by the user in a single input PDB file. - Disulphide bonds will be automatically determined by distance. - If required generate hydrogens. Any atoms with unknown - coordinates can be automatically generated +} -{+ authors: Paul Adams and Axel Brunger +} -{+ copyright: Yale University +} - -{+ Adapted for use in HADDOCK by Alexandre Bonvin, Utrecht University Feb-2002 +} - -{- Guidelines for using this file: - - all strings must be quoted by double-quotes - - logical variables (true/false) are not quoted - - do not remove any evaluate statements from the file -} - -{- Special patches will have to be entered manually at the relevant points - in the file - see comments throughout the file -} - -{- begin block parameter definition -} define( - -{============================== important =================================} - -{* Different chains in the structure must have either unique segid or - chainid records. If this is no the case, the end of a chain must - be delimited by a TER card. *} - -{* A break in a chain can be detected automatically or should be delimited - by a BREAK card. In this case no patch (head, tail or link) will be - applied between the residues that bound the chain break. *} - -{* NB. The input PDB file must finish with an END statement *} - -{=========================== coordinate files =============================} - -{* coordinate file *} -{===>} coordinate_infile="/home/abonvin/software/haddock/examples/e2a.pdb"; - -{* convert chainid to segid if chainid is non-blank *} -{+ choice: true false +} -{===>} convert=false; - -{* separate chains by segid - a new segid starts a new chain *} -{+ choice: true false +} -{===>} separate=true; -{============================ renaming atoms ===============================} - -{* some atoms may need to be renamed in the topology database to conform - to what is present in the coordinate file *} - -{* delta carbon in isoleucine is named CD in CNS - what is it currently called in the coordinate file? *} -{* this will not be changed if left blank *} -{===>} ile_CD_becomes="CD1"; - -{* terminal oxygens are named OT1 and OT2 in CNS - what are they currently called in the coordinate file? *} -{* these will not be changed if left blank *} -{===>} OT1_becomes="O"; -{===>} OT2_becomes="OXT"; - -{======================= automatic mainchain breaks ========================} - -{* automatically detect mainchain breaks in proteins based on distance *} -{* the peptide link at break points will be removed *} -{+ choice: true false +} -{===>} auto_break=true; - -{* cutoff distance in Angstroms for identification of breaks *} -{* the default of 2.5A for peptide bonds should be reasonable for most cases. If the input - structure has bad geometry it may be necessary to increase this distance *} -{===>} pbreak_cutoff=3.5; -{===>} pcgbreak_cutoff=8.0; -{* the default of 2.5A for nucleic acid linkages should be reasonable for most cases. If the input - structure has bad geometry it may be necessary to increase this distance *} -{===>} dbreak_cutoff=4.5; - -{* file containing patches to delete peptide links *} -{===>} prot_break_infile="RUN:toppar/protein_break.top"; - -{* file containing patches to delete nucleic acid links *} -{===>} dna_break_infile="RUN:toppar/dna_break.top"; - -{======================= automatic disulphide bonds ========================} - -{* cutoff distance in Angstroms for identification of disulphides *} -{* the default of 3.0A should be reasonable for most cases. If the input - structure has bad geometry it may be necessary to increase this distance *} -{===>} disulphide_dist=3.0; - -{======================= automatic cyclic peptidic bond ====================} - -{* cutoff distance in Angstroms for identification of disulphides *} -{* the default of 3.0A should be reasonable for most cases. If the input - structure has bad geometry it may be necessary to increase this distance *} -{===>} cyclicpept_dist=1.5; - -{======================= automatic iron cluster bonds ======================} - -{* cutoff distance in Angstroms for identification of iron cluster bonds *} -{* the default of 8.0A should be reasonable for most cases. If the input - structure has bad geometry it may be necessary to increase this distance *} -{===>} iron1cluster_dist=5.0; -{===>} iron2cluster_dist=8.0; - -{======================= automatic cis peptide bonds =======================} - -{* select atoms to be included in calculation of omega angles *} -{* to define cis peptides*} -{===>} atom_select=(known and not hydrogen); - -{========================= RNA to DNA conversion ==========================} - -{* All nucleic acid residues initially have ribose sugars (rather than - deoxyribose). A patch must be applied to convert the ribose to deoxyribose - for DNA residues. Select those residues which need to have the patch - applied to make them DNA. *} -{* Make sure that the atom selection is specific for the nucleic acid - residues *} -{===>} dna_sele=(none); - -{========================= generate parameters =============================} - -{* hydrogen flag - determines whether hydrogens will be output *} -{* must be true for NMR, atomic resolution X-ray crystallography - or modelling. Set to false for most X-ray crystallographic - applications at resolution > 1A *} -{+ choice: true false +} -{===>} hydrogen_flag=true; - -{* which hydrogens to build *} -{+ choice: "all" "unknown" +} -{===>} hydrogen_build="all"; - -{* selection of atoms other than hydrogens for which coordinates - will be generated *} -{* to generate coordinates for all unknown atoms use: (not(known)) *} -{===>} atom_build=(not(known)); - -{* selection of atoms to be deleted *} -{* to delete no atoms use: (none) *} -{===>} atom_delete=(none); - -{* set bfactor flag *} -{+ choice: true false +} -{===>} set_bfactor=true; - -{* set bfactor value *} -{===>} bfactor=15.0; - -{* set occupancy flag *} -{+ choice: true false +} -{===>} set_occupancy=true; - -{* set occupancy value *} -{===>} occupancy=1.0; - -{============================= output files ================================} - -{* output structure file *} -{===>} structure_outfile="haddock.psf"; - -{* output coordinate file *} -{===>} coordinate_outfile="haddock.pdb"; - -{================== protein topology and parameter files ===================} - -{* protein topology file *} -{===>} prot_topology_infile="RUN:toppar/protein-allhdg5-4.top"; - -{* protein linkage file *} -{===>} prot_link_infile="RUN:toppar/protein-allhdg5-4.link"; - -{* protein parameter file *} -{===>} prot_parameter_infile="RUN:toppar/protein-allhdg5-4.param"; - -{================ nucleic acid topology and parameter files =================} - -{* nucleic acid topology file *} -{===>} nucl_topology_infile="RUN:toppar/dna-rna-allatom-hj-opls-1.3.top"; - -{* nucleic acid linkage file *} -{* use RUN:/toppar/dna-rna-pho.link for 5'-phosphate *} -{===>} nucl_link_infile="RUN:/toppar/dna-rna-1.3.link"; - -{* nucleic acid parameter file *} -{===>} nucl_parameter_infile="RUN:/toppar/dna-rna-allatom-hj-opls-1.3.param"; - -{================= carbohydrate topology and parameter files ===============} - -{* carbohydrate topology file *} -{===>} carbo_topology_infile="RUN:/toppar/carbohydrate.top"; - -{* carbohydrate parameter file *} -{===>} carbo_parameter_infile="RUN:/toppar/carbohydrate.param"; - -{================= solvent topology and parameter files ====================} - -{* solvent topology file *} -{===>} solv_topology_infile="RUN:/toppar/water-allhdg5-4.top"; - -{* solvent parameter file *} -{===>} solv_parameter_infile="RUN:/toppar/water-allhdg5-4.param"; - -{================= cofactor topology and parameter files ===================} - -{* co-factor topology file *} -{===>} cofac_topology_infile="RUN:/toppar/ligand.top"; - -{* co-factor linkage file *} -{===>} cofac_link_infile="RUN:toppar/ligand.pep"; - -{* co-factor parameter file *} -{===>} cofac_parameter_infile="RUN:/toppar/ligand.param"; - -{================= known ligands topology and parameter files ==============} - -{* ligands topology file *} -{===>} ligands_topology_infile="RUN:/toppar/fragment_probes.top"; - -{* ligands parameter file *} -{===>} ligands_parameter_infile="RUN:/toppar/fragment_probes.param"; - -{===================== ion topology and parameter files ====================} - -{* ion topology file *} -{===>} ion_topology_infile="RUN:/toppar/ion.top"; - -{* ion parameter file *} -{===>} ion_parameter_infile="RUN:/toppar/ion.param"; - -{===================== heme topology and parameter files ====================} - -{* heme topology file *} -{===>} heme_topology_infile="RUN:/toppar/hemes-allhdg.top"; - -{* heme parameter file *} -{===>} heme_parameter_infile="RUN:/toppar/hemes-allhdg.param"; - -{===================== default number of histidines for patching ===========} - - ) {- end block parameter definition -} - -@RUN:initialize.cns(iteration=$iteration;) - -@RUN:begin/iteration.cns(iteration=$iteration;) - -@RUN:run.cns( -iteration =$iteration; -filenames =$filenames; -data =$data; -iterations=$iterations; -saprotocol=$saprotocol; -refine =$refine; -toppar =$toppar; -analysis =$analysis; -) -! set abort=off end - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!The next line will be changed automatically from python: - evaluate ($chain = 1) -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - evaluate($topology_infile= "RUN:toppar/" + $Toppar.prot_top_$chain) - evaluate($parameter_infile= "RUN:toppar/" + $Toppar.prot_par_$chain) - evaluate($link_file= "RUN:toppar/" + $Toppar.prot_link_$chain) - evaluate($coor_infile= "RUN:data/sequence/" + $Toppar.prot_coor_$chain) - evaluate($coor_inlist= "RUN:data/sequence/file_" + encode($chain) + ".list") - evaluate($coor_outfile= "BEGIN:" + $Toppar.prot_root_$chain + ".pdb") - evaluate($psf_outfile= "BEGIN:" + $Toppar.prot_root_$chain + ".psf") - evaluate($psf2_outfile= "BEGIN:" + $Toppar.prot_coor_$chain - ".pdb" + ".psf") - evaluate($par_nonbonded= $Toppar.par_nonbonded) - - if ($Toppar.prot_segid_$chain="") then - evaluate($Toppar.prot_segid_$chain=encode($chain)) - end if - - evaluate ($log_level=quiet) - - topology - @@$topology_infile - if ( &BLANK%ion_topology_infile = false ) then - @@&ion_topology_infile - end if - if ( &BLANK%nucl_topology_infile = false ) then - @@&nucl_topology_infile - end if - if ( &BLANK%solv_topology_infile = false ) then - @@&solv_topology_infile - end if - if ( &BLANK%ligands_topology_infile = false ) then - @@&ligands_topology_infile - end if - if ( &BLANK%cofac_topology_infile = false ) then - @@&cofac_topology_infile - end if - if ( &BLANK%heme_topology_infile = false ) then - @@&heme_topology_infile - end if - if ( &BLANK%prot_break_infile = false ) then - @@&prot_break_infile - end if - if ( &BLANK%dna_break_infile = false ) then - @@&dna_break_infile - end if - end - - parameter - @@$parameter_infile - if ( &BLANK%ion_parameter_infile = false ) then - @@&ion_parameter_infile - end if - if ( &BLANK%nucl_parameter_infile = false ) then - @@&nucl_parameter_infile - end if - if ( &BLANK%solv_parameter_infile = false ) then - @@&solv_parameter_infile - end if - if ( &BLANK%ligands_parameter_infile = false ) then - @@&ligands_parameter_infile - end if - if ( &BLANK%cofac_parameter_infile = false ) then - @@&cofac_parameter_infile - end if - if ( &BLANK%heme_parameter_infile = false ) then - @@&heme_parameter_infile - end if - end - - segment - chain - if ( &convert = true ) then - convert=true - end if - if ( &separate = true ) then - separate=true - end if - @@$link_file - if ( &BLANK%nucl_link_infile = false ) then - @@&nucl_link_infile - end if - if ( &BLANK%cofac_link_infile = false ) then - @@&cofac_link_infile - end if - coordinates @@$coor_infile - end - end - - coordinates @@$coor_infile end - - if ( &BLANK%ile_CD_becomes = false ) then - do (name=&ile_CD_becomes) (resn ILE and name CD) - end if - if ( &BLANK%OT1_becomes = false ) then - do (name=&OT1_becomes) (name OT1) - end if - if ( &BLANK%OT2_becomes = false ) then - do (name=&OT2_becomes) (name OT2) - end if - - !for the histidine patches: - if ($Toppar.autohis = false) then - evaluate($hisd_counter=1) - while ($hisd_counter le $Toppar.nhisd_$chain) loop hisd - if ($Toppar.hisd_resid_$chain_$hisd_counter > 0) then - show (resn) (tag and resid $Toppar.hisd_resid_$chain_$hisd_counter) - if ($result eq "HIS") then - patch hisd reference=nil=(resid $Toppar.hisd_resid_$chain_$hisd_counter) end - end if - end if - evaluate($hisd_counter=$hisd_counter + 1) - end loop hisd - - evaluate($hise_counter=1) - while ($hise_counter le $Toppar.nhise_$chain) loop hise - if ($Toppar.hise_resid_$chain_$hise_counter > 0) then - show (resn) (tag and resid $Toppar.hise_resid_$chain_$hise_counter) - if ($result eq "HIS") then - patch hise reference=nil=(resid $Toppar.hise_resid_$chain_$hise_counter) end - end if - end if - evaluate($hise_counter=$hise_counter + 1) - end loop hise - end if - -! The following patches would define covalent bond between a CA+2 and oxygen ligands -! from Asp and Glu (first selection is amino-acid, second is ion) -! patch dca2 refe=1=(resid 25) refe=2=(resid 83) end -! patch dca2 refe=1=(resid 29) refe=2=(resid 83) end -! patch dca2 refe=1=(resid 35) refe=2=(resid 83) end -! patch eca2 refe=1=(resid 36) refe=2=(resid 83) end -! -! following patch is to attach a heme (resid YY) CAB atom to a cys (resid XX) -! patch phcb refe=1=(resid XX) refe=2=(resid YY) end -! following patch is to attach a heme (resid YY) CAC atom to a cys (resid XX) -! patch phcc refe=1=(resid XX) refe=2=(resid YY) end -! -! following patch is to define an isopeptide bond between a Cter and a Lys side-chain -! patch clys refe=1=(resid 72) refe=2=(resid 148) end -! -! following patch is to define an isopeptide bond between a Cter and a Lys side-chain -! patch clys refe=1=(resid 72) refe=2=(resid 148) end - - if ($Toppar.delenph = true) then - delete sele=(name H* and attr charge = 0) end - end if - - evaluate ($nstruc = 1) - for $file in ( @@$coor_inlist ) loop main - - set seed=$Saprotocol.iniseed end - - coor init end - coordinates - if ( &convert = true ) then - convert=true - end if - @@$file - - show sum(1) ( not(hydrogen) and not(known) ) - if ( $select = 0 ) then - display %INFO: There are no coordinates missing for non-hydrogen atoms - end if - - if ( $log_level = verbose ) then - set message=normal echo=on end - else - set message=off echo=off end - end if - - inline @RUN:build-missing.cns - - if ($nstruc = 1) then - - if ( &auto_break = true ) then - inline @RUN:prot_break.cns - inline @RUN:dna_break.cns - end if - -! check for disulphide bonds - - evaluate ($disu=0) - - for $id1 in id ( resn CYS and name SG ) loop dis1 - - show (segid) (id $id1) - evaluate ($segid1=$result) - show (resid) (id $id1) - evaluate ($resid1=$result) - - identity (store9) (all) - - for $id2 in id ( resn CYS and name SG and - ( attr store9 > $id1 ) ) loop dis2 - - show (segid) (id $id2) - evaluate ($segid2=$result) - show (resid) (id $id2) - evaluate ($resid2=$result) - - pick bond (id $id1) (id $id2) geometry - - if ( $result <= &disulphide_dist ) then - evaluate ($disu=$disu+1) - evaluate ($seg1.$disu=$segid1) - evaluate ($seg2.$disu=$segid2) - evaluate ($res1.$disu=$resid1) - evaluate ($res2.$disu=$resid2) - end if - - end loop dis2 - - end loop dis1 - - evaluate ($counter=1) - while ( $counter <= $disu ) loop disu - patch disu - reference=1=(segid $seg1.$counter and resid $res1.$counter) - reference=2=(segid $seg2.$counter and resid $res2.$counter) - end - buffer message - display disulphide added: from \ -$seg1.$counter[a4] $res1.$counter[a4] to $seg2.$counter[a4] $res2.$counter[a4] - end - evaluate ($counter=$counter+1) - end loop disu - -! check for cyclid peptidic bonds - - if ($Toppar.cyclicpept_$chain eq TRUE ) then - - evaluate ($cycp=0) - - for $id1 in id ( tag and name N ) loop cyp1 - - show (segid) (id $id1) - evaluate ($segid1=$result) - show (resid) (id $id1) - evaluate ($resid1=$result) - show (resn) (id $id1) - evaluate ($resn1=$result) - - for $id2 in id ( name C and bondedto (name O and not resid $resid1 ) ) loop cyp2 - - show (segid) (id $id2) - evaluate ($segid2=$result) - show (resid) (id $id2) - evaluate ($resid2=$result) - show (resn) (id $id2) - evaluate ($resn2=$result) - - evaluate ($rdiff = decode($resid2) - decode($resid1)) - - if ($rdiff gt 2) then - - pick bond (id $id1) (id $id2) geometry - - if ( $result <= &cyclicpept_dist ) then - evaluate ($cycp=$cycp+1) - evaluate ($seg1.$cycp=$segid1) - evaluate ($seg2.$cycp=$segid2) - evaluate ($res1.$cycp=$resid1) - evaluate ($res2.$cycp=$resid2) - evaluate ($rsn1.$cycp=$resn1) - evaluate ($rsn2.$cycp=$resn2) - end if - - end if - - end loop cyp2 - - end loop cyp1 - - evaluate ($counter=1) - - while ( $counter <= $cycp ) loop cypep - - evaluate ($ptype = PEPT) - evaluate ($patchdone = 0) - if ( $rsn2.$counter eq GLY) then - if ($rsn1.$counter eq PRO) then - evaluate ($ptype = PPGP) - evaluate ($patchdone = 1) - end if - if ($rsn1.$counter eq GLY) then - evaluate ($ptype = PPGG) - evaluate ($patchdone = 1) - end if - if ($patchdone eq 0) then - evaluate ($ptype = PPG1) - end if - else - if ($rsn1.$counter eq PRO) then - evaluate ($ptype = PEPP) - end if - if ($rsn1.$counter eq GLY) then - evaluate ($ptype = PPG2) - end if - end if - - patch $ptype - reference=+=(segid $seg1.$counter and resid $res1.$counter) - reference=-=(segid $seg2.$counter and resid $res2.$counter) - end - - buffer message - display cyclic peptide detected: peptidic bond added between \ -$seg1.$counter[a4] $res1.$counter[a4] and $seg2.$counter[a4] $res2.$counter[a4] - end - evaluate ($counter=$counter+1) - end loop cypep - - end if ! check for cyclic peptide - -! check for covalently-linked hemeC - - inline @RUN:covalheme.cns - - - ! check for covalently-linked Acetylated Nter to CYS - - inline @RUN:coval-ace-cys.cns - - evaluate ($ironclus=0) - - ! check for FE1 bonds in iron cluster - for $id1 in id ( resname CFE and name SG ) loop fes1 - - show (segid) (id $id1) - evaluate ($segid1=$result) - show (resid) (id $id1) - evaluate ($resid1=$result) - - identity (store9) (all) - - for $id2 in id ( resname CYF and name SG ) loop fes2 - - show (segid) (id $id2) - evaluate ($segid2=$result) - show (resid) (id $id2) - evaluate ($resid2=$result) - - pick bond (id $id1) (id $id2) geometry - - if ( $result <= &iron1cluster_dist ) then - evaluate ($ironclus=$ironclus+1) - evaluate ($seg1.$ironclus=$segid1) - evaluate ($seg2.$ironclus=$segid2) - evaluate ($res1.$ironclus=$resid1) - evaluate ($res2.$ironclus=$resid2) - end if - - end loop fes2 - - end loop fes1 - - evaluate ($counter=1) - while ( $counter <= $ironclus ) loop iron1 - patch sef1 - reference=1=(segid $seg1.$counter and resid $res1.$counter) - reference=2=(segid $seg2.$counter and resid $res2.$counter) - end - buffer message - display iron FE1 sulphur bond added: from $seg1.$counter[a4] $res1.$counter[a4] to $seg2.$counter[a4] $res2.$counter[a4] - end - evaluate ($counter=$counter+1) - end loop iron1 - - evaluate ($ironclus=0) - - ! check for FE2 bonds in iron cluster - for $id1 in id ( resname CFE and name SG ) loop fes1 - - show (segid) (id $id1) - evaluate ($segid1=$result) - show (resid) (id $id1) - evaluate ($resid1=$result) - - identity (store9) (all) - - for $id2 in id ( resname CYF and name SG ) loop fes2 - - show (segid) (id $id2) - evaluate ($segid2=$result) - show (resid) (id $id2) - evaluate ($resid2=$result) - - pick bond (id $id1) (id $id2) geometry - - if ( $result <= &iron2cluster_dist ) then - if ($result > &iron1cluster_dist ) then - evaluate ($ironclus=$ironclus+1) - evaluate ($seg1.$ironclus=$segid1) - evaluate ($seg2.$ironclus=$segid2) - evaluate ($res1.$ironclus=$resid1) - evaluate ($res2.$ironclus=$resid2) - end if - end if - - end loop fes2 - - end loop fes1 - - evaluate ($counter=1) - while ( $counter <= $ironclus ) loop iron2 - patch sef2 - reference=1=(segid $seg1.$counter and resid $res1.$counter) - reference=2=(segid $seg2.$counter and resid $res2.$counter) - end - buffer message - display iron FE2 sulphur bond added: from $seg1.$counter[a4] $res1.$counter[a4] to $seg2.$counter[a4] $res2.$counter[a4] - end - evaluate ($counter=$counter+1) - end loop iron2 - - - {- patching of RNA to DNA -} - evaluate ($counter=0) - if ($Toppar.dna_$chain eq TRUE) then - for $id in id ( tag and (resn ADE or resn CYT or resn THY or resn GUA or resn A or resn C or resn T or resn G) ) loop dna - evaluate ($counter=$counter+1) - show (segid) (id $id) - evaluate ($dna.segid.$counter=$result) - show (resid) (id $id) - evaluate ($dna.resid.$counter=$result) - end loop dna - end if - evaluate ($dna.num=$counter) - - evaluate ($counter=0) - while ($counter < $dna.num) loop dnap - evaluate ($counter=$counter+1) - patch deox reference=nil=(segid $dna.segid.$counter and - resid $dna.resid.$counter) end - end loop dnap - - - for $id in id ( &atom_select and name ca and resn PRO) loop cisp - - show (segid) (id $id) - evaluate ($segid=$result) - show (resid) (id $id) - evaluate ($resid=$result) - show (resn) (id $id) - evaluate ($resn=$result) - - identity (store9) ( &atom_select and ( name c and bondedto - ( name n and resid $resid and segid $segid ) ) ) - if ( $select = 1 ) then - show element (store9) (attribute store9 > 0) - evaluate ($id_prev=$result) - show (segid) (id $id_prev) - evaluate ($segid_prev=$result) - show (resid) (id $id_prev) - evaluate ($resid_prev=$result) - show (resn) (id $id_prev) - evaluate ($resn_prev=$result) - - pick dihedral - (name ca and segid $segid_prev and resid $resid_prev) - (name c and segid $segid_prev and resid $resid_prev) - (name n and segid $segid and resid $resid) - (name ca and segid $segid and resid $resid) - geometry - - evaluate ($dihedral=mod($result+360,360)) - - if ( $dihedral > 180 ) then - evaluate ($dihedral=$dihedral-360) - end if - - evaluate ($absdihedral=abs($dihedral)) - - if ( $absdihedral < 25 ) then - patch cisp reference=NIL=(segid $segid_prev and resid $resid_prev) end - display CIS peptide bon detected for residue $resid_prev - end if - - end if - - end loop cisp - - end if {! end if for patches based on first structure only !} - - if (&hydrogen_flag=false) then - delete selection=( hydrogen ) end - end if - - delete selection=( &atom_delete ) end - - inline @RUN:build-missing.cns - - !check for histidine protonation state if auto mode on - !but only for the first model - if ($nstruc = 1) then - if ($Toppar.autohis = true) then - inline @RUN:auto-his.cns - end if - end if - - energy end - evaluate ($bonded = $bond + $angl + $impr) - if ($bonded > 10000) then - minimize powell nstep=100 drop=10.0 nprint=10 end - end if - if ($bonded > 10000) then - energy end - evaluate ($bonded = $bond + $angl + $impr) - evaluate ($dispfile = $coor_outfile - ".pdb" + "_" + encode($nstruc) + ".warn") - set display=$dispfile end - display WARNING: the bonded energy is very high: - display Ebonded-total=$bonded Ebond=$bond Eangl=$angl Eimpr=$impr - display Something is possibly wrong with your input structure - close $dispfile end - end if - - show sum(1) (not(known)) - if ( $result < 100 ) then - for $id in id (not(known)) loop print - show (segid) (id $id) - evaluate ($segid=$result) - show (resn) (id $id) - evaluate ($resn=$result) - show (resid) (id $id) - evaluate ($resid=$result) - show (name) (id $id) - evaluate ($name=$result) - buffer message - display unknown coordinates for atom: $segid[a4] $resn[a4] $resid[a4] $name[a4] - end - end loop print - else - buffer message - display unknown coordinates for more than 100 atoms - end - end if - - if (&set_bfactor=true) then - do (b=&bfactor) ( all ) - else - show ave(b) (known and not(store9)) - do (b=$result) (store9 and (attr b < 0.01)) - end if - - if ($saprotocol.randorien eq true) then - if (&set_occupancy=true) then - do (q=&occupancy) ( all ) - end if - else - if (&set_occupancy=true) then - do (q=&occupancy) ( not(store9) ) - do (q=0.0) (store9) - end if - end if - - show sum(1) (store9) - if ( $result < 100 ) then - for $id in id (store9) loop print - show (segid) (id $id) - evaluate ($segid=$result) - show (resn) (id $id) - evaluate ($resn=$result) - show (resid) (id $id) - evaluate ($resid=$result) - show (name) (id $id) - evaluate ($name=$result) - buffer message - display coordinates built for atom: $segid[a4] $resn[a4] $resid[a4] $name[a4] - end - end loop print - else - buffer message - display coordinates built for more than 100 hundred atoms - end - end if - - set remarks=reset end - - buffer message - to=remarks - dump - end - buffer message reset end - - do (segid = $Toppar.prot_segid_$chain) (all) - - parameter - nbonds - repel=0.0 vswitch - nbxmod=5 atom cdiel shift vswitch - cutnb=9.5 ctofnb=8.5 ctonnb=6.5 eps=1.0 e14fac=0.4 inhibit 0.25 - wmin=0.5 - tolerance 0.5 - end - end - - fix sele=(not all) end - - igroup interaction (all) (all) end - energy end - - !here: loop over #waterensemble (rotate) - eval($waterstruc = 0) - while ($waterstruc < $data.waterensemble) loop waterensemble - igroup interaction (all) (all) end - eval($waterstruc = $waterstruc + 1) - if ($SaProtocol.randorien eq true) then - @RUN:rotate_pdb.cns - end if - - ! generate water layer - do (segid = "PROT") (segid $Toppar.prot_segid_$chain) - @RUN:generate_water.cns - - parameter - bond (resn WAT ) (resn WAT ) 1000 TOKEN - angle (resn WAT ) (resn WAT ) (resn WAT ) 500 TOKEN - bond (resn HOH ) (resn HOH ) 1000 TOKEN - angle (resn HOH ) (resn HOH ) (resn HOH ) 500 TOKEN - bond (resn TIP*) (resn TIP*) 1000 TOKEN - angle (resn TIP*) (resn TIP*) (resn TIP*) 500 TOKEN - end - - do (segid = $Toppar.prot_segid_$chain) (not (resn WAT or resn HOH or resn TIP*)) - - do (q=&occupancy) (resn WAT or resn HOH or resn TIP*) - - delete sele=(byres ((resn WAT or resn HOH or resn TIP*) and not (segid $Toppar.prot_segid_$chain and not hydro) around 7.0) ) end - - fix sele=(not (resn WAT or resn HOH or resn TIP*)) end - igroup interaction (all) (all) end - - flags exclude * include bond angl impr dihe vdw elec harm end - - energy end - minimize powell - nstep=200 - drop=40.0 - nprint=5 - end - energy end - - {- Friction coefficient, in 1/ps. -} - do (mass =100) (all) - do (fbeta = 20. {1/ps} ) ( all ) - - evaluate ($nstep=1000) - evaluate ($timestep=0.001) - - evaluate ($bath=600.0) - do (vx=maxwell($bath)) (all) - do (vy=maxwell($bath)) (all) - do (vz=maxwell($bath)) (all) - - for $bath in (600 500 400 300) loop cool - fix sele=(not (resn WAT or resn HOH or resn TIP*)) end - dynamics cartesian - nstep=$nstep - timestep=$timestep - tcoupling=true temperature=$bath - nprint=200 - end - end loop cool - - delete sele=(byres ((resn WAT or resn HOH or resn TIP*) and not (segid $Toppar.prot_segid_$chain and not hydro) around 5.5) ) end - - fix sele=(not (resn WAT or resn HOH or resn TIP*)) end - igroup interaction (all) (all) end - - energy end - minimize powell - nstep=200 - drop=40.0 - nprint=5 - end - energy end - - if ($data.solvate_method eq "restraints") then - delete sele= (byres (name oh2 and not (resn arg or resn asn or resn asp or resn gln or resn glu - or resn his* or resn lys or resn pro or resn ser or resn thr or resn tyr) around $data.water_restraint_initial)) end - end if - - !renumber solvent molecules - do (store1 = decode(resid)) (all) - show max (store1) (not (resn WAT or resn HOH or resn TIP*)) - evaluate ($counter=$result+1) - for $id in id ((resn WAT or resn HOH or resn TIP*) and (name OH2 or name O)) loop sol - eval ($rstr=encode($counter)) - do (resid=$rstr) (bygroup(id $id)) - eval ($counter=$counter+1) - end loop sol - - do (segid = $Toppar.prot_segid_$chain) (not (resn WAT or resn HOH or resn TIP*)) - eval ($waterseg="WA" + encode($chain)) - do (segid = $waterseg) (resn WAT or resn HOH or resn TIP*) - - if ($nstruc = 1) then - evaluate ($wateroutfile=$coor_outfile -".pdb" + "_water.pdbw") - write coordinates sele = (not (resn WAT or resn HOH or resn TIP*)) output=$coor_outfile end - write coordinates sele = (resn WAT or resn HOH or resn TIP*) output=$wateroutfile end - end if - evaluate ($filename_$nstruc = $coor_outfile - ".pdb" + "_" + encode($nstruc) + ".pdb") - evaluate ($wateroutfile_$nstruc=$coor_outfile -".pdb" + "_" + encode($nstruc)+ "_water.pdbw") - write coordinates sele = (not (resn WAT or resn HOH or resn TIP*)) output=$filename_$nstruc end - write coordinates sele = (resn WAT or resn HOH or resn TIP*) output=$wateroutfile_$nstruc end - evaluate ($nstruc = $nstruc + 1) - - dele sele=(resn WAT or resn HOH or resn TIP*) end - end loop waterensemble - - do (segid = " ") (all) - - end loop main - - do (segid = $Toppar.prot_segid_$chain) (all) - write structure output=$psf_outfile end - write structure output=$psf2_outfile end - - evaluate ($disfile = "BEGIN:file_" + encode($chain) + ".list") - set display=$disfile end - - evaluate ($num = 1) - while ($num < $nstruc) loop wrfile - evaluate ($outstring = """ + $filename_$num + """) - display $outstring - evaluate ($num = $num + 1) - end loop wrfile - - stop - - diff --git a/src/haddock/modules/flexref/cns/generate.inp b/src/haddock/modules/flexref/cns/generate.inp deleted file mode 100644 index c0b0ee8f6..000000000 --- a/src/haddock/modules/flexref/cns/generate.inp +++ /dev/null @@ -1,896 +0,0 @@ -! generate.inp -! Generates missing coordinates and topology -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * -! * and from the CNS distriution of Brunger and Adams * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! -{+ file: generate.inp +} -{+ directory: general +} -{+ description: Generate coordinate and structure file for simple models +} -{+ comment: - This is designed to be a means of generating a coordinate - and structure file for commonly encountered models: protein - and/or DNA/RNA. The coordinates - are provided by the user in a single input PDB file. - Disulphide bonds will be automatically determined by distance. - If required generate hydrogens. Any atoms with unknown - coordinates can be automatically generated +} -{+ authors: Paul Adams and Axel Brunger +} -{+ copyright: Yale University +} - -{+ Adapted for use in HADDOCK by Alexandre Bonvin, Utrecht University Feb-2002 +} - -{- Guidelines for using this file: - - all strings must be quoted by double-quotes - - logical variables (true/false) are not quoted - - do not remove any evaluate statements from the file -} - -{- Special patches will have to be entered manually at the relevant points - in the file - see comments throughout the file -} - -{- begin block parameter definition -} define( - -{============================== important =================================} - -{* Different chains in the structure must have either unique segid or - chainid records. If this is no the case, the end of a chain must - be delimited by a TER card. *} - -{* A break in a chain can be detected automatically or should be delimited - by a BREAK card. In this case no patch (head, tail or link) will be - applied between the residues that bound the chain break. *} - -{* NB. The input PDB file must finish with an END statement *} - -{=========================== coordinate files =============================} - -{* coordinate file *} -{===>} coordinate_infile="/home/abonvin/software/haddock/examples/e2a.pdb"; - -{* convert chainid to segid if chainid is non-blank *} -{+ choice: true false +} -{===>} convert=false; - -{* separate chains by segid - a new segid starts a new chain *} -{+ choice: true false +} -{===>} separate=true; -{============================ renaming atoms ===============================} - -{* some atoms may need to be renamed in the topology database to conform - to what is present in the coordinate file *} - -{* delta carbon in isoleucine is named CD in CNS - what is it currently called in the coordinate file? *} -{* this will not be changed if left blank *} -{===>} ile_CD_becomes="CD1"; - -{* terminal oxygens are named OT1 and OT2 in CNS - what are they currently called in the coordinate file? *} -{* these will not be changed if left blank *} -{===>} OT1_becomes="O"; -{===>} OT2_becomes="OXT"; - -{======================= automatic mainchain breaks ========================} - -{* automatically detect mainchain breaks in proteins based on distance *} -{* the peptide link at break points will be removed *} -{+ choice: true false +} -{===>} auto_break=true; - -{* cutoff distance in Angstroms for identification of breaks *} -{* the default of 2.5A for peptide bonds should be reasonable for most cases. If the input - structure has bad geometry it may be necessary to increase this distance *} -{===>} pbreak_cutoff=3.5; -{===>} pcgbreak_cutoff=8.0; -{* the default of 2.5A for nucleic acid linkages should be reasonable for most cases. If the input - structure has bad geometry it may be necessary to increase this distance *} -{===>} dbreak_cutoff=4.5; - -{* file containing patches to delete peptide links *} -{===>} prot_break_infile="RUN:toppar/protein_break.top"; - -{* file containing patches to delete nucleic acid links *} -{===>} dna_break_infile="RUN:toppar/dna_break.top"; - -{======================= automatic disulphide bonds ========================} - -{* cutoff distance in Angstroms for identification of disulphides *} -{* the default of 3.0A should be reasonable for most cases. If the input - structure has bad geometry it may be necessary to increase this distance *} -{===>} disulphide_dist=3.0; - -{======================= automatic cyclic peptidic bond ====================} - -{* cutoff distance in Angstroms for identification of disulphides *} -{* the default of 3.0A should be reasonable for most cases. If the input - structure has bad geometry it may be necessary to increase this distance *} -{===>} cyclicpept_dist=1.5; - -{======================= automatic iron cluster bonds ======================} - -{* cutoff distance in Angstroms for identification of iron cluster bonds *} -{* the default of 8.0A should be reasonable for most cases. If the input - structure has bad geometry it may be necessary to increase this distance *} -{===>} iron1cluster_dist=5.0; -{===>} iron2cluster_dist=8.0; - -{======================= automatic cis peptide bonds =======================} - -{* select atoms to be included in calculation of omega angles *} -{* to define cis peptides*} -{===>} atom_select=(known and not hydrogen); - -{========================= RNA to DNA conversion ==========================} - -{* All nucleic acid residues initially have ribose sugars (rather than - deoxyribose). A patch must be applied to convert the ribose to deoxyribose - for DNA residues. Select those residues which need to have the patch - applied to make them DNA. *} -{* Make sure that the atom selection is specific for the nucleic acid - residues *} -{===>} dna_sele=(none); - -{========================= generate parameters =============================} - -{* hydrogen flag - determines whether hydrogens will be output *} -{* must be true for NMR, atomic resolution X-ray crystallography - or modelling. Set to false for most X-ray crystallographic - applications at resolution > 1A *} -{+ choice: true false +} -{===>} hydrogen_flag=true; - -{* which hydrogens to build *} -{+ choice: "all" "unknown" +} -{===>} hydrogen_build="all"; - -{* selection of atoms other than hydrogens for which coordinates - will be generated *} -{* to generate coordinates for all unknown atoms use: (not(known)) *} -{===>} atom_build=(not(known)); - -{* selection of atoms to be deleted *} -{* to delete no atoms use: (none) *} -{===>} atom_delete=(none); - -{* set bfactor flag *} -{+ choice: true false +} -{===>} set_bfactor=true; - -{* set bfactor value *} -{===>} bfactor=15.0; - -{* set occupancy flag *} -{+ choice: true false +} -{===>} set_occupancy=true; - -{* set occupancy value *} -{===>} occupancy=1.0; - -{============================= output files ================================} - -{* output structure file *} -{===>} structure_outfile="haddock.psf"; - -{* output coordinate file *} -{===>} coordinate_outfile="haddock.pdb"; - -{================== protein topology and parameter files ===================} - -{* protein topology file *} -{===>} prot_topology_infile="RUN:toppar/protein-allhdg5-4.top"; - -{* protein linkage file *} -{===>} prot_link_infile="RUN:toppar/protein-allhdg5-4.link"; - -{* protein parameter file *} -{===>} prot_parameter_infile="RUN:toppar/protein-allhdg5-4.param"; - -{================ nucleic acid topology and parameter files =================} - -{* nucleic acid topology file *} -{===>} nucl_topology_infile="RUN:toppar/dna-rna-allatom-hj-opls-1.3.top"; - -{* nucleic acid linkage file *} -{* use RUN:/toppar/dna-rna-pho.link for 5'-phosphate *} -{===>} nucl_link_infile="RUN:/toppar/dna-rna-1.3.link"; - -{* nucleic acid parameter file *} -{===>} nucl_parameter_infile="RUN:/toppar/dna-rna-allatom-hj-opls-1.3.param"; - -{================= carbohydrate topology and parameter files ===============} - -{* carbohydrate topology file *} -{===>} carbo_topology_infile="RUN:/toppar/carbohydrate.top"; - -{* carbohydrate parameter file *} -{===>} carbo_parameter_infile="RUN:/toppar/carbohydrate.param"; - -{================= solvent topology and parameter files ====================} - -{* solvent topology file *} -{===>} solv_topology_infile="RUN:/toppar/water-allhdg5-4.top"; - -{* solvent parameter file *} -{===>} solv_parameter_infile="RUN:/toppar/water-allhdg5-4.param"; - -{================= cofactor topology and parameter files ===================} - -{* co-factor topology file *} -{===>} cofac_topology_infile="RUN:/toppar/ligand.top"; - -{* co-factor linkage file *} -{===>} cofac_link_infile="RUN:toppar/ligand.pep"; - -{* co-factor parameter file *} -{===>} cofac_parameter_infile="RUN:/toppar/ligand.param"; - -{================= known ligands topology and parameter files ==============} - -{* ligands topology file *} -{===>} ligands_topology_infile="RUN:/toppar/fragment_probes.top"; - -{* ligands parameter file *} -{===>} ligands_parameter_infile="RUN:/toppar/fragment_probes.param"; - -{===================== ion topology and parameter files ====================} - -{* ion topology file *} -{===>} ion_topology_infile="RUN:/toppar/ion.top"; - -{* ion parameter file *} -{===>} ion_parameter_infile="RUN:/toppar/ion.param"; - -{===================== heme topology and parameter files ====================} - -{* heme topology file *} -{===>} heme_topology_infile="RUN:/toppar/hemes-allhdg.top"; - -{* heme parameter file *} -{===>} heme_parameter_infile="RUN:/toppar/hemes-allhdg.param"; - -{===================== default number of histidines for patching ===========} - - ) {- end block parameter definition -} - -@RUN:initialize.cns(iteration=$iteration;) - -@RUN:begin/iteration.cns(iteration=$iteration;) - -@RUN:run.cns( -iteration =$iteration; -filenames =$filenames; -data =$data; -iterations=$iterations; -saprotocol=$saprotocol; -refine =$refine; -toppar =$toppar; -analysis =$analysis; -) -! set abort=off end - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!The next line will be changed automatically from python: - evaluate ($chain = 1) -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - - evaluate($topology_infile= "RUN:toppar/" + $Toppar.prot_top_$chain) - evaluate($parameter_infile= "RUN:toppar/" + $Toppar.prot_par_$chain) - evaluate($link_file= "RUN:toppar/" + $Toppar.prot_link_$chain) - evaluate($coor_infile= "RUN:data/sequence/" + $Toppar.prot_coor_$chain) - evaluate($coor_inlist= "RUN:data/sequence/file_" + encode($chain) + ".list") - evaluate($coor_outfile= "BEGIN:" + $Toppar.prot_root_$chain + ".pdb") - evaluate($psf_outfile= "BEGIN:" + $Toppar.prot_root_$chain + ".psf") - evaluate($psf2_outfile= "BEGIN:" + $Toppar.prot_coor_$chain - ".pdb" + ".psf") - evaluate($par_nonbonded= $Toppar.par_nonbonded) - - if ($Toppar.prot_segid_$chain="") then - evaluate($Toppar.prot_segid_$chain=encode($chain)) - end if - - evaluate ($log_level=quiet) - - topology - @@$topology_infile - if ( &BLANK%ion_topology_infile = false ) then - @@&ion_topology_infile - end if - if ( &BLANK%nucl_topology_infile = false ) then - @@&nucl_topology_infile - end if - if ( &BLANK%solv_topology_infile = false ) then - @@&solv_topology_infile - end if - if ( &BLANK%ligands_topology_infile = false ) then - @@&ligands_topology_infile - end if - if ( &BLANK%cofac_topology_infile = false ) then - @@&cofac_topology_infile - end if - if ( &BLANK%heme_topology_infile = false ) then - @@&heme_topology_infile - end if - if ( &BLANK%prot_break_infile = false ) then - @@&prot_break_infile - end if - if ( &BLANK%dna_break_infile = false ) then - @@&dna_break_infile - end if - end - - parameter - @@$parameter_infile - if ( &BLANK%ion_parameter_infile = false ) then - @@&ion_parameter_infile - end if - if ( &BLANK%nucl_parameter_infile = false ) then - @@&nucl_parameter_infile - end if - if ( &BLANK%solv_parameter_infile = false ) then - @@&solv_parameter_infile - end if - if ( &BLANK%ligands_parameter_infile = false ) then - @@&ligands_parameter_infile - end if - if ( &BLANK%cofac_parameter_infile = false ) then - @@&cofac_parameter_infile - end if - if ( &BLANK%heme_parameter_infile = false ) then - @@&heme_parameter_infile - end if - end - - segment - chain - if ( &convert = true ) then - convert=true - end if - if ( &separate = true ) then - separate=true - end if - @@$link_file - if ( &BLANK%nucl_link_infile = false ) then - @@&nucl_link_infile - end if - if ( &BLANK%cofac_link_infile = false ) then - @@&cofac_link_infile - end if - coordinates @@$coor_infile - end - end - - coordinates @@$coor_infile end - - if ( &BLANK%ile_CD_becomes = false ) then - do (name=&ile_CD_becomes) (resn ILE and name CD) - end if - if ( &BLANK%OT1_becomes = false ) then - do (name=&OT1_becomes) (name OT1) - end if - if ( &BLANK%OT2_becomes = false ) then - do (name=&OT2_becomes) (name OT2) - end if - - !for the histidine patches: - if ($Toppar.autohis = false) then - evaluate($hisd_counter=1) - while ($hisd_counter le $Toppar.nhisd_$chain) loop hisd - if ($Toppar.hisd_resid_$chain_$hisd_counter > 0) then - show (resn) (tag and resid $Toppar.hisd_resid_$chain_$hisd_counter) - if ($result eq "HIS") then - patch hisd reference=nil=(resid $Toppar.hisd_resid_$chain_$hisd_counter) end - end if - end if - evaluate($hisd_counter=$hisd_counter + 1) - end loop hisd - - evaluate($hise_counter=1) - while ($hise_counter le $Toppar.nhise_$chain) loop hise - if ($Toppar.hise_resid_$chain_$hise_counter > 0) then - show (resn) (tag and resid $Toppar.hise_resid_$chain_$hise_counter) - if ($result eq "HIS") then - patch hise reference=nil=(resid $Toppar.hise_resid_$chain_$hise_counter) end - end if - end if - evaluate($hise_counter=$hise_counter + 1) - end loop hise - end if - -! The following patches would define covalent bond between a CA+2 and oxygen ligands -! from Asp and Glu (first selection is amino-acid, second is ion) -! patch dca2 refe=1=(resid 25) refe=2=(resid 83) end -! patch dca2 refe=1=(resid 29) refe=2=(resid 83) end -! patch dca2 refe=1=(resid 35) refe=2=(resid 83) end -! patch eca2 refe=1=(resid 36) refe=2=(resid 83) end -! -! following patch is to attach a heme (resid YY) CAB atom to a cys (resid XX) -! patch phcb refe=1=(resid XX) refe=2=(resid YY) end -! following patch is to attach a heme (resid YY) CAC atom to a cys (resid XX) -! patch phcc refe=1=(resid XX) refe=2=(resid YY) end -! -! following patch is to define an isopeptide bond between a Cter and a Lys side-chain -! patch clys refe=1=(resid 72) refe=2=(resid 148) end -! -! following patch is to define an isopeptide bond between a Cter and a Lys side-chain -! patch clys refe=1=(resid 72) refe=2=(resid 148) end - - inline @RUN:patch-types-cg.cns - inline @RUN:patch-bb-cg.cns - - if ($Toppar.delenph = true) then - delete sele=(name H* and attr charge = 0) end - end if - - evaluate ($nstruc = 1) - for $file in ( @@$coor_inlist ) loop main - - set seed=$Saprotocol.iniseed end - - coor init end - coordinates - if ( &convert = true ) then - convert=true - end if - @@$file - - show sum(1) ( not(hydrogen) and not(known) ) - if ( $select = 0 ) then - display %INFO: There are no coordinates missing for non-hydrogen atoms - end if - - if ( $log_level = verbose ) then - set message=normal echo=on end - else - set message=off echo=off end - end if - - inline @RUN:build-missing.cns - - if ($nstruc = 1) then - - if ( &auto_break = true ) then - inline @RUN:prot_break.cns - inline @RUN:dna_break.cns - end if - -! check for disulphide bonds - - evaluate ($disu=0) - - for $id1 in id ( resn CYS and name SG ) loop dis1 - - show (segid) (id $id1) - evaluate ($segid1=$result) - show (resid) (id $id1) - evaluate ($resid1=$result) - - identity (store9) (all) - - for $id2 in id ( resn CYS and name SG and - ( attr store9 > $id1 ) ) loop dis2 - - show (segid) (id $id2) - evaluate ($segid2=$result) - show (resid) (id $id2) - evaluate ($resid2=$result) - - pick bond (id $id1) (id $id2) geometry - - if ( $result <= &disulphide_dist ) then - evaluate ($disu=$disu+1) - evaluate ($seg1.$disu=$segid1) - evaluate ($seg2.$disu=$segid2) - evaluate ($res1.$disu=$resid1) - evaluate ($res2.$disu=$resid2) - end if - - end loop dis2 - - end loop dis1 - - evaluate ($counter=1) - while ( $counter <= $disu ) loop disu - patch disu - reference=1=(segid $seg1.$counter and resid $res1.$counter) - reference=2=(segid $seg2.$counter and resid $res2.$counter) - end - buffer message - display disulphide added: from \ -$seg1.$counter[a4] $res1.$counter[a4] to $seg2.$counter[a4] $res2.$counter[a4] - end - evaluate ($counter=$counter+1) - end loop disu - -! check for cyclid peptidic bonds - - if ($Toppar.cyclicpept_$chain eq TRUE ) then - - evaluate ($cycp=0) - - for $id1 in id ( tag and name N ) loop cyp1 - - show (segid) (id $id1) - evaluate ($segid1=$result) - show (resid) (id $id1) - evaluate ($resid1=$result) - show (resn) (id $id1) - evaluate ($resn1=$result) - - for $id2 in id ( name C and bondedto (name O and not resid $resid1 ) ) loop cyp2 - - show (segid) (id $id2) - evaluate ($segid2=$result) - show (resid) (id $id2) - evaluate ($resid2=$result) - show (resn) (id $id2) - evaluate ($resn2=$result) - - evaluate ($rdiff = decode($resid2) - decode($resid1)) - - if ($rdiff gt 2) then - - pick bond (id $id1) (id $id2) geometry - - if ( $result <= &cyclicpept_dist ) then - evaluate ($cycp=$cycp+1) - evaluate ($seg1.$cycp=$segid1) - evaluate ($seg2.$cycp=$segid2) - evaluate ($res1.$cycp=$resid1) - evaluate ($res2.$cycp=$resid2) - evaluate ($rsn1.$cycp=$resn1) - evaluate ($rsn2.$cycp=$resn2) - end if - - end if - - end loop cyp2 - - end loop cyp1 - - evaluate ($counter=1) - - while ( $counter <= $cycp ) loop cypep - - evaluate ($ptype = PEPT) - evaluate ($patchdone = 0) - if ( $rsn2.$counter eq GLY) then - if ($rsn1.$counter eq PRO) then - evaluate ($ptype = PPGP) - evaluate ($patchdone = 1) - end if - if ($rsn1.$counter eq GLY) then - evaluate ($ptype = PPGG) - evaluate ($patchdone = 1) - end if - if ($patchdone eq 0) then - evaluate ($ptype = PPG1) - end if - else - if ($rsn1.$counter eq PRO) then - evaluate ($ptype = PEPP) - end if - if ($rsn1.$counter eq GLY) then - evaluate ($ptype = PPG2) - end if - end if - - patch $ptype - reference=+=(segid $seg1.$counter and resid $res1.$counter) - reference=-=(segid $seg2.$counter and resid $res2.$counter) - end - - buffer message - display cyclic peptide detected: peptidic bond added between \ -$seg1.$counter[a4] $res1.$counter[a4] and $seg2.$counter[a4] $res2.$counter[a4] - end - evaluate ($counter=$counter+1) - end loop cypep - - end if ! check for cyclic peptide - -! check for covalently-linked hemeC - - inline @RUN:covalheme.cns - - - ! check for covalently-linked Acetylated Nter to CYS - - inline @RUN:coval-ace-cys.cns - - evaluate ($ironclus=0) - - ! check for FE1 bonds in iron cluster - for $id1 in id ( resname CFE and name SG ) loop fes1 - - show (segid) (id $id1) - evaluate ($segid1=$result) - show (resid) (id $id1) - evaluate ($resid1=$result) - - identity (store9) (all) - - for $id2 in id ( resname CYF and name SG ) loop fes2 - - show (segid) (id $id2) - evaluate ($segid2=$result) - show (resid) (id $id2) - evaluate ($resid2=$result) - - pick bond (id $id1) (id $id2) geometry - - if ( $result <= &iron1cluster_dist ) then - evaluate ($ironclus=$ironclus+1) - evaluate ($seg1.$ironclus=$segid1) - evaluate ($seg2.$ironclus=$segid2) - evaluate ($res1.$ironclus=$resid1) - evaluate ($res2.$ironclus=$resid2) - end if - - end loop fes2 - - end loop fes1 - - evaluate ($counter=1) - while ( $counter <= $ironclus ) loop iron1 - patch sef1 - reference=1=(segid $seg1.$counter and resid $res1.$counter) - reference=2=(segid $seg2.$counter and resid $res2.$counter) - end - buffer message - display iron FE1 sulphur bond added: from $seg1.$counter[a4] $res1.$counter[a4] to $seg2.$counter[a4] $res2.$counter[a4] - end - evaluate ($counter=$counter+1) - end loop iron1 - - evaluate ($ironclus=0) - - ! check for FE2 bonds in iron cluster - for $id1 in id ( resname CFE and name SG ) loop fes1 - - show (segid) (id $id1) - evaluate ($segid1=$result) - show (resid) (id $id1) - evaluate ($resid1=$result) - - identity (store9) (all) - - for $id2 in id ( resname CYF and name SG ) loop fes2 - - show (segid) (id $id2) - evaluate ($segid2=$result) - show (resid) (id $id2) - evaluate ($resid2=$result) - - pick bond (id $id1) (id $id2) geometry - - if ( $result <= &iron2cluster_dist ) then - if ($result > &iron1cluster_dist ) then - evaluate ($ironclus=$ironclus+1) - evaluate ($seg1.$ironclus=$segid1) - evaluate ($seg2.$ironclus=$segid2) - evaluate ($res1.$ironclus=$resid1) - evaluate ($res2.$ironclus=$resid2) - end if - end if - - end loop fes2 - - end loop fes1 - - evaluate ($counter=1) - while ( $counter <= $ironclus ) loop iron2 - patch sef2 - reference=1=(segid $seg1.$counter and resid $res1.$counter) - reference=2=(segid $seg2.$counter and resid $res2.$counter) - end - buffer message - display iron FE2 sulphur bond added: from $seg1.$counter[a4] $res1.$counter[a4] to $seg2.$counter[a4] $res2.$counter[a4] - end - evaluate ($counter=$counter+1) - end loop iron2 - - - {- patching of RNA to DNA -} - evaluate ($counter=0) - if ($Toppar.dna_$chain eq TRUE) then - for $id in id ( tag and (resn ADE or resn CYT or resn THY or resn GUA or resn A or resn C or resn T or resn G) ) loop dna - evaluate ($counter=$counter+1) - show (segid) (id $id) - evaluate ($dna.segid.$counter=$result) - show (resid) (id $id) - evaluate ($dna.resid.$counter=$result) - end loop dna - end if - evaluate ($dna.num=$counter) - - evaluate ($counter=0) - while ($counter < $dna.num) loop dnap - evaluate ($counter=$counter+1) - patch deox reference=nil=(segid $dna.segid.$counter and - resid $dna.resid.$counter) end - end loop dnap - - - for $id in id ( &atom_select and name ca and resn PRO) loop cisp - - show (segid) (id $id) - evaluate ($segid=$result) - show (resid) (id $id) - evaluate ($resid=$result) - show (resn) (id $id) - evaluate ($resn=$result) - - identity (store9) ( &atom_select and ( name c and bondedto - ( name n and resid $resid and segid $segid ) ) ) - if ( $select = 1 ) then - show element (store9) (attribute store9 > 0) - evaluate ($id_prev=$result) - show (segid) (id $id_prev) - evaluate ($segid_prev=$result) - show (resid) (id $id_prev) - evaluate ($resid_prev=$result) - show (resn) (id $id_prev) - evaluate ($resn_prev=$result) - - pick dihedral - (name ca and segid $segid_prev and resid $resid_prev) - (name c and segid $segid_prev and resid $resid_prev) - (name n and segid $segid and resid $resid) - (name ca and segid $segid and resid $resid) - geometry - - evaluate ($dihedral=mod($result+360,360)) - - if ( $dihedral > 180 ) then - evaluate ($dihedral=$dihedral-360) - end if - - evaluate ($absdihedral=abs($dihedral)) - - if ( $absdihedral < 25 ) then - patch cisp reference=NIL=(segid $segid_prev and resid $resid_prev) end - display CIS peptide bon detected for residue $resid_prev - end if - - end if - - end loop cisp - - end if {! end if for patches based on first structure only !} - - if (&hydrogen_flag=false) then - delete selection=( hydrogen ) end - end if - - delete selection=( &atom_delete ) end - - inline @RUN:build-missing.cns - - !check for histidine protonation state if auto mode on - !but only for the first model - if ($nstruc = 1) then - if ($Toppar.autohis = true) then - inline @RUN:auto-his.cns - end if - end if - - energy end - evaluate ($bonded = $bond + $angl + $impr) - if ($bonded > 10000) then - minimize powell nstep=100 drop=10.0 nprint=10 end - end if - if ($bonded > 10000) then - energy end - evaluate ($bonded = $bond + $angl + $impr) - evaluate ($dispfile = $coor_outfile - ".pdb" + "_" + encode($nstruc) + ".warn") - set display=$dispfile end - display WARNING: the bonded energy is very high: - display Ebonded-total=$bonded Ebond=$bond Eangl=$angl Eimpr=$impr - display Something is possibly wrong with your input structure - close $dispfile end - end if - - show sum(1) (not(known)) - if ( $result < 100 ) then - for $id in id (not(known)) loop print - show (segid) (id $id) - evaluate ($segid=$result) - show (resn) (id $id) - evaluate ($resn=$result) - show (resid) (id $id) - evaluate ($resid=$result) - show (name) (id $id) - evaluate ($name=$result) - buffer message - display unknown coordinates for atom: $segid[a4] $resn[a4] $resid[a4] $name[a4] - end - end loop print - else - buffer message - display unknown coordinates for more than 100 atoms - end - end if - - if (&set_bfactor=true) then - do (b=&bfactor) ( all ) - else - show ave(b) (known and not(store9)) - do (b=$result) (store9 and (attr b < 0.01)) - end if - - if ($saprotocol.randorien eq true) then - if (&set_occupancy=true) then - do (q=&occupancy) ( all ) - end if - else - if (&set_occupancy=true) then - do (q=&occupancy) ( not(store9) ) - do (q=0.0) (store9) - end if - end if - - show sum(1) (store9) - if ( $result < 100 ) then - for $id in id (store9) loop print - show (segid) (id $id) - evaluate ($segid=$result) - show (resn) (id $id) - evaluate ($resn=$result) - show (resid) (id $id) - evaluate ($resid=$result) - show (name) (id $id) - evaluate ($name=$result) - buffer message - display coordinates built for atom: $segid[a4] $resn[a4] $resid[a4] $name[a4] - end - end loop print - else - buffer message - display coordinates built for more than 100 hundred atoms - end - end if - - set remarks=reset end - - buffer message - to=remarks - dump - end - buffer message reset end - - do (segid = $Toppar.prot_segid_$chain) (all) - - if ($nstruc = 1) then - write coordinates output=$coor_outfile end - end if - evaluate ($filename_$nstruc = $coor_outfile - ".pdb" + "_" + encode($nstruc) + ".pdb") - write coordinates output=$filename_$nstruc end - evaluate ($nstruc = $nstruc + 1) - - do (segid = " ") (all) - - end loop main - - do (segid = $Toppar.prot_segid_$chain) (all) - write structure output=$psf_outfile end - write structure output=$psf2_outfile end - - evaluate ($disfile = "BEGIN:file_" + encode($chain) + ".list") - set display=$disfile end - - evaluate ($num = 1) - while ($num < $nstruc) loop wrfile - evaluate ($outstring = """ + $filename_$num + """) - display $outstring - evaluate ($num = $num + 1) - end loop wrfile - - stop - - diff --git a/src/haddock/modules/flexref/cns/generate_complex-aa.inp b/src/haddock/modules/flexref/cns/generate_complex-aa.inp deleted file mode 100644 index 4887840d3..000000000 --- a/src/haddock/modules/flexref/cns/generate_complex-aa.inp +++ /dev/null @@ -1,56 +0,0 @@ -! generate_complex.inp -! Merge the coordinates and topologies of the various components of the complex -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! - -! a maximum number of structures to be written to avoid -! filling the disk space -evalute ($maxstruc = 5000) - -@RUN:initialize.cns(iteration=$iteration;) - -@RUN:begin/iteration.cns(iteration=$iteration;) - -@RUN:run.cns( -iteration =$iteration; -filenames =$filenames; -Data =$Data; -iterations=$iterations; -saprotocol=$saprotocol; -refine =$refine; -toppar =$toppar; -analysis =$analysis;) - -eval($nchain1 = 0) -while ($nchain1 < $data.ncomponents) loop cloop1 - eval($nchain1 = $nchain1 + 1) - evaluate($coor_infile_$nchain1= "RUN:begin-aa/" + $Toppar.prot_root_$nchain1 + ".pdb") - evaluate($psf_infile_$nchain1= "RUN:begin-aa/" + $Toppar.prot_root_$nchain1 + ".psf") - fileexist $coor_infile_$nchain1 end - evaluate ($coorexist_$nchain1 = $result) - fileexist $psf_infile_$nchain1 end - evaluate ($psfexist_$nchain1 = $result) - if ($coorexist_$nchain1 eq false) then - evaluate($coor_infile_$nchain1= "RUN:begin/" + $Toppar.prot_root_$nchain1 + ".pdb") - end if - if ($psfexist_$nchain1 eq false) then - evaluate($psf_infile_$nchain1= "RUN:begin/" + $Toppar.prot_root_$nchain1 + ".psf") - end if - structure @@$psf_infile_$nchain1 end - coor @@ $coor_infile_$nchain1 -end loop cloop1 - -evaluate ($structurefile = "RUN:begin-aa/" + $Filenames.fileroot + ".psf") -write structure output=$structurefile end - -evaluate ($coorfile = "RUN:begin-aa/" + $Filenames.fileroot + ".pdb") -write coor output=$coorfile end - -stop diff --git a/src/haddock/modules/flexref/cns/generate_complex-water.inp b/src/haddock/modules/flexref/cns/generate_complex-water.inp deleted file mode 100644 index 23263a1e7..000000000 --- a/src/haddock/modules/flexref/cns/generate_complex-water.inp +++ /dev/null @@ -1,95 +0,0 @@ -! generate_complex-water.inp -! Merge the coordinates and topologies of a complex for solvated docking -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! - -! a maximum number of structures to be written to avoid -! filling the disk space -evalute ($maxstruc = 5000) - -@RUN:initialize.cns(iteration=$iteration;) - -@RUN:begin/iteration.cns(iteration=$iteration;) - -@RUN:run.cns( -iteration =$iteration; -filenames =$filenames; -Data =$Data; -iterations=$iterations; -saprotocol=$saprotocol; -refine =$refine; -toppar =$toppar; -analysis =$analysis;) - -! Read in topologies -eval($nchain1 = 0) -while ($nchain1 < $data.ncomponents) loop cloop1 - eval($nchain1 = $nchain1 + 1) - evaluate($psf_infile_$nchain1= "RUN:begin/" + $Toppar.prot_root_$nchain1 + ".psf") - structure - @@$psf_infile_$nchain1 - end -end loop cloop1 - -! Read in water topology -evaluate($sol_topology_infile="RUN:/toppar/water-allhdg5-4.top") -topology - @@$sol_topology_infile -end - -evaluate ($nstruc = 1) -evaluate ($nline = 0) -for $molecule in ( @@RUN:begin/combinations.list ) loop write_complexes - evaluate ($nline = $nline + 1) - evaluate ($nummod = mod($nline, $data.ncomponents)) - - coor @@$molecule - - ! Use modulo to get chain number - if ($nummod = 0) then - evaluate ($watersegname = "WA" + encode($data.ncomponents)) - else - evaluate ($watersegname = "WA" + encode($nummod)) - end if - - display LINE $nline AND REMOVING $watersegname - - dele sele=(segid $watersegname) end - evaluate ($waterfilename = $molecule - ".pdb" + "_water.pdbw") - segment - name=$watersegname - chain - coor @@$waterfilename - end - end - coor @@$waterfilename - - if ($nummod = 0) then - if ($saprotocol.rebuildcplx eq true) then - do (store9=0) (all) - do (store9=1) (attr q=0.0) - @@RUN:rebuild-unknown.cns - end if - - evaluate ($coorfile_$nstruc = "RUN:begin/" + $Filenames.fileroot + "_" + encode($nstruc) + ".pdb") - write coor sele= (not (resn WAT or resn HOH or resn TIP3)) output=$coorfile_$nstruc end - evaluate ($watercoorfile_$nstruc = "RUN:begin/" + $Filenames.fileroot + "_" + encode($nstruc) + "_water.pdbw") - write coor sele= ((resn WAT or resn HOH or resn TIP3)) output=$watercoorfile_$nstruc end - evaluate ($nstruc = $nstruc + 1) - - end if - -end loop write_complexes - -evaluate ($structurefile = "RUN:begin/" + $Filenames.fileroot + ".psf") -dele sele=((resn WAT or resn HOH or resn TIP3)) end -write structure output=$structurefile end - -stop diff --git a/src/haddock/modules/flexref/cns/generate_complex.inp b/src/haddock/modules/flexref/cns/generate_complex.inp deleted file mode 100644 index c7ffbed01..000000000 --- a/src/haddock/modules/flexref/cns/generate_complex.inp +++ /dev/null @@ -1,124 +0,0 @@ -! generate_complex.inp -! Merge the coordinates and topologies of the various components of the complex -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! -! -{- begin block parameter definition -} define( - -{================== parameter files ===================} - -{* protein parameter file *} -{===>} prot_parameter_infile="RUN:toppar/protein-allhdg5-4.param"; - -{* nucleic acid parameter file *} -{===>} nucl_parameter_infile="RUN:/toppar/dna-rna-allatom-hj-opls-1.3.param"; - -{* carbohydrate parameter file *} -{===>} carbo_parameter_infile="RUN:/toppar/carbohydrate.param"; - -{* solvent parameter file *} -{===>} solv_parameter_infile="RUN:/toppar/water-allhdg5-4.param"; - -{* co-factor parameter file *} -{===>} cofac_parameter_infile="RUN:/toppar/ligand.param"; - -{* ligands parameter file *} -{===>} ligands_parameter_infile="RUN:/toppar/fragment_probes.param"; - -{* ion parameter file *} -{===>} ion_parameter_infile="RUN:/toppar/ion.param"; - -{* heme parameter file *} -{===>} heme_parameter_infile="RUN:/toppar/hemes-allhdg.param"; - - ) {- end block parameter definition -} - - -@RUN:initialize.cns(iteration=$iteration;) - -@RUN:initialize.cns(iteration=$iteration;) -@RUN:begin/iteration.cns(iteration=$iteration;) -@RUN:run.cns( -iteration =$iteration; -filenames =$filenames; -Data =$Data; -iterations=$iterations; -saprotocol=$saprotocol; -refine =$refine; -toppar =$toppar; -analysis =$analysis;) - - -! Read in parameter files -parameter - if ( &BLANK%prot_parameter_infile = false ) then - @@&prot_parameter_infile - end if - if ( &BLANK%ion_parameter_infile = false ) then - @@&ion_parameter_infile - end if - if ( &BLANK%nucl_parameter_infile = false ) then - @@&nucl_parameter_infile - end if - if ( &BLANK%solv_parameter_infile = false ) then - @@&solv_parameter_infile - end if - if ( &BLANK%ligands_parameter_infile = false ) then - @@&ligands_parameter_infile - end if - if ( &BLANK%cofac_parameter_infile = false ) then - @@&cofac_parameter_infile - end if - if ( &BLANK%heme_parameter_infile = false ) then - @@&heme_parameter_infile - end if -end - -! Read in topologies, one per MOL (psf) -eval($nchain1 = 0) -while ($nchain1 < $data.ncomponents) loop cloop1 - eval($nchain1 = $nchain1 + 1) - evaluate($psf_infile_$nchain1= "RUN:begin/" + $Toppar.prot_root_$nchain1 + ".psf") - structure - @@$psf_infile_$nchain1 - end -end loop cloop1 - -! Write structures of complexes -evaluate ($nstruc = 1) -evaluate ($nline = 0) - -for $molecule in ( @@RUN:begin/combinations.list ) loop write_complexes - evaluate ($nline = $nline + 1) - evaluate ($nummod = mod($nline, $data.ncomponents)) - - coor @@$molecule - - if ($nummod eq 0) then - if ($saprotocol.rebuildcplx eq true) then - do (store9=0) (all) - do (store9=1) (attr q=0.0) - @RUN:rebuild-unknown.cns - end if - - evaluate ($coorfile_$nstruc = "RUN:begin/" + $Filenames.fileroot + "_" + encode($nstruc) + ".pdb") - - do (q=1) (all) - do (b=10) (all) - write coor output=$coorfile_$nstruc end - evaluate ($nstruc = $nstruc + 1) - end if - -end loop write_complexes - -! Write complex topology (one is enough) -evaluate ($structurefile = "RUN:begin/" + $Filenames.fileroot + ".psf") -write structure output=$structurefile end -stop diff --git a/src/haddock/modules/flexref/cns/generate_dmso.cns b/src/haddock/modules/flexref/cns/generate_dmso.cns deleted file mode 100644 index 4b3ac2a27..000000000 --- a/src/haddock/modules/flexref/cns/generate_dmso.cns +++ /dev/null @@ -1,123 +0,0 @@ -! generate_dmso.cns -! Generate a DMSO solvent layer around the molecule -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! - -eval ($boxlength = 29.1) ! length of the dmso box -eval ($thickness = 12.5) ! maxi. initial dmso-protein distance (heavy atoms) -eval ($pw_dist = 2.4) ! mini. initial dmso-protein distance (heavy atoms) -eval ($dmso_diam = 4.1) ! diameter of dmso molecule -eval ($dyncount = 1) ! iteration number (usually 1) - -eval ($dmso = "DMS" + encode($dyncount)) - -!-------------------------------------------------- -! read in the same box of dmso several times, and move it around -! so as to cover all the space around the site of interest. -! take into account box offset - -show max (x) ((not resn dms) and not resn ANI and not resn DAN and not resn XAN or resn DUM or resn SHA) -evaluate ($xmax = $result) -show min (x) ((not resn DMS) and not resn ANI and not resn DAN and not resn XAN or resn DUM or resn SHA) -evaluate ($xmin = $result) - -show max (y) ((not resn DMS) and not resn ANI and not resn DAN and not resn XAN or resn DUM or resn SHA) -evaluate ($ymax = $result) -show min (y) ((not resn DMS) and not resn ANI and not resn DAN and not resn XAN or resn DUM or resn SHA) -evaluate ($ymin = $result) - -show max (z) ((not resn DMS) and not resn ANI and not resn DAN and not resn XAN or resn DUM or resn SHA) -evaluate ($zmax = $result) -show min (z) ((not resn DMS) and not resn ANI and not resn DAN and not resn XAN or resn DUM or resn SHA) -evaluate ($zmin = $result) - - -! loop over several iterations of dmso filling and dynamics - - -!-------------------------------------------------- -! read in the same box of dmso several times, and move it around -! so as to cover all the space around the site of interest. -! take into account box offset - - -! determine how many boxes are necessary in each dimension -eval ($xbox = int( ($xmax - $xmin + 2 * ($thickness + $dmso_diam)) / $boxlength + 0.5)) -eval ($ybox = int( ($ymax - $ymin + 2 * ($thickness + $dmso_diam)) / $boxlength + 0.5)) -eval ($zbox = int( ($zmax - $zmin + 2 * ($thickness + $dmso_diam)) / $boxlength + 0.5)) - -eval ($xmtran = $xmax + $thickness - $boxlength/2 + $dmso_diam) -eval ($ymtran = $ymax + $thickness - $boxlength/2 + $dmso_diam) -eval ($zmtran = $zmax + $thickness - $boxlength/2 + $dmso_diam) - -eval ($xcount=0) -eval ($xtrans = $xmin - $thickness - $dmso_diam - $boxlength ) -while ($xtrans < $xmtran) loop dms1 - eval ($xcount=$xcount+1) - eval ($xtrans = $xtrans + $boxlength) - - eval ($ycount=0) - eval ($ytrans = $ymin - $thickness - $dmso_diam - $boxlength ) - while ($ytrans < $ymtran) loop dms2 - eval ($ycount=$ycount+1) - eval ($ytrans = $ytrans + $boxlength) - - eval ($zcount=0) - eval ($ztrans = $zmin - $thickness - $dmso_diam - $boxlength ) - while ($ztrans < $zmtran) loop dms3 - eval ($zcount=$zcount+1) - eval ($ztrans = $ztrans + $boxlength) - - - segment - name=" " - chain - coordinates @@RUN:dmso.pdb - end - end - coor @@RUN:dmso.pdb - do (segid=DMSO) (segid " ") - coor sele=(segid DMSO) translate vector = ($xtrans $ytrans $ztrans) end - - ! all new dmso oxygens - ident (store1) (segid DMSO and name sd) - ! all new dmso oxygens close to a protein heavy atom - ident (store2) (store1 and (not (resn DMS or resn ANI or resn DAN or resn XAN or resn DUM or resn SHA or hydro)) around $pw_dist) - ! all new dmso oxygens close to old dmso oxygens - ident (store3) (store1 and (segid DMS# and not hydro) around $dmso_diam) - ! all new dmso oxygens further than thickness away from a protein heavy atom - ident (store4) (store1 and not (not (resn DMS or resn ANI or resn DAN or resn XAN or resn DUM or resn SHA or hydro)) around $thickness) - delete sele= (byres (store2 or store3 or store4)) end - - - ! give dmso unique segid name - eval ($segid= "W" - + encode($xcount) + encode($ycount) + encode($zcount)) - do (segid = $segid) (segid DMSO) - - end loop dms3 - end loop dms2 -end loop dms1 - -! now, give dmso a unique resid so that we get the segid to play around with -ident (store1) (all) -show min (store1) (segid w*) -do (store1 = store1 - $result + 1) (segid w*) -do (resid = encode(int(store1/3 -0.1) +1)) (segid w* and not segid DMS#) -do (segid = $dmso) (segid w* and not segid DMS#) - -! shave off any dmso that left -delete sele= (byres (name sd and not (not (resn DMS or resn ANI or resn DAN or resn XAN or resn DUM or resn SHA or hydro)) around $thickness)) end - -{* write out initial coordinates for testing *} -! evaluate ($filename=$Filenames.fileroot+ encode($count)+ "wini.pdb") -! write coordinates sele= (all) output =$filename end - diff --git a/src/haddock/modules/flexref/cns/generate_water.cns b/src/haddock/modules/flexref/cns/generate_water.cns deleted file mode 100644 index 01b3e46b6..000000000 --- a/src/haddock/modules/flexref/cns/generate_water.cns +++ /dev/null @@ -1,127 +0,0 @@ -! generate_water.cns -! Generate a water solvent layer around the molecule -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! - -eval ($boxlength = 18.856) ! length of Brooks' water box -eval ($thickness = 8) ! maxi. initial water-protein distance (heavy atoms) -if ($iteration = 2) then - eval ($pw_dist = 2.4) ! mini. initial water-protein distance (heavy atoms) -else - eval ($pw_dist = 4.0) ! mini. initial water-protein distance (heavy atoms) -end if -eval ($water_diam = 2.4) ! diameter of water molecule -eval ($dyncount = 21) ! for water segid (max number of molecules + 1) - -eval ($water = "WA" + encode($dyncount)) - -!-------------------------------------------------- -! read in the same box of water several times, and move it around -! so as to cover all the space around the site of interest. -! take into account box offset - -show max (x) ((not (resn WAT or resn HOH or resn TIP*)) and not (resn ANI or resn DAN or resn XAN or resn DUM or resn SHA)) -evaluate ($xmax = $result) -show min (x) ((not (resn WAT or resn HOH or resn TIP*)) and not (resn ANI or resn DAN or resn XAN or resn DUM or resn SHA)) -evaluate ($xmin = $result) - -show max (y) ((not (resn WAT or resn HOH or resn TIP*)) and not (resn ANI or resn DAN or resn XAN or resn DUM or resn SHA)) -evaluate ($ymax = $result) -show min (y) ((not (resn WAT or resn HOH or resn TIP*)) and not (resn ANI or resn DAN or resn XAN or resn DUM or resn SHA)) -evaluate ($ymin = $result) - -show max (z) ((not (resn WAT or resn HOH or resn TIP*)) and not (resn ANI or resn DAN or resn XAN or resn DUM or resn SHA)) -evaluate ($zmax = $result) -show min (z) ((not (resn WAT or resn HOH or resn TIP*)) and not (resn ANI or resn DAN or resn XAN or resn DUM or resn SHA)) -evaluate ($zmin = $result) - - -! loop over several iterations of water filling and dynamics - - -!-------------------------------------------------- -! read in the same box of water several times, and move it around -! so as to cover all the space around the site of interest. -! take into account box offset - - -! determine how many boxes are necessary in each dimension -eval ($xbox = int( ($xmax - $xmin + 2 * ($thickness + $water_diam)) / $boxlength + 0.5)) -eval ($ybox = int( ($ymax - $ymin + 2 * ($thickness + $water_diam)) / $boxlength + 0.5)) -eval ($zbox = int( ($zmax - $zmin + 2 * ($thickness + $water_diam)) / $boxlength + 0.5)) - -eval ($xmtran = $xmax + $thickness - $boxlength/2 + $water_diam) -eval ($ymtran = $ymax + $thickness - $boxlength/2 + $water_diam) -eval ($zmtran = $zmax + $thickness - $boxlength/2 + $water_diam) - -eval ($xcount=0) -eval ($xtrans = $xmin - $thickness - $water_diam - $boxlength/2 ) -while ($xtrans < $xmtran) loop wat1 - eval ($xcount=$xcount+1) - eval ($xtrans = $xtrans + $boxlength) - - eval ($ycount=0) - eval ($ytrans = $ymin - $thickness - $water_diam - $boxlength/2 ) - while ($ytrans < $ymtran) loop wat2 - eval ($ycount=$ycount+1) - eval ($ytrans = $ytrans + $boxlength) - - eval ($zcount=0) - eval ($ztrans = $zmin - $thickness - $water_diam - $boxlength/2 ) - while ($ztrans < $zmtran) loop wat3 - eval ($zcount=$zcount+1) - eval ($ztrans = $ztrans + $boxlength) - - - segment - name=" " - chain - coordinates @@RUN:boxtyp20.pdb - end - end - coor @@RUN:boxtyp20.pdb - do (segid=W000) (segid " ") - coor sele=(segid W000) translate vector = ($xtrans $ytrans $ztrans) end - - ! all new water oxygens - ident (store1) (segid W000 and name oh2) - ! all new water oxygens close to a protein heavy atom - ident (store2) (store1 and (not (resn WAT or resn HOH or resn TIP* or resn ANI or resn DAN or resn XAN or resn DUM or resn SHA or hydro)) around $pw_dist) - ! all new water oxygens close to old water oxygens - ident (store3) (store1 and (segid wat# and not hydro) around $water_diam) - ! all new water oxygens further than thickness away from a protein heavy atom - ident (store4) (store1 and not (not (resn WAT or resn HOH or resn TIP* or resn ANI or resn DAN or resn XAN or resn DUM or resn SHA or hydro)) around $thickness) - delete sele= (byres (store2 or store3 or store4)) end - - - ! give waters unique segid name - eval ($segid= "W" - + encode($xcount) + encode($ycount) + encode($zcount)) - do (segid = $segid) (segid W000) - - end loop wat3 - end loop wat2 -end loop wat1 - -! now, give waters a unique resid so that we get the segid to play around with -ident (store1) (all) -show min (store1) (segid w*) -do (store1 = store1 - $result + 1) (segid w*) -do (resid = encode(int(store1/3 -0.1) +1)) (segid w* and not segid wat#) -do (segid = $water) (segid w* and not segid wat#) - -! shave off any waters that left -delete sele= (byres (name oh2 and segid W* and not (not (resn WAT or resn HOH or resn TIP* or resn ANI or resn DAN or resn XAN or resn DUM or resn SHA or hydro)) around $thickness)) end - -{* write out initial coordinates just for testing *} -! evaluate ($filename=$Filenames.fileroot+ encode($count)+ "wini.pdb") -! write coordinates sele= (all) output =$filename end - diff --git a/src/haddock/modules/flexref/cns/get_average.inp b/src/haddock/modules/flexref/cns/get_average.inp deleted file mode 100644 index 80d7b1cb5..000000000 --- a/src/haddock/modules/flexref/cns/get_average.inp +++ /dev/null @@ -1,418 +0,0 @@ -! get_average.inp -! Calculate the average structure using interface residues for fitting -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! - -remarks get_average.inp: calculate average structure using -remarks the interface definition for fitting -remarks HADDOCK -remarks Alexandre Bonvin, Utrecht University - -@RUN:initialize.cns(iteration=$iteration;) - -@NEWIT:iteration.cns(iteration=$iteration;) - -@RUN:run.cns( -iteration =$iteration; -filenames =$filenames; -data =$data; -iterations=$iterations; -saprotocol=$saprotocol; -refine =$refine; -toppar =$toppar; -analysis =$analysis; -) - -!reads in structure, coordinates and parameter files -@RUN:read_struc.cns -@RUN:read_struc-cg.cns - -@PREVIT:file.cns(filenames=$filenames) -evaluate ($file = $filenames.bestfile_1) -coor @@$file - -delete sele=(resname ANI or resname XAN or resname DAN or resname TIP3 or resname WAT or resname HOH) end -delete sele=(not(known)) end - -!defines interface -do (store5 = 0) (all) - -eval($nchain=0) -while ($nchain < $data.ncomponents) loop nloop1 - eval($nchain=$nchain + 1) - if ($Toppar.shape_$nchain eq false) then - evaluate($fcounter=0) - do (store6 = 0) (all) - while ($fcounter < $Toppar.nseg_$nchain) loop Xflex - evaluate($fcounter=$fcounter + 1) - display $Toppar.start_seg_$nchain_$fcounter $Toppar.end_seg_$nchain_$fcounter - do (store5 = $nchain) ( resid $Toppar.start_seg_$nchain_$fcounter : $Toppar.end_seg_$nchain_$fcounter - and segid $Toppar.prot_segid_$nchain - and (name CA or name BB or name C or name N or name P or name C#)) - do (store6 = 1) ( resid $Toppar.start_seg_$nchain_$fcounter : $Toppar.end_seg_$nchain_$fcounter - and segid $Toppar.prot_segid_$nchain - and (name CA or name BB or name C or name N or name P or name C#)) - end loop Xflex - show sum (store6) (all) - if ($result < 3) then - do (store5 = $nchain) ( segid $Toppar.prot_segid_$nchain and (name CA or name BB or name C or name N or name P or name C#)) - do (store6 = 1) ( segid $Toppar.prot_segid_$nchain and (name CA or name BB or name C or name N or name P or name C#)) - end if - show sum (store6) (all) - if ($result < 3) then - do (store5 = $nchain) ( segid $Toppar.prot_segid_$nchain and not name H*) - endif - if ($Toppar.nseg_$nchain = 0) then - display NO FLEXIBLE SEGMENTS for molecule $nchain USING ALL BACKBONE - do (store5 = $nchain) ((name CA or name BB or name P or name C#) and segid $Toppar.prot_segid_$nchain) - do (store6 = 1) ((name CA or name BB or name P or name C#) and segid $Toppar.prot_segid_$nchain) - end if - - show sum (store6) (attr store5 = $nchain) - if ($result < 3) then - do (store5 = $nchain) ( segid $Toppar.prot_segid_$nchain ) - end if - - end if - -end loop nloop1 - -do (store8 = 0) (all) -eval($nchain=0) -while ($nchain < $data.ncomponents) loop nloop1 - eval($nchain=$nchain + 1) - if ($Toppar.shape_$nchain eq false) then - do (store8 = 1) (attr store5 = $nchain) - end if -end loop nloop1 - -{* filenames *} -evaluate ($outroot = "NEWIT:analysis/" + $Filenames.fileroot) -evaluate ($trajfile=$outroot+".crd") -evaluate ($trajfilered=$outroot+"-reduced.crd") -evaluate ($dispfile=$outroot+".prt") - -{* ==================================== *} -{* part 1: generate a pseudo trajectory *} -{* ==================================== *} - -@PREVIT:file.cns(filenames=$filenames) - -evaluate ($count = 0) -evaluate ($nstruc = 0) -while ($count lt $Iterations.Structures) loop main - evaluate ($count = $count + 1) - evaluate ($file = $filenames.bestfile_$count) - coor init end - if ($file ne "") then - coor @@$file - evaluate ($nstruc = $nstruc + 1) - if ($nstruc = 1) then coor copy end end if - - show aver (x) (all) - evaluate ($xc = $result) - show aver (y) (all) - evaluate ($yc = $result) - show aver (z) (all) - evaluate ($zc = $result) - - @RUN:get_random_rotation.cns(Rotation=$rand_rot;) - coor - center=($xc $yc $zc) - rotate quaternion $rand_rot.q0 $rand_rot.q1 $rand_rot.q2 $rand_rot.q3 - sele=(all) - end - - coor sele= (store8) fit end - - if ($nstruc eq 1) then - write trajectory - ascii true - output= $trajfile - end - else - write traj next end - end if - end if -end loop main - -evaluate ($TotalNstruct = $nstruc) - -close $trajfile end - -{* ============================================ *} -{* part 2: generate a reduced pseudo trajectory *} -{* ============================================ *} - -@PREVIT:file.cns(filenames=$filenames) - -evaluate ($count = 0) -evaluate ($nstruc = 0) -while ($count lt $Iterations.Structures) loop main - evaluate ($count = $count + 1) - evaluate ($file = $filenames.bestfile_$count) - coor init end - if ($file ne "") then - coor @@$file - evaluate ($nstruc = $nstruc + 1) - show aver (x) (all) - evaluate ($xc = $result) - show aver (y) (all) - evaluate ($yc = $result) - show aver (z) (all) - evaluate ($zc = $result) -{ - @RUN:get_random_rotation.cns(Rotation=$rand_rot;) - coor - center=($xc $yc $zc) - rotate quaternion $rand_rot.q0 $rand_rot.q1 $rand_rot.q2 $rand_rot.q3 - sele=(all) - end -} - if ($nstruc eq 1) then - write trajectory - reset - ascii = true - output = $trajfilered - sele = (attr store8 = 1 and not (name N or name O)) - end - else - write traj next end - end if - end if -end loop main - -evaluate ($TotalNstruct = $nstruc) - -close $trajfilered end - -if ($Iterations.anastruc < $TotalNstruct) then - evaluate ($FittedStructures = $Iterations.anastruc) -else - evaluate ($FittedStructures = $TotalNstruct) -end if - -{* ====================================== *} -{* part 3: generate the average structure *} -{* ====================================== *} - -do (store1 = 0) (all) -do (store2 = 0) (all) -do (store3 = 0) (all) -do (store4 = 0) (all) -evaluate ($nstruc = 0) - -!read trajectory: -while ($nstruc lt $FittedStructures) loop fitt - evaluate ($nstruc = $nstruc + 1) - if ($nstruc eq 1) then - read trajectory - ascii true - input= $trajfile - begin 1 skip 1 stop $FittedStructures - end - else - read traj next end - end if - coor sele= (store8) fit end - do (store1 = store1 + x) (all) - do (store2 = store2 + y) (all) - do (store3 = store3 + z) (all) - do (store4 = store4 + x**2 + y**2 + z**2) (all) -end loop fitt - -do (xcomp = store1/$nstruc) (all) -do (ycomp = store2/$nstruc) (all) -do (zcomp = store3/$nstruc) (all) -do (b = sqrt(store4/$nstruc - (xcomp**2 + ycomp**2 + zcomp**2))) (all) - -! calcuate mean rms fluctuation and sigma - -show ave (b) (attr store5 > 0) -evaluate ($mean_inter = $result) -show rms (b) (attr store5 > 0) -evaluate ($stdev_inter = $result) - -show ave (b) (name CA or name BB or name C or name O or name C#) -evaluate ($mean_all = $result) -show rms (b) (name CA or name BB or name C or name O or name C#) -evaluate ($stdev_all = $result) - -evaluate ($nchain=0) -while ($nchain < $data.ncomponents ) loop nloop1 - evaluate ($nchain=$nchain + 1) - evaluate ($mean_$nchain=0) - evaluate ($stdev_$nchain=0) -end loop nloop1 - -evaluate ($nchain=0) -while ($nchain < $data.ncomponents) loop nloop1 - evaluate ($nchain=$nchain + 1) - if ($Toppar.shape_$nchain eq false) then - show ave (b) (attr store5 = $nchain) - evaluate ($mean_$nchain = $result) - show rms (b) (attr store5 = $nchain) - evaluate ($stdev_$nchain = $result) - end if -end loop nloop1 - -set remarks=reset end - -remark HADDOCK average structure from fit on interface -remark Average rms difference backbone interface all $mean_inter +- $stdev_inter -remark Average rms difference backbone all $mean_all +- $stdev_all - -set remark accumulate end - -evaluate ($nchain=0) -while ($nchain < $data.ncomponents) loop rmsdif - evaluate ($nchain = $nchain +1) - remark Average rms difference backbone interface $Toppar.prot_segid_$nchain $mean_$nchain +- $stdev_$nchain -end loop rmsdif - -do (bcomp = b) (all) -do (qcomp = 0) (all) -do (qcomp = 1) (store8) - -evaluate ($filename = $outroot + "_ave.pdb") -write coor from=comp sele= (all) output= $filename end - - -{* ============================================= *} -{* part 4: sequence dependend rms difference *} -{* ============================================= *} - -evaluate ($filename = $outroot + "_ave.pdb") -coor @@$filename - -set display NEWIT:analysis/rmsdseq.disp end -display # sequential rms differences -display resid rmsback3 rmsback5 rmsside rmsall -for $id in id (tag) loop rmss - show element (resid) (id $id) - evaluate ($resid = $result) - show element (segid) (id $id) - evaluate ($segid = $result) - show norm (b) - (byres(id $id) and (name c or name CA or name BB or name cb or name n or name o or name C#)) - evaluate ($rmsback5 = $result) - show norm (b) - (byres(id $id) and (name c or name CA or name BB or name n or name C#)) - evaluate ($rmsback3 = $result) - show norm (b) - (byres(id $id) and not hydro and not - (name c or name CA or name BB or name cb or name n or name o or name C#)) - evaluate ($rmsside = $result) - show norm (b) - (byres(id $id) and not hydro) - evaluate ($rmsall = $result) - - display $resid $segid $rmsback3 $rmsback5 $rmsside $rmsall -end loop rmss - -set display NEWIT:analysis/rmsave.disp end - -display # HADDOCK average structure from fit on interface -display # Average rms difference backbone interface all $mean_inter +- $stdev_inter -display # Average rms difference backbone all $mean_all +- $stdev_all -evaluate ($nchain=0) -while ($nchain < $data.ncomponents) loop rmsdif - evaluate ($nchain = $nchain +1) - display # Average rms difference backbone interface $Toppar.prot_segid_$nchain $mean_$nchain +- $stdev_$nchain -end loop rmsdif - -{* ============================================= *} -{* part 5: fit the ensemble to the average *} -{* ============================================= *} - -evaluate ($nchain = 0) -while ($nchain < $data.ncomponents) loop rmsdif - evaluate ($nchaini=$nchain) - evaluate ($nchain = $nchain +1) - if ($nchaini eq 0 ) then - evaluate ($meani_name = "rms_back_" + $Toppar.prot_segid_$nchain ) - else - evaluate ($meani_name = $meani_name + " " + "rms_back_" + $Toppar.prot_segid_$nchain ) - end if -end loop rmsdif - -display # -display # RMSD from average structure -display # filename rms_back_inter rms_back_all $meani_name - -evaluate ($nstruc = 0) - -!fit structures to average structure and write pdb files: -while ($nstruc < $FittedStructures) loop fitt - evaluate ($nstruc = $nstruc + 1) - - if ($nstruc eq 1) then - read trajectory - ascii true - input= $trajfile - begin 1 skip 1 stop $FittedStructures - end - else - read traj next end - end if - - coor sele= (store8) fit end - - coor sele= (store8) rms end - evaluate ($mean_inter = $result) - - coor sele= (name CA or name BB or name C or name N or name C#) rms end - evaluate ($mean_all = $result) - - evaluate ($nchain=0) - while ($nchain < $data.ncomponents) loop nloop1 - evaluate ($nchaini=$nchain) - evaluate ($nchain=$nchain + 1) - - coor sele= ( attr store5 = $nchain ) rms end - evaluate ($mean_$nchain = $result ) - - if ($nchaini eq 0 ) then - evaluate ($meani = encode($mean_$nchain) ) - else - evaluate ($meani = $meani + " " + encode($mean_$nchain) ) - end if - - end loop nloop1 - - do (b=bcomp) (all) - do (q=1.0) (all) - - evaluate ($filename = $outroot + "fit" + "_" + encode($nstruc) + ".pdb" ) - - set remarks=reset end - remark HADDOCK best fit to average - remark fitted on interface - remark rms from average on interface $mean_inter - remark rms from average backbone all $mean_all - set remark accumulate end - - evaluate ($nchain=0) - while ($nchain < $data.ncomponents) loop rmsdif - evaluate ($nchain = $nchain +1) - remark rms from average backbone interface $Toppar.prot_segid_$nchain $mean_$nchain - end loop rmsdif - write coor output= $filename sele= (all) end - set remarks=reset end - display $filename $mean_inter $mean_all $meani - -end loop fitt - -evaluate ($outdis = "NEWIT:analysis/AVE_DONE") -set display=$outdis end -display DONE - -stop diff --git a/src/haddock/modules/flexref/cns/get_random_rotation.cns b/src/haddock/modules/flexref/cns/get_random_rotation.cns deleted file mode 100644 index 228e00a1f..000000000 --- a/src/haddock/modules/flexref/cns/get_random_rotation.cns +++ /dev/null @@ -1,95 +0,0 @@ -! get_random_rotation.cns -! Define a random rotation -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! -{* - The random rotation is calculated by taking a random unit quaternion, - so that all rotations are uniformely distributed. For more details, see - "Quaternions in molecular modeling" Charles F.F. Karney - Journal of Molecular Graphics and Modelling 25 (2007) 595-604 - - Original author: Christophe Schmidt - Modularized it: Gydo van Zundert - - Parameters - ---------- - Rotation : A struct which will hold the random rotation - - Type : Optional string, either 'Quaternion' or 'Matrix' - Determines whether the random rotation is expressed as a quaternion or a matrix - - Note - ---- - There is no need in general to specify the Type as a matrix when performing the rotation. - - Example: - >>>> ! $rand_rot does NOT have to exist currently - !>>>> @RUN:get_random_rotation.cns(Rotation=$rand_rot;) - >>>> coor rotate - >>>> quaternion $rand_rot.q0 $rand_rot.q1 $rand_rot.q2 $rand_rot.q3 - >>>> selection=(all) - >>>> end - - Example using a rotation matrix: - !>>>> @RUN:get_random_rotation.cns(Rotation=$rr; Type='Matrix';) - >>>> coor rotate - >>>> matrix $rr.a11 $rr.a12 $rr.a13 - >>>> $rr.a21 $rr.a22 $rr.a23 - >>>> $rr.a31 $rr.a32 $rr.a33 - >>>> selection=(all) - >>>> end -*} - -!module {random_rotation} (Rotation; -! Type='Quaternion'; -! ) - - !1. Generate random e1 e2 e3 and e4 in [-1, 1] so that e1^2 + e2^2 < 1 and e3^2+e4^2 < 1 - evaluate ($RRM_e1 = random() * 2 - 1) - evaluate ($RRM_e2 = random() * 2 - 1) - evaluate ($RRM_s1 = ($RRM_e1)*($RRM_e1) + ($RRM_e2)*($RRM_e2)) - while ( $RRM_s1 >= 1) loop s1loop - evaluate ($RRM_e1 = random() * 2 - 1) - evaluate ($RRM_e2 = random() * 2 - 1) - evaluate ($RRM_s1 = ($RRM_e1)*($RRM_e1) + ($RRM_e2)*($RRM_e2)) - end loop s1loop - - evaluate ($RRM_e3 = random() * 2 - 1) - evaluate ($RRM_e4 = random() * 2 - 1) - evaluate ($RRM_s2 = ($RRM_e3)*($RRM_e3) + ($RRM_e4)*($RRM_e4)) - while ( $RRM_s2 >= 1) loop s2loop - evaluate ($RRM_e3 = random() * 2 - 1) - evaluate ($RRM_e4 = random() * 2 - 1) - evaluate ($RRM_s2 = ($RRM_e3)*($RRM_e3) + ($RRM_e4)*($RRM_e4)) - end loop s2loop - - !2. the quaternion q0 q1 q2 q3 - evaluate($RRM_q0 = $RRM_e1) - evaluate($RRM_q1 = $RRM_e2) - evaluate($RRM_q2 = $RRM_e3 * sqrt((1 - $RRM_s1)/$RRM_s2) ) - evaluate($RRM_q3 = $RRM_e4 * sqrt((1 - $RRM_s1)/$RRM_s2) ) - - ! package it in a struct - if (&Type='Quaternion') then - evaluate(&Rotation.q0 = $RRM_q0) - evaluate(&Rotation.q1 = $RRM_q1) - evaluate(&Rotation.q2 = $RRM_q2) - evaluate(&Rotation.q3 = $RRM_q3) - elseif (&Type='Matrix') then - evaluate (&Rotation.a11 = $RRM_q0 * $RRM_q0 + $RRM_q1 * $RRM_q1 - $RRM_q2 * $RRM_q2 - $RRM_q3 * $RRM_q3) - evaluate (&Rotation.a12 = 2 * ($RRM_q1 * $RRM_q2 - $RRM_q0 * $RRM_q3) ) - evaluate (&Rotation.a13 = 2 * ($RRM_q1 * $RRM_q3 + $RRM_q0 * $RRM_q2) ) - evaluate (&Rotation.a21 = 2 * ($RRM_q1 * $RRM_q2 + $RRM_q0 * $RRM_q3) ) - evaluate (&Rotation.a22 = $RRM_q0 * $RRM_q0 - $RRM_q1 * $RRM_q1 + $RRM_q2 * $RRM_q2 - $RRM_q3 * $RRM_q3) - evaluate (&Rotation.a23 = 2 * ($RRM_q2 * $RRM_q3 - $RRM_q0 * $RRM_q1) ) - evaluate (&Rotation.a31 = 2 * ($RRM_q1 * $RRM_q3 - $RRM_q0 * $RRM_q2) ) - evaluate (&Rotation.a32 = 2 * ($RRM_q2 * $RRM_q3 + $RRM_q0 * $RRM_q1) ) - evaluate (&Rotation.a33 = $RRM_q0 * $RRM_q0 - $RRM_q1 * $RRM_q1 - $RRM_q2 * $RRM_q2 + $RRM_q3 * $RRM_q3) - end if diff --git a/src/haddock/modules/flexref/cns/make_plane.inp b/src/haddock/modules/flexref/cns/make_plane.inp deleted file mode 100644 index d07d6a1a7..000000000 --- a/src/haddock/modules/flexref/cns/make_plane.inp +++ /dev/null @@ -1,98 +0,0 @@ -! make_tensor_para.inp -! Create a tensor file and topology for Pseudo Contact Shifts -! -! *********************************************************************** -! * Copyright 2003-2018 AleSHAdre Bonvin, Utrecht University. * -! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! - -topology - @@../toppar/shape.top -end - -evaluate ($xdim = 250) -evaluate ($ydim = 250) -evaluate ($spacing = 12.5) -evaluate ($numxd = $xdim/$spacing) -evaluate ($numyd = $ydim/$spacing) - -evaluate ($numres = $xdim*$xdim/$spacing**2) - -segment - name="SHA" - chain - sequence - "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" - "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" - "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" - "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" - "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" - "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" - "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" - "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" - "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" - "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" - "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" - "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" - "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" - "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" - "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" - "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" - "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" - "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" - "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" - "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" - "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" - "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" - "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" - "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" - "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" - "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" - "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" - "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" - "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" - "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" - "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" - "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" - "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" - "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" - "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" - "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" - "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" - "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" - "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" - "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" "SHA" - end - end -end - - -do (z = 0) (all) - -evaluate ($count1 = 0) -evaluate ($nresid = 0) -evaluate ($xstart = 0) -while ($count1 < $numxd) loop shape1 - evaluate ($count1 = $count1 + 1) - evaluate ($count2 = 0) - evaluate ($ystart = 0) - while ($count2 < $numyd) loop shape2 - evaluate ($count2 = $count2 + 1) - evaluate ($nresid = $nresid + 1) - do (x = $xstart) (resid $nresid) - do (y = $ystart) (resid $nresid) - evaluate ($ystart = $ystart + $spacing) - end loop shape2 - evaluate ($xstart = $xstart + $spacing) - -end loop shape1 - -write structure output=plane.psf end -write coor output=plane.pdb end - -stop diff --git a/src/haddock/modules/flexref/cns/make_tensor.inp b/src/haddock/modules/flexref/cns/make_tensor.inp deleted file mode 100644 index ec6a1288f..000000000 --- a/src/haddock/modules/flexref/cns/make_tensor.inp +++ /dev/null @@ -1,41 +0,0 @@ -! make_tensor.inp -! Create a tensor file and topology for RDCs -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! - -remarks generate.inp (ARIA) -remarks creates tensor.psf and tensor.pdb for residual dipolar coupling refinement -remarks Niklas Blomberg & Jens Linge, June 1999 - -topology - @@top_axis.pro -end - -segment - name="ANI" - chain - sequence "ANI" END - end -end - -do (resid = encode (999)) (all) -do (x = 0) (all) -do (y = 0) (all) -do (z = 0) (all) -do (x = 3 ) (name X) -do (y = 3 ) (name Y) -do (z = 3 ) (name Z) - -!write psf file: -write structure output=tensor.psf end -write coor output=tensor.pdb end - -stop diff --git a/src/haddock/modules/flexref/cns/make_tensor_para.inp b/src/haddock/modules/flexref/cns/make_tensor_para.inp deleted file mode 100644 index 458912018..000000000 --- a/src/haddock/modules/flexref/cns/make_tensor_para.inp +++ /dev/null @@ -1,52 +0,0 @@ -! make_tensor_para.inp -! Create a tensor file and topology for Pseudo Contact Shifts -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! - -remarks creates tensor.psf and tensor.pdb for PCS refinement - -topology - @@top_axis.pro -end - -segment - name="XAN" - chain - sequence "XAN" "XAN" "XAN" "XAN" "XAN" "XAN" "XAN" "XAN" "XAN" "XAN" END - end -end - -do (resid = encode (990)) (resid 1) -do (resid = encode (991)) (resid 2) -do (resid = encode (992)) (resid 3) -do (resid = encode (993)) (resid 4) -do (resid = encode (994)) (resid 5) -do (resid = encode (995)) (resid 6) -do (resid = encode (996)) (resid 7) -do (resid = encode (997)) (resid 8) -do (resid = encode (998)) (resid 9) -do (resid = encode (999)) (resid 10) -do (x = 0) (all) -do (y = 0) (all) -do (z = 0) (all) -do (x = 3 ) (name X) -do (y = 3 ) (name Y) -do (z = 3 ) (name Z) -do (x = -3 ) (name XM) -do (y = -3 ) (name YM) -do (z = -3 ) (name ZM) -do (resn = "XAN") (all) - -!write psf file: -write structure output=tensor_para.psf end -write coor output=tensor_para.pdb end - -stop diff --git a/src/haddock/modules/flexref/cns/patch-bb-cg.cns b/src/haddock/modules/flexref/cns/patch-bb-cg.cns deleted file mode 100644 index 4673ae185..000000000 --- a/src/haddock/modules/flexref/cns/patch-bb-cg.cns +++ /dev/null @@ -1,241 +0,0 @@ -! patch-bb-cg.cns -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * -! * and from the CNS distriution of Brunger and Adams * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! -set echo=true end -! define cutoff for chain break -evaluate ($bdbreak = 8.0) - -! encode beads info -evaluate ($bdnum = 0) -for $id in id (name BB) loop cg1 - evaluate ($bdnum = $bdnum + 1) - show (name) (id $id) - evaluate ($bdname_$bdnum = $result) - show (resid) (id $id) - evaluate ($bdresi_$bdnum = $result) - show (name) (bondedto (name $bdname_$bdnum and resid $bdresi_$bdnum)) - if ($result NE 0) then - evaluate ($sbdname_$bdnum = $result) - else - evaluate ($sbdname_$bdnum = "XXX") - end if -end loop cg1 - - -!!! BBB Angles - -evaluate ($ncount = 0) -evaluate ($nend = $bdnum - 2) -while ($ncount < $nend) loop cg2 - evaluate ($ncount = $ncount + 1) - -! define three consecutive backbone beads - evaluate ($nat1 = $ncount) - evaluate ($nat2 = $ncount + 1) - evaluate ($nat3 = $ncount + 2) - -! get their atom names - evaluate ($bname1 = $bdname_$nat1) - evaluate ($bname2 = $bdname_$nat2) - evaluate ($bname3 = $bdname_$nat3) - -! get their residue number - evaluate ($bresi1 = $bdresi_$nat1) - evaluate ($bresi2 = $bdresi_$nat2) - evaluate ($bresi3 = $bdresi_$nat3) - -! define atom names for patch - evaluate ($pat1 = "1"+$bname1) - evaluate ($pat2 = "2"+$bname2) - evaluate ($pat3 = "3"+$bname3) - -! check for breaks before defining any angle - evaluate ($break = "FALSE") - pick bond (name $bname1 and resid $bresi1) (name $bname2 and resid $bresi2) geometry - if ($result > $bdbreak) then - evaluate ($break = "TRUE") - end if - pick bond (name $bname2 and resid $bresi2) (name $bname3 and resid $bresi3) geometry - if ($result > $bdbreak) then - evaluate ($break = "TRUE") - end if - - if ($break EQ FALSE) then - -! define new backbone angle patch - topology - presidue cgang ! Patch to add an angle between three beads - add angle $pat1 $pat2 $pat3 - end - end - -! apply new patch to the selected three beads - patch cgang refe=1=(resid $bresi1) refe=2=(resid $bresi2) refe=3=(resid $bresi3) end - display PATCH-BB-CG: ADDED ONE ANGLE BETWEEN $bname1 $bresi1 , $bname2 $bresi2 , $bname3 $bresi3 - - end if - -end loop cg2 - - -!!! BBS Angles -evaluate ($ncount = 0) -evaluate ($nend = $bdnum - 1) -while ($ncount < $nend) loop cg3 - evaluate ($ncount = $ncount + 1) - -!! BBA Angles -! define two consecutive backbone beads - evaluate ($nat1 = $ncount) - evaluate ($nat2 = $ncount + 1) - -! get their atom names - evaluate ($bname1 = $bdname_$nat1) - evaluate ($bname2 = $bdname_$nat2) - -! get their side-chain beads names - evaluate ($sbname1 = $sbdname_$nat1) - evaluate ($sbname2 = $sbdname_$nat2) - -! get their residue number - evaluate ($bresi1 = $bdresi_$nat1) - evaluate ($bresi2 = $bdresi_$nat2) - -! define atom names for patch - evaluate ($pat1 = "1"+$bname1) - evaluate ($pat2 = "2"+$bname2) - evaluate ($pas1 = "1"+$sbname1) - evaluate ($pas2 = "2"+$sbname2) - -! check for breaks before defining any angle - evaluate ($break = "FALSE") - evaluate ($pbreak = "FALSE") - pick bond (name $bname1 and resid $bresi1) (name $bname2 and resid $bresi2) geometry - if ($result > $bdbreak) then - evaluate ($break = "TRUE") - evaluate ($pbreak = "TRUE") - end if - - if ($break EQ FALSE) then - -! define new side-chain angle patch for 1st residue - if ($ncount EQ 1) then - if ($sbname1 NE "XXX") then -! define SBB angle patch - topology - presidue scgang ! Patch to add an angle between three beads - add angle $pas1 $pat1 $pat2 - end - end -! apply new patch to the selected three beads - patch scgang refe=1=(resid $bresi1) refe=2=(resid $bresi1) refe=3=(resid $bresi2) end - display PATCH-SBB-CG: ADDED ONE SIDE-CHAIN/BB ANGLE BETWEEN $sbname1 $bresi1 , $bname1 $bresi1 , $bname2 $bresi2 - end if - end if - -! define new side-chain angle patch for 1st residue after chain break - if ($pbreak EQ TRUE) then - if ($sbname1 NE "XXX") then -! define SBB angle patch - topology - presidue scgsang ! Patch to add an angle between three beads - add angle $pas1 $pat1 $pat2 - end - end -! apply new patch to the selected three beads - patch scgsang refe=1=(resid $bresi1) refe=2=(resid $bresi1) refe=3=(resid $bresi2) end - display PATCH-SBB-CG: ADDED ONE SIDE-CHAIN/BB ANGLE BETWEEN $sbname1 $bresi1 , $bname1 $bresi1 , $bname2 $bresi2 - end if - end if - -! define BBS angle patch - if ($sbname2 NE "XXX") then - topology - presidue cgsang ! Patch to add an angle between three beads - add angle $pat1 $pat2 $pas2 - end - end -! apply new patch to the selected three beads - patch cgsang refe=1=(resid $bresi1) refe=2=(resid $bresi2) refe=3=(resid $bresi2) end - display PATCH-BBS-CG: ADDED ONE BB/SIDE-CHAIN ANGLE BETWEEN $bname1 $bresi1 , $bname2 $bresi2 , $sbname2 $bresi2 - end if - - end if - -end loop cg3 - - -!! BBB dihedral - -evaluate ($ncount = 0) -evaluate ($nend = $bdnum - 3) -while ($ncount < $nend) loop cg4 - evaluate ($ncount = $ncount + 1) - -! define four consecutive beads - evaluate ($nat1 = $ncount) - evaluate ($nat2 = $ncount + 1) - evaluate ($nat3 = $ncount + 2) - evaluate ($nat4 = $ncount + 3) - -! get their atom names - evaluate ($bname1 = $bdname_$nat1) - evaluate ($bname2 = $bdname_$nat2) - evaluate ($bname3 = $bdname_$nat3) - evaluate ($bname4 = $bdname_$nat4) - -! get their residue number - evaluate ($bresi1 = $bdresi_$nat1) - evaluate ($bresi2 = $bdresi_$nat2) - evaluate ($bresi3 = $bdresi_$nat3) - evaluate ($bresi4 = $bdresi_$nat4) - -! define atom names for patch - evaluate ($pat1 = "1"+$bname1) - evaluate ($pat2 = "2"+$bname2) - evaluate ($pat3 = "3"+$bname3) - evaluate ($pat4 = "4"+$bname4) - - evaluate ($break = "FALSE") -! check for breaks before defining any dihedral - pick bond (name $bname1 and resid $bresi1) (name $bname2 and resid $bresi2) geometry - if ($result > $bdbreak) then - evaluate ($break = "TRUE") - end if - pick bond (name $bname2 and resid $bresi2) (name $bname3 and resid $bresi3) geometry - if ($result > $bdbreak) then - evaluate ($break = "TRUE") - end if - pick bond (name $bname3 and resid $bresi3) (name $bname4 and resid $bresi4) geometry - if ($result > $bdbreak) then - evaluate ($break = "TRUE") - end if - - if ($break EQ FALSE) then - -! define new patch - topology - presidue cgdihe ! Patch to add a dihedral angle between four beads - add dihedral $pat1 $pat2 $pat3 $pat4 - end - end - -! apply new patch to the selected four beads - patch cgdihe refe=1=(resid $bresi1) refe=2=(resid $bresi2) refe=3=(resid $bresi3) refe=4=(resid $bresi4) end - display PATCH-BB-CG: ADDED ONE DIHEDRAL BETWEEN $bname1 $bresi1 , $bname2 $bresi2 , $bname3 $bresi3 , $bname4 $bresi4 - - end if - -end loop cg4 - - - diff --git a/src/haddock/modules/flexref/cns/patch-types-cg.cns b/src/haddock/modules/flexref/cns/patch-types-cg.cns deleted file mode 100644 index fd34e0a67..000000000 --- a/src/haddock/modules/flexref/cns/patch-types-cg.cns +++ /dev/null @@ -1,68 +0,0 @@ -! patch-types-cg.cns -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * -! * and from the CNS distriution of Brunger and Adams * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! -! encode beads info -evaluate ($bdnum = 0) -for $id in id (name BB and (not (resn ALA or resn PRO or resn HYP))) loop cgt1 - evaluate ($bdnum = $bdnum + 1) - show (name) (id $id) - evaluate ($bdname_$bdnum = $result) - show (resid) (id $id) - evaluate ($bdresi_$bdnum = $result) - show (b) (id $id) - evaluate ($bfactor_$bdnum = $result) - evaluate ($ptype= "PTY"+encode($bfactor_$bdnum)) - patch $ptype refe=NIL=(resid $bdresi_$bdnum) end -end loop cgt1 - -! encode beads info for ALA -evaluate ($bdnum = 0) -for $id in id (name BB and resn ALA) loop cgt2 - evaluate ($bdnum = $bdnum + 1) - show (name) (id $id) - evaluate ($bdname_$bdnum = $result) - show (resid) (id $id) - evaluate ($bdresi_$bdnum = $result) - show (b) (id $id) - evaluate ($bfactor_$bdnum = $result) - evaluate ($ptype= "PTA"+encode($bfactor_$bdnum)) - patch $ptype refe=NIL=(resid $bdresi_$bdnum) end -end loop cgt2 - -! encode beads info for PRO -evaluate ($bdnum = 0) -for $id in id (name BB and resn PRO) loop cgt3 - evaluate ($bdnum = $bdnum + 1) - show (name) (id $id) - evaluate ($bdname_$bdnum = $result) - show (resid) (id $id) - evaluate ($bdresi_$bdnum = $result) - show (b) (id $id) - evaluate ($bfactor_$bdnum = $result) - evaluate ($ptype= "PTP"+encode($bfactor_$bdnum)) - patch $ptype refe=NIL=(resid $bdresi_$bdnum) end -end loop cgt3 - -! encode beads info for HYP -evaluate ($bdnum = 0) -for $id in id (name BB and resn HYP) loop cgt4 - evaluate ($bdnum = $bdnum + 1) - show (name) (id $id) - evaluate ($bdname_$bdnum = $result) - show (resid) (id $id) - evaluate ($bdresi_$bdnum = $result) - show (b) (id $id) - evaluate ($bfactor_$bdnum = $result) - evaluate ($ptype= "PTH"+encode($bfactor_$bdnum)) - patch $ptype refe=NIL=(resid $bdresi_$bdnum) end -end loop cgt4 - diff --git a/src/haddock/modules/flexref/cns/print_aa-dna-energies.inp b/src/haddock/modules/flexref/cns/print_aa-dna-energies.inp deleted file mode 100644 index 722892dc5..000000000 --- a/src/haddock/modules/flexref/cns/print_aa-dna-energies.inp +++ /dev/null @@ -1,76 +0,0 @@ -! print_aa-dna-energies.inp -! Analyze and print amino-acids - base based free energy of interaction -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! - -@RUN:initialize.cns(iteration=$iteration;) - -@NEWIT:iteration.cns(iteration=$iteration;) - -@RUN:run.cns( -iteration =$iteration; -filenames =$filenames; -data =$data; -iterations=$iterations; -saprotocol=$saprotocol; -refine =$refine; -toppar =$toppar; -analysis =$analysis; -) - -!reads in structure, coordinates and parameter files -@RUN:read_struc.cns -@RUN:read_struc-cg.cns - -@PREVIT:file.cns(filenames=$filenames) -evaluate ($file = $filenames.bestfile_1) -coor @@$file - -dele sele=(resn TIP* or resn WAT or resn HOH or resn DMSO) end -delete sele=(not(known)) end - -set display=NEWIT:analysis/aa-base-energies.disp end -display # Protein-DNA free-energy of interaction -display # filename Ewater Emethanol - -@PREVIT:file.cns(filenames=$filenames) - -evaluate ($count = 0) -evaluate ($TotalNstruct = 0) -while ($count lt $Iterations.Structures) loop main - evaluate ($count=$count+1) - evaluate ($file = $filenames.bestfile_$count) - if ($file ne "") then - evaluate ($TotalNstruct = $TotalNstruct + 1) - end if -end loop main - -if ($Iterations.anastruc > $TotalNstruct) then - evaluate ($Iterations.anastruc = $ToTalNstruct) -end if - -evaluate ($count = 1) -evaluate ($nstruc1 = 0) -while ($count le $Iterations.anastruc) loop main - evaluate ($file = $filenames.bestfile_$count) - coor init end - if ($file ne "") then - coor @@$file - evaluate ($nstruc1 = $nstruc1 + 1) - inline @RUN:amino-acids-bases-energies.cns - display # $file $interactene_water $interactene_methanol - end if - if ($count ge $Iterations.anastruc) then - exit loop main - end if - evaluate ($count = $count + 1) -end loop main - -stop diff --git a/src/haddock/modules/flexref/cns/print_dani.inp b/src/haddock/modules/flexref/cns/print_dani.inp deleted file mode 100644 index e56d28ce4..000000000 --- a/src/haddock/modules/flexref/cns/print_dani.inp +++ /dev/null @@ -1,134 +0,0 @@ -! print_dani.inp -! Analyse and print diffusion anisotropy restraints statistics -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! - -@RUN:initialize.cns(iteration=$iteration;) - -@NEWIT:iteration.cns(iteration=$iteration;) - -@RUN:run.cns( -iteration =$iteration; -filenames =$filenames; -data =$data; -iterations=$iterations; -saprotocol=$saprotocol; -refine =$refine; -toppar =$toppar; -analysis =$analysis; -) - -!reads in structure, coordinates and parameter files -@RUN:read_struc.cns -@RUN:read_struc-cg.cns - -@PREVIT:file.cns(filenames=$filenames) -evaluate ($file = $filenames.bestfile_1) -coor @@$file - -delete sele=(not(known)) end - -flags exclude * include dani end - - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!DANI restraints: - -evaluate ($ndani=1) -dani reset nres=5000 end -while ($ndani <= $data.numdani) loop dani - evaluate ($sum_rms_dan$ndani = 0) - evaluate ($sumsq_rms_dan$ndani = 0) - evaluate ($cln = "da" + encode($ndani) ) - evaluate ($restfile="RUN:data/dani/dani"+encode($ndani)+".tbl") - if ($data.dan_choice_$ndani eq "DANI") then - evaluate ($data.flags.dani = true) - dani - class $cln - force 1.0 - coeff $Data.dan_tc_$ndani $Data.dan_anis_$ndani $Data.dan_r_$ndani $Data.dan_wh_$ndani $Data.dan_wn_$ndani - potential square - @@$restfile - end - end if - evaluate ($ndani = $ndani + 1) -end loop dani - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -set display=NEWIT:analysis/dani.disp end - -@PREVIT:file.cns(filenames=$filenames) - -evaluate ($count = 0) -evaluate ($TotalNstruct = 0) -while ($count lt $Iterations.Structures) loop main - evaluate ($count=$count+1) - evaluate ($file = $filenames.bestfile_$count) - if ($file ne "") then - evaluate ($TotalNstruct = $TotalNstruct + 1) - end if -end loop main - -if ($Iterations.anastruc > $TotalNstruct) then - evaluate ($Iterations.anastruc = $ToTalNstruct) -end if - -display #filename rms_dani #viol>1Hz #viol>0.5Hz #viol>0.2Hz - -evaluate ($count = 0) -evaluate ($nstruc1 = 0) -!NB: for some reason, the dani print thresh statement only gives back 'result; -!when first sani has done this.... -!and then it keeps 0.0 -!so probably it does not work at all?? -sani print thresh=100.0 all end -while ($count le $Iterations.anastruc) loop main - evaluate ($count = $count + 1) - evaluate ($file = $filenames.bestfile_$count) - coor init end - if ($file ne "") then - coor @@$file - evaluate ($nstruc1 = $nstruc1 + 1) - - evaluate ($ndani=1) - while ($ndani <= $data.numdani) loop dani - evaluate ($violations = 0) - evaluate ($result = 0) - evaluate ($cln = "da" + encode($ndani) ) - if ($data.dan_choice_$ndani eq "DANI") then - dani print thresh=1.0 class $cln end - evaluate ($violations1 = $violations) - dani print thresh=0.5 class $cln end - evaluate ($violations2 = $violations) - dani print thresh=0.2 class $cln end - evaluate ($violations3 = $violations) - evaluate ($rms_dan$ndani = $rms) - evaluate ($sum_rms_dan$ndani = $sum_rms_dan$ndani + $rms_dan$ndani) - evaluate ($sumsq_rms_dan$ndani = $sumsq_rms_dan$ndani + $rms_dan$ndani**2) - display # dan$ndani $file $rms_dan$ndani $violations1 $violations2 $violations3 - end if - evaluate ($ndani = $ndani + 1) - end loop dani - end if -end loop main - -evaluate ($ndani=1) -while ($ndani <= $data.numdani) loop dani - if ($data.dan_choice_$ndani eq "DANI") then - evaluate ($mean_rms_dan$ndani = $sum_rms_dan$ndani / $nstruc1) - evaluate ($stdev_rms_dan$ndani = sqrt(($sumsq_rms_dan$ndani - $nstruc1*$mean_rms_dan$ndani**2)/ $nstruc$ndani)) - display # mean values dan(dani) class dan$ndani - display # dani $mean_rms_dan$ndani (+/- $stdev_rms_dan$ndani ) - end if - evaluate ($ndani = $ndani + 1) -end loop dani - -stop diff --git a/src/haddock/modules/flexref/cns/print_dih.inp b/src/haddock/modules/flexref/cns/print_dih.inp deleted file mode 100644 index 5f3205ba5..000000000 --- a/src/haddock/modules/flexref/cns/print_dih.inp +++ /dev/null @@ -1,114 +0,0 @@ -! print_dih.inp -! Analyze and print dihedral angle restraints statistics -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! - -@RUN:initialize.cns(iteration=$iteration;) - -@NEWIT:iteration.cns(iteration=$iteration;) - -@RUN:run.cns( -iteration =$iteration; -filenames =$filenames; -data =$data; -iterations=$iterations; -saprotocol=$saprotocol; -refine =$refine; -toppar =$toppar; -analysis =$analysis; -) - -!reads in structure, coordinates and parameter files -@RUN:read_struc.cns -@RUN:read_struc-cg.cns - -@PREVIT:file.cns(filenames=$filenames) -evaluate ($file = $filenames.bestfile_1) -coor @@$file - -delete sele=(not(known)) end - -evaluate ($cutdih = 5.0) - -set display=NEWIT:analysis/dihedrals.disp end - -display # dihedral restraints -!read tbl file -evaluate ($filename = "RUN:data/dihedrals/dihedrals.tbl") -restraints dihedral nass=2000 @@$filename scale = $data.dihedrals_cool3 end - -flags exclude * include cdih end - -evaluate ($sum_rms_dih = 0) -evaluate ($sumsq_rms_dih = 0) -evaluate ($svio_dih = 0) ! sum violations -evaluate ($ssvio_dih = 0) ! square sum of violations - -@PREVIT:file.cns(filenames=$filenames) - -evaluate ($count = 0) -evaluate ($TotalNstruct = 0) -while ($count lt $Iterations.Structures) loop main - evaluate ($count=$count+1) - evaluate ($file = $filenames.bestfile_$count) - if ($file ne "") then - evaluate ($TotalNstruct = $TotalNstruct + 1) - end if -end loop main - -if ($Iterations.anastruc > $TotalNstruct) then - evaluate ($Iterations.anastruc = $ToTalNstruct) -end if - -evaluate ($count = 1) -evaluate ($nstruc1 = 0) -while ($count le $Iterations.anastruc) loop main - evaluate ($count = $count + 1) - evaluate ($file = $filenames.bestfile_$count) - coor init end - if ($file ne "") then - coor @@$file - evaluate ($nstruc1 = $nstruc1 + 1) - - print thresh=$cutdih cdih - evaluate ($rms_dih = $result) - evaluate ($sum_rms_dih = $sum_rms_dih + $rms_dih ) - evaluate ($sumsq_rms_dih = $sumsq_rms_dih + $rms_dih**2 ) - - evaluate ($vio_dih = $violations) - evaluate ($svio_dih = $svio_dih +$vio_dih) - evaluate ($ssvio_dih = $ssvio_dih +$vio_dih**2) - - display # DIH $file rmsd: $rms_dih vio: $vio_dih - - end if -end loop main - - -evaluate ($m_rms_dih = $sum_rms_dih / $nstruc1) -evaluate ($m_vio_dih = $svio_dih / $nstruc1) -evaluate ($sd_rms_dih = - sqrt(($sumsq_rms_dih - $nstruc1*$m_rms_dih**2)/ $nstruc1)) -evaluate ($sd_vio_dih = - sqrt(($ssvio_dih - $nstruc1*$m_vio_dih**2)/ $nstruc1)) - -display # mean values $filename -display # DIH rmsd (deg) $m_rms_dih ($sd_rms_dih) -display # DIH vio > $cutdih deg: $m_vio_dih ($sd_vio_dih) -display m_rms_dih sd_rms_dih cutdih m_vio_dih sd_vio_dih -display $m_rms_dih $sd_rms_dih $cutdih $m_vio_dih $sd_vio_dih -display # - -evaluate ($outdis = "NEWIT:analysis/DIH_DONE") -set display=$outdis end -display DONE - -stop diff --git a/src/haddock/modules/flexref/cns/print_geom.inp b/src/haddock/modules/flexref/cns/print_geom.inp deleted file mode 100644 index 4bd10d36d..000000000 --- a/src/haddock/modules/flexref/cns/print_geom.inp +++ /dev/null @@ -1,129 +0,0 @@ -! print_geom.inp -! Analyze and print covalent geometry statistics -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! - -@RUN:initialize.cns(iteration=$iteration;) - -@NEWIT:iteration.cns(iteration=$iteration;) - -@RUN:run.cns( -iteration =$iteration; -filenames =$filenames; -data =$data; -iterations=$iterations; -saprotocol=$saprotocol; -refine =$refine; -toppar =$toppar; -analysis =$analysis; -) - -!reads in structure, coordinates and parameter files -@RUN:read_struc.cns -@RUN:read_struc-cg.cns - -@PREVIT:file.cns(filenames=$filenames) -evaluate ($file = $filenames.bestfile_1) -coor @@$file - -delete sele=(not(known)) end - -set display=NEWIT:analysis/geom.disp end -display # geometry analysis -display # filename rms_bond rms_angle rms_impr rmsd_dihe - -flags exclude * include bond angle impr dihe end - -evaluate ($sum_rms_bond = 0) -evaluate ($sumsq_rms_bond = 0) -evaluate ($sum_rms_angle = 0) -evaluate ($sumsq_rms_angle = 0) -evaluate ($sum_rms_impr = 0) -evaluate ($sumsq_rms_impr = 0) -evaluate ($sum_rms_dihe = 0) -evaluate ($sumsq_rms_dihe = 0) - -@PREVIT:file.cns(filenames=$filenames) - -evaluate ($count = 0) -evaluate ($TotalNstruct = 0) -while ($count lt $Iterations.Structures) loop main - evaluate ($count=$count+1) - evaluate ($file = $filenames.bestfile_$count) - if ($file ne "") then - evaluate ($TotalNstruct = $TotalNstruct + 1) - end if -end loop main - -if ($Iterations.anastruc > $TotalNstruct) then - evaluate ($Iterations.anastruc = $ToTalNstruct) -end if - -evaluate ($count = 1) -evaluate ($nstruc1 = 0) -while ($count le $Iterations.anastruc) loop main - evaluate ($file = $filenames.bestfile_$count) - coor init end - if ($file ne "") then - coor @@$file - evaluate ($nstruc1 = $nstruc1 + 1) - - print thresh=0.025 bonds evaluate ($rms_bond = $result) - evaluate ($sum_rms_bond = $sum_rms_bond + $rms_bond) - evaluate ($sumsq_rms_bond = $sumsq_rms_bond + $rms_bond**2) - - print thresh=2.5 angle evaluate ($rms_angle = $result) - evaluate ($sum_rms_angle = $sum_rms_angle + $rms_angle) - evaluate ($sumsq_rms_angle = $sumsq_rms_angle + $rms_angle**2) - - print thresh=2.5 impr evaluate ($rms_impr = $result) - evaluate ($sum_rms_impr = $sum_rms_impr + $rms_impr) - evaluate ($sumsq_rms_impr = $sumsq_rms_impr + $rms_impr**2) - - ! the following is needed to avoid having dihedral violations for the - ! backbone phi/psi dihedrals that are a sum of six cos terms that - ! are analysed separately in the print dihe statement. - ! Note that a few ch1 dihedral will be excluded as well... - igroup interaction (not name C) (not name C) end - print thresh=30.0 dihe evaluate ($rms_dihe = $result) - igroup interaction (all) (all) end - evaluate ($sum_rms_dihe = $sum_rms_dihe + $rms_dihe) - evaluate ($sumsq_rms_dihe = $sumsq_rms_dihe + $rms_dihe**2) - - energy end - display # $file $rms_bond $rms_angle $rms_impr $rms_dihe - end if - if ($count ge $Iterations.anastruc) then exit loop main end if - evaluate ($count = $count + 1) -end loop main - -evaluate ($mean_rms_bond = $sum_rms_bond / $nstruc1) -evaluate ($stdev_rms_bond = - sqrt(($sumsq_rms_bond - $nstruc1*$mean_rms_bond**2)/ $nstruc1)) -evaluate ($mean_rms_angle = $sum_rms_angle / $nstruc1) -evaluate ($stdev_rms_angle = - sqrt(($sumsq_rms_angle - $nstruc1*$mean_rms_angle**2)/ $nstruc1)) -evaluate ($mean_rms_impr = $sum_rms_impr / $nstruc1) -evaluate ($stdev_rms_impr = - sqrt(($sumsq_rms_impr - $nstruc1*$mean_rms_impr**2)/ $nstruc1)) -evaluate ($mean_rms_dihe = $sum_rms_dihe / $nstruc1) -evaluate ($stdev_rms_dihe = - sqrt(($sumsq_rms_dihe - $nstruc1*$mean_rms_dihe**2)/ $nstruc1)) - -display # mean values all -display # bond $mean_rms_bond (+/- $stdev_rms_bond ) -display # angle $mean_rms_angle (+/- $stdev_rms_angle ) -display # impr $mean_rms_impr (+/- $stdev_rms_impr ) -display # dihe $mean_rms_dihe (+/- $stdev_rms_dihe ) -display mean_rms_bond stdev_rms_bond mean_rms_angle stdev_rms_angle mean_rms_impr stdev_rms_impr -display $mean_rms_bond $stdev_rms_bond $mean_rms_angle $stdev_rms_angle $mean_rms_impr $stdev_rms_impr $mean_rms_dihe $stdev_rms_dihe - -stop diff --git a/src/haddock/modules/flexref/cns/print_hbonds.inp b/src/haddock/modules/flexref/cns/print_hbonds.inp deleted file mode 100644 index 07c4dd962..000000000 --- a/src/haddock/modules/flexref/cns/print_hbonds.inp +++ /dev/null @@ -1,138 +0,0 @@ -! print_hbonds.inp -! Analyze and print intermolecular hydrogen bond statistics -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! - -@RUN:initialize.cns(iteration=$iteration;) - -@NEWIT:iteration.cns(iteration=$iteration;) - -@RUN:run.cns( -iteration =$iteration; -filenames =$filenames; -data =$data; -iterations=$iterations; -saprotocol=$saprotocol; -refine =$refine; -toppar =$toppar; -analysis =$analysis; -) - -!reads in structure, coordinates and parameter files -@RUN:read_struc.cns -@RUN:read_struc-cg.cns - -@PREVIT:file.cns(filenames=$filenames) -evaluate ($file = $filenames.bestfile_1) -coor @@$file - -delete sele=(not(known)) end - -@PREVIT:file.cns(filenames=$filenames) - -evaluate ($count = 0) -evaluate ($TotalNstruct = 0) -while ($count lt $Iterations.Structures) loop main - evaluate ($count=$count+1) - evaluate ($file = $filenames.bestfile_$count) - if ($file ne "") then - coor init end - coor @@$file - dele sele=(not known) end - evaluate ($TotalNstruct = $TotalNstruct + 1) - end if -end loop main - -if ($Iterations.anastruc > $TotalNstruct) then - evaluate ($Iterations.anastruc = $ToTalNstruct) -end if - -! define hydrogen bond donors -do (store1 = 0) (all) -do (store1 = 1) (name HN or name HT*) -do (store1 = 1) (resn ARG and (name HE or name HH*)) -do (store1 = 1) (resn ASN and name HD*) -do (store1 = 1) (resn CYS and name HG) -do (store1 = 1) (resn GLN and name HE*) -do (store1 = 1) (resn HIS* and (name HD1 or name HE2)) -do (store1 = 1) (resn LYS and name HZ*) -do (store1 = 1) (resn SER and name HG) -do (store1 = 1) (resn THR and name HG1) -do (store1 = 1) (resn DDZ and name HG*) -do (store1 = 1) (resn TRP and name HE1) -do (store1 = 1) (resn TYR and name HH) -do (store1 = 1) (name HO2') -do (store1 = 1) ((resn ADE or resn A or resn DA) and name H6*) -do (store1 = 1) ((resn GUA or resn G or resn DG) and (name H2* or name H1)) -do (store1 = 1) ((resn CYT or resn C or resn DC) and name H4*) -do (store1 = 1) ((resn THY or resn T or resn DT) and name H3) -do (store1 = 1) (resn URI and name H3) -do (store1 = 1) ((resn WAT or resn HOH or resn TIP*) and name H1) -do (store1 = 1) ((resn WAT or resn HOH or resn TIP*) and name H2) - -! define hydrogen bond acceptors -do (store2 = 0) (all) -do (store2 = 1) (name O or name OXT or name OT1 or name OT2) -do (store2 = 1) (resn ASN and name OD1) -do (store2 = 1) (resn ASP and name OD*) -do (store2 = 1) (resn GLN and name OE1) -do (store2 = 1) (resn GLU and name OE*) -do (store2 = 1) (resn SER and name OG) -do (store2 = 1) (resn THR and name OG1) -do (store2 = 1) (resn DDZ and name OG*) -do (store2 = 1) (resn TYR and name OH) -do (store2 = 1) (name O1P or name OP1 or name OP2 or name O2P) -do (store2 = 1) (name O2' or name O3' or name O4' or name O5') -do (store2 = 1) ((resn ADE or resn A or resn DA) and (name N1 or name N3 or name N7)) -do (store2 = 1) ((resn GUA or resn G or resn DG) and (name O6 or name N3 or name N7)) -do (store2 = 1) ((resn CYT or resn C or resn DC) and (name O2 or name N3)) -do (store2 = 1) ((resn THY or resn T or resn DT) and (name O2 or name O4)) -do (store2 = 1) ((resn URI or resn U) and (name O2 or name O4)) -do (store2 = 1) ((resn WAT or resn HOH or resn TIP*) and name OH2) - -if ($Data.ncomponents > 1) then - evaluate ($kinter = 1.0) - @RUN:scale_inter_only.cns -end if - -set message off echo off end -evaluate ($count = 0) -evaluate ($nstruc = 0) - -set display=NEWIT:analysis/hbonds.disp end - -while ($count lt $Iterations.anastruc) loop main - evaluate ($count = $count + 1) - evaluate ($file = $filenames.bestfile_$count) - coor init end - if ($file ne "") then - coor @@$file - evaluate ($nstruc = $nstruc + 1) - - display $file - - dist - from (attr store1=1) - to (attr store2=1) - cuton = 1.0 - cutoff = $Data.hb_dist - disp = print - output = NEWIT:analysis/hbonds.disp - end - - end if -end loop main - -evaluate ($outdis = "NEWIT:analysis/HBONDS_DONE") -set display=$outdis end -display DONE - -stop - diff --git a/src/haddock/modules/flexref/cns/print_nb.inp b/src/haddock/modules/flexref/cns/print_nb.inp deleted file mode 100644 index 742217f65..000000000 --- a/src/haddock/modules/flexref/cns/print_nb.inp +++ /dev/null @@ -1,93 +0,0 @@ -! print_nb.inp -! Analysze and print intermolecular non-bonded contacts statistics -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! - -@RUN:initialize.cns(iteration=$iteration;) - -@NEWIT:iteration.cns(iteration=$iteration;) - -@RUN:run.cns( -iteration =$iteration; -filenames =$filenames; -data =$data; -iterations=$iterations; -saprotocol=$saprotocol; -refine =$refine; -toppar =$toppar; -analysis =$analysis; -) - -!reads in structure, coordinates and parameter files -@RUN:read_struc.cns -@RUN:read_struc-cg.cns - -@PREVIT:file.cns(filenames=$filenames) -evaluate ($file = $filenames.bestfile_1) -coor @@$file - -delete sele=(not(known)) end - -@PREVIT:file.cns(filenames=$filenames) - -evaluate ($count = 0) -evaluate ($TotalNstruct = 0) -while ($count lt $Iterations.Structures) loop main - evaluate ($count=$count+1) - evaluate ($file = $filenames.bestfile_$count) - if ($file ne "") then - coor init end - coor @@$file - dele sele=(not known) end - evaluate ($TotalNstruct = $TotalNstruct + 1) - end if -end loop main - -if ($Iterations.anastruc > $TotalNstruct) then - evaluate ($Iterations.anastruc = $ToTalNstruct) -end if - -evaluate ($kinter = 1.0) -@RUN:scale_inter_only.cns - -set message off echo off end -evaluate ($count = 0) -evaluate ($nstruc = 0) - -set display=NEWIT:analysis/nbcontacts.disp end - -while ($count lt $Iterations.anastruc) loop main - evaluate ($count = $count + 1) - evaluate ($file = $filenames.bestfile_$count) - coor init end - if ($file ne "") then - coor @@$file - evaluate ($nstruc = $nstruc + 1) - - display $file - - dist - from (name C*) - to (name C*) - cuton = 1.0 - cutoff = $Data.nb_dist - disp = print - output = NEWIT:analysis/nbcontacts.disp - end - - end if -end loop main - -evaluate ($outdis = "NEWIT:analysis/NB_DONE") -set display=$outdis end -display DONE - -stop - diff --git a/src/haddock/modules/flexref/cns/print_noes.inp b/src/haddock/modules/flexref/cns/print_noes.inp deleted file mode 100644 index f005c31b0..000000000 --- a/src/haddock/modules/flexref/cns/print_noes.inp +++ /dev/null @@ -1,672 +0,0 @@ -! print_noes.inp -! Analyze and print distance restraints statistics -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! - -@RUN:initialize.cns(iteration=$iteration;) - -@NEWIT:iteration.cns(iteration=$iteration;) - -@RUN:run.cns( -iteration =$iteration; -filenames =$filenames; -data =$data; -iterations=$iterations; -saprotocol=$saprotocol; -refine =$refine; -toppar =$toppar; -analysis =$analysis; -) - -!reads in structure, coordinates and parameter files -@RUN:read_struc.cns -@RUN:read_struc-cg.cns - -@PREVIT:file.cns(filenames=$filenames) -evaluate ($file = $filenames.bestfile_1) -coor @@$file - -delete sele=(not(known)) end - -! the following lines are only to avoid error messages -evaluate ($test_rms = 0) - -set display=NEWIT:analysis/noe.disp end - -flags exclude * include noe end - -display #all distance restraints -display #structure rms-noe #viol>0.5A #viol>0.3A #viol>0.1A #Enoe -noe - reset - nrestraints = 12000000 ! allocate space for NOEs - ceiling 100 - - set echo off message off end - class dist @@NEWIT:unambig.tbl - class ambi @@NEWIT:ambig.tbl - class hbon @@$hbond_fname - set echo on message on end - - averaging * sum - potential * soft - scale * 1.0 - sqconstant * 1.0 - sqexponent * 2 - soexponent * 1 - rswitch * 1.0 - sqoffset * 0.0 - asymptote * 2.0 - - msoexponent * 1 - masymptote * -2.0 - mrswitch * 1.0 - - avexpo hbond 20 -end - -evaluate ($sum_enoe = 0) -evaluate ($sumsq_enoe = 0) -evaluate ($sum_rms_noe = 0) -evaluate ($sumsq_rms_noe = 0) -evaluate ($sum_trms_noe = 0) -evaluate ($sumsq_trms_noe = 0) -evaluate ($sum_viol_noe1 = 0) -evaluate ($sumsq_viol_noe1 = 0) -evaluate ($sum_viol_noe2 = 0) -evaluate ($sumsq_viol_noe2 = 0) -evaluate ($sum_viol_noe3 = 0) -evaluate ($sumsq_viol_noe3 = 0) -evaluate ($violations = 0) - -@PREVIT:file.cns(filenames=$filenames) - -evaluate ($count = 0) -evaluate ($TotalNstruct = 0) -while ($count lt $Iterations.Structures) loop main - evaluate ($count=$count+1) - evaluate ($file = $filenames.bestfile_$count) - if ($file ne "") then - evaluate ($TotalNstruct = $TotalNstruct + 1) - end if -end loop main - -if ($Iterations.anastruc > $TotalNstruct) then - evaluate ($Iterations.anastruc = $ToTalNstruct) -end if - - -set message off echo off end -evaluate ($count = 0) -evaluate ($nstruc = 0) -while ($count lt $Iterations.anastruc) loop main - evaluate ($count = $count + 1) - evaluate ($file = $filenames.bestfile_$count) - coor init end - if ($file ne "") then - coor @@$file - evaluate ($nstruc = $nstruc + 1) - - energy end - - evaluate ($sum_enoe = $sum_enoe + $noe) - evaluate ($sumsq_enoe = $sumsq_enoe + $noe**2) - - evaluate ($violations = 0) - evaluate ($result = 0) - noe print thresh=0.025 end - evaluate ($rms_noe = $result) - evaluate ($sum_rms_noe = $sum_rms_noe + $rms_noe) - evaluate ($sumsq_rms_noe = $sumsq_rms_noe + $rms_noe**2) - evaluate ($sum_trms_noe = $sum_trms_noe + $test_rms) - evaluate ($sumsq_trms_noe = $sumsq_trms_noe + $test_rms**2) - - evaluate ($violations = 0) - evaluate ($result = 0) - noe print thresh=0.5 end - evaluate ($sum_viol_noe1 = $sum_viol_noe1 + $violations) - evaluate ($sumsq_viol_noe1 = $sumsq_viol_noe1 + $violations**2) - evaluate ($violations1 = $violations) - - set print=NEWIT:analysis/print_dist_all.out end - evaluate ($violations = 0) - evaluate ($result = 0) - noe print thresh=0.3 end - - set print=NEWIT:analysis/print_noe.out end - evaluate ($sum_viol_noe2 = $sum_viol_noe2 + $violations) - evaluate ($sumsq_viol_noe2 = $sumsq_viol_noe2 + $violations**2) - evaluate ($violations2 = $violations) - evaluate ($violations = 0) - evaluate ($result = 0) - noe print thresh=0.1 end - evaluate ($sum_viol_noe3 = $sum_viol_noe3 + $violations) - evaluate ($sumsq_viol_noe3 = $sumsq_viol_noe3 + $violations**2) - evaluate ($violations3 = $violations) - - display $file $rms_noe $violations1 $violations2 $violations3 $noe - end if -end loop main - -evaluate ($mean_enoe = $sum_enoe / $nstruc) -evaluate ($stdev_enoe = - sqrt(($sumsq_enoe - $nstruc*$mean_enoe**2)/ $nstruc)) -evaluate ($mean_rms_noe = $sum_rms_noe / $nstruc) -evaluate ($stdev_rms_noe = - sqrt(($sumsq_rms_noe - $nstruc*$mean_rms_noe**2)/ $nstruc)) -evaluate ($mean_viol_noe1 = $sum_viol_noe1 / $nstruc) -evaluate ($stdev_viol_noe1 = - sqrt(($sumsq_viol_noe1 - $nstruc*$mean_viol_noe1**2)/ $nstruc)) -evaluate ($mean_viol_noe2 = $sum_viol_noe2 / $nstruc) -evaluate ($stdev_viol_noe2 = - sqrt(($sumsq_viol_noe2 - $nstruc*$mean_viol_noe2**2)/ $nstruc)) -evaluate ($mean_viol_noe3 = $sum_viol_noe3 / $nstruc) -evaluate ($stdev_viol_noe3 = - sqrt(($sumsq_viol_noe3 - $nstruc*$mean_viol_noe3**2)/ $nstruc)) -display mean values -display Enoe $mean_enoe (+/- $stdev_enoe ) -display noe rms $mean_rms_noe (+/- $stdev_rms_noe ) -display violations > 0.5A $mean_viol_noe1 (+/- $stdev_viol_noe1 ) -display violations > 0.3A $mean_viol_noe2 (+/- $stdev_viol_noe2 ) -display violations > 0.1A $mean_viol_noe3 (+/- $stdev_viol_noe3 ) - -display -display #only unambiguous -display #structure rms-noe #viol>0.5A #viol>0.3A #viol>0.1A #Enoe -noe - reset - nrestraints = 4000000 ! allocate space for NOEs - ceiling 100 - - set echo off message off end - class dist @@NEWIT:unambig.tbl -!!! class ambi @@NEWIT:ambig.tbl -!!! class hbon @@$hbond_fname - set echo on message on end - - averaging * sum - potential * soft - scale * 1.0 - sqconstant * 1.0 - sqexponent * 2 - soexponent * 1 - rswitch * 1.0 - sqoffset * 0.0 - asymptote * 2.0 - - msoexponent * 1 - masymptote * -2.0 - mrswitch * 1.0 - - avexpo hbond 20 -end - -evaluate ($sum_enoe = 0) -evaluate ($sumsq_enoe = 0) -evaluate ($sum_rms_noe = 0) -evaluate ($sumsq_rms_noe = 0) -evaluate ($sum_trms_noe = 0) -evaluate ($sumsq_trms_noe = 0) -evaluate ($sum_viol_noe1 = 0) -evaluate ($sumsq_viol_noe1 = 0) -evaluate ($sum_viol_noe2 = 0) -evaluate ($sumsq_viol_noe2 = 0) -evaluate ($sum_viol_noe3 = 0) -evaluate ($sumsq_viol_noe3 = 0) -evaluate ($violations = 0) - - -set message off echo off end -evaluate ($count = 0) -evaluate ($nstruc = 0) -while ($count lt $Iterations.anastruc) loop main - evaluate ($count = $count + 1) - evaluate ($file = $filenames.bestfile_$count) - coor init end - if ($file ne "") then - coor @@$file - evaluate ($nstruc = $nstruc + 1) - - energy end - - evaluate ($sum_enoe = $sum_enoe + $noe) - evaluate ($sumsq_enoe = $sumsq_enoe + $noe**2) - - evaluate ($violations = 0) - evaluate ($result = 0) - noe print thresh=0.025 end - evaluate ($rms_noe = $result) - evaluate ($sum_rms_noe = $sum_rms_noe + $rms_noe) - evaluate ($sumsq_rms_noe = $sumsq_rms_noe + $rms_noe**2) - evaluate ($sum_trms_noe = $sum_trms_noe + $test_rms) - evaluate ($sumsq_trms_noe = $sumsq_trms_noe + $test_rms**2) - - evaluate ($violations = 0) - evaluate ($result = 0) - noe print thresh=0.5 end - evaluate ($sum_viol_noe1 = $sum_viol_noe1 + $violations) - evaluate ($sumsq_viol_noe1 = $sumsq_viol_noe1 + $violations**2) - evaluate ($violations1 = $violations) - - set print=NEWIT:analysis/print_noe_unambig.out end - evaluate ($violations = 0) - evaluate ($result = 0) - noe print thresh=0.3 end - - set print=NEWIT:analysis/print_noe.out end - evaluate ($sum_viol_noe2 = $sum_viol_noe2 + $violations) - evaluate ($sumsq_viol_noe2 = $sumsq_viol_noe2 + $violations**2) - evaluate ($violations2 = $violations) - evaluate ($violations = 0) - evaluate ($result = 0) - noe print thresh=0.1 end - evaluate ($sum_viol_noe3 = $sum_viol_noe3 + $violations) - evaluate ($sumsq_viol_noe3 = $sumsq_viol_noe3 + $violations**2) - evaluate ($violations3 = $violations) - - display $file $rms_noe $violations1 $violations2 $violations3 $noe - end if -end loop main - -evaluate ($mean_enoe = $sum_enoe / $nstruc) -evaluate ($stdev_enoe = - sqrt(($sumsq_enoe - $nstruc*$mean_enoe**2)/ $nstruc)) -evaluate ($mean_rms_noe = $sum_rms_noe / $nstruc) -evaluate ($stdev_rms_noe = - sqrt(($sumsq_rms_noe - $nstruc*$mean_rms_noe**2)/ $nstruc)) -evaluate ($mean_viol_noe1 = $sum_viol_noe1 / $nstruc) -evaluate ($stdev_viol_noe1 = - sqrt(($sumsq_viol_noe1 - $nstruc*$mean_viol_noe1**2)/ $nstruc)) -evaluate ($mean_viol_noe2 = $sum_viol_noe2 / $nstruc) -evaluate ($stdev_viol_noe2 = - sqrt(($sumsq_viol_noe2 - $nstruc*$mean_viol_noe2**2)/ $nstruc)) -evaluate ($mean_viol_noe3 = $sum_viol_noe3 / $nstruc) -evaluate ($stdev_viol_noe3 = - sqrt(($sumsq_viol_noe3 - $nstruc*$mean_viol_noe3**2)/ $nstruc)) -display mean values -display Enoe $mean_enoe (+/- $stdev_enoe ) -display noe rms $mean_rms_noe (+/- $stdev_rms_noe ) -display violations > 0.5A $mean_viol_noe1 (+/- $stdev_viol_noe1 ) -display violations > 0.3A $mean_viol_noe2 (+/- $stdev_viol_noe2 ) -display violations > 0.1A $mean_viol_noe3 (+/- $stdev_viol_noe3 ) - - - -display -display #only ambiguous -display #structure rms-noe #viol>0.5A #viol>0.3A #viol>0.1A #Enoe -noe - reset - nrestraints = 4000000 ! allocate space for NOEs - ceiling 100 - - set echo off message off end -!!! class dist @@NEWIT:unambig.tbl - class ambi @@NEWIT:ambig.tbl -!!! class hbon @@$hbond_fname - set echo on message on end - - averaging * sum - potential * soft - scale * 1.0 - sqconstant * 1.0 - sqexponent * 2 - soexponent * 1 - rswitch * 1.0 - sqoffset * 0.0 - asymptote * 2.0 - - msoexponent * 1 - masymptote * -2.0 - mrswitch * 1.0 - - avexpo hbond 20 -end - -evaluate ($sum_enoe = 0) -evaluate ($sumsq_enoe = 0) -evaluate ($sum_rms_noe = 0) -evaluate ($sumsq_rms_noe = 0) -evaluate ($sum_trms_noe = 0) -evaluate ($sumsq_trms_noe = 0) -evaluate ($sum_viol_noe1 = 0) -evaluate ($sumsq_viol_noe1 = 0) -evaluate ($sum_viol_noe2 = 0) -evaluate ($sumsq_viol_noe2 = 0) -evaluate ($sum_viol_noe3 = 0) -evaluate ($sumsq_viol_noe3 = 0) -evaluate ($violations = 0) - - -!set message off echo off end -evaluate ($count = 0) -evaluate ($nstruc = 0) -while ($count lt $Iterations.anastruc) loop main - evaluate ($count = $count + 1) - evaluate ($file = $filenames.bestfile_$count) - coor init end - if ($file ne "") then - coor @@$file - evaluate ($nstruc = $nstruc + 1) - - energy end - - evaluate ($sum_enoe = $sum_enoe + $noe) - evaluate ($sumsq_enoe = $sumsq_enoe + $noe**2) - - evaluate ($violations = 0) - evaluate ($result = 0) - noe print thresh=0.025 end - evaluate ($rms_noe = $result) - evaluate ($sum_rms_noe = $sum_rms_noe + $rms_noe) - evaluate ($sumsq_rms_noe = $sumsq_rms_noe + $rms_noe**2) - evaluate ($sum_trms_noe = $sum_trms_noe + $test_rms) - evaluate ($sumsq_trms_noe = $sumsq_trms_noe + $test_rms**2) - - evaluate ($violations = 0) - evaluate ($result = 0) - noe print thresh=0.5 end - evaluate ($sum_viol_noe1 = $sum_viol_noe1 + $violations) - evaluate ($sumsq_viol_noe1 = $sumsq_viol_noe1 + $violations**2) - evaluate ($violations1 = $violations) - - set print=NEWIT:analysis/print_noe_ambig.out end - evaluate ($violations = 0) - evaluate ($result = 0) - noe print thresh=0.3 end - - set print=NEWIT:analysis/print_noe.out end - evaluate ($sum_viol_noe2 = $sum_viol_noe2 + $violations) - evaluate ($sumsq_viol_noe2 = $sumsq_viol_noe2 + $violations**2) - evaluate ($violations2 = $violations) - evaluate ($violations = 0) - evaluate ($result = 0) - noe print thresh=0.1 end - evaluate ($sum_viol_noe3 = $sum_viol_noe3 + $violations) - evaluate ($sumsq_viol_noe3 = $sumsq_viol_noe3 + $violations**2) - evaluate ($violations3 = $violations) - - display $file $rms_noe $violations1 $violations2 $violations3 $noe - end if -end loop main - -evaluate ($mean_enoe = $sum_enoe / $nstruc) -evaluate ($stdev_enoe = - sqrt(($sumsq_enoe - $nstruc*$mean_enoe**2)/ $nstruc)) -evaluate ($mean_rms_noe = $sum_rms_noe / $nstruc) -evaluate ($stdev_rms_noe = - sqrt(($sumsq_rms_noe - $nstruc*$mean_rms_noe**2)/ $nstruc)) -evaluate ($mean_viol_noe1 = $sum_viol_noe1 / $nstruc) -evaluate ($stdev_viol_noe1 = - sqrt(($sumsq_viol_noe1 - $nstruc*$mean_viol_noe1**2)/ $nstruc)) -evaluate ($mean_viol_noe2 = $sum_viol_noe2 / $nstruc) -evaluate ($stdev_viol_noe2 = - sqrt(($sumsq_viol_noe2 - $nstruc*$mean_viol_noe2**2)/ $nstruc)) -evaluate ($mean_viol_noe3 = $sum_viol_noe3 / $nstruc) -evaluate ($stdev_viol_noe3 = - sqrt(($sumsq_viol_noe3 - $nstruc*$mean_viol_noe3**2)/ $nstruc)) -display mean values -display Enoe $mean_enoe (+/- $stdev_enoe ) -display noe rms $mean_rms_noe (+/- $stdev_rms_noe ) -display violations > 0.5A $mean_viol_noe1 (+/- $stdev_viol_noe1 ) -display violations > 0.3A $mean_viol_noe2 (+/- $stdev_viol_noe2 ) -display violations > 0.1A $mean_viol_noe3 (+/- $stdev_viol_noe3 ) - - - - -display -display #all noe distance restraints -display #structure rms-noe #viol>0.5A #viol>0.3A #viol>0.1A #Enoe -noe - reset - nrestraints = 4000000 ! allocate space for NOEs - ceiling 100 - - set echo off message off end - class dist @@NEWIT:unambig.tbl - class ambi @@NEWIT:ambig.tbl -!!! class hbon @@$hbond_fname - set echo on message on end - - averaging * sum - potential * soft - scale * 1.0 - sqconstant * 1.0 - sqexponent * 2 - soexponent * 1 - rswitch * 1.0 - sqoffset * 0.0 - asymptote * 2.0 - - msoexponent * 1 - masymptote * -2.0 - mrswitch * 1.0 - - avexpo hbond 20 -end - -evaluate ($sum_enoe = 0) -evaluate ($sumsq_enoe = 0) -evaluate ($sum_rms_noe = 0) -evaluate ($sumsq_rms_noe = 0) -evaluate ($sum_trms_noe = 0) -evaluate ($sumsq_trms_noe = 0) -evaluate ($sum_viol_noe1 = 0) -evaluate ($sumsq_viol_noe1 = 0) -evaluate ($sum_viol_noe2 = 0) -evaluate ($sumsq_viol_noe2 = 0) -evaluate ($sum_viol_noe3 = 0) -evaluate ($sumsq_viol_noe3 = 0) -evaluate ($violations = 0) - - -!set message off echo off end -evaluate ($count = 0) -evaluate ($nstruc = 0) -while ($count lt $Iterations.anastruc) loop main - evaluate ($count = $count + 1) - evaluate ($file = $filenames.bestfile_$count) - coor init end - if ($file ne "") then - coor @@$file - evaluate ($nstruc = $nstruc + 1) - - energy end - - evaluate ($sum_enoe = $sum_enoe + $noe) - evaluate ($sumsq_enoe = $sumsq_enoe + $noe**2) - - evaluate ($violations = 0) - evaluate ($result = 0) - noe print thresh=0.025 end - evaluate ($rms_noe = $result) - evaluate ($sum_rms_noe = $sum_rms_noe + $rms_noe) - evaluate ($sumsq_rms_noe = $sumsq_rms_noe + $rms_noe**2) - evaluate ($sum_trms_noe = $sum_trms_noe + $test_rms) - evaluate ($sumsq_trms_noe = $sumsq_trms_noe + $test_rms**2) - - evaluate ($violations = 0) - evaluate ($result = 0) - noe print thresh=0.5 end - evaluate ($sum_viol_noe1 = $sum_viol_noe1 + $violations) - evaluate ($sumsq_viol_noe1 = $sumsq_viol_noe1 + $violations**2) - evaluate ($violations1 = $violations) - - set print=NEWIT:analysis/print_dist_noes.out end - evaluate ($violations = 0) - evaluate ($result = 0) - noe print thresh=0.3 end - - set print=NEWIT:analysis/print_noe_all.out end - evaluate ($sum_viol_noe2 = $sum_viol_noe2 + $violations) - evaluate ($sumsq_viol_noe2 = $sumsq_viol_noe2 + $violations**2) - evaluate ($violations2 = $violations) - evaluate ($violations = 0) - evaluate ($result = 0) - noe print thresh=0.1 end - evaluate ($sum_viol_noe3 = $sum_viol_noe3 + $violations) - evaluate ($sumsq_viol_noe3 = $sumsq_viol_noe3 + $violations**2) - evaluate ($violations3 = $violations) - - display $file $rms_noe $violations1 $violations2 $violations3 $noe - end if -end loop main - -evaluate ($mean_enoe = $sum_enoe / $nstruc) -evaluate ($stdev_enoe = - sqrt(($sumsq_enoe - $nstruc*$mean_enoe**2)/ $nstruc)) -evaluate ($mean_rms_noe = $sum_rms_noe / $nstruc) -evaluate ($stdev_rms_noe = - sqrt(($sumsq_rms_noe - $nstruc*$mean_rms_noe**2)/ $nstruc)) -evaluate ($mean_viol_noe1 = $sum_viol_noe1 / $nstruc) -evaluate ($stdev_viol_noe1 = - sqrt(($sumsq_viol_noe1 - $nstruc*$mean_viol_noe1**2)/ $nstruc)) -evaluate ($mean_viol_noe2 = $sum_viol_noe2 / $nstruc) -evaluate ($stdev_viol_noe2 = - sqrt(($sumsq_viol_noe2 - $nstruc*$mean_viol_noe2**2)/ $nstruc)) -evaluate ($mean_viol_noe3 = $sum_viol_noe3 / $nstruc) -evaluate ($stdev_viol_noe3 = - sqrt(($sumsq_viol_noe3 - $nstruc*$mean_viol_noe3**2)/ $nstruc)) -display mean values -display Enoe $mean_enoe (+/- $stdev_enoe ) -display noe rms $mean_rms_noe (+/- $stdev_rms_noe ) -display violations > 0.5A $mean_viol_noe1 (+/- $stdev_viol_noe1 ) -display violations > 0.3A $mean_viol_noe2 (+/- $stdev_viol_noe2 ) -display violations > 0.1A $mean_viol_noe3 (+/- $stdev_viol_noe3 ) - - - -display -display #only hydrogen bond -display #structure rms-noe #viol>0.5A #viol>0.3A #viol>0.1A #Enoe -noe - reset - nrestraints = 4000000 ! allocate space for NOEs - ceiling 100 - - set echo off message off end -!!! class dist @@NEWIT:unambig.tbl -!!! class ambi @@NEWIT:ambig.tbl - class hbon @@$hbond_fname - set echo on message on end - - averaging * sum - potential * soft - scale * 1.0 - sqconstant * 1.0 - sqexponent * 2 - soexponent * 1 - rswitch * 1.0 - sqoffset * 0.0 - asymptote * 2.0 - - msoexponent * 1 - masymptote * -2.0 - mrswitch * 1.0 - - avexpo hbond 20 -end - -evaluate ($sum_enoe = 0) -evaluate ($sumsq_enoe = 0) -evaluate ($sum_rms_noe = 0) -evaluate ($sumsq_rms_noe = 0) -evaluate ($sum_trms_noe = 0) -evaluate ($sumsq_trms_noe = 0) -evaluate ($sum_viol_noe1 = 0) -evaluate ($sumsq_viol_noe1 = 0) -evaluate ($sum_viol_noe2 = 0) -evaluate ($sumsq_viol_noe2 = 0) -evaluate ($sum_viol_noe3 = 0) -evaluate ($sumsq_viol_noe3 = 0) -evaluate ($violations = 0) - -!set message off echo off end -evaluate ($count = 0) -evaluate ($nstruc = 0) -while ($count lt $Iterations.anastruc) loop main - evaluate ($count = $count + 1) - evaluate ($file = $filenames.bestfile_$count) - coor init end - if ($file ne "") then - coor @@$file - evaluate ($nstruc = $nstruc + 1) - - energy end - - evaluate ($sum_enoe = $sum_enoe + $noe) - evaluate ($sumsq_enoe = $sumsq_enoe + $noe**2) - - evaluate ($violations = 0) - evaluate ($result = 0) - noe print thresh=0.025 end - evaluate ($rms_noe = $result) - evaluate ($sum_rms_noe = $sum_rms_noe + $rms_noe) - evaluate ($sumsq_rms_noe = $sumsq_rms_noe + $rms_noe**2) - evaluate ($sum_trms_noe = $sum_trms_noe + $test_rms) - evaluate ($sumsq_trms_noe = $sumsq_trms_noe + $test_rms**2) - - evaluate ($violations = 0) - evaluate ($result = 0) - noe print thresh=0.5 end - evaluate ($sum_viol_noe1 = $sum_viol_noe1 + $violations) - evaluate ($sumsq_viol_noe1 = $sumsq_viol_noe1 + $violations**2) - evaluate ($violations1 = $violations) - - set print=NEWIT:analysis/print_dist_hbonds.out end - evaluate ($violations = 0) - evaluate ($result = 0) - noe print thresh=0.3 end - - set print=NEWIT:analysis/print_noe.out end - evaluate ($sum_viol_noe2 = $sum_viol_noe2 + $violations) - evaluate ($sumsq_viol_noe2 = $sumsq_viol_noe2 + $violations**2) - evaluate ($violations2 = $violations) - evaluate ($violations = 0) - evaluate ($result = 0) - noe print thresh=0.1 end - evaluate ($sum_viol_noe3 = $sum_viol_noe3 + $violations) - evaluate ($sumsq_viol_noe3 = $sumsq_viol_noe3 + $violations**2) - evaluate ($violations3 = $violations) - - display $file $rms_noe $violations1 $violations2 $violations3 $noe - end if -end loop main - -evaluate ($mean_enoe = $sum_enoe / $nstruc) -evaluate ($stdev_enoe = - sqrt(($sumsq_enoe - $nstruc*$mean_enoe**2)/ $nstruc)) -evaluate ($mean_rms_noe = $sum_rms_noe / $nstruc) -evaluate ($stdev_rms_noe = - sqrt(($sumsq_rms_noe - $nstruc*$mean_rms_noe**2)/ $nstruc)) -evaluate ($mean_viol_noe1 = $sum_viol_noe1 / $nstruc) -evaluate ($stdev_viol_noe1 = - sqrt(($sumsq_viol_noe1 - $nstruc*$mean_viol_noe1**2)/ $nstruc)) -evaluate ($mean_viol_noe2 = $sum_viol_noe2 / $nstruc) -evaluate ($stdev_viol_noe2 = - sqrt(($sumsq_viol_noe2 - $nstruc*$mean_viol_noe2**2)/ $nstruc)) -evaluate ($mean_viol_noe3 = $sum_viol_noe3 / $nstruc) -evaluate ($stdev_viol_noe3 = - sqrt(($sumsq_viol_noe3 - $nstruc*$mean_viol_noe3**2)/ $nstruc)) -display mean values -display Enoe $mean_enoe (+/- $stdev_enoe ) -display noe rms $mean_rms_noe (+/- $stdev_rms_noe ) -display violations > 0.5A $mean_viol_noe1 (+/- $stdev_viol_noe1 ) -display violations > 0.3A $mean_viol_noe2 (+/- $stdev_viol_noe2 ) -display violations > 0.1A $mean_viol_noe3 (+/- $stdev_viol_noe3 ) - -evaluate ($outdis = "NEWIT:analysis/NOE_DONE") -set display=$outdis end -display DONE - -stop - diff --git a/src/haddock/modules/flexref/cns/print_rg.inp b/src/haddock/modules/flexref/cns/print_rg.inp deleted file mode 100644 index e598ac213..000000000 --- a/src/haddock/modules/flexref/cns/print_rg.inp +++ /dev/null @@ -1,85 +0,0 @@ -! print_rg.inp -! Analyze and print radius of gyration restraint statistics -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! - -@RUN:initialize.cns(iteration=$iteration;) - -@NEWIT:iteration.cns(iteration=$iteration;) - -@RUN:run.cns( -iteration =$iteration; -filenames =$filenames; -data =$data; -iterations=$iterations; -saprotocol=$saprotocol; -refine =$refine; -toppar =$toppar; -analysis =$analysis; -) - -!reads in structure, coordinates and parameter files -@RUN:read_struc.cns -@RUN:read_struc-cg.cns - -@PREVIT:file.cns(filenames=$filenames) -evaluate ($file = $filenames.bestfile_1) -coor @@$file - -delete sele=(resn TIP* or resn WAT or resn HOH or resn DMS* or resn ANI or resn DAN or resn XAN or resn SHA) end -delete sele=(not(known)) end - -set display=NEWIT:analysis/rg.disp end -display # Rg analysis -display # filename Rg - -evaluate ($sum_rg = 0) -evaluate ($sumsq_rg = 0) - -@PREVIT:file.cns(filenames=$filenames) - -evaluate ($count = 0) -evaluate ($TotalNstruct = 0) -while ($count lt $Iterations.Structures) loop main - evaluate ($count=$count+1) - evaluate ($file = $filenames.bestfile_$count) - if ($file ne "") then - evaluate ($TotalNstruct = $TotalNstruct + 1) - end if -end loop main - -if ($Iterations.anastruc > $TotalNstruct) then - evaluate ($Iterations.anastruc = $ToTalNstruct) -end if - -evaluate ($count = 1) -evaluate ($nstruc1 = 0) -while ($count le $Iterations.anastruc) loop main - evaluate ($file = $filenames.bestfile_$count) - coor init end - if ($file ne "") then - coor @@$file - evaluate ($nstruc1 = $nstruc1 + 1) - coor rgyration sele=(all) end - evaluate ($sum_rg = $sum_rg + $rg) - evaluate ($sumsq_rg = $sumsq_rg + $rg**2) - display # $file $rg - end if - if ($count ge $Iterations.anastruc) then exit loop main end if - evaluate ($count = $count + 1) -end loop main - -evaluate ($mean_rg = $sum_rg / $nstruc1) -evaluate ($stdev_rg = sqrt(($sumsq_rg - $nstruc1*$mean_rg**2)/ $nstruc1)) - -display # mean values all -display # Rg $mean_rg (+/- $stdev_rg ) - -stop diff --git a/src/haddock/modules/flexref/cns/print_sani.inp b/src/haddock/modules/flexref/cns/print_sani.inp deleted file mode 100644 index c0416ad6f..000000000 --- a/src/haddock/modules/flexref/cns/print_sani.inp +++ /dev/null @@ -1,130 +0,0 @@ -! print_sani.inp -! Analyze and print RDC restraints (SANI) statistics -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! - -@RUN:initialize.cns(iteration=$iteration;) - -@NEWIT:iteration.cns(iteration=$iteration;) - -@RUN:run.cns( -iteration =$iteration; -filenames =$filenames; -data =$data; -iterations=$iterations; -saprotocol=$saprotocol; -refine =$refine; -toppar =$toppar; -analysis =$analysis; -) - -!reads in structure, coordinates and parameter files -@RUN:read_struc.cns -@RUN:read_struc-cg.cns - -@PREVIT:file.cns(filenames=$filenames) -evaluate ($file = $filenames.bestfile_1) -coor @@$file - -delete sele=(not(known)) end - -set display=NEWIT:analysis/sani.disp end - -flags exclude * include sani end - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!sani restraints: - -evaluate ($nrdc=1) -sani reset nres=5000 end -while ($nrdc <= $data.numrdc) loop sani - evaluate ($sum_rms_rdc$nrdc = 0) - evaluate ($sumsq_rms_rdc$nrdc = 0) - evaluate ($cln = "rd" + encode($nrdc) ) - evaluate ($restfile="RUN:data/rdcs/rdc"+encode($nrdc)+".tbl") - if ($data.rdc_choice_$nrdc eq "SANI") then - evaluate ($data.flags.sani = true) - sani - class $cln - force 1.0 - coeff 0.0 $Data.rdc_d_$nrdc $Data.rdc_r_$nrdc - potential square - @@$restfile - end - end if - evaluate ($nrdc = $nrdc + 1) -end loop sani - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -@PREVIT:file.cns(filenames=$filenames) - -evaluate ($count = 0) -evaluate ($TotalNstruct = 0) -while ($count lt $Iterations.Structures) loop main - evaluate ($count=$count+1) - evaluate ($file = $filenames.bestfile_$count) - if ($file ne "") then - evaluate ($TotalNstruct = $TotalNstruct + 1) - end if -end loop main - -if ($Iterations.anastruc > $TotalNstruct) then - evaluate ($Iterations.anastruc = $ToTalNstruct) -end if - -display #filename rms_sani #viol>1Hz #viol>0.5Hz #viol>0.2Hz - -evaluate ($count = 0) -evaluate ($nstruc1 = 0) -while ($count le $Iterations.anastruc) loop main - evaluate ($count = $count + 1) - evaluate ($file = $filenames.bestfile_$count) - coor init end - if ($file ne "") then - coor @@$file - evaluate ($nstruc1 = $nstruc1 + 1) - - evaluate ($nrdc=1) - while ($nrdc <= $data.numrdc) loop sani - evaluate ($violations = 0) - evaluate ($result = 0) - evaluate ($cln = "rd" + encode($nrdc) ) - if ($Data.rdc_choice_$nrdc eq "SANI") then - sani print thresh=1.0 class $cln end - evaluate ($violations1 = $violations) - sani print thresh=0.5 class $cln end - evaluate ($violations2 = $violations) - sani print thresh=0.2 class $cln end - evaluate ($violations3 = $violations) - evaluate ($rms_rdc$nrdc = $result) - evaluate ($sum_rms_rdc$nrdc = $sum_rms_rdc$nrdc + $rms_rdc$nrdc) - evaluate ($sumsq_rms_rdc$nrdc = $sumsq_rms_rdc$nrdc + $rms_rdc$nrdc**2) - display # rdc$nrdc $file $rms_rdc$nrdc $violations1 $violations2 $violations3 - end if - evaluate ($nrdc = $nrdc + 1) - end loop sani - - end if -end loop main - -evaluate ($nrdc=1) -while ($nrdc <= $data.numrdc) loop sani - if ($Data.rdc_choice_$nrdc eq "SANI") then - evaluate ($mean_rms_rdc$nrdc = $sum_rms_rdc$nrdc / $nstruc1) - evaluate ($stdev_rms_rdc$nrdc = sqrt(($sumsq_rms_rdc$nrdc - $nstruc1*$mean_rms_rdc$nrdc**2)/ $nstruc1)) - display # mean values RDC(sani) class rdc$nrdc - display # sani $mean_rms_rdc$nrdc (+/- $stdev_rms_rdc$nrdc ) - end if -evaluate ($nrdc = $nrdc + 1) -end loop sani - -stop diff --git a/src/haddock/modules/flexref/cns/print_vean.inp b/src/haddock/modules/flexref/cns/print_vean.inp deleted file mode 100644 index 3554bb6a5..000000000 --- a/src/haddock/modules/flexref/cns/print_vean.inp +++ /dev/null @@ -1,133 +0,0 @@ -! print_vean.inp -! Analyze and print RDC restraints (VEAN) statistics -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! - -@RUN:initialize.cns(iteration=$iteration;) - -@NEWIT:iteration.cns(iteration=$iteration;) - -@RUN:run.cns( -iteration =$iteration; -filenames =$filenames; -data =$data; -iterations=$iterations; -saprotocol=$saprotocol; -refine =$refine; -toppar =$toppar; -analysis =$analysis; -) - -!reads in structure, coordinates and parameter files -@RUN:read_struc.cns -@RUN:read_struc-cg.cns - -@PREVIT:file.cns(filenames=$filenames) -evaluate ($file = $filenames.bestfile_1) -coor @@$file - -delete sele=(not(known)) end - -!set the energy flags: - -flags exclude * include vean end - - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!residual dipolar couplings - vean restraints: -vean nrestraints=10000 end -set echo off message on end - -evaluate ($nrdc=1) -while ($nrdc <= $data.numrdc) loop rdc - evaluate ($sum_rms_rdc$nrdc = 0) - evaluate ($sumsq_rms_rdc$nrdc = 0) - evaluate ($sum_viol_rdc$nrdc = 0) - evaluate ($sumsq_viol_rdc$nrdc = 0) - evaluate ($cln = "rd" + encode($nrdc) ) - evaluate ($restfile="RUN:data/rdcs/rdc"+encode($nrdc)+".tbl") - if ($Data.rdc_choice_$nrdc eq "VANGLE") then - vean - class $cln - force 1.0 1.0 - @@$restfile - end - end if - evaluate ($nrdc = $nrdc + 1) -end loop rdc -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -set display=NEWIT:analysis/vean.disp end - -@PREVIT:file.cns(filenames=$filenames) - -evaluate ($count = 0) -evaluate ($TotalNstruct = 0) -while ($count lt $Iterations.Structures) loop main - evaluate ($count=$count+1) - evaluate ($file = $filenames.bestfile_$count) - if ($file ne "") then - evaluate ($TotalNstruct = $TotalNstruct + 1) - end if -end loop main - -if ($Iterations.anastruc > $TotalNstruct) then - evaluate ($Iterations.anastruc = $ToTalNstruct) -end if - -display #rdcset filename RMSvean #viol>5 -evaluate ($count = 0) -evaluate ($nstruc1 = 0) -while ($count le $Iterations.anastruc) loop main - evaluate ($count = $count + 1) - evaluate ($file = $filenames.bestfile_$count) - coor init end - if ($file ne "") then - coor @@$file - evaluate ($nstruc1 = $nstruc1 + 1) - - evaluate ($nrdc=1) - while ($nrdc <= $data.numrdc) loop rdc - evaluate ($violations = 0) - evaluate ($result = 0) - evaluate ($cln = "rd" + encode($nrdc) ) - if ($Data.rdc_choice_$nrdc eq "VANGLE") then - vean print threshold=5.0 class $cln end - evaluate ($rms_rdc$nrdc = $result) - evaluate ($sum_rms_rdc$nrdc = $sum_rms_rdc$nrdc + $rms_rdc$nrdc) - evaluate ($sumsq_rms_rdc$nrdc = $sumsq_rms_rdc$nrdc + $rms_rdc$nrdc**2) - evaluate ($sum_viol_rdc$nrdc = $sum_viol_rdc$nrdc + $violations) - evaluate ($sumsq_viol_rdc$nrdc = $sumsq_viol_rdc$nrdc + $violations**2) - display # rdc$nrdc $file $rms_rdc$nrdc $violations - end if - evaluate ($nrdc = $nrdc + 1) - end loop rdc - - end if -end loop main - - -evaluate ($nrdc=1) -while ($nrdc <= $data.numrdc) loop rdc - if ($Data.rdc_choice_$nrdc eq "VANGLE") then - evaluate ($mean_rms_rdc$nrdc = $sum_rms_rdc$nrdc / $nstruc1) - evaluate ($stdev_rms_rdc$nrdc = sqrt(($sumsq_rms_rdc$nrdc - $nstruc1*$mean_rms_rdc$nrdc**2)/ $nstruc1)) - evaluate ($mean_viol_rdc$nrdc = $sum_viol_rdc$nrdc / $nstruc1) - evaluate ($stdev_viol_rdc$nrdc = sqrt(($sumsq_viol_rdc$nrdc - $nstruc1*$mean_viol_rdc$nrdc**2)/ $nstruc1)) - display # mean values RDC(VANGLE) class vea$nrdc - display # VANGLE-RMS $mean_rms_rdc$nrdc (+/- $stdev_rms_rdc$nrdc ) - display # VANGLE-VIOLATIONS $mean_viol_rdc$nrdc (+/- $stdev_viol_rdc$nrdc ) - end if - evaluate ($nrdc = $nrdc + 1) -end loop rdc - -stop - diff --git a/src/haddock/modules/flexref/cns/print_xpcs.inp b/src/haddock/modules/flexref/cns/print_xpcs.inp deleted file mode 100644 index 824cbfbb0..000000000 --- a/src/haddock/modules/flexref/cns/print_xpcs.inp +++ /dev/null @@ -1,128 +0,0 @@ -! print_xpcs.inp -! Analyze and print Pseudo Contact Shift restraints statistics -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! - -@RUN:initialize.cns(iteration=$iteration;) - -@NEWIT:iteration.cns(iteration=$iteration;) - -@RUN:run.cns( -iteration =$iteration; -filenames =$filenames; -data =$data; -iterations=$iterations; -saprotocol=$saprotocol; -refine =$refine; -toppar =$toppar; -analysis =$analysis; -) - -!reads in structure, coordinates and parameter files -@RUN:read_struc.cns -@RUN:read_struc-cg.cns - -@PREVIT:file.cns(filenames=$filenames) -evaluate ($file = $filenames.bestfile_1) -coor @@$file - -delete sele=(not(known)) end - -flags exclude * include xpcs end - -xpcs reset nres=5000 end - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!pseudo contact shifts: -evaluate ($npcs=1) -while ($npcs <= $data.numpcs) loop pcs - evaluate ($sum_rms_pcs$npcs = 0) - evaluate ($sumsq_rms_pcs$npcs = 0) - evaluate ($cln = "pc" + encode($npcs) ) - evaluate ($restfile="RUN:data/pcs/pcs"+encode($npcs)+".tbl") - if ($data.pcs_choice_$npcs eq "XPCS") then - evaluate ($data.flags.xpcs = true) - xpcs - class $cln - force 1.0 - coeff $Data.pcs_d_$npcs $Data.pcs_r_$npcs - @@$restfile - end - end if - evaluate ($npcs = $npcs + 1) -end loop pcs -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -set display=NEWIT:analysis/xpcs.disp end - -@PREVIT:file.cns(filenames=$filenames) - -evaluate ($count = 0) -evaluate ($TotalNstruct = 0) -while ($count lt $Iterations.Structures) loop main - evaluate ($count=$count+1) - evaluate ($file = $filenames.bestfile_$count) - if ($file ne "") then - evaluate ($TotalNstruct = $TotalNstruct + 1) - end if -end loop main - -if ($Iterations.anastruc > $TotalNstruct) then - evaluate ($Iterations.anastruc = $ToTalNstruct) -end if - -display #filename rms_xpcs #viol>1ppm #viol>0.5ppm #viol>0.2ppm - -evaluate ($count = 0) -evaluate ($nstruc1 = 0) -while ($count le $Iterations.anastruc) loop main - evaluate ($count = $count + 1) - evaluate ($file = $filenames.bestfile_$count) - coor init end - if ($file ne "") then - coor @@$file - evaluate ($nstruc1 = $nstruc1 + 1) - - evaluate ($npcs=1) - while ($npcs <= $data.numpcs) loop pcs - evaluate ($violations = 0) - evaluate ($result = 0) - evaluate ($cln = "pc" + encode($npcs) ) - if ($Data.pcs_choice_$npcs eq "XPCS") then - xpcs print thresh=1.0 class $cln end - evaluate ($violations1 = $violations) - xpcs print thresh=0.5 class $cln end - evaluate ($violations2 = $violations) - xpcs print thresh=0.2 class $cln end - evaluate ($violations3 = $violations) - evaluate ($rms_pcs$npcs = $result) - evaluate ($sum_rms_pcs$npcs = $sum_rms_pcs$npcs + $rms_pcs$npcs) - evaluate ($sumsq_rms_pcs$npcs = $sumsq_rms_pcs$npcs + $rms_pcs$npcs**2) - display # pcs$npcs $file $rms_pcs$npcs $violations1 $violations2 $violations3 - end if - evaluate ($npcs = $npcs + 1) - end loop pcs - - end if -end loop main - - -evaluate ($npcs=1) -while ($npcs <= $data.numpcs) loop pcs - if ($Data.pcs_choice_$npcs eq "XPCS") then - evaluate ($mean_rms_pcs$npcs = $sum_rms_pcs$npcs / $nstruc1) - evaluate ($stdev_rms_pcs$npcs = sqrt(($sumsq_rms_pcs$npcs - $nstruc1*$mean_rms_pcs$npcs**2)/ $nstruc1)) - display # mean values pcs(xpcs) class pcs$npcs - display # xpcs $mean_rms_pcs$npcs (+/- $stdev_rms_pcs$npcs ) - end if - evaluate ($npcs = $npcs + 1) -end loop pcs - -stop diff --git a/src/haddock/modules/flexref/cns/print_xrdc.inp b/src/haddock/modules/flexref/cns/print_xrdc.inp deleted file mode 100644 index 761b122a1..000000000 --- a/src/haddock/modules/flexref/cns/print_xrdc.inp +++ /dev/null @@ -1,127 +0,0 @@ -! print_xrdc.inp -! Analyze and print RDC restraints (para code) statistics -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! - -@RUN:initialize.cns(iteration=$iteration;) - -@NEWIT:iteration.cns(iteration=$iteration;) - -@RUN:run.cns( -iteration =$iteration; -filenames =$filenames; -data =$data; -iterations=$iterations; -saprotocol=$saprotocol; -refine =$refine; -toppar =$toppar; -analysis =$analysis; -) - -!reads in structure, coordinates and parameter files -@RUN:read_struc.cns -@RUN:read_struc-cg.cns - -@PREVIT:file.cns(filenames=$filenames) -evaluate ($file = $filenames.bestfile_1) -coor @@$file - -delete sele=(not(known)) end - -flags exclude * include xrdc end - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!XRDC restraints: -xrdc reset nres=5000 end -evaluate ($nrdc=1) -while ($nrdc <= $data.numrdc) loop rdc - evaluate ($sum_rms_rdc$nrdc = 0) - evaluate ($sumsq_rms_rdc$nrdc = 0) - evaluate ($cln = "rd" + encode($nrdc) ) - evaluate ($restfile="RUN:data/rdcs/rdc"+encode($nrdc)+".tbl") - if ($data.rdc_choice_$nrdc eq "XRDC") then - evaluate ($data.flags.xrdc = true) - evaluate ($inixrdc=1) - xrdc - class $cln - force 1.0 - coeff $Data.rdc_d_$nrdc $Data.rdc_r_$nrdc - @@$restfile - end - end if - evaluate ($nrdc = $nrdc + 1) -end loop rdc -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -set display=NEWIT:analysis/xrdc.disp end - -@PREVIT:file.cns(filenames=$filenames) - -evaluate ($count = 0) -evaluate ($TotalNstruct = 0) -while ($count lt $Iterations.Structures) loop main - evaluate ($count=$count+1) - evaluate ($file = $filenames.bestfile_$count) - if ($file ne "") then - evaluate ($TotalNstruct = $TotalNstruct + 1) - end if -end loop main - -if ($Iterations.anastruc > $TotalNstruct) then - evaluate ($Iterations.anastruc = $ToTalNstruct) -end if - -display #filename rms_xrdc #viol>1Hz #viol>0.5Hz #viol>0.2Hz - -evaluate ($count = 0) -evaluate ($nstruc1 = 0) -while ($count le $Iterations.anastruc) loop main - evaluate ($count = $count + 1) - evaluate ($file = $filenames.bestfile_$count) - coor init end - if ($file ne "") then - coor @@$file - evaluate ($nstruc1 = $nstruc1 + 1) - - evaluate ($nrdc=1) - while ($nrdc <= $data.numrdc) loop rdc - evaluate ($violations = 0) - evaluate ($result = 0) - evaluate ($cln = "rd" + encode($nrdc) ) - if ($Data.rdc_choice_$nrdc eq "XRDC") then - xrdc print thresh=1.0 class $cln end - evaluate ($violations1 = $violations) - xrdc print thresh=0.5 class $cln end - evaluate ($violations2 = $violations) - xrdc print thresh=0.2 class $cln end - evaluate ($violations3 = $violations) - evaluate ($rms_rdc$nrdc = $result) - evaluate ($sum_rms_rdc$nrdc = $sum_rms_rdc$nrdc + $rms_rdc$nrdc) - evaluate ($sumsq_rms_rdc$nrdc = $sumsq_rms_rdc$nrdc + $rms_rdc$nrdc**2) - display # rdc$nrdc $file $rms_rdc$nrdc $violations1 $violations2 $violations3 - end if - evaluate ($nrdc = $nrdc + 1) - end loop rdc - - end if -end loop main - -evaluate ($nrdc=1) -while ($nrdc <= $data.numrdc) loop rdc - if ($Data.rdc_choice_$nrdc eq "XRDC") then - evaluate ($mean_rms_rdc$nrdc = $sum_rms_rdc$nrdc / $nstruc1) - evaluate ($stdev_rms_rdc$nrdc = sqrt(($sumsq_rms_rdc$nrdc - $nstruc1*$mean_rms_rdc$nrdc**2)/ $nstruc1)) - display # mean values RDC(xrdc) class rdc$nrdc - display # xrdc $mean_rms_rdc$nrdc (+/- $stdev_rms_rdc$nrdc ) - end if - evaluate ($nrdc = $nrdc + 1) -end loop rdc - -stop diff --git a/src/haddock/modules/flexref/cns/prot_break-CA.cns b/src/haddock/modules/flexref/cns/prot_break-CA.cns deleted file mode 100644 index 11fbb1528..000000000 --- a/src/haddock/modules/flexref/cns/prot_break-CA.cns +++ /dev/null @@ -1,87 +0,0 @@ -! prot_break-CA.cns -! Detect chain breaks in CA coordinates only models -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! - evaluate ($pbreak=0) - - for $id1 in id ( name C and bondedto(name CA) and bondedto(name O) ) loop pbreak - - show (segid) (id $id1) - evaluate ($segid1=$result) - show (resid) (id $id1) - evaluate ($resid1=$result) - show (resn) (id $id1) - evaluate ($resn1=$result) - - show sum(1) (id $id1) - if ( $result = 0 ) then - display unknown coordinates for segid $segid1 resn $resn1 resid $resid1 name C - display this coordinate must be known for automatic protein chain break detection - abort - end if - - identity (store1) ( name N and bondedto( segid $segid1 and resid $resid1 and name c ) ) - - if ( $select = 1 ) then - show element (store1) (attribute store1 > 0) - evaluate ($id2=$result) - show (segid) (id $id2) - evaluate ($segid2=$result) - show (resid) (id $id2) - evaluate ($resid2=$result) - show (resn) (id $id2) - evaluate ($resn2=$result) - - show sum(1) (id $id2) - if ( $result = 0 ) then - display unknown coordinates for segid $segid2 resn $resn2 resid $resid2 name N - display this coordinate must be known for automatic protein chain break detection - abort - end if - - pick bond - (name ca and segid $segid1 and resid $resid1) - (name ca and segid $segid2 and resid $resid2) - geometry - - if ( $result > &pbreak_cutoff ) then - evaluate ($pbreak=$pbreak+1) - evaluate ($seg1.$pbreak=$segid1) - evaluate ($res1.$pbreak=$resid1) - evaluate ($seg2.$pbreak=$segid2) - evaluate ($res2.$pbreak=$resid2) - if ( $resn2 = PRO ) then - evaluate ($patch.$pbreak=DPPP) - elseif ( $resn2 = CPR ) then - evaluate ($patch.$pbreak=DPPP) - else - evaluate ($patch.$pbreak=DPEP) - end if - end if - end if - - end loop pbreak - - evaluate ($counter=1) - - while ($counter <= $pbreak) loop delete - patch $patch.$counter - reference=-=(segid $seg1.$counter and resid $res1.$counter) - reference=+=(segid $seg2.$counter and resid $res2.$counter) - end - buffer message - display peptide link removed (applied $patch.$counter): from \ -$seg1.$counter[a4] $res1.$counter[a4] to $seg2.$counter[a4] $res2.$counter[a4] - end - evaluate ($counter=$counter+1) - end loop delete - - - diff --git a/src/haddock/modules/flexref/cns/prot_break.cns b/src/haddock/modules/flexref/cns/prot_break.cns deleted file mode 100644 index 45fe76931..000000000 --- a/src/haddock/modules/flexref/cns/prot_break.cns +++ /dev/null @@ -1,144 +0,0 @@ -! prot_break.cns -! Detect protein chain breaks -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! - evaluate ($pbreak=0) - - for $id1 in id ( name C and bondedto(name CA) and bondedto(name O) ) loop pbreak - - show (segid) (id $id1) - evaluate ($segid1=$result) - show (resid) (id $id1) - evaluate ($resid1=$result) - show (resn) (id $id1) - evaluate ($resn1=$result) - - show sum(1) (id $id1) - if ( $result = 0 ) then - display unknown coordinates for segid $segid1 resn $resn1 resid $resid1 name C - display this coordinate must be known for automatic protein chain break detection - abort - end if - - identity (store1) ( name N and bondedto( segid $segid1 and resid $resid1 and name c ) ) - - if ( $select = 1 ) then - show element (store1) (attribute store1 > 0) - evaluate ($id2=$result) - show (segid) (id $id2) - evaluate ($segid2=$result) - show (resid) (id $id2) - evaluate ($resid2=$result) - show (resn) (id $id2) - evaluate ($resn2=$result) - - show sum(1) (id $id2) - if ( $result = 0 ) then - display unknown coordinates for segid $segid2 resn $resn2 resid $resid2 name N - display this coordinate must be known for automatic protein chain break detection - abort - end if - - pick bond - (name c and segid $segid1 and resid $resid1) - (name n and segid $segid2 and resid $resid2) - geometry - - if ( $result > &pbreak_cutoff ) then - evaluate ($pbreak=$pbreak+1) - evaluate ($seg1.$pbreak=$segid1) - evaluate ($res1.$pbreak=$resid1) - evaluate ($seg2.$pbreak=$segid2) - evaluate ($res2.$pbreak=$resid2) - if ( $resn2 = PRO ) then - evaluate ($patch.$pbreak=DPPP) - elseif ( $resn2 = CPR ) then - evaluate ($patch.$pbreak=DPPP) - else - evaluate ($patch.$pbreak=DPEP) - end if - end if - end if - - end loop pbreak - - for $id1 in id ( name BB ) loop cgpbreak - - show (segid) (id $id1) - evaluate ($segid1=$result) - show (resid) (id $id1) - evaluate ($resid1=$result) - show (resn) (id $id1) - evaluate ($resn1=$result) - - show sum(1) (id $id1) - if ( $result = 0 ) then - display unknown coordinates for segid $segid1 resn $resn1 resid $resid1 name BB - display this coordinate must be known for automatic protein chain break detection - abort - end if - - for $id2 in id ( name BB and bondedto( segid $segid1 and resid $resid1 and name BB ) ) loop cg2pbreak - - show (segid) (id $id2) - evaluate ($segid2=$result) - show (resid) (id $id2) - evaluate ($resid2=$result) - show (resn) (id $id2) - evaluate ($resn2=$result) - - show sum(1) (id $id2) - if ( $result = 0 ) then - display unknown coordinates for segid $segid2 resn $resn2 resid $resid2 name BB - display this coordinate must be known for automatic protein chain break detection - abort - end if - - pick bond - (name BB and segid $segid1 and resid $resid1) - (name BB and segid $segid2 and resid $resid2) - geometry - - if ( $result > &pcgbreak_cutoff ) then - evaluate ($pbreak=$pbreak+1) - evaluate ($seg1.$pbreak=$segid1) - evaluate ($res1.$pbreak=$resid1) - evaluate ($seg2.$pbreak=$segid2) - evaluate ($res2.$pbreak=$resid2) - evaluate ($patch.$pbreak=DCGP) - end if - - end loop cg2pbreak - - end loop cgpbreak - - evaluate ($counter=1) - - while ($counter <= $pbreak) loop delete - if ($patch.$counter ne "DCGP") then - patch $patch.$counter - reference=-=(segid $seg1.$counter and resid $res1.$counter) - reference=+=(segid $seg2.$counter and resid $res2.$counter) - end - else - patch $patch.$counter - reference=-=(segid $seg1.$counter and resid $res1.$counter and name BB) - reference=+=(segid $seg2.$counter and resid $res2.$counter and name BB) - end - end if - buffer message - display peptide link removed (applied $patch.$counter): from \ -$seg1.$counter[a4] $res1.$counter[a4] to $seg2.$counter[a4] $res2.$counter[a4] - end - evaluate ($counter=$counter+1) - end loop delete - - - diff --git a/src/haddock/modules/flexref/cns/protein-ss-restraints-all.def b/src/haddock/modules/flexref/cns/protein-ss-restraints-all.def deleted file mode 100644 index ea54d54d7..000000000 --- a/src/haddock/modules/flexref/cns/protein-ss-restraints-all.def +++ /dev/null @@ -1,108 +0,0 @@ -! protein-ss-restraints-all.def -! Define automatically secondary stucture dihedral angle restraints for all residues -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! -{+ file: protein-ss-restraints.def directory: protocols +} -{+ description: Creates dihedral angle restraints to maintain conformation of the protein backbone -

    -Additions and changes were made to allow for flexibility during docking

    -Changes include:
    -
      -
    • flags to turn all options on or off -
    • separation of sugar -
    • pucker restraints and phosphate backbone restraints -
    • option to have sugar-phosphate backbone dihedrals measured and restrained within a user defined error range -
    • option to have the length of the Watson-Crick hydrogen bonds measured from the structure measured and restrained within a user defined error range. -
    - - +} -{+ comment:This file is to be read by refinement files that modify atom coordinates +} -{+ authors: Axel T. Brunger, and Paul D. Adams,
    - modified by Alexandre Bonvin for HADDOCK use +} - -set message=normal echo=on end - -{=========================================================================================================} -{ things below this line do not normally need to be changed } -{=========================================================================================================} - -{- Dihedral restraints for the protein backbone -} - restraint dihedral - nass = 10000 - end - evaluate ($group=1) - evaluate ($done=false) - while ( $done = false ) loop bdihe - if ( $exist_Toppar.prot_segid_$group = true ) then - show sum(1) ( segid $Toppar.prot_segid_$group ) - if ( $result > 0 ) then - evaluate ($error_phi=$Data.error_dih) - evaluate ($error_psi=$Data.error_dih) - - for $id in id ( segid $Toppar.prot_segid_$group and tag and not resn TIP3 ) loop resid - show (segid) (id $id) - evaluate ($segid=$result) - show (resid) ( id $id ) - evaluate ($resid=decode($result)) - evaluate ($rprec = $resid - 1) - show (resid) (resid $rprec and name CA) - if ($result ne 0) then - evaluate ($rprec = $resid - 1) - pick dihedral - ( segid $segid and resid $rprec and name C ) - ( segid $segid and resid $resid and name N ) - ( segid $segid and resid $resid and name CA ) - ( segid $segid and resid $resid and name C ) - geometry - evaluatate ($dihedral_phi=$result) - restraint dihedral - ! phi - assign ( segid $segid and resid $rprec and name C ) - ( segid $segid and resid $resid and name N ) - ( segid $segid and resid $resid and name CA ) - ( segid $segid and resid $resid and name C ) - 1.0 $dihedral_phi $error_phi 2 - scale 200.0 - end - end if - - evaluate ($rnext = $resid + 1) - show (resid) (resid $rnext and name CA) - if ($result ne 0) then - pick dihedral - ( segid $segid and resid $resid and name N ) - ( segid $segid and resid $resid and name CA ) - ( segid $segid and resid $resid and name C ) - ( segid $segid and resid $rnext and name N ) - geometry - evaluatate ($dihedral_psi=$result) - restraint dihedral - ! psi - assign ( segid $segid and resid $resid and name N ) - ( segid $segid and resid $resid and name CA ) - ( segid $segid and resid $resid and name C ) - ( segid $segid and resid $rnext and name N ) - 1.0 $dihedral_psi $error_psi 2 - scale 200.0 - end - end if - end loop resid - end if - else - evaluate ($done=true) - end if - evaluate ($group=$group+1) - end loop bdihe - - flags include cdih end - -set message=off echo=off end - - diff --git a/src/haddock/modules/flexref/cns/protein-ss-restraints-alpha-beta.def b/src/haddock/modules/flexref/cns/protein-ss-restraints-alpha-beta.def deleted file mode 100644 index 659a6f5fa..000000000 --- a/src/haddock/modules/flexref/cns/protein-ss-restraints-alpha-beta.def +++ /dev/null @@ -1,135 +0,0 @@ -! protein-ss-restraints-alpha-beta.def -! Define automatically secondary structure dihedral angle restraints -! for helical and beta-sheet segments -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! -{+ file: protein-ss-restraints.def directory: protocols +} -{+ description: Creates dihedral angle restraints to maintain conformation of the protein backbone +} -{+ comment:This file is to be read by refinement files that modify atom coordinates +} -{+ authors: Axel T. Brunger, and Paul D. Adams,
    - modified by Alexandre Bonvin for HADDOCK use +} - -set message=normal echo=on end - -{=========================================================================================================} -{ things below this line do not normally need to be changed } -{=========================================================================================================} - -{- Dihedral restraints for the protein backbone in alpha-beta regions -} - - restraint dihedral - nass = 10000 - end - evaluate ($group=1) - evaluate ($done=false) - while ( $done = false ) loop bdihe - if ( $exist_Toppar.prot_segid_$group = true ) then - show sum(1) ( segid $Toppar.prot_segid_$group ) - if ( $result > 0 ) then - evaluate ($error_phi=$Data.error_dih) - evaluate ($error_psi=$Data.error_dih) - - for $id in id ( segid $Toppar.prot_segid_$group and tag and not resn TIP* ) loop resid - show (segid) (id $id) - evaluate ($segid=$result) - show (resid) ( id $id ) - evaluate ($resid=decode($result)) - evaluate ($alphaphi = 0) - evaluate ($alphapsi = 0) - evaluate ($alpha_check = 0) - evaluate ($betaphi = 0) - evaluate ($betapsi = 0) - evaluate ($beta_check = 0) - - evaluate ($rprec = $resid - 1) - show (resid) (resid $rprec and name CA) - if ($result ne 0) then - pick dihedral - ( segid $segid and resid $rprec and name C ) - ( segid $segid and resid $resid and name N ) - ( segid $segid and resid $resid and name CA ) - ( segid $segid and resid $resid and name C ) - geometry - evaluate ($dihedral_phi=$result) - evaluate ($alphaphi=max($dihedral_phi,-77)) - evaluate ($alphaphi=max($dihedral_phi,-37)) - if ($alphaphi eq -37) then - evaluate ($alpha_check = 1) - else - evaluate ($alpha_check = 0) - end if - evaluate ($betaphi=max($dihedral_phi,-145)) - evaluate ($betaphi=max($dihedral_phi,-105)) - if ($betaphi eq -105) then - evaluate ($beta_check = 1) - else - evaluate ($beta_check = 0) - end if - end if - - evaluate ($rnext = $resid + 1) - show (resid) (resid $rnext and name CA) - if ($result ne 0) then - pick dihedral - ( segid $segid and resid $resid and name N ) - ( segid $segid and resid $resid and name CA ) - ( segid $segid and resid $resid and name C ) - ( segid $segid and resid $rnext and name N ) - geometry - evaluate ($dihedral_psi=$result) - evaluate ($alphapsi=max($dihedral_psi,-67)) - evaluate ($alphapsi=max($dihedral_psi,-27)) - if ($alphapsi eq -27) then - evaluate ($alpha_check = $alpha_check + 1) - end if - evaluate ($betapsi=max($dihedral_psi,105)) - evaluate ($betapsi=max($dihedral_psi,145)) - if ($betapsi eq 145) then - evaluate ($beta_check = $beta_check + 1) - end if - end if - - evaluate ($defrest = 0) - if ($alpha_check eq 2) then - evaluate ($defrest = 1) - end if - if ($beta_check eq 2) then - evaluate ($defrest = 1) - end if - if ($defrest = 1) then - restraint dihedral - ! phi - assign ( segid $segid and resid $rprec and name C ) - ( segid $segid and resid $resid and name N ) - ( segid $segid and resid $resid and name CA ) - ( segid $segid and resid $resid and name C ) - 1.0 $dihedral_phi $error_phi 2 - ! psi - assign ( segid $segid and resid $resid and name N ) - ( segid $segid and resid $resid and name CA ) - ( segid $segid and resid $resid and name C ) - ( segid $segid and resid $rnext and name N ) - 1.0 $dihedral_psi $error_psi 2 - scale 200.0 - end - end if - end loop resid - end if - else - evaluate ($done=true) - end if - evaluate ($group=$group+1) - end loop bdihe - - flags include cdih end - -set message=off echo=off end - - diff --git a/src/haddock/modules/flexref/cns/protein-ss-restraints-alpha.def b/src/haddock/modules/flexref/cns/protein-ss-restraints-alpha.def deleted file mode 100644 index 4f4e63c90..000000000 --- a/src/haddock/modules/flexref/cns/protein-ss-restraints-alpha.def +++ /dev/null @@ -1,116 +0,0 @@ -! protein-ss-restraints-alpha.def -! Define automatically secondary structure dihedral angle restraints -! for helical segments -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! -{+ file: protein-ss-restraints.def directory: protocols +} -{+ description: Creates dihedral angle restraints to maintain conformation of the protein backbone +} -{+ comment:This file is to be read by refinement files that modify atom coordinates +} -{+ authors: Axel T. Brunger, and Paul D. Adams,
    - modified by Alexandre Bonvin for HADDOCK use +} - -set message=normal echo=on end - -{=========================================================================================================} -{ things below this line do not normally need to be changed } -{=========================================================================================================} - -{- Dihedral restraints for the protein backbone in alpha-helical regions -} - restraint dihedral - nass = 10000 - end - evaluate ($group=1) - evaluate ($done=false) - while ( $done = false ) loop bdihe - if ( $exist_Toppar.prot_segid_$group = true ) then - show sum(1) ( segid $Toppar.prot_segid_$group ) - if ( $result > 0 ) then - evaluate ($error_phi=$Data.error_dih) - evaluate ($error_psi=$Data.error_dih) - - for $id in id (segid $Toppar.prot_segid_$group and tag and not resn TIP3 ) loop resid - show (segid) (id $id) - evaluate ($segid=$result) - show (resid) ( id $id ) - evaluate ($resid=decode($result)) - evaluate ($alphaphi = 0) - evaluate ($alphapsi = 0) - evaluate ($alpha_check = 0) - - evaluate ($rprec = $resid - 1) - show (resid) (resid $rprec and name CA) - if ($result ne 0) then - pick dihedral - ( segid $segid and resid $rprec and name C ) - ( segid $segid and resid $resid and name N ) - ( segid $segid and resid $resid and name CA ) - ( segid $segid and resid $resid and name C ) - geometry - evaluate ($dihedral_phi=$result) - evaluate ($alphaphi=max($dihedral_phi,-77)) - evaluate ($alphaphi=max($dihedral_phi,-37)) - if ($alphaphi eq -37) then - evaluate ($alpha_check = 1) - else - evaluate ($alpha_check = 0) - end if - end if - - evaluate ($rnext = $resid + 1) - show (resid) (resid $rnext and name CA) - if ($result ne 0) then - pick dihedral - ( segid $segid and resid $resid and name N ) - ( segid $segid and resid $resid and name CA ) - ( segid $segid and resid $resid and name C ) - ( segid $segid and resid $rnext and name N ) - geometry - evaluate ($dihedral_psi=$result) - evaluate ($alphapsi=max($dihedral_psi,-67)) - evaluate ($alphapsi=max($dihedral_psi,-27)) - if ($alphapsi eq -27) then - evaluate ($alpha_check = $alpha_check + 1) - end if - end if - - evaluate ($defrest = 0) - if ($alpha_check eq 2) then - evaluate ($defrest = 1) - end if - if ($defrest = 1) then - restraint dihedral - ! phi - assign ( segid $segid and resid $rprec and name C ) - ( segid $segid and resid $resid and name N ) - ( segid $segid and resid $resid and name CA ) - ( segid $segid and resid $resid and name C ) - 1.0 $dihedral_phi $error_phi 2 - ! psi - assign ( segid $segid and resid $resid and name N ) - ( segid $segid and resid $resid and name CA ) - ( segid $segid and resid $resid and name C ) - ( segid $segid and resid $rnext and name N ) - 1.0 $dihedral_psi $error_psi 2 - scale 200.0 - end - end if - end loop resid - end if - else - evaluate ($done=true) - end if - evaluate ($group=$group+1) - end loop bdihe - - flags include cdih end - -set message=off echo=off end - - diff --git a/src/haddock/modules/flexref/cns/random_rotations.cns b/src/haddock/modules/flexref/cns/random_rotations.cns deleted file mode 100644 index 5703e4d27..000000000 --- a/src/haddock/modules/flexref/cns/random_rotations.cns +++ /dev/null @@ -1,179 +0,0 @@ -! random_rotations.cns -! Perform a random rotation -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! -! check if homomer - -inline @RUN:check-homomers.cns - -do (store4 = 0) (all) -evaluate ($ncount = 0) -while ($ncount < $data.ncomponents) loop fixed - evaluate ($ncount = $ncount + 1) - if ($Toppar.fix_origin_$ncount eq true) then - do (store4 = 1) (segid $Toppar.prot_segid_$ncount) - end if -end loop fixed - -if ($homosymmetry eq false) then - ! Random translation within a 10A cube - evaluate ($ncount = 0) - while ($ncount < $data.ncomponents) loop randtrans - evaluate ($ncount = $ncount +1) - if ($Toppar.fix_origin_$ncount eq false) then - evaluate ($xd = 10.0 * (0.5 - ran())) - evaluate ($yd = 10.0 * (0.5 - ran())) - evaluate ($zd = 10.0 * (0.5 - ran())) - coor trans sele=(segid $Toppar.prot_segid_$ncount or segid $watersegname_$ncount) vector=($xd,$yd,$zd) end - end if - end loop randtrans -end if - -! Random rotation of molecules -evaluate ($ncount = 0) -evaluate ($nrotset = 0) -while ($ncount < $data.ncomponents) loop randrot - evaluate ($ncount = $ncount +1) - if ($Toppar.fix_origin_$ncount eq false) then - show ave (x) (segid $Toppar.prot_segid_$ncount or segid $watersegname_$ncount) - evaluate ($xc = $result) - show ave (y) (segid $Toppar.prot_segid_$ncount or segid $watersegname_$ncount) - evaluate ($yc = $result) - show ave (z) (segid $Toppar.prot_segid_$ncount or segid $watersegname_$ncount) - evaluate ($zc = $result) - - ! Random rotation for each molecule except for symmtrical homomers for which - ! the same rotation is applied to all molecules to keep the symmetry - if ($nrotset = 0) then - !1. Generate random e1 e2 e3 and e4 in [-1, 1] so that e1^2 + e2^2 < 1 and e3^2+e4^2 < 1 - evaluate ($RRM_e1 = ran () * 2 - 1) - evaluate ($RRM_e2 = ran () * 2 - 1) - evaluate ($RRM_s1 = ($RRM_e1)*($RRM_e1) + ($RRM_e2)*($RRM_e2)) - - while ( $RRM_s1 >= 1) loop s1loop - evaluate ($RRM_e1 = ran () * 2 - 1) - evaluate ($RRM_e2 = ran () * 2 - 1) - evaluate ($RRM_s1 = ($RRM_e1)*($RRM_e1) + ($RRM_e2)*($RRM_e2)) - end loop s1loop - - evaluate ($RRM_e3 = ran () * 2 - 1) - evaluate ($RRM_e4 = ran () * 2 - 1) - evaluate ($RRM_s2 = ($RRM_e3)*($RRM_e3) + ($RRM_e4)*($RRM_e4)) - while ( $RRM_s2 >= 1) loop s2loop - evaluate ($RRM_e3 = ran () * 2 - 1) - evaluate ($RRM_e4 = ran () * 2 - 1) - evaluate ($RRM_s2 = ($RRM_e3)*($RRM_e3) + ($RRM_e4)*($RRM_e4)) - end loop s2loop - - !2. the quaternion q0 q1 q2 q3 - evaluate($RRM_q0 = $RRM_e1) - evaluate($RRM_q1 = $RRM_e2) - evaluate($RRM_q2 = $RRM_e3 * sqrt((1 - $RRM_s1)/$RRM_s2) ) - evaluate($RRM_q3 = $RRM_e4 * sqrt((1 - $RRM_s1)/$RRM_s2) ) - - !3. The rotation matrix from the quaternion - evaluate ($x1 = $RRM_q0 * $RRM_q0 + $RRM_q1 * $RRM_q1 - $RRM_q2 * $RRM_q2 - $RRM_q3 * $RRM_q3) - evaluate ($x2 = 2 * ($RRM_q1 * $RRM_q2 - $RRM_q0 * $RRM_q3) ) - evaluate ($x3 = 2 * ($RRM_q1 * $RRM_q3 + $RRM_q0 * $RRM_q2) ) - evaluate ($y1 = 2 * ($RRM_q1 * $RRM_q2 + $RRM_q0 * $RRM_q3) ) - evaluate ($y2 = $RRM_q0 * $RRM_q0 - $RRM_q1 * $RRM_q1 + $RRM_q2 * $RRM_q2 - $RRM_q3 * $RRM_q3) - evaluate ($y3 = 2 * ($RRM_q2 * $RRM_q3 - $RRM_q0 * $RRM_q1) ) - evaluate ($z1 = 2 * ($RRM_q1 * $RRM_q3 - $RRM_q0 * $RRM_q2) ) - evaluate ($z2 = 2 * ($RRM_q2 * $RRM_q3 + $RRM_q0 * $RRM_q1) ) - evaluate ($z3 = $RRM_q0 * $RRM_q0 - $RRM_q1 * $RRM_q1 - $RRM_q2 * $RRM_q2 + $RRM_q3 * $RRM_q3) - - if ($homosymmetry eq true) then - evaluate ($nrotset = 1) - end if - end if - - !4. The rotation - coor - center=($xc $yc $zc) - rotate matrix=($x1 $x2 $x3) ($y1 $y2 $y3) ($z1 $z2 $z3) - sele=(segid $Toppar.prot_segid_$ncount or segid $watersegname_$ncount) - end - end if -end loop randrot - - -! If there are fixed molecules, randomly rotate as one unit all non-fixed ones -! around the geometric center of the fixed ones - -show sum (store4) (all) - -if ($result > 0) then - - show ave (x) (attribute store4 = 1) - evaluate ($xc = $result) - show ave (y) (attribute store4 = 1) - evaluate ($yc = $result) - show ave (z) (attribute store4 = 1) - evaluate ($zc = $result) - - ! Random rotation for each molecule except for symmtrical homomers for which - ! the same rotation is applied to all molecules to keep the symmetry - if ($nrotset = 0) then - !1. Generate random e1 e2 e3 and e4 in [-1, 1] so that e1^2 + e2^2 < 1 and e3^2+e4^2 < 1 - evaluate ($RRM_e1 = ran () * 2 - 1) - evaluate ($RRM_e2 = ran () * 2 - 1) - evaluate ($RRM_s1 = ($RRM_e1)*($RRM_e1) + ($RRM_e2)*($RRM_e2)) - - while ( $RRM_s1 >= 1) loop s1loop - evaluate ($RRM_e1 = ran () * 2 - 1) - evaluate ($RRM_e2 = ran () * 2 - 1) - evaluate ($RRM_s1 = ($RRM_e1)*($RRM_e1) + ($RRM_e2)*($RRM_e2)) - end loop s1loop - - evaluate ($RRM_e3 = ran () * 2 - 1) - evaluate ($RRM_e4 = ran () * 2 - 1) - evaluate ($RRM_s2 = ($RRM_e3)*($RRM_e3) + ($RRM_e4)*($RRM_e4)) - while ( $RRM_s2 >= 1) loop s2loop - evaluate ($RRM_e3 = ran () * 2 - 1) - evaluate ($RRM_e4 = ran () * 2 - 1) - evaluate ($RRM_s2 = ($RRM_e3)*($RRM_e3) + ($RRM_e4)*($RRM_e4)) - end loop s2loop - - !2. the quaternion q0 q1 q2 q3 - evaluate($RRM_q0 = $RRM_e1) - evaluate($RRM_q1 = $RRM_e2) - evaluate($RRM_q2 = $RRM_e3 * sqrt((1 - $RRM_s1)/$RRM_s2) ) - evaluate($RRM_q3 = $RRM_e4 * sqrt((1 - $RRM_s1)/$RRM_s2) ) - - !3. The rotation matrix from the quaternion - evaluate ($x1 = $RRM_q0 * $RRM_q0 + $RRM_q1 * $RRM_q1 - $RRM_q2 * $RRM_q2 - $RRM_q3 * $RRM_q3) - evaluate ($x2 = 2 * ($RRM_q1 * $RRM_q2 - $RRM_q0 * $RRM_q3) ) - evaluate ($x3 = 2 * ($RRM_q1 * $RRM_q3 + $RRM_q0 * $RRM_q2) ) - evaluate ($y1 = 2 * ($RRM_q1 * $RRM_q2 + $RRM_q0 * $RRM_q3) ) - evaluate ($y2 = $RRM_q0 * $RRM_q0 - $RRM_q1 * $RRM_q1 + $RRM_q2 * $RRM_q2 - $RRM_q3 * $RRM_q3) - evaluate ($y3 = 2 * ($RRM_q2 * $RRM_q3 - $RRM_q0 * $RRM_q1) ) - evaluate ($z1 = 2 * ($RRM_q1 * $RRM_q3 - $RRM_q0 * $RRM_q2) ) - evaluate ($z2 = 2 * ($RRM_q2 * $RRM_q3 + $RRM_q0 * $RRM_q1) ) - evaluate ($z3 = $RRM_q0 * $RRM_q0 - $RRM_q1 * $RRM_q1 - $RRM_q2 * $RRM_q2 + $RRM_q3 * $RRM_q3) - - if ($homosymmetry eq true) then - evaluate ($nrotset = 1) - end if - end if - - !4. The rotation - coor - center=($xc $yc $zc) - rotate matrix=($x1 $x2 $x3) ($y1 $y2 $y3) ($z1 $z2 $z3) - sele=(attribute store4 = 0) - end -end if - -do (x = refx) (resn ANI or resn DAN or resn XAN or resn SHA) -do (y = refy) (resn ANI or resn DAN or resn XAN or resn SHA) -do (z = refz) (resn ANI or resn DAN or resn XAN or resn SHA) - -!evaluate ($outname = "RUN:" + "begin/" + $Filenames.fileroot + "_init_" + encode($count) + ".pdb") -!write coor output=$outname end diff --git a/src/haddock/modules/flexref/cns/randomairs.cns b/src/haddock/modules/flexref/cns/randomairs.cns deleted file mode 100644 index d690cde4a..000000000 --- a/src/haddock/modules/flexref/cns/randomairs.cns +++ /dev/null @@ -1,240 +0,0 @@ -! randomairs.cns -! Define random AIRs from solvent accessible residues -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! - -if ($data.ncomponents > 2) then - evaluate ($errfile = "RUN:FAILED") - fileexist $errfile end - if ($result eq false) then - set display=$errfile end - display RANDOM DEFINITION OF AIRS FROM SOLVENT ACCESSIBLE RESIDUES ONLY - display SUPPORTED FOR TWO MOLECULES. USE CENTER-OF-MASS RESTRAINTS INSTEAD - close $errfile end - end if -end if -! -! first calculate accessible surface area -! -do (store3 = 0) (all) -surface mode=access rh2o=1.4 sele=(segid $Toppar.prot_segid_1 and not (resn WAT or resn HOH or resn TIP*)) end -show sum (rmsd) (segid $Toppar.prot_segid_1 and not (resn WAT or resn HOH or resn TIP*)) -do (store3 = rmsd) (segid $Toppar.prot_segid_1 and not (resn WAT or resn HOH or resn TIP*)) -surface mode=access rh2o=1.4 sele=(segid $Toppar.prot_segid_2 and not (resn WAT or resn HOH or resn TIP*)) end -do (store3 = rmsd) (segid $Toppar.prot_segid_2 and not (resn WAT or resn HOH or resn TIP*)) -! -! normalize by standard residue accessibilities (taken from NACCESS) -! -do (store3 = store3 / 107.95) (resn ALA) -do (store3 = store3 / 134.28) (resn CYS*) -do (store3 = store3 / 134.28) (resn CSP) -do (store3 = store3 / 140.39) (resn ASP) -do (store3 = store3 / 140.39) (resn ASH) -do (store3 = store3 / 172.25) (resn GLU) -do (store3 = store3 / 172.25) (resn GLH) -do (store3 = store3 / 199.48) (resn PHE) -do (store3 = store3 / 80.10) (resn GLY) -do (store3 = store3 / 182.88) (resn HIS) -do (store3 = store3 / 182.88) (resn NEP) -do (store3 = store3 / 175.12) (resn ILE) -do (store3 = store3 / 200.81) (resn LYS) -do (store3 = store3 / 200.81) (resn ALY) -do (store3 = store3 / 200.81) (resn MLZ) -do (store3 = store3 / 200.81) (resn MLY) -do (store3 = store3 / 200.81) (resn M3L) -do (store3 = store3 / 178.63) (resn LEU) -do (store3 = store3 / 194.15) (resn MET) -do (store3 = store3 / 194.15) (resn MSE) -do (store3 = store3 / 143.94) (resn ASN) -do (store3 = store3 / 136.13) (resn PRO) -do (store3 = store3 / 136.13) (resn HYP) -do (store3 = store3 / 178.50) (resn GLN) -do (store3 = store3 / 238.76) (resn ARG) -do (store3 = store3 / 116.50) (resn SER) -do (store3 = store3 / 116.50) (resn SEP) -do (store3 = store3 / 139.27) (resn THR) -do (store3 = store3 / 139.27) (resn DDZ) -do (store3 = store3 / 139.27) (resn TOP) -do (store3 = store3 / 151.44) (resn VAL) -do (store3 = store3 / 249.36) (resn TRP) -do (store3 = store3 / 212.76) (resn TYR) -do (store3 = store3 / 212.76) (resn TYP) -do (store3 = store3 / 212.76) (resn PTR) -do (store3 = store3 / 212.76) (resn TYS) -! DNA/RNA bases -do (store3 = store3 / 170.0) (resn ADE) -do (store3 = store3 / 170.0) (resn CYT) -do (store3 = store3 / 170.0) (resn GUA) -do (store3 = store3 / 170.0) (resn THY) -do (store3 = store3 / 170.0) (resn URI) -! -! Define random AIR restraints -! -evaluate ($icount = 1) -do (store4 = 0) (all) - -! Check if flexible segments defined from which to sample random AIRs -evaluate($nchain1 = 0) -while ($nchain1 < $data.ncomponents) loop nloop1 - evaluate($nchain1 = $nchain1 + 1) - evaluate($fcounter=0) - evaluate($samplesurf = false) - - if ($Toppar.nseg_$nchain1 = 0) then - evaluate($samplesurf = true) - end if - if ($Toppar.nseg_$nchain1 = -1) then - evaluate($samplesurf = true) - end if - - if ($samplesurf eq true) then - do (store5 = $nchain1) (segid $Toppar.prot_segid_$nchain1) - display RANDOM AIRS SAMPLED FROM ENTIRE SURFACE FOR MOLECULE $nchain1 - else - evaluate ($numseg = abs($Toppar.nseg_$nchain1)) - display RANDOM AIRS SAMPLED FROM SEMI-FLEXIBLE SEGMENTS FOR MOLECULE $nchain1 - while ($fcounter < $numseg) loop Xflex - evaluate($fcounter=$fcounter + 1) - do (store5 = $nchain1) ( resid $Toppar.start_seg_$nchain1_$fcounter : $Toppar.end_seg_$nchain1_$fcounter - and segid $Toppar.prot_segid_$nchain1) - display FLEXIBLE SEGMENT NR $fcounter FROM $Toppar.start_seg_$nchain1_$fcounter TO $Toppar.end_seg_$nchain1_$fcounter - end loop Xflex - end if -end loop nloop1 - -for $atom_id in id ( tag and (attr store5 ne 0)) loop count - do (store4 = $icount) (byres (id $atom_id)) - show sum (store3) (byres (id $atom_id)) - do (store2 = $result) (byres (id $atom_id)) - evaluate ($icount = $icount + 1) -end loop count - -set message=on echo=on end - -show min(store4) (segid $Toppar.prot_segid_1 and (attr store5 ne 0)) -evaluate ($rmin = $result) - -show max(store4) (segid $Toppar.prot_segid_1 and (attr store5 ne 0)) -evaluate ($rmax = $result) - -evaluate ($nres = $rmax - $rmin + 1) -display $nres RESIDUE IN MOLECULE A SELECTED FOR RANDOM AIR DEFINITION -if ($nres < 1) then - display NO RESIDUES IN DEFINED FLEXIBLE SEGMENTS FOR MOLECULE A - display RANDOM RESTRAINTS DEFINITION FAILED - display STOPPING... - stop -end if - -if ($nres = 1) then - evaluate ($iselres1 = $rmax) -else - evaluate ($done = 0) - while ($done = 0) loop trial - evaluate ($iselres1 = 0) - evaluate ($iselres1 = int(ran() * $rmax) + 1) - show sum (store3) (attribute store4 = $iselres1) - if ($result > 0.2) then - evaluate ($done = 1) - end if - end loop trial -end if - -show min(store4) (segid $Toppar.prot_segid_2 and (attr store5 ne 0)) -evaluate ($rmin = $result) - -show max(store4) (segid $Toppar.prot_segid_2 and (attr store5 ne 0)) -evaluate ($rmax = $result) - -display $nres RESIDUE IN MOLECULE B SELECTED FOR RANDOM AIR DEFINITION -evaluate ($nres = $rmax - $rmin + 1) -if ($nres < 1) then - display NO RESIDUES IN DEFINED FLEXIBLE SEGMENTS FOR MOLECULE B - display RANDOM RESTRAINTS DEFINITION FAILED - display STOPPING... - stop -end if - -if ($nres = 1) then - evaluate ($iselres2 = $rmax) -else - evaluate ($done = 0) - while ($done = 0) loop trial - evaluate ($iselres2 = 0) - evaluate ($iselres2 = int(ran() * ($rmax-$rmin+1)) + $rmin) - show sum (store3) (attribute store4 = $iselres2) - if ($result > 0.2) then - evaluate ($done = 1) - end if - end loop trial -end if - -show (resid) (attribute store4 = $iselres1 and tag) -evaluate ($selres1 = $result) -show (segid) (attribute store4 = $iselres1 and tag) -evaluate ($selseg1 = $result) -show (resn) (attribute store4 = $iselres1 and tag) -evaluate ($selnam1 = $result) - -show (resid) (attribute store4 = $iselres2 and tag) -evaluate ($selres2 = $result) -show (segid) (attribute store4 = $iselres2 and tag) -evaluate ($selseg2 = $result) -show (resn) (attribute store4 = $iselres2 and tag) -evaluate ($selnam2 = $result) - -evaluate ($dispname="NEWIT:" + $Filenames.fileroot + "_" + encode($count) + ".disp") -set display=$dispname end - -display $selnam1 $selres1 $selseg1 - -noe class ambig end - -noe - assign (resid $selres1 and segid $Toppar.prot_segid_1) - (attr store2 > 0.2 and segid $Toppar.prot_segid_2 and - attr store5 ne 0 and (resid $selres2 or (resid $selres2) around 7.5)) 2.0 2.0 0.0 - assign (resid $selres2 and segid $Toppar.prot_segid_2) - (attr store2 > 0.2 and segid $Toppar.prot_segid_1 and - attr store5 ne 0 and (resid $selres1 or (resid $selres1) around 7.5)) 2.0 2.0 0.0 -end - -for $id in id ((resid $selres1 and attr store2 > 0.2) around 5.0 and tag and segid $selseg1 and not resid $selres1) loop neighbors1 - show (resid) (id $id) - evaluate ($inres = $result) - show (segid) (id $id) - evaluate ($inseg = $result) - show (resn) (id $id) - evaluate ($inrsn = $result) - display $inrsn $inres $inseg - noe - assign (resid $inres and segid $Toppar.prot_segid_1) - (attr store2 > 0.2 and segid $Toppar.prot_segid_2 and - attr store5 ne 0 and (resid $selres2 or (resid $selres2) around 7.5)) 2.0 2.0 0.0 - end -end loop neighbors1 - -for $id in id ((resid $selres2 and attr store2 > 0.2) around 5.0 and tag and segid $selseg2 and not resid $selres2) loop neighbors2 - show (resid) (id $id) - evaluate ($inres = $result) - show (segid) (id $id) - evaluate ($inseg = $result) - show (resn) (id $id) - evaluate ($inrsn = $result) - display $inrsn $inres $inseg - noe - assign (resid $inres and segid $Toppar.prot_segid_2) - (attr store2 > 0.2 and segid $Toppar.prot_segid_1 and - attr store5 ne 0 and (resid $selres1 or (resid $selres1) around 7.5)) 2.0 2.0 0.0 - end -end loop neighbors2 - -close $dispname end -set message=off end diff --git a/src/haddock/modules/flexref/cns/re_dmso.inp b/src/haddock/modules/flexref/cns/re_dmso.inp deleted file mode 100644 index 4faa4ef9b..000000000 --- a/src/haddock/modules/flexref/cns/re_dmso.inp +++ /dev/null @@ -1,839 +0,0 @@ -! re_dmso.inp -! Perform an explitic solvent (DMSO) refinement -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! - -@RUN:initialize.cns(iteration=$iteration;) - -@NEWIT:water/iteration.cns(iteration=$iteration;) - -@RUN:run.cns( -iteration =$iteration; -filenames =$filenames; -data =$data; -iterations=$iterations; -saprotocol=$saprotocol; -refine =$refine; -toppar =$toppar; -analysis =$analysis; -) - -evaluate ($log_level=quiet) - -if ( $log_level = verbose ) then - set message=normal echo=on end -else - set message=off echo=off end -end if - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!The next line will be changed automatically from python: -evaluate ($count = 1) -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!The next line will be changed automatically from python: -evaluate ($file = "") -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -!reads in structure, coordinates and parameter files -@RUN:read_struc.cns - -!set the energy flags: -inline @RUN:setflags.cns - -evaluate ($Data.flags.zres = false) -evaluate ($zhar = 0.0) - -evaluate ($Data.flags.elec = true) -flags include elec end - -!load the solvent topology files: -topology @@RUN:toppar/water-allhdg5-4.top end - -if ($Data.noecv eq true) then - evaluate ($fileseed=$file - ".pdb" + ".seed") - @@$fileseed(seed=$seed;npart=$npart) -else - evaluate ($seed = max($iteration,1)*$count*$Saprotocol.iniseed) -end if -set seed $seed end - -! read coordinate and copy to reference coordinate set -coor @@$file -coor copy end - -{*== check first for failed structures ==*} -evaluate ($failure = false) -evaluate ($filefail= "NEWIT:water/" + $file - "PREVIT:" - ".pdb" + "w.fail") -fileexist $filefail end -evaluate ($failure = $result) - -! check for CG molecule -eval($nchain1= 1) -eval($coarse = false) -while ($nchain1 <= $data.ncomponents) loop cloop0 - if ($toppar.cg_$nchain1 = true) then - eval($coarse = true) - end if - eval($nchain1 = $nchain1 + 1) -end loop cloop0 - -! perform the morphing to all atoms model if needed -if ($coarse eq true) then - inline @RUN:read_struc-cg.cns - inline @RUN:cg-to-aa.cns -end if - -if ($data.waterdock eq true) then - inline @RUN:read_water1.cns -end if - -if ($Data.flags.sani eq true) then - flag incl sani end - coor select (not known and resn ani) end - if ($select gt 0) then - coor @@$tensor_pdb - - {* Find CoM of protein and move tensor 100 A away *} - show ave (x) (name CA or name BB or name C1') - evaluate ($xcent=$result) - show ave (y) (name CA or name BB or name C1') - evaluate ($ycent=$result) - show ave (z) (name CA or name BB or name C1') - evaluate ($zcent=$result) - do (x=x+$xcent+100) (resn ANI) - do (y=y+$ycent+100) (resn ANI) - do (z=z+$zcent+100) (resn ANI) - - evaluate ($rantens = true) - else - evaluate ($rantens = false) - end if - - {* Harmonic restraints to keep it far away *} - do (refx=x) (all) - do (refy=y) (all) - do (refz=z) (all) - do (harmonic=20.0)(resn ANI and name OO) - do (harmonic=0.0) (resn ANI and name X ) - do (harmonic=0.0) (resn ANI and name Y ) - do (harmonic=0.0) (resn ANI and name Z ) - do (harmonic=0.0) (not (resn ANI)) - restraints harmonic exponent=2 end - flags include harm end -end if - -evaluate ($xanmin = false) -if ($Data.flags.xrdc eq true) then - evaluate ($xanmin = true) - flag incl xrdc end -end if -if ($Data.flags.xpcs eq true) then - evaluate ($xanmin = true) - flag incl xpcs end -end if -if ($xanmin eq true) then - coor select (not known and resn xan) end - if ($select gt 0) then - coor @@$tensor_para_pdb - - {* Find CoM of protein and move tensor 100 A away *} - show ave (x) (name CA or name BB or name C1') - evaluate ($xcent=$result) - show ave (y) (name CA or name BB or name C1') - evaluate ($ycent=$result) - show ave (z) (name CA or name BB or name C1') - evaluate ($zcent=$result) - do (x=x+$xcent+100) (resn XAN) - do (y=y+$ycent+100) (resn XAN) - do (z=z+$zcent+100) (resn XAN) - evaluate ($rantens_para = true) - else - evaluate ($rantens_para = false) - end if -end if - -if ($Data.flags.dani eq true) then - flag incl dani end - coor select (not known and resn DAN) end - if ($select gt 0) then - coor @@RUN:toppar/tensor_dani.pdb - - {* Find CoM of protein and move tensor 100 A away *} - show ave (x) (name CA or name BB or name C1') - evaluate ($xcent=$result) - show ave (y) (name CA or name BB or name C1') - evaluate ($ycent=$result) - show ave (z) (name CA or name BB or name C1') - evaluate ($zcent=$result) - do (x=x+$xcent+100) (resn DAN) - do (y=y+$ycent+100) (resn DAN) - do (z=z+$zcent+100) (resn DAN) - - evaluate ($rantens_dani = true) - else - evaluate ($rantens_dani = false) - end if - - {* Harmonic restraints to keep it far away *} - do (refx=x) (all) - do (refy=y) (all) - do (refz=z) (all) - do (harmonic=20.0)(resn DAN and name OO) - do (harmonic=0.0) (resn DAN and name X ) - do (harmonic=0.0) (resn DAN and name Y ) - do (harmonic=0.0) (resn DAN and name Z ) - do (harmonic=0.0) (not (resn ANI or resn DAN)) - restraints harmonic exponent=2 end - flags include harm end -end if - -if ($Data.flags.rg eq true ) then - collapse - force $Data.krg_cool3 - target $Data.rgtarg - sele (not (resn ANI or resn XAN or resn DMS)) - end -end if - -do (refx = x) (all) -do (refy = y) (all) -do (refz = z) (all) - -{*== check if DMSO refinement should be performed ==*} -if ($refine.firstwater eq "yes") then - if ($refine.solvshell eq true) then - if ($failure eq false) then - ! generate DMSO layer - do (segid = "PROT") (segid " ") - @RUN:generate_dmso.cns - do (segid = " ") (segid "PROT") - end if - else - parameter nbonds eps=$Data.epsilon end end - end if -end if - -set seed $seed end -set message=normal echo=on end -inline @RUN:read_data.cns - -! read EM-data -if ($data.flags.em = true) then - @RUN:em_read_data.cns(data=$data;) - if ($data.em.itw = true) then - flags include xref end - end if -end if - -if ($refine.solvshell eq true) then - inline @RUN:water_rest.cns -end if - -if ($Data.ranair eq true) then - if ($Data.ncomponents > 2) then - display ========= Unsupported option =========== - display Random definition of AIRs with more than - display two molecules currently unsupported - display ======================================== - stop - end if - evaluate ($Data.noecv = false) - noe - reset - nrestraints = 100000 ! allocate space for NOEs - ceiling 1000 - end -! @RUN:contactairs.cns - - !Read back in hbond data - if ($Data.hbond_lastit ge &iteration) then - if ($Data.hbond_firstit le &iteration) then - if ($Data.hbonds_on eq true) then - noe @@$hbond_fname end - end if - end if - end if - - noe - averaging * sum - potential * soft - scale * 1.0 - sqconstant * 1.0 - sqexponent * 2 - soexponent * 1 - rswitch * 1.0 - sqoffset * 0.0 - asymptote * 2.0 - msoexponent * 1 - masymptote * -0.1 - mrswitch * 1.0 - avexpo hbond 20 - end - inline @RUN:water_rest.cns -end if - -{* random removal of restaints ================================== *} -!Make sure that at least as many distance restraints are successfully -!read as the number of partitions for cross-validation -evaluate ($numnoe = 999) -noe ? end -if ($NUMNOE = 0) then - evaluate ($Data.ncvpart = 1) - evaluate ($Data.noecv = FALSE) -end if - -if ($NUMNOE lt $Data.ncvpart) then - noe part=1 end - evaluate ($Data.ncvpart = 1) - evaluate ($Data.noecv = FALSE) -end if - -if ($Data.noecv eq true) then - set message=on echo=on end - noe cv $npart ? end -else - evaluate ($npart = 0) -end if - -if ( $log_level = verbose ) then - set message=normal echo=on end -else - set message=off echo=off end -end if - -if ($Data.flags.sani eq true) then - flag incl sani end -else - flag excl sani end -end if - -if ($Data.flags.xrdc eq true) then - flag incl xrdc end -else - flag excl xrdc end -end if - -if ($Data.flags.xpcs eq true) then - flag incl xpcs end -else - flag excl xpcs end -end if - -if ($Data.flags.dani eq true) then - flag incl dani end -else - flag excl dani end -end if - -if ($Data.flags.vean eq true) then - flag incl vean end -else - flag excl vean end -end if - -!set the rdc coefficients: -evaluate ($nrdc=1) -while ($nrdc <= $data.numrdc) loop rdc - evaluate ($cln = "rd" + encode($nrdc) ) - if ($Data.rdc_choice_$nrdc eq "SANI") then - sani class $cln coeff 0.0 $Data.rdc_d_$nrdc $Data.rdc_r_$nrdc end - sani class $cln force $data.rdc_cool3_$nrdc end - end if - if ($Data.rdc_choice_$nrdc eq "VANGLE") then - vean class $cln force $Data.fin_bor_cool3_$nrdc $Data.fin_cen_cool3_$nrdc end - end if - if ($Data.rdc_choice_$nrdc eq "XRDC") then - xrdc class $cln coeff $Data.rdc_d_$nrdc $Data.rdc_r_$nrdc end - xrdc class $cln force $data.rdc_cool3_$nrdc end - end if - evaluate ($nrdc=$nrdc+1) -end loop rdc - -!set the pcs coefficients: -evaluate ($npcs=1) -while ($npcs <= $data.numpcs) loop pcs - evaluate ($cln = "pc" + encode($npcs) ) - if ($Data.pcs_choice_$npcs eq "XPCS") then - xpcs class $cln coeff $Data.pcs_d_$npcs $Data.pcs_r_$npcs end - xpcs class $cln force $data.pcs_cool3_$npcs end - end if - evaluate ($npcs=$npcs+1) -end loop pcs - -! set dani coefficients: -evaluate ($ndani=1) -while ($ndani <= $data.numdani) loop dani - evaluate ($cln = "da" + encode($ndani) ) - if ($Data.dan_choice_$ndani eq "DANI") then - dani class $cln coeff $Data.dan_tc_$ndani $Data.dan_anis_$ndani $Data.dan_r_$ndani $Data.dan_wh_$ndani $Data.dan_wn_$ndani end - dani class $cln force $data.dan_cool3_$ndani end - end if - evaluate ($ndani=$ndani+1) -end loop dani - - -@RUN:symmultimer.cns - -if ($Data.scaling eq true) then - inline @RUN:set_noe_scale.cns -end if -igroup - interaction (not (resn ANI or resn DAN or resn XAN)) (not (resn ANI or resn DAN or resn XAN)) weight * 1 end - interaction (resn ANI or resn DAN or resn XAN) - (resn ANI or resn DAN or resn XAN) weight * 1 vdw 0.0 elec 0.0 end -end - -noe - rswitch ambi $Data.Rswi_cool3 - rswitch dist $Data.Rswi_cool3 - rswitch hbon $Data.Rswi_cool3 - - mrswitch ambi $Data.mRswi_cool3 - mrswitch dist $Data.mRswi_cool3 - mrswitch hbon $Data.mRswi_cool3 - - asym ambi $Data.asy_cool3 - asym dist $Data.asy_cool3 - asym hbon $Data.asy_cool3 - - masym ambi $Data.masy_cool3 - masym dist $Data.masy_cool3 - masym hbon $Data.masy_cool3 - - scale ambi $Data.amb_cool3 - scale dist $Data.unamb_cool3 - scale hbon $Data.hbond_cool3 -end - -restraints dihedral - scale=$Data.dihedrals_cool3 -end - -if ($Data.dnarest eq true) then - @RUN:data/sequence/dna-rna_restraints.def -end if - -if ($Data.flags.sani eq true) then - if ($rantens eq true) then - @RUN:mini_tensor.cns - end if -end if - -evaluate ($xanmin = false) -if ($Data.flags.xrdc eq true) then - evaluate ($xanmin = true) -end if -if ($Data.flags.xpcs eq true) then - evaluate ($xanmin = true) -end if -if ($xanmin eq true) then -! if ($rantens_para eq true) then - @RUN:mini_tensor_para.cns -! end if -end if - -if ($Data.flags.dani eq true) then - if ($rantens_dani eq true) then - @RUN:mini_tensor_dani.cns - end if -end if - -if ($Data.ssdihed eq all ) then - inline @RUN:protein-ss-restraints-all.def - flag incl cdih end -end if -if ($Data.ssdihed eq alpha ) then - inline @RUN:protein-ss-restraints-alpha.def - flag incl cdih end -end if -if ($Data.ssdihed eq alphabeta ) then - inline @RUN:protein-ss-restraints-alpha-beta.def - flag incl cdih end -end if - -energy end - -{*== check if water refinement should be performed ==*} -if ($refine.firstwater eq "yes") then - -! since we do not use SHAKe, increase the DMSO bond angle energy constant -parameter - angle (resn DMS) (resn DMS) (resn DMS) 500 TOKEN -end - -! fix the protein for initial minimization -fix sele = (not (resn WAT or resn HOH or resn TIP*)) end - -! fix rigid molecules including their waters if present -evaluate($nchain1 = 0) -while ($nchain1 < $data.ncomponents) loop nloop1 - evaluate($nchain1 = $nchain1 + 1) - evaluate($fcounter=0) - if ($Toppar.nseg_$nchain1 = 0) then - display NO FLEXIBLE SIDE-CHAINS SEGMENTS for molecule $nchain1 - display FIXING IT - fix sele = (segid $Toppar.prot_segid_$nchain1 and not name H*) end - end if -end loop nloop1 - -! fix the shape -fix sele = (resn SHA) end - -minimize powell nstep=40 drop=100 end - -! release protein and restrain harmonically -fix sele = (not all) end - -! fix the shape -fix sele = (resn SHA) end - -! fix rigid molecules -evaluate($nchain1 = 0) -while ($nchain1 < $data.ncomponents) loop nloop1 - evaluate($nchain1 = $nchain1 + 1) - evaluate($fcounter=0) - if ($Toppar.nseg_$nchain1 = 0) then - display NO FLEXIBLE SIDE-CHAINS SEGMENTS for molecule $nchain1 - display FIXING IT - fix sele = (segid $Toppar.prot_segid_$nchain1 and not name H*) end - end if -end loop nloop1 - -do (refx=x) (all) -do (refy=y) (all) -do (refz=z) (all) -restraints harmonic - exponent = 2 -end -do (harm = 0) (all) -do (harm = 5) (not name h* and not resn DMS) -do (harmonic=20.0)(resn ANI and name OO) -do (harmonic=0.0) (resn ANI and name X ) -do (harmonic=0.0) (resn ANI and name Y ) -do (harmonic=0.0) (resn ANI and name Z ) -do (harmonic=20.0)(resn DAN and name OO) -do (harmonic=0.0) (resn DAN and name X ) -do (harmonic=0.0) (resn DAN and name Y ) -do (harmonic=0.0) (resn DAN and name Z ) - -igroup - interaction (not (resn ANI or resn DAN or resn XAN)) (not (resn ANI or resn DAN or resn XAN)) weight * 1 end - interaction (resn ANI or resn DAN or resn XAN) - (resn ANI or resn DAN or resn XAN) weight * 1 vdw 0.0 elec 0.0 end -end - -minimize powell nstep=40 drop=10 end -minimize powell nstep=40 drop=10 end - -!define flexible segments: -@RUN:flex_segment_side.cns - -do (mass =$Saprotocol.mass) (all) -do (mass=1000) (resn ANI or resn DAN or resn XAN) -do (fbeta = 0) (all) -do (fbeta = $Saprotocol.fbeta {1/ps} ) ( all ) - -if ($failure eq false) then - -if ($refine.solvshell eq true) then - - ! heat to 300 K - for $bath in (100 200 300) loop heat - do (harm = 0) (all) - do (harm = 5) (not name h* and not resn ANI and not resn DAN and not resn XAN and not resn DMS) - eval ($nchain1 = 0) - while ($nchain1 < $data.ncomponents) loop nloop1 - eval ($nchain1=$nchain1+1) - do (harm = 0) (attribute store5 = $nchain1 and - not ( name CA or name BB or name C or name N or name P or name C# or name C## )) - end loop nloop1 - do (vx=maxwell($bath)) (all) - do (vy=maxwell($bath)) (all) - do (vz=maxwell($bath)) (all) - if ($Data.scaling eq true) then - inline @RUN:set_noe_scale.cns - end if - - noe - scale ambi $Data.amb_cool3 - scale dist $Data.unamb_cool3 - end - igroup - interaction (not (resn ANI or resn DAN or resn XAN)) (not (resn ANI or resn DAN or resn XAN)) weight * 1 end - interaction (resn ANI or resn DAN or resn XAN) - (resn ANI or resn DAN or resn XAN) weight * 1 vdw 0.0 elec 0.0 end - end - - dynamics cartesian - nstep=$refine.heatsteps timest=0.002{ps} - temperature=$bath tcoupling = true - nprint=50 - end - end loop heat - - !define flexible segments: - @RUN:flex_segment_back.cns - - do (harm = 0) (all) - do (harm = 1) (not name h* and not resn ANI and not resn DAN and not resn XAN and not resn DMS) - eval ($nchain1 = 0) - while ($nchain1 < $data.ncomponents) loop nloop1 - eval ($nchain1=$nchain1+1) - do (harm = 0) (attribute store5 = $nchain1) - end loop nloop1 - do (harm = 20) (resn ANI and name OO) - do (harm = 20) (resn DAN and name OO) - - if ($Data.scaling eq true) then - inline @RUN:set_noe_scale.cns - end if - - noe - scale ambi $Data.amb_cool3 - scale dist $Data.unamb_cool3 - end - igroup - interaction (not (resn ANI or resn DAN or resn XAN)) (not (resn ANI or resn DAN or resn XAN)) weight * 1 end - interaction (resn ANI or resn DAN or resn XAN) - (resn ANI or resn DAN or resn XAN) weight * 1 vdw 0.0 elec 0.0 end - end - - dynamics cartesian - nstep=$refine.steps timest=0.002{ps} - temperature=$bath tcoupling = true - nprint=50 - end - - do (mass = $Saprotocol.mass) (all) - do (harm = 0) (all) - do (harm = 1) (name CA or name BB or name C or name N or name P or name C# or name C##) - do (harm = 20) (resn ANI and name OO) - do (harm = 20) (resn DAN and name OO) - eval ($nchain1 = 0) - while ($nchain1 < $data.ncomponents) loop nloop1 - eval ($nchain1=$nchain1+1) - do (harm = 0) (attribute store5 = $nchain1) - end loop nloop1 - - ! cool - for $bath in (300 200 100) loop cool - - if ($Data.scaling eq true) then - inline @RUN:set_noe_scale.cns - end if - - noe - scale ambi $Data.amb_cool3 - scale dist $Data.unamb_cool3 - end - igroup - interaction (not (resn ANI or resn DAN or resn XAN)) (not (resn ANI or resn DAN or resn XAN)) weight * 1 end - interaction (resn ANI or resn DAN or resn XAN) - (resn ANI or resn DAN or resn XAN) weight * 1 vdw 0.0 elec 0.0 end - end - dynamics cartesian - nstep=$refine.coolsteps timest=0.002{ps} - temperature=$bath tcoupling = true - nprint=50 - end - end loop cool - -end if - -end if - -if ($Data.scaling eq true) then - inline @RUN:set_noe_scale.cns -end if - -noe - scale ambi $Data.amb_cool3 - scale dist $Data.unamb_cool3 -end -igroup - interaction (not (resn ANI or resn DAN or resn XAN)) (not (resn ANI or resn DAN or resn XAN)) weight * 1 end - interaction (resn ANI or resn DAN or resn XAN) - (resn ANI or resn DAN or resn XAN) weight * 1 vdw 0.0 elec 0.0 end -end - -flag excl harm end - -if ($Data.flags.cdih eq true) then - flag incl cdih end -end if - -mini powell nstep 200 end - -{*== End if statement to turn on or off DMSO refinement ==*} -end if - -{* ======================= calculate free molecules internal energy *} - -parameter nbonds eps=1.0 end end - -igroup - interaction (not resn ANI and not resn DAN and not resn XAN and not (resn WAT or resn HOH or resn TIP*)) - (not resn ANI and not resn DAN and not resn XAN and not (resn WAT or resn HOH or resn TIP*)) weight * 1 end -end - -fix sele=(resn ANI or resn DAN or resn XAN or resn WAT or resn HOH or resn TIP* or resn DMS or resn SHA) end - -do (refx=x) (all) -do (refy=y) (all) -do (refz=z) (all) - -flag excl noe dani sani vean xrdc xpcs coll cdih zhar end -flag include bond angle dihe impr vdw elec end - -evaluate ($elec = 0.0) -evaluate ($eintfree = 0.0) -inline @RUN:calc_free-ene.cns - -fix sele=(not all) end - -! fix the shape -fix sele = (resn SHA) end - -do (x = refx) (all) -do (y = refy) (all) -do (z = refz) (all) - -{* ======================= final analysis *} - -igroup - interaction (not resn ANI and not resn DAN and not resn XAN and not resn DMS) - (not resn ANI and not resn DAN and not resn XAN and not resn DMS) weight * 1 end -end - -evaluate ($esolcplx = 0.0) -evaluate ($edesolv = 0.0) - -{* ===================== calculate complex internal energy *} -evaluate ($kinter = 1.0) -@RUN:scale_intra_only.cns -energy end -evaluate ($eintcplx = $bond + $angl + $impr + $dihe + $vdw + $elec) -if ($data.ncomponents = 1) then - evaluate ($eintfree = $eintcplx) -end if - -{* ===================== calculate final energies and write structure *} -if ($data.ncomponents > 1) then - evaluate ($kinter = 1.0) - @RUN:scale_inter_final.cns -else - @RUN:scale_intra_only.cns -end if - -evaluate ($cdih=0.0) -flag incl noe cdih end -if ($Data.flags.sani eq true) then - flag incl sani end -end if -if ($Data.flags.xrdc eq true) then - flag incl xrdc end -end if -if ($Data.flags.xpcs eq true) then - flag incl xpcs end -end if -if ($Data.flags.dani eq true) then - flag incl dani end -end if -if ($Data.flags.vean eq true) then - flag incl vean end -end if - -noe - scale dist $Data.unamb_cool3 - scale ambi $Data.amb_cool3 - scale hbon 0.0 - scale symm 0.0 - scale cont 0.0 -end -energy end -evaluate ($eair= $noe) -evaluate ($rms_test_noe=0.0) -evaluate ($violations_test_noe=0) -evaluate ($esym = 0.0) -evaluate ($ncs = 0.0) -evaluate ($zhar = 0.0) -if ($Data.flags.sym eq true) then - noe reset nres= 2000000 end - @RUN:symmultimer.cns - noe - scale symm $Data.ksym - end - energy end - evaluate ($esym = $noe) - if ($Data.noecv eq true) then - evaluate ($violations_test_noe=0) - evaluate ($rms_test_noe=0.0) - display Print out of cross-validated violations and rms not - display possible in combination with symmetry restraints - display CV values set therefore to 0 - end if - noe reset nres= 2000000 end - set message=normal echo=on end - !read all the experimental Data: - @@RUN:read_noes.cns(Iteration=$Iteration; Data=$Data; count=$count) - if ( $log_level = verbose ) then - set message=normal echo=on end - else - set message=off echo=off end - end if -else - print threshold=0.3 noe - evaluate ($rms_noe=$result) - evaluate ($violations_noe=$violations) - if ($Data.noecv eq true) then - evaluate ($rms_test_noe=$test_rms) - evaluate ($violations_test_noe=$test_violations) - else - evaluate ($rms_test_noe=0.0) - evaluate ($violations_test_noe=0) - end if -end if - -if ($Data.dnarest eq true) then - @RUN:data/sequence/dna-rna_restraints.def -end if - -energy end -evaluate ($etot = $ener - $noe) -evaluate ($noe = $eair) -evaluate ($etot = $etot + $noe) -if ($data.flags.em = true) then - @RUN:em_calc_lcc.cns(toppar=$toppar; data=$data; - saprotocol=$saprotocol; lcc=$lcc;) - flags exclude xref end -end if - -if ($refine.keepwater eq true) then - evaluate ($filename= "NEWIT:water/" + $file - "PREVIT:" - ".pdb" + "_dmso-all.pdb") - write coordinates sele= (all) output =$filename end -end if - -evaluate ($Data.flags.dihed = false) -evaluate ($filename= "NEWIT:water/" + $file - "PREVIT:" - ".pdb" + "w.pdb0") -@RUN:print_coorheader.cns - -do (q=1) (all) -write coordinates sele= (not (segid DMS* or resn DMS)) output =$filename end - -if ($refine.keepwater eq true) then - evaluate ($filename= "NEWIT:water/" + $file - "PREVIT:" - ".pdb" + "_dmso-inter.pdb") - write coordinates sele= (all) output =$filename end -end if - -stop - diff --git a/src/haddock/modules/flexref/cns/re_h2o.inp b/src/haddock/modules/flexref/cns/re_h2o.inp deleted file mode 100644 index b0f29795d..000000000 --- a/src/haddock/modules/flexref/cns/re_h2o.inp +++ /dev/null @@ -1,854 +0,0 @@ -! re_h2o.inp -! Perform an explitic solvent (water) refinement -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! - -@RUN:initialize.cns(iteration=$iteration;) - -@NEWIT:water/iteration.cns(iteration=$iteration;) - -@RUN:run.cns( -iteration =$iteration; -filenames =$filenames; -data =$data; -iterations=$iterations; -saprotocol=$saprotocol; -refine =$refine; -toppar =$toppar; -analysis =$analysis; -) - -evaluate ($log_level=quiet) - -if ( $log_level = verbose ) then - set message=normal echo=on end -else - set message=off echo=off end -end if - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!The next line will be changed automatically from python: -evaluate ($count = 1) -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!The next line will be changed automatically from python: -evaluate ($file = "") -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -!reads in structure, coordinates and parameter files -@RUN:read_struc.cns - -!set the energy flags: -inline @RUN:setflags.cns - -evaluate ($Data.flags.zres = false) -evaluate ($zhar = 0.0) - -evaluate ($Data.flags.elec = true) -flags include elec end - -!load the solvent topology files: -topology @@RUN:toppar/water-allhdg5-4.top end - -if ($Data.noecv eq true) then - evaluate ($fileseed=$file - ".pdb" + ".seed") - @@$fileseed(seed=$seed;npart=$npart) -else - evaluate ($seed = max($iteration,1)*$count*$Saprotocol.iniseed) -end if -set seed $seed end - -! read coordinate and copy to reference coordinate set -coor @@$file -coor copy end - -{*== check first for failed structures ==*} -evaluate ($failure = false) -evaluate ($filefail= "NEWIT:water/" + $file - "PREVIT:" - ".pdb" + "w.fail") -fileexist $filefail end -evaluate ($failure = $result) - -! check for CG molecule -eval($nchain1= 1) -eval($coarse = false) -while ($nchain1 <= $data.ncomponents) loop cloop0 - if ($toppar.cg_$nchain1 = true) then - eval($coarse = true) - end if - eval($nchain1 = $nchain1 + 1) -end loop cloop0 - -! perform the morphing to all atoms model if needed -if ($coarse eq true) then - inline @RUN:read_struc-cg.cns - inline @RUN:cg-to-aa.cns - - ! reset non-bonded parameters to all atoms defaults - parameter - nbonds - nbxmod=5 atom cdie shift - cutnb=9.5 ctofnb=8.5 ctonnb=6.5 eps=1.0 e14fac=0.4 inhibit 0.25 - wmin=0.5 tolerance 0.5 - end - end - -end if - -if ($data.waterdock eq true) then - inline @RUN:read_water1.cns -end if - -if ($Data.flags.sani eq true) then - flag incl sani end - coor select (not known and resn ani) end - if ($select gt 0) then - coor @@$tensor_pdb - - {* Find CoM of protein and move tensor 100 A away *} - show ave (x) (name CA or name BB or name C1') - evaluate ($xcent=$result) - show ave (y) (name CA or name BB or name C1') - evaluate ($ycent=$result) - show ave (z) (name CA or name BB or name C1') - evaluate ($zcent=$result) - do (x=x+$xcent+100) (resn ANI) - do (y=y+$ycent+100) (resn ANI) - do (z=z+$zcent+100) (resn ANI) - - evaluate ($rantens = true) - else - evaluate ($rantens = false) - end if - - {* Harmonic restraints to keep it far away *} - do (refx=x) (all) - do (refy=y) (all) - do (refz=z) (all) - do (harmonic=20.0)(resn ANI and name OO) - do (harmonic=0.0) (resn ANI and name X ) - do (harmonic=0.0) (resn ANI and name Y ) - do (harmonic=0.0) (resn ANI and name Z ) - do (harmonic=0.0) (not (resn ANI)) - restraints harmonic exponent=2 end - flags include harm end -end if - -evaluate ($xanmin = false) -if ($Data.flags.xrdc eq true) then - evaluate ($xanmin = true) - flag incl xrdc end -end if -if ($Data.flags.xpcs eq true) then - evaluate ($xanmin = true) - flag incl xpcs end -end if -if ($xanmin eq true) then - coor select (not known and resn xan) end - if ($select gt 0) then - coor @@$tensor_para_pdb - - {* Find CoM of protein and move tensor 100 A away *} - show ave (x) (name CA or name BB or name C1') - evaluate ($xcent=$result) - show ave (y) (name CA or name BB or name C1') - evaluate ($ycent=$result) - show ave (z) (name CA or name BB or name C1') - evaluate ($zcent=$result) - do (x=x+$xcent+100) (resn XAN) - do (y=y+$ycent+100) (resn XAN) - do (z=z+$zcent+100) (resn XAN) - evaluate ($rantens_para = true) - else - evaluate ($rantens_para = false) - end if -end if - -if ($Data.flags.dani eq true) then - flag incl dani end - coor select (not known and resn DAN) end - if ($select gt 0) then - coor @@RUN:toppar/tensor_dani.pdb - - {* Find CoM of protein and move tensor 100 A away *} - show ave (x) (name CA or name BB or name C1') - evaluate ($xcent=$result) - show ave (y) (name CA or name BB or name C1') - evaluate ($ycent=$result) - show ave (z) (name CA or name BB or name C1') - evaluate ($zcent=$result) - do (x=x+$xcent+100) (resn DAN) - do (y=y+$ycent+100) (resn DAN) - do (z=z+$zcent+100) (resn DAN) - - evaluate ($rantens_dani = true) - else - evaluate ($rantens_dani = false) - end if - - {* Harmonic restraints to keep it far away *} - do (refx=x) (all) - do (refy=y) (all) - do (refz=z) (all) - do (harmonic=20.0)(resn DAN and name OO) - do (harmonic=0.0) (resn DAN and name X ) - do (harmonic=0.0) (resn DAN and name Y ) - do (harmonic=0.0) (resn DAN and name Z ) - do (harmonic=0.0) (not (resn ANI or resn DAN)) - restraints harmonic exponent=2 end - flags include harm end -end if - -if ($Data.flags.rg eq true ) then - collapse - force $Data.krg_cool3 - target $Data.rgtarg - sele (not (resn ANI or resn XAN or resn WAT or resn HOH or resn TIP3)) - end -end if - -do (refx = x) (all) -do (refy = y) (all) -do (refz = z) (all) - -{*== check if water refinement should be performed ==*} -if ($refine.firstwater eq "yes") then - if ($refine.solvshell eq true) then - if ($failure eq false) then - ! generate water layer - do (segid = "PROT") (segid " ") - @RUN:generate_water.cns - do (segid = " ") (segid "PROT") - end if - else - parameter nbonds eps=$Data.epsilon end end - end if -end if - -set seed $seed end -set message=normal echo=on end -inline @RUN:read_data.cns - -! read EM-data -if ($data.flags.em = true) then - @RUN:em_read_data.cns(data=$data;) - if ($data.em.itw = true) then - flags include xref end - end if -end if - -if ($refine.solvshell eq true) then - inline @RUN:water_rest.cns -end if - -if ($Data.ranair eq true) then - if ($Data.ncomponents > 2) then - display ========= Unsupported option =========== - display Random definition of AIRs with more than - display two molecules currently unsupported - display ======================================== - stop - end if - evaluate ($Data.noecv = false) - noe - reset - nrestraints = 100000 ! allocate space for NOEs - ceiling 1000 - end -! @RUN:contactairs.cns - - !Read back in hbond data - if ($Data.hbond_lastit ge &iteration) then - if ($Data.hbond_firstit le &iteration) then - if ($Data.hbonds_on eq true) then - noe @@$hbond_fname end - end if - end if - end if - - noe - averaging * sum - potential * soft - scale * 1.0 - sqconstant * 1.0 - sqexponent * 2 - soexponent * 1 - rswitch * 1.0 - sqoffset * 0.0 - asymptote * 2.0 - msoexponent * 1 - masymptote * -0.1 - mrswitch * 1.0 - avexpo hbond 20 - end - inline @RUN:water_rest.cns -end if - -{* random removal of restaints ================================== *} -!Make sure that at least as many distance restraints are successfully -!read as the number of partitions for cross-validation -evaluate ($numnoe = 999) -noe ? end -if ($NUMNOE = 0) then - evaluate ($Data.ncvpart = 1) - evaluate ($Data.noecv = FALSE) -end if - -if ($NUMNOE lt $Data.ncvpart) then - noe part=1 end - evaluate ($Data.ncvpart = 1) - evaluate ($Data.noecv = FALSE) -end if - -if ($Data.noecv eq true) then - set message=on echo=on end - noe cv $npart ? end -else - evaluate ($npart = 0) -end if - -if ( $log_level = verbose ) then - set message=normal echo=on end -else - set message=off echo=off end -end if - -if ($Data.flags.sani eq true) then - flag incl sani end -else - flag excl sani end -end if - -if ($Data.flags.xrdc eq true) then - flag incl xrdc end -else - flag excl xrdc end -end if - -if ($Data.flags.xpcs eq true) then - flag incl xpcs end -else - flag excl xpcs end -end if - -if ($Data.flags.dani eq true) then - flag incl dani end -else - flag excl dani end -end if - -if ($Data.flags.vean eq true) then - flag incl vean end -else - flag excl vean end -end if - -!set the rdc coefficients: -evaluate ($nrdc=1) -while ($nrdc <= $data.numrdc) loop rdc - evaluate ($cln = "rd" + encode($nrdc) ) - if ($Data.rdc_choice_$nrdc eq "SANI") then - sani class $cln coeff 0.0 $Data.rdc_d_$nrdc $Data.rdc_r_$nrdc end - sani class $cln force $data.rdc_cool3_$nrdc end - end if - if ($Data.rdc_choice_$nrdc eq "VANGLE") then - vean class $cln force $Data.fin_bor_cool3_$nrdc $Data.fin_cen_cool3_$nrdc end - end if - if ($Data.rdc_choice_$nrdc eq "XRDC") then - xrdc class $cln coeff $Data.rdc_d_$nrdc $Data.rdc_r_$nrdc end - xrdc class $cln force $data.rdc_cool3_$nrdc end - end if - evaluate ($nrdc=$nrdc+1) -end loop rdc - -!set the pcs coefficients: -evaluate ($npcs=1) -while ($npcs <= $data.numpcs) loop pcs - evaluate ($cln = "pc" + encode($npcs) ) - if ($Data.pcs_choice_$npcs eq "XPCS") then - xpcs class $cln coeff $Data.pcs_d_$npcs $Data.pcs_r_$npcs end - xpcs class $cln force $data.pcs_cool3_$npcs end - end if - evaluate ($npcs=$npcs+1) -end loop pcs - -! set dani coefficients: -evaluate ($ndani=1) -while ($ndani <= $data.numdani) loop dani - evaluate ($cln = "da" + encode($ndani) ) - if ($Data.dan_choice_$ndani eq "DANI") then - dani class $cln coeff $Data.dan_tc_$ndani $Data.dan_anis_$ndani $Data.dan_r_$ndani $Data.dan_wh_$ndani $Data.dan_wn_$ndani end - dani class $cln force $data.dan_cool3_$ndani end - end if - evaluate ($ndani=$ndani+1) -end loop dani - - -@RUN:symmultimer.cns - -if ($Data.scaling eq true) then - inline @RUN:set_noe_scale.cns -end if -igroup - interaction (not (resn ANI or resn DAN or resn XAN)) (not (resn ANI or resn DAN or resn XAN)) weight * 1 end - interaction (resn ANI or resn DAN or resn XAN) - (resn ANI or resn DAN or resn XAN) weight * 1 vdw 0.0 elec 0.0 end -end - -noe - rswitch ambi $Data.Rswi_cool3 - rswitch dist $Data.Rswi_cool3 - rswitch hbon $Data.Rswi_cool3 - - mrswitch ambi $Data.mRswi_cool3 - mrswitch dist $Data.mRswi_cool3 - mrswitch hbon $Data.mRswi_cool3 - - asym ambi $Data.asy_cool3 - asym dist $Data.asy_cool3 - asym hbon $Data.asy_cool3 - - masym ambi $Data.masy_cool3 - masym dist $Data.masy_cool3 - masym hbon $Data.masy_cool3 - - scale ambi $Data.amb_cool3 - scale dist $Data.unamb_cool3 - scale hbon $Data.hbond_cool3 -end - -restraints dihedral - scale=$Data.dihedrals_cool3 -end - -if ($Data.dnarest eq true) then - @RUN:data/sequence/dna-rna_restraints.def -end if - -if ($Data.flags.sani eq true) then - if ($rantens eq true) then - @RUN:mini_tensor.cns - end if -end if - -evaluate ($xanmin = false) -if ($Data.flags.xrdc eq true) then - evaluate ($xanmin = true) -end if -if ($Data.flags.xpcs eq true) then - evaluate ($xanmin = true) -end if -if ($xanmin eq true) then -! if ($rantens_para eq true) then - @RUN:mini_tensor_para.cns -! end if -end if - -if ($Data.flags.dani eq true) then - if ($rantens_dani eq true) then - @RUN:mini_tensor_dani.cns - end if -end if - -if ($Data.ssdihed eq all ) then - inline @RUN:protein-ss-restraints-all.def - flag incl cdih end -end if -if ($Data.ssdihed eq alpha ) then - inline @RUN:protein-ss-restraints-alpha.def - flag incl cdih end -end if -if ($Data.ssdihed eq alphabeta ) then - inline @RUN:protein-ss-restraints-alpha-beta.def - flag incl cdih end -end if - -energy end - -{*== check if water refinement should be performed ==*} -if ($refine.firstwater eq "yes") then - -! since we do not use SHAKe, increase the water bond angle energy constant -parameter - bond (resn WAT ) (resn WAT ) 1000 TOKEN - angle (resn WAT ) (resn WAT ) (resn WAT ) 500 TOKEN - bond (resn HOH ) (resn HOH ) 1000 TOKEN - angle (resn HOH ) (resn HOH ) (resn HOH ) 500 TOKEN - bond (resn TIP*) (resn TIP*) 1000 TOKEN - angle (resn TIP*) (resn TIP*) (resn TIP*) 500 TOKEN -end - -! fix the protein for initial minimization -fix sele = (not (resn WAT or resn HOH or resn TIP*)) end - -! fix rigid molecules including their waters if present -evaluate($nchain1 = 0) -while ($nchain1 < $data.ncomponents) loop nloop1 - evaluate($nchain1 = $nchain1 + 1) - evaluate($fcounter=0) - if ($Toppar.nseg_$nchain1 = 0) then - display NO FLEXIBLE SIDE-CHAINS SEGMENTS for molecule $nchain1 - display FIXING IT - fix sele = (segid $Toppar.prot_segid_$nchain1 and not name H*) end - end if -end loop nloop1 - -! fix the shape -fix sele = (resn SHA) end - -minimize powell nstep=40 drop=100 end - -! release protein and restrain harmonically -fix sele = (not all) end - -! fix the shape -fix sele = (resn SHA) end - -! fix rigid molecules -evaluate($nchain1 = 0) -while ($nchain1 < $data.ncomponents) loop nloop1 - evaluate($nchain1 = $nchain1 + 1) - evaluate($fcounter=0) - if ($Toppar.nseg_$nchain1 = 0) then - display NO FLEXIBLE SIDE-CHAINS SEGMENTS for molecule $nchain1 - display FIXING IT - fix sele = (segid $Toppar.prot_segid_$nchain1 and not name H*) end - end if -end loop nloop1 - -do (refx=x) (all) -do (refy=y) (all) -do (refz=z) (all) -restraints harmonic - exponent = 2 -end -do (harm = 0) (all) -do (harm = 5) (not name h* and not (resn WAT or resn HOH or resn TIP*)) -do (harmonic=20.0)(resn ANI and name OO) -do (harmonic=0.0) (resn ANI and name X ) -do (harmonic=0.0) (resn ANI and name Y ) -do (harmonic=0.0) (resn ANI and name Z ) -do (harmonic=20.0)(resn DAN and name OO) -do (harmonic=0.0) (resn DAN and name X ) -do (harmonic=0.0) (resn DAN and name Y ) -do (harmonic=0.0) (resn DAN and name Z ) - -igroup - interaction (not (resn ANI or resn DAN or resn XAN)) (not (resn ANI or resn DAN or resn XAN)) weight * 1 end - interaction (resn ANI or resn DAN or resn XAN) - (resn ANI or resn DAN or resn XAN) weight * 1 vdw 0.0 elec 0.0 end -end - -minimize powell nstep=40 drop=10 end -minimize powell nstep=40 drop=10 end - -!define flexible segments: -@RUN:flex_segment_side.cns - -do (mass =$Saprotocol.mass) (all) -do (mass=1000) (resn ANI or resn DAN or resn XAN) -do (fbeta = 0) (all) -do (fbeta = $Saprotocol.fbeta {1/ps} ) ( all ) - -if ($failure eq false) then - -if ($refine.solvshell eq true) then - - ! heat to 300 K - for $bath in (100 200 300) loop heat - do (harm = 0) (all) - do (harm = 5) (not name h* and not resn ANI and not resn DAN and not resn XAN and not (resn WAT or resn HOH or resn TIP3)) - eval ($nchain1 = 0) - while ($nchain1 < $data.ncomponents) loop nloop1 - eval ($nchain1=$nchain1+1) - do (harm = 0) (attribute store5 = $nchain1 and - not ( name CA or name BB or name C or name N or name P or name C# or name C## )) - end loop nloop1 - do (vx=maxwell($bath)) (all) - do (vy=maxwell($bath)) (all) - do (vz=maxwell($bath)) (all) - if ($Data.scaling eq true) then - inline @RUN:set_noe_scale.cns - end if - - noe - scale ambi $Data.amb_cool3 - scale dist $Data.unamb_cool3 - end - igroup - interaction (not (resn ANI or resn DAN or resn XAN)) (not (resn ANI or resn DAN or resn XAN)) weight * 1 end - interaction (resn ANI or resn DAN or resn XAN) - (resn ANI or resn DAN or resn XAN) weight * 1 vdw 0.0 elec 0.0 end - end - - dynamics cartesian - nstep=$refine.heatsteps timest=0.002{ps} - temperature=$bath tcoupling = true - nprint=50 - end - end loop heat - - !define flexible segments: - @RUN:flex_segment_back.cns - - do (harm = 0) (all) - do (harm = 1) (not name h* and not resn ANI and not resn DAN and not resn XAN and not (resn WAT or resn HOH or resn TIP3)) - eval ($nchain1 = 0) - while ($nchain1 < $data.ncomponents) loop nloop1 - eval ($nchain1=$nchain1+1) - do (harm = 0) (attribute store5 = $nchain1) - end loop nloop1 - do (harm = 20) (resn ANI and name OO) - do (harm = 20) (resn DAN and name OO) - - if ($Data.scaling eq true) then - inline @RUN:set_noe_scale.cns - end if - - noe - scale ambi $Data.amb_cool3 - scale dist $Data.unamb_cool3 - end - igroup - interaction (not (resn ANI or resn DAN or resn XAN)) (not (resn ANI or resn DAN or resn XAN)) weight * 1 end - interaction (resn ANI or resn DAN or resn XAN) - (resn ANI or resn DAN or resn XAN) weight * 1 vdw 0.0 elec 0.0 end - end - - dynamics cartesian - nstep=$refine.steps timest=0.002{ps} - temperature=$bath tcoupling = true - nprint=50 - end - - do (mass = $Saprotocol.mass) (all) - do (harm = 0) (all) - do (harm = 1) (name CA or name BB or name C or name N or name P or name C# or name C##) - do (harm = 20) (resn ANI and name OO) - do (harm = 20) (resn DAN and name OO) - eval ($nchain1 = 0) - while ($nchain1 < $data.ncomponents) loop nloop1 - eval ($nchain1=$nchain1+1) - do (harm = 0) (attribute store5 = $nchain1) - end loop nloop1 - - ! cool - for $bath in (300 200 100) loop cool - - if ($Data.scaling eq true) then - inline @RUN:set_noe_scale.cns - end if - - noe - scale ambi $Data.amb_cool3 - scale dist $Data.unamb_cool3 - end - igroup - interaction (not (resn ANI or resn DAN or resn XAN)) (not (resn ANI or resn DAN or resn XAN)) weight * 1 end - interaction (resn ANI or resn DAN or resn XAN) - (resn ANI or resn DAN or resn XAN) weight * 1 vdw 0.0 elec 0.0 end - end - dynamics cartesian - nstep=$refine.coolsteps timest=0.002{ps} - temperature=$bath tcoupling = true - nprint=50 - end - end loop cool - -end if - -end if - -if ($Data.scaling eq true) then - inline @RUN:set_noe_scale.cns -end if - -noe - scale ambi $Data.amb_cool3 - scale dist $Data.unamb_cool3 -end -igroup - interaction (not (resn ANI or resn DAN or resn XAN)) (not (resn ANI or resn DAN or resn XAN)) weight * 1 end - interaction (resn ANI or resn DAN or resn XAN) - (resn ANI or resn DAN or resn XAN) weight * 1 vdw 0.0 elec 0.0 end -end - -flag excl harm end - -if ($Data.flags.cdih eq true) then - flag incl cdih end -end if - -mini powell nstep 200 end - -{*== End if statement to turn on or off water refinement ==*} -end if - -{* ======================= calculate free molecules internal energy *} - -parameter nbonds eps=1.0 end end - -igroup - interaction (not resn ANI and not resn DAN and not resn XAN and not (resn WAT or resn HOH or resn TIP*)) - (not resn ANI and not resn DAN and not resn XAN and not (resn WAT or resn HOH or resn TIP*)) weight * 1 end -end - -fix sele=(resn ANI or resn DAN or resn XAN or resn WAT or resn HOH or resn TIP* or resn DMS or resn SHA) end - -do (refx=x) (all) -do (refy=y) (all) -do (refz=z) (all) - -flag excl noe dani sani vean xrdc xpcs coll cdih zhar end -flag include bond angle dihe impr vdw elec end - -evaluate ($elec = 0.0) -evaluate ($eintfree = 0.0) -inline @RUN:calc_free-ene.cns - -fix sele=(not all) end - -! fix the shape -fix sele = (resn SHA) end - -do (x = refx) (all) -do (y = refy) (all) -do (z = refz) (all) - -{* ======================= final analysis *} - -igroup - interaction (not resn ANI and not resn DAN and not resn XAN and not (resn WAT or resn HOH or resn TIP*)) - (not resn ANI and not resn DAN and not resn XAN and not (resn WAT or resn HOH or resn TIP*)) weight * 1 end -end - -evaluate ($esolcplx = 0.0) -evaluate ($edesolv = 0.0) - -{* ===================== calculate complex internal energy *} -evaluate ($kinter = 1.0) -@RUN:scale_intra_only.cns -energy end -evaluate ($eintcplx = $bond + $angl + $impr + $dihe + $vdw + $elec) -if ($data.ncomponents = 1) then - evaluate ($eintfree = $eintcplx) -end if - -{* ===================== calculate final energies and write structure *} -if ($data.ncomponents > 1) then - evaluate ($kinter = 1.0) - @RUN:scale_inter_final.cns -else - @RUN:scale_intra_only.cns -end if - -evaluate ($cdih=0.0) -flag incl noe cdih end -if ($Data.flags.sani eq true) then - flag incl sani end -end if -if ($Data.flags.xrdc eq true) then - flag incl xrdc end -end if -if ($Data.flags.xpcs eq true) then - flag incl xpcs end -end if -if ($Data.flags.dani eq true) then - flag incl dani end -end if -if ($Data.flags.vean eq true) then - flag incl vean end -end if - -noe - scale dist $Data.unamb_cool3 - scale ambi $Data.amb_cool3 - scale hbon 0.0 - scale symm 0.0 - scale cont 0.0 -end -energy end -evaluate ($eair= $noe) -evaluate ($rms_test_noe=0.0) -evaluate ($violations_test_noe=0) -evaluate ($esym = 0.0) -evaluate ($ncs = 0.0) -evaluate ($zhar = 0.0) -if ($Data.flags.sym eq true) then - noe reset nres= 2000000 end - @RUN:symmultimer.cns - noe - scale symm $Data.ksym - end - energy end - evaluate ($esym = $noe) - if ($Data.noecv eq true) then - evaluate ($violations_test_noe=0) - evaluate ($rms_test_noe=0.0) - display Print out of cross-validated violations and rms not - display possible in combination with symmetry restraints - display CV values set therefore to 0 - end if - noe reset nres= 2000000 end - set message=normal echo=on end - !read all the experimental Data: - @@RUN:read_noes.cns(Iteration=$Iteration; Data=$Data; count=$count) - if ( $log_level = verbose ) then - set message=normal echo=on end - else - set message=off echo=off end - end if -else - print threshold=0.3 noe - evaluate ($rms_noe=$result) - evaluate ($violations_noe=$violations) - if ($Data.noecv eq true) then - evaluate ($rms_test_noe=$test_rms) - evaluate ($violations_test_noe=$test_violations) - else - evaluate ($rms_test_noe=0.0) - evaluate ($violations_test_noe=0) - end if -end if - -if ($Data.dnarest eq true) then - @RUN:data/sequence/dna-rna_restraints.def -end if - -energy end -evaluate ($etot = $ener - $noe) -evaluate ($noe = $eair) -evaluate ($etot = $etot + $noe) -if ($data.flags.em = true) then - @RUN:em_calc_lcc.cns(toppar=$toppar; data=$data; - saprotocol=$saprotocol; lcc=$lcc;) - flags exclude xref end -end if - -if ($refine.keepwater eq true) then - evaluate ($filename= "NEWIT:water/" + $file - "PREVIT:" - ".pdb" + "_h2o-all.pdb") - write coordinates sele= (all) output =$filename end -end if - -evaluate ($Data.flags.dihed = false) -evaluate ($filename= "NEWIT:water/" + $file - "PREVIT:" - ".pdb" + "w.pdb0") -@RUN:print_coorheader.cns - -do (q=1) (all) -write coordinates sele= (not (resn WAT or resn HOH or resn TIP*)) output =$filename end - -if ($refine.keepwater eq true) then - evaluate ($filename= "NEWIT:water/" + $file - "PREVIT:" - ".pdb" + "_h2o-inter.pdb") - write coordinates sele= (all) output =$filename end -end if - -stop - diff --git a/src/haddock/modules/flexref/cns/read_struc-cg.cns b/src/haddock/modules/flexref/cns/read_struc-cg.cns deleted file mode 100644 index b9d25a751..000000000 --- a/src/haddock/modules/flexref/cns/read_struc-cg.cns +++ /dev/null @@ -1,24 +0,0 @@ -! -! Change segid of CG structure and read AA topology file -! -if ($iteration = 2) then - evaluate ($nchain=0) - while ($nchain < $data.ncomponents) loop nloop1 - evaluate ($nchain = $nchain + 1) - if ($toppar.cg_$nchain eq true) then - evaluate ($newseg = $Toppar.prot_segid_$nchain + "CG") - do (segid = $newseg) (segid $Toppar.prot_segid_$nchain) - evaluate($psf_infile_$nchain= "RUN:begin-aa/" + $Toppar.prot_root_$nchain + ".psf") - structure @@$psf_infile_$nchain end - end if - end loop nloop1 -end if - -igroup - interaction (not (resn ANI or resn DAN or resn XAN)) - (not (resn ANI or resn DAN or resn XAN)) weight * 1 end - interaction (resn ANI or resn DAN or resn XAN) - (resn ANI or resn DAN or resn XAN) weight * 1 vdw 0.0 elec 0.0 end -end - -inline @RUN:charge-beads-interactions.cns diff --git a/src/haddock/modules/flexref/cns/rebuild-unknown.cns b/src/haddock/modules/flexref/cns/rebuild-unknown.cns deleted file mode 100644 index f2bc6f1b5..000000000 --- a/src/haddock/modules/flexref/cns/rebuild-unknown.cns +++ /dev/null @@ -1,238 +0,0 @@ - ! rebuild-unknown.cns -! Rebuild unknown atoms in the context of the complex -! -! *********************************************************************** -! * Copyright 2003-2017 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! -show sum(1) (store9) -evaluate ($tobuild=$result) -display REBUILDING $tobuild ATOMS - -energy end - -if ( $tobuild > 0 ) then - - fix selection=(not(store9)) end - - show sum(1) (store9) - evaluate ($moving=$result) - - if ( $moving > 0 ) then - for $id in id (tag and byres(store9)) loop avco - - show ave(x) (byres(id $id) and known) - evaluate ($ave_x=$result) - show ave(y) (byres(id $id) and known) - evaluate ($ave_y=$result) - show ave(z) (byres(id $id) and known) - evaluate ($ave_z=$result) - - do (x=$ave_x) (byres(id $id) and store9) - do (y=$ave_y) (byres(id $id) and store9) - do (z=$ave_z) (byres(id $id) and store9) - - end loop avco - - do (x=x+2*random(1.0)-1) (store9) - do (y=y+2*random(1.0)-1) (store9) - do (z=z+2*random(1.0)-1) (store9) - - {- start parameter for the side chain building -} - parameter - nbonds - rcon=20. nbxmod=-2 repel=0.9 wmin=0.1 tolerance=1. - rexp=2 irexp=2 inhibit=0.25 - end - end - - {- Friction coefficient, in 1/ps. -} - do (fbeta=100) (store9) - - evaluate ($bath=300.0) - evaluate ($nstep=500) - evaluate ($timestep=0.0005) - - do (refy=mass) (store9) - - do (mass=20) (store9) - - igroup interaction - (store9) (store9 or known) - end - - {- turn on initial energy terms -} - flags exclude * include bond angle vdw end - - minimize powell nstep=50 nprint=10 end - - do (vx=maxwell($bath)) (store9) - do (vy=maxwell($bath)) (store9) - do (vz=maxwell($bath)) (store9) - - flags exclude vdw include impr end - - dynamics cartesian - nstep=50 - timestep=$timestep - tcoupling=true temperature=$bath - nprint=$nstep - cmremove=false - end - - flags include vdw end - - minimize powell nstep=50 nprint=10 end - - do (vx=maxwell($bath)) (store9) - do (vy=maxwell($bath)) (store9) - do (vz=maxwell($bath)) (store9) - - dynamics cartesian - nstep=50 - timestep=$timestep - tcoupling=true temperature=$bath - nprint=$nstep - cmremove=false - end - - parameter - nbonds - rcon=2. nbxmod=-3 repel=0.75 - end - end - - minimize powell nstep=100 nprint=25 end - - do (vx=maxwell($bath)) (store9) - do (vy=maxwell($bath)) (store9) - do (vz=maxwell($bath)) (store9) - - dynamics cartesian - nstep=$nstep - timestep=$timestep - tcoupling=true temperature=$bath - nprint=$nstep - cmremove=false - end - - {- turn on all energy terms -} - flags include dihe ? end - - {- set repel to ~vdw radii -} - parameter - nbonds - repel=0.89 - end - end - - minimize powell nstep=500 nprint=50 end - - flags exclude * include bond angl impr dihe vdw elec end - - {- return masses to something sensible -} - do (mass=refy) (store9) - - do (vx=maxwell($bath)) (store9) - do (vy=maxwell($bath)) (store9) - do (vz=maxwell($bath)) (store9) - - dynamics cartesian - nstep=$nstep - timestep=$timestep - tcoupling=true temperature=$bath - nprint=$nstep - cmremove=false - end - - {- some minimisation -} - minimize powell - nstep=500 - drop=40.0 - nprint=50 - end - - {- turn on electrostatic and proper non-bonded-} - parameter - nbonds - repel=0 - nbxmod=5 atom cdie shift - cutnb=9.5 ctofnb=8.5 ctonnb=6.5 eps=10.0 e14fac=0.4 inhibit 0.25 - wmin=0.5 - tolerance 0.5 - end - end - - flags exclude * include bond angl impr dihe vdw elec end - - minimize powell - nstep=500 - drop=40.0 - nprint=50 - end - - do (vx=maxwell($bath)) (store9) - do (vy=maxwell($bath)) (store9) - do (vz=maxwell($bath)) (store9) - - dynamics cartesian - nstep=$nstep - timestep=$timestep - tcoupling=true temperature=$bath - nprint=$nstep - cmremove=false - end - - {- some final minimisation -} - minimize powell - nstep=500 - drop=40.0 - nprint=50 - end - - print thres=0.02 bonds - print thres=5. angles - - end if - - energy end - - @RUN:flex_segment_back.cns - fix sele=((attr store5 = 0) and not name H*) end - minimize powell - nstep=50 - drop=40.0 - nprint=5 - end - fix sele=(not all) end - - energy end - - print thres=0.02 bonds - print thres=5. angles - flag excl noe cdih end - - do (q=1.0) (store9) - end if - - fix selection=( none ) end - energy end - evaluate ($bonded = $bond + $angl + $impr) - if ($bonded > 10000) then - minimize powell nstep=100 drop=10.0 nprint=10 end - end if - if ($bonded > 10000) then - energy end - evaluate ($bonded = $bond + $angl + $impr) - evaluate ($dispfile = $coor_outfile - ".pdb" + "_" + encode($nstruc) + ".warn") - set display=$dispfile end - display WARNING: the bonded energy is very high: - display Ebonded-total=$bonded Ebond=$bond Eangl=$angl Eimpr=$impr - display Something is possibly wrong with your input structure - close $dispfile end - end if - diff --git a/src/haddock/modules/flexref/cns/refine.inp b/src/haddock/modules/flexref/cns/refine.inp deleted file mode 100644 index bab82adc3..000000000 --- a/src/haddock/modules/flexref/cns/refine.inp +++ /dev/null @@ -1,1738 +0,0 @@ -! refine.inp -! The core docking script of HADDOCK performing rigid-body docking -! and semi-flexible refinement in torsion angle space -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! - -@RUN:initialize.cns(iteration=$iteration;) - -@NEWIT:iteration.cns(iteration=$iteration;) - -@RUN:run.cns( -iteration =$iteration; -filenames =$filenames; -Data =$Data; -iterations=$iterations; -saprotocol=$saprotocol; -refine =$refine; -toppar =$toppar; -analysis =$analysis;) - -evaluate ($log_level=quiet) -!evaluate ($log_level=verbose) - -if ( $log_level = verbose ) then - set message=normal echo=on end -else - set message=off echo=off end -end if - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!The next line will be changed automatically from python: -evaluate ($whichMD="torsion") -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!The next line will be changed automatically from python: -evaluate ($count = 1) -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!The next line will be changed automatically from python: -evaluate ($file = "") -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -!reads in structure, coordinates and parameter files -@RUN:read_struc.cns - -flag include bond angle impr vdw end - -if ($Data.flags.dihed eq true) then - flag include dihed end -end if - -do (fbeta=$Saprotocol.fbeta) (all) -do (mass=$Saprotocol.mass) (all) -do (mass=1000) (resn ani) -do (mass=1000) (resn xan) -do (mass=1000) (resn dan) - -evaluate ($end_count = $iterations.ini_count + $iterations.structures - 1) - -if ($Data.noecv eq true) then - if ($iteration = 0) then - evaluate ($npart = 1 + mod($count,$Data.ncvpart)) - evaluate ($fileseed="NEWIT:" + $Filenames.fileroot + "_" + encode($count) + ".seed") - evaluate ($seed = max($iteration,1)*$count*$Saprotocol.iniseed) - else - evaluate ($fileseed= $file - ".pdb" + ".seed") - @@$fileseed (seed=$seed;npart=$npart ) - evaluate ($fileseed="NEWIT:" + $Filenames.fileroot + "_" + encode($count) + ".seed") - evaluate ($num = $count + $iterations.structures) - evaluate ($file_r_seed="NEWIT:" + $Filenames.fileroot + "_" + encode($num) + ".seed") - if ($saprotocol.rotate180_it1 eq true) then - set display=$file_r_seed end - display module(seed;npart) - display define ( - display currentseed = $seed; - display currentpart = $npart; - display ) - display evaluate (&seed=¤tseed) - display evaluate (&npart=¤tpart) - close $file_r_seed end - end if - end if - set display=$fileseed end - display module(seed;npart) - display define ( - display currentseed = $seed; - display currentpart = $npart; - display ) - display evaluate (&seed=¤tseed) - display evaluate (&npart=¤tpart) - close $fileseed end -else - evaluate ($seed = max($iteration,1)*$count*$Saprotocol.iniseed) -end if -set seed $seed end - -coor init end -coor @@$file - -! reinitialize the DUM residue -if ($Data.flags.centroids = true) then - if ($iteration = 0) then - @RUN:centroids_initialize.cns - end if -end if - -! check for the presence of ions and add covalent bond -if ($iteration = 1) then - @RUN:covalions.cns -end if - -{* Find CoM of protein *} -show ave (x) (name CA or name BB or name C1') -evaluate ($xcent=$result) -show ave (y) (name CA or name BB or name C1') -evaluate ($ycent=$result) -show ave (z) (name CA or name BB or name C1') -evaluate ($zcent=$result) - -coor select (not known and resn ani) end -if ($select gt 0) then - coor @@$tensor_pdb - - {* Find CoM of protein and move tensor 100 A away *} - show ave (x) (name CA or name BB or name C1') - evaluate ($xcent=$result) - show ave (y) (name CA or name BB or name C1') - evaluate ($ycent=$result) - show ave (z) (name CA or name BB or name C1') - evaluate ($zcent=$result) - do (x=x+$xcent+100) (resn ANI) - do (y=y+$ycent+100) (resn ANI) - do (z=z+$zcent+100) (resn ANI) - evaluate ($rantens = true) -else - evaluate ($rantens = false) -end if - -coor select (not known and resn xan) end -if ($select gt 0) then - coor @@$tensor_para_pdb - evaluate ($rantens_para = true) -else - evaluate ($rantens_para = false) -end if - -coor select (not known and resn dan) end -if ($select gt 0) then - coor @@RUN:toppar/tensor_dani.pdb - - {* Find CoM of protein and move tensor 100 A away *} - show ave (x) (name CA or name BB or name C1') - evaluate ($xcent=$result) - show ave (y) (name CA or name BB or name C1') - evaluate ($ycent=$result) - show ave (z) (name CA or name BB or name C1') - evaluate ($zcent=$result) - do (x=x+$xcent+100) (resn DAN) - do (y=y+$ycent+100) (resn DAN) - do (z=z+$zcent+100) (resn DAN) - evaluate ($rantens_dani = true) -else - evaluate ($rantens_dani = false) -end if - -!catch possible bound water and set high T steps to 0 -coor select ((resn WAT or resn HOH or resn TIP*)) end -if ($select gt 0) then - evaluate ($SaProtocol.initiosteps = 0) - evaluate ($SaProtocol.cool1_steps = 0) - evaluate ($refine.keepwater = true) -end if - -do (refx=x) (all) -do (refy=y) (all) -do (refz=z) (all) - -!set the energy flags: -inline @RUN:setflags.cns - -!read all the experimental Data: -evaluate ($lcc = 0) -set seed $seed end -set message=normal echo=on end -if ($data.waterdock eq false) then - inline @RUN:read_data.cns - if ($data.flags.em = true) then - @RUN:em_read_data.cns(Data=$data;) - end if - - if ($Data.flags.centroids = true) then - if ($iteration = 0) then - @RUN:centroids_set_restraints.cns - end if - end if -end if - -{* ======================= reset coordinates and proceed *} - -do (x = refx) (all) -do (y = refy) (all) -do (z = refz) (all) - -inline @RUN:read_water1.cns -if ($data.waterdock eq true) then - inline @RUN:water_rest.cns - set seed $seed end - set message=normal echo=on end - inline @RUN:read_data.cns -end if - -!set the energy flags: -inline @RUN:setflags.cns - -{* random removal of restaints ================================== *} -if ($Data.noecv eq true) then - set message=on echo=on end - noe cv $npart ? end -else - evaluate ($npart = 0) -end if - -if ( $log_level = verbose ) then - set message=normal echo=on end -else - set message=off echo=off end -end if - -!set the rdc coefficients: -evaluate ($nrdc=1) -while ($nrdc <= $data.numrdc) loop rdc - evaluate ($cln = "rd" + encode($nrdc) ) - if ($Data.rdc_choice_$nrdc eq "SANI") then - sani class $cln coeff 0.0 $Data.rdc_d_$nrdc $Data.rdc_r_$nrdc end - end if - if ($Data.rdc_choice_$nrdc eq "XRDC") then - xrdc class $cln coeff $Data.rdc_d_$nrdc $Data.rdc_r_$nrdc end - end if - evaluate ($nrdc=$nrdc+1) -end loop rdc - -!set the pcs coefficients: -evaluate ($npcs=1) -while ($npcs <= $data.numpcs) loop pcs - if ($Data.pcs_choice_$npcs eq "XPCS") then - evaluate ($cln = "pc"+encode($npcs) ) - xpcs class $cln coeff $Data.pcs_d_$npcs $Data.pcs_r_$npcs end - end if - evaluate ($npcs=$npcs+1) -end loop pcs - -! set dani coefficients: -evaluate ($ndani=1) -while ($ndani <= $data.numdani) loop dani - if ($Data.dan_choice_$ndani eq "DANI") then - evaluate ($cln = "da"+encode($ndani) ) - dani class $cln coeff $Data.dan_tc_$ndani $Data.dan_anis_$ndani $Data.dan_r_$ndani $Data.dan_wh_$ndani $Data.dan_wn_$ndani end - end if - evaluate ($ndani=$ndani+1) -end loop dani - - -{* ============================================================== *} -eval ($anisotropy = false) -if ($Data.flags.sani eq true) then - flag incl sani end - eval ($anisotropy = true) -else - flag excl sani end -end if - -if ($Data.flags.xrdc eq true) then - flag incl xrdc end - eval ($anisotropy = true) -else - flag excl xrdc end -end if - -if ($Data.flags.xpcs eq true) then - flag incl xpcs end - eval ($anisotropy = true) -else - flag excl xpcs end -end if - -if ($Data.flags.vean eq true) then - flag incl vean end -else - flag excl vean end -end if - -if ($Data.flags.dani eq true) then - flag incl dani end - eval ($anisotropy = true) -else - flag excl dani end -end if - -! determine whether the final models should be reoriented along their principal -! axes before writing to file in it0 and it1 -eval($reorient = true) -if ($data.flags.zres = true) then - eval($reorient = false) -elseif ($data.flags.em = true) then - eval($reorient = false) -elseif ($data.flags.centroids = true) then - eval($reorient = false) -end if -! also check for fixed molecules -evaluate ($ncount = 0) -while ($ncount < $data.ncomponents) loop orientmol - evaluate ($ncount = $ncount + 1) - if ($Toppar.fix_origin_$ncount eq true) then - eval($reorient = false) - end if -end loop orientmol - - -eval ($nchain1 = 0) -while ($nchain1 < $data.ncomponents) loop nloop1 - eval($nchain1 = $nchain1 + 1) - if ($Toppar.fix_origin_$nchain1 eq true) then - eval($reorient = false) - end if -end loop nloop1 - -evaluate ($numnoe = 0) - -{*======================= random orientations and rigid body minimisation *} -if ($iteration = 0) then - if ($SaProtocol.rigidmini eq true) then - !Make sure that at least as many distance restraints are successfully - !read as the number of partitions for cross-validation - evaluate ($numnoe = 0) - noe ? end - if ($NUMNOE = 0) then - if ($Data.ncomponents > 1) then - if ($Data.surfrest eq FALSE) then - if ($Data.cmrest eq FALSE) then - if ($Data.ranair eq FALSE) then - if ($Data.flags.rg eq FALSE) then - evaluate ($errfile = "RUN:WARNING") - fileexist $errfile end - if ($result eq false) then - set display=$errfile end - display TOTAL NUMBER OF DISTANCE RESTRAINTS FOR RIGID BODY DOCKING IS ZERO! - display CONTROL YOUR PARAMETER SETTINGS AND RESTRAINT DEFINITIONS - display STRUCTURE NUMBER $count - close $errfile end - end if - end if - end if - end if - end if - end if - evaluate ($Data.ncvpart = 1) - evaluate ($Data.noecv = FALSE) - end if - end if - - if ($NUMNOE lt $Data.ncvpart) then - noe part=1 end - evaluate ($Data.ncvpart = 1) - evaluate ($Data.noecv = FALSE) - end if - - flag excl bond angl dihe impr zhar end - - if ($Data.flags.elec0 eq true) then - flag include elec end - if ($Data.dielec0 eq rdie) then - parameter nbonds eps=$Data.epsilon0 rdie shift switch end end - ! shift statement needed first to activate switch (CNS bug?) - else - parameter nbonds eps=$Data.epsilon0 cdie shift end end - end if - parameter nbonds ? end end - else - evaluate ($elec=0.0) - flag exclude elec end - end if - - flag excl cdih end - - if ($Data.ranair eq true) then - if ($Data.ncomponents > 2) then - evaluate ($errfile = "RUN:FAILED") - fileexist $errfile end - if ($result eq false) then - set display=$errfile end - display ========= Unsupported option =========== - display Random definition of AIRs with more than - display two molecules currently unsupported - display ======================================== - close $errfile end - end if - stop - end if - evaluate ($Data.noecv = false) - noe - reset - nrestraints = 100000 ! allocate space for NOEs - ceiling 1000 - end - @RUN:randomairs.cns - - !Read back in hbond data - if ($Data.hbond_lastit ge &iteration) then - if ($Data.hbond_firstit le &iteration) then - if ($Data.hbonds_on eq true) then - noe @@$hbond_fname end - end if - end if - end if - - noe - averaging * sum - potential * soft - scale * 1.0 - sqconstant * 1.0 - sqexponent * 2 - soexponent * 1 - rswitch * 1.0 - sqoffset * 0.0 - asymptote * 2.0 - msoexponent * 1 - masymptote * -0.1 - mrswitch * 1.0 - avexpo hbond 20 - end - inline @RUN:water_rest.cns - end if - - @RUN:symmultimer.cns - - @RUN:zrestraining.cns - - if ($Data.flags.rg eq true ) then - collapse - force $Data.krg_hot - target $Data.rgtarg - sele (not (resn ANI or resn XAN or resn WAT or resn HOH or resn TIP* or resn DUM or resh SHA)) - end - end if - - if ($Data.cmrest eq true ) then - @RUN:cm-restraints.cns - end if - - if ($Data.surfrest eq true ) then - @RUN:surf-restraints.cns - end if - - if ($Data.flags.centroids eq true) then - @RUN:centroids_initialize.cns - @RUN:centroids_set_map.cns - noe scale centroid $data.centroids.kscale end - end if - - flag excl ncs end - evaluate ($nrig = 0) - evaluate ($nfirst = 1) - evaluate ($bestair = 0) - - if ($SaProtocol.rigidmini eq true) then - while ($nrig < $SaProtocol.ntrials) loop trials - - evaluate ($nrig = $nrig + 1) - - if ( $log_level = verbose ) then - set message=normal echo=on end - else - set message=off echo=off end - end if - - ! random placement of molecules - if ($SaProtocol.randorien eq true) then - @RUN:separate.cns(Data=$Data; Toppar=$Toppar) - @RUN:random_rotations.cns - if ($Data.flags.centroids eq true) then - ! place the centroids on their positions - @RUN:centroids_initialize.cns - @RUN:centroids_set_map.cns - ! place the molecules around the centroids - @RUN:centroids_init_placement.cns - end if - end if - - if ($Data.flags.sani eq true) then - coor @@$tensor_pdb - do (x = x + $xcent + 100) (resn ANI) - do (y = y + $ycent + 100) (resn ANI) - do (z = z + $zcent + 100) (resn ANI) - end if - - if ($Data.flags.dani eq true) then - coor @@RUN:toppar/tensor_dani.pdb - do (x=x+$xcent+100) (resn DAN) - do (y=y+$ycent+100) (resn DAN) - do (z=z+$zcent+100) (resn DAN) - end if - - if ($Data.flags.xrdc eq true) then - coor @@$tensor_para_pdb - do (x=x+$xcent+100) (resn XAN) - do (y=y+$ycent+100) (resn XAN) - do (z=z+$zcent+100) (resn XAN) - end if - - if ($Data.flags.xpcs eq true) then - coor @@$tensor_para_pdb - do (x=x+$xcent+100) (resn XAN) - do (y=y+$ycent+100) (resn XAN) - do (z=z+$zcent+100) (resn XAN) - end if - - evaluate ($unamb_scale = 1.0) - evaluate ($ambig_scale = 1.0) - evaluate ($hbond_scale = 1.0) - evaluate ($symm_scale = 1.0) - evaluate ($cont_scale = 0.0) - evaluate ($surf_scale = 0.0) - - noe - scale dist $unamb_scale - scale ambi $ambig_scale - scale hbon $hbond_scale - scale symm $symm_scale - scale contact $cont_scale - scale surface $surf_scale - end - - evaluate ($nrdc=1) - while ($nrdc <= $data.numrdc) loop rdc - evaluate ($vea_bor_scale_$nrdc = min($Data.ini_bor_hot_$nrdc,$Data.fin_bor_cool3_$nrdc)) - evaluate ($vea_cen_scale_$nrdc = min($Data.ini_cen_hot_$nrdc,$Data.fin_cen_cool3_$nrdc)) - evaluate ($cln = "rd"+encode($nrdc) ) - evaluate ($san_scale_$nrdc = min($Data.rdc_hot_$nrdc,$Data.rdc_cool3_$nrdc)) - if ($Data.flags.vean eq true) then - vean class $cln force 0.0 0.0 end - end if - if ($Data.flags.sani eq true) then - sani class $cln force 0.0 end - end if - if ($Data.flags.xrdc eq true) then - xrdc class $cln force 0.0 end - end if - evaluate ($nrdc = $nrdc + 1) - end loop rdc - - evaluate ($ndani=1) - while ($ndani <= $data.numdani) loop dani - evaluate ($dan_scale_$ndani = min($Data.dan_hot_$ndani,$Data.dan_cool3_$ndani)) - if ($Data.flags.dani eq true) then - evaluate ($cln = "da"+encode($ndani) ) - dani class $cln force 0.0 end - end if - evaluate ($ndani = $ndani + 1) - end loop dani - - if ($Data.flags.xpcs eq true) then - evaluate ($npcs=1) - while ($npcs <= $data.numpcs) loop pcs - evaluate ($pcs_scale_$npcs = min($Data.pcs_hot_$npcs,$Data.pcs_cool3_$npcs)) - evaluate ($cln = "pc"+encode($npcs) ) - xpcs class $cln force 0.0 end - evaluate ($npcs= $npcs + 1) - end loop pcs - end if - - evaluate ($kinter = $SaProtocol.inter_rigid) - @RUN:scale_inter_mini.cns - - - ! a few rounds of rotational rigid body minimization for each independent chain - evaluate ($imini = 0) - while ($imini le 4) loop rigmin - - if ($imini >= 1) then - evaluate ($paramin = false) - evaluate ($nrdc=1) - while ($nrdc <= $data.numrdc) loop rdc - evaluate ($vea_bor_scale_$nrdc = min($Data.ini_bor_hot_$nrdc,$Data.fin_bor_cool3_$nrdc)) - evaluate ($vea_cen_scale_$nrdc = min($Data.ini_cen_hot_$nrdc,$Data.fin_cen_cool3_$nrdc)) - evaluate ($san_scale_$nrdc = min($Data.rdc_hot_$nrdc,$Data.rdc_cool3_$nrdc)) - evaluate ($cln = "rd"+encode($nrdc) ) - if ($Data.flags.vean eq true) then - vean class $cln force $vea_bor_scale_$nrdc $vea_cen_scale_$nrdc end - evaluate ($vea_bor_scale_$nrdc = min(($vea_bor_scale_$nrdc * 2),$Data.fin_bor_cool3_$nrdc)) - evaluate ($vea_cen_scale_$nrdc = min(($vea_cen_scale_$nrdc * 2),$Data.fin_cen_cool3_$nrdc)) - end if - if ($Data.flags.sani eq true) then - sani class $cln force $san_scale_$nrdc end - evaluate ($san_scale_$nrdc = min($san_scale_$nrdc * 2,$Data.rdc_cool3_$nrdc)) - end if - if ($Data.flags.xrdc eq true) then - xrdc class $cln force $san_scale_$nrdc end - evaluate ($san_scale_$nrdc = min($san_scale_$nrdc * 2,$Data.rdc_cool3_$nrdc)) - evaluate ($paramin = true) - end if - evaluate ($nrdc = $nrdc + 1) - end loop rdc - - if ($Data.flags.sani eq true) then - if ($rantens eq true) then - @RUN:mini_tensor.cns - end if - end if - - if ($Data.flags.xpcs eq true) then - evaluate ($npcs=1) - while ($npcs <= $data.numpcs) loop pcs - evaluate ($cln = "pc"+encode($npcs) ) - xpcs class $cln force $pcs_scale_$npcs end - evaluate ($pcs_scale_$npcs = min($pcs_scale_$npcs * 2,$Data.pcs_cool3_$npcs)) - evaluate ($npcs= $npcs + 1) - end loop pcs - end if - - if ($paramin eq TRUE) then - if ($rantens_para eq true) then - @RUN:mini_tensor_para.cns - end if - end if - - if ($Data.flags.dani eq true) then - evaluate ($ndani=1) - while ($ndani <= $data.numdani) loop dani - evaluate ($cln = "da"+encode($ndani) ) - dani class $cln force $dan_scale_$ndani end - evaluate ($dan_scale_$ndani = min($dan_scale_$ndani * 2,$Data.dan_cool3_$ndani)) - evaluate ($ndani = $ndani + 1) - end loop dani - if ($rantens_dani eq true) then - @RUN:mini_tensor_dani.cns - end if - end if - - end if - - evaluate ($imini = $imini + 1) - eval ($ministeps = 500 * nint ($data.ncomponents/6 + 1)) - if ($SaProtocol.randorien eq true) then - flag excl vdw elec coll zhar end - end if - eval ($nchain1 = 0) - while ($nchain1 < $data.ncomponents) loop nloop1 - eval($nchain1 = $nchain1 + 1) - if ($Toppar.fix_origin_$nchain1 eq false) then - fix sele=(not all) end - fix sele=( not (segid $Toppar.prot_segid_$nchain1 or segid $watersegname_$nchain1) and not name OO) end - minimize rigid - group (segid $Toppar.prot_segid_$nchain1 or segid $watersegname_$nchain1 and not name MAP) - translation=false - nstep $ministeps - drop 10.0 - tole 0.1 - nprint 10 - end - end if - end loop nloop1 - fix sele=(not all) end - - flag include vdw end - if ($Data.flags.elec0 eq true) then - flag include elec end - end if - - evaluate ($unamb_scale = min(($unamb_scale * 2),$Data.unamb_cool3)) - evaluate ($ambig_scale = min(($ambig_scale * 2),$Data.amb_cool3)) - evaluate ($hbond_scale = min(($hbond_scale * 2),$Data.hbond_cool3)) - evaluate ($symm_scale = min(($symm_scale * 2),$Data.ksym)) - - noe - scale dist $unamb_scale - scale ambi $ambig_scale - scale hbon $hbond_scale - scale symm $symm_scale - if ($data.flags.centroids = true) then - scale centroid $data.centroids.kscale end - end if - end - - end loop rigmin - - evaluate ($unamb_scale_store = $unamb_scale) - evaluate ($ambig_scale_store = $ambig_scale) - evaluate ($hbond_scale_store = $hbond_scale) - evaluate ($symm_scale_store = $symm_scale) - - flag include vdw end - if ($Data.flags.elec0 eq true) then - flag include elec end - end if - - if ($SaProtocol.rigidtrans eq true) then - - if ($data.waterdock eq true) then - if ($data.solvate_method ne "db") then - inline @RUN:waterdock_remove-water.cns - else - inline @RUN:db0.cns - end if - end if - - evaluate ($cont_scale = $Data.kcont) - evaluate ($surf_scale = $Data.ksurf) - noe - scale contact $cont_scale - scale surface $surf_scale - end - fix sele=(name OO and not resn XAN) end - minimize rigid - eval ($nchain1 = 0) - while ($nchain1 < $data.ncomponents) loop nloop1 - eval($nchain1 = $nchain1 + 1) - if ($Toppar.fix_origin_$nchain1 eq false) then - group (segid $Toppar.prot_segid_$nchain1 or segid $watersegname_$nchain1 and not name MAP) - end if - translation=false - end loop nloop1 - nstep 1000 - nprint 10 - end - - if ($data.solvate_method eq "db") then - inline @RUN:db00.cns - end if - - energy end - - if ($Data.flags.rg eq true) then - flag include coll end - end if - - if ($Data.flags.zres eq true) then - flag incl zhar end - end if - - fix sele=(name OO and not resn XAN) end - eval ($ministeps = $SaProtocol.emstepstrans) - minimize rigid - eval ($nchain1 = 0) - while ($nchain1 < $data.ncomponents) loop nloop1 - eval($nchain1 = $nchain1 + 1) - if ($Toppar.fix_origin_$nchain1 eq false) then - group (segid $Toppar.prot_segid_$nchain1 or segid $watersegname_$nchain1 and not name MAP) - end if - translation=true - end loop nloop1 - nstep $ministeps - nprint 10 - end - - energy end - - if ($data.waterdock eq true) then - if ($data.solvate_method eq "db") then - display MINIMIZATION ENERGY BEFORE: $grad $ener $vdw $elec - minimize rigid - eval ($nchain1 = 0) - while ($nchain1 < $data.ncomponents) loop nloop1 - eval($nchain1 = $nchain1 + 1) - if ($Toppar.fix_origin_$nchain1 eq false) then - group (segid $Toppar.prot_segid_$nchain1 and not (resn WAT or resn HOH or resn TIP* or name MAP)) - end if - translation=true - end loop nloop1 - for $id in id ((resn WAT or resn HOH or resn TIP*) and name OH2 and (attr store5 ne 1)) loop miniwater - group (byres(id $id)) - end loop miniwater - translation=$data.transwater - nstep $ministeps - nprint 100 - end - display MINIMIZATION ENERGY AFTER: $grad $ener $vdw $elec - inline @RUN:db1.cns - end if - inline @RUN:waterdock_mini.cns - end if - - fix sele=(name OO and not resn XAN) end - minimize rigid - eval ($nchain1 = 0) - while ($nchain1 < $data.ncomponents) loop nloop1 - eval($nchain1 = $nchain1 + 1) - if ($Toppar.fix_origin_$nchain1 eq false) then - group (segid $Toppar.prot_segid_$nchain1 and not (resn WAT or resn HOH or resn TIP* or name MAP)) - end if - translation=true - end loop nloop1 - for $id in id (segid WA* and (resn WAT or resn HOH or resn TIP*) and name OH2 and (attr store5 ne 1)) loop miniwater - group (byres(id $id)) - end loop miniwater - translation=true - nstep $ministeps - nprint 10 - end - energy end - - if ($data.waterdock eq true) then - inline @RUN:waterdock_mini.cns - end if - - fix sele=(not all) end - - if ($anisotropy eq true) then - fix sele=(not all) end - fix sele=(name OO and not resn XAN) end - minimize rigid - for $id in id ((resn ANI or resn DAN or resn XAN) and name OO) loop miniani - group (byres(id $id)) - translation=false - end loop miniani - translation=false - nstep 100 - drop 10.0 - nprint 10 - end - minimize rigid - eval ($nchain1 = 0) - while ($nchain1 < $data.ncomponents) loop nloop1 - eval($nchain1 = $nchain1 + 1) - if ($Toppar.fix_origin_$nchain1 eq false) then - group (segid $Toppar.prot_segid_$nchain1 or segid $watersegname_$nchain1 and not name MAP) - end if - translation=true - end loop nloop1 - for $id in id ((resn ANI or resn DAN or resn XAN) and name OO) loop miniani - group (byres(id $id)) - translation=false - end loop miniani - translation=true - nstep $ministeps - nprint 10 - end - end if - - fix sele=(not all) end - - end if ! ($Saprotocol.rigidtrans eq true) - - ! centroids based energy should not be part of the $NOE energy - if ($data.flags.centroids = true) then - noe scale centroid 0 end - end if - - if ($data.flags.em = true) then - ! determine the best orientation of the complex in the density - @RUN:em_orien_search.cns - end if - - inline @RUN:bestener.cns - - if ($saprotocol.rotate180_it0 eq true) then - eval($nchain1 = 0) - while ($nchain1 < $data.ncomponents) loop nloop4 - eval($nchain1 = $nchain1 + 1) - if ($Toppar.shape_$nchain1 eq false) then - eval($nchain2 = $nchain1 ) - while ($nchain2 < $data.ncomponents) loop nloop3 - eval($nchain2 = $nchain2 + 1) - if ($Toppar.shape_$nchain2 eq false) then - @RUN:rotation180.cns - if ($data.flags.em = true) then - @RUN:em_orien_search.cns - end if - inline @RUN:bestener.cns - end if - end loop nloop3 - end if - end loop nloop4 - end if - - end loop trials - - else ! if ($Saprotocol.rigidmini = False) - - evaluate ($kinter = $SaProtocol.inter_rigid) - @RUN:scale_inter_only.cns - - if ($Data.flags.sani eq true) then - evaluate ($nrdc=1) - while ($nrdc <= $data.numrdc) loop rdc - evaluate ($cln = "rd"+encode($nrdc) ) - sani class $cln force $Data.rdc_hot_$nrdc end - evaluate ($nrdc = $nrdc + 1) - end loop rdc - if ($rantens eq true) then - @RUN:mini_tensor.cns - end if - end if - - evaluate ($paramin = false) - if ($Data.flags.xrdc eq true) then - evaluate ($nrdc=1) - while ($nrdc <= $data.numrdc) loop rdc - evaluate ($cln = "rd"+encode($nrdc) ) - xrdc class $cln force $Data.rdc_hot_$nrdc end - evaluate ($nrdc = $nrdc + 1) - end loop rdc - evaluate ($paramin = true) - end if - - if ($Data.flags.xpcs eq true) then - evaluate ($npcs=1) - while ($npcs <= $data.numpcs) loop pcs - evaluate ($cln = "pc"+encode($npcs) ) - xpcs class $cln force $Data.pcs_hot_$npcs end - evaluate ($paramin = true) - evaluate ($npcs= $npcs + 1) - end loop pcs - end if - - if ($paramin eq TRUE) then - if ($rantens_para eq true) then - @RUN:mini_tensor_para.cns - end if - end if - - if ($Data.flags.dani eq true) then - evaluate ($ndani=1) - while ($ndani <= $data.numdani) loop dani - evaluate ($cln = "da"+encode($ndani) ) - dani class $cln force $Data.dan_hot_$ndani end - evaluate ($ndani = $ndani + 1) - end loop dani - if ($rantens_dani eq true) then - @RUN:mini_tensor_dani.cns - end if - end if - - do (refx=x) (all) - do (refy=y) (all) - do (refz=z) (all) - - ! the centroid based restraints should not be included in the energy calculation - if ($data.flags.centroids eq true) then - noe scale centroid 0 end - end if - - energy end - evaluate ($bestair = $noe) - - end if ! ($Saprotocol.rigidmini = true) - - -{* ===================== calculate complex internal energy *} - evaluate ($kinter = 1.0) - @RUN:scale_intra_only.cns - - flag include bond angle dihe impr vdw end - - evaluate ($elec = 0.0) - evaluate ($eintfree = 0.0) - if ($Data.flags.elec0 eq true) then - flag include elec end - end if - - energy end - - evaluate ($eintcplx = $bond + $angl + $impr + $dihe + $vdw + $elec) - evaluate ($eintfree = $eintcplx) - {* at this stage the two are similar since rigid-body EM only *} - -{* =========================== write out structure after rigid body refinement *} - - !bestener.cns: for waterdock, store3 contains store5 from lowest energy structure - do (x = refx) (not store3) - do (y = refy) (not store3) - do (z = refz) (not store3) - if ($data.waterdock eq true) then - if ($data.solvate_method eq "restraints") then - noe reset end - @RUN:read_noes.cns(Iteration=$Iteration; Data=$Data; count=$count) - end if - end if - - evaluate ($esym = 0.0) - evaluate ($ncs = 0.0) - evaluate ($zhar = 0.0) - evaluate ($rms_test_noe = 0.0) - evaluate ($violations_test_noe = 0) - if ($Data.flags.sym eq true) then - noe reset nres= 2000000 end - @RUN:symmultimer.cns - noe - scale symm $Data.ksym - end - energy end - evaluate ($esym = $noe) - if ($Data.noecv eq true) then - display Print out of cross-validated violations and rms not - display possible in combination with symmetry restraints - display CV values set therefore to 0 - end if - noe reset end - set message=normal echo=on end - !read again the NOE data, needed to remove the symmetry restraints - @@RUN:read_noes.cns(Iteration=$Iteration; Data=$Data; count=$count) - if ( $log_level = verbose ) then - set message=normal echo=on end - else - set message=off echo=off end - end if - else - if ($Data.noecv eq true) then - set message=on echo=on end - noe cv $ncvbest ? end - end if - if ( $log_level = verbose ) then - set message=normal echo=on end - else - set message=off echo=off end - end if - print threshold=0.3 noe - evaluate ($rms_noe=$result) - evaluate ($violations_noe=$violations) - if ($Data.noecv eq true) then - evaluate ($rms_test_noe=$test_rms) - evaluate ($violations_test_noe=$test_violations) - end if - end if - - evaluate ($unamb_scale = $Data.unamb_cool3) - evaluate ($ambig_scale = $Data.amb_cool3) - evaluate ($hbond_scale = $Data.hbond_cool3) - if ($data.solvate_method eq "restraints") then - evaluate ($amwa_scale = $data.water_restraint_scale) - end if - - noe - scale dist $unamb_scale - scale ambi $ambig_scale - scale hbon 0.0 - scale cont 0.0 - if ($data.solvate_method eq "restraints") then - scale amwa $amwa_scale - end if - end - -{* ===================== calculate final energies and write structure *} - flag incl bond angl impr noe end - flag exclude xref end - if ($Data.flags.sani eq true) then - flag incl sani end - end if - if ($Data.flags.xrdc eq true) then - flag incl xrdc end - end if - if ($Data.flags.xpcs eq true) then - flag incl xpcs end - end if - if ($Data.flags.dani eq true) then - flag incl dani end - end if - if ($Data.flags.vean eq true) then - flag incl vean end - end if - - if ($Data.flags.rg eq true ) then - collapse force $Data.krg_cool3 end - end if - - if ($Data.flags.zres eq true) then - flag incl zhar end - end if - - if ($data.ncomponents > 1) then - evaluate ($kinter = 1.0) - @RUN:scale_inter_final.cns - else - @RUN:scale_intra_only.cns - end if - energy end - evaluate ($cdih = 0.0) - evaluate ($etot = $ener - $noe) - evaluate ($noe = $bestair) - evaluate ($etot = $etot + $noe) - - evaluate ($Data.flags.dihed = false) - evaluate ($filename="NEWIT:" + $Filenames.fileroot + "_" + encode($count) + ".pdb0") - inline @RUN:print_coorheader.cns - - if ($reorient eq true) then - coor sele=(segid $Toppar.prot_segid_1) orient end - end if - - if ($data.waterdock eq true) then - write coordinates sele=(not (resn WAT or resn HOH or resn DUM)) output=$filename end - inline @RUN:waterdock_out0.cns - else - write coordinates sele=(not resn DUM) output=$filename end - end if - - stop - -{*======================= semi-flexible SA refinement*} -else - - if ($saprotocol.expand eq TRUE ) then - @RUN:centroids_initialize.cns - @RUN:centroids_set_restraints.cns - noe scale centroid $data.centroids.kscale end - @RUN:expand.cns - evaluate ($filename="NEWIT:" + $Filenames.fileroot + "_" + encode($count) + "_expand.pdb") - write coordinates sele=(not resn DUM) output=$filename end - end if - - !Make sure that at least as many distance restraints are successfully - !read as the number of partitions for cross-validation - evaluate ($numnoe = 999) - noe ? end - if ($NUMNOE = 0) then - if ($Data.ncomponents > 1) then - if ($Data.surfrest eq FALSE) then - if ($Data.cmrest eq FALSE) then - if ($Data.ranair eq FALSE) then - if ($Data.flags.rg eq FALSE) then - evaluate ($errfile = "RUN:WARNING") - fileexist $errfile end - if ($result eq false) then - set display=$errfile end - display TOTAL NUMBER OF DISTANCE RESTRAINTS FOR FLEXIBLE REFINEMENT IS ZERO! - display CONTROL YOUR PARAMETER SETTINGS AND RESTRAINT DEFINITIONS - close $errfile end - end if - end if - end if - end if - end if - end if - evaluate ($Data.ncvpart = 1) - evaluate ($Data.noecv = FALSE) - end if - - if ($NUMNOE lt $Data.ncvpart) then - noe part=1 end - evaluate ($Data.ncvpart = 1) - evaluate ($Data.noecv = FALSE) - end if - - {*== check first for failed structures ==*} - evaluate ($failure = false) - evaluate ($filefail="NEWIT:" + $Filenames.fileroot + "_" + encode($count) + ".fail") - fileexist $filefail end - evaluate ($failure = $result) - - parameter - bond (resn WAT ) (resn WAT ) 1000 TOKEN - angle (resn WAT ) (resn WAT ) (resn WAT ) 500 TOKEN - bond (resn HOH ) (resn HOH ) 1000 TOKEN - angle (resn HOH ) (resn HOH ) (resn HOH ) 500 TOKEN - bond (resn TIP*) (resn TIP*) 1000 TOKEN - angle (resn TIP*) (resn TIP*) (resn TIP*) 500 TOKEN - end - - if ($Data.ranair eq true) then - if ($Data.ncomponents > 2) then - evaluate ($errfile = "RUN:FAILED") - fileexist $errfile end - if ($result eq false) then - set display=$errfile end - display ========= Unsupported option =========== - display Random definition of AIRs with more than - display two molecules currently unsupported - display ======================================== - close $errfile end - end if - stop - end if - evaluate ($Data.noecv = false) - noe - reset - nrestraints = 100000 ! allocate space for NOEs - ceiling 1000 - end - @RUN:contactairs.cns - - !Read back in hbond data - if ($Data.hbond_lastit ge &iteration) then - if ($Data.hbond_firstit le &iteration) then - if ($Data.hbonds_on eq true) then - noe @@$hbond_fname end - end if - end if - end if - - noe - averaging * sum - potential * soft - scale * 1.0 - sqconstant * 1.0 - sqexponent * 2 - soexponent * 1 - rswitch * 1.0 - sqoffset * 0.0 - asymptote * 2.0 - msoexponent * 1 - masymptote * -0.1 - mrswitch * 1.0 - avexpo hbond 20 - end - inline @RUN:water_rest.cns - end if - - if ($Data.flags.elec1 eq true) then - flag include elec end - if ($Data.dielec1 eq rdie) then - parameter nbonds eps=$Data.epsilon1 rdie shift switch end end - ! shift statement needed first to activate switch (CNS bug?) - else - parameter nbonds eps=$Data.epsilon1 cdie end end - end if - parameter nbonds ? end end - else - evaluate ($elec=0.0) - flag exclude elec end - end if - -end if - -if ( $log_level = verbose ) then - set message=normal echo=on end -else - set message=off echo=off end -end if - -evaluate ($ini_flt = 5.0) - -@RUN:symmultimer.cns - -if ($Data.flags.zres eq true ) then - flag incl zhar end - @RUN:zrestraining.cns -end if - -if ($Data.cmrest eq true ) then - @RUN:cm-restraints.cns -end if - -! use contact airs rather than surface restraints at it1 -if ($Data.surfrest eq true ) then - @RUN:contactairs.cns -end if - -if ($Data.dnarest eq true ) then - @RUN:data/sequence/dna-rna_restraints.def -end if - -if ($Data.flags.rg eq true ) then - collapse - force $Data.krg_hot - target $Data.rgtarg - sele (not (resn ANI or resn XAN or resn TIP*)) - end -end if - -if ($Data.ssdihed eq all ) then - @RUN:protein-ss-restraints-all.def -end if -if ($Data.ssdihed eq alpha ) then - @RUN:protein-ss-restraints-alpha.def -end if -if ($Data.ssdihed eq alphabeta ) then - @RUN:protein-ss-restraints-alpha-beta.def -end if - -! get initial energy -energy end - -coor copy end - -if ($saprotocol.rotate180_it1 eq true) then - evaluate ($rotiter = 2) {* two iteration in rotloop1, rotation *} -else - evaluate ($rotiter = 1) {* only one iteration in rotloop1, no rotation *} -end if - -evaluate ($nlcount = 0) {* two iterations in rotloop1, first rotated *} -{* ================== Loop to sample 180 degrees rotated solutions if requested *} - -while ($nlcount < $rotiter) loop rotloop1 - - evaluate ($nlcount = $nlcount + 1) - - evaluate ($unamb_scale = $Data.unamb_hot) - evaluate ($ambig_scale = $Data.amb_hot) - evaluate ($hbond_scale = $Data.hbond_hot) - - noe - scale dist $unamb_scale - scale ambi $ambig_scale - scale hbon $hbond_scale - end - - if ($Data.flags.dihed eq true) then - flag include dihed end - end if - - if ($Data.scaling eq TRUE) then - inline @RUN:set_noe_scale.cns - energy end - noe - scale dist $Data.unamb_hot - scale ambi $Data.amb_hot - end - energy end - end if - - if ($Data.flags.sani eq true) then - evaluate ($nrdc=1) - while ($nrdc <= $data.numrdc) loop rdc - evaluate ($cln = "rd"+encode($nrdc) ) - sani class $cln force $Data.rdc_hot_$nrdc end - evaluate ($nrdc = $nrdc + 1) - end loop rdc - if ($rantens eq true) then - @RUN:mini_tensor.cns - end if - end if - - evaluate ($paramin = false) - if ($Data.flags.xrdc eq true) then - evaluate ($nrdc=1) - while ($nrdc <= $data.numrdc) loop rdc - evaluate ($cln = "rd"+encode($nrdc) ) - xrdc class $cln force $Data.rdc_hot_$nrdc end - evaluate ($nrdc = $nrdc + 1) - end loop rdc - evaluate ($paramin = true) - end if - - if ($Data.flags.xpcs eq true) then - evaluate ($npcs=1) - while ($npcs <= $data.numpcs) loop pcs - evaluate ($cln = "pc"+encode($npcs) ) - xpcs class $cln force $Data.pcs_hot_$npcs end - evaluate ($paramin = true) - evaluate ($npcs= $npcs + 1) - end loop pcs - end if - - if ($paramin eq TRUE) then - if ($rantens_para eq true) then - @RUN:mini_tensor_para.cns - end if - end if - - if ($Data.flags.dani eq true) then - evaluate ($ndani=1) - while ($ndani <= $data.numdani) loop dani - evaluate ($cln = "da"+encode($ndani) ) - dani class $cln force $Data.dan_hot_$ndani end - evaluate ($ndani = $ndani + 1) - end loop dani - if ($rantens_dani eq true) then - @RUN:mini_tensor_dani.cns - end if - end if - - - if ($nlcount = 2) then - - flag excl bond angl dihe impr zhar end - - evaluate ($kinter = $SaProtocol.inter_rigid) - @RUN:scale_inter_only.cns - - eval($nchain1 = 0) - while ($nchain1 < $data.ncomponents) loop nloop4 - eval($nchain1 = $nchain1 + 1) - eval($nchain2 = $nchain1 ) - while ($nchain2 < $data.ncomponents) loop nloop3 - eval($nchain2 = $nchain2 + 1) - @RUN:rotation180.cns - end loop nloop3 - end loop nloop4 - - inline @RUN:setflags.cns - if ($Data.flags.elec1 eq true) then - flag include elec end - end if - if ($Data.flags.dihed eq true) then - flag include dihed end - end if - flag include bond angle impr vdw end - - end if - - igroup - interaction (not (resn ANI or resn DAN or resn XAN or resn SHA)) - (not (resn ANI or resn DAN or resn XAN or resn SHA)) weight * 1 end - interaction (resn ANI or resn DAN or resn XAN or resn SHA) - (resn ANI or resn DAN or resn XAN or resn SHA) weight * 1 vdw 0.0 elec 0.0 end - end - - energy end - - ! fix the residues describing the shape - fix sele=(resn SHA) end - - ! fix the DUM residue for expand/refine - if ($saprotocol.expand eq TRUE ) then - fix sele=(name DUM) end - end if - -{* 0 ======================================= initial EM for flexible parts only *} - - if ($Data.flags.rg eq true ) then - collapse force $Data.krg_hot end - end if - - if ($SaProtocol.rigidtrans eq true) then - @RUN:flex_segment_back.cns - fix sele=((attr store5 = 0 or name OO or resn SHA) and not name H* and not (resn WAT or resn HOH or resn TIP*)) end - minimize powell nstep=200 drop=10.0 nprint=25 end - fix sele=(not all) end - end if - - energy end - - do (refx = x) (all) - do (refy = y) (all) - do (refz = z) (all) - - do (harm = 0) (all) - do (harm = 20) (name OO and not resn XAN) - restraints harmonic exponent=2 end - flag incl harm end - - ! fix the residues describing the shape - fix sele=(resn SHA) end - - ! fix the DUM residue for expand/refine - if ($saprotocol.expand eq TRUE ) then - fix sele=(name DUM) end - end if - - ! the following is added to avoid the generation of the torsion angle topology if not needed - ! in cases where the number of steps is set to 0 (avoid issues with isolated atoms) - eval ($torsiondone = false) - if ($failure eq false) then -{* 1 ======================================= rigid body high temperature search*} -{* rigid bodies *} - if ($data.flags.em = true) then - if ($data.em.it1 = true) then - flags include xref end - end if - end if - - if ($SaProtocol.initiosteps > 0) then - @RUN:torsiontop.cns - eval ($torsiondone = true) - flags exclude dihed end - @RUN:sa_ltad_hightemp.cns(SaProtocol=$SaProtocol;Data=$Data;Toppar=$Toppar) - end if - -{* 2 ======================================= rigid body first slow cooling *} -{* rigid bodies only *} - - if ($Data.flags.rg eq true ) then - collapse force $Data.krg_cool1 end - end if - - if ($SaProtocol.cool1_steps > 0) then - if ($torsiondone ne true) then - @RUN:torsiontop.cns - eval ($torsiondone = true) - end if - evaluate ($SaProtocol.tadfactor = 4) - @RUN:sa_ltad_cool1.cns(SaProtocol=$SaProtocol;Data=$Data;Toppar=$Toppar) - end if - -{* 3 ======================================= second slow cooling *} -{* flexible side-chains and reduced time step *} - - if ($Data.flags.rg eq true ) then - collapse force $Data.krg_cool2 end - end if - - if ($Data.flags.dihed eq true) then flags include dihed end end if - - if ($SaProtocol.cool2_steps > 0) then - if ($torsiondone eq true) then - dyna tors topo reset end end - end if - @RUN:torsiontop_flex.cns - eval ($torsiondone = true) - evaluate ($SaProtocol.tadfactor = 1) - @RUN:sa_ltad_cool2.cns(SaProtocol=$SaProtocol;Data=$Data;Toppar=$Toppar) - end if - -{* 4 ============================================ third slow cooling *} -{* flexible side-chains and backbone at interface and reduced time step *} - - if ($Data.flags.rg eq true ) then - collapse force $Data.krg_cool3 end - end if - - if ($SaProtocol.cool3_steps > 0) then - if ($torsiondone eq true) then - dyna tors topo reset end end - end if - @RUN:torsiontop_flex_back.cns - eval ($torsiondone = true) - evaluate ($SaProtocol.tadfactor = 1) - @RUN:sa_ltad_cool3.cns(SaProtocol=$SaProtocol;Data=$Data;Toppar=$Toppar) - end if - - end if - -{* 5 =========================== final minimization *} - - if ($Data.scaling eq true) then - inline @RUN:set_noe_scale.cns - energy end - noe - scale dist $Data.unamb_cool3 - scale ambi $Data.amb_cool3 - scale hbon $Data.hbond_cool3 - end - energy end - end if - - @RUN:flex_segment_back.cns - - fix sele=((attr store5 = 0 or name OO or resn SHA) and not name H* and not (resn WAT or resn HOH or resn TIP* or resn XAN)) end - minimize powell nstep=200 drop=10.0 nprint=25 end - fix sele=(not all) end - energy end - - if ($nlcount = 1) then - coor swap end - if ($torsiondone eq true) then - if ($failure eq false) then - dyna tors topo reset end end - end if - end if - end if - -end loop rotloop1 - -coor swap end - -if ($saprotocol.rotate180_it1 eq true) then - evaluate ($rotiter = 2) {* two iteration in rotloop2, rotation *} -else - evaluate ($rotiter = 1) {* only one iteration in rotloop2, no rotation *} -end if - -evaluate ($nlcount = 0) - -{* ================== Loop to write 180 degrees rotated solutions if requested *} - -while ($nlcount < $rotiter) loop rotloop2 - - evaluate ($nlcount = $nlcount + 1) - -{* ======================= calculate free molecules internal energy *} - - igroup - interaction (not (resn ANI or resn DAN or resn XAN or resn SHA or resn WAT or resn HOH or resn TIP* or resn DUM)) - (not (resn ANI or resn DAN or resn XAN or resn SHA or resn WAT or resn HOH or resn TIP* or resn DUM)) weight * 1 end - end - - do (refx=x) (all) - do (refy=y) (all) - do (refz=z) (all) - - fix sele=(resn ANI or resn DAN or resn XAN or resn SHA or resn WAT or resn HOH or resn TIP* or resn DMS) end - - flag excl noe dani sani vean xrdc xpcs coll cdih zhar end - flag include bond angle dihe impr vdw end - - evaluate ($elec = 0.0) - evaluate ($eintfree = 0.0) - if ($Data.flags.elec1 eq true) then - flag include elec end - end if - - if ($Data.dielec1 eq rdie) then - parameter nbonds eps=$Data.epsilon1 rdie shift switch end end - ! shift statement needed first to activate switch (CNS bug?) - else - parameter nbonds eps=$Data.epsilon1 cdie end end - end if - parameter nbonds ? end end - inline @RUN:calc_free-ene.cns - - fix sele=(not all) end - - do (x = refx) (all) - do (y = refy) (all) - do (z = refz) (all) - -{* ===================== calculate complex internal energy *} - - evaluate ($kinter = 1.0) - @RUN:scale_intra_only.cns - - flag include bond angle dihe impr vdw end - - evaluate ($elec = 0.0) - evaluate ($eintcplx = 0.0) - if ($Data.flags.elec1 eq true) then - flag include elec end - end if - - energy end - - evaluate ($eintcplx = $bond + $angl + $impr + $dihe + $vdw + $elec) - -{* ===================== calculate final energies and write structure *} - evaluate ($cdih=0.0) - flag incl noe cdih end - if ($Data.flags.sani eq true) then - flag incl sani end - end if - if ($Data.flags.xrdc eq true) then - flag incl xrdc end - end if - if ($Data.flags.xpcs eq true) then - flag incl xpcs end - end if - if ($Data.flags.dani eq true) then - flag incl dani end - end if - if ($Data.flags.vean eq true) then - flag incl vean end - end if - if ($Data.ncomponents > 1) then - evaluate ($kinter = 1.0) - @RUN:scale_inter_final.cns - else - @RUN:scale_intra_only.cns - end if - - noe - scale dist $Data.unamb_cool3 - scale ambi $Data.amb_cool3 - scale hbon 0.0 - scale symm 0.0 - scale cont 0.0 - end - energy end - evaluate ($eair= $noe) - - evaluate ($esym = 0.0) - evaluate ($ncs = 0.0) - evaluate ($zhar = 0.0) - if ($Data.flags.sym eq true) then - noe reset nres= 200000 end - @RUN:symmultimer.cns - noe - scale symm $Data.ksym - end - energy end - evaluate ($esym = $noe) - if ($Data.noecv eq true) then - evaluate ($violations_test_noe=0) - evaluate ($rms_test_noe=0.0) - display Print out of cross-validated violations and rms not - display possible in combination with symmetry restraints - display CV values set therefore to 0 - end if - noe reset end - set message=normal echo=on end - !read all the experimental Data: - @@RUN:read_noes.cns(Iteration=$Iteration; Data=$Data; count=$count) - if ( $log_level = verbose ) then - set message=normal echo=on end - else - set message=off echo=off end - end if - else - print threshold=0.3 noe - evaluate ($rms_noe=$result) - evaluate ($violations_noe=$violations) - if ($Data.noecv eq true) then - evaluate ($rms_test_noe=$test_rms) - evaluate ($violations_test_noe=$test_violations) - else - evaluate ($rms_test_noe=0.0) - evaluate ($violations_test_noe=0) - end if - end if - - if ($Data.dnarest eq true) then - @RUN:data/sequence/dna-rna_restraints.def - end if - - energy end - evaluate ($etot = $ener - $noe) - evaluate ($noe = $eair) - evaluate ($etot = $etot + $noe) - - ! get the local cross-correlation for EM-data - if ($data.flags.em = true) then - @RUN:em_calc_lcc.cns(toppar=$toppar; data=$data; saprotocol=$saprotocol; lcc=$lcc;) - flags exclude xref end - end if - - - evaluate ($Data.flags.dihed = false) - if ($nlcount = 1) then - evaluate ($filename="NEWIT:" + $Filenames.fileroot + "_" + encode($count) + ".pdb0") - else - evaluate ($num = $count + $iterations.structures) - evaluate ($filename="NEWIT:" + $Filenames.fileroot + "_" + encode($num) + ".pdb0") - end if - inline @RUN:print_coorheader.cns - - if ($reorient = true) then - coor sele= (not name H* and not resn ANI and not resn XAN and not resn DAN) orient end - end if - - if ($data.waterdock eq true) then - write coordinates sele=(not (resn WAT or resn HOH or resn TIP*)) output=$filename end - inline @RUN:waterdock_out1.cns - else - write coordinates output=$filename end - end if - - coor swap end - -end loop rotloop2 -stop diff --git a/src/haddock/modules/flexref/cns/refine.inp-expand b/src/haddock/modules/flexref/cns/refine.inp-expand deleted file mode 100644 index 713737142..000000000 --- a/src/haddock/modules/flexref/cns/refine.inp-expand +++ /dev/null @@ -1,1744 +0,0 @@ -! refine.inp -! The core docking script of HADDOCK performing rigid-body docking -! and semi-flexible refinement in torsion angle space -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! - -@RUN:initialize.cns(iteration=$iteration;) - -@NEWIT:iteration.cns(iteration=$iteration;) - -@RUN:run.cns( -iteration =$iteration; -filenames =$filenames; -Data =$Data; -iterations=$iterations; -saprotocol=$saprotocol; -refine =$refine; -toppar =$toppar; -analysis =$analysis;) - -evaluate ($log_level=quiet) -!evaluate ($log_level=verbose) - -if ( $log_level = verbose ) then - set message=normal echo=on end -else - set message=off echo=off end -end if - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!The next line will be changed automatically from python: -evaluate ($whichMD="torsion") -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!The next line will be changed automatically from python: -evaluate ($count = 1) -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!The next line will be changed automatically from python: -evaluate ($file = "") -!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -!reads in structure, coordinates and parameter files -@RUN:read_struc.cns - -flag include bond angle impr vdw end - -if ($Data.flags.dihed eq true) then - flag include dihed end -end if - -do (fbeta=$Saprotocol.fbeta) (all) -do (mass=$Saprotocol.mass) (all) -do (mass=1000) (resn ani) -do (mass=1000) (resn xan) -do (mass=1000) (resn dan) - -evaluate ($end_count = $iterations.ini_count + $iterations.structures - 1) - -if ($Data.noecv eq true) then - if ($iteration = 0) then - evaluate ($npart = 1 + mod($count,$Data.ncvpart)) - evaluate ($fileseed="NEWIT:" + $Filenames.fileroot + "_" + encode($count) + ".seed") - evaluate ($seed = max($iteration,1)*$count*$Saprotocol.iniseed) - else - evaluate ($fileseed= $file - ".pdb" + ".seed") - @@$fileseed (seed=$seed;npart=$npart ) - evaluate ($fileseed="NEWIT:" + $Filenames.fileroot + "_" + encode($count) + ".seed") - evaluate ($num = $count + $iterations.structures) - evaluate ($file_r_seed="NEWIT:" + $Filenames.fileroot + "_" + encode($num) + ".seed") - if ($saprotocol.rotate180_it1 eq true) then - set display=$file_r_seed end - display module(seed;npart) - display define ( - display currentseed = $seed; - display currentpart = $npart; - display ) - display evaluate (&seed=¤tseed) - display evaluate (&npart=¤tpart) - close $file_r_seed end - end if - end if - set display=$fileseed end - display module(seed;npart) - display define ( - display currentseed = $seed; - display currentpart = $npart; - display ) - display evaluate (&seed=¤tseed) - display evaluate (&npart=¤tpart) - close $fileseed end -else - evaluate ($seed = max($iteration,1)*$count*$Saprotocol.iniseed) -end if -set seed $seed end - -coor init end -coor @@$file - -! reinitialize the DUM residue -if ($Data.flags.centroids = true) then - if ($iteration = 0) then - @RUN:centroids_initialize.cns - end if -end if - -! check for the presence of ions and add covalent bond -if ($iteration = 1) then - @RUN:covalions.cns -end if - -{* Find CoM of protein *} -show ave (x) (name CA or name BB or name C1') -evaluate ($xcent=$result) -show ave (y) (name CA or name BB or name C1') -evaluate ($ycent=$result) -show ave (z) (name CA or name BB or name C1') -evaluate ($zcent=$result) - -coor select (not known and resn ani) end -if ($select gt 0) then - coor @@$tensor_pdb - - {* Find CoM of protein and move tensor 100 A away *} - show ave (x) (name CA or name BB or name C1') - evaluate ($xcent=$result) - show ave (y) (name CA or name BB or name C1') - evaluate ($ycent=$result) - show ave (z) (name CA or name BB or name C1') - evaluate ($zcent=$result) - do (x=x+$xcent+100) (resn ANI) - do (y=y+$ycent+100) (resn ANI) - do (z=z+$zcent+100) (resn ANI) - evaluate ($rantens = true) -else - evaluate ($rantens = false) -end if - -coor select (not known and resn xan) end -if ($select gt 0) then - coor @@$tensor_para_pdb - evaluate ($rantens_para = true) -else - evaluate ($rantens_para = false) -end if - -coor select (not known and resn dan) end -if ($select gt 0) then - coor @@RUN:toppar/tensor_dani.pdb - - {* Find CoM of protein and move tensor 100 A away *} - show ave (x) (name CA or name BB or name C1') - evaluate ($xcent=$result) - show ave (y) (name CA or name BB or name C1') - evaluate ($ycent=$result) - show ave (z) (name CA or name BB or name C1') - evaluate ($zcent=$result) - do (x=x+$xcent+100) (resn DAN) - do (y=y+$ycent+100) (resn DAN) - do (z=z+$zcent+100) (resn DAN) - evaluate ($rantens_dani = true) -else - evaluate ($rantens_dani = false) -end if - -!catch possible bound water and set high T steps to 0 -coor select ((resn WAT or resn HOH or resn TIP*)) end -if ($select gt 0) then - evaluate ($SaProtocol.initiosteps = 0) - evaluate ($SaProtocol.cool1_steps = 0) - evaluate ($refine.keepwater = true) -end if - -do (refx=x) (all) -do (refy=y) (all) -do (refz=z) (all) - -!set the energy flags: -inline @RUN:setflags.cns - -!read all the experimental Data: -evaluate ($lcc = 0) -set seed $seed end -set message=normal echo=on end -if ($data.waterdock eq false) then - inline @RUN:read_data.cns - if ($data.flags.em = true) then - @RUN:em_read_data.cns(Data=$data;) - end if - - if ($Data.flags.centroids = true) then - if ($iteration = 0) then - @RUN:centroids_set_restraints.cns - end if - end if -end if - -{* ======================= reset coordinates and proceed *} - -do (x = refx) (all) -do (y = refy) (all) -do (z = refz) (all) - -inline @RUN:read_water1.cns -if ($data.waterdock eq true) then - inline @RUN:water_rest.cns - set seed $seed end - set message=normal echo=on end - inline @RUN:read_data.cns -end if - -!set the energy flags: -inline @RUN:setflags.cns - -{* random removal of restaints ================================== *} -if ($Data.noecv eq true) then - set message=on echo=on end - noe cv $npart ? end -else - evaluate ($npart = 0) -end if - -if ( $log_level = verbose ) then - set message=normal echo=on end -else - set message=off echo=off end -end if - -!set the rdc coefficients: -evaluate ($nrdc=1) -while ($nrdc <= $data.numrdc) loop rdc - evaluate ($cln = "rd" + encode($nrdc) ) - if ($Data.rdc_choice_$nrdc eq "SANI") then - sani class $cln coeff 0.0 $Data.rdc_d_$nrdc $Data.rdc_r_$nrdc end - end if - if ($Data.rdc_choice_$nrdc eq "XRDC") then - xrdc class $cln coeff $Data.rdc_d_$nrdc $Data.rdc_r_$nrdc end - end if - evaluate ($nrdc=$nrdc+1) -end loop rdc - -!set the pcs coefficients: -evaluate ($npcs=1) -while ($npcs <= $data.numpcs) loop pcs - if ($Data.pcs_choice_$npcs eq "XPCS") then - evaluate ($cln = "pc"+encode($npcs) ) - xpcs class $cln coeff $Data.pcs_d_$npcs $Data.pcs_r_$npcs end - end if - evaluate ($npcs=$npcs+1) -end loop pcs - -! set dani coefficients: -evaluate ($ndani=1) -while ($ndani <= $data.numdani) loop dani - if ($Data.dan_choice_$ndani eq "DANI") then - evaluate ($cln = "da"+encode($ndani) ) - dani class $cln coeff $Data.dan_tc_$ndani $Data.dan_anis_$ndani $Data.dan_r_$ndani $Data.dan_wh_$ndani $Data.dan_wn_$ndani end - end if - evaluate ($ndani=$ndani+1) -end loop dani - - -{* ============================================================== *} -eval ($anisotropy = false) -if ($Data.flags.sani eq true) then - flag incl sani end - eval ($anisotropy = true) -else - flag excl sani end -end if - -if ($Data.flags.xrdc eq true) then - flag incl xrdc end - eval ($anisotropy = true) -else - flag excl xrdc end -end if - -if ($Data.flags.xpcs eq true) then - flag incl xpcs end - eval ($anisotropy = true) -else - flag excl xpcs end -end if - -if ($Data.flags.vean eq true) then - flag incl vean end -else - flag excl vean end -end if - -if ($Data.flags.dani eq true) then - flag incl dani end - eval ($anisotropy = true) -else - flag excl dani end -end if - -! determine whether the final models should be reoriented along their principal -! axes before writing to file in it0 and it1 -eval($reorient = true) -if ($data.flags.zres = true) then - eval($reorient = false) -elseif ($data.flags.em = true) then - eval($reorient = false) -elseif ($data.flags.centroids = true) then - eval($reorient = false) -end if - -eval ($nchain1 = 0) -while ($nchain1 < $data.ncomponents) loop nloop1 - eval($nchain1 = $nchain1 + 1) - if ($Toppar.fix_origin_$nchain1 eq true) then - eval($reorient = false) - end if -end loop nloop1 - -evaluate ($numnoe = 0) - -{*======================= random orientations and rigid body minimisation *} -if ($iteration = 0) then - if ($SaProtocol.rigidmini eq true) then - !Make sure that at least as many distance restraints are successfully - !read as the number of partitions for cross-validation - evaluate ($numnoe = 0) - noe ? end - if ($NUMNOE = 0) then - if ($Data.ncomponents > 1) then - if ($Data.surfrest eq FALSE) then - if ($Data.cmrest eq FALSE) then - if ($Data.ranair eq FALSE) then - if ($Data.flags.rg eq FALSE) then - evaluate ($errfile = "RUN:WARNING") - fileexist $errfile end - if ($result eq false) then - set display=$errfile end - display TOTAL NUMBER OF DISTANCE RESTRAINTS FOR RIGID BODY DOCKING IS ZERO! - display CONTROL YOUR PARAMETER SETTINGS AND RESTRAINT DEFINITIONS - display STRUCTURE NUMBER $count - close $errfile end - end if - end if - end if - end if - end if - end if - evaluate ($Data.ncvpart = 1) - evaluate ($Data.noecv = FALSE) - end if - end if - - if ($NUMNOE lt $Data.ncvpart) then - noe part=1 end - evaluate ($Data.ncvpart = 1) - evaluate ($Data.noecv = FALSE) - end if - - flag excl bond angl dihe impr zhar end - - if ($Data.flags.elec0 eq true) then - flag include elec end - if ($Data.dielec0 eq rdie) then - parameter nbonds eps=$Data.epsilon0 rdie shift switch end end - ! shift statement needed first to activate switch (CNS bug?) - else - parameter nbonds eps=$Data.epsilon0 cdie shift end end - end if - parameter nbonds ? end end - else - evaluate ($elec=0.0) - flag exclude elec end - end if - - flag excl cdih end - - if ($Data.ranair eq true) then - if ($Data.ncomponents > 2) then - evaluate ($errfile = "RUN:FAILED") - fileexist $errfile end - if ($result eq false) then - set display=$errfile end - display ========= Unsupported option =========== - display Random definition of AIRs with more than - display two molecules currently unsupported - display ======================================== - close $errfile end - end if - stop - end if - evaluate ($Data.noecv = false) - noe - reset - nrestraints = 100000 ! allocate space for NOEs - ceiling 1000 - end - @RUN:randomairs.cns - - !Read back in hbond data - if ($Data.hbond_lastit ge &iteration) then - if ($Data.hbond_firstit le &iteration) then - if ($Data.hbonds_on eq true) then - noe @@$hbond_fname end - end if - end if - end if - - noe - averaging * sum - potential * soft - scale * 1.0 - sqconstant * 1.0 - sqexponent * 2 - soexponent * 1 - rswitch * 1.0 - sqoffset * 0.0 - asymptote * 2.0 - msoexponent * 1 - masymptote * -0.1 - mrswitch * 1.0 - avexpo hbond 20 - end - inline @RUN:water_rest.cns - end if - - @RUN:symmultimer.cns - - @RUN:zrestraining.cns - - if ($Data.flags.rg eq true ) then - collapse - force $Data.krg_hot - target $Data.rgtarg - sele (not (resn ANI or resn XAN or resn WAT or resn HOH or resn TIP* or resn DUM or resh SHA)) - end - end if - - if ($Data.cmrest eq true ) then - @RUN:cm-restraints.cns - end if - - if ($Data.surfrest eq true ) then - @RUN:surf-restraints.cns - end if - - if ($Data.flags.centroids eq true) then - @RUN:centroids_initialize.cns - @RUN:centroids_set_map.cns - noe scale centroid $data.centroids.kscale end - end if - - flag excl ncs end - evaluate ($nrig = 0) - evaluate ($nfirst = 1) - evaluate ($bestair = 0) - - if ($SaProtocol.rigidmini eq true) then - while ($nrig < $SaProtocol.ntrials) loop trials - - evaluate ($nrig = $nrig + 1) - - if ( $log_level = verbose ) then - set message=normal echo=on end - else - set message=off echo=off end - end if - - ! random placement of molecules - if ($SaProtocol.randorien eq true) then - @RUN:separate.cns(Data=$Data; Toppar=$Toppar) - @RUN:random_rotations.cns - if ($Data.flags.centroids eq true) then - ! place the centroids on their positions - @RUN:centroids_initialize.cns - @RUN:centroids_set_map.cns - ! place the molecules around the centroids - @RUN:centroids_init_placement.cns - end if - end if - - if ($Data.flags.sani eq true) then - coor @@$tensor_pdb - do (x = x + $xcent + 100) (resn ANI) - do (y = y + $ycent + 100) (resn ANI) - do (z = z + $zcent + 100) (resn ANI) - end if - - if ($Data.flags.dani eq true) then - coor @@RUN:toppar/tensor_dani.pdb - do (x=x+$xcent+100) (resn DAN) - do (y=y+$ycent+100) (resn DAN) - do (z=z+$zcent+100) (resn DAN) - end if - - if ($Data.flags.xrdc eq true) then - coor @@$tensor_para_pdb - do (x=x+$xcent+100) (resn XAN) - do (y=y+$ycent+100) (resn XAN) - do (z=z+$zcent+100) (resn XAN) - end if - - if ($Data.flags.xpcs eq true) then - coor @@$tensor_para_pdb - do (x=x+$xcent+100) (resn XAN) - do (y=y+$ycent+100) (resn XAN) - do (z=z+$zcent+100) (resn XAN) - end if - - evaluate ($unamb_scale = 1.0) - evaluate ($ambig_scale = 1.0) - evaluate ($hbond_scale = 1.0) - evaluate ($symm_scale = 1.0) - evaluate ($cont_scale = 0.0) - evaluate ($surf_scale = 0.0) - - noe - scale dist $unamb_scale - scale ambi $ambig_scale - scale hbon $hbond_scale - scale symm $symm_scale - scale contact $cont_scale - scale surface $surf_scale - end - - evaluate ($nrdc=1) - while ($nrdc <= $data.numrdc) loop rdc - evaluate ($vea_bor_scale_$nrdc = min($Data.ini_bor_hot_$nrdc,$Data.fin_bor_cool3_$nrdc)) - evaluate ($vea_cen_scale_$nrdc = min($Data.ini_cen_hot_$nrdc,$Data.fin_cen_cool3_$nrdc)) - evaluate ($cln = "rd"+encode($nrdc) ) - evaluate ($san_scale_$nrdc = min($Data.rdc_hot_$nrdc,$Data.rdc_cool3_$nrdc)) - if ($Data.flags.vean eq true) then - vean class $cln force 0.0 0.0 end - end if - if ($Data.flags.sani eq true) then - sani class $cln force 0.0 end - end if - if ($Data.flags.xrdc eq true) then - xrdc class $cln force 0.0 end - end if - evaluate ($nrdc = $nrdc + 1) - end loop rdc - - evaluate ($ndani=1) - while ($ndani <= $data.numdani) loop dani - evaluate ($dan_scale_$ndani = min($Data.dan_hot_$ndani,$Data.dan_cool3_$ndani)) - if ($Data.flags.dani eq true) then - evaluate ($cln = "da"+encode($ndani) ) - dani class $cln force 0.0 end - end if - evaluate ($ndani = $ndani + 1) - end loop dani - - if ($Data.flags.xpcs eq true) then - evaluate ($npcs=1) - while ($npcs <= $data.numpcs) loop pcs - evaluate ($pcs_scale_$npcs = min($Data.pcs_hot_$npcs,$Data.pcs_cool3_$npcs)) - evaluate ($cln = "pc"+encode($npcs) ) - xpcs class $cln force 0.0 end - evaluate ($npcs= $npcs + 1) - end loop pcs - end if - - evaluate ($kinter = $SaProtocol.inter_rigid) - @RUN:scale_inter_mini.cns - - - ! a few rounds of rotational rigid body minimization for each independent chain - evaluate ($imini = 0) - while ($imini le 4) loop rigmin - - if ($imini >= 1) then - evaluate ($paramin = false) - evaluate ($nrdc=1) - while ($nrdc <= $data.numrdc) loop rdc - evaluate ($vea_bor_scale_$nrdc = min($Data.ini_bor_hot_$nrdc,$Data.fin_bor_cool3_$nrdc)) - evaluate ($vea_cen_scale_$nrdc = min($Data.ini_cen_hot_$nrdc,$Data.fin_cen_cool3_$nrdc)) - evaluate ($san_scale_$nrdc = min($Data.rdc_hot_$nrdc,$Data.rdc_cool3_$nrdc)) - evaluate ($cln = "rd"+encode($nrdc) ) - if ($Data.flags.vean eq true) then - vean class $cln force $vea_bor_scale_$nrdc $vea_cen_scale_$nrdc end - evaluate ($vea_bor_scale_$nrdc = min(($vea_bor_scale_$nrdc * 2),$Data.fin_bor_cool3_$nrdc)) - evaluate ($vea_cen_scale_$nrdc = min(($vea_cen_scale_$nrdc * 2),$Data.fin_cen_cool3_$nrdc)) - end if - if ($Data.flags.sani eq true) then - sani class $cln force $san_scale_$nrdc end - evaluate ($san_scale_$nrdc = min($san_scale_$nrdc * 2,$Data.rdc_cool3_$nrdc)) - end if - if ($Data.flags.xrdc eq true) then - xrdc class $cln force $san_scale_$nrdc end - evaluate ($san_scale_$nrdc = min($san_scale_$nrdc * 2,$Data.rdc_cool3_$nrdc)) - evaluate ($paramin = true) - end if - evaluate ($nrdc = $nrdc + 1) - end loop rdc - - if ($Data.flags.sani eq true) then - if ($rantens eq true) then - @RUN:mini_tensor.cns - end if - end if - - if ($Data.flags.xpcs eq true) then - evaluate ($npcs=1) - while ($npcs <= $data.numpcs) loop pcs - evaluate ($cln = "pc"+encode($npcs) ) - xpcs class $cln force $pcs_scale_$npcs end - evaluate ($pcs_scale_$npcs = min($pcs_scale_$npcs * 2,$Data.pcs_cool3_$npcs)) - evaluate ($npcs= $npcs + 1) - end loop pcs - end if - - if ($paramin eq TRUE) then - if ($rantens_para eq true) then - @RUN:mini_tensor_para.cns - end if - end if - - if ($Data.flags.dani eq true) then - evaluate ($ndani=1) - while ($ndani <= $data.numdani) loop dani - evaluate ($cln = "da"+encode($ndani) ) - dani class $cln force $dan_scale_$ndani end - evaluate ($dan_scale_$ndani = min($dan_scale_$ndani * 2,$Data.dan_cool3_$ndani)) - evaluate ($ndani = $ndani + 1) - end loop dani - if ($rantens_dani eq true) then - @RUN:mini_tensor_dani.cns - end if - end if - - end if - - evaluate ($imini = $imini + 1) - eval ($ministeps = 500 * nint ($data.ncomponents/6 + 1)) - if ($SaProtocol.randorien eq true) then - flag excl vdw elec coll zhar end - end if - eval ($nchain1 = 0) - while ($nchain1 < $data.ncomponents) loop nloop1 - eval($nchain1 = $nchain1 + 1) - if ($Toppar.fix_origin_$nchain1 eq false) then - fix sele=(not all) end - fix sele=( not (segid $Toppar.prot_segid_$nchain1 or segid $watersegname_$nchain1) and not name OO) end - minimize rigid - group (segid $Toppar.prot_segid_$nchain1 or segid $watersegname_$nchain1 and not name MAP) - translation=false - nstep $ministeps - drop 10.0 - tole 0.1 - nprint 10 - end - end if - end loop nloop1 - fix sele=(not all) end - - flag include vdw end - if ($Data.flags.elec0 eq true) then - flag include elec end - end if - - evaluate ($unamb_scale = min(($unamb_scale * 2),$Data.unamb_cool3)) - evaluate ($ambig_scale = min(($ambig_scale * 2),$Data.amb_cool3)) - evaluate ($hbond_scale = min(($hbond_scale * 2),$Data.hbond_cool3)) - evaluate ($symm_scale = min(($symm_scale * 2),$Data.ksym)) - - noe - scale dist $unamb_scale - scale ambi $ambig_scale - scale hbon $hbond_scale - scale symm $symm_scale - if ($data.flags.centroids = true) then - scale centroid $data.centroids.kscale end - end if - end - - end loop rigmin - - evaluate ($unamb_scale_store = $unamb_scale) - evaluate ($ambig_scale_store = $ambig_scale) - evaluate ($hbond_scale_store = $hbond_scale) - evaluate ($symm_scale_store = $symm_scale) - - flag include vdw end - if ($Data.flags.elec0 eq true) then - flag include elec end - end if - - if ($SaProtocol.rigidtrans eq true) then - - if ($data.waterdock eq true) then - if ($data.solvate_method ne "db") then - inline @RUN:waterdock_remove-water.cns - else - inline @RUN:db0.cns - end if - end if - - evaluate ($cont_scale = $Data.kcont) - evaluate ($surf_scale = $Data.ksurf) - noe - scale contact $cont_scale - scale surface $surf_scale - end - fix sele=(name OO and not resn XAN) end - minimize rigid - eval ($nchain1 = 0) - while ($nchain1 < $data.ncomponents) loop nloop1 - eval($nchain1 = $nchain1 + 1) - if ($Toppar.fix_origin_$nchain1 eq false) then - group (segid $Toppar.prot_segid_$nchain1 or segid $watersegname_$nchain1 and not name MAP) - end if - translation=false - end loop nloop1 - nstep 1000 - nprint 10 - end - - if ($data.solvate_method eq "db") then - inline @RUN:db00.cns - end if - - energy end - - if ($Data.flags.rg eq true) then - flag include coll end - end if - - if ($Data.flags.zres eq true) then - flag incl zhar end - end if - - fix sele=(name OO and not resn XAN) end - eval ($ministeps = $SaProtocol.emstepstrans) - minimize rigid - eval ($nchain1 = 0) - while ($nchain1 < $data.ncomponents) loop nloop1 - eval($nchain1 = $nchain1 + 1) - if ($Toppar.fix_origin_$nchain1 eq false) then - group (segid $Toppar.prot_segid_$nchain1 or segid $watersegname_$nchain1 and not name MAP) - end if - translation=true - end loop nloop1 - nstep $ministeps - nprint 10 - end - - energy end - - if ($data.waterdock eq true) then - if ($data.solvate_method eq "db") then - display MINIMIZATION ENERGY BEFORE: $grad $ener $vdw $elec - minimize rigid - eval ($nchain1 = 0) - while ($nchain1 < $data.ncomponents) loop nloop1 - eval($nchain1 = $nchain1 + 1) - if ($Toppar.fix_origin_$nchain1 eq false) then - group (segid $Toppar.prot_segid_$nchain1 and not (resn WAT or resn HOH or resn TIP* or name MAP)) - end if - translation=true - end loop nloop1 - for $id in id ((resn WAT or resn HOH or resn TIP*) and name OH2 and (attr store5 ne 1)) loop miniwater - group (byres(id $id)) - end loop miniwater - translation=$data.transwater - nstep $ministeps - nprint 100 - end - display MINIMIZATION ENERGY AFTER: $grad $ener $vdw $elec - inline @RUN:db1.cns - end if - inline @RUN:waterdock_mini.cns - end if - - fix sele=(name OO and not resn XAN) end - minimize rigid - eval ($nchain1 = 0) - while ($nchain1 < $data.ncomponents) loop nloop1 - eval($nchain1 = $nchain1 + 1) - if ($Toppar.fix_origin_$nchain1 eq false) then - group (segid $Toppar.prot_segid_$nchain1 and not (resn WAT or resn HOH or resn TIP* or name MAP)) - end if - translation=true - end loop nloop1 - for $id in id (segid WA* and (resn WAT or resn HOH or resn TIP*) and name OH2 and (attr store5 ne 1)) loop miniwater - group (byres(id $id)) - end loop miniwater - translation=true - nstep $ministeps - nprint 10 - end - energy end - - if ($data.waterdock eq true) then - inline @RUN:waterdock_mini.cns - end if - - fix sele=(not all) end - - if ($anisotropy eq true) then - fix sele=(not all) end - fix sele=(name OO and not resn XAN) end - minimize rigid - for $id in id ((resn ANI or resn DAN or resn XAN) and name OO) loop miniani - group (byres(id $id)) - translation=false - end loop miniani - translation=false - nstep 100 - drop 10.0 - nprint 10 - end - minimize rigid - eval ($nchain1 = 0) - while ($nchain1 < $data.ncomponents) loop nloop1 - eval($nchain1 = $nchain1 + 1) - if ($Toppar.fix_origin_$nchain1 eq false) then - group (segid $Toppar.prot_segid_$nchain1 or segid $watersegname_$nchain1 and not name MAP) - end if - translation=true - end loop nloop1 - for $id in id ((resn ANI or resn DAN or resn XAN) and name OO) loop miniani - group (byres(id $id)) - translation=false - end loop miniani - translation=true - nstep $ministeps - nprint 10 - end - end if - - fix sele=(not all) end - - end if ! ($Saprotocol.rigidtrans eq true) - - ! centroids based energy should not be part of the $NOE energy - if ($data.flags.centroids = true) then - noe scale centroid 0 end - end if - - if ($data.flags.em = true) then - ! determine the best orientation of the complex in the density - @RUN:em_orien_search.cns - end if - - inline @RUN:bestener.cns - - if ($saprotocol.rotate180_it0 eq true) then - eval($nchain1 = 0) - while ($nchain1 < $data.ncomponents) loop nloop4 - eval($nchain1 = $nchain1 + 1) - if ($Toppar.shape_$nchain1 eq false) then - eval($nchain2 = $nchain1 ) - while ($nchain2 < $data.ncomponents) loop nloop3 - eval($nchain2 = $nchain2 + 1) - if ($Toppar.shape_$nchain2 eq false) then - @RUN:rotation180.cns - if ($data.flags.em = true) then - @RUN:em_orien_search.cns - end if - inline @RUN:bestener.cns - end if - end loop nloop3 - end if - end loop nloop4 - end if - - end loop trials - - else ! if ($Saprotocol.rigidmini = False) - - evaluate ($kinter = $SaProtocol.inter_rigid) - @RUN:scale_inter_only.cns - - if ($Data.flags.sani eq true) then - evaluate ($nrdc=1) - while ($nrdc <= $data.numrdc) loop rdc - evaluate ($cln = "rd"+encode($nrdc) ) - sani class $cln force $Data.rdc_hot_$nrdc end - evaluate ($nrdc = $nrdc + 1) - end loop rdc - if ($rantens eq true) then - @RUN:mini_tensor.cns - end if - end if - - evaluate ($paramin = false) - if ($Data.flags.xrdc eq true) then - evaluate ($nrdc=1) - while ($nrdc <= $data.numrdc) loop rdc - evaluate ($cln = "rd"+encode($nrdc) ) - xrdc class $cln force $Data.rdc_hot_$nrdc end - evaluate ($nrdc = $nrdc + 1) - end loop rdc - evaluate ($paramin = true) - end if - - if ($Data.flags.xpcs eq true) then - evaluate ($npcs=1) - while ($npcs <= $data.numpcs) loop pcs - evaluate ($cln = "pc"+encode($npcs) ) - xpcs class $cln force $Data.pcs_hot_$npcs end - evaluate ($paramin = true) - evaluate ($npcs= $npcs + 1) - end loop pcs - end if - - if ($paramin eq TRUE) then - if ($rantens_para eq true) then - @RUN:mini_tensor_para.cns - end if - end if - - if ($Data.flags.dani eq true) then - evaluate ($ndani=1) - while ($ndani <= $data.numdani) loop dani - evaluate ($cln = "da"+encode($ndani) ) - dani class $cln force $Data.dan_hot_$ndani end - evaluate ($ndani = $ndani + 1) - end loop dani - if ($rantens_dani eq true) then - @RUN:mini_tensor_dani.cns - end if - end if - - do (refx=x) (all) - do (refy=y) (all) - do (refz=z) (all) - - ! the centroid based restraints should not be included in the energy calculation - if ($data.flags.centroids eq true) then - noe scale centroid 0 end - end if - - energy end - evaluate ($bestair = $noe) - - end if ! ($Saprotocol.rigidmini = true) - - -{* ===================== calculate complex internal energy *} - evaluate ($kinter = 1.0) - @RUN:scale_intra_only.cns - - flag include bond angle dihe impr vdw end - - evaluate ($elec = 0.0) - evaluate ($eintfree = 0.0) - if ($Data.flags.elec0 eq true) then - flag include elec end - end if - - energy end - - evaluate ($eintcplx = $bond + $angl + $impr + $dihe + $vdw + $elec) - evaluate ($eintfree = $eintcplx) - {* at this stage the two are similar since rigid-body EM only *} - -{* =========================== write out structure after rigid body refinement *} - - !bestener.cns: for waterdock, store3 contains store5 from lowest energy structure - do (x = refx) (not store3) - do (y = refy) (not store3) - do (z = refz) (not store3) - if ($data.waterdock eq true) then - if ($data.solvate_method eq "restraints") then - noe reset end - @RUN:read_noes.cns(Iteration=$Iteration; Data=$Data; count=$count) - end if - end if - - evaluate ($esym = 0.0) - evaluate ($ncs = 0.0) - evaluate ($zhar = 0.0) - evaluate ($rms_test_noe = 0.0) - evaluate ($violations_test_noe = 0) - if ($Data.flags.sym eq true) then - noe reset nres= 2000000 end - @RUN:symmultimer.cns - noe - scale symm $Data.ksym - end - energy end - evaluate ($esym = $noe) - if ($Data.noecv eq true) then - display Print out of cross-validated violations and rms not - display possible in combination with symmetry restraints - display CV values set therefore to 0 - end if - noe reset end - set message=normal echo=on end - !read again the NOE data, needed to remove the symmetry restraints - @@RUN:read_noes.cns(Iteration=$Iteration; Data=$Data; count=$count) - if ( $log_level = verbose ) then - set message=normal echo=on end - else - set message=off echo=off end - end if - else - if ($Data.noecv eq true) then - set message=on echo=on end - noe cv $ncvbest ? end - end if - if ( $log_level = verbose ) then - set message=normal echo=on end - else - set message=off echo=off end - end if - print threshold=0.3 noe - evaluate ($rms_noe=$result) - evaluate ($violations_noe=$violations) - if ($Data.noecv eq true) then - evaluate ($rms_test_noe=$test_rms) - evaluate ($violations_test_noe=$test_violations) - end if - end if - - evaluate ($unamb_scale = $Data.unamb_cool3) - evaluate ($ambig_scale = $Data.amb_cool3) - evaluate ($hbond_scale = $Data.hbond_cool3) - if ($data.solvate_method eq "restraints") then - evaluate ($amwa_scale = $data.water_restraint_scale) - end if - - noe - scale dist $unamb_scale - scale ambi $ambig_scale - scale hbon 0.0 - scale cont 0.0 - if ($data.solvate_method eq "restraints") then - scale amwa $amwa_scale - end if - end - -{* ===================== calculate final energies and write structure *} - flag incl bond angl impr noe end - flag exclude xref end - if ($Data.flags.sani eq true) then - flag incl sani end - end if - if ($Data.flags.xrdc eq true) then - flag incl xrdc end - end if - if ($Data.flags.xpcs eq true) then - flag incl xpcs end - end if - if ($Data.flags.dani eq true) then - flag incl dani end - end if - if ($Data.flags.vean eq true) then - flag incl vean end - end if - - if ($Data.flags.rg eq true ) then - collapse force $Data.krg_cool3 end - end if - - if ($Data.flags.zres eq true) then - flag incl zhar end - end if - - if ($data.ncomponents > 1) then - evaluate ($kinter = 1.0) - @RUN:scale_inter_final.cns - else - @RUN:scale_intra_only.cns - end if - energy end - evaluate ($cdih = 0.0) - evaluate ($etot = $ener - $noe) - evaluate ($noe = $bestair) - evaluate ($etot = $etot + $noe) - - evaluate ($Data.flags.dihed = false) - evaluate ($filename="NEWIT:" + $Filenames.fileroot + "_" + encode($count) + ".pdb0") - inline @RUN:print_coorheader.cns - - if ($reorient eq true) then - coor sele=(segid $Toppar.prot_segid_1) orient end - end if - - if ($data.waterdock eq true) then - write coordinates sele=(not (resn WAT or resn HOH or resn DUM)) output=$filename end - inline @RUN:waterdock_out0.cns - else - write coordinates sele=(not resn DUM) output=$filename end - end if - - stop - -{*======================= semi-flexible SA refinement*} -else - - if ($saprotocol.expand eq TRUE ) then - @RUN:centroids_initialize.cns - @RUN:centroids_set_restraints.cns - noe scale centroid $data.centroids.kscale end - @RUN:expand.cns - evaluate ($filename="NEWIT:" + $Filenames.fileroot + "_" + encode($count) + "_expand.pdb") - !write coordinates sele=(not resn DUM) output=$filename end - end if - - !Make sure that at least as many distance restraints are successfully - !read as the number of partitions for cross-validation - evaluate ($numnoe = 999) - noe ? end - if ($NUMNOE = 0) then - if ($Data.ncomponents > 1) then - if ($Data.surfrest eq FALSE) then - if ($Data.cmrest eq FALSE) then - if ($Data.ranair eq FALSE) then - if ($Data.flags.rg eq FALSE) then - evaluate ($errfile = "RUN:WARNING") - fileexist $errfile end - if ($result eq false) then - set display=$errfile end - display TOTAL NUMBER OF DISTANCE RESTRAINTS FOR FLEXIBLE REFINEMENT IS ZERO! - display CONTROL YOUR PARAMETER SETTINGS AND RESTRAINT DEFINITIONS - close $errfile end - end if - end if - end if - end if - end if - end if - evaluate ($Data.ncvpart = 1) - evaluate ($Data.noecv = FALSE) - end if - - if ($NUMNOE lt $Data.ncvpart) then - noe part=1 end - evaluate ($Data.ncvpart = 1) - evaluate ($Data.noecv = FALSE) - end if - - {*== check first for failed structures ==*} - evaluate ($failure = false) - evaluate ($filefail="NEWIT:" + $Filenames.fileroot + "_" + encode($count) + ".fail") - fileexist $filefail end - evaluate ($failure = $result) - - parameter - bond (resn WAT ) (resn WAT ) 1000 TOKEN - angle (resn WAT ) (resn WAT ) (resn WAT ) 500 TOKEN - bond (resn HOH ) (resn HOH ) 1000 TOKEN - angle (resn HOH ) (resn HOH ) (resn HOH ) 500 TOKEN - bond (resn TIP*) (resn TIP*) 1000 TOKEN - angle (resn TIP*) (resn TIP*) (resn TIP*) 500 TOKEN - end - - if ($Data.ranair eq true) then - if ($Data.ncomponents > 2) then - evaluate ($errfile = "RUN:FAILED") - fileexist $errfile end - if ($result eq false) then - set display=$errfile end - display ========= Unsupported option =========== - display Random definition of AIRs with more than - display two molecules currently unsupported - display ======================================== - close $errfile end - end if - stop - end if - evaluate ($Data.noecv = false) - noe - reset - nrestraints = 100000 ! allocate space for NOEs - ceiling 1000 - end - @RUN:contactairs.cns - - !Read back in hbond data - if ($Data.hbond_lastit ge &iteration) then - if ($Data.hbond_firstit le &iteration) then - if ($Data.hbonds_on eq true) then - noe @@$hbond_fname end - end if - end if - end if - - noe - averaging * sum - potential * soft - scale * 1.0 - sqconstant * 1.0 - sqexponent * 2 - soexponent * 1 - rswitch * 1.0 - sqoffset * 0.0 - asymptote * 2.0 - msoexponent * 1 - masymptote * -0.1 - mrswitch * 1.0 - avexpo hbond 20 - end - inline @RUN:water_rest.cns - end if - - if ($Data.flags.elec1 eq true) then - flag include elec end - if ($Data.dielec1 eq rdie) then - parameter nbonds eps=$Data.epsilon1 rdie shift switch end end - ! shift statement needed first to activate switch (CNS bug?) - else - parameter nbonds eps=$Data.epsilon1 cdie end end - end if - parameter nbonds ? end end - else - evaluate ($elec=0.0) - flag exclude elec end - end if - -end if - -if ( $log_level = verbose ) then - set message=normal echo=on end -else - set message=off echo=off end -end if - -evaluate ($ini_flt = 5.0) - -@RUN:symmultimer.cns - -if ($Data.flags.zres eq true ) then - flag incl zhar end - @RUN:zrestraining.cns -end if - -if ($Data.cmrest eq true ) then - @RUN:cm-restraints.cns -end if - -! use contact airs rather than surface restraints at it1 -if ($Data.surfrest eq true ) then - @RUN:contactairs.cns -end if - -if ($Data.dnarest eq true ) then - @RUN:data/sequence/dna-rna_restraints.def -end if - -if ($Data.flags.rg eq true ) then - collapse - force $Data.krg_hot - target $Data.rgtarg - sele (not (resn ANI or resn XAN or resn TIP*)) - end -end if - -if ($Data.ssdihed eq all ) then - @RUN:protein-ss-restraints-all.def -end if -if ($Data.ssdihed eq alpha ) then - @RUN:protein-ss-restraints-alpha.def -end if -if ($Data.ssdihed eq alphabeta ) then - @RUN:protein-ss-restraints-alpha-beta.def -end if - -! get initial energy -energy end - -coor copy end - -if ($saprotocol.rotate180_it1 eq true) then - evaluate ($rotiter = 2) {* two iteration in rotloop1, rotation *} -else - evaluate ($rotiter = 1) {* only one iteration in rotloop1, no rotation *} -end if - -evaluate ($nlcount = 0) {* two iterations in rotloop1, first rotated *} -{* ================== Loop to sample 180 degrees rotated solutions if requested *} - -while ($nlcount < $rotiter) loop rotloop1 - - evaluate ($nlcount = $nlcount + 1) - - evaluate ($unamb_scale = $Data.unamb_hot) - evaluate ($ambig_scale = $Data.amb_hot) - evaluate ($hbond_scale = $Data.hbond_hot) - - noe - scale dist $unamb_scale - scale ambi $ambig_scale - scale hbon $hbond_scale - end - - if ($Data.flags.dihed eq true) then - flag include dihed end - end if - - if ($Data.scaling eq TRUE) then - inline @RUN:set_noe_scale.cns - energy end - noe - scale dist $Data.unamb_hot - scale ambi $Data.amb_hot - end - energy end - end if - - if ($Data.flags.sani eq true) then - evaluate ($nrdc=1) - while ($nrdc <= $data.numrdc) loop rdc - evaluate ($cln = "rd"+encode($nrdc) ) - sani class $cln force $Data.rdc_hot_$nrdc end - evaluate ($nrdc = $nrdc + 1) - end loop rdc - if ($rantens eq true) then - @RUN:mini_tensor.cns - end if - end if - - evaluate ($paramin = false) - if ($Data.flags.xrdc eq true) then - evaluate ($nrdc=1) - while ($nrdc <= $data.numrdc) loop rdc - evaluate ($cln = "rd"+encode($nrdc) ) - xrdc class $cln force $Data.rdc_hot_$nrdc end - evaluate ($nrdc = $nrdc + 1) - end loop rdc - evaluate ($paramin = true) - end if - - if ($Data.flags.xpcs eq true) then - evaluate ($npcs=1) - while ($npcs <= $data.numpcs) loop pcs - evaluate ($cln = "pc"+encode($npcs) ) - xpcs class $cln force $Data.pcs_hot_$npcs end - evaluate ($paramin = true) - evaluate ($npcs= $npcs + 1) - end loop pcs - end if - - if ($paramin eq TRUE) then - if ($rantens_para eq true) then - @RUN:mini_tensor_para.cns - end if - end if - - if ($Data.flags.dani eq true) then - evaluate ($ndani=1) - while ($ndani <= $data.numdani) loop dani - evaluate ($cln = "da"+encode($ndani) ) - dani class $cln force $Data.dan_hot_$ndani end - evaluate ($ndani = $ndani + 1) - end loop dani - if ($rantens_dani eq true) then - @RUN:mini_tensor_dani.cns - end if - end if - - - if ($nlcount = 2) then - - flag excl bond angl dihe impr zhar end - - evaluate ($kinter = $SaProtocol.inter_rigid) - @RUN:scale_inter_only.cns - - eval($nchain1 = 0) - while ($nchain1 < $data.ncomponents) loop nloop4 - eval($nchain1 = $nchain1 + 1) - eval($nchain2 = $nchain1 ) - while ($nchain2 < $data.ncomponents) loop nloop3 - eval($nchain2 = $nchain2 + 1) - @RUN:rotation180.cns - end loop nloop3 - end loop nloop4 - - inline @RUN:setflags.cns - if ($Data.flags.elec1 eq true) then - flag include elec end - end if - if ($Data.flags.dihed eq true) then - flag include dihed end - end if - flag include bond angle impr vdw end - - end if - - igroup - interaction (not (resn ANI or resn DAN or resn XAN or resn SHA)) - (not (resn ANI or resn DAN or resn XAN or resn SHA)) weight * 1 end - interaction (resn ANI or resn DAN or resn XAN or resn SHA) - (resn ANI or resn DAN or resn XAN or resn SHA) weight * 1 vdw 0.0 elec 0.0 end - end - - energy end - - ! fix the residues describing the shape - fix sele=(resn SHA) end - - ! fix the DUM residue for expand/refine and perform a first rigid body EM - if ($saprotocol.expand eq TRUE ) then - fix sele=(name DUM) end - fix sele=(name OO and not resn XAN) end - eval ($ministeps = $SaProtocol.emstepstrans) - minimize rigid - eval ($nchain1 = 0) - while ($nchain1 < $data.ncomponents) loop nloop1 - eval($nchain1 = $nchain1 + 1) - if ($Toppar.fix_origin_$nchain1 eq false) then - group (segid $Toppar.prot_segid_$nchain1 or segid $watersegname_$nchain1 and not (name MAP or name DUM)) - end if - translation=true - end loop nloop1 - nstep $ministeps - nprint 10 - end - energy end - end if - -{* 0 ======================================= initial EM for flexible parts only *} - - if ($Data.flags.rg eq true ) then - collapse force $Data.krg_hot end - end if - - if ($SaProtocol.rigidtrans eq true) then - @RUN:flex_segment_back.cns - fix sele=((attr store5 = 0 or name OO or resn SHA) and not name H* and not (resn WAT or resn HOH or resn TIP*)) end - minimize powell nstep=200 drop=10.0 nprint=25 end - fix sele=(not all) end - end if - - energy end - - do (refx = x) (all) - do (refy = y) (all) - do (refz = z) (all) - - do (harm = 0) (all) - do (harm = 20) (name OO and not resn XAN) - restraints harmonic exponent=2 end - flag incl harm end - - ! fix the residues describing the shape - fix sele=(resn SHA) end - - ! fix the DUM residue for expand/refine - if ($saprotocol.expand eq TRUE ) then - fix sele=(name DUM) end - end if - - ! the following is added to avoid the generation of the torsion angle topology if not needed - ! in cases where the number of steps is set to 0 (avoid issues with isolated atoms) - eval ($torsiondone = false) - if ($failure eq false) then -{* 1 ======================================= rigid body high temperature search*} -{* rigid bodies *} - if ($data.flags.em = true) then - if ($data.em.it1 = true) then - flags include xref end - end if - end if - - if ($SaProtocol.initiosteps > 0) then - @RUN:torsiontop.cns - eval ($torsiondone = true) - flags exclude dihed end - @RUN:sa_ltad_hightemp.cns(SaProtocol=$SaProtocol;Data=$Data;Toppar=$Toppar) - end if - -{* 2 ======================================= rigid body first slow cooling *} -{* rigid bodies only *} - - if ($Data.flags.rg eq true ) then - collapse force $Data.krg_cool1 end - end if - - if ($SaProtocol.cool1_steps > 0) then - if ($torsiondone ne true) then - @RUN:torsiontop.cns - eval ($torsiondone = true) - end if - evaluate ($SaProtocol.tadfactor = 4) - @RUN:sa_ltad_cool1.cns(SaProtocol=$SaProtocol;Data=$Data;Toppar=$Toppar) - end if - -{* 3 ======================================= second slow cooling *} -{* flexible side-chains and reduced time step *} - - if ($Data.flags.rg eq true ) then - collapse force $Data.krg_cool2 end - end if - - if ($Data.flags.dihed eq true) then flags include dihed end end if - - if ($SaProtocol.cool2_steps > 0) then - if ($torsiondone eq true) then - dyna tors topo reset end end - end if - @RUN:torsiontop_flex.cns - eval ($torsiondone = true) - evaluate ($SaProtocol.tadfactor = 1) - @RUN:sa_ltad_cool2.cns(SaProtocol=$SaProtocol;Data=$Data;Toppar=$Toppar) - end if - -{* 4 ============================================ third slow cooling *} -{* flexible side-chains and backbone at interface and reduced time step *} - - if ($Data.flags.rg eq true ) then - collapse force $Data.krg_cool3 end - end if - - if ($SaProtocol.cool3_steps > 0) then - if ($torsiondone eq true) then - dyna tors topo reset end end - end if - @RUN:torsiontop_flex_back.cns - eval ($torsiondone = true) - evaluate ($SaProtocol.tadfactor = 1) - @RUN:sa_ltad_cool3.cns(SaProtocol=$SaProtocol;Data=$Data;Toppar=$Toppar) - end if - - end if - -{* 5 =========================== final minimization *} - - if ($Data.scaling eq true) then - inline @RUN:set_noe_scale.cns - energy end - noe - scale dist $Data.unamb_cool3 - scale ambi $Data.amb_cool3 - scale hbon $Data.hbond_cool3 - end - energy end - end if - - @RUN:flex_segment_back.cns - - fix sele=((attr store5 = 0 or name OO or resn SHA) and not name H* and not (resn WAT or resn HOH or resn TIP* or resn XAN)) end - minimize powell nstep=200 drop=10.0 nprint=25 end - fix sele=(not all) end - energy end - - if ($nlcount = 1) then - coor swap end - if ($torsiondone eq true) then - if ($failure eq false) then - dyna tors topo reset end end - end if - end if - end if - -end loop rotloop1 - -coor swap end - -if ($saprotocol.rotate180_it1 eq true) then - evaluate ($rotiter = 2) {* two iteration in rotloop2, rotation *} -else - evaluate ($rotiter = 1) {* only one iteration in rotloop2, no rotation *} -end if - -evaluate ($nlcount = 0) - -{* ================== Loop to write 180 degrees rotated solutions if requested *} - -while ($nlcount < $rotiter) loop rotloop2 - - evaluate ($nlcount = $nlcount + 1) - -{* ======================= calculate free molecules internal energy *} - - igroup - interaction (not (resn ANI or resn DAN or resn XAN or resn SHA or resn WAT or resn HOH or resn TIP* or resn DUM)) - (not (resn ANI or resn DAN or resn XAN or resn SHA or resn WAT or resn HOH or resn TIP* or resn DUM)) weight * 1 end - end - - do (refx=x) (all) - do (refy=y) (all) - do (refz=z) (all) - - fix sele=(resn ANI or resn DAN or resn XAN or resn SHA or resn WAT or resn HOH or resn TIP* or resn DMS) end - - flag excl noe dani sani vean xrdc xpcs coll cdih zhar end - flag include bond angle dihe impr vdw end - - evaluate ($elec = 0.0) - evaluate ($eintfree = 0.0) - if ($Data.flags.elec1 eq true) then - flag include elec end - end if - - if ($Data.dielec1 eq rdie) then - parameter nbonds eps=$Data.epsilon1 rdie shift switch end end - ! shift statement needed first to activate switch (CNS bug?) - else - parameter nbonds eps=$Data.epsilon1 cdie end end - end if - parameter nbonds ? end end - inline @RUN:calc_free-ene.cns - - fix sele=(not all) end - - do (x = refx) (all) - do (y = refy) (all) - do (z = refz) (all) - -{* ===================== calculate complex internal energy *} - - evaluate ($kinter = 1.0) - @RUN:scale_intra_only.cns - - flag include bond angle dihe impr vdw end - - evaluate ($elec = 0.0) - evaluate ($eintcplx = 0.0) - if ($Data.flags.elec1 eq true) then - flag include elec end - end if - - energy end - - evaluate ($eintcplx = $bond + $angl + $impr + $dihe + $vdw + $elec) - -{* ===================== calculate final energies and write structure *} - evaluate ($cdih=0.0) - flag incl noe cdih end - if ($Data.flags.sani eq true) then - flag incl sani end - end if - if ($Data.flags.xrdc eq true) then - flag incl xrdc end - end if - if ($Data.flags.xpcs eq true) then - flag incl xpcs end - end if - if ($Data.flags.dani eq true) then - flag incl dani end - end if - if ($Data.flags.vean eq true) then - flag incl vean end - end if - if ($Data.ncomponents > 1) then - evaluate ($kinter = 1.0) - @RUN:scale_inter_final.cns - else - @RUN:scale_intra_only.cns - end if - - noe - scale dist $Data.unamb_cool3 - scale ambi $Data.amb_cool3 - scale hbon 0.0 - scale symm 0.0 - scale cont 0.0 - end - energy end - evaluate ($eair= $noe) - - evaluate ($esym = 0.0) - evaluate ($ncs = 0.0) - evaluate ($zhar = 0.0) - if ($Data.flags.sym eq true) then - noe reset nres= 200000 end - @RUN:symmultimer.cns - noe - scale symm $Data.ksym - end - energy end - evaluate ($esym = $noe) - if ($Data.noecv eq true) then - evaluate ($violations_test_noe=0) - evaluate ($rms_test_noe=0.0) - display Print out of cross-validated violations and rms not - display possible in combination with symmetry restraints - display CV values set therefore to 0 - end if - noe reset end - set message=normal echo=on end - !read all the experimental Data: - @@RUN:read_noes.cns(Iteration=$Iteration; Data=$Data; count=$count) - if ( $log_level = verbose ) then - set message=normal echo=on end - else - set message=off echo=off end - end if - else - print threshold=0.3 noe - evaluate ($rms_noe=$result) - evaluate ($violations_noe=$violations) - if ($Data.noecv eq true) then - evaluate ($rms_test_noe=$test_rms) - evaluate ($violations_test_noe=$test_violations) - else - evaluate ($rms_test_noe=0.0) - evaluate ($violations_test_noe=0) - end if - end if - - if ($Data.dnarest eq true) then - @RUN:data/sequence/dna-rna_restraints.def - end if - - energy end - evaluate ($etot = $ener - $noe) - evaluate ($noe = $eair) - evaluate ($etot = $etot + $noe) - - ! get the local cross-correlation for EM-data - if ($data.flags.em = true) then - @RUN:em_calc_lcc.cns(toppar=$toppar; data=$data; saprotocol=$saprotocol; lcc=$lcc;) - flags exclude xref end - end if - - - evaluate ($Data.flags.dihed = false) - if ($nlcount = 1) then - evaluate ($filename="NEWIT:" + $Filenames.fileroot + "_" + encode($count) + ".pdb0") - else - evaluate ($num = $count + $iterations.structures) - evaluate ($filename="NEWIT:" + $Filenames.fileroot + "_" + encode($num) + ".pdb0") - end if - inline @RUN:print_coorheader.cns - - if ($reorient = true) then - coor sele= (not name H* and not resn ANI and not resn XAN and not resn DAN) orient end - end if - - if ($data.waterdock eq true) then - write coordinates sele=(not (resn WAT or resn HOH or resn TIP*)) output=$filename end - inline @RUN:waterdock_out1.cns - else - write coordinates output=$filename end - end if - - coor swap end - -end loop rotloop2 -stop diff --git a/src/haddock/modules/flexref/cns/rg-restraint.cns b/src/haddock/modules/flexref/cns/rg-restraint.cns deleted file mode 100644 index 514b7a693..000000000 --- a/src/haddock/modules/flexref/cns/rg-restraint.cns +++ /dev/null @@ -1,16 +0,0 @@ -! rg-restraint.cns -! Define the radius of gyration restraint -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! -collapse - force $Data.krg - target $Data.rgtarg - sele ($Data.rgsele) -end diff --git a/src/haddock/modules/flexref/cns/rmsd-new.inp b/src/haddock/modules/flexref/cns/rmsd-new.inp deleted file mode 100644 index 14d6a57b1..000000000 --- a/src/haddock/modules/flexref/cns/rmsd-new.inp +++ /dev/null @@ -1,186 +0,0 @@ -! rmsd.inp -! Calculate the pairwise RMSD matrix by fitting on all contacting residues -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! - -set timing=on end - -@RUN:initialize.cns(iteration=$iteration;) - -@NEWIT:iteration.cns(iteration=$iteration;) - -@RUN:run.cns( -iteration =$iteration; -filenames =$filenames; -data =$data; -iterations=$iterations; -saprotocol=$saprotocol; -refine =$refine; -toppar =$toppar; -analysis =$analysis; -) - -!reads in structure, coordinates and parameter files -@RUN:read_struc.cns - -delete sele=(resn ANI) end -delete sele=(resn DAN) end -delete sele=(resn XAN) end - -!check if automatic flexible segment option is on -evaluate($nchain1 = 0) -evaluate($autoflex = 0) -while ($nchain1 < $data.ncomponents) loop nloop0 - evaluate($nchain1 = $nchain1 + 1) - evaluate($Toppar.nseg_$nchain1 = -1) - if ($Toppar.nseg_$nchain1 < 0) then - evaluate ($autoflex = 1) - end if -end loop nloop0 - -if ($autoflex = 1) then - - @PREVIT:file.cns(filenames=$filenames) - - evaluate ($count = 1) - evaluate ($nstruc1 = 0) - do (store1 = 0) (all) - while ($count le $Iterations.anastruc) loop loop1 - evaluate ($file = $filenames.bestfile_$count) - coor init end - if ($file ne "") then - coor @@$file - evaluate ($nstruc1 = $nstruc1 + 1) - eval($nchain1 = 0) - while ($nchain1 < $data.ncomponents) loop nloop2 - eval($nchain1 = $nchain1 + 1) - do (store1 = 1) (byres (segid $Toppar.prot_segid_$nchain1 and - (not segid $Toppar.prot_segid_$nchain1) around 5.0)) - end loop nloop2 - end if - evaluate ($count = $count + 1) - end loop loop1 -end if - -do (store7 = 0) (all) -do (store6 = 0) (all) - -{* define part for fitting and RMS calculations: flexible interface*} -evaluate($nchain1 = 0) -while ($nchain1 < $data.ncomponents) loop nloop3 - evaluate($nchain1 = $nchain1 + 1) - evaluate($fcounter=0) - do (store6 = 0) (all) - if ($Toppar.nseg_$nchain1 = 0) then - display NO FLEXIBLE SEGMENTS for molecule $nchain1 USING ALL BACKBONE - do (store7 = $nchain1) ((name CA or name C#) and segid $Toppar.prot_segid_$nchain1) - do (store6 = 1) ((name CA or name C#) and segid $Toppar.prot_segid_$nchain1) - show sum (store6) (segid $Toppar.prot_segid_$nchain1) - evaluate ($nata=$result) - if ($nata < 3) then - display not enough backbone atoms recognized for molecule $nchain1 USING ALL ATOMS for RMS calculation - do (store7 = $nchain1) (segid $Toppar.prot_segid_$nchain1) - do (store6 = 1) (segid $Toppar.prot_segid_$nchain1) - end if - else - if ($Toppar.nseg_$nchain1 < 0) then - display AUTOMATIC DEFINITION OF INTERFACE REGION FROM CONTACT ANALYSIS - do (store7 = $nchain1) (attr store1 = 1 and (name CA or name C#) and segid $Toppar.prot_segid_$nchain1) - do (store6 = 1) (attr store1 = 1 and (name CA or name C#) and segid $Toppar.prot_segid_$nchain1) - show sum (store6) (segid $Toppar.prot_segid_$nchain1) - evaluate ($nata=$result) - if ($nata < 3) then - display not enough backbone atoms recognized for molecule $nchain1 USING ALL ATOMS for RMS calculation - do (store7 = $nchain1) (segid $Toppar.prot_segid_$nchain1) - do (store6 = 1) (segid $Toppar.prot_segid_$nchain1) - end if - else - display FLEXIBLE SEGMENTS for molecule $nchain1 - while ($fcounter < $Toppar.nseg_$nchain1) loop Xflex - evaluate($fcounter=$fcounter + 1) - do (store7 = $nchain1) ( resid $Toppar.start_seg_$nchain1_$fcounter : $Toppar.end_seg_$nchain1_$fcounter - and segid $Toppar.prot_segid_$nchain1 and (name CA or name C#)) - do (store6 = 1) ( resid $Toppar.start_seg_$nchain1_$fcounter : $Toppar.end_seg_$nchain1_$fcounter - and segid $Toppar.prot_segid_$nchain1 and (name CA or name C#)) - end loop Xflex - show sum (store6) (segid $Toppar.prot_segid_$nchain1) - evaluate ($nata=$result) - if ($nata < 3) then - display not enough backbone atoms recognized for molecule $nchain1 USING ALL ATOMS for RMS calculation - do (store7 = $nchain1) (segid $Toppar.prot_segid_$nchain1) - do (store6 = 1) (segid $Toppar.prot_segid_$nchain1) - end if - end if - end if - show sum (store6) (segid $Toppar.prot_segid_$nchain1) - display CHAIN $nchain1 HAS $result ATOMS FOR FITTING -end loop nloop3 - -evaluate ($nstruc_total = 0) -for $filename in ( @@NEWIT:file.list ) loop fitt - evaluate ($nstruc_total = $nstruc_total + 1) -end loop fitt -evaluate ($nstruc_total = min($nstruc_total,$iterations.anastruc)) - -{* filenames *} -evaluate ($outroot = "NEWIT:analysis/" + $Filenames.fileroot) -evaluate ($trajfile=$outroot+"-reduced.crd") -evaluate ($dispfile=$outroot+"_rmsd.disp") - -set display=$dispfile end - -evaluate ($nstruc_i = 0) -while ($nstruc_i < $nstruc_total) loop fiti - - evaluate ($nstruc_i = $nstruc_i + 1) - - read trajectory - ascii true - input= $trajfile - begin $nstruc_i skip 1 stop $nstruc_i - end - coor copy end - - if ($data.ncomponents > 1) then - eval($nrms=$data.ncomponents-1) - else - eval($nrms=1) - end if - - evaluate ($nstruc_j = $nstruc_i) - while ($nstruc_j < $nstruc_total) loop fitj - evaluate ($nstruc_j = $nstruc_j + 1) - read trajectory - ascii true - input= $trajfile - begin $nstruc_j skip 1 stop $nstruc_j - end - ! fit on flexible interface of first molecule - coor sele= (attr store7 = 1) fit end - ! rms on flexible interface of remaining molecules - eval($nchain = 1) - eval($rmsdist = 0) - while ($nchain < $data.ncomponents) loop nloop3 - eval($nchain = $nchain + 1) - coor sele= (attr store7 = $nchain) rms end - eval($rmsdist=$rmsdist+$result**2) - end loop nloop3 - eval($rmsdist=sqrt($rmsdist)/$nrms) - display $nstruc_i $nstruc_j $rmsdist - end loop fitj - -end loop fiti - -evaluate ($outdis = "NEWIT:analysis/MTX_DONE") -set display=$outdis end -display DONE - -stop diff --git a/src/haddock/modules/flexref/cns/rmsd.inp b/src/haddock/modules/flexref/cns/rmsd.inp deleted file mode 100644 index 18845aec9..000000000 --- a/src/haddock/modules/flexref/cns/rmsd.inp +++ /dev/null @@ -1,200 +0,0 @@ -! rmsd.inp -! Calculate the pairwise RMSD matrix by fitting on all contacting residues -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! - -set timing=on end - -@RUN:initialize.cns(iteration=$iteration;) - -@NEWIT:iteration.cns(iteration=$iteration;) - -@RUN:run.cns( -iteration =$iteration; -filenames =$filenames; -data =$data; -iterations=$iterations; -saprotocol=$saprotocol; -refine =$refine; -toppar =$toppar; -analysis =$analysis; -) - -!reads in structure, coordinates and parameter files -@RUN:read_struc.cns -@RUN:read_struc-cg.cns - -@PREVIT:file.cns(filenames=$filenames) -evaluate ($file = $filenames.bestfile_1) -coor @@$file - -delete sele=(not(known)) end - -delete sele=(resn ANI) end -delete sele=(resn DAN) end -delete sele=(resn XAN) end -delete sele=(resn TIP* or resn WAT or resn HOH or resn DMSO) end - -!check if automatic flexible segment option is on -evaluate($nchain1 = 0) -evaluate($autoflex = 0) -while ($nchain1 < $data.ncomponents) loop nloop0 - evaluate($nchain1 = $nchain1 + 1) - evaluate($Toppar.nseg_$nchain1 = -1) - if ($Toppar.nseg_$nchain1 < 0) then - evaluate ($autoflex = 1) - end if -end loop nloop0 - -if ($autoflex = 1) then - - @PREVIT:file.cns(filenames=$filenames) - - evaluate ($count = 1) - evaluate ($nstruc1 = 0) - do (store1 = 0) (all) - while ($count le $Iterations.anastruc) loop loop1 - evaluate ($file = $filenames.bestfile_$count) - coor init end - if ($file ne "") then - coor @@$file - evaluate ($nstruc1 = $nstruc1 + 1) - eval($nchain1 = 0) - while ($nchain1 < $data.ncomponents) loop nloop2 - eval($nchain1 = $nchain1 + 1) - if ($Toppar.shape_$nchain1 eq false) then - do (store1 = 1) (byres (segid $Toppar.prot_segid_$nchain1 and - (not segid $Toppar.prot_segid_$nchain1) around 5.0)) - end if - end loop nloop2 - end if - evaluate ($count = $count + 1) - end loop loop1 -end if - -do (store7 = 0) (all) -do (store6 = 0) (all) - -{* define part for fitting and RMS calculations: flexible interface*} -evaluate($nchain1 = 0) -while ($nchain1 < $data.ncomponents) loop nloop3 - evaluate($nchain1 = $nchain1 + 1) - if ($Toppar.shape_$nchain1 eq false) then - evaluate($fcounter=0) - do (store6 = 0) (all) - if ($Toppar.nseg_$nchain1 = 0) then - display NO FLEXIBLE SEGMENTS for molecule $nchain1 USING ALL BACKBONE - do (store7 = $nchain1) ((name CA or name BB or name C#) and segid $Toppar.prot_segid_$nchain1) - do (store6 = 1) ((name CA or name BB or name C#) and segid $Toppar.prot_segid_$nchain1) - show sum (store6) (segid $Toppar.prot_segid_$nchain1) - evaluate ($nata=$result) - if ($nata < 3) then - display not enough backbone atoms recognized for molecule $nchain1 USING ALL ATOMS for RMS calculation - do (store7 = $nchain1) (segid $Toppar.prot_segid_$nchain1) - do (store6 = 1) (segid $Toppar.prot_segid_$nchain1) - end if - else - if ($Toppar.nseg_$nchain1 < 0) then - display AUTOMATIC DEFINITION OF INTERFACE REGION FROM CONTACT ANALYSIS - do (store7 = $nchain1) (attr store1 = 1 and (name CA or name BB or name C#) and segid $Toppar.prot_segid_$nchain1) - do (store6 = 1) (attr store1 = 1 and (name CA or name BB or name C#) and segid $Toppar.prot_segid_$nchain1) - show sum (store6) (segid $Toppar.prot_segid_$nchain1) - evaluate ($nata=$result) - if ($nata < 3) then - display not enough backbone atoms recognized for molecule $nchain1 USING ALL ATOMS for RMS calculation - do (store7 = $nchain1) (segid $Toppar.prot_segid_$nchain1) - do (store6 = 1) (segid $Toppar.prot_segid_$nchain1) - end if - else - display FLEXIBLE SEGMENTS for molecule $nchain1 - while ($fcounter < $Toppar.nseg_$nchain1) loop Xflex - evaluate($fcounter=$fcounter + 1) - do (store7 = $nchain1) ( resid $Toppar.start_seg_$nchain1_$fcounter : $Toppar.end_seg_$nchain1_$fcounter - and segid $Toppar.prot_segid_$nchain1 and (name CA or name BB or name C#)) - do (store6 = 1) ( resid $Toppar.start_seg_$nchain1_$fcounter : $Toppar.end_seg_$nchain1_$fcounter - and segid $Toppar.prot_segid_$nchain1 and (name CA or name BB or name C#)) - end loop Xflex - show sum (store6) (segid $Toppar.prot_segid_$nchain1) - evaluate ($nata=$result) - if ($nata < 3) then - display not enough backbone atoms recognized for molecule $nchain1 USING ALL ATOMS for RMS calculation - do (store7 = $nchain1) (segid $Toppar.prot_segid_$nchain1) - do (store6 = 1) (segid $Toppar.prot_segid_$nchain1) - end if - end if - end if - show sum (store6) (segid $Toppar.prot_segid_$nchain1) - display CHAIN $nchain1 HAS $result ATOMS FOR FITTING - end if -end loop nloop3 - -evaluate ($nstruc_total = 0) -for $filename in ( @@NEWIT:file.list ) loop fitt - evaluate ($nstruc_total = $nstruc_total + 1) -end loop fitt -evaluate ($nstruc_total = min($nstruc_total,$iterations.anastruc)) - -{* filenames *} -evaluate ($outroot = "NEWIT:analysis/" + $Filenames.fileroot) -evaluate ($trajfile=$outroot+"-reduced.crd") -evaluate ($dispfile=$outroot+"_rmsd.disp") - -set display=$dispfile end - -evaluate ($nstruc_i = 0) -while ($nstruc_i < $nstruc_total) loop fiti - - evaluate ($nstruc_i = $nstruc_i + 1) - - read trajectory - ascii true - input= $trajfile - begin $nstruc_i skip 1 stop $nstruc_i - end - - show aver (x) (all) - evaluate ($xc = $result) - show aver (y) (all) - evaluate ($yc = $result) - show aver (z) (all) - evaluate ($zc = $result) - - @RUN:get_random_rotation.cns(Rotation=$rand_rot;) - coor - center=($xc $yc $zc) - rotate quaternion $rand_rot.q0 $rand_rot.q1 $rand_rot.q2 $rand_rot.q3 - sele=(all) - end - - coor copy end - - evaluate ($nstruc_j = $nstruc_i) - while ($nstruc_j < $nstruc_total) loop fitj - evaluate ($nstruc_j = $nstruc_j + 1) - read trajectory - ascii true - input= $trajfile - begin $nstruc_j skip 1 stop $nstruc_j - end - ! fit on flexible interface of first molecule - coor sele= (attr store7 = 1) fit end - ! rms on flexible interface of remaining molecules - coor sele= (attr store7 > 1) rms end - display $nstruc_i $nstruc_j $result - end loop fitj - -end loop fiti - -evaluate ($outdis = "NEWIT:analysis/MTX_DONE") -set display=$outdis end -display DONE - -stop diff --git a/src/haddock/modules/flexref/cns/rotate_pdb.cns b/src/haddock/modules/flexref/cns/rotate_pdb.cns deleted file mode 100644 index 00d1183c9..000000000 --- a/src/haddock/modules/flexref/cns/rotate_pdb.cns +++ /dev/null @@ -1,32 +0,0 @@ -! rotate_pdb.cns -! Apply a random rotation to a molecule -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! - coor orient sele=(all) end - - !random translation within a 10A cube - evaluate ($xd = 10.0 * (0.5 - ran())) - evaluate ($yd = 10.0 * (0.5 - ran())) - evaluate ($zd = 10.0 * (0.5 - ran())) - coor trans sele=(all) vector=($xd,$yd,$zd) end - - show aver (x) (all) - evaluate ($xc = $result) - show aver (y) (all) - evaluate ($yc = $result) - show aver (z) (all) - evaluate ($zc = $result) - - @RUN:get_random_rotation.cns(Rotation=$rand_rot;) - coor - center=($xc $yc $zc) - rotate quaternion $rand_rot.q0 $rand_rot.q1 $rand_rot.q2 $rand_rot.q3 - sele=(all) - end diff --git a/src/haddock/modules/flexref/cns/run.cns~ b/src/haddock/modules/flexref/cns/run.cns~ deleted file mode 100644 index 167979b62..000000000 --- a/src/haddock/modules/flexref/cns/run.cns~ +++ /dev/null @@ -1,5309 +0,0 @@ -! run.cns -! The file containing all parameters for HADDOCK -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * Originally adapted from Aria 1.2 from Nilges and Linge, EMBL. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! -module( -iteration; -filenames; -data; -iterations; -saprotocol; -refine; -toppar; -analysis; -) - -{+ File: run.cns +} -{+ Description: this file contains all necessary information to run HADDOCK. +} - -{+ Authors: Ezgi Karaca, Joao Rodrigues, Mikael Trellet, Alexandre Bonvin
    -HADDOCK version 2.4

    -Initially adapted from ARIA of Nilges and Linge +} - -{+ Please cite the following references when using this protocol: +} -{+ reference: Cyril Dominguez, Rolf Boelens and Alexandre M.J.J. Bonvin (2003). HADDOCK: a protein-protein docking approach -based on biochemical and/or biophysical information. J. Am. Chem. Soc. 125, 1731-1737. -

    -When using residual dipolar couplings in HADDOCK cite in addition:

    -

  • A.D.J. van Dijk, D. Fushman and A.M.J.J. Bonvin (2005). Various strategies of using residual dipolar -couplings in NMR-driven protein docking: Application to Lys48-linked di-ubiquitin and validation against -15N-relaxation data. Proteins: Struc. Funct. & Bioinformatics, 60, 367-381.
  • -

    -When using diffusion anisotropy data in HADDOCK cite in addition:

    -

  • A.D.J. van Dijk, R. Kaptein, R. Boelens and A.M.J.J. Bonvin (2006). Combining NMR relaxation with -chemical shift perturbation data to drive protein-protein docking. J. Biomol. NMR, -34, 237-244.
  • -

    -When using solvated docking in HADDOCK cite in addition:

    -

  • A.D.J. van Dijk and A.M.J.J. Bonvin (2006). Solvated docking: introducing water into the modelling -of biomolecular complexes. Bioinformatics, 22 2340-2347. -

    -When performing flexible protein-DNA docking using HADDOCK cite in addition:

    -

  • M. van Dijk, A.D.J. van Dijk, V. Hsu, R. Boelens and A.M.J.J. Bonvin (2006). -Information-driven Protein-DNA Docking using HADDOCK: it is a matter of flexibility. -Nucl. Acids Res., 34 3317-3325.
  • -

    -When performing the Nmolecule integrative modelling protocol please cite:

    -

  • Ezgi Karaca, Joao P.G.L.M. Rodrigues, Andrea Graziadei, Alexandre M.J.J. Bonvin, Teresa Carlomagno (2017). -An Integrative Framework for Structure Determination of Molecular Machines. -Nature Methods, Advanced Online Publication.
  • -+} - -{- Guidelines for using this file: - - all strings must be quoted by double-quotes - - logical variables (true/false) are not quoted - - do not remove any evaluate statements from the file - - pathnames should not exceed 80 characters -} -{- begin block parameter definition -} define( - - -{======== number of molecules for docking ==================} -{* number of components *} -{===>} ncomponents=2; - - - -{======================= filenames =========================} -{* the name of your current project *} -{* this will be used as name for the generated structures *} -{===>} fileroot="e2a-hpr"; - -{* RUN directory *} -{* the absolute path of your current run, e.g. /home/haddock/run1*} -{===>} run_dir="/home/abonvin/haddock_git/haddock2.4/examples/e2a-hpr/run1"; -{* PDB file of molecule 1 *} -{===>} prot_coor_mol1="e2aP_1F3G.pdb"; -{* PSF file of molecule 1 *} -{===>} prot_psf_mol1="e2aP_1F3G.psf"; -{* segid of molecule 1 *} -{===>} prot_segid_mol1="A"; -{* fileroot of molecule 1 *} -{===>} prot_root_mol1="e2aP_1F3G"; -{* Fix Molecule at Origin during it0 *} -{+ choice: true false +} -{===>} fix_origin_mol1=false; -{* Is molecule 1 DNA? *} -{+ choice: true false +} -{===>} dna_mol1=false; -{* Is molecule 1 a cyclic peptide? *} -{+ choice: true false +} -{===>} cyclicpept_mol1=false; -{* Is molecule 1 a shape? *} -{+ choice: true false +} -{===>} shape_mol1=false; -{* Coarse grained molecule? *} -{+ choice: true false +} -{===>} cg_mol1=false; - -{* PDB file of molecule 2 *} -{===>} prot_coor_mol2="hpr_1.pdb"; -{* PSF file of molecule 2 *} -{===>} prot_psf_mol2="hpr_1.psf"; -{* segid file of molecule 2 *} -{===>} prot_segid_mol2="B"; -{* fileroot of molecule 2 *} -{===>} prot_root_mol2="hpr_1"; -{* Fix Molecule at Origin during it0 *} -{+ choice: true false +} -{===>} fix_origin_mol2=false; -{* Is molecule 2 DNA? *} -{+ choice: true false +} -{===>} dna_mol2=false; -{* Is molecule 2 a cyclic peptide? *} -{+ choice: true false +} -{===>} cyclicpept_mol2=false; -{* Is molecule 2 a shape? *} -{+ choice: true false +} -{===>} shape_mol2=false; -{* Coarse grained molecule? *} -{+ choice: true false +} -{===>} cg_mol2=false; - -{* PDB file of molecule 3 *} -{===>} prot_coor_mol3=""; -{* PSF file of molecule 3 *} -{===>} prot_psf_mol3=""; -{* segid file of molecule 3 *} -{===>} prot_segid_mol3="C"; -{* fileroot of molecule 3 *} -{===>} prot_root_mol3=""; -{* Fix Molecule at Origin during it0 *} -{+ choice: true false +} -{===>} fix_origin_mol3=false; -{* Is molecule 3 DNA? *} -{+ choice: true false +} -{===>} dna_mol3=false; -{* Is molecule 3 a cyclic peptide? *} -{+ choice: true false +} -{===>} cyclicpept_mol3=false; -{* Is molecule 3 a shape? *} -{+ choice: true false +} -{===>} shape_mol3=false; -{* Coarse grained molecule? *} -{+ choice: true false +} -{===>} cg_mol3=false; - -{* PDB file of molecule 4 *} -{===>} prot_coor_mol4=""; -{* PSF file of molecule 4 *} -{===>} prot_psf_mol4=""; -{* segid file of molecule 4 *} -{===>} prot_segid_mol4="D"; -{* fileroot of molecule 4 *} -{===>} prot_root_mol4=""; -{* Fix Molecule at Origin during it0 *} -{+ choice: true false +} -{===>} fix_origin_mol4=false; -{* Is molecule 4 DNA? *} -{+ choice: true false +} -{===>} dna_mol4=false; -{* Is molecule 4 a cyclic peptide? *} -{+ choice: true false +} -{===>} cyclicpept_mol4=false; -{* Is molecule 4 a shape? *} -{+ choice: true false +} -{===>} shape_mol4=false; -{* Coarse grained molecule? *} -{+ choice: true false +} -{===>} cg_mol4=false; - -{* PDB file of molecule 5 *} -{===>} prot_coor_mol5=""; -{* PSF file of molecule 5 *} -{===>} prot_psf_mol5=""; -{* segid file of molecule 5 *} -{===>} prot_segid_mol5="E"; -{* fileroot of molecule 5 *} -{===>} prot_root_mol5=""; -{* Fix Molecule at Origin during it0 *} -{+ choice: true false +} -{===>} fix_origin_mol5=false; -{* Is molecule 5 DNA? *} -{+ choice: true false +} -{===>} dna_mol5=false; -{* Is molecule 5 a cyclic peptide? *} -{+ choice: true false +} -{===>} cyclicpept_mol5=false; -{* Is molecule 5 a shape? *} -{+ choice: true false +} -{===>} shape_mol5=false; -{* Coarse grained molecule? *} -{+ choice: true false +} -{===>} cg_mol5=false; - -{* PDB file of molecule 6 *} -{===>} prot_coor_mol6=""; -{* PSF file of molecule 6 *} -{===>} prot_psf_mol6=""; -{* segid file of molecule 6 *} -{===>} prot_segid_mol6="F"; -{* fileroot of molecule 6 *} -{===>} prot_root_mol6=""; -{* Fix Molecule at Origin during it0 *} -{+ choice: true false +} -{===>} fix_origin_mol6=false; -{* Is molecule 6 DNA? *} -{+ choice: true false +} -{===>} dna_mol6=false; -{* Is molecule 6 a cyclic peptide? *} -{+ choice: true false +} -{===>} cyclicpept_mol6=false; -{* Is molecule 6 a shape? *} -{+ choice: true false +} -{===>} shape_mol6=false; -{* Coarse grained molecule? *} -{+ choice: true false +} -{===>} cg_mol6=false; - -{* PDB file of molecule 7 *} -{===>} prot_coor_mol7=""; -{* PSF file of molecule 7 *} -{===>} prot_psf_mol7=""; -{* segid file of molecule 7 *} -{===>} prot_segid_mol7="G"; -{* fileroot of molecule 7 *} -{===>} prot_root_mol7=""; -{* Fix Molecule at Origin during it0 *} -{+ choice: true false +} -{===>} fix_origin_mol7=false; -{* Is molecule 7 DNA? *} -{+ choice: true false +} -{===>} dna_mol7=false; -{* Is molecule 7 a cyclic peptide? *} -{+ choice: true false +} -{===>} cyclicpept_mol7=false; -{* Is molecule 7 a shape? *} -{+ choice: true false +} -{===>} shape_mol7=false; -{* Coarse grained molecule? *} -{+ choice: true false +} -{===>} cg_mol7=false; - -{* PDB file of molecule 8 *} -{===>} prot_coor_mol8=""; -{* PSF file of molecule 8 *} -{===>} prot_psf_mol8=""; -{* segid file of molecule 8 *} -{===>} prot_segid_mol8="H"; -{* fileroot of molecule 8 *} -{===>} prot_root_mol8=""; -{* Fix Molecule at Origin during it0 *} -{+ choice: true false +} -{===>} fix_origin_mol8=false; -{* Is molecule 8 DNA? *} -{+ choice: true false +} -{===>} dna_mol8=false; -{* Is molecule 8 a cyclic peptide? *} -{+ choice: true false +} -{===>} cyclicpept_mol8=false; -{* Is molecule 8 a shape? *} -{+ choice: true false +} -{===>} shape_mol8=false; -{* Coarse grained molecule? *} -{+ choice: true false +} -{===>} cg_mol8=false; - -{* PDB file of molecule 9 *} -{===>} prot_coor_mol9=""; -{* PSF file of molecule 9 *} -{===>} prot_psf_mol9=""; -{* segid file of molecule 9 *} -{===>} prot_segid_mol9="I"; -{* fileroot of molecule 9 *} -{===>} prot_root_mol9=""; -{* Fix Molecule at Origin during it0 *} -{+ choice: true false +} -{===>} fix_origin_mol9=false; -{* Is molecule 9 DNA? *} -{+ choice: true false +} -{===>} dna_mol9=false; -{* Is molecule 9 a cyclic peptide? *} -{+ choice: true false +} -{===>} cyclicpept_mol9=false; -{* Is molecule 9 a shape? *} -{+ choice: true false +} -{===>} shape_mol9=false; -{* Coarse grained molecule? *} -{+ choice: true false +} -{===>} cg_mol9=false; - -{* PDB file of molecule 10 *} -{===>} prot_coor_mol10=""; -{* PSF file of molecule 10 *} -{===>} prot_psf_mol10=""; -{* segid file of molecule 10 *} -{===>} prot_segid_mol10="J"; -{* fileroot of molecule 10 *} -{===>} prot_root_mol10=""; -{* Fix Molecule at Origin during it0 *} -{+ choice: true false +} -{===>} fix_origin_mol10=false; -{* Is molecule 10 DNA? *} -{+ choice: true false +} -{===>} dna_mol10=false; -{* Is molecule 10 a cyclic peptide? *} -{+ choice: true false +} -{===>} cyclicpept_mol10=false; -{* Is molecule 10 a shape? *} -{+ choice: true false +} -{===>} shape_mol10=false; -{* Coarse grained molecule? *} -{+ choice: true false +} -{===>} cg_mol10=false; - -{* PDB file of molecule 11 *} -{===>} prot_coor_mol11=""; -{* PSF file of molecule 11 *} -{===>} prot_psf_mol11=""; -{* segid file of molecule 11 *} -{===>} prot_segid_mol11="K"; -{* fileroot of molecule 11 *} -{===>} prot_root_mol11=""; -{* Fix Molecule at Origin during it0 *} -{+ choice: true false +} -{===>} fix_origin_mol11=false; -{* Is molecule 11 DNA? *} -{+ choice: true false +} -{===>} dna_mol11=false; -{* Is molecule 11 a cyclic peptide? *} -{+ choice: true false +} -{===>} cyclicpept_mol11=false; -{* Is molecule 11 a shape? *} -{+ choice: true false +} -{===>} shape_mol11=false; -{* Coarse grained molecule? *} -{+ choice: true false +} -{===>} cg_mol11=false; - -{* PDB file of molecule 12 *} -{===>} prot_coor_mol12=""; -{* PSF file of molecule 12 *} -{===>} prot_psf_mol12=""; -{* segid file of molecule 12 *} -{===>} prot_segid_mol12="L"; -{* fileroot of molecule 12 *} -{===>} prot_root_mol12=""; -{* Fix Molecule at Origin during it0 *} -{+ choice: true false +} -{===>} fix_origin_mol12=false; -{* Is molecule 12 DNA? *} -{+ choice: true false +} -{===>} dna_mol12=false; -{* Is molecule 12 a cyclic peptide? *} -{+ choice: true false +} -{===>} cyclicpept_mol12=false; -{* Is molecule 12 a shape? *} -{+ choice: true false +} -{===>} shape_mol12=false; -{* Coarse grained molecule? *} -{+ choice: true false +} -{===>} cg_mol12=false; - -{===>} prot_coor_mol13=""; -{* PSF file of molecule 13 *} -{===>} prot_psf_mol13=""; -{* segid file of molecule 13 *} -{===>} prot_segid_mol13="M"; -{* fileroot of molecule 13 *} -{===>} prot_root_mol13=""; -{* Fix Molecule at Origin during it0 *} -{+ choice: true false +} -{===>} fix_origin_mol13=false; -{* Is molecule 13 DNA? *} -{+ choice: true false +} -{===>} dna_mol13=false; -{* Is molecule 13 a cyclic peptide? *} -{+ choice: true false +} -{===>} cyclicpept_mol13=false; -{* Is molecule 13 a shape? *} -{+ choice: true false +} -{===>} shape_mol13=false; -{* Coarse grained molecule? *} -{+ choice: true false +} -{===>} cg_mol13=false; - -{===>} prot_coor_mol14=""; -{* PSF file of molecule 14 *} -{===>} prot_psf_mol14=""; -{* segid file of molecule 14 *} -{===>} prot_segid_mol14="N"; -{* fileroot of molecule 14 *} -{===>} prot_root_mol14=""; -{* Fix Molecule at Origin during it0 *} -{+ choice: true false +} -{===>} fix_origin_mol14=false; -{* Is molecule 14 DNA? *} -{+ choice: true false +} -{===>} dna_mol14=false; -{* Is molecule 14 a cyclic peptide? *} -{+ choice: true false +} -{===>} cyclicpept_mol14=false; -{* Is molecule 14 a shape? *} -{+ choice: true false +} -{===>} shape_mol14=false; -{* Coarse grained molecule? *} -{+ choice: true false +} -{===>} cg_mol14=false; - -{===>} prot_coor_mol15=""; -{* PSF file of molecule 15 *} -{===>} prot_psf_mol15=""; -{* segid file of molecule 15 *} -{===>} prot_segid_mol15="O"; -{* fileroot of molecule 15 *} -{===>} prot_root_mol15=""; -{* Fix Molecule at Origin during it0 *} -{+ choice: true false +} -{===>} fix_origin_mol15=false; -{* Is molecule 15 DNA? *} -{+ choice: true false +} -{===>} dna_mol15=false; -{* Is molecule 15 a cyclic peptide? *} -{+ choice: true false +} -{===>} cyclicpept_mol15=false; -{* Is molecule 15 a shape? *} -{+ choice: true false +} -{===>} shape_mol15=false; -{* Coarse grained molecule? *} -{+ choice: true false +} -{===>} cg_mol15=false; - -{===>} prot_coor_mol16=""; -{* PSF file of molecule 16 *} -{===>} prot_psf_mol16=""; -{* segid file of molecule 16 *} -{===>} prot_segid_mol16="P"; -{* fileroot of molecule 16 *} -{===>} prot_root_mol16=""; -{* Fix Molecule at Origin during it0 *} -{+ choice: true false +} -{===>} fix_origin_mol16=false; -{* Is molecule 16 DNA? *} -{+ choice: true false +} -{===>} dna_mol16=false; -{* Is molecule 16 a cyclic peptide? *} -{+ choice: true false +} -{===>} cyclicpept_mol16=false; -{* Is molecule 16 a shape? *} -{+ choice: true false +} -{===>} shape_mol16=false; -{* Coarse grained molecule? *} -{+ choice: true false +} -{===>} cg_mol16=false; - -{===>} prot_coor_mol17=""; -{* PSF file of molecule 17 *} -{===>} prot_psf_mol17=""; -{* segid file of molecule 17 *} -{===>} prot_segid_mol17="Q"; -{* fileroot of molecule 17 *} -{===>} prot_root_mol17=""; -{* Fix Molecule at Origin during it0 *} -{+ choice: true false +} -{===>} fix_origin_mol17=false; -{* Is molecule 17 DNA? *} -{+ choice: true false +} -{===>} dna_mol17=false; -{* Is molecule 17 a cyclic peptide? *} -{+ choice: true false +} -{===>} cyclicpept_mol17=false; -{* Is molecule 17 a shape? *} -{+ choice: true false +} -{===>} shape_mol17=false; -{* Coarse grained molecule? *} -{+ choice: true false +} -{===>} cg_mol17=false; - - -{===>} prot_coor_mol18=""; -{* PSF file of molecule 18 *} -{===>} prot_psf_mol18=""; -{* segid file of molecule 18 *} -{===>} prot_segid_mol18="R"; -{* fileroot of molecule 18 *} -{===>} prot_root_mol18=""; -{* Fix Molecule at Origin during it0 *} -{+ choice: true false +} -{===>} fix_origin_mol18=false; -{* Is molecule 18 DNA? *} -{+ choice: true false +} -{===>} dna_mol18=false; -{* Is molecule 18 a cyclic peptide? *} -{+ choice: true false +} -{===>} cyclicpept_mol18=false; -{* Is molecule 18 a shape? *} -{+ choice: true false +} -{===>} shape_mol18=false; -{* Coarse grained molecule? *} -{+ choice: true false +} -{===>} cg_mol18=false; - -{===>} prot_coor_mol19=""; -{* PSF file of molecule 19 *} -{===>} prot_psf_mol19=""; -{* segid file of molecule 19 *} -{===>} prot_segid_mol19="S"; -{* fileroot of molecule 19 *} -{===>} prot_root_mol19=""; -{* Fix Molecule at Origin during it0 *} -{+ choice: true false +} -{===>} fix_origin_mol19=false; -{* Is molecule 19 DNA? *} -{+ choice: true false +} -{===>} dna_mol19=false; -{* Is molecule 19 a cyclic peptide? *} -{+ choice: true false +} -{===>} cyclicpept_mol19=false; -{* Is molecule 19 a shape? *} -{+ choice: true false +} -{===>} shape_mol19=false; -{* Coarse grained molecule? *} -{+ choice: true false +} -{===>} cg_mol19=false; - -{===>} prot_coor_mol20=""; -{* PSF file of molecule 20 *} -{===>} prot_psf_mol20=""; -{* segid file of molecule 20 *} -{===>} prot_segid_mol20="T"; -{* fileroot of molecule 20 *} -{===>} prot_root_mol20=""; -{* Fix Molecule at Origin during it0 *} -{+ choice: true false +} -{===>} fix_origin_mol20=false; -{* Is molecule 20 DNA? *} -{+ choice: true false +} -{===>} dna_mol20=false; -{* Is molecule 20 a cyclic peptide? *} -{+ choice: true false +} -{===>} cyclicpept_mol20=false; -{* Is molecule 20 a shape? *} -{+ choice: true false +} -{===>} shape_mol20=false; -{* Coarse grained molecule? *} -{+ choice: true false +} -{===>} cg_mol20=false; - -{* Remove non-polar hydrogens? *} -{+ choice: true false +} -{===>} delenph=true; - -{* HADDOCK directory *} -{* the absolute path of the HADDOCK program files *} -{===>} haddock_dir="/home/abonvin/haddock_git/haddock2.4"; - -{* Logfile directory *} -{* specify a directory for the large CNS log files *} -{===>} temptrash_dir="/home/abonvin/haddock_git/haddock2.4/examples/e2a-hpr/run1"; - - -{==================== histidine patches =====================} -{* Automatically define histidine protonation state based on energetics *} -{===>} autohis=true; - -{* Patch to change doubly protonated HIS to singly protonated histidine (HD1) *} -{* just give the residue number of the histidines for the HISD patch, set them to zero if you don't want them *} - -{* Number of HISD for molecule 1 *} -{===>} numhisd_1=0; - -{===>} hisd_1_1=0; -{===>} hisd_1_2=0; -{===>} hisd_1_3=0; -{===>} hisd_1_4=0; -{===>} hisd_1_5=0; -{===>} hisd_1_6=0; -{===>} hisd_1_7=0; -{===>} hisd_1_8=0; -{===>} hisd_1_9=0; -{===>} hisd_1_10=0; -{===>} hisd_1_11=0; -{===>} hisd_1_12=0; -{===>} hisd_1_13=0; -{===>} hisd_1_14=0; -{===>} hisd_1_15=0; -{===>} hisd_1_16=0; -{===>} hisd_1_17=0; -{===>} hisd_1_18=0; -{===>} hisd_1_19=0; -{===>} hisd_1_20=0; -{===>} hisd_1_21=0; -{===>} hisd_1_22=0; -{===>} hisd_1_23=0; -{===>} hisd_1_24=0; -{===>} hisd_1_25=0; - -{* Number of HISD for molecule 2 *} -{===>} numhisd_2=0; - -{===>} hisd_2_1=0; -{===>} hisd_2_2=0; -{===>} hisd_2_3=0; -{===>} hisd_2_4=0; -{===>} hisd_2_5=0; -{===>} hisd_2_6=0; -{===>} hisd_2_7=0; -{===>} hisd_2_8=0; -{===>} hisd_2_9=0; -{===>} hisd_2_10=0; -{===>} hisd_2_11=0; -{===>} hisd_2_12=0; -{===>} hisd_2_13=0; -{===>} hisd_2_14=0; -{===>} hisd_2_15=0; -{===>} hisd_2_16=0; -{===>} hisd_2_17=0; -{===>} hisd_2_18=0; -{===>} hisd_2_19=0; -{===>} hisd_2_20=0; -{===>} hisd_2_21=0; -{===>} hisd_2_22=0; -{===>} hisd_2_23=0; -{===>} hisd_2_24=0; -{===>} hisd_2_25=0; - -{* Number of HISD for molecule 3 *} -{===>} numhisd_3=0; - -{===>} hisd_3_1=0; -{===>} hisd_3_2=0; -{===>} hisd_3_3=0; -{===>} hisd_3_4=0; -{===>} hisd_3_5=0; -{===>} hisd_3_6=0; -{===>} hisd_3_7=0; -{===>} hisd_3_8=0; -{===>} hisd_3_9=0; -{===>} hisd_3_10=0; -{===>} hisd_3_11=0; -{===>} hisd_3_12=0; -{===>} hisd_3_13=0; -{===>} hisd_3_14=0; -{===>} hisd_3_15=0; -{===>} hisd_3_16=0; -{===>} hisd_3_17=0; -{===>} hisd_3_18=0; -{===>} hisd_3_19=0; -{===>} hisd_3_20=0; -{===>} hisd_3_21=0; -{===>} hisd_3_22=0; -{===>} hisd_3_23=0; -{===>} hisd_3_24=0; -{===>} hisd_3_25=0; - -{* Number of HISD for molecule 4 *} -{===>} numhisd_4=0; - -{===>} hisd_4_1=0; -{===>} hisd_4_2=0; -{===>} hisd_4_3=0; -{===>} hisd_4_4=0; -{===>} hisd_4_5=0; -{===>} hisd_4_6=0; -{===>} hisd_4_7=0; -{===>} hisd_4_8=0; -{===>} hisd_4_9=0; -{===>} hisd_4_10=0; -{===>} hisd_4_11=0; -{===>} hisd_4_12=0; -{===>} hisd_4_13=0; -{===>} hisd_4_14=0; -{===>} hisd_4_15=0; -{===>} hisd_4_16=0; -{===>} hisd_4_17=0; -{===>} hisd_4_18=0; -{===>} hisd_4_19=0; -{===>} hisd_4_20=0; -{===>} hisd_4_21=0; -{===>} hisd_4_22=0; -{===>} hisd_4_23=0; -{===>} hisd_4_24=0; -{===>} hisd_4_25=0; - -{* Number of HISD for molecule 5 *} -{===>} numhisd_5=0; - -{===>} hisd_5_1=0; -{===>} hisd_5_2=0; -{===>} hisd_5_3=0; -{===>} hisd_5_4=0; -{===>} hisd_5_5=0; -{===>} hisd_5_6=0; -{===>} hisd_5_7=0; -{===>} hisd_5_8=0; -{===>} hisd_5_9=0; -{===>} hisd_5_10=0; -{===>} hisd_5_11=0; -{===>} hisd_5_12=0; -{===>} hisd_5_13=0; -{===>} hisd_5_14=0; -{===>} hisd_5_15=0; -{===>} hisd_5_16=0; -{===>} hisd_5_17=0; -{===>} hisd_5_18=0; -{===>} hisd_5_19=0; -{===>} hisd_5_20=0; -{===>} hisd_5_21=0; -{===>} hisd_5_22=0; -{===>} hisd_5_23=0; -{===>} hisd_5_24=0; -{===>} hisd_5_25=0; - -{* Number of HISD for molecule 6 *} -{===>} numhisd_6=0; - -{===>} hisd_6_1=0; -{===>} hisd_6_2=0; -{===>} hisd_6_3=0; -{===>} hisd_6_4=0; -{===>} hisd_6_5=0; -{===>} hisd_6_6=0; -{===>} hisd_6_7=0; -{===>} hisd_6_8=0; -{===>} hisd_6_9=0; -{===>} hisd_6_10=0; -{===>} hisd_6_11=0; -{===>} hisd_6_12=0; -{===>} hisd_6_13=0; -{===>} hisd_6_14=0; -{===>} hisd_6_15=0; -{===>} hisd_6_16=0; -{===>} hisd_6_17=0; -{===>} hisd_6_18=0; -{===>} hisd_6_19=0; -{===>} hisd_6_20=0; -{===>} hisd_6_21=0; -{===>} hisd_6_22=0; -{===>} hisd_6_23=0; -{===>} hisd_6_24=0; -{===>} hisd_6_25=0; - -{* Number of HISD for molecule 7 *} -{===>} numhisd_7=0; - -{===>} hisd_7_1=0; -{===>} hisd_7_2=0; -{===>} hisd_7_3=0; -{===>} hisd_7_4=0; -{===>} hisd_7_5=0; -{===>} hisd_7_6=0; -{===>} hisd_7_7=0; -{===>} hisd_7_8=0; -{===>} hisd_7_9=0; -{===>} hisd_7_10=0; -{===>} hisd_7_11=0; -{===>} hisd_7_12=0; -{===>} hisd_7_13=0; -{===>} hisd_7_14=0; -{===>} hisd_7_15=0; -{===>} hisd_7_16=0; -{===>} hisd_7_17=0; -{===>} hisd_7_18=0; -{===>} hisd_7_19=0; -{===>} hisd_7_20=0; -{===>} hisd_7_21=0; -{===>} hisd_7_22=0; -{===>} hisd_7_23=0; -{===>} hisd_7_24=0; -{===>} hisd_7_25=0; - -{* Number of HISD for molecule 8 *} -{===>} numhisd_8=0; - -{===>} hisd_8_1=0; -{===>} hisd_8_2=0; -{===>} hisd_8_3=0; -{===>} hisd_8_4=0; -{===>} hisd_8_5=0; -{===>} hisd_8_6=0; -{===>} hisd_8_7=0; -{===>} hisd_8_8=0; -{===>} hisd_8_9=0; -{===>} hisd_8_10=0; -{===>} hisd_8_11=0; -{===>} hisd_8_12=0; -{===>} hisd_8_13=0; -{===>} hisd_8_14=0; -{===>} hisd_8_15=0; -{===>} hisd_8_16=0; -{===>} hisd_8_17=0; -{===>} hisd_8_18=0; -{===>} hisd_8_19=0; -{===>} hisd_8_20=0; -{===>} hisd_8_21=0; -{===>} hisd_8_22=0; -{===>} hisd_8_23=0; -{===>} hisd_8_24=0; -{===>} hisd_8_25=0; - -{* Number of HISD for molecule 9 *} -{===>} numhisd_9=0; - -{===>} hisd_9_1=0; -{===>} hisd_9_2=0; -{===>} hisd_9_3=0; -{===>} hisd_9_4=0; -{===>} hisd_9_5=0; -{===>} hisd_9_6=0; -{===>} hisd_9_7=0; -{===>} hisd_9_8=0; -{===>} hisd_9_9=0; -{===>} hisd_9_10=0; -{===>} hisd_9_11=0; -{===>} hisd_9_12=0; -{===>} hisd_9_13=0; -{===>} hisd_9_14=0; -{===>} hisd_9_15=0; -{===>} hisd_9_16=0; -{===>} hisd_9_17=0; -{===>} hisd_9_18=0; -{===>} hisd_9_19=0; -{===>} hisd_9_20=0; -{===>} hisd_9_21=0; -{===>} hisd_9_22=0; -{===>} hisd_9_23=0; -{===>} hisd_9_24=0; -{===>} hisd_9_25=0; - -{* Number of HISD for molecule 10 *} -{===>} numhisd_10=0; - -{===>} hisd_10_1=0; -{===>} hisd_10_2=0; -{===>} hisd_10_3=0; -{===>} hisd_10_4=0; -{===>} hisd_10_5=0; -{===>} hisd_10_6=0; -{===>} hisd_10_7=0; -{===>} hisd_10_8=0; -{===>} hisd_10_9=0; -{===>} hisd_10_10=0; -{===>} hisd_10_11=0; -{===>} hisd_10_12=0; -{===>} hisd_10_13=0; -{===>} hisd_10_14=0; -{===>} hisd_10_15=0; -{===>} hisd_10_16=0; -{===>} hisd_10_17=0; -{===>} hisd_10_18=0; -{===>} hisd_10_19=0; -{===>} hisd_10_20=0; -{===>} hisd_10_21=0; -{===>} hisd_10_22=0; -{===>} hisd_10_23=0; -{===>} hisd_10_24=0; -{===>} hisd_10_25=0; - -{* Number of HISD for molecule 11 *} -{===>} numhisd_11=0; - -{===>} hisd_11_1=0; -{===>} hisd_11_2=0; -{===>} hisd_11_3=0; -{===>} hisd_11_4=0; -{===>} hisd_11_5=0; -{===>} hisd_11_6=0; -{===>} hisd_11_7=0; -{===>} hisd_11_8=0; -{===>} hisd_11_9=0; -{===>} hisd_11_10=0; -{===>} hisd_11_11=0; -{===>} hisd_11_12=0; -{===>} hisd_11_13=0; -{===>} hisd_11_14=0; -{===>} hisd_11_15=0; -{===>} hisd_11_16=0; -{===>} hisd_11_17=0; -{===>} hisd_11_18=0; -{===>} hisd_11_19=0; -{===>} hisd_11_20=0; -{===>} hisd_11_21=0; -{===>} hisd_11_22=0; -{===>} hisd_11_23=0; -{===>} hisd_11_24=0; -{===>} hisd_11_25=0; - -{* Number of HISD for molecule 12 *} -{===>} numhisd_12=0; - -{===>} hisd_12_1=0; -{===>} hisd_12_2=0; -{===>} hisd_12_3=0; -{===>} hisd_12_4=0; -{===>} hisd_12_5=0; -{===>} hisd_12_6=0; -{===>} hisd_12_7=0; -{===>} hisd_12_8=0; -{===>} hisd_12_9=0; -{===>} hisd_12_10=0; -{===>} hisd_12_11=0; -{===>} hisd_12_12=0; -{===>} hisd_12_13=0; -{===>} hisd_12_14=0; -{===>} hisd_12_15=0; -{===>} hisd_12_16=0; -{===>} hisd_12_17=0; -{===>} hisd_12_18=0; -{===>} hisd_12_19=0; -{===>} hisd_12_20=0; -{===>} hisd_12_21=0; -{===>} hisd_12_22=0; -{===>} hisd_12_23=0; -{===>} hisd_12_24=0; -{===>} hisd_12_25=0; - -{* Number of HISD for molecule 13 *} -{===>} numhisd_13=0; - -{===>} hisd_13_1=0; -{===>} hisd_13_2=0; -{===>} hisd_13_3=0; -{===>} hisd_13_4=0; -{===>} hisd_13_5=0; -{===>} hisd_13_6=0; -{===>} hisd_13_7=0; -{===>} hisd_13_8=0; -{===>} hisd_13_9=0; -{===>} hisd_13_10=0; -{===>} hisd_13_11=0; -{===>} hisd_13_12=0; -{===>} hisd_13_13=0; -{===>} hisd_13_14=0; -{===>} hisd_13_15=0; -{===>} hisd_13_16=0; -{===>} hisd_13_17=0; -{===>} hisd_13_18=0; -{===>} hisd_13_19=0; -{===>} hisd_13_20=0; -{===>} hisd_13_21=0; -{===>} hisd_13_22=0; -{===>} hisd_13_23=0; -{===>} hisd_13_24=0; -{===>} hisd_13_25=0; - -{* Number of HISD for molecule 14 *} -{===>} numhisd_14=0; - -{===>} hisd_14_1=0; -{===>} hisd_14_2=0; -{===>} hisd_14_3=0; -{===>} hisd_14_4=0; -{===>} hisd_14_5=0; -{===>} hisd_14_6=0; -{===>} hisd_14_7=0; -{===>} hisd_14_8=0; -{===>} hisd_14_9=0; -{===>} hisd_14_10=0; -{===>} hisd_14_11=0; -{===>} hisd_14_12=0; -{===>} hisd_14_13=0; -{===>} hisd_14_14=0; -{===>} hisd_14_15=0; -{===>} hisd_14_16=0; -{===>} hisd_14_17=0; -{===>} hisd_14_18=0; -{===>} hisd_14_19=0; -{===>} hisd_14_20=0; -{===>} hisd_14_21=0; -{===>} hisd_14_22=0; -{===>} hisd_14_23=0; -{===>} hisd_14_24=0; -{===>} hisd_14_25=0; - -{* Number of HISD for molecule 15 *} -{===>} numhisd_15=0; - -{===>} hisd_15_1=0; -{===>} hisd_15_2=0; -{===>} hisd_15_3=0; -{===>} hisd_15_4=0; -{===>} hisd_15_5=0; -{===>} hisd_15_6=0; -{===>} hisd_15_7=0; -{===>} hisd_15_8=0; -{===>} hisd_15_9=0; -{===>} hisd_15_10=0; -{===>} hisd_15_11=0; -{===>} hisd_15_12=0; -{===>} hisd_15_13=0; -{===>} hisd_15_14=0; -{===>} hisd_15_15=0; -{===>} hisd_15_16=0; -{===>} hisd_15_17=0; -{===>} hisd_15_18=0; -{===>} hisd_15_19=0; -{===>} hisd_15_20=0; -{===>} hisd_15_21=0; -{===>} hisd_15_22=0; -{===>} hisd_15_23=0; -{===>} hisd_15_24=0; -{===>} hisd_15_25=0; - -{* Number of HISD for molecule 16 *} -{===>} numhisd_16=0; - -{===>} hisd_16_1=0; -{===>} hisd_16_2=0; -{===>} hisd_16_3=0; -{===>} hisd_16_4=0; -{===>} hisd_16_5=0; -{===>} hisd_16_6=0; -{===>} hisd_16_7=0; -{===>} hisd_16_8=0; -{===>} hisd_16_9=0; -{===>} hisd_16_10=0; -{===>} hisd_16_11=0; -{===>} hisd_16_12=0; -{===>} hisd_16_13=0; -{===>} hisd_16_14=0; -{===>} hisd_16_15=0; -{===>} hisd_16_16=0; -{===>} hisd_16_17=0; -{===>} hisd_16_18=0; -{===>} hisd_16_19=0; -{===>} hisd_16_20=0; -{===>} hisd_16_21=0; -{===>} hisd_16_22=0; -{===>} hisd_16_23=0; -{===>} hisd_16_24=0; -{===>} hisd_16_25=0; - -{* Number of HISD for molecule 17 *} -{===>} numhisd_17=0; - -{===>} hisd_17_1=0; -{===>} hisd_17_2=0; -{===>} hisd_17_3=0; -{===>} hisd_17_4=0; -{===>} hisd_17_5=0; -{===>} hisd_17_6=0; -{===>} hisd_17_7=0; -{===>} hisd_17_8=0; -{===>} hisd_17_9=0; -{===>} hisd_17_10=0; -{===>} hisd_17_11=0; -{===>} hisd_17_12=0; -{===>} hisd_17_13=0; -{===>} hisd_17_14=0; -{===>} hisd_17_15=0; -{===>} hisd_17_16=0; -{===>} hisd_17_17=0; -{===>} hisd_17_18=0; -{===>} hisd_17_19=0; -{===>} hisd_17_20=0; -{===>} hisd_17_21=0; -{===>} hisd_17_22=0; -{===>} hisd_17_23=0; -{===>} hisd_17_24=0; -{===>} hisd_17_25=0; - -{* Number of HISD for molecule 18 *} -{===>} numhisd_18=0; - -{===>} hisd_18_1=0; -{===>} hisd_18_2=0; -{===>} hisd_18_3=0; -{===>} hisd_18_4=0; -{===>} hisd_18_5=0; -{===>} hisd_18_6=0; -{===>} hisd_18_7=0; -{===>} hisd_18_8=0; -{===>} hisd_18_9=0; -{===>} hisd_18_10=0; -{===>} hisd_18_11=0; -{===>} hisd_18_12=0; -{===>} hisd_18_13=0; -{===>} hisd_18_14=0; -{===>} hisd_18_15=0; -{===>} hisd_18_16=0; -{===>} hisd_18_17=0; -{===>} hisd_18_18=0; -{===>} hisd_18_19=0; -{===>} hisd_18_20=0; -{===>} hisd_18_21=0; -{===>} hisd_18_22=0; -{===>} hisd_18_23=0; -{===>} hisd_18_24=0; -{===>} hisd_18_25=0; - -{* Number of HISD for molecule 19 *} -{===>} numhisd_19=0; - -{===>} hisd_19_1=0; -{===>} hisd_19_2=0; -{===>} hisd_19_3=0; -{===>} hisd_19_4=0; -{===>} hisd_19_5=0; -{===>} hisd_19_6=0; -{===>} hisd_19_7=0; -{===>} hisd_19_8=0; -{===>} hisd_19_9=0; -{===>} hisd_19_10=0; -{===>} hisd_19_11=0; -{===>} hisd_19_12=0; -{===>} hisd_19_13=0; -{===>} hisd_19_14=0; -{===>} hisd_19_15=0; -{===>} hisd_19_16=0; -{===>} hisd_19_17=0; -{===>} hisd_19_18=0; -{===>} hisd_19_19=0; -{===>} hisd_19_20=0; -{===>} hisd_19_21=0; -{===>} hisd_19_22=0; -{===>} hisd_19_23=0; -{===>} hisd_19_24=0; -{===>} hisd_19_25=0; - -{* Number of HISD for molecule 20 *} -{===>} numhisd_20=0; - -{===>} hisd_20_1=0; -{===>} hisd_20_2=0; -{===>} hisd_20_3=0; -{===>} hisd_20_4=0; -{===>} hisd_20_5=0; -{===>} hisd_20_6=0; -{===>} hisd_20_7=0; -{===>} hisd_20_8=0; -{===>} hisd_20_9=0; -{===>} hisd_20_10=0; -{===>} hisd_20_11=0; -{===>} hisd_20_12=0; -{===>} hisd_20_13=0; -{===>} hisd_20_14=0; -{===>} hisd_20_15=0; -{===>} hisd_20_16=0; -{===>} hisd_20_17=0; -{===>} hisd_20_18=0; -{===>} hisd_20_19=0; -{===>} hisd_20_20=0; -{===>} hisd_20_21=0; -{===>} hisd_20_22=0; -{===>} hisd_20_23=0; -{===>} hisd_20_24=0; -{===>} hisd_20_25=0; - -{* Patch to change doubly protonated HIS to singly protonated histidine (HE1) *} -{* just give the residue number of the histidines for the HISD patch, set them to zero if you don't want them *} - -{* Number of HISE for molecule 1 *} -{===>} numhise_1=0; - -{===>} hise_1_1=0; -{===>} hise_1_2=0; -{===>} hise_1_3=0; -{===>} hise_1_4=0; -{===>} hise_1_5=0; -{===>} hise_1_6=0; -{===>} hise_1_7=0; -{===>} hise_1_8=0; -{===>} hise_1_9=0; -{===>} hise_1_10=0; -{===>} hise_1_11=0; -{===>} hise_1_12=0; -{===>} hise_1_13=0; -{===>} hise_1_14=0; -{===>} hise_1_15=0; -{===>} hise_1_16=0; -{===>} hise_1_17=0; -{===>} hise_1_18=0; -{===>} hise_1_19=0; -{===>} hise_1_20=0; -{===>} hise_1_21=0; -{===>} hise_1_22=0; -{===>} hise_1_23=0; -{===>} hise_1_24=0; -{===>} hise_1_25=0; - -{* Number of hise for molecule 2 *} -{===>} numhise_2=0; - -{===>} hise_2_1=0; -{===>} hise_2_2=0; -{===>} hise_2_3=0; -{===>} hise_2_4=0; -{===>} hise_2_5=0; -{===>} hise_2_6=0; -{===>} hise_2_7=0; -{===>} hise_2_8=0; -{===>} hise_2_9=0; -{===>} hise_2_10=0; -{===>} hise_2_11=0; -{===>} hise_2_12=0; -{===>} hise_2_13=0; -{===>} hise_2_14=0; -{===>} hise_2_15=0; -{===>} hise_2_16=0; -{===>} hise_2_17=0; -{===>} hise_2_18=0; -{===>} hise_2_19=0; -{===>} hise_2_20=0; -{===>} hise_2_21=0; -{===>} hise_2_22=0; -{===>} hise_2_23=0; -{===>} hise_2_24=0; -{===>} hise_2_25=0; - -{* Number of hise for molecule 3 *} -{===>} numhise_3=0; - -{===>} hise_3_1=0; -{===>} hise_3_2=0; -{===>} hise_3_3=0; -{===>} hise_3_4=0; -{===>} hise_3_5=0; -{===>} hise_3_6=0; -{===>} hise_3_7=0; -{===>} hise_3_8=0; -{===>} hise_3_9=0; -{===>} hise_3_10=0; -{===>} hise_3_11=0; -{===>} hise_3_12=0; -{===>} hise_3_13=0; -{===>} hise_3_14=0; -{===>} hise_3_15=0; -{===>} hise_3_16=0; -{===>} hise_3_17=0; -{===>} hise_3_18=0; -{===>} hise_3_19=0; -{===>} hise_3_20=0; -{===>} hise_3_21=0; -{===>} hise_3_22=0; -{===>} hise_3_23=0; -{===>} hise_3_24=0; -{===>} hise_3_25=0; - -{* Number of hise for molecule 4 *} -{===>} numhise_4=0; - -{===>} hise_4_1=0; -{===>} hise_4_2=0; -{===>} hise_4_3=0; -{===>} hise_4_4=0; -{===>} hise_4_5=0; -{===>} hise_4_6=0; -{===>} hise_4_7=0; -{===>} hise_4_8=0; -{===>} hise_4_9=0; -{===>} hise_4_10=0; -{===>} hise_4_11=0; -{===>} hise_4_12=0; -{===>} hise_4_13=0; -{===>} hise_4_14=0; -{===>} hise_4_15=0; -{===>} hise_4_16=0; -{===>} hise_4_17=0; -{===>} hise_4_18=0; -{===>} hise_4_19=0; -{===>} hise_4_20=0; -{===>} hise_4_21=0; -{===>} hise_4_22=0; -{===>} hise_4_23=0; -{===>} hise_4_24=0; -{===>} hise_4_25=0; - -{* Number of hise for molecule 5 *} -{===>} numhise_5=0; - -{===>} hise_5_1=0; -{===>} hise_5_2=0; -{===>} hise_5_3=0; -{===>} hise_5_4=0; -{===>} hise_5_5=0; -{===>} hise_5_6=0; -{===>} hise_5_7=0; -{===>} hise_5_8=0; -{===>} hise_5_9=0; -{===>} hise_5_10=0; -{===>} hise_5_11=0; -{===>} hise_5_12=0; -{===>} hise_5_13=0; -{===>} hise_5_14=0; -{===>} hise_5_15=0; -{===>} hise_5_16=0; -{===>} hise_5_17=0; -{===>} hise_5_18=0; -{===>} hise_5_19=0; -{===>} hise_5_20=0; -{===>} hise_5_21=0; -{===>} hise_5_22=0; -{===>} hise_5_23=0; -{===>} hise_5_24=0; -{===>} hise_5_25=0; - -{* Number of hise for molecule 6 *} -{===>} numhise_6=0; - -{===>} hise_6_1=0; -{===>} hise_6_2=0; -{===>} hise_6_3=0; -{===>} hise_6_4=0; -{===>} hise_6_5=0; -{===>} hise_6_6=0; -{===>} hise_6_7=0; -{===>} hise_6_8=0; -{===>} hise_6_9=0; -{===>} hise_6_10=0; -{===>} hise_6_11=0; -{===>} hise_6_12=0; -{===>} hise_6_13=0; -{===>} hise_6_14=0; -{===>} hise_6_15=0; -{===>} hise_6_16=0; -{===>} hise_6_17=0; -{===>} hise_6_18=0; -{===>} hise_6_19=0; -{===>} hise_6_20=0; -{===>} hise_6_21=0; -{===>} hise_6_22=0; -{===>} hise_6_23=0; -{===>} hise_6_24=0; -{===>} hise_6_25=0; - -{* Number of hise for molecule 7 *} -{===>} numhise_7=0; - -{===>} hise_7_1=0; -{===>} hise_7_2=0; -{===>} hise_7_3=0; -{===>} hise_7_4=0; -{===>} hise_7_5=0; -{===>} hise_7_6=0; -{===>} hise_7_7=0; -{===>} hise_7_8=0; -{===>} hise_7_9=0; -{===>} hise_7_10=0; -{===>} hise_7_11=0; -{===>} hise_7_12=0; -{===>} hise_7_13=0; -{===>} hise_7_14=0; -{===>} hise_7_15=0; -{===>} hise_7_16=0; -{===>} hise_7_17=0; -{===>} hise_7_18=0; -{===>} hise_7_19=0; -{===>} hise_7_20=0; -{===>} hise_7_21=0; -{===>} hise_7_22=0; -{===>} hise_7_23=0; -{===>} hise_7_24=0; -{===>} hise_7_25=0; - -{* Number of hise for molecule 8 *} -{===>} numhise_8=0; - -{===>} hise_8_1=0; -{===>} hise_8_2=0; -{===>} hise_8_3=0; -{===>} hise_8_4=0; -{===>} hise_8_5=0; -{===>} hise_8_6=0; -{===>} hise_8_7=0; -{===>} hise_8_8=0; -{===>} hise_8_9=0; -{===>} hise_8_10=0; -{===>} hise_8_11=0; -{===>} hise_8_12=0; -{===>} hise_8_13=0; -{===>} hise_8_14=0; -{===>} hise_8_15=0; -{===>} hise_8_16=0; -{===>} hise_8_17=0; -{===>} hise_8_18=0; -{===>} hise_8_19=0; -{===>} hise_8_20=0; -{===>} hise_8_21=0; -{===>} hise_8_22=0; -{===>} hise_8_23=0; -{===>} hise_8_24=0; -{===>} hise_8_25=0; - -{* Number of hise for molecule 9 *} -{===>} numhise_9=0; - -{===>} hise_9_1=0; -{===>} hise_9_2=0; -{===>} hise_9_3=0; -{===>} hise_9_4=0; -{===>} hise_9_5=0; -{===>} hise_9_6=0; -{===>} hise_9_7=0; -{===>} hise_9_8=0; -{===>} hise_9_9=0; -{===>} hise_9_10=0; -{===>} hise_9_11=0; -{===>} hise_9_12=0; -{===>} hise_9_13=0; -{===>} hise_9_14=0; -{===>} hise_9_15=0; -{===>} hise_9_16=0; -{===>} hise_9_17=0; -{===>} hise_9_18=0; -{===>} hise_9_19=0; -{===>} hise_9_20=0; -{===>} hise_9_21=0; -{===>} hise_9_22=0; -{===>} hise_9_23=0; -{===>} hise_9_24=0; -{===>} hise_9_25=0; - -{* Number of hise for molecule 10 *} -{===>} numhise_10=0; - -{===>} hise_10_1=0; -{===>} hise_10_2=0; -{===>} hise_10_3=0; -{===>} hise_10_4=0; -{===>} hise_10_5=0; -{===>} hise_10_6=0; -{===>} hise_10_7=0; -{===>} hise_10_8=0; -{===>} hise_10_9=0; -{===>} hise_10_10=0; -{===>} hise_10_11=0; -{===>} hise_10_12=0; -{===>} hise_10_13=0; -{===>} hise_10_14=0; -{===>} hise_10_15=0; -{===>} hise_10_16=0; -{===>} hise_10_17=0; -{===>} hise_10_18=0; -{===>} hise_10_19=0; -{===>} hise_10_20=0; -{===>} hise_10_21=0; -{===>} hise_10_22=0; -{===>} hise_10_23=0; -{===>} hise_10_24=0; -{===>} hise_10_25=0; - -{* Number of hise for molecule 11 *} -{===>} numhise_11=0; - -{===>} hise_11_1=0; -{===>} hise_11_2=0; -{===>} hise_11_3=0; -{===>} hise_11_4=0; -{===>} hise_11_5=0; -{===>} hise_11_6=0; -{===>} hise_11_7=0; -{===>} hise_11_8=0; -{===>} hise_11_9=0; -{===>} hise_11_10=0; -{===>} hise_11_11=0; -{===>} hise_11_12=0; -{===>} hise_11_13=0; -{===>} hise_11_14=0; -{===>} hise_11_15=0; -{===>} hise_11_16=0; -{===>} hise_11_17=0; -{===>} hise_11_18=0; -{===>} hise_11_19=0; -{===>} hise_11_20=0; -{===>} hise_11_21=0; -{===>} hise_11_22=0; -{===>} hise_11_23=0; -{===>} hise_11_24=0; -{===>} hise_11_25=0; - -{* Number of hise for molecule 12 *} -{===>} numhise_12=0; - -{===>} hise_12_1=0; -{===>} hise_12_2=0; -{===>} hise_12_3=0; -{===>} hise_12_4=0; -{===>} hise_12_5=0; -{===>} hise_12_6=0; -{===>} hise_12_7=0; -{===>} hise_12_8=0; -{===>} hise_12_9=0; -{===>} hise_12_10=0; -{===>} hise_12_11=0; -{===>} hise_12_12=0; -{===>} hise_12_13=0; -{===>} hise_12_14=0; -{===>} hise_12_15=0; -{===>} hise_12_16=0; -{===>} hise_12_17=0; -{===>} hise_12_18=0; -{===>} hise_12_19=0; -{===>} hise_12_20=0; -{===>} hise_12_21=0; -{===>} hise_12_22=0; -{===>} hise_12_23=0; -{===>} hise_12_24=0; -{===>} hise_12_25=0; - -{* Number of hise for molecule 13 *} -{===>} numhise_13=0; - -{===>} hise_13_1=0; -{===>} hise_13_2=0; -{===>} hise_13_3=0; -{===>} hise_13_4=0; -{===>} hise_13_5=0; -{===>} hise_13_6=0; -{===>} hise_13_7=0; -{===>} hise_13_8=0; -{===>} hise_13_9=0; -{===>} hise_13_10=0; -{===>} hise_13_11=0; -{===>} hise_13_12=0; -{===>} hise_13_13=0; -{===>} hise_13_14=0; -{===>} hise_13_15=0; -{===>} hise_13_16=0; -{===>} hise_13_17=0; -{===>} hise_13_18=0; -{===>} hise_13_19=0; -{===>} hise_13_20=0; -{===>} hise_13_21=0; -{===>} hise_13_22=0; -{===>} hise_13_23=0; -{===>} hise_13_24=0; -{===>} hise_13_25=0; - -{* Number of hise for molecule 14 *} -{===>} numhise_14=0; - -{===>} hise_14_1=0; -{===>} hise_14_2=0; -{===>} hise_14_3=0; -{===>} hise_14_4=0; -{===>} hise_14_5=0; -{===>} hise_14_6=0; -{===>} hise_14_7=0; -{===>} hise_14_8=0; -{===>} hise_14_9=0; -{===>} hise_14_10=0; -{===>} hise_14_11=0; -{===>} hise_14_12=0; -{===>} hise_14_13=0; -{===>} hise_14_14=0; -{===>} hise_14_15=0; -{===>} hise_14_16=0; -{===>} hise_14_17=0; -{===>} hise_14_18=0; -{===>} hise_14_19=0; -{===>} hise_14_20=0; -{===>} hise_14_21=0; -{===>} hise_14_22=0; -{===>} hise_14_23=0; -{===>} hise_14_24=0; -{===>} hise_14_25=0; - -{* Number of hise for molecule 15 *} -{===>} numhise_15=0; - -{===>} hise_15_1=0; -{===>} hise_15_2=0; -{===>} hise_15_3=0; -{===>} hise_15_4=0; -{===>} hise_15_5=0; -{===>} hise_15_6=0; -{===>} hise_15_7=0; -{===>} hise_15_8=0; -{===>} hise_15_9=0; -{===>} hise_15_10=0; -{===>} hise_15_11=0; -{===>} hise_15_12=0; -{===>} hise_15_13=0; -{===>} hise_15_14=0; -{===>} hise_15_15=0; -{===>} hise_15_16=0; -{===>} hise_15_17=0; -{===>} hise_15_18=0; -{===>} hise_15_19=0; -{===>} hise_15_20=0; -{===>} hise_15_21=0; -{===>} hise_15_22=0; -{===>} hise_15_23=0; -{===>} hise_15_24=0; -{===>} hise_15_25=0; - -{* Number of hise for molecule 16 *} -{===>} numhise_16=0; - -{===>} hise_16_1=0; -{===>} hise_16_2=0; -{===>} hise_16_3=0; -{===>} hise_16_4=0; -{===>} hise_16_5=0; -{===>} hise_16_6=0; -{===>} hise_16_7=0; -{===>} hise_16_8=0; -{===>} hise_16_9=0; -{===>} hise_16_10=0; -{===>} hise_16_11=0; -{===>} hise_16_12=0; -{===>} hise_16_13=0; -{===>} hise_16_14=0; -{===>} hise_16_15=0; -{===>} hise_16_16=0; -{===>} hise_16_17=0; -{===>} hise_16_18=0; -{===>} hise_16_19=0; -{===>} hise_16_20=0; -{===>} hise_16_21=0; -{===>} hise_16_22=0; -{===>} hise_16_23=0; -{===>} hise_16_24=0; -{===>} hise_16_25=0; - -{* Number of hise for molecule 17 *} -{===>} numhise_17=0; - -{===>} hise_17_1=0; -{===>} hise_17_2=0; -{===>} hise_17_3=0; -{===>} hise_17_4=0; -{===>} hise_17_5=0; -{===>} hise_17_6=0; -{===>} hise_17_7=0; -{===>} hise_17_8=0; -{===>} hise_17_9=0; -{===>} hise_17_10=0; -{===>} hise_17_11=0; -{===>} hise_17_12=0; -{===>} hise_17_13=0; -{===>} hise_17_14=0; -{===>} hise_17_15=0; -{===>} hise_17_16=0; -{===>} hise_17_17=0; -{===>} hise_17_18=0; -{===>} hise_17_19=0; -{===>} hise_17_20=0; -{===>} hise_17_21=0; -{===>} hise_17_22=0; -{===>} hise_17_23=0; -{===>} hise_17_24=0; -{===>} hise_17_25=0; - -{* Number of hise for molecule 18 *} -{===>} numhise_18=0; - -{===>} hise_18_1=0; -{===>} hise_18_2=0; -{===>} hise_18_3=0; -{===>} hise_18_4=0; -{===>} hise_18_5=0; -{===>} hise_18_6=0; -{===>} hise_18_7=0; -{===>} hise_18_8=0; -{===>} hise_18_9=0; -{===>} hise_18_10=0; -{===>} hise_18_11=0; -{===>} hise_18_12=0; -{===>} hise_18_13=0; -{===>} hise_18_14=0; -{===>} hise_18_15=0; -{===>} hise_18_16=0; -{===>} hise_18_17=0; -{===>} hise_18_18=0; -{===>} hise_18_19=0; -{===>} hise_18_20=0; -{===>} hise_18_21=0; -{===>} hise_18_22=0; -{===>} hise_18_23=0; -{===>} hise_18_24=0; -{===>} hise_18_25=0; - -{* Number of hise for molecule 19 *} -{===>} numhise_19=0; - -{===>} hise_19_1=0; -{===>} hise_19_2=0; -{===>} hise_19_3=0; -{===>} hise_19_4=0; -{===>} hise_19_5=0; -{===>} hise_19_6=0; -{===>} hise_19_7=0; -{===>} hise_19_8=0; -{===>} hise_19_9=0; -{===>} hise_19_10=0; -{===>} hise_19_11=0; -{===>} hise_19_12=0; -{===>} hise_19_13=0; -{===>} hise_19_14=0; -{===>} hise_19_15=0; -{===>} hise_19_16=0; -{===>} hise_19_17=0; -{===>} hise_19_18=0; -{===>} hise_19_19=0; -{===>} hise_19_20=0; -{===>} hise_19_21=0; -{===>} hise_19_22=0; -{===>} hise_19_23=0; -{===>} hise_19_24=0; -{===>} hise_19_25=0; - -{* Number of hise for molecule 20 *} -{===>} numhise_20=0; - -{===>} hise_20_1=0; -{===>} hise_20_2=0; -{===>} hise_20_3=0; -{===>} hise_20_4=0; -{===>} hise_20_5=0; -{===>} hise_20_6=0; -{===>} hise_20_7=0; -{===>} hise_20_8=0; -{===>} hise_20_9=0; -{===>} hise_20_10=0; -{===>} hise_20_11=0; -{===>} hise_20_12=0; -{===>} hise_20_13=0; -{===>} hise_20_14=0; -{===>} hise_20_15=0; -{===>} hise_20_16=0; -{===>} hise_20_17=0; -{===>} hise_20_18=0; -{===>} hise_20_19=0; -{===>} hise_20_20=0; -{===>} hise_20_21=0; -{===>} hise_20_22=0; -{===>} hise_20_23=0; -{===>} hise_20_24=0; -{===>} hise_20_25=0; - - -{========= Definition of semi-flexible interface ============} -{* Define the interface of each molecule.*} -{* Side-chains and backbone of these residues will be allowed to move during semi-flexible refinement*} - -{* number of semi-flexible segments for molecule 1 (-1 for automated mode) *} -{* Note that current max is 10 (edit the run.cns to add more segments *} - -{===>} nseg_1=-1; - -{* Residues of molecule 1 at interface *} -{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} - -{===>} start_seg_1_1=""; -{===>} end_seg_1_1=""; -{===>} start_seg_1_2=""; -{===>} end_seg_1_2=""; -{===>} start_seg_1_3=""; -{===>} end_seg_1_3=""; -{===>} start_seg_1_4=""; -{===>} end_seg_1_4=""; -{===>} start_seg_1_5=""; -{===>} end_seg_1_5=""; -{===>} start_seg_1_6=""; -{===>} end_seg_1_6=""; -{===>} start_seg_1_7=""; -{===>} end_seg_1_7=""; -{===>} start_seg_1_8=""; -{===>} end_seg_1_8=""; -{===>} start_seg_1_9=""; -{===>} end_seg_1_9=""; -{===>} start_seg_1_10=""; -{===>} end_seg_1_10=""; - -{* number of semi-flexible segments for molecule 2 (-1 for automated mode) *} -{* Note that current max is 10 (edit the run.cns to add more segments *} - -{===>} nseg_2=-1; - -{* Residues of molecule 2 at interface *} -{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} -{===>} start_seg_2_1=""; -{===>} end_seg_2_1=""; -{===>} start_seg_2_2=""; -{===>} end_seg_2_2=""; -{===>} start_seg_2_3=""; -{===>} end_seg_2_3=""; -{===>} start_seg_2_4=""; -{===>} end_seg_2_4=""; -{===>} start_seg_2_5=""; -{===>} end_seg_2_5=""; -{===>} start_seg_2_6=""; -{===>} end_seg_2_6=""; -{===>} start_seg_2_7=""; -{===>} end_seg_2_7=""; -{===>} start_seg_2_8=""; -{===>} end_seg_2_8=""; -{===>} start_seg_2_9=""; -{===>} end_seg_2_9=""; -{===>} start_seg_2_10=""; -{===>} end_seg_2_10=""; - -{* number of semi-flexible segments for molecule 3 (-1 for automated mode) *} -{* Note that current max is 10 (edit the run.cns to add more segments *} - -{===>} nseg_3=-1; - -{* Residues of molecule 3 at interface *} -{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} -{===>} start_seg_3_1=""; -{===>} end_seg_3_1=""; -{===>} start_seg_3_2=""; -{===>} end_seg_3_2=""; -{===>} start_seg_3_3=""; -{===>} end_seg_3_3=""; -{===>} start_seg_3_4=""; -{===>} end_seg_3_4=""; -{===>} start_seg_3_5=""; -{===>} end_seg_3_5=""; -{===>} start_seg_3_6=""; -{===>} end_seg_3_6=""; -{===>} start_seg_3_7=""; -{===>} end_seg_3_7=""; -{===>} start_seg_3_8=""; -{===>} end_seg_3_8=""; -{===>} start_seg_3_9=""; -{===>} end_seg_3_9=""; -{===>} start_seg_3_10=""; -{===>} end_seg_3_10=""; - -{* number of semi-flexible segments for molecule 4 (-1 for automated mode) *} -{* Note that current max is 10 (edit the run.cns to add more segments *} - -{===>} nseg_4=-1; - -{* Residues of molecule 4 at interface *} -{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} -{===>} start_seg_4_1=""; -{===>} end_seg_4_1=""; -{===>} start_seg_4_2=""; -{===>} end_seg_4_2=""; -{===>} start_seg_4_3=""; -{===>} end_seg_4_3=""; -{===>} start_seg_4_4=""; -{===>} end_seg_4_4=""; -{===>} start_seg_4_5=""; -{===>} end_seg_4_5=""; -{===>} start_seg_4_6=""; -{===>} end_seg_4_6=""; -{===>} start_seg_4_7=""; -{===>} end_seg_4_7=""; -{===>} start_seg_4_8=""; -{===>} end_seg_4_8=""; -{===>} start_seg_4_9=""; -{===>} end_seg_4_9=""; -{===>} start_seg_4_10=""; -{===>} end_seg_4_10=""; - -{* number of semi-flexible segments for molecule 5 (-1 for automated mode) *} -{* Note that current max is 10 (edit the run.cns to add more segments *} - -{===>} nseg_5=-1; - -{* Residues of molecule 5 at interface *} -{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} -{===>} start_seg_5_1=""; -{===>} end_seg_5_1=""; -{===>} start_seg_5_2=""; -{===>} end_seg_5_2=""; -{===>} start_seg_5_3=""; -{===>} end_seg_5_3=""; -{===>} start_seg_5_4=""; -{===>} end_seg_5_4=""; -{===>} start_seg_5_5=""; -{===>} end_seg_5_5=""; -{===>} start_seg_5_6=""; -{===>} end_seg_5_6=""; -{===>} start_seg_5_7=""; -{===>} end_seg_5_7=""; -{===>} start_seg_5_8=""; -{===>} end_seg_5_8=""; -{===>} start_seg_5_9=""; -{===>} end_seg_5_9=""; -{===>} start_seg_5_10=""; -{===>} end_seg_5_10=""; - -{* number of semi-flexible segments for molecule 6 (-1 for automated mode) *} -{* Note that current max is 10 (edit the run.cns to add more segments *} - -{===>} nseg_6=-1; - -{* Residues of molecule 6 at interface *} -{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} -{===>} start_seg_1=""; -{===>} end_seg_1=""; -{===>} start_seg_2=""; -{===>} end_seg_2=""; -{===>} start_seg_3=""; -{===>} end_seg_3=""; -{===>} start_seg_4=""; -{===>} end_seg_4=""; -{===>} start_seg_5=""; -{===>} end_seg_5=""; -{===>} start_seg_6=""; -{===>} end_seg_6=""; -{===>} start_seg_7=""; -{===>} end_seg_7=""; -{===>} start_seg_8=""; -{===>} end_seg_8=""; -{===>} start_seg_9=""; -{===>} end_seg_9=""; -{===>} start_seg_10=""; -{===>} end_seg_10=""; - -{* number of semi-flexible segments for molecule 7 (-1 for automated mode) *} -{* Note that current max is 10 (edit the run.cns to add more segments *} - -{===>} nseg_7=-1; - -{* Residues of molecule 7 at interface *} -{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} -{===>} start_seg_7_1=""; -{===>} end_seg_7_1=""; -{===>} start_seg_7_2=""; -{===>} end_seg_7_2=""; -{===>} start_seg_7_3=""; -{===>} end_seg_7_3=""; -{===>} start_seg_7_4=""; -{===>} end_seg_7_4=""; -{===>} start_seg_7_5=""; -{===>} end_seg_7_5=""; -{===>} start_seg_7_6=""; -{===>} end_seg_7_6=""; -{===>} start_seg_7_7=""; -{===>} end_seg_7_7=""; -{===>} start_seg_7_8=""; -{===>} end_seg_7_8=""; -{===>} start_seg_7_9=""; -{===>} end_seg_7_9=""; -{===>} start_seg_7_10=""; -{===>} end_seg_7_10=""; - -{* number of semi-flexible segments for molecule 8 (-1 for automated mode) *} -{* Note that current max is 10 (edit the run.cns to add more segments *} - -{===>} nseg_8=-1; - -{* Residues of molecule 8 at interface *} -{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} -{===>} start_seg_8_1=""; -{===>} end_seg_8_1=""; -{===>} start_seg_8_2=""; -{===>} end_seg_8_2=""; -{===>} start_seg_8_3=""; -{===>} end_seg_8_3=""; -{===>} start_seg_8_4=""; -{===>} end_seg_8_4=""; -{===>} start_seg_8_5=""; -{===>} end_seg_8_5=""; -{===>} start_seg_8_6=""; -{===>} end_seg_8_6=""; -{===>} start_seg_8_7=""; -{===>} end_seg_8_7=""; -{===>} start_seg_8_8=""; -{===>} end_seg_8_8=""; -{===>} start_seg_8_9=""; -{===>} end_seg_8_9=""; -{===>} start_seg_8_10=""; -{===>} end_seg_8_10=""; - -{* number of semi-flexible segments for molecule 9 (-1 for automated mode) *} -{* Note that current max is 10 (edit the run.cns to add more segments *} - -{===>} nseg_9=-1; - -{* Residues of molecule 9 at interface *} -{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} -{===>} start_seg_9_1=""; -{===>} end_seg_9_1=""; -{===>} start_seg_9_2=""; -{===>} end_seg_9_2=""; -{===>} start_seg_9_3=""; -{===>} end_seg_9_3=""; -{===>} start_seg_9_4=""; -{===>} end_seg_9_4=""; -{===>} start_seg_9_5=""; -{===>} end_seg_9_5=""; -{===>} start_seg_9_6=""; -{===>} end_seg_9_6=""; -{===>} start_seg_9_7=""; -{===>} end_seg_9_7=""; -{===>} start_seg_9_8=""; -{===>} end_seg_9_8=""; -{===>} start_seg_9_9=""; -{===>} end_seg_9_9=""; -{===>} start_seg_9_10=""; -{===>} end_seg_9_10=""; - -{* number of semi-flexible segments for molecule 10 (-1 for automated mode) *} -{* Note that current max is 10 (edit the run.cns to add more segments *} - -{===>} nseg_10=-1; - -{* Residues of molecule 10 at interface *} -{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} -{===>} start_seg_10_1=""; -{===>} end_seg_10_1=""; -{===>} start_seg_10_2=""; -{===>} end_seg_10_2=""; -{===>} start_seg_10_3=""; -{===>} end_seg_10_3=""; -{===>} start_seg_10_4=""; -{===>} end_seg_10_4=""; -{===>} start_seg_10_5=""; -{===>} end_seg_10_5=""; -{===>} start_seg_10_6=""; -{===>} end_seg_10_6=""; -{===>} start_seg_10_7=""; -{===>} end_seg_10_7=""; -{===>} start_seg_10_8=""; -{===>} end_seg_10_8=""; -{===>} start_seg_10_9=""; -{===>} end_seg_10_9=""; -{===>} start_seg_10_10=""; -{===>} end_seg_10_10=""; - -{* number of semi-flexible segments for molecule 11 (-1 for automated mode) *} -{* Note that current max is 10 (edit the run.cns to add more segments *} - -{===>} nseg_11=-1; - -{* Residues of molecule 11 at interface *} -{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} -{===>} start_seg_11_1=""; -{===>} end_seg_11_1=""; -{===>} start_seg_11_2=""; -{===>} end_seg_11_2=""; -{===>} start_seg_11_3=""; -{===>} end_seg_11_3=""; -{===>} start_seg_11_4=""; -{===>} end_seg_11_4=""; -{===>} start_seg_11_5=""; -{===>} end_seg_11_5=""; -{===>} start_seg_11_6=""; -{===>} end_seg_11_6=""; -{===>} start_seg_11_7=""; -{===>} end_seg_11_7=""; -{===>} start_seg_11_8=""; -{===>} end_seg_11_8=""; -{===>} start_seg_11_9=""; -{===>} end_seg_11_9=""; -{===>} start_seg_11_10=""; -{===>} end_seg_11_10=""; - -{* number of semi-flexible segments for molecule 12 (-1 for automated mode) *} -{* Note that current max is 10 (edit the run.cns to add more segments *} - -{===>} nseg_12=-1; - -{* Residues of molecule 12 at interface *} -{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} -{===>} start_seg_12_1=""; -{===>} end_seg_12_1=""; -{===>} start_seg_12_2=""; -{===>} end_seg_12_2=""; -{===>} start_seg_12_3=""; -{===>} end_seg_12_3=""; -{===>} start_seg_12_4=""; -{===>} end_seg_12_4=""; -{===>} start_seg_12_5=""; -{===>} end_seg_12_5=""; -{===>} start_seg_12_6=""; -{===>} end_seg_12_6=""; -{===>} start_seg_12_7=""; -{===>} end_seg_12_7=""; -{===>} start_seg_12_8=""; -{===>} end_seg_12_8=""; -{===>} start_seg_12_9=""; -{===>} end_seg_12_9=""; -{===>} start_seg_12_10=""; -{===>} end_seg_12_10=""; - -{* number of semi-flexible segments for molecule 13 (-1 for automated mode) *} -{* Note that current max is 10 (edit the run.cns to add more segments *} - -{===>} nseg_13=-1; - -{* Residues of molecule 13 at interface *} -{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} -{===>} start_seg_13_1=""; -{===>} end_seg_13_1=""; -{===>} start_seg_13_2=""; -{===>} end_seg_13_2=""; -{===>} start_seg_13_3=""; -{===>} end_seg_13_3=""; -{===>} start_seg_13_4=""; -{===>} end_seg_13_4=""; -{===>} start_seg_13_5=""; -{===>} end_seg_13_5=""; -{===>} start_seg_13_6=""; -{===>} end_seg_13_6=""; -{===>} start_seg_13_7=""; -{===>} end_seg_13_7=""; -{===>} start_seg_13_8=""; -{===>} end_seg_13_8=""; -{===>} start_seg_13_9=""; -{===>} end_seg_13_9=""; -{===>} start_seg_13_10=""; -{===>} end_seg_13_10=""; - -{* number of semi-flexible segments for molecule 14 (-1 for automated mode) *} -{* Note that current max is 10 (edit the run.cns to add more segments *} - -{===>} nseg_14=-1; - -{* Residues of molecule 14 at interface *} -{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} -{===>} start_seg_14_1=""; -{===>} end_seg_14_1=""; -{===>} start_seg_14_2=""; -{===>} end_seg_14_2=""; -{===>} start_seg_14_3=""; -{===>} end_seg_14_3=""; -{===>} start_seg_14_4=""; -{===>} end_seg_14_4=""; -{===>} start_seg_14_5=""; -{===>} end_seg_14_5=""; -{===>} start_seg_14_6=""; -{===>} end_seg_14_6=""; -{===>} start_seg_14_7=""; -{===>} end_seg_14_7=""; -{===>} start_seg_14_8=""; -{===>} end_seg_14_8=""; -{===>} start_seg_14_9=""; -{===>} end_seg_14_9=""; -{===>} start_seg_14_10=""; -{===>} end_seg_14_10=""; - -{* number of semi-flexible segments for molecule 15 (-1 for automated mode) *} -{* Note that current max is 10 (edit the run.cns to add more segments *} - -{===>} nseg_15=-1; - -{* Residues of molecule 15 at interface *} -{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} -{===>} start_seg_15_1=""; -{===>} end_seg_15_1=""; -{===>} start_seg_15_2=""; -{===>} end_seg_15_2=""; -{===>} start_seg_15_3=""; -{===>} end_seg_15_3=""; -{===>} start_seg_15_4=""; -{===>} end_seg_15_4=""; -{===>} start_seg_15_5=""; -{===>} end_seg_15_5=""; -{===>} start_seg_15_6=""; -{===>} end_seg_15_6=""; -{===>} start_seg_15_7=""; -{===>} end_seg_15_7=""; -{===>} start_seg_15_8=""; -{===>} end_seg_15_8=""; -{===>} start_seg_15_9=""; -{===>} end_seg_15_9=""; -{===>} start_seg_15_10=""; -{===>} end_seg_15_10=""; - -{* number of semi-flexible segments for molecule 16 (-1 for automated mode) *} -{* Note that current max is 10 (edit the run.cns to add more segments *} - -{===>} nseg_16=-1; - -{* Residues of molecule 16 at interface *} -{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} -{===>} start_seg_16_1=""; -{===>} end_seg_16_1=""; -{===>} start_seg_16_2=""; -{===>} end_seg_16_2=""; -{===>} start_seg_16_3=""; -{===>} end_seg_16_3=""; -{===>} start_seg_16_4=""; -{===>} end_seg_16_4=""; -{===>} start_seg_16_5=""; -{===>} end_seg_16_5=""; -{===>} start_seg_16_6=""; -{===>} end_seg_16_6=""; -{===>} start_seg_16_7=""; -{===>} end_seg_16_7=""; -{===>} start_seg_16_8=""; -{===>} end_seg_16_8=""; -{===>} start_seg_16_9=""; -{===>} end_seg_16_9=""; -{===>} start_seg_16_10=""; -{===>} end_seg_16_10=""; - -{* number of semi-flexible segments for molecule 17 (-1 for automated mode) *} -{* Note that current max is 10 (edit the run.cns to add more segments *} - -{===>} nseg_17=-1; - -{* Residues of molecule 17 at interface *} -{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} -{===>} start_seg_17_1=""; -{===>} end_seg_17_1=""; -{===>} start_seg_17_2=""; -{===>} end_seg_17_2=""; -{===>} start_seg_17_3=""; -{===>} end_seg_17_3=""; -{===>} start_seg_17_4=""; -{===>} end_seg_17_4=""; -{===>} start_seg_17_5=""; -{===>} end_seg_17_5=""; -{===>} start_seg_17_6=""; -{===>} end_seg_17_6=""; -{===>} start_seg_17_7=""; -{===>} end_seg_17_7=""; -{===>} start_seg_17_8=""; -{===>} end_seg_17_8=""; -{===>} start_seg_17_9=""; -{===>} end_seg_17_9=""; -{===>} start_seg_17_10=""; -{===>} end_seg_17_10=""; - -{* number of semi-flexible segments for molecule 18 (-1 for automated mode) *} -{* Note that current max is 10 (edit the run.cns to add more segments *} - -{===>} nseg_18=-1; - -{* Residues of molecule 18 at interface *} -{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} -{===>} start_seg_18_1=""; -{===>} end_seg_18_1=""; -{===>} start_seg_18_2=""; -{===>} end_seg_18_2=""; -{===>} start_seg_18_3=""; -{===>} end_seg_18_3=""; -{===>} start_seg_18_4=""; -{===>} end_seg_18_4=""; -{===>} start_seg_18_5=""; -{===>} end_seg_18_5=""; -{===>} start_seg_18_6=""; -{===>} end_seg_18_6=""; -{===>} start_seg_18_7=""; -{===>} end_seg_18_7=""; -{===>} start_seg_18_8=""; -{===>} end_seg_18_8=""; -{===>} start_seg_18_9=""; -{===>} end_seg_18_9=""; -{===>} start_seg_18_10=""; -{===>} end_seg_18_10=""; - -{* number of semi-flexible segments for molecule 19 (-1 for automated mode) *} -{* Note that current max is 10 (edit the run.cns to add more segments *} - -{===>} nseg_19=-1; - -{* Residues of molecule 19 at interface *} -{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} -{===>} start_seg_19_1=""; -{===>} end_seg_19_1=""; -{===>} start_seg_19_2=""; -{===>} end_seg_19_2=""; -{===>} start_seg_19_3=""; -{===>} end_seg_19_3=""; -{===>} start_seg_19_4=""; -{===>} end_seg_19_4=""; -{===>} start_seg_19_5=""; -{===>} end_seg_19_5=""; -{===>} start_seg_19_6=""; -{===>} end_seg_19_6=""; -{===>} start_seg_19_7=""; -{===>} end_seg_19_7=""; -{===>} start_seg_19_8=""; -{===>} end_seg_19_8=""; -{===>} start_seg_19_9=""; -{===>} end_seg_19_9=""; -{===>} start_seg_19_10=""; -{===>} end_seg_19_10=""; - -{* number of semi-flexible segments for molecule 20 (-1 for automated mode) *} -{* Note that current max is 10 (edit the run.cns to add more segments *} - -{===>} nseg_20=-1; - -{* Residues of molecule 20 at interface *} -{+ table: rows=10 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" "segment 6" "segment 7" "segment 8" "segment 9" "segment 10" cols=2 "Start residue" "End residue" +} -{===>} start_seg_20_1=""; -{===>} end_seg_20_1=""; -{===>} start_seg_20_2=""; -{===>} end_seg_20_2=""; -{===>} start_seg_20_3=""; -{===>} end_seg_20_3=""; -{===>} start_seg_20_4=""; -{===>} end_seg_20_4=""; -{===>} start_seg_20_5=""; -{===>} end_seg_20_5=""; -{===>} start_seg_20_6=""; -{===>} end_seg_20_6=""; -{===>} start_seg_20_7=""; -{===>} end_seg_20_7=""; -{===>} start_seg_20_8=""; -{===>} end_seg_20_8=""; -{===>} start_seg_20_9=""; -{===>} end_seg_20_9=""; -{===>} start_seg_20_10=""; -{===>} end_seg_20_10=""; - -{=========== Definition of fully flexible segments ==========} -{* Define the fully flexible segment of each molecule.*} -{* These segments will be allowed to move at all stages of it1 *} - -{* Number of fully flexible segments for molecule 1 *} -{* Note that current max is 5 (edit the run.cns to add more segments *} - -{===>} nfle_1=0; - -{* Fully flexible segments of molecule 1 *} -{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} - -{===>} start_fle_1_1=""; -{===>} end_fle_1_1=""; -{===>} start_fle_1_2=""; -{===>} end_fle_1_2=""; -{===>} start_fle_1_3=""; -{===>} end_fle_1_3=""; -{===>} start_fle_1_4=""; -{===>} end_fle_1_4=""; -{===>} start_fle_1_5=""; -{===>} end_fle_1_5=""; - -{* Fully flexible segments for molecule 2 *} -{* Note that current max is 5 (edit the run.cns to add more segments *} - -{===>} nfle_2=0; - -{* Residues of molecule 2 at interface *} -{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} -{===>} start_fle_2_1=""; -{===>} end_fle_2_1=""; -{===>} start_fle_2_2=""; -{===>} end_fle_2_2=""; -{===>} start_fle_2_3=""; -{===>} end_fle_2_3=""; -{===>} start_fle_2_4=""; -{===>} end_fle_2_4=""; -{===>} start_fle_2_5=""; -{===>} end_fle_2_5=""; - -{* Fully flexible segments for molecule 3 *} -{* Note that current max is 5 (edit the run.cns to add more segments *} - -{===>} nfle_3=0; - -{* Residues of molecule 3 at interface *} -{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} -{===>} start_fle_3_1=""; -{===>} end_fle_3_1=""; -{===>} start_fle_3_2=""; -{===>} end_fle_3_2=""; -{===>} start_fle_3_3=""; -{===>} end_fle_3_3=""; -{===>} start_fle_3_4=""; -{===>} end_fle_3_4=""; -{===>} start_fle_3_5=""; -{===>} end_fle_3_5=""; - -{* Fully flexible segments for molecule 4 *} -{* Note that current max is 5 (edit the run.cns to add more segments *} - -{===>} nfle_4=0; - -{* Residues of molecule 4 at interface *} -{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} -{===>} start_fle_4_1=""; -{===>} end_fle_4_1=""; -{===>} start_fle_4_2=""; -{===>} end_fle_4_2=""; -{===>} start_fle_4_3=""; -{===>} end_fle_4_3=""; -{===>} start_fle_4_4=""; -{===>} end_fle_4_4=""; -{===>} start_fle_4_5=""; -{===>} end_fle_4_5=""; - - -{* Fully flexible segments for molecule 5 *} -{* Note that current max is 5 (edit the run.cns to add more segments *} - -{===>} nfle_5=0; - -{* Residues of molecule 5 at interface *} -{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} -{===>} start_fle_5_1=""; -{===>} end_fle_5_1=""; -{===>} start_fle_5_2=""; -{===>} end_fle_5_2=""; -{===>} start_fle_5_3=""; -{===>} end_fle_5_3=""; -{===>} start_fle_5_4=""; -{===>} end_fle_5_4=""; -{===>} start_fle_5_5=""; -{===>} end_fle_5_5=""; - - -{* Fully flexible segments for molecule 6 *} -{* Note that current max is 5 (edit the run.cns to add more segments *} - -{===>} nfle_6=0; - -{* Residues of molecule 6 at interface *} -{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} -{===>} start_fle_6_1=""; -{===>} end_fle_6_1=""; -{===>} start_fle_6_2=""; -{===>} end_fle_6_2=""; -{===>} start_fle_6_3=""; -{===>} end_fle_6_3=""; -{===>} start_fle_6_4=""; -{===>} end_fle_6_4=""; -{===>} start_fle_6_5=""; -{===>} end_fle_6_5=""; - - -{* Fully flexible segments for molecule 7 *} -{* Note that current max is 5 (edit the run.cns to add more segments *} - -{===>} nfle_7=0; - -{* Residues of molecule 7 at interface *} -{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} -{===>} start_fle_7_1=""; -{===>} end_fle_7_1=""; -{===>} start_fle_7_2=""; -{===>} end_fle_7_2=""; -{===>} start_fle_7_3=""; -{===>} end_fle_7_3=""; -{===>} start_fle_7_4=""; -{===>} end_fle_7_4=""; -{===>} start_fle_7_5=""; -{===>} end_fle_7_5=""; - -{* Fully flexible segments for molecule 8 *} -{* Note that current max is 5 (edit the run.cns to add more segments *} - -{===>} nfle_8=0; - -{* Residues of molecule 8 at interface *} -{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} -{===>} start_fle_8_1=""; -{===>} end_fle_8_1=""; -{===>} start_fle_8_2=""; -{===>} end_fle_8_2=""; -{===>} start_fle_8_3=""; -{===>} end_fle_8_3=""; -{===>} start_fle_8_4=""; -{===>} end_fle_8_4=""; -{===>} start_fle_8_5=""; -{===>} end_fle_8_5=""; - -{* Fully flexible segments for molecule 9 *} -{* Note that current max is 5 (edit the run.cns to add more segments *} - -{===>} nfle_9=0; - -{* Residues of molecule 9 at interface *} -{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} -{===>} start_fle_9_1=""; -{===>} end_fle_9_1=""; -{===>} start_fle_9_2=""; -{===>} end_fle_9_2=""; -{===>} start_fle_9_3=""; -{===>} end_fle_9_3=""; -{===>} start_fle_9_4=""; -{===>} end_fle_9_4=""; -{===>} start_fle_9_5=""; -{===>} end_fle_9_5=""; - -{* Fully flexible segments for molecule 10 *} -{* Note that current max is 5 (edit the run.cns to add more segments *} - -{===>} nfle_10=0; - -{* Residues of molecule 10 at interface *} -{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} -{===>} start_fle_10_1=""; -{===>} end_fle_10_1=""; -{===>} start_fle_10_2=""; -{===>} end_fle_10_2=""; -{===>} start_fle_10_3=""; -{===>} end_fle_10_3=""; -{===>} start_fle_10_4=""; -{===>} end_fle_10_4=""; -{===>} start_fle_10_5=""; -{===>} end_fle_10_5=""; - -{* Fully flexible segments for molecule 11 *} -{* Note that current max is 5 (edit the run.cns to add more segments *} - -{===>} nfle_11=0; - -{* Residues of molecule 11 at interface *} -{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} -{===>} start_fle_11_1=""; -{===>} end_fle_11_1=""; -{===>} start_fle_11_2=""; -{===>} end_fle_11_2=""; -{===>} start_fle_11_3=""; -{===>} end_fle_11_3=""; -{===>} start_fle_11_4=""; -{===>} end_fle_11_4=""; -{===>} start_fle_11_5=""; -{===>} end_fle_11_5=""; - -{* Fully flexible segments for molecule 12 *} -{* Note that current max is 5 (edit the run.cns to add more segments *} - -{===>} nfle_12=0; - -{* Residues of molecule 12 at interface *} -{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} -{===>} start_fle_12_1=""; -{===>} end_fle_12_1=""; -{===>} start_fle_12_2=""; -{===>} end_fle_12_2=""; -{===>} start_fle_12_3=""; -{===>} end_fle_12_3=""; -{===>} start_fle_12_4=""; -{===>} end_fle_12_4=""; -{===>} start_fle_12_5=""; -{===>} end_fle_12_5=""; - -{* Fully flexible segments for molecule 13 *} -{* Note that current max is 5 (edit the run.cns to add more segments *} - -{===>} nfle_13=0; - -{* Residues of molecule 13 at interface *} -{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} -{===>} start_fle_13_1=""; -{===>} end_fle_13_1=""; -{===>} start_fle_13_2=""; -{===>} end_fle_13_2=""; -{===>} start_fle_13_3=""; -{===>} end_fle_13_3=""; -{===>} start_fle_13_4=""; -{===>} end_fle_13_4=""; -{===>} start_fle_13_5=""; -{===>} end_fle_13_5=""; - -{* Fully flexible segments for molecule 14 *} -{* Note that current max is 5 (edit the run.cns to add more segments *} - -{===>} nfle_14=0; - -{* Residues of molecule 14 at interface *} -{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} -{===>} start_fle_14_1=""; -{===>} end_fle_14_1=""; -{===>} start_fle_14_2=""; -{===>} end_fle_14_2=""; -{===>} start_fle_14_3=""; -{===>} end_fle_14_3=""; -{===>} start_fle_14_4=""; -{===>} end_fle_14_4=""; -{===>} start_fle_14_5=""; -{===>} end_fle_14_5=""; - -{* Fully flexible segments for molecule 15 *} -{* Note that current max is 5 (edit the run.cns to add more segments *} - -{===>} nfle_15=0; - -{* Residues of molecule 15 at interface *} -{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} -{===>} start_fle_15_1=""; -{===>} end_fle_15_1=""; -{===>} start_fle_15_2=""; -{===>} end_fle_15_2=""; -{===>} start_fle_15_3=""; -{===>} end_fle_15_3=""; -{===>} start_fle_15_4=""; -{===>} end_fle_15_4=""; -{===>} start_fle_15_5=""; -{===>} end_fle_15_5=""; - -{* Fully flexible segments for molecule 16 *} -{* Note that current max is 5 (edit the run.cns to add more segments *} - -{===>} nfle_16=0; - -{* Residues of molecule 16 at interface *} -{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} -{===>} start_fle_16_1=""; -{===>} end_fle_16_1=""; -{===>} start_fle_16_2=""; -{===>} end_fle_16_2=""; -{===>} start_fle_16_3=""; -{===>} end_fle_16_3=""; -{===>} start_fle_16_4=""; -{===>} end_fle_16_4=""; -{===>} start_fle_16_5=""; -{===>} end_fle_16_5=""; - -{* Fully flexible segments for molecule 17 *} -{* Note that current max is 5 (edit the run.cns to add more segments *} - -{===>} nfle_17=0; - -{* Residues of molecule 17 at interface *} -{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} -{===>} start_fle_17_1=""; -{===>} end_fle_17_1=""; -{===>} start_fle_17_2=""; -{===>} end_fle_17_2=""; -{===>} start_fle_17_3=""; -{===>} end_fle_17_3=""; -{===>} start_fle_17_4=""; -{===>} end_fle_17_4=""; -{===>} start_fle_17_5=""; -{===>} end_fle_17_5=""; - - -{* Fully flexible segments for molecule 18 *} -{* Note that current max is 5 (edit the run.cns to add more segments *} - -{===>} nfle_18=0; - -{* Residues of molecule 18 at interface *} -{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} -{===>} start_fle_18_1=""; -{===>} end_fle_18_1=""; -{===>} start_fle_18_2=""; -{===>} end_fle_18_2=""; -{===>} start_fle_18_3=""; -{===>} end_fle_18_3=""; -{===>} start_fle_18_4=""; -{===>} end_fle_18_4=""; -{===>} start_fle_18_5=""; -{===>} end_fle_18_5=""; - - -{* Fully flexible segments for molecule 19 *} -{* Note that current max is 5 (edit the run.cns to add more segments *} - -{===>} nfle_19=0; - -{* Sesidues of molecule 19 at interface *} -{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} -{===>} start_fle_19_1=""; -{===>} end_fle_19_1=""; -{===>} start_fle_19_2=""; -{===>} end_fle_19_2=""; -{===>} start_fle_19_3=""; -{===>} end_fle_19_3=""; -{===>} start_fle_19_4=""; -{===>} end_fle_19_4=""; -{===>} start_fle_19_5=""; -{===>} end_fle_19_5=""; - -{* Fully flexible segments for molecule 20 *} -{* Note that current max is 5 (edit the run.cns to add more segments *} - -{===>} nfle_20=0; - -{* Sesidues of molecule 20 at interface *} -{+ table: rows=5 "segment 1" "segment 2" "segment 3" "segment 4" "segment 5" cols=2 "Start residue" "End residue" +} -{===>} start_fle_20_1=""; -{===>} end_fle_20_1=""; -{===>} start_fle_20_2=""; -{===>} end_fle_20_2=""; -{===>} start_fle_20_3=""; -{===>} end_fle_20_3=""; -{===>} start_fle_20_4=""; -{===>} end_fle_20_4=""; -{===>} start_fle_20_5=""; -{===>} end_fle_20_5=""; - -{==================== membrane positioning restraints ==================} -{* Do you want to use membrane positioning restraints ? *} -{+ choice: true false +} -{===>} zres_on=false; - -{* Force constant for membrane positioning restraints ? *} -{===>} kzres=10.0; - -{* Maximum z value for membrane positioning restraints ? *} -{===>} zresmax=0.0; - -{* Minimum z value for membrane positioning restraints ? *} -{===>} zresmin=0.0; - -{* Number of membrane positioning restrained segments *} -{===>} numzres=0; - -{* Define the segment for membrane positioning restraints *} -{+ table: rows=10 "seg 1" "seg 2" "seg 3" "seg 4" "seg 5" "seg 6" "seg 7" "seg 8" "seg 9" "seg 10" cols=4 "Start res seg1" "End res seg1" "Segid seg1" "inside/outside" +} -{===>} zres_sta_1=""; -{===>} zres_end_1=""; -{===>} zres_seg_1=""; -{+ choice: "inside" "outside"+} -{===>} zres_type_1=""; -{===>} zres_sta_2=""; -{===>} zres_end_2=""; -{===>} zres_seg_2=""; -{+ choice: "inside" "outside"+} -{===>} zres_type_2=""; -{===>} zres_sta_3=""; -{===>} zres_end_3=""; -{===>} zres_seg_3=""; -{+ choice: "inside" "outside"+} -{===>} zres_type_3=""; -{===>} zres_sta_4=""; -{===>} zres_end_4=""; -{===>} zres_seg_4=""; -{+ choice: "inside" "outside"+} -{===>} zres_type_4=""; -{===>} zres_sta_5=""; -{===>} zres_end_5=""; -{===>} zres_seg_5=""; -{+ choice: "inside" "outside"+} -{===>} zres_type_5=""; -{===>} zres_sta_6=""; -{===>} zres_end_6=""; -{===>} zres_seg_6=""; -{+ choice: "inside" "outside"+} -{===>} zres_type_6=""; -{===>} zres_sta_7=""; -{===>} zres_end_7=""; -{===>} zres_seg_7=""; -{+ choice: "inside" "outside"+} -{===>} zres_type_7=""; -{===>} zres_sta_8=""; -{===>} zres_end_8=""; -{===>} zres_seg_8=""; -{+ choice: "inside" "outside"+} -{===>} zres_type_8=""; -{===>} zres_sta_9=""; -{===>} zres_end_9=""; -{===>} zres_seg_9=""; -{+ choice: "inside" "outside"+} -{===>} zres_type_9=""; -{===>} zres_sta_10=""; -{===>} zres_end_10=""; -{===>} zres_seg_10=""; -{+ choice: "inside" "outside"+} -{===>} zres_type_10=""; - - -{====================== NCS restraints =====================} -{* Do you want to use NCS restraints? *} -{+ choice: true false +} -{===>} ncs_on=false; - -{* Force constant for NCS restraints *} -{===>} kncs=1.0; - -{* Number of NCS pairs *} -{===>} numncs=0; - -{* Define the segments pairs for NCS restraints *} -{+ table: rows=5 "pair 1" "pair 2" "pair 3" "pair 4" "pair 5" cols=6 "Start res seg1" "End res seg1" "Segid seg1" "Start res seg2" "End res seg2" "Segid seg2" +} -{===>} ncs_sta1_1=""; -{===>} ncs_end1_1=""; -{===>} ncs_seg1_1=""; -{===>} ncs_sta2_1=""; -{===>} ncs_end2_1=""; -{===>} ncs_seg2_1=""; -{===>} ncs_sta1_2=""; -{===>} ncs_end1_2=""; -{===>} ncs_seg1_2=""; -{===>} ncs_sta2_2=""; -{===>} ncs_end2_2=""; -{===>} ncs_seg2_2=""; -{===>} ncs_sta1_3=""; -{===>} ncs_end1_3=""; -{===>} ncs_seg1_3=""; -{===>} ncs_sta2_3=""; -{===>} ncs_end2_3=""; -{===>} ncs_seg2_3=""; -{===>} ncs_sta1_4=""; -{===>} ncs_end1_4=""; -{===>} ncs_seg1_4=""; -{===>} ncs_sta2_4=""; -{===>} ncs_end2_4=""; -{===>} ncs_seg2_4=""; -{===>} ncs_sta1_5=""; -{===>} ncs_end1_5=""; -{===>} ncs_seg1_5=""; -{===>} ncs_sta2_5=""; -{===>} ncs_end2_5=""; -{===>} ncs_seg2_5=""; - -{==================== Symmetry restraints ==================} -{* Do you want to use symmetry restraints ? *} -{+ choice: true false +} -{===>} sym_on=false; - -{* Force constant for symmetry restraints ? *} -{===>} ksym=10.0; - -{* Number of C2 symmetry pairs *} -{===>} numc2sym=0; - -{* Define the segment pairs C2 symmetry restraints *} -{+ table: rows=10 "pair 1" "pair 2" "pair 3" "pair 4" "pair 5" "pair 6" "pair 7" "pair 8" "pair 9" "pair 10" cols=6 "Start res seg1" "End res seg1" "Segid seg1" "Start res seg2" "End res seg2" "Segid seg2" +} -{===>} c2sym_sta1_1=""; -{===>} c2sym_end1_1=""; -{===>} c2sym_seg1_1=""; -{===>} c2sym_sta2_1=""; -{===>} c2sym_end2_1=""; -{===>} c2sym_seg2_1=""; -{===>} c2sym_sta1_2=""; -{===>} c2sym_end1_2=""; -{===>} c2sym_seg1_2=""; -{===>} c2sym_sta2_2=""; -{===>} c2sym_end2_2=""; -{===>} c2sym_seg2_2=""; -{===>} c2sym_sta1_3=""; -{===>} c2sym_end1_3=""; -{===>} c2sym_seg1_3=""; -{===>} c2sym_sta2_3=""; -{===>} c2sym_end2_3=""; -{===>} c2sym_seg2_3=""; -{===>} c2sym_sta1_4=""; -{===>} c2sym_end1_4=""; -{===>} c2sym_seg1_4=""; -{===>} c2sym_sta2_4=""; -{===>} c2sym_end2_4=""; -{===>} c2sym_seg2_4=""; -{===>} c2sym_sta1_5=""; -{===>} c2sym_end1_5=""; -{===>} c2sym_seg1_5=""; -{===>} c2sym_sta2_5=""; -{===>} c2sym_end2_5=""; -{===>} c2sym_seg2_5=""; -{===>} c2sym_sta1_6=""; -{===>} c2sym_end1_6=""; -{===>} c2sym_seg1_6=""; -{===>} c2sym_sta2_6=""; -{===>} c2sym_end2_6=""; -{===>} c2sym_seg2_6=""; -{===>} c2sym_sta1_7=""; -{===>} c2sym_end1_7=""; -{===>} c2sym_seg1_7=""; -{===>} c2sym_sta2_7=""; -{===>} c2sym_end2_7=""; -{===>} c2sym_seg2_7=""; -{===>} c2sym_sta1_8=""; -{===>} c2sym_end1_8=""; -{===>} c2sym_seg1_8=""; -{===>} c2sym_sta2_8=""; -{===>} c2sym_end2_8=""; -{===>} c2sym_seg2_8=""; -{===>} c2sym_sta1_9=""; -{===>} c2sym_end1_9=""; -{===>} c2sym_seg1_9=""; -{===>} c2sym_sta2_9=""; -{===>} c2sym_end2_9=""; -{===>} c2sym_seg2_9=""; -{===>} c2sym_sta1_10=""; -{===>} c2sym_end1_10=""; -{===>} c2sym_seg1_10=""; -{===>} c2sym_sta2_10=""; -{===>} c2sym_end2_10=""; -{===>} c2sym_seg2_10=""; - - -{* Number of C3 symmetry triples*} -{===>} numc3sym=0; - -{* Define the segment triples for C3 symmetry restraints *} -{+ table: rows=2 "triple 1" "triple 2" cols=9 "Start res seg1" "End res seg1" "Segid seg1" "Start res seg2" "End res seg2" "Segid seg2" "Start res seg3" "End res seg3" "Segid seg3" +} -{===>} c3sym_sta1_1=""; -{===>} c3sym_end1_1=""; -{===>} c3sym_seg1_1=""; -{===>} c3sym_sta2_1=""; -{===>} c3sym_end2_1=""; -{===>} c3sym_seg2_1=""; -{===>} c3sym_sta3_1=""; -{===>} c3sym_end3_1=""; -{===>} c3sym_seg3_1=""; -{===>} c3sym_sta1_2=""; -{===>} c3sym_end1_2=""; -{===>} c3sym_seg1_2=""; -{===>} c3sym_sta2_2=""; -{===>} c3sym_end2_2=""; -{===>} c3sym_seg2_2=""; -{===>} c3sym_sta3_2=""; -{===>} c3sym_end3_2=""; -{===>} c3sym_seg3_2=""; - - -{* Number of S3 symmetry triples*} -{===>} nums3sym=0; - -{* Define the segment triples for S3 symmetry restraints *} -{+ table: rows=4 "triple 1" "triple 2" "triple 3" "triple 4" cols=9 "Start res seg1" "End res seg1" "Segid seg1" "Start res seg2" "End res seg2" "Segid seg2" "Start res seg3" "End res seg3" "Segid seg3" +} -{===>} s3sym_sta1_1=""; -{===>} s3sym_end1_1=""; -{===>} s3sym_seg1_1=""; -{===>} s3sym_sta2_1=""; -{===>} s3sym_end2_1=""; -{===>} s3sym_seg2_1=""; -{===>} s3sym_sta3_1=""; -{===>} s3sym_end3_1=""; -{===>} s3sym_seg3_1=""; -{===>} s3sym_sta1_2=""; -{===>} s3sym_end1_2=""; -{===>} s3sym_seg1_2=""; -{===>} s3sym_sta2_2=""; -{===>} s3sym_end2_2=""; -{===>} s3sym_seg2_2=""; -{===>} s3sym_sta3_2=""; -{===>} s3sym_end3_2=""; -{===>} s3sym_seg3_2=""; -{===>} s3sym_sta1_3=""; -{===>} s3sym_end1_3=""; -{===>} s3sym_seg1_3=""; -{===>} s3sym_sta2_3=""; -{===>} s3sym_end2_3=""; -{===>} s3sym_seg2_3=""; -{===>} s3sym_sta3_3=""; -{===>} s3sym_end3_3=""; -{===>} s3sym_seg3_3=""; -{===>} s3sym_sta1_4=""; -{===>} s3sym_end1_4=""; -{===>} s3sym_seg1_4=""; -{===>} s3sym_sta2_4=""; -{===>} s3sym_end2_4=""; -{===>} s3sym_seg2_4=""; -{===>} s3sym_sta3_4=""; -{===>} s3sym_end3_4=""; -{===>} s3sym_seg3_4=""; - - -{* Number of C4 symmetry quadruples *} -{===>} numc4sym=0; - -{* Define the segment quadruples for C4 symmetry restraints *} -{+ table: rows=2 "quadruples 1" "quadruples 2" cols=12 "Start res seg1" "End res seg1" "Segid seg1" "Start res seg2" "End res seg2" "Segid seg2" "Start res seg3" "End res seg3" "Segid seg3" "Start res seg4" "End res seg4" "Segid seg4" +} -{===>} c4sym_sta1_1=""; -{===>} c4sym_end1_1=""; -{===>} c4sym_seg1_1=""; -{===>} c4sym_sta2_1=""; -{===>} c4sym_end2_1=""; -{===>} c4sym_seg2_1=""; -{===>} c4sym_sta3_1=""; -{===>} c4sym_end3_1=""; -{===>} c4sym_seg3_1=""; -{===>} c4sym_sta4_1=""; -{===>} c4sym_end4_1=""; -{===>} c4sym_seg4_1=""; -{===>} c4sym_sta1_2=""; -{===>} c4sym_end1_2=""; -{===>} c4sym_seg1_2=""; -{===>} c4sym_sta2_2=""; -{===>} c4sym_end2_2=""; -{===>} c4sym_seg2_2=""; -{===>} c4sym_sta3_2=""; -{===>} c4sym_end3_2=""; -{===>} c4sym_seg3_2=""; -{===>} c4sym_sta4_2=""; -{===>} c4sym_end4_2=""; -{===>} c4sym_seg4_2=""; - - -{* Number of C5 symmetry *} -{===>} numc5sym=0; - -{* Define the segments for C5 symmetry restraints *} -{+ table: rows=5 "Segment1" "Segment2" "Segment3" "Segment4" "Segment5" cols=3 "Start residue" "End residue" "Segid" +} -{===>} c5sym_sta1_1=""; -{===>} c5sym_end1_1=""; -{===>} c5sym_seg1_1=""; -{===>} c5sym_sta2_1=""; -{===>} c5sym_end2_1=""; -{===>} c5sym_seg2_1=""; -{===>} c5sym_sta3_1=""; -{===>} c5sym_end3_1=""; -{===>} c5sym_seg3_1=""; -{===>} c5sym_sta4_1=""; -{===>} c5sym_end4_1=""; -{===>} c5sym_seg4_1=""; -{===>} c5sym_sta5_1=""; -{===>} c5sym_end5_1=""; -{===>} c5sym_seg5_1=""; -{===>} c5sym_sta1_2=""; -{===>} c5sym_end1_2=""; -{===>} c5sym_seg1_2=""; -{===>} c5sym_sta2_2=""; -{===>} c5sym_end2_2=""; -{===>} c5sym_seg2_2=""; -{===>} c5sym_sta3_2=""; -{===>} c5sym_end3_2=""; -{===>} c5sym_seg3_2=""; -{===>} c5sym_sta4_2=""; -{===>} c5sym_end4_2=""; -{===>} c5sym_seg4_2=""; -{===>} c5sym_sta5_2=""; -{===>} c5sym_end5_2=""; -{===>} c5sym_seg5_2=""; - - -{* Number of c6 symmetry *} -{===>} numc6sym=0; - -{* Define the segments for c6 symmetry restraints *} -{+ table: rows=5 "Segment1" "Segment2" "Segment3" "Segment4" "Segment5" cols=3 "Start residue" "End residue" "Segid" +} -{===>} c6sym_sta1_1=""; -{===>} c6sym_end1_1=""; -{===>} c6sym_seg1_1=""; -{===>} c6sym_sta2_1=""; -{===>} c6sym_end2_1=""; -{===>} c6sym_seg2_1=""; -{===>} c6sym_sta3_1=""; -{===>} c6sym_end3_1=""; -{===>} c6sym_seg3_1=""; -{===>} c6sym_sta4_1=""; -{===>} c6sym_end4_1=""; -{===>} c6sym_seg4_1=""; -{===>} c6sym_sta5_1=""; -{===>} c6sym_end5_1=""; -{===>} c6sym_seg5_1=""; -{===>} c6sym_sta6_1=""; -{===>} c6sym_end6_1=""; -{===>} c6sym_seg6_1=""; - - -{=========================== Distance restraints ========================} -{* Turn on/off and energy constants for distance restraints *} -{+ table: rows=3 "distances" "AIR (ambig)" "hbonds" cols=6 "firstIteration" "lastIteration" "hot" "cool1" "cool2" "cool3"+} - -{===>} unamb_firstit=0; -{===>} unamb_lastit=2; -{===>} unamb_hot=10; -{===>} unamb_cool1=10; -{===>} unamb_cool2=50; -{===>} unamb_cool3=50; -{===>} amb_firstit=0; -{===>} amb_lastit=2; -{===>} amb_hot=10; -{===>} amb_cool1=10; -{===>} amb_cool2=50; -{===>} amb_cool3=50; -{===>} hbond_firstit=1; -{===>} hbond_lastit=2; -{===>} hbond_hot=10; -{===>} hbond_cool1=10; -{===>} hbond_cool2=50; -{===>} hbond_cool3=50; - -{* Do you want to randomly exclude a fraction of the ambiguous restraints (AIRs)? *} -{+ choice: true false +} -{===>} noecv=true; - -{* Number of partitions for random exclusion (%excluded=100/number of partitions)? *} -{===>} ncvpart=2; - -{* Do you want to use hydrogen bond restraints? *} -{+ choice: true false +} -{===>} hbonds_on=false; - -{* Do you want to define randomly ambiguous interaction restraints from accessible residues? *} -{* Only residues in the defined flexible segments will be considered *} -{* Note that this option is exclusive with any other distance restraints and only for it0 *} -{+ choice: true false +} -{===>} ranair=false; - -{* Do you want to define center of mass (CM) restraints to enforce contact between the molecules? *} -{* Note that these are only active during it0 and it1 *} -{+ choice: true false +} -{===>} cmrest=false; - -{* Define tight CM restraints? *} -{+ choice: true false +} -{===>} cmtight=true; - -{* Force constant for center of mass restraints *} -{===>} kcont=1.0; - -{* Do you want to define surface contact restraints to enforce contact between the molecules? *} -{* Note that these are only active during it0 and it1 *} -{+ choice: true false +} -{===>} surfrest=false; - -{* Force constant for surface contact restraints *} -{===>} ksurf=1.0; - -{ Use automated distance restraints weighting } -{ choice: true false } -air_scaling=false; - -{ Define the number of distance restraints for automated weighting } -tot_unamb=25; -{ Define the number of AIR restraints for automated weighting } -tot_amb=0; - -{ potential shape } -mrswi_hot=0.5; -mrswi_cool1=0.5; -mrswi_cool2=0.5; -mrswi_cool3=0.5; -rswi_hot=0.5; -rswi_cool1=0.5; -rswi_cool2=0.5; -rswi_cool3=0.5; -masy_hot=-1.0; -masy_cool1=-1.0; -masy_cool2=-0.1; -masy_cool3=-0.1; -asy_hot=1.0; -asy_cool1=1.0; -asy_cool2=0.1; -asy_cool3=0.1; - - -{=========================== radius of gyration restraint ============} -{* Turn on/off and energy constants for Rg restraints *} -{* Do you want to define a radius of gyration restraint (e.g. from SAXS)? *} -{+ choice: true false +} -{===>} rgrest=false; - -{* Radius of gyration *} -{===>} rgtarg=17.78; - -{* Force constant for radius of gyration restraint *} -{===>} krg_hot=100.0; -{===>} krg_cool1=100.0; -{===>} krg_cool2=100.0; -{===>} krg_cool3=100.0; - -{* Atom selections for the radius of gyration restraint *} -{===>} rgsele="all"; - - -{======================DNA-RNA restraints ============================} -{* Use DNA/RNA restraints (dna-rna_restraints.def in data/sequence)? *} -{+ choice: true false +} -{===>} dnarest_on=false; - - -{=========================== dihedrals restraints ====================} -{* energy constants *} -{+ table: rows=1 "dihedrals" cols=5 "use?" "hot" "cool1" "cool2" "cool3" +} - -{+ choice: true false +} -{===>} dihedrals_on=false; -{===>} dihedrals_hot=5; -{===>} dihedrals_cool1=5; -{===>} dihedrals_cool2=50; -{===>} dihedrals_cool3=200; - -{* Automatically define backbone dihedral angle restraints from structure? *} -{* Error treshold for restraint violation is defined by error_dih *} -{+ choice: none all alpha alphabeta +} -{+ define the error treshold for the restraint violation +} -{===>} ssdihed=none; -{===>} error_dih=10; - - -{=========================== residual dipolar couplings ======================} - -{* Parameters *} -{+ table: rows=5 "class1" "class2" "class3" "class4" "class5" - cols=25 "type" "firstIt" "lastIt" "Ksani
    (hot)" "Ksani
    (cool1)" "Ksani
    (cool2)" "Ksani
    (cool3)" "R" "D" - "Kvean
    (ini_bor_hot)" "Kvean
    (fin_bor_hot)" - "Kvean
    (ini_bor_cool1)" "Kvean
    (fin_bor_cool1)" - "Kvean
    (ini_bor_cool2)" "Kvean
    (fin_bor_cool2)" - "Kvean
    (ini_bor_cool3)" "Kvean
    (fin_bor_cool3)" - "Kvean
    (ini_cen_hot)" "Kvean
    (fin_cen_hot)" - "Kvean
    (ini_cen_cool1)" "Kvean
    (fin_cen_cool1)" - "Kvean
    (ini_cen_cool2)" "Kvean
    (fin_cen_cool2)" - "Kvean
    (ini_cen_cool3)" "Kvean
    (fin_cen_cool3)"+} - -{* Number of RDC restraint sets *} -{===>} numrdc=0; - -{+ choice: "NO" "SANI" "VANGLE" +} -{===>} rdc_choice_1="NO"; -{===>} rdc_firstIt_1=2; -{===>} rdc_lastIt_1=2; -{===>} rdc_hot_1=0.001; -{===>} rdc_cool1_1=0.02; -{===>} rdc_cool2_1=0.2; -{===>} rdc_cool3_1=0.2; -{===>} rdc_r_1=0.057; -{===>} rdc_d_1=-11.49; -{===>} ini_bor_hot_1=1.0; -{===>} fin_bor_hot_1=10.0; -{===>} ini_bor_cool1_1=10.0; -{===>} fin_bor_cool1_1=40.0; -{===>} ini_bor_cool2_1=40.0; -{===>} fin_bor_cool2_1=40.0; -{===>} ini_bor_cool3_1=40.0; -{===>} fin_bor_cool3_1=40.0; -{===>} ini_cen_hot_1=0.25; -{===>} fin_cen_hot_1=2.5; -{===>} ini_cen_cool1_1=2.5; -{===>} fin_cen_cool1_1=10.0; -{===>} ini_cen_cool2_1=10.0; -{===>} fin_cen_cool2_1=10.0; -{===>} ini_cen_cool3_1=10.0; -{===>} fin_cen_cool3_1=10.0; - -{+ choice: "NO" "SANI" "XRDC" "VANGLE" +} -{===>} rdc_choice_2="NO"; -{===>} rdc_firstIt_2=0; -{===>} rdc_lastIt_2=1; -{===>} rdc_hot_2=0.01; -{===>} rdc_cool1_2=0.2; -{===>} rdc_cool2_2=1.0; -{===>} rdc_cool3_2=1.0; -{===>} rdc_r_2=0.4; -{===>} rdc_d_2=8.0; -{===>} ini_bor_hot_2=1.0; -{===>} fin_bor_hot_2=10.0; -{===>} ini_bor_cool1_2=10.0; -{===>} fin_bor_cool1_2=40.0; -{===>} ini_bor_cool2_2=40.0; -{===>} fin_bor_cool2_2=40.0; -{===>} ini_bor_cool3_2=40.0; -{===>} fin_bor_cool3_2=40.0; -{===>} ini_cen_hot_2=0.25; -{===>} fin_cen_hot_2=2.5; -{===>} ini_cen_cool1_2=2.5; -{===>} fin_cen_cool1_2=10.0; -{===>} ini_cen_cool2_2=10.0; -{===>} fin_cen_cool2_2=10.0; -{===>} ini_cen_cool3_2=10.0; -{===>} fin_cen_cool3_2=10.0; - -{+ choice: "NO" "SANI" "XRDC" "VANGLE" +} -{===>} rdc_choice_3="NO"; -{===>} rdc_firstIt_3=1; -{===>} rdc_lastIt_3=1; -{===>} rdc_hot_3=0.01; -{===>} rdc_cool1_3=0.2; -{===>} rdc_cool2_3=1.0; -{===>} rdc_cool3_3=1.0; -{===>} rdc_r_3=0.4; -{===>} rdc_d_3=8.0; -{===>} ini_bor_hot_3=1.0; -{===>} fin_bor_hot_3=10.0; -{===>} ini_bor_cool1_3=10.0; -{===>} fin_bor_cool1_3=40.0; -{===>} ini_bor_cool2_3=40.0; -{===>} fin_bor_cool2_3=40.0; -{===>} ini_bor_cool3_3=40.0; -{===>} fin_bor_cool3_3=40.0; -{===>} ini_cen_hot_3=0.25; -{===>} fin_cen_hot_3=2.5; -{===>} ini_cen_cool1_3=2.5; -{===>} fin_cen_cool1_3=10.0; -{===>} ini_cen_cool2_3=10.0; -{===>} fin_cen_cool2_3=10.0; -{===>} ini_cen_cool3_3=10.0; -{===>} fin_cen_cool3_3=10.0; - -{+ choice: "NO" "SANI" "XRDC" "VANGLE" +} -{===>} rdc_choice_4="NO"; -{===>} rdc_firstIt_4=0; -{===>} rdc_lastIt_4=2; -{===>} rdc_hot_4=0.1; -{===>} rdc_cool1_4=1.0; -{===>} rdc_cool2_4=1.0; -{===>} rdc_cool3_4=1.0; -{===>} rdc_r_4=0.4; -{===>} rdc_d_4=8.0; -{===>} ini_bor_hot_4=1.0; -{===>} fin_bor_hot_4=10.0; -{===>} ini_bor_cool1_4=10.0; -{===>} fin_bor_cool1_4=40.0; -{===>} ini_bor_cool2_4=40.0; -{===>} fin_bor_cool2_4=40.0; -{===>} ini_bor_cool3_4=40.0; -{===>} fin_bor_cool3_4=40.0; -{===>} ini_cen_hot_4=0.25; -{===>} fin_cen_hot_4=2.5; -{===>} ini_cen_cool1_4=2.5; -{===>} fin_cen_cool1_4=10.0; -{===>} ini_cen_cool2_4=10.0; -{===>} fin_cen_cool2_4=10.0; -{===>} ini_cen_cool3_4=10.0; -{===>} fin_cen_cool3_4=10.0; - -{+ choice: "NO" "SANI" "XRDC" "VANGLE" +} -{===>} rdc_choice_5="NO"; -{===>} rdc_firstIt_5=0; -{===>} rdc_lastIt_5=2; -{===>} rdc_hot_5=0.1; -{===>} rdc_cool1_5=1.0; -{===>} rdc_cool2_5=1.0; -{===>} rdc_cool3_5=1.0; -{===>} rdc_r_5=0.4; -{===>} rdc_d_5=8.0; -{===>} ini_bor_hot_5=1.0; -{===>} fin_bor_hot_5=10.0; -{===>} ini_bor_cool1_5=10.0; -{===>} fin_bor_cool1_5=40.0; -{===>} ini_bor_cool2_5=40.0; -{===>} fin_bor_cool2_5=40.0; -{===>} ini_bor_cool3_5=40.0; -{===>} fin_bor_cool3_5=40.0; -{===>} ini_cen_hot_5=0.25; -{===>} fin_cen_hot_5=2.5; -{===>} ini_cen_cool1_5=2.5; -{===>} fin_cen_cool1_5=10.0; -{===>} ini_cen_cool2_5=10.0; -{===>} fin_cen_cool2_5=10.0; -{===>} ini_cen_cool3_5=10.0; -{===>} fin_cen_cool3_5=10.0; - - -{=========================== pseudo contact shifts ===========================} - -{* Parameters *} -{+ table: rows=10 "class1" "class2" "class3" "class4" "class5" "class6" "class7" "class8" "class9" "class10" - cols=9 "type" "firstIt" "lastIt" "Kpcs
    (hot)" "Kpcs
    (cool1)" "Kpcs
    (cool2)" "Kpcs
    (cool3)" "R" "D" +} - -{* Number of PCS restraint sets *} -{===>} numpcs=0; - -{+ choice: "NO" "XPCS" +} -{===>} pcs_choice_1="NO"; -{===>} pcs_firstIt_1=0; -{===>} pcs_lastIt_1=2; -{===>} pcs_hot_1=100.0; -{===>} pcs_cool1_1=100.0; -{===>} pcs_cool2_1=100.0; -{===>} pcs_cool3_1=100.0; -{===>} pcs_r_1=1000; -{===>} pcs_d_1=10000; - -{+ choice: "NO" "XPCS" +} -{===>} pcs_choice_2="NO"; -{===>} pcs_firstIt_2=0; -{===>} pcs_lastIt_2=2; -{===>} pcs_hot_2=100.0; -{===>} pcs_cool1_2=100.0; -{===>} pcs_cool2_2=100.0; -{===>} pcs_cool3_2=100.0; -{===>} pcs_r_2=1000; -{===>} pcs_d_2=10000; - -{+ choice: "NO" "XPCS" +} -{===>} pcs_choice_3="NO"; -{===>} pcs_firstIt_3=0; -{===>} pcs_lastIt_3=2; -{===>} pcs_hot_3=100.0; -{===>} pcs_cool1_3=100.0; -{===>} pcs_cool2_3=100.0; -{===>} pcs_cool3_3=100.0; -{===>} pcs_r_3=1000; -{===>} pcs_d_3=10000; - -{+ choice: "NO" "XPCS" +} -{===>} pcs_choice_4="NO"; -{===>} pcs_firstIt_4=0; -{===>} pcs_lastIt_4=2; -{===>} pcs_hot_4=100.0; -{===>} pcs_cool1_4=100.0; -{===>} pcs_cool2_4=100.0; -{===>} pcs_cool3_4=100.0; -{===>} pcs_r_4=1000; -{===>} pcs_d_4=10000; - -{+ choice: "NO" "XPCS" +} -{===>} pcs_choice_5="NO"; -{===>} pcs_firstIt_5=0; -{===>} pcs_lastIt_5=2; -{===>} pcs_hot_5=100.0; -{===>} pcs_cool1_5=100.0; -{===>} pcs_cool2_5=100.0; -{===>} pcs_cool3_5=100.0; -{===>} pcs_r_5=1000; -{===>} pcs_d_5=10000; - -{+ choice: "NO" "XPCS" +} -{===>} pcs_choice_6="NO"; -{===>} pcs_firstIt_6=0; -{===>} pcs_lastIt_6=2; -{===>} pcs_hot_6=100.0; -{===>} pcs_cool1_6=100.0; -{===>} pcs_cool2_6=100.0; -{===>} pcs_cool3_6=100.0; -{===>} pcs_r_6=1000; -{===>} pcs_d_6=10000; - -{+ choice: "NO" "XPCS" +} -{===>} pcs_choice_7="NO"; -{===>} pcs_firstIt_7=0; -{===>} pcs_lastIt_7=2; -{===>} pcs_hot_7=100.0; -{===>} pcs_cool1_7=100.0; -{===>} pcs_cool2_7=100.0; -{===>} pcs_cool3_7=100.0; -{===>} pcs_r_7=1000; -{===>} pcs_d_7=10000; - -{+ choice: "NO" "XPCS" +} -{===>} pcs_choice_8="NO"; -{===>} pcs_firstIt_8=0; -{===>} pcs_lastIt_8=2; -{===>} pcs_hot_8=100.0; -{===>} pcs_cool1_8=100.0; -{===>} pcs_cool2_8=100.0; -{===>} pcs_cool3_8=100.0; -{===>} pcs_r_8=1000; -{===>} pcs_d_8=10000; - -{+ choice: "NO" "XPCS" +} -{===>} pcs_choice_9="NO"; -{===>} pcs_firstIt_9=0; -{===>} pcs_lastIt_9=2; -{===>} pcs_hot_9=100.0; -{===>} pcs_cool1_9=100.0; -{===>} pcs_cool2_9=100.0; -{===>} pcs_cool3_9=100.0; -{===>} pcs_r_9=1000; -{===>} pcs_d_9=10000; - - -{+ choice: "NO" "XPCS" +} -{===>} pcs_choice_10="NO"; -{===>} pcs_firstIt_10=0; -{===>} pcs_lastIt_10=2; -{===>} pcs_hot_10=100.0; -{===>} pcs_cool1_10=100.0; -{===>} pcs_cool2_10=100.0; -{===>} pcs_cool3_10=100.0; -{===>} pcs_r_10=1000; -{===>} pcs_d_10=10000; - -{=========================== relaxation data ======================} -{* Parameters *} -{+ table: rows=5 "class1" "class2" "class3" "class4" "class5" - cols=12 "type" "firstIt" "lastIt" "Kdani(hot)" "Kdani(cool1)" "Kdani(cool2)" "Kdani(cool3)" "Correlation time" "D" "R" "H frequency" "N frequency" +} - -{* Number of DANI restraint sets *} -{===>} numdani=0; - -{+ choice: "NO" "DANI" +} -{===>} dan_choice_1="DANI"; -{===>} dan_firstIt_1=0; -{===>} dan_lastIt_1=2; -{===>} dan_hot_1=1; -{===>} dan_cool1_1=5; -{===>} dan_cool2_1=10; -{===>} dan_cool3_1=10; -{===>} dan_tc_1=9.771; -{===>} dan_anis_1=1.557; -{===>} dan_r_1=0.455; -{===>} dan_wh_1=599.91; -{===>} dan_wn_1=60.82; - -{+ choice: "NO" "DANI" +} -{===>} dan_choice_2="NO"; -{===>} dan_firstIt_2=0; -{===>} dan_lastIt_2=1; -{===>} dan_hot_2=1; -{===>} dan_cool1_2=5; -{===>} dan_cool2_2=10; -{===>} dan_cool3_2=10; -{===>} dan_tc_2=9.84; -{===>} dan_anis_2=-1.35; -{===>} dan_r_2=0.308; -{===>} dan_wh_2=599.91; -{===>} dan_wn_2=60.82; - -{+ choice: "NO" "DANI" +} -{===>} dan_choice_3="NO"; -{===>} dan_firstIt_3=1; -{===>} dan_lastIt_3=1; -{===>} dan_hot_3=1; -{===>} dan_cool1_3=5; -{===>} dan_cool2_3=10; -{===>} dan_cool3_3=10; -{===>} dan_tc_3=9.84; -{===>} dan_anis_3=-1.35; -{===>} dan_r_3=0.308; -{===>} dan_wh_3=599.91; -{===>} dan_wn_3=60.82; - -{+ choice: "NO" "DANI" +} -{===>} dan_choice_4="NO"; -{===>} dan_firstIt_4=0; -{===>} dan_lastIt_4=2; -{===>} dan_hot_4=1; -{===>} dan_cool1_4=5; -{===>} dan_cool2_4=10; -{===>} dan_cool3_4=10; -{===>} dan_tc_4=9.84; -{===>} dan_anis_4=-1.35; -{===>} dan_r_4=0.308; -{===>} dan_wh_4=599.91; -{===>} dan_wn_4=60.82; - -{+ choice: "NO" "DANI" +} -{===>} dan_choice_5="NO"; -{===>} dan_firstIt_5=0; -{===>} dan_lastIt_5=2; -{===>} dan_hot_5=1; -{===>} dan_cool1_5=5; -{===>} dan_cool2_5=10; -{===>} dan_cool3_5=10; -{===>} dan_tc_5=9.84; -{===>} dan_anis_5=-1.35; -{===>} dan_r_5=0.308; -{===>} dan_wh_5=599.91; -{===>} dan_wn_5=60.82; - - -{========================== Cryo-EM parameters ============================} - -{* Centroid definitions *} -{+ choice: true false +} -{===>} centroid_rest=false; -{===>} centroid_kscale=50.0; - -{* Placement of centroids in absolute coordinates *} -{===>} xcom_1=12.3; -{===>} ycom_1=0.8; -{===>} zcom_1=9.2; - -{===>} xcom_2=12.7; -{===>} ycom_2=-3.4; -{===>} zcom_2=29.7; - -{===>} xcom_3=0.0; -{===>} ycom_3=0.0; -{===>} zcom_3=0.0; - -{===>} xcom_4=0.0; -{===>} ycom_4=0.0; -{===>} zcom_4=0.0; - -{===>} xcom_5=0.0; -{===>} ycom_5=0.0; -{===>} zcom_5=0.0; - -{===>} xcom_6=0.0; -{===>} ycom_6=0.0; -{===>} zcom_6=0.0; - -{===>} xcom_7=0.0; -{===>} ycom_7=0.0; -{===>} zcom_7=0.0; - -{===>} xcom_8=0.0; -{===>} ycom_8=0.0; -{===>} zcom_8=0.0; - -{===>} xcom_9=0.0; -{===>} ycom_9=0.0; -{===>} zcom_9=0.0; - -{===>} xcom_10=0.0; -{===>} ycom_10=0.0; -{===>} zcom_10=0.0; - -{===>} xcom_11=0.0; -{===>} ycom_11=0.0; -{===>} zcom_11=0.0; - -{===>} xcom_12=0.0; -{===>} ycom_12=0.0; -{===>} zcom_12=0.0; - -{===>} xcom_13=0.0; -{===>} ycom_13=0.0; -{===>} zcom_13=0.0; - -{===>} xcom_14=0.0; -{===>} ycom_14=0.0; -{===>} zcom_14=0.0; - -{===>} xcom_15=0.0; -{===>} ycom_15=0.0; -{===>} zcom_15=0.0; - -{===>} xcom_16=0.0; -{===>} ycom_16=0.0; -{===>} zcom_16=0.0; - -{===>} xcom_17=0.0; -{===>} ycom_17=0.0; -{===>} zcom_17=0.0; - -{===>} xcom_18=0.0; -{===>} ycom_18=0.0; -{===>} zcom_18=0.0; - -{===>} xcom_19=0.0; -{===>} ycom_19=0.0; -{===>} zcom_19=0.0; - -{===>} xcom_20=0.0; -{===>} ycom_20=0.0; -{===>} zcom_20=0.0; - -{* Are the centroid retraints ambiguous *} -{+ choice: true false +} -{===>} ambi_1=false; -{+ choice: true false +} -{===>} ambi_2=false; -{+ choice: true false +} -{===>} ambi_3=false; -{+ choice: true false +} -{===>} ambi_4=false; -{+ choice: true false +} -{===>} ambi_5=false; -{+ choice: true false +} -{===>} ambi_6=false; -{+ choice: true false +} -{===>} ambi_7=false; -{+ choice: true false +} -{===>} ambi_8=false; -{+ choice: true false +} -{===>} ambi_9=false; -{+ choice: true false +} -{===>} ambi_10=false; -{+ choice: true false +} -{===>} ambi_11=false; -{+ choice: true false +} -{===>} ambi_12=false; -{+ choice: true false +} -{===>} ambi_13=false; -{+ choice: true false +} -{===>} ambi_14=false; -{+ choice: true false +} -{===>} ambi_15=false; -{+ choice: true false +} -{===>} ambi_16=false; -{+ choice: true false +} -{===>} ambi_17=false; -{+ choice: true false +} -{===>} ambi_18=false; -{+ choice: true false +} -{===>} ambi_19=false; -{+ choice: true false +} -{===>} ambi_20=false; - -{* Density/XREF restraints *} -{+ choice: true false +} -{===>} em_rest=false; -{===>} em_kscale=15000; -{+ choice: true false +} -{===>} em_it0=true; -{+ choice: true false +} -{===>} em_it1=true; -{+ choice: true false +} -{===>} em_itw=true; - -{* Resolution of data in angstrom *} -{===>} em_resolution=10.0; - -{* Density parameters *} -{* Number of voxels in each dimension *} -{===>} nx=32; -{===>} ny=32; -{===>} nz=32; - -{* Length of each dimension in angstrom *} -{===>} xlength=80.0; -{===>} ylength=80.0; -{===>} zlength=80.0; - -{* Cryo-EM scoring weights *} -{===>} w_lcc_0=-400.0; -{===>} w_lcc_1=-10000.0; -{===>} w_lcc_2=-10000.0; - -{===================== topology and parameter files ======================} - -{* topology file for molecule 1 *} -{===>} prot_top_mol1="protein-allhdg5-4.top"; -{* topology file for molecule 2 *} -{===>} prot_top_mol2="protein-allhdg5-4.top"; -{* topology file for molecule 3 *} -{===>} prot_top_mol3="protein-allhdg5-4.top"; -{* topology file for molecule 4 *} -{===>} prot_top_mol4="protein-allhdg5-4.top"; -{* topology file for molecule 5 *} -{===>} prot_top_mol5="protein-allhdg5-4.top"; -{* topology file for molecule 6 *} -{===>} prot_top_mol6="protein-allhdg5-4.top"; -{* topology file for molecule 7 *} -{===>} prot_top_mol7="protein-allhdg5-4.top"; -{* topology file for molecule 8 *} -{===>} prot_top_mol8="protein-allhdg5-4.top"; -{* topology file for molecule 9 *} -{===>} prot_top_mol9="protein-allhdg5-4.top"; -{* topology file for molecule 10 *} -{===>} prot_top_mol10="protein-allhdg5-4.top"; -{* topology file for molecule 11 *} -{===>} prot_top_mol11="protein-allhdg5-4.top"; -{* topology file for molecule 12 *} -{===>} prot_top_mol12="protein-allhdg5-4.top"; -{* topology file for molecule 13 *} -{===>} prot_top_mol13="protein-allhdg5-4.top"; -{* topology file for molecule 14 *} -{===>} prot_top_mol14="protein-allhdg5-4.top"; -{* topology file for molecule 15 *} -{===>} prot_top_mol15="protein-allhdg5-4.top"; -{* topology file for molecule 16 *} -{===>} prot_top_mol16="protein-allhdg5-4.top"; -{* topology file for molecule 17 *} -{===>} prot_top_mol17="protein-allhdg5-4.top"; -{* topology file for molecule 18 *} -{===>} prot_top_mol18="protein-allhdg5-4.top"; -{* topology file for molecule 19 *} -{===>} prot_top_mol19="protein-allhdg5-4.top"; -{* topology file for molecule 20 *} -{===>} prot_top_mol20="protein-allhdg5-4.top"; - -{* linkage file for molecule 1 *} -{===>} prot_link_mol1="protein-allhdg5-4-noter.link"; -{* linkage file for molecule 2 *} -{===>} prot_link_mol2="protein-allhdg5-4-noter.link"; -{* linkage file for molecule 3 *} -{===>} prot_link_mol3="protein-allhdg5-4-noter.link"; -{* linkage file for molecule 4 *} -{===>} prot_link_mol4="protein-allhdg5-4-noter.link"; -{* linkage file for molecule 5 *} -{===>} prot_link_mol5="protein-allhdg5-4-noter.link"; -{* linkage file for molecule 6 *} -{===>} prot_link_mol6="protein-allhdg5-4-noter.link"; -{* linkage file for molecule 7 *} -{===>} prot_link_mol7="protein-allhdg5-4-noter.link"; -{* linkage file for molecule 8 *} -{===>} prot_link_mol8="protein-allhdg5-4-noter.link"; -{* linkage file for molecule 9 *} -{===>} prot_link_mol9="protein-allhdg5-4-noter.link"; -{* linkage file for molecule 10 *} -{===>} prot_link_mol10="protein-allhdg5-4-noter.link"; -{* linkage file for molecule 11 *} -{===>} prot_link_mol11="protein-allhdg5-4-noter.link"; -{* linkage file for molecule 12 *} -{===>} prot_link_mol12="protein-allhdg5-4-noter.link"; -{* linkage file for molecule 13 *} -{===>} prot_link_mol13="protein-allhdg5-4-noter.link"; -{* linkage file for molecule 14 *} -{===>} prot_link_mol14="protein-allhdg5-4-noter.link"; -{* linkage file for molecule 15 *} -{===>} prot_link_mol15="protein-allhdg5-4-noter.link"; -{* linkage file for molecule 16 *} -{===>} prot_link_mol16="protein-allhdg5-4-noter.link"; -{* linkage file for molecule 17 *} -{===>} prot_link_mol17="protein-allhdg5-4-noter.link"; -{* linkage file for molecule 18 *} -{===>} prot_link_mol18="protein-allhdg5-4-noter.link"; -{* linkage file for molecule 19 *} -{===>} prot_link_mol19="protein-allhdg5-4-noter.link"; -{* linkage file for molecule 20 *} -{===>} prot_link_mol20="protein-allhdg5-4-noter.link"; - -{* energy parameter file for molecule 1 *} -{===>} prot_par_mol1="protein-allhdg5-4.param"; -{* energy parameter file for molecule 2 *} -{===>} prot_par_mol2="protein-allhdg5-4.param"; -{* energy parameter file for molecule 3 *} -{===>} prot_par_mol3="protein-allhdg5-4.param"; -{* energy parameter file for molecule 4 *} -{===>} prot_par_mol4="protein-allhdg5-4.param"; -{* energy parameter file for molecule 5 *} -{===>} prot_par_mol5="protein-allhdg5-4.param"; -{* energy parameter file for molecule 6 *} -{===>} prot_par_mol6="protein-allhdg5-4.param"; -{* energy parameter file for molecule 7 *} -{===>} prot_par_mol7="protein-allhdg5-4.param"; -{* energy parameter file for molecule 8 *} -{===>} prot_par_mol8="protein-allhdg5-4.param"; -{* energy parameter file for molecule 9 *} -{===>} prot_par_mol9="protein-allhdg5-4.param"; -{* energy parameter file for molecule 10 *} -{===>} prot_par_mol10="protein-allhdg5-4.param"; -{* energy parameter file for molecule 11 *} -{===>} prot_par_mol11="protein-allhdg5-4.param"; -{* energy parameter file for molecule 12 *} -{===>} prot_par_mol12="protein-allhdg5-4.param"; -{* energy parameter file for molecule 13 *} -{===>} prot_par_mol13="protein-allhdg5-4.param"; -{* energy parameter file for molecule 14 *} -{===>} prot_par_mol14="protein-allhdg5-4.param"; -{* energy parameter file for molecule 15 *} -{===>} prot_par_mol15="protein-allhdg5-4.param"; -{* energy parameter file for molecule 16 *} -{===>} prot_par_mol16="protein-allhdg5-4.param"; -{* energy parameter file for molecule 17 *} -{===>} prot_par_mol17="protein-allhdg5-4.param"; -{* energy parameter file for molecule 18 *} -{===>} prot_par_mol18="protein-allhdg5-4.param"; -{* energy parameter file for molecule 19 *} -{===>} prot_par_mol19="protein-allhdg5-4.param"; -{* energy parameter file for molecule 20 *} -{===>} prot_par_mol20="protein-allhdg5-4.param"; - -{* type of non-bonded parameters *} -{* specify the type of non-bonded interaction *} -{+ choice: "PROLSQ" "PARMALLH6" "PARALLHDG" "OPLSX" +} -{===>} par_nonbonded="OPLSX"; - -{============coarse graining topology and parameter files ==================} - -{* topology file for molecule 1 *} -{===>} prot_cg_top_mol1="protein-CG-Martini-2-2.top"; -{* topology file for molecule 2 *} -{===>} prot_cg_top_mol2="protein-CG-Martini-2-2.top"; -{* topology file for molecule 3 *} -{===>} prot_cg_top_mol3="protein-CG-Martini-2-2.top"; -{* topology file for molecule 4 *} -{===>} prot_cg_top_mol4="protein-CG-Martini-2-2.top"; -{* topology file for molecule 5 *} -{===>} prot_cg_top_mol5="protein-CG-Martini-2-2.top"; -{* topology file for molecule 6 *} -{===>} prot_cg_top_mol6="protein-CG-Martini-2-2.top"; -{* topology file for molecule 7 *} -{===>} prot_cg_top_mol7="protein-CG-Martini-2-2.top"; -{* topology file for molecule 8 *} -{===>} prot_cg_top_mol8="protein-CG-Martini-2-2.top"; -{* topology file for molecule 9 *} -{===>} prot_cg_top_mol9="protein-CG-Martini-2-2.top"; -{* topology file for molecule 10 *} -{===>} prot_cg_top_mol10="protein-CG-Martini-2-2.top"; -{* topology file for molecule 11 *} -{===>} prot_cg_top_mol11="protein-CG-Martini-2-2.top"; -{* topology file for molecule 12 *} -{===>} prot_cg_top_mol12="protein-CG-Martini-2-2.top"; -{* topology file for molecule 13 *} -{===>} prot_cg_top_mol13="protein-CG-Martini-2-2.top"; -{* topology file for molecule 14 *} -{===>} prot_cg_top_mol14="protein-CG-Martini-2-2.top"; -{* topology file for molecule 15 *} -{===>} prot_cg_top_mol15="protein-CG-Martini-2-2.top"; -{* topology file for molecule 16 *} -{===>} prot_cg_top_mol16="protein-CG-Martini-2-2.top"; -{* topology file for molecule 17 *} -{===>} prot_cg_top_mol17="protein-CG-Martini-2-2.top"; -{* topology file for molecule 18 *} -{===>} prot_cg_top_mol18="protein-CG-Martini-2-2.top"; -{* topology file for molecule 19 *} -{===>} prot_cg_top_mol19="protein-CG-Martini-2-2.top"; -{* topology file for molecule 20 *} -{===>} prot_cg_top_mol20="protein-CG-Martini-2-2.top"; - -{* linkage file for molecule 1 *} -{===>} prot_cg_link_mol1="protein-CG-Martini-2-2.link"; -{* linkage file for molecule 2 *} -{===>} prot_cg_link_mol2="protein-CG-Martini-2-2.link"; -{* linkage file for molecule 3 *} -{===>} prot_cg_link_mol3="protein-CG-Martini-2-2.link"; -{* linkage file for molecule 4 *} -{===>} prot_cg_link_mol4="protein-CG-Martini-2-2.link"; -{* linkage file for molecule 5 *} -{===>} prot_cg_link_mol5="protein-CG-Martini-2-2.link"; -{* linkage file for molecule 6 *} -{===>} prot_cg_link_mol6="protein-CG-Martini-2-2.link"; -{* linkage file for molmolecule 7 *} -{===>} prot_cg_link_mol7="protein-CG-Martini-2-2.link"; -{* linkage file for molecule 8 *} -{===>} prot_cg_link_mol8="protein-CG-Martini-2-2.link"; -{* linkage file for molecule 9 *} -{===>} prot_cg_link_mol9="protein-CG-Martini-2-2.link"; -{* linkage file for molecule 10 *} -{===>} prot_cg_link_mol10="protein-CG-Martini-2-2.link"; -{* linkage file for molecule 11 *} -{===>} prot_cg_link_mol11="protein-CG-Martini-2-2.link"; -{* linkage file for molecule 12 *} -{===>} prot_cg_link_mol12="protein-CG-Martini-2-2.link"; -{* linkage file for molecule 13 *} -{===>} prot_cg_link_mol13="protein-CG-Martini-2-2.link"; -{* linkage file for molecule 14 *} -{===>} prot_cg_link_mol14="protein-CG-Martini-2-2.link"; -{* linkage file for molecule 15 *} -{===>} prot_cg_link_mol15="protein-CG-Martini-2-2.link"; -{* linkage file for molecule 16 *} -{===>} prot_cg_link_mol16="protein-CG-Martini-2-2.link"; -{* linkage file for molecule 17 *} -{===>} prot_cg_link_mol17="protein-CG-Martini-2-2.link"; -{* linkage file for molecule 18 *} -{===>} prot_cg_link_mol18="protein-CG-Martini-2-2.link"; -{* linkage file for molecule 19 *} -{===>} prot_cg_link_mol19="protein-CG-Martini-2-2.link"; -{* linkage file for molecule 20 *} -{===>} prot_cg_link_mol20="protein-CG-Martini-2-2.link"; - -{* energy parameter file for molecule 1 *} -{===>} prot_cg_par_mol1="protein-CG-Martini-2-2.param"; -{* energy parameter file for molecule 2 *} -{===>} prot_cg_par_mol2="protein-CG-Martini-2-2.param"; -{* energy parameter file for molecule 3 *} -{===>} prot_cg_par_mol3="protein-CG-Martini-2-2.param"; -{* energy parameter file for molecule 4 *} -{===>} prot_cg_par_mol4="protein-CG-Martini-2-2.param"; -{* energy parameter file for molecule 5 *} -{===>} prot_cg_par_mol5="protein-CG-Martini-2-2.param"; -{* energy parameter file for molecule 6 *} -{===>} prot_cg_par_mol6="protein-CG-Martini-2-2.param"; -{* energy parameter file for molecule 7 *} -{===>} prot_cg_par_mol7="protein-CG-Martini-2-2.param"; -{* energy parameter file for molecule 8 *} -{===>} prot_cg_par_mol8="protein-CG-Martini-2-2.param"; -{* energy parameter file for molecule 9 *} -{===>} prot_cg_par_mol9="protein-CG-Martini-2-2.param"; -{* energy parameter file for molecule 10 *} -{===>} prot_cg_par_mol10="protein-CG-Martini-2-2.param"; -{* energy parameter file for molecule 11 *} -{===>} prot_cg_par_mol11="protein-CG-Martini-2-2.param"; -{* energy parameter file for molecule 12 *} -{===>} prot_cg_par_mol12="protein-CG-Martini-2-2.param"; -{* energy parameter file for molecule 13 *} -{===>} prot_cg_par_mol13="protein-CG-Martini-2-2.param"; -{* energy parameter file for molecule 14 *} -{===>} prot_cg_par_mol14="protein-CG-Martini-2-2.param"; -{* energy parameter file for molecule 15 *} -{===>} prot_cg_par_mol15="protein-CG-Martini-2-2.param"; -{* energy parameter file for molecule 16 *} -{===>} prot_cg_par_mol16="protein-CG-Martini-2-2.param"; -{* energy parameter file for molecule 17 *} -{===>} prot_cg_par_mol17="protein-CG-Martini-2-2.param"; -{* energy parameter file for molecule 18 *} -{===>} prot_cg_par_mol18="protein-CG-Martini-2-2.param"; -{* energy parameter file for molecule 19 *} -{===>} prot_cg_par_mol19="protein-CG-Martini-2-2.param"; -{* energy parameter file for molecule 20 *} -{===>} prot_cg_par_mol20="protein-CG-Martini-2-2.param"; - - -{===================== energy and interaction parameters ==================} - -{ Do you want to include dihedral angle energy terms? } -{ choice: true false } -dihedflag=true; - -{* Do you want to include the electrostatic energy term for docking? *} -{* Note that it will be automatically included in the solvent refinement *} - -{* Include electrostatic during rigid body docking (it0)? *} -{+ choice: true false +} -{===>} elecflag_0=true; - -{* Give the epsilon constant for the electrostatic energy term in it0 *} -{===>} epsilon_0=10.0; - -{* Use constant (cdie) or distance-dependent (rdie) dielectric in it0? *} -{+ choice: cdie rdie +} -{===>} dielec_0=rdie; - -{* Include electrostatic during semi-flexible SA (it1)? *} -{+ choice: true false +} -{===>} elecflag_1=true; - -{* Give the epsilon constant for the electrostatic energy term in it1 *} -{===>} epsilon_1=1.0; - -{* Use constant (cdie) or distance-dependent (rdie) dielectric in it0? *} -{+ choice: cdie rdie +} -{===>} dielec_1=rdie; - -{* Scaling of intermolecular interactions for rigid body EM*} -{===>} inter_rigid=1.0; - -{* Scaling of intermolecular interactions for semi-flexible SA*} -{+ table: rows=3 "Rigid body dynamic " "SA with flexible side-chains (cool2)" "SA with flexible backbone and side-chains (cool3)" - cols=2 "Init value" "Final value" +} -{===>} init_rigid=0.001; -{===>} fin_rigid=0.001; -{===>} init_cool2=0.001; -{===>} fin_cool2=1.0; -{===>} init_cool3=0.05; -{===>} fin_cool3=1.0; - -{* Interaction matrix for non-bonded interactions*} -{+ table: rows=6 "Mol 1" "Mol 2" "Mol 3" "Mol 4" "Mol 5" "Mol 6" "Mol 7" "Mol 8" "Mol 9" Mol 10" "Mol 11" Mol 12" "Mol 13" "Mol 14" "Mol 15" "Mol 16" "Mol 17" "Mol 18" "Mol 19" "Mol 20" - cols=6 "Mol 1" "Mol 2" "Mol 3" "Mol 4" "Mol 5" "Mol 6" "Mol 7" "Mol 8" "Mol 9" Mol 10" "Mol 11" Mol 12" "Mol 13" "Mol 14" "Mol 15" "Mol 16" "Mol 17" "Mol 18" "Mol 19" "Mol 20" +} -{===>} int_1_1=1.0; -{===>} int_1_2=1.0; -{===>} int_1_3=1.0; -{===>} int_1_4=1.0; -{===>} int_1_5=1.0; -{===>} int_1_6=1.0; -{===>} int_1_7=1.0; -{===>} int_1_8=1.0; -{===>} int_1_9=1.0; -{===>} int_1_10=1.0; -{===>} int_1_11=1.0; -{===>} int_1_12=1.0; -{===>} int_1_13=1.0; -{===>} int_1_14=1.0; -{===>} int_1_15=1.0; -{===>} int_1_16=1.0; -{===>} int_1_17=1.0; -{===>} int_1_18=1.0; -{===>} int_1_19=1.0; -{===>} int_1_20=1.0; -{===>} int_2_1="N.A."; -{===>} int_2_2=1.0; -{===>} int_2_3=1.0; -{===>} int_2_4=1.0; -{===>} int_2_5=1.0; -{===>} int_2_6=1.0; -{===>} int_2_7=1.0; -{===>} int_2_8=1.0; -{===>} int_2_9=1.0; -{===>} int_2_10=1.0; -{===>} int_2_11=1.0; -{===>} int_2_12=1.0; -{===>} int_2_13=1.0; -{===>} int_2_14=1.0; -{===>} int_2_15=1.0; -{===>} int_2_16=1.0; -{===>} int_2_17=1.0; -{===>} int_2_18=1.0; -{===>} int_2_19=1.0; -{===>} int_2_20=1.0; -{===>} int_3_1="N.A."; -{===>} int_3_2="N.A."; -{===>} int_3_3=1.0; -{===>} int_3_4=1.0; -{===>} int_3_5=1.0; -{===>} int_3_6=1.0; -{===>} int_3_7=1.0; -{===>} int_3_8=1.0; -{===>} int_3_9=1.0; -{===>} int_3_10=1.0; -{===>} int_3_11=1.0; -{===>} int_3_12=1.0; -{===>} int_3_13=1.0; -{===>} int_3_14=1.0; -{===>} int_3_15=1.0; -{===>} int_3_16=1.0; -{===>} int_3_17=1.0; -{===>} int_3_18=1.0; -{===>} int_3_19=1.0; -{===>} int_3_20=1.0; -{===>} int_4_1="N.A."; -{===>} int_4_2="N.A."; -{===>} int_4_3="N.A."; -{===>} int_4_4=1.0; -{===>} int_4_5=1.0; -{===>} int_4_6=1.0; -{===>} int_4_7=1.0; -{===>} int_4_8=1.0; -{===>} int_4_9=1.0; -{===>} int_4_10=1.0; -{===>} int_4_11=1.0; -{===>} int_4_12=1.0; -{===>} int_4_13=1.0; -{===>} int_4_14=1.0; -{===>} int_4_15=1.0; -{===>} int_4_16=1.0; -{===>} int_4_17=1.0; -{===>} int_4_18=1.0; -{===>} int_4_19=1.0; -{===>} int_4_20=1.0; -{===>} int_5_1="N.A."; -{===>} int_5_2="N.A."; -{===>} int_5_3="N.A."; -{===>} int_5_4="N.A."; -{===>} int_5_5=1.0; -{===>} int_5_6=1.0; -{===>} int_5_7=1.0; -{===>} int_5_8=1.0; -{===>} int_5_9=1.0; -{===>} int_5_10=1.0; -{===>} int_5_11=1.0; -{===>} int_5_12=1.0; -{===>} int_5_13=1.0; -{===>} int_5_14=1.0; -{===>} int_5_15=1.0; -{===>} int_5_16=1.0; -{===>} int_5_17=1.0; -{===>} int_5_18=1.0; -{===>} int_5_19=1.0; -{===>} int_5_20=1.0; -{===>} int_6_1="N.A."; -{===>} int_6_2="N.A."; -{===>} int_6_3="N.A."; -{===>} int_6_4="N.A."; -{===>} int_6_5="N.A."; -{===>} int_6_6=1.0; -{===>} int_6_7=1.0; -{===>} int_6_8=1.0; -{===>} int_6_9=1.0; -{===>} int_6_10=1.0; -{===>} int_6_11=1.0; -{===>} int_6_12=1.0; -{===>} int_6_13=1.0; -{===>} int_6_14=1.0; -{===>} int_6_15=1.0; -{===>} int_6_16=1.0; -{===>} int_6_17=1.0; -{===>} int_6_18=1.0; -{===>} int_6_19=1.0; -{===>} int_6_20=1.0; -{===>} int_7_1="N.A."; -{===>} int_7_2="N.A."; -{===>} int_7_3="N.A."; -{===>} int_7_4="N.A."; -{===>} int_7_5="N.A."; -{===>} int_7_6="N.A."; -{===>} int_7_7=1.0; -{===>} int_7_8=1.0; -{===>} int_7_9=1.0; -{===>} int_7_10=1.0; -{===>} int_7_11=1.0; -{===>} int_7_12=1.0; -{===>} int_7_13=1.0; -{===>} int_7_14=1.0; -{===>} int_7_15=1.0; -{===>} int_7_16=1.0; -{===>} int_7_17=1.0; -{===>} int_7_18=1.0; -{===>} int_7_19=1.0; -{===>} int_7_20=1.0; -{===>} int_8_1="N.A."; -{===>} int_8_2="N.A."; -{===>} int_8_3="N.A."; -{===>} int_8_4="N.A."; -{===>} int_8_5="N.A."; -{===>} int_8_6="N.A."; -{===>} int_8_7="N.A."; -{===>} int_8_8=1.0; -{===>} int_8_9=1.0; -{===>} int_8_10=1.0; -{===>} int_8_11=1.0; -{===>} int_8_12=1.0; -{===>} int_8_13=1.0; -{===>} int_8_14=1.0; -{===>} int_8_15=1.0; -{===>} int_8_16=1.0; -{===>} int_8_17=1.0; -{===>} int_8_18=1.0; -{===>} int_8_19=1.0; -{===>} int_8_20=1.0; -{===>} int_9_1="N.A."; -{===>} int_9_2="N.A."; -{===>} int_9_3="N.A."; -{===>} int_9_4="N.A."; -{===>} int_9_5="N.A."; -{===>} int_9_6="N.A."; -{===>} int_9_7="N.A."; -{===>} int_9_8="N.A."; -{===>} int_9_9=1.0; -{===>} int_9_10=1.0; -{===>} int_9_11=1.0; -{===>} int_9_12=1.0; -{===>} int_9_13=1.0; -{===>} int_9_14=1.0; -{===>} int_9_15=1.0; -{===>} int_9_16=1.0; -{===>} int_9_17=1.0; -{===>} int_9_18=1.0; -{===>} int_9_19=1.0; -{===>} int_9_20=1.0; -{===>} int_10_1="N.A."; -{===>} int_10_2="N.A."; -{===>} int_10_3="N.A."; -{===>} int_10_4="N.A."; -{===>} int_10_5="N.A."; -{===>} int_10_6="N.A."; -{===>} int_10_7="N.A."; -{===>} int_10_8="N.A."; -{===>} int_10_9="N.A."; -{===>} int_10_10=1.0; -{===>} int_10_11=1.0; -{===>} int_10_12=1.0; -{===>} int_10_13=1.0; -{===>} int_10_14=1.0; -{===>} int_10_15=1.0; -{===>} int_10_16=1.0; -{===>} int_10_17=1.0; -{===>} int_10_18=1.0; -{===>} int_10_19=1.0; -{===>} int_10_20=1.0; -{===>} int_11_1="N.A."; -{===>} int_11_2="N.A."; -{===>} int_11_3="N.A."; -{===>} int_11_4="N.A."; -{===>} int_11_5="N.A."; -{===>} int_11_6="N.A."; -{===>} int_11_7="N.A."; -{===>} int_11_8="N.A."; -{===>} int_11_9="N.A."; -{===>} int_11_10="N.A."; -{===>} int_11_11=1.0; -{===>} int_11_12=1.0; -{===>} int_11_13=1.0; -{===>} int_11_14=1.0; -{===>} int_11_15=1.0; -{===>} int_11_16=1.0; -{===>} int_11_17=1.0; -{===>} int_11_18=1.0; -{===>} int_11_19=1.0; -{===>} int_11_20=1.0; -{===>} int_12_1="N.A."; -{===>} int_12_2="N.A."; -{===>} int_12_3="N.A."; -{===>} int_12_4="N.A."; -{===>} int_12_5="N.A."; -{===>} int_12_6="N.A."; -{===>} int_12_7="N.A."; -{===>} int_12_8="N.A."; -{===>} int_12_9="N.A."; -{===>} int_12_10="N.A."; -{===>} int_12_11="N.A."; -{===>} int_12_12=1.0; -{===>} int_12_13=1.0; -{===>} int_12_14=1.0; -{===>} int_12_15=1.0; -{===>} int_12_16=1.0; -{===>} int_12_17=1.0; -{===>} int_12_18=1.0; -{===>} int_12_19=1.0; -{===>} int_12_20=1.0; -{===>} int_13_1="N.A."; -{===>} int_13_2="N.A."; -{===>} int_13_3="N.A."; -{===>} int_13_4="N.A."; -{===>} int_13_5="N.A."; -{===>} int_13_6="N.A."; -{===>} int_13_7="N.A."; -{===>} int_13_8="N.A."; -{===>} int_13_9="N.A."; -{===>} int_13_10="N.A."; -{===>} int_13_11="N.A."; -{===>} int_13_12="N.A."; -{===>} int_13_13=1.0; -{===>} int_13_14=1.0; -{===>} int_13_15=1.0; -{===>} int_13_16=1.0; -{===>} int_13_17=1.0; -{===>} int_13_18=1.0; -{===>} int_13_19=1.0; -{===>} int_13_20=1.0; -{===>} int_14_1="N.A."; -{===>} int_14_2="N.A."; -{===>} int_14_3="N.A."; -{===>} int_14_4="N.A."; -{===>} int_14_5="N.A."; -{===>} int_14_6="N.A."; -{===>} int_14_7="N.A."; -{===>} int_14_8="N.A."; -{===>} int_14_9="N.A."; -{===>} int_14_10="N.A."; -{===>} int_14_11="N.A."; -{===>} int_14_12="N.A."; -{===>} int_14_13="N.A."; -{===>} int_14_14=1.0; -{===>} int_14_15=1.0; -{===>} int_14_16=1.0; -{===>} int_14_17=1.0; -{===>} int_14_18=1.0; -{===>} int_14_19=1.0; -{===>} int_14_20=1.0; -{===>} int_15_2="N.A."; -{===>} int_15_3="N.A."; -{===>} int_15_4="N.A."; -{===>} int_15_5="N.A."; -{===>} int_15_6="N.A."; -{===>} int_15_7="N.A."; -{===>} int_15_8="N.A."; -{===>} int_15_9="N.A."; -{===>} int_15_10="N.A."; -{===>} int_15_11="N.A."; -{===>} int_15_12="N.A."; -{===>} int_15_13="N.A."; -{===>} int_15_14="N.A."; -{===>} int_15_15=1.0; -{===>} int_15_16=1.0; -{===>} int_15_17=1.0; -{===>} int_15_18=1.0; -{===>} int_15_19=1.0; -{===>} int_15_20=1.0; -{===>} int_16_1="N.A."; -{===>} int_16_2="N.A."; -{===>} int_16_3="N.A."; -{===>} int_16_4="N.A."; -{===>} int_16_5="N.A."; -{===>} int_16_6="N.A."; -{===>} int_16_7="N.A."; -{===>} int_16_8="N.A."; -{===>} int_16_9="N.A."; -{===>} int_16_10="N.A."; -{===>} int_16_11="N.A."; -{===>} int_16_12="N.A."; -{===>} int_16_13="N.A."; -{===>} int_16_14="N.A."; -{===>} int_16_15="N.A."; -{===>} int_16_16=1.0; -{===>} int_16_17=1.0; -{===>} int_16_18=1.0; -{===>} int_16_19=1.0; -{===>} int_16_20=1.0; -{===>} int_17_1="N.A."; -{===>} int_17_2="N.A."; -{===>} int_17_3="N.A."; -{===>} int_17_4="N.A."; -{===>} int_17_5="N.A."; -{===>} int_17_6="N.A."; -{===>} int_17_7="N.A."; -{===>} int_17_8="N.A."; -{===>} int_17_9="N.A."; -{===>} int_17_10="N.A."; -{===>} int_17_11="N.A."; -{===>} int_17_12="N.A."; -{===>} int_17_13="N.A."; -{===>} int_17_14="N.A."; -{===>} int_17_15="N.A."; -{===>} int_17_16="N.A."; -{===>} int_17_17=1.0; -{===>} int_17_18=1.0; -{===>} int_17_19=1.0; -{===>} int_17_20=1.0; -{===>} int_18_1="N.A."; -{===>} int_18_2="N.A."; -{===>} int_18_3="N.A."; -{===>} int_18_4="N.A."; -{===>} int_18_5="N.A."; -{===>} int_18_6="N.A."; -{===>} int_18_7="N.A."; -{===>} int_18_8="N.A."; -{===>} int_18_9="N.A."; -{===>} int_18_10="N.A."; -{===>} int_18_11="N.A."; -{===>} int_18_12="N.A."; -{===>} int_18_13="N.A."; -{===>} int_18_14="N.A."; -{===>} int_18_15="N.A."; -{===>} int_18_16="N.A."; -{===>} int_18_17="N.A."; -{===>} int_18_18=1.0; -{===>} int_18_19=1.0; -{===>} int_18_20=1.0; -{===>} int_19_1="N.A."; -{===>} int_19_2="N.A."; -{===>} int_19_3="N.A."; -{===>} int_19_4="N.A."; -{===>} int_19_5="N.A."; -{===>} int_19_6="N.A."; -{===>} int_19_7="N.A."; -{===>} int_19_8="N.A."; -{===>} int_19_9="N.A."; -{===>} int_19_10="N.A."; -{===>} int_19_11="N.A."; -{===>} int_19_12="N.A."; -{===>} int_19_13="N.A."; -{===>} int_19_14="N.A."; -{===>} int_19_15="N.A."; -{===>} int_19_16="N.A."; -{===>} int_19_17="N.A."; -{===>} int_19_18="N.A."; -{===>} int_19_19=1.0; -{===>} int_19_20=1.0; -{===>} int_20_1="N.A."; -{===>} int_20_2="N.A."; -{===>} int_20_3="N.A."; -{===>} int_20_4="N.A."; -{===>} int_20_5="N.A."; -{===>} int_20_6="N.A."; -{===>} int_20_7="N.A."; -{===>} int_20_8="N.A."; -{===>} int_20_9="N.A."; -{===>} int_20_10="N.A."; -{===>} int_20_11="N.A."; -{===>} int_20_12="N.A."; -{===>} int_20_13="N.A."; -{===>} int_20_14="N.A."; -{===>} int_20_15="N.A."; -{===>} int_20_16="N.A."; -{===>} int_20_17="N.A."; -{===>} int_20_18="N.A."; -{===>} int_20_19="N.A."; -{===>} int_20_20=1.0; - -{===================== Number of structures to dock =======================} -{* Setting for the rigid-body (it0) and semi-flexible refiment (it1) *} - -{* number of structures for rigid body docking *} -{===>} structures_0=1000; - keepstruct_0=&structures_0; -{* number of structures for refinement *} -{===>} structures_1=200; - keepstruct_1=&structures_1; - keepstruct_2=&structures_1; -{* number of structures to be analysed*} -{===>} anastruc_1=200; - anastruc_0=&anastruc_1; - anastruc_2=&anastruc_1; - -{* Sampling of symmetry related solutions *} - -{* Sample 180 degrees rotated solutions during rigid body EM? *} -{+ choice: true false +} -{===>} rotate180_it0=true; - -{* Sample 180 degrees rotated solutions during semi-flexible SA?*} -{+ choice: true false +} -{===>} rotate180_it1=false; - - -{=========================== DOCKING protocol =============================} -{* Cross-dock all combinations in the ensembles of starting structures? *} -{* Turn off this option if you only want to dock structure 1 of ensemble A *} -{* to structure 1 of ensemble B, structure 2 to structure 2, etc. *} -{+ choice: true false +} -{===>} crossdock=true; - -{* Randomize starting orientations? *} -{+ choice: true false +} -{===>} randorien=true; - -{* Expand starting orientations? *} -{+ choice: true false +} -{===>} expand=false; - -{* Expansion percentage *} -{===>} expansion=0.4; - -{* Random rotation angle *} -{===>} randangle=6; - -{* Rebuild missing atoms in the context of the complex? (refinement mode) *} -{+ choice: true false +} -{===>} rebuildcplx=false; - -{* Perform initial rigid body minimisation? *} -{+ choice: true false +} -{===>} rigidmini=true; - -{* Allow translation in rigid body minimisation? *} -{+ choice: true false +} -{===>} rigidtrans=true; - -{* Number of trials for rigid body minimisation? *} -{===>} ntrials=5; - -{* initial seed for random number generator *} -{* change to get different initial velocities *} -{===>} iniseed=917; - -{* temperature for rigid body high temperature TAD *} -{===>} tadhigh_t=2000; - -{* initial temperature for rigid body first TAD cooling step *} -{===>} tadinit1_t=2000; - -{* final temperature after first cooling step *} -{===>} tadfinal1_t=500; - -{* initial temperature for second TAD cooling step with flexible side-chain at the inferface *} -{===>} tadinit2_t=1000; - -{* finale temperature after second cooling step *} -{===>} tadfinal2_t=50; - -{* initial temperature for third TAD cooling step with fully flexible interface *} -{===>} tadinit3_t=1000; - -{* finale temperature after third cooling step *} -{===>} tadfinal3_t=50; - -{* time step *} -{===>} timestep=0.002; -{* factor for timestep in TAD *} -{===>} tadfactor=8; - -{* Number of EM steps for translational minimisation? *} -{===>} emstepstrans=1000; - -{* number of MD steps for rigid body high temperature TAD *} -{===>} initiosteps=500; - -{* number of MD steps during first rigid body cooling stage *} -{===>} cool1_steps=500; - -{* number of MD steps during second cooling stage with flexible side-chains at interface *} -{===>} cool2_steps=1000; - -{* number of MD steps during third cooling stage with fully flexible interface *} -{===>} cool3_steps=1000; - - -{======================= Solvated rigid body docking=======================} -{* perform solvated docking ? *} -{+ choice: true false +} -{===>} waterdock=false; - -{* which method to use for solvating? *} -{* db: database-based (recommended), restraints: for restrained solvating to amino-acid most often forming -water mediated contacts and blank (""): for uniform waterlayer *} -{+ choice: "db" "restraints" "" +} -{===>} solvate_method="db"; - -{* which propensity database to use? *} -{* statistical: based on an analysis of water-mediated contacts in the PDB, kyte-doolittle: based on the Kyte-Doolittle hydrophobicity scalte *} -{+ choice: "statistical" "kytedoolittle" +} -{===>} db_method="kytedoolittle"; - -{* initial cutoff for restraints solvating method *} -{* all waters further away from a highly occuring water solvated residue will be removed in the generation -of the initial solvation shell *} -{===>} water_restraint_initial=5.0; - -{* cutoff for restraints solvating method *} -{* upper distance limit for defining distance restraints between water and amino-acids often found to be -involved in water-mediated contacts *} -{===>} water_restraint_cutoff=5.0; - -{* force constant for restrainted solvating method *} -{===>} water_restraint_scale=25.0; - -{* fraction of water to keep *} -{* this is the fraction of all interface water after the initial rigid body docking that will be kept -(note that more waters might be removed if the interaction energy is unfavorable *} -{===>} water_tokeep=0.50; - -{* fraction of water around DNA to keep *} -{* this is the fraction of interface water involving DNA phoshpates after the initial rigid body docking that will be kept -(note that more waters might be removed if the interaction energy is unfavorable *} -{===>} dnap_water_tokeep=0.75; - -{* random fraction to be added to the fraction of water to keep *} -{===>} water_randfrac=0.0; - -{* water-protein surface-cutoff *} -{* waters further away than this cutoff distance from any component of the complex will be removed *} -{===>} water_surfcutoff=8.0; - -{* do some water analysis *} -{+ choice: true false +} -{===>} water_analysis=false; - -{* allows translation of water molecules during rigid-body docking, true or false: *} -{+ choice: true false +} -{===>} transwater=true; - -{* number of different initial solvation shells to generate *} -{===>} waterensemble=1; - - -{==================== final explicit solvent refinement ==================} -{* Do you want to refine your docking models in explicit solvent? *} -{+ choice: "yes" "no" +} -{===>} firstwater="yes"; - -{* Build explicit solvent shell? (Can be turned off the large molecules or when morphing CG to AA models) *} -{* Only EM will then be performed *} -{+ choice: true false +} -{===>} solvshell=false; - -{* Which solvent do you want to use? *} -{+ choice: "water" "dmso" +} -{===>} solvent="water"; - -{* number of structures for the explicit solvent refinement *} -{* the n best structures will be refined *} -{===>} waterrefine=200; - structures_2=&waterrefine; - -{* number of steps for heating phase (100, 200, 300K)? *} -{===>} waterheatsteps=100; - -{* number of steps for 300K sampling phase? *} -{===>} watersteps=1250; - -{* number of steps for cooling phase (300, 200, 100K)? *} -{===>} watercoolsteps=500; - -{* write additional PDB files including solvent ? *} -{+ choice: true false +} -{===>} keepwater=false; - - -{================================ Scoring =================================} -{* Settings for the scoring of the docking solutions *} - -{* Define the weights for the various terms for the sorting of structures (scoring) *} -{+ table: rows=15 "Evdw" "Eelec" "Eair" "Erg" "Esani" "Exrdc" "Expcs" "Edani" "Evean" "Ecdih" "Esym" "Ezres" "BSA" "dEint" "Edesolv" - cols=3 "Rigid body EM" "semi-flexible SA" "Water refinement" +} -{===>} w_vdw_0=0.01; -{===>} w_vdw_1=1.0; -{===>} w_vdw_2=1.0; - -{===>} w_elec_0=1.0; -{===>} w_elec_1=1.0; -{===>} w_elec_2=0.2; - -{===>} w_dist_0=0.01; -{===>} w_dist_1=0.1; -{===>} w_dist_2=0.1; - -{===>} w_rg_0=0.1; -{===>} w_rg_1=1.0; -{===>} w_rg_2=1.0; - -{===>} w_sani_0=0.1; -{===>} w_sani_1=0.1; -{===>} w_sani_2=0.1; - -{===>} w_xrdc_0=0.1; -{===>} w_xrdc_1=0.1; -{===>} w_xrdc_2=0.1; - -{===>} w_xpcs_0=0.1; -{===>} w_xpcs_1=0.1; -{===>} w_xpcs_2=0.1; - -{===>} w_dani_0=0.01; -{===>} w_dani_1=0.1; -{===>} w_dani_2=0.1; - -{===>} w_vean_0=0.1; -{===>} w_vean_1=0.1; -{===>} w_vean_2=0.1; - -{===>} w_cdih_0=0.0; -{===>} w_cdih_1=0.0; -{===>} w_cdih_2=0.0; - -{===>} w_sym_0=0.1; -{===>} w_sym_1=0.1; -{===>} w_sym_2=0.1; - -{===>} w_zres_0=0.1; -{===>} w_zres_1=0.1; -{===>} w_zres_2=0.1; - -{===>} w_bsa_0=-0.01; -{===>} w_bsa_1=-0.01; -{===>} w_bsa_2=0.0; - -{===>} w_deint_0=0.0; -{===>} w_deint_1=0.0; -{===>} w_deint_2=0.0; - -{===>} w_desolv_0=1.0; -{===>} w_desolv_1=1.0; -{===>} w_desolv_2=1.0; - -{* It is possible to skip structures in the selection of structure in it0 *} -{* Give for this the number of structures to skip: *} -{===>} skip_struc=0; - - -{======================= analysis and clustering ==========================} -{* Full or limited analysis of results? *} -{+ choice: "full" "cluster" "none" +} -{===>} runana="cluster"; - -{* Cutoff distance (proton-acceptor) to define an hydrogen bond? *} -{===>} dist_hb=2.5; - -{* Cutoff distance (carbon-carbon) to define an hydrophobic contact? *} -{===>} dist_nb=3.9; - -{* Clustering method (RMSD or Fraction of Common Contacts (FCC)) *} -{+ choice: "RMSD" "FCC" +} -{===>} clust_meth="FCC"; - -{* RMSD cutoff for clustering? (Recommended values: RMSD 7.5, FCC 0.60) *} -{===>} clust_cutoff=0.60; - -{* Minimum cluster size? *} -{===>} clust_size=4; - -{* Chain-Agnostic Algorithm (used for FCC clustering in symmetrical complexes) *} -{+ choice: "true" "false" +} -{===>} fcc_ignc=false; - -{======================= final clean-up ===================================} -{* Clean up the run directory after completion (only files for struct #1 are kept) ? *} -{+ choice: true false +} -{===>} cleanup=true; - - -{============================ parallel jobs ===============================} -{* How many nodes do you want to use in parallel? *} -{* leave unused fields blank, make sure that the queues are actually running *} -{+ table: rows=10 "1" "2" "3" "4" "5" "6" "7" "8" "9" "10" - cols=3 "queue command" "cns executable" "number of jobs" +} - -{===>} queue_1="ssub short"; -{===>} cns_exe_1="/home/software/science/cns/cns_solve_1.31-UU/intel-x86_64bit-linux/bin/cns"; -{===>} cpunumber_1=50; - -{===>} queue_2=""; -{===>} cns_exe_2=""; -{===>} cpunumber_2=0; - -{===>} queue_3=""; -{===>} cns_exe_3=""; -{===>} cpunumber_3=0; - -{===>} queue_4=""; -{===>} cns_exe_4=""; -{===>} cpunumber_4=0; - -{===>} queue_5=""; -{===>} cns_exe_5=""; -{===>} cpunumber_5=0; - -{===>} queue_6=""; -{===>} cns_exe_6=""; -{===>} cpunumber_6=0; - -{===>} queue_7=""; -{===>} cns_exe_7=""; -{===>} cpunumber_7=0; - -{===>} queue_8=""; -{===>} cns_exe_8=""; -{===>} cpunumber_8=0; - -{===>} queue_9=""; -{===>} cns_exe_9=""; -{===>} cpunumber_9=0; - -{===>} queue_10=""; -{===>} cns_exe_10=""; -{===>} cpunumber_10=0; - -{===========================================================================} -{ things below this line do not normally need to be changed } -{===========================================================================} - -) {- end block parameter definition -} - -!for global parameters (local variables (suffix ) => global variables): -evaluate (&saprotocol.crossdock=&crossdock) -evaluate (&saprotocol.randorien=&randorien) -evaluate (&saprotocol.rebuildcplx=&rebuildcplx) -evaluate (&saprotocol.rigidmini=&rigidmini) -evaluate (&saprotocol.rigidtrans=&rigidtrans) -evaluate (&saprotocol.expand=&expand) -evaluate (&saprotocol.expansion=&expansion) -evaluate (&saprotocol.randangle=&randangle) - -if (&saprotocol.expand eq true) then - evaluate (&saprotocol.randorien=false) - evaluate (&saprotocol.rigidmini=false) -end if - -evaluate (&saprotocol.ntrials=&ntrials) -evaluate (&saprotocol.iniseed=&iniseed) -evaluate (&saprotocol.tadhigh_t=&tadhigh_t) -evaluate (&saprotocol.t1_init=&tadinit1_t) -evaluate (&saprotocol.t2_init=&tadinit2_t) -evaluate (&saprotocol.t3_init=&tadinit3_t) -evaluate (&saprotocol.t1_final=&tadfinal1_t) -evaluate (&saprotocol.t2_final=&tadfinal2_t) -evaluate (&saprotocol.t3_final=&tadfinal3_t) -evaluate (&saprotocol.inter_rigid=&inter_rigid) -evaluate (&saprotocol.inter_init_rigid=&init_rigid) -evaluate (&saprotocol.inter_fin_rigid=&fin_rigid) -evaluate (&saprotocol.inter_init_cool2=&init_cool2) -evaluate (&saprotocol.inter_fin_cool2=&fin_cool2) -evaluate (&saprotocol.inter_init_cool3=&init_cool3) -evaluate (&saprotocol.inter_fin_cool3=&fin_cool3) -evaluate (&saprotocol.rotate180_it0=&rotate180_it0) -evaluate (&saprotocol.rotate180_it1=&rotate180_it1) -evaluate (&saprotocol.tempstep=50) -evaluate (&saprotocol.timestep=×tep) -evaluate (&saprotocol.tadfactor=&tadfactor) -evaluate (&saprotocol.emstepstrans=&emstepstrans) -evaluate (&saprotocol.initiosteps=&initiosteps) -evaluate (&saprotocol.cool1_steps=&cool1_steps) -evaluate (&saprotocol.cool2_steps=&cool2_steps) -evaluate (&saprotocol.cool3_steps=&cool3_steps) -evaluate (&saprotocol.fbeta=100) -evaluate (&saprotocol.mass=100) - -evaluate (&filenames.fileroot=&fileroot) -evaluate (&filenames.template=&fileroot + "_1.pdb") - -evaluate (&iterations.ini_count =1) -evaluate (&iterations.structures =&structures_$iteration) -evaluate (&iterations.keepstruct =&keepstruct_$iteration) -evaluate (&iterations.w_vdw =&w_vdw_$iteration) -evaluate (&iterations.w_elec =&w_elec_$iteration) -evaluate (&iterations.w_dist =&w_dist_$iteration) -evaluate (&iterations.w_rg =&w_rg_$iteration) -evaluate (&iterations.w_sani =&w_sani_$iteration) -evaluate (&iterations.w_xrdc =&w_xrdc_$iteration) -evaluate (&iterations.w_xpcs =&w_xpcs_$iteration) -evaluate (&iterations.w_dani =&w_dani_$iteration) -evaluate (&iterations.w_vean =&w_vean_$iteration) -evaluate (&iterations.w_cdih =&w_cdih_$iteration) -evaluate (&iterations.w_sym =&w_sym_$iteration) -evaluate (&iterations.w_zres =&w_zres_$iteration) -evaluate (&iterations.w_bsa =&w_bsa_$iteration) -evaluate (&iterations.w_deint =&w_deint_$iteration) -evaluate (&iterations.w_desolv =&w_desolv_$iteration) -evaluate (&iterations.anastruc =&anastruc_$iteration) -evaluate (&iterations.w_lcc = &w_lcc_$iteration) - - -evaluate ($Data.ncomponents=&ncomponents) - -evaluate ($nmol=1) -while ($nmol <= $Data.ncomponents) loop mol - - !aa topology, linkage and parameters files - evaluate (&toppar.prot_top_$nmol=&prot_top_mol$nmol ) - evaluate (&toppar.prot_link_$nmol=&prot_link_mol$nmol ) - evaluate (&toppar.prot_par_$nmol=&prot_par_mol$nmol ) - - !coarse grained topology, linkage and parameters files - evaluate (&toppar.prot_cg_top_$nmol=&prot_cg_top_mol$nmol ) - evaluate (&toppar.prot_cg_link_$nmol=&prot_cg_link_mol$nmol ) - evaluate (&toppar.prot_cg_par_$nmol=&prot_cg_par_mol$nmol ) - - !molecule related (coordinate files, rootname, fix, type, coarse grained, segid) - evaluate (&toppar.prot_coor_$nmol=&prot_coor_mol$nmol) - evaluate (&toppar.prot_root_$nmol=&prot_root_mol$nmol) - evaluate (&toppar.fix_origin_$nmol=&fix_origin_mol$nmol) - evaluate (&toppar.dna_$nmol=&dna_mol$nmol) - evaluate (&toppar.cyclicpept_$nmol=&cyclicpept_mol$nmol) - evaluate (&toppar.shape_$nmol=&shape_mol$nmol) - evaluate (&toppar.cg_$nmol=&cg_mol$nmol) - evaluate (&toppar.prot_segid_$nmol=&prot_segid_mol$nmol) - - !semi flexible segments - evaluate (&toppar.nseg_$nmol=&nseg_$nmol) - evaluate ($nseg = 1) - while ($nseg <= &toppar.nseg_$nmol) loop seg - evaluate (&toppar.start_seg_$nmol_$nseg=&start_seg_$nmol_$nseg) - evaluate (&toppar.end_seg_$nmol_$nseg=&end_seg_$nmol_$nseg) - evaluate ($nseg = $nseg + 1) - end loop seg - - !fully flexible segments - evaluate (&toppar.nfle_$nmol=&nfle_$nmol) - evaluate ($nfle = 1) - while ($nfle <= &toppar.nfle_$nmol) loop fle - evaluate (&toppar.start_fle_$nmol_$nfle=&start_fle_$nmol_$nfle) - evaluate (&toppar.end_fle_$nmol_$nfle=&end_fle_$nmol_$nfle) - evaluate ($nfle = $nfle + 1) - end loop fle - - !histidine patches - evaluate (&toppar.autohis=&autohis) - evaluate (&toppar.nhisd_$nmol=&numhisd_$nmol) - evaluate ($ncc=1) - while ($ncc <= &toppar.nhisd_$nmol) loop hisd - evaluate (&toppar.hisd_resid_$nmol_$ncc=&hisd_$nmol_$ncc) - evaluate ($ncc = $ncc + 1) - end loop hisd - - evaluate (&toppar.nhise_$nmol=&numhise_$nmol) - evaluate ($ncc=1) - while ($ncc <= &toppar.nhise_$nmol) loop hisd - evaluate (&toppar.hise_resid_$nmol_$ncc=&hise_$nmol_$ncc) - evaluate ($ncc = $ncc + 1) - end loop hisd - - evaluate ($nmol = $nmol + 1) - -end loop mol - -! non-bonded parameter set to use -evaluate (&toppar.par_nonbonded=&par_nonbonded) - -! z-restraining -evaluate ($Data.flags.zres = &zres_on) -evaluate ($Data.numzres=&numzres) -evaluate ($ncc=1) -while ($ncc <= &numzres) loop zres - evaluate (&toppar.zres_sta_$ncc=&zres_sta_$ncc) - evaluate (&toppar.zres_end_$ncc=&zres_end_$ncc) - evaluate (&toppar.zres_seg_$ncc=&zres_seg_$ncc) - evaluate (&toppar.zres_type_$ncc=&zres_type_$ncc) - evaluate ($ncc = $ncc + 1) -end loop zres - -! NCS restraints -evaluate ($Data.kncs=&kncs) -evaluate ($Data.flags.ncs = &ncs_on) -evaluate ($Data.numncs=&numncs) -evaluate ($ncc=1) -while ($ncc <= &numncs) loop ncs - evaluate (&toppar.ncs_sta1_$ncc=&ncs_sta1_$ncc) - evaluate (&toppar.ncs_end1_$ncc=&ncs_end1_$ncc) - evaluate (&toppar.ncs_seg1_$ncc=&ncs_seg1_$ncc) - evaluate (&toppar.ncs_sta2_$ncc=&ncs_sta2_$ncc) - evaluate (&toppar.ncs_end2_$ncc=&ncs_end2_$ncc) - evaluate (&toppar.ncs_seg2_$ncc=&ncs_seg2_$ncc) - evaluate ($ncc = $ncc + 1) -end loop ncs - -! Symmetry restraints -evaluate ($Data.ksym=&ksym) -evaluate ($Data.flags.sym = &sym_on) -evaluate ($Data.numc2sym=&numc2sym) -evaluate ($nsym=1) -while ($nsym <= &numc2sym) loop sym - evaluate (&toppar.c2sym_sta1_$nsym=&c2sym_sta1_$nsym) - evaluate (&toppar.c2sym_end1_$nsym=&c2sym_end1_$nsym) - evaluate (&toppar.c2sym_seg1_$nsym=&c2sym_seg1_$nsym) - evaluate (&toppar.c2sym_sta2_$nsym=&c2sym_sta2_$nsym) - evaluate (&toppar.c2sym_end2_$nsym=&c2sym_end2_$nsym) - evaluate (&toppar.c2sym_seg2_$nsym=&c2sym_seg2_$nsym) - evaluate ($nsym = $nsym + 1) -end loop sym - -evaluate ($Data.numc3sym=&numc3sym) -evaluate ($nsym=1) -while ($nsym <= &numc3sym) loop sym - evaluate (&toppar.c3sym_sta1_$nsym=&c3sym_sta1_$nsym) - evaluate (&toppar.c3sym_end1_$nsym=&c3sym_end1_$nsym) - evaluate (&toppar.c3sym_seg1_$nsym=&c3sym_seg1_$nsym) - evaluate (&toppar.c3sym_sta2_$nsym=&c3sym_sta2_$nsym) - evaluate (&toppar.c3sym_end2_$nsym=&c3sym_end2_$nsym) - evaluate (&toppar.c3sym_seg2_$nsym=&c3sym_seg2_$nsym) - evaluate (&toppar.c3sym_sta3_$nsym=&c3sym_sta3_$nsym) - evaluate (&toppar.c3sym_end3_$nsym=&c3sym_end3_$nsym) - evaluate (&toppar.c3sym_seg3_$nsym=&c3sym_seg3_$nsym) - evaluate ($nsym = $nsym + 1) -end loop sym - -evaluate ($Data.nums3sym=&nums3sym) -evaluate ($nsym=1) -while ($nsym <= &nums3sym) loop sym - evaluate (&toppar.s3sym_sta1_$nsym=&s3sym_sta1_$nsym) - evaluate (&toppar.s3sym_end1_$nsym=&s3sym_end1_$nsym) - evaluate (&toppar.s3sym_seg1_$nsym=&s3sym_seg1_$nsym) - evaluate (&toppar.s3sym_sta2_$nsym=&s3sym_sta2_$nsym) - evaluate (&toppar.s3sym_end2_$nsym=&s3sym_end2_$nsym) - evaluate (&toppar.s3sym_seg2_$nsym=&s3sym_seg2_$nsym) - evaluate (&toppar.s3sym_sta3_$nsym=&s3sym_sta3_$nsym) - evaluate (&toppar.s3sym_end3_$nsym=&s3sym_end3_$nsym) - evaluate (&toppar.s3sym_seg3_$nsym=&s3sym_seg3_$nsym) - evaluate ($nsym = $nsym + 1) -end loop sym - -evaluate ($Data.numc4sym=&numc4sym) -evaluate ($nsym=1) -while ($nsym <= &numc4sym) loop sym - evaluate (&toppar.c4sym_sta1_$nsym=&c4sym_sta1_$nsym) - evaluate (&toppar.c4sym_end1_$nsym=&c4sym_end1_$nsym) - evaluate (&toppar.c4sym_seg1_$nsym=&c4sym_seg1_$nsym) - evaluate (&toppar.c4sym_sta2_$nsym=&c4sym_sta2_$nsym) - evaluate (&toppar.c4sym_end2_$nsym=&c4sym_end2_$nsym) - evaluate (&toppar.c4sym_seg2_$nsym=&c4sym_seg2_$nsym) - evaluate (&toppar.c4sym_sta3_$nsym=&c4sym_sta3_$nsym) - evaluate (&toppar.c4sym_end3_$nsym=&c4sym_end3_$nsym) - evaluate (&toppar.c4sym_seg3_$nsym=&c4sym_seg3_$nsym) - evaluate (&toppar.c4sym_sta4_$nsym=&c4sym_sta4_$nsym) - evaluate (&toppar.c4sym_end4_$nsym=&c4sym_end4_$nsym) - evaluate (&toppar.c4sym_seg4_$nsym=&c4sym_seg4_$nsym) - evaluate ($nsym = $nsym + 1) -end loop sym - -evaluate ($Data.numc5sym=&numc5sym) -evaluate ($nsym=1) -while ($nsym <= &numc5sym) loop sym - evaluate (&toppar.c5sym_sta1_$nsym=&c5sym_sta1_$nsym) - evaluate (&toppar.c5sym_end1_$nsym=&c5sym_end1_$nsym) - evaluate (&toppar.c5sym_seg1_$nsym=&c5sym_seg1_$nsym) - evaluate (&toppar.c5sym_sta2_$nsym=&c5sym_sta2_$nsym) - evaluate (&toppar.c5sym_end2_$nsym=&c5sym_end2_$nsym) - evaluate (&toppar.c5sym_seg2_$nsym=&c5sym_seg2_$nsym) - evaluate (&toppar.c5sym_sta3_$nsym=&c5sym_sta3_$nsym) - evaluate (&toppar.c5sym_end3_$nsym=&c5sym_end3_$nsym) - evaluate (&toppar.c5sym_seg3_$nsym=&c5sym_seg3_$nsym) - evaluate (&toppar.c5sym_sta4_$nsym=&c5sym_sta4_$nsym) - evaluate (&toppar.c5sym_end4_$nsym=&c5sym_end4_$nsym) - evaluate (&toppar.c5sym_seg4_$nsym=&c5sym_seg4_$nsym) - evaluate (&toppar.c5sym_sta5_$nsym=&c5sym_sta5_$nsym) - evaluate (&toppar.c5sym_end5_$nsym=&c5sym_end5_$nsym) - evaluate (&toppar.c5sym_seg5_$nsym=&c5sym_seg5_$nsym) - evaluate ($nsym = $nsym + 1) -end loop sym - - -evaluate ($Data.numc6sym=&numc6sym) -evaluate ($nsym=1) -while ($nsym <= &numc6sym) loop sym - evaluate (&toppar.c6sym_sta1_$nsym=&c6sym_sta1_$nsym) - evaluate (&toppar.c6sym_end1_$nsym=&c6sym_end1_$nsym) - evaluate (&toppar.c6sym_seg1_$nsym=&c6sym_seg1_$nsym) - evaluate (&toppar.c6sym_sta2_$nsym=&c6sym_sta2_$nsym) - evaluate (&toppar.c6sym_end2_$nsym=&c6sym_end2_$nsym) - evaluate (&toppar.c6sym_seg2_$nsym=&c6sym_seg2_$nsym) - evaluate (&toppar.c6sym_sta3_$nsym=&c6sym_sta3_$nsym) - evaluate (&toppar.c6sym_end3_$nsym=&c6sym_end3_$nsym) - evaluate (&toppar.c6sym_seg3_$nsym=&c6sym_seg3_$nsym) - evaluate (&toppar.c6sym_sta4_$nsym=&c6sym_sta4_$nsym) - evaluate (&toppar.c6sym_end4_$nsym=&c6sym_end4_$nsym) - evaluate (&toppar.c6sym_seg4_$nsym=&c6sym_seg4_$nsym) - evaluate (&toppar.c6sym_sta5_$nsym=&c6sym_sta5_$nsym) - evaluate (&toppar.c6sym_end5_$nsym=&c6sym_end5_$nsym) - evaluate (&toppar.c6sym_seg5_$nsym=&c6sym_seg5_$nsym) - evaluate (&toppar.c6sym_sta6_$nsym=&c6sym_sta6_$nsym) - evaluate (&toppar.c6sym_end6_$nsym=&c6sym_end6_$nsym) - evaluate (&toppar.c6sym_seg6_$nsym=&c6sym_seg6_$nsym) - evaluate ($nsym = $nsym + 1) -end loop sym - -if ( $Data.numc2sym eq 6) then - evaluate (&saprotocol.rotate180_it0 = false) - evaluate (&saprotocol.rotate180_it1 = false) -end if -if ( $Data.numc3sym ne 0) then - evaluate (&saprotocol.rotate180_it0 = false) - evaluate (&saprotocol.rotate180_it1 = false) -end if -if ( $Data.numc4sym ne 0) then - evaluate (&saprotocol.rotate180_it0 = false) - evaluate (&saprotocol.rotate180_it1 = false) -end if -if ( $Data.numc5sym ne 0) then - evaluate (&saprotocol.rotate180_it0 = false) - evaluate (&saprotocol.rotate180_it1 = false) -end if -if ( $Data.numc6sym ne 0) then - evaluate (&saprotocol.rotate180_it0 = false) - evaluate (&saprotocol.rotate180_it1 = false) -end if - - -!Dihedrals, DNA and distance restraints -evaluate ($Data.dnarest = &dnarest_on) -evaluate ($Data.flags.cdih = &dihedrals_on) -evaluate ($Data.cdih.on = &dihedrals_on) -evaluate ($Data.ssdihed = &ssdihed) -evaluate ($Data.error_dih = &error_dih) -evaluate ($Data.dihedrals.on=&dihedrals_on) -evaluate ($Data.dihedrals_hot=&dihedrals_hot) -evaluate ($Data.dihedrals_cool1=&dihedrals_cool1) -evaluate ($Data.dihedrals_cool2=&dihedrals_cool2) -evaluate ($Data.dihedrals_cool3=&dihedrals_cool3) -evaluate ($Data.hbonds_on=&hbonds_on) - -! RDC restraints -evaluate ($Data.flags.vean = false) -evaluate ($Data.flags.xrdc = false) -evaluate ($Data.flags.sani = false) -evaluate ($Data.numrdc=&numrdc) -evaluate ($ncc=1) -while ($ncc <= $Data.numrdc) loop rdc - if (&rdc_choice_$ncc = "VANGLE") then - evaluate ($Data.flags.vean = true) - end if - if (&rdc_choice_$ncc = "SANI") then - evaluate ($Data.flags.sani = true) - end if - if (&rdc_choice_$ncc = "XRDC") then - evaluate ($Data.flags.xrdc = true) - end if - evaluate ($Data.rdc_choice_$ncc=&rdc_choice_$ncc) - evaluate ($Data.rdc_firstIt_$ncc=&rdc_firstIt_$ncc) - evaluate ($Data.rdc_lastIt_$ncc=&rdc_lastIt_$ncc) - evaluate ($Data.rdc_hot_$ncc=&rdc_hot_$ncc) - evaluate ($Data.rdc_cool1_$ncc=&rdc_cool1_$ncc) - evaluate ($Data.rdc_cool2_$ncc=&rdc_cool2_$ncc) - evaluate ($Data.rdc_cool3_$ncc=&rdc_cool3_$ncc) - evaluate ($Data.rdc_r_$ncc=&rdc_r_$ncc) - evaluate ($Data.rdc_d_$ncc=&rdc_d_$ncc) - evaluate ($Data.ini_bor_hot_$ncc=&ini_bor_hot_$ncc) - evaluate ($Data.ini_bor_cool1_$ncc=&ini_bor_cool1_$ncc) - evaluate ($Data.ini_bor_cool2_$ncc=&ini_bor_cool2_$ncc) - evaluate ($Data.ini_bor_cool3_$ncc=&ini_bor_cool3_$ncc) - evaluate ($Data.ini_cen_hot_$ncc=&ini_cen_hot_$ncc) - evaluate ($Data.ini_cen_cool1_$ncc=&ini_cen_cool1_$ncc) - evaluate ($Data.ini_cen_cool2_$ncc=&ini_cen_cool2_$ncc) - evaluate ($Data.ini_cen_cool3_$ncc=&ini_cen_cool3_$ncc) - evaluate ($Data.fin_bor_hot_$ncc=&fin_bor_hot_$ncc) - evaluate ($Data.fin_bor_cool1_$ncc=&fin_bor_cool1_$ncc) - evaluate ($Data.fin_bor_cool2_$ncc=&fin_bor_cool2_$ncc) - evaluate ($Data.fin_bor_cool3_$ncc=&fin_bor_cool3_$ncc) - evaluate ($Data.fin_cen_hot_$ncc=&fin_cen_hot_$ncc) - evaluate ($Data.fin_cen_cool1_$ncc=&fin_cen_cool1_$ncc) - evaluate ($Data.fin_cen_cool2_$ncc=&fin_cen_cool2_$ncc) - evaluate ($Data.fin_cen_cool3_$ncc=&fin_cen_cool3_$ncc) - evaluate ($ncc=$ncc+1) -end loop rdc - -! PCS restraints -evaluate ($Data.flags.xpcs = false) -evaluate ($Data.numpcs=&numpcs) -evaluate ($ncc=1) -while ($ncc <= &numpcs) loop pcs - if (&pcs_choice_$ncc = "XPCS") then - evaluate ($Data.flags.xpcs = true) - end if - evaluate ($Data.pcs_choice_$ncc=&pcs_choice_$ncc) - evaluate ($Data.pcs_firstIt_$ncc=&pcs_firstIt_$ncc) - evaluate ($Data.pcs_lastIt_$ncc=&pcs_lastIt_$ncc) - evaluate ($Data.pcs_hot_$ncc=&pcs_hot_$ncc) - evaluate ($Data.pcs_cool1_$ncc=&pcs_cool1_$ncc) - evaluate ($Data.pcs_cool2_$ncc=&pcs_cool2_$ncc) - evaluate ($Data.pcs_cool3_$ncc=&pcs_cool3_$ncc) - evaluate ($Data.pcs_r_$ncc=&pcs_r_$ncc) - evaluate ($Data.pcs_d_$ncc=&pcs_d_$ncc) - evaluate ($ncc=$ncc+1) -end loop pcs - -! DANI restraints -evaluate ($Data.flags.dani = false) -evaluate ($Data.numdani=&numdani) -evaluate ($ncc=1) -while ($ncc <= &numdani) loop dani - if (&dan_choice_$ncc = "DANI") then - evaluate ($Data.flags.dani = true) - end if - evaluate ($Data.dan_choice_$ncc=&dan_choice_$ncc) - evaluate ($Data.dan_firstIt_$ncc=&dan_firstIt_$ncc) - evaluate ($Data.dan_lastIt_$ncc=&dan_lastIt_$ncc) - evaluate ($Data.dan_hot_$ncc=&dan_hot_$ncc) - evaluate ($Data.dan_cool1_$ncc=&dan_cool1_$ncc) - evaluate ($Data.dan_cool2_$ncc=&dan_cool2_$ncc) - evaluate ($Data.dan_cool3_$ncc=&dan_cool3_$ncc) - evaluate ($Data.dan_tc_$ncc=&dan_tc_$ncc) - evaluate ($Data.dan_anis_$ncc=&dan_anis_$ncc) - evaluate ($Data.dan_r_$ncc=&dan_r_$ncc) - evaluate ($Data.dan_wh_$ncc=&dan_wh_$ncc) - evaluate ($Data.dan_wn_$ncc=&dan_wn_$ncc) - evaluate ($ncc=$ncc+1) -end loop dani - -! planarity restraints -evaluate ($Data.flags.plan = false) - -! distance restraints -evaluate ($Data.flags.noe = true) -evaluate ($Data.scaling=&air_scaling) -evaluate ($Data.totnoe_unamb=&tot_unamb) -evaluate ($Data.unamb_firstit=&unamb_firstit) -evaluate ($Data.unamb_lastit=&unamb_lastit) -evaluate ($Data.unamb_hot=&unamb_hot) -evaluate ($Data.unamb_cool1=&unamb_cool1) -evaluate ($Data.unamb_cool2=&unamb_cool2) -evaluate ($Data.unamb_cool3=&unamb_cool3) -evaluate ($Data.noecv=&noecv) -evaluate ($Data.ncvpart=&ncvpart) - -evaluate ($Data.totnoe_amb=&tot_amb) -evaluate ($Data.amb_firstit=&amb_firstit) -evaluate ($Data.amb_lastit=&amb_lastit) -evaluate ($Data.amb_hot=&amb_hot) -evaluate ($Data.amb_cool1=&amb_cool1) -evaluate ($Data.amb_cool2=&amb_cool2) -evaluate ($Data.amb_cool3=&amb_cool3) - -evaluate ($Data.hbond_firstit=&hbond_firstit) -evaluate ($Data.hbond_lastit=&hbond_lastit) -evaluate ($Data.hbond_hot=&hbond_hot) -evaluate ($Data.hbond_cool1=&hbond_cool1) -evaluate ($Data.hbond_cool2=&hbond_cool2) -evaluate ($Data.hbond_cool3=&hbond_cool3) - -evaluate ($Data.mrswi_hot=&mrswi_hot) -evaluate ($Data.mrswi_cool1=&mrswi_cool1) -evaluate ($Data.mrswi_cool2=&mrswi_cool2) -evaluate ($Data.mrswi_cool3=&mrswi_cool3) - -evaluate ($Data.rswi_hot=&rswi_hot) -evaluate ($Data.rswi_cool1=&rswi_cool1) -evaluate ($Data.rswi_cool2=&rswi_cool2) -evaluate ($Data.rswi_cool3=&rswi_cool3) - -evaluate ($Data.masy_hot=&masy_hot) -evaluate ($Data.masy_cool1=&masy_cool1) -evaluate ($Data.masy_cool2=&masy_cool2) -evaluate ($Data.masy_cool3=&masy_cool3) - -evaluate ($Data.asy_hot=&asy_hot) -evaluate ($Data.asy_cool1=&asy_cool1) -evaluate ($Data.asy_cool2=&asy_cool2) -evaluate ($Data.asy_cool3=&asy_cool3) - -evaluate ($Data.ranair=&ranair) -if ($Data.ranair eq true) then - evaluate ($Data.noecv = false) -end if -evaluate ($Data.cmrest=&cmrest) -evaluate ($Data.cmtight=&cmtight) -evaluate ($Data.kcont=&kcont) -evaluate ($Data.surfrest=&surfrest) -evaluate ($Data.ksurf=&ksurf) - - -! radius of gydration restraints -evaluate ($Data.flags.rg=&rgrest) -evaluate ($Data.rgtarg=&rgtarg) -evaluate ($Data.krg_hot=&krg_hot) -evaluate ($Data.krg_cool1=&krg_cool1) -evaluate ($Data.krg_cool2=&krg_cool2) -evaluate ($Data.krg_cool3=&krg_cool3) -evaluate ($Data.rgsele=&rgsele) - -evaluate ($Data.kzres=&kzres) -evaluate ($Data.zresmax=&zresmax) -evaluate ($Data.zresmin=&zresmin) - -! keep or delete non-polar hydrogens -evaluate (&toppar.delenph=&delenph) - - -!Electrostatics: -evaluate ($Data.flags.dihed = &dihedflag) -evaluate ($Data.flags.elec0 = &elecflag_0) -evaluate ($Data.flags.elec1 = &elecflag_1) -evaluate ($Data.epsilon0 = &epsilon_0) -evaluate ($Data.epsilon1 = &epsilon_1) -evaluate ($Data.dielec0 = &dielec_0) -evaluate ($Data.dielec1 = &dielec_1) - - -!Interaction matrix: -evaluate ($nmol1=1) -while ($nmol1 <= $Data.ncomponents) loop mol1 - evaluate ($nmol2=$nmol1 + 1) - evaluate (&toppar.int_$nmol1_$nmol1 = &int_$nmol1_$nmol1) - while ($nmol2 <= $Data.ncomponents) loop mol2 - evaluate (&toppar.int_$nmol1_$nmol2 = &int_$nmol1_$nmol2) - evaluate (&toppar.int_$nmol2_$nmol1 = &int_$nmol1_$nmol2) - evaluate ($nmol2=$nmol2 + 1) - end loop mol2 - evaluate ($nmol1 = $nmol1 + 1) -end loop mol1 - -!intermolecular contacts analysis -evaluate ($Data.hb_dist=&dist_hb) -evaluate ($Data.nb_dist=&dist_nb) - - -!water refinement -evaluate (&refine.firstwater=&firstwater) -evaluate (&refine.solvshell=&solvshell) -evaluate (&refine.keepwater=&keepwater) -evaluate (&refine.waterrefine=min(&structures_1,&waterrefine)) -evaluate (&refine.solvent=&solvent) -evaluate (&refine.heatsteps=&waterheatsteps) -evaluate (&refine.steps=&watersteps) -evaluate (&refine.coolsteps=&watercoolsteps) - - -!for the non-bonded parameters (the section was taken out of -!parallhdg5.0.pro and parallhdg5.1.pro, so be careful!): -if (&toppar.par_nonbonded eq "PROLSQ") then - evaluate (&toppar.repel_radius = 1.0) - evaluate (&toppar.repel_rcons = 20) - evaluate (&toppar.repel_rexpo = 4) - evaluate (&toppar.repel_irexp = 1) -elseif (&toppar.par_nonbonded eq "PARMALLH6") then - evaluate (&toppar.repel_radius = 0.8) - evaluate (&toppar.repel_rcons = 5.0) - evaluate (&toppar.repel_rexpo = 2) - evaluate (&toppar.repel_irexp = 2) -elseif (&toppar.par_nonbonded eq "OPLSX") then - evaluate (&toppar.repel_radius = 0.0) -else {...now the standard PARALLHDG parameters} - evaluate (&toppar.repel_radius = 0.78) - evaluate (&toppar.repel_rcons = 5.0) - evaluate (&toppar.repel_rexpo = 2) - evaluate (&toppar.repel_irexp = 2) -end if - -! Water in rigid body docking -evaluate ($Data.waterdock=&waterdock) -evaluate ($Data.db_method=&db_method) -evaluate ($Data.water_tokeep=&water_tokeep) -evaluate ($Data.dnap_water_tokeep=&dnap_water_tokeep) -evaluate ($Data.water_randfrac=&water_randfrac) -evaluate ($Data.solvate_method=&solvate_method) -evaluate ($Data.water_surfcutoff=&water_surfcutoff) -evaluate ($Data.water_analysis=&water_analysis) -evaluate ($Data.transwater=&transwater) -evaluate ($Data.water_restraint_initial=&water_restraint_initial) -evaluate ($Data.water_restraint_cutoff=&water_restraint_cutoff) -evaluate ($Data.water_restraint_scale=&water_restraint_scale) -evaluate ($Data.waterensemble=&waterensemble) - -if ($Data.waterdock eq true) then - evaluate (&saprotocol.rotate180_it0 = false) - evaluate (&saprotocol.rotate180_it1 = false) - evaluate (&SaProtocol.initiosteps = 0) - evaluate (&SaProtocol.cool1_steps = 0) - evaluate (&refine.keepwater = true) - display SOLVATED DOCKING TURNED ON: initiosteps and cool1_steps set to 0, rotate180 set to false -end if - -! Centroid parameters -eval($Data.flags.centroids = ¢roid_rest) -eval($Data.centroids.kscale = ¢roid_kscale) -eval($nchain = 0) -while ($nchain < &ncomponents) loop nloop1 - eval($nchain = $nchain + 1) - eval($Data.centroids.xcom_$nchain = &xcom_$nchain) - eval($Data.centroids.ycom_$nchain = &ycom_$nchain) - eval($Data.centroids.zcom_$nchain = &zcom_$nchain) - eval($Data.centroids.ambi_$nchain = &ambi_$nchain) -end loop nloop1 - -if (&saprotocol.expand eq true) then - eval($Data.flags.centroids = true) -end if - -! Cryo-EM parameters -eval($Data.flags.em = &em_rest) -eval($Data.em.kscale = &em_kscale) -eval($Data.em.it0 = &em_it0) -eval($Data.em.it1 = &em_it1) -eval($Data.em.itw = &em_itw) -eval($Data.em.resolution = &em_resolution) -eval($Data.em.nx = &nx) -eval($Data.em.ny = &ny) -eval($Data.em.nz = &nz) -eval($Data.em.xlength = &xlength) -eval($Data.em.ylength = &ylength) -eval($Data.em.zlength = &zlength) diff --git a/src/haddock/modules/flexref/cns/scale_inter_mini.cns b/src/haddock/modules/flexref/cns/scale_inter_mini.cns deleted file mode 100644 index 1731a7a1a..000000000 --- a/src/haddock/modules/flexref/cns/scale_inter_mini.cns +++ /dev/null @@ -1,37 +0,0 @@ -! scale_inter_mini.cns -! Scaling of intermolecular interations -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! -igroup interaction (not all) (not all) end - -igroup - - eval($nchain1 = 0) - - while ($nchain1 < $data.ncomponents) loop nloop1 - eval($nchain1 = $nchain1 + 1) - eval($nchain2 = $nchain1 ) - while ($nchain2 < $data.ncomponents) loop nloop2 - eval($nchain2 = $nchain2 + 1) - eval($scalfac = $kinter * $Toppar.int_$nchain1_$nchain2) - interaction (segid $Toppar.prot_segid_$nchain1 and not (resn ANI or resn DAN or resn XAN or resn DUM or resn SHA)) - (segid $Toppar.prot_segid_$nchain2 and not (resn ANI or resn DAN or resn XAN or resn DUM or resn SHA)) weight * 1.0 vdw $scalfac elec $scalfac end - end loop nloop2 - - end loop nloop1 - - interaction (resn ANI) (resn ANI) weight * 1.0 vdw 0.0 elec 0.0 end - interaction (resn DAN) (resn DAN) weight * 1.0 vdw 0.0 elec 0.0 end - interaction (resn XAN) (resn XAN) weight * 1.0 vdw 0.0 elec 0.0 end - interaction (resn DUM) (resn DUM) weight * 1.0 vdw 0.0 elec 0.0 end - interaction (resn SHA) (resn SHA) weight * 1.0 vdw 0.0 elec 0.0 end - interaction (resn SHA) (not resn SHA) weight * 0.0 end - -end diff --git a/src/haddock/modules/flexref/cns/separate.cns b/src/haddock/modules/flexref/cns/separate.cns deleted file mode 100644 index 6c3ef50c0..000000000 --- a/src/haddock/modules/flexref/cns/separate.cns +++ /dev/null @@ -1,238 +0,0 @@ -! separate.cns -! Distribute molecules in 3D space -! Orient each molecule according to its principal axes -! and restore them all at the end (after the while loop) -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! -!Module(Data;Toppar;) - - ! first flag all fixed molecules - do (store4 = 0) (all) - evaluate ($ncount = 0) - while ($ncount < $data.ncomponents) loop orientmol - evaluate ($ncount = $ncount + 1) - if ($Toppar.fix_origin_$ncount eq true) then - do (store4 = 1) (segid $Toppar.prot_segid_$ncount) - end if - end loop orientmol - - evaluate ($xc = 0.0) - evaluate ($yc = 0.0) - evaluate ($zc = 0.0) - ! then define the geometrical center of the fixed molecules if present - show sum (store4) (all) - if ($result > 0) then - show ave (x) (attribute store4 = 1) - evaluate ($xc = $result) - show ave (y) (attribute store4 = 1) - evaluate ($yc = $result) - show ave (z) (attribute store4 = 1) - evaluatee ($zc = $result) - end if - - do (xcomp = x) (all) - do (ycomp = y) (all) - do (zcomp = z) (all) - - ! then orient each moving molecule separately at the origin - ! and translate it to the geometric center of the fixed molecules - evaluate ($ncount = 0) - while ($ncount < $data.ncomponents) loop orientmol - evaluate ($ncount = $ncount +1) - eval($watersegname_$ncount="WA" + encode($ncount)) - if ($Toppar.fix_origin_$ncount eq false) then - coor orient sele=(segid $Toppar.prot_segid_$ncount or segid $watersegname_$ncount) end - coor sele=(segid $Toppar.prot_segid_$ncount or segid $watersegname_$ncount) translate vector = ($xc $yc $zc) end - do (xcomp = x) (segid $Toppar.prot_segid_$ncount or segid $watersegname_$ncount) - do (ycomp = y) (segid $Toppar.prot_segid_$ncount or segid $watersegname_$ncount) - do (zcomp = z) (segid $Toppar.prot_segid_$ncount or segid $watersegname_$ncount) - end if - end loop orientmol - - do (x = xcomp) (not (resn ANI or resn XAN or resn DAN)) - do (y = ycomp) (not (resn ANI or resn XAN or resn DAN)) - do (z = zcomp) (not (resn ANI or resn XAN or resn DAN)) - - ! Find the largest axis of all molecules - evaluate ($minispacing = 25.0) - evaluate ($mxdim = 0) - evaluate ($ncount = 0) - - while ($ncount < $data.ncomponents) loop findmax - evaluate ($ncount = $ncount +1) - - if ($Toppar.shape_$ncount eq false) then - - show max (x) (segid $Toppar.prot_segid_$ncount or segid $watersegname_$ncount) - evaluate ($xdim = $result) - show min (x) (segid $Toppar.prot_segid_$ncount or segid $watersegname_$ncount) - evaluate ($xdim = $xdim - $result) - - show max (y) (segid $Toppar.prot_segid_$ncount or segid $watersegname_$ncount) - evaluate ($ydim = $result) - show min (y) (segid $Toppar.prot_segid_$ncount or segid $watersegname_$ncount) - evaluate ($ydim = $ydim - $result) - - show max (z) (segid $Toppar.prot_segid_$ncount or segid $watersegname_$ncount) - evaluate ($zdim = $result) - show min (z) (segid $Toppar.prot_segid_$ncount or segid $watersegname_$ncount) - evaluate ($zdim = $zdim - $result) - - ! Check which dimension (x,y,z) is the largest = mxdim - evaluate ($mxdim = max($mxdim, $xdim, $ydim, $zdim)) - - end if - - end loop findmax - - evaluate ($spacing = $minispacing + $mxdim ) - display SPACING SET TO $spacing ANGSTROM - - ! This has to be manually coded because of the variable name - ! Should be fine since we support only a few types of symmetry - ! Maybe change the variable name later if these are expanded - ! to have the number at the end? - - inline @RUN:check-homomers.cns - - if ($homosymmetry eq true) then - ! In case of homosymmetry, place molecules in a plane - do (store4 = 0) (all) - evaluate ($ncount = 0) - while ($ncount < $data.ncomponents) loop orientmol - evaluate ($ncount = $ncount + 1) - if ($Toppar.fix_origin_$ncount eq false) then - do (store4 = 1) (segid $Toppar.prot_segid_$ncount) - end if - end loop orientmol - - {* translate and generate symmetric positions by rotation around z *} - coor trans sele=(attr store4=1) vector=($spacing,0,0) end - - ! if one molecule is fixed (e.g. plane), move all others along z-axis - !if ($data.ncomponents > $n_moving_mol) then - ! coor trans sele=(attr store4=1) vector=(0,0,$spacing) end - !end if - - evaluate ($ncount = 2) - evaluate ($increment = 360/$n_moving_mol) - while ($ncount le $data.ncomponents) loop orientsym - - if ($Toppar.fix_origin_$ncount eq false) then - - {* rotate around z axis *} - evaluate ($xr = $increment) - evaluate ($x1 = cos($xr)) - evaluate ($x2 = -sin($xr)) - evaluate ($x3 = 0 ) - evaluate ($y1 = sin($xr)) - evaluate ($y2 = cos($xr)) - evaluate ($y3 = 0 ) - evaluate ($z1 = 0 ) - evaluate ($z2 = 0 ) - evaluate ($z3 = 1 ) - coor - center=(0 0 0) - rotate matrix=($x1 $x2 $x3) ($y1 $y2 $y3) ($z1 $z2 $z3) - sele=(segid $Toppar.prot_segid_$ncount or segid $watersegname_$ncount) - end - evaluate ($increment = $xr + 360/$n_moving_mol) - - end if - evaluate ($ncount = $ncount + 1) - - end loop orientsym - - else - ! Do we need fix any molecule? - evaluate($n_moving_mol = 0) - evaluate ($ncount = 0) - while ($ncount < $data.ncomponents) loop centermol - evaluate ($ncount = $ncount + 1) - if ($Toppar.fix_origin_$ncount eq false) then - evaluate($n_moving_mol = $n_moving_mol + 1) - end if - end loop centermol - - ! Translate molecules to positions calculated using an algorithm - ! based on minimization of electrostatic potential of N equally charged particles. - ! See Thomson problem: http://en.wikipedia.org/wiki/Thomson_problem -! evaluate ($filename = "RUN:toppar/initial_positions/trans_vector_" + encode($n_moving_mol) ) -! evaluate ($filename = "toppar/initial_positions/trans_vector_" + encode($n_moving_mol) ) - evaluate ($encode_moving_mol = encode($n_moving_mol)) - evaluate ($filename = $trans_vector_$$encode_moving_mol) - inline @@$filename - - ! Logic: - ! Assign a random number larger than 0 to every molecule - ! Assign 0.0 to fixed molecules - ! For every i up to the number of molecules - ! pick the mol with the largest number and displace it - ! then zero its number. - ! This will place molecules in space sort of randomly - ! Stop when the sum of all numbers is zero - - ! Generate as many random numbers as the # of mols - evaluate ($ncount = 0) - while ($ncount < $data.ncomponents) loop genrandom - evaluate ($ncount = $ncount + 1) - if ($Toppar.fix_origin_$ncount eq true) then - evaluate ($random_$ncount = 0.0) - else - evaluate ($random_$ncount = random()) - end if - end loop genrandom - - ! Randomly pick a molecule and place it - ! on the pre-defined position - iterate - evaluate ($sum_random = 999) - evaluate ($molcounter = 1) - - while ($sum_random > 0) loop placemol - evaluate ($maximum = 0) - evaluate ($maxid = 0) - evaluate ($ncount = 0) - - ! Select molecule with largest random number - while ($ncount < $data.ncomponents) loop selectmol - evaluate ($ncount = $ncount + 1) - if ($random_$ncount > $maximum) then - evaluate ($maximum = $random_$ncount) - evaluate ($maxid = $ncount) - end if - end loop selectmol - display $maxid - if ($Toppar.fix_origin_$maxid eq false) then - coor trans - sele=(segid $Toppar.prot_segid_$maxid or segid $watersegname_$maxid) - vector=($x_$molcounter, $y_$molcounter, $z_$molcounter) end - - ! Reset random_ncount to 0 to avoid re-selecting - evaluate ($random_$maxid = 0) - - ! Increment molcounter to update new - evaluate ($molcounter = $molcounter + 1) - - ! Update sum_random - evaluate ($ncount = 0) - evaluate ($sum_random = 0) - - while ($ncount < $data.ncomponents) loop resetsumrandom - evaluate ($ncount = $ncount + 1) - evaluate( $sum_random = $sum_random + $random_$ncount) - end loop resetsumrandom - end if - end loop placemol - end if - - do (x = refx) (resn ANI or resn DAN or resn XAN) - do (y = refy) (resn ANI or resn DAN or resn XAN) - do (z = refz) (resn ANI or resn DAN or resn XAN) - diff --git a/src/haddock/modules/flexref/cns/surf-restraints.cns b/src/haddock/modules/flexref/cns/surf-restraints.cns deleted file mode 100644 index a1b159cab..000000000 --- a/src/haddock/modules/flexref/cns/surf-restraints.cns +++ /dev/null @@ -1,71 +0,0 @@ -! surf-restraints.cns -! Define surface contact restraints -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! -!define surface contact restraints between all molecules -!using distance restraints between CA atoms with sum averaging - - set echo=on message=on end - - eval($nchain = 0) - do (store9 = 0) (all) - do (store9 = 1) (name CA or name BB or name N1) - while ($nchain < $data.ncomponents) loop nloop0 - eval($nchain = $nchain + 1) - show sum (store9) (segid $Toppar.prot_segid_$nchain) - if ($result < 3) then - evaluate ($selat$nchain = 0) - evaluate ($dist$nchain = 1.0) - else - evaluate ($selat$nchain = 1) - evaluate ($dist$nchain = 3.5) - end if - end loop nloop0 - - eval($nchain1 = 0) - noe class surface - while ($nchain1 < $data.ncomponents) loop nloop1 - eval($nchain1 = $nchain1 + 1) - eval($nchain2 = $nchain1 ) - while ($nchain2 < $data.ncomponents) loop nloop2 - eval($nchain2 = $nchain2 + 1) - evaluate ($updist = $dist$nchain1 + $dist$nchain2) - if ($selat$nchain1 = 1) then - if ($selat$nchain2 = 1) then - assign (segid $Toppar.prot_segid_$nchain1 and ( name CA or name BB or name N1 )) - (segid $Toppar.prot_segid_$nchain2 and ( name CA or name BB or name N1 )) $updist $updist 1.0 - else - assign (segid $Toppar.prot_segid_$nchain1 and ( name CA or name BB or name N1 )) - (segid $Toppar.prot_segid_$nchain2) $updist $updist 1.0 - end if - else - if ($selat$nchain2 = 1) then - assign (segid $Toppar.prot_segid_$nchain1) - (segid $Toppar.prot_segid_$nchain2 and ( name CA or name BB or name N1 )) $updist $updist 1.0 - else - assign (segid $Toppar.prot_segid_$nchain1) - (segid $Toppar.prot_segid_$nchain2) $updist $updist 1.0 - end if - end if - end loop nloop2 - end loop nloop1 - - averaging surface sum - scale surface $Data.ksurf - sqconstant surface 1.0 - sqexponent surface 2 - soexponent surface 1 - rswitch surface 1.0 - sqoffset surface 0.0 - asymptote surface 2.0 - msoexponent surface 1 - masymptote surface -0.1 - mrswitch surface 1.0 - end diff --git a/src/haddock/modules/flexref/cns/waterdock_mini.cns b/src/haddock/modules/flexref/cns/waterdock_mini.cns deleted file mode 100644 index 4030bcb59..000000000 --- a/src/haddock/modules/flexref/cns/waterdock_mini.cns +++ /dev/null @@ -1,75 +0,0 @@ -! waterdock_mini.cns -! Minimize water molecules in solvated docking -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! - minimize rigid - eval ($nchain1 = 0) - while ($nchain1 < $data.ncomponents) loop nloop1 - eval($nchain1 = $nchain1 + 1) - group (segid $Toppar.prot_segid_$nchain1 and not (resn WAT or resn HOH or resn TIP*)) - translation=true - end loop nloop1 - for $id in id ((resn WAT or resn HOH or resn TIP*) and name OH2 and (attr store5 ne 1)) loop miniwater - group (byres(id $id)) - end loop miniwater - translation=$data.transwater - nstep 100 - nprint 10 - end - energy end - - !store5 is what is to be removed - !store4 is used to determine what is at interface - eval ($surfcutoff = $data.water_surfcutoff) - do (store4 = 0) (all) - - eval($nchain1 = 0) - while ($nchain1 < $data.ncomponents) loop nloop1 - eval($nchain1 = $nchain1 + 1) - do (store4 = store4 + 1) (name oh2 and ((segid $Toppar.prot_segid_$nchain1) around $surfcutoff)) - end loop nloop1 - - !an interfacial water should have at least store4=2 - do (store4 = 0) (attribute store4 < 2) - do (store4 = 1) (attribute store4 > 0) - do (store5 = 1) ((attr store5 = 1) or (name oh2 and (not resn TIP*) and (attr store4 ne 1))) - do (store5 = 1) (byres (attr store5 = 1)) - do (store5 = 0) (resn TIP*) - - !"removing" of water: interaction weight 0 - igroup interaction (not all) (not all) end - - igroup - eval($nchain1 = 0) - - while ($nchain1 < $data.ncomponents) loop nloop1 - eval($nchain1 = $nchain1 + 1) - eval($nchain2 = $nchain1 ) - while ($nchain2 < $data.ncomponents) loop nloop2 - eval($nchain2 = $nchain2 + 1) - interaction (segid $Toppar.prot_segid_$nchain1) - (segid $Toppar.prot_segid_$nchain2) weight * 1.0 vdw $kinter elec $kinter end - end loop nloop2 - interaction ((resn WAT or resn HOH or resn TIP*) and (attr store5 ne 1)) (segid $Toppar.prot_segid_$nchain1) weight * 1.0 end - end loop nloop1 - - interaction ((resn WAT or resn HOH or resn TIP*) and (attr store5 ne 1)) - ((resn WAT or resn HOH or resn TIP*) and (attr store5 ne 1)) weight * 1.0 end - interaction (attr store5 = 1) (all) weight * 0.0 end - interaction (resn DUM) (not resn DUM) weight * 0.0 end - interaction (resn SHA) (not resn SHA) weight * 0.0 end - end - - if ($data.solvate_method eq "restraints") then - noe reset end - !read again the NOE data -! @RUN:read_noes.cns(Iteration=$Iteration; Data=$Data; count=$count) - @RUN:read_noes.cns - end if diff --git a/src/haddock/modules/flexref/cns/waterdock_out0.cns b/src/haddock/modules/flexref/cns/waterdock_out0.cns deleted file mode 100644 index 442aaa17b..000000000 --- a/src/haddock/modules/flexref/cns/waterdock_out0.cns +++ /dev/null @@ -1,41 +0,0 @@ -! waterdock_out0.cns -! Output information about waters in solvated docking -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! -evaluate ($filename="NEWIT:" + $Filenames.fileroot + "_" + encode($count) + "_water.pdbw") -do (store1 = 0) (all) -do (store1 = 1) ((resn WAT or resn HOH) and not store3) -show sum (store1) (all) -if ($result > 0) then - write coordinates sele= ((resn WAT or resn HOH) and not store3) output =$filename end -else - set display=$filename end - display REMARK no water kept - display END - close $filename end -end if -if ($data.water_analysis eq true) then - show aver (x*x) ((resn WAT or resn HOH) and not store3) - evaluate ($rx = $result) - show aver (y*y) ((resn WAT or resn HOH) and not store3) - evaluate ($ry = $result) - show aver (z*z) ((resn WAT or resn HOH) and not store3) - evaluate ($rz = $result) - evaluate ($filename = "NEWIT:"+"rxyz_"+encode($count)+".disp") - set display=$filename end - display $rx $ry $rz - close $filename end - show sum(1) ((resn WAT or resn HOH) and name OH2 and not store3) - eval ($nrwater=$result) - evaluate ($filename = "NEWIT:"+"nwater_"+encode($count)+".disp") - set display=$filename end - display $nrwater - close $filename end -end if diff --git a/src/haddock/modules/flexref/cns/waterdock_remove-water.cns b/src/haddock/modules/flexref/cns/waterdock_remove-water.cns deleted file mode 100644 index 58d7094f9..000000000 --- a/src/haddock/modules/flexref/cns/waterdock_remove-water.cns +++ /dev/null @@ -1,69 +0,0 @@ -! waterdock_remove-water.cns -! MC-based removal of waters in solvated docking -! -! *********************************************************************** -! * Copyright 2003-2018 Alexandre Bonvin, Utrecht University. * -! * All rights reserved. * -! * This code is part of the HADDOCK software and governed by its * -! * license. Please see the LICENSE file that should have been included * -! * as part of this package. * -! *********************************************************************** -! - !store5 contains the waters that are to be "removed" - ident (store5) (not all) - - ident (store5) ((resn WAT or resn HOH)) - - !count number of waters - show sum(1) ((resn WAT or resn HOH) and name OH2) - eval ($watercount=$result) - - !determine how many of those to keep - eval ($randfrac = random(1.0)) - eval ($randfrac = $randfrac * $data.water_randfrac) - eval ($fractionkeep =$data.water_tokeep + $randfrac) - eval ($tokeep = $fractionkeep * $watercount) - - display info: watercount $watercount - display info: tokeep $tokeep - !for each nrig value, different waters are "removed" - for $atom_id in id ((resn WAT or resn HOH) and name OH2) loop loop2 - eval ($r = random(1.0) * $watercount) - display info: r-value $r - if ($r > $tokeep) then - ident (store5) (store5 or id $atom_id) - end if - end loop loop2 - - ident (store5) (byres store5) - - !"removing" of water: interaction weight 0 - igroup interaction (not all) (not all) end - - igroup - eval($nchain1 = 0) - - while ($nchain1 < $data.ncomponents) loop nloop1 - eval($nchain1 = $nchain1 + 1) - eval($nchain2 = $nchain1 ) - while ($nchain2 < $data.ncomponents) loop nloop2 - eval($nchain2 = $nchain2 + 1) - interaction (segid $Toppar.prot_segid_$nchain1) - (segid $Toppar.prot_segid_$nchain2) weight * 1.0 vdw $kinter elec $kinter end - end loop nloop2 - interaction ((resn WAT or resn HOH or resn TIP*) and not store5) (segid $Toppar.prot_segid_$nchain1) weight * 1.0 end - end loop nloop1 - - interaction ((resn WAT or resn HOH or resn TIP*) and not store5) - ((resn WAT or resn HOH or resn TIP*) and not store5) weight * 1.0 end - interaction (store5) (all) weight * 0.0 end - interaction (resn DUM) (not resn DUM) weight * 0.0 end - interaction (resn SHA) (not resn SHA) weight * 0.0 end - end - - if ($data.solvate_method eq "restraints") then - noe reset end - !read again the NOE data -! @RUN:read_noes.cns(Iteration=$Iteration; Data=$Data; count=$count) - @RUN:read_noes.cns - end if