openff-toolkit icon indicating copy to clipboard operation
openff-toolkit copied to clipboard

`Molecule.from_polymer_pdb()` fails with RDKit on BACE PDB

Open Yoshanuikabundi opened this issue 2 years ago • 2 comments

Describe the bug Molecule.from_polymer_pdb() gives an undefined stereochemistry error for the attached PDB.

protein.zip

To Reproduce

from openff.toolkit import Molecule, RDKitToolkitWrapper

protein = Molecule.from_polymer_pdb("protein.pdb", toolkit_registry=RDKitToolkitWrapper())

Output

---------------------------------------------------------------------------
UndefinedStereochemistryError             Traceback (most recent call last)
Cell In [1], line 3
      1 from openff.toolkit import Molecule, RDKitToolkitWrapper
----> 3 protein = Molecule.from_polymer_pdb("protein.pdb", toolkit_registry=RDKitToolkitWrapper())

File ~/Documents/openff/examples/bespokefit/env-toolkit/lib/python3.10/site-packages/openff/utilities/utilities.py:75, in requires_package.<locals>.inner_decorator.<locals>.wrapper(*args, **kwargs)
     72 except Exception as e:
     73     raise e
---> 75 return function(*args, **kwargs)

File ~/Documents/openff/examples/bespokefit/env-toolkit/lib/python3.10/site-packages/openff/toolkit/topology/molecule.py:3867, in FrozenMolecule.from_polymer_pdb(cls, file_path, toolkit_registry)
   3864 with open(substructure_file_path, "r") as subfile:
   3865     substructure_dictionary = json.load(subfile)
