Fourteen pull requests since 1.0.0. Backwards compatible — nothing removed or
renamed — so the additions are safe, and the reasons to upgrade are the
corrections.
Fixed — these are live in 1.0.0 today
| The categorical palette repeated colours, so two clusters could render identically | #86 |
vln_plot drew the wrong violin three ways — bandwidth, trim, and points |
#89 |
aggregate_expression(return_object=True) left raw sums in data where Seurat log-normalizes (14 against 6.98) |
#93 |
_get_expression_matrix returned the wrong layer when asked for scale.data, and labelled the right one with the wrong features |
#93 |
| The pbmc3k annotated UMAP captioned the platelet cluster "DC" | #98 |
feature_plot alone rasterised its points, and did so unconditionally |
#86 |
If you run pseudobulk, read a violin, or trust a cluster colour, 1.0.0 is giving
you something wrong.
Added
average_expression, mirroring Seurat'sAverageExpression— the
back-transformed per-group mean, distinct fromaggregate_expression's sums.find_clustersaccepts several resolutions and writes a
{graph}_res.{r}column per resolution, asFindClustersdoes. Choosing a
resolution means comparing a few.split_byondim_plot,feature_plotandvln_plot.- A theme layer —
set_theme,theme_context,get_theme,reset_theme. ridge_plotwarns when an explicitfigsizecannot fit the groups.
Performance
find_markers computes its min_pct and logfc_threshold masks on the sparse
matrix and densifies only the survivors, instead of building a dense
genes × cells array per group first. Marker tables are byte-identical:
| dataset (clusters) | time | peak memory |
|---|---|---|
| ifnb (15) | 25.37s → 8.03s | 9420 MB → 3580 MB |
| pbmc8k (9) | 12.71s → 6.32s | 9253 MB → 2406 MB |
| thp1 (7) | 45.52s → 23.87s | 10620 MB → 9428 MB |
A cross-language benchmark suite against R Seurat landed alongside it —
tutorials/benchmark/PERFORMANCE.md.
Verification
add_module_scoreis now verified against Seurat as an equality, not a
correlation. Atnbin=1withctrl= pool size,sample(n, n)is a
permutation, so the control set is forced and the two tools agree to
6.66e-15 across 20,729 cells — against 1.8e-01 between two R seeds.- The guided tutorial scans four resolutions, each scored against Seurat.
Cluster counts match exactly at 0.4, 0.8 and 1.2; the 8-vs-9 split is specific
to 0.5. - CI now runs the PBMC 3k tutorials against real data, with a skip counted
as a failure. The1.0.0mislabelling above shipped under a guard that was
correct and had never executed. - Float64 round-trips fixed across every tutorial's R↔Python handoff.
Install
pip install --upgrade truecell
Full detail in CHANGELOG.md.