Please note SingleCellProjections v0.5 has completely changed the public interface, with major improvements. Refer to the tutorial for how to use the new interface.
SingleCellProjections.jl is an easy to use and powerful package for analysis of Single Cell Expression data in Julia. It is faster and uses less memory than existing solutions since the data is internally represented as expressions of sparse and low rank matrices, instead of storing huge dense matrices. In particular, it efficiently performs PCA (Principal Component Analysis), a natural starting point for downstream analysis, and supports both standard workflows and projections onto a base data set.
Install SingleCellProjections.jl by running the following commands in Julia:
using Pkg
Pkg.add("SingleCellProjections")SingleCellProjections.jl relies heavily on threading. Please make sure to enable threading in Julia to dramatically improve computation speed.
Here is a tutorial, showcasing SingleCellProjections.jl functionality using an AML (Acute Myeloid Leukemia) data set.
For more information, please refer to the documentation.
Here are some example plots using an Acute Myeloid Leukemia (AML) data set from the paper:
Henrik Lilljebjörn, Pablo Peña-Martínez, Hanna Thorsson, Rasmus Henningsson, Marianne Rissler, Niklas Landberg, Noelia Puente-Moncada, Sofia von Palffy, Vendela Rissler, Petr Stanek, Jonathan Desponds, Xiangfu Zhong, Gunnar Juliusson, Vladimir Lazarevic, Sören Lehmann, Magnus Fontes, Helena Ågerstam, Carl Sandén, Christina Orsmark-Pietras, Thoas Fioretos. "The AML cellular state space unveils NPM1 immune evasion subtypes with distinct clinical outcomes". Nat Commun 16, 10592 (2025).
A force layout plot of all the NBM (Normal Bone Marrow) samples:

A projection of a single sample onto the NBM force layout:

The same projection, but visualized in a contour plot (the numbers on the contour lines show density in number of cells per grid square):
