summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2020-11-23 15:14:01 +0200
committerEfraim Flashner <efraim@flashner.co.il>2020-11-23 15:43:38 +0200
commit964bc9e5fe60f19475306bf48e1813c0a79c2a88 (patch)
treeb0dd4c2aeb0ea5b4ee8b7376e028a83a53c48d9b
parenta78159547f4a2b17d5fd353d8d1789bec49886c0 (diff)
downloadguix-patches-964bc9e5fe60f19475306bf48e1813c0a79c2a88.tar
guix-patches-964bc9e5fe60f19475306bf48e1813c0a79c2a88.tar.gz
gnu: Add cwltool.
* gnu/packages/bioinformatics.scm (cwltool): New variable.
-rw-r--r--gnu/packages/bioinformatics.scm91
1 files changed, 91 insertions, 0 deletions
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 7290876450..939dc79d15 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -103,6 +103,7 @@
#:use-module (gnu packages maths)
#:use-module (gnu packages mpi)
#:use-module (gnu packages ncurses)
+ #:use-module (gnu packages node)
#:use-module (gnu packages ocaml)
#:use-module (gnu packages pcre)
#:use-module (gnu packages parallel)
@@ -2618,6 +2619,96 @@ generation, and transformation to RDF. Salad provides a bridge between document
and record oriented data modeling and the Semantic Web.")
(license license:asl2.0)))
+(define-public cwltool
+ (package
+ (name "cwltool")
+ (version "3.0.20201121085451")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/common-workflow-language/cwltool")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1awf99n7aglxc5zszrlrv6jxp355jp45ws7wpsgjlgcdv7advn0w"))))
+ (build-system python-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
+ ((", < 3.5") "")) ; shellescape
+ #t))
+ (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) ")))")))
+ #t))
+ (add-after 'unpack 'modify-tests
+ (lambda _
+ ;; Tries to connect to the internet.
+ (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")))
+ #t)))))
+ (propagated-inputs
+ `(("python-argcomplete" ,python-argcomplete)
+ ("python-bagit" ,python-bagit)
+ ("python-coloredlogs" ,python-coloredlogs)
+ ("python-mypy-extensions" ,python-mypy-extensions)
+ ("python-prov" ,python-prov)
+ ("python-pydot" ,python-pydot)
+ ("python-psutil" ,python-psutil)
+ ("python-rdflib" ,python-rdflib)
+ ("python-requests" ,python-requests)
+ ("python-ruamel.yaml" ,python-ruamel.yaml)
+ ("python-schema-salad" ,python-schema-salad)
+ ("python-shellescape" ,python-shellescape)
+ ("python-typing-extensions" ,python-typing-extensions)
+ ;; Not listed as needed but still necessary:
+ ("node" ,node)))
+ (native-inputs
+ `(("python-arcp" ,python-arcp)
+ ("python-humanfriendly" ,python-humanfriendly)
+ ("python-mock" ,python-mock)
+ ("python-pytest" ,python-pytest)
+ ("python-pytest-cov" ,python-pytest-cov)
+ ("python-pytest-mock" ,python-pytest-mock)
+ ("python-pytest-runner" ,python-pytest-runner)
+ ("python-rdflib-jsonld" ,python-rdflib-jsonld)))
+ (home-page
+ "https://github.com/common-workflow-language/common-workflow-language")
+ (synopsis "Common Workflow Language reference implementation")
+ (description
+ "This is the reference implementation of the @acronym{CWL, Common Workflow
+Language} standards. The CWL open standards are for describing analysis
+workflows and tools in a way that makes them portable and scalable across a
+variety of software and hardware environments, from workstations to cluster,
+cloud, and high performance computing (HPC) environments. CWL is designed to
+meet the needs of data-intensive science, such as Bioinformatics, Medical
+Imaging, Astronomy, Physics, and Chemistry. The @acronym{cwltool, CWL reference
+implementation} is intended to be feature complete and to provide comprehensive
+validation of CWL files as well as provide other tools related to working with
+CWL descriptions.")
+ (license license:asl2.0)))
+
(define-public python-dendropy
(package
(name "python-dendropy")