Openeye license check
Describe the bug We have omega (but not omega toolkit) and oequacpac license. In this condition, openeye license check is not done correctly. To Reproduce
from openmm.app import PDBFile
from openff.toolkit.topology import Molecule, Topology
from openff.toolkit.typing.engines.smirnoff import ForceField as off_ForceField
ligand_sdf = 'ligand.sdf'
ligand_pdb = 'ligand.pdb'
force_field = off_ForceField("openff_unconstrained-2.0.0.offxml")
ligand = Molecule.from_file(ligand_sdf, allow_undefined_stereo=True)
ligand_pdb = PDBFile(ligand_pdb)
off_topology = Topology.from_openmm(openmm_topology=ligand_pdb.topology, unique_molecules=[ligand])
ligand_system = force_field.create_openmm_system(off_topology)
This does not raise any exception but causes license error:
ligand.sdf and ligand.pdb can be any small molecule in the two different format.
Output LICENSE: No valid license found for omega LICENSE: File(s) used: /path/to/oe_license.txt LICENSE: Closest license failed because: LICENSE: features
Computing environment (please complete the following information):
- Operating system: Ubuntu 22.04.3 LTS
- Output of running
conda listName Version Build Channel _libgcc_mutex 0.1 conda_forge conda-forge _openmp_mutex 4.5 2_kmp_llvm conda-forge _py-xgboost-mutex 2.0 gpu_0 conda-forge agate 1.9.1 py39hf3d152e_0 conda-forge agate-dbf 0.2.2 pyhd8ed1ab_0 conda-forge agate-excel 0.2.3 py_0 conda-forge agate-sql 0.5.8 pyhd8ed1ab_0 conda-forge aioeasywebdav 2.4.0 py39hf3d152e_1001 conda-forge aiohttp 3.9.3 py39hd1e30aa_1 conda-forge aiosignal 1.3.1 pyhd8ed1ab_0 conda-forge alabaster 0.7.16 pyhd8ed1ab_0 conda-forge ambertools 23.3 py39h7fa913e_6 conda-forge amberutils 21.0 pypi_0 pypi amply 0.1.6 pyhd8ed1ab_0 conda-forge annotated-types 0.6.0 pyhd8ed1ab_0 conda-forge anyio 3.7.1 pyhd8ed1ab_0 conda-forge aom 3.5.0 h27087fc_0 conda-forge appdirs 1.4.4 pyh9f0ad1d_0 conda-forge argon2-cffi 21.3.0 pyhd8ed1ab_0 conda-forge argon2-cffi-bindings 21.2.0 py39hb9d737c_3 conda-forge argtable2 2.13 h14c3975_1001 conda-forge arpack 3.8.0 nompi_h0baa96a_101 conda-forge ase 3.22.1 pyhd8ed1ab_1 conda-forge asttokens 2.2.1 pyhd8ed1ab_0 conda-forge astunparse 1.6.3 pyhd8ed1ab_0 conda-forge async-timeout 4.0.3 pyhd8ed1ab_0 conda-forge atk-1.0 2.38.0 hd4edc92_1 conda-forge attmap 0.13.2 pyhd8ed1ab_0 conda-forge attrs 23.1.0 pyh71513ae_1 conda-forge automl 0.0.1 pypi_0 pypi aws-c-auth 0.7.0 hf8751d9_2 conda-forge aws-c-cal 0.6.0 h93469e0_0 conda-forge aws-c-common 0.8.23 hd590300_0 conda-forge aws-c-compression 0.2.17 h862ab75_1 conda-forge aws-c-event-stream 0.3.1 h9599702_1 conda-forge aws-c-http 0.7.11 hbe98c3e_0 conda-forge aws-c-io 0.13.28 h3870b5a_0 conda-forge aws-c-mqtt 0.8.14 h2e270ba_2 conda-forge aws-c-s3 0.3.13 heb0bb06_2 conda-forge aws-c-sdkutils 0.1.11 h862ab75_1 conda-forge aws-checksums 0.1.16 h862ab75_1 conda-forge aws-crt-cpp 0.20.3 he9c0e7f_4 conda-forge aws-sdk-cpp 1.10.57 hbc2ea52_17 conda-forge babel 2.14.0 pyhd8ed1ab_0 conda-forge backcall 0.2.0 pyh9f0ad1d_0 conda-forge backports 1.0 pyhd8ed1ab_3 conda-forge backports.functools_lru_cache 1.6.4 pyhd8ed1ab_0 conda-forge bcrypt 4.1.2 py39h9fdd4d6_0 conda-forge beautifulsoup4 4.12.2 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 py39hd1e30aa_0 conda-forge bioservices 1.11.2 pyhd8ed1ab_1 conda-forge black 23.3.0 py39hf3d152e_1 conda-forge blas 2.116 openblas conda-forge blas-devel 3.9.0 16_linux64_openblas conda-forge bleach 6.0.0 pyhd8ed1ab_0 conda-forge blinker 1.7.0 pyhd8ed1ab_0 conda-forge blosc 1.21.4 h0f2a231_0 conda-forge boost 1.82.0 h8003fee_6 conda-forge boost-cpp 1.82.0 h44aadfe_6 conda-forge boto3 1.34.76 pyhd8ed1ab_0 conda-forge botocore 1.34.77 pyge38_1234567_0 conda-forge brotli 1.0.9 h166bdaf_8 conda-forge brotli-bin 1.0.9 h166bdaf_8 conda-forge brotli-python 1.0.9 py39h5a03fae_8 conda-forge brunsli 0.1 h9c3ff4c_0 conda-forge bson 0.5.9 py_0 conda-forge bzip2 1.0.8 h7f98852_4 conda-forge c-ares 1.19.1 hd590300_0 conda-forge c-blosc2 2.10.0 hb4ffafa_0 conda-forge ca-certificates 2024.6.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.0 pyhd8ed1ab_0 conda-forge cairo 1.18.0 h3faef2a_0 conda-forge captum 0.7.0 0 pytorch catboost 1.2.5 py39hf3d152e_0 conda-forge cdpkit 1.1.1 pypi_0 pypi cerberus 1.3.5 pyhd8ed1ab_0 conda-forge certifi 2024.2.2 pyhd8ed1ab_0 conda-forge cffi 1.15.1 py39he91dace_3 conda-forge cfitsio 4.2.0 hd9d235c_0 conda-forge cftime 1.6.2 py39h2ae25f5_1 conda-forge charls 2.4.2 h59595ed_0 conda-forge charset-normalizer 3.1.0 pyhd8ed1ab_0 conda-forge chemtools 0.1.0 dev_0cld2-cffi 0.1.4 py39h3d6467e_1005 conda-forge click 8.1.7 unix_pyh707e725_0 conda-forge cloudpickle 3.0.0 pyhd8ed1ab_0 conda-forge clustalo 1.2.4 hdbdd923_7 bioconda clusterutils 0.3.1 pyhd8ed1ab_1 conda-forge coin-or-cbc 2.10.10 h9002f0b_0 conda-forge coin-or-cgl 0.60.7 h516709c_0 conda-forge coin-or-clp 1.17.8 h1ee7a9c_0 conda-forge coin-or-osi 0.108.8 ha2443b9_0 conda-forge coin-or-utils 2.11.9 hee58242_0 conda-forge coincbc 2.10.10 0_metapackage conda-forge colorama 0.4.6 pyhd8ed1ab_0 conda-forge colorlog 6.8.2 py39hf3d152e_0 conda-forge comm 0.1.3 pyhd8ed1ab_0 conda-forge configargparse 1.7 pyhd8ed1ab_0 conda-forge connection_pool 0.0.3 pyhd3deb0d_0 conda-forge contourpy 1.0.7 py39h4b4f3f3_0 conda-forge cryptography 41.0.7 py39he6105cc_1 conda-forge csvkit 1.3.0 pyhd8ed1ab_0 conda-forge cuda-cudart 11.8.89 0 nvidia cuda-cupti 11.8.87 0 nvidia cuda-libraries 11.8.0 0 nvidia cuda-nvrtc 11.8.89 0 nvidia cuda-nvtx 11.8.86 0 nvidia cuda-runtime 11.8.0 0 nvidia cuda-version 11.8 h70ddcb2_2 conda-forge cudatoolkit 11.8.0 h4ba93d1_12 conda-forge cudnn 8.8.0.121 hcdd5f01_4 conda-forge curl 8.1.2 h409715c_0 conda-forge cycler 0.11.0 pyhd8ed1ab_0 conda-forge cython 0.29.35 py39h3d6467e_0 conda-forge datrie 0.8.2 py39hd1e30aa_7 conda-forge dav1d 1.2.1 hd590300_0 conda-forge dbfread 2.0.7 py_0 conda-forge debugpy 1.6.7 py39h227be39_0 conda-forge decorator 5.1.1 pyhd8ed1ab_0 conda-forge defusedxml 0.7.1 pyhd8ed1ab_0 conda-forge deprecation 2.1.0 pypi_0 pypi dgl 1.1.3 pypi_0 pypi dnspython 2.6.1 pyhd8ed1ab_0 conda-forge docker-pycreds 0.4.0 py_0 conda-forge docopt 0.6.2 py_1 conda-forge docutils 0.20.1 py39hf3d152e_3 conda-forge dpath 2.1.6 pyha770c72_0 conda-forge dropbox 11.36.2 pyhd8ed1ab_0 conda-forge easydev 0.12.0 pyh6c4a22f_0 conda-forge edgembar 0.2 pypi_0 pypi eido 0.2.2 pyhd8ed1ab_0 conda-forge entrypoints 0.4 pyhd8ed1ab_0 conda-forge espaloma-charge 0.0.8 pypi_0 pypi et_xmlfile 1.1.0 pyhd8ed1ab_0 conda-forge exceptiongroup 1.1.1 pyhd8ed1ab_0 conda-forge executing 1.2.0 pyhd8ed1ab_0 conda-forge expat 2.5.0 hcb278e6_1 conda-forge fastapi 0.110.1 pyhd8ed1ab_0 conda-forge ffmpeg 4.3 hf484d3e_0 pytorch fftw 3.3.10 nompi_hc118613_107 conda-forge filechunkio 1.8 py_2 conda-forge filelock 3.13.1 pyhd8ed1ab_0 conda-forge flask 3.0.2 pyhd8ed1ab_0 conda-forge flit-core 3.9.0 pyhd8ed1ab_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 hab24e00_0 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.39.4 py39hd1e30aa_0 conda-forge fpocket 4.1.4 h965ee13_0 conda-forge freetype 2.12.1 hca18f0e_1 conda-forge fribidi 1.0.10 h36c2ea0_0 conda-forge frozenlist 1.4.1 py39hd1e30aa_0 conda-forge fsspec 2023.12.2 pyhca7485f_0 conda-forge ftputil 5.1.0 pyhd8ed1ab_0 conda-forge future 0.18.3 pyhd8ed1ab_0 conda-forge gcc 13.2.0 h574f8da_2 conda-forge gcc_impl_linux-64 13.2.0 h338b0a0_4 conda-forge gcc_linux-64 13.2.0 h112eaf3_2 conda-forge gdk-pixbuf 2.42.10 h05c8ddd_0 conda-forge gettext 0.21.1 h27087fc_0 conda-forge gevent 23.9.0.post1 py39hdca961b_1 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 gmp 6.3.0 h59595ed_0 conda-forge gmpy2 2.1.2 py39h376b7d2_1 conda-forge gnutls 3.6.13 h85f3911_1 conda-forge google-api-core 2.18.0 pyhd8ed1ab_0 conda-forge google-api-python-client 2.125.0 pyhd8ed1ab_0 conda-forge google-auth 2.29.0 pyhca7485f_0 conda-forge google-auth-httplib2 0.2.0 pyhd8ed1ab_0 conda-forge google-cloud-core 2.4.1 pyhd8ed1ab_0 conda-forge google-cloud-storage 2.16.0 pyhca7485f_0 conda-forge google-crc32c 1.1.2 py39h328ec2c_5 conda-forge google-resumable-media 2.7.0 pyhd8ed1ab_0 conda-forge googleapis-common-protos 1.63.0 pyhd8ed1ab_0 conda-forge graphite2 1.3.13 h58526e2_1001 conda-forge graphviz 9.0.0 h78e8752_1 conda-forge greenlet 2.0.2 py39h3d6467e_1 conda-forge grequests 0.6.0 pyh9f0ad1d_0 conda-forge grpcio 1.46.3 py39h7fbbf82_0 conda-forge gtk2 2.24.33 h90689f9_2 conda-forge gts 0.7.6 h977cf35_4 conda-forge gxx 13.2.0 h574f8da_2 conda-forge gxx_impl_linux-64 13.2.0 h338b0a0_4 conda-forge gxx_linux-64 13.2.0 hc53e3bf_2 conda-forge h11 0.14.0 pyhd8ed1ab_0 conda-forge h2 4.1.0 pyhd8ed1ab_0 conda-forge h5py 3.9.0 nompi_py39h680ca82_101 conda-forge harfbuzz 7.3.0 h3d44ed6_1 conda-forge hdf4 4.2.15 h9772cbc_5 conda-forge hdf5 1.14.1 nompi_h4f84152_100 conda-forge hpack 4.0.0 pyh9f0ad1d_0 conda-forge httpcore 1.0.4 pyhd8ed1ab_0 conda-forge httplib2 0.22.0 pyhd8ed1ab_0 conda-forge humanfriendly 10.0 pyhd8ed1ab_6 conda-forge hyperframe 6.0.1 pyhd8ed1ab_0 conda-forge icu 73.2 h59595ed_0 conda-forge idna 3.4 pyhd8ed1ab_0 conda-forge imagecodecs 2023.1.23 py39hd061359_0 conda-forge imageio 2.34.0 pyh4b66e23_0 conda-forge imagesize 1.4.1 pyhd8ed1ab_0 conda-forge importlib-metadata 6.6.0 pyha770c72_0 conda-forge importlib-resources 5.12.0 pyhd8ed1ab_0 conda-forge importlib_metadata 6.6.0 hd8ed1ab_0 conda-forge importlib_resources 5.12.0 pyhd8ed1ab_0 conda-forge iniconfig 2.0.0 pyhd8ed1ab_0 conda-forge ipykernel 6.23.1 pyh210e3f2_0 conda-forge ipython 8.13.2 pyh41d4057_0 conda-forge ipython-style-gruvbox 1.0.0 pypi_0 pypi ipython_genutils 0.2.0 py_1 conda-forge ipywidgets 7.7.5 pyhd8ed1ab_0 conda-forge isodate 0.6.1 pyhd8ed1ab_0 conda-forge isort 5.13.2 pyhd8ed1ab_0 conda-forge itsdangerous 2.1.2 pyhd8ed1ab_0 conda-forge jax 0.4.26 pyhd8ed1ab_0 conda-forge jaxlib 0.4.23 py39h6a678d5_0 jedi 0.18.2 pyhd8ed1ab_0 conda-forge jenn 1.0.3 pyhd8ed1ab_0 conda-forge jinja2 3.1.2 pyhd8ed1ab_1 conda-forge jmespath 1.0.1 pyhd8ed1ab_0 conda-forge joblib 1.2.0 pyhd8ed1ab_0 conda-forge jpeg 9e h166bdaf_2 conda-forge jsonpickle 3.0.2 pyhd8ed1ab_1 conda-forge jsonschema 4.17.3 pyhd8ed1ab_0 conda-forge jupyter 1.0.0 pyhd8ed1ab_10 conda-forge jupyter_client 8.2.0 pyhd8ed1ab_0 conda-forge jupyter_console 6.6.3 pyhd8ed1ab_0 conda-forge jupyter_core 5.3.0 py39hf3d152e_0 conda-forge jupyter_events 0.6.3 pyhd8ed1ab_0 conda-forge jupyter_server 2.6.0 pyhd8ed1ab_0 conda-forge jupyter_server_terminals 0.4.4 pyhd8ed1ab_1 conda-forge jupyterlab_pygments 0.2.2 pyhd8ed1ab_0 conda-forge jupyterlab_widgets 1.1.4 pyhd8ed1ab_0 conda-forge jxrlib 1.1 hd590300_3 conda-forge kernel-headers_linux-64 2.6.32 he073ed8_16 conda-forge keyutils 1.6.1 h166bdaf_0 conda-forge kiwisolver 1.4.4 py39hf939315_1 conda-forge krb5 1.20.1 h81ceb04_0 conda-forge lame 3.100 h166bdaf_1003 conda-forge lancedb 0.5.1 pypi_0 pypi lazy_loader 0.3 pyhd8ed1ab_0 conda-forge lcms2 2.15 hfd0df8a_0 conda-forge ld_impl_linux-64 2.40 h41732ed_0 conda-forge leather 0.3.4 pyhd8ed1ab_0 conda-forge lerc 4.0.0 h27087fc_0 conda-forge libabseil 20230802.1 cxx17_h59595ed_0 conda-forge libaec 1.0.6 hcb278e6_1 conda-forge libavif 0.11.1 h8182462_2 conda-forge libblas 3.9.0 16_linux64_openblas conda-forge libboost 1.82.0 h6fcfa73_6 conda-forge libboost-devel 1.82.0 h00ab1b0_6 conda-forge libboost-headers 1.82.0 ha770c72_6 conda-forge libboost-python 1.82.0 py39hda80f44_6 conda-forge libboost-python-devel 1.82.0 py39h8003fee_6 conda-forge libbrotlicommon 1.0.9 h166bdaf_8 conda-forge libbrotlidec 1.0.9 h166bdaf_8 conda-forge libbrotlienc 1.0.9 h166bdaf_8 conda-forge libcblas 3.9.0 16_linux64_openblas conda-forge libcrc32c 1.1.2 h9c3ff4c_0 conda-forge libcublas 11.11.3.6 0 nvidia libcufft 10.9.0.58 0 nvidia libcufile 1.8.1.2 0 nvidia libcurand 10.3.4.107 0 nvidia libcurl 8.1.2 h409715c_0 conda-forge libcusolver 11.4.1.48 0 nvidia libcusparse 11.7.5.86 0 nvidia libdeflate 1.17 h0b41bf4_0 conda-forge libedit 3.1.20191231 he28a2e2_2 conda-forge libev 4.33 h516909a_1 conda-forge libexpat 2.5.0 hcb278e6_1 conda-forge libffi 3.4.2 h7f98852_5 conda-forge libgcc-devel_linux-64 13.2.0 ha9c7c90_104 conda-forge libgcc-ng 13.2.0 h807b86a_4 conda-forge libgd 2.3.3 h695aa2c_1 libgfortran-ng 13.1.0 h69a702a_0 conda-forge libgfortran5 13.1.0 h15d22d2_0 conda-forge libglib 2.78.1 hebfc3b9_0 conda-forge libgomp 13.2.0 h807b86a_4 conda-forge libhwloc 2.9.2 nocuda_h7313eea_1008 conda-forge libiconv 1.17 h166bdaf_0 conda-forge libjpeg-turbo 2.0.0 h9bf148f_0 pytorch liblapack 3.9.0 16_linux64_openblas conda-forge liblapacke 3.9.0 16_linux64_openblas conda-forge libllvm14 14.0.6 hcd5def8_4 conda-forge libmagma 2.7.2 h09b5827_2 conda-forge libmagma_sparse 2.7.2 h09b5827_2 conda-forge libnetcdf 4.9.2 nompi_h7e745eb_109 conda-forge libnghttp2 1.52.0 h61bc06f_0 conda-forge libnpp 11.8.0.86 0 nvidia libnsl 2.0.0 h7f98852_0 conda-forge libnvjpeg 11.9.0.86 0 nvidia libopenblas 0.3.21 pthreads_h78a6416_3 conda-forge libpng 1.6.39 h753d276_0 conda-forge libprotobuf 4.24.4 hf27288f_0 conda-forge librsvg 2.56.3 he3f83f7_1 conda-forge libsanitizer 13.2.0 h7e041cc_4 conda-forge libsodium 1.0.18 h36c2ea0_1 conda-forge libsqlite 3.42.0 h2797004_0 conda-forge libssh2 1.10.0 hf14f497_3 conda-forge libstdcxx-devel_linux-64 13.2.0 ha9c7c90_104 conda-forge libstdcxx-ng 13.2.0 h7e041cc_4 conda-forge libtiff 4.5.0 h6adf6a1_2 conda-forge libtool 2.4.7 h27087fc_0 conda-forge libtorch 2.1.0 cuda118_h7595d50_303 conda-forge libuuid 2.38.1 h0b41bf4_0 conda-forge libuv 1.46.0 hd590300_0 conda-forge libwebp 1.3.2 h11a3e52_0 libwebp-base 1.3.2 hd590300_1 conda-forge libxcb 1.15 h0b41bf4_0 conda-forge libxgboost 2.0.3 cuda118_hd3b444d_1 conda-forge libxml2 2.12.6 h232c23b_0 conda-forge libxslt 1.1.39 h76b75d6_0 conda-forge libzip 1.9.2 hc929e4a_1 conda-forge libzlib 1.2.13 h166bdaf_4 conda-forge libzopfli 1.0.3 h9c3ff4c_0 conda-forge lightgbm 4.3.0 py39h3d6467e_0 conda-forge lightning-utilities 0.10.1 pyhd8ed1ab_0 conda-forge llvm-openmp 16.0.6 h4dfa4b3_0 conda-forge llvmlite 0.42.0 py39h174d805_1 conda-forge logmuse 0.2.6 pyh8c360ce_0 conda-forge loguru 0.7.2 pypi_0 pypi lxml 4.9.1 py39hb9d737c_0 conda-forge lz4-c 1.9.4 hcb278e6_0 conda-forge lzo 2.10 h516909a_1000 conda-forge magma 2.7.2 h4aca40b_2 conda-forge markdown-it-py 3.0.0 pyhd8ed1ab_0 conda-forge markupsafe 2.1.2 py39h72bdee0_0 conda-forge matplotlib-base 3.7.1 py39he190548_0 conda-forge matplotlib-inline 0.1.6 pyhd8ed1ab_0 conda-forge mdtraj 1.9.7 py39h62423bb_4 conda-forge mdurl 0.1.2 pyhd8ed1ab_0 conda-forge melloddy-tuner 3.0.3a0 dev_0 mistune 2.0.5 pyhd8ed1ab_0 conda-forge mkl 2023.2.0 h84fe81f_50495 conda-forge ml-workflow 0.2.0 dev_0 ml_dtypes 0.4.0 py39hddac248_0 conda-forge mmgbsa-tool 0.1.0 dev_0 mmpbsa-py 16.0 pypi_0 pypi molgrid 0.5.2 cuda118py39h7277d68_3 conda-forge mordred 1.2.0 py_1 conda-forge motor 2.5.1 pyhd8ed1ab_1 conda-forge mpc 1.3.1 hfe3b2da_0 conda-forge mpfr 4.2.1 h9458935_0 conda-forge mpi 1.0 mpich conda-forge mpi4py 3.1.5 py39h6cbbaa3_0 conda-forge mpich 4.1.2 h846660c_102 conda-forge mpiplus v0.0.2 pyhd8ed1ab_0 conda-forge mpmath 1.3.0 pyhd8ed1ab_0 conda-forge multidict 6.0.5 py39hd1e30aa_0 conda-forge munkres 1.1.4 pyh9f0ad1d_0 conda-forge mypy_extensions 1.0.0 pyha770c72_0 conda-forge nbclassic 1.0.0 pyhb4ecaf3_1 conda-forge nbclient 0.8.0 pyhd8ed1ab_0 conda-forge nbconvert 7.4.0 pyhd8ed1ab_0 conda-forge nbconvert-core 7.4.0 pyhd8ed1ab_0 conda-forge nbconvert-pandoc 7.4.0 pyhd8ed1ab_0 conda-forge nbformat 5.9.0 pyhd8ed1ab_0 conda-forge nccl 2.19.4.1 h6103f9b_0 conda-forge ncurses 6.3 h27087fc_1 conda-forge nest-asyncio 1.5.6 pyhd8ed1ab_0 conda-forge netcdf-fortran 4.6.1 nompi_hec59055_101 conda-forge netcdf4 1.6.4 nompi_py39h4218a78_101 conda-forge nettle 3.6 he412f7d_0 conda-forge networkx 3.2.1 pyhd8ed1ab_0 conda-forge nomkl 3.0 0 nose 1.3.7 py_1006 conda-forge notebook 6.5.4 pyha770c72_0 conda-forge notebook-shim 0.2.3 pyhd8ed1ab_0 conda-forge numba 0.59.0 py39h615d6bd_1 conda-forge numexpr 2.8.4 py39h5ef5dce_100 conda-forge numpy 1.24.3 py39h6183b62_0 conda-forge numpydoc 1.7.0 pyhd8ed1ab_0 conda-forge oauth2client 4.1.3 py_0 conda-forge ocl-icd 2.3.1 h7f98852_0 conda-forge ocl-icd-system 1.0.0 1 conda-forge openbabel 3.1.1 py39h2d01fe1_9 conda-forge openblas 0.3.21 pthreads_h320a7e8_3 conda-forge openeye-toolkits 2023.1.0 py39_0 openeye openff-amber-ff-ports 0.0.3 pyh6c4a22f_0 conda-forge openff-forcefields 2023.05.1 pyh1a96a4e_1 conda-forge openff-interchange 0.3.18 pyhd8ed1ab_0 conda-forge openff-interchange-base 0.3.18 pyhd8ed1ab_0 conda-forge openff-models 0.1.2 pyhca7485f_0 conda-forge openff-toolkit 0.14.4 pyhd8ed1ab_1 conda-forge openff-toolkit-base 0.14.4 pyhd8ed1ab_1 conda-forge openff-units 0.2.2 pyhca7485f_0 conda-forge openff-utilities 0.1.8 pyh1a96a4e_0 conda-forge openh264 2.1.1 h780b84a_0 conda-forge openjpeg 2.5.0 hfec8fc6_2 conda-forge openmm 8.0.0 py39h7d85326_1 conda-forge openmmforcefields 0.11.2 pyhd8ed1ab_1 conda-forge openmmtools 0.23.1 pyhd8ed1ab_0 conda-forge openmoltools 0.8.8 pyhd8ed1ab_1 conda-forge openpyxl 3.1.2 py39hd1e30aa_1 conda-forge openssl 3.3.1 h4ab18f5_0 conda-forge opt-einsum 3.3.0 hd8ed1ab_2 conda-forge opt_einsum 3.3.0 pyhc1e730c_2 conda-forge orjson 3.10.1 py39h9fdd4d6_0 conda-forge overrides 7.3.1 pyhd8ed1ab_0 conda-forge packaging 23.1 pyhd8ed1ab_0 conda-forge packmol 20.010 h86c2bf4_0 conda-forge packmol-memgen 2023.2.24 pypi_0 pypi pandas 2.1.4 py39hddac248_0 conda-forge pandoc 2.19.2 h32600fe_2 conda-forge pandocfilters 1.5.0 pyhd8ed1ab_0 conda-forge panedr 0.7.1 pyhd8ed1ab_0 conda-forge pango 1.50.14 heaa33ce_1 conda-forge paramiko 3.4.0 pyhd8ed1ab_0 conda-forge parmap 1.7.0 pyhd8ed1ab_0 conda-forge parmed 4.1.0 py39h227be39_0 conda-forge parsedatetime 2.4 py_1 conda-forge parso 0.8.3 pyhd8ed1ab_0 conda-forge pathspec 0.11.1 pyhd8ed1ab_0 conda-forge pathtools 0.1.2 py_1 conda-forge patsy 0.5.6 pyhd8ed1ab_0 conda-forge pbr 5.11.1 pyhd8ed1ab_0 conda-forge pcre2 10.40 hc3806b6_0 conda-forge pdb4amber 22.0 pypi_0 pypi pdbfixer 1.9 pyh1a96a4e_0 conda-forge peppy 0.40.1 pyhd8ed1ab_0 conda-forge perl 5.32.1 2_h7f98852_perl5 conda-forge pexpect 4.8.0 pyh1a96a4e_2 conda-forge pickleshare 0.7.5 py_1003 conda-forge pillow 10.3.0 py39h5eee18b_0 pint 0.21 pyhd8ed1ab_0 conda-forge pip 23.1.2 pyhd8ed1ab_0 conda-forge pixman 0.43.2 h59595ed_0 conda-forge pkasolver 0.3+0.g3ce0304.dirty dev_0 pkgutil-resolve-name 1.3.10 pyhd8ed1ab_0 conda-forge plac 1.4.3 pyhd8ed1ab_0 conda-forge platformdirs 3.5.1 pyhd8ed1ab_0 conda-forge plotly 5.21.0 pyhd8ed1ab_0 conda-forge pluggy 1.0.0 pyhd8ed1ab_5 conda-forge ply 3.11 py_1 conda-forge pooch 1.7.0 pyha770c72_3 conda-forge prettytable 3.10.0 pyhd8ed1ab_0 conda-forge prody 2.4.0 py39h227be39_0 conda-forge prometheus_client 0.17.0 pyhd8ed1ab_0 conda-forge prompt-toolkit 3.0.38 pyha770c72_0 conda-forge prompt_toolkit 3.0.38 hd8ed1ab_0 conda-forge proto-plus 1.23.0 pyhd8ed1ab_0 conda-forge protobuf 4.24.4 py39h60f6b12_0 conda-forge psutil 5.9.5 py39h72bdee0_0 conda-forge pthread-stubs 0.4 h36c2ea0_1001 conda-forge ptyprocess 0.7.0 pyhd3deb0d_0 conda-forge pulp 2.7.0 py39hf3d152e_1 conda-forge pure_eval 0.2.2 pyhd8ed1ab_0 conda-forge py 1.11.0 pypi_0 pypi py-cpuinfo 9.0.0 pyhd8ed1ab_0 conda-forge py-xgboost 2.0.3 cuda118_pyhedeaf28_1 conda-forge pyarrow 15.0.0 pypi_0 pypi pyasn1 0.5.1 pyhd8ed1ab_0 conda-forge pyasn1-modules 0.3.0 pyhd8ed1ab_0 conda-forge pycairo 1.23.0 py39h23c5bb2_0 conda-forge pycparser 2.21 pyhd8ed1ab_0 conda-forge pycsa 0.2.1 dev_0 pydantic 2.6.4 pyhd8ed1ab_0 conda-forge pydantic-core 2.16.3 py39h9fdd4d6_0 conda-forge pydantic-settings 2.2.1 pyhd8ed1ab_0 conda-forge pydoe3 1.0.2 pyhd8ed1ab_0 conda-forge pyedr 0.7.1 pyhd8ed1ab_0 conda-forge pyg 2.4.0 py39_torch_2.1.0_cu118 pyg pygments 2.15.1 pyhd8ed1ab_0 conda-forge pygraphviz 1.11 py39h7ef11f9_2 conda-forge pyicu 2.12 py39h8c063f3_0 conda-forge pylance 0.9.7 pypi_0 pypi pymbar 4.0.3 hf3d152e_1 conda-forge pymbar-core 4.0.3 py39h44dd56e_1 conda-forge pymongo 3.13.0 py39h5a03fae_0 conda-forge pymsmt 22.0 pypi_0 pypi pynacl 1.5.0 py39hd1e30aa_3 conda-forge pynndescent 0.5.11 pyhca7485f_0 conda-forge pyopenssl 24.0.0 pyhd8ed1ab_0 conda-forge pyparsing 3.0.9 pyhd8ed1ab_0 conda-forge pypdb 2.3 pyhd8ed1ab_0 conda-forge pyquaternion 0.9.9 pyhd8ed1ab_1 conda-forge pyrosetta 2024.13+release.59f5585 py39_0 https://conda.rosettacommons.org pyrsistent 0.19.3 py39h72bdee0_0 conda-forge pysftp 0.2.9 py_1 conda-forge pysocks 1.7.1 pyha2e5f31_6 conda-forge pytables 3.8.0 py39hb8e3aad_2 conda-forge pytest 7.3.1 pyhd8ed1ab_0 conda-forge python 3.9.16 h2782a2a_0_cpython conda-forge python-constraint 1.4.0 py_0 conda-forge python-dateutil 2.8.2 pyhd8ed1ab_0 conda-forge python-dotenv 1.0.1 pyhd8ed1ab_0 conda-forge python-fastjsonschema 2.17.1 pyhd8ed1ab_0 conda-forge python-graphviz 0.20.3 pyh717bed2_0 conda-forge python-irodsclient 2.0.0 pyhd8ed1ab_0 conda-forge python-json-logger 2.0.7 pyhd8ed1ab_0 conda-forge python-slugify 8.0.2 pyhd8ed1ab_0 conda-forge python-tzdata 2023.3 pyhd8ed1ab_0 conda-forge python_abi 3.9 3_cp39 conda-forge pytimeparse 1.1.8 py_0 conda-forge pytorch 2.1.0 cuda118_py39hcb596ef_303 conda-forge pytorch-cuda 11.8 h7e8668a_5 pytorch pytorch-mutex 1.0 cuda pytorch pytorch_geometric 2.4.0 pyhd8ed1ab_0 conda-forge pytraj 2.0.6 pypi_0 pypi pytz 2023.3 pyhd8ed1ab_0 conda-forge pyu2f 0.1.5 pyhd8ed1ab_0 conda-forge pyvis 0.3.1 pyhd8ed1ab_0 conda-forge pywavelets 1.4.1 py39h44dd56e_1 conda-forge pyyaml 5.4.1 py39hb9d737c_4 conda-forge pyzmq 25.1.0 py39hb257651_0 conda-forge qtconsole-base 5.5.1 pyha770c72_0 conda-forge qtpy 2.4.1 pyhd8ed1ab_0 conda-forge ratelimiter 1.2.0.post0 pypi_0 pypi rdflib 7.0.0 pyhd8ed1ab_0 conda-forge rdkit 2023.9.5 pypi_0 pypi readline 8.2 h8228510_1 conda-forge reportlab 3.6.13 py39h12ba270_0 conda-forge requests 2.31.0 pyhd8ed1ab_0 conda-forge requests_cache 0.4.13 py_0 conda-forge reretry 0.11.8 pyhd8ed1ab_0 conda-forge retry 0.9.2 pypi_0 pypi 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 rocm-smi 5.6.1 h59595ed_0 conda-forge rsa 4.9 pyhd8ed1ab_0 conda-forge s2n 1.3.46 h06160fa_0 conda-forge s3transfer 0.10.1 pyhd8ed1ab_0 conda-forge sander 22.0 pypi_0 pypi scikit-image 0.22.0 py39hddac248_2 conda-forge scikit-learn 1.4.0 py39ha22ef79_0 conda-forge scipy 1.10.1 py39h6183b62_3 conda-forge scripttest 1.3 pypi_0 pypi seaborn 0.13.2 hd8ed1ab_0 conda-forge seaborn-base 0.13.2 pyhd8ed1ab_0 conda-forge semver 3.0.2 pypi_0 pypi send2trash 1.8.2 pyh41d4057_0 conda-forge sentry-sdk 1.42.0 pyhd8ed1ab_0 conda-forge setproctitle 1.3.3 py39hd1e30aa_0 conda-forge setuptools 67.7.2 pyhd8ed1ab_0 conda-forge six 1.16.0 pyh6c4a22f_0 conda-forge slacker 0.14.0 py_0 conda-forge sleef 3.5.1 h9b69904_2 conda-forge smart_open 7.0.4 pyhd8ed1ab_0 conda-forge smirnoff99frosst 1.1.0 pyh44b312d_0 conda-forge smmap 5.0.0 pyhd8ed1ab_0 conda-forge smt 2.5.1 py39hddac248_0 conda-forge snakemake 7.32.4 hdfd78af_1 bioconda snakemake-minimal 7.32.4 pyhdfd78af_1 bioconda snappy 1.1.10 h9fff704_0 conda-forge sniffio 1.3.0 pyhd8ed1ab_0 conda-forge snowballstemmer 2.2.0 pyhd8ed1ab_0 conda-forge soupsieve 2.3.2.post1 pyhd8ed1ab_0 conda-forge sphinx 7.2.6 pyhd8ed1ab_0 conda-forge sphinxcontrib-applehelp 1.0.8 pyhd8ed1ab_0 conda-forge sphinxcontrib-devhelp 1.0.6 pyhd8ed1ab_0 conda-forge sphinxcontrib-htmlhelp 2.0.5 pyhd8ed1ab_0 conda-forge sphinxcontrib-jsmath 1.0.1 pyhd8ed1ab_0 conda-forge sphinxcontrib-qthelp 1.0.7 pyhd8ed1ab_0 conda-forge sphinxcontrib-serializinghtml 1.1.10 pyhd8ed1ab_0 conda-forge spm 0.1 dev_0 sqlalchemy 2.0.15 py39hd1e30aa_0 conda-forge stack_data 0.6.2 pyhd8ed1ab_0 conda-forge stamp 0.1 dev_0 standigm-chemlib 1.1.24 dev_0 starlette 0.37.2 pyhd8ed1ab_0 conda-forge statsmodels 0.14.1 py39h44dd56e_0 conda-forge stone 3.3.3 pyhd8ed1ab_0 conda-forge stopit 1.1.2 py_0 conda-forge submitit 1.5.1 pyhd8ed1ab_0 conda-forge suds-community 1.1.2 pyhd8ed1ab_0 conda-forge svgwrite 1.4.3 pypi_0 pypi sympy 1.12 pypyh9d50eac_103 conda-forge sysroot_linux-64 2.12 he073ed8_16 conda-forge tabulate 0.9.0 pyhd8ed1ab_1 conda-forge tbb 2021.10.0 h00ab1b0_0 conda-forge tenacity 8.2.3 pyhd8ed1ab_0 conda-forge terminado 0.17.1 pyh41d4057_0 conda-forge text-unidecode 1.3 pyhd8ed1ab_1 conda-forge threadpoolctl 3.2.0 pyha21a80b_0 conda-forge throttler 1.2.2 pyhd8ed1ab_0 conda-forge tifffile 2023.8.12 pyhd8ed1ab_0 conda-forge tinycss2 1.2.1 pyhd8ed1ab_0 conda-forge tinydb 4.7.1 pyhd8ed1ab_0 conda-forge tk 8.6.12 h27826a3_0 conda-forge toml 0.10.2 pypi_0 pypi tomli 2.0.1 pyhd8ed1ab_0 conda-forge toposort 1.10 pyhd8ed1ab_0 conda-forge torchaudio 2.1.0 py39_cu118 pytorch torchmetrics 1.2.1 pyhd8ed1ab_0 conda-forge torchvision 0.16.0 py39_cu118 pytorch tornado 6.3.2 py39hd1e30aa_0 conda-forge tqdm 4.65.0 pyhd8ed1ab_1 conda-forge traitlets 5.9.0 pyhd8ed1ab_0 conda-forge tree 0.2.4 pypi_0 pypi trimesh 4.1.3 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 2023c h71feb2d_0 conda-forge ubiquerg 0.7.0 pyhd8ed1ab_0 conda-forge unicodedata2 15.0.0 py39hb9d737c_0 conda-forge uritemplate 4.1.1 pyhd8ed1ab_0 conda-forge urllib3 1.26.18 pyhd8ed1ab_0 conda-forge uvicorn 0.29.0 py39hf3d152e_0 conda-forge validators 0.20.0 pyhd8ed1ab_0 conda-forge veracitools 0.1.3 py_0 conda-forge wandb 0.16.3 pyhd8ed1ab_0 conda-forge wcwidth 0.2.6 pyhd8ed1ab_0 conda-forge webencodings 0.5.1 py_1 conda-forge websocket-client 1.5.2 pyhd8ed1ab_0 conda-forge werkzeug 3.0.1 pyhd8ed1ab_0 conda-forge wheel 0.40.0 pyhd8ed1ab_0 conda-forge widgetsnbextension 3.6.4 pyhd8ed1ab_0 conda-forge wrapt 1.16.0 py39hd1e30aa_0 conda-forge xgboost 2.0.3 cuda118_pyh5ebfdf7_1 conda-forge xlrd 2.0.1 pyhd8ed1ab_3 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.7 h8ee46fc_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.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 yank 0.25.2 pyhd8ed1ab_2 conda-forge yarl 1.9.4 py39hd1e30aa_0 conda-forge yte 1.5.4 pyha770c72_0 conda-forge zeromq 4.3.4 h9c3ff4c_1 conda-forge zfp 1.0.1 h59595ed_0 conda-forge zipp 3.15.0 pyhd8ed1ab_0 conda-forge zlib 1.2.13 h166bdaf_4 conda-forge zlib-ng 2.0.7 h0b41bf4_0 conda-forge zope.event 5.0 pyhd8ed1ab_0 conda-forge zope.interface 6.3 py39hd1e30aa_0 conda-forge zstd 1.5.5 hfc55251_0 conda-forge
Thanks for the writeup. This is helping me understand the landscape of OE licenses better, since in our license file we just have a single key for Omega (that is, we don't have separate keys for, for example, omega-toolkit vs omega-c++) , but it looks like the single license key covers multiple sub-features, since it contains the line #FEATURES: gas-phase;toolkit;python;java;clr.
I'll double check this soon, but I expect the issue is something like "oechem is correctly licensed so the entire OpenEyeToolkitWrapper is active, but then a certain feature in Omega isn't licensed so this error comes up".
In the longer run we could try to implement more fine-grained license checks, but at the core of the issue is that your OE license doesn't cover the core use of omega/quacpac needed in OpenFF system creation. This isn't a big deal - The OpenFF Toolkit can use RDKit+AmberTools instead (and I see those are installed in your environment).
So, I think a straightforward workaround to get your use case working would be to replace:
ligand_system = force_field.create_openmm_system(off_topology)
with
from openff.toolkit.utils import toolkit_registry_manager, AmberToolsToolkitWrapper, RDKitToolkitWrapper, ToolkitRegistry
with toolkit_registry_manager(ToolkitRegistry([AmberToolsToolkitWrapper(), RDKitToolkitWrapper()])):
ligand_system = force_field.create_openmm_system(off_topology)
Could you let me know if that works?
Oh, and maybe I missed this - Did your original script run successfully and just output the license error to the console, or did it crash before completing? Most of the time, when the OpenFF Toolkit calls to outside tools, it will attempt to use OpenEye first (if it's installed and might be licensed), and if anything goes wrong there it will try using RDKit+AmberTools instead. So I'm realizing that your script might have been completing successfully all along (by falling back to the RDKit+AmberTools backend), but just printing out a concerning license error in the process.
I'm pretty sure the problem is that OpenEyeToolkitWrapper only uses itself to generate conformers, implying that it can't fall back to RDKit for conformer generation as you'd expect Molecule.generate_conformers to try. I think Quacpac charges with RDKit conformers is a valid use case (and probably one users would expect if they have a Quacpac license).
I haven't reproduced this, but this should be testable via mocking oeomega.OEOmegaIsLicensed
Good point @mattwthompson, I thought that Quacpac ELF10 calls internally used omega (in a way that we couldn't intercept) but it looks like I was wrong. I don't love the pattern of having ToolkitWrappers call each other (it adds complexity and reduces reproducibility) but given the value-add of Quacpac in charge assignment, I could live with a try/except here.
from openff.toolkit.utils import toolkit_registry_manager, AmberToolsToolkitWrapper, RDKitToolkitWrapper, ToolkitRegistry with toolkit_registry_manager(ToolkitRegistry([AmberToolsToolkitWrapper(), RDKitToolkitWrapper()])): ligand_system = force_field.create_openmm_system(off_topology)Could you let me know if that works?
Yes, it works. But, it would be nicer if I can use OEquacpac instead because it is much faster.
I think Quacpac charges with RDKit conformers is a valid use case (and probably one users would expect if they have a Quacpac license).
If this works, it would be our second best solution. The best solution for us would be using openeye's oeomega/flipper (binary) + OEquacpac. That is, the ideal fallback path would be OEomega toolkit --> OEomega binary (not currently implemented) --> RDkit.
FYI, there is a function call for checking the validity of OEomega toolkit.(https://docs.eyesopen.com/toolkits/python/omegatk/OEConfGenFunctions/OEOmegaIsLicensed.html)
I dug into this a little more and found some holes in how we handle users with some (but neither all nor none) OpenEye licenses. OpenEyeToolkitWrapper check at initialization if any licenses are found but doesn't check later. So in a case like we have here, the crash isn't observed until omega.OEOmega() is called. This makes it hard to programmatically work with each of the methods that might take different licenses or combinations of licenses.
This test "passes," but shouldn't (see comments):
import pytest
from openff.toolkit import Molecule
def test_am1bccelf10_no_omega(monkeypatch):
from openff.toolkit.utils import OpenEyeToolkitWrapper
from openeye import oeomega
monkeypatch.setattr(oeomega, "OEOmegaIsLicensed", lambda: False)
assert oeomega.OEOmegaIsLicensed() == False
wrapper = OpenEyeToolkitWrapper()
wrapper._check_licenses()
molecule = Molecule.from_smiles(10 * "C")
# works, but should not since Omega isn't licensed
molecule.generate_conformers(
n_conformers=200,
toolkit_registry=wrapper,
)
monkeypatch.setattr(oeomega, "OEOmega", lambda: print("Don't use Omega"))
# now this doesn't work, but I had to mock OEOmega directly to trigger
with pytest.raises(
AttributeError,
match="'NoneType' object has no attribute 'SetMaxConfs'",
):
molecule.generate_conformers(
n_conformers=200,
toolkit_registry=wrapper,
)