{"id":27891134,"url":"https://github.com/dmis-lab/gpo-vae","last_synced_at":"2025-06-13T07:02:27.608Z","repository":{"id":275111954,"uuid":"925100649","full_name":"dmis-lab/GPO-VAE","owner":"dmis-lab","description":null,"archived":false,"fork":false,"pushed_at":"2025-02-11T15:09:32.000Z","size":1746,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-05T11:54:47.871Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dmis-lab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-01-31T08:22:21.000Z","updated_at":"2025-02-21T01:50:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"397b2949-db6d-49d9-876d-cd9645ec9d13","html_url":"https://github.com/dmis-lab/GPO-VAE","commit_stats":null,"previous_names":["dmis-lab/gpo-vae"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dmis-lab/GPO-VAE","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmis-lab%2FGPO-VAE","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmis-lab%2FGPO-VAE/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmis-lab%2FGPO-VAE/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmis-lab%2FGPO-VAE/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dmis-lab","download_url":"https://codeload.github.com/dmis-lab/GPO-VAE/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmis-lab%2FGPO-VAE/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259599313,"owners_count":22882349,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-05-05T11:53:37.148Z","updated_at":"2025-06-13T07:02:27.362Z","avatar_url":"https://github.com/dmis-lab.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GPO-VAE: Modeling Explainable Gene Perturbation Responses utilizing GRN-Aligned Parameter Optimization\n![img](./figures/model_overview.png)\n\n## Abstract\nMotivation: Predicting cellular responses to genetic perturbations is essential for understanding biological systems and developing targeted therapeutic strategies. While variational autoencoders (VAEs) have shown promise in modeling perturbation responses, their limited explainability poses a significant challenge, as the learned features often lack clear biological meaning. Nevertheless, model explainability is one of the most important aspects in the realm of biological AI. One of the most effective ways to achieve explainability is incorporating the concept of gene regulatory networks (GRNs) in designing deep learning models such as VAEs. GRNs elicit the underlying causal relationships between genes and are capable of explaining the transcriptional responses caused by genetic perturbation treatments.\n\nResults: We propose GPO-VAE, an explainable VAE enhanced by GRN-aligned Parameter Optimization that explicitly models gene regulatory networks in the latent space. Our key approach is to optimize the learnable parameters related to latent perturbation effects towards GRN-aligned explainability. Experimental results on perturbation prediction show our model achieves state-of-the-art performance in predicting transcriptional responses across multiple benchmark datasets. Furthermore, additional results on evaluating the GRN inference task reveal our model's ability to generate meaningful GRNs compared to other methods. According to qualitative analysis, GPO-VAE posseses the ability to construct biologically explainable GRNs that align with experimentally validated regulatory pathways.\n\nkeywords: Gene Perturbation Response, Gene Regulatory Network, Explainable VAE, Causal Relationship\n\n\n## How to run the experiments\n### Prerequisites\nThis project is tested with following environments:\n- Python: 3.9.19\n- CUDA: 11.8\n- Pytorch-lightning: 2.4.0\n- Rapids-singlecell: 0.10.8\n- Scanpy: 1.10.2\n---\n### Install environment (Linux)\n```\nconda env create --file environment.yml\nconda activate gpo_vae_env\n```\n- If you encounter a conflict, run this command: `conda config --set channel_priority disabled`\n\n```\npip install 'rapids-singlecell[rapids11]' --extra-index-url=https://pypi.nvidia.com #CUDA11.X\npip install 'rapids-singlecell[rapids12]' --extra-index-url=https://pypi.nvidia.com #CUDA12\n```\n- Install `rapids-singlecell` according to your CUDA version\n\n```\npip install POT\n```\n- Install `POT` for preprocessing data\n\n---\n### Download datasets\nIf you want to annotated dataset when training our model,\n```\npip install gdown\ngdown https://drive.google.com/uc?id=1gpnjtKYLAsyGrPqGT8NbTcvx2tiLowXN # datasets(rpe1, k562, adamson)\ngdown https://drive.google.com/uc?id=1C7vGxYqT-UvN1o_aYpVOcJXTDuJmH-lg # summary_stats_adamson.csv, summary_stats.xlsx\ntar -zxvf datasets.tar.gz\ntar -zxvf summary_stats.tar.gz\n```\n---\n### Training models\nThe easiest way to train a model is specify a config file (eg `demo/gpo_vae_rpe1.yaml`) with data, model, and training hyperparameters\n```\npython train_rpe1.py --config ./demo/gpo_vae_rpe1.yaml\n```\nFor larger experiments, we provide support for wandb sweeps using redun.\n```\npip install redun\nbash sweep_rpe1.sh\n```\nIf you want to run a sweep, you should make the following changes in the `train_{data}.py` script:\n- Change the argument defaults: `default=None`\n\n---\n## Acknowledgement\nThis code includes modifications based on the code of SAMS-VAE. We are grateful to the authors for providing their code/models as open-source software. And figure was created with BioRender.\n\n## Contributors\n\n\u003ctable\u003e\n\t\u003ctr\u003e\n\t\t\u003cth\u003eName\u003c/th\u003e\t\t\n\t\t\u003cth\u003eAffiliation\u003c/th\u003e\n\t\t\u003cth\u003eEmail\u003c/th\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eSeungheun Baek\u0026dagger;\u003c/td\u003e\t\t\n\t\t\u003ctd\u003eData Mining and Information Systems Lab,\u003cbr\u003eKorea University, Seoul, South Korea\u003c/td\u003e\n\t\t\u003ctd\u003esheunbaek@korea.ac.kr\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eSoyon Park\u0026dagger;\u003c/td\u003e\t\t\n\t\t\u003ctd\u003eData Mining and Information Systems Lab,\u003cbr\u003eKorea University, Seoul, South Korea\u003c/td\u003e\n\t\t\u003ctd\u003esoyon_park@korea.ac.kr\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eYan Ting Chok\u003c/td\u003e\t\t\n\t\t\u003ctd\u003eData Mining and Information Systems Lab,\u003cbr\u003eKorea University, Seoul, South Korea\u003c/td\u003e\n\t\t\u003ctd\u003eyanting1412@korea.ac.kr\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eMogan Gim*\u003c/td\u003e\t\t\n\t\t\u003ctd\u003eDepartment of Biomedical Engineering,\u003cbr\u003eHankuk University of Foreign Studies, Yongin, South Korea\u003c/td\u003e\n\t\t\u003ctd\u003egimmogan@hufs.ac.kr\u003c/td\u003e\n\t\u003c/tr\u003e\n\t\u003ctr\u003e\n\t\t\u003ctd\u003eJaewoo Kang*\u003c/td\u003e\t\t\n\t\t\u003ctd\u003eData Mining and Information Systems Lab,\u003cbr\u003eKorea University, Seoul, South Korea\u003c/td\u003e\n\t\t\u003ctd\u003ekangj@korea.ac.kr\u003c/td\u003e\n\t\u003c/tr\u003e\n\u003c/table\u003e\n\n- \u0026dagger;: *Equal Contributors*\n- \u0026ast;: *Corresponding Author*","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdmis-lab%2Fgpo-vae","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdmis-lab%2Fgpo-vae","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdmis-lab%2Fgpo-vae/lists"}