Fork me on GitHub!


Build Status install with bioconda

cellassign automatically assigns single-cell RNA-seq data to known cell types across thousands of cells accounting for patient and batch specific effects. Information about a priori known markers cell types is provided as input to the model in the form of a (binary) marker gene by cell-type matrix. cellassign then probabilistically assigns each cell to a cell type, removing subjective biases from typical unsupervised clustering workflows.

Getting started


Installing from GitHub

cellassign is built using Google’s Tensorflow, and as such requires installation of the R package tensorflow:


cellassign can then be installed from github:

install.packages("devtools") # If not already installed

Installing from conda

With conda, install the current release version of cellassign as follows:

conda install -c conda-forge -c bioconda r-cellassign


Basic usage

cellassign requires the following inputs:

  • exprs_obj: Cell-by-gene matrix of raw counts (or SingleCellExperiment with counts assay)
  • marker_gene_info: Binary gene-by-celltype marker gene matrix or list relating cell types to marker genes
  • s: Size factors
  • X: Design matrix for any patient/batch specific effects

The model can be run as follows:

cas <- cellassign(exprs_obj = gene_expression_data,
                  marker_gene_info = marker_gene_info,
                  s = s,
                  X = X)

An example set of markers for the human tumour microenvironment can be loaded by calling


Please see the package vignette for details and caveats.


Probabilistic cell type assignment of single-cell transcriptomic data reveals spatiotemporal microenvironment dynamics in human cancers, Biorxiv 2019


Allen W Zhang, University of British Columbia

Kieran R Campbell, University of British Columbia