Opened 3 years ago
#7762 assigned enhancement
Pin versions of all ColabFold dependencies so AlphaFold prediction does not break on updates
| Reported by: | Tom Goddard | Owned by: | Tom Goddard |
|---|---|---|---|
| Priority: | moderate | Milestone: | |
| Component: | Structure Prediction | Version: | |
| Keywords: | Cc: | ||
| Blocked By: | Blocking: | ||
| Notify when closed: | Platform: | all | |
| Project: | ChimeraX |
Description
Currently ColabFold does not specify exact versions for most of its dependencies, but allows using newer patch releases. Unfortunately updates to the jax dependency (ticket #7759) have broken ColabFold because it removed deprecated functions that were still being used by dm-haiku. There are about a dozen dependencies so breaking changes can easily happen. It would be better to pin all versions of ColabFold dependencies so it works reliably. They can be updated when time for testing permits.
The dependencies are mostly listed in pyproject.toml in the ColabFold git repository. Probably the approach would be to install ColabFold with no dependencies and then separately install all the dependencies with exact versions in the ChimeraX prediction script (colabfold_predict.py in the alphafold bundle). The jax dependency is already installed in the ChimeraX prediction script. It tries to install from a Google repository to get CUDA support but it appears that it is not actually installing from there because jax 0.3.21 is already installed probably by Google Colab itself and already meets the version requirement. Pinning the jax version may require uninstalling the current jax and installing a new specific version. But that requires that jax version with cuda be available in a repository. PyPi does not have the cuda versions and Google's repository has deleted ones in the past so it is not clear where we can reliably get a cuda jax version.