HalluDesign学习笔记
编辑
4
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 模型为 af3(af3, 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)
- 结构约束(固定某条链)
- 0
- 0
-
分享