Subject: [bug#71670] [PATCH 2/2] bioinformatics: Add python-muon

From: [email-masked]
Date: Thu, 20 Jun 2024 08:51:12 +0000

Change-Id: I21431b089d1f404828b78d79124d96e7d36d5a2d
---
 gnu/packages/bioinformatics.scm | 55 +++++++++++++++++++++++++++++++++
 1 file changed, 55 insertions(+)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 37fa1727cb..b3fe67cae7 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -4481,6 +4481,61 @@ (define-public python-mofapy2
     (description "Multi-omics factor analysis.")
     (license license:lgpl3)))
 
+(define-public python-muon
+  (package
+    (name "python-muon")
+    (version "0.1.6")
+    (source
+     (origin
+       ;; The tarball from PyPi doesn't include tests.
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/scverse/muon")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "1kd3flgy41dc0sc71wfnirh8vk1psxgyjxkbx1zx9yskkh6anbgw"))))
+    (build-system pyproject-build-system)
+    (arguments
+     (list
+      #:phases
+      '(modify-phases %standard-phases
+         ;; Numba needs a writable dir to cache functions.
+         (add-before 'build 'set-numba-cache-dir
+           (lambda _
+             (setenv "NUMBA_CACHE_DIR" "/tmp")))
+         (add-before 'check 'disable-failing-tests
+           (lambda _
+             ;; even providing a random seed, scipy.sparse.rand
+             ;; produces inconsistent results across scipy versions
+             (substitute* "tests/test_atac_preproc.py"
+               (("^class TestTFIDFSparse.*" m)
+                (string-append "@unittest.skip(reason=\"\")\n" m))))))))
+    (propagated-inputs (list python-anndata
+                             python-h5py
+                             python-matplotlib
+                             python-mofapy2
+                             python-mudata
+                             python-numba
+                             python-numpy
+                             python-pandas
+                             python-protobuf
+                             python-pybedtools
+                             python-pysam
+                             python-scanpy
+                             python-scikit-learn
+                             python-seaborn
+                             python-tqdm
+                             python-umap-learn))
+    (native-inputs (list python-flit-core-bootstrap
+                         python-pytest
+                         python-pytest-flake8))
+    (home-page "https://github.com/scverse/muon")
+    (synopsis "Multimodal omics analysis framework")
+    (description "Multimodal omics analysis framework.")
+    (license license:bsd-3)))
+
 (define-public python-pyega3
   (deprecated-package "python-pyega3" python-ega-download-client))
 
-- 
2.45.1