HiGlass的Python绑定
项目描述
higlass-python 🔎
基于 higlass
的全新Python库
higlass-schema
: HiGlass的Pydantic模型。higlass-widget
: 用于Jupyter环境的跨平台 AnyWidget。
安装
pip install higlass-python
用法
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)
要了解关于新API的更多信息,请查看 更新后的文档。
升级指南
higlass-python v1.0是对先前实现的全面重写,旨在提供更易于使用和更灵活的API。虽然这可能在升级现有代码时带来挑战,但我们已准备了 文档 以指导您使用新API。
如果您发现缺少功能,请打开一个问题 - 我们致力于使用新API支持您的用例。
尽管v1.0版本有重大变化,但我们将努力避免破坏性更改。然而,由于完全重写,v1.0版本并不严格遵循语义版本控制。您可以将它视为一个预1.0版本,其中破坏性更改和新功能包含在次要版本中,而错误修复包含在补丁版本中。
我们将致力于v2.0版本中实现严格的语义版本控制。非常感谢您的反馈和理解。
开发
higlass-python 使用了推荐的 hatchling
构建系统,通过 hatch
CLI 使用方便。我们建议全局安装 hatch
(例如,通过 pipx
),并运行 pyproject.toml
中定义的各种命令。 hatch
会负责创建和同步一个包含 pyproject.toml
中定义的所有依赖的虚拟环境。
命令速查表
所有命令都在项目根目录下,从终端运行
命令 | 操作 |
---|---|
hatch run fix |
使用 black . 格式化项目,并使用 ruff --fix . 应用 linting。 |
hatch run lint |
使用 ruff . 检查项目。 |
hatch run test |
使用最新 Python 版本的 pytest 运行单元测试。 |
hatch run test:test |
使用 pytest 在所有目标 Python 版本上运行单元测试。 |
hatch run docs:build |
在 docs/_build/html 中构建文档。 |
hatch run docs:serve |
在 docs/ 中启动用于实时编辑 RST 文件的开发服务器。 |
注意:
hatch build
和hatch publish
可用于构建并将项目发布到 PyPI,但所有发布都通过 CI 自动处理。
或者,您可以通过手动创建虚拟环境和使用 pip
管理安装和依赖来开发 higlass-python。例如,使用 conda
创建虚拟环境
conda create -n higlass python=3.11
conda activate higlass
并将 higlass-python 以 可编辑 模式安装,包括所有可选依赖
pip install -e ".[dev,fuse,docs]"
我们的 CI 检查格式(black .
)、linting(ruff .
)和测试(pytest
)。