我有以下代码:
def grab(resi):
s1 = f"resi {resi} & name P"
s2 = f"resi {resi} & name C4'"
s3 = f"resi {int(resi) + 1} & name P"
s4 = f"resi {int(resi) +1 } & name C4'"
try:
dih = round(cmd.get_dihedral(s1,s2,s3,s4),2)
except:
dih = None
return s1,s2,s3,s4,dih
myspace = {"grab": grab}
cmd.iterate("(name P)","grab(resi)",space=myspace)
这个函数基本上抓取一些特定的原子并返回二面元组。这正是我想要的。
代码返回以下内容:
('resi 2 & name P',
"resi 2 & name C4'",
'resi 3 & name P',
"resi 3 & name C4'",
172.29)
('resi 3 & name P',
"resi 3 & name C4'",
'resi 4 & name P',
"resi 4 & name C4'",
-139.65)
...
所以,代码只是打印函数返回的内容,我想将其添加到变量中,以便我可以操作它。
换句话说,我想要一个连接到变量的元组列表:
my_final_list
> [('resi 2 & name P',
"resi 2 & name C4'",
'resi 3 & name P',
"resi 3 & name C4'",
172.29),('resi 3 & name P',
"resi 3 & name C4'",
'resi 4 & name P',
"resi 4 & name C4'",
-139.65) ..]
可能比我想象的要容易,但我就是无法找到解决方案。
我无法弄清楚
myspace
在你的这段代码中代表什么,希望有人能阐明这一点。
myspace = {"grab": grab}
cmd.iterate("(name P)","grab(resi)",space=myspace)
尽管如此,我试图找出一个可以回答你的问题的运行脚本:
输入文件:
1bna.pdb
仅单链(链A):
ATOM 1 O5' DC A 1 18.935 34.195 25.617 1.00 64.35 O
ATOM 2 C5' DC A 1 19.130 33.921 24.219 1.00 44.69 C
ATOM 3 C4' DC A 1 19.961 32.668 24.100 1.00 31.28 C
ATOM 4 O4' DC A 1 19.360 31.583 24.852 1.00 37.45 O
ATOM 5 C3' DC A 1 20.172 32.122 22.694 1.00 46.72 C
ATOM 6 O3' DC A 1 21.350 31.325 22.681 1.00 48.89 O
ATOM 7 C2' DC A 1 18.948 31.223 22.647 1.00 30.88 C
ATOM 8 C1' DC A 1 19.231 30.482 23.944 1.00 36.58 C
ATOM 9 N1 DC A 1 18.070 29.661 24.380 1.00 40.51 N
ATOM 10 C2 DC A 1 18.224 28.454 25.015 1.00 16.62 C
ATOM 11 O2 DC A 1 19.360 28.014 25.214 1.00 27.75 O
ATOM 12 N3 DC A 1 17.143 27.761 25.377 1.00 20.55 N
ATOM 13 C4 DC A 1 15.917 28.226 25.120 1.00 34.72 C
ATOM 14 N4 DC A 1 14.828 27.477 25.444 1.00 40.31 N
ATOM 15 C5 DC A 1 15.719 29.442 24.471 1.00 30.78 C
ATOM 16 C6 DC A 1 16.843 30.171 24.101 1.00 25.90 C
ATOM 17 P DG A 2 22.409 31.286 21.483 1.00 58.85 P
ATOM 18 OP1 DG A 2 23.536 32.157 21.851 1.00 57.82 O
ATOM 19 OP2 DG A 2 21.822 31.459 20.139 1.00 78.33 O
ATOM 20 O5' DG A 2 22.840 29.751 21.498 1.00 40.36 O
ATOM 21 C5' DG A 2 23.543 29.175 22.594 1.00 47.19 C
ATOM 22 C4' DG A 2 23.494 27.709 22.279 1.00 47.81 C
ATOM 23 O4' DG A 2 22.193 27.252 22.674 1.00 38.76 O
ATOM 24 C3' DG A 2 23.693 27.325 20.807 1.00 28.58 C
ATOM 25 O3' DG A 2 24.723 26.320 20.653 1.00 40.44 O
ATOM 26 C2' DG A 2 22.273 26.885 20.416 1.00 21.14 C
ATOM 27 C1' DG A 2 21.721 26.304 21.716 1.00 33.95 C
ATOM 28 N9 DG A 2 20.237 26.470 21.780 1.00 34.00 N
ATOM 29 C8 DG A 2 19.526 27.584 21.429 1.00 36.47 C
ATOM 30 N7 DG A 2 18.207 27.455 21.636 1.00 32.37 N
ATOM 31 C5 DG A 2 18.083 26.212 22.142 1.00 15.06 C
ATOM 32 C6 DG A 2 16.904 25.525 22.545 1.00 11.88 C
ATOM 33 O6 DG A 2 15.739 25.916 22.518 1.00 21.30 O
ATOM 34 N1 DG A 2 17.197 24.279 23.037 1.00 15.44 N
ATOM 35 C2 DG A 2 18.434 23.717 23.155 1.00 9.63 C
ATOM 36 N2 DG A 2 18.508 22.456 23.668 1.00 16.69 N
ATOM 37 N3 DG A 2 19.537 24.360 22.770 1.00 30.98 N
ATOM 38 C4 DG A 2 19.290 25.594 22.274 1.00 18.56 C
ATOM 39 P DC A 3 25.064 25.621 19.252 1.00 44.67 P
ATOM 40 OP1 DC A 3 26.506 25.316 19.220 1.00 53.89 O
ATOM 41 OP2 DC A 3 24.559 26.412 18.115 1.00 57.79 O
ATOM 42 O5' DC A 3 24.260 24.246 19.327 1.00 35.42 O
ATOM 43 C5' DC A 3 24.584 23.285 20.335 1.00 45.75 C
ATOM 44 C4' DC A 3 23.523 22.233 20.245 1.00 43.02 C
ATOM 45 O4' DC A 3 22.256 22.844 20.453 1.00 36.85 O
ATOM 46 C3' DC A 3 23.424 21.557 18.903 1.00 40.14 C
ATOM 47 O3' DC A 3 24.121 20.309 18.928 1.00 49.62 O
ATOM 48 C2' DC A 3 21.930 21.406 18.661 1.00 53.79 C
ATOM 49 C1' DC A 3 21.278 21.966 19.909 1.00 22.18 C
ATOM 50 N1 DC A 3 20.196 22.889 19.521 1.00 25.44 N
ATOM 51 C2 DC A 3 18.909 22.584 19.816 1.00 19.81 C
ATOM 52 O2 DC A 3 18.685 21.512 20.382 1.00 29.92 O
ATOM 53 N3 DC A 3 17.935 23.447 19.502 1.00 21.59 N
ATOM 54 C4 DC A 3 18.217 24.603 18.897 1.00 14.01 C
ATOM 55 N4 DC A 3 17.221 25.499 18.629 1.00 26.88 N
ATOM 56 C5 DC A 3 19.526 24.945 18.571 1.00 27.59 C
ATOM 57 C6 DC A 3 20.537 24.048 18.899 1.00 27.05 C
ATOM 58 P DG A 4 24.249 19.412 17.617 1.00 44.54 P
ATOM 59 OP1 DG A 4 25.420 18.535 17.765 1.00 61.90 O
ATOM 60 OP2 DG A 4 24.208 20.296 16.440 1.00 37.36 O
ATOM 61 O5' DG A 4 22.931 18.537 17.670 1.00 32.01 O
ATOM 62 C5' DG A 4 22.714 17.625 18.753 1.00 37.89 C
ATOM 63 C4' DG A 4 21.393 16.960 18.505 1.00 53.00 C
ATOM 64 O4' DG A 4 20.353 17.952 18.496 1.00 38.79 O
ATOM 65 C3' DG A 4 21.264 16.229 17.176 1.00 56.72 C
ATOM 66 O3' DG A 4 20.284 15.214 17.238 1.00 64.12 O
ATOM 67 C2' DG A 4 20.793 17.368 16.288 1.00 40.81 C
ATOM 68 C1' DG A 4 19.716 17.901 17.218 1.00 30.52 C
ATOM 69 N9 DG A 4 19.305 19.281 16.869 1.00 28.53 N
ATOM 70 C8 DG A 4 20.017 20.263 16.232 1.00 27.82 C
ATOM 71 N7 DG A 4 19.313 21.394 16.077 1.00 28.01 N
ATOM 72 C5 DG A 4 18.121 21.100 16.635 1.00 23.22 C
ATOM 73 C6 DG A 4 16.952 21.904 16.749 1.00 29.21 C
ATOM 74 O6 DG A 4 16.769 23.057 16.368 1.00 38.58 O
ATOM 75 N1 DG A 4 15.933 21.214 17.352 1.00 27.94 N
ATOM 76 C2 DG A 4 15.972 19.930 17.816 1.00 23.44 C
ATOM 77 N2 DG A 4 14.831 19.416 18.353 1.00 42.64 N
ATOM 78 N3 DG A 4 17.068 19.179 17.717 1.00 21.56 N
ATOM 79 C4 DG A 4 18.084 19.825 17.121 1.00 23.44 C
ATOM 80 P DA A 5 20.356 13.969 16.245 1.00 57.01 P
ATOM 81 OP1 DA A 5 21.116 12.891 16.892 1.00 58.59 O
ATOM 82 OP2 DA A 5 20.837 14.423 14.910 1.00 51.96 O
ATOM 83 O5' DA A 5 18.810 13.581 16.161 1.00 47.12 O
ATOM 84 C5' DA A 5 18.015 13.569 17.362 1.00 47.67 C
ATOM 85 C4' DA A 5 16.672 14.088 16.957 1.00 64.79 C
ATOM 86 O4' DA A 5 16.842 15.447 16.561 1.00 47.60 O
ATOM 87 C3' DA A 5 16.019 13.393 15.764 1.00 51.50 C
ATOM 88 O3' DA A 5 14.762 12.796 16.120 1.00 52.18 O
ATOM 89 C2' DA A 5 15.952 14.498 14.696 1.00 45.00 C
ATOM 90 C1' DA A 5 15.851 15.732 15.569 1.00 26.88 C
ATOM 91 N9 DA A 5 16.391 16.916 14.867 1.00 16.69 N
ATOM 92 C8 DA A 5 17.658 17.103 14.382 1.00 28.14 C
ATOM 93 N7 DA A 5 17.863 18.346 13.913 1.00 34.85 N
ATOM 94 C5 DA A 5 16.673 18.953 14.098 1.00 22.49 C
ATOM 95 C6 DA A 5 16.230 20.279 13.819 1.00 18.12 C
ATOM 96 N6 DA A 5 17.045 21.222 13.268 1.00 29.30 N
ATOM 97 N1 DA A 5 14.966 20.578 14.118 1.00 27.61 N
ATOM 98 C2 DA A 5 14.178 19.652 14.669 1.00 18.53 C
ATOM 99 N3 DA A 5 14.463 18.392 14.984 1.00 29.16 N
ATOM 100 C4 DA A 5 15.750 18.110 14.661 1.00 15.08 C
ATOM 101 P DA A 6 13.866 12.006 15.063 1.00 43.68 P
ATOM 102 OP1 DA A 6 13.028 11.039 15.800 1.00 42.55 O
ATOM 103 OP2 DA A 6 14.715 11.499 13.968 1.00 54.20 O
ATOM 104 O5' DA A 6 12.879 13.111 14.480 1.00 28.20 O
ATOM 105 C5' DA A 6 11.802 13.597 15.290 1.00 42.29 C
ATOM 106 C4' DA A 6 11.111 14.603 14.435 1.00 33.23 C
ATOM 107 O4' DA A 6 12.152 15.460 13.962 1.00 41.48 O
ATOM 108 C3' DA A 6 10.417 14.070 13.187 1.00 18.16 C
ATOM 109 O3' DA A 6 9.007 14.369 13.181 1.00 30.42 O
ATOM 110 C2' DA A 6 11.240 14.692 12.061 1.00 52.97 C
ATOM 111 C1' DA A 6 11.699 15.974 12.719 1.00 38.93 C
ATOM 112 N9 DA A 6 12.918 16.526 12.078 1.00 19.06 N
ATOM 113 C8 DA A 6 14.115 15.899 11.868 1.00 17.83 C
ATOM 114 N7 DA A 6 15.049 16.714 11.356 1.00 29.55 N
ATOM 115 C5 DA A 6 14.416 17.901 11.246 1.00 19.88 C
ATOM 116 C6 DA A 6 14.873 19.187 10.815 1.00 17.26 C
ATOM 117 N6 DA A 6 16.161 19.418 10.427 1.00 19.85 N
ATOM 118 N1 DA A 6 13.999 20.191 10.852 1.00 17.93 N
ATOM 119 C2 DA A 6 12.753 19.962 11.272 1.00 23.00 C
ATOM 120 N3 DA A 6 12.210 18.824 11.698 1.00 21.37 N
ATOM 121 C4 DA A 6 13.116 17.823 11.657 1.00 15.93 C
ATOM 122 P DT A 7 8.081 14.050 11.915 1.00 40.72 P
ATOM 123 OP1 DT A 7 6.668 13.960 12.342 1.00 46.75 O
ATOM 124 OP2 DT A 7 8.600 12.894 11.137 1.00 42.53 O
ATOM 125 O5' DT A 7 8.239 15.387 11.076 1.00 35.21 O
ATOM 126 C5' DT A 7 7.907 16.635 11.686 1.00 34.88 C
ATOM 127 C4' DT A 7 8.162 17.628 10.598 1.00 31.45 C
ATOM 128 O4' DT A 7 9.543 17.580 10.279 1.00 46.82 O
ATOM 129 C3' DT A 7 7.461 17.284 9.296 1.00 23.76 C
ATOM 130 O3' DT A 7 6.251 18.034 9.162 1.00 44.27 O
ATOM 131 C2' DT A 7 8.532 17.527 8.223 1.00 26.30 C
ATOM 132 C1' DT A 7 9.644 18.209 9.019 1.00 28.96 C
ATOM 133 N1 DT A 7 11.021 17.903 8.565 1.00 20.47 N
ATOM 134 C2 DT A 7 11.822 18.923 8.176 1.00 28.01 C
ATOM 135 O2 DT A 7 11.383 20.077 8.143 1.00 40.01 O
ATOM 136 N3 DT A 7 13.119 18.641 7.852 1.00 27.94 N
ATOM 137 C4 DT A 7 13.633 17.372 7.882 1.00 15.14 C
ATOM 138 O4 DT A 7 14.830 17.222 7.619 1.00 32.54 O
ATOM 139 C5 DT A 7 12.781 16.325 8.235 1.00 10.83 C
ATOM 140 C7 DT A 7 13.269 14.902 8.236 1.00 36.33 C
ATOM 141 C6 DT A 7 11.465 16.616 8.594 1.00 12.19 C
ATOM 142 P DT A 8 5.384 17.990 7.824 1.00 49.10 P
ATOM 143 OP1 DT A 8 4.025 18.444 8.180 1.00 41.11 O
ATOM 144 OP2 DT A 8 5.458 16.668 7.160 1.00 39.21 O
ATOM 145 O5' DT A 8 6.086 19.118 6.927 1.00 48.80 O
ATOM 146 C5' DT A 8 6.146 20.478 7.418 1.00 34.73 C
ATOM 147 C4' DT A 8 6.995 21.229 6.438 1.00 28.73 C
ATOM 148 O4' DT A 8 8.188 20.458 6.284 1.00 39.07 O
ATOM 149 C3' DT A 8 6.418 21.332 5.029 1.00 37.88 C
ATOM 150 O3' DT A 8 5.967 22.667 4.696 1.00 52.04 O
ATOM 151 C2' DT A 8 7.513 20.718 4.139 1.00 32.80 C
ATOM 152 C1' DT A 8 8.736 20.855 5.034 1.00 36.58 C
ATOM 153 N1 DT A 8 9.823 19.876 4.759 1.00 24.57 N
ATOM 154 C2 DT A 8 11.086 20.316 4.494 1.00 19.41 C
ATOM 155 O2 DT A 8 11.324 21.516 4.389 1.00 32.74 O
ATOM 156 N3 DT A 8 12.094 19.403 4.412 1.00 25.12 N
ATOM 157 C4 DT A 8 11.876 18.060 4.551 1.00 31.35 C
ATOM 158 O4 DT A 8 12.858 17.317 4.503 1.00 28.53 O
ATOM 159 C5 DT A 8 10.569 17.611 4.765 1.00 22.80 C
ATOM 160 C7 DT A 8 10.261 16.140 4.896 1.00 24.98 C
ATOM 161 C6 DT A 8 9.545 18.548 4.904 1.00 20.28 C
ATOM 162 P DC A 9 5.531 23.071 3.209 1.00 48.97 P
ATOM 163 OP1 DC A 9 4.648 24.244 3.269 1.00 62.33 O
ATOM 164 OP2 DC A 9 5.010 21.905 2.470 1.00 51.53 O
ATOM 165 O5' DC A 9 6.926 23.547 2.611 1.00 43.99 O
ATOM 166 C5' DC A 9 7.636 24.627 3.249 1.00 50.86 C
ATOM 167 C4' DC A 9 8.897 24.853 2.457 1.00 46.66 C
ATOM 168 O4' DC A 9 9.638 23.627 2.448 1.00 42.69 O
ATOM 169 C3' DC A 9 8.717 25.240 0.998 1.00 56.96 C
ATOM 170 O3' DC A 9 9.470 26.414 0.667 1.00 63.54 O
ATOM 171 C2' DC A 9 9.126 23.965 0.253 1.00 50.41 C
ATOM 172 C1' DC A 9 10.241 23.483 1.157 1.00 41.08 C
ATOM 173 N1 DC A 9 10.524 22.022 1.015 1.00 37.23 N
ATOM 174 C2 DC A 9 11.814 21.603 0.840 1.00 40.54 C
ATOM 175 O2 DC A 9 12.691 22.447 0.670 1.00 43.89 O
ATOM 176 N3 DC A 9 12.106 20.297 0.873 1.00 32.57 N
ATOM 177 C4 DC A 9 11.141 19.395 1.046 1.00 24.65 C
ATOM 178 N4 DC A 9 11.461 18.075 1.089 1.00 27.84 N
ATOM 179 C5 DC A 9 9.803 19.775 1.177 1.00 17.61 C
ATOM 180 C6 DC A 9 9.499 21.133 1.167 1.00 30.63 C
ATOM 181 P DG A 10 9.055 27.333 -0.581 1.00 65.48 P
ATOM 182 OP1 DG A 10 9.496 28.717 -0.258 1.00 59.09 O
ATOM 183 OP2 DG A 10 7.632 27.106 -0.947 1.00 45.71 O
ATOM 184 O5' DG A 10 9.954 26.765 -1.771 1.00 70.30 O
ATOM 185 C5' DG A 10 11.382 26.940 -1.720 1.00 71.73 C
ATOM 186 C4' DG A 10 11.972 26.090 -2.802 1.00 58.69 C
ATOM 187 O4' DG A 10 11.802 24.724 -2.404 1.00 41.03 O
ATOM 188 C3' DG A 10 11.327 26.178 -4.188 1.00 45.61 C
ATOM 189 O3' DG A 10 12.311 26.096 -5.214 1.00 52.70 O
ATOM 190 C2' DG A 10 10.414 24.962 -4.186 1.00 36.02 C
ATOM 191 C1' DG A 10 11.429 24.028 -3.587 1.00 50.90 C
ATOM 192 N9 DG A 10 10.890 22.713 -3.200 1.00 45.86 N
ATOM 193 C8 DG A 10 9.616 22.315 -2.910 1.00 44.49 C
ATOM 194 N7 DG A 10 9.541 21.009 -2.613 1.00 39.96 N
ATOM 195 C5 DG A 10 10.818 20.588 -2.718 1.00 38.99 C
ATOM 196 C6 DG A 10 11.376 19.292 -2.511 1.00 35.78 C
ATOM 197 O6 DG A 10 10.813 18.252 -2.179 1.00 34.90 O
ATOM 198 N1 DG A 10 12.729 19.299 -2.720 1.00 23.54 N
ATOM 199 C2 DG A 10 13.498 20.365 -3.082 1.00 8.73 C
ATOM 200 N2 DG A 10 14.834 20.169 -3.237 1.00 23.15 N
ATOM 201 N3 DG A 10 12.982 21.573 -3.267 1.00 24.68 N
ATOM 202 C4 DG A 10 11.656 21.601 -3.061 1.00 31.53 C
ATOM 203 P DC A 11 12.763 27.421 -5.980 1.00 60.62 P
ATOM 204 OP1 DC A 11 12.796 28.572 -5.049 1.00 63.74 O
ATOM 205 OP2 DC A 11 11.886 27.542 -7.164 1.00 52.44 O
ATOM 206 O5' DC A 11 14.272 27.086 -6.366 1.00 57.57 O
ATOM 207 C5' DC A 11 15.275 27.108 -5.318 1.00 54.70 C
ATOM 208 C4' DC A 11 16.222 25.946 -5.510 1.00 72.51 C
ATOM 209 O4' DC A 11 15.443 24.754 -5.397 1.00 47.18 O
ATOM 210 C3' DC A 11 16.942 25.827 -6.848 1.00 29.82 C
ATOM 211 O3' DC A 11 18.340 25.511 -6.701 1.00 43.53 O
ATOM 212 C2' DC A 11 16.118 24.767 -7.578 1.00 51.34 C
ATOM 213 C1' DC A 11 15.856 23.836 -6.414 1.00 30.07 C
ATOM 214 N1 DC A 11 14.672 22.975 -6.637 1.00 23.25 N
ATOM 215 C2 DC A 11 14.802 21.628 -6.529 1.00 20.38 C
ATOM 216 O2 DC A 11 15.924 21.178 -6.314 1.00 38.77 O
ATOM 217 N3 DC A 11 13.723 20.842 -6.627 1.00 15.92 N
ATOM 218 C4 DC A 11 12.515 21.373 -6.836 1.00 15.82 C
ATOM 219 N4 DC A 11 11.410 20.574 -6.872 1.00 28.04 N
ATOM 220 C5 DC A 11 12.348 22.744 -6.978 1.00 26.17 C
ATOM 221 C6 DC A 11 13.470 23.558 -6.869 1.00 35.50 C
ATOM 222 P DG A 12 19.331 25.774 -7.925 1.00 55.98 P
ATOM 223 OP1 DG A 12 20.704 25.976 -7.408 1.00 45.83 O
ATOM 224 OP2 DG A 12 18.763 26.851 -8.758 1.00 44.26 O
ATOM 225 O5' DG A 12 19.302 24.412 -8.763 1.00 62.63 O
ATOM 226 C5' DG A 12 20.109 23.284 -8.359 1.00 69.50 C
ATOM 227 C4' DG A 12 19.748 22.167 -9.299 1.00 39.92 C
ATOM 228 O4' DG A 12 18.350 21.969 -9.139 1.00 32.00 O
ATOM 229 C3' DG A 12 19.921 22.404 -10.815 1.00 50.39 C
ATOM 230 O3' DG A 12 20.985 21.635 -11.401 1.00 64.13 O
ATOM 231 C2' DG A 12 18.535 22.062 -11.381 1.00 36.18 C
ATOM 232 C1' DG A 12 17.965 21.200 -10.269 1.00 24.79 C
ATOM 233 N9 DG A 12 16.493 21.220 -10.265 1.00 28.44 N
ATOM 234 C8 DG A 12 15.663 22.289 -10.478 1.00 31.85 C
ATOM 235 N7 DG A 12 14.368 21.958 -10.390 1.00 38.26 N
ATOM 236 C5 DG A 12 14.388 20.640 -10.102 1.00 28.99 C
ATOM 237 C6 DG A 12 13.301 19.742 -9.856 1.00 42.63 C
ATOM 238 O6 DG A 12 12.091 19.967 -9.857 1.00 49.17 O
ATOM 239 N1 DG A 12 13.750 18.466 -9.625 1.00 40.15 N
ATOM 240 C2 DG A 12 15.042 18.043 -9.605 1.00 33.42 C
ATOM 241 N2 DG A 12 15.259 16.717 -9.406 1.00 40.53 N
ATOM 242 N3 DG A 12 16.061 18.885 -9.792 1.00 37.34 N
ATOM 243 C4 DG A 12 15.660 20.156 -10.027 1.00 31.14 C
TER 244 DG A 12
MASTER 355 0 0 0 0 0 0 6 566 2 0 2
END
我的代码:
from pymol import cmd, stored
#remove GetDihedral-Error: Selection 3 doesn't contain a single atom/vertex. print to stdout
#from cmd.get_dihedral(s1,s2,s3,s4, quiet = 0)
cmd.feedback( "disable" , "all" , "errors")
#load pdb
cmd.load('1bna.pdb', 'obj01')
## example of cmd.select and cmd.iterate --> with results in a list
cmd.select(name = 'res', selection = 'name P', quiet = 0) # use quiet = 1 to remove messages to stdout
print("\ncmd.get_names(type = 'selections') : ",cmd.get_names(type = 'selections'))
a = cmd.get_names(type = 'selections')
print("\ncmd.get_names(type = 'selections')[0] : ", a[0])
stored.lista = []
cmd.iterate("(res)","stored.lista.append((resi,resn, name))")
print ('\nstored.lista : \n',stored.lista)
## apply approach described above to our case
def grab(resi):
s1 = f"resi {resi} & name P"
s2 = f"resi {resi} & name C4'"
s3 = f"resi {int(resi)+ 1} & name P"
s4 = f"resi {int(resi) +1 } & name C4'"
try:
dih = round(cmd.get_dihedral(s1,s2,s3,s4, quiet = 0),2) # use quiet = 1 to remove messages to stdout
return s1,s2,s3,s4,dih
except:
dih = None
return None
# cmd.extend('grab' , grab) # doesnt WORK !!!!!!!!!!!! AttributeError: module 'pymol.cmd' has no attribute 'grab'
cmd.grab = grab ## needed AttributeError: module 'pymol.cmd' has no attribute 'grab'
## cmd.extend('grab' , grab) doesnt work
## maybe related https://sourceforge.net/p/pymol/mailman/pymol-users/thread/[email protected]/
stored.grabbed = []
cmd.select(name = 'resx', selection = 'n. P', quiet = 0) # use quiet = 1 to remove messages to stdout
cmd.iterate("(resx)", "stored.grabbed.append(cmd.grab((resi))) ")
# print(stored.grabbed)
for i in stored.grabbed:
print(i)
print(type(stored.grabbed))
来自 [
stored.grabbed
(列表)] 的输出:
('resi 2 & name P', "resi 2 & name C4'", 'resi 3 & name P', "resi 3 & name C4'", -143.41)
('resi 3 & name P', "resi 3 & name C4'", 'resi 4 & name P', "resi 4 & name C4'", -158.81)
('resi 4 & name P', "resi 4 & name C4'", 'resi 5 & name P', "resi 5 & name C4'", -145.01)
('resi 5 & name P', "resi 5 & name C4'", 'resi 6 & name P', "resi 6 & name C4'", -135.24)
('resi 6 & name P', "resi 6 & name C4'", 'resi 7 & name P', "resi 7 & name C4'", -140.11)
('resi 7 & name P', "resi 7 & name C4'", 'resi 8 & name P', "resi 8 & name C4'", -162.67)
('resi 8 & name P', "resi 8 & name C4'", 'resi 9 & name P', "resi 9 & name C4'", -157.58)
('resi 9 & name P', "resi 9 & name C4'", 'resi 10 & name P', "resi 10 & name C4'", -125.19)
('resi 10 & name P', "resi 10 & name C4'", 'resi 11 & name P', "resi 11 & name C4'", 159.34)
('resi 11 & name P', "resi 11 & name C4'", 'resi 12 & name P', "resi 12 & name C4'", -105.6)
None
<class 'list'>
尝试在
space
中使用cmd.iterate
来避免from pymol import stored
,这也有效:
cmd.select(name = 'resx', selection = 'n. P', quiet = 0) # use quiet = 1 to remove messages to stdout
grabbed = []
# myspace = {"grab" : grab, "grabbed" : grabbed,} # "cmd" : cmd} ---> NameError: name 'cmd' is not defined if using
#grabbed.append(cmd.grab((resi)))
myspace = {"grab" : grab, "grabbed" : grabbed, "cmd" : cmd} ## cmd needed if using as above cmd.grab = grab ,
# but now using just grab that is in myspace too
# here both grabbed ( a list()) and grab ( a func()) are stored and retrieved from my space
cmd.iterate("(resx)","grabbed.append(grab((resi))) " , space=myspace)
print('\n-----------------------------------\n\n')
# print(grabbed)
for i in grabbed:
print(i)
print('\n-------------\n')
我很确定将您的
dihedral_res
应用于我的输入选择 name P
并不是您想要实现的目标,但如果没有正确的输入,我将专注于算法。