Skip to content

Add TAU as an optional clustering method in Scanpy #3919

@HillelCharbit

Description

@HillelCharbit

What kind of feature would you like to request?

New analysis tool: A simple analysis tool you have been using and are missing in sc.tools?

Please describe your wishes

I would like to propose adding TAU as an additional clustering method in Scanpy, alongside existing methods such as Leiden and Louvain. TAU is a graph-based community detection algorithm implemented as a standalone Python package (tau_community_detection, available on PyPI). The goal would be to make it accessible through a Scanpy-native API so users can easily apply and benchmark it within standard Scanpy workflows.

This request is motivated by empirical results reported in the TAU paper, which show consistently higher modularity scores compared to Leiden/Louvain across a variety of benchmarks, including both synthetic graphs (e.g. LFR benchmarks) and real-world datasets. This suggests TAU could serve as a useful complementary clustering option for users interested in alternative optimization behavior, while preserving Scanpy’s existing clustering defaults.

To keep the maintenance burden low, TAU can be integrated as an optional dependency. If the dependency is missing, Scanpy could raise a clear error message instructing the user how to install it.

I’m happy to take responsibility for:

  • maintaining API stability and compatibility on the TAU side
    -preparing an implementation aligned with Scanpy’s style, CI, and testing conventions
  • adapting the TAU interface as needed to fit Scanpy’s design decisions

Metadata

Metadata

Assignees

No one assigned

    Labels

    Triage 🩺This issue needs to be triaged by a maintainer

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions