openforcefield / openff-nagl

OpenFF NAGL
https://docs.openforcefield.org/projects/nagl/en/latest/?badge=latest
MIT License
12 stars 1 forks source link

Very large molecules consume huge amounts of memory #101

Closed Yoshanuikabundi closed 5 months ago

Yoshanuikabundi commented 5 months ago

I tried to charge a 5177 atom (349 residue) protein with NAGL. It took about fifty minutes before my kernel killed it because it had consumed all 64 GB of memory on my machine. I charged it with the OpenFF Toolkit's Molecule.assign_partial_charges() method.

My understanding is that NAGL should be roughly linear-ish in time and space, and I've successfully charged a 10ish residue peptide in about 250 ms (which was awesome), which means ~50x more atoms lead to ~12000x time. I wonder if there's any low hanging fruit that could be picked to optimize NAGL for large molecules?

Jeff thought it might be related to the combinatorics of computing tautomers - the Toolkit recently changed from by default only producing the top ~10 tautomers to asking for as many as the backend can give.

Code to reproduce the behavior

from openff.toolkit.utils.nagl_wrapper import NAGLToolkitWrapper
from openff.toolkit import Molecule

protein = Molecule.from_smiles(
    "CC[C@H](C)[C@H](NC(=O)CNC(=O)CNC(=O)[C@H](CCC(N)=O)NC(=O)[C@H](CCC(N)=O)NC(=O)[C@H](CC(=O)[O-])NC(=O)[C@H](CC(=O)[O-])NC(=O)[C@H](CCCNC(N)=[NH2+])NC(=O)CNC(=O)[C@H](CS)NC(=O)[C@@H](NC(=O)[C@H](CCCNC(N)=[NH2+])NC(=O)[C@H](Cc1ccccc1)NC(=O)[C@@H](NC(=O)[C@H](CC(N)=O)NC(=O)[C@H](Cc1c[nH]c2ccccc12)NC(=O)[C@H](CC(C)C)NC(=O)CNC(=O)[C@H](CCCNC(N)=[NH2+])NC(=O)[C@H](CCC(=O)[O-])NC(=O)[C@@H](NC(=O)[C@H](Cc1ccccc1)NC(=O)[C@@H](NC(=O)[C@@H]1CCCN1C(=O)[C@H](CC(N)=O)NC(=O)[C@@H](NC(=O)[C@H](C)NC(=O)[C@H](C)NC(=O)[C@@H]1CCCN1C(=O)[C@@H](NC(=O)[C@@H](NC(=O)[C@H](CCC(=O)[O-])NC(=O)[C@H](CC(C)C)NC(=O)[C@@H](NC(=O)CNC(=O)[C@H](CC(N)=O)NC(=O)[C@H](CCC(=O)[O-])NC(=O)[C@H](C)NC(=O)[C@H](Cc1ccc(O)cc1)NC(=O)[C@@H](NC(=O)[C@H](CCC(=O)[O-])NC(=O)[C@H](CO)NC(=O)[C@H](C)NC(=O)[C@@H]1CCCN1C(=O)[C@@H](NC(=O)[C@H](CO)NC(=O)[C@@H](NC(=O)CNC(=O)[C@H](CO)NC(=O)[C@H](CC(N)=O)NC(=O)[C@H](Cc1ccccc1)NC(=O)[C@H](Cc1cnc[nH]1)NC(=O)CNC(=O)[C@@H](NC(=O)[C@@H](NC(=O)[C@H](Cc1ccccc1)NC(=O)[C@H](CCCC[NH3+])NC(=O)[C@@H](NC(=O)CNC(=O)[C@H](CC(=O)[O-])NC(=O)[C@H](C)NC(=O)[C@@H](NC(=O)[C@H](Cc1ccccc1)NC(=O)[C@H](CCCC[NH3+])NC(=O)[C@H](CC(N)=O)NC(=O)[C@H](C)NC(=O)[C@@H](NC(=O)[C@H](CO)NC(=O)[C@@H](NC(=O)CNC(=O)[C@H](CCC(N)=O)NC(=O)[C@H](CCCC[NH3+])NC(=O)[C@@H]1CCCN1C(=O)[C@H](CC(=O)[O-])NC(=O)[C@H](CO)NC(=O)[C@@H](NC(=O)[C@H](CC(=O)[O-])NC(=O)[C@H](CC(=O)[O-])NC(=O)CNC(=O)[C@H](CC(C)C)NC(=O)[C@@H](NC(=O)[C@@H](NC(=O)[C@H](CCCC[NH3+])NC(=O)[C@@H](NC(=O)[C@H](CCC(N)=O)NC(=O)[C@H](CCC(=O)[O-])NC(=O)CNC(=O)[C@H](CC(N)=O)NC(=O)[C@@H](NC(=O)CNC(=O)CNC(=O)[C@H](C)NC(=O)[C@H](C)NC(=O)[C@H](CC(N)=O)NC(=O)[C@@H](NC(=O)[C@H](CC(=O)[O-])NC(=O)[C@H](CCCC[NH3+])NC(=O)[C@H](C)NC(=O)[C@H](C)NC(=O)[C@H](CCC(N)=O)NC(=O)[C@H](CCC(=O)[O-])NC(=O)[C@H](C)NC(=O)CNC(=O)[C@H](CCCC[NH3+])NC(=O)[C@H](CCC(N)=O)NC(=O)[C@@H](NC(=O)[C@H](CCC(N)=O)NC(=O)[C@H](C)NC(=O)CNC(=O)[C@H](Cc1ccccc1)NC(=O)[C@H](C)NC(=O)[C@H](C)NC(=O)[C@H](CC(N)=O)NC(=O)[C@@H]1CCCN1C(=O)CNC(=O)[C@@H](NC(=O)[C@H](CC(C)C)NC(=O)[C@@H]1CCCN1C(=O)[C@H](C)NC(=O)CNC(=O)[C@@H](NC(=O)[C@H](C)NC(=O)[C@@H](NC(=O)[C@@H](NC(=O)[C@@H](NC(=O)[C@H](CC(=O)[O-])NC(=O)[C@@H]([NH3+])CCSC)C(C)C)C(C)C)[C@@H](C)CC)C(C)C)[C@@H](C)O)[C@@H](C)CC)[C@@H](C)CC)[C@@H](C)CC)[C@@H](C)CC)[C@@H](C)CC)C(C)C)C(C)C)[C@@H](C)CC)C(C)C)C(C)C)C(C)C)C(C)C)C(C)C)C(C)C)[C@@H](C)CC)C(C)C)[C@@H](C)CC)[C@@H](C)CC)[C@@H](C)O)[C@@H](C)O)C(C)C)[C@@H](C)O)[C@@H](C)O)[C@@H](C)O)C(=O)N[C@@H](C)C(=O)NCC(=O)N[C@@H](CCCC[NH3+])C(=O)N[C@@H](Cc1ccc(O)cc1)C(=O)N[C@@H](CC(C)C)C(=O)N[C@@H](C)C(=O)N[C@@H](CC(=O)[O-])C(=O)N[C@@H](Cc1c[nH]cn1)C(=O)N[C@@H](Cc1ccccc1)C(=O)N[C@@H](CCCC[NH3+])C(=O)N[C@@H](CC(=O)[O-])C(=O)N[C@@H](C)C(=O)N[C@@H](CCCC[NH3+])C(=O)N[C@H](C(=O)N[C@@H](C)C(=O)N[C@H](C(=O)N[C@H](C(=O)N[C@@H](Cc1cnc[nH]1)C(=O)N[C@@H](CC(=O)[O-])C(=O)N[C@@H](CCCC[NH3+])C(=O)N[C@H](C(=O)N1CCC[C@H]1C(=O)N[C@@H](Cc1ccc(O)cc1)C(=O)NCC(=O)N[C@@H](CCC(N)=O)C(=O)NCC(=O)N[C@@H](CC(C)C)C(=O)N[C@@H](C)C(=O)N[C@@H](CC(=O)[O-])C(=O)N[C@@H](CCC(=O)[O-])C(=O)N[C@H](C(=O)N[C@@H](CCCC[NH3+])C(=O)N[C@@H](CCCC[NH3+])C(=O)N[C@@H](C)C(=O)N[C@@H](C)C(=O)N[C@@H](CC(N)=O)C(=O)N[C@@H](C)C(=O)N[C@@H](C)C(=O)NCC(=O)N[C@H](C(=O)N[C@H](C(=O)N[C@@H](CCC(=O)[O-])C(=O)N[C@H](C(=O)N[C@@H](CCSC)C(=O)N[C@@H](Cc1ccc(O)cc1)C(=O)N[C@@H](CCC(=O)[O-])C(=O)NCC(=O)N[C@H](C(=O)N[C@@H](CC(N)=O)C(=O)N[C@H](C(=O)N[C@@H](CS[C@H]1CC(=O)N(c2ccc3c(c2)C(=O)OC32c3ccc(O)cc3Oc3cc(O)ccc32)C1=O)C(=O)N[C@@H](CC(=O)[O-])C(=O)N[C@@H](CCCC[NH3+])C(=O)N[C@@H](CC(=O)[O-])C(=O)N[C@@H](Cc1ccccc1)C(=O)N[C@@H](CO)C(=O)N[C@@H](C)C(=O)N[C@@H](CC(C)C)C(=O)N[C@H](C(=O)N[C@@H](CO)C(=O)N[C@@H](CCCC[NH3+])C(=O)N[C@@H](CCSC)C(=O)N[C@@H](CCCC[NH3+])C(=O)N[C@@H](CCC(=O)[O-])C(=O)N[C@@H](C)C(=O)NCC(=O)N[C@H](C(=O)N[C@@H](CO)C(=O)N[C@H](C(=O)N[C@H](C(=O)N[C@@H](Cc1ccc(O)cc1)C(=O)N[C@@H](Cc1c[nH]c2ccccc12)C(=O)NCC(=O)NCC(=O)N[C@@H](CC(C)C)C(=O)N[C@@H](Cc1c[nH]cn1)C(=O)N[C@H](C(=O)N[C@@H](CCC(=O)[O-])C(=O)N[C@@H](C)C(=O)NCC(=O)N[C@@H](CC(C)C)C(=O)N[C@H](C(=O)N[C@H](C(=O)N[C@@H](CCCNC(N)=[NH2+])C(=O)N[C@@H](CCC(N)=O)C(=O)N[C@@H](C)C(=O)N[C@@H](C)C(=O)N[C@@H](CC(=O)[O-])C(=O)N[C@@H](CCC(N)=O)C(=O)NCC(=O)N[C@@H](CC(C)C)C(=O)N[C@@H](CCCC[NH3+])C(=O)N[C@@H](C)C(=O)N[C@@H](CCCC[NH3+])C(=O)N[C@@H](CC(C)C)C(=O)N[C@H](C(=O)N[C@@H](CO)C(=O)NCC(=O)N[C@@H](CC(=O)[O-])C(=O)NCC(=O)N[C@H](C(=O)N[C@H](C(=O)N[C@@H](CO)C(=O)N[C@@H](CC(N)=O)C(=O)N[C@@H](CCC(=O)[O-])C(=O)N[C@@H](CC(C)C)C(=O)N[C@@H](C)C(=O)N[C@@H](CO)C(=O)N[C@H](C(=O)N[C@@H](C)C(=O)NCC(=O)N[C@@H](CC(=O)[O-])C(=O)N[C@@H](C)C(=O)N[C@H](C(=O)N[C@@H](CCC(=O)[O-])C(=O)NCC(=O)N[C@H](C(=O)N[C@@H](CC(C)C)C(=O)N[C@@H](CC(N)=O)C(=O)N[C@H](C(=O)N[C@@H](Cc1ccccc1)C(=O)NCC(=O)N1CCC[C@H]1C(=O)N[C@@H](CC(=O)[O-])C(=O)N1CCC[C@H]1C(=O)N[C@H](C(=O)N[C@@H](CC(C)C)C(=O)N[C@@H](CCCNC(N)=[NH2+])C(=O)N1CCC[C@H]1C(=O)N[C@@H](CCC(=O)[O-])C(=O)N[C@@H](CC(N)=O)C(=O)N[C@@H](CCCC[NH3+])C(=O)N[C@@H](CCC(=O)[O-])C(=O)N[C@@H](CC(C)C)C(=O)N[C@H](C(=O)N[C@@H](CCC(=O)[O-])C(=O)N[C@@H](CCCC[NH3+])C(=O)N[C@@H](Cc1ccccc1)C(=O)N[C@@H](CCCC[NH3+])C(=O)N[C@@H](C)C(=O)N[C@@H](C)C(=O)NCC(=O)N[C@@H](Cc1ccccc1)C(=O)N[C@@H](CC(N)=O)C(=O)N1CCC[C@H]1C(=O)N[C@@H](CCC(=O)[O-])C(=O)N[C@@H](C)C(=O)N[C@@H](Cc1ccc(O)cc1)C(=O)N[C@H](C(=O)N[C@@H](CC(C)C)C(=O)N[C@@H](Cc1ccc(O)cc1)C(=O)N[C@@H](CO)C(=O)N[C@@H](Cc1ccc(O)cc1)C(=O)N[C@@H](C)C(=O)N[C@@H](C)C(=O)N[C@@H](CCSC)C(=O)N[C@@H](CCC(N)=O)C(=O)N[C@@H](C)C(=O)N[C@H](C(=O)N[C@@H](C)C(=O)NCC(=O)N[C@@H](C)C(=O)N[C@@H](C)C(=O)N[C@@H](CCCC[NH3+])C(=O)N[C@@H](C)C(=O)N[C@@H](C)C(=O)NCC(=O)N[C@@H](CO)C(=O)N[C@H](C(=O)N[C@@H](CCC(=O)[O-])C(=O)N1CCC[C@H]1C(=O)N[C@@H](CCC(=O)[O-])C(=O)N[C@@H](CCCC[NH3+])C(=O)N[C@H](C(=O)N[C@@H](C)C(=O)N[C@@H](CCC(=O)[O-])C(=O)N[C@@H](C)C(=O)N[C@@H](CC(C)C)C(=O)N[C@@H](CCCC[NH3+])C(=O)N[C@@H](CCCC[NH3+])C(=O)NCC(=O)N[C@@H](CO)C(=O)N[C@@H](Cc1ccccc1)C(=O)N1CCC[C@H]1C(=O)N[C@H](C(=O)N[C@@H](C)C(=O)N[C@@H](CC(C)C)C(=O)NCC(=O)N[C@@H](CCC(=O)[O-])C(=O)N[C@H](C(=O)N[C@@H](CO)C(=O)N[C@@H](Cc1ccccc1)C(=O)N[C@@H](CC(=O)[O-])C(=O)N[C@@H](CCC(=O)[O-])C(=O)N[C@@H](CCCC[NH3+])C(=O)NCC(=O)N[C@@H](CC(=O)[O-])C(=O)N1CCC[C@H]1C(=O)N[C@@H](CCCC[NH3+])C(=O)N[C@@H](CC(C)C)C(=O)N1CCC[C@H]1C(=O)NCC(=O)N[C@@H](Cc1ccc(O)cc1)C(=O)N[C@H](C(=O)N[C@@H](CCSC)C(=O)N[C@@H](Cc1ccc(O)cc1)C(=O)N[C@@H](CCC(=O)[O-])C(=O)N[C@@H](Cc1c[nH]c2ccccc12)C(=O)N[C@@H](CCCC[NH3+])C(=O)N[C@@H](CCCC[NH3+])C(=O)NCC(=O)N1CCC[C@H]1C(=O)N[C@@H](CC(=O)[O-])C(=O)NCC(=O)N[C@@H](CCCC[NH3+])C(=O)N[C@@H](Cc1ccccc1)C(=O)N[C@H](C(=O)N[C@@H](Cc1ccc(O)cc1)C(=O)N[C@H](C(=O)N[C@@H](CCC(N)=O)C(=O)N[C@@H](CCC(N)=O)C(=O)NC)[C@@H](C)CC)[C@@H](C)O)C(C)C)[C@@H](C)CC)[C@@H](C)O)C(C)C)C(C)C)[C@@H](C)CC)[C@@H](C)O)C(C)C)[C@@H](C)O)[C@@H](C)O)[C@@H](C)O)C(C)C)[C@@H](C)CC)C(C)C)[C@@H](C)CC)C(C)C)[C@@H](C)CC)[C@@H](C)CC)[C@@H](C)O)[C@@H](C)CC)[C@@H](C)CC)C(C)C)[C@@H](C)CC)C(C)C)C(C)C)C(C)C)[C@@H](C)O)C(C)C)[C@@H](C)O)[C@@H](C)O)[C@@H](C)CC)[C@@H](C)CC)C(C)C"
)

