Add TAU as an optional clustering method in Scanpy
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 2.6k
- Forks
- 779
- Avg merge
- 1d 4h
- Merged PRs (30d)
- 27
Description
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
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Review Scanpy's existing Leiden and Louvain clustering APIs and the conventions for optional dependencies before deciding where TAU should fit. Done means a Scanpy-native clustering entry point, clear behavior when tau_community_detection is missing, and coverage for the integration and dependency error paths.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- data, machine-learning
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100