Catalog PyPI
PACKAGE EXPLORERView in registry

ace-of-clust

PyPI

ACE-OF-Clust: Alignment, Comparison, and Evaluation of Omics Features in Clustering

Versions collected1
Direct dependencies6From release 0.2.2
Last observed20 Oct, 18:09 UTC

README

Version 0.2.2 documentation

ACE-OF-Clust (ace-of-clust)

ACE-OF-Clust (Alignment, Comparison, and Evaluation of Omics Features in Clustering) is a Python package built on top of clumppling that streamlines clustering-alignment workflows and supports downstream comparisons, summaries, and feature-level analyses for single-cell omics clustering results.

  • PyPI name (install): ace-of-clust
  • Python import (module): ace_of_clust
  • Current Version: 0.2.2
  • Last Update: May 2026

Check out this documentation site for the tutorials and API reference for the package.

Preprint

Liu, X., et al. (2026). Systematic clustering alignment and feature characterization for single-cell omics using ACE-OF-Clust. https://doi.org/10.64898/2026.03.09.710668

Installation

pip install ace-of-clust

Optional (better label adjustment in some plots):

pip install "ace-of-clust[adjusttext]"

Quickstart

Run clumppling / compModels via wrappers

from pathlib import Path

import ace_of_clust as aoc

# Example: run clumppling on an existing results directory / config
cls_dir = Path("input/clustering_res")
align_dir = Path("output/clumppling_run")
aoc.run_clumppling_via_main(
    input_dir=cls_dir,
    output_dir=align_dir,
    fmt="generalQ")

# Example: prepare and run compModels (paths/args will depend on your pipeline)
models = ['model1', 'model2']
suffixes = ["rep", "rep"]
model_dirs = [Path("output/clumppling_run_model_1") Path("output/clumppling_run_model_2")]
model_comp_dir = Path("output/clumppling_models")
qfilelists, qnamelists, mode_stats_files = aoc.prepare_comp_models_inputs(
    models=models,
    model_dirs=model_dirs,
    comp_dir=model_comp_dir,
    suffixes=suffixes,
)
model_comp_output_dir = Path("output/aligned_models")
aoc.run_comp_models(
    models=models,
    comp_dir=model_comp_dir,
    output_dir=model_comp_output_dir)

Load, analyze, and visualize results (compmodels)

import pandas as pd
import ace_of_clust as aoc

# load results
comp_res = aoc.load_compmodels_results(
    res_dir=model_comp_output_dir,
    input_dir=model_comp_dir,
)

# extract mode-pair mappings 
pair_mappings = aoc.extract_all_mode_pair_mappings(
    mode_names=comp_res.full_mode_names,
    all_modes_alignment=comp_res.all_modes_alignment,
    alignment_acrossK=comp_res.alignment_across_all,
)

# visualize cluster memberships (hard clustering)
fig, ax = aoc.plot_compmodels_membership_grid(
    comp_res,
    coords, # coordinates for scatter plot
    colors=colors,  # colors used for clusters
    val_threshold=0.5, # only plot points with membership values above this threshold
    suptitle="Cluster Memberships",
)

Reproducing examples

Note: Step-by-step tutorials are available on the documentation site. Please refer to the site for general usage instructions.

This repository keeps example scripts and notebooks separate from the installable library code. Its main purpose is to reproduce the figures from our manuscript. To reproduce the examples:

  1. Install the package (pip install ace-of-clust)
  2. Clone this repository (for examples/, etc.)
  3. Run the example scripts while using the installed package.

Examples included

Toy example

PBMC3K scRNA-seq (hard clustering)

  • pbmc3k_scRNAseq_clumppling.py — run Clumppling alignment on PBMC3K clustering results
  • pbmc3k_scRNAseq_compModels.py — run cross-model comparison on PBMC3K results
  • pbmc3k_scRNAseq_hc_aligned.ipynb — visualize and analyze aligned hard-clustering results
  • pbmc3k_scRNAseq_gs.ipynb — gene signature / feature-level analysis of PBMC3K results

HBC spatial transcriptomics (mixed-membership clustering)

  • hbc_st_clumppling.py — run Clumppling alignment on HBC spatial transcriptomics clustering results
  • hbc_st_analyses.ipynb — visualize and analyze aligned mixed-membership results
  • hbc_st_gs.ipynb — gene signature / feature-level analysis of HBC results

PBMC 10K multiome (cross-modal)

  • pbmc10k_multiomic_mmc_aligned.ipynb — cross-modal clustering analysis on PBMC 10K multiome data

Upstream clustering scripts

  • run_scanpy_clustering.py — generate scRNA-seq clustering results with Scanpy
  • run_seurat_clustering.R — generate scRNA-seq clustering results with Seurat
  • run_fasttopics_clustering.R — generate mixed-membership clustering results with FastTopics

Bug Reports and Feedback

If you encounter any issues using the tool, have suggestions for additional functions to include in the package, or have general feedback on our method, please contact the author at xiran_liu1 at brown dot edu.

Downloads & popularity

1downloads
1-day window · source-reported counts19 Oct 2026
54270
2026-07-23: 3 · observed 2026-10-20T22:59:55.7880834Z · period 2026-07-23–2026-07-232026-07-25: 2 · observed 2026-10-20T22:59:55.7880834Z · period 2026-07-25–2026-07-252026-07-27: 2 · observed 2026-10-20T22:59:55.7880834Z · period 2026-07-27–2026-07-272026-08-01: 1 · observed 2026-10-20T22:59:55.7880834Z · period 2026-08-01–2026-08-012026-08-02: 1 · observed 2026-10-20T22:59:55.7880834Z · period 2026-08-02–2026-08-022026-08-03: 12 · observed 2026-10-20T22:59:55.7880834Z · period 2026-08-03–2026-08-032026-08-04: 9 · observed 2026-10-20T22:59:55.7880834Z · period 2026-08-04–2026-08-042026-08-07: 1 · observed 2026-10-20T22:59:55.7880834Z · period 2026-08-07–2026-08-072026-08-09: 6 · observed 2026-10-20T22:59:55.7880834Z · period 2026-08-09–2026-08-092026-08-14: 4 · observed 2026-10-20T22:59:55.7880834Z · period 2026-08-14–2026-08-142026-08-17: 8 · observed 2026-10-20T22:59:55.7880834Z · period 2026-08-17–2026-08-172026-08-18: 54 · observed 2026-10-20T22:59:55.7880834Z · period 2026-08-18–2026-08-182026-08-19: 2 · observed 2026-10-20T22:59:55.7880834Z · period 2026-08-19–2026-08-192026-08-20: 1 · observed 2026-10-20T22:59:55.7880834Z · period 2026-08-20–2026-08-202026-08-23: 1 · observed 2026-10-20T22:59:55.7880834Z · period 2026-08-23–2026-08-232026-08-24: 15 · observed 2026-10-20T22:59:55.7880834Z · period 2026-08-24–2026-08-242026-08-28: 1 · observed 2026-10-20T22:59:55.7880834Z · period 2026-08-28–2026-08-282026-08-29: 1 · observed 2026-10-20T22:59:55.7880834Z · period 2026-08-29–2026-08-292026-08-31: 2 · observed 2026-10-20T22:59:55.7880834Z · period 2026-08-31–2026-08-312026-09-01: 5 · observed 2026-10-20T22:59:55.7880834Z · period 2026-09-01–2026-09-012026-09-03: 1 · observed 2026-10-20T22:59:55.7880834Z · period 2026-09-03–2026-09-032026-09-06: 6 · observed 2026-10-20T22:59:55.7880834Z · period 2026-09-06–2026-09-062026-09-09: 2 · observed 2026-10-20T22:59:55.7880834Z · period 2026-09-09–2026-09-092026-09-10: 1 · observed 2026-10-20T22:59:55.7880834Z · period 2026-09-10–2026-09-102026-09-12: 3 · observed 2026-10-20T22:59:55.7880834Z · period 2026-09-12–2026-09-122026-09-18: 17 · observed 2026-10-20T22:59:55.7880834Z · period 2026-09-18–2026-09-182026-09-22: 1 · observed 2026-10-20T22:59:55.7880834Z · period 2026-09-22–2026-09-222026-09-23: 2 · observed 2026-10-20T22:59:55.7880834Z · period 2026-09-23–2026-09-232026-09-24: 12 · observed 2026-10-20T22:59:55.7880834Z · period 2026-09-24–2026-09-242026-09-25: 5 · observed 2026-10-20T22:59:55.7880834Z · period 2026-09-25–2026-09-252026-09-26: 4 · observed 2026-10-20T22:59:55.7880834Z · period 2026-09-26–2026-09-262026-09-27: 3 · observed 2026-10-20T22:59:55.7880834Z · period 2026-09-27–2026-09-272026-09-28: 13 · observed 2026-10-20T22:59:55.7880834Z · period 2026-09-28–2026-09-282026-09-29: 2 · observed 2026-10-20T22:59:55.7880834Z · period 2026-09-29–2026-09-292026-09-30: 14 · observed 2026-10-20T22:59:55.7880834Z · period 2026-09-30–2026-09-302026-10-01: 1 · observed 2026-10-20T22:59:55.7880834Z · period 2026-10-01–2026-10-012026-10-06: 1 · observed 2026-10-20T22:59:55.7880834Z · period 2026-10-06–2026-10-062026-10-07: 1 · observed 2026-10-20T22:59:55.7880834Z · period 2026-10-07–2026-10-072026-10-08: 3 · observed 2026-10-20T22:59:55.7880834Z · period 2026-10-08–2026-10-082026-10-09: 11 · observed 2026-10-20T22:59:55.7880834Z · period 2026-10-09–2026-10-092026-10-10: 16 · observed 2026-10-20T22:59:55.7880834Z · period 2026-10-10–2026-10-102026-10-11: 1 · observed 2026-10-20T22:59:55.7880834Z · period 2026-10-11–2026-10-112026-10-12: 1 · observed 2026-10-20T22:59:55.7880834Z · period 2026-10-12–2026-10-122026-10-13: 4 · observed 2026-10-20T22:59:55.7880834Z · period 2026-10-13–2026-10-132026-10-14: 1 · observed 2026-10-20T22:59:55.7880834Z · period 2026-10-14–2026-10-142026-10-15: 1 · observed 2026-10-20T22:59:55.7880834Z · period 2026-10-15–2026-10-152026-10-16: 6 · observed 2026-10-20T22:59:55.7880834Z · period 2026-10-16–2026-10-162026-10-17: 1 · observed 2026-10-20T22:59:55.7880834Z · period 2026-10-17–2026-10-172026-10-18: 1 · observed 2026-10-20T22:59:55.7880834Z · period 2026-10-18–2026-10-182026-10-19: 1 · observed 2026-10-20T22:59:55.7880834Z · period 2026-10-19–2026-10-19
23 Jul19 Oct

