小康文章阅读笔记

小康文章阅读笔记

HalluDesign学习笔记

2026-03-03

HalluDeisgn学习笔记

1. HalluDeisgn安装

由于我自己比较喜欢Docker,所以使用的docker安装,大致思路为使用CUDA:12.6.3-ubuntu22.04版本的为基本,-v联系git目录至docker中的/app目录,-v联系model文件至docker中的/root/model目录,所以HalluDesign上写的 ~/model 目录貌似有错。

详细如下,当然也可以用Dockerfile进行文件编排

docker run -it --gpus all -v $HOME/install/HalluDesign:/app/HalluDesign -v $HOME/AF3model:/root/model nvidia/cuda:12.6.3-cudnn-devel-ubuntu24.04

Install AF3

conda create -n HalluDesign python=3.11 -y
conda activate HalluDesign
cd HalluDesign
conda install -c conda-forge c-compiler cxx-compiler cmake ninja zlib -y
export CFLAGS="-I$CONDA_PREFIX/include"
export CXXFLAGS="-I$CONDA_PREFIX/include"
export LDFLAGS="-L$CONDA_PREFIX/lib"
pip install -r dev-requirements.txt
pip install --no-deps .
build_data

Install Protenix

git clone https://github.com/NVIDIA/cutlass.git
cd Protenix/
pip install .
conda install -c conda-forge gcc=12 gxx=12

Install HalluDesign

cd ..
pip install torch==2.6.0 torchaudio==2.6.0 torchvision==0.21.0  biopython==1.79 prody==2.4.1 pandas==2.2.3  -f https://download.pytorch.org/whl/cu126
pip install ml-collections==0.1.1 transformers==4.50.0 triton==3.1.0 numpy==1.26.3
cd LigandMPNN
bash get_model_params.sh "./model_params"

运行docker文件方法如下:

docker run -it --rm --gpus all -v $HOME/install/HalluDesign:/app/HalluDesign -v $HOME/AF3model:/root/model halludesign:latest

2.基本探索

#基本使用例子
python HalluDesign_run.py 
--input_file <pdbfile> or --pdb_list <pdblist>
--output_dir <outdir> 
--HalluDesign_model <af3 or protenix or cross_model> 
--template_path <af3 json or protenix json>
--ref_time_steps <HalluDesign diffusion steps, 50 for local optimization, 150 for global optimization and design>
--num_seqs <num sequences per cycle>
--design_epoch_begin <number_of_initial_cycles_to_skip>
--mpnn <ligand_mpnn or protein_mpnn>
--random_init # for from scratch design, this will random init all redesign residues

需要准备一个符合需求的json文件,用于设计的蛋白质链需要放入Chain A。
对于binder设计:目标文件需要包含符合AF3标准格式的MSA和模板

3. 蛋白binder优化例子

命令如下:

export PATH=$(python -c "import site; print(site.getsitepackages()[0] + '/nvidia/cuda_nvcc/bin')"):$PATH && python ./HalluDesign_run.py --HalluDesign_model af3 --input_file examples/protein_binder/Pdl1_binder_design_5.pdb --template_path examples/protein_binder/pdl1_protein.json --mpnn "protein_mpnn" --output_dir $(pwd)/examples/protein_binder/HalluDesign_op --fix_chain_index "B" --num_seqs 2 --num_recycles 10 --ref_time_steps 50 

3.1 设置环境变量PATH

export PATH=$(python -c "import site; print(site.getsitepackages()[0] + '/nvidia/cuda_nvcc/bin')"):$PATH
  • 细节
    • python -c "...":在命令行中直接运行一段 Python 代码。
    • import site; site.getsitepackages():获取当前 Python 环境的全局 site-packages 目录(通常是安装第三方包的地方,如 /usr/local/lib/python3.x/site-packages)。
    • [0]:取第一个路径(通常只有一个)。
    • 拼接上 /nvidia/cuda_nvcc/bin,说明你可能通过 pip 安装了 nvidia-cuda-nvcc-cu12 这样的包,它把 nvcc 放在这个子目录下。
    • export PATH=...:$PATH:将这个新路径加到 PATH 的最前面,优先使用。

3.2 运行主程序

&& python ./HalluDesign_run.py ...
  • && 表示前一条命令成功(返回码为 0)后,才执行后面的命令。
  • 使用当前目录下的 HalluDesign_run.py 脚本进行蛋白质设计任务。

3.3 脚本参数详解

参数含义
--HalluDesign_model af3指定使用的 HalluDesign 模型为 af3af3, protenix或者cross_model)。
--input_file examples/protein_binder/Pdl1_binder_design_5.pdb输入的 PDB 文件,包含蛋白质结构(这里是 PDL1 结合蛋白的设计模板)。
--template_path examples/protein_binder/pdl1_protein.json提供一个 JSON 模板文件
--mpnn "protein_mpnn"指定使用 ProteinMPNN 模型进行序列设计(protein_mpnn 或者ligand_mpnn)。
--output_dir $(pwd)/examples/protein_binder/HalluDesign_op输出目录设为当前工作目录下的指定路径($(pwd) 是当前路径)。
--fix_chain_index "B"固定 PDB 中链 B 的结构(不进行 redesign),只设计其他链(如链 A)。
--num_seqs 2生成 2 条新的蛋白质序列。
--num_recycles 10在 AF3 推理过程中进行 10 次循环(recycling),提高预测精度。
--ref_time_steps 50可能指扩散模型中的参考时间步数(如在 AF3 的扩散采样中使用 50 步)。

3.4 整体功能总结

这条命令的目的是:

基于给定的 PDL1 蛋白结构(PDB)和模板(JSON),使用 AlphaFold 3 风格的 HalluDesign 模型,结合 ProteinMPNN 序列设计,在固定链 B 的前提下,生成 2 条新的结合蛋白序列,并将结果保存到指定输出目录。

整个流程融合了:

  • 结构建模(AF3 / HalluDesign)
  • 序列设计(ProteinMPNN)
  • 结构约束(固定某条链)