Metadata-Version: 2.1
Name: scglue
Version: 0.1.1
Summary: Graph-linked unified embedding for unpaired single-cell multi-omics data integration
Keywords: bioinformatics,deep-learning,single-cell,single-cell-multiomics
Author-email: Zhi-Jie Cao <caozj@mail.cbi.pku.edu.cn>
Requires-Python: >=3.6
Description-Content-Type: text/markdown
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Requires-Dist: numpy>=1.19
Requires-Dist: scipy>=1.3
Requires-Dist: pandas>=1.1
Requires-Dist: matplotlib>=3.1.2
Requires-Dist: seaborn>=0.9
Requires-Dist: dill>=0.2.3
Requires-Dist: tqdm>=4.27
Requires-Dist: scikit-learn>=0.21.2
Requires-Dist: statsmodels>=0.10
Requires-Dist: parse>=1.3.2
Requires-Dist: networkx>=2
Requires-Dist: pynvml>=8.0.1
Requires-Dist: torch>=1.7
Requires-Dist: pytorch-ignite>=0.4.1
Requires-Dist: tensorboardX>=1.4
Requires-Dist: anndata>=0.7
Requires-Dist: scanpy>=1.5
Requires-Dist: pybedtools>=0.8.1
Requires-Dist: sphinx<4 ; extra == "doc"
Requires-Dist: sphinx-autodoc-typehints<1.12 ; extra == "doc"
Requires-Dist: sphinx-copybutton ; extra == "doc"
Requires-Dist: nbsphinx ; extra == "doc"
Requires-Dist: sphinx-rtd-theme ; extra == "doc"
Requires-Dist: ipython ; extra == "doc"
Requires-Dist: flake8 ; extra == "test"
Requires-Dist: pytest ; extra == "test"
Requires-Dist: pytest-cov ; extra == "test"
Project-URL: Github, https://github.com/gao-lab/GLUE
Provides-Extra: doc
Provides-Extra: test

# GLUE (Graph-Linked Unified Embedding)

[![license-badge](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
![version-badge](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/Jeff1995/e704b2f886ff6a37477311b90fdf7efa/raw/version.json)
[![docs-badge](https://readthedocs.org/projects/scglue/badge/?version=latest)](https://scglue.readthedocs.io/en/latest/?badge=latest)
[![build-badge](https://github.com/gao-lab/GLUE/actions/workflows/build.yml/badge.svg)](https://github.com/gao-lab/GLUE/actions/workflows/build.yml)
[![coverage-badge](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/Jeff1995/e704b2f886ff6a37477311b90fdf7efa/raw/coverage.json)](https://github.com/gao-lab/GLUE/actions/workflows/build.yml)

Graph-linked unified embedding for single-cell multi-omics data integration

![Model architecture](docs/_static/architecture.svg)

For more details, please check out our [preprint](https://www.biorxiv.org/content/10.1101/2021.08.22.457275).

## 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
├── setup.py                # Setup script for the Python package
├── release.sh              # Script for releasing a new version
├── LICENSE
└── README.md
```

## Package installation

It is recommended to install `scglue` within a
[conda](https://docs.conda.io/en/latest/miniconda.html) environment.

First, initialize an empty conda environment (here named "scglue"):

```sh
conda env create -n scglue "python>=3.6" && conda activate scglue
```

Then, install scglue via:

```sh
pip install scglue
```

## Package usage

Please checkout the documentations and tutorials at
[scglue.readthedocs.io](https://scglue.readthedocs.io).

## Package development

Install scglue in editable form via flit:

```sh
pip install flit && flit install -s
```

Run unit tests:

```sh
pytest --cov="scglue" --cov-report="term-missing" tests [--cpu-only]
```

Build documentation:

```sh
sphinx-build -a -b html docs docs/_build
```

## Reproduce results

1. Checkout the repository to v0.1.1:

   ```sh
   git checkout tags/v0.1.1
   ```

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.

