Skip to main content

Batch correction for single-cell data using the Harmony algorithm with a C++ Armadillo backend.

Project description

harmonypy

PyPI Downloads Tests DOI

harmonypy is a Python package for the Harmony algorithm for integrating multiple high-dimensional datasets. It uses a C++ backend (Armadillo) for fast linear algebra, matching the R harmony2 package step-by-step.

This animation shows Harmony aligning three single-cell RNA-seq datasets from different donors. → How to make this animation. Before Harmony, you can clearly distinguish cells from each of the three donors. After Harmony, the cells from different donors are mixed while preserving the overall shape of the data.

Installation

Install from PyPI (pre-built wheels for Linux and macOS):

pip install harmonypy

Building from source

Building from source requires a C++ compiler, CMake, and a BLAS library:

macOS (uses Apple Accelerate, no extra dependencies):

pip install .

Linux (requires OpenBLAS):

# Debian/Ubuntu
sudo apt install libopenblas-dev cmake

# RHEL/Fedora
sudo dnf install openblas-devel cmake

pip install .

Quick Start

import harmonypy as hm
import pandas as pd

# Load the principal components and metadata
pcs = pd.read_csv("data/pbmc_3500_pcs.tsv.gz", sep="\t")
meta = pd.read_csv("data/pbmc_3500_meta.tsv.gz", sep="\t")

# Run Harmony to correct for batch effects (donor)
harmony_out = hm.run_harmony(pcs, meta, "donor")

# Save corrected PCs (same shape as input)
result = pd.DataFrame(harmony_out.Z_corr, columns=pcs.columns)
result.to_csv("pbmc_3500_pcs_harmony.tsv", sep="\t", index=False)

Usage with Scanpy

import scanpy as sc
import harmonypy as hm

# Load and preprocess your data
adata = sc.read_h5ad("my_data.h5ad")
sc.pp.pca(adata)

# Get PCs from the AnnData object
pcs = adata.obsm['X_pca']
print(pcs.shape)  # (n_cells, n_pcs)

# Run Harmony on the PCA embedding
harmony_out = hm.run_harmony(pcs, adata.obs, "batch")

# Store corrected PCs back in the AnnData object
adata.obsm['X_pca_harmony'] = harmony_out.Z_corr

# Use harmonized PCs for downstream analysis
sc.pp.neighbors(adata, use_rep='X_pca_harmony')
sc.tl.umap(adata)
sc.tl.leiden(adata)

Parameters

run_harmony accepts the same parameters as the R package:

Parameter Default Description
theta 2 Diversity penalty per batch variable
sigma 0.1 Kernel bandwidth for soft clustering
nclust min(N/30, 100) Number of clusters
max_iter_harmony 10 Maximum Harmony iterations
max_iter_kmeans 4 K-means iterations per Harmony round
epsilon_harmony 1e-2 Convergence threshold
ncores 0 BLAS threads (0 = all cores)
lamb None Ridge penalty (None = auto-estimate)

The ncores parameter controls BLAS threading (Accelerate on macOS, OpenBLAS on Linux). Default is 0 (use all available cores). Set ncores=1 for single-threaded execution.

Performance

The script in tests/test_harmony.py on an Apple M1 (2022) chip reports:

  Dataset                    Time    RSS delta
  ---------------------- -------- ------------
  Small (3.5k cells)        0.23s     45.2 MB
  Medium (69k cells)        4.76s    262.3 MB
  Large (858k cells)       29.29s   1969.5 MB

Citation

If you use Harmony in your work, please cite the original paper:

Korsunsky, I., Millard, N., Fan, J. et al. Fast, sensitive and accurate integration of single-cell data with Harmony. Nat Methods 16, 1289–1296 (2019). https://doi.org/10.1038/s41592-019-0619-0

The Supplementary Information PDF provides detailed mathematical descriptions and implementation notes.

To learn more about Harmony 2, please see the preprint here:

Patikas, Nikolaos, Hongcheng Yao, Roopa Madhu, Soumya Raychaudhuri, Martin Hemberg, and Ilya Korsunsky. 2026. Integration of Large, Complex Single-Cell Datasets with Harmony2. bioRxiv. https://doi.org/10.64898/2026.03.16.711825

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

harmonypy-2.0.0.tar.gz (35.5 kB view details)

Uploaded Source

Built Distributions

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

harmonypy-2.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

harmonypy-2.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