pypistats · 50 observations shown. Missing days are unknown. Source category: overall: without mirrors.

View observed values
Date / source periodValueObserved at
2026-10-19 – 2026-10-1912026-10-20T22:59:55.7880834Z
2026-10-18 – 2026-10-1812026-10-20T22:59:55.7880834Z
2026-10-17 – 2026-10-1712026-10-20T22:59:55.7880834Z
2026-10-16 – 2026-10-1662026-10-20T22:59:55.7880834Z
2026-10-15 – 2026-10-1512026-10-20T22:59:55.7880834Z
2026-10-14 – 2026-10-1412026-10-20T22:59:55.7880834Z
2026-10-13 – 2026-10-1342026-10-20T22:59:55.7880834Z
2026-10-12 – 2026-10-1212026-10-20T22:59:55.7880834Z
2026-10-11 – 2026-10-1112026-10-20T22:59:55.7880834Z
2026-10-10 – 2026-10-10162026-10-20T22:59:55.7880834Z
2026-10-09 – 2026-10-09112026-10-20T22:59:55.7880834Z
2026-10-08 – 2026-10-0832026-10-20T22:59:55.7880834Z
2026-10-07 – 2026-10-0712026-10-20T22:59:55.7880834Z
2026-10-06 – 2026-10-0612026-10-20T22:59:55.7880834Z
2026-10-01 – 2026-10-0112026-10-20T22:59:55.7880834Z
2026-09-30 – 2026-09-30142026-10-20T22:59:55.7880834Z
2026-09-29 – 2026-09-2922026-10-20T22:59:55.7880834Z
2026-09-28 – 2026-09-28132026-10-20T22:59:55.7880834Z
2026-09-27 – 2026-09-2732026-10-20T22:59:55.7880834Z
2026-09-26 – 2026-09-2642026-10-20T22:59:55.7880834Z
2026-09-25 – 2026-09-2552026-10-20T22:59:55.7880834Z
2026-09-24 – 2026-09-24122026-10-20T22:59:55.7880834Z
2026-09-23 – 2026-09-2322026-10-20T22:59:55.7880834Z
2026-09-22 – 2026-09-2212026-10-20T22:59:55.7880834Z
2026-09-18 – 2026-09-18172026-10-20T22:59:55.7880834Z
2026-09-12 – 2026-09-1232026-10-20T22:59:55.7880834Z
2026-09-10 – 2026-09-1012026-10-20T22:59:55.7880834Z
2026-09-09 – 2026-09-0922026-10-20T22:59:55.7880834Z
2026-09-06 – 2026-09-0662026-10-20T22:59:55.7880834Z
2026-09-03 – 2026-09-0312026-10-20T22:59:55.7880834Z
2026-09-01 – 2026-09-0152026-10-20T22:59:55.7880834Z
2026-08-31 – 2026-08-3122026-10-20T22:59:55.7880834Z
2026-08-29 – 2026-08-2912026-10-20T22:59:55.7880834Z
2026-08-28 – 2026-08-2812026-10-20T22:59:55.7880834Z
2026-08-24 – 2026-08-24152026-10-20T22:59:55.7880834Z
2026-08-23 – 2026-08-2312026-10-20T22:59:55.7880834Z
2026-08-20 – 2026-08-2012026-10-20T22:59:55.7880834Z
2026-08-19 – 2026-08-1922026-10-20T22:59:55.7880834Z
2026-08-18 – 2026-08-18542026-10-20T22:59:55.7880834Z
2026-08-17 – 2026-08-1782026-10-20T22:59:55.7880834Z
2026-08-14 – 2026-08-1442026-10-20T22:59:55.7880834Z
2026-08-09 – 2026-08-0962026-10-20T22:59:55.7880834Z
2026-08-07 – 2026-08-0712026-10-20T22:59:55.7880834Z
2026-08-04 – 2026-08-0492026-10-20T22:59:55.7880834Z
2026-08-03 – 2026-08-03122026-10-20T22:59:55.7880834Z
2026-08-02 – 2026-08-0212026-10-20T22:59:55.7880834Z
2026-08-01 – 2026-08-0112026-10-20T22:59:55.7880834Z
2026-07-27 – 2026-07-2722026-10-20T22:59:55.7880834Z
2026-07-25 – 2026-07-2522026-10-20T22:59:55.7880834Z
2026-07-23 – 2026-07-2332026-10-20T22:59:55.7880834Z

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
0.2.28 May 20266

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Repository

PENDING
xr-cc/ace-of-clust

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 18:09 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:2658c49333af283972ac42582ac6c8c1048f951efb6548b21c23cbdb1114b2cc