Skip to content

ZAEDPolSl/pyFUNCellA

Repository files navigation

pyFUNCellA

Run unit tests CodeFactor

This repository is a Python implementation of the FUNCellA R package. You can use the original R version or run this Python version with the instructions below.

The presented package provides a wrapper solution for single-sample pathway enrichment algorithms. Additional functionality includes sample-level thresholding.

Implemented single-sample enrichment algorithms:

  1. AUCell scoring (Aibar et al. 2017) - scRNA-Seq only
  2. BINA (Zyla et al. 2025?) - scRNA-Seq only
  3. CERNO AUC (Zyla et al. 2019)
  4. JASMINE (Noureen et al. 2022) - scRNA-Seq only
  5. Mean
  6. ssGSEA (Barbie et al. 2009, Hänzelmann et al. 2013)
  7. Z-score (Lee et al. 2008)

Implemented thresholding solutions:

  1. AUCell package thresholding (Aibar et al. 2017)
  2. k-means
  3. GMM thresholding with Top 1 and k-means adjustment (Zyla et al. 2025?)

Installation & Usage

The application is available here. It is free of charge and it does not store your data. Feel free to use it!
If you want to run it locally, there are several options:

🐳 Docker

🚀 Quick Start - Run Pre-built App

# Pull and run the app directly (fastest option)
docker run -p 8501:8501 amrukwa/funcella:latest

The app will be available at http://localhost:8501

🏗️ Build Locally with Cache (faster builds)

# Use cached builder for faster builds
docker build -f docker/streamlit.dockerfile --cache-from amrukwa/funcella:builder -t funcella .
docker run -p 8501:8501 funcella

🔧 Build from Scratch

# Full build (slower, but completely from source)
docker build -f docker/streamlit.dockerfile -t funcella .
docker run -p 8501:8501 funcella

🛠️ Manual Installation

  1. R dependencies (Required for GMM and AUCell thresholding)
# Recommended: Use the setup script for reliable installation
Rscript setup_docker_compatible_renv.R

Alternative R setup methods:

# Option 1: Using renv (may require manual package fixes)
install.packages("renv")
renv::restore()

# Option 2: Manual installation
install.packages("BiocManager")
BiocManager::install("GSVA")
BiocManager::install("AUCell")
remotes::install_github("ZAEDPolSl/dpGMM")

Note: If you encounter GitHub authentication issues when installing dpGMM, the setup script handles this automatically by using alternative installation methods.

  1. Python dependencies
# Install Poetry
curl -sSL https://install.python-poetry.org | python3 -

# Install dependencies
poetry install

# Run the app
streamlit run app.py

🔧 Troubleshooting

R Package Issues

If you encounter errors related to missing R package dpGMM:

  • The package will attempt automatic installation
  • Alternatively, download and install manually from the repository environment.

REFERENCES

Aibar, S., Bravo González-Blas, C., Moerman, T., Huynh-Thu, V.A., Imrichová, H., Hulselmans, G., Rambow, F., Marine, J.C., Geurts, P., Aerts, J., van den Oord, J., Kalender Atak, Z., Wouters, J., & Aerts, S (2017). SCENIC: Single-cell regulatory network inference and clustering. Nature Methods, 14, 1083–1086.
Barbie, D.A., Tamayo, P., Boehm, J.S., et al. (2009). Systematic RNA interference reveals that oncogenic KRAS-driven cancers require TBK1. Nature, 462(7273), 108–112.
Hänzelmann, S., Castelo, R., & Guinney, J. (2013). GSVA: gene set variation analysis for microarray and RNA-seq data. BMC Bioinformatics, 14, 7.
Lee, E., Chuang, H.Y., Kim, J.W., Ideker, T., & Lee, D. (2008). Inferring pathway activity toward precise disease classification. PLoS Computational Biology, 4(11), e1000217.
Noureen, N., Ye, Z., Chen, Y., Wang, X., & Zheng, S. (2022). Signature-scoring methods developed for bulk samples are not adequate for cancer single-cell RNA sequencing data. Elife, 11, e71994.
Zyla, J., Marczyk, M., Domaszewska, T., Kaufmann, S. H., Polanska, J., & Weiner III, J. (2019). Gene set enrichment for reproducible science: comparison of CERNO and eight other algorithms. Bioinformatics, 35(24), 5146–5154.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors