AlphaFold 3.0.2

AlphaFold3 model parameters must be requested and downloaded by the user themselves.

Webpage

https://github.com/google-deepmind/alphafold3

Version

3.0.2

Environment

  • NVIDIA Driver 595.58.03

Installation

AlphaFold

$ curl -LsSf https://astral.sh/uv/install.sh | sh
$ export UV_PYTHON_INSTALL_DIR=/apl/alphafold/3.0.2/python-uv
$ uv python install 3.12
$ export UV_PYTHON=/apl/alphafold/3.0.2/python-uv/cpython-3.12.13-linux-x86_64-gnu/bin/python
$ export UV_PROJECT_ENVIRONMENT=/apl/alphafold/3.0.2/venv
$ uv venv $UV_PROJECT_ENVIRONMENT

$ cd /apl/alphafold/3.0.2
$ git clone https://github.com/google-deepmind/alphafold3.git -b v3.0.2
$ cd /apl/alphafold/3.0.2/alphafold3/
$ module load gcc-toolset/14    # gcc 9.4 or later is required
$ uv sync --frozen --all-groups --no-editable

$ . /apl/alphafold/3.0.2/venv/bin/activate
$ build_data

hmmer-3.4 (patched version)

$ cd /apl/alphafold/3.0.2
$ wget http://eddylab.org/software/hmmer/hmmer-3.4.tar.gz --directory-prefix hmmer_build
$ cd hmmer_build
$ echo "ca70d94fd0cf271bd7063423aabb116d42de533117343a9b27a65c17ff06fbf3 hmmer-3.4.tar.gz" | sha256sum --check
hmmer-3.4.tar.gz: OK
$ echo $?
0
$ tar xf hmmer-3.4.tar.gz && rm -f hmmer-3.4.tar.gz
$ patch -p0 < ../alphafold3/docker/jackhmmer_seq_limit.patch
patching file hmmer-3.4/src/jackhmmer.c
$ cd hmmer-3.4
$ ./configure --prefix /apl/alphafold/3.0.2/hmmer
$ make -j16
$ make install
$ cd easel/
$ make install
$ rm -rf /apl/alphafold/3.0.2/hmmer_build

Notes

  • Notes for 3.0.0 installation might be helpful.
  • The databases for 3.0.0 are also used for this version.
  • Although uv is employed for installation, uv is not necessary when you use alphafold. You need to source venv/bin/activate and add hmmer to your PATH.
    • module (alphafold/3.0.2) is available in RCCS. Environment variables such as XLA_FLAGS are also set in that module.
  • Python 3.14 doesn't work. We use 3.12 as specified in the official Dockerfile.
    • We have not examined the details of the error for Python 3.14.
  • There may be some changes in output filename from existing versions.
    • For input with {"name": "2PV7", ...}, existing versions create (output_dir)/2pv7/2pv7_data.json, while this new version creates (output_dir)/2PV7/2PV7_data.json.