Skip to main content

Python bindings for HiGlass

Project description

higlass-python 🔎

A fresh Python library for higlass built on top of:

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 uses the recommended hatchling build-system, which is convenient to use via the hatch CLI. We recommend installing hatch globally (e.g., via pipx) and running the various commands defined within pyproject.toml. hatch will take care of creating and synchronizing a virtual environment with all dependencies defined in pyproject.toml.

Commands Cheatsheet

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

Command Action
hatch run fix Format project with black . and apply linting with ruff --fix .
hatch run lint Lint project with ruff ..
hatch run test Run unit tests with pytest in latest Python version.
hatch run test:test Run unit tests with pytest in all target Python versions.
hatch run docs:build Build the documentation in docs/_build/html.
hatch run docs:serve Start an dev-server for live editing RST files in docs/.

Note: hatch build and hatch publish are available to build and publish the project to PyPI, but all releases are handled automatically via CI.

Alternatively, you can develop higlass-python by manually creating a virtual environment and managing installation and dependencies with pip. For example, create a virtual environment with conda:

conda create -n higlass python=3.11
conda activate higlass

and install higlass-python in editable mode with all optional dependencies:

pip install -e ".[dev,fuse,docs]"

Our CI checks formatting (black .), linting (ruff .), and tests (pytest).

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.0.1.tar.gz (2.2 MB view details)

Uploaded Source

Built Distribution

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

Uploaded Python 2 Python 3

File details

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

File metadata

  • Download URL: higlass_python-1.0.1.tar.gz
  • Upload date:
  • Size: 2.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for higlass_python-1.0.1.tar.gz
Algorithm Hash digest
SHA256 b1a84baf7c0fd1baad79099160115c692a93643061633bf5bfcd046b737f006d
MD5 e1e4521b68c1fdf92de28db3432a3cb2
BLAKE2b-256 497b61f8e513845719ad06f5a3703dc0f7f5c00ccb8b6e3eeb9f0c4c02d8a2ca

See more details on using hashes here.

File details

Details for the file higlass_python-1.0.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for higlass_python-1.0.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 3562e7faccd1d59c1d272e36e44d131e002a21fcfe8e00eed54e80e4b3fa75db
MD5 f8417a8809b9431e0e3c1ab93b07c808
BLAKE2b-256 d882b372296c70fb17594515d1826b18dd2b321da48a64ead48fa26fd6d73803

See more details on using hashes here.

Supported by

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