Open1
LocalColabFold (ver. 1.5.5) のための.defファイル

localcolabfold-v1.5.5.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
# 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}"
# COLABFOLDDIRの作成
mkdir -p /usr/local/apps/localcolabfold
export COLABFOLDDIR="/usr/local/apps/localcolabfold"
cd "${COLABFOLDDIR}"
# conda自身のアップデート
conda update -n base conda
# conda環境colabfold-condaを作成
conda create -p "${COLABFOLDDIR}/colabfold-conda" -c conda-forge -c bioconda \
python=3.10 openmm==8.2.0 pdbfixer kalign2=2.04 hhsuite=3.3.0 mmseqs2
# conda関係のお掃除
conda clean --all --force-pkgs-dirs --yes
# conda環境colabfold-condaをアクティベート
export COLABFOLD_CONDA="${COLABFOLDDIR}/colabfold-conda"
export PATH="${COLABFOLD_CONDA}/bin:${PATH}"
# pip自身のアップデート
python3 -m pip install --no-cache-dir --upgrade pip
# ColabFoldのインストール
python3 -m pip install --no-cache-dir --no-warn-conflicts \
"colabfold[alphafold-minus-jax] @ git+https://github.com/sokrypton/ColabFold"
python3 -m pip install --no-cache-dir "colabfold[alphafold]"
python3 -m pip install --no-cache-dir --upgrade "jax[cuda12]==0.5.3"
python3 -m pip install --no-cache-dir --upgrade tensorflow
python3 -m pip install --no-cache-dir silence_tensorflow
cd ${COLABFOLD_CONDA}/lib/python3.10/site-packages/colabfold
# Use 'Agg' for non-GUI backend
sed -i -e "s#from matplotlib import pyplot as plt#import matplotlib\nmatplotlib.use('Agg')\nimport matplotlib.pyplot as plt#g" plot.py
# modify the default params directory
sed -i -e "s#appdirs.user_cache_dir(__package__ or \"colabfold\")#\"${COLABFOLDDIR}/colabfold\"#g" download.py
# suppress warnings related to tensorflow
sed -i -e "s#from io import StringIO#from io import StringIO\nfrom silence_tensorflow import silence_tensorflow\nsilence_tensorflow()#g" batch.py
# remove cache directory
rm -rf __pycache__
# weightsのダウンロード
cd "${COLABFOLDDIR}"
python3 -m colabfold.download
# conda環境colabfold-condaにインストールしたパッケージの由来 (channel) を確認する
conda list -p "${COLABFOLD_CONDA}"
%environment
# ColabFoldのための環境設定
export COLABFOLDDIR="/usr/local/apps/localcolabfold"
export COLABFOLD_CONDA="${COLABFOLDDIR}/colabfold-conda"
export PATH="${COLABFOLD_CONDA}/bin:${PATH}"
# 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 "$@"