harmonypy-2.0.0-cp313-cp313-macosx_11_0_x86_64.whl (158.5 kB view details)

Uploaded CPython 3.13macOS 11.0+ x86-64

harmonypy-2.0.0-cp313-cp313-macosx_11_0_arm64.whl (146.8 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

harmonypy-2.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

harmonypy-2.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

harmonypy-2.0.0-cp312-cp312-macosx_11_0_x86_64.whl (158.6 kB view details)

Uploaded CPython 3.12macOS 11.0+ x86-64

harmonypy-2.0.0-cp312-cp312-macosx_11_0_arm64.whl (146.9 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

harmonypy-2.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

harmonypy-2.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

harmonypy-2.0.0-cp311-cp311-macosx_11_0_x86_64.whl (159.4 kB view details)

Uploaded CPython 3.11macOS 11.0+ x86-64

harmonypy-2.0.0-cp311-cp311-macosx_11_0_arm64.whl (148.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

harmonypy-2.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

harmonypy-2.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

harmonypy-2.0.0-cp310-cp310-macosx_11_0_x86_64.whl (159.6 kB view details)

Uploaded CPython 3.10macOS 11.0+ x86-64

harmonypy-2.0.0-cp310-cp310-macosx_11_0_arm64.whl (148.2 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

harmonypy-2.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.5 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

harmonypy-2.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.7 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

harmonypy-2.0.0-cp39-cp39-macosx_11_0_x86_64.whl (159.8 kB view details)

Uploaded CPython 3.9macOS 11.0+ x86-64

harmonypy-2.0.0-cp39-cp39-macosx_11_0_arm64.whl (148.4 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file harmonypy-2.0.0.tar.gz.

File metadata

  • Download URL: harmonypy-2.0.0.tar.gz
  • Upload date:
  • Size: 35.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for harmonypy-2.0.0.tar.gz
Algorithm Hash digest
SHA256 98c18954781aec9a82aaec3cde3764d89fd2ef93e84ece6724bc0f25b37244ed
MD5 55bffb895c5bf9fbd3738709dfff0290
BLAKE2b-256 bfa51cf1b76a6e0e04f320d1193eaa548b2f57b30c38649a9b463b7843c1ddf9

See more details on using hashes here.

Provenance

The following attestation bundles were made for harmonypy-2.0.0.tar.gz:

Publisher: release.yml on slowkow/harmonypy

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

File details

Details for the file harmonypy-2.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for harmonypy-2.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 05f79d49dc7e0332ed6a0b0303f726a4e870defe971e2687c40a8de1ce53098b
MD5 7464f1c122a8f3b75145d6321e32720e
BLAKE2b-256 0d9c15595ef2944c7f6c6740dc2501409972082ef1d512f9a9f9b24e091207a2

See more details on using hashes here.

Provenance

The following attestation bundles were made for harmonypy-2.0.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on slowkow/harmonypy

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

File details

Details for the file harmonypy-2.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for harmonypy-2.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 08d802dd410cb02562205e1bedfdab22000c72b97e4469fec9decb01cb629d63
MD5 ddf9555befa1cf01969aa74b0c914a7e
BLAKE2b-256 9a62ca941cc5316accf915de57305e7a85891c2d69588b1c78ad4e05ff51ad3e

See more details on using hashes here.

Provenance

The following attestation bundles were made for harmonypy-2.0.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on slowkow/harmonypy

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

File details

Details for the file harmonypy-2.0.0-cp313-cp313-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for harmonypy-2.0.0-cp313-cp313-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 f22c53c2bb77357856aed808e6e975496496c305ecee44c17d1b90855533e7e4
MD5 d9598c09c5de931064f1b01d35c3a98e
BLAKE2b-256 fc11487157aa3d666f114635226dfdfae4779a5ae80b4cd2214181ef5ed8067e

See more details on using hashes here.

Provenance

The following attestation bundles were made for harmonypy-2.0.0-cp313-cp313-macosx_11_0_x86_64.whl:

Publisher: release.yml on slowkow/harmonypy

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

File details

Details for the file harmonypy-2.0.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for harmonypy-2.0.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 64b376abac3638f086a2b8f89c936b84bbde98eb548c5ab969ffff1f2ebaa6f5
MD5 752c5fd8ac457938b76ce61b6cc5129e
BLAKE2b-256 1d7d669a9c9a12bc6224645d5fa6f87108819a46879cd08ae29f2bbfedbe9d5d

See more details on using hashes here.

Provenance

The following attestation bundles were made for harmonypy-2.0.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: release.yml on slowkow/harmonypy

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

File details

Details for the file harmonypy-2.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for harmonypy-2.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 faae5ea957f8ced3b4b2224b2be82134f545ee7db3caae8ce1e787f21e0dbd6f
MD5 6cca22ec9d3cf1e5177e6aabb38ad2ac
BLAKE2b-256 ad8d336fb8b053ae9de7614da458c0f7d5d1d9654a52ba6178bbe174955dad21

See more details on using hashes here.

Provenance

The following attestation bundles were made for harmonypy-2.0.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on slowkow/harmonypy

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

File details

Details for the file harmonypy-2.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for harmonypy-2.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 571bca6eeafb7f99a4dbef2220b5db1ab8b19f633f2f9d2ca48df209e7444c17
MD5 04d8842a8e7bd235f2d00eb20084f256
BLAKE2b-256 4baaddb7f72a3d41c1f4a9acda36683d0c6145d23ccbce27aeaf9608638bd59a

See more details on using hashes here.

Provenance

The following attestation bundles were made for harmonypy-2.0.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on slowkow/harmonypy

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

File details

Details for the file harmonypy-2.0.0-cp312-cp312-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for harmonypy-2.0.0-cp312-cp312-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 9f8cf957dcdbea3f656817b8fdd9b533eb91fdf6d9c412ebafccc9766b80d6d0
MD5 a5507300d1cbc127c2dcb638473a8ffc
BLAKE2b-256 046497ad877dfecc15b3a1cca1073d5b958ae5e35ead37cebeed91e76d361894

See more details on using hashes here.

Provenance

The following attestation bundles were made for harmonypy-2.0.0-cp312-cp312-macosx_11_0_x86_64.whl:

Publisher: release.yml on slowkow/harmonypy

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

File details

Details for the file harmonypy-2.0.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for harmonypy-2.0.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7e2d53eca5ae3acc4456954d97c3ebd472f7820bb51449dcc3e09bce2d15bb39
MD5 729254afd106be9f74bfd5adcb8d7b5f
BLAKE2b-256 763af798bdfd7d19dc2bcb818c086589f4bfa0c6b350b8a7f5386b2555b8c667

See more details on using hashes here.

Provenance

The following attestation bundles were made for harmonypy-2.0.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: release.yml on slowkow/harmonypy

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

File details

Details for the file harmonypy-2.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for harmonypy-2.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 94182e6b9144871dd5eacb432c60b650cf02c63e6961670ef2a853ee6b09dbb1
MD5 e18672d3ee0c88cce6dc1e53598b126a
BLAKE2b-256 40ea662f534c27578831c94b64d92f68b09d93ca99f46d4bbcd388d5e39df143

See more details on using hashes here.

Provenance

The following attestation bundles were made for harmonypy-2.0.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on slowkow/harmonypy

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

File details

Details for the file harmonypy-2.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for harmonypy-2.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 720b630f23c1ff90899f004562c5ad9cb9225904ace97ad53b7d73cb6d6f7811
MD5 486f1a8281771c6b8b82fb5ed65443d8
BLAKE2b-256 66e7af1eda7f7c272616b7edf35b01e3fee46985f1a46e394a5599517074556c

See more details on using hashes here.

Provenance

The following attestation bundles were made for harmonypy-2.0.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on slowkow/harmonypy

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

File details

Details for the file harmonypy-2.0.0-cp311-cp311-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for harmonypy-2.0.0-cp311-cp311-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 d72f43e70c53a6da4d346f333b0481df923e567993c2989bc284d05901dabed0
MD5 dff4178558f3ff82867252d17de13699
BLAKE2b-256 4925f2fbff42081d2a51ba69bb17c03b9ef20c46e1b20a132442ccd43ec10082

See more details on using hashes here.

Provenance

The following attestation bundles were made for harmonypy-2.0.0-cp311-cp311-macosx_11_0_x86_64.whl:

Publisher: release.yml on slowkow/harmonypy

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

File details

Details for the file harmonypy-2.0.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for harmonypy-2.0.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ef4bc663e80e4e37110c8365072dad3df1ac0dc8e5abefc0facdf5496db46265
MD5 23d1bd32f1774de829a0bbf3c6622a4d
BLAKE2b-256 42bb9d6c59ec42aa7e13640827173663c49178d48449045b057c3e75a6828286

See more details on using hashes here.

Provenance

The following attestation bundles were made for harmonypy-2.0.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: release.yml on slowkow/harmonypy

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

File details

Details for the file harmonypy-2.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for harmonypy-2.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ca4cda699979363164e549fd866dbf18d39ec41f2a2840ab439ff2e88a2ebe49
MD5 7f1063403f4409b7360405c77738da02
BLAKE2b-256 9691bb165349f40526cf04caccceaa35a182baf04e1f93f184a8da849eca9bf1

See more details on using hashes here.

Provenance

The following attestation bundles were made for harmonypy-2.0.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on slowkow/harmonypy

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

File details

Details for the file harmonypy-2.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for harmonypy-2.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0735278cf7393522303e5dc0716c27279edaa4031ca11ba51fbbbff15e792ceb
MD5 5edac631f1a83aaa2e16c840a68b095e
BLAKE2b-256 cf5dcc851735a63ca973db2ef96028554247a28ea71a8bd8e3e3eff5e1908f9d

See more details on using hashes here.

Provenance

The following attestation bundles were made for harmonypy-2.0.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on slowkow/harmonypy

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

File details

Details for the file harmonypy-2.0.0-cp310-cp310-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for harmonypy-2.0.0-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 73f014ffd308b45ae9b9c993b3f44369443491ea5ba82613219f5fbdc9aa0d98
MD5 b95585c67d92cc6a2f88bdcbf4082833
BLAKE2b-256 63d7da6e7646347aacb258ec042b07755a26106400f1a1dfd182339f526b617a

See more details on using hashes here.

Provenance

The following attestation bundles were made for harmonypy-2.0.0-cp310-cp310-macosx_11_0_x86_64.whl:

Publisher: release.yml on slowkow/harmonypy

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

File details

Details for the file harmonypy-2.0.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for harmonypy-2.0.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e780492dc7e11f3db11fd8364890c1054d21416487eba68539f36568b22e2529
MD5 df342706cf5c1b84c8d3ea0290b9bb25
BLAKE2b-256 79345ea03617c66991ab8d0d86adae8db5fbca8a75302da975051b0117ca9aa3

See more details on using hashes here.

Provenance

The following attestation bundles were made for harmonypy-2.0.0-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: release.yml on slowkow/harmonypy

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

File details

Details for the file harmonypy-2.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for harmonypy-2.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f8d3c37a14d8866d73e5bbdbc3196488298ed6af5cebae0763f448125944f978
MD5 5273249c890cc3eb23004e6de885d373
BLAKE2b-256 fc745c1e682b980998a466599b0c79698db660c1b76d8292bd65e4087ba1346d

See more details on using hashes here.

Provenance

The following attestation bundles were made for harmonypy-2.0.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on slowkow/harmonypy

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

File details

Details for the file harmonypy-2.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for harmonypy-2.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2dc12245e178980aab5a9cba5882179243d01131a9617f461e5e7125edf1de68
MD5 03c3fea31659adbd25226b5a57ffdb4f
BLAKE2b-256 ae4fe6a7e81aea2fc8b8ed172490c6289f7c5746bdae394780d38069ec2bfbb5

See more details on using hashes here.

Provenance

The following attestation bundles were made for harmonypy-2.0.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: release.yml on slowkow/harmonypy

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

File details

Details for the file harmonypy-2.0.0-cp39-cp39-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for harmonypy-2.0.0-cp39-cp39-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 91418060efcf1c2b92d87682718c7d807a1e2e701c22d09d6b671a187e367dd0
MD5 0a0515ff89bb9a4b5a44ccbfc10425ad
BLAKE2b-256 1f18bb7147f98e3002750d19fa800c065f22f40475b0473d7dc0b11ac4844877

See more details on using hashes here.

Provenance

The following attestation bundles were made for harmonypy-2.0.0-cp39-cp39-macosx_11_0_x86_64.whl:

Publisher: release.yml on slowkow/harmonypy

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

File details

Details for the file harmonypy-2.0.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for harmonypy-2.0.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 174214bfa180462003c306a41b01b1ac46f409f5d2439ce68858d9ec34da0d70
MD5 497bda4f65a97a45631d9af2d688c4d9
BLAKE2b-256 5151719f77555b0407aa7a1b80adce63d169736adc41ab027cd9bd06dd2480a0

See more details on using hashes here.

Provenance

The following attestation bundles were made for harmonypy-2.0.0-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: release.yml on slowkow/harmonypy

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