https://github.com/gao-lab/GLUE
Graph-linked unified embedding for single-cell multi-omics data integration
https://github.com/gao-lab/GLUE
bioinformatics deep-learning single-cell single-cell-multiomics
Last synced: 11 months ago
JSON representation
Graph-linked unified embedding for single-cell multi-omics data integration
- Host: GitHub
- URL: https://github.com/gao-lab/GLUE
- Owner: gao-lab
- License: mit
- Created: 2021-08-22T11:20:30.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2025-06-16T17:59:33.000Z (12 months ago)
- Last Synced: 2025-06-16T18:30:11.382Z (12 months ago)
- Topics: bioinformatics, deep-learning, single-cell, single-cell-multiomics
- Language: Python
- Homepage:
- Size: 6.44 MB
- Stars: 413
- Watchers: 6
- Forks: 61
- Open Issues: 24
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-single-cell - GLUE - [python] - GLUE (Graph-Linked Unified Embedding) is a deep learning method for unpaired single-cell multi-omics data integration and regulatory inference ([Paper](https://www.nature.com/articles/s41587-022-01284-4)). (Software packages / Multi-assay data integration)
- awesome-computational-biology - GLUE - Linked Unified Embedding framework for unpaired single-cell multi-omics data integration across RNA, ATAC, methylation, and protein modalities. (Machine Learning Tasks and Models / Foundation Models)
- awesome-multi-omics - GLUE - Cao - Multi-omics single-cell data integration and regulatory inference with graph-linked embedding - [paper](https://www.nature.com/articles/s41587-022-01284-4) (Software packages and methods / Multi-omics autoencoders)
README
# GLUE (Graph-Linked Unified Embedding)
[](https://github.com/gao-lab/GLUE/stargazers)
[](https://pypi.org/project/scglue)
[](https://anaconda.org/bioconda/scglue)
[](https://scglue.readthedocs.io/en/latest/?badge=latest)
[](https://github.com/gao-lab/GLUE/actions/workflows/build.yml)
[](https://github.com/gao-lab/GLUE/actions/workflows/build.yml)
[](https://github.com/python/black)
[](https://opensource.org/licenses/MIT)
Graph-linked unified embedding for single-cell multi-omics data integration

For more details, please check out our [publication](https://doi.org/10.1038/s41587-022-01284-4).
## Directory structure
```
.
├── scglue # Main Python package
├── data # Data files
├── evaluation # Method evaluation pipelines
├── experiments # Experiments and case studies
├── tests # Unit tests for the Python package
├── docs # Documentation files
├── custom # Customized third-party packages
├── packrat # Reproducible R environment via packrat
├── env.yaml # Reproducible Python environment via conda
├── pyproject.toml # Python package metadata
├── LICENSE
└── README.md
```
## Installation
The `scglue` package can be installed via conda using one of the following commands:
```sh
conda install -c conda-forge -c bioconda scglue # CPU only
conda install -c conda-forge -c bioconda scglue pytorch-gpu # With GPU support
```
Or, it can also be installed via pip:
```sh
pip install scglue
```
> Installing within a
> [conda environment](https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html)
> is recommended.
## Usage
Please checkout the documentations and tutorials at
[scglue.readthedocs.io](https://scglue.readthedocs.io).
A Chinese version is also available [here](https://scglue.readthedocs.io/zh_CN/latest/).
## Development
Install scglue in editable form via flit (first install flit via conda or pip
if not installed already):
```sh
flit install -s
```
Run unit tests:
```sh
pytest --cov="scglue" --cov-report="term-missing" tests [--cpu-only]
```
Build documentation:
```sh
sphinx-build -b gettext docs docs/_build/gettext
sphinx-intl update -p docs/_build/gettext -l zh_CN -d docs/locale
sphinx-build -b html -D language=en docs docs/_build/html/en # English version
sphinx-build -b html -D language=zh_CN docs docs/_build/html/zh_CN # Chinese version
```
## Reproduce results
1. Checkout the repository to v0.2.0:
```sh
git checkout tags/v0.2.0
```
2. Create a local conda environment using the `env.yaml` file,
and then install scglue:
```sh
conda env create -p conda -f env.yaml && conda activate ./conda
flit install -s
```
3. Set up a project-specific R environment:
```R
packrat::restore() # Packrat should be automatically installed if not available.
install.packages("data/download/Saunders-2018/DropSeq.util_2.0.tar.gz", repos = NULL)
install.packages("custom/Seurat_4.0.2.tar.gz", lib = "packrat/custom", repos = NULL)
```
> R 4.0.2 was used during the project, but any version above 4.0.0 should be compatible.
4. Follow instructions in `data` to prepare the necessary data.
5. Follow instructions in `evaluation` for method evaluation.
6. Follow instructions in `experiments` for case studies.