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

Topology.from_pdb(_additional_substructures=... can use a LOT of memory #1829

Open
Yoshanuikabundi opened this issue Mar 4, 2024 · 2 comments

Comments

@Yoshanuikabundi
Copy link
Collaborator

Describe the bug
Trying to load a PDB of the new blockbuster drug semaglutide, a 31-residue polypeptide with two non-canonical residues, using the experimental _additional_substructures argument rapidly consumes memory. On my machine it consumed all 64GB of RAM and caused the OS kernel to kill the Python kernel in about a minute.

I think this is because one of the two NCAAs is huge - a mostly linear sidechain of about 40 atoms length - and doing an all against all search across the whole peptide is problematic. We might also be holding on to information longer than we need to (possibly in the match cache?) or have a memory leak.

Because I haven't been able to load the PDB, I don't know if I've made a mistake in my SMILES - but the memory is an issue regardless.

To Reproduce

PDB of Semaglutide and notebook that causes the issue:
semaglutide_from_pdb.zip

Output

"Python kernel has crashed and is restarting."

Computing environment (please complete the following information):

  • Arch Linux
micromamba list
List of packages in environment: "/home/joshmitchell/Documents/openff/2024_workshops/.soap/test"

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
aiohttp 3.9.3 py310h2372a71_0 conda-forge
aiosignal 1.3.1 pyhd8ed1ab_0 conda-forge
ambertools 22.0 py310h206695f_3 conda-forge
annotated-types 0.6.0 pyhd8ed1ab_0 conda-forge
anyio 4.3.0 pyhd8ed1ab_0 conda-forge
argon2-cffi 23.1.0 pyhd8ed1ab_0 conda-forge
argon2-cffi-bindings 21.2.0 py310h2372a71_4 conda-forge
arpack 3.7.0 hdefa2d7_2 conda-forge
arrow 1.3.0 pyhd8ed1ab_0 conda-forge
arrow-cpp 11.0.0 ha770c72_5_cpu conda-forge
ase 3.22.1 pyhd8ed1ab_1 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
async-timeout 4.0.3 pyhd8ed1ab_0 conda-forge
attrs 23.2.0 pyh71513ae_0 conda-forge
aws-c-auth 0.6.24 h84a1944_5 conda-forge
aws-c-cal 0.5.20 hc60faf5_6 conda-forge
aws-c-common 0.8.11 h0b41bf4_0 conda-forge
aws-c-compression 0.2.16 h034cb4b_3 conda-forge
aws-c-event-stream 0.2.18 h75388cd_6 conda-forge
aws-c-http 0.7.4 hf084cc8_2 conda-forge
aws-c-io 0.13.17 h10df833_2 conda-forge
aws-c-mqtt 0.8.6 hc41645a_6 conda-forge
aws-c-s3 0.2.4 h1b8f470_3 conda-forge
aws-c-sdkutils 0.1.7 h034cb4b_3 conda-forge
aws-checksums 0.1.14 h034cb4b_3 conda-forge
aws-crt-cpp 0.19.7 h0073717_7 conda-forge
aws-sdk-cpp 1.10.57 h4707e7a_4 conda-forge
babel 2.14.0 pyhd8ed1ab_0 conda-forge
beautifulsoup4 4.12.3 pyha770c72_0 conda-forge
binutils_impl_linux-64 2.40 hf600244_0 conda-forge
binutils_linux-64 2.40 hbdbef99_2 conda-forge
biopython 1.83 py310h2372a71_0 conda-forge
black 24.2.0 py310hff52083_0 conda-forge
bleach 6.1.0 pyhd8ed1ab_0 conda-forge
blinker 1.7.0 pyhd8ed1ab_0 conda-forge
blosc 1.21.5 h0f2a231_0 conda-forge
boost 1.74.0 py310h7c3ba0c_5 conda-forge
boost-cpp 1.74.0 h75c5d50_8 conda-forge
brotli 1.0.9 h166bdaf_9 conda-forge
brotli-bin 1.0.9 h166bdaf_9 conda-forge
brotli-python 1.0.9 py310hd8f1fbe_9 conda-forge
bson 0.5.9 py_0 conda-forge
bzip2 1.0.8 hd590300_5 conda-forge
c-ares 1.27.0 hd590300_0 conda-forge
ca-certificates 2024.2.2 hbcca054_0 conda-forge
cached-property 1.5.2 hd8ed1ab_1 conda-forge
cached_property 1.5.2 pyha770c72_1 conda-forge
cachetools 5.3.3 pyhd8ed1ab_0 conda-forge
cairo 1.16.0 ha61ee94_1014 conda-forge
cattrs 23.2.3 pyhd8ed1ab_0 conda-forge
certifi 2024.2.2 pyhd8ed1ab_0 conda-forge
cffi 1.16.0 py310h2fee648_0 conda-forge
cftime 1.6.3 py310h1f7b6fc_0 conda-forge
chardet 5.2.0 py310hff52083_1 conda-forge
charset-normalizer 3.3.2 pyhd8ed1ab_0 conda-forge
chemper 1.0.1 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
cmake 3.28.3 hcfe8598_0 conda-forge
colorama 0.4.6 pyhd8ed1ab_0 conda-forge
comm 0.2.1 pyhd8ed1ab_0 conda-forge
contourpy 1.2.0 py310hd41b1e2_0 conda-forge
cryptography 42.0.5 py310h75e40e8_0 conda-forge
cudatoolkit 11.8.0 h4ba93d1_13 conda-forge
curl 8.5.0 hca28451_0 conda-forge
cycler 0.12.1 pyhd8ed1ab_0 conda-forge
cython 3.0.8 py310hc6cd4ac_0 conda-forge
cytoolz 0.12.3 py310h2372a71_0 conda-forge
dask-core 2024.2.1 pyhd8ed1ab_0 conda-forge
dask-jobqueue 0.8.5 pyhd8ed1ab_0 conda-forge
debugpy 1.8.1 py310hc6cd4ac_0 conda-forge
decorator 5.1.1 pyhd8ed1ab_0 conda-forge
defusedxml 0.7.1 pyhd8ed1ab_0 conda-forge
dgl 1.1.2 py310hbc80768_2 conda-forge
distributed 2024.2.1 pyhd8ed1ab_0 conda-forge
dockstring 0.3.2 pyhd8ed1ab_0 conda-forge
docstring-to-markdown 0.15 pyhd8ed1ab_0 conda-forge
entrypoints 0.4 pyhd8ed1ab_0 conda-forge
exceptiongroup 1.2.0 pyhd8ed1ab_2 conda-forge
executing 2.0.1 pyhd8ed1ab_0 conda-forge
expat 2.5.0 hcb278e6_1 conda-forge
f90wrap 0.2.13 py310h03ae0af_2 conda-forge
fasteners 0.17.3 pyhd8ed1ab_0 conda-forge
fftw 3.3.10 nompi_hc118613_108 conda-forge
filelock 3.13.1 pyhd8ed1ab_0 conda-forge
flask 3.0.2 pyhd8ed1ab_0 conda-forge
flatbuffers 22.12.06 hcb278e6_2 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_1 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.49.0 py310h2372a71_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
frozenlist 1.4.1 py310h2372a71_0 conda-forge
fsspec 2024.2.0 pyhca7485f_0 conda-forge
gast 0.4.0 pyh9f0ad1d_0 conda-forge
gawk 5.3.0 ha916aea_0 conda-forge
gcc_impl_linux-64 11.4.0 h7aa1c59_5 conda-forge
gcc_linux-64 11.4.0 hfd045f2_2 conda-forge
gettext 0.21.1 h27087fc_0 conda-forge
gflags 2.2.2 he1b5a44_1004 conda-forge
gfortran_impl_linux-64 11.4.0 h86428dc_5 conda-forge
gfortran_linux-64 11.4.0 h3047280_2 conda-forge
giflib 5.2.1 h0b41bf4_3 conda-forge
gitdb 4.0.11 pyhd8ed1ab_0 conda-forge
gitpython 3.1.42 pyhd8ed1ab_0 conda-forge
glog 0.6.0 h6f12383_0 conda-forge
gmp 6.3.0 h59595ed_0 conda-forge
gmpy2 2.1.2 py310h3ec546c_1 conda-forge
google-auth 2.28.1 pyhca7485f_0 conda-forge
google-auth-oauthlib 0.4.6 pyhd8ed1ab_0 conda-forge
google-pasta 0.2.0 pyh8c360ce_0 conda-forge
greenlet 3.0.3 py310hc6cd4ac_0 conda-forge
griddataformats 1.0.2 pyhd8ed1ab_0 conda-forge
gromacs 2023.1 nompi_h76c6bb2_102 conda-forge
grpcio 1.51.1 py310h4a5735c_1 conda-forge
gsd 3.2.1 py310h1f7b6fc_0 conda-forge
gsl 2.7 he838d99_0 conda-forge
gxx_impl_linux-64 11.4.0 h7aa1c59_5 conda-forge
gxx_linux-64 11.4.0 hfc1ae95_2 conda-forge
h11 0.14.0 pyhd8ed1ab_0 conda-forge
h2 4.1.0 pyhd8ed1ab_0 conda-forge
h5py 3.8.0 nompi_py310h0311031_100 conda-forge
hdf4 4.2.15 h9772cbc_5 conda-forge
hdf5 1.12.2 nompi_h4df4325_101 conda-forge
hpack 4.0.0 pyh9f0ad1d_0 conda-forge
httpcore 1.0.4 pyhd8ed1ab_0 conda-forge
httpx 0.27.0 pyhd8ed1ab_0 conda-forge
hyperframe 6.0.1 pyhd8ed1ab_0 conda-forge
icu 70.1 h27087fc_0 conda-forge
idna 3.6 pyhd8ed1ab_0 conda-forge
importlib-metadata 7.0.1 pyha770c72_0 conda-forge
importlib_metadata 7.0.1 hd8ed1ab_0 conda-forge
importlib_resources 6.1.2 pyhd8ed1ab_0 conda-forge
ipykernel 6.29.3 pyhd33586a_0 conda-forge
ipython 8.22.1 pyh707e725_0 conda-forge
ipywidgets 8.1.2 pyhd8ed1ab_0 conda-forge
isoduration 20.11.0 pyhd8ed1ab_0 conda-forge
isort 5.13.2 pyhd8ed1ab_0 conda-forge
itsdangerous 2.1.2 pyhd8ed1ab_0 conda-forge
jax 0.4.4 pyhd8ed1ab_0 conda-forge
jaxlib 0.4.3 cpu_py310hdc47304_1 conda-forge
jedi 0.19.1 pyhd8ed1ab_0 conda-forge
jedi-language-server 0.41.3 pyhd8ed1ab_0 conda-forge
jinja2 3.1.3 pyhd8ed1ab_0 conda-forge
joblib 1.3.2 pyhd8ed1ab_0 conda-forge
jpeg 9e h0b41bf4_3 conda-forge
json5 0.9.19 pyhd8ed1ab_0 conda-forge
jsonpointer 2.4 py310hff52083_3 conda-forge
jsonschema 4.21.1 pyhd8ed1ab_0 conda-forge
jsonschema-specifications 2023.12.1 pyhd8ed1ab_0 conda-forge
jsonschema-with-format-nongpl 4.21.1 pyhd8ed1ab_0 conda-forge
jupyter-lsp 2.2.3 pyhd8ed1ab_0 conda-forge
jupyter_client 8.6.0 pyhd8ed1ab_0 conda-forge
jupyter_core 5.7.1 py310hff52083_0 conda-forge
jupyter_events 0.9.0 pyhd8ed1ab_0 conda-forge
jupyter_server 2.12.5 pyhd8ed1ab_0 conda-forge
jupyter_server_terminals 0.5.2 pyhd8ed1ab_0 conda-forge
jupyterlab 4.1.2 pyhd8ed1ab_0 conda-forge
jupyterlab-lsp 5.1.0 pyhd8ed1ab_0 conda-forge
jupyterlab_code_formatter 2.2.1 pyhd8ed1ab_0 conda-forge
jupyterlab_execute_time 3.1.2 pyhd8ed1ab_0 conda-forge
jupyterlab_pygments 0.3.0 pyhd8ed1ab_1 conda-forge
jupyterlab_server 2.25.3 pyhd8ed1ab_0 conda-forge
jupyterlab_widgets 3.0.10 pyhd8ed1ab_0 conda-forge
keras 2.11.0 pyhd8ed1ab_0 conda-forge
keras-preprocessing 1.1.2 pyhd8ed1ab_0 conda-forge
kernel-headers_linux-64 2.6.32 he073ed8_17 conda-forge
keyutils 1.6.1 h166bdaf_0 conda-forge
kim-api 2.3.0 h097297d_1 conda-forge
kiwisolver 1.4.5 py310hd41b1e2_1 conda-forge
krb5 1.21.2 h659d440_0 conda-forge
lammps 2022.06.23 py310hedc66b7_mpich_5 conda-forge
lcms2 2.15 hfd0df8a_0 conda-forge
ld_impl_linux-64 2.40 h41732ed_0 conda-forge
lerc 4.0.0 h27087fc_0 conda-forge
libabseil 20220623.0 cxx17_h05df665_6 conda-forge
libaec 1.1.2 h59595ed_1 conda-forge
libarrow 11.0.0 h2ebd325_5_cpu conda-forge
libblas 3.9.0 21_linux64_openblas conda-forge
libbrotlicommon 1.0.9 h166bdaf_9 conda-forge
libbrotlidec 1.0.9 h166bdaf_9 conda-forge
libbrotlienc 1.0.9 h166bdaf_9 conda-forge
libcblas 3.9.0 21_linux64_openblas conda-forge
libcrc32c 1.1.2 h9c3ff4c_0 conda-forge
libcurl 8.5.0 hca28451_0 conda-forge
libdeflate 1.17 h0b41bf4_0 conda-forge
libedit 3.1.20191231 he28a2e2_2 conda-forge
libev 4.33 hd590300_2 conda-forge
libevent 2.1.10 h28343ad_4 conda-forge
libexpat 2.5.0 hcb278e6_1 conda-forge
libffi 3.4.2 h7f98852_5 conda-forge
libgcc-devel_linux-64 11.4.0 h922705a_105 conda-forge
libgcc-ng 13.2.0 h807b86a_5 conda-forge
libgfortran-ng 13.2.0 h69a702a_5 conda-forge
libgfortran5 13.2.0 ha4646dd_5 conda-forge
libglib 2.78.4 h783c2da_0 conda-forge
libgomp 13.2.0 h807b86a_5 conda-forge
libgoogle-cloud 2.7.0 h21dfe5b_1 conda-forge
libgrpc 1.51.1 h4fad500_1 conda-forge
libhwloc 2.9.1 hd6dc26d_0 conda-forge
libiconv 1.17 hd590300_2 conda-forge
libidn2 2.3.7 hd590300_0 conda-forge
liblapack 3.9.0 21_linux64_openblas conda-forge
liblapacke 3.9.0 21_linux64_openblas conda-forge
libllvm14 14.0.6 hcd5def8_4 conda-forge
libnetcdf 4.8.1 nompi_h261ec11_106 conda-forge
libnghttp2 1.58.0 h47da74e_1 conda-forge
libnsl 2.0.1 hd590300_0 conda-forge
libopenblas 0.3.26 pthreads_h413a1c8_0 conda-forge
libpng 1.6.43 h2797004_0 conda-forge
libprotobuf 3.21.12 hfc55251_2 conda-forge
libsanitizer 11.4.0 h4dcbe23_5 conda-forge
libsodium 1.0.18 h36c2ea0_1 conda-forge
libsqlite 3.45.1 h2797004_0 conda-forge
libssh2 1.11.0 h0841786_0 conda-forge
libstdcxx-devel_linux-64 11.4.0 h922705a_105 conda-forge
libstdcxx-ng 13.2.0 h7e041cc_5 conda-forge
libthrift 0.18.0 h5e4af38_0 conda-forge
libtiff 4.5.0 h6adf6a1_2 conda-forge
libunistring 0.9.10 h7f98852_0 conda-forge
libutf8proc 2.8.0 h166bdaf_0 conda-forge
libuuid 2.38.1 h0b41bf4_0 conda-forge
libuv 1.47.0 hd590300_0 conda-forge
libwebp-base 1.3.2 hd590300_0 conda-forge
libxcb 1.13 h7f98852_1004 conda-forge
libxcrypt 4.4.36 hd590300_1 conda-forge
libxml2 2.10.3 hca2bb57_4 conda-forge
libxslt 1.1.37 h873f0b0_0 conda-forge
libzip 1.10.1 h2629f0a_3 conda-forge
libzlib 1.2.13 hd590300_5 conda-forge
lightning-utilities 0.10.1 pyhd8ed1ab_0 conda-forge
llvmlite 0.42.0 py310h1b8f574_1 conda-forge
locket 1.0.0 pyhd8ed1ab_0 conda-forge
lsprotocol 2023.0.1 pyhd8ed1ab_0 conda-forge
lxml 4.9.2 py310hbdc0903_0 conda-forge
lz4-c 1.9.4 hcb278e6_0 conda-forge
lzo 2.10 h516909a_1000 conda-forge
make 4.3 hd18ef5c_1 conda-forge
markdown 3.5.2 pyhd8ed1ab_0 conda-forge
markdown-it-py 3.0.0 pyhd8ed1ab_0 conda-forge
markupsafe 2.1.5 py310h2372a71_0 conda-forge
matplotlib-base 3.8.3 py310h62c0568_0 conda-forge
matplotlib-inline 0.1.6 pyhd8ed1ab_0 conda-forge
mctc-lib 0.3.1 h74f4db8_0 conda-forge
mda-xdrlib 0.2.0 pyhd8ed1ab_0 conda-forge
mdanalysis 2.7.0 py310hcc13569_1 conda-forge
mdtraj 1.9.9 py310h523e8d7_1 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
mlip 1.0 hd0d41c4_3 conda-forge
mmcif_pdbx 2.0.1 pyhd8ed1ab_0 conda-forge
mmtf-python 1.1.3 pyhd8ed1ab_0 conda-forge
mpc 1.3.1 hfe3b2da_0 conda-forge
mpfr 4.2.1 h9458935_0 conda-forge
mpi 1.0 mpich conda-forge
mpich 4.2.0 h846660c_100 conda-forge
mpiplus v0.0.2 pyhd8ed1ab_0 conda-forge
mpmath 1.3.0 pyhd8ed1ab_0 conda-forge
mrcfile 1.5.0 pyhd8ed1ab_0 conda-forge
msgpack-python 1.0.7 py310hd41b1e2_0 conda-forge
multidict 6.0.5 py310h2372a71_0 conda-forge
munkres 1.1.4 pyh9f0ad1d_0 conda-forge
mypy_extensions 1.0.0 pyha770c72_0 conda-forge
n2p2 2.1.4 py310hbd49d13_2 conda-forge
nbclient 0.8.0 pyhd8ed1ab_0 conda-forge
nbconvert 7.16.1 pyhd8ed1ab_0 conda-forge
nbconvert-core 7.16.1 pyhd8ed1ab_0 conda-forge
nbconvert-pandoc 7.16.1 pyhd8ed1ab_0 conda-forge
nbformat 5.9.2 pyhd8ed1ab_0 conda-forge
ncurses 6.4 h59595ed_2 conda-forge
nest-asyncio 1.6.0 pyhd8ed1ab_0 conda-forge
netcdf-fortran 4.6.0 nompi_he1eeb6f_102 conda-forge
netcdf4 1.6.2 nompi_py310h55e1e36_100 conda-forge
networkx 3.2.1 pyhd8ed1ab_0 conda-forge
nglview 3.1.2 pyh15ce09e_0 conda-forge
nomkl 1.0 h5ca1d4c_0 conda-forge
nose 1.3.7 py_1006 conda-forge
notebook 7.1.1 pyhd8ed1ab_0 conda-forge
notebook-shim 0.2.4 pyhd8ed1ab_0 conda-forge
numba 0.59.0 py310h7dc5dd1_1 conda-forge
numexpr 2.9.0 py310hc2d3c2e_100 conda-forge
numpy 1.26.4 py310hb13e2d6_0 conda-forge
oauthlib 3.2.2 pyhd8ed1ab_0 conda-forge
ocl-icd 2.3.2 hd590300_0 conda-forge
ocl-icd-system 1.0.0 1 conda-forge
openbabel 3.1.1 py310heaf86c6_5 conda-forge
openff-amber-ff-ports 0.0.4 pyhca7485f_0 conda-forge
openff-forcefields 2024.01.0 pyhca7485f_0 conda-forge
openff-interchange 0.3.22 pyhd8ed1ab_0 conda-forge
openff-interchange-base 0.3.22 pyhd8ed1ab_0 conda-forge
openff-models 0.1.2 pyhca7485f_0 conda-forge
openff-nagl 0.3.4 pyhd8ed1ab_0 conda-forge
openff-nagl-base 0.3.4 pyhd8ed1ab_0 conda-forge
openff-nagl-models 0.1.2 pyhd8ed1ab_0 conda-forge
openff-recharge 0.5.1 pyhd8ed1ab_0 conda-forge
openff-toolkit 0.15.2 pyhd8ed1ab_0 conda-forge
openff-toolkit-base 0.15.2 pyhd8ed1ab_0 conda-forge
openff-toolkit-examples 0.15.2 hd8ed1ab_0 conda-forge
openff-units 0.2.1 pyh1a96a4e_0 conda-forge
openff-utilities 0.1.12 pyhd8ed1ab_0 conda-forge
openjpeg 2.5.0 hfec8fc6_2 conda-forge
openmm 8.1.1 py310h43b6314_1 conda-forge
openmmforcefields 0.12.0 pyhd8ed1ab_0 conda-forge
openmmtools 0.23.1 pyhd8ed1ab_0 conda-forge
openssl 3.2.1 hd590300_0 conda-forge
opt_einsum 3.3.0 pyhc1e730c_2 conda-forge
orc 1.8.2 hfdbbad2_2 conda-forge
overrides 7.7.0 pyhd8ed1ab_0 conda-forge
packaging 23.2 pyhd8ed1ab_0 conda-forge
packmol 20.010 h86c2bf4_0 conda-forge
pandas 2.2.1 py310hcc13569_0 conda-forge
pandoc 3.1.12.2 ha770c72_0 conda-forge
pandocfilters 1.5.0 pyhd8ed1ab_0 conda-forge
panedr 0.8.0 pyhd8ed1ab_0 conda-forge
parmed 3.4.4 py310heca2aa9_0 conda-forge
parquet-cpp 1.5.1 2 conda-forge
parso 0.8.3 pyhd8ed1ab_0 conda-forge
partd 1.4.1 pyhd8ed1ab_0 conda-forge
pathspec 0.12.1 pyhd8ed1ab_0 conda-forge
patsy 0.5.6 pyhd8ed1ab_0 conda-forge
pcre2 10.42 hcad00b1_0 conda-forge
pdb2pqr 3.6.1 pyhd8ed1ab_0 conda-forge
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 9.4.0 py310h023d228_1 conda-forge
pint 0.21 pyhd8ed1ab_0 conda-forge
pip 24.0 pyhd8ed1ab_0 conda-forge
pixman 0.43.2 h59595ed_0 conda-forge
pkg-config 0.29.2 h36c2ea0_1008 conda-forge
pkgutil-resolve-name 1.3.10 pyhd8ed1ab_1 conda-forge
platformdirs 4.2.0 pyhd8ed1ab_0 conda-forge
plumed 2.9.0 nompi_h752ec8b_100 conda-forge
prometheus_client 0.20.0 pyhd8ed1ab_0 conda-forge
prompt-toolkit 3.0.42 pyha770c72_0 conda-forge
propka 3.5.1 pyhc1e730c_1 conda-forge
protobuf 4.21.12 py310heca2aa9_0 conda-forge
psutil 5.9.8 py310h2372a71_0 conda-forge
pthread-stubs 0.4 h36c2ea0_1001 conda-forge
ptyprocess 0.7.0 pyhd3deb0d_0 conda-forge
pure_eval 0.2.2 pyhd8ed1ab_0 conda-forge
py-cpuinfo 9.0.0 pyhd8ed1ab_0 conda-forge
pyarrow 11.0.0 py310h633f555_5_cpu conda-forge
pyasn1 0.5.1 pyhd8ed1ab_0 conda-forge
pyasn1-modules 0.3.0 pyhd8ed1ab_0 conda-forge
pycairo 1.25.0 py310hda9f760_1 conda-forge
pycparser 2.21 pyhd8ed1ab_0 conda-forge
pydantic 2.6.3 pyhd8ed1ab_0 conda-forge
pydantic-core 2.16.3 py310hcb5633a_0 conda-forge
pyedr 0.8.0 pyhd8ed1ab_0 conda-forge
pygls 1.3.0 pyhd8ed1ab_0 conda-forge
pygments 2.17.2 pyhd8ed1ab_0 conda-forge
pyjwt 2.8.0 pyhd8ed1ab_1 conda-forge
pymbar 4.0.2 hff52083_0 conda-forge
pymbar-core 4.0.2 py310h278f3c1_0 conda-forge
pyopenssl 24.0.0 pyhd8ed1ab_0 conda-forge
pyparsing 3.1.1 pyhd8ed1ab_0 conda-forge
pysocks 1.7.1 pyha2e5f31_6 conda-forge
pytables 3.7.0 py310hb60b9b2_3 conda-forge
python 3.10.13 hd12c33a_1_cpython conda-forge
python-constraint 1.4.0 py_0 conda-forge
python-dateutil 2.9.0 pyhd8ed1ab_0 conda-forge
python-fastjsonschema 2.19.1 pyhd8ed1ab_0 conda-forge
python-flatbuffers 23.5.26 pyhd8ed1ab_0 conda-forge
python-json-logger 2.0.7 pyhd8ed1ab_0 conda-forge
python-tzdata 2024.1 pyhd8ed1ab_0 conda-forge
python_abi 3.10 4_cp310 conda-forge
pytng 0.3.1 py310h7d11597_1 conda-forge
pytorch 2.0.0 cpu_generic_py310h7ffd2bf_1 conda-forge
pytorch-lightning 2.1.3 pyhd8ed1ab_0 conda-forge
pytz 2024.1 pyhd8ed1ab_0 conda-forge
pyu2f 0.1.5 pyhd8ed1ab_0 conda-forge
pyyaml 6.0.1 py310h2372a71_1 conda-forge
pyzmq 25.1.2 py310h795f18f_0 conda-forge
qcelemental 0.27.1 pyhd8ed1ab_0 conda-forge
qcengine 0.29.0 pyhd8ed1ab_0 conda-forge
qcportal 0.53 pyhd8ed1ab_0 conda-forge
quippy 0.0.1 py310hd2eb85d_4 conda-forge
rdkit 2022.03.5 py310h1c297d8_0 conda-forge
re2 2023.02.01 hcb278e6_0 conda-forge
readline 8.2 h8228510_1 conda-forge
referencing 0.33.0 pyhd8ed1ab_0 conda-forge
reportlab 4.1.0 py310h2372a71_0 conda-forge
requests 2.31.0 pyhd8ed1ab_0 conda-forge
requests-oauthlib 1.3.1 pyhd8ed1ab_0 conda-forge
rfc3339-validator 0.1.4 pyhd8ed1ab_0 conda-forge
rfc3986-validator 0.1.1 pyh9f0ad1d_0 conda-forge
rhash 1.4.4 hd590300_0 conda-forge
rich 13.7.1 pyhd8ed1ab_0 conda-forge
rlpycairo 0.2.0 pyhd8ed1ab_0 conda-forge
rpds-py 0.18.0 py310hcb5633a_0 conda-forge
rsa 4.9 pyhd8ed1ab_0 conda-forge
s2n 1.3.37 h3358134_0 conda-forge
scikit-learn 1.4.1.post1 py310h1fdf081_0 conda-forge
scipy 1.12.0 py310hb13e2d6_2 conda-forge
seaborn 0.13.2 hd8ed1ab_0 conda-forge
seaborn-base 0.13.2 pyhd8ed1ab_0 conda-forge
send2trash 1.8.2 pyh41d4057_0 conda-forge
setuptools 69.1.1 pyhd8ed1ab_0 conda-forge
six 1.16.0 pyh6c4a22f_0 conda-forge
sleef 3.5.1 h9b69904_2 conda-forge
smirnoff99frosst 1.1.0 pyh44b312d_0 conda-forge
smmap 5.0.0 pyhd8ed1ab_0 conda-forge
snappy 1.1.10 h9fff704_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.27 py310h2372a71_0 conda-forge
sqlite 3.45.1 h2c6b66d_0 conda-forge
stack_data 0.6.2 pyhd8ed1ab_0 conda-forge
statsmodels 0.14.1 py310h1f7b6fc_0 conda-forge
sympy 1.12 pypyh9d50eac_103 conda-forge
sysroot_linux-64 2.12 he073ed8_17 conda-forge
tabulate 0.9.0 pyhd8ed1ab_1 conda-forge
tblib 3.0.0 pyhd8ed1ab_0 conda-forge
tensorboard 2.11.2 pyhd8ed1ab_0 conda-forge
tensorboard-data-server 0.6.1 py310h600f1e7_4 conda-forge
tensorboard-plugin-wit 1.8.1 pyhd8ed1ab_0 conda-forge
tensorflow 2.11.0 cpu_py310hd1aba9c_0 conda-forge
tensorflow-base 2.11.0 cpu_py310hc9b7e7f_0 conda-forge
tensorflow-estimator 2.11.0 cpu_py310hfed9998_0 conda-forge
termcolor 2.4.0 pyhd8ed1ab_0 conda-forge
terminado 0.18.0 pyh0d859eb_0 conda-forge
threadpoolctl 3.3.0 pyhc1e730c_0 conda-forge
tidynamics 1.1.2 pyhd8ed1ab_0 conda-forge
tinycss2 1.2.1 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
torchmetrics 1.2.1 pyhd8ed1ab_0 conda-forge
tornado 6.4 py310h2372a71_0 conda-forge
tqdm 4.66.2 pyhd8ed1ab_0 conda-forge
traitlets 5.14.1 pyhd8ed1ab_0 conda-forge
types-python-dateutil 2.8.19.20240106 pyhd8ed1ab_0 conda-forge
typing-extensions 4.10.0 hd8ed1ab_0 conda-forge
typing_extensions 4.10.0 pyha770c72_0 conda-forge
typing_utils 0.1.0 pyhd8ed1ab_0 conda-forge
tzdata 2024a h0c530f3_0 conda-forge
unicodedata2 15.1.0 py310h2372a71_0 conda-forge
uri-template 1.3.0 pyhd8ed1ab_0 conda-forge
urllib3 2.2.1 pyhd8ed1ab_0 conda-forge
validators 0.22.0 pyhd8ed1ab_0 conda-forge
voro 0.4.6 h00ab1b0_0 conda-forge
wcwidth 0.2.13 pyhd8ed1ab_0 conda-forge
webcolors 1.13 pyhd8ed1ab_0 conda-forge
webencodings 0.5.1 pyhd8ed1ab_2 conda-forge
websocket-client 1.7.0 pyhd8ed1ab_0 conda-forge
werkzeug 3.0.1 pyhd8ed1ab_0 conda-forge
wget 1.20.3 ha35d2d1_1 conda-forge
wheel 0.42.0 pyhd8ed1ab_0 conda-forge
widgetsnbextension 4.0.10 pyhd8ed1ab_0 conda-forge
wrapt 1.16.0 py310h2372a71_0 conda-forge
xmltodict 0.13.0 pyhd8ed1ab_0 conda-forge
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.8.4 h0b41bf4_0 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.10 h7f98852_1003 conda-forge
xorg-libxt 1.3.0 hd590300_0 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
xtb 6.5.1 h03160e7_1 conda-forge
xtb-python 22.1 py310h1fa729e_0 conda-forge
xz 5.2.6 h166bdaf_0 conda-forge
yaml 0.2.5 h7f98852_2 conda-forge
yarl 1.9.4 py310h2372a71_0 conda-forge
zeromq 4.3.5 h59595ed_1 conda-forge
zict 3.0.0 pyhd8ed1ab_0 conda-forge
zipp 3.17.0 pyhd8ed1ab_0 conda-forge
zlib 1.2.13 hd590300_5 conda-forge
zstandard 0.22.0 py310h1275a96_0 conda-forge
zstd 1.5.5 hfc55251_0 conda-forge

Additional context

I LOVE the _additional_substructures API.

@j-wags
Copy link
Member

j-wags commented Mar 4, 2024

No technical substance here, but...

I LOVE the _additional_substructures API.

I... can't tell if you're joking. That API is so janky I've been looking forward to dropping it when I made _custom_substructures public. Do you unironically like _additional_substructures? I can consider leaving it in if so.

@Yoshanuikabundi
Copy link
Collaborator Author

For once in my life I am not being sarcastic! Its just so much easier to write a SMILES than an unambiguous SMARTS with mapped hydrogens. Yes its janky but I think the jank can be fixed - optionally take atom (and residue?) names from the molecule if they're there, support dummy atoms (atomic number 0) that are automatically not part of the matched substructure, or even just replace the argument with a free function that converts a molecule to a substructure dictionary entry that can be passed to _custom_substructures.

But yeah, the key thing I love is just writing a SMILES (which I already know is unambiguous cause if I do a from_smiles on it I only get one molecule) instead of a SMARTS with all explicit atoms and connectivity (which I could not pull off for RNA even with several hours work). Its the difference between minutes and hours of work.

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

No branches or pull requests

2 participants