diff options
Diffstat (limited to 'gnu/packages/bioinformatics.scm')
-rw-r--r-- | gnu/packages/bioinformatics.scm | 226 |
1 files changed, 132 insertions, 94 deletions
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 8dffc86c00..c59c7fa5db 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -29,6 +29,7 @@ ;;; Copyright © 2024 Spencer King <spencer.king@geneoscopy.com> ;;; Copyright © 2025 nomike Postmann <nomike@nomike.com> ;;; Copyright © 2025 Janneke Nieuwenhuizen <janneke@gnu.org> +;;; Copyright © 2025 Sharlatan Hellseher <sharlatanus@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -78,6 +79,7 @@ #:use-module (gnu packages bison) #:use-module (gnu packages bioconductor) #:use-module (gnu packages boost) + #:use-module (gnu packages certs) #:use-module (gnu packages check) #:use-module (gnu packages code) #:use-module (gnu packages cmake) @@ -2835,41 +2837,51 @@ specifying the usage of each program for each cell in the data.") parsing of Variant Call Format (VCF) files.") (license license:expat))) -(define-public python-decoupler-py +(define-public python-decoupler (package - (name "python-decoupler-py") - ;; Upstream places release on a new branch, see - ;; <https://github.com/saezlab/decoupler-py/issues/175>. - (version "1.8.0") + (name "python-decoupler") + (version "2.1.1") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/saezlab/decoupler-py") - (commit version))) + (url "https://github.com/scverse/decoupler") + (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 - "0c3yg7jjb1nxb6hsh9wn7wr8w0ba55gixdbf5fp443nhv1cwlajj")))) + "0b15n5sq940sn29jsgmdkkm4fcpzfq1n221scfwhjxb4ybdpsz4v")))) (build-system pyproject-build-system) (arguments (list #:test-flags - '(list "-k" - ;; These tests require internet access - (string-append "not test_get_resource" - " and not test_show_resources" - " and not test_get_dorothea" - " and not test_get_progeny" - " and not test_get_ksn_omnipath" - ;; This attempts to download things for Omnipath - " and not test_get_collectri")) + '(list "-k" (string-join + ;; Tests requiring internet access to reach out + ;; <datasets.cellxgene.cziscience.com>, <ftp.ebi.ac.uk>, + ;; <omnipathdb.org>, <raw.githubusercontent.com>, + ;; <static.omnipathdb.org>, <www.ensembl.org>, + ;; <www.ncbi.nlm.nih.gov>, and <zenodo.org>. + (list "not test_collectri" + "test_covid5k" + "test_dorothea" + "test_download" + "test_download_anndata" + "test_ensmbl_to_symbol" + "test_erygast1k" + "test_hallmark" + "test_hsctgfb" + "test_knocktf" + "test_msvisium" + "test_pbmc3k" + "test_progeny" + "test_resource" + "test_show_resources" + "test_translate" + ;; XXX: Some precision mismatched. + "test_func_gsea" + "test_net_corr") + " and not ")) #:phases '(modify-phases %standard-phases - (add-after 'unpack 'relax-requirements - (lambda _ - (substitute* "pyproject.toml" - ;; numba = "^0.60.0"; all tests passed. - (("0.60.0") "0.61.0")))) (add-before 'check 'set-home ;; Some tests require a home directory to be set. (lambda _ (setenv "HOME" "/tmp"))) @@ -2878,27 +2890,35 @@ parsing of Variant Call Format (VCF) files.") (lambda _ (setenv "NUMBA_CACHE_DIR" "/tmp")))))) (propagated-inputs (list python-adjusttext python-anndata - python-ipython - python-matplotlib - python-nbsphinx + python-dcor + python-docrep + python-igraph + python-ipywidgets + python-marsilea python-numba - python-numpy - python-numpydoc - python-omnipath - python-scanpy - python-scikit-learn + python-requests python-scipy - python-skranger + python-session-info2 python-tqdm - python-typing-extensions)) - (native-inputs (list python-poetry-core python-pytest)) - (home-page "https://github.com/saezlab/decoupler-py") + python-xgboost)) + (native-inputs + (list nss-certs-for-test + python-hatchling + python-gseapy + python-memory-profiler + python-pytest + python-scanpy)) + (home-page "https://github.com/scverse/decoupler") (synopsis "Framework for modeling, analyzing and interpreting single-cell RNA-seq data") (description "This package provides different statistical methods to extract biological activities from omics data within a unified framework.") - (license license:gpl3+))) + (license license:bsd-3))) + +;; See: <https://github.com/scverse/decoupler/blob/main/CHANGELOG.md#200> +(define-public python-decoupler-py + (deprecated-package "python-decoupler-py" python-decoupler)) (define-public python-demuxem (package @@ -3119,16 +3139,16 @@ servers supporting the protocol.") (define-public python-liana-py (package (name "python-liana-py") - (version "1.4.0") + (version "1.6.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/saezlab/liana-py") - (commit version))) + (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 - "1kwbhfmsjhfc6m4kcp4zc2xgzg1qf16ywfkdamn868anwwrvjxzb")))) + "1k6l371wd00m95l5pb2jsmzzxh5nc5v21fg2v0cslr9761q151r9")))) (build-system pyproject-build-system) (arguments (list @@ -3159,27 +3179,30 @@ servers supporting the protocol.") " and not test_bivar_product" ;; XXX unclear failure: large difference in data ;; frames. - " and not test_aggregate_res") + " and not test_aggregate_res" + ;; XXX: ValueError: Only CSR and CSC matrices are + ;; supported. + " and not test_bivar_nondefault" + " and not test_masked_spearman" + " and not test_vectorized_spearman" + " and not test_basic_interpolation" + " and not test_different_methods" + " and not test_fill_value" + " and not test_use_raw_layer_parameters") ;; These need the optional squidpy, which we don't have yet. - "--ignore=liana/tests/test_misty.py" + "--ignore=tests/test_misty.py" ;; These need the optional corneto. - "--ignore=liana/tests/test_causalnet.py" + "--ignore=tests/test_causalnet.py" ;; Needs internet access. - "--ignore=liana/tests/test_orthology.py") + "--ignore=tests/test_orthology.py") #:phases '(modify-phases %standard-phases - (add-after 'unpack 'relax-requirements - (lambda _ - ;; Don't fail the sanity check when these optional inputs aren't - ;; available. - (substitute* "pyproject.toml" - (("^pre-commit =.*") "")))) ;; Numba needs a writable directory to cache functions. (add-before 'build 'set-numba-cache-dir (lambda _ (setenv "NUMBA_CACHE_DIR" "/tmp")))))) (propagated-inputs (list python-anndata python-cell2cell - python-decoupler-py + python-decoupler python-hypothesis python-ipykernel python-ipython @@ -3199,10 +3222,8 @@ servers supporting the protocol.") python-tqdm tzdata)) (native-inputs - (list python-black - python-poetry-core - python-pytest - python-pytest-cov)) + (list python-hatchling + python-pytest)) (home-page "https://github.com/saezlab/liana-py") (synopsis "LIANA is a ligand-receptor analysis framework") (description "This is a Ligand-Receptor inference framework. The @@ -5012,7 +5033,7 @@ package provides command line tools using the Bio++ library.") (define-public blast+ (package (name "blast+") - (version "2.14.0") + (version "2.17.0") (source (origin (method url-fetch) (uri (string-append @@ -5020,7 +5041,7 @@ package provides command line tools using the Bio++ library.") version "/ncbi-blast-" version "+-src.tar.gz")) (sha256 (base32 - "003mn7m4y306k7visv3in3ikfgm8m41z0jq9lyvz10iv1hdpyixz")) + "0ix1bqgaywi3ggis4qvaipb0mk3llhgf52vmc97f744risl5f82h")) (modules '((guix build utils))) (snippet '(begin @@ -5636,7 +5657,7 @@ with MOFA+ in Python.") (define-public python-mudata (package (name "python-mudata") - (version "0.3.1") + (version "0.3.2") (source (origin (method git-fetch) (uri (git-reference @@ -5645,7 +5666,7 @@ with MOFA+ in Python.") (file-name (git-file-name name version)) (sha256 (base32 - "1m1qsqgk8snllavfj99qgm2j7cccviwg7k0k1kfbvqn0bkzc87sa")))) + "17s1w3746d35pcwr97ynhr7s5hfk76vsfcinwyqynx9k3xxi9br4")))) (build-system pyproject-build-system) (arguments (list @@ -7071,16 +7092,16 @@ trees (phylogenies) and characters.") (define-public python-py2bit (package (name "python-py2bit") - (version "0.3.0") + (version "0.3.3") (source (origin (method url-fetch) (uri (pypi-uri "py2bit" version)) (sha256 (base32 - "1vw2nvw1yrl7ikkqsqs1pg239yr5nspvd969r1x9arms1k25a1a5")))) + "0w1p4l1jwg9kkifm0jsg33a212ps0jn61islmnng2afp77y5nkr6")))) (build-system pyproject-build-system) - (native-inputs (list python-setuptools python-wheel)) + (native-inputs (list python-setuptools python-setuptools-scm python-wheel)) (home-page "https://github.com/dpryan79/py2bit") (synopsis "Access 2bit files using lib2bit") (description @@ -8748,18 +8769,7 @@ HMMs).") (sha256 (base32 "1kbr4ydjjhizz6r5m3xd4f0wj7qnn8zs0vnzghhgaa0yhbya5r19")))) - (build-system python-build-system) - (arguments - (list - #:phases - '(modify-phases %standard-phases - ;; Avoid rebuilding the extension. Everything is built during the - ;; 'install phase anyway. - (delete 'build) - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (invoke "pytest" "-v"))))))) + (build-system pyproject-build-system) (propagated-inputs (list python-matplotlib python-numpy @@ -8769,6 +8779,8 @@ HMMs).") python-pandas python-pytest python-scipy + python-setuptools + python-wheel swig)) (home-page "https://github.com/htseq") (synopsis "Framework for analyzing high-throughput sequencing data") @@ -17043,7 +17055,7 @@ The following file formats are supported: (define-public salmon (package (name "salmon") - (version "1.10.1") + (version "1.10.3") (source (origin (method git-fetch) (uri (git-reference @@ -17052,7 +17064,7 @@ The following file formats are supported: (file-name (git-file-name name version)) (sha256 (base32 - "0grpcajxf2bch4b74zb66pdssda8yc7jvxj5ckaw0xvw1605rpcj")) + "0vii7nlx0ddn62qniwx4abfj6ajwl3w6mizavpa0mkhpxnm06rqw")) (modules '((guix build utils))) (snippet ;; Delete bundled headers for eigen3. @@ -17167,7 +17179,7 @@ The following file formats are supported: (file-name (git-file-name "pufferfish" version)) (sha256 (base32 - "0fcv5rd2k4fabsg489sjfxgjisivhwk1w26gfc88rgpszdkcla36")))))) + "0h12h4wv7k3if1m6as7wvrbd7djm0zsg1vs0xn84bnrswwv5z2l3")))))) (home-page "https://github.com/COMBINE-lab/salmon") (synopsis "Quantification from RNA-seq reads using lightweight alignments") (description "Salmon is a program to produce highly-accurate, @@ -19738,7 +19750,7 @@ implementation differs in these ways: (define-public python-scanpy (package (name "python-scanpy") - (version "1.10.4") + (version "1.11.2") (source (origin (method git-fetch) @@ -19748,12 +19760,14 @@ implementation differs in these ways: (file-name (git-file-name name version)) (sha256 (base32 - "139d6fsdbhg1hqqq5yyl8hr3cqz2mj70i0i8r1mq6z6a8qmq1p4z")))) + "18ddb3jkyjan87f5kymyq951sa5955z41f10h6z954map8dy2136")))) (build-system pyproject-build-system) (arguments (list + ;; 736 passed, 95 skipped, 20 xfailed, 148 warnings #:test-flags '(list "-m" "not gpu" + "--numprocesses" (number->string (parallel-job-count)) ;; These tests require Internet access. "--ignore-glob=tests/notebooks/*" "--ignore=tests/test_clustering.py" @@ -19771,9 +19785,10 @@ implementation differs in these ways: "--ignore=tests/test_preprocessing.py" "--ignore=tests/test_read_10x.py" "--ignore=plotting/_tools/scatterplots.py" - ;; The following tests requires 'scanorama', which isn't - ;; packaged yet. - "--ignore=tests/external/test_scanorama_integrate.py" + ;; Adding additional options does not help to resolve the + ;; faileur: TypeError: _FlakyPlugin._make_test_flaky() got an + ;; unexpected keyword argument 'reruns'. + "--ignore=tests/test_backed.py" "-k" ;; Plot tests that fail. (string-append "not test_clustermap" @@ -19784,6 +19799,8 @@ implementation differs in these ways: " and not test_paga_plots" " and not test_violin" " and not test_scatter_no_basis_per_obs" + " and not test_spatial_general" + " and not test_visium_empty_img_key" ;; These are doctests that fail because of missing ;; datasets. @@ -19801,7 +19818,21 @@ implementation differs in these ways: " and not test_pca_layer" " and not test_pca_sparse" " and not test_pca_reproducible" - " and not test_clip")) + " and not test_clip" + + ;; Missing test data. + " and not test_covariance_eigh_impls" + " and not test_embedding_colorbar_location" + " and not test_sparse_dask_input_errors" + " and not test_sparse_dask_input_errors" + " and not test_spatial_external_img" + + ;; Somehow broken tests. + " and not test_sim_toggleswitch" + " and not scanpy.datasets._datasets.krumsiek11" + " and not scanpy.datasets._datasets.toggleswitch" + " and not scanpy.external.pp._scanorama_integrate.scanorama_integrate" + " and not scanpy.preprocessing._simple.filter_cells")) #:phases #~(modify-phases %standard-phases ;; XXX This should not be necessary, but I noticed while building @@ -19825,9 +19856,12 @@ implementation differs in these ways: (string-append (getcwd) ":" #$(this-package-native-input "python-anndata:source") ":" (getenv "GUIX_PYTHONPATH"))))) - ;; Numba needs a writable dir to cache functions. - (add-before 'check 'set-numba-cache-dir - (lambda _ (setenv "NUMBA_CACHE_DIR" "/tmp")))))) + (add-before 'check 'pre-check + (lambda _ + ;; Numba needs a writable dir to cache functions. + (setenv "NUMBA_CACHE_DIR" "/tmp") + ;; For Matplotlib. + (setenv "HOME" "/tmp")))))) (propagated-inputs (list python-anndata python-dask @@ -19843,27 +19877,30 @@ implementation differs in these ways: python-packaging python-pandas python-patsy + python-pytoml python-scikit-learn python-scipy - python-setuptools ; For pkg_resources. python-seaborn - python-session-info + python-session-info2 + python-setuptools ; For pkg_resources. python-sinfo python-statsmodels python-tables - python-pytoml python-tqdm python-umap-learn)) (native-inputs `(;; This package needs anndata.tests, which is not installed. ("python-anndata:source" ,(package-source python-anndata)) + ("python-flaky" ,python-flaky) ("python-flit" ,python-flit) - ("python-hatchling" ,python-hatchling) ("python-hatch-vcs" ,python-hatch-vcs) + ("python-hatchling" ,python-hatchling) ("python-leidenalg" ,python-leidenalg) ("python-pytest" ,python-pytest) ("python-pytest-mock" ,python-pytest-mock) ("python-pytest-nunit" ,python-pytest-nunit) + ("python-pytest-xdist" ,python-pytest-xdist) + ("python-scanorama" ,python-scanorama) ("python-setuptools-scm" ,python-setuptools-scm))) (home-page "https://github.com/theislab/scanpy") (synopsis "Single-Cell Analysis in Python") @@ -22844,8 +22881,8 @@ pairs.") (license license:expat))) (define-public r-hdf5dataframe - (let ((commit "1cdb905b1f6af3339938de3e1ca407908bc93e47") - (revision "1")) + (let ((commit "1e30e6b82b5599d5d98fbcb8bf7312dd1711ca3c") + (revision "2")) (package (name "r-hdf5dataframe") (version (git-version "0.0.0" revision commit)) @@ -22857,12 +22894,12 @@ pairs.") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "1pk22h56x873gahj2nwnwxzyq5a27h363mxk1491irypvk78dpn9")))) + (base32 "0y6hp31gy17v87ll4rij6pwy6b7k7gnw8iwnvzsaa13ga73g69ak")))) (properties `((upstream-name . "HDF5DataFrame"))) (build-system r-build-system) (propagated-inputs (list r-biocgenerics r-delayedarray r-hdf5array r-rhdf5 r-s4vectors)) - (native-inputs (list r-knitr)) + (native-inputs (list r-knitr r-testthat)) (home-page "https://github.com/BIMSBbioinfo/HDF5DataFrame") (synopsis "Bioconductor-friendly bindings for Parquet") (description @@ -22997,6 +23034,7 @@ guix_python <- \"~a\";" python-scipy python-tifffile python-zarr + which ;tests/testthat/test_conversion.R zlib)) (propagated-inputs (list r-data-table r-dplyr @@ -23525,7 +23563,7 @@ compute communities on graphs weighted or unweighted.") (define-public ivar (package (name "ivar") - (version "1.4.2") + (version "1.4.4") (source (origin (method git-fetch) (uri (git-reference @@ -23534,7 +23572,7 @@ compute communities on graphs weighted or unweighted.") (file-name (git-file-name name version)) (sha256 (base32 - "0v3rsak84ilg4iaynwpmmkj507vham5rjk2pfsmylpaqylgc69yx")))) + "1bwygjv81m4yv5ycxb5gx22k6njgwrzzs7jrsadq6363klcv4irh")))) (build-system gnu-build-system) (arguments (list |