v0.9.1 is released with a lot of improvements!
Please checkout the tutorials and documentations at 📄cma2015.github.io/DEM.
- The DEM is implemented in the Python package
biodem
, which comprises 4 modules: data preprocessing, dual-extraction modeling, phenotypic prediction, and functional gene mining. - For more details, please check out our publication. 🖱️Click to copy citation
- Python 3.10 / 3.11 / 3.12.
- Optional: Hardware accelerator supporting PyTorch.
Recommended: NVIDIA graphics card with 12GB memory or larger.
-
Create a conda environment:
mamba create -n dem python=3.11 mamba activate dem # Install PyTorch with CUDA support mamba install pytorch torchvision torchaudio pytorch-cuda=12.4 -c pytorch -c nvidia
-
Install biodem package from PyPI
pip install biodem
Please checkout the documentations at 📄cma2015.github.io/DEM.
biodem
comprises 4 functional modules:
Nested cross-validation is recommended for data preprocessing.
- Steps:
- Split data into nested cross-validation sets.
- Imputation & standardization.
- Feature selection using the variance threshold filter and Random Forests.
- SNP2Gene transformation.
- It takes preprocessed multi-omics data and phenotypic data as inputs. DEM is capable of performing both classification and regression tasks.
- It loads the trained DEM model checkpoint and performs phenotypic prediction.
- It performs functional gene mining based on the trained DEM model through feature ranking by permutation.
Please cite our paper if you use this package:
@article{renDualextractionModelingMultimodal2024a,
title = {Dual-Extraction Modeling: {{A}} Multi-Modal Deep-Learning Architecture for Phenotypic Prediction and Functional Gene Mining of Complex Traits},
shorttitle = {Dual-Extraction Modeling},
author = {Ren, Yanlin and Wu, Chenhua and Zhou, He and Hu, Xiaona and Miao, Zhenyan},
year = {2024},
month = sep,
journal = {Plant Communications},
volume = {5},
number = {9},
pages = {101002},
issn = {25903462},
doi = {10.1016/j.xplc.2024.101002},
langid = {english}
}
If you have any questions, please contact us via GitHub issues or email us.