Views
No views yet
1****************************************************************************
2* ██████╗ ██╗ ██╗██╗ ██╗███████╗██████╗ ██████╗ ██████╗██╗ ██╗ *
3* ██╔══██╗██║ ██║╚██╗ ██╔╝██╔════╝██╔══██╗██╔═══██╗██╔════╝██║ ██╔╝ *
4* ██████╔╝███████║ ╚████╔╝ ███████╗██║ ██║██║ ██║██║ █████╔╝ *
5* ██╔═══╝ ██╔══██║ ╚██╔╝ ╚════██║██║ ██║██║ ██║██║ ██╔═██╗ *
6* ██║ ██║ ██║ ██║ ███████║██████╔╝╚██████╔╝╚██████╗██║ ██╗ *
7* ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚══════╝╚═════╝ ╚═════╝ ╚═════╝╚═╝ ╚═╝ *
8****************************************************************************PhysDock is a physics-guided all-atom denoising diffusion model designed for predicting flexible protein-ligand complex structures.
1# Install Bio Tools
2apt install hhsuite hmmer
3
4# Download Databases
5sh scripts/download_homo_datasets.sh <target_databases> # For example, $HOME/libs.yaml file to create environment to run PhysDock1# Create ENV
2conda env create -f enviroment.yaml
3
4# ENV Activation
5conda activate PhysDockparams dir.1# Download latest EMA Params
2cd params
3wget https://zenodo.org/records/15178859/files/params.pt.pdb file of receptor and a .sdf file of ligand, while the output consists of the raw features (.pkl.gz file) for model input, typically structural-related features. In addition to structural features, PhysDock generates MSA-related features, including msa_feature and uniprot_msa_feature, by searching all sequence databases. We utilize the MD5 encoding of the protein sequence as a query to reuse the MSA features. Moreover, the raw feature can also encompass key residues involved in interactions processed by PLIP, and specify high-importance key residues with a certain probability during inference.1BASE=$(dirname $0)
2
3# Generate systems pkl.gz
4# The receptor pdb and ligand sdf and ligand CCD id are inputs.
5# The output is a system `pkl.gz`
6python $BASE/prepare_system.py \
7 --receptor_pdb_path $BASE/demo/system_preparation/receptor.pdb \
8 --ligand_sdf_path $BASE/demo/system_preparation/EJQ.sdf \
9 --ligand_ccd_id EJQ \
10 --systems_dir $BASE/demo/system_preparation/systems
11
12# Get MSA features
13python $BASE/run_homo_search.py \
14 --input_fasta_path $BASE/demo/system_preparation/systems/fastas \
15 --features_dir $BASE/demo/system_preparation/features \
16 --bfd_database_path <target_databases>/bfd/bfd_metaclust_clu_complete_id30_c90_final_seq.sorted_opt \
17 --uniclust30_database_path <target_databases>/uniclust30/uniclust30_2018_08/uniclust30_2018_08 \
18 --uniref90_database_path <target_databases>/uniref90.fasta \
19 --mgnify_database_path <target_databases>/mgy_clusters.fa \
20 --uniprot_database_path <target_databases>/uniprot.fasta \
21 --jackhmmer_binary_path /usr/bin/jackhmmer \
22 --hhblits_binary_path /usr/bin/hhblits
23redocking_demo.sh.1# Run Demo
2sh redocking_demo.sh1# redocking_demo.sh
2BASE=$(dirname $0)
3
4python $BASE/redocking.py \
5 -i $BASE/examples/demo/Posebusters_subset \
6 -f $BASE/examples/demo/features \
7 --crop_size 256 \
8 --atom_crop_size 2048 \
9 --enable_physics_correction \
10 --use_pocket \
11 --use_key_res \
12 --enable_ranking1# Get Help Info
2python redocking.py -hscrening.sh. Here, it should be noted that when conducting screening for a specified pocket, the position of the ligand in the system .pkl.gz file (from System Preparation procedure) will serve as the search area for the pocket.1# Run Demo
2sh screening_demo.sh1# Run full pipeline
2sh docking_demo.sh
1# Download all the preprocessed benchmark dataset including Posebusters, DeepDockingDare and PhiBench.
2sh scripts/download_benchmarks.shsh scripts/download_dataset.shbibtex1@article{zhang2025physdock,
2 title={PhysDock: A Physics-Guided All-Atom Diffusion Model for Protein-Ligand Complex Prediction},
3 author={Zhang, Kexin and Ma, Yuanyuan and Yu, Jiale and Luo, Huiting and Lin, Jinyu and Qin, Yifan and Li, Xiangcheng and Jiang, Qian and Bai, Fang and Dou, Jiayi and others},
4 journal={bioRxiv},
5 pages={2025--04},
6 year={2025},
7 publisher={Cold Spring Harbor Laboratory}
8}