BigClust 2.0
bigclust2 is a re-design of bigclust, a graphical interface for interactively exploring clusterings of high-dimensional connectomic data.
Typically this means morphological or connectivity-based embeddings but it can be used for any kind of distances or features.
📖 Documentation — guides, reference and the data format specification.
Highlights:
- Interactive 2D scatter plots: Explore large clusterings interactively with zoom, pan, and selection.
- Neuroglancer-like 3D viewer: Visualize neuron morphology in a 3D viewer.
- Widgets for days: All the tools you need to explore and cluster your data: cluster methods, dimensionality reduction, fidelity metrics, feature selection, connectivity explorer, etc.
- Annotations: Push annotation straight to supported backends (e.g. Clio or SeaTable) or export them as CSV/Parquet files.
Quick start
First make sure you have the Python package manager uv installed. Then run:
uvx bigclust2@latest
Try the example dataset
Don't have a project yet? Open the public example — no account, no credentials, nothing to download first:
uvx bigclust2@latest --from https://flyem.mrc-lmb.cam.ac.uk/flyconnectome/bigclust_data/examples/MaleCNS_FlyWire_hemibrain_central_brain_bigclust
That's a co-clustering of 87,263 central brain neurons from FlyWire (32,384), MaleCNS (32,164) and Hemibrain (22,715), laid out by connectivity and streamed over HTTP (~63 MB). Select a cluster and the 3D viewer shows those neurons from all three connectomes together, in a common space.
See the example dataset for things to try.
Open your own
uvx bigclust2@latest --from /path/to/my_clustering
uvx bigclust2@latest --from https://example.org/my_clustering
To build one, see create a local dataset.
To work with the latest development version:
uvx --from git+https://github.com/flyconnectome/bigclust2@main bigclust2
See the installation guide for the other options, and your first project for a walkthrough.
Data Format
Data sources are whole directories (local or remote) containing both the data itself as well as metadata files describing the setup — a Neuroglancer-like approach. A simple example:
/my_clustering/
info <- JSON-formatted settings for the dataset
meta.parquet <- per-neuron metadata (required)
embeddings.parquet <- low-dimensional embeddings for the scatter plot
distances.parquet <- pairwise distances (optional)
features.parquet <- high-dimensional features (optional)
The full specification — the info file, the meta/distances/embeddings/features files, KNN graphs, multiple embeddings, multiple datasets, and best practices for Parquet formatting — is in the data format reference.
Controls
Most UI elements are hopefully self-explanatory — when in doubt look for the tooltip. The essentials:
| Key | Does |
|---|---|
CMD/ctrl + shift + P |
Open the command palette — search and run any command |
C |
Toggle the control panel (scatter) / legend (3D viewer) |
L |
Toggle labels |
| shift + drag | Draw a selection box (add CMD to add to the selection) |
| shift + ctrl + drag | Draw a lasso selection (add CMD to add to the selection) |
ESC |
Deselect all points |
SPACE |
Cycle through embeddings |
If you only remember one, make it the command palette: it lists every command in the menu bar with fuzzy search (gs → "Grow Selection", dh → "Distance Heatmap") and shows each one's shortcut, so you pick those up as you go.
The complete list is in the keyboard and mouse reference, and in the app under Help → Keyboard Shortcuts.
Documentation
The docs are built with Zensical and live in docs/.
uv run --extra docs zensical serve -o # live preview
uv run --extra docs zensical build # -> site/
They are published to GitHub Pages from main by .github/workflows/docs.yml. Pull requests are built and link-checked with --strict but not published.
The landing page hero is docs/javascripts/clusters.js — a dependency-free WebGL point cloud that morphs between six layouts of the same 9,000 observations (UMAP-style blobs, a t-SNE sunflower, two lobes, filaments, a horseshoe and a continuum). Without JavaScript or WebGL it falls back to the blurred screenshot.
Screen recordings referenced by the how-to pages are tracked in scripts/DOCS_MEDIA.md; scripts/record_docs_media.sh converts a capture into a GIF.
Development
- Clone this repository
cd bigclust2to change into this directoryuv run run.py --debugto start the GUI
Note run.py only understands --debug; use uv run bigclust2 --from ... if you need the other CLI flags.
Troubleshooting
See troubleshooting.
| Error | Solution |
|---|---|
Running uvx ... fails with an error containing realpath: command not found |
If you're on Mac, make sure your OS version is at least 13.x |
Ideas / TODOs
- Enable multiple embeddings per dataset (with a dropdown to select embedding)
- Allow selecting sets of features (e.g. upstream vs downstream or isomorphic vs dimorphic connections; this could simply use the multi-columns)
- Support pushing updated annotations back to annotation backends (e.g. Clio/FlyTable)
- Add support for Graph Exploration
- Allow users to change project settings (e.g. neuroglancer sources) before or after loading
- Support loading up-to-date annotations when opening a project (e.g. from Clio or Neuprint)
- Add more detailed documentation about data formats and structure
- Caching system for remote data sources for faster start-up times
- this turns out to not really be a problem from the client side; could still implement to reduce traffic on the server side
- Support sharing figure state (e.g.
uvx bigclust --state <state_id>) - Fine-control over hover info
- Record the screen captures listed in
scripts/DOCS_MEDIA.md
Metadata
Release files for bigclust2 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| bigclust2-0.2.0.tar.gz | 391.9 kB | With provenance | Details for bigclust2-0.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| bigclust2-0.2.0-py3-none-any.whl | Python 3 | none | any | Details for bigclust2-0.2.0-py3-none-any.whl |
Total release size: 803.9 kB
Release files / bigclust2-0.2.0.tar.gz
| Download URL | bigclust2-0.2.0.tar.gz |
|---|---|
| Size | 391.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f14b224873a77887940f588838954f7521d1bdb13885c612fd97387ecaf82ab4
|
|
BLAKE2b-256 checksum How to use checksums |
42d729e1f2f20d8171029789d78a5cd928a42876315734885f416ea72d07081b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 25, 2026.
Transparency logRelease files / bigclust2-0.2.0-py3-none-any.whl
| Download URL | bigclust2-0.2.0-py3-none-any.whl |
|---|---|
| Size | 412.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
372075e12ff76a23845ae4f4813885771d2dae00e0c8c1ed14e1360afa46c60a
|
|
BLAKE2b-256 checksum How to use checksums |
cbb8936c88eb01f033e7aac7e749ee492dcc5df1488d1bd03522b0f5e1328bea
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 25, 2026.
Transparency logSecurity for bigclust2 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for bigclust2-0.2.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 25, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.