Metadata-Version: 2.1
Name: scglue
Version: 0.2.0
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>, Xin-Ming Tu <xinmingtu@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: h5py
Requires-Dist: sparse
Requires-Dist: packaging
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: leidenalg ; extra == "test"
Requires-Dist: plotly ; 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)
[![pypi-badge](https://img.shields.io/pypi/v/scglue)](https://pypi.org/project/scglue)
[![conda-badge](https://anaconda.org/scglue/scglue/badges/version.svg)](https://anaconda.org/scglue/scglue)
[![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
├── pyproject.toml          # Python package metadata
├── LICENSE
└── README.md
```

## Installation

The `scglue` package can be installed either via conda:

```sh
conda install -c defaults -c pytorch -c bioconda -c conda-forge -c scglue scglue
```

Or 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).

## 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 -a -b html docs docs/_build
```

## 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.

