Skip to main content

Python bindings for HiGlass

Project description

higlass-python 🔎

A fresh Python library for higlass built on top of higlass-schema and anywidget.

License Open In Colab

Installation

pip install higlass-python

Usage

import higlass as hg

# Remote data source (tileset)
tileset1 = hg.remote(
    uid="CQMd6V_cRw6iCI_-Unl3PQ",
    server="https://higlass.io/api/v1/",
    name="Rao et al. (2014) GM12878 MboI (allreps) 1kb",
)

# Local tileset
tileset2 = hg.cooler("../data/dataset.mcool")

# Create a `hg.HeatmapTrack` for each tileset
track1 = tileset1.track("heatmap")
track2 = tileset2.track("heatmap")

# Create two independent `hg.View`s, one for each heatmap
view1 = hg.view(track1, width=6)
view2 = hg.view(track2, width=6)

# Lock zoom & location for each `View`
view_lock = hg.lock(view1, view2)

# Concatenate views horizontally and apply synchronization lock
(view1 | view2).locks(view_lock)

Side-by-side Hi-C heatmaps, linked by pan and zoom

To learn more about the new API, check out the updated documentation.

Upgrade Guide

higlass-python v1.0 is a total rewrite of our prior implementation, aimed to offer a more ergonomic and flexible API. While this might present challenges when upgrading existing code, we've prepared documentation to guide you through the new API usage.

If you find a missing feature, please open an issue – we're committed to supporting your use cases with the new API.

Despite the large changes in v1.0, we will strive to avoid breaking changes going forward. However, because of the complete rewrite, the v1.0 release doesn't strictly adhere to semantic versioning. You can think of it as a pre-1.0 release, with breaking changes and new features included in minor releases, and bug fixes in patch releases.

We will aim for strict semantic versioning with the v2.0 release. Your feedback and understanding are greatly appreciated.

Development

higlass-python is primarily a Python project, but it includes JavaScript for the anywidget-based front-end code (src/higlass/widget.js). We use uv for Python development and deno for linting and type-checking JavaScript.

All formatting, linting, and tests are enforced in CI.

Commands Cheatsheet

All commands are run from the root of the project, from a terminal:

Python

Command Action
uv run jupyter lab Run Jupyter lab with current package state
uv run ruff check --fix && uv run ruff format Lint and apply formatting
uv run check Check linting rules
uv run ruff format --check Check formatting
uv run pytest Run unit tests
uv run docs/build.py Build the documentation in docs/_build/html

JavaScript

Command Action
deno fmt Format code
deno lint --fix Lint and auto-fix issues
deno check src/higlass/widget.js Typecheck .js with TypeScript

Changelog

Check the GitHub Releases for a detailed changelog.

Release

Releases are managed via the GitHub UI.

Draft a new release:

  1. Create a tag

    • Click "Choose a tag", then type a new tag in the format v[major].[minor].[patch] to create it.
    • Note: The UI is not obvious about this. You can create a tag here, not just select one. Tag creation triggers a workflow to publish to PyPI.
  2. Generate release notes

    • Click "Generate Release Notes" to auto-summarize changes from merged PRs.
    • Edit to exclude irrelevant changes for end users (e.g., docs or CI).
  3. Document significant changes

    • Add migration steps or noteworthy updates.
    • Ensure PR titles are clear and consistent.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

higlass_python-1.4.0.tar.gz (2.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

higlass_python-1.4.0-py3-none-any.whl (24.2 kB view details)

Uploaded Python 3

File details

Details for the file higlass_python-1.4.0.tar.gz.

File metadata

  • Download URL: higlass_python-1.4.0.tar.gz
  • Upload date:
  • Size: 2.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for higlass_python-1.4.0.tar.gz
Algorithm Hash digest
SHA256 bf250e8baa2f3667f715a585805191cec5ab0bd8d93392abcdfe43aa430daef3
MD5 069ad7681f814d6b6104d0d5986efb7b
BLAKE2b-256 b681c8fb21cc64017177a673fc4dd76660113e9b42e7ebd6a551d1bde77eb365

See more details on using hashes here.

Provenance

The following attestation bundles were made for higlass_python-1.4.0.tar.gz:

Publisher: ci.yml on higlass/higlass-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file higlass_python-1.4.0-py3-none-any.whl.

File metadata

  • Download URL: higlass_python-1.4.0-py3-none-any.whl
  • Upload date:
  • Size: 24.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for higlass_python-1.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fa1d5ed4924b73bf391ee9342c82560c71942e980f799b338faf7c07c4c8a1e8
MD5 dfaea5e3276d475931ee47b8e96bc4c6
BLAKE2b-256 5c2906b523f00c0d2238658db9033f9be66e4ba859cab414f8bd69a38646ddac

See more details on using hashes here.

Provenance

The following attestation bundles were made for higlass_python-1.4.0-py3-none-any.whl:

Publisher: ci.yml on higlass/higlass-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page