from __future__ import absolute_import, division, print_function

# this is so useful that we might as well store it centrally
model_1yjp = """\
CRYST1   21.937    4.866   23.477  90.00 107.08  90.00 P 1 21 1      2
ORIGX1      1.000000  0.000000  0.000000        0.00000
ORIGX2      0.000000  1.000000  0.000000        0.00000
ORIGX3      0.000000  0.000000  1.000000        0.00000
SCALE1      0.045585  0.000000  0.014006        0.00000
SCALE2      0.000000  0.205508  0.000000        0.00000
SCALE3      0.000000  0.000000  0.044560        0.00000
ATOM      1  N   GLY A   1      -9.009   4.612   6.102  1.00 16.77           N
ATOM      2  CA  GLY A   1      -9.052   4.207   4.651  1.00 16.57           C
ATOM      3  C   GLY A   1      -8.015   3.140   4.419  1.00 16.16           C
ATOM      4  O   GLY A   1      -7.523   2.521   5.381  1.00 16.78           O
ATOM      5  N   ASN A   2      -7.656   2.923   3.155  1.00 15.02           N
ATOM      6  CA  ASN A   2      -6.522   2.038   2.831  1.00 14.10           C
ATOM      7  C   ASN A   2      -5.241   2.537   3.427  1.00 13.13           C
ATOM      8  O   ASN A   2      -4.978   3.742   3.426  1.00 11.91           O
ATOM      9  CB  ASN A   2      -6.346   1.881   1.341  1.00 15.38           C
ATOM     10  CG  ASN A   2      -7.584   1.342   0.692  1.00 14.08           C
ATOM     11  OD1 ASN A   2      -8.025   0.227   1.016  1.00 17.46           O
ATOM     12  ND2 ASN A   2      -8.204   2.155  -0.169  1.00 11.72           N
ATOM     13  N   ASN A   3      -4.438   1.590   3.905  1.00 12.26           N
ATOM     14  CA  ASN A   3      -3.193   1.904   4.589  1.00 11.74           C
ATOM     15  C   ASN A   3      -1.955   1.332   3.895  1.00 11.10           C
ATOM     16  O   ASN A   3      -1.872   0.119   3.648  1.00 10.42           O
ATOM     17  CB  ASN A   3      -3.259   1.378   6.042  1.00 12.15           C
ATOM     18  CG  ASN A   3      -2.006   1.739   6.861  1.00 12.82           C
ATOM     19  OD1 ASN A   3      -1.702   2.925   7.072  1.00 15.05           O
ATOM     20  ND2 ASN A   3      -1.271   0.715   7.306  1.00 13.48           N
ATOM     21  N   GLN A   4      -1.005   2.228   3.598  1.00 10.29           N
ATOM     22  CA  GLN A   4       0.384   1.888   3.199  1.00 10.53           C
ATOM     23  C   GLN A   4       1.435   2.606   4.088  1.00 10.24           C
ATOM     24  O   GLN A   4       1.547   3.843   4.115  1.00  8.86           O
ATOM     25  CB  GLN A   4       0.656   2.148   1.711  1.00  9.80           C
ATOM     26  CG  GLN A   4       1.944   1.458   1.213  1.00 10.25           C
ATOM     27  CD  GLN A   4       2.504   2.044  -0.089  1.00 12.43           C
ATOM     28  OE1 GLN A   4       2.744   3.268  -0.190  1.00 14.62           O
ATOM     29  NE2 GLN A   4       2.750   1.161  -1.091  1.00  9.05           N
ATOM     30  N   GLN A   5       2.154   1.821   4.871  1.00 10.38           N
ATOM     31  CA  GLN A   5       3.270   2.361   5.640  1.00 11.39           C
ATOM     32  C   GLN A   5       4.594   1.768   5.172  1.00 11.52           C
ATOM     33  O   GLN A   5       4.768   0.546   5.054  1.00 12.05           O
ATOM     34  CB  GLN A   5       3.056   2.183   7.147  1.00 11.96           C
ATOM     35  CG  GLN A   5       1.829   2.950   7.647  1.00 10.81           C
ATOM     36  CD  GLN A   5       1.344   2.414   8.954  1.00 13.10           C
ATOM     37  OE1 GLN A   5       0.774   1.325   9.002  1.00 10.65           O
ATOM     38  NE2 GLN A   5       1.549   3.187  10.039  1.00 12.30           N
ATOM     39  N   ASN A   6       5.514   2.664   4.856  1.00 11.99           N
ATOM     40  CA  ASN A   6       6.831   2.310   4.318  1.00 12.30           C
ATOM     41  C   ASN A   6       7.854   2.761   5.324  1.00 13.40           C
ATOM     42  O   ASN A   6       8.219   3.943   5.374  1.00 13.92           O
ATOM     43  CB  ASN A   6       7.065   3.016   2.993  1.00 12.13           C
ATOM     44  CG  ASN A   6       5.961   2.735   2.003  1.00 12.77           C
ATOM     45  OD1 ASN A   6       5.798   1.604   1.551  1.00 14.27           O
ATOM     46  ND2 ASN A   6       5.195   3.747   1.679  1.00 10.07           N
ATOM     47  N   TYR A   7       8.292   1.817   6.147  1.00 14.70           N
ATOM     48  CA  TYR A   7       9.159   2.144   7.299  1.00 15.18           C
ATOM     49  C   TYR A   7      10.603   2.331   6.885  1.00 15.91           C
ATOM     50  O   TYR A   7      11.041   1.811   5.855  1.00 15.76           O
ATOM     51  CB  TYR A   7       9.061   1.065   8.369  1.00 15.35           C
ATOM     52  CG  TYR A   7       7.665   0.929   8.902  1.00 14.45           C
ATOM     53  CD1 TYR A   7       6.771   0.021   8.327  1.00 15.68           C
ATOM     54  CD2 TYR A   7       7.210   1.756   9.920  1.00 14.80           C
ATOM     55  CE1 TYR A   7       5.480  -0.094   8.796  1.00 13.46           C
ATOM     56  CE2 TYR A   7       5.904   1.649  10.416  1.00 14.33           C
ATOM     57  CZ  TYR A   7       5.047   0.729   9.831  1.00 15.09           C
ATOM     58  OH  TYR A   7       3.766   0.589  10.291  1.00 14.39           O
ATOM     59  OXT TYR A   7      11.358   2.999   7.612  1.00 17.49           O
END
"""
model_1yjp_with_waters = model_1yjp.replace('END', '''TER
HETATM   61  O   HOH A   8      -6.471   5.227   7.124  1.00 22.62           O
HETATM   62  O   HOH A   9      10.431   1.858   3.216  1.00 19.71           O
HETATM   63  O   HOH A  10     -11.286   1.756  -1.468  1.00 17.08           O
HETATM   64  O   HOH A  11      11.808   4.179   9.970  1.00 23.99           O
HETATM   65  O   HOH A  12      13.605   1.327   9.198  1.00 26.17           O
HETATM   66  O   HOH A  13      -2.749   3.429  10.024  1.00 39.15           O
HETATM   67  O   HOH A  14      -1.500   0.682  10.967  1.00 43.49           O
END
''')
# smallest PDB with a "ligand"
model_1aL1 = '''
CRYST1   62.350   62.350   62.350  90.00  90.00  90.00 I 41 3 2     48
ORIGX1      1.000000  0.000000  0.000000        0.00000
ORIGX2      0.000000  1.000000  0.000000        0.00000
ORIGX3      0.000000  0.000000  1.000000        0.00000
SCALE1      0.016038  0.000000  0.000000        0.00000
SCALE2      0.000000  0.016038  0.000000        0.00000
SCALE3      0.000000  0.000000  0.016038        0.00000
HETATM    1  C   ACE A   0      31.227  38.585  11.521  1.00 25.00           C
HETATM    2  O   ACE A   0      30.433  37.878  10.859  1.00 25.00           O
HETATM    3  CH3 ACE A   0      30.894  39.978  11.951  1.00 25.00           C
ATOM      4  N   GLU A   1      32.153  37.943  12.252  1.00 25.00           N
ATOM      5  CA  GLU A   1      32.594  36.639  11.811  1.00 25.00           C
ATOM      6  C   GLU A   1      32.002  35.428  12.514  1.00 25.00           C
ATOM      7  O   GLU A   1      32.521  34.279  12.454  1.00 25.00           O
ATOM      8  CB  GLU A   1      34.093  36.609  11.812  1.00 25.00           C
ATOM      9  CG  GLU A   1      34.609  36.464  13.285  1.00 25.00           C
ATOM     10  CD  GLU A   1      36.125  36.460  13.044  1.00 25.00           C
ATOM     11  OE1 GLU A   1      36.442  35.745  12.084  1.00 25.00           O
ATOM     12  OE2 GLU A   1      36.684  37.260  13.809  1.00 25.00           O
ATOM     13  N   LEU A   2      30.895  35.627  13.188  1.00 25.00           N
ATOM     14  CA  LEU A   2      30.067  34.612  13.814  1.00 25.00           C
ATOM     15  C   LEU A   2      29.025  34.315  12.695  1.00 25.00           C
ATOM     16  O   LEU A   2      28.665  33.168  12.395  1.00 25.00           O
ATOM     17  CB  LEU A   2      29.515  35.034  15.156  1.00 25.00           C
ATOM     18  CG  LEU A   2      28.434  34.122  15.752  1.00 25.00           C
ATOM     19  CD1 LEU A   2      29.008  33.110  16.720  1.00 25.00           C
ATOM     20  CD2 LEU A   2      27.350  34.963  16.399  1.00 25.00           C
ATOM     21  N   LEU A   3      28.628  35.417  12.027  1.00 25.00           N
ATOM     22  CA  LEU A   3      27.686  35.251  10.912  1.00 25.00           C
ATOM     23  C   LEU A   3      28.396  34.389   9.850  1.00 25.00           C
ATOM     24  O   LEU A   3      27.770  33.565   9.191  1.00 25.00           O
ATOM     25  CB  LEU A   3      27.084  36.547  10.374  1.00 25.00           C
ATOM     26  CG  LEU A   3      26.064  36.325   9.246  1.00 25.00           C
ATOM     27  CD1 LEU A   3      24.784  35.715   9.770  1.00 25.00           C
ATOM     28  CD2 LEU A   3      25.777  37.594   8.497  1.00 25.00           C
ATOM     29  N   LYS A   4      29.674  34.603   9.703  1.00 25.00           N
ATOM     30  CA  LYS A   4      30.512  33.899   8.748  1.00 25.00           C
ATOM     31  C   LYS A   4      30.578  32.417   9.098  1.00 25.00           C
ATOM     32  O   LYS A   4      30.261  31.531   8.280  1.00 25.00           O
ATOM     33  CB  LYS A   4      31.924  34.471   8.710  1.00 25.00           C
ATOM     34  CG  LYS A   4      32.539  34.431   7.317  1.00 25.00           C
ATOM     35  CD  LYS A   4      34.046  34.511   7.426  1.00 25.00           C
ATOM     36  CE  LYS A   4      34.729  33.782   6.289  1.00 25.00           C
ATOM     37  NZ  LYS A   4      34.710  34.603   5.059  1.00 25.00           N
ATOM     38  N   LYS A   5      30.993  32.153  10.327  1.00 25.00           N
ATOM     39  CA  LYS A   5      31.104  30.730  10.715  1.00 25.00           C
ATOM     40  C   LYS A   5      29.734  30.111  10.595  1.00 25.00           C
ATOM     41  O   LYS A   5      29.602  29.133   9.833  1.00 25.00           O
ATOM     42  CB  LYS A   5      31.793  30.525  12.023  1.00 25.00           C
ATOM     43  CG  LYS A   5      33.284  30.906  12.043  1.00 25.00           C
ATOM     44  N   LEU A   6      28.753  30.676  11.269  1.00 25.00           N
ATOM     45  CA  LEU A   6      27.375  30.124  11.257  1.00 25.00           C
ATOM     46  C   LEU A   6      26.938  29.849   9.827  1.00 25.00           C
ATOM     47  O   LEU A   6      26.490  28.746   9.489  1.00 25.00           O
ATOM     48  CB  LEU A   6      26.459  31.026  12.062  1.00 25.00           C
ATOM     49  CG  LEU A   6      24.966  30.925  11.913  1.00 25.00           C
ATOM     50  CD1 LEU A   6      24.329  29.894  12.837  1.00 25.00           C
ATOM     51  CD2 LEU A   6      24.339  32.286  12.234  1.00 25.00           C
ATOM     52  N   LEU A   7      27.110  30.857   9.002  1.00 25.00           N
ATOM     53  CA  LEU A   7      26.760  30.849   7.586  1.00 25.00           C
ATOM     54  C   LEU A   7      27.408  29.683   6.868  1.00 25.00           C
ATOM     55  O   LEU A   7      26.743  29.154   5.950  1.00 25.00           O
ATOM     56  CB  LEU A   7      27.003  32.249   6.971  1.00 25.00           C
ATOM     57  CG  LEU A   7      25.878  33.239   6.752  1.00 25.00           C
ATOM     58  CD1 LEU A   7      26.241  34.705   6.949  1.00 25.00           C
ATOM     59  CD2 LEU A   7      25.397  33.158   5.297  1.00 25.00           C
ATOM     60  N   GLU A   8      28.603  29.243   7.208  1.00 25.00           N
ATOM     61  CA  GLU A   8      29.260  28.146   6.496  1.00 25.00           C
ATOM     62  C   GLU A   8      28.759  26.751   6.831  1.00 25.00           C
ATOM     63  O   GLU A   8      28.974  25.822   6.023  1.00 25.00           O
ATOM     64  CB  GLU A   8      30.742  28.009   6.785  1.00 25.00           C
ATOM     65  CG  GLU A   8      31.432  29.271   7.271  1.00 25.00           C
ATOM     66  CD  GLU A   8      32.846  28.933   7.703  1.00 25.00           C
ATOM     67  OE1 GLU A   8      33.727  28.886   6.851  1.00 25.00           O
ATOM     68  OE2 GLU A   8      32.945  28.685   8.934  1.00 25.00           O
ATOM     69  N   GLU A   9      28.216  26.687   8.024  1.00 25.00           N
ATOM     70  CA  GLU A   9      27.676  25.450   8.602  1.00 25.00           C
ATOM     71  C   GLU A   9      26.228  25.197   8.197  1.00 25.00           C
ATOM     72  O   GLU A   9      25.741  24.063   8.299  1.00 25.00           O
ATOM     73  CB  GLU A   9      27.655  25.571  10.131  1.00 25.00           C
ATOM     74  CG  GLU A   9      28.212  24.450  10.999  1.00 25.00           C
ATOM     75  CD  GLU A   9      29.424  24.893  11.771  1.00 25.00           C
ATOM     76  OE1 GLU A   9      29.571  24.773  12.967  1.00 25.00           O
ATOM     77  OE2 GLU A   9      30.236  25.448  10.993  1.00 25.00           O
ATOM     78  N   LEU A  10      25.547  26.243   7.776  1.00 25.00           N
ATOM     79  CA  LEU A  10      24.138  26.200   7.405  1.00 25.00           C
ATOM     80  C   LEU A  10      23.858  25.477   6.104  1.00 25.00           C
ATOM     81  O   LEU A  10      24.653  25.474   5.162  1.00 25.00           O
ATOM     82  CB  LEU A  10      23.611  27.641   7.410  1.00 25.00           C
ATOM     83  CG  LEU A  10      22.355  27.821   8.248  1.00 25.00           C
ATOM     84  CD1 LEU A  10      22.565  27.116   9.582  1.00 25.00           C
ATOM     85  CD2 LEU A  10      22.151  29.317   8.369  1.00 25.00           C
ATOM     86  N   LYS A  11      22.674  24.898   6.074  1.00 25.00           N
ATOM     87  CA  LYS A  11      22.163  24.138   4.939  1.00 25.00           C
ATOM     88  C   LYS A  11      21.851  25.032   3.731  1.00 25.00           C
ATOM     89  O   LYS A  11      21.403  26.185   3.840  1.00 25.00           O
ATOM     90  CB  LYS A  11      20.933  23.323   5.327  1.00 25.00           C
ATOM     91  N   GLY A  12      22.109  24.411   2.573  1.00 25.00           N
ATOM     92  CA  GLY A  12      21.938  24.917   1.234  1.00 25.00           C
ATOM     93  C   GLY A  12      21.882  26.448   1.133  1.00 25.00           C
ATOM     94  O   GLY A  12      22.838  26.994   0.516  1.00 25.00           O
ATOM     95  OXT GLY A  12      20.888  27.022   1.650  1.00 25.00           O
TER      96      GLY A  12
HETATM   97  S   SO4 A  13      31.477  38.950  15.821  0.50 25.00           S
HETATM   98  O1  SO4 A  13      31.243  38.502  17.238  0.50 25.00           O
HETATM   99  O2  SO4 A  13      30.616  40.133  15.527  0.50 25.00           O
HETATM  100  O3  SO4 A  13      31.158  37.816  14.905  0.50 25.00           O
HETATM  101  O4  SO4 A  13      32.916  39.343  15.640  0.50 25.00           O
END
'''