protein.assign_partial_charges(
    "openff-gnn-am1bcc-0.1.0-rc.1.pt", toolkit_registry=NAGLToolkitWrapper()
)

(SMILES is my favorite format for sharing proteins)

Current environment

pip list
Package                   Version
------------------------- ----------------------------
absl-py                   2.1.0
aiohttp                   3.9.3
aiosignal                 1.3.1
AmberLite                 22.0
AmberUtils                21.0
annotated-types           0.6.0
anyio                     4.3.0
argcomplete               3.2.3
argon2-cffi               23.1.0
argon2-cffi-bindings      21.2.0
arrow                     1.3.0
ase                       3.22.1
asttokens                 2.4.1
astunparse                1.6.3
async-lru                 2.0.4
async-timeout             4.0.3
attrs                     23.2.0
Babel                     2.14.0
basis-set-exchange        0.9.1
beautifulsoup4            4.12.3
biopython                 1.83
black                     24.3.0
bleach                    6.1.0
blinker                   1.7.0
Brotli                    1.0.9
bson                      0.5.9
cached-property           1.5.2
cachetools                5.3.3
cattrs                    23.2.3
certifi                   2024.2.2
cffi                      1.16.0
cftime                    1.6.3
chardet                   5.2.0
charset-normalizer        3.3.2
chemper                   1.0.0
click                     8.1.7
click-option-group        0.5.6
cloudpickle               3.0.0
colorama                  0.4.6
comm                      0.2.2
contourpy                 1.2.0
cryptography              42.0.5
cycler                    0.12.1
Cython                    3.0.9
cytoolz                   0.12.3
dask                      2024.3.1
dask-jobqueue             0.8.5
debugpy                   1.8.1
decorator                 5.1.1
defusedxml                0.7.1
dgl                       1.1.2
distributed               2024.3.1
dockstring                0.3.2
docstring-to-markdown     0.15
entrypoints               0.4
exceptiongroup            1.2.0
executing                 2.0.1
f90wrap                   0.2.13
fasteners                 0.17.3
fastjsonschema            2.19.1
filelock                  3.13.3
Flask                     3.0.2
flatbuffers               24.3.25
fonttools                 4.50.0
fqdn                      1.5.1
freetype-py               2.3.0
frozenlist                1.4.1
fsspec                    2024.3.1
gast                      0.4.0
gitdb                     4.0.11
GitPython                 3.1.42
gmpy2                     2.1.2
google-auth               2.29.0
google-auth-oauthlib      0.4.6
google-pasta              0.2.0
greenlet                  3.0.3
GridDataFormats           1.0.2
grpcio                    1.51.1
gsd                       3.2.1
h11                       0.14.0
h2                        4.1.0
h5py                      3.8.0
hpack                     4.0.0
httpcore                  1.0.5
httpx                     0.27.0
hyperframe                6.0.1
idna                      3.6
importlib_metadata        7.1.0
importlib_resources       6.4.0
injector                  0.20.1
ipykernel                 6.29.3
ipython                   8.22.2
ipywidgets                8.1.2
isoduration               20.11.0
isort                     5.13.2
itsdangerous              2.1.2
jax                       0.4.4
jaxlib                    0.4.3
jedi                      0.19.1
jedi-language-server      0.41.3
Jinja2                    3.1.3
joblib                    1.3.2
json5                     0.9.24
jsonpointer               2.4
jsonschema                4.21.1
jsonschema-specifications 2023.12.1
jupyter_client            8.6.1
jupyter_core              5.7.2
jupyter-events            0.10.0
jupyter-lsp               2.2.4
jupyter_server            2.13.0
jupyter_server_terminals  0.5.3
jupyterlab                4.1.5
jupyterlab_code_formatter 2.2.1
jupyterlab_execute_time   3.1.2
jupyterlab-lsp            5.1.0
jupyterlab_pygments       0.3.0
jupyterlab_server         2.25.4
jupyterlab_widgets        3.0.10
keras                     2.11.0
Keras-Preprocessing       1.1.2
kiwisolver                1.4.5
lammps                    2022.6.23
lightning-utilities       0.11.2
llvmlite                  0.42.0
locket                    1.0.0
lsprotocol                2023.0.1
lxml                      4.9.2
Markdown                  3.6
markdown-it-py            3.0.0
MarkupSafe                2.1.5
matplotlib                3.8.3
matplotlib-inline         0.1.6
mda-xdrlib                0.2.0
MDAnalysis                2.7.0
mdtraj                    1.9.9
mdurl                     0.1.2
mistune                   3.0.2
mmcif-pdbx                2.0.1
MMPBSA.py                 16.0
mmtf-python               1.1.3
mpiplus                   0+untagged.38.gfd8a5aa.dirty
mpmath                    1.3.0
mrcfile                   1.5.0
msgpack                   1.0.7
multidict                 6.0.5
munkres                   1.1.4
mypy-extensions           1.0.0
nbclient                  0.10.0
nbconvert                 7.16.3
nbformat                  5.10.3
nest_asyncio              1.6.0
netCDF4                   1.6.2
networkx                  3.2.1
nglview                   3.1.2
nose                      1.3.7
notebook                  7.1.2
notebook_shim             0.2.4
numba                     0.59.1
numexpr                   2.9.0
numpy                     1.26.4
oauthlib                  3.2.2
openff-amber-ff-ports     0+untagged.32.g809f411.dirty
openff-interchange        0.3.24
openff-models             0.1.2
openff-nagl               0.3.6
openff-nagl-models        0.1.2
openff-qcsubmit           0.50.3
openff-recharge           0.5.2
openff-toolkit            0.15.2
openff-units              0.2.2
openff-utilities          0.1.12
openforcefields           2024.3.0
OpenMM                    8.1.1
openmmforcefields         0.12.0
openmmtools               0.23.1
opt-einsum                3.3.0
overrides                 7.7.0
packaging                 24.0
packmol-memgen            1.2.3rc0
pandas                    2.2.1
pandocfilters             1.5.0
panedr                    0.8.0
ParmEd                    3.4.4
parso                     0.8.3
partd                     1.4.1
pathspec                  0.12.1
patsy                     0.5.6
pdb2pqr                   3.6.1
pdb4amber                 22.0
pdbfixer                  1.9.0
pexpect                   4.9.0
pickleshare               0.7.5
pid                       3.0.4
Pillow                    9.4.0
Pint                      0.23
pip                       24.0
pkgutil_resolve_name      1.3.10
platformdirs              4.2.0
plotly                    5.19.0
prometheus_client         0.20.0
prompt-toolkit            3.0.42
propka                    3.5.1
protobuf                  4.21.12
psutil                    5.9.8
ptyprocess                0.7.0
pure-eval                 0.2.2
py-cpuinfo                9.0.0
pyarrow                   11.0.0
pyasn1                    0.5.1
pyasn1-modules            0.3.0
pycairo                   1.25.0
pycparser                 2.21
pydantic                  2.6.4
pydantic_core             2.16.3
pyedr                     0.8.0
pygls                     1.3.1
Pygments                  2.17.2
PyJWT                     2.8.0
pymbar                    4.0.3
pyMSMT                    22.0
pyOpenSSL                 24.0.0
pyparsing                 3.1.2
PySocks                   1.7.1
python-constraint         1.4.0
python-dateutil           2.9.0
python-json-logger        2.0.7
pytng                     0.0.0
pytorch-lightning         2.2.1
pytraj                    2.0.6
pytz                      2024.1
pyu2f                     0.1.5
PyYAML                    6.0.1
pyzmq                     25.1.2
qcelemental               0.27.1
qcengine                  0.29.0
qcportal                  0.53
quippy                    NOT-A-GIT-REPOSITORY
referencing               0.34.0
regex                     2023.12.25
reportlab                 4.1.0
requests                  2.31.0
requests-oauthlib         2.0.0
rfc3339-validator         0.1.4
rfc3986-validator         0.1.1
rich                      13.7.1
rlPyCairo                 0.2.0
rpds-py                   0.18.0
rsa                       4.9
sander                    22.0
scikit-learn              1.4.1.post1
scipy                     1.12.0
seaborn                   0.13.2
Send2Trash                1.8.2
setuptools                69.2.0
six                       1.16.0
smirnoff99frosst          0+unknown
smmap                     5.0.0
sniffio                   1.3.1
sortedcontainers          2.4.0
soupsieve                 2.5
SQLAlchemy                2.0.29
stack-data                0.6.2
statsmodels               0.14.1
sympy                     1.12
tables                    3.7.0
tabulate                  0.9.0
tblib                     3.0.0
tenacity                  8.2.3
tensorboard               2.11.2
tensorboard-data-server   0.6.1
tensorboard-plugin-wit    1.8.1
tensorflow                2.11.0
tensorflow-estimator      2.11.0
termcolor                 2.4.0
terminado                 0.18.1
threadpoolctl             3.4.0
tidynamics                1.1.2
tinycss2                  1.2.1
tinydb                    4.8.0
tomli                     2.0.1
toolz                     0.12.1
torch                     2.0.0
torchmetrics              1.3.2
tornado                   6.4
tqdm                      4.66.2
traitlets                 5.14.2
transitions               0.8.11
types-python-dateutil     2.9.0.20240316
typing_extensions         4.10.0
typing-utils              0.1.0
tzdata                    2024.1
unicodedata2              15.1.0
Unidecode                 1.3.8
uri-template              1.3.0
urllib3                   2.2.1
validators                0.24.0
wcwidth                   0.2.13
webcolors                 1.13
webencodings              0.5.1
websocket-client          1.7.0
Werkzeug                  3.0.1
wheel                     0.43.0
widgetsnbextension        4.0.10
wrapt                     1.16.0
xmltodict                 0.13.0
xtb                       22.1
yarl                      1.9.4
zict                      3.0.0
zipp                      3.17.0
zstandard                 0.22.0
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_1              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
  argcomplete                    3.2.3           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
  basis_set_exchange             0.9.1           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            hdade7a5_3                   conda-forge
  biopython                      1.83            py310h2372a71_0              conda-forge
  black                          24.3.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.29.0          hcfe8598_0                   conda-forge
  colorama                       0.4.6           pyhd8ed1ab_0                 conda-forge
  comm                           0.2.2           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.7.1           hca28451_0                   conda-forge
  cycler                         0.12.1          pyhd8ed1ab_0                 conda-forge
  cython                         3.0.9           py310hc6cd4ac_0              conda-forge
  cytoolz                        0.12.3          py310h2372a71_0              conda-forge
  dask-core                      2024.3.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.3.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.6.2           h59595ed_0                   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.3          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.50.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.3.1        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          h0f0c6b6_3                   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          h8f970dc_3                   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_1                   conda-forge
  gmpy2                          2.1.2           py310h3ec546c_1              conda-forge
  google-auth                    2.29.0          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          h2730b16_3                   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.5           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.1.0           pyha770c72_0                 conda-forge
  importlib_metadata             7.1.0           hd8ed1ab_0                   conda-forge
  importlib_resources            6.4.0           pyhd8ed1ab_0                 conda-forge
  ipykernel                      6.29.3          pyhd33586a_0                 conda-forge
  ipython                        8.22.2          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.24          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.4           pyhd8ed1ab_0                 conda-forge
  jupyter_client                 8.6.1           pyhd8ed1ab_0                 conda-forge
  jupyter_core                   5.7.2           py310hff52083_0              conda-forge
  jupyter_events                 0.10.0          pyhd8ed1ab_0                 conda-forge
  jupyter_server                 2.13.0          pyhd8ed1ab_0                 conda-forge
  jupyter_server_terminals       0.5.3           pyhd8ed1ab_0                 conda-forge
  jupyterlab                     4.1.5           pyhd8ed1ab_0                 conda-forge
  jupyterlab-lsp                 5.1.0           pyhd8ed1ab_1                 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.4          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.3           h59595ed_0                   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.7.1           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.6.2           h59595ed_0                   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.80.0          hf2295e7_1                   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.2          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.48.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.11.2          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.6             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.10.0          pyhd8ed1ab_0                 conda-forge
  nbconvert                      7.16.3          hd8ed1ab_0                   conda-forge
  nbconvert-core                 7.16.3          pyhd8ed1ab_0                 conda-forge
  nbconvert-pandoc               7.16.3          hd8ed1ab_0                   conda-forge
  nbformat                       5.10.3          pyhd8ed1ab_0                 conda-forge
  ncurses                        6.4.20240210    h59595ed_0                   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.2           pyhd8ed1ab_0                 conda-forge
  notebook-shim                  0.2.4           pyhd8ed1ab_0                 conda-forge
  numba                          0.59.1          py310h7dc5dd1_0              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_1                   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.03.0       pyhca7485f_0                 conda-forge
  openff-interchange             0.3.24          pyhd8ed1ab_0                 conda-forge
  openff-interchange-base        0.3.24          pyhd8ed1ab_0                 conda-forge
  openff-models                  0.1.2           pyhca7485f_0                 conda-forge
  openff-nagl                    0.3.6           pyhd8ed1ab_0                 conda-forge
  openff-nagl-base               0.3.6           pyhd8ed1ab_0                 conda-forge
  openff-nagl-models             0.1.2           pyhd8ed1ab_0                 conda-forge
  openff-qcsubmit                0.50.3          pyhd8ed1ab_0                 conda-forge
  openff-recharge                0.5.2           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.2           pyhca7485f_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_1                   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                      24.0            pyhd8ed1ab_0                 conda-forge
  packmol                        20.010          h86c2bf4_0                   conda-forge
  pandas                         2.2.1           py310hcc13569_0              conda-forge
  pandoc                         3.1.12.3        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.43           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.23            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
  plotly                         5.19.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.4           pyhd8ed1ab_0                 conda-forge
  pydantic-core                  2.16.3          py310hcb5633a_0              conda-forge
  pyedr                          0.8.0           pyhd8ed1ab_0                 conda-forge
  pygls                          1.3.1           pyhd8ed1ab_0                 conda-forge
  pygments                       2.17.2          pyhd8ed1ab_0                 conda-forge
  pyjwt                          2.8.0           pyhd8ed1ab_1                 conda-forge
  pymbar                         4.0.3           hff52083_1                   conda-forge
  pymbar-core                    4.0.3           py310h1f7b6fc_1              conda-forge
  pyopenssl                      24.0.0          pyhd8ed1ab_0                 conda-forge
  pyparsing                      3.1.2           pyhd8ed1ab_0                 conda-forge
  pysocks                        1.7.1           pyha2e5f31_6                 conda-forge
  pytables                       3.7.0           py310hb60b9b2_3              conda-forge
  python                         3.10.14         hd12c33a_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.19.1          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.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.2.1           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.34.0          pyhd8ed1ab_0                 conda-forge
  regex                          2023.12.25      py310h2372a71_0              conda-forge
  reportlab                      4.1.0           py310h2372a71_0              conda-forge
  requests                       2.31.0          pyhd8ed1ab_0                 conda-forge
  requests-oauthlib              2.0.0           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.2.0          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.29          py310h2372a71_0              conda-forge
  sqlite                         3.45.2          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
  tenacity                       8.2.3           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.1          pyh0d859eb_0                 conda-forge
  threadpoolctl                  3.4.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.3.2           pyhd8ed1ab_0                 conda-forge
  tornado                        6.4             py310h2372a71_0              conda-forge
  tqdm                           4.66.2          pyhd8ed1ab_0                 conda-forge
  traitlets                      5.14.2          pyhd8ed1ab_0                 conda-forge
  types-python-dateutil          2.9.0.20240316  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
  unidecode                      1.3.8           pyhd8ed1ab_0                 conda-forge
  uri-template                   1.3.0           pyhd8ed1ab_0                 conda-forge
  urllib3                        2.2.1           pyhd8ed1ab_0                 conda-forge
  validators                     0.24.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.21.4          hda4d442_0                   conda-forge
  wheel                          0.43.0          pyhd8ed1ab_1                 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
lilyminium commented 5 months ago

My first thought is usually resonance structures but I'll do a proper profile of what's going on. Thanks for the report!

lilyminium commented 5 months ago

Ok... I think I've got this consistently down to ~110 seconds with and without DGL, ~1.9 GiB with OpenEye, ~450 MiB with RDKit for reasons I describe in https://github.com/openforcefield/openff-toolkit/issues/1855. It's still not linear scaling, and undoubtedly there's a lot of optimization that could be further done -- most of the additional time takes place in the resonance enumeration that still makes a lot of use of networkx and suboptimal data structures. I'll get this merged and released ASAP though so NAGL is remotely usable for larger molecules.

Yoshanuikabundi commented 5 months ago

THAT'S AWESOME!!! 110 seconds is EXTREMELY usable. This is going to make the NCAA vignette such a hard flex.

lilyminium commented 5 months ago

GitHub was down for a little but just made a release that will hopefully show up on conda soon!