Pymol 脚本,迭代是如何工作的?如何从 Iterate 输出生成 CSV

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

我想知道 Pymol 的内置功能实际上是如何工作的。当我定义一个像“取一些原子名称”这样的函数时,“计算一些适当性(例如二面体)”。然后函数“Iterate”应该通过原子选择来迭代这个函数。

我还不明白如何操纵输出...

这里有一些代码(实际上这段代码是由另一个用户:FlamFlam 解决的)。

这是一个函数(据我理解)应该采用一些原子名称(s1,s2,s3,s4),计算属性(二面体)。然后它只返回一个带有原子标识符和角度属性的元组(这正是我想要的)。

def dihedral_res(model, segi, chain, resn, resi):
    
    sele = []
    
    s1 = "/{}/{}/{}/{}`{}/P".format(model, segi, chain, resn, resi)
    s2 = "/{}/{}/{}/{}`{}/C4'".format(model, segi, chain, resn, resi)
    s3 = "/{}/{}/{}/{}`{}/P".format(model, segi, chain, resn, resi)
    s4 = "/{}/{}/{}/{}`{}/C4'".format(model, segi, chain, resn, resi)
    try:
        dihedral_val = cmd.get_dihedral(s1, s2, s3, s4, state=0)
    except:
        dihedral_val = None
    
    return model, segi, chain, resn, resi, dihedral_val
    
dihedral_res = {'dihedral_res': dihedral_res}
cmd.iterate("name P", "dihedral_res(model, segi, chain, resn, resi)", space=dihedral_res)

这是输出:

('mir23', 'RNAA', '', 'C', '2', 180.0)
('mir23', 'RNAA', '', 'A', '3', 180.0)
('mir23', 'RNAA', '', 'A', '4', 180.0)
('mir23', 'RNAA', '', 'U', '5', 180.0)

现在我的问题是:我如何开始操纵这个输出? 我想制作一个包含所有这些元组的列表(以便索引这个元组列表我可以做任何我想做的事情)。 我还想生成一个看起来像这样的csv(空白很重要,因为只有在这种情况下我才没有链ID)(我并不关心csv是否会用字符串打印标识符“”)

model, segi, chain, resn, resi, angle
'mir23', 'RNAA', '', 'C', '2', 180.0
'mir23', 'RNAA', '', 'A', '3', 180.0

我也不明白为什么 pymol 要求我制作一本字典以及它是如何工作的。

(我知道 s1/s3 和 s2/s4 是同一个原子,我不关心科学部分)

python scripting bioinformatics pymol
1个回答
0
投票

用作输入

1bna.pdb
:

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                                                                             

和代码:

import pymol

from pymol import cmd

import csv

#pymol.finish_launching()

pymol.cmd.feedback('disable' , 'all' , 'error')

# pymol.cmd.feedback('enable' , 'all' , 'eblather')

cmd.load('1bna.pdb' , 'mol')


def dihedral_res(model, segi, chain, resn, resi):
    
    sele = [] # assigned but never used
    
    s1 = "/{}/{}/{}/{}`{}/P".format(model, segi, chain, resn, resi)
    s2 = "/{}/{}/{}/{}`{}/C4'".format(model, segi, chain, resn, resi)
    s3 = "/{}/{}/{}/{}`{}/P".format(model, segi, chain, resn, resi)
    s4 = "/{}/{}/{}/{}`{}/C4'".format(model, segi, chain, resn, resi)
    try:
        dihedral_val = cmd.get_dihedral(s1, s2, s3, s4, state=0)
        
        return model, segi, chain, resn, resi, dihedral_val
    except:
        dihedral_val = None
    
        return None


lista = []
    
dihedral_res = {'dihedral_res': dihedral_res, 'lista' : lista}

cmd.select('name_P' , 'name P')

# cmd.iterate("mol", "lista.append(dihedral_res(model, segi, chain, resn, resi))", space=dihedral_res)

cmd.iterate("name_P", "lista.append(dihedral_res(model, segi, chain, resn, resi))", space=dihedral_res)


while None in lista:    

    lista.remove(None)    
    
print(lista , '\n' ,type(lista))

with open('test_name_P.csv', 'wt') as test_file:
    
  file_writer = csv.writer(test_file , quoting=csv.QUOTE_ALL)
  # file_writer = csv.writer(test_file)
  
  file_writer.writerow(['model', 'segi', 'chain', 'resn', 'resi', 'angle'])
  
  for item_index in range(len(lista)):
  
      file_writer.writerow([lista[item_index][i] for i in range(len(lista[item_index]))])

输出

test_name_P.csv

"model","segi","chain","resn","resi","angle"
"mol","","A","DG","2","180.0"
"mol","","A","DC","3","180.0"
"mol","","A","DG","4","180.0"
"mol","","A","DA","5","180.0"
"mol","","A","DA","6","180.0"
"mol","","A","DT","7","180.0"
"mol","","A","DT","8","180.0"
"mol","","A","DC","9","180.0"
"mol","","A","DG","10","180.0"
"mol","","A","DC","11","180.0"
"mol","","A","DG","12","180.0"

我更改了你的

dihedral_res()
功能并从
Nones
中清除了列表,恢复它们不会有问题。

请参阅此处的解释:Iterate PimolWiki

“空间”论证 space 参数可用于将本地对象传递到表达式命名空间中,而不是评估全局 pymol 模块命名空间中的表达式。

也提供示例。

我很确定将您的

dihedral_res
应用到我的输入选择
name P
不是您想要实现的目标,但如果没有正确的输入,我专注于算法。

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