Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problem creating topology for POPC using Interchange.from_smirnoff() #1929

Open
dkchalmers opened this issue Aug 28, 2024 · 9 comments
Open
Labels

Comments

@dkchalmers
Copy link

dkchalmers commented Aug 28, 2024

Describe the bug

I am trying to create gromacs toppologies of lipid bilayers. However, using the function Interchange.from_smirnoff() fails when trying to make a topology for popc. This fails whether using a mol2 file, SMILES or IUPAC name as the input structure.

This process works correctly using cholesterol.

Error is: Warning: popc: Failed due to unspecified stereochemistry

I suspect the problem might be something to do with the phosphate group

To Reproduce

Run the attached script interchange2.ipynb
I have attached popc.mol2 and cholesterol.mol2

Output

Warning: popc: Failed due to unspecified stereochemistry

Computing environment (please complete the following information):
Linux opensuse 15.5

  • Output of running conda list

packages in environment at /vcp1/people/david/bin/miniforge3/envs/openff:

Name Version Build Channel

_libgcc_mutex 0.1 conda_forge conda-forge
_openmp_mutex 4.5 2_gnu conda-forge
absl-py 2.1.0 pyhd8ed1ab_0 conda-forge
ambertools 23.6 cuda_None_nompi_py311h4a53416_105 conda-forge
amberutils 21.0 pypi_0 pypi
annotated-types 0.7.0 pyhd8ed1ab_0 conda-forge
anyio 4.4.0 pyhd8ed1ab_0 conda-forge
apsw 3.46.0.1 py311h26bb8ec_0 conda-forge
argon2-cffi 23.1.0 pyhd8ed1ab_0 conda-forge
argon2-cffi-bindings 21.2.0 py311h459d7ec_4 conda-forge
arpack 3.9.1 nompi_h77f6705_101 conda-forge
arrow 1.3.0 pyhd8ed1ab_0 conda-forge
asttokens 2.4.1 pyhd8ed1ab_0 conda-forge
astunparse 1.6.3 pyhd8ed1ab_0 conda-forge
async-lru 2.0.4 pyhd8ed1ab_0 conda-forge
attrs 23.2.0 pyh71513ae_0 conda-forge
aws-c-auth 0.7.22 hbd3ac97_10 conda-forge
aws-c-cal 0.7.1 h87b94db_1 conda-forge
aws-c-common 0.9.23 h4ab18f5_0 conda-forge
aws-c-compression 0.2.18 he027950_7 conda-forge
aws-c-event-stream 0.4.2 h7671281_15 conda-forge
aws-c-http 0.8.2 he17ee6b_6 conda-forge
aws-c-io 0.14.10 h826b7d6_1 conda-forge
aws-c-mqtt 0.10.4 hcd6a914_8 conda-forge
aws-c-s3 0.6.0 h365ddd8_2 conda-forge
aws-c-sdkutils 0.1.16 he027950_3 conda-forge
aws-checksums 0.1.18 he027950_7 conda-forge
aws-crt-cpp 0.27.3 hda66527_2 conda-forge
aws-sdk-cpp 1.11.329 h46c3b66_9 conda-forge
azure-core-cpp 1.13.0 h935415a_0 conda-forge
azure-identity-cpp 1.8.0 hd126650_2 conda-forge
azure-storage-blobs-cpp 12.12.0 hd2e3451_0 conda-forge
azure-storage-common-cpp 12.7.0 h10ac4d7_1 conda-forge
azure-storage-files-datalake-cpp 12.11.0 h325d260_1 conda-forge
babel 2.14.0 pyhd8ed1ab_0 conda-forge
beautifulsoup4 4.12.3 pyha770c72_0 conda-forge
bleach 6.1.0 pyhd8ed1ab_0 conda-forge
blosc 1.21.6 hef167b5_0 conda-forge
brotli 1.1.0 hd590300_1 conda-forge
brotli-bin 1.1.0 hd590300_1 conda-forge
brotli-python 1.1.0 py311hb755f60_1 conda-forge
bson 0.5.9 py_0 conda-forge
bzip2 1.0.8 h4bc722e_7 conda-forge
c-ares 1.32.3 h4bc722e_0 conda-forge
c-blosc2 2.15.0 h6d6b9e4_1 conda-forge
ca-certificates 2024.7.4 hbcca054_0 conda-forge
cached-property 1.5.2 hd8ed1ab_1 conda-forge
cached_property 1.5.2 pyha770c72_1 conda-forge
cachetools 5.4.0 pyhd8ed1ab_0 conda-forge
cairo 1.18.0 hebfffa5_3 conda-forge
certifi 2024.7.4 pyhd8ed1ab_0 conda-forge
cffi 1.16.0 py311hb3a22ac_0 conda-forge
chardet 5.2.0 py311h38be061_1 conda-forge
charset-normalizer 3.3.2 pyhd8ed1ab_0 conda-forge
click 8.1.7 unix_pyh707e725_0 conda-forge
click-option-group 0.5.6 pyhd8ed1ab_0 conda-forge
cloudpickle 3.0.0 pyhd8ed1ab_0 conda-forge
colorama 0.4.6 pyhd8ed1ab_0 conda-forge
comm 0.2.2 pyhd8ed1ab_0 conda-forge
contourpy 1.2.1 py311h9547e67_0 conda-forge
cuda-crt-tools 12.5.82 ha770c72_0 conda-forge
cuda-cudart 12.5.82 he02047a_0 conda-forge
cuda-cudart_linux-64 12.5.82 h85509e4_0 conda-forge
cuda-nvcc-tools 12.5.82 hd3aeb46_0 conda-forge
cuda-nvrtc 12.5.82 he02047a_0 conda-forge
cuda-nvtx 12.5.82 he02047a_0 conda-forge
cuda-nvvm-tools 12.5.82 h59595ed_0 conda-forge
cuda-version 12.5 hd4f0392_3 conda-forge
cudnn 8.9.7.29 h092f7fd_3 conda-forge
cycler 0.12.1 pyhd8ed1ab_0 conda-forge
cytoolz 0.12.3 py311h459d7ec_0 conda-forge
dask-core 2024.7.1 pyhd8ed1ab_0 conda-forge
dask-jobqueue 0.8.5 pyhd8ed1ab_0 conda-forge
debugpy 1.8.2 py311h4332511_0 conda-forge
decorator 5.1.1 pyhd8ed1ab_0 conda-forge
defusedxml 0.7.1 pyhd8ed1ab_0 conda-forge
dgl 2.1.0 py311h1772aec_2 conda-forge
distributed 2024.7.1 pyhd8ed1ab_0 conda-forge
edgembar 0.2 pypi_0 pypi
entrypoints 0.4 pyhd8ed1ab_0 conda-forge
exceptiongroup 1.2.2 pyhd8ed1ab_0 conda-forge
executing 2.0.1 pyhd8ed1ab_0 conda-forge
expat 2.6.2 h59595ed_0 conda-forge
fftw 3.3.10 nompi_hf1063bd_110 conda-forge
filelock 3.15.4 pyhd8ed1ab_0 conda-forge
flatbuffers 24.3.25 h59595ed_0 conda-forge
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 h77eed37_2 conda-forge
fontconfig 2.14.2 h14ed4e7_0 conda-forge
fonts-conda-ecosystem 1 0 conda-forge
fonts-conda-forge 1 0 conda-forge
fonttools 4.53.1 py311h61187de_0 conda-forge
fqdn 1.5.1 pyhd8ed1ab_0 conda-forge
freetype 2.12.1 h267a509_2 conda-forge
freetype-py 2.3.0 pyhd8ed1ab_0 conda-forge
fsspec 2024.6.1 pyhff2d567_0 conda-forge
gast 0.5.5 pyhd8ed1ab_0 conda-forge
gflags 2.2.2 he1b5a44_1004 conda-forge
giflib 5.2.2 hd590300_0 conda-forge
git 2.46.0 pl5321hb5640b7_0 conda-forge
glog 0.7.1 hbabe93e_0 conda-forge
gmp 6.3.0 hac33072_2 conda-forge
gmpy2 2.1.5 py311hc4f1f91_1 conda-forge
google-pasta 0.2.0 pyh8c360ce_0 conda-forge
greenlet 3.0.3 py311hb755f60_0 conda-forge
grpcio 1.62.2 py311ha6695c7_0 conda-forge
h11 0.14.0 pyhd8ed1ab_0 conda-forge
h2 4.1.0 pyhd8ed1ab_0 conda-forge
h5py 3.11.0 nompi_py311h439e445_102 conda-forge
hdf4 4.2.15 h2a13503_7 conda-forge
hdf5 1.14.3 nompi_hdf9ad27_105 conda-forge
hpack 4.0.0 pyh9f0ad1d_0 conda-forge
httpcore 1.0.5 pyhd8ed1ab_0 conda-forge
httpx 0.27.0 pyhd8ed1ab_0 conda-forge
hyperframe 6.0.1 pyhd8ed1ab_0 conda-forge
icu 75.1 he02047a_0 conda-forge
idna 3.7 pyhd8ed1ab_0 conda-forge
importlib-metadata 8.2.0 pyha770c72_0 conda-forge
importlib_metadata 8.2.0 hd8ed1ab_0 conda-forge
importlib_resources 6.4.0 pyhd8ed1ab_0 conda-forge
iniconfig 2.0.0 pyhd8ed1ab_0 conda-forge
ipykernel 6.29.5 pyh3099207_0 conda-forge
ipython 8.26.0 pyh707e725_0 conda-forge
ipywidgets 8.1.3 pyhd8ed1ab_0 conda-forge
isoduration 20.11.0 pyhd8ed1ab_0 conda-forge
jedi 0.19.1 pyhd8ed1ab_0 conda-forge
jinja2 3.1.4 pyhd8ed1ab_0 conda-forge
joblib 1.4.2 pyhd8ed1ab_0 conda-forge
json5 0.9.25 pyhd8ed1ab_0 conda-forge
jsonpointer 3.0.0 py311h38be061_0 conda-forge
jsonschema 4.23.0 pyhd8ed1ab_0 conda-forge
jsonschema-specifications 2023.12.1 pyhd8ed1ab_0 conda-forge
jsonschema-with-format-nongpl 4.23.0 hd8ed1ab_0 conda-forge
jupyter-lsp 2.2.5 pyhd8ed1ab_0 conda-forge
jupyter_client 8.6.2 pyhd8ed1ab_0 conda-forge
jupyter_core 5.7.2 py311h38be061_0 conda-forge
jupyter_events 0.10.0 pyhd8ed1ab_0 conda-forge
jupyter_server 2.14.2 pyhd8ed1ab_0 conda-forge
jupyter_server_terminals 0.5.3 pyhd8ed1ab_0 conda-forge
jupyterlab 4.2.4 pyhd8ed1ab_0 conda-forge
jupyterlab_pygments 0.3.0 pyhd8ed1ab_1 conda-forge
jupyterlab_server 2.27.3 pyhd8ed1ab_0 conda-forge
jupyterlab_widgets 3.0.11 pyhd8ed1ab_0 conda-forge
keras 3.4.1 pyhd8ed1ab_2 conda-forge
keyutils 1.6.1 h166bdaf_0 conda-forge
kiwisolver 1.4.5 py311h9547e67_1 conda-forge
krb5 1.21.3 h659f571_0 conda-forge
lcms2 2.16 hb7c19ff_0 conda-forge
ld_impl_linux-64 2.40 hf3520f5_7 conda-forge
lerc 4.0.0 h27087fc_0 conda-forge
libabseil 20240116.2 cxx17_he02047a_1 conda-forge
libaec 1.1.3 h59595ed_0 conda-forge
libarrow 17.0.0 h4b47046_3_cpu conda-forge
libarrow-acero 17.0.0 he02047a_3_cpu conda-forge
libarrow-dataset 17.0.0 he02047a_3_cpu conda-forge
libarrow-substrait 17.0.0 hc9a23c6_3_cpu conda-forge
libblas 3.9.0 23_linux64_openblas conda-forge
libboost 1.84.0 h0ccab89_5 conda-forge
libboost-python 1.84.0 py311h06317a3_5 conda-forge
libbrotlicommon 1.1.0 hd590300_1 conda-forge
libbrotlidec 1.1.0 hd590300_1 conda-forge
libbrotlienc 1.1.0 hd590300_1 conda-forge
libcblas 3.9.0 23_linux64_openblas conda-forge
libcrc32c 1.1.2 h9c3ff4c_0 conda-forge
libcublas 12.5.3.2 he02047a_0 conda-forge
libcufft 11.2.3.61 he02047a_0 conda-forge
libcurand 10.3.6.82 he02047a_0 conda-forge
libcurl 8.9.0 hdb1bdb2_0 conda-forge
libcusolver 11.6.3.83 he02047a_0 conda-forge
libcusparse 12.5.1.3 he02047a_0 conda-forge
libdeflate 1.20 hd590300_0 conda-forge
libedit 3.1.20191231 he28a2e2_2 conda-forge
libev 4.33 hd590300_2 conda-forge
libevent 2.1.12 hf998b51_1 conda-forge
libexpat 2.6.2 h59595ed_0 conda-forge
libffi 3.4.2 h7f98852_5 conda-forge
libgcc-ng 14.1.0 h77fa898_0 conda-forge
libgfortran-ng 14.1.0 h69a702a_0 conda-forge
libgfortran5 14.1.0 hc5f4f2c_0 conda-forge
libglib 2.80.3 h8a4344b_1 conda-forge
libgomp 14.1.0 h77fa898_0 conda-forge
libgoogle-cloud 2.26.0 h26d7fe4_0 conda-forge
libgoogle-cloud-storage 2.26.0 ha262f82_0 conda-forge
libgrpc 1.62.2 h15f2491_0 conda-forge
libiconv 1.17 hd590300_2 conda-forge
libjpeg-turbo 3.0.0 hd590300_1 conda-forge
liblapack 3.9.0 23_linux64_openblas conda-forge
liblapacke 3.9.0 23_linux64_openblas conda-forge
libnetcdf 4.9.2 nompi_h135f659_114 conda-forge
libnghttp2 1.58.0 h47da74e_1 conda-forge
libnsl 2.0.1 hd590300_0 conda-forge
libnvjitlink 12.5.82 he02047a_0 conda-forge
libopenblas 0.3.27 pthreads_hac2b453_1 conda-forge
libparquet 17.0.0 h9e5060d_3_cpu conda-forge
libpng 1.6.43 h2797004_0 conda-forge
libpq 16.3 ha72fbe1_0 conda-forge
libprotobuf 4.25.3 h08a7969_0 conda-forge
librdkit 2024.03.5 h79cfef2_2 conda-forge
libre2-11 2023.09.01 h5a48ba9_2 conda-forge
libsodium 1.0.18 h36c2ea0_1 conda-forge
libsqlite 3.46.0 hde9e2c9_0 conda-forge
libssh2 1.11.0 h0841786_0 conda-forge
libstdcxx-ng 14.1.0 hc0a3c3a_0 conda-forge
libthrift 0.19.0 hb90f79a_1 conda-forge
libtiff 4.6.0 h1dd3fc0_3 conda-forge
libtorch 2.3.1 cpu_generic_h970db74_0 conda-forge
liburing 2.6 h297d8ca_0 conda-forge
libutf8proc 2.8.0 h166bdaf_0 conda-forge
libuuid 2.38.1 h0b41bf4_0 conda-forge
libuv 1.48.0 hd590300_0 conda-forge
libwebp-base 1.4.0 hd590300_0 conda-forge
libxcb 1.16 hd590300_0 conda-forge
libxcrypt 4.4.36 hd590300_1 conda-forge
libxml2 2.12.7 he7c6b58_4 conda-forge
libxslt 1.1.39 h76b75d6_0 conda-forge
libzip 1.10.1 h2629f0a_3 conda-forge
libzlib 1.3.1 h4ab18f5_1 conda-forge
lightning-utilities 0.11.6 pyhd8ed1ab_0 conda-forge
locket 1.0.0 pyhd8ed1ab_0 conda-forge
lxml 5.2.2 py311hc0a218f_0 conda-forge
lz4-c 1.9.4 hcb278e6_0 conda-forge
lzo 2.10 hd590300_1001 conda-forge
markdown 3.6 pyhd8ed1ab_0 conda-forge
markdown-it-py 3.0.0 pyhd8ed1ab_0 conda-forge
markupsafe 2.1.5 py311h459d7ec_0 conda-forge
matplotlib-base 3.9.1 py311hffb96ce_0 conda-forge
matplotlib-inline 0.1.7 pyhd8ed1ab_0 conda-forge
mda-xdrlib 0.2.0 pyhd8ed1ab_0 conda-forge
mdtraj 1.10.0 py311h3f233a9_0 conda-forge
mdurl 0.1.2 pyhd8ed1ab_0 conda-forge
metis 5.1.1 h59595ed_2 conda-forge
mistune 3.0.2 pyhd8ed1ab_0 conda-forge
ml_dtypes 0.4.0 py311h14de704_1 conda-forge
mmpbsa-py 16.0 pypi_0 pypi
mpc 1.3.1 hfe3b2da_0 conda-forge
mpfr 4.2.1 h38ae2d0_2 conda-forge
mpmath 1.3.0 pyhd8ed1ab_0 conda-forge
msgpack-python 1.0.8 py311h52f7536_0 conda-forge
munkres 1.1.4 pyh9f0ad1d_0 conda-forge
namex 0.0.8 pyhd8ed1ab_0 conda-forge
nbclient 0.10.0 pyhd8ed1ab_0 conda-forge
nbconvert-core 7.16.4 pyhd8ed1ab_1 conda-forge
nbformat 5.10.4 pyhd8ed1ab_0 conda-forge
nccl 2.22.3.1 hbc370b7_1 conda-forge
ncurses 6.5 h59595ed_0 conda-forge
nest-asyncio 1.6.0 pyhd8ed1ab_0 conda-forge
netcdf-fortran 4.6.1 nompi_h228c76a_104 conda-forge
networkx 3.3 pyhd8ed1ab_1 conda-forge
nglview 3.1.2 pyhceb8b5e_1 conda-forge
nomkl 1.0 h5ca1d4c_0 conda-forge
notebook 7.2.1 pyhd8ed1ab_0 conda-forge
notebook-shim 0.2.4 pyhd8ed1ab_0 conda-forge
numexpr 2.10.0 py311h8d05612_100 conda-forge
numpy 1.26.4 py311h64a7726_0 conda-forge
ocl-icd 2.3.2 hd590300_1 conda-forge
ocl-icd-system 1.0.0 1 conda-forge
openeye-toolkits 2024.1.1 py311_0 openeye
openff-amber-ff-ports 0.0.4 pyhca7485f_0 conda-forge
openff-forcefields 2024.07.0 pyhff2d567_0 conda-forge
openff-interchange 0.3.28 pyhd8ed1ab_0 conda-forge
openff-interchange-base 0.3.28 pyhd8ed1ab_0 conda-forge
openff-models 0.1.2 pyhca7485f_0 conda-forge
openff-nagl 0.4.0 pyhd8ed1ab_0 conda-forge
openff-nagl-base 0.4.0 pyhd8ed1ab_0 conda-forge
openff-nagl-models 0.3.0 pyhd8ed1ab_0 conda-forge
openff-recharge 0.5.2 pyhd8ed1ab_0 conda-forge
openff-toolkit 0.16.2 pyhd8ed1ab_0 conda-forge
openff-toolkit-base 0.16.2 pyhd8ed1ab_0 conda-forge
openff-toolkit-examples 0.16.2 hd8ed1ab_0 conda-forge
openff-units 0.2.2 pyhca7485f_0 conda-forge
openff-utilities 0.1.12 pyhd8ed1ab_0 conda-forge
openjpeg 2.5.2 h488ebb8_0 conda-forge
openmm 8.1.2 py311h5db57db_2 conda-forge
openmmforcefields 0.14.1 pyhd8ed1ab_0 conda-forge
openssl 3.3.1 hb9d3cd8_3 conda-forge
opt_einsum 3.3.0 pyhc1e730c_2 conda-forge
optree 0.12.1 py311hcddfd71_0 conda-forge
orc 2.0.1 h17fec99_1 conda-forge
overrides 7.7.0 pyhd8ed1ab_0 conda-forge
packaging 24.1 pyhd8ed1ab_0 conda-forge
packmol-memgen 2024.2.9 pypi_0 pypi
pandas 2.2.2 py311h14de704_1 conda-forge
pandocfilters 1.5.0 pyhd8ed1ab_0 conda-forge
panedr 0.8.0 pyhd8ed1ab_0 conda-forge
parmed 4.2.2 py311hb755f60_1 conda-forge
parso 0.8.4 pyhd8ed1ab_0 conda-forge
partd 1.4.2 pyhd8ed1ab_0 conda-forge
pcre2 10.44 h0f59acf_0 conda-forge
pdb4amber 22.0 pypi_0 pypi
pdbfixer 1.9 pyh1a96a4e_0 conda-forge
perl 5.32.1 7_hd590300_perl5 conda-forge
pexpect 4.9.0 pyhd8ed1ab_0 conda-forge
pickleshare 0.7.5 py_1003 conda-forge
pillow 10.4.0 py311h82a398c_0 conda-forge
pint 0.23 pyhd8ed1ab_1 conda-forge
pip 24.2 pyhd8ed1ab_0 conda-forge
pixman 0.43.2 h59595ed_0 conda-forge
pkgutil-resolve-name 1.3.10 pyhd8ed1ab_1 conda-forge
platformdirs 4.2.2 pyhd8ed1ab_0 conda-forge
pluggy 1.5.0 pyhd8ed1ab_0 conda-forge
prometheus_client 0.20.0 pyhd8ed1ab_0 conda-forge
prompt-toolkit 3.0.47 pyha770c72_0 conda-forge
protobuf 4.25.3 py311h7b78aeb_0 conda-forge
psutil 6.0.0 py311h331c9d8_0 conda-forge
pthread-stubs 0.4 h36c2ea0_1001 conda-forge
ptyprocess 0.7.0 pyhd3deb0d_0 conda-forge
pure_eval 0.2.3 pyhd8ed1ab_0 conda-forge
py-cpuinfo 9.0.0 pyhd8ed1ab_0 conda-forge
pyarrow 17.0.0 py311hbd00459_0 conda-forge
pyarrow-core 17.0.0 py311h9460f28_0_cpu conda-forge
pycairo 1.26.1 py311h64ab44a_0 conda-forge
pycalverter 1.6.1 py_0 conda-forge
pycparser 2.22 pyhd8ed1ab_0 conda-forge
pydantic 2.8.2 pyhd8ed1ab_0 conda-forge
pydantic-core 2.20.1 py311hb3a8bbb_0 conda-forge
pyedr 0.8.0 pyhd8ed1ab_0 conda-forge
pygments 2.18.0 pyhd8ed1ab_0 conda-forge
pyjwt 2.8.0 pyhd8ed1ab_1 conda-forge
pymsmt 22.0 pypi_0 pypi
pyparsing 3.1.2 pyhd8ed1ab_0 conda-forge
pysocks 1.7.1 pyha2e5f31_6 conda-forge
pytables 3.9.2 py311ha8f287f_3 conda-forge
pytest 8.3.2 pyhd8ed1ab_0 conda-forge
python 3.11.9 hb806964_0_cpython conda-forge
python-constraint 1.4.0 py_0 conda-forge
python-dateutil 2.9.0 pyhd8ed1ab_0 conda-forge
python-fastjsonschema 2.20.0 pyhd8ed1ab_0 conda-forge
python-flatbuffers 24.3.25 pyh59ac667_0 conda-forge
python-json-logger 2.0.7 pyhd8ed1ab_0 conda-forge
python-tzdata 2024.1 pyhd8ed1ab_0 conda-forge
python_abi 3.11 4_cp311 conda-forge
pytorch 2.3.1 cpu_generic_py311h8ca351a_0 conda-forge
pytorch-lightning 2.3.3 pyhd8ed1ab_0 conda-forge
pytraj 2.0.6 pypi_0 pypi
pytz 2024.1 pyhd8ed1ab_0 conda-forge
pyyaml 6.0.1 py311h459d7ec_1 conda-forge
pyzmq 26.0.3 py311h08a0b41_0 conda-forge
qcelemental 0.28.0 pyhd8ed1ab_0 conda-forge
qcengine 0.30.0 pyhd8ed1ab_0 conda-forge
qcportal 0.56 pyhd8ed1ab_0 conda-forge
qhull 2020.2 h434a139_5 conda-forge
rdkit 2024.03.5 py311h845bd92_2 conda-forge
re2 2023.09.01 h7f4b329_2 conda-forge
readline 8.2 h8228510_1 conda-forge
referencing 0.35.1 pyhd8ed1ab_0 conda-forge
reportlab 4.2.2 py311h331c9d8_0 conda-forge
requests 2.32.3 pyhd8ed1ab_0 conda-forge
rfc3339-validator 0.1.4 pyhd8ed1ab_0 conda-forge
rfc3986-validator 0.1.1 pyh9f0ad1d_0 conda-forge
rich 13.7.1 pyhd8ed1ab_0 conda-forge
rlpycairo 0.2.0 pyhd8ed1ab_0 conda-forge
rpds-py 0.19.1 py311hb3a8bbb_0 conda-forge
s2n 1.4.17 he19d79f_0 conda-forge
sander 22.0 pypi_0 pypi
scipy 1.14.0 py311h517d4fd_1 conda-forge
send2trash 1.8.3 pyh0d859eb_0 conda-forge
setuptools 71.0.4 pyhd8ed1ab_0 conda-forge
six 1.16.0 pyh6c4a22f_0 conda-forge
sleef 3.6.1 h3400bea_1 conda-forge
smirnoff99frosst 1.1.0 pyh44b312d_0 conda-forge
snappy 1.2.1 ha2e4443_0 conda-forge
sniffio 1.3.1 pyhd8ed1ab_0 conda-forge
sortedcontainers 2.4.0 pyhd8ed1ab_0 conda-forge
soupsieve 2.5 pyhd8ed1ab_1 conda-forge
sqlalchemy 2.0.31 py311h331c9d8_0 conda-forge
sqlite 3.46.0 h6d4b2fc_0 conda-forge
stack_data 0.6.2 pyhd8ed1ab_0 conda-forge
sympy 1.13.0 pypyh2585a3b_103 conda-forge
tabulate 0.9.0 pyhd8ed1ab_1 conda-forge
tblib 3.0.0 pyhd8ed1ab_0 conda-forge
tensorboard 2.17.0 pyhd8ed1ab_0 conda-forge
tensorboard-data-server 0.7.0 py311h63ff55d_1 conda-forge
tensorflow 2.17.0 cuda120py311h51447cc_0 conda-forge
tensorflow-base 2.17.0 cuda120py311h013dac2_0 conda-forge
tensorflow-estimator 2.17.0 cuda120py311h0c188d0_0 conda-forge
termcolor 2.4.0 pyhd8ed1ab_0 conda-forge
terminado 0.18.1 pyh0d859eb_0 conda-forge
tinycss2 1.3.0 pyhd8ed1ab_0 conda-forge
tinydb 4.8.0 pyhd8ed1ab_0 conda-forge
tk 8.6.13 noxft_h4845f30_101 conda-forge
tomli 2.0.1 pyhd8ed1ab_0 conda-forge
toolz 0.12.1 pyhd8ed1ab_0 conda-forge
torchdata 0.7.1 py311hf3aaf7b_6 conda-forge
torchmetrics 1.4.0.post0 pyhd8ed1ab_0 conda-forge
tornado 6.4.1 py311h331c9d8_0 conda-forge
tqdm 4.66.4 pyhd8ed1ab_0 conda-forge
traitlets 5.14.3 pyhd8ed1ab_0 conda-forge
types-python-dateutil 2.9.0.20240316 pyhd8ed1ab_0 conda-forge
typing-extensions 4.12.2 hd8ed1ab_0 conda-forge
typing_extensions 4.12.2 pyha770c72_0 conda-forge
typing_utils 0.1.0 pyhd8ed1ab_0 conda-forge
tzdata 2024a h0c530f3_0 conda-forge
uri-template 1.3.0 pyhd8ed1ab_0 conda-forge
urllib3 2.2.2 pyhd8ed1ab_1 conda-forge
validators 0.33.0 pyhd8ed1ab_0 conda-forge
wcwidth 0.2.13 pyhd8ed1ab_0 conda-forge
webcolors 24.6.0 pyhd8ed1ab_0 conda-forge
webencodings 0.5.1 pyhd8ed1ab_2 conda-forge
websocket-client 1.8.0 pyhd8ed1ab_0 conda-forge
werkzeug 3.0.3 pyhd8ed1ab_0 conda-forge
wheel 0.43.0 pyhd8ed1ab_1 conda-forge
widgetsnbextension 4.0.11 pyhd8ed1ab_0 conda-forge
wrapt 1.16.0 py311h459d7ec_0 conda-forge
xmltodict 0.13.0 pyhd8ed1ab_0 conda-forge
xorg-kbproto 1.0.7 h7f98852_1002 conda-forge
xorg-libice 1.1.1 hd590300_0 conda-forge
xorg-libsm 1.2.4 h7391055_0 conda-forge
xorg-libx11 1.8.9 hb711507_1 conda-forge
xorg-libxau 1.0.11 hd590300_0 conda-forge
xorg-libxdmcp 1.1.3 h7f98852_0 conda-forge
xorg-libxext 1.3.4 h0b41bf4_2 conda-forge
xorg-libxrender 0.9.11 hd590300_0 conda-forge
xorg-libxt 1.3.0 hd590300_1 conda-forge
xorg-renderproto 0.11.1 h7f98852_1002 conda-forge
xorg-xextproto 7.3.0 h0b41bf4_1003 conda-forge
xorg-xproto 7.0.31 h7f98852_1007 conda-forge
xz 5.2.6 h166bdaf_0 conda-forge
yaml 0.2.5 h7f98852_2 conda-forge
zeromq 4.3.5 h75354e8_4 conda-forge
zict 3.0.0 pyhd8ed1ab_0 conda-forge
zipp 3.19.2 pyhd8ed1ab_0 conda-forge
zlib 1.3.1 h4ab18f5_1 conda-forge
zlib-ng 2.2.1 he02047a_0 conda-forge
zstandard 0.18.0 py311hd4cff14_1 conda-forge
zstd 1.5.6 ha6fb4c9_0 conda-forge