-> 3867 offmol = toolkit_registry.call(
   3868     "_polymer_openmm_topology_to_offmol", pdb.topology, substructure_dictionary
   3869 )
   3871 coords = unit.Quantity(
   3872     np.array(
   3873         [
   (...)
   3878     unit.angstrom,
   3879 )
   3880 offmol.add_conformer(coords)

File ~/Documents/openff/examples/bespokefit/env-toolkit/lib/python3.10/site-packages/openff/toolkit/utils/toolkit_registry.py:359, in ToolkitRegistry.call(self, method_name, raise_exception_types, *args, **kwargs)
    357             for exception_type in raise_exception_types:
    358                 if isinstance(e, exception_type):
--> 359                     raise e
    360             errors.append((toolkit, e))
    362 # No toolkit was found to provide the requested capability
    363 # TODO: Can we help developers by providing a check for typos in expected method names?

File ~/Documents/openff/examples/bespokefit/env-toolkit/lib/python3.10/site-packages/openff/toolkit/utils/toolkit_registry.py:355, in ToolkitRegistry.call(self, method_name, raise_exception_types, *args, **kwargs)
    353 method = getattr(toolkit, method_name)
    354 try:
--> 355     return method(*args, **kwargs)
    356 except Exception as e:
    357     for exception_type in raise_exception_types:

File ~/Documents/openff/examples/bespokefit/env-toolkit/lib/python3.10/site-packages/openff/toolkit/utils/rdkit_wrapper.py:254, in RDKitToolkitWrapper._polymer_openmm_topology_to_offmol(self, omm_top, substructure_dictionary)
    250 def _polymer_openmm_topology_to_offmol(self, omm_top, substructure_dictionary):
    251     rdkit_mol = self._polymer_openmm_topology_to_rdmol(
    252         omm_top, substructure_dictionary
    253     )
--> 254     offmol = self.from_rdkit(rdkit_mol)
    255     return offmol

File ~/Documents/openff/examples/bespokefit/env-toolkit/lib/python3.10/site-packages/openff/toolkit/utils/rdkit_wrapper.py:1687, in RDKitToolkitWrapper.from_rdkit(self, rdmol, allow_undefined_stereo, hydrogens_are_explicit, _cls)
   1684 Chem.AssignStereochemistry(rdmol, cleanIt=False)
   1686 # Check for undefined stereochemistry.
-> 1687 self._detect_undefined_stereo(
   1688     rdmol,
   1689     raise_warning=allow_undefined_stereo,
   1690     err_msg_prefix="Unable to make OFFMol from RDMol: ",
   1691 )
   1693 # Create a new OpenFF Molecule
   1694 offmol = _cls()

File ~/Documents/openff/examples/bespokefit/env-toolkit/lib/python3.10/site-packages/openff/toolkit/utils/rdkit_wrapper.py:2623, in RDKitToolkitWrapper._detect_undefined_stereo(cls, rdmol, err_msg_prefix, raise_warning)
   2621 else:
   2622     msg = "Unable to make OFFMol from RDMol: " + msg
-> 2623     raise UndefinedStereochemistryError(msg)

UndefinedStereochemistryError: Unable to make OFFMol from RDMol: Unable to make OFFMol from RDMol: RDMol has unspecified stereochemistry. Undefined chiral centers are:
 - Atom N (index 5824)

Computing environment (please complete the following information):

  • Arch Linux
conda list
# packages in environment at /home/joshmitchell/Documents/openff/examples/bespokefit/env-toolkit:
#
# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                 conda_forge    conda-forge
_openmp_mutex             4.5                       2_gnu    conda-forge
alsa-lib                  1.2.7.2              h166bdaf_0    conda-forge
amberlite                 22.0                     pypi_0    pypi
ambertools                22.0            py310h3aec49d_3    conda-forge
amberutils                21.0                     pypi_0    pypi
anyio                     3.6.1                    pypi_0    pypi
argon2-cffi               21.3.0                   pypi_0    pypi
argon2-cffi-bindings      21.2.0          py310h5764c6d_2    conda-forge
arpack                    3.7.0                hdefa2d7_2    conda-forge
asttokens                 2.0.8                    pypi_0    pypi
astunparse                1.6.3                    pypi_0    pypi
attr                      2.5.1                h166bdaf_1    conda-forge
attrs                     22.1.0                   pypi_0    pypi
babel                     2.10.3                   pypi_0    pypi
backcall                  0.2.0                    pypi_0    pypi
backports                 1.0                        py_2    conda-forge
backports-functools-lru-cache 1.6.4                    pypi_0    pypi
backports.functools_lru_cache 1.6.4              pyhd8ed1ab_0    conda-forge
beautifulsoup4            4.11.1                   pypi_0    pypi
bleach                    5.0.1                    pypi_0    pypi
blosc                     1.21.1               h83bc5f7_3    conda-forge
boost                     1.74.0          py310h7c3ba0c_5    conda-forge
boost-cpp                 1.74.0               h75c5d50_8    conda-forge
brotli                    1.0.9                h166bdaf_7    conda-forge
brotli-bin                1.0.9                h166bdaf_7    conda-forge
brotlipy                  0.7.0           py310h5764c6d_1004    conda-forge
bzip2                     1.0.8                h7f98852_4    conda-forge
c-ares                    1.18.1               h7f98852_0    conda-forge
ca-certificates           2022.9.24            ha878542_0    conda-forge
cached-property           1.5.2                    pypi_0    pypi
cached_property           1.5.2              pyha770c72_1    conda-forge
cachetools                5.2.0                    pypi_0    pypi
cairo                     1.16.0            ha61ee94_1014    conda-forge
certifi                   2022.9.24                pypi_0    pypi
cffi                      1.15.1          py310h255011f_0    conda-forge
charset-normalizer        2.1.1                    pypi_0    pypi
colorama                  0.4.5                    pypi_0    pypi
conda                     22.9.0          py310hff52083_1    conda-forge
conda-package-handling    1.9.0           py310h5764c6d_0    conda-forge
contourpy                 1.0.5           py310hbf28c38_0    conda-forge
cryptography              38.0.2          py310h597c629_0    conda-forge
cudatoolkit               11.7.0              hd8887f6_10    conda-forge
curl                      7.85.0               h7bff187_0    conda-forge
cycler                    0.11.0                   pypi_0    pypi
cython                    0.29.32         py310hd8f1fbe_0    conda-forge
dbus                      1.13.6               h5008d03_3    conda-forge
debugpy                   1.6.3           py310hd8f1fbe_0    conda-forge
decorator                 5.1.1                    pypi_0    pypi
defusedxml                0.7.1                    pypi_0    pypi
entrypoints               0.4                      pypi_0    pypi
executing                 1.1.1                    pypi_0    pypi
expat                     2.4.9                h27087fc_0    conda-forge
fastjsonschema            2.16.2                   pypi_0    pypi
fftw                      3.3.10          nompi_hf0379b8_105    conda-forge
flit-core                 3.7.1                    pypi_0    pypi
font-ttf-dejavu-sans-mono 2.37                 hab24e00_0    conda-forge
font-ttf-inconsolata      3.000                h77eed37_0    conda-forge
font-ttf-source-code-pro  2.038                h77eed37_0    conda-forge
font-ttf-ubuntu           0.83                 hab24e00_0    conda-forge
fontconfig                2.14.0               hc2a2eb6_1    conda-forge
fonts-conda-ecosystem     1                             0    conda-forge
fonts-conda-forge         1                             0    conda-forge
fonttools                 4.37.4          py310h5764c6d_0    conda-forge
freetype                  2.12.1               hca18f0e_0    conda-forge
gettext                   0.19.8.1          h27087fc_1009    conda-forge
glib                      2.74.0               h6239696_0    conda-forge
glib-tools                2.74.0               h6239696_0    conda-forge
greenlet                  1.1.3           py310hd8f1fbe_0    conda-forge
gst-plugins-base          1.20.3               h57caac4_2    conda-forge
gstreamer                 1.20.3               hd4edc92_2    conda-forge
hdf4                      4.2.15               h9772cbc_4    conda-forge
hdf5                      1.12.2          nompi_h2386368_100    conda-forge
icu                       70.1                 h27087fc_0    conda-forge
idna                      3.4                      pypi_0    pypi
importlib-metadata        4.11.4          py310hff52083_0    conda-forge
importlib-resources       5.10.0                   pypi_0    pypi
importlib_resources       5.10.0             pyhd8ed1ab_0    conda-forge
iniconfig                 1.1.1                    pypi_0    pypi
ipykernel                 6.16.0                   pypi_0    pypi
ipython                   8.5.0                    pypi_0    pypi
ipython-genutils          0.2.0                    pypi_0    pypi
ipython_genutils          0.2.0                      py_1    conda-forge
ipywidgets                7.7.2                    pypi_0    pypi
jack                      1.9.18            h8c3723f_1003    conda-forge
jedi                      0.18.1                   pypi_0    pypi
jinja2                    3.1.2                    pypi_0    pypi
jpeg                      9e                   h166bdaf_2    conda-forge
json5                     0.9.5                    pypi_0    pypi
jsonschema                4.16.0                   pypi_0    pypi
jupyter                   1.0.0           py310hff52083_7    conda-forge
jupyter-client            7.4.2                    pypi_0    pypi
jupyter-console           6.4.4                    pypi_0    pypi
jupyter-server            1.21.0                   pypi_0    pypi
jupyter_client            7.4.2              pyhd8ed1ab_0    conda-forge
jupyter_console           6.4.4              pyhd8ed1ab_0    conda-forge
jupyter_core              4.11.1          py310hff52083_0    conda-forge
jupyter_server            1.21.0             pyhd8ed1ab_0    conda-forge
jupyterlab                3.4.8                    pypi_0    pypi
jupyterlab-pygments       0.2.2                    pypi_0    pypi
jupyterlab-server         2.15.2                   pypi_0    pypi
jupyterlab-widgets        1.1.1                    pypi_0    pypi
jupyterlab_pygments       0.2.2              pyhd8ed1ab_0    conda-forge
jupyterlab_server         2.15.2             pyhd8ed1ab_0    conda-forge
jupyterlab_widgets        1.1.1              pyhd8ed1ab_0    conda-forge
keyutils                  1.6.1                h166bdaf_0    conda-forge
kiwisolver                1.4.4           py310hbf28c38_0    conda-forge
krb5                      1.19.3               h3790be6_0    conda-forge
lcms2                     2.12                 hddcbb42_0    conda-forge
ld_impl_linux-64          2.36.1               hea4e1c9_2    conda-forge
lerc                      4.0.0                h27087fc_0    conda-forge
libarchive                3.5.2                hb890918_3    conda-forge
libblas                   3.9.0           16_linux64_openblas    conda-forge
libbrotlicommon           1.0.9                h166bdaf_7    conda-forge
libbrotlidec              1.0.9                h166bdaf_7    conda-forge
libbrotlienc              1.0.9                h166bdaf_7    conda-forge
libcap                    2.65                 ha37c62d_0    conda-forge
libcblas                  3.9.0           16_linux64_openblas    conda-forge
libclang                  14.0.6          default_h2e3cab8_0    conda-forge
libclang13                14.0.6          default_h3a83d3e_0    conda-forge
libcups                   2.3.3                h3e49a29_2    conda-forge
libcurl                   7.85.0               h7bff187_0    conda-forge
libdb                     6.2.32               h9c3ff4c_0    conda-forge
libdeflate                1.14                 h166bdaf_0    conda-forge
libedit                   3.1.20191231         he28a2e2_2    conda-forge
libev                     4.33                 h516909a_1    conda-forge
libevent                  2.1.10               h9b69904_4    conda-forge
libffi                    3.4.2                h7f98852_5    conda-forge
libflac                   1.3.4                h27087fc_0    conda-forge
libgcc-ng                 12.1.0              h8d9b700_16    conda-forge
libgfortran-ng            12.1.0              h69a702a_16    conda-forge
libgfortran5              12.1.0              hdcd56e2_16    conda-forge
libglib                   2.74.0               h7a41b64_0    conda-forge
libgomp                   12.1.0              h8d9b700_16    conda-forge
libiconv                  1.17                 h166bdaf_0    conda-forge
liblapack                 3.9.0           16_linux64_openblas    conda-forge
libllvm14                 14.0.6               he0ac6c6_0    conda-forge
libmamba                  0.27.0               h0dd8ff0_0    conda-forge
libmambapy                0.27.0          py310hab0e683_0    conda-forge
libnetcdf                 4.8.1           nompi_h21705cb_104    conda-forge
libnghttp2                1.47.0               hdcd2b5c_1    conda-forge
libnsl                    2.0.0                h7f98852_0    conda-forge
libogg                    1.3.4                h7f98852_1    conda-forge
libopenblas               0.3.21          pthreads_h78a6416_3    conda-forge
libopus                   1.3.1                h7f98852_1    conda-forge
libpng                    1.6.38               h753d276_0    conda-forge
libpq                     14.5                 hd77ab85_0    conda-forge
libsndfile                1.0.31               h9c3ff4c_1    conda-forge
libsodium                 1.0.18               h36c2ea0_1    conda-forge
libsolv                   0.7.22               h6239696_0    conda-forge
libsqlite                 3.39.4               h753d276_0    conda-forge
libssh2                   1.10.0               haa6b8db_3    conda-forge
libstdcxx-ng              12.1.0              ha89aaad_16    conda-forge
libtiff                   4.4.0                h55922b4_4    conda-forge
libtool                   2.4.6             h9c3ff4c_1008    conda-forge
libudev1                  249                  h166bdaf_4    conda-forge
libuuid                   2.32.1            h7f98852_1000    conda-forge
libvorbis                 1.3.7                h9c3ff4c_0    conda-forge
libwebp-base              1.2.4                h166bdaf_0    conda-forge
libxcb                    1.13              h7f98852_1004    conda-forge
libxkbcommon              1.0.3                he3ba5ed_0    conda-forge
libxml2                   2.10.2               h7463322_2    conda-forge
libzip                    1.9.2                hc869a4a_1    conda-forge
libzlib                   1.2.12               h166bdaf_4    conda-forge
lz4-c                     1.9.3                h9c3ff4c_1    conda-forge
lzo                       2.10              h516909a_1000    conda-forge
mamba                     0.27.0          py310hf87f941_0    conda-forge
markupsafe                2.1.1           py310h5764c6d_1    conda-forge
matplotlib-base           3.6.1           py310h8d5ebf3_0    conda-forge
matplotlib-inline         0.1.6                    pypi_0    pypi
mctc-lib                  0.3.1                hc3ea6d6_0    conda-forge
mdtraj                    1.9.7           py310h902c554_2    conda-forge
mistune                   2.0.4                    pypi_0    pypi
mmpbsa-py                 16.0                     pypi_0    pypi
munkres                   1.1.4                    pypi_0    pypi
mysql-common              8.0.30               haf5c9bc_1    conda-forge
mysql-libs                8.0.30               h28c427c_1    conda-forge
nb_conda_kernels          2.3.1           py310hff52083_1    conda-forge
nbclassic                 0.4.5                    pypi_0    pypi
nbclient                  0.7.0                    pypi_0    pypi
nbconvert                 7.2.1                    pypi_0    pypi
nbconvert-core            7.2.1              pyhd8ed1ab_0    conda-forge
nbconvert-pandoc          7.2.1              pyhd8ed1ab_0    conda-forge
nbformat                  5.7.0                    pypi_0    pypi
ncurses                   6.3                  h27087fc_1    conda-forge
nest-asyncio              1.5.6                    pypi_0    pypi
netcdf-fortran            4.6.0           nompi_hc402ea5_101    conda-forge
networkx                  2.8.7                    pypi_0    pypi
nglview                   3.0.3                    pypi_0    pypi
nomkl                     1.0                  h5ca1d4c_0    conda-forge
notebook                  6.4.12                   pypi_0    pypi
notebook-shim             0.1.0                    pypi_0    pypi
nspr                      4.32                 h9c3ff4c_1    conda-forge
nss                       3.78                 h2350873_0    conda-forge
numexpr                   2.8.3           py310hf05e7a9_100    conda-forge
numpy                     1.23.3          py310h53a5b5f_0    conda-forge
ocl-icd                   2.3.1                h7f98852_0    conda-forge
ocl-icd-system            1.0.0                         1    conda-forge
openeye-toolkits          2022.1.1                py310_0    openeye
openff-amber-ff-ports     0+untagged.24.gf33b5cd.dirty          pypi_0    pypi
openff-forcefields        2.0.0              pyh6c4a22f_0    conda-forge
openff-interchange        0.2.1                    pypi_0    pypi
openff-interchange-base   0.2.1              pyhd8ed1ab_0    conda-forge
openff-toolkit            0.11.1                   pypi_0    pypi
openff-toolkit-base       0.11.1             pyhd8ed1ab_0    conda-forge
openff-units              0.1.8                    pypi_0    pypi
openff-utilities          0.1.6                    pypi_0    pypi
openforcefields           0+unknown                pypi_0    pypi
openjpeg                  2.5.0                h7d73246_1    conda-forge
openmm                    7.7.0           py310hccf1d78_1    conda-forge
openssl                   1.1.1q               h166bdaf_0    conda-forge
packaging                 21.3                     pypi_0    pypi
packmol                   20.010               h86c2bf4_0    conda-forge
packmol-memgen            1.2.3rc0                 pypi_0    pypi
pandas                    1.5.0           py310h769672d_0    conda-forge
pandoc                    2.19.2               ha770c72_0    conda-forge
pandocfilters             1.5.0                    pypi_0    pypi
panedr                    0.5.2                    pypi_0    pypi
parmed                    3.4.3           py310hd8f1fbe_2    conda-forge
parso                     0.8.3                    pypi_0    pypi
pbr                       5.10.0                   pypi_0    pypi
pcre2                     10.37                hc3806b6_1    conda-forge
pdb4amber                 22.0                     pypi_0    pypi
pdbfixer                  1.8.1                    pypi_0    pypi
perl                      5.32.1          2_h7f98852_perl5    conda-forge
pexpect                   4.8.0                    pypi_0    pypi
pickleshare               0.7.5                    pypi_0    pypi
pillow                    9.2.0           py310hbd86126_2    conda-forge
pint                      0.19.2                   pypi_0    pypi
pip                       22.2.2                   pypi_0    pypi
pixman                    0.40.0               h36c2ea0_0    conda-forge
pkgutil-resolve-name      1.3.10                   pypi_0    pypi
pluggy                    1.0.0           py310hff52083_3    conda-forge
ply                       3.11                     pypi_0    pypi
portaudio                 19.6.0               h8e90077_6    conda-forge
prometheus-client         0.14.1                   pypi_0    pypi
prometheus_client         0.14.1             pyhd8ed1ab_0    conda-forge
prompt-toolkit            3.0.31                   pypi_0    pypi
prompt_toolkit            3.0.31               hd8ed1ab_0    conda-forge
psutil                    5.9.2           py310h5764c6d_0    conda-forge
pthread-stubs             0.4               h36c2ea0_1001    conda-forge
ptyprocess                0.7.0                    pypi_0    pypi
pulseaudio                14.0                 h0868958_9    conda-forge
pure-eval                 0.2.2                    pypi_0    pypi
pure_eval                 0.2.2              pyhd8ed1ab_0    conda-forge
py                        1.11.0                   pypi_0    pypi
pybind11-abi              4                    hd8ed1ab_3    conda-forge
pycairo                   1.21.0          py310h96fc21a_1    conda-forge
pycosat                   0.6.3           py310h5764c6d_1010    conda-forge
pycparser                 2.21                     pypi_0    pypi
pydantic                  1.10.2          py310h5764c6d_0    conda-forge
pygments                  2.13.0                   pypi_0    pypi
pyopenssl                 22.1.0                   pypi_0    pypi
pyparsing                 3.0.9                    pypi_0    pypi
pyqt                      5.15.7          py310h29803b5_0    conda-forge
pyqt5-sip                 12.11.0         py310hd8f1fbe_0    conda-forge
pyrsistent                0.18.1          py310h5764c6d_1    conda-forge
pysocks                   1.7.1                    pypi_0    pypi
pytables                  3.7.0           py310hb60b9b2_2    conda-forge
pytest                    7.1.3           py310hff52083_0    conda-forge
python                    3.10.6          h582c2e5_0_cpython    conda-forge
python-constraint         1.4.0                    pypi_0    pypi
python-dateutil           2.8.2                    pypi_0    pypi
python-fastjsonschema     2.16.2             pyhd8ed1ab_0    conda-forge
python_abi                3.10                    2_cp310    conda-forge
pytraj                    2.0.6                    pypi_0    pypi
pytz                      2022.4                   pypi_0    pypi
pyzmq                     24.0.1          py310h330234f_0    conda-forge
qt-main                   5.15.6               hc525480_0    conda-forge
qtconsole                 5.3.2                    pypi_0    pypi
qtconsole-base            5.3.2              pyha770c72_0    conda-forge
qtpy                      2.2.1                    pypi_0    pypi
rdkit                     2022.03.5       py310h1c297d8_0    conda-forge
readline                  8.1.2                h0f457ee_0    conda-forge
reportlab                 3.5.68          py310h94fcab3_1    conda-forge
reproc                    14.2.3               h7f98852_0    conda-forge
reproc-cpp                14.2.3               h9c3ff4c_0    conda-forge
requests                  2.28.1                   pypi_0    pypi
ruamel_yaml               0.15.80         py310h5764c6d_1007    conda-forge
sander                    22.0                     pypi_0    pypi
scipy                     1.9.1           py310hdfbd76f_0    conda-forge
send2trash                1.8.0                    pypi_0    pypi
setuptools                65.4.1                   pypi_0    pypi
sip                       6.6.2           py310hd8f1fbe_0    conda-forge
six                       1.16.0                   pypi_0    pypi
smirnoff99frosst          0+unknown                pypi_0    pypi
snappy                    1.1.9                hbd366e4_1    conda-forge
sniffio                   1.3.0                    pypi_0    pypi
soupsieve                 2.3.2.post1              pypi_0    pypi
sqlalchemy                1.4.41          py310h5764c6d_0    conda-forge
sqlite                    3.39.4               h4ff8645_0    conda-forge
stack-data                0.5.1                    pypi_0    pypi
stack_data                0.5.1              pyhd8ed1ab_0    conda-forge
terminado                 0.16.0                   pypi_0    pypi
tinycss2                  1.1.1                    pypi_0    pypi
tk                        8.6.12               h27826a3_0    conda-forge
toml                      0.10.2                   pypi_0    pypi
tomli                     2.0.1                    pypi_0    pypi
toolz                     0.12.0                   pypi_0    pypi
tornado                   6.2             py310h5764c6d_0    conda-forge
tqdm                      4.64.1                   pypi_0    pypi
traitlets                 5.4.0                    pypi_0    pypi
typing-extensions         4.4.0                    pypi_0    pypi
typing_extensions         4.4.0              pyha770c72_0    conda-forge
tzdata                    2022d                h191b570_0    conda-forge
unicodedata2              14.0.0          py310h5764c6d_1    conda-forge
urllib3                   1.26.11                  pypi_0    pypi
wcwidth                   0.2.5                    pypi_0    pypi
webencodings              0.5.1                    pypi_0    pypi
websocket-client          1.4.1                    pypi_0    pypi
wheel                     0.37.1                   pypi_0    pypi
widgetsnbextension        3.6.1                    pypi_0    pypi
xcb-util                  0.4.0                h166bdaf_0    conda-forge
xcb-util-image            0.4.0                h166bdaf_0    conda-forge
xcb-util-keysyms          0.4.0                h166bdaf_0    conda-forge
xcb-util-renderutil       0.3.9                h166bdaf_0    conda-forge
xcb-util-wm               0.4.1                h166bdaf_0    conda-forge
xmltodict                 0.13.0                   pypi_0    pypi
xorg-kbproto              1.0.7             h7f98852_1002    conda-forge
xorg-libice               1.0.10               h7f98852_0    conda-forge
xorg-libsm                1.2.3             hd9c2040_1000    conda-forge
xorg-libx11               1.7.2                h7f98852_0    conda-forge
xorg-libxau               1.0.9                h7f98852_0    conda-forge
xorg-libxdmcp             1.1.3                h7f98852_0    conda-forge
xorg-libxext              1.3.4                h7f98852_1    conda-forge
xorg-libxrender           0.9.10            h7f98852_1003    conda-forge
xorg-libxt                1.2.1                h7f98852_2    conda-forge
xorg-renderproto          0.11.1            h7f98852_1002    conda-forge
xorg-xextproto            7.3.0             h7f98852_1002    conda-forge
xorg-xproto               7.0.31            h7f98852_1007    conda-forge
xtb                       6.5.1                h97a9613_0    conda-forge
xtb-python                20.2            py310h5764c6d_5    conda-forge
xz                        5.2.6                h166bdaf_0    conda-forge
yaml                      0.2.5                h7f98852_2    conda-forge
yaml-cpp                  0.7.0                h27087fc_2    conda-forge
zeromq                    4.3.4                h9c3ff4c_1    conda-forge
zipp                      3.9.0                    pypi_0    pypi
zlib                      1.2.12               h166bdaf_4    conda-forge
zstd                      1.5.2                h6239696_4    conda-forge

Additional context

This PDB works with the OpenEye toolkit. The failing nitrogen seems to be in a proline residue. There are proline residues in the T4 protein test case. The only lead I have so far is that the T4 proline is trans whereas the offending proline is cis, but I have no idea why that would matter or even could be detected.

Workaround:

from openff.toolkit import GLOBAL_TOOLKIT_REGISTRY
GLOBAL_TOOLKIT_REGISTRY.registered_toolkits[0]._detect_undefined_stereo = lambda *args, **kwargs: True

Yoshanuikabundi avatar Oct 18 '22 22:10 Yoshanuikabundi

Ha, what a surprising find. @Yoshanuikabundi I stumbled upon this question after raising another bug report here #1453. It seems that Molecule.from_polymer_pdb() is really buggy as it is now. I took your file and used the following strategy to find the bug for your particular case and propose the corresponding fix:

  1. First, I look at the offending proline itself, isolated from the protein, capped. It can be read by from_polymer_pdb.
  2. Then I took successively longer peptide fragment centered at that proline, still readable.
  3. I started chopping down amino acid from the N end of the protein until at some point the PDB file is no longer readable.

Then I backtracked, and found that the issue is with the disulfide bridge at Cys159 to Cys363. I disconnected this bond and viola, now the file could be read, as shown below:

Screen Shot 2022-11-04 at 9 16 03 PM

I have zero idea why having the disulfide bond could lead to an error message for that proline though...

Fixed pdb file attached here. You can do a diff check and see all that I touched is the disulfide bond: protein_fixed.pdb.zip

ziyuanzhao2000 avatar Nov 05 '22 01:11 ziyuanzhao2000

I'm really sorry for the delay, @ziyuanzhao2000 - crazy week here! This is AWESOME debugging, and your excellent writeup is giving me a bunch of ideas, and the reproducing example is making this easier to track down.

I've been trying to find the root cause of this and haven't gotten there yet. I've deleted a few writeups here from times I thought I'd solved it, none of them actually worked :-(

But in the meantime, I've opened #1460 to enable ignoring this error. I'll push to get that merged and into a release quickly.

j-wags avatar Nov 10 '22 05:11 j-wags