PhenoDP: Leveraging Deep Learning for Phenotype-Based Case Reporting, Disease Ranking, and Symptom Recommendation
PhenoDP is an advanced toolkit for phenotype-driven disease diagnosis and prioritization using Human Phenotype Ontology (HPO) data. It offers a powerful Summarizer for clinical summaries, a Ranker for disease prioritization, and a Recommender for HPO term suggestion.
- Summarizer: Utilizes a distilled Bio-Medical-3B-CoT model to generate high-quality, patient-centered clinical summaries from HPO terms, enhancing the interpretability of symptoms.
- Ranker: Integrates IC values, Phi coefficients, and Graph Convolutional Networks (GCN) for precise disease ranking, excelling particularly in complex disease scenarios.
- Recommender: Employs a Transformer model optimized with contrastive learning to intelligently suggest critical symptoms for distinguishing diseases, improving diagnostic accuracy and confidence.
# Create environment
conda create -n phenodp python=3.10 -y
conda activate phenodp
# Install PyTorch with CUDA 11.8
pip install torch==2.3.1 torchvision==0.18.1 torchaudio==2.3.1
pip install torch==2.3.1 torchvision==0.18.1 torchaudio==2.3.1 -f https://mirrors.aliyun.com/pytorch-wheels/cu118
# Install DGL with CUDA 11.8 support (Please check your torch and CUDA version)
pip install dgl -f https://data.dgl.ai/wheels/torch-2.3/cu118/repo.html
# Install other dependencies
pip install transformers pandas numpy tqdm scipy obonet networkx "pyhpo==3.3.2" accelerategit clone https://github.com/TianLab-Bioinfo/PhenoDP.git
cd phenodp
pip install -e .PhenoDP requires preprocessed data files to function. After installation, you can either download the preprocessed data or train the models yourself.
# Download files from Google Drive
# https://drive.google.com/drive/u/0/folders/1S6ZJC-5YaM18o7D0sjJ3Ae_w5jO_bMBtPlace the downloaded files in the data/ directory:
JC_sim_dict.pkl- JC similarity matrixnode_embedding_dict.pkl- HPO semantic embeddingstransformer_encoder_infoNCE.pth- Transformer weights
Additionally, you can download the latest version of HPO, which requires downloading the files hp.obo, hp.json, hp.owl, genes_to_disease.txt, genes_to_phenotype.txt, phenotype_to_genes.txt, and phenotype.hpoa. Store these files in a folder (it is recommended to create a subfolder like hpo_latest within the data/ directory for unified storage, facilitating subsequent data processing and model training calls).
Please see notebooks/Tutorial.ipynb
If you encounter any issues during use or have any suggestions, feel free to contact us:
- Baole Wen: blwen24@m.fudan.edu.cn
- Yi Long : longyi@mail.nankai.edu.cn
You can also submit an issue on GitHub.
For more information about our research, please visit our lab website.
In addition, we observed that the language model may occasionally generate additional outputs, such as candidate gene suggestions, even when not explicitly prompted to do so. While these suggestions can be biologically plausible—as illustrated in our manuscript by the example involving FGFR2 and TNXB—they should be interpreted cautiously. The model's inferences are shaped by patterns in its training data and do not constitute verified clinical recommendations. Users are advised to critically assess such outputs in the context of clinical and molecular evidence.
If you use PhenoDP in your research, please cite:
@article{wen2025phenodp,
title={PhenoDP: leveraging deep learning for phenotype-based case reporting, disease ranking, and symptom recommendation},
author={Baole Wen, Sheng Shi, Yi Long, Yanan Dang, Weidong Tian*},
journal={Genome Medicine},
volume={17},
pages={67},
year={2025},
doi={10.1186/s13073-025-01496-8},
url={https://doi.org/10.1186/s13073-025-01496-8}
}