Additional context

Remove .txt to use...

cholesterol.mol2.txt
popc.mol2.txt
interchange2.ipynb.txt

@j-wags
Copy link
Member

j-wags commented Aug 28, 2024

Hi @dkchalmers, I think this is actually working with both of your molecules, the issue with popc is just emitting a warning (not an error). We might see about squelching the warning, but I think your notebook is running successfully. Could you try using the outputs and let me know if there's an issue?

@dkchalmers
Copy link
Author

Hi @j-wags. Ahh - thanks very much. I can see that it does indeed work. I was mislead by the warning and also that generating the topology for POPC takes 10 times as long as for cholesterol. I timed the two - cholesterol takes 35 seconds, popc takes 392 s.

@j-wags
Copy link
Member

j-wags commented Aug 28, 2024

Hah, I saw a similar comment on related repo yesterday. Looks like it's already been deleted.

Thanks for the report. The long charge assignment time kinda makes sense since it's a large flexible molecule. We have a new AM1BCC charge assignment tool (NAGL) in the works that should be much faster, so hopefully the long parameterization time won't be a problem for much longer.

I'll close this issue since it seems like the POPC is being parameterized correctly, but please feel free to reopen it if you find further problems.

@j-wags j-wags closed this as completed Aug 28, 2024
@dkchalmers
Copy link
Author

