将 pymol 迭代的结果附加到变量中

问题描述 投票:0回答:1

我有以下代码:

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) ..]

可能比我想象的要容易,但我就是无法找到解决方案。

python bioinformatics pymol
1个回答
0
投票

我无法弄清楚

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                                                                             

DNA 或类似的东西同时携带 P 和 C4 原子:

我的代码:

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
并不是您想要实现的目标,但如果没有正确的输入,我将专注于算法。

© www.soinside.com 2019 - 2024. All rights reserved.