summaryrefslogtreecommitdiff
path: root/gnu/packages/bioinformatics.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/bioinformatics.scm')
-rw-r--r--gnu/packages/bioinformatics.scm406
1 files changed, 292 insertions, 114 deletions
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 02c65eb99a..609c91e7b1 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -4,7 +4,7 @@
;;; Copyright © 2015, 2016, 2018, 2019, 2020 Pjotr Prins <pjotr.guix@thebird.nl>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016, 2020, 2021 Roel Janssen <roel@gnu.org>
-;;; Copyright © 2016-2023 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016-2024 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2020, 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2016, 2018 Raoul Bonnal <ilpuccio.febo@gmail.com>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -94,7 +94,9 @@
#: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)
#:use-module (gnu packages glib)
#:use-module (gnu packages graph)
#:use-module (gnu packages graphics)
@@ -2246,6 +2248,38 @@ parallel. It uses Python's native multiprocessing framework to apply a user
defined rule on an input file.")
(license license:gpl3)))
+(define-public python-pdbfixer
+ (package
+ (name "python-pdbfixer")
+ (version "1.9")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/openmm/pdbfixer")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1zjhb19q5dclkwvzh8n29p31n1vzkhlmmzwqllimi89jsis1cx35"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:test-flags
+ '(list "-k"
+ ;; These tests fail because they require internet access.
+ (string-append "not test_build_and_simulate.py"
+ " and not test_cli.py"
+ " and not test_mutate.py"))))
+ (propagated-inputs (list openmm python-numpy))
+ (native-inputs (list python-pytest))
+ (home-page "https://github.com/openmm/pdbfixer")
+ (synopsis "Application for fixing problems in Protein Data Bank")
+ (description
+ "PDBFixer is designed to rectify issues in Protein Data Bank files.
+Its intuitive interface simplifies the process of resolving problems
+encountered in PDB files prior to simulation tasks.")
+ (license license:expat)))
+
(define-public python-peaks2utr
(package
(name "python-peaks2utr")
@@ -2493,6 +2527,70 @@ Python.")
;; licensed lgpl2.1+
(license (list license:expat license:lgpl2.1+))))
+(define-public python-ega-download-client
+ (package
+ (name "python-ega-download-client")
+ (version "5.1.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/EGA-archive/ega-download-client")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0k9rfq2yyvfxs5sq9lsm8krp9ddx4s18hv85ikf3b37zv24kpwjk"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:test-flags
+ '(list
+ ;; These tests fail because they require internet access.
+ "--ignore=tests/functional/test_download.py"
+ "--ignore=tests/functional/test_htsget.py"
+ "-k"
+ (string-append "not test_error_5xx"
+ " and not test_error_too_many_requests"
+ ;; Something's wrong here. On some powerful machines
+ ;; (but not on my laptop) these fail, and tests like
+ ;; test_file_is_saved_into_an_existing_directory_which_was_specified_by_the_user
+ ;; take a *very* long time to complete.
+ ;;
+ ;; It looks like "dataset_in_fire.download" takes an
+ ;; unusually long time on those machines. We disable
+ ;; tests that fail under these conditions.
+ " and not test_download_file"
+ " and not test_output_file_is_removed_if_md5_was_invalid"
+ " and not test_post_stats_if_download_succeeded"))
+ #:phases
+ '(modify-phases %standard-phases
+ (add-after 'unpack 'relax-requirements
+ (lambda _
+ (substitute* "setup.py"
+ (("==") ">=")))))))
+ (propagated-inputs (list python-htsget python-psutil python-requests
+ python-tqdm python-urllib3))
+ (native-inputs (list python-coverage python-pytest python-pyfakefs
+ python-responses python-mock))
+ (home-page "https://github.com/EGA-archive/ega-download-client")
+ (synopsis "EGA download client")
+ (description "PyEGA3 is a tool for viewing and downloading files from
+authorized EGA datasets. It uses the EGA data API and has several key
+features:
+
+@itemize
+@item Files are transferred over secure https connections and received
+ unencrypted, so no need for decryption after download.
+@item Downloads resume from where they left off in the event that the
+ connection is interrupted.
+@item Supports file segmenting and parallelized download of segments,
+ improving overall performance.
+@item After download completes, file integrity is verified using checksums.
+@item Implements the GA4GH-compliant htsget protocol for download of genomic
+ ranges for data files with accompanying index files.
+@end itemize\n")
+ (license license:asl2.0)))
+
(define-public python-scdamandtools
(package
(name "python-scdamandtools")
@@ -3660,14 +3758,14 @@ gapped, local, and paired-end alignment modes.")
(define-public bowtie1
(package
(name "bowtie1")
- (version "1.3.0")
+ (version "1.3.1")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/bowtie-bio/bowtie/"
version "/bowtie-" version "-src.zip"))
(sha256
(base32
- "11dbihdnrizc6qhx9xsw77w3q5ssx642alaqzvhxx32ak9glvq04"))
+ "0q87nhgj9wrnbazcpvqp4594hmyh1isi3s9b2wlghvl4afm1fdg2"))
(modules '((guix build utils)))
(snippet
'(substitute* "Makefile"
@@ -3676,16 +3774,22 @@ gapped, local, and paired-end alignment modes.")
(("-DBUILD_TIME=.*") "-DBUILD_TIME=\"\\\"0\\\"\"")))))
(build-system gnu-build-system)
(arguments
- `(#:tests? #f ; no "check" target
+ `(#:tests? #f ; Tests need various perl modules
+ #:test-target "simple-test"
#:make-flags
- ,#~(list "CC=gcc" "all"
- (string-append "prefix=" #$output))
+ ,#~(append #$(if (not (target-x86?))
+ #~'("POPCNT_CAPABILITY=0")
+ #~'())
+ (list (string-append "CC=" #$(cc-for-target))
+ (string-append "CXX=" #$(cxx-for-target))
+ "all"
+ (string-append "prefix=" #$output)))
#:phases
(modify-phases %standard-phases
(delete 'configure))))
(inputs
- (list python-wrapper tbb-2020 zlib))
- (supported-systems '("x86_64-linux"))
+ (list python-wrapper tbb zlib))
+ (supported-systems %64bit-supported-systems)
(home-page "https://bowtie-bio.sourceforge.net/index.shtml")
(synopsis "Fast aligner for short nucleotide sequence reads")
(description
@@ -4009,39 +4113,7 @@ omics data.")
(license license:bsd-3)))
(define-public python-pyega3
- (package
- (name "python-pyega3")
- (version "3.4.1")
- (source (origin
- (method url-fetch)
- (uri (pypi-uri "pyega3" version))
- (sha256
- (base32
- "1k736in8g27rarx65ym9xk50x53zjg75h37bb8ljynxv04rypx2q"))))
- (build-system python-build-system)
- (arguments
- `(#:tests? #f)) ; The tests require network access.
- (native-inputs
- (list python-psutil python-htsget))
- (propagated-inputs
- (list python-requests python-tqdm python-urllib3 python-responses))
- (home-page "https://github.com/EGA-archive/ega-download-client")
- (synopsis "Python client for EGA")
- (description "This package is a python-based tool for viewing and
-downloading files from authorized EGA datasets. It uses the EGA data API and
-has several key features:
-@itemize
-@item Files are transferred over secure https connections and received
- unencrypted, so no need for decryption after download.
-@item Downloads resume from where they left off in the event that the
- connection is interrupted.
-@item Supports file segmenting and parallelized download of segments,
- improving overall performance.
-@item After download completes, file integrity is verified using checksums.
-@item Implements the GA4GH-compliant htsget protocol for download of genomic
- ranges for data files with accompanying index files.
-@end itemize\n")
- (license license:asl2.0)))
+ (deprecated-package "python-pyega3" python-ega-download-client))
(define-public python-pysam
(package
@@ -4930,37 +5002,52 @@ Note that this package has been deprecated in favor of @code{pyfaidx}.")
(define-public python-schema-salad
(package
(name "python-schema-salad")
- (version "8.2.20211116214159")
+ (version "8.5.20240102191335")
(source
- (origin
- (method url-fetch)
- (uri (pypi-uri "schema-salad" version))
- (sha256
- (base32
- "005dh2y45x92zl8sf2sqjmfvcqr4hrz8dfckgkckv87003v7lwqc"))))
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "schema-salad" version))
+ (sha256
+ (base32
+ "035202p696i3jylb8b3nm9qcxsqby15hhqn1dl4nrz73a17p0ckx"))))
(build-system pyproject-build-system)
(arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-before 'check 'skip-failing-tests
- (lambda _
- ;; Skip tests that require network access.
- (substitute* "schema_salad/tests/test_cwl11.py"
- (("^def test_(secondaryFiles|outputBinding)" all)
- (string-append "@pytest.mark.skip(reason="
- "\"test requires network access\")\n"
- all))))))))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'set-version
+ (lambda _
+ ;; Set exact version.
+ (substitute* "setup.py"
+ (("use_scm_version=True")
+ (string-append "version=\"" #$version "\"")))))
+ (add-before 'check 'skip-failing-tests
+ (lambda _
+ ;; Skip tests that require network access.
+ (let ((skip-test
+ (lambda (test-pattern)
+ (string-append "@pytest.mark.skip(reason="
+ "\"test requires network access\")\n"
+ test-pattern))))
+ (substitute* "schema_salad/tests/test_cg.py"
+ (("^def test_(load(_by_yaml_metaschema|_metaschema|_cwlschema|)|include|idmap|idmap2)\\(" all)
+ (skip-test all)))
+ (substitute* "schema_salad/tests/test_cwl11.py"
+ (("^def test_(secondaryFiles|outputBinding|yaml_tab_error)\\(" all)
+ (skip-test all)))
+ (substitute* "schema_salad/tests/test_examples.py"
+ (("^def test_bad_schemas\\(" all)
+ (skip-test all)))))))))
(propagated-inputs
(list python-cachecontrol
- python-lockfile
- python-mistune
+ python-importlib-resources
+ python-mistune-next
+ python-mypy-extensions
python-rdflib
- python-rdflib-jsonld
python-requests
- python-ruamel.yaml
- python-typing-extensions))
+ python-ruamel.yaml))
(native-inputs
- (list python-black python-pytest python-pytest-runner))
+ (list python-black python-pytest python-pytest-runner python-pytest-xdist))
(home-page "https://github.com/common-workflow-language/schema_salad")
(synopsis "Schema Annotations for Linked Avro Data (SALAD)")
(description
@@ -5052,10 +5139,104 @@ resources for bioinformatics.")
doublets in single-cell RNA-seq data.")
(license license:expat)))
+(define-public python-cwlformat
+ (package
+ (name "python-cwlformat")
+ (version "2022.02.18")
+ (source
+ ;; The PyPI tarball is missing Readme.md. Readme.md is required for the
+ ;; build.
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/rabix/cwl-format")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0agkz2w86k91rc9m5vx5hsqi5nm6fcmzkng6j99hjapz0r9233ql"))))
+ (build-system pyproject-build-system)
+ (propagated-inputs
+ (list python-importlib-resources
+ python-ruamel.yaml))
+ (home-page "https://github.com/rabix/cwl-format")
+ (synopsis "Prettifier for CWL code")
+ (description "@code{python-cwlformat} is a specification and a reference
+implementation for a very opinionated @acronym{CWL, Common Workflow Language}
+code formatter. It outputs CWL in a standardized YAML format.")
+ (license license:asl2.0)))
+
+(define-public python-cwl-upgrader
+ (package
+ (name "python-cwl-upgrader")
+ (version "1.2.11")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "cwl-upgrader" version))
+ (sha256
+ (base32
+ "12j6z8nvwnzjjyypz59hwj5hmrcri2r6aknw52n9dbj6lbzbdd2p"))))
+ (build-system pyproject-build-system)
+ (native-inputs
+ (list python-pytest))
+ (propagated-inputs
+ (list python-ruamel.yaml
+ python-schema-salad))
+ (home-page "https://github.com/common-workflow-language/cwl-upgrader")
+ (synopsis "CWL document upgrader")
+ (description "@code{python-cwl-upgrader} is a standalone upgrader for
+@acronym{CWL, Common Workflow Language} documents from version draft-3, v1.0,
+and v1.1 to v1.2.")
+ (license license:asl2.0)))
+
+(define-public python-cwl-utils
+ (package
+ (name "python-cwl-utils")
+ (version "0.32")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "cwl-utils" version))
+ (sha256
+ (base32
+ "06wkw8d8cqm3hnz8xwnysz874gwaym36c358cr7frw5iglhvsj98"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:test-flags
+ #~(list "-k"
+ (string-append "not test_graph_split"
+ " and not test_load_document_with_remote_uri"
+ " and not test_remote_packing"
+ " and not test_remote_packing_github_soft_links"
+ " and not test_value_from_two_concatenated_expressions"))))
+ (inputs
+ (list node))
+ (native-inputs
+ (list python-mypy-extensions
+ python-pytest
+ python-pytest-mock
+ python-pytest-runner))
+ (propagated-inputs
+ (list python-cwl-upgrader
+ python-cwlformat
+ python-packaging
+ python-rdflib
+ python-requests
+ python-ruamel.yaml
+ python-schema-salad))
+ (home-page "https://github.com/common-workflow-language/cwl-utils")
+ (synopsis "Python utilities for CWL")
+ (description "@code{python-cwl-utils} provides python utilities and
+autogenerated classes for loading and parsing CWL v1.0, CWL v1.1, and CWL v1.2
+documents.")
+ (license license:asl2.0)))
+
(define-public cwltool
(package
(name "cwltool")
- (version "3.1.20220119140128")
+ (version "3.1.20240112164112")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -5064,56 +5245,51 @@ doublets in single-cell RNA-seq data.")
(file-name (git-file-name name version))
(sha256
(base32
- "1jmrm0qrqgka79avc1kq63fgh20gx6g07fc8p3iih4k85vhdyl3f"))))
+ "1fpc5kqgpbn48g5vlvy64p297x2wm3gfz8casgpk15ap593wwh33"))))
(build-system pyproject-build-system)
(arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'loosen-version-restrictions
- (lambda _
- (substitute* "setup.py"
- (("== 1.5.1") ">=1.5.1")))) ; prov
- (add-after 'unpack 'dont-use-git
- (lambda _
- (substitute* "gittaggers.py"
- (("self.git_timestamp_tag\\(\\)")
- (string-append "time.strftime('.%Y%m%d%H%M%S', time.gmtime(int("
- (string-drop ,version 4) ")))")))))
- (add-after 'unpack 'modify-tests
- (lambda _
- ;; Tries to connect to the internet.
- (delete-file "tests/test_content_type.py")
- (delete-file "tests/test_udocker.py")
- (delete-file "tests/test_http_input.py")
- (substitute* "tests/test_load_tool.py"
- (("def test_load_graph_fragment_from_packed")
- (string-append "@pytest.mark.skip(reason=\"Disabled by Guix\")\n"
- "def test_load_graph_fragment_from_packed")))
- (substitute* "tests/test_examples.py"
- (("def test_env_filtering")
- (string-append "@pytest.mark.skip(reason=\"Disabled by Guix\")\n"
- "def test_env_filtering")))
- ;; Tries to use cwl-runners.
- (substitute* "tests/test_examples.py"
- (("def test_v1_0_arg_empty_prefix_separate_false")
- (string-append "@pytest.mark.skip(reason=\"Disabled by Guix\")\n"
- "def test_v1_0_arg_empty_prefix_separate_false")))
-
- (substitute* '("cwltool/schemas/v1.1/tests/env-tool1.cwl"
- "cwltool/schemas/v1.1/tests/env-tool2.cwl"
- "cwltool/schemas/v1.1/tests/imported-hint.cwl"
- "tests/subgraph/env-tool2.cwl"
- "tests/subgraph/env-tool2_req.cwl"
- "tests/subgraph/env-wf2_subwf-packed.cwl"
- "tests/subgraph/env-tool2_no_env.cwl")
- (("\"/bin/sh\"") (string-append "\"" (which "sh") "\"")))
- ;; Pytest doesn't know what to do with "-n auto"
- (substitute* "tox.ini"
- (("-n auto") "")))))))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'loosen-version-restrictions
+ (lambda _
+ (substitute* "setup.py"
+ (("== 1.5.1") "> 1.5.1")))) ; prov
+ (add-after 'unpack 'set-version
+ (lambda _
+ ;; Set exact version.
+ (substitute* "setup.py"
+ (("use_scm_version=True")
+ (string-append "version=\"" #$version "\"")))))
+ (add-after 'unpack 'modify-tests
+ (lambda _
+ ;; Tries to connect to the internet.
+ (delete-file "tests/test_content_type.py")
+ (delete-file "tests/test_udocker.py")
+ (delete-file "tests/test_http_input.py")
+ (substitute* "tests/test_load_tool.py"
+ (("def test_load_graph_fragment_from_packed")
+ (string-append "@pytest.mark.skip(reason=\"Disabled by Guix\")\n"
+ "def test_load_graph_fragment_from_packed")))
+ (substitute* "tests/test_examples.py"
+ (("def test_env_filtering")
+ (string-append "@pytest.mark.skip(reason=\"Disabled by Guix\")\n"
+ "def test_env_filtering")))
+ ;; Tries to use cwl-runners.
+ (substitute* "tests/test_examples.py"
+ (("def test_v1_0_arg_empty_prefix_separate_false")
+ (string-append "@pytest.mark.skip(reason=\"Disabled by Guix\")\n"
+ "def test_v1_0_arg_empty_prefix_separate_false")))
+ (substitute* '("tests/subgraph/env-tool2.cwl"
+ "tests/subgraph/env-tool2_req.cwl"
+ "tests/subgraph/env-wf2_subwf-packed.cwl"
+ "tests/subgraph/env-tool2_no_env.cwl")
+ (("\"/bin/sh\"") (string-append "\"" (which "sh") "\""))))))))
(inputs
(list python-argcomplete
python-bagit
python-coloredlogs
+ python-cwl-utils
python-mypy-extensions
python-prov
python-pydot
@@ -5123,6 +5299,7 @@ doublets in single-cell RNA-seq data.")
python-ruamel.yaml
python-schema-salad
python-shellescape
+ python-spython
python-typing-extensions
;; Not listed as needed but still necessary:
node))
@@ -5133,7 +5310,8 @@ doublets in single-cell RNA-seq data.")
python-pytest
python-pytest-cov
python-pytest-mock
- python-pytest-runner))
+ python-pytest-runner
+ python-pytest-xdist))
(home-page
"https://github.com/common-workflow-language/common-workflow-language")
(synopsis "Common Workflow Language reference implementation")
@@ -11560,11 +11738,11 @@ single-cell data.")
(license license:gpl3))))
(define-public r-archr
- (let ((commit "92ab814f86be0cea75c661f9827a9549c2cf47f5")
+ (let ((commit "c61b0645d1482f80dcc24e25fbd915128c1b2500")
(revision "1"))
(package
(name "r-archr")
- (version (git-version "1.0.1" revision commit))
+ (version (git-version "1.0.2" revision commit))
(source
(origin
(method git-fetch)
@@ -11573,7 +11751,7 @@ single-cell data.")
(commit commit)))
(file-name (git-file-name name version))
(sha256
- (base32 "1m1vp3kkpvd0fcviv5vb3gcbm3w91ih6gm9ivg48swnbqny44kqb"))))
+ (base32 "0sgdfd8iwgj8cssj2zr3gmshg8nv54q6dd8asjf99i39qkni7p9i"))))
(properties `((upstream-name . "ArchR")))
(build-system r-build-system)
(propagated-inputs
@@ -22308,7 +22486,7 @@ useful for bioinformatic analysis.")
#:tests? #false)) ;require network access
(propagated-inputs
(list go-gopkg-in-check-v1
- go-github.com-ulikunitz-xz
+ go-github-com-ulikunitz-xz
go-github-com-kortschak-utter))
(synopsis "HTS CRAM module for biogo")
(description "This package provides tools for handling CRAM files.")))