--- /dev/null
+ATOM 1 N GLY A 1 18.230 4.903 9.716 1.00 28.23 N
+ATOM 2 CA GLY A 1 16.795 5.303 9.674 1.00 26.95 C
+ATOM 3 C GLY A 1 15.903 4.106 9.901 1.00 26.34 C
+ATOM 4 O GLY A 1 16.336 3.112 10.496 1.00 25.78 O
+ATOM 5 N VAL A 2 14.648 4.221 9.474 1.00 25.88 N
+ATOM 6 CA VAL A 2 13.627 3.183 9.727 1.00 25.44 C
+ATOM 7 C VAL A 2 13.981 1.814 9.147 1.00 25.29 C
+ATOM 8 O VAL A 2 13.737 0.794 9.782 1.00 24.50 O
+ATOM 9 CB VAL A 2 12.180 3.666 9.357 1.00 25.92 C
+ATOM 10 CG1 VAL A 2 11.954 3.744 7.847 1.00 26.79 C
+ATOM 11 CG2 VAL A 2 11.074 2.815 10.029 1.00 26.46 C
+ATOM 12 N VAL A 3 14.567 1.792 7.942 1.00 25.41 N
+ATOM 13 CA VAL A 3 15.020 0.524 7.365 1.00 24.91 C
+ATOM 14 C VAL A 3 16.105 -0.118 8.242 1.00 24.49 C
+ATOM 15 O VAL A 3 16.056 -1.305 8.572 1.00 23.75 O
+ATOM 16 CB VAL A 3 15.492 0.705 5.885 1.00 25.10 C
+ATOM 17 CG1 VAL A 3 15.909 -0.638 5.270 1.00 25.30 C
+ATOM 18 CG2 VAL A 3 14.381 1.329 5.065 1.00 25.09 C
+ATOM 19 N ASP A 4 17.098 0.654 8.646 1.00 24.84 N
+ATOM 20 CA ASP A 4 18.079 0.067 9.522 1.00 25.25 C
+ATOM 21 C ASP A 4 17.462 -0.448 10.831 1.00 24.23 C
+ATOM 22 O ASP A 4 17.802 -1.539 11.276 1.00 24.33 O
+ATOM 23 CB ASP A 4 19.206 1.037 9.849 1.00 25.95 C
+ATOM 24 CG ASP A 4 20.336 0.345 10.555 1.00 30.13 C
+ATOM 25 OD1 ASP A 4 21.131 -0.360 9.884 1.00 34.07 O
+ATOM 26 OD2 ASP A 4 20.411 0.485 11.791 1.00 35.94 O
+ATOM 27 N SER A 5 16.551 0.318 11.425 1.00 23.38 N
+ATOM 28 CA SER A 5 16.018 -0.068 12.733 1.00 23.67 C
+ATOM 29 C SER A 5 14.966 -1.197 12.715 1.00 23.52 C
+ATOM 30 O SER A 5 14.885 -1.961 13.689 1.00 23.70 O
+ATOM 31 CB SER A 5 15.445 1.161 13.459 1.00 23.38 C
+ATOM 32 OG SER A 5 16.511 2.027 13.882 1.00 24.84 O
+ATOM 33 N CYS A 6 14.151 -1.260 11.649 1.00 23.25 N
+ATOM 34 CA CYS A 6 12.933 -2.098 11.605 1.00 23.79 C
+ATOM 35 C CYS A 6 12.934 -3.155 10.494 1.00 23.94 C
+ATOM 36 O CYS A 6 12.054 -4.026 10.480 1.00 22.81 O
+ATOM 37 CB CYS A 6 11.683 -1.207 11.500 1.00 24.12 C
+ATOM 38 SG CYS A 6 11.463 -0.110 12.949 1.00 25.12 S
+ATOM 39 N CYS A 7 13.907 -3.079 9.577 1.00 23.80 N
+ATOM 40 CA CYS A 7 14.064 -4.074 8.484 1.00 24.46 C
+ATOM 41 C CYS A 7 15.332 -4.873 8.649 1.00 24.96 C
+ATOM 42 O CYS A 7 15.325 -6.104 8.508 1.00 25.76 O
+ATOM 43 CB CYS A 7 14.077 -3.378 7.109 1.00 24.78 C
+ATOM 44 SG CYS A 7 14.603 -4.366 5.689 1.00 26.21 S
+ATOM 45 N ARG A 8 16.447 -4.164 8.849 1.00 24.83 N
+ATOM 46 CA ARG A 8 17.745 -4.827 9.109 1.00 25.46 C
+ATOM 47 C ARG A 8 17.853 -5.417 10.519 1.00 24.81 C
+ATOM 48 O ARG A 8 18.723 -6.266 10.806 1.00 24.82 O
+ATOM 49 CB ARG A 8 18.894 -3.871 8.797 1.00 25.20 C
+ATOM 50 CG ARG A 8 18.884 -3.448 7.341 1.00 25.55 C
+ATOM 51 CD ARG A 8 19.916 -2.396 6.986 1.00 27.54 C
+ATOM 52 NE ARG A 8 21.268 -2.836 7.266 1.00 31.59 N
+ATOM 53 CZ ARG A 8 22.086 -3.405 6.370 1.00 33.27 C
+ATOM 54 NH1 ARG A 8 21.705 -3.612 5.110 1.00 30.56 N
+ATOM 55 NH2 ARG A 8 23.305 -3.752 6.745 1.00 37.60 N
+ATOM 56 N ASN A 9 16.934 -4.978 11.379 1.00 24.16 N
+ATOM 57 CA ASN A 9 16.831 -5.403 12.758 1.00 24.72 C
+ATOM 58 C ASN A 9 15.332 -5.386 13.068 1.00 24.90 C
+ATOM 59 O ASN A 9 14.537 -4.802 12.307 1.00 23.58 O
+ATOM 60 CB ASN A 9 17.621 -4.439 13.665 1.00 25.74 C
+ATOM 61 CG ASN A 9 19.129 -4.495 13.405 1.00 27.91 C
+ATOM 62 OD1 ASN A 9 19.788 -5.470 13.749 1.00 31.23 O
+ATOM 63 ND2 ASN A 9 19.673 -3.455 12.771 1.00 29.96 N
+ATOM 64 N SER A 10 14.915 -6.058 14.128 1.00 24.54 N
+ATOM 65 CA SER A 10 13.534 -5.884 14.550 1.00 24.95 C
+ATOM 66 C SER A 10 13.452 -4.622 15.414 1.00 24.44 C
+ATOM 67 O SER A 10 14.461 -4.191 15.999 1.00 24.32 O
+ATOM 68 CB SER A 10 13.006 -7.130 15.266 1.00 25.87 C
+ATOM 69 OG SER A 10 13.668 -7.355 16.498 1.00 28.76 O
+ATOM 70 N CYS A 11 12.275 -4.001 15.481 1.00 23.98 N
+ATOM 71 CA CYS A 11 12.133 -2.832 16.349 1.00 24.19 C
+ATOM 72 C CYS A 11 10.802 -2.892 17.098 1.00 24.36 C
+ATOM 73 O CYS A 11 9.882 -3.615 16.696 1.00 25.50 O
+ATOM 74 CB CYS A 11 12.204 -1.561 15.494 1.00 24.84 C
+ATOM 75 SG CYS A 11 10.772 -1.380 14.392 1.00 24.93 S
+ATOM 76 N SER A 12 10.694 -2.133 18.180 1.00 23.94 N
+ATOM 77 CA SER A 12 9.465 -2.070 18.928 1.00 23.32 C
+ATOM 78 C SER A 12 8.516 -1.175 18.146 1.00 22.71 C
+ATOM 79 O SER A 12 8.934 -0.391 17.295 1.00 22.56 O
+ATOM 80 CB SER A 12 9.715 -1.485 20.337 1.00 22.85 C
+ATOM 81 OG SER A 12 10.019 -0.090 20.273 1.00 20.95 O
+ATOM 82 N PHE A 13 7.237 -1.255 18.483 1.00 22.23 N
+ATOM 83 CA PHE A 13 6.284 -0.393 17.843 1.00 22.99 C
+ATOM 84 C PHE A 13 6.544 1.079 18.147 1.00 23.33 C
+ATOM 85 O PHE A 13 6.400 1.934 17.245 1.00 23.58 O
+ATOM 86 CB PHE A 13 4.847 -0.807 18.178 1.00 22.86 C
+ATOM 87 CG PHE A 13 3.806 0.006 17.472 1.00 22.36 C
+ATOM 88 CD1 PHE A 13 3.397 -0.326 16.160 1.00 24.58 C
+ATOM 89 CD2 PHE A 13 3.196 1.079 18.116 1.00 25.52 C
+ATOM 90 CE1 PHE A 13 2.424 0.450 15.512 1.00 23.56 C
+ATOM 91 CE2 PHE A 13 2.192 1.848 17.476 1.00 28.44 C
+ATOM 92 CZ PHE A 13 1.812 1.525 16.178 1.00 24.75 C
+ATOM 93 N SER A 14 6.971 1.392 19.374 1.00 22.92 N
+ATOM 94 CA SER A 14 7.245 2.792 19.704 1.00 23.78 C
+ATOM 95 C SER A 14 8.443 3.335 18.912 1.00 22.99 C
+ATOM 96 O SER A 14 8.457 4.527 18.605 1.00 22.38 O
+ATOM 97 CB SER A 14 7.411 3.028 21.215 1.00 23.86 C
+ATOM 98 OG SER A 14 8.373 2.104 21.713 1.00 28.91 O
+ATOM 99 N THR A 15 9.406 2.477 18.570 1.00 21.61 N
+ATOM 100 CA THR A 15 10.529 2.849 17.692 1.00 22.47 C
+ATOM 101 C THR A 15 10.076 3.147 16.251 1.00 22.47 C
+ATOM 102 O THR A 15 10.513 4.137 15.646 1.00 22.91 O
+ATOM 103 CB THR A 15 11.632 1.745 17.679 1.00 21.94 C
+ATOM 104 OG1 THR A 15 12.143 1.591 18.998 1.00 24.54 O
+ATOM 105 CG2 THR A 15 12.820 2.125 16.775 1.00 20.96 C
+ATOM 106 N LEU A 16 9.218 2.285 15.713 1.00 22.64 N
+ATOM 107 CA LEU A 16 8.601 2.542 14.397 1.00 23.38 C
+ATOM 108 C LEU A 16 7.950 3.914 14.418 1.00 23.19 C
+ATOM 109 O LEU A 16 8.165 4.710 13.542 1.00 23.55 O
+ATOM 110 CB LEU A 16 7.531 1.528 14.118 1.00 22.93 C
+ATOM 111 CG LEU A 16 6.915 1.613 12.703 1.00 24.17 C
+ATOM 112 CD1 LEU A 16 7.939 1.311 11.620 1.00 25.00 C
+ATOM 113 CD2 LEU A 16 5.688 0.682 12.645 1.00 25.66 C
+ATOM 114 N ARG A 17 7.088 4.125 15.397 1.00 23.18 N
+ATOM 115 CA ARG A 17 6.389 5.400 15.571 1.00 25.38 C
+ATOM 116 C ARG A 17 7.319 6.614 15.658 1.00 25.75 C
+ATOM 117 O ARG A 17 6.969 7.708 15.206 1.00 25.40 O
+ATOM 118 CB ARG A 17 5.513 5.322 16.830 1.00 25.81 C
+ATOM 119 CG ARG A 17 4.320 4.414 16.656 1.00 30.48 C
+ATOM 120 CD ARG A 17 3.165 5.210 16.114 1.00 37.86 C
+ATOM 121 NE ARG A 17 2.728 6.262 17.020 1.00 40.36 N
+ATOM 122 CZ ARG A 17 2.363 7.487 16.640 1.00 42.12 C
+ATOM 123 NH1 ARG A 17 2.421 7.837 15.364 1.00 42.72 N
+ATOM 124 NH2 ARG A 17 1.965 8.378 17.540 1.00 42.89 N
+ATOM 125 N ALA A 18 8.497 6.441 16.251 1.00 25.66 N
+ATOM 126 CA ALA A 18 9.446 7.567 16.391 1.00 25.85 C
+ATOM 127 C ALA A 18 10.033 7.969 15.047 1.00 25.48 C
+ATOM 128 O ALA A 18 10.581 9.040 14.912 1.00 25.40 O
+ATOM 129 CB ALA A 18 10.576 7.236 17.375 1.00 25.73 C
+ATOM 130 N TYR A 19 9.908 7.101 14.051 1.00 26.27 N
+ATOM 131 CA TYR A 19 10.420 7.402 12.731 1.00 27.14 C
+ATOM 132 C TYR A 19 9.383 8.090 11.855 1.00 27.61 C
+ATOM 133 O TYR A 19 9.667 8.392 10.684 1.00 29.08 O
+ATOM 134 CB TYR A 19 10.983 6.136 12.065 1.00 26.44 C
+ATOM 135 CG TYR A 19 12.382 5.763 12.527 1.00 25.09 C
+ATOM 136 CD1 TYR A 19 12.592 4.678 13.365 1.00 24.77 C
+ATOM 137 CD2 TYR A 19 13.506 6.459 12.056 1.00 25.15 C
+ATOM 138 CE1 TYR A 19 13.869 4.326 13.772 1.00 26.48 C
+ATOM 139 CE2 TYR A 19 14.778 6.114 12.449 1.00 24.51 C
+ATOM 140 CZ TYR A 19 14.955 5.041 13.313 1.00 25.85 C
+ATOM 141 OH TYR A 19 16.218 4.687 13.681 1.00 27.58 O
+ATOM 142 N CYS A 20 8.190 8.332 12.416 1.00 27.45 N
+ATOM 143 CA CYS A 20 7.149 9.149 11.760 1.00 28.63 C
+ATOM 144 C CYS A 20 7.579 10.594 11.704 1.00 29.12 C
+ATOM 145 O CYS A 20 8.437 11.027 12.486 1.00 29.95 O
+ATOM 146 CB CYS A 20 5.808 9.082 12.512 1.00 27.21 C
+ATOM 147 SG CYS A 20 5.054 7.400 12.643 1.00 27.12 S
+ATOM 148 N ASP A 21 6.957 11.355 10.809 1.00 29.71 N
+ATOM 149 CA ASP A 21 7.069 12.816 10.878 1.00 31.80 C
+ATOM 150 C ASP A 21 6.156 13.379 11.967 1.00 32.16 C
+ATOM 151 O ASP A 21 5.066 12.863 12.223 1.00 32.73 O
+ATOM 152 CB ASP A 21 6.743 13.456 9.532 1.00 31.84 C
+ATOM 153 CG ASP A 21 7.737 13.075 8.451 1.00 34.01 C
+ATOM 154 OD1 ASP A 21 8.776 12.448 8.773 1.00 37.23 O
+ATOM 155 OD2 ASP A 21 7.485 13.399 7.276 1.00 36.47 O
+ATOM 156 N SER A 22 6.636 14.421 12.624 1.00 32.79 N
+ATOM 157 CA SER A 22 5.831 15.204 13.544 1.00 33.86 C
+ATOM 158 C SER A 22 6.297 16.650 13.500 1.00 33.85 C
+ATOM 159 O SER A 22 5.699 17.505 12.842 1.00 34.42 O
+ATOM 160 CB SER A 22 5.960 14.654 14.965 1.00 33.89 C
+ATOM 161 OG SER A 22 7.297 14.662 15.416 1.00 34.18 O
--- /dev/null
+ATOM 163 N ASN B 1 7.777 -9.125 21.533 1.00 33.02 N
+ATOM 164 CA ASN B 1 7.394 -7.701 21.494 1.00 32.93 C
+ATOM 165 C ASN B 1 8.165 -6.972 20.418 1.00 32.33 C
+ATOM 166 O ASN B 1 8.826 -5.961 20.667 1.00 32.66 O
+ATOM 167 CB ASN B 1 7.627 -6.995 22.843 1.00 34.21 C
+ATOM 168 CG ASN B 1 6.898 -5.663 22.919 1.00 35.43 C
+ATOM 169 OD1 ASN B 1 6.894 -4.997 23.955 1.00 39.65 O
+ATOM 170 ND2 ASN B 1 6.249 -5.277 21.811 1.00 34.80 N
+ATOM 171 N SER B 2 8.077 -7.464 19.197 1.00 31.35 N
+ATOM 172 CA SER B 2 8.918 -6.884 18.179 1.00 30.61 C
+ATOM 173 C SER B 2 8.236 -6.894 16.849 1.00 28.89 C
+ATOM 174 O SER B 2 7.254 -7.611 16.627 1.00 29.38 O
+ATOM 175 CB SER B 2 10.252 -7.634 18.097 1.00 30.61 C
+ATOM 176 OG SER B 2 10.103 -8.762 17.271 1.00 33.42 O
+ATOM 177 N LEU B 3 8.738 -6.068 15.952 1.00 26.72 N
+ATOM 178 CA LEU B 3 8.265 -6.161 14.580 1.00 25.18 C
+ATOM 179 C LEU B 3 9.430 -6.045 13.615 1.00 24.27 C
+ATOM 180 O LEU B 3 10.429 -5.380 13.873 1.00 24.05 O
+ATOM 181 CB LEU B 3 7.174 -5.139 14.284 1.00 25.73 C
+ATOM 182 CG LEU B 3 7.627 -3.682 14.188 1.00 23.35 C
+ATOM 183 CD1 LEU B 3 7.962 -3.282 12.724 1.00 27.40 C
+ATOM 184 CD2 LEU B 3 6.522 -2.803 14.735 1.00 26.91 C
+ATOM 185 N ARG B 4 9.286 -6.694 12.477 1.00 23.24 N
+ATOM 186 CA ARG B 4 10.292 -6.606 11.476 1.00 23.81 C
+ATOM 187 C ARG B 4 9.587 -6.562 10.140 1.00 23.82 C
+ATOM 188 O ARG B 4 8.791 -7.452 9.836 1.00 23.19 O
+ATOM 189 CB ARG B 4 11.181 -7.837 11.555 1.00 23.89 C
+ATOM 190 CG ARG B 4 12.356 -7.683 10.679 1.00 29.24 C
+ATOM 191 CD ARG B 4 13.449 -8.499 11.250 1.00 33.23 C
+ATOM 192 NE ARG B 4 14.623 -8.240 10.478 1.00 33.66 N
+ATOM 193 CZ ARG B 4 15.799 -8.768 10.720 1.00 33.11 C
+ATOM 194 NH1 ARG B 4 15.939 -9.618 11.724 1.00 36.61 N
+ATOM 195 NH2 ARG B 4 16.807 -8.472 9.917 1.00 30.33 N
+ATOM 196 N ALA B 5 9.851 -5.514 9.370 1.00 22.74 N
+ATOM 197 CA ALA B 5 9.252 -5.359 8.056 1.00 24.42 C
+ATOM 198 C ALA B 5 10.204 -4.684 7.073 1.00 25.45 C
+ATOM 199 O ALA B 5 10.924 -3.742 7.441 1.00 23.37 O
+ATOM 200 CB ALA B 5 7.949 -4.606 8.162 1.00 25.02 C
+ATOM 201 N CYS B 6 10.214 -5.193 5.834 1.00 25.89 N
+ATOM 202 CA CYS B 6 11.090 -4.713 4.783 1.00 27.91 C
+ATOM 203 C CYS B 6 10.248 -4.437 3.532 1.00 29.07 C
+ATOM 204 O CYS B 6 9.114 -4.955 3.389 1.00 30.54 O
+ATOM 205 CB CYS B 6 12.216 -5.728 4.469 1.00 27.14 C
+ATOM 206 SG CYS B 6 13.453 -6.025 5.744 1.00 29.35 S
+ATOM 207 N GLY B 7 10.766 -3.581 2.658 1.00 30.07 N
+ATOM 208 CA GLY B 7 10.084 -3.274 1.405 1.00 29.90 C
+ATOM 209 C GLY B 7 8.703 -2.668 1.624 1.00 29.69 C
+ATOM 210 O GLY B 7 8.519 -1.915 2.585 1.00 29.52 O
+ATOM 211 N PRO B 8 7.738 -2.980 0.729 1.00 28.92 N
+ATOM 212 CA PRO B 8 6.397 -2.394 0.712 1.00 27.64 C
+ATOM 213 C PRO B 8 5.624 -2.549 2.038 1.00 26.51 C
+ATOM 214 O PRO B 8 4.876 -1.659 2.404 1.00 25.63 O
+ATOM 215 CB PRO B 8 5.691 -3.188 -0.374 1.00 29.36 C
+ATOM 216 CG PRO B 8 6.778 -3.579 -1.307 1.00 29.26 C
+ATOM 217 CD PRO B 8 7.936 -3.911 -0.410 1.00 30.42 C
+ATOM 218 N ALA B 9 5.801 -3.678 2.718 1.00 24.26 N
+ATOM 219 CA ALA B 9 5.135 -3.901 4.015 1.00 23.27 C
+ATOM 220 C ALA B 9 5.565 -2.853 5.028 1.00 21.89 C
+ATOM 221 O ALA B 9 4.763 -2.404 5.844 1.00 21.62 O
+ATOM 222 CB ALA B 9 5.473 -5.300 4.543 1.00 22.17 C
+ATOM 223 N LEU B 10 6.837 -2.471 4.983 1.00 22.23 N
+ATOM 224 CA LEU B 10 7.341 -1.520 5.957 1.00 22.40 C
+ATOM 225 C LEU B 10 6.732 -0.170 5.629 1.00 23.35 C
+ATOM 226 O LEU B 10 6.280 0.544 6.509 1.00 22.50 O
+ATOM 227 CB LEU B 10 8.867 -1.482 5.967 1.00 21.92 C
+ATOM 228 CG LEU B 10 9.447 -0.374 6.867 1.00 21.79 C
+ATOM 229 CD1 LEU B 10 9.135 -0.654 8.337 1.00 22.63 C
+ATOM 230 CD2 LEU B 10 10.956 -0.255 6.666 1.00 21.99 C
+ATOM 231 N MET B 11 6.670 0.154 4.347 1.00 23.15 N
+ATOM 232 CA MET B 11 6.064 1.417 3.971 1.00 24.74 C
+ATOM 233 C MET B 11 4.566 1.418 4.323 1.00 23.95 C
+ATOM 234 O MET B 11 4.071 2.422 4.814 1.00 22.80 O
+ATOM 235 CB MET B 11 6.348 1.756 2.496 1.00 25.08 C
+ATOM 236 CG MET B 11 7.871 1.889 2.178 1.00 30.95 C
+ATOM 237 SD MET B 11 8.800 3.187 3.075 1.00 42.86 S
+ATOM 238 CE MET B 11 9.806 2.229 4.203 1.00 36.96 C
+ATOM 239 N ASP B 12 3.873 0.280 4.155 1.00 23.76 N
+ATOM 240 CA ASP B 12 2.424 0.208 4.497 1.00 23.79 C
+ATOM 241 C ASP B 12 2.182 0.380 6.015 1.00 24.03 C
+ATOM 242 O ASP B 12 1.204 1.034 6.459 1.00 24.81 O
+ATOM 243 CB ASP B 12 1.833 -1.150 4.100 1.00 23.87 C
+ATOM 244 CG ASP B 12 1.706 -1.360 2.574 1.00 27.76 C
+ATOM 245 OD1 ASP B 12 1.520 -0.421 1.801 1.00 28.65 O
+ATOM 246 OD2 ASP B 12 1.771 -2.522 2.159 1.00 30.65 O
+ATOM 247 N MET B 13 3.088 -0.194 6.800 0.50 22.32 N
+ATOM 248 CA MET B 13 3.030 -0.068 8.253 0.50 22.27 C
+ATOM 249 C MET B 13 3.290 1.367 8.715 1.00 23.91 C
+ATOM 250 O MET B 13 2.554 1.890 9.547 1.00 24.64 O
+ATOM 251 CB MET B 13 3.982 -1.066 8.911 0.50 22.09 C
+ATOM 252 CG MET B 13 3.381 -2.492 8.962 0.50 23.66 C
+ATOM 253 SD MET B 13 1.782 -2.604 9.828 0.50 34.49 S
+ATOM 254 CE MET B 13 1.906 -1.416 11.168 0.50 27.34 C
+ATOM 255 N LEU B 14 4.299 2.021 8.142 1.00 24.10 N
+ATOM 256 CA LEU B 14 4.531 3.441 8.452 1.00 25.59 C
+ATOM 257 C LEU B 14 3.335 4.292 8.062 1.00 25.96 C
+ATOM 258 O LEU B 14 2.984 5.235 8.759 1.00 26.04 O
+ATOM 259 CB LEU B 14 5.752 3.959 7.713 1.00 25.58 C
+ATOM 260 CG LEU B 14 7.108 3.706 8.366 1.00 26.83 C
+ATOM 261 CD1 LEU B 14 8.211 3.994 7.344 1.00 27.29 C
+ATOM 262 CD2 LEU B 14 7.281 4.557 9.636 1.00 27.12 C
+ATOM 263 N ARG B 15 2.708 3.961 6.942 1.00 26.18 N
+ATOM 264 CA ARG B 15 1.557 4.706 6.490 1.00 26.93 C
+ATOM 265 C ARG B 15 0.434 4.695 7.543 1.00 26.95 C
+ATOM 266 O ARG B 15 -0.108 5.745 7.860 1.00 27.66 O
+ATOM 267 CB ARG B 15 1.084 4.207 5.119 1.00 27.18 C
+ATOM 268 CG ARG B 15 -0.082 4.997 4.551 1.00 30.65 C
+ATOM 269 CD ARG B 15 -0.087 4.946 3.031 1.00 34.85 C
+ATOM 270 NE ARG B 15 -0.395 3.614 2.535 1.00 36.65 N
+ATOM 271 CZ ARG B 15 -0.360 3.252 1.250 1.00 38.61 C
+ATOM 272 NH1 ARG B 15 -0.011 4.112 0.301 1.00 38.36 N
+ATOM 273 NH2 ARG B 15 -0.663 2.010 0.918 1.00 39.33 N
+ATOM 274 N VAL B 16 0.098 3.534 8.097 1.00 25.17 N
+ATOM 275 CA VAL B 16 -0.976 3.478 9.087 1.00 25.70 C
+ATOM 276 C VAL B 16 -0.523 3.865 10.514 1.00 25.06 C
+ATOM 277 O VAL B 16 -1.345 4.291 11.316 1.00 25.34 O
+ATOM 278 CB VAL B 16 -1.707 2.097 9.086 1.00 25.20 C
+ATOM 279 CG1 VAL B 16 -2.364 1.882 7.739 1.00 24.24 C
+ATOM 280 CG2 VAL B 16 -0.765 0.931 9.457 1.00 26.54 C
+ATOM 281 N ALA B 17 0.757 3.651 10.846 1.00 25.74 N
+ATOM 282 CA ALA B 17 1.270 4.027 12.181 1.00 26.71 C
+ATOM 283 C ALA B 17 1.463 5.546 12.314 1.00 27.40 C
+ATOM 284 O ALA B 17 1.537 6.073 13.439 1.00 26.17 O
+ATOM 285 CB ALA B 17 2.582 3.342 12.477 1.00 26.10 C
+ATOM 286 N CYS B 18 1.604 6.241 11.182 1.00 27.75 N
+ATOM 287 CA CYS B 18 2.018 7.653 11.246 1.00 30.16 C
+ATOM 288 C CYS B 18 0.874 8.545 10.800 1.00 32.63 C
+ATOM 289 O CYS B 18 0.453 8.457 9.663 1.00 33.66 O
+ATOM 290 CB CYS B 18 3.251 7.928 10.375 1.00 29.69 C
+ATOM 291 SG CYS B 18 4.706 6.903 10.750 1.00 27.57 S
+ATOM 292 N PRO B 19 0.384 9.417 11.692 1.00 35.61 N
+ATOM 293 CA PRO B 19 -0.756 10.280 11.313 1.00 36.79 C
+ATOM 294 C PRO B 19 -0.335 11.358 10.311 1.00 38.57 C
+ATOM 295 O PRO B 19 -1.008 11.547 9.284 1.00 38.86 O
+ATOM 296 CB PRO B 19 -1.209 10.893 12.643 1.00 37.04 C
+ATOM 297 CG PRO B 19 -0.356 10.252 13.725 1.00 36.65 C
+ATOM 298 CD PRO B 19 0.863 9.687 13.059 1.00 35.75 C
+ATOM 299 N ASN B 20 0.773 12.040 10.608 1.00 40.17 N
+ATOM 300 CA ASN B 20 1.302 13.135 9.777 1.00 41.84 C
+ATOM 301 C ASN B 20 2.319 12.659 8.727 1.00 42.49 C
+ATOM 302 O ASN B 20 2.981 13.474 8.075 1.00 43.37 O
+ATOM 303 CB ASN B 20 1.953 14.224 10.653 1.00 41.95 C
+ATOM 304 CG ASN B 20 1.022 14.760 11.730 1.00 42.67 C
+ATOM 305 OD1 ASN B 20 -0.061 15.279 11.439 1.00 43.67 O
+ATOM 306 ND2 ASN B 20 1.448 14.641 12.986 1.00 44.42 N
+ATOM 307 N GLY B 21 2.448 11.345 8.579 1.00 43.01 N
+ATOM 308 CA GLY B 21 3.307 10.759 7.547 1.00 43.59 C
+ATOM 309 C GLY B 21 4.765 10.573 7.935 1.00 43.93 C
+ATOM 310 O GLY B 21 5.116 10.609 9.110 1.00 43.44 O
+ATOM 311 N PHE B 22 5.605 10.381 6.920 1.00 44.41 N
+ATOM 312 CA PHE B 22 7.020 10.035 7.072 1.00 45.10 C
+ATOM 313 C PHE B 22 7.719 10.326 5.744 1.00 45.44 C
+ATOM 314 O PHE B 22 7.081 10.277 4.695 1.00 45.70 O
+ATOM 315 CB PHE B 22 7.167 8.548 7.432 1.00 44.91 C
+ATOM 316 CG PHE B 22 6.626 7.609 6.377 1.00 45.86 C
+ATOM 317 CD1 PHE B 22 5.262 7.313 6.316 1.00 45.83 C
+ATOM 318 CD2 PHE B 22 7.485 7.020 5.447 1.00 45.83 C
+ATOM 319 CE1 PHE B 22 4.765 6.449 5.343 1.00 46.40 C
+ATOM 320 CE2 PHE B 22 6.996 6.157 4.469 1.00 46.08 C
+ATOM 321 CZ PHE B 22 5.636 5.867 4.415 1.00 45.74 C
+ATOM 322 N ASN B 23 9.019 10.613 5.767 1.00 46.04 N
+ATOM 323 CA ASN B 23 9.707 11.001 4.522 1.00 46.82 C
+ATOM 324 C ASN B 23 11.159 10.546 4.310 1.00 47.22 C
+ATOM 325 O ASN B 23 11.711 10.741 3.221 1.00 47.50 O
+ATOM 326 CB ASN B 23 9.582 12.511 4.281 1.00 46.85 C
+ATOM 327 CG ASN B 23 8.570 12.851 3.193 1.00 47.41 C
+ATOM 328 OD1 ASN B 23 7.402 12.460 3.263 1.00 47.41 O
+ATOM 329 ND2 ASN B 23 9.016 13.596 2.185 1.00 48.44 N
+ATOM 330 N SER B 24 11.769 9.963 5.341 1.00 47.58 N
+ATOM 331 CA SER B 24 13.164 9.502 5.297 1.00 47.77 C
+ATOM 332 C SER B 24 14.119 10.465 4.589 1.00 47.92 C
+ATOM 333 O SER B 24 14.379 11.569 5.069 1.00 48.09 O
+ATOM 334 CB SER B 24 13.253 8.110 4.659 1.00 47.93 C
+ATOM 335 OG SER B 24 12.414 7.184 5.333 1.00 48.18 O
--- /dev/null
+2wfu UNRES-Dock test
+SEED=-77763650 pdbstart re one_letter BOXX=78.90 &
+BOXY=78.90 BOXZ=78.90 CONSTR_HOMOL=8 pdbref
+ reset_vel=1000 nstep=200000 ntwe=1000 ntwx=1000 dt=0.2 lang=1 &
+scal_fric=0.02 preminim cart
+print_min_ini print_min_res print_min_stat maxfun=15000
+nrep=8 nstex=1000 tlist mlist sync nsyn=1000 traj1file rest1file &
+TRAJCACHE=200
+270 280 290 300 310 320 330 345
+1 1 1 1 1 1 1 1
+WSC=1.00000 WSCP=1.23315 WELEC=0.84476 WBOND=1.00000 WANG=0.62954 &
+WSCLOC=0.10554 WTOR=1.34316 WTORD=1.26571 WCORRH=0.19212 WCORR5=0.00000 &
+WCORR6=0.00000 WEL_LOC=0.37357 WTURN3=1.40323 WTURN4=0.64673 WTURN6=0.00000 &
+WVDWPP=0.23173 WHPB=1.00000 WSCCOR=0.25 &
+CUTOFF=7.00000 WCORR4=0.00000
+plik1ter.pdb
+0
+0
+HOMOL_DIST=0.1 HOMOL_ANGLE=1.0 HOMOL_THETA=1.0 HOMOL_SCD=1.0 DIST_CUT=15.0 &
+READ2SIGMA START_FROM_MODELS
+model01.pdb
+model02.pdb
+model03.pdb
+model04.pdb
+model05.pdb
+model06.pdb
+model07.pdb
+model08.pdb
--- /dev/null
+2wfu UNRES-Dock
+nres=49 one_letter rescale=2 PRINT_CART PDBOUT=1 iopt=1 temper=280.0 &
+ CONSTR_HOMOL=8 &
+BOXX=78.90 BOXY=78.90 BOXZ=78.90
+WSC=1.00000 WSCP=1.23315 WELEC=0.84476 WBOND=1.00000 WANG=0.62954 &
+WSCLOC=0.10554 WTOR=1.34316 WTORD=1.26571 WCORRH=0.19212 WCORR5=0.00000 &
+WCORR6=0.00000 WEL_LOC=0.37357 WTURN3=1.40323 WTURN4=0.64673 WTURN6=0.00000 &
+WVDWPP=0.23173 WHPB=1.00000 WSCCOR=0.25 &
+CUTOFF=7.00000 WCORR4=0.00000
+GVVDSCCRNSCSFSTLRAYCDSXXNSLRACGPALMDMLRVACPNGFNSX
+0
+HOMOL_DIST=0.1 HOMOL_ANGLE=1.0 HOMOL_THETA=1.0 HOMOL_SCD=1.0 DIST_CUT=15.0 &
+READ2SIGMA
+model01.pdb
+model02.pdb
+model03.pdb
+model04.pdb
+model05.pdb
+model06.pdb
+model07.pdb
+model08.pdb
--- /dev/null
+#!/bin/bash
+
+if [ "$1" == "cluster" ]; then
+ file=wham_T280K_ave.pdb
+else
+ exit 1
+fi
+
+# Check if file exist
+if [ ! -f $file ]; then
+ echo "CRITICAL: out $file does not exist"
+ exit 2
+fi
+
+fam=`grep THERE clust_clust.out_000|awk '{print $3}'`
+grep THERE clust_clust.out_000
+grep REMARK wham*[1-9].pdb
+
+ if [ "$fam" != "5" ]; then
+ echo 'ERROR: number of families not equal 5'
+ exit 1
+ fi
+
--- /dev/null
+#!/bin/bash
+
+ rm -rf remd_all.stat
+ tail -q -n +200 2WFU_dock*.stat >remd_all.stat
+ if [ ! -s remd_all.stat ]; then
+ echo 'FATAL error - stat files empty'
+ exit 2
+ fi
+
+ grep ACC 2WFU_dock.out_GB000 |tail -7
+ exchange=`grep ACC 2WFU_dock.out_GB000 |tail -7|awk '{a=a+$4}END{print a/NR}'`
+ echo "average exchange = ${exchange}"
+ if [ `echo "a=${exchange};a<0.2"|bc -l` != "0" ]; then
+ echo 'ERROR average exchange smaller than 0.2'
+ exit 1
+ else
+ exit 0
+ fi
+
--- /dev/null
+#!/bin/sh
+
+../../bin/generator $1 $2 0 8 -991234
+cat 2WFU_A.pdb > plik1ter.pdb
+echo TER >> plik1ter.pdb
+cat 2WFU_B.pdb >> plik1ter.pdb
+
+pdb=`ls model??.pdb |wc -w`
+sco=`ls template??.sco |wc -w`
+
+if [ "$pdb" = "8" ] && [ "$sco" = "8" ]; then
+ echo "8 starting models generated"
+else
+ exit 1
+fi
+
+
\ No newline at end of file
--- /dev/null
+ isampl=1 &
+SEED=-77763650 einicheck=1 rescale=2 delta=0.02 cxfile classify &
+ n_ene=19 CONSTR_HOMOL=8 &
+BOXX=78.90 BOXY=78.90 BOXZ=78.90
+nres=49 one_letter
+GVVDSCCRNSCSFSTLRAYCDSXXNSLRACGPALMDMLRVACPNGFNSX
+0
+HOMOL_DIST=0.1 HOMOL_ANGLE=1.0 HOMOL_THETA=1.0 HOMOL_SCD=1.0 DIST_CUT=15.0 &
+READ2SIGMA
+model01.pdb
+model02.pdb
+model03.pdb
+model04.pdb
+model05.pdb
+model06.pdb
+model07.pdb
+model08.pdb
+WSC=1.00000 WSCP=1.23315 WELEC=0.84476 WBOND=1.00000 WANG=0.62954 &
+WSCLOC=0.10554 WTOR=1.34316 WTORD=1.26571 WCORRH=0.19212 WCORR5=0.00000 &
+WCORR6=0.00000 WEL_LOC=0.37357 WTURN3=1.40323 WTURN4=0.64673 WTURN6=0.00000 &
+WVDWPP=0.23173 WHPB=1.00000 WSCCOR=0.25 &
+CUTOFF=7.00000 WCORR4=0.00000
+
+nt=8 replica read_iset
+nr=1 temp=270 fi=0.0 0.0 0.0 0.0 0.0
+kh= 0.0 Q0=0.0
+nr=1 temp=280 fi=0.0 0.0 0.0 0.0 0.0
+kh= 0.0 Q0=0.0
+nr=1 temp=290 fi=0.0 0.0 0.0 0.0 0.0
+kh= 0.0 Q0=0.0
+nr=1 temp=300 fi=0.0 0.0 0.0 0.0 0.0
+kh= 0.0 Q0=0.0
+nr=1 temp=310 fi=0.0 0.0 0.0 0.0 0.0
+kh= 0.0 Q0=0.0
+nr=1 temp=320 fi=0.0 0.0 0.0 0.0 0.0
+kh= 0.0 Q0=0.0
+nr=1 temp=330 fi=0.0 0.0 0.0 0.0 0.0
+kh= 0.0 Q0=0.0
+nr=1 temp=345 fi=0.0 0.0 0.0 0.0 0.0
+kh= 0.0 Q0=0.0
+nfile_cx=1 rec_start=50 rec_end=500 totraj=8
+2WFU_dock_MD000
+pdbref
+plik1ter.pdb
--- /dev/null
+#!/bin/bash
+
+if [ "$1" == "wham" ]; then
+ file=wham.thermal
+else
+ exit 1
+fi
+
+# Check if file exist
+if [ ! -f $file ]; then
+ echo "CRITICAL: out $file do not exist"
+ exit 2
+fi
+
+error=0
+max=`awk '{print $1,$7*1}' $file | sort -n -k 2 | awk 'END{print $1}'`
+echo 'T of max Cv(T) ' $max
+rms=`awk '{if ($1<280) {a=a+$5;n++}}END{print a/n}' $file`
+echo 'average rms for T<280 ' $rms
+
+ if [ `grep differs wham.out* |wc -l` != "0" ]; then
+ echo 'ERROR: energy differs remarkably from the value read in'
+ echo 'first 10 warnings'
+ grep differs wham.out*|head -10
+ error=1
+ fi
+
+ if [ `echo "a=$max-293;if(0>a)a*=-1;a>10.0"|bc -l` != "0" ]; then
+ echo 'ERROR wrong T max of Cv(T) by more than 10 K'
+ error=1
+ fi
+
+ if [ `echo "a=$rms-9.3;if(0>a)a*=-1;a>0.2"|bc -l` != "0" ]; then
+ echo 'ERROR wrong average rms for T<280 by more than 0.2'
+ error=1
+ fi
+
+ if [ "$error" != "0" ];then
+ exit 1
+ fi
+
\ No newline at end of file
#
+enable_language (Fortran)
+
set(UNRES_DOCK
- generator_v13b.F
+ generator.f
)
#=========================================
install(TARGETS UNRES_DOCK_BIN DESTINATION ${CMAKE_INSTALL_PREFIX}/unres-dock)
+# Add tests
+
+# MESSAGE (STATUS "${MPI_Fortran_LIBRARIES}")
+ if ("${MPI_Fortran_LIBRARIES}" MATCHES "lam")
+ MESSAGE (STATUS "LAM MPI library detected")
+ set (boot_lam "-boot")
+ else()
+ set (boot_lam "")
+ endif()
+
+ if (UNRES_SRUN)
+ set (np "-n")
+ set (mpiexec "srun")
+ elseif(UNRES_MPIRUN)
+ set (np "-np")
+ set (mpiexec "mpirun")
+ else()
+ set (np "-np")
+ set (mpiexec "mpiexec")
+ endif()
+
+
+
+FILE(COPY ${CMAKE_SOURCE_DIR}/ctest/dock/
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR} FILES_MATCHING PATTERN "*" )
+
+
+if(UNRES_WITH_MPI)
+ if(UNRES_MD_FF STREQUAL "E0LL2Y")
+
+ set(UNRES_BIN "unresMD-mult_${Fortran_COMPILER_NAME}_MPI_${UNRES_MD_FF}.exe")
+ set(UNRES_WHAM_M_BIN "wham-mult_${Fortran_COMPILER_NAME}_MPI_${UNRES_MD_FF}.exe")
+ set(UNRES_CLUSTER_WHAM_M_BIN "cluster_wham-mult_${Fortran_COMPILER_NAME}_MPI_${UNRES_MD_FF}.exe")
+
+FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_mpi_E0LL2Y.sh
+"#!/bin/sh
+export POT=GB
+export FGPROCS=$2
+export PREFIX=$1
+#-----------------------------------------------------------------------------
+UNRES_BIN=${CMAKE_BINARY_DIR}/bin/${UNRES_BIN}
+#-----------------------------------------------------------------------------
+DD=${CMAKE_SOURCE_DIR}/PARAM
+export BONDPAR=$DD/bond_AM1_ext_dum.parm
+export THETPAR=$DD/theta_abinitio_old_ext.parm
+export THETPARPDB=$DD/thetaml_ext.5parm
+export ROTPARPDB=$DD/scgauss_ext.parm
+export ROTPAR=$DD/rotamers_AM1_aura_ext.10022007.parm
+export TORPAR=$DD/torsion_631Gdp_old_ext.parm
+export TORDPAR=$DD/torsion_double_631Gdp_old_ext.parm
+export ELEPAR=$DD/electr_631Gdp_ext.parm
+export SIDEPAR=$DD//scinter_GB_ext_lip.parm
+export FOURIER=$DD/fourier_opt_ext.parm.1igd_hc_iter3_3
+export SCCORPAR=$DD/sccor_am1_pawel_ext.dat
+export SCPPAR=$DD/scp_ext.parm
+export PATTERN=$DD/patterns.cart
+export LIPTRANPAR=$DD/Lip_tran_initial_ext.parm
+#-----------------------------------------------------------------------------
+echo CTEST_FULL_OUTPUT
+${mpiexec} ${boot_lam} ${np} $3 $UNRES_BIN | grep -v traj1file
+./mremd_check.sh $1
+")
+
+#
+# File permissions workaround
+#
+FILE( COPY ${CMAKE_CURRENT_BINARY_DIR}/scripts/test_mpi_E0LL2Y.sh
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
+ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+)
+
+FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scripts/wham_mpi_E0LL2Y.sh
+"#!/bin/sh
+export POT=GB
+export PREFIX=$1
+#-----------------------------------------------------------------------------
+WHAM_BIN=${CMAKE_BINARY_DIR}/bin/${UNRES_WHAM_M_BIN}
+#-----------------------------------------------------------------------------
+DD=${CMAKE_SOURCE_DIR}/PARAM
+export BONDPAR=$DD/bond_AM1_ext_dum.parm
+export THETPAR=$DD/theta_abinitio_old_ext.parm
+export ROTPAR=$DD/rotamers_AM1_aura_ext.10022007.parm
+export TORPAR=$DD/torsion_631Gdp_old_ext.parm
+export TORDPAR=$DD/torsion_double_631Gdp_old_ext.parm
+export ELEPAR=$DD/electr_631Gdp_ext.parm
+export SIDEPAR=$DD/scinter_GB_ext_lip.parm
+export FOURIER=$DD/fourier_opt_ext.parm.1igd_hc_iter3_3
+export SCPPAR=$DD/scp_ext.parm
+export SCCORPAR=$DD/sccor_am1_pawel_ext.dat
+export THETPARPDB=$DD/thetaml_ext.5parm
+export ROTPARPDB=$DD/scgauss_ext.parm
+export PATTERN=$DD/patterns.cart
+export LIPTRANPAR=$DD/Lip_tran_initial_ext.parm
+export CONTFUNC=GB
+export SIDEP=$DD/contact_ext.3.parm
+export SCRATCHDIR=.
+#-----------------------------------------------------------------------------
+echo CTEST_FULL_OUTPUT
+${mpiexec} ${boot_lam} ${np} $2 $WHAM_BIN
+./wham_check.sh $1
+")
+
+#
+# File permissions workaround
+#
+FILE( COPY ${CMAKE_CURRENT_BINARY_DIR}/scripts/wham_mpi_E0LL2Y.sh
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
+ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+)
+
+FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/scripts/cluster_wham_mpi_E0LL2Y.sh
+"#!/bin/sh
+export POT=GB
+export INPUT=$1
+export INTIN=wham
+export OUTPUT=clust
+export PDB=CART
+export COORD=CX
+export PRINTCOOR=PRINT_PDB
+#-----------------------------------------------------------------------------
+CLUSTER_WHAM_BIN=${CMAKE_BINARY_DIR}/bin/${UNRES_CLUSTER_WHAM_M_BIN}
+#-----------------------------------------------------------------------------
+DD=${CMAKE_SOURCE_DIR}/PARAM
+export BONDPAR=$DD/bond_AM1_ext_dum.parm
+export THETPAR=$DD/theta_abinitio_old_ext.parm
+export ROTPAR=$DD/rotamers_AM1_aura_ext.10022007.parm
+export TORPAR=$DD/torsion_631Gdp_old_ext.parm
+export TORDPAR=$DD/torsion_double_631Gdp_old_ext.parm
+export ELEPAR=$DD/electr_631Gdp_ext.parm
+export SIDEPAR=$DD/scinter_GB_ext_lip.parm
+export FOURIER=$DD/fourier_opt_ext.parm.1igd_hc_iter3_3
+export SCPPAR=$DD/scp_ext.parm
+export SCCORPAR=$DD/sccor_am1_pawel_ext.dat
+export THETPARPDB=$DD/thetaml_ext.5parm
+export ROTPARPDB=$DD/scgauss_ext.parm
+export PATTERN=$DD/patterns.cart
+export LIPTRANPAR=$DD/Lip_tran_initial_ext.parm
+export CONTFUNC=GB
+export SIDEP=$DD/contact_ext.3.parm
+export SCRATCHDIR=.
+#-----------------------------------------------------------------------------
+echo CTEST_FULL_OUTPUT
+${mpiexec} ${boot_lam} ${np} $2 $CLUSTER_WHAM_BIN
+./cluster_wham_check.sh $1
+")
+
+#
+# File permissions workaround
+#
+FILE( COPY ${CMAKE_CURRENT_BINARY_DIR}/scripts/cluster_wham_mpi_E0LL2Y.sh
+ DESTINATION ${CMAKE_CURRENT_BINARY_DIR}
+ FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+)
+
+
+ add_test(NAME UNRES_M_DOCK_generator COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_DOCK.sh 2WFU_A.pdb 2WFU_B.pdb )
+ add_test(NAME UNRES_M_DOCK_mremd COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/test_mpi_E0LL2Y.sh 2WFU_dock 1 8 )
+ add_test(NAME UNRES_M_DOCK_wham COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/wham_mpi_E0LL2Y.sh wham 2)
+ add_test(NAME UNRES_M_DOCK_cluster COMMAND sh ${CMAKE_CURRENT_BINARY_DIR}/cluster_wham_mpi_E0LL2Y.sh cluster 2 )
+
+
+ endif(UNRES_MD_FF STREQUAL "E0LL2Y")
+endif(UNRES_WITH_MPI)
--- /dev/null
+ program generator
+ implicit none
+ integer proba, conf, cm1, cm2, accept, nd
+ integer krok, i, n, j, g, ii1, ilosc, ijl
+ integer nnn, seed, proba1, proba2, proba3, proba0x,proba0y,proba0z
+ integer ilosc_atomow1, ilosc_atomow2, korekta1, korekta2
+ integer ile_reszt_mol1, ile_reszt_mol2, ir, peptide,numerr2(90000)
+ integer numera1(90000),numerr1(90000),numera2(90000)
+ integer glys1, glys2, glye1, glye2, ilee
+ integer no_models, seed1, seed11, seed12, seed13
+ real*8 rand, r, boxx, boxy, boxz, dist2acm, dist1acm, b(4), t(3)
+ real*8 minx1, miny1, minz1, maxx1, maxy1, maxz1
+ real*8 minx2, miny2, minz2, maxx2, maxy2, maxz2
+ real*8 distx1, disty1, distz1, distx2, disty2, distz2
+ real*8 xcm1, ycm1, zcm1, xcm2, ycm2, zcm2
+ real*8 dist1cm, dist1cmt, dist2cm, dist2cmt
+ real*8 cm2xr, cm2yr, cm2zr,x2r(90000),y2r(90000),z2r(90000),dist12
+ real*8 angle, c, s, x2new, y2new, z2new
+ character*60 plik1, plik2, plik3, plik4, arg4, arg5
+ character*54 linia
+ real*8 x1(90000),y1(90000),z1(90000),x2(90000),y2(90000),z2(90000)
+ real*8 dd, wymiar, cmxx(900), cmyy(900), cmzz(900),xt2(90000,3)
+ real*8 xf(90000,3)
+ character*1 chain
+ character*3 r1s, r2s, r1e, r2e
+ character*5 atoma1(90000), atoma2(90000)
+ character*6 nazwaa1(90000), nazwar1(90000)
+ character*6 nazwaa2(90000), nazwar2(90000)
+
+ korekta1 = 1
+ korekta2 = 1
+
+c write(*,*)"Sposob uruchamiania:"
+c write(*,*)"nazwa_programu nazwa_pliku_inp_pdb1
+c & nazwa_pliku_inp_pdb2 nazwa_pliku_out"
+c write(*,*)""
+
+ nnn = iargc()
+ if (nnn.lt.5) then
+ write(*,*)"program input_pdb1 input_pdb2
+ & [0-1] number_of_models seed_number
+ & 0 for protein, 1 for peptide"
+ stop
+ endif
+
+ call getarg(1,plik1)
+ call getarg(2,plik2)
+ call getarg(3,plik3)
+ call getarg(4,arg4)
+ call getarg(5,arg5)
+ open(1,file=plik1,status="old")
+ open(2,file=plik2,status="old")
+ open(4,file='temp1')
+ open(5,file='temp2')
+ write(*,*) "All files read"
+
+ read(plik3(1:1),'(i1)') peptide
+ read(arg4,'(i2)') no_models
+ read(arg5,'(i19)') seed1
+
+ if (peptide.ne.0.and.peptide.ne.1) then
+ write(*,*) "Third parameter must be 0 or 1,
+ & where 0 is for a protein-protein docking,
+ & and 1 is for protein-peptide docking."
+ STOP
+ endif
+
+ write(*,*) "Option", peptide, "selected
+ & (0 for protein, 1 for peptide)"
+
+
+c MOLEKULA 1
+ do while (.true.)
+ read(1,'(a54)',end=22) linia
+ if (linia(1:4).eq.'ATOM'.and.linia(17:17).lt.'B') then
+ write(4,'(a54)') linia
+ endif
+ if (linia(1:3).eq.'TER') then
+c write(2,'(a54)') linia
+ goto 22
+ endif
+ enddo
+
+22 continue
+ close(4)
+ write(*,*) "Molecule 1 read"
+
+
+c MOLEKULA 2
+ do while (.true.)
+ read(2,'(a54)',end=23) linia
+ if (linia(1:4).eq.'ATOM'.and.linia(17:17).lt.'B') then
+ write(5,'(a54)') linia
+ endif
+ if (linia(1:3).eq.'TER') then
+c write(2,'(a54)') linia
+ goto 23
+ endif
+ enddo
+23 continue
+ close(5)
+ write(*,*) "Molecule 2 read"
+
+ open(4,file='temp1')
+ open(5,file='temp2')
+
+ minx1=999.99
+ miny1=999.99
+ minz1=999.99
+
+ maxx1=-999.99
+ maxy1=-999.99
+ maxz1=-999.99
+
+
+ minx2=999.99
+ miny2=999.99
+ minz2=999.99
+
+ maxx2=-999.99
+ maxy2=-999.99
+ maxz2=-999.99
+
+
+
+c MOLEKULA 1
+ i=1
+ xcm1=0
+ ycm1=0
+ zcm1=0
+ ile_reszt_mol1=0
+
+ do while (.true.)
+ read(4,800,end=111)
+ & atoma1(i),numera1(i),nazwaa1(i),nazwar1(i),chain,numerr1(i),
+ & x1(i),y1(i),z1(i)
+
+
+c write(*,300) minx, maxx, miny, maxy, minz, maxz
+
+ if (x1(i).lt.minx1) minx1=x1(i)
+ if (y1(i).lt.miny1) miny1=y1(i)
+ if (z1(i).lt.minz1) minz1=z1(i)
+
+ if (x1(i).gt.maxx1) maxx1=x1(i)
+ if (y1(i).gt.maxy1) maxy1=y1(i)
+ if (z1(i).gt.maxz1) maxz1=z1(i)
+
+c write(*,300) minx, maxx, miny, maxy, minz, maxz
+
+c write(*,*) nazwaa1(i)
+ if (nazwaa1(i).eq.' CA ') then
+ xcm1 = xcm1 + x1(i)
+ ycm1 = ycm1 + y1(i)
+ zcm1 = zcm1 + z1(i)
+ ile_reszt_mol1 = ile_reszt_mol1 +1
+ endif
+
+ if (atoma1(i).eq.'TER ') goto 111
+ if (atoma1(i).eq.'END ') goto 111
+ if (i.eq.1) write(3,'(a6)') "REMARK"
+c write(3,800) atoma1(i),numera1(i),nazwaa1(i),nazwar1(i),
+c & numerr1(i),x1(i),y1(i),z1(i)
+
+c write(*,*) i, x(i),y(i),z(i)
+
+ i=i+1
+ enddo
+111 continue
+
+ distx1=maxx1-minx1
+ disty1=maxy1-miny1
+ distz1=maxz1-minz1
+ ilosc_atomow1 = i-1
+ xcm1 = xcm1 / (ile_reszt_mol1*1.0)
+ ycm1 = ycm1 / (ile_reszt_mol1*1.0)
+ zcm1 = zcm1 / (ile_reszt_mol1*1.0)
+
+ do i=1,ilosc_atomow1
+ x1(i)=x1(i)-xcm1
+ y1(i)=y1(i)-ycm1
+ z1(i)=z1(i)-zcm1
+ enddo
+
+ xcm1=0
+ ycm1=0
+ zcm1=0
+
+ do i=1,ilosc_atomow1
+ if (nazwaa1(i).eq.' CA ') then
+ xcm1 = xcm1 + x1(i)
+ ycm1 = ycm1 + y1(i)
+ zcm1 = zcm1 + z1(i)
+ endif
+ enddo
+ xcm1 = xcm1 / (ile_reszt_mol1*1.0)
+ ycm1 = ycm1 / (ile_reszt_mol1*1.0)
+ zcm1 = zcm1 / (ile_reszt_mol1*1.0)
+
+ dist1cm=999.9
+ dist1acm=0.0
+ do i=1,ilosc_atomow1
+c write(3,800) atoma1(i),numera1(i),nazwaa1(i),nazwar1(i),
+c & numerr1(i),x1(i)-xcm1,y1(i)-ycm1,z1(i)-zcm1
+
+ dist1cmt = dsqrt(((xcm1-x1(i))**2)+
+ & ((ycm1-y1(i))**2)+
+ & ((zcm1-z1(i))**2))
+
+c write(*,*) dist1cmt, dist1cm, i, cm1
+ if (dist1cm.gt.dist1cmt) then
+ dist1cm=dist1cmt
+ cm1=i
+ endif
+
+ enddo
+
+ do i=1,ilosc_atomow1
+ do j=i,ilosc_atomow1
+ dist1cmt = dsqrt(((x1(j)-x1(i))**2)+
+ & ((y1(j)-y1(i))**2)+
+ & ((z1(j)-z1(i))**2))
+ if (dist1acm.lt.dist1cmt) then
+ dist1acm=dist1cmt
+ endif
+ enddo
+ enddo
+
+
+c write(3,303) "TER"
+c write(3,304) "ENDMDL"
+
+ write(*,*) "Molecule 1 calculated"
+
+c MOLEKULA 2
+ i=1
+ xcm2=0
+ ycm2=0
+ zcm2=0
+ ile_reszt_mol2=0
+
+ do while (.true.)
+ read(5,800,end=112)
+ & atoma2(i),numera2(i),nazwaa2(i),nazwar2(i),chain,numerr2(i),
+ & x2(i),y2(i),z2(i)
+
+c write(*,300) minx, maxx, miny, maxy, minz, maxz
+
+ if (x2(i).lt.minx2) minx2=x2(i)
+ if (y2(i).lt.miny2) miny2=y2(i)
+ if (z2(i).lt.minz2) minz2=z2(i)
+
+ if (x2(i).gt.maxx2) maxx2=x2(i)
+ if (y2(i).gt.maxy2) maxy2=y2(i)
+ if (z2(i).gt.maxz2) maxz2=z2(i)
+
+c write(*,300) minx, maxx, miny, maxy, minz, maxz
+
+c write(*,*) nazwaa1(i)
+ if (nazwaa2(i).eq.' CA ') then
+ xcm2 = xcm2 + x2(i)
+ ycm2 = ycm2 + y2(i)
+ zcm2 = zcm2 + z2(i)
+ ile_reszt_mol2 = ile_reszt_mol2 + 1
+ endif
+
+ if (atoma2(i).eq.'TER ') goto 111
+ if (atoma2(i).eq.'END ') goto 111
+c if (i.eq.1) write(3,'(a6)') "REMARK"
+c write(3,800) atoma2(i),numera2(i),nazwaa2(i),nazwar2(i),
+c & numerr2(i),x2(i),y2(i),z2(i)
+c write(*,*) i, x(i),y(i),z(i)
+
+ i=i+1
+ enddo
+112 continue
+
+ distx2=maxx2-minx2
+ disty2=maxy2-miny2
+ distz2=maxz2-minz2
+ ilosc_atomow2 = i-1
+
+ xcm2 = xcm2 / (ile_reszt_mol2*1.0)
+ ycm2 = ycm2 / (ile_reszt_mol2*1.0)
+ zcm2 = zcm2 / (ile_reszt_mol2*1.0)
+
+ do i=1,ilosc_atomow2
+ x2(i)=x2(i)-xcm2
+ y2(i)=y2(i)-ycm2
+ z2(i)=z2(i)-zcm2
+c write(*,*) x2(i),y2(i),z2(i)
+ xt2(i,1)=x2(i)
+ xt2(i,2)=y2(i)
+ xt2(i,3)=z2(i)
+c write(*,*) xt2(i,1), xt2(i,2), xt2(i,3)
+ enddo
+
+ xcm2=0
+ ycm2=0
+ zcm2=0
+ do i=1,ilosc_atomow2
+ if (nazwaa2(i).eq.' CA ') then
+ xcm2 = xcm2 + x2(i)
+ ycm2 = ycm2 + y2(i)
+ zcm2 = zcm2 + z2(i)
+ endif
+ enddo
+ xcm2 = xcm2 / (ile_reszt_mol2*1.0)
+ ycm2 = ycm2 / (ile_reszt_mol2*1.0)
+ zcm2 = zcm2 / (ile_reszt_mol2*1.0)
+
+
+ dist2cm=999.9
+ dist2acm=0.0
+ do i=1,ilosc_atomow2
+c write(3,800) atoma2(i),numera2(i),nazwaa2(i),nazwar2(i),
+c & numerr2(i),x2(i)-xcm2,y2(i)-ycm2,z2(i)-zcm2
+
+ dist2cmt = dsqrt(((xcm2-x2(i))**2)+
+ & ((ycm2-y2(i))**2)+
+ & ((zcm2-z2(i))**2))
+
+c write(*,*) dist2cmt, dist2cm, i, cm2
+ if (dist2cm.gt.dist2cmt) then
+ dist2cm=dist2cmt
+ cm2=i
+ endif
+
+ enddo
+
+
+ do i=1,ilosc_atomow2
+ do j=i,ilosc_atomow2
+ dist2cmt = dsqrt(((x2(j)-x2(i))**2)+
+ & ((y2(j)-y2(i))**2)+
+ & ((z2(j)-z2(i))**2))
+ if (dist2acm.lt.dist2cmt) then
+ dist2acm=dist2cmt
+ endif
+ enddo
+ enddo
+
+
+c write(3,303) "TER"
+
+ glys1=0
+ glys2=0
+ glye1=0
+ glye2=0
+ r1s=nazwar1(1)
+ r2s=nazwar2(1)
+ r1e=nazwar1(ile_reszt_mol1)
+ r2e=nazwar2(ile_reszt_mol2)
+
+ if (r1s.eq."GLY") then
+ glys1=1
+ write(*,*) "Chain 1 is starting from Gly ", r1s, glys1
+ endif
+
+ if (r2s.eq."GLY") then
+ glys2=1
+ write(*,*) "Chain 2 is starting from Gly ", r2s, glys2
+ endif
+
+ if (r1e.eq."GLY") then
+ glye1=1
+ write(*,*) "Chain 1 is ending at Gly ", r1e, glye1
+ endif
+
+
+ if (r2e.eq."GLY") then
+ glye2=1
+ write(*,*) "Chain 2 is ending from Gly ", r2e, glye2
+ endif
+
+
+c checking for Gly
+ ilee=4
+ if(glys1.eq.1) ilee=ilee-1
+ if(glys2.eq.1) ilee=ilee-1
+ if(glye1.eq.1) ilee=ilee-1
+ if(glye2.eq.1) ilee=ilee-1
+ write(*,*) "How many dummy atoms:", ilee
+ write(*,*) ""
+
+
+ write(*,*) "Molecule 2 calculated"
+ write(*,*) "Number of atoms:", ilosc_atomow1, ilosc_atomow2
+
+ write(*,*) "Min and max coordinates in the systems"
+ write(*,300) minx1, maxx1, miny1, maxy1, minz1, maxz1
+ write(*,300) minx2, maxx2, miny2, maxy2, minz2, maxz2
+
+ write(*,*) "Distances in axes x, y, z"
+ write(*,301) distx1, disty1, distz1
+ write(*,301) distx2, disty2, distz2
+
+ boxx = (distx1 + distx2)*1.5 + 20.0
+ boxy = (disty1 + disty2)*1.5 + 20.0
+ boxz = (distz1 + distz2)*1.5 + 20.0
+
+c write(*,*) "Boxsize [x, y, z]"
+c write(*,301) boxx, boxy, boxz
+
+ write(*,*) "Maximum distances:"
+ write(*,*) dist1acm, dist2acm
+
+ write(*,*) "Boxsize (suggested)"
+ write(*,*) (dist1acm+dist2acm)*1.2+20
+ open(61,file='boxsize.txt')
+ write(61,302) ((dist1acm+dist2acm)*1.2+20)
+ close (61)
+
+ write(*,*) "Center of masses:"
+ write(*,301) xcm1, ycm1, zcm1
+ write(*,301) xcm2, ycm2, zcm2
+
+ write(*,*) "Center of masses atoms:"
+ write(*,800) atoma1(cm1),numera1(cm1),nazwaa1(cm1),nazwar1(cm1),
+ & " ",numerr1(cm1),x1(cm1),y1(cm1),z1(cm1)
+ write(*,800) atoma2(cm2),numera2(cm2),nazwaa2(cm2),nazwar2(cm2),
+ & " ",numerr2(cm2),x2(cm2),y2(cm2),z2(cm2)
+
+
+ write(*,*) "Number of amino-acid residues in two proteins:"
+ write(*,*) ile_reszt_mol1, ile_reszt_mol2
+
+
+c ---------------------------------------------------------------------
+c KONIEC WCZYTYWANIA
+c ---------------------------------------------------------------------
+
+ korekta1 = numerr1(1)
+ write(*,*) "Original number of the first residue in
+ & the first protein:"
+ write(*,*) numerr1(1)
+
+ write(*,*) "Correction of the first residue in the first protein:"
+ write(*,*) korekta1
+
+
+c wymiar=(distx1 + distx2)+(disty1 + disty2)+(distz1 + distz2)
+c wymiar=wymiar/12.0
+c wymiar=10.0
+
+c write(*,*) "Minimum required distance between centers of mass:"
+c write(*,*) wymiar
+
+ boxx = (6.5+distx1 + dist2acm)/2.0
+ boxy = (6.5+disty1 + dist2acm)/2.0
+ boxz = (6.5+distz1 + dist2acm)/2.0
+ write(*,*) "Rotation space (+/-):", boxx, boxy, boxz
+
+
+ do ii1=1,no_models
+
+ proba = 1
+ proba0x = 1
+ proba0y = 1
+ proba0z = 1
+ proba1 = 1
+ proba2 = 1
+ proba3 = 1
+ conf = 1
+
+
+ if (ii1.lt.10) then
+ write (plik3, "(A6,I1,a4)") "model0", ii1, ".pdb"
+ else
+ write (plik3, "(A5,I2,a4)") "model", ii1, ".pdb"
+ endif
+
+ write(*,*) "Conformation will be saved to file:", plik3
+
+c plik3a = plik3//ilosc
+ open(3,file=plik3)
+
+
+ do i=1,ilosc_atomow1
+ write(3,800) atoma1(i),numera1(i),nazwaa1(i),nazwar1(i),"A",
+ & (numerr1(i)-korekta1+1),
+ & x1(i),y1(i),z1(i)
+ enddo
+ write(3,303) "TER"
+c write(3,304) "ENDMDL"
+
+ if (peptide.eq.1) then
+ wymiar=((distx1 + distx2)+(disty1 + disty2)+(distz1 + distz2))/4
+ endif
+
+ if (peptide.eq.0) then
+ wymiar=((distx1 + distx2)+(disty1 + disty2)+(distz1 + distz2))/8
+ endif
+
+ if (ii1.eq.1) then
+ write(*,*) "Initial minimum distance between centers of mass:",
+ & wymiar
+ endif
+
+c ROTATIONS OF THE SECOND MOLECULE
+ nd=4
+ t(1)=0.0
+ t(2)=0.0
+ t(3)=0.0
+ call ranorND(b,nd,ilosc_atomow2,ii1,seed1)
+c do i=1,4
+c write(*,*) b(i)
+c enddo
+ call rot_trans(xt2,t,b,xf,ilosc_atomow2)
+ do i=1,ilosc_atomow2
+ x2(i)=xf(i,1)
+ y2(i)=xf(i,2)
+ z2(i)=xf(i,3)
+ enddo
+c END OF ROTATIONS
+
+
+ do while (.true.)
+ if (conf.gt.1) goto 133
+
+ seed = ABS((seed1+proba)/(ii1**2))
+ call srand(seed)
+ r = rand(seed)
+ seed11=ABS(seed+ii1-proba)*proba
+ seed12=ABS(seed+ii1-(proba**2))*proba
+ seed13=ABS(seed+ii1-(proba))*proba**2
+c write(*,*) seed11, seed12, seed13
+ cm2xr = (rand(seed11)*2*boxx)-(boxx)
+ cm2yr = (rand(seed12)*2*boxy)-(boxy)
+ cm2zr = (rand(seed13)*2*boxz)-(boxz)
+
+ do i=1,ilosc_atomow2
+ x2r(i)=x2(i)-cm2xr
+ y2r(i)=y2(i)-cm2yr
+ z2r(i)=z2(i)-cm2zr
+ enddo
+
+
+c SPRAWDZANIE CZY NIE JEST ZBYT PODOBNE DO JUZ WYLOSOWANEGO
+ cmxx(ii1)=cm2xr
+ cmyy(ii1)=cm2yr
+ cmzz(ii1)=cm2zr
+
+ if (ii1.gt.1) then
+
+ do ir=1,ii1-1
+ dd=sqrt((cm2xr-cmxx(ir))**2+(cm2yr-cmyy(ir))**2+
+ & (cm2zr-cmzz(ir))**2)
+
+c write(*,*) "Center of mass is", dd, "A away from", ir
+c write(*,*) "Minimum distance required:", wymiar, "A"
+
+c write(*,*) ii1, ir, proba3, dd, wymiar
+
+ if (dd.lt.wymiar) then
+ proba3=proba3+1
+ if (proba3.gt.1.and.peptide.eq.1) wymiar=wymiar*0.99992
+ if (proba3.gt.1.and.peptide.eq.0) wymiar=wymiar*0.99992
+c write(*,*) proba3, wymiar
+ goto 200
+ endif
+
+ enddo
+ endif
+
+
+
+
+c SPRAWDZANIE ODLEGLOSCI
+ accept=0
+ do i=1,ilosc_atomow2
+c write(3,800) atoma2(i),numera2(i),nazwaa2(i),nazwar2(i),
+c & numerr2(i),x2(i)-xcm2,y2(i)-ycm2,z2(i)-zcm2
+
+ do j=1,ilosc_atomow1
+ dist12 = sqrt(((x2r(i)-x1(j))**2)+
+ & ((y2r(i)-y1(j))**2)+
+ & ((z2r(i)-z1(j))**2))
+c write(*,*) dist12, cm2xr, cm2yr, cm2zr
+ if (dist12.lt.2.5) then
+ proba1=proba1+1
+ goto 200
+ endif
+
+ if (dist12.le.3.5) accept=1
+c if (dist12.le.3.5) accept=1
+c if (dist12.gt.3.5) proba2=proba2+1
+ enddo
+ enddo
+
+c write(*,*) "No overlaps", proba
+ if (accept.eq.0) goto 200
+c write(*,*) "No overlaps, contact", conf, proba
+c write(3,305) "MODEL", conf
+c conf = conf+1
+
+
+
+ write(*,*) "Conformation", ii1, "Is accepted after",
+ & proba0x+proba0y+proba0z,
+ & proba1, proba2, proba3, proba, "attempts. ",
+ & "Dist between CoM of previous=", wymiar
+
+c Dodatkowe info
+ write(*,*)"Extr",ABS(cm2xr+xcm1), ABS(cm2yr+ycm1), ABS(cm2zr+zcm1)
+
+
+ conf=conf+1
+c write (*,*)
+
+
+
+
+
+ korekta2 = numerr2(1)-1
+c write(*,*) "Original number of the first residue in
+c & the second protein:"
+c write(*,*) numerr2(1)
+
+c write(*,*)"Correction of the first residue in the second protein:"
+c write(*,*) korekta2
+ do i=1,ilosc_atomow2
+ write(3,800) atoma2(i),numera2(i),nazwaa2(i),nazwar2(i),"B",
+ & (numerr2(i)+ile_reszt_mol1-korekta2),
+ & x2r(i),y2r(i),z2r(i)
+ enddo
+ write(3,303) "TER"
+c write(3,304) "ENDMDL"
+c write(3,305) "MODEL", conf
+ write(3,303) "END"
+
+ 200 continue
+ proba = proba + 1
+ enddo
+ 133 continue
+
+ close (3)
+
+c call sleep(1)
+
+
+ if (ii1.lt.10) then
+ write (plik4, "(A9,I1,a4)") "template0", ii1, ".sco"
+ else
+ write (plik4, "(A8,I2,a4)") "template", ii1, ".sco"
+ endif
+
+ open (7,file=plik4)
+
+
+ if (peptide.eq.1) then
+ do ijl=1,(ile_reszt_mol1+ile_reszt_mol2+ilee)
+ if (glys1.eq.0) then
+ if (ijl.eq.1) write(7,*) ijl, "1.0 1.0 1.0 ", "0"
+ if (ijl.le.ile_reszt_mol1+1.and.ijl.gt.1)
+ & write(7,*) ijl, "1.0 1.0 1.0 ", "1"
+ if (ijl.ge.(ile_reszt_mol1+2))
+ & write(7,*) ijl, "1.0 1.0 1.0 ", "0"
+ endif
+
+ if (glys1.eq.1) then
+ if (ijl.eq.1) write(7,*) ijl, "1.0 1.0 1.0 ", "1"
+ if (ijl.le.ile_reszt_mol1.and.ijl.gt.1)
+ & write(7,*) ijl, "1.0 1.0 1.0 ", "1"
+ if (ijl.ge.(ile_reszt_mol1+1))
+ & write(7,*) ijl, "1.0 1.0 1.0 ", "0"
+ endif
+ enddo
+ endif
+
+
+ if (peptide.eq.0) then
+ do ijl=1,(ile_reszt_mol1+ile_reszt_mol2+ilee)
+c write(*,*) "ijl"
+c no Gly
+ if (glys1.eq.0.and.glye1.eq.0.and.glys2.eq.0) then
+ if (ijl.eq.1) write(7,*) ijl, "1.0 1.0 1.0 ", "0"
+ if (ijl.le.ile_reszt_mol1+1.and.ijl.gt.1)
+ & write(7,*) ijl, "1.0 1.0 1.0 ", "1"
+ if (ijl.ge.(ile_reszt_mol1+2).and.ijl.le.(ile_reszt_mol1+3))
+ & write(7,*) ijl, "1.0 1.0 1.0 ", "0"
+ if (ijl.gt.(ile_reszt_mol1+3).and.
+ & ijl.le.(ile_reszt_mol2+ile_reszt_mol1+3))
+ & write(7,*) ijl, "1.0 1.0 1.0 ", "2"
+ if (ijl.ge.(ile_reszt_mol2+ile_reszt_mol1+4))
+ & write(7,*) ijl, "1.0 1.0 1.0 ", "0"
+ endif
+
+
+c chain 1 first Gly
+ if (glys1.eq.1.and.glye1.eq.0.and.glys2.eq.0) then
+ if (ijl.eq.1) write(7,*) ijl, "1.0 1.0 1.0 ", "1"
+ if (ijl.le.ile_reszt_mol1.and.ijl.gt.1)
+ & write(7,*) ijl, "1.0 1.0 1.0 ", "1"
+ if (ijl.ge.(ile_reszt_mol1+1).and.ijl.le.(ile_reszt_mol1+2))
+ & write(7,*) ijl, "1.0 1.0 1.0 ", "0"
+ if (ijl.gt.(ile_reszt_mol1+2).and.
+ & ijl.le.(ile_reszt_mol2+ile_reszt_mol1+2))
+ & write(7,*) ijl, "1.0 1.0 1.0 ", "2"
+ if (ijl.ge.(ile_reszt_mol2+ile_reszt_mol1+3))
+ & write(7,*) ijl, "1.0 1.0 1.0 ", "0"
+ endif
+
+c chain 1 last Gly
+ if (glys1.eq.0.and.glye1.eq.1.and.glys2.eq.0) then
+ if (ijl.eq.1) write(7,*) ijl, "1.0 1.0 1.0 ", "0"
+ if (ijl.le.ile_reszt_mol1+1.and.ijl.gt.1)
+ & write(7,*) ijl, "1.0 1.0 1.0 ", "1"
+ if (ijl.ge.(ile_reszt_mol1+2).and.ijl.le.(ile_reszt_mol1+2))
+ & write(7,*) ijl, "1.0 1.0 1.0 ", "0"
+ if (ijl.gt.(ile_reszt_mol1+2).and.
+ & ijl.le.(ile_reszt_mol2+ile_reszt_mol1+2))
+ & write(7,*) ijl, "1.0 1.0 1.0 ", "2"
+ if (ijl.ge.(ile_reszt_mol2+ile_reszt_mol1+3))
+ & write(7,*) ijl, "1.0 1.0 1.0 ", "0"
+ endif
+
+c chain 1 first Gly and chain 1 last Gly
+ if (glys1.eq.1.and.glye1.eq.1.and.glys2.eq.0) then
+ if (ijl.eq.1) write(7,*) ijl, "1.0 1.0 1.0 ", "1"
+ if (ijl.le.ile_reszt_mol1.and.ijl.gt.1)
+ & write(7,*) ijl, "1.0 1.0 1.0 ", "1"
+ if (ijl.ge.(ile_reszt_mol1+1).and.ijl.le.(ile_reszt_mol1+1))
+ & write(7,*) ijl, "1.0 1.0 1.0 ", "0"
+ if (ijl.gt.(ile_reszt_mol1+1).and.
+ & ijl.le.(ile_reszt_mol2+ile_reszt_mol1+1))
+ & write(7,*) ijl, "1.0 1.0 1.0 ", "2"
+ if (ijl.ge.(ile_reszt_mol2+ile_reszt_mol1+2))
+ & write(7,*) ijl, "1.0 1.0 1.0 ", "0"
+ endif
+
+c chain 2 first Gly
+ if (glys1.eq.0.and.glye1.eq.0.and.glys2.eq.1) then
+ if (ijl.eq.1) write(7,*) ijl, "1.0 1.0 1.0 ", "0"
+ if (ijl.le.ile_reszt_mol1+1.and.ijl.gt.1)
+ & write(7,*) ijl, "1.0 1.0 1.0 ", "1"
+ if (ijl.ge.(ile_reszt_mol1+2).and.ijl.le.(ile_reszt_mol1+2))
+ & write(7,*) ijl, "1.0 1.0 1.0 ", "0"
+ if (ijl.gt.(ile_reszt_mol1+2).and.
+ & ijl.le.(ile_reszt_mol2+ile_reszt_mol1+2))
+ & write(7,*) ijl, "1.0 1.0 1.0 ", "2"
+ if (ijl.ge.(ile_reszt_mol2+ile_reszt_mol1+3))
+ & write(7,*) ijl, "1.0 1.0 1.0 ", "0"
+ endif
+
+c chain 1 first Gly chain 2 first Gly
+ if (glys1.eq.1.and.glye1.eq.0.and.glys2.eq.1) then
+ if (ijl.eq.1) write(7,*) ijl, "1.0 1.0 1.0 ", "1"
+ if (ijl.le.ile_reszt_mol1.and.ijl.gt.1)
+ & write(7,*) ijl, "1.0 1.0 1.0 ", "1"
+ if (ijl.ge.(ile_reszt_mol1+1).and.ijl.le.(ile_reszt_mol1+1))
+ & write(7,*) ijl, "1.0 1.0 1.0 ", "0"
+ if (ijl.gt.(ile_reszt_mol1+1).and.
+ & ijl.le.(ile_reszt_mol2+ile_reszt_mol1+1))
+ & write(7,*) ijl, "1.0 1.0 1.0 ", "2"
+ if (ijl.ge.(ile_reszt_mol2+ile_reszt_mol1+2))
+ & write(7,*) ijl, "1.0 1.0 1.0 ", "0"
+ endif
+
+c chain 1 last Gly chain 2 first Gly
+ if (glys1.eq.0.and.glye1.eq.1.and.glys2.eq.1) then
+ if (ijl.eq.1) write(7,*) ijl, "1.0 1.0 1.0 ", "0"
+ if (ijl.le.ile_reszt_mol1+1.and.ijl.gt.1)
+ & write(7,*) ijl, "1.0 1.0 1.0 ", "1"
+c if (ijl.ge.(ile_reszt_mol1+2).and.ijl.le.(ile_reszt_mol1+3))
+c & write(7,*) ijl, "1.0 1.0 1.0 ", "0"
+ if (ijl.gt.(ile_reszt_mol1+1).and.
+ & ijl.le.(ile_reszt_mol2+ile_reszt_mol1+1))
+ & write(7,*) ijl, "1.0 1.0 1.0 ", "2"
+ if (ijl.ge.(ile_reszt_mol2+ile_reszt_mol1+2))
+ & write(7,*) ijl, "1.0 1.0 1.0 ", "0"
+ endif
+
+c all Gly
+ if (glys1.eq.1.and.glye1.eq.1.and.glys2.eq.1) then
+ if (ijl.eq.1) write(7,*) ijl, "1.0 1.0 1.0 ", "1"
+ if (ijl.le.ile_reszt_mol1.and.ijl.gt.1)
+ & write(7,*) ijl, "1.0 1.0 1.0 ", "1"
+c if (ijl.ge.(ile_reszt_mol1+2).and.ijl.le.(ile_reszt_mol1+3))
+c & write(7,*) ijl, "1.0 1.0 1.0 ", "0"
+ if (ijl.gt.(ile_reszt_mol1).and.
+ & ijl.le.(ile_reszt_mol2+ile_reszt_mol1))
+ & write(7,*) ijl, "1.0 1.0 1.0 ", "2"
+c if (ijl.ge.(ile_reszt_mol2+ile_reszt_mol1+1))
+c & write(7,*) ijl, "1.0 1.0 1.0 ", "0"
+ endif
+
+
+
+ enddo
+ endif
+
+
+ close (7)
+
+c koniec petli po ilosci struktur
+ enddo
+
+c do i=1,20
+c write(*,*) i, cmxx(i), cmyy(i), cmzz(i)
+c dd=(cm2xr-cmxx(ir))**2+(cm2yr-cmyy(ir))**2+(cm2zr-cmyy(ir))**2
+c enddo
+
+c do i=1,20
+c do j=1,20
+c dd=sqrt((cmxx(i)-cmxx(j))**2+(cmyy(i)-cmyy(j))**2+
+c & (cmzz(i)-cmzz(j))**2)
+c write(*,*) i,j,dd
+c enddo
+c enddo
+
+
+ 300 format(6f8.2)
+ 301 format(3f8.2)
+ 302 format(f8.2)
+ 800 format(a4,2X,i5,1X,a4,1X,a3,1X,a1,i4,4X,3f8.3)
+ 303 format(a3)
+ 304 format(a6)
+ 305 format(a5,1X,i8)
+ end
+
+
+
+
+ SUBROUTINE SRAND(ISEED)
+C
+C This subroutine sets the integer seed to be used with the
+C companion RAND function to the value of ISEED. A flag is
+C set to indicate that the sequence of pseudo-random numbers
+C for the specified seed should start from the beginning.
+C
+ COMMON /SEED/JSEED,IFRST
+C
+ JSEED = ISEED
+ IFRST = 0
+C
+ RETURN
+ END
+ REAL FUNCTION RAND()
+C
+C This function returns a pseudo-random number for each invocation.
+C It is a FORTRAN 77 adaptation of the "Integer Version 2" minimal
+C standard number generator whose Pascal code appears in the article:
+C
+C Park, Steven K. and Miller, Keith W., "Random Number Generators:
+C Good Ones are Hard to Find", Communications of the ACM,
+C October, 1988.
+C
+ PARAMETER (MPLIER=16807,MODLUS=2147483647,MOBYMP=127773,
+ + MOMDMP=2836)
+C
+ COMMON /SEED/JSEED,IFRST
+ INTEGER HVLUE, LVLUE, TESTV, NEXTN
+ SAVE NEXTN
+C
+ IF (IFRST .EQ. 0) THEN
+ NEXTN = JSEED
+ IFRST = 1
+ ENDIF
+C
+ HVLUE = NEXTN / MOBYMP
+ LVLUE = MOD(NEXTN, MOBYMP)
+ TESTV = MPLIER*LVLUE - MOMDMP*HVLUE
+ IF (TESTV .GT. 0) THEN
+ NEXTN = TESTV
+ ELSE
+ NEXTN = TESTV + MODLUS
+ ENDIF
+ RAND = REAL(NEXTN)/REAL(MODLUS)
+C
+ RETURN
+ END
+ BLOCKDATA RANDBD
+ COMMON /SEED/JSEED,IFRST
+C
+ DATA JSEED,IFRST/123456789,0/
+C
+ END
+
+ Subroutine ranorND(b,nd,ilosc_atomow2,ii1,seed1)
+ double precision b
+C generates a random vector on a unit sphere onC an ND-dimensional space.
+C algorithm 40 page 410.
+C the algorithm assumes that the formula for bz is valid, i.e
+C bz=(1.0-2.0*ransq),
+C and also that, ransq can be computed as as the sum of the independent random
+C numbers to the second power (expression 3).
+ dimension ran(nd-1), b(nd)
+ integer seed,seed1
+c write(*,*) "In Subroutine ranorND(b,nd), nd=", nd
+c write(*,*) "ilosc_atomow2=", ilosc_atomow2
+c do j=1,ilosc_atomow2
+ ransq=2
+ seed = seed1*ii1
+ call srand(seed)
+ do while (ransq.ge.1)
+c write(*,*) ransq
+ rsq=0.0
+ do i=1,nd-1
+ ran(i)=1.0-2.0*rand(0)
+c write(*,*) i, ran(i)
+ rsq=ran(i)*ran(i)+rsq ! (3)
+c write(*,*) i, rsq
+ enddo
+ ransq=rsq
+c write(*,*) j, ransq
+ enddo
+ ranh=2.0*sqrt(1.0-ransq)
+c write(*,*) j, ranh, ransq
+ do i=1,nd-1
+ b(i)=ran(i)*ranh
+c write(*,*) ran(i), ranh
+ enddo
+ b(nd)=(1.0-2.0*ransq)
+c write(*,*) b(1,j), b(2,j), b(3,j), b(4,j)
+c enddo
+ return
+ end
+
+ subroutine rot_trans(xt2,t,q,xf,ilosc_atomow2)
+C x coordinates, t translation vector, q quaternion
+ double precision xt2(90000,3),xf(90000,3)
+ double precision t(3),q(4)
+ integer i
+ write(*,*) "Rotation vector:", q(1), q(2), q(3), q(4)
+ r11= q(1)*q(1)+q(2)*q(2)-q(3)*q(3)-q(4)*q(4)
+ r22= q(1)*q(1)-q(2)*q(2)+q(3)*q(3)-q(4)*q(4)
+ r33= q(1)*q(1)-q(2)*q(2)-q(3)*q(3)+q(4)*q(4)
+ r12= 2*(q(2)*q(3)-q(1)*q(4))
+ r21= 2*(q(2)*q(3)+q(1)*q(4))
+ r13= 2*(q(2)*q(4)+q(1)*q(3))
+ r31= 2*(q(2)*q(4)-q(1)*q(3))
+ r23= 2*(q(3)*q(4)-q(1)*q(2))
+ r32= 2*(q(3)*q(4)+q(1)*q(2))
+
+c write(*,*) r11, r22, r33, r12, r21, r13, r31, r23, r32
+
+ do i=1,ilosc_atomow2
+ xf(i,1)= r11*xt2(i,1)+r12*xt2(i,2)+r13*xt2(i,3) + t(1)
+ xf(i,2)= r21*xt2(i,1)+r22*xt2(i,2)+r23*xt2(i,3) + t(2)
+ xf(i,3)= r31*xt2(i,1)+r32*xt2(i,2)+r33*xt2(i,3) + t(3)
+c write(*,*) i, xt2(i,1), xt2(i,2), xt2(i,3)
+c write(*,*) i, xf(i,1), xf(i,2), xf(i,3)
+ enddo
+
+ return
+ end
+
+++ /dev/null
- program generator
- implicit none
- integer proba, conf, cm1, cm2, accept, nd
- integer krok, i, n, j, g, ii1, ilosc, ijl
- integer nnn, seed, proba1, proba2, proba3, proba0x,proba0y,proba0z
- integer ilosc_atomow1, ilosc_atomow2, korekta1, korekta2
- integer ile_reszt_mol1, ile_reszt_mol2, ir, peptide,numerr2(90000)
- integer numera1(90000),numerr1(90000),numera2(90000)
- integer glys1, glys2, glye1, glye2, ilee
- real*8 rand, r, boxx, boxy, boxz, dist2acm, dist1acm, b(4), t(3)
- real*8 minx1, miny1, minz1, maxx1, maxy1, maxz1
- real*8 minx2, miny2, minz2, maxx2, maxy2, maxz2
- real*8 distx1, disty1, distz1, distx2, disty2, distz2
- real*8 xcm1, ycm1, zcm1, xcm2, ycm2, zcm2
- real*8 dist1cm, dist1cmt, dist2cm, dist2cmt
- real*8 cm2xr, cm2yr, cm2zr,x2r(90000),y2r(90000),z2r(90000),dist12
- real*8 angle, c, s, x2new, y2new, z2new
- character*60 plik1, plik2, plik3, plik4
- character*54 linia
- real*8 x1(90000),y1(90000),z1(90000),x2(90000),y2(90000),z2(90000)
- real*8 dd, wymiar, cmxx(900), cmyy(900), cmzz(900),xt2(90000,3)
- real*8 xf(90000,3)
- character*1 chain
- character*3 r1s, r2s, r1e, r2e
- character*5 atoma1(90000), atoma2(90000)
- character*6 nazwaa1(90000), nazwar1(90000)
- character*6 nazwaa2(90000), nazwar2(90000)
- integer time_a(3)
-
- korekta1 = 1
- korekta2 = 1
-
-c write(*,*)"Sposob uruchamiania:"
-c write(*,*)"nazwa_programu nazwa_pliku_inp_pdb1
-c & nazwa_pliku_inp_pdb2 nazwa_pliku_out"
-c write(*,*)""
-
- nnn = iargc()
- if (nnn.lt.3) then
- write(*,*)"program input_pdb1 input_pdb2
- & [0-1] 0 for protein, 1 for peptide"
- stop
- endif
-
- call getarg(1,plik1)
- call getarg(2,plik2)
- call getarg(3,plik3)
- open(1,file=plik1,status="old")
- open(2,file=plik2,status="old")
- open(4,file='temp1')
- open(5,file='temp2')
- write(*,*) "All files read"
-
- read(plik3(1:1),'(i1)') peptide
-
- if (peptide.ne.0.and.peptide.ne.1) then
- write(*,*) "Third parameter must be 0 or 1,
- & where 0 is for a protein-protein docking,
- & and 1 is for protein-peptide docking."
- STOP
- endif
-
- write(*,*) "Option", peptide, "selected
- & (0 for protein, 1 for peptide)"
-
-
-c MOLEKULA 1
- do while (.true.)
- read(1,'(a54)',end=22) linia
- if (linia(1:4).eq.'ATOM'.and.linia(17:17).lt.'B') then
- write(4,'(a54)') linia
- endif
- if (linia(1:3).eq.'TER') then
-c write(2,'(a54)') linia
- goto 22
- endif
- enddo
-
-22 continue
- close(4)
- write(*,*) "Molecule 1 read"
-
-
-c MOLEKULA 2
- do while (.true.)
- read(2,'(a54)',end=23) linia
- if (linia(1:4).eq.'ATOM'.and.linia(17:17).lt.'B') then
- write(5,'(a54)') linia
- endif
- if (linia(1:3).eq.'TER') then
-c write(2,'(a54)') linia
- goto 23
- endif
- enddo
-23 continue
- close(5)
- write(*,*) "Molecule 2 read"
-
- open(4,file='temp1')
- open(5,file='temp2')
-
- minx1=999.99
- miny1=999.99
- minz1=999.99
-
- maxx1=-999.99
- maxy1=-999.99
- maxz1=-999.99
-
-
- minx2=999.99
- miny2=999.99
- minz2=999.99
-
- maxx2=-999.99
- maxy2=-999.99
- maxz2=-999.99
-
-
-
-c MOLEKULA 1
- i=1
- xcm1=0
- ycm1=0
- zcm1=0
- ile_reszt_mol1=0
-
- do while (.true.)
- read(4,800,end=111)
- & atoma1(i),numera1(i),nazwaa1(i),nazwar1(i),chain,numerr1(i),
- & x1(i),y1(i),z1(i)
-
-
-c write(*,300) minx, maxx, miny, maxy, minz, maxz
-
- if (x1(i).lt.minx1) minx1=x1(i)
- if (y1(i).lt.miny1) miny1=y1(i)
- if (z1(i).lt.minz1) minz1=z1(i)
-
- if (x1(i).gt.maxx1) maxx1=x1(i)
- if (y1(i).gt.maxy1) maxy1=y1(i)
- if (z1(i).gt.maxz1) maxz1=z1(i)
-
-c write(*,300) minx, maxx, miny, maxy, minz, maxz
-
-c write(*,*) nazwaa1(i)
- if (nazwaa1(i).eq.' CA ') then
- xcm1 = xcm1 + x1(i)
- ycm1 = ycm1 + y1(i)
- zcm1 = zcm1 + z1(i)
- ile_reszt_mol1 = ile_reszt_mol1 +1
- endif
-
- if (atoma1(i).eq.'TER ') goto 111
- if (atoma1(i).eq.'END ') goto 111
- if (i.eq.1) write(3,'(a6)') "REMARK"
-c write(3,800) atoma1(i),numera1(i),nazwaa1(i),nazwar1(i),
-c & numerr1(i),x1(i),y1(i),z1(i)
-
-c write(*,*) i, x(i),y(i),z(i)
-
- i=i+1
- enddo
-111 continue
-
- distx1=maxx1-minx1
- disty1=maxy1-miny1
- distz1=maxz1-minz1
- ilosc_atomow1 = i-1
- xcm1 = xcm1 / (ile_reszt_mol1*1.0)
- ycm1 = ycm1 / (ile_reszt_mol1*1.0)
- zcm1 = zcm1 / (ile_reszt_mol1*1.0)
-
- do i=1,ilosc_atomow1
- x1(i)=x1(i)-xcm1
- y1(i)=y1(i)-ycm1
- z1(i)=z1(i)-zcm1
- enddo
-
- xcm1=0
- ycm1=0
- zcm1=0
-
- do i=1,ilosc_atomow1
- if (nazwaa1(i).eq.' CA ') then
- xcm1 = xcm1 + x1(i)
- ycm1 = ycm1 + y1(i)
- zcm1 = zcm1 + z1(i)
- endif
- enddo
- xcm1 = xcm1 / (ile_reszt_mol1*1.0)
- ycm1 = ycm1 / (ile_reszt_mol1*1.0)
- zcm1 = zcm1 / (ile_reszt_mol1*1.0)
-
- dist1cm=999.9
- dist1acm=0.0
- do i=1,ilosc_atomow1
-c write(3,800) atoma1(i),numera1(i),nazwaa1(i),nazwar1(i),
-c & numerr1(i),x1(i)-xcm1,y1(i)-ycm1,z1(i)-zcm1
-
- dist1cmt = dsqrt(((xcm1-x1(i))**2)+
- & ((ycm1-y1(i))**2)+
- & ((zcm1-z1(i))**2))
-
-c write(*,*) dist1cmt, dist1cm, i, cm1
- if (dist1cm.gt.dist1cmt) then
- dist1cm=dist1cmt
- cm1=i
- endif
-
- enddo
-
- do i=1,ilosc_atomow1
- do j=i,ilosc_atomow1
- dist1cmt = dsqrt(((x1(j)-x1(i))**2)+
- & ((y1(j)-y1(i))**2)+
- & ((z1(j)-z1(i))**2))
- if (dist1acm.lt.dist1cmt) then
- dist1acm=dist1cmt
- endif
- enddo
- enddo
-
-
-c write(3,303) "TER"
-c write(3,304) "ENDMDL"
-
- write(*,*) "Molecule 1 calculated"
-
-c MOLEKULA 2
- i=1
- xcm2=0
- ycm2=0
- zcm2=0
- ile_reszt_mol2=0
-
- do while (.true.)
- read(5,800,end=112)
- & atoma2(i),numera2(i),nazwaa2(i),nazwar2(i),chain,numerr2(i),
- & x2(i),y2(i),z2(i)
-
-c write(*,300) minx, maxx, miny, maxy, minz, maxz
-
- if (x2(i).lt.minx2) minx2=x2(i)
- if (y2(i).lt.miny2) miny2=y2(i)
- if (z2(i).lt.minz2) minz2=z2(i)
-
- if (x2(i).gt.maxx2) maxx2=x2(i)
- if (y2(i).gt.maxy2) maxy2=y2(i)
- if (z2(i).gt.maxz2) maxz2=z2(i)
-
-c write(*,300) minx, maxx, miny, maxy, minz, maxz
-
-c write(*,*) nazwaa1(i)
- if (nazwaa2(i).eq.' CA ') then
- xcm2 = xcm2 + x2(i)
- ycm2 = ycm2 + y2(i)
- zcm2 = zcm2 + z2(i)
- ile_reszt_mol2 = ile_reszt_mol2 + 1
- endif
-
- if (atoma2(i).eq.'TER ') goto 111
- if (atoma2(i).eq.'END ') goto 111
-c if (i.eq.1) write(3,'(a6)') "REMARK"
-c write(3,800) atoma2(i),numera2(i),nazwaa2(i),nazwar2(i),
-c & numerr2(i),x2(i),y2(i),z2(i)
-c write(*,*) i, x(i),y(i),z(i)
-
- i=i+1
- enddo
-112 continue
-
- distx2=maxx2-minx2
- disty2=maxy2-miny2
- distz2=maxz2-minz2
- ilosc_atomow2 = i-1
-
- xcm2 = xcm2 / (ile_reszt_mol2*1.0)
- ycm2 = ycm2 / (ile_reszt_mol2*1.0)
- zcm2 = zcm2 / (ile_reszt_mol2*1.0)
-
- do i=1,ilosc_atomow2
- x2(i)=x2(i)-xcm2
- y2(i)=y2(i)-ycm2
- z2(i)=z2(i)-zcm2
-c write(*,*) x2(i),y2(i),z2(i)
- xt2(i,1)=x2(i)
- xt2(i,2)=y2(i)
- xt2(i,3)=z2(i)
-c write(*,*) xt2(i,1), xt2(i,2), xt2(i,3)
- enddo
-
- xcm2=0
- ycm2=0
- zcm2=0
- do i=1,ilosc_atomow2
- if (nazwaa2(i).eq.' CA ') then
- xcm2 = xcm2 + x2(i)
- ycm2 = ycm2 + y2(i)
- zcm2 = zcm2 + z2(i)
- endif
- enddo
- xcm2 = xcm2 / (ile_reszt_mol2*1.0)
- ycm2 = ycm2 / (ile_reszt_mol2*1.0)
- zcm2 = zcm2 / (ile_reszt_mol2*1.0)
-
-
- dist2cm=999.9
- dist2acm=0.0
- do i=1,ilosc_atomow2
-c write(3,800) atoma2(i),numera2(i),nazwaa2(i),nazwar2(i),
-c & numerr2(i),x2(i)-xcm2,y2(i)-ycm2,z2(i)-zcm2
-
- dist2cmt = dsqrt(((xcm2-x2(i))**2)+
- & ((ycm2-y2(i))**2)+
- & ((zcm2-z2(i))**2))
-
-c write(*,*) dist2cmt, dist2cm, i, cm2
- if (dist2cm.gt.dist2cmt) then
- dist2cm=dist2cmt
- cm2=i
- endif
-
- enddo
-
-
- do i=1,ilosc_atomow2
- do j=i,ilosc_atomow2
- dist2cmt = dsqrt(((x2(j)-x2(i))**2)+
- & ((y2(j)-y2(i))**2)+
- & ((z2(j)-z2(i))**2))
- if (dist2acm.lt.dist2cmt) then
- dist2acm=dist2cmt
- endif
- enddo
- enddo
-
-
-c write(3,303) "TER"
-
- glys1=0
- glys2=0
- glye1=0
- glye2=0
- r1s=nazwar1(1)
- r2s=nazwar2(1)
- r1e=nazwar1(ile_reszt_mol1)
- r2e=nazwar2(ile_reszt_mol2)
-
- if (r1s.eq."GLY") then
- glys1=1
- write(*,*) "Chain 1 is starting from Gly ", r1s, glys1
- endif
-
- if (r2s.eq."GLY") then
- glys2=1
- write(*,*) "Chain 2 is starting from Gly ", r2s, glys2
- endif
-
- if (r1e.eq."GLY") then
- glye1=1
- write(*,*) "Chain 1 is ending at Gly ", r1e, glye1
- endif
-
-
- if (r2e.eq."GLY") then
- glye2=1
- write(*,*) "Chain 2 is ending from Gly ", r2e, glye2
- endif
-
-
-c checking for Gly
- ilee=4
- if(glys1.eq.1) ilee=ilee-1
- if(glys2.eq.1) ilee=ilee-1
- if(glye1.eq.1) ilee=ilee-1
- if(glye2.eq.1) ilee=ilee-1
- write(*,*) "How many dummy atoms:", ilee
- write(*,*) ""
-
-
- write(*,*) "Molecule 2 calculated"
- write(*,*) "Number of atoms:", ilosc_atomow1, ilosc_atomow2
-
- write(*,*) "Min and max coordinates in the systems"
- write(*,300) minx1, maxx1, miny1, maxy1, minz1, maxz1
- write(*,300) minx2, maxx2, miny2, maxy2, minz2, maxz2
-
- write(*,*) "Distances in axes x, y, z"
- write(*,301) distx1, disty1, distz1
- write(*,301) distx2, disty2, distz2
-
- boxx = (distx1 + distx2)*1.5 + 20.0
- boxy = (disty1 + disty2)*1.5 + 20.0
- boxz = (distz1 + distz2)*1.5 + 20.0
-
-c write(*,*) "Boxsize [x, y, z]"
-c write(*,301) boxx, boxy, boxz
-
- write(*,*) "Maximum distances:"
- write(*,*) dist1acm, dist2acm
-
- write(*,*) "Boxsize (suggested)"
- write(*,*) (dist1acm+dist2acm)*1.2+20
- open(61,file='boxsize.txt')
- write(61,302) ((dist1acm+dist2acm)*1.2+20)
- close (61)
-
- write(*,*) "Center of masses:"
- write(*,301) xcm1, ycm1, zcm1
- write(*,301) xcm2, ycm2, zcm2
-
- write(*,*) "Center of masses atoms:"
- write(*,800) atoma1(cm1),numera1(cm1),nazwaa1(cm1),nazwar1(cm1),
- & " ",numerr1(cm1),x1(cm1),y1(cm1),z1(cm1)
- write(*,800) atoma2(cm2),numera2(cm2),nazwaa2(cm2),nazwar2(cm2),
- & " ",numerr2(cm2),x2(cm2),y2(cm2),z2(cm2)
-
-
- write(*,*) "Number of amino-acid residues in two proteins:"
- write(*,*) ile_reszt_mol1, ile_reszt_mol2
-
-
-c ---------------------------------------------------------------------
-c KONIEC WCZYTYWANIA
-c ---------------------------------------------------------------------
-
- korekta1 = numerr1(1)
- write(*,*) "Original number of the first residue in
- & the first protein:"
- write(*,*) numerr1(1)
-
- write(*,*) "Correction of the first residue in the first protein:"
- write(*,*) korekta1
-
-
-c wymiar=(distx1 + distx2)+(disty1 + disty2)+(distz1 + distz2)
-c wymiar=wymiar/12.0
-c wymiar=10.0
-
-c write(*,*) "Minimum required distance between centers of mass:"
-c write(*,*) wymiar
-
- boxx = (7+distx1 + dist2acm)/2.0
- boxy = (7+disty1 + dist2acm)/2.0
- boxz = (7+distz1 + dist2acm)/2.0
- write(*,*) "Rotation space (+/-):", boxx, boxy, boxz
-
-
- do ii1=1,24
-
- proba = 1
- proba0x = 1
- proba0y = 1
- proba0z = 1
- proba1 = 1
- proba2 = 1
- proba3 = 1
- conf = 1
-
-
- if (ii1.lt.10) then
- write (plik3, "(A6,I1,a4)") "model0", ii1, ".pdb"
- else
- write (plik3, "(A5,I2,a4)") "model", ii1, ".pdb"
- endif
-
- write(*,*) "Conformation will be saved to file:", plik3
-
-c plik3a = plik3//ilosc
- open(3,file=plik3)
-
-
- do i=1,ilosc_atomow1
- write(3,800) atoma1(i),numera1(i),nazwaa1(i),nazwar1(i),"A",
- & (numerr1(i)-korekta1+1),
- & x1(i),y1(i),z1(i)
- enddo
- write(3,303) "TER"
-c write(3,304) "ENDMDL"
-
- if (peptide.eq.1) then
- wymiar=((distx1 + distx2)+(disty1 + disty2)+(distz1 + distz2))/4
- endif
-
- if (peptide.eq.0) then
- wymiar=((distx1 + distx2)+(disty1 + disty2)+(distz1 + distz2))/7
- endif
-
- if (ii1.eq.1) then
- write(*,*) "Initial minimum distance between centers of mass:",
- & wymiar
- endif
-
-c ROTATIONS OF THE SECOND MOLECULE
- nd=4
- t(1)=0.0
- t(2)=0.0
- t(3)=0.0
- call ranorND(b,nd,ilosc_atomow2,ii1)
-c do i=1,4
-c write(*,*) b(i)
-c enddo
- call rot_trans(xt2,t,b,xf,ilosc_atomow2)
- do i=1,ilosc_atomow2
- x2(i)=xf(i,1)
- y2(i)=xf(i,2)
- z2(i)=xf(i,3)
- enddo
-c END OF ROTATIONS
-
-
- do while (.true.)
- if (conf.gt.1) goto 133
-
-#ifdef GFORTRAN
- seed = time()*proba
-#else
- call itime(time_a)
- seed = (60*time_a(2)+time_a(3))*proba
-#endif
- call srand(seed)
- r = rand(0)
-c write(*,*)rand(0),rand(0),rand(0)
-c write(*,*)rand(0),rand(0),rand(0)
-
- cm2xr = (rand(0)*2*boxx)-(boxx)
- cm2yr = (rand(0)*2*boxy)-(boxy)
- cm2zr = (rand(0)*2*boxz)-(boxz)
-c write(*,*) cm2xr, cm2yr, cm2zr
-c write(*,300)rand(0),rand(0),rand(0)
-
-c write(*,*) ABS(cm2xr+xcm1), (dist1acm+dist2acm+3)
-
-c if (ABS(cm2xr+xcm1).gt.((dist1acm+dist2acm+5)*0.8)) then
-c proba0x=proba0x+1
-c goto 200
-c endif
-
-c if (ABS(cm2yr+ycm1).gt.((dist1acm+dist2acm+5)*0.8)) then
-c proba0y=proba0y+1
-c goto 200
-c endif
-
-c if (ABS(cm2zr+zcm1).gt.((dist1acm+dist2acm+5)*0.8)) then
-c proba0z=proba0z+1
-c goto 200
-c endif
-
-
- do i=1,ilosc_atomow2
- x2r(i)=x2(i)-cm2xr
- y2r(i)=y2(i)-cm2yr
- z2r(i)=z2(i)-cm2zr
- enddo
-
-
-c SPRAWDZANIE CZY NIE JEST ZBYT PODOBNE DO JUZ WYLOSOWANEGO
- cmxx(ii1)=cm2xr
- cmyy(ii1)=cm2yr
- cmzz(ii1)=cm2zr
-
- if (ii1.gt.1) then
-
- do ir=1,ii1-1
- dd=sqrt((cm2xr-cmxx(ir))**2+(cm2yr-cmyy(ir))**2+
- & (cm2zr-cmzz(ir))**2)
-
-c write(*,*) "Center of mass is", dd, "A away from", ir
-c write(*,*) "Minimum distance required:", wymiar, "A"
-
-c write(*,*) ii1, ir, proba3, dd, wymiar
-
- if (dd.lt.wymiar) then
- proba3=proba3+1
- if (proba3.gt.1.and.peptide.eq.1) wymiar=wymiar*0.99992
- if (proba3.gt.1.and.peptide.eq.0) wymiar=wymiar*0.99992
-c write(*,*) proba3, wymiar
- goto 200
- endif
-
- enddo
- endif
-
-
-
-
-c SPRAWDZANIE ODLEGLOSCI
- accept=0
- do i=1,ilosc_atomow2
-c write(3,800) atoma2(i),numera2(i),nazwaa2(i),nazwar2(i),
-c & numerr2(i),x2(i)-xcm2,y2(i)-ycm2,z2(i)-zcm2
-
- do j=1,ilosc_atomow1
- dist12 = sqrt(((x2r(i)-x1(j))**2)+
- & ((y2r(i)-y1(j))**2)+
- & ((z2r(i)-z1(j))**2))
-c write(*,*) dist12, cm2xr, cm2yr, cm2zr
- if (dist12.lt.2.5) then
- proba1=proba1+1
- goto 200
- endif
-
- if (dist12.le.3.5) accept=1
-c if (dist12.le.3.5) accept=1
-c if (dist12.gt.3.5) proba2=proba2+1
- enddo
- enddo
-
-c write(*,*) "No overlaps", proba
- if (accept.eq.0) goto 200
-c write(*,*) "No overlaps, contact", conf, proba
-c write(3,305) "MODEL", conf
-c conf = conf+1
-
-
-
- write(*,*) "Conformation", ii1, "Is accepted after",
- & proba0x+proba0y+proba0z,
- & proba1, proba2, proba3, proba, "attempts. ",
- & "Dist between CoM of previous=", wymiar
-
-c Dodatkowe info
- write(*,*)"Extr",ABS(cm2xr+xcm1), ABS(cm2yr+ycm1), ABS(cm2zr+zcm1)
-
-
- conf=conf+1
-c write (*,*)
-
-
-
-
-
- korekta2 = numerr2(1)-1
-c write(*,*) "Original number of the first residue in
-c & the second protein:"
-c write(*,*) numerr2(1)
-
-c write(*,*)"Correction of the first residue in the second protein:"
-c write(*,*) korekta2
- do i=1,ilosc_atomow2
- write(3,800) atoma2(i),numera2(i),nazwaa2(i),nazwar2(i),"B",
- & (numerr2(i)+ile_reszt_mol1-korekta2),
- & x2r(i),y2r(i),z2r(i)
- enddo
- write(3,303) "TER"
-c write(3,304) "ENDMDL"
-c write(3,305) "MODEL", conf
- write(3,303) "END"
-
- 200 continue
- proba = proba + 1
- enddo
- 133 continue
-
- close (3)
-
-c call sleep(1)
-
-
- if (ii1.lt.10) then
- write (plik4, "(A9,I1,a4)") "template0", ii1, ".sco"
- else
- write (plik4, "(A8,I2,a4)") "template", ii1, ".sco"
- endif
-
- open (7,file=plik4)
-
-
- if (peptide.eq.1) then
- do ijl=1,(ile_reszt_mol1+ile_reszt_mol2+ilee)
- if (glys1.eq.0) then
- if (ijl.eq.1) write(7,*) ijl, "1.0 1.0 1.0 ", "0"
- if (ijl.le.ile_reszt_mol1+1.and.ijl.gt.1)
- & write(7,*) ijl, "1.0 1.0 1.0 ", "1"
- if (ijl.ge.(ile_reszt_mol1+2))
- & write(7,*) ijl, "1.0 1.0 1.0 ", "0"
- endif
-
- if (glys1.eq.1) then
- if (ijl.eq.1) write(7,*) ijl, "1.0 1.0 1.0 ", "1"
- if (ijl.le.ile_reszt_mol1.and.ijl.gt.1)
- & write(7,*) ijl, "1.0 1.0 1.0 ", "1"
- if (ijl.ge.(ile_reszt_mol1+1))
- & write(7,*) ijl, "1.0 1.0 1.0 ", "0"
- endif
- enddo
- endif
-
-
- if (peptide.eq.0) then
- do ijl=1,(ile_reszt_mol1+ile_reszt_mol2+ilee)
-c write(*,*) "ijl"
-c no Gly
- if (glys1.eq.0.and.glye1.eq.0.and.glys2.eq.0) then
- if (ijl.eq.1) write(7,*) ijl, "1.0 1.0 1.0 ", "0"
- if (ijl.le.ile_reszt_mol1+1.and.ijl.gt.1)
- & write(7,*) ijl, "1.0 1.0 1.0 ", "1"
- if (ijl.ge.(ile_reszt_mol1+2).and.ijl.le.(ile_reszt_mol1+3))
- & write(7,*) ijl, "1.0 1.0 1.0 ", "0"
- if (ijl.gt.(ile_reszt_mol1+3).and.
- & ijl.le.(ile_reszt_mol2+ile_reszt_mol1+3))
- & write(7,*) ijl, "1.0 1.0 1.0 ", "2"
- if (ijl.ge.(ile_reszt_mol2+ile_reszt_mol1+4))
- & write(7,*) ijl, "1.0 1.0 1.0 ", "0"
- endif
-
-
-c chain 1 first Gly
- if (glys1.eq.1.and.glye1.eq.0.and.glys2.eq.0) then
- if (ijl.eq.1) write(7,*) ijl, "1.0 1.0 1.0 ", "1"
- if (ijl.le.ile_reszt_mol1.and.ijl.gt.1)
- & write(7,*) ijl, "1.0 1.0 1.0 ", "1"
- if (ijl.ge.(ile_reszt_mol1+1).and.ijl.le.(ile_reszt_mol1+2))
- & write(7,*) ijl, "1.0 1.0 1.0 ", "0"
- if (ijl.gt.(ile_reszt_mol1+2).and.
- & ijl.le.(ile_reszt_mol2+ile_reszt_mol1+2))
- & write(7,*) ijl, "1.0 1.0 1.0 ", "2"
- if (ijl.ge.(ile_reszt_mol2+ile_reszt_mol1+3))
- & write(7,*) ijl, "1.0 1.0 1.0 ", "0"
- endif
-
-c chain 1 last Gly
- if (glys1.eq.0.and.glye1.eq.1.and.glys2.eq.0) then
- if (ijl.eq.1) write(7,*) ijl, "1.0 1.0 1.0 ", "0"
- if (ijl.le.ile_reszt_mol1+1.and.ijl.gt.1)
- & write(7,*) ijl, "1.0 1.0 1.0 ", "1"
- if (ijl.ge.(ile_reszt_mol1+2).and.ijl.le.(ile_reszt_mol1+2))
- & write(7,*) ijl, "1.0 1.0 1.0 ", "0"
- if (ijl.gt.(ile_reszt_mol1+2).and.
- & ijl.le.(ile_reszt_mol2+ile_reszt_mol1+2))
- & write(7,*) ijl, "1.0 1.0 1.0 ", "2"
- if (ijl.ge.(ile_reszt_mol2+ile_reszt_mol1+3))
- & write(7,*) ijl, "1.0 1.0 1.0 ", "0"
- endif
-
-c chain 1 first Gly and chain 1 last Gly
- if (glys1.eq.1.and.glye1.eq.1.and.glys2.eq.0) then
- if (ijl.eq.1) write(7,*) ijl, "1.0 1.0 1.0 ", "1"
- if (ijl.le.ile_reszt_mol1.and.ijl.gt.1)
- & write(7,*) ijl, "1.0 1.0 1.0 ", "1"
- if (ijl.ge.(ile_reszt_mol1+1).and.ijl.le.(ile_reszt_mol1+1))
- & write(7,*) ijl, "1.0 1.0 1.0 ", "0"
- if (ijl.gt.(ile_reszt_mol1+1).and.
- & ijl.le.(ile_reszt_mol2+ile_reszt_mol1+1))
- & write(7,*) ijl, "1.0 1.0 1.0 ", "2"
- if (ijl.ge.(ile_reszt_mol2+ile_reszt_mol1+2))
- & write(7,*) ijl, "1.0 1.0 1.0 ", "0"
- endif
-
-c chain 2 first Gly
- if (glys1.eq.0.and.glye1.eq.0.and.glys2.eq.1) then
- if (ijl.eq.1) write(7,*) ijl, "1.0 1.0 1.0 ", "0"
- if (ijl.le.ile_reszt_mol1+1.and.ijl.gt.1)
- & write(7,*) ijl, "1.0 1.0 1.0 ", "1"
- if (ijl.ge.(ile_reszt_mol1+2).and.ijl.le.(ile_reszt_mol1+2))
- & write(7,*) ijl, "1.0 1.0 1.0 ", "0"
- if (ijl.gt.(ile_reszt_mol1+2).and.
- & ijl.le.(ile_reszt_mol2+ile_reszt_mol1+2))
- & write(7,*) ijl, "1.0 1.0 1.0 ", "2"
- if (ijl.ge.(ile_reszt_mol2+ile_reszt_mol1+3))
- & write(7,*) ijl, "1.0 1.0 1.0 ", "0"
- endif
-
-c chain 1 first Gly chain 2 first Gly
- if (glys1.eq.1.and.glye1.eq.0.and.glys2.eq.1) then
- if (ijl.eq.1) write(7,*) ijl, "1.0 1.0 1.0 ", "1"
- if (ijl.le.ile_reszt_mol1.and.ijl.gt.1)
- & write(7,*) ijl, "1.0 1.0 1.0 ", "1"
- if (ijl.ge.(ile_reszt_mol1+1).and.ijl.le.(ile_reszt_mol1+1))
- & write(7,*) ijl, "1.0 1.0 1.0 ", "0"
- if (ijl.gt.(ile_reszt_mol1+1).and.
- & ijl.le.(ile_reszt_mol2+ile_reszt_mol1+1))
- & write(7,*) ijl, "1.0 1.0 1.0 ", "2"
- if (ijl.ge.(ile_reszt_mol2+ile_reszt_mol1+2))
- & write(7,*) ijl, "1.0 1.0 1.0 ", "0"
- endif
-
-c chain 1 last Gly chain 2 first Gly
- if (glys1.eq.0.and.glye1.eq.1.and.glys2.eq.1) then
- if (ijl.eq.1) write(7,*) ijl, "1.0 1.0 1.0 ", "0"
- if (ijl.le.ile_reszt_mol1+1.and.ijl.gt.1)
- & write(7,*) ijl, "1.0 1.0 1.0 ", "1"
-c if (ijl.ge.(ile_reszt_mol1+2).and.ijl.le.(ile_reszt_mol1+3))
-c & write(7,*) ijl, "1.0 1.0 1.0 ", "0"
- if (ijl.gt.(ile_reszt_mol1+1).and.
- & ijl.le.(ile_reszt_mol2+ile_reszt_mol1+1))
- & write(7,*) ijl, "1.0 1.0 1.0 ", "2"
- if (ijl.ge.(ile_reszt_mol2+ile_reszt_mol1+2))
- & write(7,*) ijl, "1.0 1.0 1.0 ", "0"
- endif
-
-c all Gly
- if (glys1.eq.1.and.glye1.eq.1.and.glys2.eq.1) then
- if (ijl.eq.1) write(7,*) ijl, "1.0 1.0 1.0 ", "1"
- if (ijl.le.ile_reszt_mol1.and.ijl.gt.1)
- & write(7,*) ijl, "1.0 1.0 1.0 ", "1"
-c if (ijl.ge.(ile_reszt_mol1+2).and.ijl.le.(ile_reszt_mol1+3))
-c & write(7,*) ijl, "1.0 1.0 1.0 ", "0"
- if (ijl.gt.(ile_reszt_mol1).and.
- & ijl.le.(ile_reszt_mol2+ile_reszt_mol1))
- & write(7,*) ijl, "1.0 1.0 1.0 ", "2"
-c if (ijl.ge.(ile_reszt_mol2+ile_reszt_mol1+1))
-c & write(7,*) ijl, "1.0 1.0 1.0 ", "0"
- endif
-
-
-
- enddo
- endif
-
-
- close (7)
-
-c koniec petli po ilosci struktur
- enddo
-
-c do i=1,20
-c write(*,*) i, cmxx(i), cmyy(i), cmzz(i)
-c dd=(cm2xr-cmxx(ir))**2+(cm2yr-cmyy(ir))**2+(cm2zr-cmyy(ir))**2
-c enddo
-
-c do i=1,20
-c do j=1,20
-c dd=sqrt((cmxx(i)-cmxx(j))**2+(cmyy(i)-cmyy(j))**2+
-c & (cmzz(i)-cmzz(j))**2)
-c write(*,*) i,j,dd
-c enddo
-c enddo
-
-
- 300 format(6f8.2)
- 301 format(3f8.2)
- 302 format(f8.2)
- 800 format(a4,2X,i5,1X,a4,1X,a3,1X,a1,i4,4X,3f8.3)
- 303 format(a3)
- 304 format(a6)
- 305 format(a5,1X,i8)
- end
-
-
-
-
- SUBROUTINE SRAND(ISEED)
-C
-C This subroutine sets the integer seed to be used with the
-C companion RAND function to the value of ISEED. A flag is
-C set to indicate that the sequence of pseudo-random numbers
-C for the specified seed should start from the beginning.
-C
- COMMON /SEED/JSEED,IFRST
-C
- JSEED = ISEED
- IFRST = 0
-C
- RETURN
- END
- REAL FUNCTION RAND()
-C
-C This function returns a pseudo-random number for each invocation.
-C It is a FORTRAN 77 adaptation of the "Integer Version 2" minimal
-C standard number generator whose Pascal code appears in the article:
-C
-C Park, Steven K. and Miller, Keith W., "Random Number Generators:
-C Good Ones are Hard to Find", Communications of the ACM,
-C October, 1988.
-C
- PARAMETER (MPLIER=16807,MODLUS=2147483647,MOBYMP=127773,
- + MOMDMP=2836)
-C
- COMMON /SEED/JSEED,IFRST
- INTEGER HVLUE, LVLUE, TESTV, NEXTN
- SAVE NEXTN
-C
- IF (IFRST .EQ. 0) THEN
- NEXTN = JSEED
- IFRST = 1
- ENDIF
-C
- HVLUE = NEXTN / MOBYMP
- LVLUE = MOD(NEXTN, MOBYMP)
- TESTV = MPLIER*LVLUE - MOMDMP*HVLUE
- IF (TESTV .GT. 0) THEN
- NEXTN = TESTV
- ELSE
- NEXTN = TESTV + MODLUS
- ENDIF
- RAND = REAL(NEXTN)/REAL(MODLUS)
-C
- RETURN
- END
- BLOCKDATA RANDBD
- COMMON /SEED/JSEED,IFRST
-C
- DATA JSEED,IFRST/123456789,0/
-C
- END
-
- Subroutine ranorND(b,nd,ilosc_atomow2,ii1)
- double precision b
-C generates a random vector on a unit sphere onC an ND-dimensional space.
-C algorithm 40 page 410.
-C the algorithm assumes that the formula for bz is valid, i.e
-C bz=(1.0-2.0*ransq),
-C and also that, ransq can be computed as as the sum of the independent random
-C numbers to the second power (expression 3).
- dimension ran(nd-1), b(nd)
- integer seed
-c write(*,*) "In Subroutine ranorND(b,nd), nd=", nd
-c write(*,*) "ilosc_atomow2=", ilosc_atomow2
-c do j=1,ilosc_atomow2
- ransq=2
- seed = time()*ii1
- call srand(seed)
- do while (ransq.ge.1)
-c write(*,*) ransq
- rsq=0.0
- do i=1,nd-1
- ran(i)=1.0-2.0*rand(0)
-c write(*,*) i, ran(i)
- rsq=ran(i)*ran(i)+rsq ! (3)
-c write(*,*) i, rsq
- enddo
- ransq=rsq
-c write(*,*) j, ransq
- enddo
- ranh=2.0*sqrt(1.0-ransq)
-c write(*,*) j, ranh, ransq
- do i=1,nd-1
- b(i)=ran(i)*ranh
-c write(*,*) ran(i), ranh
- enddo
- b(nd)=(1.0-2.0*ransq)
-c write(*,*) b(1,j), b(2,j), b(3,j), b(4,j)
-c enddo
- return
- end
-
- subroutine rot_trans(xt2,t,q,xf,ilosc_atomow2)
-C x coordinates, t translation vector, q quaternion
- double precision xt2(90000,3),xf(90000,3)
- double precision t(3),q(4)
- integer i
- write(*,*) "Rotation vector:", q(1), q(2), q(3), q(4)
- r11= q(1)*q(1)+q(2)*q(2)-q(3)*q(3)-q(4)*q(4)
- r22= q(1)*q(1)-q(2)*q(2)+q(3)*q(3)-q(4)*q(4)
- r33= q(1)*q(1)-q(2)*q(2)-q(3)*q(3)+q(4)*q(4)
- r12= 2*(q(2)*q(3)-q(1)*q(4))
- r21= 2*(q(2)*q(3)+q(1)*q(4))
- r13= 2*(q(2)*q(4)+q(1)*q(3))
- r31= 2*(q(2)*q(4)-q(1)*q(3))
- r23= 2*(q(3)*q(4)-q(1)*q(2))
- r32= 2*(q(3)*q(4)+q(1)*q(2))
-
-c write(*,*) r11, r22, r33, r12, r21, r13, r31, r23, r32
-
- do i=1,ilosc_atomow2
- xf(i,1)= r11*xt2(i,1)+r12*xt2(i,2)+r13*xt2(i,3) + t(1)
- xf(i,2)= r21*xt2(i,1)+r22*xt2(i,2)+r23*xt2(i,3) + t(2)
- xf(i,3)= r31*xt2(i,1)+r32*xt2(i,2)+r33*xt2(i,3) + t(3)
-c write(*,*) i, xt2(i,1), xt2(i,2), xt2(i,3)
-c write(*,*) i, xf(i,1), xf(i,2), xf(i,3)
- enddo
-
- return
- end
-