--- a +++ b/README.md @@ -0,0 +1,100 @@ +# OmiEmbed +***Please also have a look at our brand new omics-to-omics DL freamwork 👀:*** +[OmiTrans](https://github.com/zhangxiaoyu11/OmiTrans) + +[](https://zenodo.org/badge/latestdoi/334077812) +[](https://www.codacy.com/gh/zhangxiaoyu11/OmiEmbed/dashboard?utm_source=github.com&utm_medium=referral&utm_content=zhangxiaoyu11/OmiEmbed&utm_campaign=Badge_Grade) +[](https://github.com/zhangxiaoyu11/OmiEmbed/blob/main/LICENSE) + +[](https://github.com/zhangxiaoyu11/OmiEmbed/stargazers) +[](https://github.com/zhangxiaoyu11/OmiEmbed/network/members) + +**OmiEmbed: A Unified Multi-task Deep Learning Framework for Multi-omics Data** + +**Xiaoyu Zhang** (x.zhang18@imperial.ac.uk) + +Data Science Institute, Imperial College London + +## Introduction + +OmiEmbed is a unified framework for deep learning-based omics data analysis, which supports: + +1. Multi-omics integration +2. Dimensionality reduction +3. Omics embedding learning +4. Tumour type classification +5. Phenotypic feature reconstruction +6. Survival prediction +7. Multi-task learning for aforementioned tasks + +Paper Link: [https://doi.org/10.3390/cancers13123047](https://doi.org/10.3390/cancers13123047) + +## Getting Started + +### Prerequisites +- CPU or NVIDIA GPU + CUDA CuDNN +- [Python](https://www.python.org/downloads) 3.6+ +- Python Package Manager + - [Anaconda](https://docs.anaconda.com/anaconda/install) 3 (recommended) + - or [pip](https://pip.pypa.io/en/stable/installing/) 21.0+ +- Python Packages + - [PyTorch](https://pytorch.org/get-started/locally) 1.2+ + - TensorBoard 1.10+ + - Tables 3.6+ + - scikit-survival 0.6+ + - prefetch-generator 1.0+ +- [Git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) 2.7+ + +### Installation +- Clone the repo +```bash +git clone https://github.com/zhangxiaoyu11/OmiEmbed.git +cd OmiEmbed +``` +- Install the dependencies + - For conda users + ```bash + conda env create -f environment.yml + conda activate omiembed + ``` + - For pip users + ```bash + pip install -r requirements.txt + ``` + +### Try it out +- Train and test using the built-in sample dataset with the default settings +```bash +python train_test.py +``` +- Check the output files +```bash +cd checkpoints/test/ +``` +- Visualise the metrics and losses +```bash +tensorboard --logdir=tb_log --bind_all +``` + +## Citation +If you use this code in your research, please cite our paper. +```bibtex +@Article{OmiEmbed2021, + AUTHOR = {Zhang, Xiaoyu and Xing, Yuting and Sun, Kai and Guo, Yike}, + TITLE = {OmiEmbed: A Unified Multi-Task Deep Learning Framework for Multi-Omics Data}, + JOURNAL = {Cancers}, + VOLUME = {13}, + YEAR = {2021}, + NUMBER = {12}, + ARTICLE-NUMBER = {3047}, + ISSN = {2072-6694}, + DOI = {10.3390/cancers13123047} +} +``` + +## OmiTrans +***Please also have a look at our brand new omics-to-omics DL freamwork 👀:*** +[OmiTrans](https://github.com/zhangxiaoyu11/OmiTrans) + +## License +This source code is licensed under the [MIT](https://github.com/zhangxiaoyu11/OmiEmbed/blob/main/LICENSE) license.