UCL-RITS / rcps-buildscripts

Scripts to automate package builds on RC Platforms
MIT License
39 stars 27 forks source link

Install Request: localcolabfold (GPU) #484

Open heatherkellyucl opened 2 years ago

heatherkellyucl commented 2 years ago

IN:05282509 For Young GPU pilot users. Contains fork of AlphaFold2 without the local databases.

1.3.0 is current release.

https://github.com/YoshitakaMo/localcolabfold

License: MIT

Requires: CUDA 11.1 or later, GNU compiler 4.9 or later.

It runs https://raw.githubusercontent.com/YoshitakaMo/localcolabfold/main/install_colabbatch_linux.sh which uses conda - we might need to unconda-ify this because not suitable for central install, though it also says "is also configured for system-wide use on a shared server" and that they use it with environment modules.

(Will need investigating if it can be installed centrally).

owainkenwayucl commented 1 year ago

I keep looking at that script and laughing in horror.

owainkenwayucl commented 1 year ago

My notes looking at the script:

conda install -c conda-forge python=3.7 cudnn==8.2.1.32 cudatoolkit==11.1.1 openmm==7.5.1 pdbfixer -y

Nvidia parts on pypi are:

nvidia-cublas-cu11      
nvidia-cuda-nvrtc-cu11   
nvidia-cuda-runtime-cu11 
nvidia-cudnn-cu11        

OpenMMP/PDBfixer are not on pypi, indeed the openmm package on pypi is ... something else.

https://github.com/openmm/openmm https://github.com/openmm/pdbfixer

conda install -c conda-forge -c bioconda kalign3=3.2.2 hhsuite=3.3.0 -y

Kalign3 appears to be: https://github.com/TimoLassmann/kalign

hhsuite appears to be: https://github.com/soedinglab/hh-suite

colabfold-conda/bin/python3.7 -m pip install "colabfold[alphafold] @ git+https://github.com/sokrypton/ColabFold"
colabfold-conda/bin/python3.7 -m pip install https://storage.googleapis.com/jax-releases/cuda11/jaxlib-0.3.10+cuda11.cudnn82-cp37-none-manylinux2014_x86_64.whl
colabfold-conda/bin/python3.7 -m pip install jax==0.3.13

These are just pip installs, vomit-inducing locations aside.

So probably a sensible strategy for whoever does this is to build wheels for the things not on Pypi and then do the full install.

owainkenwayucl commented 1 year ago

pdbfixer looks easy to turn into a wheel, openmm not so much - it explicitly does not support that.

owainkenwayucl commented 1 year ago

The other conda things are explicitly not suitable for pip. So we probably want to build them. Some of the requirements in there explicitly require Cuda 11 which we don't seem to have installed separate from the HPC SDK.