Thanks for your reply - although I can generate a topology for a single POPC molecule, more than one seems to make things much slower - to the point that I cant generate a topology for a file containing 2 POPC molecules and 1 water.

The attached parameterise.py script works for a file containing 2 x cholesterol and 1 water

./paramaterise.py bilayer_c_solv.pdb
Making Topology
Reading Force Field
Assigning Force Field
Warning: Cannot perform Hydrogen sampling with GPU-Omega: GPU-Omega disabled.
Writing output files
Run time: 109.9 seconds

However the same thing with 2 x POPC and 1 water does not complete in > 2 hours

./paramaterise.py bilayer_p_solv.pdb
Making Topology
....

cholesterol.mol2.txt
bilayer_p_solv.pdb.txt
bilayer_c_solv.pdb.txt
popc.mol2.txt
paramaterise.py.txt

@github-staff github-staff deleted a comment from dkchalmers Aug 28, 2024
@j-wags j-wags reopened this Aug 28, 2024
@j-wags
Copy link
Member

j-wags commented Aug 28, 2024

Thanks for the example, I've reopened the issue and reproduced what you're seeing. The problem here appears to actually be in the Topology.from_pdb line. I think the long alkane chains make the template matching take forever because of all the symmetries.

Whole we work on fixing that, a quick workaround to your issue is to use the openmm.app.PDBFile object and the Topology.from_openmm API point.

