# SiCell.jl and SingleCellProjections.jl — a comparison

**URL:** https://discourse.julialang.org/t/sicell-jl-and-singlecellprojections-jl-a-comparison/139676
**Category:** General Usage
**Tags:** question
**Created:** [September 25, 2026, 8:56pm UTC](https://discourse.julialang.org/t/sicell-jl-and-singlecellprojections-jl-a-comparison/139676 "2026-09-25T20:56:56Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![Sizerta](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sizerta/32/222205_2.png) [@Sizerta](https://discourse.julialang.org/u/Sizerta)
#### Post date: [September 25, 2026, 8:56pm UTC](https://discourse.julialang.org/t/sicell-jl-and-singlecellprojections-jl-a-comparison/139676/1 "2026-09-25T20:56:56Z")

</div>

## SiCell.jl vs SingleCellProjections.jl

I studied SingleCellProjections.jl and realized there is quite a bit of overlap with **SiCell.jl** , so I thought it might be useful to share how I currently see the two packages.

At a high level, I don’t think they are competing for exactly the same space, although there is definitely some overlap.

**SingleCellProjections.jl** seems to put more emphasis on composable analysis and, especially, reusing an existing analysis/reference to project new data into the same space. It already covers quite a lot of the standard single-cell workflow too, including normalization, PCA, UMAP/t-SNE, statistical testing, pseudobulk, and label transfer.

**SiCell.jl** is more centered around a single integrated `SingleCellObject` and an end-to-end workflow. Alongside the usual QC/normalization/PCA/clustering/annotation pieces, its main focus is currently trajectory analysis: diffusion maps, graph-based pseudotime, PAGA, and trajectory uncertainty measures such as **TES** and **TDS**.

So, very roughly:

|   
 | SingleCellProjections.jl | SiCell.jl |
| --- | --- | --- |
| Main idea | composable analysis + projection | integrated analysis + trajectories |
| Reference projection | ✓ | — |
| Standard scRNA-seq workflow | ✓ | ✓ |
| Pseudotime / PAGA | — | ✓ |
| Trajectory uncertainty | — | ✓ |

There is obviously some overlap, but I think the two approaches could also fit together nicely. For example, reference mapping/projection could happen on one side, followed by trajectory analysis on the other. Furthermore, SiCell seems faster in equal tasks.

This is just my current reading of the two projects, so corrections are very welcome — especially from the SingleCellProjections.jl side. 😉
