From f1a40b43569893e640bde789fe75696b7e4a754f Mon Sep 17 00:00:00 2001 From: Marius Lange Date: Wed, 1 Apr 2026 08:57:04 +0200 Subject: [PATCH] Fix HNOCA kernel to be the squared Jarrad kernel The HNOCA kernel should equal the Jarrad kernel squared. The base expression before squaring was using `2 * n_neighbors` in the denominator, but Jarrad uses `4 * n_neighbors`. Aligning the denominator makes HNOCA = Jarrad^2, faithful to the original HNOCA-tools implementation. Co-Authored-By: Claude --- src/cellmapper/model/kernel.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cellmapper/model/kernel.py b/src/cellmapper/model/kernel.py index 235cece..c70a116 100644 --- a/src/cellmapper/model/kernel.py +++ b/src/cellmapper/model/kernel.py @@ -273,7 +273,7 @@ def compute_kernel_matrix( if kernel_method == "jaccard": kernel_matrix.data /= 4 * n_neighbors - kernel_matrix.data elif kernel_method == "hnoca": - kernel_matrix.data /= 2 * n_neighbors - kernel_matrix.data + kernel_matrix.data /= 4 * n_neighbors - kernel_matrix.data kernel_matrix.data = kernel_matrix.data**2 elif kernel_method in PackageConstants.CONNECTIVITY_BASED_KERNELS: