{"id":22632824,"url":"https://github.com/mtvector/scantipode","last_synced_at":"2025-03-29T04:30:16.722Z","repository":{"id":237158414,"uuid":"732509252","full_name":"mtvector/scANTIPODE","owner":"mtvector","description":"Variational Inference for Cell Type Evolution","archived":false,"fork":false,"pushed_at":"2024-12-03T08:46:09.000Z","size":6410167,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-03T09:34:42.557Z","etag":null,"topics":["pyro","scrna-seq","scvi-tools","variational-autoencoder"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mtvector.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2023-12-16T22:53:13.000Z","updated_at":"2024-12-03T08:46:21.000Z","dependencies_parsed_at":"2024-12-03T09:39:21.955Z","dependency_job_id":null,"html_url":"https://github.com/mtvector/scANTIPODE","commit_stats":null,"previous_names":["mtvector/scantipode"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtvector%2FscANTIPODE","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtvector%2FscANTIPODE/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtvector%2FscANTIPODE/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mtvector%2FscANTIPODE/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mtvector","download_url":"https://codeload.github.com/mtvector/scANTIPODE/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":236955342,"owners_count":19231636,"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":["pyro","scrna-seq","scvi-tools","variational-autoencoder"],"created_at":"2024-12-09T02:20:43.689Z","updated_at":"2025-03-29T04:30:16.709Z","avatar_url":"https://github.com/mtvector.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 style=\"text-align: center;\"\u003e scANTIPODE\u003c/h1\u003e\n\n[\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"assets/antipode_logo_alternate.png\" alt=\"antipode logo!\" width=\"200\"\u003e\n\u003c/div\u003e](\"https://en.wikipedia.org/wiki/Antipodes\")\n\n\n**NOTICE: This package will be under heavy development until publication, and will be subject to changes until release 0.1**\n\n\n\n\n**S**ingle **C**ell **A**ncestral **N**ode **T**axonomy **I**nference by **P**artitioning **O**f **D**ifferential **E**xpression. The model is an extension of the SCVI paradigm--a structured generative, variational inference model developed for the simultaneous analysis (DE) and categorization (taxonomy generation) of cell types across evolution (or now any covariate) using single-cell RNA-seq data. Long ago it began as a hack of a simplified model of [scANVI](https://pyro.ai/examples/scanvi.html) and is built on the pytorch-based PPL [pyro](https://pyro.ai/). The model acts as an integration method, that learns interpretable differential expression in the process. Note that this means ANTIPODE will fail to integrate datasets of different datasets, or datasets with large disparities in quality or gene mean dispersions.\n\nThe complete procedure runs in 3 phases (but can also run fully supervised using only phase 2):\n\n1. **The Fuzzy Phase:** Cells may belong to multiple types sampled from a bernoulli distribution, learns an integrated latent space with covariate effects, but is less straightforward to interpret.\n\n2. **The Supervised Phase:** Discrete clustering is initialized from a supervised initialization (or defaults to a de novo k-means clustering in the latent space). Can take a supervised clustering and/or latent space for cells.\n\n3. **The Free Phase:** All parameters are released for unconstrained learning.\n\n\nYou can read about the generative model [here](https://www.overleaf.com/read/nmcmcjtvmfcb#acf7a4). You can look at example runs [here](examples/outputs/).\n\n\n## Installation\nFirst create a conda environment with python \u003e= 3.10\n```\ngit clone git@github.com:mtvector/scANTIPODE.git\n#cuda 11.7 should work too\nconda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia\nconda install jax jaxlib -c conda-forge\ncd scANTIPODE\npip install -e .\n\nAdditional analysis stuff\n\npip install gseapy liana\n\n```\n\nInstead of separately installing pytorch, lately I've favored a full [RAPIDS install](https://docs.rapids.ai/install/#selector), as this should provide a robust environmnet setup and give you access access to fun tools like GPU accellerated UMAP.\n\n```\n# So in place of: conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia\nconda create -n antipode -c rapidsai -c conda-forge -c nvidia  \\\n    rapids=24.12 python=3.12 'cuda-version\u003e=12.0,\u003c=12.5' \\\n    'pytorch=*=*cuda*'\n```\n\n\nPlease reach out to let me know if you try ANTIPODE on a dataset and it works (or doesn't work)... The model is (forever) a work in process!\n\nNote that the model can be VRAM hungry, with parameters scaling by #covariates x #genes x #clusters|#modules... if you run out of vram, you might need to 1. fix a\nGPU memory leak, 2. use fewer genes/latent dimensions/clusters/particles, 3. get a bigger GPU\n\n## Coming hopefully soon\n- ~~.Improved plotting functionality~~.\n- Expanded tutorials\n- PyPI release\n- ~~.Gene expression histogram normalization~~.\n- Phylogeny regression\n\n## Unknown timeline challenges to take on\n- Parameter variance estimation\n- Improved clustering\n- Full ancestral reconstruction\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmtvector%2Fscantipode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmtvector%2Fscantipode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmtvector%2Fscantipode/lists"}