choderalab/yank

NetCDF upstream changes breaking Yank (and can't update OpenMMtools)

sukritsingh opened this issue · 0 comments

Just wanted to report an issue + solution @ijpulidos helped me fix - noting it here for any future updates.

Problem: Basically anytime I run something in YANK (after installing using the basic instructions, I was getting the following Error (this is the end of the stack trace, happy to post the full here):
RuntimeError: NetCDF: Filter error: bad id or parameters or duplicate filter

Solution: Iván pointed out that this is the result of NetCDF making breaking changes upstream that would need to be accounted for in the future. For now a workaround fix is, after installation, to run:
mamba install -c conda-forge netcdf4=1.5.8 hdf5=1.12

From a long-term view, I believe this NetCDF issue was fixed in a later release of Openmmtools - however, Yank does not work with Openmmtools version 0.21.5 or higher, returning the following stack trace:

Traceback (most recent call last):
  File "/home/sukrit/anaconda3/envs/yank/bin/yank", line 6, in <module>
    from yank.cli import main
  File "/home/sukrit/anaconda3/envs/yank/lib/python3.9/site-packages/yank/__init__.py", line 12, in <module>
    from . import utils
  File "/home/sukrit/anaconda3/envs/yank/lib/python3.9/site-packages/yank/utils.py", line 43, in <module>
    import openmmtools as mmtools
  File "/home/sukrit/anaconda3/envs/yank/lib/python3.9/site-packages/openmmtools/__init__.py", line 8, in <module>
    from openmmtools import testsystems, integrators, alchemy, mcmc, states, cache, utils, constants, forces, forcefactories, storage, multistate
  File "/home/sukrit/anaconda3/envs/yank/lib/python3.9/site-packages/openmmtools/multistate/__init__.py", line 66, in <module>
    from openmmtools.multistate.replicaexchange import ReplicaExchangeSampler, ReplicaExchangeAnalyzer
  File "/home/sukrit/anaconda3/envs/yank/lib/python3.9/site-packages/openmmtools/multistate/replicaexchange.py", line 38, in <module>
    from numba import njit
  File "/home/sukrit/anaconda3/envs/yank/lib/python3.9/site-packages/numba/__init__.py", line 43, in <module>
    from numba.np.ufunc import (vectorize, guvectorize, threading_layer,
  File "/home/sukrit/anaconda3/envs/yank/lib/python3.9/site-packages/numba/np/ufunc/__init__.py", line 3, in <module>
    from numba.np.ufunc.decorators import Vectorize, GUVectorize, vectorize, guvectorize
  File "/home/sukrit/anaconda3/envs/yank/lib/python3.9/site-packages/numba/np/ufunc/decorators.py", line 3, in <module>
    from numba.np.ufunc import _internal
SystemError: initialization of _internal failed without raising an exception

This is all probably just some dependency-related stuff, but just wanted to note it here after the helpful conversation. Thanks!