choderalab/yank

Issue in Yank's calls to OpenMMTools MultiStateReporter

sukritsingh opened this issue · 1 comments

Noting down YANK issues as I've been encountering them recently with the OpenMMTools API shift:
I'm encountering another example where setup runs fine but during the propagation/mixing steps the following error pops up:

Traceback (most recent call last):
  File "/home/aks998/miniconda3/bin/yank", line 10, in <module>
    sys.exit(main())
  File "/home/aks998/miniconda3/lib/python3.9/site-packages/yank/cli.py", line 73, in main
    dispatched = getattr(commands, command).dispatch(command_args)
  File "/home/aks998/miniconda3/lib/python3.9/site-packages/yank/commands/script.py", line 155, in dispatch
    yaml_builder.run_experiments(write_status=write_status)
  File "/home/aks998/miniconda3/lib/python3.9/site-packages/yank/experiment.py", line 753, in run_experiments
    completed = mpiplus.distribute(self._run_experiment,
  File "/home/aks998/miniconda3/lib/python3.9/site-packages/mpiplus/mpiplus.py", line 530, in distribute
    results = processing_unit.exec_tasks(task, node_distributed_args, propagate_exceptions_to,
  File "/home/aks998/miniconda3/lib/python3.9/site-packages/mpiplus/mpiplus.py", line 376, in exec_tasks
    raise error
  File "/home/aks998/miniconda3/lib/python3.9/site-packages/mpiplus/mpiplus.py", line 357, in exec_tasks
    results.append(task(distributed_arg, *other_args, **kwargs))
  File "/home/aks998/miniconda3/lib/python3.9/site-packages/yank/experiment.py", line 3251, in _run_experiment
    built_experiment.run(n_iterations=switch_experiment_interval)
  File "/home/aks998/miniconda3/lib/python3.9/site-packages/yank/experiment.py", line 406, in run
    status = AlchemicalPhase.read_status(phase)
  File "/home/aks998/miniconda3/lib/python3.9/site-packages/yank/yank.py", line 834, in read_status
    sampler_class = cls._read_sampler_class(storage)
  File "/home/aks998/miniconda3/lib/python3.9/site-packages/yank/yank.py", line 1250, in _read_sampler_class
    sampler_full_name = reporter.read_dict('metadata/sampler_full_name')
  File "/home/aks998/miniconda3/lib/python3.9/site-packages/openmmtools/multistate/multistatereporter.py", line 1036, in read_dict
    path, dict_key = path.rsplit(sep='/', maxsplit=1)
ValueError: Group 1/1 Node 1/1: not enough values to unpack (expected 2, got 1)

It appears to have an outdated call to openmmtools.multistate.multistatereporter?

Here's a tarball of the files used to generate this error:
yank-test.tar.gz

I am new to yank tool. I had the same problem and I found a way out of it.
I installed an older version of YANK from this website, instead of the last updated one:
https://zenodo.org/record/1304282
(unpacked the zip file, cd to location, python setup.py install)
Then, I solved some problems (that were already solved in newer versions of YANK) manually:
1- #1265
2- #1161
Finally, I installed the tools' versions described here #1199 (or the closest newer possibility)