Subject: [PATCH] gnu: Add python-cell2cell.
From: Navid Afkhami <[email-masked]>
To: <[email-masked]>
Cc: Navid Afkhami <[email-masked]>
Date: Fri, 2 Jun 2023 15:23:43 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

* gnu/packages/bioinformatics.scm (python-cell2cell): New variable.
---
 gnu/packages/bioinformatics.scm | 64 +++++++++++++++++++++++++++++++++
 1 file changed, 64 insertions(+)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 89f8041d56..6dbbc26eac 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -1298,6 +1298,70 @@ (define-public python-biofluff
 experiments.")
     (license license:expat)))
 
+(define-public python-cell2cell
+  (package
+    (name "python-cell2cell")
+    (version "0.6.8")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/earmingol/cell2cell")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1hwww0rcv8sc4k312n4d0jhbyix1jjqgv5djg25bw8127q5iym3s"))
+              (modules '((guix build utils)))
+              (snippet '(begin
+                          (substitute* "cell2cell/plotting/factor_plot.py"
+                            (("from statannotations.Annotator import Annotator")
+                             "")
+                            (("if statistical_test is not None")
+                             "if False"))
+                          (substitute* "setup.py"
+                            (("'statannotations',")
+                             ""))
+                          (substitute* "setup.py"
+                            (("matplotlib >= 3.2.0,<=3.5.1")
+                             ""))
+                          (substitute* "setup.py"
+                            (("'gseapy == 1.0.3'")
+                             "'gseapy'"))))))
+    (build-system pyproject-build-system)
+    (arguments
+     (list #:tests? #f ;There are no tests
+           #: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"))))))
+    (propagated-inputs (list python-gseapy
+                             python-kneed
+                             python-matplotlib
+                             python-networkx
+                             python-numpy
+                             python-openpyxl
+                             python-pandas
+                             python-scikit-learn
+                             python-scipy
+                             python-seaborn
+                             python-statsmodels
+                             python-scanpy
+                             python-seaborn
+                             python-tensorly
+                             python-tqdm
+                             python-umap-learn
+                             python-xlrd))
+    (native-inputs (list python-pytest))
+    (home-page "https://github.com/earmingol/cell2cell")
+    (synopsis "Python library for cell communication analysis")
+    (description
+     "Cell2cell is a Python library for cell communication analysis.
+This is a method to calculate, visualize and analyze communication
+between cell types.  Cell2cell is suitable for single-cell RNA sequencing
+(scRNA-seq) data.")
+    (license license:bsd-3)))
+
 (define-public python-cellbender
   (package
     (name "python-cellbender")

base-commit: a7d9cd742c3149bb014db95f88d1158d590bc124
-- 
2.34.1