1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
(define-module (gn packages cwl)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix download)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (gnu packages)
#:use-module (gnu packages bioinformatics)
#:use-module (gnu packages docker)
#:use-module (gnu packages node)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages serialization)
#:use-module (gnu packages time)
#:use-module (gn packages python))
(define-public cwl-runner
(package
(name "cwl-runner")
(version "1.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "cwl_runner" version))
(sha256
(base32
"0011am2xqwchysdznayrmwhg4bfjl4wlq6m4k20z1m7gccyzjgw0"))))
(build-system python-build-system)
(propagated-inputs
`(("cwltool" ,cwltool)))
(home-page
"https://github.com/common-workflow-language/common-workflow-language")
(synopsis "Common workflow language reference implementation")
(description
"Common workflow language alternate entry point to allow cwl-runner
script as an implementation-agnostic script interpreter.")
(license license:asl2.0)))
;; python-toil tightly integrates with cwltool using it as a library. So,
;; create a library version of cwltool where inputs become propagated inputs.
(define-public python-cwltool
(package
(inherit cwltool)
(name "python-cwltool")
(inputs
(list node))
(propagated-inputs
(modify-inputs (package-inputs cwltool)
(delete "node")))))
(define-public python-toil
(package
(name "python-toil")
(version "6.1.0")
(source (origin
(method url-fetch)
(uri (pypi-uri "toil" version))
(sha256
(base32
"0hwaihnncsfxw0sf3iigvgw6nylrb56lpk8qjadkgazr98dsp4ha"))))
(build-system pyproject-build-system)
(arguments
(list
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'disable-optional-features
(lambda _
(substitute* "requirements-cwl.txt"
;; Loosen version restrictions on ruamel.yaml.
(("ruamel.yaml[<>=.,[:digit:]]*\n") "ruamel.yaml\n")
;; Remove optional dependency on galaxy-util and
;; galaxy-tool-util. TODO: Package these and restore these
;; dependencies.
(("galaxy-util[^\n]*") "")
(("galaxy-tool-util[^\n]*") ""))
;; Disable optional wdl, wes and mesos features. We don't yet
;; have dependencies packaged for them. TODO: Package these
;; dependencies and enable these features.
(substitute* "setup.py"
(("\"wdl\",") "")
(("toil-cwl-runner = toil.cwl.cwltoil:main \\[cwl\\]")
"toil-cwl-runner = toil.cwl.cwltoil:main")
(("'toil-wdl-runner = toil.wdl.wdltoil:main \\[wdl\\]',") "")
(("'toil-wes-cwl-runner = toil.server.cli.wes_cwl_runner:main \\[server\\]',") "")
(("'_toil_mesos_executor = toil.batchSystems.mesos.executor:main \\[mesos\\]',") "")))))))
(propagated-inputs
(list python-addict
python-cachecontrol
python-configargparse
python-cwltool
python-dateutil
python-dill
python-docker
python-enlighten
python-psutil
python-pypubsub
python-pytz
python-pyyaml
python-requests
python-ruamel.yaml
python-typing-extensions-4.10
python-urllib3))
(home-page "https://github.com/DataBiosphere/toil")
(synopsis "Scalable, efficient and cross-platform workflow engine")
(description "Toil is a scalable, efficient, cross-platform pipeline
management system, written entirely in Python, and designed around the
principles of functional programming.")
(license (list license:asl2.0 ;; main license
license:expat)))) ;; src/toil/batchSystems/lsf.py and
;; src/toil/batchSystems/lsfHelper.py
|