Views
No views yet
|
|
On the cover: This ocean symbolizes the human proteome—the complete set of proteins that carry out essential functions in our bodies. For medicine to work, it often needs to interact with a specific protein. For an estimated 90% of these proteins, however, they lack known small-molecule ligands with high activity. In the image, these proteins are represented as sailboats drifting in the dark.
At the center, stands a lighthouse symbolizing the AI method LigUnity. Its beam illuminates several sailboats, guiding them toward glowing buoys, which symbolize ligands with high activity found by LigUnity. The work by Feng et al. highlights the power of AI-driven computational methods to efficiently find active ligands and optimize their activity, opening up new therapeutic avenues for various diseases.
|
# run pocket/protein and ligand encoder model
path2weight="absolute path to the checkpoint of pocket_ranking"
CUDA_VISIBLE_DEVICES=0 bash test.sh ALL pocket_ranking ${path2weight} "./result/pocket_ranking"
CUDA_VISIBLE_DEVICES=0 bash test.sh BDB pocket_ranking ${path2weight} "./result/pocket_ranking"
CUDA_VISIBLE_DEVICES=0 bash test.sh PDB pocket_ranking ${path2weight} "./result/pocket_ranking"
path2weight="absolute path to the checkpoint of protein_ranking"
CUDA_VISIBLE_DEVICES=0 bash test.sh ALL protein_ranking ${path2weight} "./result/protein_ranking"
CUDA_VISIBLE_DEVICES=0 bash test.sh BDB protein_ranking ${path2weight} "./result/protein_ranking"
CUDA_VISIBLE_DEVICES=0 bash test.sh PDB protein_ranking ${path2weight} "./result/protein_ranking"
# train H-GNN model
cd ./HGNN
path2weight_HGNN="absolute path to the checkpoint of HGNN pocket"
python main.py --data_root ${path2data} --result_root "../result/pocket_ranking" --test_ckpt ${path2weight_HGNN}
path2weight_HGNN="absolute path to the checkpoint of HGNN protein"
python main.py --data_root ${path2data} --result_root "../result/protein_ranking" --test_ckpt ${path2weight_HGNN}
# get final prediction of our model
python ensemble_result.py DUDE PCBA DEKOIS# run pocket/protein and ligand encoder model
for r in {1..6} do
path2weight="path to checkpoint of pocket_ranking"
path2result="./result/pocket_ranking/FEP/repeat_{r}"
CUDA_VISIBLE_DEVICES=0 bash test.sh FEP pocket_ranking ${path2weight} ${path2result}
path2weight="path to checkpoint of protein_ranking"
path2result="./result/protein_ranking/FEP/repeat_{r}"
CUDA_VISIBLE_DEVICES=0 bash test.sh FEP protein_ranking ${path2weight} ${path2result}
done
# get final prediction of our model
python ensemble_result.py FEP# use the same checkpoints as in zero-shot
# run few-shot fine-tuning
for r in {1..6} do
path2weight="path to checkpoint of pocket_ranking"
path2result="./result/pocket_ranking/FEP_fewshot/repeat_{r}"
support_num=0.6
CUDA_VISIBLE_DEVICES=0 bash test_fewshot.sh FEP pocket_ranking support_num ${path2weight} ${path2result}
path2weight="path to checkpoint of protein_ranking"
path2result="./result/protein_ranking/FEP_fewshot/repeat_{r}"
CUDA_VISIBLE_DEVICES=0 bash test_fewshot.sh FEP protein_ranking support_num ${path2weight} ${path2result}
done
# get final prediction of our model
python ensemble_result_fewshot.py FEP_fewshot support_numpython -c "import unicore; print('/'.join(unicore.__file__.split('/')[:-2]))" group.add_argument('--validate-begin-epoch', type=int, default=0, metavar='N',
help='validate begin epoch') do_validate = (
(not end_of_epoch and do_save)
or (
end_of_epoch
and epoch_itr.epoch >= args.validate_begin_epoch # !!!! add this line
and epoch_itr.epoch % args.validate_interval == 0
and not args.no_epoch_checkpoints
)
or should_stop
or (
args.validate_interval_updates > 0
and num_updates > 0
and num_updates % args.validate_interval_updates == 0
)
) and not args.disable_validation# use the same checkpoints as in FEP experiments
path1="path to checkpoint of pocket_ranking"
path2="path to checkpoint of protein_ranking"
result1="./result/pocket_ranking/TYK2"
result2="./result/protein_ranking/TYK2"
# run active learning cycle for 5 iters with pure greedy strategy
bash ./active_learning_scripts/run_al.sh 5 0 path1 path2 result1 result2@article{feng2025hierarchical,
title={Hierarchical affinity landscape navigation through learning a shared pocket-ligand space},
author={Feng, Bin and Liu, Zijing and Li, Hao and Yang, Mingjun and Zou, Junjie and Cao, He and Li, Yu and Zhang, Lei and Wang, Sheng},
journal={Patterns},
year={2025},
publisher={Elsevier}
}
@article{feng2024bioactivity,
title={A bioactivity foundation model using pairwise meta-learning},
author={Feng, Bin and Liu, Zequn and Huang, Nanlan and Xiao, Zhiping and Zhang, Haomiao and Mirzoyan, Srbuhi and Xu, Hanwen and Hao, Jiaran and Xu, Yinghui and Zhang, Ming and others},
journal={Nature Machine Intelligence},
volume={6},
number={8},
pages={962--974},
year={2024},
publisher={Nature Publishing Group UK London}
}