Open1
bioemu-v1.1.0.def

bioemu-v1.1.0.def
BootStrap: docker
From: nvidia/cuda:12.4.1-cudnn-devel-ubuntu22.04
%post
# localtime関係のWARNINGに対処
touch /etc/localtime
# 必要なパッケージのインストール (冗長)
apt update && apt upgrade -y
apt install -y build-essential gcc-12 g++-12 git curl wget aria2 zip unzip patch
# localeにen_US.UTF-8を追加する (WSL2だけで使用するなら不要)
apt install -y locales
locale-gen en_US.UTF-8
# apt関係のお掃除
rm -rf /var/lib/apt/lists/* && apt autoremove -y && apt clean
# gcc-12およびg++-12をデフォルトのgccおよびg++に設定
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 1
gcc --version
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 1
g++ --version
# Pyenvを/usr/local/appsにインストール
git clone https://github.com/pyenv/pyenv.git /usr/local/apps/pyenv
export PYENV_ROOT="/usr/local/apps/pyenv"
export PATH="${PYENV_ROOT}/bin:${PATH}"
# PyenvでMiniforgeをインストールし、MiniforgeにPATHを通す
pyenv install --list
pyenv install miniforge3-24.11.3-2
pyenv global miniforge3-24.11.3-2
pyenv versions
export MINIFORGE3_ROOT="${PYENV_ROOT}/versions/miniforge3-24.11.3-2"
export PATH="${MINIFORGE3_ROOT}/bin:${PATH}"
# conda自身のアップデート
conda update -n base conda
# conda環境bioemu-condaを作成
conda create -n bioemu-conda python=3.10
# conda関係のお掃除
conda clean --all --force-pkgs-dirs --yes
# conda環境bioemu-condaをアクティベート
export BIOEMU_CONDA="${MINIFORGE3_ROOT}/envs/bioemu-conda"
export PATH="${BIOEMU_CONDA}/bin:${PATH}"
# pip自身のアップデート
python3 -m pip install --no-cache-dir --upgrade pip
# BioEmuのインストール
python3 -m pip install --no-cache-dir bioemu[md] bioemu-benchmarks
# conda環境bioemu-condaにインストールしたパッケージの由来 (channel) を確認する
conda list -n bioemu-conda
# BioEmuモデルパラメーター、ColabFold、H-Packerのインストール準備
export HF_HOME="/usr/local/apps/hf_cache"
export BIOEMU_COLABFOLD_DIR="/usr/local/apps/colabfold"
export XDG_CACHE_HOME="${BIOEMU_COLABFOLD_DIR}"
export HPACKER_REPO_DIR="/usr/local/apps/hpacker"
export HPACKER_ENV_NAME="hpacker"
export PATH="${MINIFORGE3_ROOT}/bin:${BIOEMU_CONDA}/bin:${PATH}"
export CONDA_ROOT="${MINIFORGE3_ROOT}"
mkdir -p "${HF_HOME}" "${BIOEMU_COLABFOLD_DIR}" "${HPACKER_REPO_DIR}"
# BioEmuモデルパラメーター、ColabFold、H-Packerのインストール
${BIOEMU_CONDA}/bin/python3 - <<'PYCODE'
import os, subprocess
from bioemu.model_utils import maybe_download_checkpoint
from bioemu.get_embeds import ensure_colabfold_install
from bioemu.hpacker_setup.setup_hpacker import ensure_hpacker_install
# BioEmuモデルパラメーターのダウンロード (to HF_HOME)
ckpt, cfg = maybe_download_checkpoint(model_name="bioemu-v1.1")
print("Model downloaded to:", ckpt, cfg, flush=True)
# ColabFoldのインストール
os.environ["BIOEMU_COLABFOLD_DIR"] = os.environ.get("BIOEMU_COLABFOLD_DIR", "")
bin_dir = ensure_colabfold_install()
py = os.path.join(bin_dir, "python")
print("ColabFold bin dir:", bin_dir, flush=True)
# AlphaFoldモデルパラメーターのダウンロード (to XDG_CACHE_HOME)
subprocess.check_call([py, "-m", "colabfold.download"])
# H-Packerのインストール
ensure_hpacker_install(
envname=os.environ.get("HPACKER_ENV_NAME", "hpacker"),
repo_dir=os.environ.get("HPACKER_REPO_DIR", os.path.expanduser("~/.hpacker"))
)
PYCODE
# conda関係のお掃除
conda clean --all --force-pkgs-dirs --yes
%environment
# BioEmuのための環境設定
export MINIFORGE3_ROOT="/usr/local/apps/pyenv/versions/miniforge3-24.11.3-2"
export BIOEMU_CONDA="${MINIFORGE3_ROOT}/envs/bioemu-conda"
export PATH="${BIOEMU_CONDA}/bin:${PATH}"
export HF_HOME="/usr/local/apps/hf_cache"
# ColabFoldおよびHPacker
export BIOEMU_COLABFOLD_DIR="/usr/local/apps/colabfold"
export XDG_CACHE_HOME="${BIOEMU_COLABFOLD_DIR}"
export HPACKER_REPO_DIR="/usr/local/apps/hpacker"
export HPACKER_ENV_NAME="hpacker"
# BioEmu-Benchmarksの設定
export MPLBACKEND="Agg"
# for WSL2 (?)
export TF_FORCE_UNIFIED_MEMORY="1"
export XLA_PYTHON_CLIENT_MEM_FRACTION="4.0"
export XLA_PYTHON_CLIENT_ALLOCATOR="platform"
export TF_FORCE_GPU_ALLOW_GROWTH="true"
%runscript
# コンテナ実行時のスクリプトを定義
# "$@"は追加の引数を利用するための設定
exec "$@"