Skip to main content

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.

BigClust 2.0 GUI

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

  1. Clone this repository
  2. cd bigclust2 to change into this directory
  3. uv run run.py --debug to 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)

Source distribution for bigclust2 0.2.0
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)

Table of built distributions (wheels) for bigclust2 0.2.0
File Interpreter ABI Platform Actions
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 log

Release 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 log

Security 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.

Select from 2 files

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 log

A 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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page