Skip to content

v1.3.0

Latest
Compare
Choose a tag to compare
@manzt manzt released this 12 Feb 21:46
· 2 commits to main since this release
8965585

This release deliberately contains backwards-incompatible changes. To avoid automatically picking up releases like this, you can pin the exact version of higlass-python in your pyproject.toml or requirements.txt file .

  • Switch to Jupyter comms-based server (remove hg.server) by @manzt in #145

HiGlass now uses Jupyter's built-in communication system to serve tilesets, removing the need for hg.server. Previously, hg.server ran a background HTTP server, but it caused issues on remote machines (e.g., authentication, port configuration).

This update removes hg.server and replaces it with a Jupyter comms-based approach, leveraging existing WebSocket connections. This makes HiGlass more robust across different environments and simplifies setup.

If HiGlass already works for you, nothing should change! If you previously used hg.server.enable_proxy, you can simple remove that line in your code:

-- hg.server.enable_proxy() 

This is a new feature, so please report any issues!

  • Add higlass.Tileset for making custom tilesets by @manzt in #172, #177

With the removal of hg.server, HiGlass now provides a simpler way to define custom tilesets.

Instead of hg.server.add(tileset), you can now subclass hg.Tileset:

from dataclasses import dataclass

import higlass as hg
from clodius.tiles import cooler

@dataclass
class MyCustomCoolerTileset(hg.Tileset):
    path: str
    datatype = "matrix"

    def tiles(self, tile_ids):
        return cooler.tiles(self.path, tile_ids)

    def info(self):
        return cooler.tileset_info(self.path)

tileset = MyCustomCoolerTileset("test.mcool")
hg.view(tileset.track())

hg.Tileset automatically registers the tileset via Jupyter comms and provides a .track() method to create a HiGlass track with the correct tileset information.

higlass.fuse was an incomplete and poorly documented feature that added complexity without clear benefits. Filehandle-like interfaces now provide a more reliable alternative. If you relied on this feature, please open an issue!

Full Changelog: v1.2.1...v1.3.0