From 22f4c8e3278274afe6b897cc7e3aab3c3d037ed0 Mon Sep 17 00:00:00 2001 From: jscgh Date: Mon, 11 Nov 2024 17:08:00 +1100 Subject: [PATCH] Added files for creating apptainer/singularity image of HelixFold3 --- .../helixfold3/environment.yaml | 183 ++++++++++++++++++ .../protein_folding/helixfold3/helixfold3.def | 37 ++++ 2 files changed, 220 insertions(+) create mode 100644 apps/protein_folding/helixfold3/environment.yaml create mode 100644 apps/protein_folding/helixfold3/helixfold3.def diff --git a/apps/protein_folding/helixfold3/environment.yaml b/apps/protein_folding/helixfold3/environment.yaml new file mode 100644 index 0000000..13ec8f0 --- /dev/null +++ b/apps/protein_folding/helixfold3/environment.yaml @@ -0,0 +1,183 @@ +name: helixfold +channels: + - nvidia + - bioconda + - conda-forge +dependencies: + - _libgcc_mutex=0.1=conda_forge + - _openmp_mutex=4.5=2_gnu + - aria2=1.23.0=0 + - binutils=2.43=h4852527_2 + - binutils_impl_linux-64=2.43=h4bf12b8_2 + - binutils_linux-64=2.43=h4852527_2 + - bzip2=1.0.8=h4bc722e_7 + - c-ares=1.11.0=h470a237_1 + - c-compiler=1.8.0=h2b85faf_1 + - ca-certificates=2024.8.30=hbcca054_0 + - cairo=1.18.0=hebfffa5_3 + - cuda-cccl=12.0.90=0 + - cuda-command-line-tools=12.0.0=0 + - cuda-compiler=12.0.0=h6459364_1 + - cuda-cudart=12.0.107=0 + - cuda-cudart-dev=12.0.107=0 + - cuda-cuobjdump=12.0.76=0 + - cuda-cupti=12.4.127=0 + - cuda-cuxxfilt=12.0.76=0 + - cuda-driver-dev=12.0.107=0 + - cuda-gdb=12.4.127=0 + - cuda-libraries=12.0.0=ha770c72_1 + - cuda-libraries-dev=12.0.0=ha770c72_1 + - cuda-nsight=12.0.78=0 + - cuda-nvcc=12.0.76=0 + - cuda-nvdisasm=12.4.127=0 + - cuda-nvml-dev=12.0.76=0 + - cuda-nvprof=12.4.127=0 + - cuda-nvprune=12.0.76=0 + - cuda-nvrtc=12.0.76=0 + - cuda-nvrtc-dev=12.0.76=0 + - cuda-nvtx=12.4.127=0 + - cuda-nvvp=12.0.90=0 + - cuda-opencl=12.0.76=0 + - cuda-opencl-dev=12.0.76=0 + - cuda-profiler-api=12.0.76=0 + - cuda-sanitizer-api=12.4.127=0 + - cuda-toolkit=12.0.0=ha804496_1 + - cuda-tools=12.0.0=ha770c72_0 + - cuda-visual-tools=12.0.0=ha770c72_0 + - cudatoolkit=11.8.0=h4ba93d1_13 + - cudnn=8.4.0.27=hed8a83a_1 + - cxx-compiler=1.8.0=h1a2810e_1 + - font-ttf-dejavu-sans-mono=2.37=hab24e00_0 + - font-ttf-inconsolata=3.000=h77eed37_0 + - font-ttf-source-code-pro=2.038=h77eed37_0 + - font-ttf-ubuntu=0.83=h77eed37_3 + - fontconfig=2.15.0=h7e30c49_1 + - fonts-conda-ecosystem=1=0 + - fonts-conda-forge=1=0 + - freetype=2.12.1=h267a509_2 + - gcc=13.3.0=h9576a4e_1 + - gcc_impl_linux-64=13.3.0=hfea6d02_1 + - gcc_linux-64=13.3.0=hc28eda2_5 + - gds-tools=1.5.0.59=0 + - gxx=13.3.0=h9576a4e_1 + - gxx_impl_linux-64=13.3.0=hdbfa832_1 + - gxx_linux-64=13.3.0=h6834431_5 + - hhsuite=3.3.0=py39pl5321h0dd7abe_13 + - hmmer=3.3.2=hdbdd923_4 + - icu=75.1=he02047a_0 + - kalign2=2.04=h031d066_7 + - kernel-headers_linux-64=3.10.0=he073ed8_18 + - ld_impl_linux-64=2.43=h712a8e2_2 + - libcublas=12.0.1.189=0 + - libcublas-dev=12.0.1.189=0 + - libcufft=11.0.0.21=0 + - libcufft-dev=11.0.0.21=0 + - libcufile=1.5.0.59=0 + - libcufile-dev=1.5.0.59=0 + - libcurand=10.3.1.50=0 + - libcurand-dev=10.3.1.50=0 + - libcusolver=11.4.2.57=0 + - libcusolver-dev=11.4.2.57=0 + - libcusparse=12.0.0.76=0 + - libcusparse-dev=12.0.0.76=0 + - libexpat=2.6.4=h5888daf_0 + - libffi=3.4.2=h7f98852_5 + - libgcc=14.2.0=h77fa898_1 + - libgcc-devel_linux-64=13.3.0=h84ea5a7_101 + - libgcc-ng=14.2.0=h69a702a_1 + - libglib=2.82.2=h2ff4ddf_0 + - libgomp=14.2.0=h77fa898_1 + - libiconv=1.17=hd590300_2 + - libnpp=12.0.0.30=0 + - libnpp-dev=12.0.0.30=0 + - libnsl=2.0.1=hd590300_0 + - libnvjitlink=12.0.76=0 + - libnvjitlink-dev=12.0.76=0 + - libnvjpeg=12.0.0.28=0 + - libnvjpeg-dev=12.0.0.28=0 + - libpng=1.6.44=hadc24fc_0 + - libsanitizer=13.3.0=heb74ff8_1 + - libsqlite=3.47.0=hadc24fc_1 + - libssh2=1.10.0=haa6b8db_3 + - libstdcxx=14.2.0=hc0a3c3a_1 + - libstdcxx-devel_linux-64=13.3.0=h84ea5a7_101 + - libstdcxx-ng=14.2.0=h4852527_1 + - libuuid=2.38.1=h0b41bf4_0 + - libxcb=1.17.0=h8a09558_0 + - libxcrypt=4.4.36=hd590300_1 + - libxml2=2.13.4=hb346dea_2 + - libzlib=1.3.1=hb9d3cd8_2 + - nccl=2.14.3.1=h0800d71_0 + - ncurses=6.5=he02047a_1 + - nsight-compute=2022.4.0.15=0 + - openbabel=3.1.1=py39h2d01fe1_9 + - openssl=1.1.1w=hd590300_0 + - pcre2=10.44=hba22ea6_2 + - perl=5.32.1=7_hd590300_perl5 + - pip=24.3.1=pyh8b19718_0 + - pixman=0.43.2=h59595ed_0 + - pthread-stubs=0.4=hb9d3cd8_1002 + - python=3.9.15=h47a2c10_0_cpython + - python_abi=3.9=5_cp39 + - readline=8.2=h8228510_1 + - setuptools=75.3.0=pyhd8ed1ab_0 + - sqlite=3.47.0=h9eae976_1 + - sysroot_linux-64=2.17=h4a8ded7_18 + - tk=8.6.13=noxft_h4845f30_101 + - tzdata=2024b=hc8b5060_0 + - wheel=0.45.0=pyhd8ed1ab_0 + - xorg-libice=1.1.1=hb9d3cd8_1 + - xorg-libsm=1.2.4=he73a12e_1 + - xorg-libx11=1.8.10=h4f16b4b_0 + - xorg-libxau=1.0.11=hb9d3cd8_1 + - xorg-libxdmcp=1.1.5=hb9d3cd8_0 + - xorg-libxext=1.3.6=hb9d3cd8_0 + - xorg-libxrender=0.9.11=hb9d3cd8_1 + - xorg-xorgproto=2024.1=hb9d3cd8_1 + - xz=5.2.6=h166bdaf_0 + - zlib=1.3.1=hb9d3cd8_2 + - pip: + - absl-py==0.13.0 + - anyio==4.6.2.post1 + - astor==0.8.1 + - biopython==1.79 + - certifi==2024.8.30 + - charset-normalizer==3.4.0 + - chex==0.0.7 + - contextlib2==21.6.0 + - decorator==5.1.1 + - dm-haiku==0.0.4 + - dm-tree==0.1.6 + - docker==5.0.0 + - exceptiongroup==1.2.2 + - h11==0.14.0 + - httpcore==1.0.6 + - httpx==0.27.2 + - idna==3.10 + - immutabledict==2.0.0 + - jax==0.2.14 + - jaxlib==0.4.30 + - ml-collections==0.1.0 + - ml-dtypes==0.5.0 + - numpy==1.24.4 + - opt-einsum==3.3.0 + - paddlepaddle-gpu==2.6.1 + - pandas==1.3.4 + - pillow==11.0.0 + - posebusters==0.3.1 + - protobuf==5.28.3 + - python-dateutil==2.9.0.post0 + - pytz==2024.2 + - pyyaml==6.0.2 + - rdkit==2024.3.6 + - rdkit-pypi==2022.9.5 + - requests==2.32.3 + - scipy==1.9.0 + - six==1.16.0 + - sniffio==1.3.1 + - tabulate==0.9.0 + - toolz==1.0.0 + - typing-extensions==4.12.2 + - urllib3==2.2.3 + - websocket-client==1.8.0 +prefix: /opt/miniforge/envs/helixfold diff --git a/apps/protein_folding/helixfold3/helixfold3.def b/apps/protein_folding/helixfold3/helixfold3.def new file mode 100644 index 0000000..ddd9e9d --- /dev/null +++ b/apps/protein_folding/helixfold3/helixfold3.def @@ -0,0 +1,37 @@ +Bootstrap: docker +From: nvidia/cuda:12.6.0-cudnn-devel-ubuntu24.04 + +%labels + Author j.caley@unsw.edu.au + Version 1.0.0 + +%post + apt update && DEBIAN_FRONTEND=noninteractive apt install --no-install-recommends -y wget git + + wget "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh" + bash Miniforge3-Linux-x86_64.sh -b -p /opt/miniforge + rm Miniforge3-Linux-x86_64.sh + export PATH="/opt/miniforge/bin:$PATH" + + git clone --single-branch --branch dev --depth 1 --no-checkout https://github.com/PaddlePaddle/PaddleHelix.git app/helixfold3 + cd app/helixfold3 + git sparse-checkout init --cone + git sparse-checkout set apps/protein_folding/helixfold3 + git checkout dev + mv apps/protein_folding/helixfold3/* . + rm -rf apps + mamba env create -f environment.yaml + + apt autoremove -y && apt remove --purge -y wget git && apt clean -y + rm -rf /var/lib/apt/lists/* /root/.cache *.tar.gz + mamba clean --all --force-pkgs-dirs -y + +%environment + export PATH="/app/helixfold3:/opt/miniforge/bin:/opt/miniforge/envs/helixfold/bin:$PATH" + export PYTHONPATH="/app/helixfold3:$PYTHONPATH" + export PYTHON_BIN="/opt/miniforge/envs/helixfold/bin/python3.9" + export ENV_BIN="/opt/miniforge/envs/helixfold/bin" + export OBABEL_BIN="/opt/miniforge/envs/helixfold/bin" + +%runscript + mamba run --name helixfold "$@"