|
1 | 1 | # SnapCCESS <a href="https://github.com/PYangLab/SnapCCESS"><img src="https://i.imgur.com/XHEB9j1.png" title="SnapCCESS hex sticker" align="right" height="138" /></a> |
2 | 2 |
|
3 | | -SnapCCESS: Ensemble deep learning of embeddings for clustering multimodal single-cell omics data. |
| 3 | +SnapCCESS is an unsupervised ensemble deep learning framework for clustering |
| 4 | +multimodal single-cell omics data. It creates snapshots of multimodal variational |
| 5 | +autoencoder embeddings, which can then be used with downstream clustering |
| 6 | +methods to generate consensus cell clusters. |
4 | 7 |
|
| 8 | +The repository contains both: |
5 | 9 |
|
6 | | -We propose SnapCCESS for clustering cells by integrating data modalities in multimodal |
7 | | -single-cell omics data using an unsupervised ensemble deep learning framework. By creating snapshots |
8 | | -of embeddings of multimodality using variational autoencoders, SnapCCESS can be coupled with |
9 | | -various clustering algorithms for generating consensus clustering of cells. |
| 10 | +- `snapccess-py/`: the Python implementation distributed through PyPI. |
| 11 | +- `snapccess-r/SnapCCESS/`: an R wrapper that calls the Python package through |
| 12 | + `reticulate`. |
10 | 13 |
|
| 14 | + |
11 | 15 |
|
12 | | - |
| 16 | +## Publication |
13 | 17 |
|
| 18 | +SnapCCESS accompanies: |
14 | 19 |
|
| 20 | +> Yu, L., Liu, C., Yang, J. Y. H. & Yang, P. Ensemble deep learning of |
| 21 | +> embeddings for clustering multimodal single-cell omics data. |
| 22 | +> *Bioinformatics* 39(6), btad382 (2023). |
| 23 | +> <https://doi.org/10.1093/bioinformatics/btad382> |
15 | 24 |
|
16 | 25 | ## Installation |
17 | 26 |
|
18 | 27 | ### Python |
19 | 28 |
|
| 29 | +```bash |
| 30 | +pip install snapccess --index-url https://pypi.org/simple |
20 | 31 | ``` |
21 | | -pip install snapccess --index-url https://pypi.org/simple |
22 | | -``` |
23 | | - |
24 | | -For detailed description of each function, please see [https://github.com/PYangLab/SnapCCESS/tree/main/snapccess-py](https://github.com/PYangLab/SnapCCESS/tree/main/snapccess-py) |
25 | 32 |
|
| 33 | +The Python package depends on PyTorch. GPU acceleration is optional and depends |
| 34 | +on the local PyTorch/CUDA or PyTorch/ROCm installation. |
26 | 35 |
|
27 | | -### R |
| 36 | +### R Wrapper |
28 | 37 |
|
| 38 | +```r |
| 39 | +remotes::install_github( |
| 40 | + repo = "PYangLab/SnapCCESS", |
| 41 | + branch = "main", |
| 42 | + subdir = "snapccess-r/SnapCCESS" |
| 43 | +) |
29 | 44 | ``` |
30 | | -remotes::install_github(repo='PYangLab/SnapCCESS',branch='main',subdir='snapccess-r/SnapCCESS') |
| 45 | + |
| 46 | +After installing the R wrapper, install the Python package into a reticulate |
| 47 | +environment: |
| 48 | + |
| 49 | +```r |
| 50 | +SnapCCESS::install_SnapCCESS(envname = "SnapCCESS", method = "conda") |
31 | 51 | ``` |
32 | 52 |
|
33 | | -For detailed description of each function, please see [https://github.com/PYangLab/SnapCCESS/tree/main/snapccess-r](https://github.com/PYangLab/SnapCCESS/tree/main/snapccess-r) |
| 53 | +If Python dependencies are already managed through Conda, virtualenv, or a |
| 54 | +cluster module, configure `reticulate` to use that environment before loading |
| 55 | +the R wrapper. |
| 56 | + |
| 57 | +## Input Data |
34 | 58 |
|
| 59 | +SnapCCESS expects a list of modalities measured across the same cells, for |
| 60 | +example RNA and ADT matrices from CITE-seq. Each modality should be arranged as |
| 61 | +features by cells before preprocessing in the R wrapper. The Python API expects |
| 62 | +the combined PyTorch data loader used by the training routine. |
35 | 63 |
|
36 | | -## [Tutorial](https://github.com/PYangLab/SnapCCESS/tree/main/tutorials) |
37 | | -### NOTE: This tutorial only explains how to use this package; it doesn't recommend the best parameters for your datasets. For the datasets used in the published paper associated with this package, the parameters are listed in the same paper. Please refer to the paper to guide you in finding the best parameters. |
| 64 | +The tutorial data in `tutorials/in/` includes small CITE-seq RNA, ADT, and cell |
| 65 | +type files that can be used to run the examples. |
38 | 66 |
|
| 67 | +## Tutorials |
39 | 68 |
|
40 | | -For python version of script, please see [an_example_of_generate_embedding_using_SnapCCESS_python_version](https://github.com/PYangLab/SnapCCESS/blob/main/tutorials/src/an_example_of_generate_embedding_using_SnapCCESS_python_version.ipynb) |
| 69 | +- Python example: |
| 70 | + [`tutorials/src/an_example_of_generate_embedding_using_SnapCCESS_python_version.ipynb`](tutorials/src/an_example_of_generate_embedding_using_SnapCCESS_python_version.ipynb) |
| 71 | +- R example: |
| 72 | + [`tutorials/src/SnapCCESS_R_example.html`](tutorials/src/SnapCCESS_R_example.html) |
| 73 | +- Tutorial overview: |
| 74 | + [`tutorials/README.md`](tutorials/README.md) |
| 75 | + |
| 76 | +The tutorials demonstrate package usage. The best hyperparameters can vary by |
| 77 | +dataset; for the datasets used in the publication, refer to the paper. |
| 78 | + |
| 79 | +## Citation |
| 80 | + |
| 81 | +If you use SnapCCESS, please cite: |
| 82 | + |
| 83 | +```bibtex |
| 84 | +@article{Yu2023SnapCCESS, |
| 85 | + title = {Ensemble deep learning of embeddings for clustering multimodal single-cell omics data}, |
| 86 | + author = {Yu, Lijia and Liu, Chunlei and Yang, Jean Yee Hwa and Yang, Pengyi}, |
| 87 | + journal = {Bioinformatics}, |
| 88 | + year = {2023}, |
| 89 | + volume = {39}, |
| 90 | + number = {6}, |
| 91 | + pages = {btad382}, |
| 92 | + doi = {10.1093/bioinformatics/btad382}, |
| 93 | + url = {https://doi.org/10.1093/bioinformatics/btad382} |
| 94 | +} |
| 95 | +``` |
41 | 96 |
|
42 | | -For R version of script, please see |
43 | | -[SnapCCESS_R_example](https://htmlpreview.github.io/?https://github.com/PYangLab/SnapCCESS/blob/main/tutorials/src/SnapCCESS_R_example.html) |
| 97 | +## License |
44 | 98 |
|
45 | | -## References |
46 | | -Lijia Yu, Chunlei Liu, Jean Yee Hwa Yang, Pengyi Yang. Ensemble deep learning of embeddings for clustering multimodal single-cell omics data. *Bioinformatics*, 39(6), btad382, doi: [https://doi.org/10.1093/bioinformatics/btad382](https://doi.org/10.1093/bioinformatics/btad382), (2023). |
| 99 | +SnapCCESS is distributed under the GPL-3 license. |
0 commit comments