import openmm.app
pdb = openmm.app.PDBFile("bilayer_p_solv.pdb")
top = Topology.from_openmm(pdb.topology, unique_molecules=[CHL, POPC, TIP3])

The downside to the Topology.from_openmm workaround is that it won't recognize proteins (that is, it can recognize whole unique molecules, but not proteins made of amino acids). So if your final topology was going to have a mix of proteins and lipids, you'd need to load the proteins using Topology.from_pdb, the lipids using Topology.from_openmm, and then combine them all using Topology.add_molecules.

(And again, I consider this failure of Topology.from_pdb to be a bug, and we'll work to resolve that so you don't need to use Topology.from_openmm moving forward)

@dkchalmers
Copy link
Author

dkchalmers commented Aug 29, 2024

Thanks - a fix to this problem would be very helpful!

I tried to read my bilayer model using openmm.app.PDBFile - however, this does not work (error below). Although the error says 'attribute bonds', it seems to me that the 'pdb' object is missing bond-order information.

Script: parameterise.py.txt

./parameterise.py bilayer_p_solv.pdb
Reading components
Making Topology
Traceback (most recent call last):
File "parameterise.py", line 36, in
top = Topology.from_openmm(pdb, unique_molecules=[CHL, POPC, TIP3])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/david/bin/miniforge3/envs/openff/lib/python3.11/site-packages/openff/utilities/utilities.py", line 80, in wrapper
return function(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "david/bin/miniforge3/envs/openff/lib/python3.11/site-packages/openff/toolkit/topology/topology.py", line 1410, in from_openmm
for omm_bond in openmm_topology.bonds():
^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'PDBFile' object has no attribute 'bonds'

@j-wags
Copy link
Member

j-wags commented Aug 29, 2024

Change

Topology.from_openmm(pdb, unique_molecules=[CHL, POPC, TIP3])

to

Topology.from_openmm(pdb.topology, unique_molecules=[CHL, POPC, TIP3])

@dkchalmers
Copy link
Author

Thanks for your help - that is working.

I am also very interested in working with peptides and proteins with lipid bilayers - so a fix for the original issue would be great.

@PEFrankel
Copy link
Contributor

The stereochemistry warning is common, but you likely don't need to worry about it here. Although I cannot see, but as you suspect, the issue arises from the phosphate, which we've run into as well. allow_undefined_stereo=True quenches the warning. In my experience making molecules and interchanges, SDFs work well with from_file(). from_pdb() can be a little finicky (with a few lipids at least iirc).

In case you find it useful, this notebook parametrizes both a single lipid and/or a full PDB system (128 lipids fully hydrated here) in 10-15 min (note: this example implements HMR). Adjusting the molecule count and box size don't change the parametrization duration. Changing the charge assignment to something other than AM1BCC would make it faster as Jeff noted.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

6 participants
@mattwthompson @j-wags @dkchalmers @PEFrankel and others