diff options
Diffstat (limited to 'gnu/packages/bioinformatics.scm')
-rw-r--r-- | gnu/packages/bioinformatics.scm | 1377 |
1 files changed, 820 insertions, 557 deletions
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 8dffc86c00..e94fca2935 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -12,7 +12,7 @@ ;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com> ;;; Copyright © 2018 Gábor Boskovits <boskovits@gmail.com> ;;; Copyright © 2018-2024 Mădălin Ionel Patrașcu <madalinionel.patrascu@mdc-berlin.de> -;;; Copyright © 2019, 2020, 2021, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2019, 2020, 2021, 2023 Maxim Cournoyer <maxim@guixotic.coop> ;;; Copyright © 2019 Brian Leung <bkleung89@gmail.com> ;;; Copyright © 2019 Brett Gilio <brettg@gnu.org> ;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de> @@ -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) @@ -85,9 +87,6 @@ #:use-module (gnu packages cpp) #:use-module (gnu packages cpio) #:use-module (gnu packages cran) - #:use-module (gnu packages crates-compression) - #:use-module (gnu packages crates-io) - #:use-module (gnu packages crates-web) #:use-module (gnu packages curl) #:use-module (gnu packages docbook) #:use-module (gnu packages documentation) @@ -99,6 +98,7 @@ #:use-module (gnu packages gawk) #:use-module (gnu packages gcc) #:use-module (gnu packages gd) + #:use-module (gnu packages golang) #:use-module (gnu packages golang-build) #:use-module (gnu packages golang-check) #:use-module (gnu packages golang-compression) @@ -134,6 +134,7 @@ #:use-module (gnu packages mpi) #:use-module (gnu packages ncurses) #:use-module (gnu packages node) + #:use-module (gnu packages nss) #:use-module (gnu packages ocaml) #:use-module (gnu packages pcre) #:use-module (gnu packages package-management) @@ -2203,26 +2204,38 @@ intended to behave exactly the same as the original BWK awk.") (define-public python-bcbio-gff (package (name "python-bcbio-gff") - (version "0.6.9") + ;; python-bcbio-gff can only be refreshed manually, because guix refresh + ;; does not understand the tags on the github repository. + (version "0.7.1") (source (origin - (method url-fetch) - (uri (pypi-uri "bcbio-gff" version)) + ;; No tests in PyPI package. + (method git-fetch) + (uri (git-reference + (url "https://github.com/chapmanb/bcbb") + (commit (string-append "bcbio-gff-v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "1pm1szyxabhn8jismrj9cjhf88ajgcmm39f0cgf36iagw5qakprl")))) + "0144xxzibq4mrg8a1w2scs120rd9svq07hm5ccs91n3a4nvwjfsd")))) (build-system pyproject-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-before 'build 'enter-directory + (lambda _ (chdir "gff")))))) (native-inputs - (list python-pytest)) + (list python-setuptools python-pytest)) (propagated-inputs (list python-biopython - python-setuptools - python-six - python-wheel)) + python-six)) (home-page "https://github.com/chapmanb/bcbb/tree/master/gff") (synopsis "Read and write GFF files with Biopython integration") (description "This package lets you read and write files in Generic Feature Format (GFF) with Biopython integration.") + (properties + '((upstream-name . "bcbio-gff"))) (license (license:non-copyleft "http://www.biopython.org/DIST/LICENSE")))) (define-public python-bcbio-gff/biopython-1.73 @@ -2276,33 +2289,6 @@ Format (GFF) with Biopython integration.") ;; These test require a 84 GB file. "--skip=http_two" "--skip=http_cloud_urls_md_3") - #:cargo-inputs - (list rust-anyinput-0.1 - rust-bytecount-0.6 - rust-byteorder-1 - rust-bytes-1 - rust-cloud-file-0.2 - rust-derive-builder-0.20 - rust-dpc-pariter-0.4 - rust-fetch-data-0.2 - rust-futures-util-0.3 - rust-itertools-0.13 - rust-ndarray-0.16 - rust-ndarray-npy-0.9 - rust-num-traits-0.2 - rust-numpy-0.22 - rust-pyo3-0.22 - rust-pyo3-build-config-0.22 - rust-rayon-1 - rust-statrs-0.17 - rust-thiserror-1 - rust-tokio-1) - #:cargo-development-inputs - (list rust-anyhow-1 - rust-ndarray-rand-0.15 - rust-rusoto-credential-0.48 - rust-temp-testdir-0.2 - rust-thousands-0.2) #:imported-modules (append %cargo-build-system-modules %pyproject-build-system-modules) @@ -2414,7 +2400,7 @@ version = ~s python-pytest-doctestplus python-recommonmark python-sphinx)) - (inputs (list python-wrapper)) + (inputs (cons python-wrapper (cargo-inputs 'python-bed-reader))) (propagated-inputs (list python-numpy python-pandas python-scipy)) (home-page "https://fastlmm.github.io/") (synopsis "Read and write the PLINK BED format, simply and efficiently") @@ -2782,7 +2768,7 @@ specifying the usage of each program for each cell in the data.") (define-public python-cyvcf2 (package (name "python-cyvcf2") - (version "0.31.1") + (version "0.31.2") (source (origin (method git-fetch) @@ -2791,7 +2777,7 @@ specifying the usage of each program for each cell in the data.") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "02x7ic2q4x3sfwx9n2sxg0a79iifjal0a68fqp9ljsfvdx4b7nq5")) + (base32 "19jv2502644qjv278yjllqqakwhghmfbaa4h08rayak5mp130i70")) (modules '((guix build utils))) (snippet ;; Delete bundled library @@ -2823,8 +2809,7 @@ specifying the usage of each program for each cell in the data.") (native-inputs (list python-cython python-pytest - python-setuptools - python-wheel)) + python-setuptools)) (propagated-inputs (list python-click python-coloredlogs @@ -2835,41 +2820,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 +2873,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 @@ -3105,8 +3108,10 @@ varies in similar way among cells which are nearby in the given metric.") (base32 "111q4pzkav26aa3hkgh948wqlyrq7dq6sjml9z63n3blw8s6b0c4")))) (build-system pyproject-build-system) + (arguments + (list #:tests? #f)) ;they depend on Nose test runner (native-inputs - (list python-setuptools-scm python-setuptools python-wheel)) + (list python-setuptools-scm python-setuptools)) (propagated-inputs (list python-humanize python-requests python-six)) (home-page "https://pypi.org/project/htsget/") @@ -3119,16 +3124,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 +3164,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 +3207,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 @@ -3212,18 +3218,24 @@ framework enables the use of any LR method with any resources.") (define-public python-logomaker (package (name "python-logomaker") - (version "0.8") + (version "0.8.7") (source (origin (method url-fetch) (uri (pypi-uri "logomaker" version)) (sha256 (base32 - "0v9z3ml1s7imk28hqyhrqjqg3sq0j29lx975d36n2ybdgld51iyq")))) + "00ikzh7cv3yi1aj5v3hrpia6w7xrw559rqhwy3qxcja4wbk3qy33")))) (build-system pyproject-build-system) + (arguments + (list + ;; All tests are marked as skipped in logomaker/tests, this is taken + ;; form GitHub Actions file .github/workflows/daily-tests.yml. + #:test-backend #~'custom + #:test-flags #~(list "-c" "import logomaker"))) (propagated-inputs (list python-matplotlib python-numpy python-pandas)) - (native-inputs (list python-setuptools python-wheel)) - (home-page "https://logomaker.readthedocs.io") + (native-inputs (list python-hatchling)) + (home-page "https://github.com/jbkinney/logomaker") (synopsis "Package for making Sequence Logos") (description "Logomaker is a Python package for generating publication-quality sequence logos. Logomaker can generate both standard and @@ -3318,22 +3330,10 @@ and gene expression visualization.") python-scipy python-threadpoolctl python-umap-learn)) - (native-inputs (list python-black - python-bumpversion - python-flake8 - python-isort - python-mypy - python-mypy-extensions - python-pandas-stubs - python-pylint - python-pytest - python-pytest-cov + (native-inputs (list python-pytest python-setuptools python-sphinx - python-sphinx-rtd-theme - python-tox - python-twine - python-wheel)) + python-sphinx-rtd-theme)) (home-page "https://github.com/tanaylab/metacells.git") (synopsis "Single-cell RNA Sequencing Analysis") (description "The metacells package implements the improved metacell @@ -3738,6 +3738,44 @@ annotation, provides Python genomic feature search and sequence retrieval from the managed genomes, STAR indexing and mapping and more.") (license license:gpl3+)))) +(define-public python-pybiomart + (package + (name "python-pybiomart") + (version "0.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jrderuiter/pybiomart") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1x5rd33sa0gwj4nizn02lsc675bbzsspz74f38mp0fbxdp7qnxv8")))) + (build-system pyproject-build-system) + (arguments + (list + #:test-flags + ;; Attempts to access the web. + #~(list "--ignore=tests/test_dataset.py"))) + (propagated-inputs + (list python-future + python-pandas + python-requests + python-requests-cache)) + (native-inputs + (list python-pytest + python-pytest-helpers-namespace + python-pytest-mock + python-setuptools + python-sphinx + python-sphinx-autobuild + python-sphinx-rtd-theme)) + (home-page "https://github.com/jrderuiter/pybiomart") + (synopsis "A simple pythonic interface to biomart") + (description + "Pybiomart provides a simple pythonic interface to biomart.") + (license license:expat))) + (define-public python-pygam (package (name "python-pygam") @@ -3746,8 +3784,8 @@ the managed genomes, STAR indexing and mapping and more.") (origin (method git-fetch) (uri (git-reference - (url "https://github.com/dswah/pyGAM") - (commit (string-append "v" version)))) + (url "https://github.com/dswah/pyGAM") + (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "1bv404idswsm2ay3yziq1i2cbydq4f3vjav5s4i15bgd13k7zvim")))) @@ -4555,6 +4593,191 @@ into separate processes; and more.") (("self.tests.append\\(\"doctest\"\\)") "") (("opt == \"--offline\"") "True"))))))))) +(define-public python-scanrbp + (package + (name "python-scanrbp") + (version "0.3") + (home-page "https://github.com/grexor/scanrbp") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit "cdc3587cfdb3bc1c68154ce8538b8c985099eb9f"))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1bv25qhr1dwym2j7llsd3ggnjb9l3h4bchng7bp7cq57s9g0bnjz")))) + (build-system pyproject-build-system) + (propagated-inputs + (list python-biopython + python-matplotlib + python-pybio + python-scipy + python-seaborn)) + (native-inputs + (list python-setuptools + python-wheel)) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-before 'check 'set-HOME + (lambda _ (setenv "HOME" "/tmp"))) + (add-before 'check 'copy-data + (lambda _ + (let ((data-dir (string-append (getenv "HOME") "/scanRBP_data")) + (data-file "data/data.tar.gz")) + (mkdir-p data-dir) + (copy-file + data-file + (string-append data-dir "/" (basename data-file))))))))) + (synopsis "Tool for creating a RNA RBP heatmap in Python") + (description "python-scanrbp is a Python package that provides the scanRBP +tool that loads RNA-protein binding motif PWM and computes the log-odds scores +for all the loaded RBPs across a given genomic sequence and draws a heatmap of +the scores.") + (license license:gpl3))) + +(define-public python-splicekit + (package + (name "python-splicekit") + (version "0.7") + (home-page "https://github.com/bedapub/splicekit") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit "ded5dbec16b45e0df44750d9ae021ae2416ff921"))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "04l244qagbplksqp81w2s60pkymyhjq389xmqwsyc0n4q6b054h2")))) + (build-system pyproject-build-system) + (propagated-inputs + (list python-beautifulsoup4 + python-dateutil + python-levenshtein + python-logomaker + python-numpy + python-pandas + python-plotly + python-psutil + python-pybio + python-pysam + python-rangehttpserver + python-requests + python-scanrbp)) + (native-inputs + (list python-setuptools + python-wheel + snakemake)) + (arguments + (list + #:tests? #false ;There are no tests. + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'adjust-requirements + (lambda _ + (substitute* "setup.py" + ;; bs4 is an alternative name for beautifulsoup4, only used to + ;; avoid name squatting on pypi. + (("bs4") "beautifulsoup4") + ;; levenshtein can only be found as python-levenshtein + (("levenshtein") "python-levenshtein")))) + ;; fireducks seems to be a binary-only python-panda replacement + (add-after 'unpack 'remove-fireducks + (lambda _ + (substitute* '("Snakefile" + "splicekit/core/delta_dar.py" + "splicekit/core/juan.py" + "splicekit/core/motifs.py" + "splicekit/judge/__init__.py") + (("import fireducks.pandas as pd") "import pandas as pd")) + (substitute* "splicekit.yaml" + ((".*fireducks.*") ""))))))) + (synopsis "Python toolkit for splicing analysis from short-read RNA-seq") + (description "Splicekit is a modular platform for splicing analysis from +short-read RNA-seq datasets. The platform also integrates pybio for genomic +operations and scanRBP for RNA-protein binding studies. The whole analysis is +self-contained (one single directory) and the platform is written in Python, +in a modular way.") + (license license:gpl3))) + +(define-public python-presto + (package + (name "python-presto") + (version "0.7.6") + (home-page "https://github.com/immcantation/presto") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1mcngwrxiw8r1j26r5crf7j0dscvhg3b8g1is3j3vq5jpnyn8jmz")))) + (build-system pyproject-build-system) + (propagated-inputs + (list muscle + python-biopython + python-numpy + python-pandas + python-pyyaml + python-scipy + vsearch)) + (native-inputs + (list python-pytest + python-setuptools + python-wheel)) + (arguments + (list + #:build-backend "setuptools.build_meta" + #:test-flags + ;; FileNotFoundError: [Errno 2] No such file or directory: 'cd-hit-est' + '(list "--ignore=tests/test_ClusterSets.py"))) + (synopsis "The REpertoire Sequencing TOolkit") + (description "Presto is a python toolkit for processing raw reads from +high-throughput sequencing of B cell and T cell repertoires.") + (license license:agpl3))) + +(define-public python-changeo + (package + (name "python-changeo") + (version "1.3.4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "changeo" version)) + (sha256 + (base32 "0jm4chddpl929a8daicp9mv14nwzf2hajpjfhzckg6x8cpgc1087")))) + (build-system pyproject-build-system) + (arguments + (list + #:build-backend "setuptools.build_meta")) + (native-inputs + (list python-pytest + python-setuptools)) + (propagated-inputs + (list python-airr + python-biopython + python-importlib-resources + python-numpy + python-packaging + python-pandas + python-presto + python-pyyaml + python-scipy)) + (home-page "http://changeo.readthedocs.io") + (synopsis "Repertoire clonal assignment toolkit") + (description "Change-O is a collection of tools for processing the output +of V(D)J alignment tools, assigning clonal clusters to immunoglobulin (Ig) +sequences, and reconstructing germline sequences.") + (license license:gpl3))) + (define-public python-fastalite (package (name "python-fastalite") @@ -4674,19 +4897,9 @@ compressed files.") "find_package(bioparser 3.0.13 CONFIG)") (("find_package\\(biosoup 0.10.0 QUIET\\)") "find_package(biosoup 0.10.0 CONFIG)") - (("GTest_FOUND") "TRUE"))))) - #:cargo-inputs - (("rust-anyhow" ,rust-anyhow-1) - ("rust-bio" ,rust-bio-0.33) - ("rust-chrono" ,rust-chrono-0.4) - ("rust-docopt" ,rust-docopt-1) - ("rust-flate2" ,rust-flate2-1) - ("rust-indicatif" ,rust-indicatif-0.15) - ("rust-libc" ,rust-libc-0.2) - ("rust-serde" ,rust-serde-1) - ("rust-seq-io" ,rust-seq-io-0.3)))) + (("GTest_FOUND") "TRUE"))))))) (inputs - (list bioparser biosoup)) + (cons* bioparser biosoup (cargo-inputs 'circtools))) (native-inputs (list cmake-minimal pkg-config googletest)) (home-page "https://github.com/Kevinzjy/circtools") @@ -4754,6 +4967,52 @@ consensus sequences.") long-read sequencing data.") (license license:expat))) +(define-public python-circe + (package + (name "python-circe") + (version "0.3.8") + (home-page "https://github.com/cantinilab/circe") + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "050zwg6qvd6sa4xd41sn4gigwmyfn0v6r93j5kvpbxklq4144q15")))) + (build-system pyproject-build-system) + (propagated-inputs + (list python-anndata + python-dask + python-distributed + python-joblib + python-numpy + python-pandas + python-rich + python-scanpy + python-scikit-learn)) + (inputs + (list lapack openblas)) + (native-inputs + (list python-cython + python-pybiomart + python-setuptools)) + (arguments + (list + #:tests? #f ;XXX: tests hangs during collection + #: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")))))) + (synopsis "Cis-regulatory interactions between chromatin regions") + (description "Circe is a Python package for inferring co-accessibility +networks from single-cell ATAC-seq data, using skggm for the graphical lasso +and python-scanpy for data processing.") + (license license:gpl3))) + (define-public qtltools (package (name "qtltools") @@ -5012,7 +5271,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 +5279,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 @@ -5565,7 +5824,7 @@ off-target reads for a capture method that targets CpG-rich region.") (define-public python-bx-python (package (name "python-bx-python") - (version "0.13.0") + (version "0.14.0") (source (origin (method git-fetch) (uri (git-reference @@ -5574,7 +5833,7 @@ off-target reads for a capture method that targets CpG-rich region.") (file-name (git-file-name name version)) (sha256 (base32 - "13318a3lydyg8fxawdb7anrny9a1j1sc1q4nd6pjg8ki5zr9r713")))) + "1031ddndi5anxk76h1irdwa6nwr5sy20p816zn5jz50010zc562r")))) (build-system pyproject-build-system) (arguments (list @@ -5588,12 +5847,12 @@ off-target reads for a capture method that targets CpG-rich region.") (add-after 'unpack 'disable-cython-doctests (lambda _ (substitute* "pytest.ini" (("--doctest-cython") ""))))))) (propagated-inputs - (list python-numpy)) + (list python-numpy + python-pyparsing)) (inputs (list zlib)) (native-inputs - (list python-cython python-lzo python-pytest python-setuptools - python-wheel)) + (list python-cython python-lzo python-pytest python-setuptools)) (home-page "https://github.com/bxlab/bx-python") (synopsis "Tools for manipulating biological data") (description @@ -5636,7 +5895,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 +5904,7 @@ with MOFA+ in Python.") (file-name (git-file-name name version)) (sha256 (base32 - "1m1qsqgk8snllavfj99qgm2j7cccviwg7k0k1kfbvqn0bkzc87sa")))) + "17s1w3746d35pcwr97ynhr7s5hfk76vsfcinwyqynx9k3xxi9br4")))) (build-system pyproject-build-system) (arguments (list @@ -5826,7 +6085,7 @@ subgroups.") (inputs (list ncurses curl zlib)) (native-inputs - (list python-cython + (list python-cython-0 python-pytest python-setuptools python-wheel @@ -6188,29 +6447,6 @@ setup")))) gene predictor designed to work with assembled, aligned RNA-seq transcripts.") (license license:gpl3+))) -(define-public clustal-omega - (package - (name "clustal-omega") - (version "1.2.4") - (source (origin - (method url-fetch) - (uri (string-append "http://www.clustal.org/omega/clustal-omega-" - version ".tar.gz")) - (sha256 - (base32 - "1vm30mzncwdv881vrcwg11vzvrsmwy4wg80j5i0lcfk6dlld50w6")))) - (build-system gnu-build-system) - (inputs - (list argtable)) - (home-page "http://www.clustal.org/omega/") - (synopsis "Multiple sequence aligner for protein and DNA/RNA") - (description - "Clustal-Omega is a general purpose multiple sequence alignment (MSA) -program for protein and DNA/RNA. It produces high quality MSAs and is capable -of handling data-sets of hundreds of thousands of sequences in reasonable -time.") - (license license:gpl2+))) - (define-public crossmap (package (name "crossmap") @@ -6785,7 +7021,14 @@ doublets in single-cell RNA-seq data.") (base32 "0agkz2w86k91rc9m5vx5hsqi5nm6fcmzkng6j99hjapz0r9233ql")))) (build-system pyproject-build-system) - (native-inputs (list python-setuptools python-wheel)) + (arguments + (list + #:test-flags + ;; Assert fails to compare large files. + #~(list "--deselect=tests/test_battery.py::test_formatting_battery"))) + (native-inputs + (list python-pytest + python-setuptools)) (propagated-inputs (list python-importlib-resources python-ruamel.yaml)) @@ -7071,16 +7314,18 @@ 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)) + (arguments + (list #:test-flags #~(list "py2bitTest/test.py"))) + (native-inputs (list python-pytest python-setuptools python-setuptools-scm)) (home-page "https://github.com/dpryan79/py2bit") (synopsis "Access 2bit files using lib2bit") (description @@ -7133,18 +7378,17 @@ accurately delineate genomic rearrangements throughout the genome.") (define-public transanno (package (name "transanno") - (version "0.3.0") + (version "0.4.5") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/informationsea/transanno") - ;; Corresponds to tag v0.3.0 - (commit "df49050c92644ea12d9d5c6fae2186ca436dbca3"))) + (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 - "1jpn7s3cnd9ybk4lmfbhj2arhf6cmrv7jp74n7n87m3a3irkaif1")) + "0x62v8qhnpw8579kcqpr9k5ldv2y3awjp7a32f1j8qky0i1jgxp1")) (snippet '(with-output-to-file "liftover-rs/build.rs" (lambda _ @@ -7167,28 +7411,9 @@ accurately delineate genomic rearrangements throughout the genome.") "/bin/bash"))) (invoke "bash" "prepare-test-files.sh"))) (add-before 'install 'chdir - (lambda _ (chdir "transanno")))) - #:cargo-inputs - `(("rust-anyhow" ,rust-anyhow-1) - ("rust-autocompress" ,rust-autocompress-0.2) - ("rust-bio" ,rust-bio-0.41) - ("rust-clap" ,rust-clap-2) - ("rust-csv" ,rust-csv-1) - ("rust-flate2" ,rust-flate2-1) - ("rust-indexmap" ,rust-indexmap-1) - ("rust-log" ,rust-log-0.4) - ("rust-nom" ,rust-nom-5) - ("rust-once-cell" ,rust-once-cell-1) - ("rust-pretty-env-logger" ,rust-pretty-env-logger-0.3) - ("rust-regex" ,rust-regex-1) - ("rust-thiserror" ,rust-thiserror-1) - ("rust-serde" ,rust-serde-1) - ("rust-serde-json" ,rust-serde-json-1)) - #:cargo-development-inputs - `(("rust-clap" ,rust-clap-2) - ("rust-lazy-static" ,rust-lazy-static-1)))) + (lambda _ (chdir "transanno")))))) (native-inputs (list bash pkg-config)) - (inputs (list xz)) + (inputs (cons* xz `(,zstd "lib") (cargo-inputs 'transanno))) (home-page "https://github.com/informationsea/transanno") (synopsis "LiftOver tool for new genome assemblies") (description "This package provides an accurate VCF/GFF3/GTF LiftOver tool @@ -7222,7 +7447,7 @@ bases are detected.") (define-public trinityrnaseq (package (name "trinityrnaseq") - (version "2.13.2") + (version "2.15.2") (source (origin (method git-fetch) (uri (git-reference @@ -7232,7 +7457,7 @@ bases are detected.") (file-name (git-file-name name version)) (sha256 (base32 - "1qszrxqbx4q5pavpgm4rkrh1z1v1mf7qx83vv3fnlqdmncnsf1gv")))) + "06qvxy6wvvjpn1mkg8m78syyn98xj76569gpl2jbc9q036i56kh8")))) (build-system gnu-build-system) (arguments (list @@ -7470,6 +7695,33 @@ identify the corresponding gene and CDR3 details. TRUST4 supports both single-e and paired-end bulk or single-cell sequencing data with any read length.") (license license:gpl3))) +(define-public python-airr + (package + (name "python-airr") + (version "1.5.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "airr" version)) + (sha256 + (base32 "0jbigfdwa23xv5riw0ljdfq2qwg1b2fav2kfi81zxd1g1jprxy3i")))) + (build-system pyproject-build-system) + (native-inputs + (list python-jsondiff + python-pytest + python-setuptools)) + (propagated-inputs + (list python-pandas + python-pyyaml + python-yamlordereddictloader)) + (home-page "http://docs.airr-community.org") + (synopsis "Data Representation Standard library for antibody and TCR sequences") + (description "Python-airr provides a library by the AIRR community to for +describing, reporting, storing, and sharing adaptive immune receptor +repertoire (AIRR) data, such as sequences of antibodies and T cell +receptors (TCRs).") + (license license:cc-by4.0))) + (define-public diamond (package (name "diamond") @@ -7913,7 +8165,7 @@ and random access tool.") (lambda _ (setenv "NUMBA_CACHE_DIR" "/tmp")))))) (propagated-inputs - (list python-anndata + (list python-anndata-0.11 python-bamnostic python-h5py python-intervaltree @@ -8174,45 +8426,6 @@ variety of diversity measures including those that make use of phylogenetic similarity of community members.") (license license:gpl3+))) -(define-public fast5 - (package - (name "fast5") - (version "0.6.5") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/mateidavid/fast5") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1dsq3x1662ck1bcmcmqhblnhmypfppgysblgj2xr4lr6fl4si4pk")))) - (build-system pyproject-build-system) - (arguments - (list - #:tests? #f ;There are no tests. - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'use-system-hdf5 - (lambda* (#:key inputs outputs #:allow-other-keys) - (setenv "HDF5_INCLUDE_DIR" - (string-append #$(this-package-input "hdf5") "/include")) - (setenv "HDF5_LIB_DIR" - (string-append #$(this-package-input "hdf5") "/lib")))) - (add-after 'unpack 'chdir - (lambda _ - (chdir "python")))))) - (inputs (list hdf5-1.10)) - (propagated-inputs - (list python-dateutil)) - (native-inputs - (list python-cython python-setuptools python-wheel)) - (home-page "https://github.com/mateidavid/fast5") - (synopsis "Library for accessing Oxford Nanopore sequencing data") - (description "This package provides a lightweight C++ library for accessing -Oxford Nanopore Technologies sequencing data.") - (license license:expat))) - (define-public fasttree (package (name "fasttree") @@ -8452,52 +8665,48 @@ comment or quality sections.") (define-public gemma (package (name "gemma") - (version "v0.98.5") + (version "0.98.5") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/genetics-statistics/GEMMA") - (commit version))) + (url "https://github.com/genetics-statistics/GEMMA") + (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "1dm8pf1fbdmv2yiz5aybcvk3050m5350gq8xlr4j6swzm3wwhydn")) (modules '((guix build utils))) (snippet - '(begin - (delete-file-recursively "contrib") - #t)))) + #~(begin + (delete-file-recursively "contrib"))))) (build-system gnu-build-system) (inputs (list gsl openblas zlib)) (native-inputs - `(("catch" ,catch2-1) - ("perl" ,perl) - ("shunit2" ,shunit2) - ("which" ,which))) + (list catch2-1 + perl + shunit2 + which)) (arguments - `(#:phases - (modify-phases %standard-phases - (delete 'configure) - (add-after 'unpack 'prepare-build - (lambda* (#:key inputs #:allow-other-keys) - (mkdir-p "bin") - (substitute* "Makefile" - (("/usr/local/opt/openblas") - (assoc-ref inputs "openblas"))) - #t)) - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - ;; 'make slow-check' expects shunit2-2.0.3. - (with-directory-excursion "test" - (invoke "./test_suite.sh")) - #t))) - (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (install-file "bin/gemma" - (string-append (assoc-ref outputs "out") "/bin")) - #t))))) + (list + #:phases + #~(modify-phases %standard-phases + (delete 'configure) + (add-after 'unpack 'prepare-build + (lambda _ + (mkdir-p "bin") + (substitute* "Makefile" + (("/usr/local/opt/openblas") + #$(this-package-input "openblas"))))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + ;; 'make slow-check' expects shunit2-2.0.3. + (with-directory-excursion "test" + (invoke "./test_suite.sh"))))) + (replace 'install + (lambda _ + (install-file "bin/gemma" (string-append #$output "/bin"))))))) (home-page "https://github.com/genetics-statistics/GEMMA") (synopsis "Tool for genome-wide efficient mixed model association") (description @@ -8748,18 +8957,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 +8967,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") @@ -9961,7 +10161,7 @@ experiments.") (lambda _ (setenv "HOME" "/tmp")))))) ;; Propagate these for use of macs as a library. (propagated-inputs - (list python-cython python-numpy)) + (list python-cython-0 python-numpy)) (native-inputs (list python-pytest python-setuptools python-wheel)) (home-page "https://github.com/macs3-project/MACS") @@ -10235,7 +10435,7 @@ technology. Its features include: (define-public mash (package (name "mash") - (version "2.1") + (version "2.3") (source (origin (method git-fetch) (uri (git-reference @@ -10244,12 +10444,13 @@ technology. Its features include: (file-name (git-file-name name version)) (sha256 (base32 - "049hwcc059p2fd9vwndn63laifvvsi0wmv84i6y1fr79k15dxwy6")) + "00x4pvxwp3isf0qign1qmxwxc9rwzn5b3igjw9hyn3vx17bsx92q")) (modules '((guix build utils))) (snippet ;; Delete bundled kseq. ;; TODO: Also delete bundled murmurhash and open bloom filter. - '(delete-file "src/mash/kseq.h")))) + '(delete-file "src/mash/kseq.h")) + (patches (search-patches "mash-add-missing-headers.patch")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; No tests. @@ -10268,7 +10469,8 @@ technology. Its features include: (lambda _ (substitute* '("src/mash/Sketch.cpp" "src/mash/CommandFind.cpp" - "src/mash/CommandScreen.cpp") + "src/mash/CommandScreen.cpp" + "src/mash/CommandTaxScreen.cpp") (("^#include \"kseq\\.h\"") "#include \"htslib/kseq.h\"")))) (add-after 'fix-includes 'use-c++14 @@ -11031,7 +11233,7 @@ distribution, coverage uniformity, strand specificity, etc.") `(#:configure-flags ,#~(list (string-append "-DSVM_LIBRARY=" #$(this-package-input "libsvm") - "/lib/libsvm.so.2") + "/lib/libsvm.so") (string-append "-DSVM_INCLUDE=" #$(this-package-input "libsvm") "/include")) @@ -11881,13 +12083,9 @@ complexity samples.") (build-system pyproject-build-system) (native-inputs (list python-importlib-resources - python-pycodestyle python-pytest - python-pytest-cov python-setuptools - python-setuptools-scm - python-setuptools-scm-git-archive - python-wheel)) + python-setuptools-scm)) (home-page "https://github.com/dib-lab/screed/") (synopsis "Short read sequence database utilities") (description "Screed parses FASTA and FASTQ files and generates databases. @@ -11929,35 +12127,37 @@ interpretation.") (define-public python-taggd (package (name "python-taggd") - (version "0.3.6") + (version "0.4.0") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/SpatialTranscriptomicsResearch/taggd") + (url "https://github.com/jfnavarro/taggd") (commit version))) (file-name (git-file-name name version)) (sha256 (base32 - "0j19ah81z7aqrdljah9hyarp91gvgbk63pz6fz3pdpksy1yqyi6k")) - (modules '((guix build utils))) - (snippet - '(for-each delete-file - (find-files "taggd" "\\.c$"))))) - (build-system python-build-system) + "17hi1vs1qwhxx8jnradnl9k471li6fjb6w5sljkpzjxy7rkxwb85")))) + (build-system pyproject-build-system) (arguments (list #:phases - '(modify-phases %standard-phases - (add-after 'unpack 'disable-broken-tests - (lambda _ - (substitute* "tests/taggd_demultiplex_test.py" - (("def test_normal_bam_run") - "def _disabled_test_normal_bam_run"))))))) + #~(modify-phases %standard-phases + (add-before 'check 'remove-local-taggd + (lambda _ + ;; This would otherwise interfere with finding the installed + ;; taggd when running tests. + (delete-file-recursively "taggd")))))) (propagated-inputs - (list python-numpy python-pysam python-setuptools)) + (list python-numpy + python-pysam + python-tqdm + python-aiofiles + python-dnaio + python-types-aiofiles + python-types-tqdm)) (native-inputs - (list python-cython)) - (home-page "https://github.com/SpatialTranscriptomicsResearch/taggd") + (list python-cython python-pytest python-setuptools)) + (home-page "https://github.com/jfnavarro/taggd") (synopsis "Genetic barcode demultiplexing") (description "This package provides TagGD barcode demultiplexing utilities for Spatial Transcriptomics data.") @@ -11966,40 +12166,45 @@ for Spatial Transcriptomics data.") (define-public stpipeline (package (name "stpipeline") - (version "1.8.1") + (version "2.0.0") (source (origin - (method url-fetch) - (uri (pypi-uri "stpipeline" version)) + (method git-fetch) + (uri (git-reference + (url "https://github.com/jfnavarro/st_pipeline") + (commit version))) + (file-name (git-file-name name version)) (sha256 - (base32 "0har2g42fvaqpiz66lincy86aj1hvwzds26kxhxfamvyvv4721wk")))) + (base32 "1qah9sa7wy9ywf0si2ngqg0qyr9jjp5gxmjx3y65i78bxyq8pfyx")))) (build-system pyproject-build-system) (arguments (list #:phases '(modify-phases %standard-phases - (add-after 'unpack 'relax-requirements - (lambda _ - (substitute* "requirements.txt" - (("argparse.*") - ""))))))) + ;; requirements.txt and pyproject.toml have all versions + ;; of the dependencies hardcoded. All tests pass, so it should + ;; be good enough. + ;; However, the sanity-check of any Python package that has + ;; stpipelines a dependency, would fail too. + (delete 'sanity-check)))) (propagated-inputs (list htseq - python-cython - python-invoke + python-distance + python-dnaio python-numpy python-pandas - python-pympler python-pysam python-regex python-scikit-learn python-scipy python-seaborn - python-setuptools - python-sqlitedict python-taggd + python-types-regex samtools star)) - (native-inputs (list python-setuptools python-wheel)) - (home-page "https://github.com/SpatialTranscriptomicsResearch/st_pipeline") + (native-inputs (list + python-cython + python-pytest + python-poetry-core)) + (home-page "https://github.com/jfnavarro/st_pipeline") (synopsis "Pipeline for spatial mapping of unique transcripts") (description "This package provides an automated pipeline for spatial mapping of @@ -17043,7 +17248,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 +17257,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 +17372,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 +19943,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 +19953,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 +19978,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 +19992,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 +20011,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 +20049,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 +20070,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") @@ -20105,44 +20335,6 @@ provides a basic implementation of an interval tree using C++ templates, allowing the insertion of arbitrary types into the tree.") (license license:expat)))) -(define-public python-intervaltree - (package - (name "python-intervaltree") - (version "3.1.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "intervaltree" version)) - (sha256 - (base32 - "0bcm6c6r4ck9nfj9xwz4rm2swc5lrjvmw3lyl6rgj639jf41nawh")))) - (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - ;; pytest seems to have a check to make sure the user is testing - ;; their checked-out code and not an installed, potentially - ;; out-of-date copy. This is harmless here, since we just installed - ;; the package, so we disable the check to avoid skipping tests - ;; entirely. - (add-before 'check 'import-mismatch-error-workaround - (lambda _ - (setenv "PY_IGNORE_IMPORTMISMATCH" "1") - #t))))) - (propagated-inputs - (list python-sortedcontainers)) - (native-inputs - (list python-pytest)) - (home-page "https://github.com/chaimleib/intervaltree") - (synopsis "Editable interval tree data structure") - (description - "This package provides a mutable, self-balancing interval tree -implementation for Python. Queries may be by point, by range overlap, or by -range envelopment. This library was designed to allow tagging text and time -intervals, where the intervals include the lower bound but not the upper -bound.") - (license license:asl2.0))) - (define-public python-pypairix (package (name "python-pypairix") @@ -20475,7 +20667,7 @@ efficiently.") (define-public python-hic2cool (package (name "python-hic2cool") - (version "0.8.3") + (version "1.0.1") ;; pypi sources do not contain the test_data directory and no test can be ;; run (source @@ -20487,32 +20679,15 @@ efficiently.") (file-name (git-file-name name version)) (sha256 (base32 - "0dlnf0qfcp4jrc1nyya32a035c13xicyq16bwfnwhbb9s47mz7gl")))) - (build-system python-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - ;; Two of the test-data files need to be writable. - (add-after 'unpack 'make-test-data-writable - (lambda _ - (for-each make-file-writable - (list "test_data/hic2cool_0.4.2_single_res.cool" - "test_data/hic2cool_0.7.0_multi_res.mcool")))) - ;; See https://github.com/4dn-dcic/hic2cool/issues/58 - (add-after 'unpack 'fix-incompatibility-with-h5py-3 - (lambda _ - (substitute* "test.py" - (("h5py.File\\(fname\\)") "h5py.File(fname, 'r')")) - (substitute* "hic2cool/hic2cool_updates.py" - (("h5py.File\\(writefile\\)") - "h5py.File(writefile, 'a')")))) - ;; These two tests fail for unknown reasons. - (add-after 'unpack 'disable-broken-tests - (lambda _ - (substitute* "test.py" - (("def test_convert") "def _test_convert"))))))) + "0k0i43z43rxbpna4hfci406ma906w893frfj3cha1n8drvhdql6c")))) + (build-system pyproject-build-system) + (native-inputs + (list python-poetry-core)) (propagated-inputs - (list python-cooler python-h5py python-numpy python-pandas + (list python-cooler + python-h5py + python-numpy + python-pandas python-scipy)) (home-page "https://github.com/4dn-dcic/hic2cool") (synopsis "Converter for .hic and .cool files") @@ -20526,13 +20701,16 @@ matrices.") (define-public python-scanorama (package (name "python-scanorama") - (version "1.7.2") + (version "1.7.4") (source (origin - (method url-fetch) - (uri (pypi-uri "scanorama" version)) + (method git-fetch) + (uri (git-reference + (url "https://github.com/brianhie/scanorama") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 - (base32 "0il7bf4c7vli2dm2jx7dskh3ymgv8nmk0y90jzgfrnqjzh250x5w")))) + (base32 "1jpn4kq3qqa40xr0dwa9bw5cgga6h9ww9gfbyj6w3mfs8rv4w9rz")))) (build-system pyproject-build-system) (propagated-inputs (list python-annoy python-fbpca @@ -20542,7 +20720,7 @@ matrices.") python-numpy python-scikit-learn python-scipy)) - (native-inputs (list python-setuptools python-wheel)) + (native-inputs (list python-anndata python-pytest python-setuptools)) (home-page "https://github.com/brianhie/scanorama") (synopsis "Panoramic stitching of heterogeneous single cell transcriptomic data") @@ -21299,32 +21477,35 @@ repeated areas between contigs.") (define-public vembrane (package (name "vembrane") - (version "0.13.2") + (version "1.0.7") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/vembrane/vembrane") - (commit (string-append "v" version)))) + (url "https://github.com/vembrane/vembrane") + (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 - "1gdih56gpqd8ks3sd4ah844kac09hi3g073k9gvazb32ah50900w")))) + "127wmwj0162nfaql68jwxlkz7rbnjya70xrj4j8zwvcnxcj7x5v3")))) (build-system pyproject-build-system) (arguments (list #:phases - '(modify-phases %standard-phases - (add-after 'unpack 'relax-requirements - (lambda _ - (substitute* "pyproject.toml" - (("pysam = \"\\^0.19\"") "pysam = \"^0.20\"") - (("numpy = \\{ version = \"\\^1.23\"") - "numpy = { version = \"^1\""))))))) + #~(modify-phases %standard-phases + (add-after 'unpack 'use-poetry-core + (lambda _ + ;; Patch to use the core poetry API. + (substitute* "pyproject.toml" + (("poetry.masonry.api") "poetry.core.masonry.api"))))))) (inputs - (list python-asttokens python-intervaltree python-numpy - python-pysam python-pyyaml)) + (list python-asttokens + python-intervaltree + python-numpy + python-pysam + python-pyyaml)) (native-inputs - (list poetry python-pytest)) + (list python-poetry-core + python-pytest)) (home-page "https://github.com/vembrane/vembrane") (synopsis "Filter VCF/BCF files with Python expressions") (description "Vembrane simultaneously filters variants based on @@ -21559,16 +21740,32 @@ throughput chromatin profiles. Typical use cases include: (package (name "umi-tools") (version "1.1.6") + ;; TODO: Delete generated Cython C files. (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/CGATOxford/UMI-tools") - (commit (string-append "v" version)))) + (url "https://github.com/CGATOxford/UMI-tools") + (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "1liykfj4msvcgk8an5qq802jcxwlijqxrvijipqj1pwpxqzl9qnh")))) (build-system pyproject-build-system) + (arguments + (list + #:test-flags + #~(list "--ignore=tests/test_style.py" + "--ignore=step1_unit_test.py") + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'fix-bash-path + (lambda _ + (substitute* "tests/test_umi_tools.py" + (("/bin/bash") + (which "sh"))))) + (add-before 'check 'build-extensions + (lambda _ + (invoke "python" "setup.py" "build_ext" "--inplace")))))) (inputs (list python-pandas python-future @@ -21579,7 +21776,10 @@ throughput chromatin profiles. Typical use cases include: python-scipy python-pysam)) (native-inputs - (list python-setuptools python-wheel)) + (list python-cython + python-pyaml + python-pytest + python-setuptools)) (home-page "https://github.com/CGATOxford/UMI-tools") (synopsis "Tools for analyzing unique modular identifiers") (description "This package provides tools for dealing with @dfn{Unique @@ -22844,8 +23044,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 +23057,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 +23197,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 @@ -23260,6 +23461,9 @@ alignments, trees and genomic annotations.") (build-system pyproject-build-system) (arguments (list + ;; Failed: 'yield' keyword is allowed in fixtures, but not in tests + ;; (test_region) + #:test-flags #~(list "--ignore=gffutils/test/test_1.py") #:phases #~(modify-phases %standard-phases (add-before 'build 'set-HOME @@ -23525,7 +23729,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 +23738,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 @@ -23585,7 +23789,7 @@ coordinates between different assemblies.") (define-public python-cgatcore (package (name "python-cgatcore") - (version "0.6.15") + (version "0.6.16") ;; The version of pypi does not include test data. (source (origin (method git-fetch) @@ -23595,12 +23799,15 @@ coordinates between different assemblies.") (file-name (git-file-name name version)) (sha256 (base32 - "103hpdnkqr3a34blbicshk56j36g652s0g1zi9isppc5dngn0s18")))) + "0kvfb6fpfncdfb8wjmn7n2vmqk3wd7sdrfw1rhlihfdxbfzb5fa8")))) (build-system pyproject-build-system) (arguments (list #:test-flags - '(list "-k" + ;; Failed: 'yield' keyword is allowed in fixtures, but not in tests + ;; (test_import) + '(list "--ignore=tests/test_import.py" + "-k" (string-append ;; This test actually does what it should, but the check fails with ;; TypeError: cannot unpack non-iterable Namespace object @@ -23629,12 +23836,11 @@ coordinates between different assemblies.") (("import sys" m) (string-append "import apsw\n" m)))))))) (native-inputs - (list python-pytest + (list inetutils lsof - inetutils openssl - python-setuptools - python-wheel)) + python-pytest + python-setuptools)) (inputs (list time)) (propagated-inputs (list python-apsw @@ -23960,11 +24166,11 @@ sequence motif analysis.") (sha256 (base32 "1023hadgcsgi53kz53ql45207hfizf9sw57z0qij3ay1bx68zbpm")))) - (build-system python-build-system) + (build-system pyproject-build-system) (arguments '(#:tests? #false)) ;no tests (native-inputs - (list python-cython python-nose2)) + (list python-cython-0 python-setuptools)) ;; The package mainly consists of a command-line tool, but also has a ;; Python-API. Thus these must be propagated. (propagated-inputs @@ -24001,7 +24207,7 @@ for the analysis and visualization of raw nanopore signal.") (base32 "0i4j5bq5q32q216ja7yvg0mpww5j0b9p8ky5bya4d31wqmygal8z")))) (build-system pyproject-build-system) (propagated-inputs (list python-setuptools)) - (native-inputs (list python-setuptools python-wheel)) + (native-inputs (list python-pytest python-setuptools)) (home-page "https://github.com/dridk/PyVCF3") (synopsis "Variant Call Format parser for Python") (description "This package provides a @acronym{VCF,Variant Call Format} @@ -24012,24 +24218,35 @@ parser for Python.") (define-public nanosv (package - (name "nanosv") - (version "1.2.4") - (source (origin - (method url-fetch) - (uri (pypi-uri "NanoSV" version)) - (sha256 - (base32 - "1wl2daj0bwrl8fx5xi8j8hfs3mp3vg3qycy66538n032v1qkc6xg")))) - (build-system python-build-system) - (inputs - (list python-configparser python-pysam python-pyvcf3)) - (home-page "https://github.com/mroosmalen/nanosv") - (synopsis "Structural variation detection tool for Oxford Nanopore data") - (description "NanoSV is a software package that can be used to identify + (name "nanosv") + (version "1.2.4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "NanoSV" version)) + (sha256 + (base32 "1wl2daj0bwrl8fx5xi8j8hfs3mp3vg3qycy66538n032v1qkc6xg")))) + (build-system pyproject-build-system) + (arguments + (list + #:tests? #f ; No tests upstream, even in git. + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'relax-requirements + (lambda _ + (substitute* "setup.py" + (("'pyvcf'") + "'pyvcf3'"))))))) + (native-inputs (list python-setuptools python-wheel)) + (inputs (list python-configparser python-pysam python-pyvcf3)) + (home-page "https://github.com/mroosmalen/nanosv") + (synopsis "Structural variation detection tool for Oxford Nanopore data") + (description + "NanoSV is a software package that can be used to identify structural genomic variations in long-read sequencing data, such as data produced by Oxford Nanopore Technologies’ MinION, GridION or PromethION instruments, or Pacific Biosciences RSII or Sequel sequencers.") - (license license:expat))) + (license license:expat))) (define-public python-strawc (package @@ -24056,34 +24273,47 @@ data from @file{.hic} files. This package provides Python bindings.") (define-public python-pybbi (package (name "python-pybbi") - (version "0.3.0") + (version "0.4.1") (source (origin (method url-fetch) (uri (pypi-uri "pybbi" version)) (sha256 - (base32 - "1hvy2f28i2b41l1pq15vciqbj538n0lichp8yr6413jmgg06xdsk")))) - (build-system python-build-system) + (base32 "0p1s6y9f33wzmvxdhfg9b37sas2kghnmvkfnb317aiad1p6ks6ba")))) + (build-system pyproject-build-system) (arguments - `(#:tests? #false ; tests require network access - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'set-cc - (lambda _ (setenv "CC" "gcc"))) - (replace 'check - (lambda* (#:key inputs outputs tests? #:allow-other-keys) - (when tests? - (add-installed-pythonpath inputs outputs) - (copy-recursively "tests" "/tmp/tests") - (with-directory-excursion "/tmp/tests" - (invoke "python" "-m" "pytest" "-v")))))))) + (list + #:test-flags + #~(list "-k" (string-join + ;; Network is required to run these tests. + (list "not test_aws_403_redirect" + "test_chromsizes" + "test_fetch_remote" + "test_fetch_remote_https" + "test_sigs") + " and not ")) + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'set-cc + (lambda _ (setenv "CC" #$(cc-for-target)))) + (add-before 'check 'remove-local-bbi + (lambda _ + ;; This would otherwise interfere with finding the installed bbi + ;; when running tests. + (delete-file-recursively "bbi")))))) (native-inputs - (list pkg-config python-pkgconfig python-pytest)) + (list pkg-config + python-cython + python-pandas + python-pkgconfig + python-pytest + python-setuptools)) (inputs - (list libpng openssl zlib)) + (list libpng + openssl + zlib)) (propagated-inputs - (list python-cython python-numpy python-pandas python-six)) + (list python-numpy)) (home-page "https://github.com/nvictus/pybbi") (synopsis "Python bindings to UCSC Big Binary file library") (description @@ -24238,19 +24468,16 @@ sequences") (modules '((guix build utils))) (snippet '(for-each delete-file (find-files "." "\\.o$"))))) - (build-system python-build-system) + (build-system pyproject-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'relax-requirements - (lambda _ - (substitute* "setup.py" - (("wheel>=0.34") "wheel>=0.30")))) - ;; TODO: it's possible that the import error points to a real - ;; problem with the C sources. - (delete 'sanity-check)))) + (list #:tests? #f ;no tests + #:phases + #~(modify-phases %standard-phases + ;; TODO: it's possible that the import error points to a real + ;; problem with the C sources. + (delete 'sanity-check)))) (propagated-inputs - (list python-cffi python-setuptools python-wheel)) + (list python-cffi python-setuptools)) (inputs (list zlib)) (home-page "https://github.com/ACEnglish/bwapy") @@ -24488,41 +24715,52 @@ assembly (small or mammalian size) and single-cell assembly.") (license license:gpl3))) (define-public mudskipper - (package - (name "mudskipper") - (version "0.1.0") - (source (origin - (method url-fetch) - (uri (crate-uri "mudskipper" version)) - (file-name (string-append name "-" version ".tar.gz")) - (sha256 - (base32 - "1y7fnlz6irmxdmv6bxzm95w4ws4vzldlrh8npvgxmdnrz9pgb1dv")))) - (build-system cargo-build-system) - (arguments - `(#:tests? #false ;fail because the "mudskipper" crate cannot be found - #:cargo-inputs - (("rust-bio" ,rust-bio-0.39) - ("rust-bio-types" ,rust-bio-types-0.12) - ("rust-clap" ,rust-clap-2) - ("rust-coitrees" ,rust-coitrees-0.2) - ("rust-env-logger" ,rust-env-logger-0.9) - ("rust-fnv" ,rust-fnv-1) - ("rust-indicatif" ,rust-indicatif-0.16) - ("rust-libradicl" ,rust-libradicl-0.4) - ("rust-linecount" ,rust-linecount-0.1) - ("rust-log" ,rust-log-0.4) - ("rust-num-cpus" ,rust-num-cpus-1) - ("rust-rust-htslib" ,rust-rust-htslib-0.38)))) - (native-inputs - (list cmake-minimal pkg-config)) - (inputs - (list zlib xz)) - (home-page "https://github.com/OceanGenomics/mudskipper") - (synopsis "Convert genomic alignments to transcriptomic BAM/RAD files") - (description "Mudskipper is a tool for projecting genomic alignments to + (let ((commit "effd3fac03bc09d313e84fa680f18fdc6f3a16a0") + (revision "1")) + (package + (name "mudskipper") + (version (git-version "0.1.0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/OceanGenomics/mudskipper") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "17jm39sbrwgjlynxsn4g7lvq5hx6rwyjg86p10v4mc74fmdn5xd5")))) + (build-system cargo-build-system) + (arguments + (list #:install-source? #f + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'skip-doctesting-code-blocks + ;; See also https://github.com/rust-lang/rust/issues/63193. + (lambda _ + (substitute* "src/query_bam_records.rs" + (((string-append + "(pub )?fn (" + (string-join + '("get_next_query_records" + "get_next_query_records_skip" + "get_primary_record_of_sa_tag" + "get_records_from_sa_tag" + "group_records" + "group_records_skip" + "new") + "|") + ")") + all) + (string-append "#[cfg(not(doctest))]\n" all)))))))) + (native-inputs + (list pkg-config)) + (inputs + (cons* zlib xz (cargo-inputs 'mudskipper))) + (home-page "https://github.com/OceanGenomics/mudskipper") + (synopsis "Convert genomic alignments to transcriptomic BAM/RAD files") + (description "Mudskipper is a tool for projecting genomic alignments to transcriptomic coordinates.") - (license license:bsd-3))) + (license license:bsd-3)))) (define-public r-ascat (package @@ -24864,27 +25102,42 @@ interest.") (license license:gpl3+)))) (define-public python-vireosnp - (package - (name "python-vireosnp") - (version "0.5.7") - (source - (origin - (method url-fetch) - (uri (pypi-uri "vireoSNP" version)) - (sha256 - (base32 "02ybhzivsxwnb1axlgbs63wni1j27xajnkl4jw1ps5vmsz2l4b0d")))) - (build-system pyproject-build-system) - (propagated-inputs (list python-matplotlib python-numpy python-scipy)) - (native-inputs (list python-setuptools python-wheel)) - (home-page "https://github.com/huangyh09/vireoSNP") - (synopsis "Deconvolution based on SNP for multiplexed scRNA-seq data") - (description - "This package provides a deconvolution based on Single Nucleotide + (let ((commit "e3654633f7663732572c03c5dcf9fb00ec43b653") + (revision "0")) + (package + (name "python-vireosnp") + (version (git-version "0.5.9" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/huangyh09/vireoSNP") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1wd4llm54fvc1pc4nqfdc43g637gfx1f4z4aznvdr3biy9jksqza")))) + (build-system pyproject-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (if tests? + (with-directory-excursion "examples" + (invoke "bash" "demo.sh")) + (format #f "test suite not run.~%"))))))) + (propagated-inputs (list python-matplotlib python-numpy python-scipy)) + (native-inputs (list python-setuptools)) + (home-page "https://github.com/huangyh09/vireoSNP") + (synopsis "Deconvolution based on SNP for multiplexed scRNA-seq data") + (description + "This package provides a deconvolution based on Single Nucleotide Position (SNP) for multiplexed scRNA-seq data. The name vireo stand for Variational Inference for Reconstructing Ensemble Origin by expressed SNPs in multiplexed scRNA-seq data and follows the clone identification from single-cell data named @url{https://github.com/PMBio/cardelino, cardelino}.") - (license license:asl2.0))) + (license license:asl2.0)))) (define-public ccwl (package @@ -25049,7 +25302,7 @@ module capable of computing base-level alignments for very large sequences.") (define-public gdcm (package (name "gdcm") - (version "3.0.20") + (version "3.2.2") (source (origin (method git-fetch) (uri (git-reference @@ -25059,14 +25312,12 @@ module capable of computing base-level alignments for very large sequences.") (file-name (git-file-name name version)) (sha256 (base32 - "1rf0p7dnakjry0fa6ax1h762bn0l5n6ibfdxn077mjvwgpqan51l")))) + "1d9dm1wawgjy6vgw3shqchqpjcic6hprwhn0v7dw1qkgn3y8508w")))) (build-system cmake-build-system) (outputs '("out" "doc")) (arguments (list - #:test-exclude (string-join (list "TestFileMetaInformation" - "TestElement2" - "TestSCUValidation" + #:test-exclude (string-join (list "TestSCUValidation" "TestWriter" "TestAnonymizer4" "TestPrinter1" @@ -25076,23 +25327,41 @@ module capable of computing base-level alignments for very large sequences.") "TestStrictScanner2_1" "TestStrictScanner2" "TestStrictScanner2_2" - "TestFind") + "TestFind" + ;; Fail with 'Unsupported JPEG data precision 12'. + "TestImageReaderRandomEmpty" + "TestTransferSyntax" + ;; Relies on non-existent file. + "TestJSON1") "|") #:configure-flags - #~(list "-DGDCM_BUILD_TESTING=true" + #~(list "-DGDCM_BUILD_DOCBOOK_MANPAGES=ON" + "-DGDCM_BUILD_TESTING=true" "-DGDCM_DOCUMENTATION:BOOL=ON" - "-DGDCM_PDF_DOCUMENTATION:BOOL=OFF" (string-append "-DGDCM_INSTALL_DOC_DIR=" - #$output:doc "/share/doc/" #$name)) + #$output:doc "/share/doc/" #$name) + "-DGDCM_PDF_DOCUMENTATION:BOOL=OFF" + "-DGDCM_USE_SYSTEM_CHARLS=ON" + "-DGDCM_USE_SYSTEM_EXPAT=ON" + "-DGDCM_USE_SYSTEM_JSON=ON" + "-DGDCM_USE_SYSTEM_OPENSSL=ON" + "-DGDCM_USE_SYSTEM_UUID=ON" + "-DGDCM_USE_SYSTEM_ZLIB=ON") #:phases #~(modify-phases %standard-phases (add-before 'build 'set-HOME - ;; The build spams ‘Fontconfig error: No writable cache - ;; directories’ in a seemingly endless loop otherwise. + ;; The build with documentation spams ‘Fontconfig error: No writable + ;; cache directories’ in a seemingly endless loop otherwise. (lambda _ (setenv "HOME" "/tmp")))))) (native-inputs (list docbook-xsl doxygen graphviz libxslt)) - (home-page "https://gdcm.sourceforge.net/wiki/index.php/Main_Page") + (inputs (list charls + expat + json-c + openssl + (list util-linux "lib") + zlib)) + (home-page "https://sourceforge.net/projects/gdcm/") (synopsis "Grassroots DICOM library") (description "Grassroots DICOM (GDCM) is an implementation of the DICOM standard @@ -25256,6 +25525,7 @@ functions.") (build-system go-build-system) (arguments (list + #:go go-1.23 #:skip-build? #t #:import-path "github.com/biogo/store")) (propagated-inputs @@ -25346,13 +25616,6 @@ CSIv1, CSIv2 and FAI files.") #:install-source? #false #:features '(list "extension-module") #:cargo-test-flags '(list "--features=extension-module") - #:cargo-inputs - `(("rust-csv" ,rust-csv-1) - ("rust-itertools" ,rust-itertools-0.10) - ("rust-pyo3" ,rust-pyo3-0.16) - ("rust-rand" ,rust-rand-0.8) - ("rust-rayon" ,rust-rayon-1) - ("rust-serde" ,rust-serde-1)) #:imported-modules (append %cargo-build-system-modules %pyproject-build-system-modules) @@ -25418,9 +25681,9 @@ exclude = ;; These tests need access to the internet "-k" "not test_enrichr and not test_prerank"))))))) (inputs - (list python-wrapper)) + (cons python-wrapper (cargo-inputs 'python-gseapy))) (native-inputs - (list python-pytest python-wheel)) + (list python-pytest python-setuptools)) (propagated-inputs (list python-numpy python-scipy |