projects/guix·blob javascript-team · refs

24876 lines · 976.6 KiB

1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2014-2026 Ricardo Wurmus <[email protected]>
3;;; Copyright © 2015, 2016, 2017, 2018 Ben Woodcroft <[email protected]>
4;;; Copyright © 2015, 2016, 2018, 2019, 2020 Pjotr Prins <[email protected]>
5;;; Copyright © 2015 Andreas Enge <[email protected]>
6;;; Copyright © 2016, 2020, 2021 Roel Janssen <[email protected]>
7;;; Copyright © 2016-2024 Efraim Flashner <[email protected]>
8;;; Copyright © 2016, 2020, 2022 Marius Bakke <[email protected]>
9;;; Copyright © 2016, 2018 Raoul Bonnal <[email protected]>
10;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <[email protected]>
11;;; Copyright © 2017, 2021, 2022, 2024–2026 Arun Isaac <[email protected]>
12;;; Copyright © 2018 Joshua Sierles, Nextjournal <[email protected]>
13;;; Copyright © 2018 Gábor Boskovits <[email protected]>
14;;; Copyright © 2018-2024 Mădălin Ionel Patrașcu <[email protected]>
15;;; Copyright © 2019, 2020, 2021, 2023 Maxim Cournoyer <[email protected]>
16;;; Copyright © 2019 Brian Leung <[email protected]>
17;;; Copyright © 2019 Brett Gilio <[email protected]>
18;;; Copyright © 2020 Björn Höfling <[email protected]>
19;;; Copyright © 2020 Jakub Kądziołka <[email protected]>
20;;; Copyright © 2020 Pierre Langlois <[email protected]>
21;;; Copyright © 2020 Bonface Munyoki Kilyungi <[email protected]>
22;;; Copyright © 2021 Tim Howes <[email protected]>
23;;; Copyright © 2021 Hong Li <[email protected]>
24;;; Copyright © 2021, 2022, 2023 Simon Tournier <[email protected]>
25;;; Copyright © 2021 Felix Gruber <[email protected]>
26;;; Copyright © 2022-2025 Navid Afkhami <[email protected]>
27;;; Copyright © 2022 Antero Mejr <[email protected]>
28;;; Copyright © 2024, 2026 Alexis Simon <[email protected]>
29;;; Copyright © 2024, 2026 Spencer King <[email protected]>
30;;; Copyright © 2025 nomike Postmann <[email protected]>
31;;; Copyright © 2025 Janneke Nieuwenhuizen <[email protected]>
32;;; Copyright © 2026 Hartmut Goebel <[email protected]>
33;;; Copyright © 2025-2026 Sharlatan Hellseher <[email protected]>
34;;; Copyright © 2025-2026 Jonas Meeuws <[email protected]>
35;;; Copyright © 2026 Cayetano Santos <[email protected]>
36;;;
37;;; This file is part of GNU Guix.
38;;;
39;;; GNU Guix is free software; you can redistribute it and/or modify it
40;;; under the terms of the GNU General Public License as published by
41;;; the Free Software Foundation; either version 3 of the License, or (at
42;;; your option) any later version.
43;;;
44;;; GNU Guix is distributed in the hope that it will be useful, but
45;;; WITHOUT ANY WARRANTY; without even the implied warranty of
46;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
47;;; GNU General Public License for more details.
48;;;
49;;; You should have received a copy of the GNU General Public License
50;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
51
52(define-module (gnu packages bioinformatics)
53 #:use-module ((guix licenses) #:prefix license:)
54 #:use-module (guix packages)
55 #:use-module (guix gexp)
56 #:use-module (guix utils)
57 #:use-module (guix download)
58 #:use-module (guix git-download)
59 #:use-module (guix hg-download)
60 #:use-module (guix build-system ant)
61 #:use-module (guix build-system gnu)
62 #:use-module (guix build-system cargo)
63 #:use-module (guix build-system cmake)
64 #:use-module (guix build-system go)
65 #:use-module (guix build-system haskell)
66 #:use-module (guix build-system meson)
67 #:use-module (guix build-system perl)
68 #:use-module (guix build-system pyproject)
69 #:use-module (guix build-system qt)
70 #:use-module (guix build-system r)
71 #:use-module (guix build-system ruby)
72 #:use-module (guix build-system trivial)
73 #:use-module (guix deprecation)
74 #:use-module (gnu packages)
75 #:use-module (gnu packages admin)
76 #:use-module (gnu packages assembly)
77 #:use-module (gnu packages autotools)
78 #:use-module (gnu packages algebra)
79 #:use-module (gnu packages base)
80 #:use-module (gnu packages bash)
81 #:use-module (gnu packages bison)
82 #:use-module (gnu packages bioconductor)
83 #:use-module (gnu packages boost)
84 #:use-module (gnu packages certs)
85 #:use-module (gnu packages check)
86 #:use-module (gnu packages code)
87 #:use-module (gnu packages cmake)
88 #:use-module (gnu packages compression)
89 #:use-module (gnu packages cpp)
90 #:use-module (gnu packages cpio)
91 #:use-module (gnu packages cran)
92 #:use-module (gnu packages crypto)
93 #:use-module (gnu packages curl)
94 #:use-module (gnu packages docbook)
95 #:use-module (gnu packages documentation)
96 #:use-module (gnu packages databases)
97 #:use-module (gnu packages datastructures)
98 #:use-module (gnu packages dlang)
99 #:use-module (gnu packages file)
100 #:use-module (gnu packages compiler-tools)
101 #:use-module (gnu packages gawk)
102 #:use-module (gnu packages gcc)
103 #:use-module (gnu packages gd)
104 #:use-module (gnu packages ghostscript)
105 #:use-module (gnu packages golang)
106 #:use-module (gnu packages golang-build)
107 #:use-module (gnu packages golang-check)
108 #:use-module (gnu packages golang-compression)
109 #:use-module (gnu packages golang-xyz)
110 #:use-module (gnu packages glib)
111 #:use-module (gnu packages gnupg)
112 #:use-module (gnu packages graph)
113 #:use-module (gnu packages graphics)
114 #:use-module (gnu packages graphviz)
115 #:use-module (gnu packages groff)
116 #:use-module (gnu packages gtk)
117 #:use-module (gnu packages guile)
118 #:use-module (gnu packages guile-xyz)
119 #:use-module (gnu packages haskell-check)
120 #:use-module (gnu packages haskell-web)
121 #:use-module (gnu packages haskell-xyz)
122 #:use-module (gnu packages image)
123 #:use-module (gnu packages image-processing)
124 #:use-module (gnu packages imagemagick)
125 #:use-module (gnu packages java)
126 #:use-module (gnu packages java-compression)
127 #:use-module (gnu packages java-xml)
128 #:use-module (gnu packages jemalloc)
129 #:use-module (gnu packages jupyter)
130 #:use-module (gnu packages libffi)
131 #:use-module (gnu packages linux)
132 #:use-module (gnu packages llvm)
133 #:use-module (gnu packages logging)
134 #:use-module (gnu packages lsof)
135 #:use-module (gnu packages machine-learning)
136 #:use-module (gnu packages man)
137 #:use-module (gnu packages maths)
138 #:use-module (gnu packages mpi)
139 #:use-module (gnu packages ncurses)
140 #:use-module (gnu packages node)
141 #:use-module (gnu packages nss)
142 #:use-module (gnu packages ocaml)
143 #:use-module (gnu packages oneapi)
144 #:use-module (gnu packages pcre)
145 #:use-module (gnu packages package-management)
146 #:use-module (gnu packages parallel)
147 #:use-module (gnu packages pdf)
148 #:use-module (gnu packages perl)
149 #:use-module (gnu packages perl-check)
150 #:use-module (gnu packages perl-web)
151 #:use-module (gnu packages perl6)
152 #:use-module (gnu packages pkg-config)
153 #:use-module (gnu packages popt)
154 #:use-module (gnu packages protobuf)
155 #:use-module (gnu packages python)
156 #:use-module (gnu packages python-build)
157 #:use-module (gnu packages python-check)
158 #:use-module (gnu packages python-compression)
159 #:use-module (gnu packages python-crypto)
160 #:use-module (gnu packages python-science)
161 #:use-module (gnu packages python-web)
162 #:use-module (gnu packages python-xyz)
163 #:use-module (gnu packages qt)
164 #:use-module (gnu packages rdf)
165 #:use-module (gnu packages readline)
166 #:use-module (gnu packages rpc)
167 #:use-module (gnu packages rsync)
168 #:use-module (gnu packages ruby)
169 #:use-module (gnu packages ruby-check)
170 #:use-module (gnu packages ruby-xyz)
171 #:use-module (gnu packages rust)
172 #:use-module (gnu packages serialization)
173 #:use-module (gnu packages shells)
174 #:use-module (gnu packages skribilo)
175 #:use-module (gnu packages sphinx)
176 #:use-module (gnu packages sqlite)
177 #:use-module (gnu packages statistics)
178 #:use-module (gnu packages swig)
179 #:use-module (gnu packages tbb)
180 #:use-module (gnu packages tex)
181 #:use-module (gnu packages texinfo)
182 #:use-module (gnu packages textutils)
183 #:use-module (gnu packages time)
184 #:use-module (gnu packages tls)
185 #:use-module (gnu packages uglifyjs)
186 #:use-module (gnu packages video)
187 #:use-module (gnu packages vim)
188 #:use-module (gnu packages web)
189 #:use-module (gnu packages wget)
190 #:use-module (gnu packages xml)
191 #:use-module (gnu packages xorg)
192 #:use-module (guix platform)
193 #:use-module (srfi srfi-1)
194 #:use-module (srfi srfi-26)
195 #:use-module (ice-9 match))
196
197(define-public alignoth
198 (package
199 (name "alignoth")
200 (version "1.4.6")
201 (source
202 (origin
203 (method url-fetch)
204 (uri (crate-uri "alignoth" version))
205 (file-name (string-append name "-" version ".tar.gz"))
206 (sha256
207 (base32 "11m2cwpy270dlsw48xgsmrlzmrbac0gxidwgbpahd5jchwnxl26f"))))
208 (build-system cargo-build-system)
209 (arguments
210 (list #:install-source? #f))
211 (native-inputs (list clang-13 pkg-config))
212 (inputs (cons* curl openssl zlib (cargo-inputs 'alignoth)))
213 (home-page "https://github.com/alignoth/alignoth")
214 (synopsis "Tool for creating alignment plots from bam files.")
215 (description
216 "This package provides a tool for creating alignment plots from bam files.")
217 (license license:expat)))
218
219(define-public aragorn
220 (package
221 (name "aragorn")
222 (version "1.2.41")
223 (source (origin
224 (method url-fetch)
225 (uri (string-append "https://www.ansikte.se/ARAGORN/Downloads/"
226 "aragorn" version ".c"))
227 (sha256
228 (base32
229 "0jkzx7sqiarydvz3bwaxh790fpvpkfc926dhsza1dbdhq32ir8wj"))))
230 (build-system gnu-build-system)
231 (arguments
232 (list
233 #:tests? #f ; there are no tests
234 #:phases
235 #~(modify-phases %standard-phases
236 (delete 'configure)
237 (replace 'build
238 (lambda _
239 (invoke "gcc" "-O3" "-ffast-math" "-finline-functions"
240 "-o" "aragorn" #$source)))
241 (replace 'install
242 (lambda* (#:key inputs #:allow-other-keys)
243 (let ((bin (string-append #$output "/bin"))
244 (man (string-append #$output "/share/man/man1")))
245 (install-file "aragorn" bin)
246 (mkdir-p man)
247 (copy-file (assoc-ref inputs "aragorn.1")
248 (string-append man "/aragorn.1"))))))))
249 (native-inputs
250 `(("aragorn.1"
251 ,(origin
252 (method url-fetch)
253 (uri "https://www.ansikte.se/ARAGORN/Downloads/aragorn.1")
254 (sha256
255 (base32
256 "0bn9lapa6f0cl07dbn2fjrapirv9d4bk7w248w39fhb4vbczcc3f"))))))
257 (home-page "https://www.ansikte.se/ARAGORN/")
258 (synopsis "Detect tRNA, mtRNA and tmRNA genes in nucleotide sequences")
259 (description
260 "Aragorn identifies transfer RNA, mitochondrial RNA and
261transfer-messenger RNA from nucleotide sequences, based on homology to known
262tRNA consensus sequences and RNA structure. It also outputs the secondary
263structure of the predicted RNA.")
264 (license license:gpl3+)))
265
266(define-public bamtools
267 (package
268 (name "bamtools")
269 (version "2.5.2")
270 (source (origin
271 (method git-fetch)
272 (uri (git-reference
273 (url "https://github.com/pezmaster31/bamtools")
274 (commit (string-append "v" version))))
275 (file-name (git-file-name name version))
276 (sha256
277 (base32
278 "14lw571vbks138i0lj66qjdbk8iwa817x2zbpzij61vv1gdgfbn5"))))
279 (build-system cmake-build-system)
280 (arguments
281 (list
282 #:configure-flags
283 '(list "-DBUILD_SHARED_LIBS=ON")))
284 (inputs (list jsoncpp zlib))
285 (native-inputs (list pkg-config))
286 (home-page "https://github.com/pezmaster31/bamtools")
287 (synopsis "C++ API and command-line toolkit for working with BAM data")
288 (description
289 "BamTools provides both a C++ API and a command-line toolkit for handling
290BAM files.")
291 (license license:expat)))
292
293(define-public bamutils
294 (package
295 (name "bamutils")
296 (version "1.0.15")
297 (source (origin
298 (method git-fetch)
299 (uri (git-reference
300 (url "https://github.com/statgen/bamUtil")
301 (commit (string-append "v" version))))
302 (file-name (git-file-name name version))
303 (sha256
304 (base32
305 "1pxydf9qsr8667jh525bc2wiqn9nwk8rkg05kbyfmjs8d261fl9y"))))
306 (build-system gnu-build-system)
307 (arguments
308 (list
309 #:tests? #f ;fails to link debug libraries
310 #:test-target "test"
311 #:make-flags
312 #~(list (string-append "INSTALLDIR=" #$output "/bin"))
313 #:phases
314 #~(modify-phases %standard-phases
315 (replace 'configure
316 (lambda* (#:key inputs #:allow-other-keys)
317 (substitute* "src/Makefile"
318 (("^DATE=.*") "DATE=\"1970-01-01\"\n"))
319 (copy-recursively (assoc-ref inputs "libstatgen")
320 "../libStatGen"))))))
321 (inputs
322 (list zlib))
323 (native-inputs
324 `(("libstatgen"
325 ,(origin
326 (method git-fetch)
327 (uri (git-reference
328 (url "https://github.com/statgen/libStatGen/")
329 (commit (string-append "v" version))))
330 (file-name (git-file-name "libstatgen" version))
331 (sha256
332 (base32
333 "0spvbpvnpxrgj8kajpkhf1mv7kdyvj723y9zh13jykvnjh8a15j3"))))))
334 (home-page "https://genome.sph.umich.edu/wiki/BamUtil")
335 (synopsis "Programs for working on SAM/BAM files")
336 (description "This package provides several programs that perform
337operations on SAM/BAM files. All of these programs are built into a
338single executable called @code{bam}.")
339 (license license:gpl3+)))
340
341(define-public bcftools
342 (package
343 (name "bcftools")
344 (version "1.23")
345 (source (origin
346 (method url-fetch)
347 (uri (string-append "https://github.com/samtools/bcftools/"
348 "releases/download/"
349 version "/bcftools-" version ".tar.bz2"))
350 (sha256
351 (base32
352 "0y075hjs8k604lcmhxpbw5sw5l95ljhm324xp2hiv67p72nf1kas"))
353 (modules '((guix build utils)))
354 (snippet '(begin
355 ;; Delete bundled htslib.
356 (delete-file-recursively "htslib-1.23")))))
357 (build-system gnu-build-system)
358 (arguments
359 `(#:configure-flags
360 (list "--enable-libgsl")
361 #:test-target "test"
362 #:phases
363 (modify-phases %standard-phases
364 (add-before 'check 'patch-tests
365 (lambda _
366 (substitute* "test/test.pl"
367 (("/bin/bash") (which "bash"))))))))
368 (native-inputs
369 (list htslib perl))
370 (inputs
371 (list gsl zlib))
372 (home-page "https://samtools.github.io/bcftools/")
373 (synopsis "Utilities for variant calling and manipulating VCFs and BCFs")
374 (description
375 "BCFtools is a set of utilities that manipulate variant calls in the
376Variant Call Format (VCF) and its binary counterpart BCF. All commands work
377transparently with both VCFs and BCFs, both uncompressed and BGZF-compressed.")
378 ;; The sources are dual MIT/GPL, but becomes GPL-only when USE_GPL=1.
379 (license (list license:gpl3+ license:expat))))
380
381(define-public bedops
382 (package
383 (name "bedops")
384 (version "2.4.41")
385 (source (origin
386 (method git-fetch)
387 (uri (git-reference
388 (url "https://github.com/bedops/bedops")
389 (commit (string-append "v" version))))
390 (file-name (git-file-name name version))
391 (sha256
392 (base32
393 "046037qdxsn01ln28rbrwnc7wq4a3xahmb2k74l0w75dby5ni42l"))))
394 (build-system gnu-build-system)
395 (arguments
396 (list
397 ;; We cannot run the tests because the build system makes strange
398 ;; assumptions about where executables are located.
399 #:tests? #false
400 #:test-target "tests"
401 #:make-flags
402 #~(list (string-append "CC=" #$(cc-for-target)))
403 #:phases
404 #~(modify-phases %standard-phases
405 (add-after 'unpack 'unpack-tarballs
406 (lambda _
407 ;; FIXME: Bedops includes tarballs of minimally patched upstream
408 ;; libraries jansson, zlib, and bzip2. We cannot just use stock
409 ;; libraries because at least one of the libraries (zlib) is
410 ;; patched to add a C++ function definition (deflateInit2cpp).
411 ;; Until the Bedops developers offer a way to link against system
412 ;; libraries we have to build the in-tree copies of these three
413 ;; libraries.
414
415 ;; See upstream discussion:
416 ;; https://github.com/bedops/bedops/issues/124
417
418 ;; Unpack the tarballs to benefit from shebang patching.
419 (with-directory-excursion "third-party"
420 (invoke "tar" "xvf" "jansson-2.6.tar.bz2")
421 (invoke "tar" "xvf" "zlib-1.2.7.tar.bz2")
422 (invoke "tar" "xvf" "bzip2-1.0.6.tar.bz2"))
423 ;; Disable unpacking of tarballs in Makefile.
424 (substitute* "system.mk/Makefile.linux"
425 (("^\tbzcat .*") "\t@echo \"not unpacking\"\n")
426 (("\\./configure") "CONFIG_SHELL=bash ./configure"))
427 (substitute* "third-party/zlib-1.2.7/Makefile.in"
428 (("^SHELL=.*$") "SHELL=bash\n"))))
429 (delete 'configure)
430 (replace 'install
431 (lambda _
432 (invoke "make" "install"
433 (string-append "BINDIR=" #$output "/bin")))))))
434 (native-inputs
435 (list diffutils perl which))
436 (home-page "https://github.com/bedops/bedops")
437 (synopsis "Tools for high-performance genomic feature operations")
438 (description
439 "BEDOPS is a suite of tools to address common questions raised in genomic
440studies---mostly with regard to overlap and proximity relationships between
441data sets. It aims to be scalable and flexible, facilitating the efficient
442and accurate analysis and management of large-scale genomic data.
443
444BEDOPS provides tools that perform highly efficient and scalable Boolean and
445other set operations, statistical calculations, archiving, conversion and
446other management of genomic data of arbitrary scale. Tasks can be easily
447split by chromosome for distributing whole-genome analyses across a
448computational cluster.")
449 (license license:gpl2+)))
450
451(define-public bedtools
452 (package
453 (name "bedtools")
454 (version "2.31.1")
455 (source (origin
456 (method url-fetch)
457 (uri (string-append "https://github.com/arq5x/bedtools2/releases/"
458 "download/v" version "/"
459 "bedtools-" version ".tar.gz"))
460 (sha256
461 (base32
462 "15rbfg776pcjxqrsa22dk7sdlmx1lijh3jhap04f1cbr4866czpw"))))
463 (build-system gnu-build-system)
464 (arguments
465 (list
466 #:test-target "test"
467 #:make-flags
468 #~(list (string-append "prefix=" #$output))
469 #:phases
470 '(modify-phases %standard-phases
471 (delete 'configure))))
472 (native-inputs
473 (list python-wrapper))
474 (inputs
475 (list samtools zlib))
476 (home-page "https://github.com/arq5x/bedtools2")
477 (synopsis "Tools for genome analysis and arithmetic")
478 (description
479 "Collectively, the bedtools utilities are a swiss-army knife of tools for
480a wide-range of genomics analysis tasks. The most widely-used tools enable
481genome arithmetic: that is, set theory on the genome. For example, bedtools
482allows one to intersect, merge, count, complement, and shuffle genomic
483intervals from multiple files in widely-used genomic file formats such as BAM,
484BED, GFF/GTF, VCF.")
485 (license license:expat)))
486
487;; Later releases of bedtools produce files with more columns than
488;; what Ribotaper expects.
489(define-public bedtools-2.18
490 (package (inherit bedtools)
491 (name "bedtools")
492 (version "2.18.0")
493 (source (origin
494 (method url-fetch)
495 (uri (string-append "https://github.com/arq5x/bedtools2/"
496 "releases/download/v" version
497 "/bedtools-" version ".tar.gz"))
498 (sha256
499 (base32
500 "11rvca19ncg03kxd0wzlfx5ws7r3nisd0z8s9j9n182d8ksp2pxz"))))
501 (arguments
502 (list
503 #:test-target "test"
504 #:phases
505 #~(modify-phases %standard-phases
506 (add-after 'unpack 'compatibility
507 (lambda _
508 (substitute* "src/utils/fileType/FileRecordTypeChecker.h"
509 (("static const float PERCENTAGE")
510 "static constexpr float PERCENTAGE"))
511 (substitute* "src/utils/general/DualQueue.h"
512 (("template <class T, template<class T> class CompareFunc>")
513 "template <class T, template<class U> class CompareFunc>"))
514 (substitute* '("src/utils/BamTools/src/api/algorithms/Sort.h"
515 "src/utils/BamTools/src/api/internal/bam/BamMultiMerger_p.h")
516 (("(bool operator\\(\\).*) \\{" m pre)
517 (string-append pre " const {")))))
518 (delete 'configure)
519 (replace 'install
520 (lambda _
521 (let ((bin (string-append #$output "/bin/")))
522 (for-each (lambda (file)
523 (install-file file bin))
524 (find-files "bin" ".*"))))))))
525 (native-inputs
526 (list python-wrapper))
527 (inputs
528 (list samtools zlib))))
529
530(define-public bitmapperbs
531 (package
532 (name "bitmapperbs")
533 (version "1.0.2.3")
534 (source (origin
535 (method git-fetch)
536 (uri (git-reference
537 (url "https://github.com/chhylp123/BitMapperBS/")
538 (commit (string-append "v" version))))
539 (file-name (git-file-name name version))
540 (sha256
541 (base32
542 "02ksssfnvmpskld0a2016smfz5nrzm3d90v8974f3cpzywckvp8v"))
543 (modules '((guix build utils)))
544 ;; This package bundles a modified copy of htslib, so we cannot
545 ;; unbundle it.
546 (snippet
547 '(begin
548 (delete-file-recursively "libdivsufsort-2.0.1")
549 (delete-file-recursively "pSAscan-0.1.0")))))
550 (build-system gnu-build-system)
551 (arguments
552 (list
553 #:tests? #false
554 #:make-flags '(list "bitmapperBS")
555 ;; The build system checks for CPU features. For this reason, we want
556 ;; users to build it locally instead of using substitutes.
557 #:substitutable? #false
558 #:phases
559 #~(modify-phases %standard-phases
560 (add-after 'unpack 'fix-build-system
561 (lambda _
562 (substitute* "Makefile"
563 (("make prefix=../htslib_aim install")
564 (string-append "make prefix=" #$output " install-so"))
565 (("htslib_aim/include") "htslib")
566 (("htslib_aim/lib")
567 (string-append #$output "/lib")))))
568 (add-after 'unpack 'patch-references-to-psascan
569 (lambda* (#:key inputs #:allow-other-keys)
570 (substitute* "Makefile"
571 (("\"(./)?psascan" pre all)
572 (string-append "\"" pre (search-input-file inputs "/bin/psascan"))))))
573 (delete 'configure)
574 (replace 'install
575 (lambda _
576 (install-file "bitmapperBS"
577 (string-append #$output "/bin/")))))))
578 (inputs
579 (list libdivsufsort psascan zlib))
580 (home-page "https://github.com/chhylp123/BitMapperBS/")
581 (synopsis "Read aligner for whole-genome bisulfite sequencing")
582 (description
583 "BitMapperBS is memory-efficient aligner that is designed for
584whole-genome bisulfite sequencing (WGBS) reads from directional protocol.")
585 (supported-systems '("x86_64-linux"))
586 (license license:asl2.0)))
587
588(define-public ngs-bits
589 (package
590 (name "ngs-bits")
591 (version "2025_09")
592 (home-page "https://github.com/imgag/ngs-bits")
593 (source (origin
594 (method git-fetch)
595 (uri (git-reference
596 (url home-page)
597 (commit version)
598 (recursive? #t))) ;for src/ cppCORE, cppGUI, ccpXML, cppTFW
599 (file-name (git-file-name name version))
600 (sha256
601 (base32
602 "18iphn4zxgs8iclk3kcahnb08581a6l01fhrrcql1z20fdh478np"))
603 (modules '((guix build utils)))
604 ;; This package bundles a modified copy of htslib, so we cannot
605 ;; unbundle it.
606 (snippet
607 '(for-each delete-file-recursively
608 '("htslib"
609 "libxml2")))))
610 (build-system gnu-build-system)
611 (arguments
612 (list
613 #:modules '((guix build gnu-build-system)
614 (guix build utils)
615 (srfi srfi-26)
616 (ice-9 match))
617 #:phases
618 #~(modify-phases %standard-phases
619 (replace 'configure
620 (lambda _
621 (setenv "CPLUS_INCLUDE_PATH"
622 (string-append
623 #$(this-package-input "libxml2")
624 "/include/libxml2"
625 ":" (getenv "CPLUS_INCLUDE_PATH")))
626 (substitute* "src/base.pri"
627 (("QMAKE_LFLAGS [+]=" all)
628 (string-append all " -Wl,-rpath=" #$output "/lib")))))
629 (replace 'build
630 (lambda _
631 (invoke "make" "build_libs_release")
632 (invoke "make" "build_tools_release")))
633 (add-after 'unpack 'patch-tests
634 (lambda _
635 ;; Programming exception: Requested key 'liftover_hg19_hg38' not
636 ;; found in settings!
637 (substitute* "src/tools-TEST/tools-TEST.pro"
638 (("BedLiftOver_Test.cpp") ""))
639 (let ((coreutils
640 (match (assoc-ref '#$(standard-packages) "coreutils")
641 ((package) package))))
642 (substitute* "src/cppCORE-TEST/Helper_Test.cpp"
643 (("/usr/bin/whoami")
644 (string-append coreutils "/bin/whoami"))))))
645 (replace 'check
646 (lambda _
647 ;; Could not create application data path
648 ;; '/homeless-shelter/.local/share/cppCORE-TEST'!
649 (setenv "HOME" "/tmp")
650 (invoke "make" "test_lib")
651 (invoke "make" "test_tools")))
652 (delete 'install)
653 (add-before 'check 'install ;check creates garbage in bin/
654 (lambda _
655 (define (install-file* file target)
656 (let ((dest (string-append target "/" (basename file))))
657 (format #t "`~a' -> `~a'~%" file dest)
658 (mkdir-p (dirname dest))
659 (let ((stat (lstat file)))
660 (case (stat:type stat)
661 ((symlink)
662 (let ((target (readlink file)))
663 (symlink target dest)))
664 (else
665 (copy-file file dest))))
666 (delete-file file)))
667 (copy-recursively "bin" "tmp")
668 (let ((doc (string-append #$output "/share/doc/" #$name))
669 (examples (find-files "tmp" "[.]example")))
670 (for-each (cute install-file* <> doc) examples))
671 ;; FIXME: .INI and .TSV files are read from the bin directory
672 ;; (let ((etc (string-append #$output "/etc"))
673 ;; (ini (find-files "tmp" "[.]ini")))
674 ;; (for-each (cute install-file* <> etc) ini))
675 (let ((lib (string-append #$output "/lib"))
676 (libraries (find-files "tmp" "^lib.*so")))
677 (for-each (cute install-file* <> lib) libraries))
678 (let ((bin (string-append #$output "/bin"))
679 (binaries (find-files "tmp")))
680 (for-each (cute install-file* <> bin) binaries))
681 (rmdir "tmp"))))))
682 (inputs (list
683 bzip2
684 curl
685 htslib
686 libdeflate
687 libxml2
688 lzip
689 openssl
690 qtbase-5
691 qtsvg-5
692 zlib))
693 (native-inputs (list libtool
694 pkg-config
695 python ;for tests
696 python-matplotlib ;for tests
697 python-numpy)) ;for tests
698 (synopsis "Short-read and long-read sequencing tools for diagnostics")
699 (description
700 "Ngs-bits (Next-Generation Sequencing) is collection of short-read and
701long-read sequencing tools for diagnostics.")
702 (license license:expat)))
703
704(define-public bustools
705 (package
706 (name "bustools")
707 (version "0.43.2")
708 (source (origin
709 (method git-fetch)
710 (uri (git-reference
711 (url "https://github.com/BUStools/bustools")
712 (commit (string-append "v" version))))
713 (file-name (git-file-name name version))
714 (sha256
715 (base32
716 "068kjlc4d528269nl5mc3j8h2c95r1v545d3fi1iw1ckg8rba0hg"))))
717 (build-system cmake-build-system)
718 (arguments (list #:tests? #f)) ;no test target
719 (inputs (list zlib))
720 (home-page "https://bustools.github.io")
721 (synopsis "Tools for working with BUS files")
722 (description "bustools is a program for manipulating BUS files for single
723cell RNA-Seq datasets. It can be used to error correct barcodes, collapse
724UMIs, produce gene count or transcript compatibility count matrices, and is useful
725for many other tasks.")
726 (license license:bsd-2)))
727
728(define-public cpat
729 (package
730 (name "cpat")
731 (version "3.0.5")
732 (source
733 (origin
734 (method git-fetch)
735 (uri (git-reference
736 (url "https://github.com/liguowang/cpat")
737 (commit (string-append "v" version))))
738 (file-name (git-file-name name version))
739 (sha256
740 (base32 "13l2bxaxn4bf7fglx2vnsxfjzvav96d9v78gzwx71sp7wgsjwz9w"))))
741 (build-system pyproject-build-system)
742 (arguments
743 (list
744 #:phases
745 #~(modify-phases %standard-phases
746 (replace 'check
747 ;; Working test steps from <test_files/test.sh> file.
748 (lambda* (#:key tests? #:allow-other-keys)
749 (when tests?
750 (with-directory-excursion "test_files"
751 (system* "gunzip" "Human_test_coding_mRNA.fa.gz")
752 (invoke "cpat" "--hex=Human_Hexamer.tsv"
753 "--logitModel=Human_logitModel.RData"
754 "--top-orf=5"
755 "--outfile=out5"
756 "--gene=Human_test_coding_mRNA.fa"
757 "--antisense"))))))))
758 (propagated-inputs
759 (list python-numpy python-pysam))
760 (inputs
761 (list r-minimal))
762 (native-inputs (list python-setuptools))
763 (home-page "https://wlcb.oit.uci.edu/cpat/")
764 (synopsis "Alignment-free distinction between coding and noncoding RNA")
765 (description
766 "CPAT is a method to distinguish coding and noncoding RNA by using a
767logistic regression model based on four pure sequence-based, linguistic
768features: ORF size, ORF coverage, Ficket TESTCODE, and Hexamer usage bias.
769Linguistic features based method does not require other genomes or protein
770databases to perform alignment and is more robust. Because it is
771alignment-free, it runs much faster and also easier to use.")
772 (license license:gpl2+)))
773
774(define-public python-bam-dedup
775 (package
776 (name "python-bam-dedup")
777 (version "0.3.0")
778 (source
779 (origin
780 (method url-fetch)
781 (uri (pypi-uri "bam_dedup" version))
782 (sha256
783 (base32 "1bf2pa0bbxg99ky244rqjzgiszzavc6adg1g5p39sb6ikb39alxj"))
784 ;; Delete generated C code.
785 (snippet
786 '(begin (delete-file "dedup/_fast.c")))))
787 (build-system pyproject-build-system)
788 (arguments
789 (list
790 #:test-flags
791 #~(list "--pyargs" "dedup" "tests")
792 #:phases
793 #~(modify-phases %standard-phases
794 (add-before 'check 'remove-local-source
795 (lambda _
796 (delete-file-recursively "dedup"))))))
797 (native-inputs (list python-cython python-pytest python-setuptools))
798 (propagated-inputs (list python-pysam))
799 (home-page "https://github.com/caleblareau/bam-dedup")
800 (synopsis "Read deduplications on BAM files")
801 (description
802 "This package provides a fast, JVM-free toolkit for removing duplicate
803reads from BAM/CRAM. It handles the two major kinds of duplication event in
804sequencing data, each a faithful, independent port of the standard reference
805tool, with the performance-critical inner loops accelerated in Cython.")
806 (license license:expat)))
807
808(define-public python-pygad
809 (package
810 (name "python-pygad")
811 (version "3.7.0")
812 (source
813 (origin
814 (method git-fetch)
815 (uri (git-reference
816 (url "https://github.com/ahmedfgad/GeneticAlgorithmPython")
817 (commit version)))
818 (file-name (git-file-name name version))
819 (sha256
820 (base32 "079f7g96pvr1jxa6fd5v0x2w0qm05xykwms00rh9hvnh71qj4yrd"))))
821 (build-system pyproject-build-system)
822 (arguments
823 (list
824 #:test-flags
825 #~(list "--ignore=tests/test_kerasga.py")))
826 (propagated-inputs
827 (list python-cloudpickle
828 python-numpy
829 ;; [optional]
830 ;; python-keras ;not packaged yet in Guix
831 python-matplotlib
832 python-pytorch
833 python-reportlab
834 #;python-tensorflow)) ;not packaged yet in Guix
835 (native-inputs (list python-pytest python-setuptools))
836 (home-page "https://github.com/ahmedfgad/GeneticAlgorithmPython")
837 (synopsis "Genetic algorithm and training machine learning algorithms")
838 (description
839 "PyGAD is a Python library for building the genetic algorithm and
840optimizing machine learning algorithms. It supports Keras and PyTorch, and it
841can optimize both single-objective and multi-objective problems.")
842 (license license:bsd-3)))
843
844(define-public r-anglemania
845 (let ((commit "f27399fb947adfa0de6134493e737658ca591af5")
846 (revision "1"))
847 (package
848 (name "r-anglemania")
849 (version (git-version "0.99.1" revision commit))
850 (source
851 (origin
852 (method git-fetch)
853 (uri (git-reference
854 (url "https://github.com/BIMSBbioinfo/anglemania/")
855 (commit commit)))
856 (file-name (git-file-name name version))
857 (sha256
858 (base32 "05s60wba5jbg81lflifaz9yykl86f3is1y4b63c7rp6vmd5jf5y3"))))
859 (properties `((upstream-name . "anglemania")))
860 (build-system r-build-system)
861 (propagated-inputs (list r-bigparallelr
862 r-bigstatsr
863 r-checkmate
864 r-digest
865 r-dplyr
866 r-magrittr
867 r-matrix
868 r-pbapply
869 r-rcpp
870 r-rmio
871 r-s4vectors
872 r-seurat
873 r-seuratobject
874 r-singlecellexperiment
875 r-tidyr
876 r-withr))
877 (native-inputs (list r-knitr r-testthat))
878 (home-page "https://github.com/BIMSBbioinfo/anglemania/")
879 (synopsis "Feature extraction for scRNA-seq dataset integration")
880 (description
881 "Anglemania extracts genes from multi-batch @code{scRNA-seq}
882experiments for downstream dataset integration. It improves conventional
883usage of highly-variable genes for integration tasks.")
884 (license license:gpl3+))))
885
886(define-public r-anpan
887 (let ((commit "efd4dc4874c418a43104ed3f418283d2451f0483")
888 (revision "1"))
889 (package
890 (name "r-anpan")
891 (version (git-version "0.3.0" revision commit))
892 (source
893 (origin
894 (method git-fetch)
895 (uri (git-reference
896 (url "https://github.com/biobakery/anpan")
897 (commit commit)))
898 (file-name (git-file-name name version))
899 (sha256
900 (base32 "02w281n489wsn0a935dcj7gmd8fjph5wba3ldlp5qz15brcp0w48"))))
901 (properties
902 '((upstream-name . "anpan")
903 (updater-extra-native-inputs . ("r-testthat"))))
904 (build-system r-build-system)
905 ;; XXX: We don't actually provide cmdstan itself, just the R interface,
906 ;; so we cannot run the tests.
907 (arguments (list #:tests? #false))
908 (propagated-inputs (list r-ape
909 r-cli
910 r-cmdstanr
911 r-data-table
912 r-dplyr
913 r-fastglm
914 r-furrr
915 r-future
916 r-ggdendro
917 r-ggnewscale
918 r-ggplot2
919 r-loo
920 r-patchwork
921 r-phylogram
922 r-posterior
923 r-progressr
924 r-purrr
925 r-r-utils
926 r-stringr
927 r-tibble
928 r-tidyselect))
929 (native-inputs (list r-knitr r-testthat))
930 (home-page "https://github.com/biobakery/anpan")
931 (synopsis "Quantifying microbial strain-host associations")
932 (description
933 "The goal of anpan is to consolidate statistical methods for strain
934analysis. This includes automated filtering of metagenomic functional
935profiles, testing genetic elements for association with outcomes, phylogenetic
936association testing, and pathway-level random effects models.")
937 (license license:expat))))
938
939(define-public r-bedtorch
940 (let ((commit "f5ff4f83b94f59eac660333c64e4b2f296b35cea")
941 (revision "1"))
942 (package
943 (name "r-bedtorch")
944 (version (git-version "0.1.12.12" revision commit))
945 (source (origin
946 (method git-fetch)
947 (uri (git-reference
948 (url "https://github.com/haizi-zh/bedtorch/")
949 (commit commit)))
950 (file-name (git-file-name name version))
951 (sha256
952 (base32
953 "08l04iqf54b5995gc7rvqqd7w327fwqs7qjyhc9y5cqfj8yv4c48"))))
954 (properties `((upstream-name . "bedtorch")))
955 (build-system r-build-system)
956 ;; Some of the tests attempt to download files off the internet.
957 (arguments (list #:tests? #false))
958 (propagated-inputs
959 (list r-assertthat
960 r-curl
961 r-data-table
962 r-dplyr
963 r-genomeinfodb
964 r-genomicranges
965 r-purrr
966 r-r-utils
967 r-rcpp
968 r-rcurl
969 r-readr
970 r-rhtslib12
971 r-s4vectors
972 r-stringr
973 r-tidyr))
974 (native-inputs (list r-testthat))
975 (home-page "https://github.com/haizi-zh/bedtorch/")
976 (synopsis "R package for fast BED-file manipulation")
977 (description
978 "The goal of bedtorch is to provide a fast BED file manipulation tool
979suite native in R.")
980 (license license:expat))))
981
982(define-public r-bpcells
983 (package
984 (name "r-bpcells")
985 (version "0.3.1")
986 (source
987 (origin
988 (method git-fetch)
989 (uri (git-reference
990 (url "https://github.com/bnprks/BPCells")
991 (commit (string-append "v" version))))
992 (file-name (git-file-name name version))
993 (sha256
994 (base32 "0yqgcajq83g25mznwcngaw7pi6vcqxqdnynpgb95yci57k3wrp6j"))
995 (modules '((guix build utils)))
996 (snippet
997 '(delete-file-recursively "r/src/vendor/highway"))))
998 (properties `((upstream-name . "BPCells")))
999 (build-system r-build-system)
1000 (arguments
1001 (list
1002 #:phases
1003 `(modify-phases %standard-phases
1004 (add-after 'unpack 'chdir
1005 (lambda _ (chdir "r")))
1006 ,@(if (target-x86-32?)
1007 '((add-after 'chdir 'require-sse2
1008 ;; This avoids falling back to the scalar backend in
1009 ;; highway, which fails to build.
1010 (lambda _ (setenv "CFLAGS" "-msse2"))))
1011 '()))))
1012 (propagated-inputs
1013 (list r-dplyr
1014 r-ggplot2
1015 r-ggrepel
1016 r-hexbin
1017 r-lifecycle
1018 r-magrittr
1019 r-matrix
1020 r-patchwork
1021 r-rcolorbrewer
1022 r-rcpp
1023 r-rcppeigen
1024 r-readr
1025 r-rlang
1026 r-scales
1027 r-scattermore
1028 r-stringr
1029 r-tibble
1030 r-tidyr
1031 r-vctrs
1032
1033 ;; Suggested packages
1034 r-genomicranges
1035 r-igraph
1036 r-iranges
1037 r-matrixstats))
1038 (inputs (list hdf5 google-highway zlib))
1039 (native-inputs (list pkg-config))
1040 (home-page "https://github.com/bnprks/BPCells")
1041 (synopsis "Single cell counts matrices to PCA")
1042 (description
1043 "This is a package providing efficient operations for single cell
1044ATAC-seq fragments and RNA counts matrices. It is interoperable with standard
1045file formats, and introduces efficient bit-packed formats that allow large
1046storage savings and increased read speeds.")
1047 ;; Either license
1048 (license (list license:asl2.0 license:expat))))
1049
1050(define-public r-btools
1051 (let ((commit "fa21d4ca01d37ea4d98b45582453f3bf95cbc2b5")
1052 (revision "1"))
1053 (package
1054 (name "r-btools")
1055 (version (git-version "0.0.1" revision commit))
1056 (source (origin
1057 (method git-fetch)
1058 (uri (git-reference
1059 (url "https://github.com/twbattaglia/btools")
1060 (commit commit)))
1061 (file-name (git-file-name name version))
1062 (sha256
1063 (base32
1064 "0bca593dnxz6xdywpdi0ipli0paln2b3bfxxj0csnmj55ryrz428"))))
1065 (properties `((upstream-name . "btools")))
1066 (build-system r-build-system)
1067 ;; There are no tests.
1068 (arguments (list #:tests? #false))
1069 (propagated-inputs
1070 (list r-biomformat
1071 r-coin
1072 r-deseq2
1073 r-dplyr
1074 r-genefilter
1075 r-phyloseq
1076 r-picante
1077 r-plotly
1078 r-reshape2
1079 r-stringr
1080 r-vegan))
1081 (home-page "https://github.com/twbattaglia/btools")
1082 (synopsis "R functions for microbial diversity analyses")
1083 (description
1084 "This package provides an assortment of R functions that is suitable
1085for all types of microbial diversity analyses.")
1086 (license license:expat))))
1087
1088(define-public r-codeandroll2
1089 (let ((commit "d58e258851a5c0b430e8620d34dbeefb597c548f")
1090 (revision "1"))
1091 (package
1092 (name "r-codeandroll2")
1093 (version (git-version "2.3.6" revision commit))
1094 (source (origin
1095 (method git-fetch)
1096 (uri (git-reference
1097 (url "https://github.com/vertesy/CodeAndRoll2")
1098 (commit commit)))
1099 (file-name (git-file-name name version))
1100 (sha256
1101 (base32
1102 "0sy88mfgw6qqhpnlc5020qzr1jllkcrxfhl2lw42bkl5nb56is71"))))
1103 (properties `((upstream-name . "CodeAndRoll2")))
1104 (build-system r-build-system)
1105 (propagated-inputs (list r-colorramps
1106 r-dplyr
1107 r-gplots
1108 r-gtools
1109 r-plyr
1110 r-rcolorbrewer
1111 r-sessioninfo
1112 r-sm
1113 r-stringendo
1114 r-stringr))
1115 (home-page "https://github.com/vertesy/CodeAndRoll2")
1116 (synopsis "CodeAndRoll2 for vector, matrix and list manipulations")
1117 (description
1118 "CodeAndRoll2 is a set of more than 130 productivity functions.
1119These functions are used by MarkdownReports, ggExpress, and SeuratUtils.")
1120 (license license:gpl3))))
1121
1122(define-public r-conospanel
1123 (let ((commit "39e76b201a783b4e92fd615010a735a61746fbb9")
1124 (revision "1"))
1125 (package
1126 (name "r-conospanel")
1127 (version (git-version "1.0.0" revision commit))
1128 (source
1129 (origin
1130 (method git-fetch)
1131 (uri (git-reference
1132 (url "https://github.com/kharchenkolab/conosPanel")
1133 (commit commit)))
1134 (file-name (git-file-name name version))
1135 (sha256
1136 (base32 "1zf0aj5d4iaxc3ghvjnaja5qby1avlmljzh94bpyvxbd359z9snn"))))
1137 (properties `((upstream-name . "conosPanel")))
1138 (build-system r-build-system)
1139 (home-page "https://github.com/kharchenkolab/conosPanel")
1140 (synopsis "Data for the conos package")
1141 (description "The data within this package is a panel of four samples,
1142each with 3000 cells. There are two samples which are bone marrow (BM), and
1143two samples which are cord blood (CB).")
1144 (license license:gpl3))))
1145
1146(define-public r-conqur
1147 (let ((commit "c7a88794efd4ecfe4d96988dceeec3b410222e48")
1148 (revision "1"))
1149 (package
1150 (name "r-conqur")
1151 (version (git-version "2.0" revision commit))
1152 (source (origin
1153 (method git-fetch)
1154 (uri (git-reference
1155 (url "https://github.com/wdl2459/ConQuR")
1156 (commit commit)))
1157 (file-name (git-file-name name version))
1158 (sha256
1159 (base32
1160 "19a7p2l67mgjy99i5ksjxlhzaqmrnyi1vzvwnhgnx2jrr6crj7rq"))))
1161 (properties `((upstream-name . "ConQuR")))
1162 (build-system r-build-system)
1163 (propagated-inputs (list r-ade4
1164 r-ape
1165 r-compositions
1166 r-cqrreg
1167 r-doparallel
1168 r-dplyr
1169 r-fastdummies
1170 r-glmnet
1171 r-gplots
1172 r-gunifrac
1173 r-quantreg
1174 r-randomforest
1175 r-rocr
1176 r-vegan))
1177 (native-inputs (list r-knitr))
1178 (home-page "https://github.com/wdl2459/ConQuR")
1179 (synopsis "Batch effects removal for microbiome data")
1180 (description
1181 "This package conducts batch effects removal from a taxa read count
1182table by a conditional quantile regression method. The distributional
1183attributes of microbiome data - zero-inflation and over-dispersion, are
1184simultaneously considered.")
1185 (license license:gpl3))))
1186
1187(define-public r-ewastools
1188 (let ((commit "f7646cacd73266708479b3fea5d625054d179f95")
1189 (revision "1"))
1190 (package
1191 (name "r-ewastools")
1192 (version (git-version "1.7.2" revision commit))
1193 (source
1194 (origin
1195 (method git-fetch)
1196 (uri (git-reference
1197 (url "https://github.com/hhhh5/ewastools/")
1198 (commit commit)))
1199 (file-name (git-file-name name version))
1200 (sha256
1201 (base32 "0irarlnxfnasa755adxsn67rxsy01zwhjhw18g4cag08cqiyyw41"))))
1202 (properties `((upstream-name . "ewastools")))
1203 (build-system r-build-system)
1204 (arguments
1205 (list
1206 #:phases
1207 '(modify-phases %standard-phases
1208 (add-after 'unpack 'disable-bad-tests
1209 (lambda _
1210 ;; Test data are missing.
1211 (substitute* "tests/testthat/test-minfi-pipeline.R"
1212 ((".*compatibility with minfi.*" m)
1213 (string-append m "skip('guix')\n"))))))))
1214 (propagated-inputs
1215 (list r-data-table
1216 r-igraph
1217 r-illuminaio
1218 r-mblm
1219 r-quadprog))
1220 (native-inputs
1221 (list r-enmix
1222 r-illuminahumanmethylationepicanno-ilm10b4-hg19
1223 r-knitr
1224 r-minfi
1225 r-stringi
1226 r-testthat))
1227 (home-page "https://github.com/hhhh5/ewastools/")
1228 (synopsis
1229 "Quality control toolset for the Illumina Infinium DNA methylation")
1230 (description
1231 "This package provides a collection of useful functions for working
1232with DNA methylation micro-array data.")
1233 (license license:unlicense))))
1234
1235(define-public r-hdwgcna
1236 (let ((commit "950b8c74c5d74b30b4a562820e70ca00ee29e2c6")
1237 (revision "1"))
1238 (package
1239 (name "r-hdwgcna")
1240 (version (git-version "0.4.00" revision commit))
1241 (source
1242 (origin
1243 (method git-fetch)
1244 (uri (git-reference
1245 (url "https://github.com/smorabit/hdWGCNA")
1246 (commit commit)))
1247 (file-name (git-file-name name version))
1248 (sha256
1249 (base32 "0d9hr2ly7k6kq6yp5spjlp6lp9yx593xmggajyzjxlhxi2lbyqgn"))
1250 (snippet
1251 '(for-each delete-file
1252 (list
1253 "docs/deps/bootstrap-5.1.0/bootstrap.bundle.min.js"
1254 "docs/deps/bootstrap-5.3.1/bootstrap.bundle.min.js"
1255 "docs/deps/bootstrap-toc-1.0.1/bootstrap-toc.min.js"
1256 "docs/deps/clipboard.js-2.0.11/clipboard.min.js"
1257 "docs/deps/headroom-0.11.0/headroom.min.js"
1258 "docs/deps/headroom-0.11.0/jQuery.headroom.min.js"
1259 "docs/deps/jquery-3.6.0/jquery-3.6.0.min.js"
1260 "docs/deps/search-1.0.0/autocomplete.jquery.min.js"
1261 "docs/deps/search-1.0.0/fuse.min.js"
1262 "docs/deps/search-1.0.0/mark.min.js")))))
1263 (properties `((upstream-name . "hdWGCNA")))
1264 (build-system r-build-system)
1265 (arguments
1266 (list
1267 #:modules
1268 '((guix build r-build-system)
1269 (guix build minify-build-system)
1270 (guix build utils)
1271 (ice-9 match))
1272 #:imported-modules
1273 `(,@%r-build-system-modules (guix build minify-build-system))
1274 #:phases
1275 '(modify-phases (@ (guix build r-build-system) %standard-phases)
1276 (add-after 'unpack 'process-javascript
1277 (lambda* (#:key inputs #:allow-other-keys)
1278 (with-directory-excursion "docs/deps/"
1279 (for-each (match-lambda
1280 ((source . target)
1281 (minify source #:target target)))
1282 `((,(string-append (assoc-ref inputs "js-bootstrap-5.1")
1283 "/dist/js/bootstrap.bundle.js")
1284 . "bootstrap-5.1.0/bootstrap.bundle.min.js")
1285 (,(string-append (assoc-ref inputs "js-bootstrap-5.3")
1286 "/dist/js/bootstrap.bundle.js")
1287 . "bootstrap-5.3.1/bootstrap.bundle.min.js")
1288 (,(search-input-file inputs "/dist/bootstrap-toc.js")
1289 . "bootstrap-toc-1.0.1/bootstrap-toc.min.js")
1290 (,(search-input-file inputs "/dist/clipboard.js")
1291 . "clipboard.js-2.0.11/clipboard.min.js")
1292 ("jquery-3.6.0/jquery-3.6.0.js"
1293 . "jquery-3.6.0/jquery-3.6.0.min.js")
1294 (,(search-input-file inputs "/dist/autocomplete.jquery.js")
1295 . "search-1.0.0/autocomplete.jquery.min.js")
1296 (,(search-input-file inputs "/dist/fuse.js")
1297 . "search-1.0.0/fuse.min.js")
1298 (,(search-input-file inputs "/dist/mark.js")
1299 . "search-1.0.0/mark.min.js")
1300 (,(assoc-ref inputs "js-headroom")
1301 . "headroom-0.11.0/headroom.min.js")
1302 (,(assoc-ref inputs "js-headroom-jquery")
1303 . "docs/deps/headroom-0.11.0/jQuery.headroom.min.js")))))))))
1304 (propagated-inputs (list r-dplyr
1305 r-enrichr
1306 r-geneoverlap
1307 r-genomicranges
1308 r-ggplot2
1309 r-ggraph
1310 r-ggrepel
1311 r-harmony
1312 r-igraph
1313 r-matrix
1314 r-proxy
1315 r-seurat
1316 r-tester
1317 r-tidygraph
1318 r-ucell
1319 r-wgcna))
1320 (native-inputs
1321 `(("esbuild" ,esbuild)
1322 ("js-autocomplete"
1323 ,(let ((version "0.38.0"))
1324 (origin
1325 (method git-fetch)
1326 (uri (git-reference
1327 (url "https://github.com/algolia/autocomplete")
1328 (commit (string-append "v" version))))
1329 (file-name (git-file-name "js-autocomplete" version))
1330 (sha256
1331 (base32
1332 "04r1qmd5cxcf8cf471kx51y6wq86rh54y42y7xl51z95ag5csswl")))))
1333 ("js-bootstrap-5.1"
1334 ,(let ((version "5.1.0"))
1335 (origin
1336 (method git-fetch)
1337 (uri (git-reference
1338 (url "https://github.com/twbs/bootstrap")
1339 (commit (string-append "v" version))))
1340 (file-name (git-file-name "js-bootstrap" version))
1341 (sha256
1342 (base32
1343 "0wjyi497wy2lbypkxwa72z294zbh827lb2s8pzgi40hvjsw00ns4")))))
1344 ("js-bootstrap-5.3"
1345 ,(let ((version "5.3.1"))
1346 (origin
1347 (method git-fetch)
1348 (uri (git-reference
1349 (url "https://github.com/twbs/bootstrap")
1350 (commit (string-append "v" version))))
1351 (file-name (git-file-name "js-bootstrap" version))
1352 (sha256
1353 (base32
1354 "045majqayd4wrpq3r3fisi56grwizykwj5705jlzsg7bwln8v3qr")))))
1355 ("js-bootstrap-toc"
1356 ,(let ((version "1.0.1"))
1357 (origin
1358 (method git-fetch)
1359 (uri (git-reference
1360 (url "https://github.com/afeld/bootstrap-toc")
1361 (commit (string-append "v" version))))
1362 (file-name (git-file-name "js-bootstrap-toc" version))
1363 (sha256
1364 (base32
1365 "1d4rqvbkwmmld0d8nz2is1rwc55rlb4b0v2anylxj63335cs0mk0")))))
1366 ("js-clipboard"
1367 ,(let ((version "2.0.11"))
1368 (origin
1369 (method git-fetch)
1370 (uri (git-reference
1371 (url "https://github.com/zenorocha/clipboard.js")
1372 (commit (string-append "v" version))))
1373 (file-name (git-file-name "js-clipboard" version))
1374 (sha256
1375 (base32
1376 "0nn9cry7ddf47vkl3vnpc4z86da46wq7m3qf3awcs05197bjn1vj")))))
1377 ("js-fuse"
1378 ,(let ((version "6.4.6"))
1379 (origin
1380 (method git-fetch)
1381 (uri (git-reference
1382 (url "https://github.com/krisk/Fuse")
1383 (commit (string-append "v" version))))
1384 (file-name (git-file-name "js-fuse" version))
1385 (sha256
1386 (base32
1387 "1k0l2vxw4nsmwrz48kmgv41ymphrdwbdbckiv9w011jwbnfsqvn5")))))
1388 ("js-mark"
1389 ,(let ((version "8.11.1"))
1390 (origin
1391 (method git-fetch)
1392 (uri (git-reference
1393 (url "https://github.com/julkue/mark.js")
1394 (commit version)))
1395 (file-name (git-file-name "js-mark" version))
1396 (sha256
1397 (base32
1398 "108cw4732wjlwwjwpc86fqlr8yfrlagqdn7126qxa70c0ldfma93")))))
1399 ("js-headroom"
1400 ,(let ((version "0.11.0"))
1401 (origin
1402 (method url-fetch)
1403 (uri (string-append "https://unpkg.com/headroom.js@"
1404 version "/dist/headroom.js"))
1405 (file-name (string-append "js-headroom-" version ".js"))
1406 (sha256
1407 (base32
1408 "0d76fpajxzwsj4847zgrv05daq8ri8hcww5dcldq1q2iyyxsmrva")))))
1409 ("js-headroom-jquery"
1410 ,(let ((version "0.11.0"))
1411 (origin
1412 (method url-fetch)
1413 (uri (string-append "https://unpkg.com/headroom.js@"
1414 version "/dist/jQuery.headroom.js"))
1415 (file-name (string-append "js-headroom-jquery-" version ".js"))
1416 (sha256
1417 (base32
1418 "1jz1ampd9k8p32m6bid4yrr66bkngd8blj2q0774hl91rszhjqrv")))))
1419 ("r-devtools" ,r-devtools)
1420 ("r-testthat" ,r-testthat)))
1421 (home-page "https://github.com/smorabit/hdWGCNA")
1422 (synopsis "Weighted gene co-expression network analysis")
1423 (description
1424 "@code{hdWGCNA} is an R package for performing weighted gene
1425co-expression network analysis in high dimensional -omics such as single-cell
1426RNA-seq or spatial transcriptomics.")
1427 (license license:gpl3))))
1428
1429(define-public r-netid
1430 (let ((commit "6ad1ffdd64a6584cc1d392524dad8e248d4590a8")
1431 (revision "1"))
1432 (package
1433 (name "r-netid")
1434 (version (git-version "0.1.0" revision commit))
1435 (source
1436 (origin
1437 (method git-fetch)
1438 (uri (git-reference
1439 (url "https://github.com/WWXkenmo/NetID_package")
1440 (commit commit)))
1441 (file-name (git-file-name name version))
1442 (sha256
1443 (base32 "1blm5ljql91xmbyxxwm3vw8iz8d4ir9gm7wfnapqhfdbjvg4l21q"))))
1444 (properties `((upstream-name . "NetID")))
1445 (build-system r-build-system)
1446 (propagated-inputs (list r-doparallel
1447 r-dorng
1448 r-glmnet
1449 r-hmisc
1450 r-igraph
1451 r-irlba
1452 r-lmtest
1453 r-matrix
1454 r-mclust
1455 r-pracma
1456 r-raceid
1457 r-rarpack
1458 r-reticulate
1459 r-robustrankaggreg
1460 r-rsvd
1461 r-seurat
1462
1463 ;; Needed for use with reticulate
1464 python-anndata
1465 python-geosketch
1466 python-scanpy
1467 python-scvelo))
1468 (native-inputs (list r-knitr))
1469 (home-page "https://github.com/WWXkenmo/NetID_package")
1470 (synopsis
1471 "Scalable method to infer fate-specific networks from single-cell data")
1472 (description
1473 "This package provides a method to sample cells from single-cell data.
1474It also generates an aggregate profile on a pruned K-Nearest Neighbor graph.
1475This approach leads to an improved gene expression profile for quantifying
1476gene regulations.")
1477 (license license:expat))))
1478
1479(define-public r-p2data
1480 (let ((commit "7d4c0e17d7899f9d9b08ab2bf455abe150912f4c")
1481 (revision "1"))
1482 (package
1483 (name "r-p2data")
1484 (version (git-version "1.0.0" revision commit))
1485 (source
1486 (origin
1487 (method git-fetch)
1488 (uri (git-reference
1489 (url "https://github.com/kharchenkolab/p2data")
1490 (commit commit)))
1491 (file-name (git-file-name name version))
1492 (sha256
1493 (base32 "1hadrldldxvhqs43aqs3c88bqfgql3wcfkbll3jz7fh6z7p3x324"))))
1494 (properties `((upstream-name . "p2data")))
1495 (build-system r-build-system)
1496 (home-page "https://github.com/kharchenkolab/p2data")
1497 (synopsis "Data for pagoda2")
1498 (description "This package contains data used by pagoda2. The data
1499within this package are the 3000 bone marrow cells used for vignettes.")
1500 (license license:gpl3))))
1501
1502(define-public r-pizzarr
1503 (package
1504 (name "r-pizzarr")
1505 (version "0.2.0")
1506 (source
1507 (origin
1508 (method git-fetch)
1509 (uri (git-reference
1510 (url "https://github.com/keller-mark/pizzarr")
1511 (commit (string-append "v" version))))
1512 (file-name (git-file-name name version))
1513 (sha256
1514 (base32 "1m38c57pfliycxkhb3mwgh01cl2q76r1jhd3vnk07dbfhqdbqai6"))))
1515 (properties `((upstream-name . "pizzarr")))
1516 (build-system cargo-build-system)
1517 (arguments
1518 (list
1519 #:imported-modules
1520 (append %cargo-build-system-modules
1521 %r-build-system-modules)
1522 #:modules
1523 '((guix build cargo-build-system)
1524 ((guix build r-build-system) #:prefix r:)
1525 (guix build utils))
1526 #:cargo-build-flags
1527 '(list "--target-dir=./target" "--release")
1528 #:phases
1529 #~(append (modify-phases %standard-phases
1530 (add-after 'unpack 'patch-Makevars
1531 (lambda _
1532 ;; At this point we've already built the Rust parts.
1533 (substitute* "src/Makevars.in"
1534 (("^all:.*") "all:")
1535 (("^\\$\\(STATLIB\\):") "NOBODYCARES:")
1536 (("@PKG_LIBS_EXTRA@") "@PKG_LIBS_EXTRA@ -lzstd -lz"))))
1537 (add-after 'patch-Makevars 'chdir
1538 (lambda _ (chdir "src/rust")))
1539 (add-after 'chdir 'patch-rust-dependency
1540 (lambda _
1541 (setenv "RUSTFLAGS" "--print=native-static-libs")
1542 (substitute* "Cargo.toml"
1543 (("extendr-api = \\{ git.* \\}") "extendr-api = \"0.8.1\""))))
1544 (add-after 'package 'chdir-back
1545 (lambda _ (chdir "../..")))
1546 (delete 'install)
1547 (delete 'check))
1548 (modify-phases (@ (guix build r-build-system) %standard-phases)
1549 (delete 'unpack)
1550 (replace 'patch-tests
1551 (lambda* (#:key inputs outputs tests? #:allow-other-keys)
1552 ((assoc-ref (@ (guix build r-build-system) %standard-phases)
1553 'patch-tests)
1554 #:skipped-tests
1555 ;; These files contain tests that require Internet access.
1556 '("test-compat.R" "test-get.R"
1557 ;; HttpStore requires the crul package
1558 ("test-zarrs-dispatch.R" "can_use_zarrs_create returns FALSE for HttpStore")
1559 ("test-zarrs-store-cache.R" "HttpStore get_store_identifier returns URL")))))
1560 (replace 'check
1561 (lambda* (#:key inputs outputs tests? #:allow-other-keys)
1562 ((assoc-ref (@ (guix build r-build-system) %standard-phases)
1563 'check)
1564 #:test-target "tests"
1565 #:test-types #false
1566 #:inputs inputs
1567 #:outputs outputs
1568 #:tests? tests?)))))))
1569 (propagated-inputs (list r-jsonlite r-memoise r-qs2 r-r6 r-stringr))
1570 (inputs
1571 (cons* c-blosc openssl snappy zlib `(,zstd "lib")
1572 (cargo-inputs 'r-pizzarr)))
1573 (native-inputs
1574 (list pkg-config
1575 r-minimal r-pbapply r-testthat r-vcr))
1576 (home-page "https://github.com/keller-mark/pizzarr")
1577 (synopsis "Slice into Zarr arrays in R")
1578 (description
1579 "This package provides an implementation of chunked, compressed,
1580N-dimensional arrays for R, Zarr specification version 2 (2024)
1581<doi:10.5281/zenodo.11320255>.")
1582 (license license:expat)))
1583
1584(define-public r-rhtslib12
1585 (let ((commit "ee186daf04876969c7f31c16a0e0fda8e7c16a30")
1586 (revision "1"))
1587 (package
1588 (name "r-rhtslib12")
1589 (version (git-version "1.23.2" revision commit))
1590 (source (origin
1591 (method git-fetch)
1592 (uri (git-reference
1593 (url "https://github.com/haizi-zh/Rhtslib12")
1594 (commit commit)))
1595 (file-name (git-file-name name version))
1596 (sha256
1597 (base32
1598 "0a3kkp0phi2fq6ip8p9vfj3axn7l15f2mb51a6v3ai4nlkhqqawj"))))
1599 (properties `((upstream-name . "Rhtslib12")))
1600 (build-system r-build-system)
1601 (propagated-inputs (list curl zlib r-zlibbioc))
1602 (native-inputs (list pkg-config r-knitr))
1603 (home-page "https://github.com/haizi-zh/Rhtslib12")
1604 (synopsis "HTSlib high-throughput sequencing library as an R package")
1605 (description
1606 "This package provides version 1.12 of the HTSlib C library for
1607high-throughput sequence analysis. The package is primarily useful to
1608developers of other R packages who wish to make use of HTSlib.")
1609 (license license:lgpl2.0+))))
1610
1611(define-public r-scdesign2
1612 (let ((commit "554f2c4b1a7ee6cc04969a287df9b3b77d7bb2fe")
1613 (revision "1"))
1614 (package
1615 (name "r-scdesign2")
1616 (version (git-version "1.0.0" revision commit))
1617 (source
1618 (origin
1619 (method git-fetch)
1620 (uri (git-reference
1621 (url "https://github.com/JSB-UCLA/scDesign2")
1622 (commit commit)))
1623 (file-name (git-file-name name version))
1624 (sha256
1625 (base32 "09zkz6qdcx54092ab6761ja3pclax9xzana8dk8qvxrdbjshb8p7"))))
1626 (properties `((upstream-name . "scDesign2")))
1627 (build-system r-build-system)
1628 (propagated-inputs (list r-mass r-pscl))
1629 (native-inputs (list r-knitr))
1630 (home-page "https://github.com/JSB-UCLA/scDesign2")
1631 (synopsis "Statistical simulator for scRNA-seq with gene correlation")
1632 (description
1633 "This package offers a flexible statistical simulator for scRNA-seq data.
1634It can generate data that captures gene correlation. Additionally, it allows
1635for varying the number of cells and sequencing depth.")
1636 (license license:expat))))
1637
1638(define-public r-scenic
1639 (let ((commit "cedf8490a634da550cea2c831544e5f7f14467d2")
1640 (revision "1"))
1641 (package
1642 (name "r-scenic")
1643 (version (git-version "1.3.1" revision commit))
1644 (source
1645 (origin
1646 (method git-fetch)
1647 (uri (git-reference
1648 (url "https://github.com/aertslab/SCENIC")
1649 (commit commit)))
1650 (file-name (git-file-name name version))
1651 (sha256
1652 (base32 "17ai0q260hdqbvm1km1s5dw93pgz4f546ycfii57jyy9m9jka7r0"))))
1653 (properties `((upstream-name . "SCENIC")))
1654 (build-system r-build-system)
1655 (propagated-inputs (list r-aucell
1656 r-data-table
1657 r-dynamictreecut
1658 r-genie3
1659 r-ggrepel
1660 r-mixtools
1661 r-nmf
1662 r-rcistarget
1663 r-rtsne))
1664 (native-inputs (list r-knitr))
1665 (home-page "https://github.com/aertslab/SCENIC")
1666 (synopsis
1667 "SCENIC (Single Cell rEgulatory Network Inference and Clustering)")
1668 (description "SCENIC (Single-cell regulatory network inference and
1669clustering) is an R package to infer Gene Regulatory Networks and cell types
1670from single-cell RNA-seq data.")
1671 ;; As of commit cedf8490a634da550cea2c831544e5f7f14467d2 the license is
1672 ;; GPLv3.
1673 (license license:gpl3))))
1674
1675(define-public r-scent
1676 (let ((commit "f01f18ac30f8a9bcf85b738c6c7815017e2c8ee5")
1677 (revision "1"))
1678 (package
1679 (name "r-scent")
1680 (version (git-version "1.0.0" revision commit))
1681 (source
1682 (origin
1683 (method git-fetch)
1684 (uri (git-reference
1685 (url "https://github.com/immunogenomics/SCENT")
1686 (commit commit)))
1687 (file-name (git-file-name name version))
1688 (sha256
1689 (base32 "18krksy8ac7yy8hghzaxscj91c61j195yg7j60zswdq97islvfzi"))))
1690 (properties `((upstream-name . "SCENT")))
1691 (build-system r-build-system)
1692 (inputs (list bedtools))
1693 (propagated-inputs (list r-boot
1694 r-data-table
1695 r-hmisc
1696 r-lme4
1697 r-mass
1698 r-matrix
1699 r-r-utils
1700 r-stringr))
1701 (native-inputs (list r-knitr))
1702 (home-page "https://github.com/immunogenomics/SCENT")
1703 (synopsis
1704 "Single-Cell enhancer target gene mapping for multimodal single-cell data")
1705 (description
1706 "This package contains functions for the SCENT algorithm.
1707SCENT uses single-cell multimodal data and links ATAC-seq peaks
1708to their target genes by modeling association between chromatin
1709accessibility and gene expression across individual single cells.")
1710 (license license:expat))))
1711
1712(define-public r-saige
1713 (let ((commit "7172b7fa774ec56b3ab6e45173cede3de010a41b")
1714 (revision "1"))
1715 (package
1716 (name "r-saige")
1717 (version (git-version "1.5.1" revision commit))
1718 (source
1719 (origin
1720 (method git-fetch)
1721 (uri (git-reference
1722 (url "https://github.com/saigegit/SAIGE")
1723 (commit commit)))
1724 (file-name (git-file-name name version))
1725 (sha256
1726 (base32 "0j5nzw5bvfvi48gkh2l60dai4av8z07kkf981y9wf22phnvnpcaw"))))
1727 (properties `((upstream-name . "SAIGE")))
1728 (build-system r-build-system)
1729 (arguments
1730 (list
1731 #:phases
1732 '(modify-phases %standard-phases
1733 (add-after 'unpack 'do-not-download-packages
1734 (lambda _
1735 ;; Pretend to be a Conda build to avoid having to install
1736 ;; things with pip and cget.
1737 (setenv "CONDA_BUILD" "1")))
1738 (add-after 'unpack 'add-missing-include
1739 (lambda _
1740 (substitute* "src/SAIGE_fitGLMM_fast.cpp"
1741 (("#include <omp.h>")
1742 "#include <omp.h>\n#include <tbb/concurrent_vector.h>"))))
1743 (add-after 'unpack 'link-with-openblas
1744 (lambda* (#:key inputs #:allow-other-keys)
1745 (substitute* "src/Makevars"
1746 (("-llapack")
1747 (search-input-file inputs
1748 "/lib/libopenblas.so")))))
1749 (add-after 'unpack 'link-with-plink2
1750 (lambda* (#:key inputs #:allow-other-keys)
1751 (substitute* "src/Makevars"
1752 (("-l:plink2_includes.a")
1753 (search-input-file inputs "/lib/libplink2.so"))))))))
1754 (inputs (list openblas plink-ng savvy superlu zlib zstd))
1755 (propagated-inputs (list r-bh
1756 r-data-table
1757 r-dplyr
1758 r-lintools
1759 r-matrix
1760 r-metaskat
1761 r-optparse
1762 r-qlcmatrix
1763 r-rcpp
1764 r-rcpparmadillo
1765 r-rcppeigen
1766 r-rcppparallel
1767 r-rhpcblasctl
1768 r-rsqlite
1769 r-skat
1770 r-spatest
1771 r-survival))
1772 (home-page "https://github.com/saigegit/SAIGE")
1773 (synopsis "Genome-wide association tests in large-scale data sets")
1774 (description "SAIGE is a package for efficiently controlling for
1775case-control imbalance and sample relatedness in single-variant assoc
1776tests (SAIGE) and controlling for sample relatedness in region-based assoc
1777tests in large cohorts and biobanks (SAIGE-GENE+).")
1778 (license license:gpl2+))))
1779
1780(define-public r-sigfit
1781 (package
1782 (name "r-sigfit")
1783 (version "2.2.0")
1784 (source
1785 (origin
1786 (method git-fetch)
1787 (uri (git-reference
1788 (url "https://github.com/kgori/sigfit")
1789 (commit (string-append "v" version))))
1790 (file-name (git-file-name name version))
1791 (sha256
1792 (base32 "16r6m8p90rnb4hxl86fz3kbals3626232i8fj0zhhd23p89z3w4v"))))
1793 (properties `((upstream-name . "sigfit")))
1794 (build-system r-build-system)
1795 (arguments
1796 (list
1797 #:phases
1798 #~(modify-phases %standard-phases
1799 (add-after 'unpack 'gcc-14-compatibility
1800 (lambda _
1801 (substitute* "configure"
1802 ;; Modifying src/Makevars directly is overruled.
1803 (("config\\(\\)\"")
1804 "config()\"
1805echo \"PKG_CXXFLAGS+=-g -O2 -Wno-error=changes-meaning\" >> src/Makevars")))))))
1806 (native-inputs (list r-codetools))
1807 (propagated-inputs (list r-rcpp
1808 r-rstan
1809 r-rstantools
1810 r-coda
1811 r-clue
1812 r-knitr
1813 r-rmarkdown
1814 r-bh
1815 r-rcppeigen
1816 r-stanheaders))
1817 (home-page "https://github.com/kgori/sigfit")
1818 (synopsis "Flexible Bayesian inference of mutational signatures")
1819 (description
1820 "This R package lets you estimate signatures of mutational processes and
1821their activities on mutation count data. Starting from a set of
1822@dfn{single-nucleotide variants} (SNVs), it allows both estimation of the
1823exposure of samples to predefined mutational signatures (including whether the
1824signatures are present at all), and identification of signatures de novo from
1825the mutation counts.")
1826 (license license:gpl3)))
1827
1828(define-public r-singlet
1829 (let ((commit "ef4a374f27681477b95d856b74bd3cbbb379308d")
1830 (revision "1"))
1831 (package
1832 (name "r-singlet")
1833 (version (git-version "0.99.8" revision commit))
1834 (source (origin
1835 (method git-fetch)
1836 (uri (git-reference
1837 (url "https://github.com/zdebruine/singlet")
1838 (commit commit)))
1839 (file-name (git-file-name name version))
1840 (sha256
1841 (base32
1842 "1s9g3i0ypsnpnal40f223d5lzijxchwaf1kvavyijl75zaj8i6af"))))
1843 (properties `((upstream-name . "singlet")))
1844 (build-system r-build-system)
1845 (propagated-inputs (list r-dplyr
1846 r-fgsea
1847 r-ggplot2
1848 r-knitr
1849 r-limma
1850 r-matrix
1851 r-msigdbr
1852 r-rcpp
1853 ;; See https://github.com/zdebruine/singlet/issues/25
1854 r-rcppml/devel
1855 r-reshape2
1856 r-scuttle
1857 r-seurat
1858 r-statmod))
1859 (native-inputs (list r-knitr r-testthat))
1860 (home-page "https://github.com/zdebruine/singlet")
1861 (synopsis "Non-negative Matrix Factorization for single-cell analysis")
1862 (description
1863 "This is a package for fast @dfn{Non-negative Matrix
1864Factorization} (NMF) with automatic rank-determination for dimension reduction
1865of single-cell data using Seurat, RcppML nmf, SingleCellExperiments and
1866similar.")
1867 (license license:gpl2+))))
1868
1869(define-public r-stacas
1870 (package
1871 (name "r-stacas")
1872 (version "2.2.0")
1873 (source
1874 (origin
1875 (method git-fetch)
1876 (uri (git-reference
1877 (url "https://github.com/carmonalab/STACAS")
1878 (commit version)))
1879 (file-name (git-file-name name version))
1880 (sha256
1881 (base32 "13i0h5i6vlbrb8ndq9gr81560z9d74b2c7m3rjfzls01irjza9hm"))))
1882 (properties `((upstream-name . "STACAS")))
1883 (build-system r-build-system)
1884 (propagated-inputs
1885 (list r-biocneighbors
1886 r-biocparallel
1887 r-ggplot2
1888 r-ggridges
1889 r-pbapply
1890 r-r-utils
1891 r-seurat))
1892 (home-page "https://github.com/carmonalab/STACAS")
1893 (synopsis "Sub-type anchoring correction for alignment in Seurat")
1894 (description
1895 "This package implements methods for batch correction and integration of
1896scRNA-seq datasets, based on the Seurat anchor-based integration framework.
1897In particular, STACAS is optimized for the integration of heterogeneous
1898datasets with only limited overlap between cell sub-types (e.g. TIL sets of
1899CD8 from tumor with CD8/CD4 T cells from lymphnode), for which the default
1900Seurat alignment methods would tend to over-correct biological differences.
1901The 2.0 version of the package allows the users to incorporate explicit
1902information about cell-types in order to assist the integration process.")
1903 (license license:gpl3)))
1904
1905(define-public r-stringendo
1906 (let ((commit "15594b1bba11048a812874bafec0eea1dcc8618a")
1907 (revision "1"))
1908 (package
1909 (name "r-stringendo")
1910 (version (git-version "0.6.0" revision commit))
1911 (source (origin
1912 (method git-fetch)
1913 (uri (git-reference
1914 (url "https://github.com/vertesy/Stringendo")
1915 (commit commit)))
1916 (file-name (git-file-name name version))
1917 (sha256
1918 (base32
1919 "15ij4zf2j9c8m9n4bqhmxkchjh2bhddwjfxngfpwv7c5wjqyi6ir"))))
1920 (properties `((upstream-name . "Stringendo")))
1921 (build-system r-build-system)
1922 (propagated-inputs (list r-clipr))
1923 (home-page "https://github.com/vertesy/Stringendo")
1924 (synopsis "Stringendo is a string parsing library")
1925 (description
1926 "This package provides string parsing functionalities for generating
1927plotnames, filenames and paths.")
1928 (license license:gpl3))))
1929
1930(define-public r-readwriter
1931 (let ((commit "91373c44641014a1ce8e1c3e928747608aae8f54")
1932 (revision "1"))
1933 (package
1934 (name "r-readwriter")
1935 (version (git-version "1.5.3" revision commit))
1936 (source (origin
1937 (method git-fetch)
1938 (uri (git-reference
1939 (url "https://github.com/vertesy/ReadWriter")
1940 (commit commit)))
1941 (file-name (git-file-name name version))
1942 (sha256
1943 (base32
1944 "156kvmplrip0w1zhs9yl5r0ayjipa0blhy614l65hbsjn1lwbskr"))))
1945 (properties `((upstream-name . "ReadWriter")))
1946 (build-system r-build-system)
1947 (propagated-inputs
1948 (list r-gtools r-openxlsx r-readr r-stringendo))
1949 (home-page "https://github.com/vertesy/ReadWriter")
1950 (synopsis "Functions to read and write files conveniently")
1951 (description
1952 "ReadWriter is a set of R functions to read and write files
1953conveniently.")
1954 (license license:gpl3))))
1955
1956(define-public r-streamgraph
1957 (let ((commit "76f7173ec89d456ace5943a512e20b1f6810bbcb")
1958 (revision "1"))
1959 (package
1960 (name "r-streamgraph")
1961 (version (git-version "0.9.0" revision commit))
1962 (source (origin
1963 (method git-fetch)
1964 (uri (git-reference
1965 (url "https://github.com/hrbrmstr/streamgraph")
1966 (commit commit)))
1967 (file-name (git-file-name name version))
1968 (sha256
1969 (base32
1970 "010rhnby5a9dg08jvlkr65b3p9iipdxi2f5m1k6j53s80p25yvig"))))
1971 (properties `((upstream-name . "streamgraph")))
1972 (build-system r-build-system)
1973 (propagated-inputs
1974 (list r-dplyr
1975 r-htmltools
1976 r-htmlwidgets
1977 r-magrittr
1978 r-tidyr
1979 r-xts))
1980 (native-inputs (list r-knitr r-testthat))
1981 (home-page "https://github.com/hrbrmstr/streamgraph")
1982 (synopsis "Htmlwidget for building streamgraph visualizations")
1983 (description
1984 "A streamgraph is a type of stacked area chart. It represents the
1985evolution of a numeric variable for several groups. Areas are usually
1986displayed around a central axis, and edges are rounded to give a flowing
1987shape. This package provides an @code{htmlwidget} for building streamgraph
1988visualizations.")
1989 (license license:expat))))
1990
1991(define-public r-vitesscer
1992 (let ((commit "0096880c1b7b7afb42a26277e34508b4cce815bd")
1993 (revision "1"))
1994 (package
1995 (name "r-vitesscer")
1996 (version (git-version "0.99.0" revision commit))
1997 (source
1998 (origin
1999 (method git-fetch)
2000 (uri (git-reference
2001 (url "https://github.com/vitessce/vitessceR")
2002 (commit commit)))
2003 (file-name (git-file-name name version))
2004 (sha256
2005 (base32 "0axragpfl9xz7a10wx7n2j88lcv64kzi4ixkr6s69x3xa2fmlvay"))))
2006 (properties `((upstream-name . "vitessceR")))
2007 (build-system r-build-system)
2008 (propagated-inputs (list r-delayedarray
2009 r-future
2010 r-htmlwidgets
2011 r-httpuv
2012 r-jsonlite
2013 r-matrix
2014 r-mime
2015 r-plumber
2016 r-r6
2017 r-s4vectors
2018 r-stringi
2019 r-stringr))
2020 (native-inputs (list r-knitr r-testthat))
2021 (home-page "https://github.com/vitessce/vitessceR")
2022 (synopsis "Create interactive Single-cell visualizations")
2023 (description
2024 "This package provides an R API and @code{htmlwidget} facilitating
2025interactive visualization of spatial single-cell data with Vitessce. The R
2026API contains classes and functions for loading single-cell data stored in
2027compatible on-disk formats. The @code{htmlwidget} is a wrapper around the
2028Vitessce JavaScript library and can be used in the Viewer tab of RStudio or
2029Shiny apps.")
2030 (license license:expat))))
2031
2032(define-public r-wasabi
2033 (let ((commit "8c33cabde8d18c2657cd6e38e7cb834f87cf9846")
2034 (revision "1"))
2035 (package
2036 (name "r-wasabi")
2037 (version (git-version "1.0.1" revision commit))
2038 (source
2039 (origin
2040 (method git-fetch)
2041 (uri (git-reference
2042 (url "https://github.com/COMBINE-lab/wasabi")
2043 (commit commit)))
2044 (file-name (git-file-name name version))
2045 (sha256
2046 (base32 "0rpdj6n4cnx8n2zl60dzgl638474sg49dknwi9x3qb4g56dpphfa"))))
2047 (properties `((upstream-name . "wasabi")))
2048 (build-system r-build-system)
2049 (propagated-inputs (list r-data-table r-rhdf5 r-rjson))
2050 (home-page "https://github.com/COMBINE-lab/wasabi")
2051 (synopsis "Use Sailfish and Salmon with Sleuth")
2052 (description
2053 "This package converts the output of the Sailfish and Salmon RNA-seq
2054quantification tools so that it can be used with the Sleuth differential
2055analysis package.")
2056 (license license:bsd-3))))
2057
2058(define-public pbgzip
2059 (let ((commit "2b09f97b5f20b6d83c63a5c6b408d152e3982974"))
2060 (package
2061 (name "pbgzip")
2062 (version (git-version "0.0.0" "0" commit))
2063 (source (origin
2064 (method git-fetch)
2065 (uri (git-reference
2066 (url "https://github.com/nh13/pbgzip")
2067 (commit commit)))
2068 (file-name (git-file-name name version))
2069 (sha256
2070 (base32
2071 "1mlmq0v96irbz71bgw5zcc43g1x32zwnxx21a5p1f1ch4cikw1yd"))))
2072 (build-system gnu-build-system)
2073 (native-inputs
2074 (list autoconf automake))
2075 (inputs
2076 (list zlib))
2077 (home-page "https://github.com/nh13/pbgzip")
2078 (synopsis "Parallel Block GZIP")
2079 (description "This package implements parallel block gzip. For many
2080formats, in particular genomics data formats, data are compressed in
2081fixed-length blocks such that they can be easily indexed based on a (genomic)
2082coordinate order, since typically each block is sorted according to this order.
2083This allows for each block to be individually compressed (deflated), or more
2084importantly, decompressed (inflated), with the latter enabling random retrieval
2085of data in large files (gigabytes to terabytes). @code{pbgzip} is not limited
2086to any particular format, but certain features are tailored to genomics data
2087formats when enabled. Parallel decompression is somewhat faster, but the true
2088speedup comes during compression.")
2089 (license license:expat))))
2090
2091(define-public randfold
2092 (package
2093 (name "randfold")
2094 (version "2.0.1")
2095 (source
2096 (origin
2097 (method url-fetch)
2098 (uri (string-append "http://bioinformatics.psb.ugent.be/"
2099 "supplementary_data/erbon/nov2003/downloads/"
2100 "randfold-" version ".tar.gz"))
2101 (sha256
2102 (base32
2103 "0gqixl4ncaibrxmn25d6lm2hrw4ml2fj13nrc9q1kilsxdfi91mj"))))
2104 (build-system gnu-build-system)
2105 (arguments
2106 (list
2107 #:tests? #f ;no tests provided
2108 #:phases
2109 #~(modify-phases %standard-phases
2110 (delete 'configure)
2111 (replace 'install
2112 (lambda _
2113 (install-file "randfold"
2114 (string-append #$output "/bin")))))))
2115 (inputs (list eddylab-squid))
2116 (home-page
2117 "http://bioinformatics.psb.ugent.be/supplementary_data/erbon/nov2003/")
2118 (synopsis "Minimum free energy of folding randomization test software")
2119 (description "randfold computes the probability that, for a given
2120sequence, the @dfn{Minimum Free Energy} (MFE) of the secondary structure is
2121different from MFE computed with random sequences.")
2122 (license license:gpl2)))
2123
2124(define-public ribotaper
2125 (package
2126 (name "ribotaper")
2127 (version "1.3.1")
2128 (source (origin
2129 (method url-fetch)
2130 (uri (string-append "https://ohlerlab.mdc-berlin.de/"
2131 "files/RiboTaper/RiboTaper_Version_"
2132 version ".tar.gz"))
2133 (sha256
2134 (base32
2135 "0ykjbps1y3z3085q94npw8i9x5gldc6shy8vlc08v76zljsm07hv"))))
2136 (build-system gnu-build-system)
2137 (arguments
2138 (list
2139 #:phases
2140 #~(modify-phases %standard-phases
2141 (add-after 'install 'wrap-executables
2142 (lambda _
2143 (for-each
2144 (lambda (script)
2145 (wrap-program (string-append #$output "/bin/" script)
2146 `("R_LIBS_SITE" ":" = (,(getenv "R_LIBS_SITE")))))
2147 '("create_annotations_files.bash"
2148 "create_metaplots.bash"
2149 "Ribotaper_ORF_find.sh"
2150 "Ribotaper.sh")))))))
2151 (inputs
2152 (list bash-minimal
2153 bedtools-2.18
2154 samtools-0.1
2155 r-minimal
2156 r-foreach
2157 r-xnomial
2158 r-domc
2159 r-multitaper
2160 r-seqinr))
2161 (home-page "https://ohlerlab.mdc-berlin.de/software/RiboTaper_126/")
2162 (synopsis "Define translated ORFs using ribosome profiling data")
2163 (description
2164 "Ribotaper is a method for defining translated @dfn{open reading
2165frames} (ORFs) using ribosome profiling (ribo-seq) data. This package
2166provides the Ribotaper pipeline.")
2167 (license license:gpl3+)))
2168
2169(define-public bioawk
2170 (package
2171 (name "bioawk")
2172 (version "1.0")
2173 (source (origin
2174 (method git-fetch)
2175 (uri (git-reference
2176 (url "https://github.com/lh3/bioawk")
2177 (commit (string-append "v" version))))
2178 (file-name (git-file-name name version))
2179 (sha256
2180 (base32
2181 "1pxc3zdnirxbf9a0az698hd8xdik7qkhypm7v6hn922x8y9qmspm"))))
2182 (build-system gnu-build-system)
2183 (inputs (list zlib))
2184 (native-inputs (list bison))
2185 (arguments
2186 (list
2187 #:tests? #f ; There are no tests to run.
2188 ;; Bison must generate files, before other targets can build.
2189 #:parallel-build? #f
2190 #:phases
2191 #~(modify-phases %standard-phases
2192 (delete 'configure) ; There is no configure phase.
2193 (replace 'install
2194 (lambda _
2195 (let ((bin (string-append #$output "/bin"))
2196 (man (string-append #$output "/share/man/man1")))
2197 (mkdir-p man)
2198 (copy-file "awk.1" (string-append man "/bioawk.1"))
2199 (install-file "bioawk" bin)))))))
2200 (home-page "https://github.com/lh3/bioawk")
2201 (synopsis "AWK with bioinformatics extensions")
2202 (description "Bioawk is an extension to Brian Kernighan's awk, adding the
2203support of several common biological data formats, including optionally gzip'ed
2204BED, GFF, SAM, VCF, FASTA/Q and TAB-delimited formats with column names. It
2205also adds a few built-in functions and a command line option to use TAB as the
2206input/output delimiter. When the new functionality is not used, bioawk is
2207intended to behave exactly the same as the original BWK awk.")
2208 (license license:x11)))
2209
2210(define-public python-bcbio-gff
2211 (package
2212 (name "python-bcbio-gff")
2213 ;; python-bcbio-gff can only be refreshed manually, because guix refresh
2214 ;; does not understand the tags on the github repository.
2215 (version "0.7.1")
2216 (source (origin
2217 ;; No tests in PyPI package.
2218 (method git-fetch)
2219 (uri (git-reference
2220 (url "https://github.com/chapmanb/bcbb")
2221 (commit (string-append "bcbio-gff-v" version))))
2222 (file-name (git-file-name name version))
2223 (sha256
2224 (base32
2225 "0144xxzibq4mrg8a1w2scs120rd9svq07hm5ccs91n3a4nvwjfsd"))))
2226 (build-system pyproject-build-system)
2227 (arguments
2228 (list
2229 #:phases
2230 #~(modify-phases %standard-phases
2231 (add-before 'build 'enter-directory
2232 (lambda _ (chdir "gff"))))))
2233 (native-inputs
2234 (list python-setuptools python-pytest))
2235 (propagated-inputs
2236 (list python-biopython
2237 python-six))
2238 (home-page "https://github.com/chapmanb/bcbb/tree/master/gff")
2239 (synopsis "Read and write GFF files with Biopython integration")
2240 (description
2241 "This package lets you read and write files in Generic Feature
2242Format (GFF) with Biopython integration.")
2243 (properties
2244 '((upstream-name . "bcbio-gff")))
2245 (license (license:non-copyleft "http://www.biopython.org/DIST/LICENSE"))))
2246
2247(define-public python-bcbio-gff-for-python-cmseq
2248 (hidden-package
2249 (package
2250 (inherit python-bcbio-gff)
2251 (name "python-bcbio-gff")
2252 (version "0.6.9")
2253 (source
2254 (origin
2255 (method git-fetch)
2256 (uri (git-reference
2257 (url "https://github.com/chapmanb/bcbb")
2258 (commit (string-append "bcbio-gff-v" version))))
2259 (file-name (git-file-name name version))
2260 (sha256
2261 (base32 "131hiir94jkm9jj2wfpybwndgzn8k0zc1ji1qjn5cz7w48x3ri13"))))
2262 (propagated-inputs
2263 (modify-inputs propagated-inputs
2264 (replace "python-biopython" python-biopython-1.73))))))
2265
2266(define bed-sample-files
2267 (let* ((name "bed-sample-files")
2268 (commit "a06dc0450e484090f15656ffd5d317813a5e1e01")
2269 (revision "0")
2270 (version (git-version "0.0.0" revision commit)))
2271 (origin
2272 (method git-fetch)
2273 (uri (git-reference
2274 (url "https://github.com/fastlmm/bed-sample-files")
2275 (commit commit)))
2276 (file-name (git-file-name name version))
2277 (sha256
2278 (base32 "1ldr2lvgbcykxa9i2s2298mhfh0sz96aaxs5dx217aipa9vsrjwk")))))
2279
2280(define-public python-bed-reader
2281 (package
2282 (name "python-bed-reader")
2283 (version "1.0.6")
2284 (source
2285 (origin
2286 (method url-fetch)
2287 (uri (pypi-uri "bed_reader" version))
2288 (sha256
2289 (base32 "1c8ibwvz3b069w7ffh9aasz16lfkmx4z0249c2v909a21mrkkd6n"))
2290 (modules '((guix build utils)))
2291 ;; Bundled unused javascript & co.
2292 (snippet #~(delete-file-recursively "_static"))
2293 (patches
2294 (search-patches "python-bed-reader-use-store-samples.patch"))))
2295 (build-system cargo-build-system)
2296 (arguments
2297 (list
2298 #:install-source? #false
2299 #:features '(list "extension-module")
2300 #:cargo-test-flags
2301 '(list "--features=extension-module"
2302 ;; Skip doc tests.
2303 "--lib" "--bins" "--tests" "--"
2304 ;; This test is the only one not matched by our regexp.
2305 "--skip=http_one"
2306 ;; These test require a 84 GB file.
2307 "--skip=http_two"
2308 "--skip=http_cloud_urls_md_3")
2309 #:imported-modules
2310 (append %cargo-build-system-modules
2311 %pyproject-build-system-modules)
2312 #:modules
2313 '((guix build cargo-build-system)
2314 ((guix build pyproject-build-system) #:prefix py:)
2315 (guix build utils)
2316 (ice-9 match)
2317 (ice-9 rdelim))
2318 #:phases
2319 #~(modify-phases %standard-phases
2320 (add-after 'configure 'set-data-path
2321 (lambda _
2322 ;; This var is still necessary despite the patch-data-path phase.
2323 ;; Otherwise more tests fail with a read-only filesystem error.
2324 (setenv "BED_READER_DATA_DIR" #+bed-sample-files)))
2325 (add-after 'unpack 'patch-data-path
2326 (lambda _
2327 ;; If BED_READER_DATA_DIR is unset, default to bed-sample-files.
2328 (substitute* "bed_reader/_sample_data.py"
2329 (("os\\.environ\\.get\\(\"BED_READER_DATA_DIR\"" all)
2330 (format #f "~a, ~s" all #+bed-sample-files)))
2331 ;; XXX: More work is necessary to use another
2332 ;; version of sample files with BED_READER_DATA_DIR
2333 ;; Currently, only the hardcoded Guix version is working.
2334 (substitute* '("bed_reader/tests/test_open_bed_cloud.py"
2335 "src/bed_cloud.rs"
2336 "src/lib.rs"
2337 "src/supplemental_documents/cloud_urls_etc.md"
2338 "tests/tests_api_cloud.rs")
2339 (("\
2340https://raw\\.githubusercontent\\.com/fastlmm/bed-sample-files/main")
2341 (string-append "file://" #+bed-sample-files)))
2342 (substitute* "src/tests.rs"
2343 (("bed_reader/tests/data")
2344 #+bed-sample-files))))
2345 (add-after 'install 'prepare-python-module
2346 (lambda _
2347 ;; We don't use maturin. Conveniently, what we want to drop
2348 ;; from pyproject.toml is at the end of the file.
2349 (rename-file "pyproject.toml" "pyproject.toml.bak")
2350 (call-with-input-file "pyproject.toml.bak"
2351 (lambda (in)
2352 (call-with-output-file "pyproject.toml"
2353 (lambda (out)
2354 (let loop ()
2355 (match (read-line in)
2356 ((? eof-object? eof)
2357 eof)
2358 ("[build-system]"
2359 (and (format out "\
2360[build-system]
2361build-backend = 'setuptools.build_meta'
2362requires = ['setuptools']
2363
2364[tool.setuptools.packages.find]
2365where = [\".\"]
2366exclude = [\"src\", \"docs\", \"tests\", \"Cargo.toml\"]
2367")))
2368 ("samples = [\"pooch>=1.5.0\"]"
2369 (and (format out "samples = []~%")
2370 (loop)))
2371 ("[project]"
2372 (and (format out "\
2373[project]
2374version = ~s
2375" #$version)
2376 (loop)))
2377 (line
2378 (and (format out "~a~%" line)
2379 (loop)))))))))))
2380 (add-after 'prepare-python-module 'enable-bytecode-determinism
2381 (assoc-ref py:%standard-phases 'enable-bytecode-determinism))
2382 (add-after 'enable-bytecode-determinism 'build-python-module
2383 (assoc-ref py:%standard-phases 'build))
2384 (add-after 'build-python-module 'install-python-module
2385 (assoc-ref py:%standard-phases 'install))
2386 (add-after 'install-python-module 'install-python-library
2387 (lambda* (#:key inputs outputs #:allow-other-keys)
2388 (let ((site (py:site-packages inputs outputs)))
2389 (mkdir-p (string-append site "/bed_reader"))
2390 (copy-file "target/release/libbed_reader.so"
2391 (string-append site "/bed_reader/bed_reader.so")))))
2392 (add-after 'install-python-library 'add-install-to-pythonpath
2393 (assoc-ref py:%standard-phases 'add-install-to-pythonpath))
2394 (add-after 'add-install-to-pythonpath 'check-python
2395 (lambda* (#:key inputs outputs tests? #:allow-other-keys)
2396 (when tests?
2397 (let ((site (py:site-packages inputs outputs))
2398 (data-dir "bed_reader/tests/data"))
2399 (symlink (canonicalize-path data-dir)
2400 (string-append site "/" data-dir))
2401 (invoke "pytest" "-v" #$output
2402 ;; These test require a 84 GB file.
2403 "-k" (string-join
2404 (list "not test_http_two"
2405 "test_http_cloud_urls_rst_3"
2406 "test_http_cloud_urls_rst_4"
2407 ;; XXX: python-pooch dependency removed
2408 "test_optional_dependencies")
2409 " and not "))
2410 (delete-file-recursively
2411 (string-append site "/bed_reader/tests"))
2412 (delete-file-recursively
2413 (string-append #$output "/.pytest_cache")))))))))
2414 (native-inputs (list python-pytest
2415 python-pytest-datadir
2416 python-pytest-doctestplus
2417 python-recommonmark
2418 python-setuptools
2419 python-sphinx))
2420 (inputs (cons python-wrapper (cargo-inputs 'python-bed-reader)))
2421 (propagated-inputs (list python-numpy python-pandas python-scipy))
2422 (home-page "https://fastlmm.github.io/")
2423 (synopsis "Read and write the PLINK BED format, simply and efficiently")
2424 (description
2425 "This package lets you read and write the PLINK BED format, simply and
2426efficiently.")
2427 (license license:asl2.0)))
2428
2429(define-public python-bulkvis
2430 (let ((commit "00a82a90c7e748a34af896e779d27e78a2c82b5e")
2431 (revision "2"))
2432 (package
2433 (name "python-bulkvis")
2434 (version (git-version "2.0.0" revision commit))
2435 (source (origin
2436 (method git-fetch)
2437 (uri (git-reference
2438 (url "https://github.com/LooseLab/bulkVis")
2439 (commit commit)))
2440 (file-name (git-file-name name version))
2441 (sha256
2442 (base32
2443 "02blai158xyyqcg0ljzkmfa6ci05m4awrl4njvp9nwfp717xq8n0"))
2444 (modules '((guix build utils)))
2445 (snippet
2446 '(substitute* '("requirements.txt"
2447 "setup.py")
2448 (("tqdm~=4.46.1") "tqdm")
2449 (("tornado~=6.0.4") "tornado")
2450 (("pandas~=1.0.5") "pandas")
2451 (("h5py~=2.10.0") "h5py")
2452 ;; See below for com
2453 (("bokeh~=2.1.0") "bokeh")))))
2454 (build-system pyproject-build-system)
2455 (arguments
2456 (list #:tests? #f ;There are no tests
2457 #:phases
2458 '(modify-phases %standard-phases
2459 ;; See https://github.com/LooseLab/bulkvis/issues/58
2460 (add-after 'unpack 'bokeh-compatibility
2461 (lambda _
2462 (substitute* "bulkvis/bulkvis.py"
2463 (("import importlib" m)
2464 (string-append m "
2465from bokeh.command.subcommand import Argument
2466from bokeh.util.dataclasses import entries\n"))
2467 (("( *)_parser.add_argument" m indent)
2468 (string-append
2469 (string-join (list "if isinstance(opts, Argument):\n"
2470 " opts = dict(entries(opts))\n")
2471 indent 'prefix)
2472 m))))))))
2473 (propagated-inputs (list python-bokeh
2474 python-dill
2475 python-h5py
2476 python-joblib
2477 python-matplotlib
2478 python-numpy
2479 python-pandas
2480 python-plotly
2481 python-readpaf
2482 python-scikit-learn
2483 python-scikit-image
2484 python-scipy
2485 python-seaborn
2486 python-tornado
2487 python-tqdm
2488 python-umap-learn))
2489 (native-inputs (list python-pytest python-setuptools))
2490 (home-page "https://github.com/LooseLab/bulkVis")
2491 (synopsis "Interactive visualization of bulk RNA-seq data")
2492 (description
2493 "This is a Python package for the interactive visualization of bulk
2494RNA-seq data. It provides a range of plotting functions and interactive tools
2495to explore and analyze bulk RNA-seq data.")
2496 (license license:expat))))
2497
2498(define-public python-cell2cell
2499 (package
2500 (name "python-cell2cell")
2501 (version "0.9.0")
2502 (source
2503 (origin
2504 (method git-fetch)
2505 (uri (git-reference
2506 (url "https://github.com/earmingol/cell2cell")
2507 (commit (string-append "v" version))))
2508 (file-name (git-file-name name version))
2509 (sha256
2510 (base32 "1wsjamldi059wdrqdpyn3c3s0xsn0dxwrnr64bf7mwgcd37g0h58"))))
2511 (build-system pyproject-build-system)
2512 (arguments
2513 (list
2514 #:test-flags
2515 #~(list "-m" "not network")
2516 #:phases
2517 #~(modify-phases %standard-phases
2518 ;; Numba needs a writable dir to cache functions.
2519 (add-before 'sanity-check 'set-home
2520 (lambda _
2521 (setenv "HOME" "/tmp"))))))
2522 (propagated-inputs
2523 (list python-gseapy
2524 python-kneed
2525 python-matplotlib
2526 python-natsort
2527 python-networkx
2528 python-numpy
2529 python-openpyxl
2530 python-pandas
2531 python-scanpy
2532 python-scikit-learn
2533 python-seaborn
2534 python-statannotations
2535 python-statsmodels
2536 python-tensorly
2537 python-tqdm
2538 python-umap-learn
2539 python-xlrd))
2540 (native-inputs
2541 (list python-pygad python-pytest python-setuptools))
2542 (home-page "https://github.com/earmingol/cell2cell")
2543 (synopsis "Python library for cell communication analysis")
2544 (description
2545 "Cell2cell is a Python library for cell communication analysis.
2546This is a method to calculate, visualize and analyze communication between
2547cell types. Cell2cell is suitable for single-cell RNA sequencing
2548(scRNA-seq) data.")
2549 (license license:bsd-3)))
2550
2551(define-public python-cellbender
2552 (package
2553 (name "python-cellbender")
2554 (version "0.3.2")
2555 (source
2556 (origin
2557 (method git-fetch)
2558 (uri (git-reference
2559 (url "https://github.com/broadinstitute/CellBender")
2560 (commit (string-append "v" version))))
2561 (file-name (git-file-name name version))
2562 (sha256
2563 (base32
2564 "1sdw4dv881ll8ylxcp06xa74c3wvrdyzpwfilzk8i1pwgrdrgb3f"))))
2565 (build-system pyproject-build-system)
2566 (arguments
2567 (list
2568 #:tests? #f ;there are none
2569 #:phases
2570 #~(modify-phases %standard-phases
2571 (add-after 'unpack 'relax-requirements
2572 (lambda _
2573 ;; See:
2574 ;; <https://github.com/broadinstitute/CellBender/issues/426>,
2575 ;; <https://github.com/broadinstitute/CellBender/issues/416>.
2576 (substitute* "requirements.txt"
2577 (("(notebook|ipython|jupyter.*)")"")
2578 (("<.*") "\n")))))))
2579 (native-inputs
2580 (list python-setuptools))
2581 (propagated-inputs
2582 (list python-anndata
2583 python-loompy
2584 python-lxml-html-clean
2585 python-matplotlib
2586 python-nbconvert
2587 python-notebook
2588 python-numpy
2589 python-pandas
2590 python-psutil
2591 python-pyro-ppl
2592 python-pytorch
2593 python-scipy
2594 python-tables))
2595 (home-page "https://cellbender.rtfd.io/")
2596 (synopsis "Eliminate technical artifacts from single-cell RNA-seq data")
2597 (description
2598 "CellBender is a software package for eliminating technical artifacts
2599from high-throughput single-cell RNA sequencing (scRNA-seq) data.")
2600 (license license:bsd-3)))
2601
2602(define-public python-celltypist
2603 (package
2604 (name "python-celltypist")
2605 (version "1.7.1")
2606 (source
2607 (origin
2608 (method git-fetch)
2609 (uri (git-reference
2610 (url "https://github.com/Teichlab/celltypist")
2611 (commit version)))
2612 (file-name (git-file-name name version))
2613 (sha256
2614 (base32 "1ha19wak8lnbm2j929lswncswygl1qiv53b8fs321s6708gyhv4v"))))
2615 (build-system pyproject-build-system)
2616 (arguments
2617 (list
2618 #:phases
2619 #~(modify-phases %standard-phases
2620 (add-before 'build 'set-environment
2621 (lambda _
2622 (setenv "HOME" "/tmp")
2623 (setenv "NUMBA_CACHE_DIR" "/tmp")))
2624 (replace 'check
2625 ;; Simple regression check, taken from project's Dockerfile,
2626 ;; "--update-models" requires network access.
2627 (lambda* (#:key tests? #:allow-other-keys)
2628 (when tests?
2629 (invoke "celltypist" "--help")))))))
2630 (native-inputs
2631 (list python-setuptools))
2632 (propagated-inputs
2633 (list python-click
2634 python-leidenalg
2635 python-numpy
2636 python-openpyxl
2637 python-pandas
2638 python-scanpy
2639 python-scikit-learn
2640 python-requests))
2641 (home-page "https://github.com/Teichlab/celltypist")
2642 (synopsis "Tool for semi-automatic cell type classification")
2643 (description
2644 "CellTypist is an automated cell type annotation tool for scRNA-seq
2645datasets on the basis of logistic regression classifiers optimised by the
2646stochastic gradient descent algorithm. CellTypist allows for cell prediction
2647using either built-in (with a current focus on immune sub-populations) or
2648custom models, in order to assist in the accurate classification of different
2649cell types and subtypes.")
2650 (license license:expat)))
2651
2652(define-public python-cmseq
2653 (package
2654 (name "python-cmseq")
2655 (version "1.0.4")
2656 (source (origin
2657 (method url-fetch)
2658 (uri (pypi-uri "CMSeq" version))
2659 (sha256
2660 (base32
2661 "0p6a99c299m5wi2z57dgqz52m1z3nfr8mv7kdnk2jvl2p9nql0wk"))))
2662 (build-system pyproject-build-system)
2663 (arguments
2664 (list
2665 #:tests? #false ;there are no tests
2666 #:phases
2667 '(modify-phases %standard-phases
2668 (add-after 'unpack 'patch-samtools-reference
2669 (lambda* (#:key inputs #:allow-other-keys)
2670 (substitute* "cmseq/cmseq.py"
2671 (("'samtools'")
2672 (string-append "'" (search-input-file inputs "/bin/samtools") "'"))))))))
2673 (native-inputs
2674 (list python-setuptools))
2675 (inputs (list samtools))
2676 (propagated-inputs
2677 (list python-bcbio-gff-for-python-cmseq
2678 python-biopython-1.73
2679 python-numpy
2680 python-pandas
2681 python-pysam
2682 python-scipy))
2683 (home-page "https://github.com/SegataLab/cmseq/")
2684 (synopsis "Set of utilities on sequences and BAM files")
2685 (description
2686 "CMSeq is a set of commands to provide an interface to .bam files for coverage
2687and sequence consensus.")
2688 (license license:expat)))
2689
2690(define-public python-cnmf
2691 (package
2692 (name "python-cnmf")
2693 (version "1.7.0")
2694 (source
2695 (origin
2696 (method url-fetch)
2697 (uri (pypi-uri "cnmf" version))
2698 (sha256
2699 (base32 "1v2d7gsxy57rg26wjx4sz2fqk8ggkp3ds0s1g54cm8z8aac6qhxz"))))
2700 (build-system pyproject-build-system)
2701 (arguments
2702 (list
2703 ;; tests: 36 passed, 2 deselected, 19 warnings
2704 #:test-flags
2705 ;; XXX: Tests data is downloaded sepratly, see download_pytest_data.py.
2706 #~(list #$@(map (lambda (test) (string-append "--deselect="
2707 "tests/"
2708 "test_reproducibility.py::"
2709 test))
2710 (list"test_cnmf_end_to_end[dataset_config0]"
2711 "test_cnmf_end_to_end[dataset_config1]")))
2712 #:phases
2713 #~(modify-phases %standard-phases
2714 (add-after 'unpack 'set-envs
2715 (lambda _
2716 (setenv "MPLCONFIGDIR" "/tmp")
2717 ;; Numba needs a writable dir to cache functions.
2718 (setenv "NUMBA_CACHE_DIR" "/tmp"))))))
2719 (native-inputs
2720 (list python-pytest
2721 python-setuptools))
2722 (propagated-inputs
2723 (list python-anndata
2724 python-fastcluster
2725 python-matplotlib
2726 python-numba
2727 python-numpy
2728 python-palettable
2729 python-pandas
2730 python-pyyaml
2731 python-scanpy
2732 python-scikit-learn
2733 python-scipy))
2734 (home-page "https://github.com/dylkot/cNMF")
2735 (synopsis "Consensus NMF for scRNA-Seq data")
2736 (description
2737 "This tool offers a pipeline for inferring gene expression programs from
2738scRNA-Seq. It takes a count matrix (N cells X G genes) as input and produces
2739a (K x G) matrix of gene expression programs (GEPs) and a (N x K) matrix
2740specifying the usage of each program for each cell in the data.")
2741 (license license:expat)))
2742
2743(define-public python-cyvcf2
2744 (package
2745 (name "python-cyvcf2")
2746 (version "0.34.0")
2747 (source
2748 (origin
2749 (method git-fetch)
2750 (uri (git-reference
2751 (url "https://github.com/brentp/cyvcf2")
2752 (commit (string-append "v" version))))
2753 (file-name (git-file-name name version))
2754 (sha256
2755 (base32 "1cy7z4xfhpk4klk9gzy2vnk3rn6sxbpdk76ipfx9r6qr8xq3cfjw"))
2756 (modules '((guix build utils)))
2757 (snippet
2758 ;; Delete bundled library
2759 '(delete-file-recursively "htslib"))))
2760 (build-system pyproject-build-system)
2761 (arguments
2762 (list
2763 #:test-flags
2764 ;; assert np.False_ where np.False_ = <built-in method all of
2765 ;; numpy.ndarray object at 0x7fff6f8ddad0>() where <built-in method all
2766 ;; of numpy.ndarray object at 0x7fff6f8ddad0> = array([-1, 1],
2767 ;; dtype=int16) == [-1, 0]
2768 #~(list "--deselect=tests/test_reader.py::test_genotypes")
2769 #:phases
2770 #~(modify-phases %standard-phases
2771 (add-before 'build 'use-system-htslib-package
2772 (lambda _
2773 (setenv "CYTHONIZE" "1")
2774 (setenv "CYVCF2_HTSLIB_MODE" "EXTERNAL")))
2775 (add-before 'check 'pre-check
2776 (lambda _
2777 (copy-recursively "cyvcf2/tests" "tests")
2778 (substitute* (list "tests/test_reader.py"
2779 "tests/test_writer.py")
2780 (("\\.\\.cyvcf2") "cyvcf2"))
2781 (delete-file-recursively "cyvcf2"))))))
2782 (inputs (list curl htslib libdeflate openssl zlib))
2783 (native-inputs
2784 (list python-cython
2785 python-pytest
2786 python-scikit-build-core))
2787 (propagated-inputs
2788 (list python-click
2789 python-coloredlogs
2790 python-numpy))
2791 (home-page "https://github.com/brentp/cyvcf2/")
2792 (synopsis "Fast vcf file parsing with Cython and htslib")
2793 (description "Cyvcf2 is a Cython wrapper around htslib built for fast
2794parsing of Variant Call Format (VCF) files.")
2795 (license license:expat)))
2796
2797(define-public python-decoupler
2798 (package
2799 (name "python-decoupler")
2800 (version "2.2.0")
2801 (source (origin
2802 (method git-fetch)
2803 (uri (git-reference
2804 (url "https://github.com/scverse/decoupler")
2805 (commit (string-append "v" version))))
2806 (file-name (git-file-name name version))
2807 (sha256
2808 (base32
2809 "1jdlwh0v4lfc750mxqkzvy0wbc7hj8agf5bfmr4abnfxh5ckdfyp"))))
2810 (build-system pyproject-build-system)
2811 (arguments
2812 (list
2813 ;; tests: 237 passed, 1 skipped, 35 deselected, 72 warnings
2814 #:test-flags
2815 ;; TypeError: deprecate_kwarg() missing 1 required positional argument:
2816 ;; 'new_arg_name'.
2817 '(list "--ignore=tests/mt/test_mlm.py"
2818 "-k" (string-join
2819 ;; Tests requiring internet access to reach out
2820 ;; <datasets.cellxgene.cziscience.com>, <ftp.ebi.ac.uk>,
2821 ;; <omnipathdb.org>, <raw.githubusercontent.com>,
2822 ;; <static.omnipathdb.org>, <www.ensembl.org>,
2823 ;; <www.ncbi.nlm.nih.gov>, and <zenodo.org>.
2824 (list "not test_collectri"
2825 "test_covid5k"
2826 "test_dorothea"
2827 "test_download"
2828 "test_download_anndata"
2829 "test_ensmbl_to_symbol"
2830 "test_erygast1k"
2831 "test_hallmark"
2832 "test_hsctgfb"
2833 "test_knocktf"
2834 "test_msvisium"
2835 "test_pbmc3k"
2836 "test_progeny"
2837 "test_resource"
2838 "test_show_resources"
2839 "test_translate"
2840 ;; XXX: Some precision mismatched.
2841 "test_func_gsea"
2842 "test_net_corr")
2843 " and not "))
2844 #:phases
2845 '(modify-phases %standard-phases
2846 (add-before 'check 'set-home
2847 ;; Some tests require a home directory to be set.
2848 (lambda _ (setenv "HOME" "/tmp")))
2849 ;; Numba needs a writable dir to cache functions.
2850 (add-before 'build 'set-numba-cache-dir
2851 (lambda _ (setenv "NUMBA_CACHE_DIR" "/tmp"))))))
2852 (propagated-inputs (list python-adjusttext
2853 python-anndata
2854 python-docrep
2855 python-marsilea
2856 python-numba
2857 python-requests
2858 python-scipy
2859 python-session-info2
2860 python-tqdm
2861 ;; [optional]
2862 python-dcor
2863 python-igraph
2864 python-ipywidgets
2865 ;; python-pydeseq2 ;not packaged yet in Guix
2866 python-scanpy
2867 python-xgboost))
2868 (native-inputs
2869 (list nss-certs-for-test
2870 python-hatchling
2871 python-gseapy
2872 python-memory-profiler
2873 python-pytest))
2874 (home-page "https://github.com/scverse/decoupler")
2875 (synopsis
2876 "Framework for modeling, analyzing and interpreting single-cell RNA-seq data")
2877 (description
2878 "This package provides different statistical methods to extract
2879biological activities from omics data within a unified framework.")
2880 (license license:bsd-3)))
2881
2882(define-public python-demuxem
2883 (package
2884 (name "python-demuxem")
2885 (version "0.1.8")
2886 (source (origin
2887 (method url-fetch)
2888 (uri (pypi-uri "demuxem" version))
2889 (sha256
2890 (base32
2891 "0l0zyhg0yrj4mn3adnv0aisb4fa62jbrd7y8sz44l2s3k4iyr39q"))))
2892 (build-system pyproject-build-system)
2893 ;; There are no tests.
2894 (arguments (list #:tests? #false))
2895 (propagated-inputs
2896 (list python-docopt
2897 python-numpy
2898 python-pandas
2899 python-pegasusio
2900 python-scikit-learn
2901 python-scipy
2902 python-seaborn))
2903 (native-inputs
2904 (list python-cython python-setuptools python-setuptools-scm))
2905 (home-page "https://github.com/lilab-bcb/demuxEM")
2906 (synopsis "Analyze cell-hashing/nucleus-hashing data")
2907 (description
2908 "This is a Python module for analyzing cell-hashing/nucleus-hashing data.
2909It is the demultiplexing module of Pegasus, which is used by Cumulus in the
2910demultiplexing step.")
2911 (license license:bsd-3)))
2912
2913(define-public python-doubletdetection
2914 (package
2915 (name "python-doubletdetection")
2916 (version "4.2")
2917 (source (origin
2918 (method url-fetch)
2919 (uri (pypi-uri "doubletdetection" version))
2920 (sha256
2921 (base32
2922 "0v0a19014h4p6x8pyz1s78xn3q5w5166cysvg574z6vw79a3s9vp"))))
2923 (build-system pyproject-build-system)
2924 (arguments
2925 (list
2926 #:tests? #false ;there are none
2927 #:phases
2928 #~(modify-phases %standard-phases
2929 (add-after 'unpack 'use-poetry-core
2930 (lambda _
2931 ;; Patch to use the core poetry API.
2932 (substitute* "pyproject.toml"
2933 (("poetry.masonry.api")
2934 "poetry.core.masonry.api")))))))
2935 (propagated-inputs
2936 (list python-anndata
2937 python-ipywidgets
2938 python-leidenalg
2939 python-louvain-igraph
2940 python-matplotlib
2941 python-numpy
2942 python-pandas
2943 python-phenograph
2944 python-scanpy
2945 python-scipy
2946 python-tqdm))
2947 (native-inputs
2948 (list python-poetry-core
2949 python-pytest))
2950 (home-page "https://github.com/JonathanShor/DoubletDetection")
2951 (synopsis
2952 "This is a package to detect doublets in single-cell RNA-seq count matrices")
2953 (description
2954 "This package provides a method to detect and enable removal of doublets
2955from single-cell RNA-sequencing.")
2956 (license license:expat)))
2957
2958(define-public python-harmonypy
2959 (package
2960 (name "python-harmonypy")
2961 (version "0.0.10")
2962 (source
2963 (origin
2964 (method git-fetch)
2965 (uri (git-reference
2966 (url "https://github.com/slowkow/harmonypy")
2967 (commit (string-append "v" version))))
2968 (file-name (git-file-name name version))
2969 (sha256
2970 (base32 "15lxgncrnsx1hapfx78pvx4rjx5d48hqixdnacdy55d84myfmrym"))))
2971 (build-system pyproject-build-system)
2972 (arguments
2973 (list
2974 #:phases
2975 #~(modify-phases %standard-phases
2976 (add-after 'unpack 'patch-pyproject
2977 (lambda _
2978 ;; License field should not be empty.
2979 (substitute* "pyproject.toml"
2980 (("^license = \"\"") "")))))))
2981 (propagated-inputs (list python-numpy
2982 python-pandas
2983 python-scikit-learn
2984 python-scipy))
2985 (native-inputs (list python-hatchling python-pytest))
2986 (home-page "https://github.com/slowkow/harmonypy")
2987 (synopsis "Data integration algorithm")
2988 (description
2989 "Harmony is an algorithm for integrating multiple high-dimensional
2990datasets with fuzzy k-means and locally linear adjustments.")
2991 (license license:gpl2)))
2992
2993(define-public python-hclust2
2994 (package
2995 (name "python-hclust2")
2996 (version "1.0.0")
2997 (source (origin
2998 (method url-fetch)
2999 (uri (pypi-uri "hclust2" version))
3000 (sha256
3001 (base32
3002 "0v89n2g42d7jhgfs8glf06apgxx6aswp3mfisgnhm518cv8z2rwn"))))
3003 (build-system pyproject-build-system)
3004 (arguments (list #:tests? #f)) ;there are no tests
3005 (propagated-inputs
3006 (list python-matplotlib
3007 python-numpy
3008 python-pandas
3009 python-scipy))
3010 (native-inputs (list python-setuptools))
3011 (home-page "https://github.com/SegataLab/hclust2/")
3012 (synopsis "Plotting heat-maps for publications")
3013 (description
3014 "Hclust2 is a handy tool for plotting heat-maps with several useful options
3015to produce high quality figures that can be used in publications.")
3016 (license license:expat)))
3017
3018(define-public python-hotspotsc
3019 (package
3020 (name "python-hotspotsc")
3021 (version "1.1.1")
3022 (source
3023 (origin
3024 (method git-fetch)
3025 (uri (git-reference
3026 (url "https://github.com/yoseflab/hotspot")
3027 (commit (string-append "v" version))))
3028 (file-name (git-file-name name version))
3029 (sha256
3030 (base32 "0w61bk81c9zkhxjzh3n2q21q8kwk2fgcjgk5i2q4b1apa5d47agf"))))
3031 (build-system pyproject-build-system)
3032 (arguments
3033 (list
3034 #:build-backend "poetry.core.masonry.api"
3035 #:test-flags
3036 ;; ValueError: underlying array is read-only
3037 #~(list "--deselect=tests/test_validations.py::test_models")
3038 #:phases
3039 #~(modify-phases %standard-phases
3040 (add-after 'unpack 'fix-pyproject-toml
3041 ;; tool.poetry.extras.docs[2] must match pattern ^[a-zA-Z-_.0-9]+$
3042 (lambda _
3043 (substitute* "pyproject.toml"
3044 (("docs=.*") ""))))
3045 (add-before 'check 'pre-check
3046 (lambda _
3047 ;; <...> no locator available for file <...>
3048 (setenv "NUMBA_CACHE_DIR" "/tmp"))))))
3049 (native-inputs
3050 (list python-poetry-core python-pytest))
3051 (propagated-inputs
3052 (list python-anndata
3053 python-matplotlib
3054 python-nbsphinx
3055 python-numba
3056 python-numpy
3057 python-pandas
3058 python-pynndescent
3059 python-scanpy
3060 python-scikit-learn
3061 python-scipy
3062 python-seaborn
3063 python-statsmodels
3064 python-tqdm))
3065 (home-page "https://github.com/yoseflab/hotspot")
3066 (synopsis
3067 "Identifying informative genes in a single-cell dataset")
3068 (description
3069 "Hotspot is a tool for identifying informative genes (and gene modules)
3070in a single-cell dataset. Importantly, \"informative\" is decided based on
3071how well a gene's variation agrees with some cell metric---some similarity
3072mapping between cells. Genes which are informative are those whose expression
3073varies in similar way among cells which are nearby in the given metric.")
3074 (license license:expat)))
3075
3076(define-public python-htsget
3077 (package
3078 (name "python-htsget")
3079 (version "0.2.6")
3080 (source
3081 (origin
3082 (method git-fetch)
3083 (uri (git-reference
3084 (url "https://github.com/ga4gh/htsget")
3085 (commit version)))
3086 (file-name (git-file-name name version))
3087 (sha256
3088 (base32 "0000h4wkcwdandd4rqizvgn2hrnzcyv17k51zkis1h9cg4jpxr55"))))
3089 (build-system pyproject-build-system)
3090 (arguments
3091 ;; Network access is required.
3092 (list #:test-flags #~(list "--exclude=test_data_truncation")))
3093 (native-inputs
3094 (list python-mock
3095 python-pynose
3096 python-setuptools
3097 python-setuptools-scm))
3098 (propagated-inputs
3099 (list python-humanize python-requests python-six))
3100 (home-page "https://github.com/ga4gh/htsget")
3101 (synopsis "Python API and command line interface for the GA4GH htsget API")
3102 (description
3103 "This package is a client implementation of the GA4GH htsget protocol.
3104It provides a simple and reliable way to retrieve genomic data from servers
3105supporting the protocol.")
3106 (license license:asl2.0)))
3107
3108(define-public python-liana-py
3109 (package
3110 (name "python-liana-py")
3111 (version "1.10.0")
3112 (source
3113 (origin
3114 (method git-fetch)
3115 (uri (git-reference
3116 (url "https://github.com/saezlab/liana-py")
3117 (commit (string-append "v" version))))
3118 (file-name (git-file-name name version))
3119 (sha256
3120 (base32 "0bdbrk0cr4m6br664gs1ixvchyd9hnwjmbnzxkx0gbj5967i1lw3"))))
3121 (build-system pyproject-build-system)
3122 (arguments
3123 (list
3124 ;; tests: 218 passed, 13 deselected, 755 warnings
3125 #:test-flags
3126 #~(list "-m" "not network"
3127 ;; Tests depending on python-corneto.
3128 "--deselect=tests/method/test_causalnet.py::test_build_prior_network"
3129 "--deselect=tests/method/test_causalnet.py::test_caulsalnet"
3130 "--deselect=tests/method/test_causalnet.py::test_causalnet_noweights"
3131 ;; A task has failed to un-serialize.
3132 "--deselect=tests/method/sc/test_methods.py::test_geometric_mean")
3133 #:phases
3134 #~(modify-phases %standard-phases
3135 ;; Numba needs a writable directory to cache functions.
3136 (add-before 'build 'set-numba-cache-dir
3137 (lambda _ (setenv "NUMBA_CACHE_DIR" "/tmp"))))))
3138 (native-inputs
3139 (list python-hatchling
3140 python-numpydoc
3141 python-pytest))
3142 (propagated-inputs
3143 (list python-anndata
3144 python-mudata
3145 python-scanpy
3146 python-numba
3147 python-tqdm
3148 python-docrep
3149 python-plotnine
3150 python-session-info2
3151 ;; See: <https://github.com/saezlab/liana-py/issues/244>.
3152 python-pandas-2
3153 ;; [optional]
3154 python-cell2cell
3155 ;; python-corneto ;not packaged yet in Guix
3156 ;; python-cvxpy-base ;not packaged yet in Guix
3157 python-decoupler
3158 python-gseapy
3159 python-kneed
3160 python-mofapy2
3161 python-mofax
3162 python-muon
3163 python-omnipath
3164 ;; python-pydeseq2 ;not packaged yet in Guix
3165 ;; python-pyscipopt ;not packaged yet in Guix
3166 python-requests))
3167 (home-page "https://github.com/saezlab/liana-py")
3168 (synopsis "LIANA is a ligand-receptor analysis framework")
3169 (description "This is a Ligand-Receptor inference framework. The
3170framework enables the use of any LR method with any resources.")
3171 (license license:gpl3+)))
3172
3173(define-public python-logomaker
3174 (package
3175 (name "python-logomaker")
3176 (version "0.8.7")
3177 (source (origin
3178 (method url-fetch)
3179 (uri (pypi-uri "logomaker" version))
3180 (sha256
3181 (base32
3182 "00ikzh7cv3yi1aj5v3hrpia6w7xrw559rqhwy3qxcja4wbk3qy33"))))
3183 (build-system pyproject-build-system)
3184 (arguments
3185 (list
3186 ;; All tests are marked as skipped in logomaker/tests, this is taken
3187 ;; form GitHub Actions file .github/workflows/daily-tests.yml.
3188 #:test-backend #~'custom
3189 #:test-flags #~(list "-c" "import logomaker")))
3190 (propagated-inputs
3191 (list python-matplotlib python-numpy python-pandas))
3192 (native-inputs (list python-hatchling))
3193 (home-page "https://github.com/jbkinney/logomaker")
3194 (synopsis "Package for making Sequence Logos")
3195 (description "Logomaker is a Python package for generating
3196publication-quality sequence logos. Logomaker can generate both standard and
3197highly customized logos illustrating the properties of DNA, RNA, or protein
3198sequences. Logos are rendered as vector graphics embedded within native
3199matplotlib Axes objects, making them easy to style and incorporate into
3200multi-panel figures.")
3201 (license license:expat)))
3202
3203(define-public python-weblogo
3204 (package
3205 (name "python-weblogo")
3206 (version "3.7.12")
3207 (home-page "https://github.com/gecrooks/weblogo")
3208 (source
3209 (origin
3210 (method url-fetch)
3211 (uri (pypi-uri "weblogo" version))
3212 (sha256
3213 (base32
3214 "0mw6aa0dq3kk9k1nakdvm64icz9504spqbvq4v2h0rb1cb52frkw"))))
3215 (build-system pyproject-build-system)
3216 (propagated-inputs (list ghostscript
3217 python-numpy
3218 python-pluggy
3219 python-scipy))
3220 (native-inputs (list ghostscript
3221 python-importlib-resources
3222 python-pytest
3223 python-setuptools
3224 python-setuptools-scm))
3225 (arguments
3226 (list
3227 #:test-flags
3228 '(list "-k"
3229 ;; These tests fail because of circular imports
3230 (string-append "not test_cli.py"
3231 " and not test_transformseq.py"))))
3232 (synopsis "Sequence Logo Generator")
3233 (description "WebLogo is a web based application designed to make the
3234generation of sequence logos as easy and painless as possible.
3235
3236WebLogo can create output in several common graphics' formats, including the
3237bitmap formats GIF and PNG, suitable for on-screen display, and the vector
3238formats EPS and PDF, more suitable for printing, publication, and further
3239editing. Additional graphics options include bitmap resolution, titles,
3240optional axis, and axis labels, antialiasing, error bars, and alternative
3241symbol formats.
3242
3243A sequence logo is a graphical representation of an amino acid or nucleic acid
3244multiple sequence alignment. Each logo consists of stacks of symbols, one
3245stack for each position in the sequence. The overall height of the stack
3246indicates the sequence conservation at that position, while the height of
3247symbols within the stack indicates the relative frequency of each amino or
3248nucleic acid at that position. The width of the stack is proportional to the
3249fraction of valid symbols in that position.")
3250 (license license:expat)))
3251
3252(define-public python-magic-impute
3253 (package
3254 (name "python-magic-impute")
3255 (version "3.0.0")
3256 (source
3257 (origin
3258 (method git-fetch)
3259 (uri (git-reference
3260 (url "https://github.com/KrishnaswamyLab/MAGIC")
3261 (commit (string-append "v" version))))
3262 (file-name (git-file-name name version))
3263 (sha256
3264 (base32
3265 "1f4ckvpki2461xd5hclhj7gqwj8xizs4d0fd942kvgafidrsdvlx"))))
3266 (build-system pyproject-build-system)
3267 (arguments
3268 (list
3269 #:test-flags
3270 #~(list "test/test.py")
3271 #:phases
3272 #~(modify-phases %standard-phases
3273 (add-after 'unpack 'chdir
3274 (lambda _ (chdir "python"))))))
3275 (native-inputs
3276 (list python-pytest
3277 python-setuptools))
3278 (propagated-inputs
3279 (list python-future
3280 python-graphtools
3281 python-matplotlib
3282 python-numpy
3283 python-pandas
3284 python-scikit-learn
3285 python-scipy
3286 python-scprep
3287 python-tasklogger))
3288 (home-page "https://github.com/KrishnaswamyLab/MAGIC")
3289 (synopsis "Markov affinity-based graph imputation of cells")
3290 (description "MAGIC is an interactive tool to impute missing values in
3291single-cell sequencing data and to restore the structure of the data. It also
3292provides data pre-processing functionality such as dimensionality reduction
3293and gene expression visualization.")
3294 (license license:gpl2+)))
3295
3296(define-public python-metacells
3297 (package
3298 (name "python-metacells")
3299 (version "0.9.5")
3300 (source
3301 (origin
3302 (method url-fetch)
3303 (uri (pypi-uri "metacells" version))
3304 (sha256
3305 (base32 "0rb1r8l1ypfmvd3lwlx7ksfbjvgpnybn1s84a8n9gcpz9yx2rhbs"))))
3306 #;
3307 (properties '((tunable? . #t)))
3308 (build-system pyproject-build-system)
3309 (arguments
3310 (list
3311 #:phases
3312 #~(modify-phases %standard-phases
3313 ;; The package "python-igraph" has been deprecated in favor of
3314 ;; just "igraph".
3315 (add-after 'unpack 'rename-igraph
3316 (lambda _
3317 (substitute* "requirements.txt"
3318 (("python-igraph") "igraph"))))
3319 (add-after 'unpack 'do-not-tune
3320 (lambda _
3321 ;; Without this they pass -march=native to the compiler.
3322 (setenv "WHEEL" "1")))
3323 (add-before 'check 'pre-check
3324 (lambda _
3325 ;; Numba needs a writable dir to cache functions.
3326 (setenv "NUMBA_CACHE_DIR" "/tmp")
3327 (delete-file-recursively "metacells")))
3328 (add-before 'sanity-check 'pre-sanity-check
3329 (lambda _
3330 ;; Numba needs a writable dir to cache functions.
3331 (setenv "NUMBA_CACHE_DIR" "/tmp"))))))
3332 (propagated-inputs (list python-anndata
3333 python-cvxpy
3334 python-fastcluster
3335 python-igraph
3336 python-numpy
3337 python-pandas
3338 python-psutil
3339 python-pyyaml
3340 python-scanpy
3341 python-scipy
3342 python-threadpoolctl
3343 python-umap-learn))
3344 (native-inputs (list pybind11-2 python-pytest python-setuptools))
3345 (home-page "https://github.com/tanaylab/metacells")
3346 (synopsis "Single-cell RNA Sequencing Analysis")
3347 (description "The metacells package implements the improved metacell
3348algorithm for single-cell RNA sequencing (scRNA-seq) data analysis within the
3349scipy framework, and projection algorithm based on it. The original metacell
3350algorithm was implemented in R. The Python package contains various
3351algorithmic improvements and is scalable for larger data sets (millions of
3352cells).")
3353 (license license:expat)))
3354
3355(define-public python-ngesh
3356 (package
3357 (name "python-ngesh")
3358 (version "1.0")
3359 (source
3360 (origin
3361 (method git-fetch)
3362 (uri (git-reference
3363 (url "https://github.com/tresoldi/ngesh")
3364 (commit (string-append "v" version))))
3365 (file-name (git-file-name name version))
3366 (sha256
3367 (base32 "07sj4x95b5hvx57pw24f80sk4ag4hkg1z6wzym3pzi8n5gn85n1z"))))
3368 (build-system pyproject-build-system)
3369 (propagated-inputs (list python-ete3 python-numpy python-six))
3370 (native-inputs (list python-pytest))
3371 (home-page "https://github.com/tresoldi/ngesh")
3372 (synopsis "Library for phylogenetic tree simulation")
3373 (description
3374 "Ngesh is a Python library and CLI tool for simulating phylogenetic trees
3375and data. It is intended for benchmarking phylogenetic methods, especially in
3376historical linguistics andstemmatology. The generation of stochastic
3377phylogenetic trees also goes by the name simulationmethods for phylogenetic
3378trees, synthetic data generation, or just phylogenetic tree simulation.")
3379 (license license:expat)))
3380
3381(define-public python-parabam
3382 (package
3383 (name "python-parabam")
3384 ;; XXX: Upstream works on modernization of the project, use the latest
3385 ;; commit providing fixes.
3386 ;; See: <https://github.com/cancerit/parabam/issues/10>.
3387 (properties '((commit . "be5bd35012d37df8cfa88771325a0273519c8c98")
3388 (revision . "0")))
3389 (version (git-version "3.0.1"
3390 (assoc-ref properties 'revision)
3391 (assoc-ref properties 'commit)))
3392 (source
3393 (origin
3394 (method git-fetch)
3395 (uri (git-reference
3396 (url "https://github.com/cancerit/parabam")
3397 (commit (assoc-ref properties 'commit))))
3398 (file-name (git-file-name name version))
3399 (sha256
3400 (base32 "1x0c1zhlfplhm4n07vibvh4jprjsdlypnlig87a8r07d26d4qphh"))
3401 (patches
3402 (list
3403 (origin
3404 (method url-fetch)
3405 (uri
3406 (string-append "https://github.com/cancerit/parabam/commit/"
3407 "477246d7a13b227841bf49521181235c76afe75f.patch"))
3408 (file-name (string-append name "-" version "-pull-16.patch"))
3409 (sha256
3410 (base32 "0znmyvrmwbscqymhsx60pnp9jhzpz94diyv409jygjm58hj5454z")))))))
3411 (build-system pyproject-build-system)
3412 (arguments
3413 (list
3414 #:tests? #f ;no tests
3415 #:phases
3416 #~(modify-phases %standard-phases
3417 (add-before 'build 'cythonize
3418 (lambda _
3419 (with-directory-excursion "parabam"
3420 (for-each (lambda (file)
3421 (invoke "cython" "-3" file "-I" "."))
3422 (find-files "." ".*\\.pyx$"))))))))
3423 (propagated-inputs (list python-numpy python-pysam))
3424 (native-inputs (list python-cython python-setuptools))
3425 (home-page "https://github.com/cancerit/parabam")
3426 (synopsis "Parallel BAM File Analysis")
3427 (description "Parabam is a tool for processing sequencing files in
3428parallel. It uses Python's native multiprocessing framework to apply a user
3429defined rule on an input file.")
3430 (license license:gpl3)))
3431
3432(define-public python-pdbfixer
3433 (package
3434 (name "python-pdbfixer")
3435 (version "1.12")
3436 (source
3437 (origin
3438 (method git-fetch)
3439 (uri (git-reference
3440 (url "https://github.com/openmm/pdbfixer")
3441 (commit (string-append "v" version))))
3442 (file-name (git-file-name name version))
3443 (sha256
3444 (base32 "0jj724fkvk7bk47izk92ss8nz9ymfvj0f1fkypc0ig4xd5qzjqsz"))))
3445 (build-system pyproject-build-system)
3446 (arguments
3447 (list
3448 #:test-flags
3449 ;; These tests fail because they require internet access or test data.
3450 '(list "-k"
3451 (string-join (list "not test_build_and_simulate"
3452 "test_charge_and_solvate"
3453 "test_cli"
3454 "test_leaving_atoms"
3455 "test_mutate"
3456 "test_nonstandard")
3457 " and not "))))
3458 (propagated-inputs (list openmm python-numpy))
3459 (native-inputs (list python-pytest python-setuptools))
3460 (home-page "https://github.com/openmm/pdbfixer")
3461 (synopsis "Application for fixing problems in Protein Data Bank")
3462 (description
3463 "PDBFixer is designed to rectify issues in Protein Data Bank files.
3464Its intuitive interface simplifies the process of resolving problems
3465encountered in PDB files prior to simulation tasks.")
3466 (license license:expat)))
3467
3468(define-public python-peaks2utr
3469 (package
3470 (name "python-peaks2utr")
3471 (version "1.5.0")
3472 (source
3473 (origin
3474 (method git-fetch)
3475 (uri (git-reference
3476 (url "https://github.com/haessar/peaks2utr")
3477 (commit (string-append "v" version))))
3478 (file-name (git-file-name name version))
3479 (sha256
3480 (base32 "1b4qiccp5j394pzqd1d4ss3k90zv3kdr84lykl6p8izn3k85b2bl"))))
3481 (build-system pyproject-build-system)
3482 (arguments
3483 (list
3484 #:phases
3485 #~(modify-phases %standard-phases
3486 (add-after 'unpack 'relax-requirements
3487 (lambda _
3488 (substitute* "setup.cfg"
3489 (("==") ">=")
3490 ;; See: <https://github.com/haessar/peaks2utr/issues/47>.
3491 (("numpy >= 1.21.4, <= 1.26.4") "numpy >= 1.21.4")))))))
3492 (native-inputs
3493 (list python-pytest
3494 python-setuptools))
3495 (propagated-inputs
3496 (list python-asgiref
3497 python-gffutils
3498 python-importlib-resources
3499 macs
3500 python-numpy
3501 python-psutil
3502 python-pybedtools
3503 python-pysam
3504 python-requests
3505 python-tqdm
3506 python-typing-extensions
3507 python-zipp))
3508 (home-page "https://github.com/haessar/peaks2utr")
3509 (synopsis "Python CLI for annotating three prime UTR")
3510 (description
3511 "This package provides a robust, parallelized Python CLI for annotating
3512three prime UTR.")
3513 (license license:gpl3+)))
3514
3515(define-public python-pegasusio
3516 (package
3517 (name "python-pegasusio")
3518 (version "0.11.0")
3519 (source
3520 (origin
3521 (method git-fetch)
3522 (uri (git-reference
3523 (url "https://github.com/lilab-bcb/pegasusio")
3524 (commit version)))
3525 (file-name (git-file-name name version))
3526 (sha256
3527 (base32 "1v0zcpk13ckw2ab3i3cgqjz66syirx3yplwwv024mpcwzahv826r"))))
3528 (build-system pyproject-build-system)
3529 ;; There are no tests.
3530 (arguments (list #:tests? #false))
3531 (propagated-inputs
3532 (list python-cython
3533 python-docopt
3534 python-h5py
3535 python-loompy
3536 python-natsort
3537 python-numpy
3538 python-pandas
3539 python-pillow
3540 python-scipy
3541 python-setuptools
3542 python-zarr))
3543 (native-inputs (list python-cython python-setuptools python-setuptools-scm))
3544 (home-page "https://github.com/lilab-bcb/pegasusio")
3545 (synopsis "Read or write single-cell genomics data")
3546 (description
3547 "Pegasusio is a Python package for reading or writing single-cell
3548genomics data.")
3549 (license license:bsd-3)))
3550
3551(define-public python-phenograph
3552 ;; XXX: No updates since 2020, probably not compatible with current NumPy stack.
3553 (package
3554 (name "python-phenograph")
3555 (version "1.5.7")
3556 (source (origin
3557 (method url-fetch)
3558 (uri (pypi-uri "PhenoGraph" version))
3559 (sha256
3560 (base32
3561 "0nji449mzwgp1f87iknl5fmnjdkrhkfkapxvafxdw01s0jg8zcj6"))
3562 (modules '((guix build utils)))
3563 ;; Remove bundled binaries
3564 (snippet
3565 '(delete-file-recursively "phenograph/louvain"))))
3566 (build-system pyproject-build-system)
3567 (arguments
3568 (list
3569 ;; tests: 3 passed, 4 deselected, 1 warning
3570 #:test-flags
3571 ;; ValueError: 'scipy.sparse.linalg.bicgstab' called with invalid
3572 ;; `atol`=legacy; if set, `atol` must be a real, non-negative number.
3573 #~(list "--deselect=tests/test_classify.py::test_classify_generated"
3574 "--deselect=tests/test_classify.py::test_classify_fixed"
3575 "--deselect=tests/test_classify.py::test_random_walk_probabilities_fixed"
3576 ;; This test can never succeed because Q_leiden is never set to
3577 ;; anything other than None.
3578 ;; assert 0.6666666666666665 == None
3579 "--deselect=tests/test_cluster.py::test_run_leiden")
3580 #:phases
3581 #~(modify-phases %standard-phases
3582 (add-after 'unpack 'patch-louvain
3583 (lambda* (#:key inputs #:allow-other-keys)
3584 (substitute* "phenograph/core.py"
3585 (("lpath = os.path.*")
3586 (string-append "lpath = \""
3587 (dirname (search-input-file inputs "/bin/community"))
3588 "\"\n"))
3589 (("linux-(community|hierarchy|convert)" _ thing) thing)
3590 ;; Do not write binaries, because the unmodified "convert"
3591 ;; from louvain only knows how to process plain text files.
3592 (("with open\\(filename \\+ \".bin\", \"w\\+b\"\\) as f:")
3593 "with open(filename + \".bin\", \"w+\") as f:")
3594 (("f.writelines\\(\\[e for t in zip\\(ij, s\\) for e in t\\]\\)")
3595 "for [src, dest], weight in zip(ij, s): \
3596f.write(src.astype(\"str\") + ' ' + \
3597dest.astype(\"str\") + ' ' + \
3598weight.astype(\"str\") + '\\n')")))))))
3599 (inputs
3600 (list louvain))
3601 (propagated-inputs
3602 (list python-leidenalg
3603 python-numpy-1
3604 python-psutil
3605 python-scikit-learn
3606 python-scipy))
3607 (native-inputs
3608 (list python-pytest python-setuptools))
3609 (home-page "https://github.com/dpeerlab/PhenoGraph.git")
3610 (synopsis "Graph-based clustering for high-dimensional single-cell data")
3611 (description
3612 "PhenoGraph is a clustering method designed for high-dimensional
3613single-cell data. It works by creating a graph representing phenotypic
3614similarities between cells and then identifying communities in this graph.")
3615 (license license:expat)))
3616
3617(define-public python-phylophlan
3618 (package
3619 (name "python-phylophlan")
3620 (version "3.0.3")
3621 (source (origin
3622 (method git-fetch)
3623 (uri (git-reference
3624 (url "https://github.com/biobakery/phylophlan")
3625 (commit version)))
3626 (file-name (git-file-name name version))
3627 (sha256
3628 (base32
3629 "1wz70xzxqx2sf5flmf45m15jq027dqijfaj1r51pl50w5x6dkawx"))))
3630 (build-system pyproject-build-system)
3631 (arguments (list #:tests? #f)) ;there are no tests
3632 (propagated-inputs
3633 (list python-biopython
3634 python-dendropy
3635 python-matplotlib
3636 python-numpy
3637 python-pandas
3638 python-seaborn))
3639 (native-inputs (list python-setuptools))
3640 (home-page "https://github.com/biobakery/phylophlan")
3641 (synopsis
3642 "Phylogenetic analysis of microbial isolates and genomes from metagenomes")
3643 (description
3644 "This package is an integrated pipeline for large-scale phylogenetic
3645profiling of genomes and metagenomes. PhyloPhlAn is an accurate, rapid, and
3646easy-to-use method for large-scale microbial genome characterization and
3647phylogenetic analysis at multiple levels of resolution. This software package
3648can assign both genomes and @acronym{MAGs, metagenome-assembled genomes} to
3649@acronym{SGBs, species-level genome bins}. PhyloPhlAn can reconstruct
3650strain-level phylogenies using clade- specific maximally informative
3651phylogenetic markers, and can also scale to very large phylogenies comprising
3652>17,000 microbial species.")
3653 (license license:expat)))
3654
3655(define-public python-pybedtools
3656 (package
3657 (name "python-pybedtools")
3658 (version "0.12.0")
3659 (source
3660 (origin
3661 (method url-fetch)
3662 (uri (pypi-uri "pybedtools" version))
3663 (sha256
3664 (base32 "0jbjaj0n34k64jp5q3l653qrrxwd8d276hqbq1ii7j3rcngyr1l7"))
3665 (snippet
3666 ;; Force the Cythonization of C++ files to guard against compilation
3667 ;; problems.
3668 #~(begin
3669 (use-modules (guix build utils))
3670 (use-modules (srfi srfi-26))
3671 (let ((cython-sources (map (cut string-drop-right <> 4)
3672 (find-files "." "\\.pyx$")))
3673 (c/c++-files (find-files "." "\\.(c|cpp|cxx)$")))
3674 (define (strip-extension filename)
3675 (string-take filename (string-index-right filename #\.)))
3676 (define (cythonized? c/c++-file)
3677 (member (strip-extension c/c++-file) cython-sources))
3678 (for-each delete-file (filter cythonized? c/c++-files)))))))
3679 (build-system pyproject-build-system)
3680 (arguments
3681 (list
3682 #:build-backend "setuptools.build_meta"
3683 ;; tests: 508 passed, 1 deselected, 3 xfailed
3684 #:test-flags
3685 #~(list "--pyargs" "pybedtools"
3686 ;; ValueError: It appears you don't have an internet connection
3687 ;; -- unable to get chromsizes from UCSC
3688 "--deselect=test/test_helpers.py::test_chromsizes")
3689 #:phases
3690 #~(modify-phases %standard-phases
3691 (add-after 'unpack 'fix-references
3692 (lambda _
3693 (substitute* "pybedtools/test/test_issues.py"
3694 (("'/bin/bash'") (string-append "'" (which "bash") "'")))))
3695 (add-before 'build 'generate-cython-extensions
3696 (lambda _
3697 (invoke "python" "setup.py" "cythonize")))
3698 (add-before 'check 'remove-local-source
3699 (lambda _
3700 (delete-file-recursively "pybedtools"))))))
3701 (propagated-inputs
3702 (list bedtools
3703 kentutils ;for bedGraphToBigWig
3704 python-numpy
3705 python-pandas
3706 python-psutil
3707 python-pysam
3708 python-pyyaml
3709 samtools))
3710 (inputs
3711 (list zlib))
3712 (native-inputs
3713 (list python-cython
3714 python-pytest
3715 python-setuptools))
3716 (home-page "https://pythonhosted.org/pybedtools/")
3717 (synopsis "Python wrapper for BEDtools programs")
3718 (description
3719 "This package is a Python wrapper for Aaron Quinlan's BEDtools programs,
3720which are widely used for genomic interval manipulation or \"genome algebra\".
3721pybedtools extends BEDTools by offering feature-level manipulations from with
3722Python.")
3723 ;; pypi lists GPLv2 in the PKG-INFO and website, but was relicensed in
3724 ;; version 0.9.0 and the LICENSE.txt is consistent with the source code.
3725 ;;
3726 ;; pybedtools/include/gzstream.cpp and pybedtools/include/gzstream.h are
3727 ;; licensed lgpl2.1+
3728 (license (list license:expat license:lgpl2.1+))))
3729
3730(define-public python-pybio
3731 (let ((commit "c91fddc483da535d5097364405d76ad9b1bde07f")
3732 (revision "1"))
3733 (package
3734 (name "python-pybio")
3735 (version (git-version "0.3.12" revision commit))
3736 (source
3737 (origin
3738 (method git-fetch)
3739 (uri (git-reference
3740 (url "https://github.com/grexor/pybio")
3741 (commit commit)))
3742 (file-name (git-file-name name version))
3743 (sha256
3744 (base32 "0s3n1bqp25zf5pzfsj0x1kqr6i2a6iffpb8hkjwhyvjqrxf5d9rk"))))
3745 (build-system pyproject-build-system)
3746 (arguments
3747 (list
3748 #:tests? #false ;There are no automated tests
3749 #:phases
3750 #~(modify-phases %standard-phases
3751 (add-before 'sanity-check 'set-home
3752 ;; A HOME directory is required when importing the module during
3753 ;; the sanity check.
3754 (lambda _ (setenv "HOME" "/tmp")))
3755 (add-after 'unpack 'adjust-requirements
3756 (lambda _
3757 ;; bs4 is an alternative name for beautifulsoup4, only used to
3758 ;; avoid name squatting on pypi.
3759 (substitute* "setup.py"
3760 (("bs4") "beautifulsoup4"))))
3761 (add-after 'unpack 'avoid-internet-while-building
3762 (lambda _
3763 (setenv "GUIX_BUILD" "yes")
3764 (substitute* "pybio/__init__.py"
3765 (("^pybio.core.genomes.init\\(\\)" m)
3766 (string-append m
3767 "\
3768 if not os.getenv('GUIX_BUILD') else None"))))))))
3769 (propagated-inputs
3770 (list python-beautifulsoup4 python-numpy
3771 python-psutil python-pysam python-requests))
3772 (native-inputs (list python-pytest python-setuptools))
3773 (home-page "https://github.com/grexor/pybio")
3774 (synopsis "Basic genomics toolset")
3775 (description
3776 "This tool provides a Python framework to streamline genomics
3777operations. It offers a direct interface to Ensembl genome assemblies and
3778annotations, while also accommodating custom genomes via FASTA/GTF inputs.
3779The primary objective of pybio is to simplify genome management. It achieves
3780this by providing automatic download of Ensembl genome assemblies and
3781annotation, provides Python genomic feature search and sequence retrieval from
3782the managed genomes, STAR indexing and mapping and more.")
3783 (license license:gpl3+))))
3784
3785(define-public python-pybiomart
3786 (package
3787 (name "python-pybiomart")
3788 (version "0.2.0")
3789 (source
3790 (origin
3791 (method git-fetch)
3792 (uri (git-reference
3793 (url "https://github.com/jrderuiter/pybiomart")
3794 (commit version)))
3795 (file-name (git-file-name name version))
3796 (sha256
3797 (base32 "1x5rd33sa0gwj4nizn02lsc675bbzsspz74f38mp0fbxdp7qnxv8"))))
3798 (build-system pyproject-build-system)
3799 (arguments
3800 (list
3801 #:test-flags
3802 ;; Attempts to access the web.
3803 #~(list "--ignore=tests/test_dataset.py")))
3804 (propagated-inputs
3805 (list python-future
3806 python-pandas
3807 python-requests
3808 python-requests-cache))
3809 (native-inputs
3810 (list python-pytest
3811 python-pytest-helpers-namespace
3812 python-pytest-mock
3813 python-setuptools
3814 python-sphinx
3815 python-sphinx-rtd-theme))
3816 (home-page "https://github.com/jrderuiter/pybiomart")
3817 (synopsis "A simple pythonic interface to biomart")
3818 (description
3819 "Pybiomart provides a simple pythonic interface to biomart.")
3820 (license license:expat)))
3821
3822(define-public python-pygam
3823 (package
3824 (name "python-pygam")
3825 (version "0.12.0")
3826 (source
3827 (origin
3828 (method git-fetch)
3829 (uri (git-reference
3830 (url "https://github.com/dswah/pyGAM")
3831 (commit (string-append "v" version))))
3832 (file-name (git-file-name name version))
3833 (sha256
3834 (base32 "0xf4hly8cxfj73il6l37bd48gygrmky2kyx9l270f1ivnpz1545a"))))
3835 (build-system pyproject-build-system)
3836 (arguments
3837 (list
3838 ;; tests: 161 passed, 1 skipped, 1 deselected, 7 warnings
3839 #:test-flags
3840 ;; Assertion is not equal.
3841 #~(list (string-append "--deselect=pygam/tests/test_gridsearch.py::"
3842 "test_gridsearch_all_dimensions_independent"))))
3843 (native-inputs
3844 (list python-matplotlib
3845 python-mock
3846 python-pytest
3847 python-setuptools))
3848 (propagated-inputs
3849 (list python-numpy
3850 python-pandas
3851 python-progressbar2
3852 python-scipy))
3853 (home-page "https://github.com/dswah/pyGAM")
3854 (synopsis "Generalized additive models in Python")
3855 (description
3856 "This tool is for building Generalized Additive Models in Python.
3857It emphasizes modularity and performance. The API will be immediately
3858familiar to anyone with experience of scikit-learn or scipy.")
3859 (license license:asl2.0)))
3860
3861(define bgen-sample-files
3862 (let* ((name "bgen-sample-files")
3863 (commit "7b1bc74f58b326ca19606fa5f3c6093d48367993")
3864 (revision "0")
3865 (version (git-version "0.0.0" revision commit)))
3866 (origin
3867 (method git-fetch)
3868 (uri (git-reference
3869 (url "https://github.com/fastlmm/bgen-sample-files")
3870 (commit commit)))
3871 (file-name (git-file-name name version))
3872 (sha256
3873 (base32 "1b8jkscccyspfr3y1b66xvwnljcha08r2i24v9d6hcm5zii0l54w")))))
3874
3875(define pynsptools-examples-files
3876 (let* ((name "pysnptools-examples-files")
3877 ;; taken from pysnptools/util/pysnptools.hashdown.json
3878 (commit "ed14e050b2b75e7f4ddb73d512fbe928bbdb2b85")
3879 (revision "0")
3880 (version (git-version "0.0.0" revision commit)))
3881 (origin
3882 (method git-fetch)
3883 (uri (git-reference
3884 (url "https://github.com/fastlmm/PySnpTools")
3885 (commit commit)))
3886 (file-name (git-file-name name version))
3887 (sha256
3888 (base32 "0hznpj15kx2sla16wlmcqz21n2vi2qb1493v30vz75hnm1m4iwm1"))
3889 (modules '((guix build utils)))
3890 (snippet
3891 #~(begin
3892 ;; Delete everything except for examples directory:
3893 (delete-all-but ".""pysnptools" "tests")
3894 (delete-all-but "pysnptools" "examples")
3895 (delete-all-but "tests" "datasets"))))))
3896
3897(define-public python-pysnptools
3898 (package
3899 (name "python-pysnptools")
3900 (version "0.5.14")
3901 (source
3902 (origin
3903 (method url-fetch)
3904 (uri (pypi-uri "pysnptools" version))
3905 (sha256
3906 (base32 "1babnyky5fk93as1ybdvpz9x3x5099gkgscxflngzfswin23mspk"))))
3907 (build-system pyproject-build-system)
3908 (arguments
3909 (list
3910 #:test-flags
3911 #~(list
3912 ;; These tests require the bgen feature and an additional input.
3913 "--ignore" "pysnptools/distreader/bgen.py"
3914 "--ignore" "pysnptools/distreader/test_bgen2.py"
3915 "--ignore" "pysnptools/distreader/distreader.py"
3916 "-k" "not pysnptools.distreader.distdata.DistData.val \
3917and not pysnptools.distreader.disthdf5.DistHdf5.write \
3918and not pysnptools.distreader.distmemmap.DistMemMap.write"
3919 ;; These tests require network connection.
3920 "--ignore" "pysnptools/util/_example_file.py"
3921 "--ignore" "pysnptools/util/filecache/hashdown.py")
3922 #:phases
3923 #~(modify-phases %standard-phases
3924 (add-after 'unpack 'patch-data-path
3925 (lambda _
3926 (substitute* "pysnptools/util/pysnptools.hashdown.json"
3927 (("https://github\\.com/fastlmm/PySnpTools/\
3928raw/ed14e050b2b75e7f4ddb73d512fbe928bbdb2b85")
3929 (string-append "file://" #+pynsptools-examples-files)))
3930 (substitute* "pysnptools/util/bgen.hashdown.json"
3931 (("https://raw\\.githubusercontent\\.com\
3932/fastlmm/bgen-sample-files/7b1bc74f58b326ca19606fa5f3c6093d48367993")
3933 (string-append "file://" #+bgen-sample-files)))))
3934 (add-after 'unpack 'loosen-requirements
3935 (lambda _
3936 (substitute* "pyproject.toml"
3937 (("(h5py|psutil|wheel)>=[0-9.]*" all target)
3938 target)))))))
3939 (propagated-inputs
3940 (list python-bed-reader
3941 python-cloudpickle
3942 python-h5py
3943 python-more-itertools
3944 python-numpy
3945 python-pandas
3946 python-psutil
3947 python-scipy))
3948 (native-inputs
3949 (list python-pytest
3950 python-pytest-datadir
3951 python-pytest-doctestplus
3952 python-setuptools
3953 python-sphinx
3954 python-sphinx-rtd-theme))
3955 (home-page "http://microsoftgenomics.github.io/PySnpTools/")
3956 (synopsis "Library for reading and manipulating genetic data")
3957 (description
3958 "PySnpTools is a library for reading and manipulating genetic data. It
3959can, for example, efficiently read whole PLINK *.bed/bim/fam files or parts of
3960those files. It can also efficiently manipulate ranges of integers using set
3961operators such as union, intersection, and difference.")
3962 (license license:asl2.0)))
3963
3964(define-public python-ega-download-client
3965 ;; XXX: 5.2.1 (2024-04-03) it's the latest version without any work on
3966 ;; master branch, the project looks un-maintained.
3967 (package
3968 (name "python-ega-download-client")
3969 (version "5.2.1")
3970 (source
3971 (origin
3972 (method git-fetch)
3973 (uri (git-reference
3974 (url "https://github.com/EGA-archive/ega-download-client")
3975 (commit (string-append "v" version))))
3976 (file-name (git-file-name name version))
3977 (sha256
3978 (base32 "0wz36ii6sb65nknh56vr5ss6b446zy9iibz7jv3irgfas955jlrc"))))
3979 (build-system pyproject-build-system)
3980 (arguments
3981 (list
3982 ;; XXX: TypeError: mock_writing_files.<locals>.os_stat_mock() got an
3983 ;; unexpected keyword argument 'follow_symlinks'
3984 #:tests? #f
3985 ;; tests: 78 passed, 2 deselected, 1 warning
3986 #:test-flags
3987 ;; Test suite does a lot of fake os mocking and extensively hash
3988 ;; checking on a large amount of generated files (up to 150GiB each)
3989 ;; which would take some extra compute resources, therefor functional
3990 ;; and some of unit tests are excluded to relax the load.
3991 #~(list #$@(map (lambda (file) (string-append "--ignore="
3992 "tests/"
3993 file))
3994 (list "functional/"
3995 "unit/test_save_to_with_dataset.py"
3996 "unit/test_save_to_with_file.py"
3997 "unit/test_verify_output_dir.py"))
3998 #$@(map (lambda (test) (string-append "--deselect="
3999 "tests/unit/"
4000 "test_commands.py::"
4001 test))
4002 ;; requests.exceptions.RetryError: None: Max retries
4003 ;; exceeded with url:
4004 ;; https://test.data.server/metadata/datasets (Caused by
4005 ;; ResponseError('too many 503 error responses'))
4006 (list "test_error_5xx"
4007 "test_error_too_many_requests")))
4008 #:phases
4009 #~(modify-phases %standard-phases
4010 (add-after 'unpack 'relax-requirements
4011 (lambda _
4012 (substitute* "setup.py"
4013 (("==") ">=")))))))
4014 (propagated-inputs (list python-htsget python-psutil python-requests
4015 python-tqdm python-urllib3))
4016 (native-inputs
4017 (list nss-certs-for-test
4018 python-mock
4019 python-pyfakefs
4020 python-pytest
4021 python-responses
4022 python-setuptools))
4023 (home-page "https://github.com/EGA-archive/ega-download-client")
4024 (synopsis "EGA download client")
4025 (description "PyEGA3 is a tool for viewing and downloading files from
4026authorized EGA datasets. It uses the EGA data API and has several key
4027features:
4028
4029@itemize
4030@item Files are transferred over secure https connections and received
4031 unencrypted, so no need for decryption after download.
4032@item Downloads resume from where they left off in the event that the
4033 connection is interrupted.
4034@item Supports file segmenting and parallelized download of segments,
4035 improving overall performance.
4036@item After download completes, file integrity is verified using checksums.
4037@item Implements the GA4GH-compliant htsget protocol for download of genomic
4038 ranges for data files with accompanying index files.
4039@end itemize\n")
4040 (license license:asl2.0)))
4041
4042(define-public python-scdamandtools
4043 (package
4044 (name "python-scdamandtools")
4045 (version "1.0")
4046 (source (origin
4047 (method git-fetch)
4048 (uri (git-reference
4049 (url "https://github.com/KindLab/scDamAndTools")
4050 (commit (string-append "v" version))))
4051 (file-name (git-file-name name version))
4052 (sha256
4053 (base32
4054 "1mblw6cn5jqik6ky8cv7ry99z6jm1i4r71pzdfl398vrwbda65gd"))))
4055 (build-system pyproject-build-system)
4056 (arguments
4057 (list #:tests? #f)) ;there are none
4058 (propagated-inputs (list python-h5py
4059 python-numpy
4060 python-sortedcontainers
4061 python-pandas
4062 python-pysam
4063 python-tqdm))
4064 (native-inputs (list python-cython python-pytest python-setuptools))
4065 (home-page "https://github.com/KindLab/scDamAndTools")
4066 (synopsis "Functions for processing raw scDam&T-seq data")
4067 (description
4068 "This is a set of functions for processing raw scDam&T-seq data.
4069scDam&T-seq is a method to simultaneously measure protein-DNA interactions and
4070transcription from single cells (Rooijers et al., 2019). It combines a
4071DamID-based method to measure protein-DNA interactions and an adaptation of
4072CEL-Seq to measure transcription. The starting point of the workflow is raw
4073sequencing data and the end result are tables of UMI-unique DamID and CEL-Seq
4074counts.")
4075 (license license:expat)))
4076
4077(define-public python-scprep
4078 ;; XXX: Project has no update since <2023-06-19> and probably is not
4079 ;; compatible with Pandas 3 and NumPy 2.4.
4080 (package
4081 (name "python-scprep")
4082 (version "1.2.3")
4083 (source
4084 (origin
4085 (method git-fetch)
4086 (uri (git-reference
4087 (url "https://github.com/KrishnaswamyLab/scprep")
4088 (commit (string-append "v" version))))
4089 (file-name (git-file-name name version))
4090 (sha256
4091 (base32 "1dbmaix4bqaf9p1zw1fvk5a64kwdbg015q3ykc6rsmdwrcd2g5cz"))))
4092 (build-system pyproject-build-system)
4093 (arguments
4094 (list
4095 ;; tests: 326 passed
4096 #:test-flags
4097 ;; XXX: Mixture of remote data download and some assertion errors.
4098 ;;
4099 ;; Tests from "test/test_io.py" download data files from
4100 ;; <https://raw.githubusercontent.com/KrishnaswamyLab/scprep/>.
4101 #~(list "--ignore-files=test_io.py"
4102 (string-join
4103 (list "--exclude=(test.*dyngen.*" ;TODO: they need R packages
4104 "test_slingshot.*" ;
4105 "test_splatter_.*" ;
4106 "test_builtins"
4107 "test_combine_batches_errors"
4108 "test_conversion_sce"
4109 "test_conversion_spmatrix"
4110 "test_differential_expression"
4111 "test_differential_expression_error"
4112 "test_fcs"
4113 "test_fcs_PnN"
4114 "test_fcs_header_error"
4115 "test_fcs_reformat_meta"
4116 "test_generate_colorbar_dict"
4117 "test_install_bioc"
4118 "test_install_github_dependencies_None"
4119 "test_install_github_dependencies_True"
4120 "test_install_github_lib"
4121 "test_is_sparse_series"
4122 "test_builtins"
4123 "test_mtx"
4124 "test_scatter_rotate_mp4"
4125 "test_sparse_svd"
4126 "test_to_array_or_spmatrix_list_of_strings"
4127 "test_unzip_no_destination"
4128 ;; AttributeError: module 'rpy2' has no attribute
4129 ;; '__version__'
4130 "test_verbose"
4131 "test_conversion_list"
4132 "test_conversion_dict"
4133 "test_conversion_array"
4134 "test_conversion_dataframe"
4135 "test_conversion_anndata_missing"
4136 "test_r_traceback"
4137 ;; Pandas compatibility faileurs, see:
4138 ;; <https://github.com/KrishnaswamyLab/scprep/issues/144>.
4139 "test_batch_mean_center"
4140 "test_batch_mean_center_one_sample"
4141 "test_dense"
4142 "test_libsize_norm_rescale_integer"
4143 "test_libsize_norm_rescale_mean"
4144 "test_libsize_norm_rescale_median"
4145 "test_libsize_norm_rescale_none"
4146 "test_matrix_transpose"
4147 "test_pandas_series_rmatmul)")
4148 "|")
4149 "test")
4150 #:phases
4151 #~(modify-phases %standard-phases
4152 (add-after 'unpack 'relax-requirements
4153 (lambda _
4154 (substitute* "setup.py"
4155 ;; "pandas>=0.25,<2.1",
4156 ((",<2.1") ""))))
4157 (add-before 'check 'pre-check
4158 (lambda _
4159 (setenv "HOME" "/tmp"))))))
4160 (native-inputs
4161 (list python-fcsparser
4162 python-anndata
4163 python-h5py
4164 python-matplotlib
4165 python-parameterized
4166 python-nose2
4167 python-pynose
4168 python-requests
4169 python-rpy2
4170 python-setuptools
4171 python-tables))
4172 ;; Used by rpy2
4173 (inputs
4174 (list bash-minimal
4175 r-apeglm
4176 r-deseq2
4177 r-drimseq
4178 r-ggplot2
4179 r-lazyeval
4180 r-minimal
4181 r-qqman
4182 r-renv
4183 r-rlang
4184 r-slingshot
4185 #;r-splatter)) ;https://github.com/Oshlack/splatter
4186 (propagated-inputs
4187 (list python-decorator
4188 python-numpy
4189 python-packaging
4190 python-pandas
4191 python-scikit-learn
4192 python-scipy))
4193 (home-page "https://github.com/KrishnaswamyLab/scprep")
4194 (synopsis "Tools for loading, processing, and handling single cell data")
4195 (description
4196 "@code{scprep} provides an all-in-one framework for loading,
4197 preprocessing, and plotting matrices in Python, with a focus on single-cell
4198genomics.")
4199 (license license:expat)))
4200
4201(define-public python-snaptools
4202 (package
4203 (name "python-snaptools")
4204 (version "1.4.8")
4205 (source
4206 (origin
4207 (method url-fetch)
4208 (uri (pypi-uri "snaptools" version))
4209 (sha256
4210 (base32
4211 "1s5373g5jjbshh3q39zy7dlxr7nda6ksxq9d1gw46h82c4fsmfbn"))))
4212 (build-system pyproject-build-system)
4213 (arguments (list #:tests? #false)) ;there are none
4214 (propagated-inputs
4215 (list python-future
4216 python-h5py
4217 python-louvain
4218 python-numpy
4219 python-pybedtools
4220 python-pysam))
4221 (native-inputs (list python-setuptools))
4222 (home-page "https://github.com/r3fang/SnapTools")
4223 (synopsis "Tools for processing snap files" )
4224 (description
4225 "@code{SnapTools} can operate on snap files the following types of
4226operations:
4227
4228@itemize
4229@item index the reference genome before alignment;
4230@item align reads to the corresponding reference genome;
4231@item pre-process by convert pair-end reads into fragments, checking the
4232 mapping quality score, alignment and filtration;
4233@item create the cell-by-bin matrix.
4234@end itemize")
4235 (license license:asl2.0)))
4236
4237(define-public python-telomerecat
4238 (package
4239 (name "python-telomerecat")
4240 (version "4.0.2")
4241 (source
4242 (origin
4243 (method url-fetch)
4244 (uri (pypi-uri "telomerecat" version))
4245 (sha256
4246 (base32 "16mfdqmp0j6g3h26h59334w9lqb4qihqrlzwvgznj0fiqs1rkxn2"))))
4247 (build-system pyproject-build-system)
4248 (arguments (list #:tests? #false)) ;there are none
4249 (propagated-inputs (list python-click python-numpy python-pandas
4250 python-parabam python-pysam))
4251 (native-inputs (list python-setuptools))
4252 (home-page "https://github.com/cancerit/telomerecat")
4253 (synopsis "Telomere computational analysis tool")
4254 (description "Telomerecat is a tool for estimating the average telomere
4255length (TL) for a paired end, whole genome sequencing (WGS) sample.
4256
4257Telomerecat is adaptable, accurate and fast. The algorithm accounts for
4258sequencing amplification artifacts, anneouploidy (common in cancer samples)
4259and noise generated by WGS. For a high coverage WGS BAM file of around 100GB
4260telomerecat can produce an estimate in ~1 hour.")
4261 (license license:gpl3)))
4262
4263(define-public python-bioframe
4264 (package
4265 (name "python-bioframe")
4266 (version "0.8.0")
4267 (source
4268 (origin
4269 (method git-fetch)
4270 (uri (git-reference
4271 (url "https://github.com/open2c/bioframe")
4272 (commit (string-append "v" version))))
4273 (file-name (git-file-name name version))
4274 (sha256
4275 (base32 "06y7f3whmwg4ibcn9pa35k8m4fmnw9dkk8ibk5v4ij92s9n1r36r"))))
4276 (build-system pyproject-build-system)
4277 (arguments
4278 (list
4279 #:test-flags
4280 #~(list #$@(map (lambda (test) (string-append "--deselect=tests/" test))
4281 (list
4282 ;; Tests requiring network access.
4283 "test_resources.py::test_fetch_chromsizes"
4284 "test_resources.py::test_fetch_chromsizes_local_vs_ucsc"
4285 "test_resources.py::test_fetch_centromeres"
4286 ;; Attribute "dtype" are different
4287 "test_ops.py::test_overlap"
4288 "test_ops.py::test_closest"
4289 ;; AssertionError: assert np.False_
4290 "test_ops.py::test_assign_view")))
4291 #:phases
4292 #~(modify-phases %standard-phases
4293 (add-before 'check 'pre-check
4294 (lambda _ (setenv "MPLCONFIGDIR" "/tmp"))))))
4295 (native-inputs
4296 (list python-biopython
4297 python-hatchling
4298 python-pysam
4299 python-pytest))
4300 (propagated-inputs
4301 (list python-matplotlib
4302 python-numpy
4303 python-pandas
4304 python-pyyaml
4305 python-requests))
4306 (home-page "https://github.com/open2c/bioframe")
4307 (synopsis "Pandas utilities for tab-delimited and other genomic files")
4308 (description
4309 "This package is a library to enable flexible and scalable operations on
4310genomic interval dataframes in Python. Bioframe enables access to a rich set
4311of dataframe operations. Working in Python enables rapid visualization and
4312iteration of genomic analyses. The philosophy underlying bioframe is to
4313enable flexible operations. Instead of creating a function for every possible
4314use-case, we encourage users to compose functions to achieve their goals.")
4315 (license license:expat)))
4316
4317(define-public python-biom-format
4318 (package
4319 (name "python-biom-format")
4320 ;; 2.1.17 (2025-08-26); the latest changes provide support for fresh NumPy
4321 ;; and Pandas., see: <https://github.com/biocore/biom-format/issues/1003>,
4322 ;; <https://github.com/biocore/biom-format/issues/1001>.
4323 (properties '((commit . "0f3855c4af5dd5f33766badd8a6ba2dbdccf29dd")
4324 (revision . "0")))
4325 (version (git-version "2.1.17"
4326 (assoc-ref properties 'revision)
4327 (assoc-ref properties 'commit)))
4328 (source
4329 (origin
4330 (method git-fetch)
4331 (uri (git-reference
4332 (url "https://github.com/biocore/biom-format")
4333 (commit (assoc-ref properties 'commit))))
4334 (file-name (git-file-name name version))
4335 (sha256
4336 (base32 "1hqihr1hkx3g0p71vkzx5sk2k1cwrxhskxzxss6z9vxg1hwn27k0"))))
4337 (build-system pyproject-build-system)
4338 (arguments
4339 (list
4340 ;; tests: 378 passed, 7 skipped, 7 warnings
4341 #:test-flags
4342 ;; Doctests depend on Nose.
4343 #~(list "--ignore=doc/sphinxext/numpydoc/numpydoc/tests/")
4344 #:phases
4345 #~(modify-phases %standard-phases
4346 (add-before 'check 'remove-local-source
4347 (lambda _
4348 (copy-recursively "biom/tests" "tests")
4349 (delete-file-recursively "biom")
4350 (substitute* "tests/test_cli/test_validate_table.py"
4351 ;; Help finding "examples" directory.
4352 (("cur_path.rsplit\\(os.path.sep, 3\\)\\[0\\]")
4353 (format #f "~s" (getcwd)))))))))
4354 (native-inputs
4355 (list python-cython
4356 python-pytest
4357 python-setuptools))
4358 (propagated-inputs
4359 (list python-click
4360 python-h5py
4361 python-numpy
4362 python-pandas
4363 python-scipy))
4364 (home-page "https://www.biom-format.org")
4365 (synopsis "Biological Observation Matrix (BIOM) format utilities")
4366 (description
4367 "The BIOM file format is designed to be a general-use format for
4368representing counts of observations e.g. operational taxonomic units, KEGG
4369orthology groups or lipid types, in one or more biological samples
4370e.g. microbiome samples, genomes, metagenomes.")
4371 (license license:bsd-3)))
4372
4373(define-public python-pairtools
4374 (package
4375 (name "python-pairtools")
4376 (version "1.1.0-fix")
4377 (source (origin
4378 (method git-fetch)
4379 (uri (git-reference
4380 (url "https://github.com/open2c/pairtools")
4381 (commit (string-append "pairtools-v" version))))
4382 (file-name (git-file-name name version))
4383 (sha256
4384 (base32
4385 "0983vw4kb6frjncsnml4ahw3l7sixg1paz80s119iah2i086cw06"))))
4386 (build-system pyproject-build-system)
4387 (arguments
4388 (list
4389 #:phases
4390 '(modify-phases %standard-phases
4391 (add-after 'unpack 'patch-setup.py
4392 (lambda _
4393 ;; __NUMPY_SETUP__ is undefined.
4394 (substitute* "setup.py"
4395 ((".*__builtins__.__NUMPY_SETUP.*") ""))))
4396 (add-after 'unpack 'fix-references
4397 (lambda _
4398 (substitute* '("pairtools/cli/header.py"
4399 "pairtools/cli/merge.py"
4400 "pairtools/cli/sort.py")
4401 (("/bin/bash") (which "bash")))))
4402 (replace 'check
4403 (lambda* (#:key tests? #:allow-other-keys)
4404 (when tests?
4405 (with-directory-excursion "/tmp"
4406 (invoke "pytest" "-v"))))))))
4407 (native-inputs
4408 (list python-cython python-pytest python-setuptools))
4409 (propagated-inputs
4410 (list htslib ; for bgzip, looked up in PATH
4411 samtools ; looked up in PATH
4412 lz4 ; for lz4c
4413 python-bioframe
4414 python-click
4415 python-numpy
4416 python-pandas
4417 python-pysam
4418 python-pyyaml
4419 python-scipy))
4420 (home-page "https://github.com/open2c/pairtools")
4421 (synopsis "Process mapped Hi-C data")
4422 (description "Pairtools is a simple and fast command-line framework to
4423process sequencing data from a Hi-C experiment. Process pair-end sequence
4424alignments and perform the following operations:
4425
4426@itemize
4427@item detect ligation junctions (a.k.a. Hi-C pairs) in aligned paired-end
4428 sequences of Hi-C DNA molecules
4429@item sort @code{.pairs} files for downstream analyses
4430@item detect, tag and remove PCR/optical duplicates
4431@item generate extensive statistics of Hi-C datasets
4432@item select Hi-C pairs given flexibly defined criteria
4433@item restore @code{.sam} alignments from Hi-C pairs.
4434@end itemize
4435")
4436 (license license:expat)))
4437
4438(define-public python-readpaf
4439 (package
4440 (name "python-readpaf")
4441 (version "0.0.10")
4442 (source (origin
4443 (method url-fetch)
4444 (uri (pypi-uri "readpaf" version))
4445 (sha256
4446 (base32
4447 "15m6ffks4zwpp1ycwk6n02py6mw2yh7qr0vhpc178b91gldr97ia"))))
4448 (build-system pyproject-build-system)
4449 (arguments (list #:tests? #false)) ;there are none
4450 (propagated-inputs (list python-pandas))
4451 (native-inputs (list python-setuptools))
4452 (home-page "https://github.com/alexomics/read-paf")
4453 (synopsis "Minimap2 PAF file reader")
4454 (description
4455 "This is a fast parser for minimap2 PAF (Pairwise mApping Format)
4456files.")
4457 (license license:expat)))
4458
4459(define-public python-whatshap
4460 (package
4461 (name "python-whatshap")
4462 (version "2.8")
4463 (source
4464 (origin
4465 (method git-fetch)
4466 (uri (git-reference
4467 (url "https://github.com/whatshap/whatshap")
4468 (commit (string-append "v" version))))
4469 (file-name (git-file-name name version))
4470 (sha256
4471 (base32 "1iw753vvg33x32xvva42wflrksv4iwxqb818chhrlwq1djc7hz10"))))
4472 (build-system pyproject-build-system)
4473 (arguments
4474 (list
4475 #:test-flags
4476 #~(list "--pyargs" "whatshap"
4477 "tests")
4478 #:phases
4479 #~(modify-phases %standard-phases
4480 (add-before 'check 'remove-local-source
4481 (lambda _
4482 (delete-file-recursively "whatshap"))))))
4483 (native-inputs
4484 (list python-cython
4485 python-pytest
4486 python-pysam
4487 python-setuptools
4488 python-setuptools-scm))
4489 (propagated-inputs
4490 (list python-biopython
4491 python-matplotlib
4492 python-networkx
4493 python-pulp
4494 python-pyfaidx
4495 python-scipy
4496 python-xopen))
4497 (home-page "https://whatshap.readthedocs.io/")
4498 (synopsis "Read-based phasing of genomic variants")
4499 (description
4500 "WhatsHap is software for phasing genomic variants using DNA sequencing
4501reads, also called read-based phasing or haplotype assembly. It is especially
4502suitable for long reads, but works also well with short reads.")
4503 (license license:expat)))
4504
4505(define-public bioperl-minimal
4506 (package
4507 (name "bioperl-minimal")
4508 (version "1.7.0")
4509 (source
4510 (origin
4511 (method git-fetch)
4512 (uri (git-reference
4513 (url "https://github.com/bioperl/bioperl-live")
4514 (commit (string-append "release-"
4515 (string-map (lambda (c)
4516 (if (char=? c #\.)
4517 #\- c)) version)))))
4518 (file-name (git-file-name name version))
4519 (sha256
4520 (base32
4521 "0wl8yvzcls59pwwk6m8ahy87pwg6nnibzy5cldbvmcwg2x2w7783"))))
4522 (build-system perl-build-system)
4523 (arguments
4524 (let ((transitive-inputs
4525 (map (compose package-name cadr)
4526 (delete-duplicates
4527 (concatenate
4528 (map (compose package-transitive-target-inputs cadr)
4529 (package-inputs this-package)))))))
4530 `(#:phases
4531 (modify-phases %standard-phases
4532 (add-after 'install 'wrap-programs
4533 (lambda* (#:key outputs #:allow-other-keys)
4534 ;; Make sure all executables in "bin" find the required Perl
4535 ;; modules at runtime. As the PERL5LIB variable contains also
4536 ;; the paths of native inputs, we pick the transitive target
4537 ;; inputs from %build-inputs.
4538 (let* ((out (assoc-ref outputs "out"))
4539 (bin (string-append out "/bin/"))
4540 (path (string-join
4541 (cons (string-append out "/lib/perl5/site_perl")
4542 (map (lambda (name)
4543 (assoc-ref %build-inputs name))
4544 ',transitive-inputs))
4545 ":")))
4546 (for-each (lambda (file)
4547 (wrap-program file
4548 `("PERL5LIB" ":" prefix (,path))))
4549 (find-files bin "\\.pl$")))))))))
4550 (inputs
4551 (list bash-minimal perl-module-build perl-data-stag perl-libwww perl-uri))
4552 (native-inputs
4553 (list perl-test-most))
4554 (home-page "https://metacpan.org/release/BioPerl")
4555 (synopsis "Bioinformatics toolkit")
4556 (description
4557 "BioPerl is the product of a community effort to produce Perl code which
4558is useful in biology. Examples include Sequence objects, Alignment objects
4559and database searching objects. These objects not only do what they are
4560advertised to do in the documentation, but they also interact - Alignment
4561objects are made from the Sequence objects, Sequence objects have access to
4562Annotation and SeqFeature objects and databases, Blast objects can be
4563converted to Alignment objects, and so on. This means that the objects
4564provide a coordinated and extensible framework to do computational biology.")
4565 (license license:perl-license)))
4566
4567(define-public perl-bio-db-hts
4568 (package
4569 (name "perl-bio-db-hts")
4570 (version "3.01")
4571 (source
4572 (origin
4573 (method url-fetch)
4574 (uri (string-append "mirror://cpan/authors/id/A/AV/AVULLO/Bio-DB-HTS-"
4575 version ".tar.gz"))
4576 (sha256
4577 (base32
4578 "0hjg0igfkpvh27zdkdr6pa7cqm9n6r7cwz0np74cl4wmawgvr9hj"))))
4579 (build-system perl-build-system)
4580 (native-inputs
4581 (list perl-module-build pkg-config))
4582 (propagated-inputs
4583 (list bioperl-minimal htslib-1.21))
4584 (home-page "https://metacpan.org/release/Bio-DB-HTS")
4585 (synopsis "Perl interface to HTS library for DNA sequencing")
4586 (description "This is a Perl interface to the HTS library for DNA
4587sequencing.")
4588 (license license:asl2.0)))
4589
4590(define-public python-biopython
4591 (package
4592 (name "python-biopython")
4593 (version "1.87")
4594 (source (origin
4595 (method url-fetch)
4596 ;; use PyPi rather than biopython.org to ease updating
4597 (uri (pypi-uri "biopython" version))
4598 (sha256
4599 (base32
4600 "1gxxr5m98xxhyf2v16znkc42z7w0v5zmlbj22abrlrwv8l1whml4"))))
4601 (build-system pyproject-build-system)
4602 (arguments
4603 (list
4604 ;; tests: 501 passed
4605 #:phases
4606 #~(modify-phases %standard-phases
4607 (add-before 'check 'set-home
4608 ;; Some tests require a home directory to be set.
4609 (lambda _ (setenv "HOME" "/tmp")))
4610 (replace 'check
4611 (lambda* (#:key tests? #:allow-other-keys)
4612 (when tests?
4613 (with-directory-excursion "Tests"
4614 (invoke "python" "run_tests.py" "--offline"))))))))
4615 (native-inputs
4616 (list python-setuptools))
4617 (propagated-inputs
4618 (list python-numpy))
4619 (home-page "https://biopython.org/")
4620 (synopsis "Tools for biological computation in Python")
4621 (description
4622 "Biopython is a set of tools for biological computation including parsers
4623for bioinformatics files into Python data structures; interfaces to common
4624bioinformatics programs; a standard sequence class and tools for performing
4625common operations on them; code to perform data classification; code for
4626dealing with alignments; code making it easy to split up parallelizable tasks
4627into separate processes; and more.")
4628 (license (license:non-copyleft "http://www.biopython.org/DIST/LICENSE"))))
4629
4630(define-public python-biopython-1.73
4631 (package
4632 (inherit python-biopython)
4633 (version "1.73")
4634 (source (origin
4635 (method url-fetch)
4636 ;; use PyPi rather than biopython.org to ease updating
4637 (uri (pypi-uri "biopython" version))
4638 (sha256
4639 (base32
4640 "1q55jhf76z3k6is3psis0ckbki7df26x7dikpcc3vhk1vhkwribh"))))
4641 (arguments
4642 (list
4643 #:phases
4644 #~(modify-phases %standard-phases
4645 (add-after 'unpack 'python3.12-compatibility
4646 (lambda _
4647 ;; This was removed in Python 3.12
4648 (substitute* "Bio/Align/_aligners.c"
4649 (("case PyUnicode_WCHAR_KIND:") ""))
4650 ;; Py_TYPE was changed to an inline static function in Python
4651 ;; 3.11, so it cannot be used on the left-hand side.
4652 (substitute* "Bio/triemodule.c"
4653 (("Py_TYPE\\(&Trie_Type\\) = &PyType_Type;")
4654 "Py_SET_TYPE(&Trie_Type, &PyType_Type);"))
4655
4656 ;; PY_SSIZE_T_CLEAN must be defined if s# notation is used.
4657 ;; Note that this is no longer needed in Python 3.13.
4658 (substitute* '("Bio/triemodule.c" "Bio/motifs/_pwm.c")
4659 (("#include <Python.h>")
4660 "#define PY_SSIZE_T_CLEAN\n#include <Python.h>")
4661 (("int s;") "Py_ssize_t s;"))
4662
4663 ;; The U mode is implicit in Python 3.11.
4664 (substitute* '("Tests/test_KGML_nographics.py"
4665 "Tests/test_PDB.py")
4666 (("'rU'") "'r'"))
4667 (substitute* "Bio/SCOP/Cla.py"
4668 (("\"rU\"") "\"r\""))
4669
4670 ;; ExactPosition class needs to define __str__.
4671 (substitute* "Bio/SeqFeature.py"
4672 (("class UncertainPosition" m)
4673 (string-append "\
4674 # Must define this on Python 3.8 onwards because we redefine __repr__
4675 def __str__(self):
4676 return str(int(self))
4677
4678 def __add__(self, offset):
4679 # By default preserve any subclass
4680 return self.__class__(int(self) + offset)
4681" m)))
4682 ;; This was removed in Python 3.9 already
4683 (substitute* "Bio/KEGG/KGML/KGML_parser.py"
4684 (("self.entry.getchildren\\(\\)")
4685 "list(self.entry)")
4686 (("element.getchildren\\(\\)")
4687 "list(element)"))
4688 (substitute* "Bio/Phylo/NeXMLIO.py"
4689 (("node.getchildren\\(\\)")
4690 "list(node)")
4691 (("edge.getchildren\\(\\)")
4692 "list(edge)"))
4693 (substitute* "Bio/Entrez/Parser.py"
4694 (("child.getiterator\\(\\)")
4695 "list(child.iter())"))
4696 (substitute* "Bio/SeqIO/UniprotIO.py"
4697 (("alt_element.getiterator\\(NS \\+ ('.*')\\)" m something)
4698 (string-append "list(alt_element.iter(NS + " something "))"))
4699 (("link_element.getiterator\\(NS \\+ ('.*')\\)" m something)
4700 (string-append "list(link_element.iter(NS + " something "))"))
4701 (("loc_element.getiterator\\(NS \\+ ('.*')\\)" m something)
4702 (string-append "list(loc_element.iter(NS + " something "))"))
4703 (("element.getiterator\\(NS \\+ ('.*')\\)" m something)
4704 (string-append "list(element.iter(NS + " something "))")))))
4705 (add-after 'unpack 'numpy-compatibility
4706 (lambda _
4707 (substitute* '("Bio/Statistics/lowess.py"
4708 "Tests/test_Cluster.py")
4709 (("numpy.float32") "float")
4710 (("numpy.float") "float"))))
4711 (add-before 'check 'set-home
4712 ;; Some tests require a home directory to be set.
4713 (lambda _ (setenv "HOME" "/tmp")))
4714 (add-before 'check 'build-extensions
4715 (lambda _
4716 ;; Cython extensions have to be built before running the tests.
4717 (invoke "python3" "setup.py" "build_ext" "--inplace")))
4718 (add-after 'unpack 'patch-tests
4719 (lambda _
4720 (substitute* "Tests/run_tests.py"
4721 ;; Do not run doctests.
4722 (("self.tests.append\\(\"doctest\"\\)") "")
4723 (("opt == \"--offline\"") "True")))))))))
4724
4725(define-public python-scanrbp
4726 (package
4727 (name "python-scanrbp")
4728 (version "0.3")
4729 (home-page "https://github.com/grexor/scanrbp")
4730 (source
4731 (origin
4732 (method git-fetch)
4733 (uri (git-reference
4734 (url home-page)
4735 (commit "cdc3587cfdb3bc1c68154ce8538b8c985099eb9f")))
4736 (file-name (git-file-name name version))
4737 (sha256
4738 (base32
4739 "1bv25qhr1dwym2j7llsd3ggnjb9l3h4bchng7bp7cq57s9g0bnjz"))))
4740 (build-system pyproject-build-system)
4741 (arguments
4742 (list
4743 ;; There are no tests in repository. However, running the example from the
4744 ;; README is added as a test below. But that fails, because python-pybio
4745 ;; needs to access the internet.
4746 ;; TODO: Fix python-pybio to not (or optionally) require internet,
4747 ;; and then enable the tests here.
4748 #:tests? #f
4749 #:phases
4750 #~(modify-phases %standard-phases
4751 ;; Normally, importing scanRBP for the first time will first create
4752 ;; configuration file `~/.scanRBP` with a `data_folder` specified as
4753 ;; `~/scanRBP_data/`. Then `data.tar.gz` is downloaded from the github
4754 ;; project and placed into this directory.
4755 ;;
4756 ;; Instead of doing all that, all internet access can be prevented:
4757 ;; - copy the `data.tar.gz` tarball directly to the store,
4758 ;; - refer to that directory in the example configuration file,
4759 ;; - set the configuration file path to that example file.
4760 (add-before 'build 'patchpath
4761 (lambda* (#:key inputs outputs #:allow-other-keys)
4762 (let ((data-dir (string-append (assoc-ref outputs "out")
4763 "/share/scanRBP_data")))
4764 (substitute* "scanRBP/scanRBP.config.example"
4765 (("~/scanRBP_data") data-dir))
4766 (substitute* "scanRBP/config/__init__.py"
4767 (("config_fname = .*")
4768 (string-append
4769 "config_fname = \""
4770 (site-packages inputs outputs)
4771 "/scanRBP/scanRBP.config.example\"\n"))))))
4772 (add-before 'install 'copy-data
4773 (lambda* (#:key outputs #:allow-other-keys)
4774 (let ((data-dir (string-append (assoc-ref outputs "out")
4775 "/share/scanRBP_data"))
4776 (data-file "data/data.tar.gz"))
4777 ;; Copy the tarball. The tarball is unpacked when files are
4778 ;; imported in the [sanity-]check phase.
4779 (mkdir-p data-dir)
4780 (copy-file
4781 data-file
4782 (string-append data-dir "/" (basename data-file))))))
4783 (add-before 'check 'set-HOME
4784 ;; Set the HOME directory to make python-pybio work.
4785 (lambda _ (setenv "HOME" "/tmp")))
4786 (replace 'check
4787 ;; Run example from the README.
4788 ;; The test currently fails (and is therefore disabled), because
4789 ;; python-pybio currently needs to access the internet.
4790 ;; TODO: Verify results?
4791 (lambda* (#:key tests? #:allow-other-keys)
4792 (when tests?
4793 (invoke
4794 "scanRBP"
4795 "AAAGCGGCGACTTATTATATCCCCATATATTATATCTTCTTCTCTTATATATAAACCAGAGATAGATGTGTGTGGTGG"
4796 "example1"
4797 "-heatmap"
4798 "example1")))))))
4799 (propagated-inputs
4800 (list python-biopython
4801 python-matplotlib
4802 python-pybio
4803 python-scipy
4804 python-seaborn))
4805 (native-inputs
4806 (list python-setuptools))
4807 (synopsis "Tool for creating a RNA RBP heatmap in Python")
4808 (description "python-scanrbp is a Python package that provides the scanRBP
4809tool that loads RNA-protein binding motif PWM and computes the log-odds scores
4810for all the loaded RBPs across a given genomic sequence and draws a heatmap of
4811the scores.")
4812 (license license:gpl3)))
4813
4814(define-public python-splicekit
4815 (package
4816 (name "python-splicekit")
4817 (version "0.7")
4818 (home-page "https://github.com/bedapub/splicekit")
4819 (source
4820 (origin
4821 (method git-fetch)
4822 (uri (git-reference
4823 (url home-page)
4824 (commit "ded5dbec16b45e0df44750d9ae021ae2416ff921")))
4825 (file-name (git-file-name name version))
4826 (sha256
4827 (base32 "04l244qagbplksqp81w2s60pkymyhjq389xmqwsyc0n4q6b054h2"))))
4828 (build-system pyproject-build-system)
4829 (arguments
4830 (list
4831 #:tests? #false ;There are no tests.
4832 #:phases
4833 #~(modify-phases %standard-phases
4834 (add-after 'unpack 'adjust-requirements
4835 (lambda _
4836 (substitute* "setup.py"
4837 ;; bs4 is an alternative name for beautifulsoup4, only used to
4838 ;; avoid name squatting on pypi.
4839 (("bs4") "beautifulsoup4"))))
4840 ;; fireducks seems to be a binary-only python-panda replacement
4841 (add-after 'unpack 'remove-fireducks
4842 (lambda _
4843 (substitute* '("Snakefile"
4844 "splicekit/core/delta_dar.py"
4845 "splicekit/core/juan.py"
4846 "splicekit/core/motifs.py"
4847 "splicekit/judge/__init__.py")
4848 (("import fireducks.pandas as pd") "import pandas as pd"))
4849 (substitute* "splicekit.yaml"
4850 ((".*fireducks.*") "")))))))
4851 (native-inputs
4852 (list python-setuptools snakemake))
4853 (propagated-inputs
4854 (list python-beautifulsoup4
4855 python-dateutil
4856 python-levenshtein
4857 python-logomaker
4858 python-numpy
4859 python-pandas
4860 python-plotly
4861 python-psutil
4862 python-pybio
4863 python-pysam
4864 python-rangehttpserver
4865 python-requests
4866 python-scanrbp))
4867 (synopsis "Python toolkit for splicing analysis from short-read RNA-seq")
4868 (description
4869 "Splicekit is a modular platform for splicing analysis from short-read
4870RNA-seq datasets. The platform also integrates pybio for genomic operations
4871and scanRBP for RNA-protein binding studies. The whole analysis is
4872self-contained (one single directory) and the platform is written in Python,
4873in a modular way.")
4874 (license license:gpl3)))
4875
4876(define-public python-presto
4877 (package
4878 (name "python-presto")
4879 (version "0.7.6")
4880 (source
4881 (origin
4882 (method git-fetch)
4883 (uri (git-reference
4884 (url "https://github.com/immcantation/presto")
4885 (commit version)))
4886 (file-name (git-file-name name version))
4887 (sha256
4888 (base32 "1mcngwrxiw8r1j26r5crf7j0dscvhg3b8g1is3j3vq5jpnyn8jmz"))))
4889 (build-system pyproject-build-system)
4890 (arguments
4891 (list
4892 #:build-backend "setuptools.build_meta"
4893 ;; tests: 29 passed, 6 skipped, 3 deselected, 8 warnings
4894 #:test-flags
4895 ;; FileNotFoundError: [Errno 2] No such file or directory: 'cd-hit-est'
4896 #~(list "--ignore=tests/test_ClusterSets.py"
4897 ;; TypeError: seq argument should be a Seq or MutableSeq object
4898 #$@(map (lambda (test) (string-append "--deselect="
4899 "tests/"
4900 "test_EstimateError.py::"
4901 "TestEstimateError::"
4902 test))
4903 (list "test_calculateDistances"
4904 "test_countMismatches"
4905 "test_initializeMismatchDictionary")))))
4906 (native-inputs
4907 (list python-pytest
4908 python-setuptools))
4909 (propagated-inputs
4910 (list muscle
4911 python-biopython
4912 python-numpy
4913 python-pandas
4914 python-pyyaml
4915 python-scipy
4916 vsearch))
4917 (home-page "https://github.com/immcantation/presto")
4918 (synopsis "The REpertoire Sequencing TOolkit")
4919 (description "Presto is a python toolkit for processing raw reads from
4920high-throughput sequencing of B cell and T cell repertoires.")
4921 (license license:agpl3)))
4922
4923(define-public python-changeo
4924 (package
4925 (name "python-changeo")
4926 (version "1.3.4")
4927 (source
4928 (origin
4929 (method url-fetch)
4930 (uri (pypi-uri "changeo" version))
4931 (sha256
4932 (base32 "0jm4chddpl929a8daicp9mv14nwzf2hajpjfhzckg6x8cpgc1087"))))
4933 (build-system pyproject-build-system)
4934 (arguments
4935 (list
4936 #:build-backend "setuptools.build_meta"))
4937 (native-inputs
4938 (list python-pytest
4939 python-setuptools))
4940 (propagated-inputs
4941 (list python-airr
4942 python-biopython
4943 python-importlib-resources
4944 python-numpy
4945 python-packaging
4946 python-pandas
4947 python-presto
4948 python-pyyaml
4949 python-scipy))
4950 (home-page "http://changeo.readthedocs.io")
4951 (synopsis "Repertoire clonal assignment toolkit")
4952 (description "Change-O is a collection of tools for processing the output
4953of V(D)J alignment tools, assigning clonal clusters to immunoglobulin (Ig)
4954sequences, and reconstructing germline sequences.")
4955 (license license:gpl3)))
4956
4957(define-public python-fastalite
4958 (package
4959 (name "python-fastalite")
4960 (version "0.4.1")
4961 (source
4962 (origin
4963 (method git-fetch)
4964 (uri (git-reference
4965 (url "https://github.com/nhoffman/fastalite")
4966 (commit version)))
4967 (file-name (git-file-name name version))
4968 (sha256
4969 (base32 "19sps1l8k2vp7sj943gccabfkr2h3fn1n93sn28h9gay2ywc41ly"))))
4970 (build-system pyproject-build-system)
4971 (arguments
4972 (list
4973 #:test-backend #~'unittest
4974 #:phases
4975 #~(modify-phases %standard-phases
4976 (add-after 'unpack 'set-version
4977 (lambda _
4978 ;; This version file is expected to be created with git describe.
4979 (mkdir-p "fastalite/data")
4980 (with-output-to-file "fastalite/data/ver"
4981 (lambda () (display #$version))))))))
4982 (native-inputs
4983 (list python-setuptools))
4984 (home-page "https://github.com/nhoffman/fastalite")
4985 (synopsis "Simplest possible FASTA parser")
4986 (description "This library implements a FASTA and a FASTQ parser without
4987relying on a complex dependency tree.")
4988 (license license:expat)))
4989
4990(define-public biosoup
4991 (package
4992 (name "biosoup")
4993 (version "0.11.0")
4994 (source
4995 (origin
4996 (method git-fetch)
4997 (uri (git-reference
4998 (url "https://github.com/rvaser/biosoup")
4999 (commit version)))
5000 (file-name (git-file-name name version))
5001 (sha256
5002 (base32
5003 "0vn1hj3h152iwahnrzghqll34qaphchi07klb3j70vgc248micbz"))))
5004 (build-system cmake-build-system)
5005 (arguments
5006 (list
5007 #:phases
5008 #~(modify-phases %standard-phases
5009 (add-after 'unpack 'enable-testing
5010 (lambda _
5011 (substitute* "CMakeLists.txt"
5012 (("target_link_libraries\\(biosoup_test")
5013 "enable_testing()
5014 add_test(NAME biosoup-test COMMAND biosoup_test)
5015 target_link_libraries(biosoup_test")))))))
5016 (native-inputs
5017 (list googletest))
5018 (home-page "https://github.com/rvaser/biosoup")
5019 (synopsis "C++ support library for bioinformatics tools")
5020 (description "Biosoup is a C++ collection of header-only data structures
5021used for storage and logging in bioinformatics tools.")
5022 (license license:expat)))
5023
5024(define-public bioparser
5025 (package
5026 (name "bioparser")
5027 (version "3.1.0")
5028 (source
5029 (origin
5030 (method git-fetch)
5031 (uri (git-reference
5032 (url "https://github.com/rvaser/bioparser")
5033 (commit version)))
5034 (file-name (git-file-name name version))
5035 (sha256
5036 (base32
5037 "057zb3g8qyvbkbfzgkygrf0iphz3v4icm13pchxzrafiy7zkbmrq"))))
5038 (build-system cmake-build-system)
5039 (arguments
5040 (list
5041 #:phases
5042 #~(modify-phases %standard-phases
5043 (add-after 'unpack 'enable-testing
5044 (lambda _
5045 (substitute* "CMakeLists.txt"
5046 (("target_link_libraries\\(bioparser_test")
5047 "enable_testing()
5048 add_test(NAME bioparser-test COMMAND bioparser_test)
5049 target_link_libraries(bioparser_test")))))))
5050 (inputs
5051 (list biosoup))
5052 (propagated-inputs
5053 (list zlib))
5054 (native-inputs
5055 (list googletest))
5056 (home-page "https://github.com/rvaser/bioparser")
5057 (synopsis "C++ library for parsing several formats in bioinformatics")
5058 (description "Bioparser is a C++ header only parsing library for several
5059bioinformatics formats (FASTA/Q, MHAP/PAF/SAM), with support for zlib
5060compressed files.")
5061 (license license:expat)))
5062
5063(define-public python-circe
5064 (package
5065 (name "python-circe")
5066 (version "0.4.0")
5067 (source
5068 (origin
5069 (method git-fetch)
5070 (uri (git-reference
5071 (url "https://github.com/cantinilab/circe")
5072 (commit (string-append "v" version))))
5073 (file-name (git-file-name name version))
5074 (sha256
5075 (base32 "0im5h9a759v1mh8a9mz12bn7r1qb9dyds1qcr3q04w71y1jwl1rz"))))
5076 (build-system pyproject-build-system)
5077 (arguments
5078 (list
5079 ;; tests: 19 passed, 1 deselected, 3 warnings
5080 #:test-flags
5081 ;; Network access is required to reach data from <www.ensembl.org>.
5082 #~(list "--deselect=tests/test_network/test_network.py::test_network_atac")
5083 #:phases
5084 #~(modify-phases %standard-phases
5085 (add-after 'unpack 'relax-requirements
5086 (lambda _
5087 (substitute* "pyproject.toml"
5088 (("'cmake',") ""))))
5089 ;; Numba needs a writable dir to cache functions.
5090 (add-before 'build 'set-numba-cache-dir
5091 (lambda _ (setenv "NUMBA_CACHE_DIR" "/tmp"))))))
5092 (native-inputs
5093 (list python-cython
5094 python-pybiomart
5095 python-pytest
5096 python-setuptools))
5097 (inputs
5098 (list lapack
5099 openblas))
5100 (propagated-inputs
5101 (list python-anndata
5102 python-attrs
5103 python-dask
5104 python-distributed
5105 python-joblib
5106 python-numpy
5107 python-pandas
5108 python-rich
5109 python-scanpy
5110 python-scikit-learn
5111 ;; [optinal]
5112 python-pybiomart))
5113 (home-page "https://github.com/cantinilab/circe")
5114 (synopsis "Cis-regulatory interactions between chromatin regions")
5115 (description "Circe is a Python package for inferring co-accessibility
5116networks from single-cell ATAC-seq data, using skggm for the graphical lasso
5117and python-scanpy for data processing.")
5118 (license license:gpl3)))
5119
5120(define-public qtltools
5121 (package
5122 (name "qtltools")
5123 (version "1.3.1")
5124 (source (origin
5125 (method url-fetch/tarbomb)
5126 (uri (string-append "https://qtltools.github.io/qtltools/"
5127 "binaries/QTLtools_" version
5128 "_source.tar.gz"))
5129 (sha256
5130 (base32
5131 "13gdry5l43abn3464fmk8qzrxgxnxah2612r66p9dzhhl92j30cd"))))
5132 (build-system gnu-build-system)
5133 (arguments
5134 `(#:tests? #f ; no tests included
5135 #:make-flags
5136 ,#~(list (string-append "BOOST_INC="
5137 #$(this-package-input "boost") "/include")
5138 (string-append "BOOST_LIB="
5139 #$(this-package-input "boost") "/lib")
5140 (string-append "HTSLD_INC="
5141 #$(this-package-input "htslib") "/include")
5142 (string-append "HTSLD_LIB="
5143 #$(this-package-input "htslib") "/lib")
5144 (string-append "RMATH_INC="
5145 #$(this-package-input "rmath-standalone")
5146 "/include")
5147 (string-append "RMATH_LIB="
5148 #$(this-package-input "rmath-standalone")
5149 "/lib"))
5150 #:phases
5151 (modify-phases %standard-phases
5152 (add-after 'unpack 'fix-linkage
5153 (lambda _
5154 (substitute* "qtltools/Makefile"
5155 (("libboost_iostreams.a")
5156 "libboost_iostreams.so")
5157 (("libboost_program_options.a")
5158 "libboost_program_options.so")
5159 (("-lblas") "-lopenblas"))))
5160 (add-before 'build 'chdir
5161 (lambda _ (chdir "qtltools")))
5162 (replace 'configure
5163 (lambda _
5164 (substitute* "qtltools/Makefile"
5165 (("LIB_FLAGS=-lz")
5166 "LIB_FLAGS=-lz -lcrypto -lssl")
5167 (("LIB_FILES=\\$\\(RMATH_LIB\\)/libRmath.a \
5168\\$\\(HTSLD_LIB\\)/libhts.a \
5169\\$\\(BOOST_LIB\\)/libboost_iostreams.a \
5170\\$\\(BOOST_LIB\\)/libboost_program_options.a")
5171 "LIB_FILES=$(RMATH_LIB)/libRmath.so \
5172$(HTSLD_LIB)/libhts.so \
5173$(BOOST_LIB)/libboost_iostreams.so \
5174$(BOOST_LIB)/libboost_program_options.so"))))
5175 (replace 'install
5176 (lambda* (#:key outputs #:allow-other-keys)
5177 (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
5178 (mkdir-p bin)
5179 (install-file "bin/QTLtools" bin)))))))
5180 (inputs
5181 (list curl
5182 gsl
5183 boost
5184 rmath-standalone
5185 htslib-1.3
5186 openssl
5187 openblas
5188 zlib))
5189 (home-page "https://qtltools.github.io/qtltools/")
5190 (synopsis "Tool set for molecular QTL discovery and analysis")
5191 (description "QTLtools is a tool set for molecular QTL discovery
5192and analysis. It allows going from the raw genetic sequence data to
5193collection of molecular @dfn{Quantitative Trait Loci} (QTLs) in few
5194easy-to-perform steps.")
5195 (license license:gpl3+)))
5196
5197(define-public bpp-core
5198 (package
5199 (name "bpp-core")
5200 (version "2.4.1")
5201 (source
5202 (origin
5203 (method git-fetch)
5204 (uri (git-reference
5205 (url "https://github.com/BioPP/bpp-core")
5206 (commit (string-append "v" version))))
5207 (file-name (git-file-name name version))
5208 (sha256
5209 (base32 "0ma2cl677l7s0n5sffh66cy9lxp5wycm50f121g8rx85p95vkgwv"))))
5210 (build-system cmake-build-system)
5211 (arguments
5212 (list #:phases
5213 #~(modify-phases %standard-phases
5214 (add-after 'unpack 'add-missing-header
5215 (lambda _
5216 (substitute* "src/Bpp/Graph/GlobalGraph.cpp"
5217 (("include <vector>" all)
5218 (string-append all "\n#include <limits>"))))))))
5219 (home-page "https://pbil.univ-lyon1.fr/bpp-doc/bpp-core/html/index.html")
5220 (synopsis "C++ libraries for Bioinformatics")
5221 (description
5222 "Bio++ is a set of C++ libraries for Bioinformatics, including sequence
5223analysis, phylogenetics, molecular evolution and population genetics. It is
5224Object Oriented and is designed to be both easy to use and computer efficient.
5225Bio++ intends to help programmers to write computer expensive programs, by
5226providing them a set of re-usable tools.")
5227 (license license:cecill-c)))
5228
5229(define-public bpp-phyl
5230 (package
5231 (name "bpp-phyl")
5232 (version "2.4.1")
5233 (source (origin
5234 (method git-fetch)
5235 (uri (git-reference
5236 (url "https://github.com/BioPP/bpp-phyl")
5237 (commit (string-append "v" version))))
5238 (file-name (git-file-name name version))
5239 (sha256
5240 (base32
5241 "192zks6wyk903n06c2lbsscdhkjnfwms8p7jblsmk3lvjhdipb20"))))
5242 (build-system cmake-build-system)
5243 (inputs
5244 (list bpp-core bpp-seq))
5245 (home-page "https://pbil.univ-lyon1.fr/bpp-doc/bpp-phyl/html/")
5246 (synopsis "Bio++ phylogenetic library")
5247 (description
5248 "Bio++ is a set of C++ libraries for Bioinformatics, including sequence
5249analysis, phylogenetics, molecular evolution and population genetics. This
5250library provides phylogenetics-related modules.")
5251 (license license:cecill-c)))
5252
5253(define-public bpp-phyl-omics
5254 (package
5255 (name "bpp-phyl-omics")
5256 (version "2.4.1")
5257 (source
5258 (origin
5259 (method git-fetch)
5260 (uri (git-reference
5261 (url "https://github.com/BioPP/bpp-phyl-omics")
5262 (commit (string-append "v" version))))
5263 (file-name (git-file-name name version))
5264 (sha256
5265 (base32 "172psb8njkjwg3cd6gdy5w0mq8f0817v635yw4bk7146aggjzl1h"))))
5266 (build-system cmake-build-system)
5267 (arguments
5268 (list #:tests? #f)) ; No test provided.
5269 (inputs
5270 (list bpp-core
5271 bpp-phyl
5272 bpp-seq
5273 bpp-seq-omics))
5274 (home-page "https://github.com/BioPP/bpp-phyl-omics")
5275 (synopsis "Bio++ phylogenetic library genomics components")
5276 (description
5277 "This library contains the genomics components of the Bio++ phylogenetics
5278library. It is part of the Bio++ project.")
5279 (license license:cecill)))
5280
5281(define-public bpp-popgen
5282 (package
5283 (name "bpp-popgen")
5284 (version "2.4.1")
5285 (source (origin
5286 (method git-fetch)
5287 (uri (git-reference
5288 (url "https://github.com/BioPP/bpp-popgen")
5289 (commit (string-append "v" version))))
5290 (file-name (git-file-name name version))
5291 (sha256
5292 (base32
5293 "0bz0fhrq3dri6a0hvfc3zlvrns8mrzzlnicw5pyfa812gc1qwfvh"))))
5294 (build-system cmake-build-system)
5295 (arguments
5296 (list #:tests? #f)) ; There are no tests.
5297 (inputs
5298 (list bpp-core bpp-seq))
5299 (home-page "https://pbil.univ-lyon1.fr/bpp-doc/bpp-popgen/html/")
5300 (synopsis "Bio++ population genetics library")
5301 (description
5302 "Bio++ is a set of C++ libraries for Bioinformatics, including sequence
5303analysis, phylogenetics, molecular evolution and population genetics. This
5304library provides population genetics-related modules.")
5305 (license license:cecill-c)))
5306
5307(define-public bpp-seq
5308 (package
5309 (name "bpp-seq")
5310 (version "2.4.1")
5311 (source (origin
5312 (method git-fetch)
5313 (uri (git-reference
5314 (url "https://github.com/BioPP/bpp-seq")
5315 (commit (string-append "v" version))))
5316 (file-name (git-file-name name version))
5317 (sha256
5318 (base32 "1mc09g8jswzsa4wgrfv59jxn15ys3q8s0227p1j838wkphlwn2qk"))))
5319 (build-system cmake-build-system)
5320 (inputs
5321 (list bpp-core))
5322 (home-page "https://pbil.univ-lyon1.fr/bpp-doc/bpp-seq/html/")
5323 (synopsis "Bio++ sequence library")
5324 (description
5325 "Bio++ is a set of C++ libraries for Bioinformatics, including sequence
5326analysis, phylogenetics, molecular evolution and population genetics. This
5327library provides sequence-related modules.")
5328 (license license:cecill-c)))
5329
5330(define-public bpp-seq-omics
5331 (package
5332 (name "bpp-seq-omics")
5333 (version "2.4.1")
5334 (source (origin
5335 (method git-fetch)
5336 (uri (git-reference
5337 (url "https://github.com/BioPP/bpp-seq-omics")
5338 (commit (string-append "v" version))))
5339 (file-name (git-file-name name version))
5340 (sha256
5341 (base32 "1sc2xdfnfp5a6qihplp49rgrqmj89898avfy9bqaq1g2fajppgjj"))))
5342 (build-system cmake-build-system)
5343 (inputs
5344 (list bpp-core bpp-seq))
5345 (home-page "https://github.com/BioPP/bpp-seq-omics")
5346 (synopsis "Bio++ sequence library genomics components")
5347 (description
5348 "This library contains the genomics components of the Bio++ sequence library.
5349It is part of the Bio++ project.")
5350 (license license:cecill)))
5351
5352(define-public bppsuite
5353 (package
5354 (name "bppsuite")
5355 (version "2.4.1")
5356 (source (origin
5357 (method git-fetch)
5358 (uri (git-reference
5359 (url "https://github.com/BioPP/bppsuite")
5360 (commit (string-append "v" version))))
5361 (file-name (git-file-name name version))
5362 (sha256
5363 (base32
5364 "1wdwcgczqbc3m116vakvi0129wm3acln3cfc7ivqnalwvi6lrpds"))))
5365 (build-system cmake-build-system)
5366 (arguments
5367 (list #:tests? #f)) ; There are no tests.
5368 (native-inputs
5369 (list groff man-db texinfo))
5370 (inputs
5371 (list bpp-core bpp-seq bpp-phyl bpp-popgen))
5372 (home-page "https://github.com/BioPP")
5373 (synopsis "Bioinformatics tools written with the Bio++ libraries")
5374 (description
5375 "Bio++ is a set of C++ libraries for Bioinformatics, including sequence
5376analysis, phylogenetics, molecular evolution and population genetics. This
5377package provides command line tools using the Bio++ library.")
5378 (license license:cecill-c)))
5379
5380(define-public blast+
5381 (package
5382 (name "blast+")
5383 (version "2.17.0")
5384 (source (origin
5385 (method url-fetch)
5386 (uri (string-append
5387 "https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/"
5388 version "/ncbi-blast-" version "+-src.tar.gz"))
5389 (sha256
5390 (base32
5391 "0ix1bqgaywi3ggis4qvaipb0mk3llhgf52vmc97f744risl5f82h"))
5392 (modules '((guix build utils)))
5393 (snippet
5394 '(begin
5395 ;; Remove bundled bzip2, zlib and pcre.
5396 (delete-file-recursively "c++/src/util/compress/bzip2")
5397 (delete-file-recursively "c++/src/util/compress/zlib")
5398 (delete-file-recursively "c++/src/util/regexp")
5399 (substitute* "c++/src/util/compress/Makefile.in"
5400 (("bzip2 zlib api") "api"))
5401 ;; Remove useless msbuild directory
5402 (delete-file-recursively
5403 "c++/src/build-system/project_tree_builder/msbuild")
5404
5405 ;; Build reproducibly.
5406 ;; Do not record the kernel version
5407 (substitute* "c++/src/build-system/configure"
5408 (("kver=.*") "kver=\"\""))
5409 ;; Do not generate random numbers.
5410 (substitute* "c++/scripts/common/impl/define_random_macros.sh"
5411 (("#define NCBI_RANDOM_VALUE_MAX 0xffffffffu" m)
5412 (string-append m "
5413#define NCBI_RANDOM_VALUE_0 2845495105u
5414#define NCBI_RANDOM_VALUE_1 2158634051u
5415#define NCBI_RANDOM_VALUE_2 4072202242u
5416#define NCBI_RANDOM_VALUE_3 902228395u
5417#define NCBI_RANDOM_VALUE_4 1353323915u
5418#define NCBI_RANDOM_VALUE_5 574823513u
5419#define NCBI_RANDOM_VALUE_6 4119501261u
5420#define NCBI_RANDOM_VALUE_7 2477640938u
5421#define NCBI_RANDOM_VALUE_8 2776595395u
5422#define NCBI_RANDOM_VALUE_9 270550684u
5423"))
5424 (("cksum") "cksum >/dev/null"))))))
5425 (build-system gnu-build-system)
5426 (arguments
5427 (list
5428 ;; There are two(!) tests for this massive library, and both fail with
5429 ;; "unparsable timing stats".
5430 ;; ERR [127] -- [serial/datatool] datatool.sh (unparsable timing stats)
5431 ;; ERR [127] -- [serial/datatool] datatool_xml.sh (unparsable timing stats)
5432 #:tests? #f
5433 #:out-of-source? #t
5434 #:parallel-build? #f ;not supported
5435 #:phases
5436 #~(modify-phases %standard-phases
5437 (add-before 'configure 'set-HOME
5438 ;; $HOME needs to be set at some point during the configure phase
5439 (lambda _ (setenv "HOME" "/tmp")))
5440 (add-after 'unpack 'enter-dir
5441 (lambda _ (chdir "c++")))
5442 (add-after 'enter-dir 'fix-build-system
5443 (lambda _
5444 (define (which* cmd)
5445 (cond ((string=? cmd "date")
5446 ;; make call to "date" deterministic
5447 "date -d @0")
5448 ((which cmd)
5449 => identity)
5450 (else
5451 (format (current-error-port)
5452 "WARNING: Unable to find absolute path for ~s~%"
5453 cmd)
5454 #false)))
5455
5456 ;; Rewrite hardcoded paths to various tools
5457 (substitute* (append '("src/build-system/configure.ac"
5458 "src/build-system/configure"
5459 "src/build-system/helpers/run_with_lock.c"
5460 "scripts/common/impl/if_diff.sh"
5461 "scripts/common/impl/run_with_lock.sh"
5462 "src/build-system/Makefile.configurables.real"
5463 "src/build-system/Makefile.in.top"
5464 "src/build-system/Makefile.meta.gmake=no"
5465 "src/build-system/Makefile.meta.in"
5466 "src/build-system/Makefile.meta_l"
5467 "src/build-system/Makefile.meta_p"
5468 "src/build-system/Makefile.meta_r"
5469 "src/build-system/Makefile.mk.in"
5470 "src/build-system/Makefile.requirements"
5471 "src/build-system/Makefile.rules_with_autodep.in")
5472 (find-files "scripts/common/check" "\\.sh$"))
5473 (("(/usr/bin/|/bin/)([a-z][-_.a-z]*(\\+\\+)?)" all dir cmd)
5474 (or (which* cmd) all)))
5475
5476 (substitute* (find-files "src/build-system" "^config.*")
5477 (("LN_S=/bin/\\$LN_S") (string-append "LN_S=" (which "ln")))
5478 (("^PATH=.*") ""))
5479
5480 ;; rewrite "/var/tmp" in check script
5481 (substitute* "scripts/common/check/check_make_unix.sh"
5482 (("/var/tmp") "/tmp"))
5483
5484 ;; do not reset PATH
5485 (substitute* (find-files "scripts/common/impl/" "\\.sh$")
5486 (("^ *PATH=.*") "")
5487 (("action=/bin/") "action=")
5488 (("export PATH") ":"))))
5489 (replace 'configure
5490 (lambda _
5491 (let ((lib (string-append #$output:lib "/lib"))
5492 (include (string-append #$output:include
5493 "/include/ncbi-tools++")))
5494 ;; The 'configure' script doesn't recognize things like
5495 ;; '--enable-fast-install'.
5496 (invoke "./configure.orig"
5497 (string-append "--with-build-root=" (getcwd) "/build")
5498 (string-append "--prefix=" #$output)
5499 (string-append "--libdir=" lib)
5500 (string-append "--includedir=" include)
5501 (string-append "--with-bz2="
5502 #$(this-package-input "bzip2"))
5503 (string-append "--with-z="
5504 #$(this-package-input "zlib"))
5505 (string-append "--with-pcre="
5506 #$(this-package-input "pcre"))
5507 ;; Each library is built twice by default, once
5508 ;; with "-static" in its name, and again
5509 ;; without.
5510 "--without-static"
5511 "--with-dll")))))))
5512 (outputs '("out" ; 21 MB
5513 "lib" ; 226 MB
5514 "include")) ; 33 MB
5515 (inputs
5516 (list bzip2
5517 lmdb
5518 zlib
5519 pcre
5520 perl
5521 python-wrapper
5522 sqlite))
5523 (native-inputs
5524 (list cpio))
5525 (home-page "https://blast.ncbi.nlm.nih.gov")
5526 (synopsis "Basic local alignment search tool")
5527 (description
5528 "BLAST is a popular method of performing a DNA or protein sequence
5529similarity search, using heuristics to produce results quickly. It also
5530calculates an “expect value” that estimates how many matches would have
5531occurred at a given score by chance, which can aid a user in judging how much
5532confidence to have in an alignment.")
5533 ;; Most of the sources are in the public domain, with the following
5534 ;; exceptions:
5535 ;; * Expat:
5536 ;; * ./c++/include/util/bitset/
5537 ;; * ./c++/src/html/ncbi_menu*.js
5538 ;; * Boost license:
5539 ;; * ./c++/include/util/impl/floating_point_comparison.hpp
5540 ;; * LGPL 2+:
5541 ;; * ./c++/include/dbapi/driver/odbc/unix_odbc/
5542 ;; * ASL 2.0:
5543 ;; * ./c++/src/corelib/teamcity_*
5544 (license (list license:public-domain
5545 license:expat
5546 license:boost1.0
5547 license:lgpl2.0+
5548 license:asl2.0))))
5549
5550(define-public bless
5551 (package
5552 (name "bless")
5553 (version "1p02")
5554 (source (origin
5555 (method url-fetch)
5556 (uri (string-append "mirror://sourceforge/bless-ec/bless.v"
5557 version ".tgz"))
5558 (sha256
5559 (base32
5560 "0rm0gw2s18dqwzzpl3c2x1z05ni2v0xz5dmfk3d33j6g4cgrlrdd"))
5561 (modules '((guix build utils)))
5562 (snippet
5563 `(begin
5564 ;; Remove bundled boost, pigz, zlib, and .git directory
5565 ;; FIXME: also remove bundled sources for murmurhash3 and
5566 ;; kmc once packaged.
5567 (delete-file-recursively "boost")
5568 (delete-file-recursively "pigz")
5569 (delete-file-recursively "google-sparsehash")
5570 (delete-file-recursively "zlib")
5571 (delete-file-recursively ".git")))))
5572 (build-system gnu-build-system)
5573 (arguments
5574 `(#:tests? #f ;no "check" target
5575 #:make-flags
5576 ,#~(list (string-append "ZLIB="
5577 #$(this-package-input "zlib")
5578 "/lib/libz.so")
5579 (string-append "LDFLAGS="
5580 (string-join '("-lboost_filesystem"
5581 "-lboost_system"
5582 "-lboost_iostreams"
5583 "-lz"
5584 "-fopenmp"))))
5585 #:phases
5586 (modify-phases %standard-phases
5587 (add-after 'unpack 'do-not-build-bundled-pigz
5588 (lambda* (#:key inputs outputs #:allow-other-keys)
5589 (substitute* "Makefile"
5590 (("cd pigz/pigz-2.3.3; make") ""))))
5591 (add-after 'unpack 'patch-paths-to-executables
5592 (lambda* (#:key inputs outputs #:allow-other-keys)
5593 (substitute* "parse_args.cpp"
5594 (("kmc_binary = .*")
5595 (string-append "kmc_binary = \""
5596 (assoc-ref outputs "out")
5597 "/bin/kmc\";"))
5598 (("pigz_binary = .*")
5599 (string-append "pigz_binary = \""
5600 (assoc-ref inputs "pigz")
5601 "/bin/pigz\";")))))
5602 (replace 'install
5603 (lambda* (#:key outputs #:allow-other-keys)
5604 (let ((bin (string-append (assoc-ref outputs "out") "/bin/")))
5605 (for-each (lambda (file)
5606 (install-file file bin))
5607 '("bless" "kmc/bin/kmc")))))
5608 (delete 'configure))))
5609 (native-inputs
5610 (list perl))
5611 (inputs
5612 (list openmpi boost-1.83 sparsehash pigz zlib))
5613 (supported-systems '("x86_64-linux"))
5614 (home-page "https://sourceforge.net/p/bless-ec/wiki/Home/")
5615 (synopsis "Bloom-filter-based error correction tool for NGS reads")
5616 (description
5617 "@dfn{Bloom-filter-based error correction solution for high-throughput
5618sequencing reads} (BLESS) uses a single minimum-sized bloom filter is a
5619correction tool for genomic reads produced by @dfn{Next-generation
5620sequencing} (NGS). BLESS produces accurate correction results with much less
5621memory compared with previous solutions and is also able to tolerate a higher
5622false-positive rate. BLESS can extend reads like DNA assemblers to correct
5623errors at the end of reads.")
5624 (license license:gpl3+)))
5625
5626(define-public bowtie
5627 (package
5628 (name "bowtie")
5629 (version "2.5.4")
5630 (source (origin
5631 (method git-fetch)
5632 (uri (git-reference
5633 (url "https://github.com/BenLangmead/bowtie2")
5634 (commit (string-append "v" version))))
5635 (file-name (git-file-name name version))
5636 (sha256
5637 (base32
5638 "020dwg059zmgqcfnxgg67qmn8rf207mwrybly39ncch1riva58z5"))
5639 (snippet
5640 #~(begin
5641 (use-modules (guix build utils))
5642 (substitute* "Makefile"
5643 ;; replace BUILD_HOST and BUILD_TIME for deterministic build
5644 (("-DBUILD_HOST=.*") "-DBUILD_HOST=\"\\\"guix\\\"\"")
5645 (("-DBUILD_TIME=.*") "-DBUILD_TIME=\"\\\"0\\\"\""))))))
5646 (build-system gnu-build-system)
5647 (arguments
5648 (list
5649 #:make-flags
5650 #~(list "allall"
5651 "WITH_TBB=1"
5652 (string-append "prefix=" #$output)
5653 (string-append "CC=" #$(cc-for-target)))
5654 #:phases
5655 #~(modify-phases %standard-phases
5656 (add-after 'unpack 'fix-prefix
5657 (lambda _
5658 (substitute* "Makefile"
5659 (("/usr/local") #$output))))
5660 (replace 'configure
5661 (lambda _
5662 ;; This "extended character" is not considered valid.
5663 (substitute* "processor_support.h"
5664 (("“") "\"")
5665 (("”") "\""))))
5666 (replace 'check
5667 (lambda* (#:key tests? #:allow-other-keys)
5668 (when tests?
5669 (invoke "perl"
5670 "scripts/test/simple_tests.pl"
5671 "--bowtie2=./bowtie2"
5672 "--bowtie2-build=./bowtie2-build")))))))
5673 (inputs
5674 (list onetbb zlib))
5675 (native-inputs
5676 (list perl
5677 perl-clone
5678 perl-file-which
5679 perl-test-deep
5680 perl-test-simple
5681 python-wrapper
5682 which))
5683 (home-page "https://bowtie-bio.sourceforge.net/bowtie2/index.shtml")
5684 (synopsis "Fast and sensitive nucleotide sequence read aligner")
5685 (description
5686 "Bowtie 2 is a fast and memory-efficient tool for aligning sequencing
5687reads to long reference sequences. It is particularly good at aligning reads
5688of about 50 up to 100s or 1,000s of characters, and particularly good at
5689aligning to relatively long (e.g. mammalian) genomes. Bowtie 2 indexes the
5690genome with an FM Index to keep its memory footprint small: for the human
5691genome, its memory footprint is typically around 3.2 GB. Bowtie 2 supports
5692gapped, local, and paired-end alignment modes.")
5693 (supported-systems '("x86_64-linux"))
5694 (license license:gpl3+)))
5695
5696(define-public bwa
5697 (package
5698 (name "bwa")
5699 (version "0.7.19")
5700 (source (origin
5701 (method git-fetch)
5702 (uri (git-reference
5703 (url "https://github.com/lh3/bwa")
5704 (commit (string-append "v" version))))
5705 (file-name (git-file-name name version))
5706 (sha256
5707 (base32
5708 "04hvp3sl64h5wmlkzjawmma3v8h1lb9vbqwkkz8nkxmqzy8vnzx3"))))
5709 (build-system gnu-build-system)
5710 (arguments
5711 (list #:tests? #f ;no "check" target
5712 #:make-flags #~(list "CFLAGS=-fcommon"
5713 (string-append "CC=" #$(cc-for-target)))
5714 #:phases
5715 #~(modify-phases %standard-phases
5716 (replace 'install
5717 (lambda* (#:key outputs #:allow-other-keys)
5718 (let* ((out (assoc-ref outputs "out"))
5719 (bin (string-append out "/bin"))
5720 (lib (string-append out "/lib"))
5721 (doc (string-append out "/share/doc/bwa"))
5722 (man (string-append out "/share/man/man1")))
5723 (install-file "bwa" bin)
5724 (install-file "libbwa.a" lib)
5725 (install-file "README.md" doc)
5726 (install-file "bwa.1" man))))
5727 ;; no "configure" script
5728 (delete 'configure))))
5729 (inputs (list zlib))
5730 (supported-systems '("x86_64-linux" "aarch64-linux"))
5731 (home-page "https://bio-bwa.sourceforge.net/")
5732 (synopsis "Burrows-Wheeler sequence aligner")
5733 (description
5734 "BWA is a software package for mapping low-divergent sequences against a
5735large reference genome, such as the human genome. It consists of three
5736algorithms: BWA-backtrack, BWA-SW and BWA-MEM. The first algorithm is
5737designed for Illumina sequence reads up to 100bp, while the rest two for
5738longer sequences ranged from 70bp to 1Mbp. BWA-MEM and BWA-SW share similar
5739features such as long-read support and split alignment, but BWA-MEM, which is
5740the latest, is generally recommended for high-quality queries as it is faster
5741and more accurate. BWA-MEM also has better performance than BWA-backtrack for
574270-100bp Illumina reads.")
5743 (license license:gpl3+)))
5744
5745(define-public bwa-pssm
5746 (package
5747 (inherit bwa)
5748 (name "bwa-pssm")
5749 (version "0.5.11")
5750 (source (origin
5751 (method git-fetch)
5752 (uri (git-reference
5753 (url "https://github.com/pkerpedjiev/bwa-pssm")
5754 (commit version)))
5755 (file-name (git-file-name name version))
5756 (sha256
5757 (base32
5758 "076c4q0cdqz8jgylb067y9zmvxglppnzi3qiscn0xiypgc6lgb5r"))))
5759 (build-system gnu-build-system)
5760 (arguments
5761 (substitute-keyword-arguments arguments
5762 ((#:phases phases #~%standard-phases)
5763 #~(modify-phases #$phases
5764 (add-after 'unpack 'patch-C-error
5765 (lambda _
5766 (substitute* "pssm.c"
5767 (("inline int map") "int map"))))))))
5768 (inputs
5769 (list gdsl zlib perl))
5770 ;; https://bwa-pssm.binf.ku.dk is down, and all Web Archived copies are
5771 ;; blank (they actually have "display:none" for some nefarious reason).
5772 (home-page "https://github.com/pkerpedjiev/bwa-pssm")
5773 (synopsis "Burrows-Wheeler transform-based probabilistic short read mapper")
5774 (description
5775 "BWA-PSSM is a probabilistic short genomic sequence read aligner based on
5776the use of @dfn{position specific scoring matrices} (PSSM). Like many of the
5777existing aligners it is fast and sensitive. Unlike most other aligners,
5778however, it is also adaptible in the sense that one can direct the alignment
5779based on known biases within the data set. It is coded as a modification of
5780the original BWA alignment program and shares the genome index structure as
5781well as many of the command line options.")
5782 (license license:gpl3+)))
5783
5784(define-public bwa-meth
5785 (package
5786 (name "bwa-meth")
5787 (version "0.2.9")
5788 (source (origin
5789 (method git-fetch)
5790 (uri (git-reference
5791 (url "https://github.com/brentp/bwa-meth")
5792 (commit (string-append "v" version))))
5793 (file-name (git-file-name name version))
5794 (sha256
5795 (base32
5796 "0192h6rdaxa1rx16hgkanwsp3qv9knsmnghy07ya1231qia8h67p"))))
5797 (build-system pyproject-build-system)
5798 (arguments
5799 `(#:tests? #f ;no tests
5800 #:phases
5801 (modify-phases %standard-phases
5802 (add-after 'unpack 'keep-references-to-bwa
5803 (lambda* (#:key inputs #:allow-other-keys)
5804 (substitute* "bwameth.py"
5805 (("bwa (mem|index)" _ command)
5806 (string-append (which "bwa") " " command))
5807 ;; There's an ill-advised check for "samtools" on PATH.
5808 (("^checkX.*") "")))))))
5809 (native-inputs
5810 (list python-setuptools))
5811 (inputs
5812 (list bwa
5813 python-toolshed))
5814 (home-page "https://github.com/brentp/bwa-meth")
5815 (synopsis "Fast and accurante alignment of BS-Seq reads")
5816 (description
5817 "BWA-Meth works for single-end reads and for paired-end reads from the
5818directional protocol (most common). It uses the method employed by
5819methylcoder and Bismark of in silico conversion of all C's to T's in both
5820reference and reads. It recovers the original read (needed to tabulate
5821methylation) by attaching it as a comment which BWA appends as a tag to the
5822read. It performs favorably to existing aligners gauged by number of on and
5823off-target reads for a capture method that targets CpG-rich region.")
5824 (license license:expat)))
5825
5826(define-public python-bx-python
5827 (package
5828 (name "python-bx-python")
5829 (version "0.14.0")
5830 (source (origin
5831 (method git-fetch)
5832 (uri (git-reference
5833 (url "https://github.com/bxlab/bx-python")
5834 (commit (string-append "v" version))))
5835 (file-name (git-file-name name version))
5836 (sha256
5837 (base32
5838 "1031ddndi5anxk76h1irdwa6nwr5sy20p816zn5jz50010zc562r"))))
5839 (build-system pyproject-build-system)
5840 (arguments
5841 (list
5842 #:phases
5843 '(modify-phases %standard-phases
5844 (add-before 'check 'build-extensions
5845 (lambda _
5846 ;; Cython extensions have to be built before running the tests.
5847 (invoke "python" "setup.py" "build_ext" "--inplace")))
5848 ;; Unrecognized argument.
5849 (add-after 'unpack 'disable-cython-doctests
5850 (lambda _ (substitute* "pytest.ini" (("--doctest-cython") "")))))))
5851 (propagated-inputs
5852 (list python-numpy
5853 python-pyparsing))
5854 (inputs
5855 (list zlib))
5856 (native-inputs
5857 (list python-cython python-lzo python-pytest python-setuptools))
5858 (home-page "https://github.com/bxlab/bx-python")
5859 (synopsis "Tools for manipulating biological data")
5860 (description
5861 "bx-python provides tools for manipulating biological data, particularly
5862multiple sequence alignments.")
5863 (license license:expat)))
5864
5865(define-public python-mofax
5866 (let ((commit "e4821fef8b1f9f50afd84a6acb96fcc49445c967")
5867 (revision "1"))
5868 (package
5869 (name "python-mofax")
5870 (version (git-version "0.3.7" revision commit))
5871 (source (origin
5872 (method git-fetch)
5873 (uri (git-reference
5874 (url "https://github.com/bioFAM/mofax")
5875 (commit commit)))
5876 (file-name (git-file-name name version))
5877 (sha256
5878 (base32
5879 "07lkz51n7p7inmmh4bpr6fcr6b6jcjvkfws06zn8kpxfsv5z9kxa"))))
5880 (build-system pyproject-build-system)
5881 (propagated-inputs (list python-h5py
5882 python-matplotlib
5883 python-pandas
5884 python-scipy
5885 python-seaborn))
5886 (native-inputs (list python-poetry-core
5887 python-numpy python-pytest))
5888 (home-page "https://github.com/bioFAM/mofax")
5889 (synopsis
5890 "Motif activity finder for transcription factor motif analysis")
5891 (description
5892 "MoFax is a Python package for transcription factor motif analysis.
5893It provides convenience functions to load and visualize factor models trained
5894with MOFA+ in Python.")
5895 (license license:expat))))
5896
5897(define-public python-mudata
5898 (package
5899 (name "python-mudata")
5900 (version "0.3.10")
5901 (source
5902 (origin
5903 (method git-fetch)
5904 (uri (git-reference
5905 (url "https://github.com/scverse/mudata")
5906 (commit (string-append "v" version))))
5907 (file-name (git-file-name name version))
5908 (sha256
5909 (base32 "1s0vkxmbw6kbyl5pxgr296g9g0wpjggzcxrj5i67lgg1kzxkqb8k"))))
5910 (build-system pyproject-build-system)
5911 (arguments
5912 (list
5913 ;; tests: 484 passed, 1 deselected, 2 xfailed, 1343 warnings
5914 #:test-flags
5915 ;; TypeError: MetaAcc.get() missing 1 required positional argument: 'k'
5916 #~(list "--deselect=tests/test_obs_var.py::test_accessors")))
5917 (native-inputs
5918 (list python-hatch-vcs
5919 python-hatchling
5920 python-pytest))
5921 (propagated-inputs
5922 (list python-anndata
5923 python-h5py
5924 python-numpy
5925 python-pandas
5926 python-scipy
5927 python-scverse-misc
5928 python-session-info2
5929 ;; [optional]
5930 python-fsspec
5931 python-zarr))
5932 (home-page "https://github.com/scverse/mudata")
5933 (synopsis "Python package for multi-omics data analysis")
5934 (description
5935 "Mudata is a Python package for multi-omics data analysis.
5936It is designed to provide functionality to load, process, and store multimodal
5937omics data.")
5938 (license license:bsd-3)))
5939
5940(define-public python-mofapy2
5941 (package
5942 (name "python-mofapy2")
5943 ;; Upstream removed all tags.
5944 (properties '((commit . "45d7e901b7cfe071476ad849a62944de8732f4d9")
5945 (revision . "0")))
5946 (version (git-version "0.7.4"
5947 (assoc-ref properties 'revision)
5948 (assoc-ref properties 'commit)))
5949 (source
5950 (origin
5951 ;; The tarball from PyPi doesn't include tests.
5952 (method git-fetch)
5953 (uri (git-reference
5954 (url "https://github.com/bioFAM/mofapy2")
5955 (commit (assoc-ref properties 'commit))))
5956 (file-name (git-file-name name version))
5957 (sha256
5958 (base32
5959 "1b2m7bphn06n8bgyqz02f08jwjzqw11zl8nf5zm58vs1v5wq8cnd"))))
5960 (build-system pyproject-build-system)
5961 (arguments
5962 (list
5963 #:test-flags
5964 ;; cupy is an optional dependency, which
5965 ;; itself has nonfree dependencies (CUDA)
5966 '(list "--ignore=mofapy2/notebooks/test_cupy.py")))
5967 (propagated-inputs (list python-anndata
5968 python-h5py
5969 python-numpy
5970 python-pandas
5971 python-scikit-learn
5972 python-scipy))
5973 (native-inputs (list python-poetry-core
5974 python-pytest))
5975 (home-page "https://biofam.github.io/MOFA2/")
5976 (synopsis "Multi-omics factor analysis")
5977 (description "MOFA is a factor analysis model that provides a general
5978framework for the integration of multi-omic data sets in an unsupervised
5979fashion. Intuitively, MOFA can be viewed as a versatile and statistically
5980rigorous generalization of principal component analysis to multi-omics data.
5981Given several data matrices with measurements of multiple -omics data types on
5982the same or on overlapping sets of samples, MOFA infers an interpretable
5983low-dimensional representation in terms of a few latent factors. These learnt
5984factors represent the driving sources of variation across data modalities,
5985thus facilitating the identification of cellular states or disease
5986subgroups.")
5987 (license license:lgpl3)))
5988
5989(define-public python-muon
5990 (package
5991 (name "python-muon")
5992 ;; 0.1.7 (2024-10-30); the latest changes provide compatibility with NumPy
5993 ;; 2 and Pandas 3.
5994 (properties '((commit . "05d3bf11f55ccc656e2f10a1466e185b0302aa52")
5995 (revision . "0")))
5996 (version (git-version "0.1.7"
5997 (assoc-ref properties 'revision)
5998 (assoc-ref properties 'commit)))
5999 (source
6000 (origin
6001 (method git-fetch)
6002 (uri (git-reference
6003 (url "https://github.com/scverse/muon")
6004 (commit (assoc-ref properties 'commit))))
6005 (file-name (git-file-name name version))
6006 (sha256
6007 (base32 "14hhz3150m0vg4iwr73b0cxkw45jmn3z94wxs75q64dj5f62ghpw"))))
6008 (build-system pyproject-build-system)
6009 (arguments
6010 (list
6011 ;; tests: 32 passed, 4 deselected, 333 warnings
6012 #:test-flags
6013 #~(list
6014 ;; Failed: assert -1.6939765212353823 == -1.719391 ± 1.7e-06
6015 "--deselect=tests/test_muon_tools.py::TestMOFA2D::test_multi_group"
6016 ;; Network access is required.
6017 (string-append "--deselect=tests/test_muon_preproc.py"
6018 "::TestInPlaceFiltering"
6019 "::test_filter_obs_with_obsm_obsp")
6020 (string-append "--deselect=tests/test_muon_preproc.py"
6021 "::TestInPlaceFiltering"
6022 "::test_filter_var_with_varm_varp"))
6023 #:phases
6024 #~(modify-phases %standard-phases
6025 ;; Numba needs a writable dir to cache functions.
6026 (add-before 'build 'set-numba-cache-dir
6027 (lambda _
6028 (setenv "NUMBA_CACHE_DIR" "/tmp"))))))
6029 (native-inputs
6030 (list nss-certs-for-test
6031 python-flit-core
6032 python-pytest))
6033 (propagated-inputs
6034 (list python-anndata
6035 python-h5py
6036 python-matplotlib
6037 python-mudata
6038 python-numba
6039 python-numpy
6040 python-pandas
6041 python-protobuf
6042 python-scanpy
6043 python-scikit-learn
6044 python-seaborn
6045 python-tqdm
6046 python-umap-learn
6047 ;; [optional]
6048 python-mofapy2
6049 python-pybedtools
6050 python-pysam))
6051 (home-page "https://github.com/scverse/muon")
6052 (synopsis "Multimodal omics analysis framework")
6053 (description "muon is a multimodal omics Python framework.")
6054 (license license:bsd-3)))
6055
6056(define-public python-pysam
6057 (package
6058 (name "python-pysam")
6059 (version "0.23.3")
6060 (source (origin
6061 (method git-fetch)
6062 (uri (git-reference
6063 (url "https://github.com/pysam-developers/pysam")
6064 (commit (string-append "v" version))))
6065 (file-name (git-file-name name version))
6066 (sha256
6067 (base32
6068 "1kb70fp9mnjl4czhwiahb192lwkq1j357b774ddg533ibj3h7gcz"))
6069 (modules '((guix build utils)))
6070 (snippet '(begin
6071 ;; FIXME: Unbundle samtools and bcftools.
6072 (delete-file-recursively "htslib")))))
6073 (build-system pyproject-build-system)
6074 (arguments
6075 (list
6076 #:test-flags
6077 ;; This test requires network access.
6078 '(list "-k" "not FileHTTP" "tests")
6079 #:phases
6080 #~(modify-phases %standard-phases
6081 (add-after 'unpack 'patch-build-system
6082 (lambda _
6083 (substitute* "pyproject.toml"
6084 ((":__legacy__") ""))))
6085 (add-before 'build 'set-flags
6086 (lambda* (#:key inputs #:allow-other-keys)
6087 (setenv "HTSLIB_MODE" "external")
6088 (setenv "HTSLIB_LIBRARY_DIR"
6089 (string-append (assoc-ref inputs "htslib") "/lib"))
6090 (setenv "HTSLIB_INCLUDE_DIR"
6091 (string-append (assoc-ref inputs "htslib") "/include"))
6092 (setenv "LDFLAGS" "-lncurses")
6093 (setenv "CFLAGS" "-D_CURSES_LIB=1")))
6094 (add-before 'check 'pre-check
6095 (lambda* (#:key tests? #:allow-other-keys)
6096 (when tests?
6097 (with-directory-excursion "tests"
6098 (setenv "HOME" "/tmp")
6099 (invoke "make" "-C" "pysam_data")
6100 (invoke "make" "-C" "cbcf_data"))))))))
6101 (propagated-inputs
6102 (list htslib)) ; Included from installed header files.
6103 (inputs
6104 (list ncurses curl zlib))
6105 (native-inputs
6106 (list python-cython
6107 python-pytest
6108 python-setuptools
6109 ;; Dependencies below are are for tests only.
6110 samtools
6111 bcftools))
6112 (home-page "https://github.com/pysam-developers/pysam")
6113 (synopsis "Python bindings to the SAMtools C API")
6114 (description
6115 "Pysam is a Python module for reading and manipulating files in the
6116SAM/BAM format. Pysam is a lightweight wrapper of the SAMtools C API. It
6117also includes an interface for tabix.")
6118 (license license:expat)))
6119
6120(define-public python-twobitreader
6121 (package
6122 (name "python-twobitreader")
6123 (version "3.1.9")
6124 (source (origin
6125 (method git-fetch)
6126 (uri (git-reference
6127 (url "https://github.com/benjschiller/twobitreader")
6128 (commit version)))
6129 (file-name (git-file-name name version))
6130 (sha256
6131 (base32
6132 "1yk86vgdh43wpg8wv4riiff3qv0nrmizxzv774ghjkgiss4g1l2q"))))
6133 (build-system pyproject-build-system)
6134 (native-inputs
6135 (list python-pytest
6136 python-setuptools))
6137 (home-page "https://github.com/benjschiller/twobitreader")
6138 (synopsis "Python library for reading .2bit files")
6139 (description
6140 "twobitreader is a Python library for reading .2bit files as used by the
6141UCSC genome browser.")
6142 (license license:artistic2.0)))
6143
6144(define-public tetoolkit
6145 (package
6146 (name "tetoolkit")
6147 (version "2.2.3")
6148 (source
6149 (origin
6150 (method git-fetch)
6151 (uri (git-reference
6152 (url "https://github.com/mhammell-laboratory/TEtranscripts")
6153 (commit version)))
6154 (file-name (git-file-name name version))
6155 (sha256
6156 (base32 "1jgwnm1kmj2mgvc3gib6d73rvyy3l54icjcj2gw0p1ay6kqkzs0p"))))
6157 (build-system pyproject-build-system)
6158 (arguments
6159 `(#:tests? #f ;no tests
6160 #:phases (modify-phases %standard-phases
6161 (add-after 'unpack 'adjust-requirements
6162 (lambda _
6163 (substitute* "setup.py"
6164 ;; This defunct dependency isn't required for Python 3 (see:
6165 ;; https://github.com/mhammell-laboratory/TEtranscripts/issues/111).
6166 ((".*'argparse'.*")
6167 ""))))
6168 (add-after 'unpack 'patch-invocations
6169 (lambda* (#:key inputs #:allow-other-keys)
6170 (substitute* '("bin/TEtranscripts" "bin/TEcount")
6171 (("'sort ")
6172 (string-append "'"
6173 (search-input-file inputs "bin/sort")
6174 " "))
6175 (("'rm -f ")
6176 (string-append "'"
6177 (search-input-file inputs "bin/rm")
6178 " -f "))
6179 (("'Rscript'")
6180 (string-append "'"
6181 (search-input-file inputs
6182 "bin/Rscript") "'")))
6183 (substitute* "TEToolkit/IO/ReadInputs.py"
6184 (("BamToBED")
6185 (search-input-file inputs "bin/bamToBed")))
6186 (substitute* "TEToolkit/Normalization.py"
6187 (("\"Rscript\"")
6188 (string-append "\""
6189 (search-input-file inputs
6190 "bin/Rscript") "\"")))))
6191 (add-after 'install 'wrap-program
6192 (lambda* (#:key outputs #:allow-other-keys)
6193 ;; Make sure the executables find R packages.
6194 (for-each (lambda (script)
6195 (wrap-program script
6196 `("R_LIBS_SITE" ":" =
6197 (,(getenv "R_LIBS_SITE")))))
6198 (list (search-input-file outputs
6199 "bin/TEtranscripts")
6200 (search-input-file outputs "bin/TEcount"))))))))
6201 (inputs (list bash-minimal
6202 coreutils
6203 bedtools
6204 python-pysam
6205 r-minimal
6206 r-deseq2))
6207 (native-inputs (list python-setuptools))
6208 (home-page "https://github.com/mhammell-laboratory/TEtranscripts")
6209 (synopsis "Transposable elements in differential enrichment analysis")
6210 (description
6211 "This is package for including transposable elements in differential
6212enrichment analysis of sequencing datasets. TEtranscripts and TEcount take
6213RNA-seq (and similar data) and annotates reads to both genes and transposable
6214elements. TEtranscripts then performs differential analysis using DESeq2.
6215Note that TEtranscripts and TEcount rely on specially curated GTF files, which
6216are not included due to their size.")
6217 (license license:gpl3+)))
6218
6219(define-public cd-hit
6220 (package
6221 (name "cd-hit")
6222 (version "4.8.1")
6223 (source (origin
6224 (method url-fetch)
6225 (uri (string-append "https://github.com/weizhongli/cdhit"
6226 "/releases/download/V" version
6227 "/cd-hit-v" version
6228 "-2019-0228.tar.gz"))
6229 (sha256
6230 (base32
6231 "1phmfhgcpyfd6kj7jwzw976613lcpv1wc2pzfdfaxla062x2s5r6"))))
6232 (build-system gnu-build-system)
6233 (arguments
6234 (list
6235 #:tests? #f ; there are no tests
6236 #:make-flags
6237 ;; Executables are copied directly to the PREFIX.
6238 #~(list (string-append "PREFIX=" #$output "/bin")
6239 ;; Support longer sequences (e.g. Pacbio sequences)
6240 "MAX_SEQ=60000000")
6241 #:phases
6242 '(modify-phases %standard-phases
6243 ;; No "configure" script
6244 (delete 'configure)
6245 ;; Remove sources of non-determinism
6246 (add-after 'unpack 'be-timeless
6247 (lambda _
6248 (substitute* "cdhit-utility.c++"
6249 ((" \\(built on \" __DATE__ \"\\)") ""))
6250 (substitute* "cdhit-common.c++"
6251 (("__DATE__") "\"0\"")
6252 (("\", %s, \" __TIME__ \"\\\\n\", date") ""))))
6253 ;; The "install" target does not create the target directory.
6254 (add-before 'install 'create-target-dir
6255 (lambda* (#:key outputs #:allow-other-keys)
6256 (mkdir-p (string-append (assoc-ref outputs "out") "/bin")))))))
6257 (inputs
6258 (list perl zlib))
6259 (home-page "http://weizhongli-lab.org/cd-hit/")
6260 (synopsis "Cluster and compare protein or nucleotide sequences")
6261 (description
6262 "CD-HIT is a program for clustering and comparing protein or nucleotide
6263sequences. CD-HIT is designed to be fast and handle extremely large
6264databases.")
6265 ;; The manual says: "It can be copied under the GNU General Public License
6266 ;; version 2 (GPLv2)."
6267 (license license:gpl2)))
6268
6269(define-public cd-hit-auxtools
6270 (package
6271 (inherit cd-hit)
6272 (name "cd-hit-auxtools")
6273 (arguments
6274 (list
6275 #:tests? #f ; there are no tests
6276 #:phases
6277 #~(modify-phases %standard-phases
6278 (add-after 'unpack 'chdir (lambda _ (chdir "cd-hit-auxtools")))
6279 ;; No "configure" script
6280 (delete 'configure)
6281 ;; There is no install target.
6282 (replace 'install
6283 (lambda _
6284 (for-each (lambda (file)
6285 (install-file file (string-append #$output "/bin")))
6286 '("cd-hit-dup" "cd-hit-lap" "read-linker")))))))
6287 (inputs '())))
6288
6289(define-public clipper-peak
6290 (package
6291 (name "clipper-peak")
6292 (version "2.0.1")
6293 (source
6294 (origin
6295 (method git-fetch)
6296 (uri (git-reference
6297 (url "https://github.com/YeoLab/clipper")
6298 (commit version)))
6299 (file-name (git-file-name name version))
6300 (sha256
6301 (base32 "0508rgnfjk5ar5d1mjbjyrnarv4kw9ksq0m3jw2bmgabmb5v6ikk"))
6302 (modules '((guix build utils)))
6303 (snippet '(begin
6304 ;; Delete pre-compiled files.
6305 (delete-file "clipper/src/peaks.so")))))
6306 (build-system pyproject-build-system)
6307 (arguments
6308 `(#:tests? #f
6309 #:phases (modify-phases %standard-phases
6310 (add-after 'unpack 'use-python3-for-cython
6311 (lambda _
6312 (substitute* "setup.py"
6313 (("^setup")
6314 "peaks.cython_directives = {'language_level': '3'}
6315readsToWiggle.cython_directives = {'language_level': '3'}
6316setup"))))
6317 (add-after 'unpack 'disable-nondeterministic-test
6318 (lambda _
6319 ;; This test fails/succeeds non-deterministically.
6320 (substitute* "clipper/test/test_call_peak.py"
6321 (("test_get_FDR_cutoff_mean")
6322 "_test_get_FDR_cutoff_mean"))))
6323 ;; This doesn't work because "usage" is executed, and that calls
6324 ;; exit(8).
6325 (replace 'check
6326 (lambda* (#:key tests? inputs outputs #:allow-other-keys)
6327 (when tests?
6328 (add-installed-pythonpath inputs outputs)
6329 (with-directory-excursion "clipper/test"
6330 (invoke "python" "-m" "unittest")))))
6331 ;; This is not a library
6332 (delete 'sanity-check))))
6333 (inputs (list htseq
6334 python-pybedtools
6335 python-cython
6336 python-scikit-learn
6337 python-matplotlib
6338 python-pandas
6339 python-pysam
6340 python-numpy
6341 python-scipy))
6342 (native-inputs (list python-mock
6343 python-pynose
6344 python-pytz
6345 python-setuptools
6346 python-setuptools-git))
6347 (home-page "https://github.com/YeoLab/clipper")
6348 (synopsis "CLIP peak enrichment recognition")
6349 (description "CLIPper is a tool to define peaks in CLIP-seq datasets.")
6350 (license license:gpl2)))
6351
6352(define-public codingquarry
6353 (package
6354 (name "codingquarry")
6355 (version "2.0")
6356 (source (origin
6357 (method url-fetch)
6358 (uri (string-append
6359 "mirror://sourceforge/codingquarry/CodingQuarry_v"
6360 version ".tar.gz"))
6361 (sha256
6362 (base32
6363 "0115hkjflsnfzn36xppwf9h9avfxlavr43djqmshkkzbgjzsz60i"))))
6364 (build-system gnu-build-system)
6365 (arguments
6366 (list
6367 #:tests? #f ;no "check" target
6368 #:phases
6369 #~(modify-phases %standard-phases
6370 (delete 'configure)
6371 (replace 'install
6372 (lambda _
6373 (let ((bin (string-append #$output "/bin"))
6374 (doc (string-append #$output "/share/doc/codingquarry")))
6375 (install-file "INSTRUCTIONS.pdf" doc)
6376 (copy-recursively "QuarryFiles"
6377 (string-append #$output
6378 "/share/codingquarry/QuarryFiles"))
6379 (install-file "CodingQuarry" bin)
6380 (install-file "CufflinksGTF_to_CodingQuarryGFF3.py" bin)))))))
6381 ;; TODO: This package also needs a Python 2 variant of biopython
6382 (inputs (list openmpi python-2)) ;Only Python 2 is supported
6383 (native-search-paths
6384 (list (search-path-specification
6385 (variable "QUARRY_PATH")
6386 (files '("share/codingquarry/QuarryFiles")))))
6387 (home-page "https://sourceforge.net/projects/codingquarry/")
6388 (synopsis "Fungal gene predictor")
6389 (description "CodingQuarry is a highly accurate, self-training GHMM fungal
6390gene predictor designed to work with assembled, aligned RNA-seq transcripts.")
6391 (license license:gpl3+)))
6392
6393(define-public crossmap
6394 (package
6395 (name "crossmap")
6396 (version "0.7.3")
6397 (source
6398 (origin
6399 (method url-fetch)
6400 (uri (pypi-uri "crossmap" version))
6401 (sha256
6402 (base32 "0v8z75di5ghrv1aiain67qx9n5lslwq9ikfq44zjp5papwdksyf5"))
6403 (modules '((guix build utils)))
6404 (snippet '(begin
6405 ;; Delete compiled Python files.
6406 (for-each delete-file
6407 (find-files "." "\\.pyc$"))
6408 (delete-file-recursively "src/CrossMap.egg-info")))))
6409 (build-system pyproject-build-system)
6410 (arguments (list #:tests? #f)) ; No tests in PyPI and Git.
6411 (inputs (list python-bx-python python-numpy python-pybigwig python-pysam
6412 zlib))
6413 (native-inputs (list python-cython python-pyparsing python-setuptools))
6414 (home-page "https://crossmap.sourceforge.net/")
6415 (synopsis "Convert genome coordinates between assemblies")
6416 (description
6417 "CrossMap is a program for conversion of genome coordinates or annotation
6418files between different genome assemblies. It supports most commonly used
6419file formats including SAM/BAM, Wiggle/BigWig, BED, GFF/GTF, VCF.")
6420 (license license:gpl2+)))
6421
6422(define-public python-dnaio
6423 (package
6424 (name "python-dnaio")
6425 (version "0.10.0")
6426 (source
6427 (origin
6428 (method url-fetch)
6429 (uri (pypi-uri "dnaio" version))
6430 (sha256
6431 (base32
6432 "064xc4j8plb4fpkm8mw55715mvpvi2sxsknpjx18c2zh904salfy"))))
6433 (build-system pyproject-build-system)
6434 (arguments
6435 (list #:tests? #false)) ;there are none
6436 (native-inputs
6437 (list python-cython
6438 python-pytest
6439 python-setuptools-scm
6440 python-setuptools))
6441 (propagated-inputs
6442 (list python-xopen))
6443 (home-page "https://github.com/marcelm/dnaio/")
6444 (synopsis "Read FASTA and FASTQ files efficiently")
6445 (description
6446 "dnaio is a Python library for fast parsing of FASTQ and also FASTA
6447files. The code was previously part of the cutadapt tool.")
6448 (license license:expat)))
6449
6450(define-public python-deeptoolsintervals
6451 (package
6452 (name "python-deeptoolsintervals")
6453 (version "0.1.9")
6454 (source (origin
6455 (method url-fetch)
6456 (uri (pypi-uri "deeptoolsintervals" version))
6457 (sha256
6458 (base32
6459 "1xnl80nblysj6dylj4683wgrfa425rkx4dp5k65hvwdns9pw753x"))))
6460 (build-system pyproject-build-system)
6461 (arguments
6462 (list
6463 #:test-flags
6464 #~(list "--pyargs" "deeptoolsintervals"
6465 "--doctest-modules")))
6466 (native-inputs
6467 (list python-pytest
6468 python-setuptools))
6469 (inputs
6470 (list zlib))
6471 (home-page "https://github.com/deeptools/deeptools_intervals")
6472 (synopsis "Create GTF-based interval trees with associated meta-data")
6473 (description
6474 "This package provides a Python module creating/accessing GTF-based
6475interval trees with associated meta-data. It is primarily used by the
6476@code{deeptools} package.")
6477 (license license:expat)))
6478
6479(define-public python-deeptools
6480 (package
6481 (name "python-deeptools")
6482 (version "3.5.6")
6483 (source (origin
6484 (method git-fetch)
6485 (uri (git-reference
6486 (url "https://github.com/deeptools/deepTools")
6487 (commit version)))
6488 (file-name (git-file-name name version))
6489 (sha256
6490 (base32
6491 "0npdcqlbcxwzkadz9j6yqzk7snl6758gn3lnff9845x3ycxfa5bp"))))
6492 (build-system pyproject-build-system)
6493 (arguments
6494 (list
6495 ;; tests: 99 passed, 1 deselected
6496 #:test-flags
6497 ;; AssertionError: assert '.alignmentSieve-real 3.5.6' ==
6498 ;; 'alignmentSieve 3.5.6'
6499 #~(list "--deselect=deeptools/test/test_tools.py::test_tools")))
6500 (native-inputs
6501 (list python-mock
6502 python-pytest
6503 python-setuptools))
6504 (propagated-inputs
6505 (list python-matplotlib
6506 python-numpy
6507 python-numpydoc
6508 python-py2bit
6509 python-pybigwig
6510 python-pysam
6511 python-scipy
6512 python-deeptoolsintervals
6513 python-plotly))
6514 (home-page "https://pypi.org/project/deepTools/")
6515 (synopsis "Useful tools for exploring deep sequencing data")
6516 (description "This package addresses the challenge of handling large amounts
6517of data that are now routinely generated from DNA sequencing centers.
6518@code{deepTools} contains useful modules to process the mapped reads data for
6519multiple quality checks, creating normalized coverage files in standard bedGraph
6520and bigWig file formats, that allow comparison between different files. Finally,
6521using such normalized and standardized files, deepTools can create many
6522publication-ready visualizations to identify enrichments and for functional
6523annotations of the genome.")
6524 ;; The file deeptools/cm.py is licensed under the BSD license. The
6525 ;; remainder of the code is licensed under the MIT license.
6526 (license (list license:bsd-3 license:expat))))
6527
6528(define-public cutadapt
6529 (package
6530 (name "cutadapt")
6531 (version "4.0")
6532 (source (origin
6533 (method url-fetch)
6534 (uri (pypi-uri "cutadapt" version))
6535 (sha256
6536 (base32
6537 "0xgsv88mrlw2b1radmd1104y7bg8hvv54ay7xfdpnjiw2jgkrha9"))))
6538 (build-system pyproject-build-system)
6539 (arguments
6540 (list
6541 #:test-flags
6542 '(list "-k" "not test_no_read_only_comment_fasta_input")
6543 #:phases
6544 #~(modify-phases %standard-phases
6545 (add-after 'unpack 'fix-test
6546 (lambda _
6547 (let ((site (string-append
6548 #$output "/lib/python"
6549 #$(version-major+minor
6550 (package-version python))
6551 "/site-packages")))
6552 (substitute* "tests/test_command.py"
6553 (("env=\\{\"LC_CTYPE\": \"C\"\\},")
6554 (string-append "env={\"LC_CTYPE\": \"C\", \"GUIX_PYTHONPATH\": \""
6555 (getenv "GUIX_PYTHONPATH") ":" site
6556 "\"},")))))))))
6557 (inputs
6558 (list python-dnaio python-xopen))
6559 (native-inputs
6560 (list python-cython
6561 python-pytest
6562 python-pytest-mock
6563 python-pytest-timeout
6564 python-setuptools
6565 python-setuptools-scm))
6566 (home-page "https://cutadapt.readthedocs.io/en/stable/")
6567 (synopsis "Remove adapter sequences from nucleotide sequencing reads")
6568 (description
6569 "Cutadapt finds and removes adapter sequences, primers, poly-A tails and
6570other types of unwanted sequence from high-throughput sequencing reads.")
6571 (license license:expat)))
6572
6573(define-public lammps
6574 (let ((commit "stable_22Jul2025_update3")
6575 (version-tag "250722.3"))
6576 (package
6577 (name "lammps")
6578 (version version-tag)
6579 (source
6580 (origin
6581 (method git-fetch)
6582 (uri (git-reference
6583 (url "https://github.com/lammps/lammps.git")
6584 (commit commit)))
6585 (file-name (git-file-name name version))
6586 (sha256
6587 (base32
6588 "1ar1qvhziw7bx3az881lfq1a4w3w80x17ri1jiamd6f6ck57gwyz"))))
6589 (build-system cmake-build-system)
6590 (arguments
6591 (list
6592 #:configure-flags
6593 #~(list
6594 ;; activate all possible lammps packages.
6595 "-C ../cmake/presets/all_on.cmake"
6596 "-D PKG_USER-MISC=yes"
6597 ;; prevent from downloading extra packages.
6598 "-D DOWNLOAD_POTENTIALS=off"
6599 ;; Parallel
6600 "-D LAMMPS_MACHINE=mpi"
6601 "-D BUILD_MPI=yes"
6602 "-D BUILD_OMP=yes"
6603 ;; Build libraries to link to other codes.
6604 "-D BUILD_SHARED_LIBS=yes"
6605 ;; Deactivate package currently unavailable on guix
6606 "-D PKG_VTK=no"
6607 "-D PKG_ADIOS=no"
6608 "-D PKG_GPU=no"
6609 "-D PKG_VMD=no"
6610 "-D PKG_VORONOI=no"
6611 "-D PKG_SCAFACOS=no"
6612 "-D PKG_MDI=no"
6613 "-D PKG_ML-QUIP=no"
6614 "-D PKG_ML-PACE=no"
6615 "-D PKG_KIM=no"
6616 "-D PKG_PLUMED=no"
6617 "-D PKG_APIP=no"
6618 ;; Extra arguments for some packages.
6619 "-D FFT=FFTW3"
6620 "-D Kokkos_ENABLE_OPENMP=yes"
6621 "-D MLIAP_ENABLE_PYTHON=yes"
6622 (string-append "-DN2P2_DIR=" #$(this-package-input "n2p2")))
6623 #:tests? #f
6624 #:build-type "Release"
6625 #:phases
6626 #~(modify-phases %standard-phases
6627 (add-before 'configure 'goto-cmake-dir
6628 (lambda _
6629 (chdir "./cmake"))))))
6630 (inputs
6631 (list ffmpeg
6632 gzip
6633 hdf5-parallel-openmpi
6634 libjpeg-turbo
6635 libpng
6636 fftw
6637 n2p2
6638 gsl
6639 openblas
6640 libomp-13
6641 eigen
6642 netcdf
6643 pnetcdf
6644 python-numpy
6645 python-wrapper))
6646 (native-inputs
6647 (list bc
6648 pkg-config
6649 python-cython
6650 gfortran))
6651 (home-page "https://www.lammps.org/")
6652 (synopsis "Classical molecular dynamics simulator")
6653 (description "LAMMPS is a classical molecular dynamics simulator
6654designed to run efficiently on parallel computers. LAMMPS has potentials for
6655solid-state materials (metals, semiconductors), soft matter (biomolecules,
6656polymers), and coarse-grained or mesoscopic systems. It can be used to model
6657atoms or, more generically, as a parallel particle simulator at the atomic,
6658meso, or continuum scale.")
6659 (license license:gpl2+))))
6660
6661(define-public lammps-serial
6662 (package
6663 (inherit lammps)
6664 (name "lammps-serial")
6665 (arguments
6666 (substitute-keyword-arguments arguments
6667 ((#:configure-flags flags)
6668 #~(list
6669 ;; activate all possible lammps packages.
6670 "-C ../cmake/presets/all_on.cmake"
6671 "-D PKG_USER-MISC=yes"
6672 ;; prevent from downloading extra packages.
6673 "-D DOWNLOAD_POTENTIALS=off"
6674 ;; Build libraries to link to other codes.
6675 "-D BUILD_SHARED_LIBS=yes"
6676 ;; Deactivate package currently unavailable on guix
6677 "-D PKG_VTK=no"
6678 "-D PKG_ADIOS=no"
6679 "-D PKG_GPU=no"
6680 "-D PKG_VMD=no"
6681 "-D PKG_VORONOI=no"
6682 "-D PKG_SCAFACOS=no"
6683 "-D PKG_MDI=no"
6684 "-D PKG_ML-QUIP=no"
6685 "-D PKG_ML-PACE=no"
6686 "-D PKG_KIM=no"
6687 "-D PKG_PLUMED=no"
6688 "-D PKG_APIP=no"
6689 "-D PKG_LATBOLTZ=no"
6690 ;; Extra arguments for some packages.
6691 "-D FFT=FFTW3"
6692 "-D MLIAP_ENABLE_PYTHON=yes"
6693 (string-append "-DN2P2_DIR=" #$(this-package-input "n2p2"))))))
6694 (inputs
6695 (modify-inputs inputs
6696 (delete "pnetcdf")
6697 (replace "hdf5-parallel-openmpi" hdf5)))))
6698
6699(define-public libbigwig
6700 (package
6701 (name "libbigwig")
6702 (version "0.4.8")
6703 (source (origin
6704 (method git-fetch)
6705 (uri (git-reference
6706 (url "https://github.com/dpryan79/libBigWig")
6707 (commit version)))
6708 (file-name (git-file-name name version))
6709 (sha256
6710 (base32
6711 "1bqw2kbgxszvh5vd85p9zqdv32bvyqr25yvgy5crnxl0yn8xqs97"))))
6712 (build-system gnu-build-system)
6713 (arguments
6714 (list
6715 #:test-target "test"
6716 #:tests? #f ; tests require access to the web
6717 #:make-flags
6718 #~(list (string-append "CC=" #$(cc-for-target))
6719 (string-append "prefix=" #$output))
6720 #:phases
6721 #~(modify-phases %standard-phases
6722 (delete 'configure))))
6723 (inputs
6724 (list zlib curl))
6725 (native-inputs
6726 (list doxygen
6727 python)) ;for tests
6728 (home-page "https://github.com/dpryan79/libBigWig")
6729 (synopsis "C library for handling bigWig files")
6730 (description
6731 "This package provides a C library for parsing local and remote BigWig
6732files.")
6733 (license license:expat)))
6734
6735(define-public lsgkm
6736 (package
6737 (name "lsgkm")
6738 (version "0.1.1")
6739 (source
6740 (origin
6741 (method git-fetch)
6742 (uri (git-reference
6743 (url "https://github.com/Dongwon-Lee/lsgkm.git")
6744 (commit (string-append "v" version))))
6745 (file-name (git-file-name name version))
6746 (sha256
6747 (base32
6748 "0b3m94kndvimdfjaf1q2yhmsn7lm5s9v81c5xgfjcp6ig7mh3sa5"))))
6749 (build-system gnu-build-system)
6750 (arguments
6751 (list
6752 #:make-flags '(list "-C" "src")
6753 #:tests? #false ;there are no executable tests
6754 #:phases
6755 #~(modify-phases %standard-phases
6756 (delete 'configure)
6757 (replace 'install
6758 (lambda _
6759 (let ((bin (string-append #$output "/bin")))
6760 (for-each (lambda (file)
6761 (install-file file bin))
6762 '("src/gkmtrain"
6763 "src/gkmpredict"))))))))
6764 (home-page "https://github.com/Dongwon-Lee/lsgkm")
6765 (synopsis "Predict regulatory DNA elements in large-scale data")
6766 (description "gkm-SVM, a sequence-based method for predicting regulatory
6767DNA elements, is a useful tool for studying gene regulatory mechanisms.
6768LS-GKM is an effort to improve the method. It offers much better scalability
6769and provides further advanced gapped k-mer based kernel functions. As a
6770result, LS-GKM achieves considerably higher accuracy than the original
6771gkm-SVM.")
6772 (license license:gpl3+)))
6773
6774(define-public python-fcsparser
6775 (package
6776 (name "python-fcsparser")
6777 (version "0.2.8")
6778 (source
6779 (origin
6780 (method url-fetch)
6781 (uri (pypi-uri "fcsparser" version))
6782 (sha256
6783 (base32 "1skk1k8phq9sj4ar0cnq8px89y3kcyh5zrbl6anz9wcdcyzkc16z"))))
6784 (build-system pyproject-build-system)
6785 ;; See: <https://github.com/eyurtsev/fcsparser/issues/74>.
6786 (propagated-inputs (list python-numpy-1 python-pandas))
6787 (native-inputs (list python-poetry-core python-pytest))
6788 (home-page "https://github.com/eyurtsev/fcsparser")
6789 (synopsis "Package for reading raw fcs files")
6790 (description
6791 "This package provides a Python package for reading raw fcs files")
6792 (license license:expat)))
6793
6794(define-public python-pybigwig
6795 (package
6796 (name "python-pybigwig")
6797 (version "0.3.25")
6798 (source
6799 (origin
6800 (method git-fetch)
6801 (uri (git-reference
6802 (url "https://github.com/deeptools/pyBigWig")
6803 (commit version)))
6804 (file-name (git-file-name name version))
6805 (sha256
6806 (base32 "031hd0b39g35b38w4jg9zv8widshcf26fiyrwg4yda1nk1sd1bsn"))
6807 (modules '((guix build utils)))
6808 (snippet
6809 ;; Delete bundled libBigWig sources
6810 '(delete-file-recursively "libBigWig"))))
6811 (build-system pyproject-build-system)
6812 (arguments
6813 '(#:tests? #false ;only one test exists and it needs internet access
6814 #:phases
6815 (modify-phases %standard-phases
6816 (add-after 'unpack 'link-with-libBigWig
6817 (lambda _
6818 (substitute* "setup.py"
6819 (("libs=\\[") "libs=[\"BigWig\", ")))))))
6820 (propagated-inputs
6821 (list python-numpy))
6822 (inputs
6823 (list libbigwig zlib curl))
6824 (native-inputs (list python-setuptools))
6825 (home-page "https://github.com/dpryan79/pyBigWig")
6826 (synopsis "Access bigWig files in Python using libBigWig")
6827 (description
6828 "This package provides Python bindings to the libBigWig library for
6829accessing bigWig files.")
6830 (license license:expat)))
6831
6832(define-public python-schema-salad
6833 (package
6834 (name "python-schema-salad")
6835 (version "8.9.20251102115403")
6836 (source
6837 (origin
6838 (method git-fetch)
6839 (uri (git-reference
6840 (url "https://github.com/common-workflow-language/schema_salad")
6841 (commit version)))
6842 (file-name (git-file-name name version))
6843 (sha256
6844 (base32 "0jcq6yam58q9xic9mzv09075s2mbng5bs0pxsh335i6jfwrp1b6x"))))
6845 (build-system pyproject-build-system)
6846 (arguments
6847 (list
6848 #:test-flags
6849 #~(list
6850 ;; These tests require network access.
6851 "--deselect=schema_salad/tests/test_examples.py::test_bad_schemas"
6852 "--deselect=schema_salad/tests/test_cg.py::test_load_by_yaml_metaschema"
6853 ;; This test requires the cwl-runner binary.
6854 "--ignore=schema_salad/tests/test_cwl11.py")
6855 #:phases
6856 #~(modify-phases %standard-phases
6857 (add-after 'unpack 'relax-requirements
6858 (lambda _
6859 ;; Mistune dependency is too strict mistune>=3,<3.1 .
6860 ;; TODO: Remove when upgrading, because updated upstream.
6861 (substitute* "requirements.txt"
6862 (("mistune.*") "mistune"))
6863 (substitute* "setup.py"
6864 (("mistune[^\"]*") "mistune")))))))
6865 (propagated-inputs
6866 (list python-cachecontrol
6867 python-mistune
6868 python-mypy-extensions
6869 python-rdflib
6870 python-requests
6871 python-ruamel.yaml))
6872 (native-inputs
6873 (list python-black ;black is actually used in the tests.
6874 python-cachecontrol
6875 python-pytest
6876 python-pytest-xdist ;because tests are ran with "-n auto" in tox.ini
6877 python-setuptools
6878 python-setuptools-scm))
6879 (home-page "https://github.com/common-workflow-language/schema_salad")
6880 (synopsis "Schema Annotations for Linked Avro Data (SALAD)")
6881 (description
6882 "Salad is a schema language for describing JSON or YAML structured linked
6883data documents. Salad schema describes rules for preprocessing, structural
6884validation, and hyperlink checking for documents described by a Salad schema.
6885Salad supports rich data modeling with inheritance, template specialization,
6886object identifiers, object references, documentation generation, code
6887generation, and transformation to RDF. Salad provides a bridge between document
6888and record oriented data modeling and the Semantic Web.")
6889 (license license:asl2.0)))
6890
6891(define-public python-scikit-bio
6892 (package
6893 (name "python-scikit-bio")
6894 (version "0.7.3")
6895 (source
6896 (origin
6897 (method git-fetch)
6898 (uri (git-reference
6899 (url "https://github.com/scikit-bio/scikit-bio")
6900 (commit version)))
6901 (file-name (git-file-name name version))
6902 (sha256
6903 (base32 "1bg50d57jnzbkixcc3c23wrm8mf1za2nf0i3dy4n5zzizsk6vjpd"))))
6904 (build-system pyproject-build-system)
6905 (arguments
6906 (list
6907 ;; tests: 3336 passed, 105 skipped, 73 warnings
6908 #:test-backend #~'custom
6909 #:test-flags #~(list "-m" "skbio.test")
6910 #:phases
6911 #~(modify-phases %standard-phases
6912 (add-before 'check 'remove-local-source
6913 (lambda _
6914 (delete-file-recursively "skbio"))))))
6915 (native-inputs
6916 (list python-cython
6917 python-dateutil
6918 python-matplotlib
6919 python-numpy
6920 python-patsy
6921 python-pytest
6922 python-responses
6923 python-setuptools
6924 python-statsmodels))
6925 (propagated-inputs
6926 (list python-array-api-compat
6927 python-biom-format
6928 python-decorator
6929 python-h5py
6930 python-natsort
6931 python-numpy
6932 python-pandas
6933 python-patsy
6934 python-requests
6935 python-scipy
6936 python-statsmodels))
6937 (home-page "https://scikit.bio")
6938 (synopsis "Data structures, algorithms and educational resources for bioinformatics")
6939 (description
6940 "This package provides data structures, algorithms and educational
6941resources for bioinformatics.")
6942 (license license:bsd-3)))
6943
6944(define-public python-scrublet
6945 (package
6946 (name "python-scrublet")
6947 (version "0.2.3")
6948 (source (origin
6949 (method url-fetch)
6950 (uri (pypi-uri "scrublet" version))
6951 (sha256
6952 (base32
6953 "0fk5pwk12yz9wpvwkl6j2l2g28f3x35b9r9n5bw6f0i9f0qgd191"))))
6954 (build-system pyproject-build-system)
6955 (arguments '(#:tests? #false)) ;there are none
6956 (propagated-inputs
6957 (list python-annoy
6958 python-cython
6959 python-matplotlib
6960 python-numba
6961 python-numpy
6962 python-pandas
6963 python-scikit-image
6964 python-scikit-learn
6965 python-scipy
6966 python-umap-learn))
6967 (native-inputs (list python-setuptools))
6968 (home-page "https://github.com/swolock/scrublet")
6969 (synopsis "Tool to identify and remove doublets in single-cell data")
6970 (description "This package provides a tool for identifying and removing
6971doublets in single-cell RNA-seq data.")
6972 (license license:expat)))
6973
6974(define-public python-cwlformat
6975 (package
6976 (name "python-cwlformat")
6977 (version "2022.02.18")
6978 (source
6979 ;; The PyPI tarball is missing Readme.md. Readme.md is required for the
6980 ;; build.
6981 (origin
6982 (method git-fetch)
6983 (uri (git-reference
6984 (url "https://github.com/rabix/cwl-format")
6985 (commit version)))
6986 (file-name (git-file-name name version))
6987 (sha256
6988 (base32
6989 "0agkz2w86k91rc9m5vx5hsqi5nm6fcmzkng6j99hjapz0r9233ql"))))
6990 (build-system pyproject-build-system)
6991 (arguments
6992 (list
6993 #:test-flags
6994 ;; Assert fails to compare large files.
6995 #~(list "--deselect=tests/test_battery.py::test_formatting_battery")))
6996 (native-inputs
6997 (list python-pytest
6998 python-setuptools))
6999 (propagated-inputs
7000 (list python-importlib-resources
7001 python-ruamel.yaml))
7002 (home-page "https://github.com/rabix/cwl-format")
7003 (synopsis "Prettifier for CWL code")
7004 (description "@code{python-cwlformat} is a specification and a reference
7005implementation for a very opinionated @acronym{CWL, Common Workflow Language}
7006code formatter. It outputs CWL in a standardized YAML format.")
7007 (license license:asl2.0)))
7008
7009(define-public python-cwl-upgrader
7010 (package
7011 (name "python-cwl-upgrader")
7012 (version "1.2.11")
7013 (source
7014 (origin
7015 (method url-fetch)
7016 (uri (pypi-uri "cwl-upgrader" version))
7017 (sha256
7018 (base32
7019 "12j6z8nvwnzjjyypz59hwj5hmrcri2r6aknw52n9dbj6lbzbdd2p"))))
7020 (build-system pyproject-build-system)
7021 (native-inputs
7022 (list python-pytest python-setuptools))
7023 (propagated-inputs
7024 (list python-ruamel.yaml
7025 python-schema-salad))
7026 (home-page "https://github.com/common-workflow-language/cwl-upgrader")
7027 (synopsis "CWL document upgrader")
7028 (description "@code{python-cwl-upgrader} is a standalone upgrader for
7029@acronym{CWL, Common Workflow Language} documents from version draft-3, v1.0,
7030and v1.1 to v1.2.")
7031 (license license:asl2.0)))
7032
7033(define-public python-cwl-utils
7034 (package
7035 (name "python-cwl-utils")
7036 (version "0.32")
7037 (source
7038 (origin
7039 (method url-fetch)
7040 (uri (pypi-uri "cwl-utils" version))
7041 (sha256
7042 (base32
7043 "06wkw8d8cqm3hnz8xwnysz874gwaym36c358cr7frw5iglhvsj98"))))
7044 (build-system pyproject-build-system)
7045 (arguments
7046 (list
7047 #:test-flags
7048 #~(list "-k"
7049 (string-append "not test_graph_split"
7050 " and not test_load_document_with_remote_uri"
7051 " and not test_remote_packing"
7052 " and not test_remote_packing_github_soft_links"
7053 " and not test_value_from_two_concatenated_expressions"))))
7054 (inputs
7055 (list node-lts))
7056 (native-inputs
7057 (list python-mypy-extensions
7058 python-pytest
7059 python-pytest-mock
7060 python-setuptools))
7061 (propagated-inputs
7062 (list python-cwl-upgrader
7063 python-cwlformat
7064 python-packaging
7065 python-rdflib
7066 python-requests
7067 python-ruamel.yaml
7068 python-schema-salad))
7069 (home-page "https://github.com/common-workflow-language/cwl-utils")
7070 (synopsis "Python utilities for CWL")
7071 (description "@code{python-cwl-utils} provides python utilities and
7072autogenerated classes for loading and parsing CWL v1.0, CWL v1.1, and CWL v1.2
7073documents.")
7074 (license license:asl2.0)))
7075
7076(define-public cwltool
7077 (package
7078 (name "cwltool")
7079 (version "3.1.20260315121657")
7080 (source (origin
7081 (method git-fetch)
7082 (uri (git-reference
7083 (url "https://github.com/common-workflow-language/cwltool")
7084 (commit version)))
7085 (file-name (git-file-name name version))
7086 (sha256
7087 (base32
7088 "07glkzm9af9n1jsmqk6vgrjkxhgjask9jy56g7zca20sz7hpmiyi"))))
7089 (build-system pyproject-build-system)
7090 (arguments
7091 (list
7092 #:test-flags
7093 ;; These tests try to connect to the internet.
7094 #~(list "--ignore=tests/test_content_type.py"
7095 "--ignore=tests/test_udocker.py"
7096 "--ignore=tests/test_http_input.py"
7097 "-k"
7098 (string-append
7099 ;; Causes
7100 ;; INTERNALERROR> RuntimeError: Unexpectedly no active
7101 ;; workers available
7102 "not test_env_filtering"
7103 ;; Tries to write to /tmp/guix-build-cwltool-3.fastq
7104 " and not test_iwdr_writable_secondaryfiles"
7105 ;; Tries to use cwl-runners.
7106 " and not test_v1_0_arg_empty_prefix_separate_false"
7107 ;; Tries to connect to the internet.
7108 " and not test_issue_1765_print_deps_with_workflows_having_namespace_location_steps"))
7109 #:phases
7110 #~(modify-phases %standard-phases
7111 (add-after 'unpack 'loosen-version-restrictions
7112 (lambda _
7113 (substitute* "setup.py"
7114 (("== 1.5.1") "> 1.5.1")))) ; prov
7115 (add-after 'unpack 'patch-tests
7116 (lambda _
7117 (substitute* '("tests/subgraph/env-tool2.cwl"
7118 "tests/subgraph/env-tool2_req.cwl"
7119 "tests/subgraph/env-wf2_subwf-packed.cwl"
7120 "tests/subgraph/env-tool2_no_env.cwl")
7121 (("\"/bin/sh\"") (string-append "\"" (which "sh") "\""))))))))
7122 (inputs
7123 (list python-argcomplete
7124 python-bagit
7125 python-coloredlogs
7126 python-cwl-utils
7127 python-mypy-extensions
7128 python-prov
7129 python-pydot
7130 python-psutil
7131 python-rdflib-6
7132 python-requests
7133 python-rich-argparse
7134 python-ruamel.yaml
7135 python-schema-salad
7136 python-setuptools
7137 python-spython
7138 ;; Not listed as needed but still necessary:
7139 node-lts))
7140 (native-inputs
7141 (list python-arcp
7142 python-mock
7143 python-pytest
7144 python-pytest-mock
7145 python-pytest-xdist))
7146 (home-page
7147 "https://github.com/common-workflow-language/common-workflow-language")
7148 (synopsis "Common Workflow Language reference implementation")
7149 (description
7150 "This is the reference implementation of the @acronym{CWL, Common Workflow
7151Language} standards. The CWL open standards are for describing analysis
7152workflows and tools in a way that makes them portable and scalable across a
7153variety of software and hardware environments, from workstations to cluster,
7154cloud, and high performance computing (HPC) environments. CWL is designed to
7155meet the needs of data-intensive science, such as Bioinformatics, Medical
7156Imaging, Astronomy, Physics, and Chemistry. The @acronym{cwltool, CWL reference
7157implementation} is intended to be feature complete and to provide comprehensive
7158validation of CWL files as well as provide other tools related to working with
7159CWL descriptions.")
7160 (license license:asl2.0)))
7161
7162(define-public ravanan
7163 (package
7164 (name "ravanan")
7165 (version "0.2.0")
7166 (source
7167 (origin
7168 (method git-fetch)
7169 (uri (git-reference
7170 (url "https://github.com/arunisaac/ravanan")
7171 (commit (string-append "v" version))))
7172 (file-name (git-file-name name version))
7173 (sha256
7174 (base32
7175 "1ap9h2d92wjvnn8914baqkx6xn8zdanxmpjfg81v3qx35pn938al"))))
7176 (arguments
7177 (list #:make-flags
7178 #~(list (string-append "prefix=" #$output)
7179 (string-append "NODE=" (search-input-file %build-inputs "bin/node")))
7180 #:modules `(((guix build guile-build-system)
7181 #:select (target-guile-effective-version))
7182 ,@%default-gnu-imported-modules)
7183 #:phases
7184 (with-imported-modules `((guix build guile-build-system)
7185 ,@%default-gnu-imported-modules)
7186 #~(modify-phases %standard-phases
7187 (replace 'patch-source-shebangs
7188 (lambda* (#:key inputs #:allow-other-keys)
7189 (substitute* "bin/ravanan"
7190 (("^exec guile")
7191 (string-append "exec "
7192 (search-input-file inputs "/bin/guile"))))))
7193 (delete 'configure)
7194 (add-after 'install 'wrap
7195 (lambda* (#:key inputs outputs #:allow-other-keys)
7196 (let ((out (assoc-ref outputs "out"))
7197 (effective-version (target-guile-effective-version)))
7198 (wrap-program (string-append out "/bin/ravanan")
7199 `("GUILE_LOAD_PATH" prefix
7200 (,(string-append out "/share/guile/site/" effective-version)
7201 ,(getenv "GUILE_LOAD_PATH")))
7202 `("GUILE_LOAD_COMPILED_PATH" prefix
7203 (,(string-append out "/lib/guile/"
7204 effective-version "/site-ccache")
7205 ,(getenv "GUILE_LOAD_COMPILED_PATH")))))))))))
7206 (inputs
7207 (list bash-minimal
7208 node
7209 (lookup-package-input guix "guile")
7210 guile-filesystem
7211 guile-gcrypt
7212 guile-json-4
7213 guile-libyaml
7214 guix))
7215 (native-inputs
7216 (list guile-run64
7217 lzip))
7218 (build-system gnu-build-system)
7219 (home-page "https://forge.systemreboot.net/ravanan/")
7220 (synopsis "High-reproducibility CWL runner powered by Guix")
7221 (description "ravanan is a @acronym{CWL, Common Workflow Language}
7222implementation that is powered by GNU Guix and provides strong reproducibility
7223guarantees. ravanan provides strong caching of intermediate results so the
7224same step of a workflow is never run twice. ravanan captures logs from every
7225step of the workflow for easy tracing back in case of job failures. ravanan
7226currently runs on single machines and on slurm via its API.")
7227 (license license:gpl3+)))
7228
7229(define-public python-dendropy
7230 (package
7231 (name "python-dendropy")
7232 (version "5.0.8")
7233 (source
7234 (origin
7235 (method git-fetch)
7236 (uri (git-reference
7237 (url "https://github.com/jeetsukumaran/DendroPy")
7238 (commit (string-append "v" version))))
7239 (file-name (git-file-name name version))
7240 (sha256
7241 (base32
7242 "0gcg4brixwh1dykrwkb2iyg9q27zz6d4gd7p05p08r8pbvsscqh2"))))
7243 (build-system pyproject-build-system)
7244 (arguments
7245 (list
7246 ;; tests: 1047 passed, 5 deselected, 12 warnings
7247 #:test-flags
7248 #~(list "-k"
7249 (string-join
7250 ;; These tests fail because we have no "paup" executable.
7251 (list "not test_group1"
7252 "test_basic_split_counting_under_different_rootings"
7253 "test_basic_split_count_with_incorrect_weight_treatment_raises_error"
7254 "test_basic_split_count_with_incorrect_rootings_raises_error")
7255 " and not "))))
7256 (native-inputs
7257 (list python-pytest
7258 python-setuptools))
7259 (home-page "https://dendropy.org/")
7260 (synopsis "Library for phylogenetics and phylogenetic computing")
7261 (description
7262 "DendroPy is a library for phylogenetics and phylogenetic computing: reading,
7263writing, simulation, processing and manipulation of phylogenetic
7264trees (phylogenies) and characters.")
7265 (license license:bsd-3)))
7266
7267(define-public python-py2bit
7268 (package
7269 (name "python-py2bit")
7270 (version "0.3.3")
7271 (source
7272 (origin
7273 (method url-fetch)
7274 (uri (pypi-uri "py2bit" version))
7275 (sha256
7276 (base32
7277 "0w1p4l1jwg9kkifm0jsg33a212ps0jn61islmnng2afp77y5nkr6"))))
7278 (build-system pyproject-build-system)
7279 (arguments
7280 (list #:test-flags #~(list "py2bitTest/test.py")))
7281 (native-inputs (list python-pytest python-setuptools python-setuptools-scm))
7282 (home-page "https://github.com/dpryan79/py2bit")
7283 (synopsis "Access 2bit files using lib2bit")
7284 (description
7285 "This package provides Python bindings for lib2bit to access 2bit files
7286with Python.")
7287 (license license:expat)))
7288
7289(define-public deacon
7290 (package
7291 (name "deacon")
7292 (version "0.18.0")
7293 (source
7294 (origin
7295 (method url-fetch)
7296 (uri (crate-uri "deacon" version))
7297 (file-name (string-append name "-" version ".tar.gz"))
7298 (sha256
7299 (base32 "1m7r864mr30m2bpaax3l2hz14r8imbqyhj8iz9m2q362dh19xygm"))))
7300 (build-system cargo-build-system)
7301 (arguments
7302 (list
7303 #:install-source? #f
7304 #:features ''("ensure_simd/scalar"))) ; Avoid AVX2 dependency.
7305 (native-inputs (list pkg-config))
7306 (inputs (cons* bzip2
7307 xz
7308 `(,zstd "lib")
7309 (cargo-inputs 'deacon)))
7310 (home-page "https://github.com/bede/deacon")
7311 (synopsis
7312 "Accelerated DNA sequence search and [host] depletion using minimizers")
7313 (description
7314 "Deacon filters DNA sequences in FASTA/Q files and streams using
7315SIMD-accelerated minimizer comparison with query sequence(s), emitting either
7316matching sequences (search mode), or sequences without matches (deplete mode).
7317Sequences match when they share enough distinct minimizers with the indexed
7318query to exceed chosen absolute and relative thresholds. Query size has little
7319impact on filtering speed, enabling ultrafast search and depletion with gene-,
7320genome- and pangenome-scale queries using a laptop.")
7321 ;; Upstream suggests compiling with '-C target-cpu=native'
7322 (properties '((tunable? . #t)))
7323 (license license:expat)))
7324
7325(define-public delly
7326 (package
7327 (name "delly")
7328 (version "1.7.3")
7329 (source (origin
7330 (method git-fetch)
7331 (uri (git-reference
7332 (url "https://github.com/dellytools/delly")
7333 (commit (string-append "v" version))))
7334 (file-name (git-file-name name version))
7335 (sha256
7336 (base32 "1ri7m7iv3wakm7zdwqdzm5m71y0swad9n78dzrzr9gs3j7j5yxjs"))
7337 (modules '((guix build utils)))
7338 (snippet
7339 '(delete-file-recursively "src/htslib"))))
7340 (build-system gnu-build-system)
7341 (arguments
7342 (list
7343 #:tests? #f ;There are no tests to run.
7344 #:make-flags
7345 #~(list "PARALLEL=1" ; Allow parallel execution at run-time.
7346 (string-append "prefix=" #$output))
7347 #:phases
7348 #~(modify-phases %standard-phases
7349 (delete 'configure) ; There is no configure phase.
7350 (add-after 'install 'install-templates
7351 (lambda _
7352 (let ((templates (string-append #$output
7353 "/share/delly/templates")))
7354 (mkdir-p templates)
7355 (copy-recursively "excludeTemplates" templates)))))))
7356 (inputs
7357 (list boost bzip2 htslib zlib))
7358 (home-page "https://github.com/dellytools/delly")
7359 (synopsis "Integrated structural variant prediction method")
7360 (description "Delly is an integrated structural variant prediction method
7361that can discover and genotype deletions, tandem duplications, inversions and
7362translocations at single-nucleotide resolution in short-read massively parallel
7363sequencing data. It uses paired-ends and split-reads to sensitively and
7364accurately delineate genomic rearrangements throughout the genome.")
7365 (license license:gpl3+)))
7366
7367(define-public transanno
7368 (package
7369 (name "transanno")
7370 (version "0.4.5")
7371 (source
7372 (origin
7373 (method git-fetch)
7374 (uri (git-reference
7375 (url "https://github.com/informationsea/transanno")
7376 (commit (string-append "v" version))))
7377 (file-name (git-file-name name version))
7378 (sha256
7379 (base32
7380 "0x62v8qhnpw8579kcqpr9k5ldv2y3awjp7a32f1j8qky0i1jgxp1"))
7381 (snippet
7382 '(with-output-to-file "liftover-rs/build.rs"
7383 (lambda _
7384 (format #true
7385 "fn main() {~@
7386 println!(\"cargo:rustc-link-lib=lzma\");~@
7387 }~%"))))))
7388 (build-system cargo-build-system)
7389 (arguments
7390 (list
7391 #:install-source? #false ;fails
7392 #:phases
7393 #~(modify-phases %standard-phases
7394 (add-after 'unpack 'prepare-test-files
7395 (lambda _
7396 (delete-file "Cargo.lock")
7397 (substitute* "liftover-rs/prepare-test.sh"
7398 (("/bin/bash")
7399 (string-append #$(this-package-native-input "bash")
7400 "/bin/bash")))
7401 (invoke "bash" "prepare-test-files.sh")))
7402 (add-before 'install 'chdir
7403 (lambda _ (chdir "transanno"))))))
7404 (native-inputs (list bash pkg-config))
7405 (inputs (cons* xz `(,zstd "lib") (cargo-inputs 'transanno)))
7406 (home-page "https://github.com/informationsea/transanno")
7407 (synopsis "LiftOver tool for new genome assemblies")
7408 (description "This package provides an accurate VCF/GFF3/GTF LiftOver tool
7409for new genome assemblies.")
7410 (license license:gpl3+)))
7411
7412(define-public trf
7413 (package
7414 (name "trf")
7415 (version "4.09.1")
7416 (source (origin
7417 (method git-fetch)
7418 (uri (git-reference
7419 (url "https://github.com/Benson-Genomics-Lab/TRF")
7420 (commit (string-append "v" version))))
7421 (file-name (git-file-name name version))
7422 (sha256
7423 (base32 "0fhwr4s1mf8nw8fr5imwjvjr42b59p97zr961ifm8xl1bajz4wpg"))))
7424 (build-system gnu-build-system)
7425 (home-page "https://github.com/Benson-Genomics-Lab/TRF")
7426 (synopsis "Tandem Repeats Finder: a program to analyze DNA sequences")
7427 (description "A tandem repeat in DNA is two or more adjacent, approximate
7428copies of a pattern of nucleotides. Tandem Repeats Finder is a program to
7429locate and display tandem repeats in DNA sequences. In order to use the
7430program, the user submits a sequence in FASTA format. The output consists of
7431two files: a repeat table file and an alignment file. Submitted sequences may
7432be of arbitrary length. Repeats with pattern size in the range from 1 to 2000
7433bases are detected.")
7434 (license license:agpl3+)))
7435
7436(define-public trinityrnaseq
7437 (package
7438 (name "trinityrnaseq")
7439 (version "2.15.2")
7440 (source (origin
7441 (method git-fetch)
7442 (uri (git-reference
7443 (url "https://github.com/trinityrnaseq/trinityrnaseq.git")
7444 (commit (string-append "Trinity-v" version))
7445 (recursive? #true)))
7446 (file-name (git-file-name name version))
7447 (sha256
7448 (base32
7449 "06qvxy6wvvjpn1mkg8m78syyn98xj76569gpl2jbc9q036i56kh8"))))
7450 (build-system gnu-build-system)
7451 (arguments
7452 (list
7453 #:test-target "test"
7454 #:modules
7455 '((guix build gnu-build-system)
7456 (guix build utils)
7457 (ice-9 match)
7458 (srfi srfi-1))
7459 #:make-flags
7460 #~(list (string-append "CC=" #$(cc-for-target)))
7461 #:phases
7462 #~(modify-phases %standard-phases
7463 (replace 'configure
7464 (lambda _
7465 (setenv "SHELL" (which "sh"))
7466 (setenv "CONFIG_SHELL" (which "sh"))
7467 ;; Do not require version.h, which triggers a local build of a
7468 ;; vendored htslib.
7469 (substitute* "trinity-plugins/bamsifter/Makefile"
7470 (("sift_bam_max_cov.cpp htslib/version.h")
7471 "sift_bam_max_cov.cpp"))))
7472 (add-after 'build 'build-plugins
7473 (lambda _
7474 ;; Run this in the subdirectory to avoid running the
7475 ;; tests right here.
7476 (with-directory-excursion "trinity-plugins"
7477 (invoke "make" "plugins"))))
7478 ;; The install script uses rsync, provides no overrides for the
7479 ;; default location at /usr/local/bin, and patching it would change
7480 ;; all lines that do something.
7481 (replace 'install
7482 (lambda* (#:key inputs #:allow-other-keys)
7483 (let ((share (string-append #$output "/share/trinity/"))
7484 (bin (string-append #$output "/bin/")))
7485 (mkdir-p bin)
7486 (copy-recursively "." share)
7487
7488 (wrap-program (string-append share "Trinity")
7489 `("R_LIBS_SITE" ":" = (,(getenv "R_LIBS_SITE")))
7490 `("PERL5LIB" ":" = (,(getenv "PERL5LIB")))
7491 `("PYTHONPATH" ":" = (,(getenv "GUIX_PYTHONPATH")))
7492 `("PATH" ":" =
7493 ,(cons (string-append share "/trinity-plugins/BIN")
7494 (filter-map (match-lambda
7495 ((name . dir)
7496 (string-append dir "/bin")))
7497 inputs))))
7498 (symlink (string-append share "Trinity")
7499 (string-append bin "Trinity"))))))))
7500 (inputs
7501 (list blast+
7502 bowtie
7503 fastqc
7504 hisat
7505 htslib
7506 icedtea-8
7507 jellyfish
7508 kallisto
7509 multiqc
7510 perl
7511 perl-uri-escape
7512 python-numpy
7513 python-wrapper
7514 r-ape
7515 r-argparse
7516 r-biobase
7517 r-ctc
7518 r-deseq2
7519 r-edger
7520 r-fastcluster
7521 r-glimma
7522 r-goplot
7523 r-goseq
7524 r-gplots
7525 r-minimal
7526 r-qvalue
7527 r-rots
7528 r-sm
7529 r-tidyverse
7530 rsem
7531 salmon
7532 samtools
7533 sra-tools
7534 star
7535 zlib))
7536 (propagated-inputs
7537 (list coreutils
7538 gzip
7539 which))
7540 (native-inputs (list cmake-minimal))
7541 (home-page "https://github.com/trinityrnaseq/trinityrnaseq/wiki")
7542 (synopsis "Trinity RNA-Seq de novo transcriptome assembly")
7543 (description "Trinity assembles transcript sequences from Illumina RNA-Seq
7544data. Trinity represents a novel method for the efficient and robust de novo
7545reconstruction of transcriptomes from RNA-seq data. Trinity combines three
7546independent software modules: Inchworm, Chrysalis, and Butterfly, applied
7547sequentially to process large volumes of RNA-seq reads. Trinity partitions
7548the sequence data into many individual de Bruijn graphs, each representing the
7549transcriptional complexity at a given gene or locus, and then processes each
7550graph independently to extract full-length splicing isoforms and to tease
7551apart transcripts derived from paralogous genes.")
7552 (license license:bsd-3)))
7553
7554(define-public repeat-masker
7555 (package
7556 (name "repeat-masker")
7557 (version "4.1.2-p1")
7558 (source (origin
7559 (method url-fetch)
7560 (uri (string-append "http://www.repeatmasker.org/"
7561 "RepeatMasker/RepeatMasker-"
7562 version ".tar.gz"))
7563 (sha256
7564 (base32 "15hfdfpzmdjcx7ng7rjfid69bmvgn3z9g9r43qhjnhjhq3v4prab"))))
7565 (build-system gnu-build-system)
7566 (arguments
7567 `(#:tests? #false ; there are none
7568 #:phases
7569 (modify-phases %standard-phases
7570 (delete 'configure)
7571 (replace 'build
7572 (lambda* (#:key inputs outputs #:allow-other-keys)
7573 (let ((share (string-append (assoc-ref outputs "out")
7574 "/share/RepeatMasker")))
7575 (mkdir-p share)
7576 (copy-recursively "." share)
7577 (with-directory-excursion share
7578 (invoke "perl" "configure"
7579 "--trf_prgm" (which "trf")
7580 "--hmmer_dir"
7581 (string-append (assoc-ref inputs "hmmer")
7582 "/bin"))))))
7583 (replace 'install
7584 (lambda* (#:key outputs #:allow-other-keys)
7585 (let* ((out (assoc-ref outputs "out"))
7586 (share (string-append out "/share/RepeatMasker"))
7587 (bin (string-append out "/bin"))
7588 (path (getenv "PERL5LIB")))
7589 (install-file (string-append share "/RepeatMasker") bin)
7590 (wrap-program (string-append bin "/RepeatMasker")
7591 `("PERL5LIB" ":" prefix (,path ,share)))))))))
7592 (inputs
7593 (list bash-minimal
7594 perl
7595 perl-text-soundex
7596 python
7597 python-h5py
7598 hmmer
7599 trf))
7600 (home-page "https://github.com/Benson-Genomics-Lab/TRF")
7601 (synopsis "Tandem Repeats Finder: a program to analyze DNA sequences")
7602 (description "A tandem repeat in DNA is two or more adjacent, approximate
7603copies of a pattern of nucleotides. Tandem Repeats Finder is a program to
7604locate and display tandem repeats in DNA sequences. In order to use the
7605program, the user submits a sequence in FASTA format. The output consists of
7606two files: a repeat table file and an alignment file. Submitted sequences may
7607be of arbitrary length. Repeats with pattern size in the range from 1 to 2000
7608bases are detected.")
7609 (license license:osl2.1)))
7610
7611(define-public trust4
7612 (package
7613 (name "trust4")
7614 (version "1.1.0")
7615 (source
7616 (origin
7617 (method git-fetch)
7618 (uri (git-reference
7619 (url "https://github.com/liulab-dfci/TRUST4")
7620 (commit (string-append "v" version))))
7621 (file-name (git-file-name name version))
7622 (sha256
7623 (base32 "170k4rrchg7f2jyn3v4y4fxxq1d49n1vnvhx5xcnnr6jql8q3h08"))
7624 (modules '((guix build utils)))
7625 (snippet '(begin
7626 ;; Remove bundled samtools
7627 (delete-file-recursively "samtools-0.1.19")))))
7628 (build-system gnu-build-system)
7629 (arguments
7630 (list
7631 #:tests? #f ;there are no tests
7632 #:phases
7633 #~(modify-phases %standard-phases
7634 (add-after 'unpack 'use-samtools-headers
7635 (lambda* (#:key inputs #:allow-other-keys)
7636 (substitute* "Makefile"
7637 (("LINKPATH= -I./samtools-0.1.19 -L./samtools-0.1.19")
7638 (string-append "LINKPATH= -I."
7639 #$(this-package-native-input "samtools")
7640 "/include/samtools"
7641 " -L."
7642 #$(this-package-native-input "samtools")
7643 "/lib"))
7644 (("./samtools-0.1.19/")
7645 (string-append #$(this-package-native-input
7646 "samtools") "/lib/")))
7647 (substitute* "alignments.hpp"
7648 (("samtools-0.1.19")
7649 (string-append #$(this-package-native-input
7650 "samtools") "/include/samtools")))))
7651 (delete 'configure) ; No configure.
7652 (replace 'install
7653 (lambda* (#:key outputs #:allow-other-keys)
7654 (let ((bin (string-append (assoc-ref outputs "out") "/bin"))
7655 (scripts (string-append #$output
7656 "/share/trust4/scripts")))
7657 (install-file "annotator" bin)
7658 (install-file "bam-extractor" bin)
7659 (install-file "fastq-extractor" bin)
7660 (install-file "run-trust4" bin)
7661 (install-file "trust4" bin)
7662 ;; install scripts stored in the scrips dir
7663 (for-each (lambda (file)
7664 (chmod file #o555))
7665 (find-files "scripts" "\\.p(y|l)"))
7666 (copy-recursively "scripts" scripts)
7667 (delete-file-recursively "scripts")
7668 ;; install the rest of the scripts that are in the main dir
7669 (for-each (lambda (file)
7670 (chmod file #o555)
7671 (install-file file bin))
7672 (find-files "." "\\.(pl|py|sh)"))))))))
7673 (native-inputs (list automake samtools-0.1))
7674 (inputs (list perl python-wrapper zlib))
7675 (home-page "https://github.com/liulab-dfci/TRUST4")
7676 (synopsis "TCR and BCR assembly from RNA-seq data")
7677 (description "This package is analyzing @acronym{TCR, T cell receptor} and
7678@acronym{BCR, B cell receptor} sequences using unselected RNA sequencing data,
7679profiled from fluid and solid tissues, including tumors. TRUST4 performs de
7680novo assembly on V, J, C genes including the hypervariable @acronym{CDR3,
7681complementarity-determining region 3} and reports consensus contigs of BCR/TCR
7682sequences. TRUST4 then realigns the contigs to IMGT reference gene sequences to
7683identify the corresponding gene and CDR3 details. TRUST4 supports both single-end
7684and paired-end bulk or single-cell sequencing data with any read length.")
7685 (license license:gpl3)))
7686
7687(define-public python-airr
7688 (package
7689 (name "python-airr")
7690 (version "1.5.1")
7691 (source
7692 (origin
7693 (method url-fetch)
7694 (uri (pypi-uri "airr" version))
7695 (sha256
7696 (base32 "0jbigfdwa23xv5riw0ljdfq2qwg1b2fav2kfi81zxd1g1jprxy3i"))))
7697 (build-system pyproject-build-system)
7698 (native-inputs
7699 (list python-jsondiff
7700 python-pytest
7701 python-setuptools))
7702 (propagated-inputs
7703 (list python-pandas
7704 python-pyyaml
7705 python-yamlordereddictloader))
7706 (home-page "http://docs.airr-community.org")
7707 (synopsis "Data Representation Standard library for antibody and TCR sequences")
7708 (description "Python-airr provides a library by the AIRR community to for
7709describing, reporting, storing, and sharing adaptive immune receptor
7710repertoire (AIRR) data, such as sequences of antibodies and T cell
7711receptors (TCRs).")
7712 (license license:cc-by4.0)))
7713
7714(define-public diamond
7715 (package
7716 (name "diamond")
7717 (version "2.1.6")
7718 (source (origin
7719 (method git-fetch)
7720 (uri (git-reference
7721 (url "https://github.com/bbuchfink/diamond")
7722 (commit (string-append "v" version))))
7723 (file-name (git-file-name name version))
7724 (sha256
7725 (base32
7726 "0kb17jwlsrvgswfahzznrffv1i6ybwwmq99qs7iga5yzbx64jp6q"))))
7727 (build-system cmake-build-system)
7728 (arguments
7729 (list #:configure-flags '(list "-DX86=OFF"))) ;avoid SSE4 and AVX2
7730 (inputs (list zlib))
7731 (home-page "https://github.com/bbuchfink/diamond")
7732 (synopsis "Accelerated BLAST compatible local sequence aligner")
7733 (description
7734 "DIAMOND is a BLAST-compatible local aligner for mapping protein and
7735translated DNA query sequences against a protein reference database (BLASTP
7736and BLASTX alignment mode). The speedup over BLAST is up to 20,000 on short
7737reads at a typical sensitivity of 90-99% relative to BLAST depending on the
7738data and settings.")
7739 (license license:gpl3+)))
7740
7741(define-public eddylab-squid
7742 (package
7743 (name "eddylab-squid")
7744 (version "1.9g")
7745 (source
7746 (origin
7747 (method url-fetch)
7748 (uri (string-append "http://eddylab.org/software/squid/squid-"
7749 version ".tar.gz"))
7750 (sha256
7751 (base32
7752 "19ywv1h581a84yyjnp64gwww99vhgbxi8v4rl37xp92ag7l44brh"))))
7753 (build-system gnu-build-system)
7754 (arguments
7755 `(#:phases
7756 (modify-phases %standard-phases
7757 (add-before 'check 'set-perl-search-path
7758 (lambda _
7759 ;; Work around "dotless @INC" build failure.
7760 (setenv "PERL5LIB"
7761 (string-append (getcwd) "/Testsuite:"
7762 (getenv "PERL5LIB"))))))))
7763 (inputs (list perl))
7764 (home-page "http://eddylab.org/software.html")
7765 (synopsis "C function library for sequence analysis")
7766 (description "SQUID is Sean Eddy's personal library of C functions
7767and utility programs for sequence analysis.")
7768 (license license:gpl2)))
7769
7770(define-public edirect
7771 (package
7772 (name "edirect")
7773 (version "13.3.20200128")
7774 (source (origin
7775 (method url-fetch)
7776 (uri (string-append "ftp://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect"
7777 "/versions/" version
7778 "/edirect-" version ".tar.gz"))
7779 (sha256
7780 (base32
7781 "093zp7klv81ph0y8mm8d78a9hnpfxbv2kdym70gzdf3vz176rw33"))
7782 (modules '((guix build utils)))
7783 (snippet
7784 '(begin (delete-file "Mozilla-CA.tar.gz")
7785 (substitute* "rchive.go"
7786 ;; This go library does not have any license.
7787 (("github.com/fiam/gounidecode/unidecode")
7788 "golang.org/rainycape/unidecode"))))))
7789 (build-system perl-build-system)
7790 (arguments
7791 `(#:phases
7792 (modify-phases %standard-phases
7793 (delete 'configure)
7794 (delete 'build)
7795 (delete 'check) ; simple check after install
7796 (add-after 'unpack 'patch-programs
7797 (lambda* (#:key inputs #:allow-other-keys)
7798 ;; Ignore errors about missing xtract.Linux and rchive.Linux.
7799 (substitute* "pm-refresh"
7800 (("cat \\\"\\$target")
7801 "grep ^[[:digit:]] \"$target"))))
7802 (replace 'install
7803 (lambda* (#:key inputs outputs #:allow-other-keys)
7804 (let ((bin (string-append (assoc-ref outputs "out") "/bin"))
7805 (edirect-go (assoc-ref inputs "edirect-go-programs")))
7806 (for-each
7807 (lambda (file)
7808 (install-file file bin))
7809 '("archive-pubmed" "asp-cp" "asp-ls" "download-ncbi-data"
7810 "download-pubmed" "edirect.pl" "efetch" "epost" "esearch"
7811 "fetch-pubmed" "ftp-cp" "ftp-ls" "has-asp" "index-pubmed"
7812 "pm-prepare" "pm-refresh" "pm-stash" "pm-collect"
7813 "pm-index" "pm-invert" "pm-merge" "pm-promote"))
7814 (symlink (string-append edirect-go "/bin/xtract.Linux")
7815 (string-append bin "/xtract"))
7816 (symlink (string-append edirect-go "/bin/rchive.Linux")
7817 (string-append bin "/rchive")))))
7818 (add-after 'install 'wrap-program
7819 (lambda* (#:key outputs #:allow-other-keys)
7820 ;; Make sure everything can run in a pure environment.
7821 (let ((out (assoc-ref outputs "out"))
7822 (path (getenv "PERL5LIB")))
7823 (for-each
7824 (lambda (file)
7825 (wrap-program file
7826 `("PERL5LIB" ":" prefix (,path)))
7827 (wrap-program file
7828 `("PATH" ":" prefix (,(string-append out "/bin")
7829 ,(dirname (which "sed"))
7830 ,(dirname (which "gzip"))
7831 ,(dirname (which "grep"))
7832 ,(dirname (which "perl"))
7833 ,(dirname (which "uname"))))))
7834 (find-files out ".")))))
7835 (add-after 'wrap-program 'check
7836 (lambda* (#:key outputs #:allow-other-keys)
7837 (invoke (string-append (assoc-ref outputs "out")
7838 "/bin/edirect.pl")
7839 "-filter" "-help"))))))
7840 (inputs
7841 (list bash-minimal
7842 edirect-go-programs
7843 perl-html-parser
7844 perl-encode-locale
7845 perl-file-listing
7846 perl-html-tagset
7847 perl-html-tree
7848 perl-http-cookies
7849 perl-http-date
7850 perl-http-message
7851 perl-http-negotiate
7852 perl-lwp-mediatypes
7853 perl-lwp-protocol-https
7854 perl-net-http
7855 perl-uri
7856 perl-www-robotrules
7857 perl-xml-simple
7858 perl))
7859 (home-page "https://www.ncbi.nlm.nih.gov/books/NBK179288/")
7860 (synopsis "Tools for accessing the NCBI's set of databases")
7861 (description
7862 "Entrez Direct (EDirect) is a method for accessing the National Center
7863for Biotechnology Information's (NCBI) set of interconnected
7864databases (publication, sequence, structure, gene, variation, expression,
7865etc.) from a terminal. Functions take search terms from command-line
7866arguments. Individual operations are combined to build multi-step queries.
7867Record retrieval and formatting normally complete the process.
7868
7869EDirect also provides an argument-driven function that simplifies the
7870extraction of data from document summaries or other results that are returned
7871in structured XML format. This can eliminate the need for writing custom
7872software to answer ad hoc questions.")
7873 (native-search-paths
7874 ;; Ideally this should be set for LWP somewhere.
7875 (list (search-path-specification
7876 (variable "PERL_LWP_SSL_CA_FILE")
7877 (file-type 'regular)
7878 (separator #f)
7879 (files '("/etc/ssl/certs/ca-certificates.crt")))))
7880 (license license:public-domain)))
7881
7882(define-public edirect-go-programs
7883 (package
7884 (inherit edirect)
7885 (name "edirect-go-programs")
7886 (build-system go-build-system)
7887 (arguments
7888 `(#:install-source? #f
7889 #:tests? #f ; No tests.
7890 #:import-path "ncbi.nlm.nih.gov/entrez/edirect"
7891 #:phases
7892 (modify-phases %standard-phases
7893 (replace 'build
7894 (lambda* (#:key import-path #:allow-other-keys)
7895 (with-directory-excursion (string-append "src/" import-path)
7896 (invoke "go" "build" "-v" "-x" "j2x.go")
7897 (invoke "go" "build" "-v" "-x" "t2x.go")
7898 (invoke "go" "build" "-v" "-x" "-o"
7899 "xtract.Linux" "xtract.go" "common.go")
7900 (invoke "go" "build" "-v" "-x" "-o"
7901 "rchive.Linux" "rchive.go" "common.go")
7902 (invoke "go" "build" "-v" "-x" "-o" "symbols.Linux" "s2p.go"))))
7903 (replace 'install
7904 (lambda* (#:key outputs import-path #:allow-other-keys)
7905 (let ((dest (string-append (assoc-ref outputs "out") "/bin"))
7906 (source (string-append "src/" import-path "/")))
7907 (for-each (lambda (file)
7908 (format #t "installing ~a~%" file)
7909 (install-file (string-append source file) dest))
7910 '("j2x" "t2x" "symbols.Linux" "xtract.Linux" "rchive.Linux"))
7911 #t))))))
7912 (native-inputs '())
7913 (propagated-inputs '())
7914 (inputs
7915 (list go-github-com-fatih-color
7916 go-github-com-fogleman-gg
7917 go-github-com-gedex-inflector
7918 go-github-com-golang-freetype
7919 go-github-com-klauspost-cpuid
7920 go-github-com-pbnjay-memory
7921 go-github-com-surgebase-porter2
7922 go-golang-org-rainycape-unidecode
7923 go-golang-org-x-image
7924 go-golang-org-x-text))))
7925
7926(define-public python-baltica
7927 (package
7928 (name "python-baltica")
7929 (version "1.1.2")
7930 (source (origin
7931 (method git-fetch)
7932 (uri (git-reference
7933 (url "https://github.com/dieterich-lab/Baltica")
7934 (commit (string-append "v" version))))
7935 (file-name (git-file-name name version))
7936 (sha256
7937 (base32
7938 "001ac03v9pbqqzf9pv7v8gf0296ksa4f0v3wdmpa6m9701skqi4r"))))
7939 (build-system pyproject-build-system)
7940 (arguments
7941 (list
7942 #:phases
7943 '(modify-phases %standard-phases
7944 (replace 'check
7945 (lambda* (#:key tests? #:allow-other-keys)
7946 (when tests?
7947 ;; The tests need to be run from elsewhere...
7948 (mkdir-p "/tmp/test")
7949 (copy-recursively ".tests" "/tmp/test")
7950 (with-directory-excursion "/tmp/test"
7951 (invoke "pytest" "-v" "--doctest-modules"))))))))
7952 (propagated-inputs
7953 (list gunicorn
7954 python-anndata
7955 python-click
7956 python-flask
7957 python-flask-wtf
7958 python-h5py
7959 python-numpy
7960 python-psutil
7961 python-pysam
7962 python-pyyaml
7963 python-scipy
7964 r-biocmanager
7965 r-dplyr
7966 r-genomicranges
7967 r-here
7968 r-openxlsx
7969 r-optparse
7970 r-readr
7971 r-rsamtools
7972 r-stringr
7973 r-tidyr
7974 r-upsetr
7975 r-yaml
7976 snakemake))
7977 (native-inputs (list python-cython python-pyfakefs python-pytest))
7978 (home-page "https://github.com/dieterich-lab/Baltica")
7979 (synopsis "Integrated splice junction usage analysis")
7980 (description
7981 "This framework facilitates the execution of @dfn{differential junction
7982usage} (DJU) methods. Additionally, it enables the integration of results from
7983multiple DJU methods.")
7984 (license license:expat)))
7985
7986(define-public python-bamnostic
7987 (package
7988 (name "python-bamnostic")
7989 (version "1.3.0")
7990 (source
7991 (origin
7992 (method git-fetch)
7993 (uri (git-reference
7994 (url "https://github.com/betteridiot/bamnostic/")
7995 (commit (string-append "v" version))))
7996 (file-name (git-file-name name version))
7997 (sha256
7998 (base32 "1rlr46zcb0hzi9lj9naf3gkqqqxhzbwd84zxyjsaa8dvcdm23x14"))))
7999 (build-system pyproject-build-system)
8000 (native-inputs (list python-pytest python-setuptools))
8001 (home-page "https://github.com/betteridiot/bamnostic/")
8002 (synopsis "Tool for binary alignment map, random access and parsing")
8003 (description
8004 "Bamnostic is a pure Python @dfn{Binary Alignment Map} (BAM) file parser
8005and random access tool.")
8006 (license license:bsd-3)))
8007
8008(define-public python-modbedtools
8009 (package
8010 (name "python-modbedtools")
8011 (version "0.2.0")
8012 (source
8013 (origin
8014 (method url-fetch)
8015 (uri (pypi-uri "modbedtools" version))
8016 (sha256
8017 (base32 "1cl8ski098daw85vcygc22c7shpk3z34zs0rpa584w93xspsv10r"))))
8018 (build-system pyproject-build-system)
8019 (propagated-inputs (list python-pysam))
8020 (native-inputs (list python-setuptools
8021 python-setuptools-scm))
8022 ;; No tests in PyPI archive, git provides no tests scenarios either; there
8023 ;; is some test data in "test" directory but no description in README how
8024 ;; to use them for testing the module.
8025 (arguments (list #:tests? #f))
8026 (home-page "https://github.com/lidaof/modbedtools")
8027 (synopsis
8028 "Generate modbed track files for visualization on WashU Epigenome Browser")
8029 (description
8030 "modbedtools is a python command line tool to generate modbed files for
8031visualization on the WashU Epigenome Browser.")
8032 (license license:expat)))
8033
8034(define-public python-ete3
8035 (package
8036 (name "python-ete3")
8037 (version "3.1.3")
8038 (source (origin
8039 (method git-fetch)
8040 (uri (git-reference
8041 (url "https://github.com/etetoolkit/ete")
8042 (commit version)))
8043 (file-name (git-file-name name version))
8044 (sha256
8045 (base32
8046 "1i6533wsm06mz0sdrisqai929j744cnczwjgsmxl847q5k16kngd"))))
8047 (build-system pyproject-build-system)
8048 (arguments
8049 (list
8050 #:test-flags
8051 '(list "-k"
8052 ;; This test crashes Python in the build container
8053 (string-append "not test_renderer"
8054 ;; These all need internet access
8055 " and not test_00_update_database"
8056 " and not test_01tree_annotation"
8057 " and not test_get_topology"
8058 " and not test_merged_id"
8059 " and not test_ncbi_compare"
8060 " and not test_ncbiquery")
8061 "ete3/test/test_api.py")
8062 #:phases
8063 '(modify-phases %standard-phases
8064 (add-after 'unpack 'python312-compatibility
8065 (lambda _
8066 (substitute* '("ete3/test/test_arraytable.py"
8067 "ete3/test/test_evol.py")
8068 (("assert_") "assertTrue")))))))
8069 (propagated-inputs
8070 (list python-lxml
8071 python-numpy
8072 python-pyqt
8073 python-scipy
8074 python-six))
8075 (native-inputs
8076 (list python-pytest python-setuptools))
8077 (home-page "http://etetoolkit.org")
8078 (synopsis "Python environment for phylogenetic tree exploration")
8079 (description
8080 "This package provides a Python environment for phylogenetic tree
8081exploration.")
8082 (license license:gpl3+)))
8083
8084(define-public python-illumina-utils
8085 (package
8086 (name "python-illumina-utils")
8087 (version "2.13")
8088 (source
8089 (origin
8090 (method git-fetch)
8091 (uri (git-reference
8092 (url "https://github.com/meren/illumina-utils")
8093 (commit (string-append "v" version))))
8094 (file-name (git-file-name name version))
8095 (sha256
8096 (base32 "15cyb5slw07va5siq8nzc0nwcgnvx1hmqqrgwk2v0fxy250fp9v4"))))
8097 (build-system pyproject-build-system)
8098 (arguments
8099 (list
8100 #:tests? #f ;there are none
8101 #:phases
8102 #~(modify-phases %standard-phases
8103 (add-after 'unpack 'adjust-requirements
8104 (lambda _
8105 (substitute* "requirements.txt"
8106 (("python-Levenshtein")
8107 "levenshtein")))))))
8108 (propagated-inputs (list python-levenshtein python-matplotlib python-numpy))
8109 (native-inputs (list python-pip python-setuptools))
8110 (home-page "https://github.com/meren/illumina-utils")
8111 (synopsis "Library and scripts to work with Illumina paired-end data")
8112 (description
8113 "This package provides a library and collection of scripts to work with
8114Illumina paired-end data (for CASAVA 1.8+).")
8115 (license license:gpl2+)))
8116
8117(define-public python-pyani
8118 (package
8119 (name "python-pyani")
8120 (version "0.2.12")
8121 (source (origin
8122 (method url-fetch)
8123 (uri (pypi-uri "pyani" version))
8124 (sha256
8125 (base32
8126 "124kdg7168nbh4a5wisfws1fgkd89dd4js9v6dml2lvgclbv4mjg"))))
8127 (build-system pyproject-build-system)
8128 ;; This contains two test data files but no way to run the tests.
8129 (arguments (list #:tests? #false))
8130 (propagated-inputs
8131 (list python-biopython python-matplotlib python-pandas
8132 python-scipy python-seaborn))
8133 (native-inputs (list python-setuptools))
8134 (home-page "https://widdowquinn.github.io/pyani/")
8135 (synopsis "Calculate genome-scale average nucleotide identity")
8136 (description
8137 "Pyani provides a package and script for calculation of genome-scale
8138average nucleotide identity.")
8139 (license license:expat)))
8140
8141(define-public python-pyahocorasick
8142 (package
8143 (name "python-pyahocorasick")
8144 (version "2.2.0")
8145 (source
8146 (origin
8147 (method git-fetch)
8148 (uri (git-reference
8149 (url "https://github.com/WojciechMula/pyahocorasick")
8150 (commit (string-append "v" version))))
8151 (file-name (git-file-name name version))
8152 (sha256
8153 (base32 "0r9n8awy80dg8dmgza4kpgwbpkvjf4s85cyswnq04h3x6cf62lll"))))
8154 (build-system pyproject-build-system)
8155 (native-inputs (list python-pytest python-setuptools))
8156 (home-page "https://github.com/WojciechMula/pyahocorasick")
8157 (synopsis "Library for finding multiple key strings in text")
8158 (description
8159 "Pyahocorasick is a fast, memory-efficient library for multi-pattern string search.
8160This means that you can find multiple key strings occurrences
8161at once in some input text.")
8162 (license license:bsd-3)))
8163
8164(define-public exonerate
8165 (package
8166 (name "exonerate")
8167 (version "2.4.0")
8168 (source
8169 (origin
8170 (method url-fetch)
8171 (uri
8172 (string-append
8173 "http://ftp.ebi.ac.uk/pub/software/vertebrategenomics/exonerate/"
8174 "exonerate-" version ".tar.gz"))
8175 (sha256
8176 (base32
8177 "0hj0m9xygiqsdxvbg79wq579kbrx1mdrabi2bzqz2zn9qwfjcjgq"))))
8178 (build-system gnu-build-system)
8179 (arguments
8180 `(#:parallel-build? #f)) ; Building in parallel fails on some machines.
8181 (native-inputs
8182 (list pkg-config))
8183 (inputs
8184 (list glib))
8185 (home-page
8186 "https://www.ebi.ac.uk/about/vertebrate-genomics/software/exonerate")
8187 (synopsis "Generic tool for biological sequence alignment")
8188 (description
8189 "Exonerate is a generic tool for pairwise sequence comparison. It allows
8190the alignment of sequences using a many alignment models, either exhaustive
8191dynamic programming or a variety of heuristics.")
8192 (license license:gpl3)))
8193
8194(define-public express
8195 (package
8196 (name "express")
8197 (version "1.5.3")
8198 (source (origin
8199 (method git-fetch)
8200 (uri (git-reference
8201 (url "https://github.com/adarob/eXpress")
8202 (commit version)))
8203 (file-name (git-file-name name version))
8204 (sha256
8205 (base32
8206 "18nb22n7x820fzjngf4qgyb3mspqkw7xyk7v7s5ps6wfrd8qwscb"))))
8207 (build-system cmake-build-system)
8208 (arguments
8209 (list
8210 #:tests? #f ;no "check" target
8211 #:phases
8212 #~(modify-phases %standard-phases
8213 (add-after 'unpack 'use-shared-boost-libs-and-set-bamtools-paths
8214 (lambda* (#:key inputs #:allow-other-keys)
8215 (substitute* "CMakeLists.txt"
8216 (("set\\(Boost_USE_STATIC_LIBS ON\\)")
8217 "set(Boost_USE_STATIC_LIBS OFF)")
8218 (("\\$\\{CMAKE_CURRENT_SOURCE_DIR\\}/bamtools/include")
8219 (search-input-directory inputs "/include/bamtools"))
8220 (("\\$\\{PROJECT_SOURCE_DIR\\}/bamtools/lib/libbamtools.a")
8221 (search-input-file inputs "/lib/libbamtools.so"))
8222 (("libbamtools.a") "libbamtools.so"))
8223 (substitute* "src/CMakeLists.txt"
8224 (("libprotobuf.a") "libprotobuf.so"))))
8225 (add-after 'unpack 'remove-update-check
8226 (lambda _
8227 (substitute* "src/main.cpp"
8228 (("#include \"update_check.h\"") "")
8229 (("check_version\\(PACKAGE_VERSION\\);") "")))))))
8230 (inputs
8231 (list boost-1.83 bamtools protobuf zlib))
8232 (home-page "http://bio.math.berkeley.edu/eXpress")
8233 (synopsis "Streaming quantification for high-throughput genomic sequencing")
8234 (description
8235 "eXpress is a streaming tool for quantifying the abundances of a set of
8236target sequences from sampled subsequences. Example applications include
8237transcript-level RNA-Seq quantification, allele-specific/haplotype expression
8238analysis (from RNA-Seq), transcription factor binding quantification in
8239ChIP-Seq, and analysis of metagenomic data.")
8240 (properties `((lint-hidden-cpe-vendors . ("openjsf" "qs_project"))))
8241 (license license:artistic2.0)))
8242
8243(define-public fasttree
8244 (package
8245 (name "fasttree")
8246 (version "2.1.10")
8247 (source (origin
8248 (method url-fetch)
8249 (uri (string-append
8250 "http://www.microbesonline.org/fasttree/FastTree-"
8251 version ".c"))
8252 (sha256
8253 (base32
8254 "0vcjdvy1j4m702vmak4svbfkrpcw63k7wymfksjp9a982zy8kjsl"))))
8255 (build-system gnu-build-system)
8256 (arguments
8257 `(#:tests? #f ; no "check" target
8258 #:phases
8259 (modify-phases %standard-phases
8260 (delete 'unpack)
8261 (delete 'configure)
8262 (replace 'build
8263 (lambda* (#:key source #:allow-other-keys)
8264 (invoke "gcc"
8265 "-O3"
8266 "-finline-functions"
8267 "-funroll-loops"
8268 "-Wall"
8269 "-o"
8270 "FastTree"
8271 source
8272 "-lm")
8273 (invoke "gcc"
8274 "-DOPENMP"
8275 "-fopenmp"
8276 "-O3"
8277 "-finline-functions"
8278 "-funroll-loops"
8279 "-Wall"
8280 "-o"
8281 "FastTreeMP"
8282 source
8283 "-lm")
8284 #t))
8285 (replace 'install
8286 (lambda* (#:key outputs #:allow-other-keys)
8287 (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
8288 (install-file "FastTree" bin)
8289 (install-file "FastTreeMP" bin)
8290 #t))))))
8291 (home-page "http://www.microbesonline.org/fasttree")
8292 (synopsis "Infers approximately-maximum-likelihood phylogenetic trees")
8293 (description
8294 "FastTree can handle alignments with up to a million of sequences in a
8295reasonable amount of time and memory. For large alignments, FastTree is
8296100-1,000 times faster than PhyML 3.0 or RAxML 7.")
8297 (license license:gpl2+)))
8298
8299(define-public flash
8300 (package
8301 (name "flash")
8302 (version "1.2.11")
8303 (source
8304 (origin
8305 (method url-fetch)
8306 (uri (string-append "mirror://sourceforge/flashpage/FLASH-"
8307 version ".tar.gz"))
8308 (sha256
8309 (base32
8310 "1b1ns9ghbcxy92xwa2a53ikqacvnyhvca0zfv0s7986xzvvscp38"))))
8311 (build-system gnu-build-system)
8312 (arguments
8313 (list
8314 #:make-flags #~(list (string-append "CC=" #$(cc-for-target)))
8315 #:tests? #f ;no tests
8316 #:phases
8317 #~(modify-phases %standard-phases
8318 ;; No configure script
8319 (delete 'configure)
8320 ;; No install target
8321 (replace 'install
8322 (lambda _
8323 (install-file "flash"
8324 (string-append #$output "/bin")))))))
8325 (inputs (list zlib))
8326 (home-page "http://ccb.jhu.edu/software/FLASH/")
8327 (synopsis "Merge paired-end nucleotide reads from NGS experiments")
8328 (description "FLASH (Fast Length Adjustment of SHort reads) is a tool to
8329merge paired-end reads from next-generation sequencing experiments. FLASH is
8330designed to merge pairs of reads when the original DNA fragments are shorter
8331than twice the length of reads. The resulting longer reads can significantly
8332improve genome assemblies. They can also improve transcriptome assembly when
8333FLASH is used to merge RNA-seq data.")
8334 (license license:gpl3+)))
8335
8336(define-public flexbar
8337 (package
8338 (name "flexbar")
8339 (version "3.5.0")
8340 (source (origin
8341 (method git-fetch)
8342 (uri (git-reference
8343 (url "https://github.com/seqan/flexbar")
8344 (commit (string-append "v" version))))
8345 (file-name (git-file-name name version))
8346 (sha256
8347 (base32
8348 "1w0c592wmi3xin2wlb9vmxp7f8f3s9nhl3y9ih4djrlfqyim70h9"))))
8349 (build-system cmake-build-system)
8350 (arguments
8351 (list
8352 #:phases
8353 #~(modify-phases %standard-phases
8354 (add-after 'unpack 'do-not-tune-to-CPU
8355 (lambda _
8356 (substitute* "src/CMakeLists.txt"
8357 ((" -march=native") ""))))
8358 (replace 'check
8359 (lambda _
8360 (setenv "PATH" (string-append (getcwd) ":" (getenv "PATH")))
8361 (with-directory-excursion "../source/test"
8362 (invoke "bash" "flexbar_test.sh"))))
8363 (replace 'install
8364 (lambda* (#:key outputs #:allow-other-keys)
8365 (install-file "flexbar" (string-append #$output "/bin/")))))))
8366 (inputs
8367 (list tbb-2020 zlib))
8368 (native-inputs
8369 (list pkg-config seqan-2))
8370 (home-page "https://github.com/seqan/flexbar")
8371 (synopsis "Barcode and adapter removal tool for sequencing platforms")
8372 (description
8373 "Flexbar preprocesses high-throughput nucleotide sequencing data
8374efficiently. It demultiplexes barcoded runs and removes adapter sequences.
8375Moreover, trimming and filtering features are provided. Flexbar increases
8376read mapping rates and improves genome and transcriptome assemblies. It
8377supports next-generation sequencing data in fasta/q and csfasta/q format from
8378Illumina, Roche 454, and the SOLiD platform.")
8379 (license license:bsd-3)))
8380
8381(define-public fxtract
8382 (let ((util-commit "776ca85a18a47492af3794745efcb4a905113115"))
8383 (package
8384 (name "fxtract")
8385 (version "2.3")
8386 (source
8387 (origin
8388 (method git-fetch)
8389 (uri (git-reference
8390 (url "https://github.com/ctSkennerton/fxtract")
8391 (commit version)))
8392 (file-name (git-file-name name version))
8393 (sha256
8394 (base32
8395 "0hab3gpwf4w9s87qlbswq6ws1qqybh4dcqk79q1ahyldzai5fgp5"))))
8396 (build-system gnu-build-system)
8397 (arguments
8398 `(#:make-flags ,#~(list
8399 (string-append "PREFIX=" #$output)
8400 "CC=gcc")
8401 #:test-target "fxtract_test"
8402 #:phases
8403 (modify-phases %standard-phases
8404 (delete 'configure)
8405 (add-before 'build 'copy-util
8406 (lambda* (#:key inputs #:allow-other-keys)
8407 (rmdir "util")
8408 (copy-recursively (assoc-ref inputs "ctskennerton-util") "util")
8409 #t))
8410 ;; Do not use make install as this requires additional dependencies.
8411 (replace 'install
8412 (lambda* (#:key outputs #:allow-other-keys)
8413 (let* ((out (assoc-ref outputs "out"))
8414 (bin (string-append out"/bin")))
8415 (install-file "fxtract" bin)
8416 #t))))))
8417 (inputs
8418 (list pcre zlib))
8419 (native-inputs
8420 ;; ctskennerton-util is licensed under GPL2.
8421 `(("ctskennerton-util"
8422 ,(origin
8423 (method git-fetch)
8424 (uri (git-reference
8425 (url "https://github.com/ctSkennerton/util")
8426 (commit util-commit)))
8427 (file-name (string-append
8428 "ctstennerton-util-" util-commit "-checkout"))
8429 (sha256
8430 (base32
8431 "0cls1hd4vgj3f36fpzzg4xc77d6f3hpc60cbpfmn2gdr7ykzzad7"))))))
8432 (home-page "https://github.com/ctSkennerton/fxtract")
8433 (synopsis "Extract sequences from FASTA and FASTQ files")
8434 (description
8435 "Fxtract extracts sequences from a protein or nucleotide fastx (FASTA
8436or FASTQ) file given a subsequence. It uses a simple substring search for
8437basic tasks but can change to using POSIX regular expressions, PCRE, hash
8438lookups or multi-pattern searching as required. By default fxtract looks in
8439the sequence of each record but can also be told to look in the header,
8440comment or quality sections.")
8441 ;; 'util' requires SSE instructions.
8442 (supported-systems '("x86_64-linux"))
8443 (license license:expat))))
8444
8445(define-public gemma
8446 (package
8447 (name "gemma")
8448 (version "0.98.5")
8449 (source (origin
8450 (method git-fetch)
8451 (uri (git-reference
8452 (url "https://github.com/genetics-statistics/GEMMA")
8453 (commit (string-append "v" version))))
8454 (file-name (git-file-name name version))
8455 (sha256
8456 (base32
8457 "1dm8pf1fbdmv2yiz5aybcvk3050m5350gq8xlr4j6swzm3wwhydn"))
8458 (modules '((guix build utils)))
8459 (snippet
8460 #~(begin
8461 (delete-file-recursively "contrib")))))
8462 (build-system gnu-build-system)
8463 (inputs
8464 (list gsl openblas zlib))
8465 (native-inputs
8466 (list catch2-1
8467 perl
8468 shunit2
8469 which))
8470 (arguments
8471 (list
8472 #:phases
8473 #~(modify-phases %standard-phases
8474 (delete 'configure)
8475 (add-after 'unpack 'prepare-build
8476 (lambda _
8477 (mkdir-p "bin")
8478 (substitute* "Makefile"
8479 (("/usr/local/opt/openblas")
8480 #$(this-package-input "openblas")))))
8481 (replace 'check
8482 (lambda* (#:key tests? #:allow-other-keys)
8483 (when tests?
8484 ;; 'make slow-check' expects shunit2-2.0.3.
8485 (with-directory-excursion "test"
8486 (invoke "./test_suite.sh")))))
8487 (replace 'install
8488 (lambda _
8489 (install-file "bin/gemma" (string-append #$output "/bin")))))))
8490 (home-page "https://github.com/genetics-statistics/GEMMA")
8491 (synopsis "Tool for genome-wide efficient mixed model association")
8492 (description
8493 "@acronym{GEMMA, Genome-wide Efficient Mixed Model Association} provides a
8494standard linear mixed model resolver with application in @acronym{GWAS,
8495genome-wide association studies}.")
8496 (license license:gpl3)))
8497
8498(define-public hisat
8499 (package
8500 (name "hisat")
8501 (version "0.1.6")
8502 (source (origin
8503 (method url-fetch)
8504 (uri (string-append
8505 "http://ccb.jhu.edu/software/hisat/downloads/hisat-"
8506 version "-beta-source.zip"))
8507 (sha256
8508 (base32
8509 "177z85vqp9b30vgxl5py5hz4mm37ila37nzhfam23ci9iyfxgyv9"))))
8510 (build-system gnu-build-system)
8511 (arguments
8512 `(#:tests? #f ;no check target
8513 #:make-flags '("allall"
8514 ;; Disable unsupported `popcnt' instructions on
8515 ;; architectures other than x86_64
8516 ,@(if (string-prefix? "x86_64"
8517 (or (%current-target-system)
8518 (%current-system)))
8519 '()
8520 '("POPCNT_CAPABILITY=0")))
8521 #:phases
8522 (modify-phases %standard-phases
8523 (add-after 'unpack 'patch-sources
8524 (lambda _
8525 ;; XXX Cannot use snippet because zip files are not supported
8526 (substitute* "Makefile"
8527 (("^CC = .*$") "CC = gcc")
8528 (("^CPP = .*$") "CPP = g++")
8529 ;; replace BUILD_HOST and BUILD_TIME for deterministic build
8530 (("-DBUILD_HOST=.*") "-DBUILD_HOST=\"\\\"guix\\\"\"")
8531 (("-DBUILD_TIME=.*") "-DBUILD_TIME=\"\\\"0\\\"\""))
8532 (substitute* '("hisat-build" "hisat-inspect")
8533 (("/usr/bin/env") (which "env")))
8534 ;; This "extended character" is not considered valid.
8535 (substitute* "processor_support.h"
8536 (("“") "\"")
8537 (("”") "\""))))
8538 (replace 'install
8539 (lambda* (#:key outputs #:allow-other-keys)
8540 (let ((bin (string-append (assoc-ref outputs "out") "/bin/")))
8541 (for-each (lambda (file)
8542 (install-file file bin))
8543 (find-files
8544 "."
8545 "hisat(-(build|align|inspect)(-(s|l)(-debug)*)*)*$")))))
8546 (delete 'configure))))
8547 (native-inputs
8548 (list gcc-10 unzip))
8549 (inputs
8550 (list perl python zlib))
8551 ;; Non-portable SSE instructions are used so building fails on platforms
8552 ;; other than x86_64.
8553 (supported-systems '("x86_64-linux"))
8554 (home-page "https://ccb.jhu.edu/software/hisat/index.shtml")
8555 (synopsis "Hierarchical indexing for spliced alignment of transcripts")
8556 (description
8557 "HISAT is a fast and sensitive spliced alignment program for mapping
8558RNA-seq reads. In addition to one global FM index that represents a whole
8559genome, HISAT uses a large set of small FM indexes that collectively cover the
8560whole genome. These small indexes (called local indexes) combined with
8561several alignment strategies enable effective alignment of RNA-seq reads, in
8562particular, reads spanning multiple exons.")
8563 (license license:gpl3+)))
8564
8565(define-public hisat2
8566 (package
8567 (name "hisat2")
8568 (version "2.2.3")
8569 (source
8570 (origin
8571 (method git-fetch)
8572 (uri (git-reference
8573 (url "https://github.com/DaehwanKimLab/hisat2/")
8574 (commit (string-append "v" version))))
8575 (file-name (git-file-name name version))
8576 (sha256
8577 (base32
8578 "03z7rdg0x0wzc3bzsf249jnj4m0ywy97vm5rc4pxsiwzsd0a7c1m"))))
8579 (build-system gnu-build-system)
8580 (arguments
8581 (list
8582 #:tests? #f ; no check target
8583 #:make-flags
8584 #~(list (string-append "CC=" #$(cc-for-target))
8585 (string-append "CXX=" #$(cxx-for-target))
8586 "allall")
8587 #:modules `((guix build gnu-build-system)
8588 (guix build utils)
8589 (srfi srfi-26))
8590 #:phases
8591 #~(modify-phases %standard-phases
8592 (add-after 'unpack 'make-deterministic
8593 (lambda _
8594 (substitute* "Makefile"
8595 (("`hostname`") "guix")
8596 (("`date`") "0"))))
8597 (delete 'configure)
8598 (add-before 'build 'build-manual
8599 (lambda _
8600 (mkdir-p "doc")
8601 (invoke "make" "doc")))
8602 (replace 'install
8603 (lambda _
8604 (for-each
8605 (cute install-file <> (string-append #$output "/bin/"))
8606 (find-files "."
8607 "hisat2(-(build|align|inspect)(-(s|l)(-debug)*)*)*$"))
8608 (install-file "doc/manual.inc.html"
8609 (string-append #$output "/share/doc/hisat2/")))))))
8610 (native-inputs
8611 (list perl pandoc)) ; for documentation
8612 (inputs
8613 (list python-wrapper))
8614 (home-page "https://daehwankimlab.github.io/hisat2/")
8615 (synopsis "Graph-based alignment of genomic sequencing reads")
8616 (description "HISAT2 is a fast and sensitive alignment program for mapping
8617next-generation sequencing reads (both DNA and RNA) to a population of human
8618genomes (as well as to a single reference genome). In addition to using one
8619global @dfn{graph FM} (GFM) index that represents a population of human
8620genomes, HISAT2 uses a large set of small GFM indexes that collectively cover
8621the whole genome. These small indexes, combined with several alignment
8622strategies, enable rapid and accurate alignment of sequencing reads. This new
8623indexing scheme is called a @dfn{Hierarchical Graph FM index} (HGFM).")
8624 ;; HISAT2 contains files from Bowtie2, which is released under
8625 ;; GPLv2 or later. The HISAT2 source files are released under
8626 ;; GPLv3 or later.
8627 (license license:gpl3+)))
8628
8629(define-public homer
8630 (package
8631 (name "homer")
8632 (version "4.11.1")
8633 (source
8634 (origin
8635 (method url-fetch/zipbomb)
8636 (uri (string-append "http://homer.ucsd.edu/homer/data/software/homer.v"
8637 version ".zip"))
8638 (sha256
8639 (base32
8640 "0ay802swzq6ix9d8fkinpplcvyc1xyi3cjmj2x08jab7c40cvlc0"))))
8641 (build-system gnu-build-system)
8642 (arguments
8643 (list
8644 #:phases
8645 #~(modify-phases %standard-phases
8646 (replace 'configure
8647 (lambda* (#:key inputs #:allow-other-keys)
8648 (let ((share (string-append #$output "/share/homer")))
8649 (mkdir-p share)
8650 (copy-file (assoc-ref inputs "config.txt")
8651 (string-append share "/config.txt"))
8652 (substitute* "configureHomer.pl"
8653 (("my \\$homeDir = \\$1;")
8654 (string-append "my $homeDir = \"" share "\";"))))))
8655 (replace 'build
8656 (lambda _
8657 (let ((share (string-append #$output "/share/homer")))
8658 (copy-recursively "." share))
8659 (invoke "perl" "configureHomer.pl" "-local")))
8660 (replace 'check
8661 (lambda* (#:key tests? #:allow-other-keys)
8662 (when tests?
8663 (invoke (string-append #$output "/share/homer/bin/homer2")))))
8664 (replace 'install
8665 (lambda _
8666 (mkdir-p (string-append #$output "/bin"))
8667 (symlink (string-append #$output "/share/homer/bin/homer2")
8668 (string-append #$output "/bin/homer2"))
8669 (symlink (string-append #$output "/share/homer/bin/homer")
8670 (string-append #$output "/bin/homer"))
8671 (for-each patch-shebang
8672 (find-files (string-append #$output "/share/homer/bin")
8673 "\\.pl$"))
8674 ;; Also load config file from user's home directory.
8675 (substitute* (string-append #$output "/share/homer/bin/HomerConfig.pm")
8676 (("#parseConfigFile") "parseConfigFile")))))))
8677 (inputs
8678 (list perl))
8679 (native-inputs
8680 `(("perl" ,perl)
8681 ("unzip" ,unzip)
8682 ("config.txt"
8683 ,(origin
8684 (method url-fetch)
8685 (uri (string-append "https://web.archive.org/web/20200531014112id_/"
8686 "http://homer.ucsd.edu/homer/update.txt"))
8687 (sha256
8688 (base32
8689 "1hf17pk8r6b297ysd27bvxzyn8pxdhxd8wj8g0lqlifbid9fw04h"))))))
8690 (home-page "http://homer.ucsd.edu/homer")
8691 (synopsis "Motif discovery and next generation sequencing analysis")
8692 (description
8693 "HOMER (Hypergeometric Optimization of Motif EnRichment) is a suite of
8694tools for Motif Discovery and next-gen sequencing analysis. It is a
8695collection of command line programs written in Perl and C++. HOMER was
8696primarily written as a de novo motif discovery algorithm and is well suited
8697for finding 8-20 bp motifs in large scale genomics data. HOMER contains many
8698useful tools for analyzing ChIP-Seq, GRO-Seq, RNA-Seq, DNase-Seq, Hi-C and
8699numerous other types of functional genomics sequencing data sets.")
8700 (license license:gpl3+)))
8701
8702(define-public hmmer
8703 (package
8704 (name "hmmer")
8705 (version "3.3.2")
8706 (source
8707 (origin
8708 (method url-fetch)
8709 (uri (string-append
8710 "http://eddylab.org/software/hmmer/hmmer-" version ".tar.gz"))
8711 (sha256
8712 (base32
8713 "0s9wf6n0qanbx8qs6igfl3vyjikwbrvh4d9d6mv54yp3xysykzlj"))))
8714 (build-system gnu-build-system)
8715 (native-inputs (list perl python)) ; for tests
8716 (home-page "http://hmmer.org/")
8717 (synopsis "Biosequence analysis using profile hidden Markov models")
8718 (description
8719 "HMMER is used for searching sequence databases for homologs of protein
8720sequences, and for making protein sequence alignments. It implements methods
8721using probabilistic models called profile hidden Markov models (profile
8722HMMs).")
8723 ;; hmmer uses non-portable SSE intrinsics so building fails on other
8724 ;; platforms.
8725 (supported-systems '("x86_64-linux" "i686-linux"))
8726 (license license:bsd-3)))
8727
8728(define-public htseq
8729 (package
8730 (name "htseq")
8731 (version "2.0.9")
8732 (source (origin
8733 (method git-fetch)
8734 (uri (git-reference
8735 (url "https://github.com/htseq/htseq")
8736 (commit (string-append "release_" version))))
8737 (file-name (git-file-name name version))
8738 (sha256
8739 (base32
8740 "1wyv5aqdx1i48i01xnav1cvv5zjv9n4nxplcgplwzxz9pxiw3kcb"))))
8741 (build-system pyproject-build-system)
8742 (propagated-inputs
8743 (list python-numpy
8744 python-pysam))
8745 (native-inputs
8746 (list python-cython
8747 python-matplotlib
8748 python-pandas
8749 python-pytest
8750 python-scipy
8751 python-setuptools
8752 swig-4.0))
8753 (home-page "https://github.com/htseq")
8754 (synopsis "Framework for analyzing high-throughput sequencing data")
8755 (description
8756 "This package provides a framework to process and analyze data from
8757high-throughput sequencing (HTS) assays")
8758 (license license:gpl3+)))
8759
8760(define-public python-genomepy
8761 (package
8762 (name "python-genomepy")
8763 (version "0.16.3")
8764 (source
8765 (origin
8766 (method git-fetch)
8767 (uri (git-reference
8768 (url "https://github.com/vanheeringen-lab/genomepy")
8769 (commit version)))
8770 (file-name (git-file-name name version))
8771 (sha256
8772 (base32 "0bsvsvid6vl54qck3iwylfcyxc8v7xy0klwv7558zl6yckw3i4p0"))))
8773 (build-system pyproject-build-system)
8774 (arguments
8775 (list
8776 ;; The tests require internet access.
8777 #:tests? #false
8778 #:phases
8779 '(modify-phases %standard-phases
8780 ;; Needed by tests
8781 (add-after 'unpack 'set-HOME
8782 (lambda _ (setenv "HOME" "/tmp"))))))
8783 (propagated-inputs (list mysql-connector-python
8784 python-appdirs
8785 python-biopython
8786 python-click
8787 python-colorama
8788 python-diskcache
8789 python-filelock
8790 python-loguru
8791 python-mygene
8792 python-norns
8793 python-numpy
8794 python-pandas
8795 python-pyfaidx
8796 python-requests
8797 python-tqdm))
8798 (native-inputs (list python-hatchling))
8799 (home-page "https://vanheeringen-lab.github.io/genomepy/")
8800 (synopsis "Genes and genomes at your fingertips")
8801 (description "genomepy is designed to provide a simple and straightforward
8802way to download and use genomic data. This includes
8803
8804@enumerate
8805@item searching available data,
8806@item showing the available metadata,
8807@item automatically downloading, preprocessing and matching data, and
8808@item generating optional aligner indexes.
8809@end enumerate
8810
8811All with sensible, yet controllable defaults.")
8812 (license license:expat)))
8813
8814(define-public java-htsjdk
8815 (package
8816 (name "java-htsjdk")
8817 (version "2.3.0") ; last version without build dependency on gradle
8818 (source (origin
8819 (method git-fetch)
8820 (uri (git-reference
8821 (url "https://github.com/samtools/htsjdk")
8822 (commit version)))
8823 (file-name (git-file-name name version))
8824 (sha256
8825 (base32
8826 "1b178ixcabanm834ydjl3jiakpyxdmki32hqfv2abrzn3rcwa28i"))
8827 (modules '((guix build utils)))
8828 (snippet
8829 ;; Delete pre-built binaries
8830 '(begin
8831 (delete-file-recursively "lib")
8832 (mkdir-p "lib")
8833 #t))))
8834 (build-system ant-build-system)
8835 (arguments
8836 (list
8837 #:tests? #f ; test require Internet access
8838 #:jdk icedtea-8
8839 #:make-flags
8840 #~(list (string-append "-Ddist=" #$output "/share/java/htsjdk/"))
8841 #:build-target "all"
8842 #:phases
8843 #~(modify-phases %standard-phases
8844 ;; The build phase also installs the jars
8845 (delete 'install))))
8846 (inputs
8847 (list java-commons-compress
8848 java-commons-jexl-2
8849 java-commons-logging-minimal
8850 java-ngs
8851 java-snappy-1
8852 java-xz))
8853 (native-inputs
8854 (list java-testng))
8855 (home-page "https://samtools.github.io/htsjdk/")
8856 (synopsis "Java API for high-throughput sequencing data (HTS) formats")
8857 (description
8858 "HTSJDK is an implementation of a unified Java library for accessing
8859common file formats, such as SAM and VCF, used for high-throughput
8860sequencing (HTS) data. There are also an number of useful utilities for
8861manipulating HTS data.")
8862 (license license:expat)))
8863
8864(define-public java-htsjdk-latest
8865 (package
8866 (name "java-htsjdk")
8867 (version "2.14.3")
8868 (source (origin
8869 (method git-fetch)
8870 (uri (git-reference
8871 (url "https://github.com/samtools/htsjdk")
8872 (commit version)))
8873 (file-name (string-append name "-" version "-checkout"))
8874 (sha256
8875 (base32
8876 "1lmya1fdjy03mz6zmdmd86j9v9vfhqb3952mqq075navx1i6g4bc"))))
8877 (build-system ant-build-system)
8878 (arguments
8879 (list
8880 #:tests? #f ; test require Scala
8881 #:jdk icedtea-8
8882 #:jar-name "htsjdk.jar"
8883 #:phases
8884 #~(modify-phases %standard-phases
8885 (add-after 'unpack 'remove-useless-build.xml
8886 (lambda _
8887 (delete-file "build.xml")))
8888 ;; The tests require the scalatest package.
8889 (add-after 'unpack 'remove-tests
8890 (lambda _
8891 (delete-file-recursively "src/test"))))))
8892 (inputs
8893 (list java-commons-compress
8894 java-commons-jexl-2
8895 java-commons-logging-minimal
8896 java-ngs
8897 java-snappy-1
8898 java-xz))
8899 (native-inputs
8900 (list java-junit))
8901 (home-page "https://samtools.github.io/htsjdk/")
8902 (synopsis "Java API for high-throughput sequencing data (HTS) formats")
8903 (description
8904 "HTSJDK is an implementation of a unified Java library for accessing
8905common file formats, such as SAM and VCF, used for high-throughput
8906sequencing (HTS) data. There are also an number of useful utilities for
8907manipulating HTS data.")
8908 (license license:expat)))
8909
8910;; This is needed for picard 2.10.3
8911(define-public java-htsjdk-2.10.1
8912 (package (inherit java-htsjdk-latest)
8913 (name "java-htsjdk")
8914 (version "2.10.1")
8915 (source (origin
8916 (method git-fetch)
8917 (uri (git-reference
8918 (url "https://github.com/samtools/htsjdk")
8919 (commit version)))
8920 (file-name (string-append name "-" version "-checkout"))
8921 (sha256
8922 (base32
8923 "1kxh7slm2pm3x9p6jxa1wqsq9a31dhiiflhxnxqcisan4k3rwia2"))))
8924 (build-system ant-build-system)
8925 (arguments
8926 (list
8927 #:tests? #f ; tests require Scala
8928 #:jdk icedtea-8
8929 #:jar-name "htsjdk.jar"
8930 #:phases
8931 #~(modify-phases %standard-phases
8932 (add-after 'unpack 'remove-useless-build.xml
8933 (lambda _ (delete-file "build.xml")))
8934 ;; The tests require the scalatest package.
8935 (add-after 'unpack 'remove-tests
8936 (lambda _ (delete-file-recursively "src/test"))))))))
8937
8938(define-public java-maxent
8939 (package
8940 (name "java-maxent")
8941 (version "3.4.4")
8942 (source (origin
8943 (method git-fetch)
8944 (uri (git-reference
8945 (url "https://github.com/mrmaxent/Maxent")
8946 (commit (string-append "v" version))))
8947 (file-name (git-file-name name version))
8948 (sha256
8949 (base32
8950 "12q7hhly76l77vm8w8v9icga2gn6xs0bw33a7wb7zikcmvizcyp0"))))
8951 (build-system ant-build-system)
8952 (arguments
8953 (list
8954 #:tests? #false ;there are none
8955 #:jdk icedtea-8
8956 #:phases
8957 #~(modify-phases %standard-phases
8958 (replace 'build
8959 (lambda* (#:key inputs #:allow-other-keys)
8960 ;; See https://github.com/mrmaxent/Maxent/pull/11
8961 (substitute* "density/Extractor.java"
8962 (("float") "double"))
8963 (with-directory-excursion "gnu/getopt/"
8964 (invoke "make"))
8965 (mkdir-p "ptii")
8966 (with-directory-excursion "ptii"
8967 (invoke "tar" "xvf" (assoc-ref inputs "ptii")
8968 "--strip-components=1")
8969 (copy-recursively "com" "../com"))
8970 (delete-file-recursively "ptii")
8971 (apply invoke "javac" "-cp" (getcwd) "-g"
8972 (find-files "com/microstar/xml" "\\.java$"))
8973 (apply invoke "javac" "-cp" (getcwd) "-g"
8974 (find-files "density" "\\.java$"))
8975
8976 ;; This needs the proprietary com.sun.image.codec.jpeg module.
8977 (delete-file "ptolemy/plot/servlet/PlotServlet.java")
8978 (apply invoke "javac" "-cp"
8979 (string-append (getcwd) ":" (getenv "CLASSPATH")) "-g"
8980 (find-files "ptolemy/plot" "\\.java$"))
8981 (apply invoke "javac" "-cp" (getcwd) "-g"
8982 (find-files "com" "\\.java$"))
8983 (apply invoke "javac" "-cp" (getcwd) "-g"
8984 (find-files "gui" "\\.java$"))
8985 (apply invoke "jar" "cvfm" "maxent.jar"
8986 (cons* "density/mc.mf"
8987 "density/parameters.csv"
8988 (append (find-files "density" "\\.class$")
8989 (find-files "density" "\\.html$")
8990 (find-files "gnu/getopt" ".*")
8991 (find-files "gui/layouts" "\\.class$")
8992 (find-files "com/macfaq/io" "\\.class$")
8993 (find-files "density/tools" "\\.class$")
8994 (find-files "ptolemy/plot" "\\.class$"))))))
8995 (replace 'install
8996 (lambda _
8997 (install-file "maxent.jar"
8998 (string-append #$output "/share/java/maxent/")))))))
8999 (inputs
9000 (list java-classpathx-servletapi))
9001 (native-inputs
9002 `(("make" ,gnu-make)
9003 ;; For com.microstar.xml
9004 ("ptii"
9005 ,(let ((version "4.0.1"))
9006 (origin
9007 (method url-fetch)
9008 (uri (string-append "https://ptolemy.berkeley.edu/ptolemyII/ptII"
9009 (version-major+minor version)
9010 "/ptII" version ".src.tar.gz"))
9011 (sha256
9012 (base32
9013 "0ifmmvrcipcnd4b9im1g379ffrs7g7k99sw5vv9d9h3hzq6hqv21")))))))
9014 (home-page "http://biodiversityinformatics.amnh.org/open_source/maxent")
9015 (synopsis "Model species geographic distributions")
9016 (description
9017 "Maxent is a stand-alone Java application for modelling species
9018geographic distributions.")
9019 (license license:expat)))
9020
9021;; This version matches java-htsjdk 2.3.0. Later versions also require a more
9022;; recent version of java-htsjdk, which depends on gradle.
9023(define-public java-picard
9024 (package
9025 (name "java-picard")
9026 (version "2.3.0")
9027 (source (origin
9028 (method git-fetch)
9029 (uri (git-reference
9030 (url "https://github.com/broadinstitute/picard")
9031 (commit version)))
9032 (file-name (string-append "java-picard-" version "-checkout"))
9033 (sha256
9034 (base32
9035 "1ll7mf4r3by92w2nhlmpa591xd1f46xlkwh59mq6fvbb5pdwzvx6"))
9036 (modules '((guix build utils)))
9037 (snippet
9038 '(begin
9039 ;; Delete pre-built binaries.
9040 (delete-file-recursively "lib")
9041 (mkdir-p "lib")
9042 (substitute* "build.xml"
9043 ;; Remove build-time dependency on git.
9044 (("failifexecutionfails=\"true\"")
9045 "failifexecutionfails=\"false\"")
9046 ;; Use our htsjdk.
9047 (("depends=\"compile-htsjdk, ")
9048 "depends=\"")
9049 (("depends=\"compile-htsjdk-tests, ")
9050 "depends=\"")
9051 ;; Build picard-lib.jar before building picard.jar
9052 (("name=\"picard-jar\" depends=\"" line)
9053 (string-append line "picard-lib-jar, ")))
9054 #t))))
9055 (build-system ant-build-system)
9056 (arguments
9057 `(#:build-target "picard-jar"
9058 #:test-target "test"
9059 ;; Tests require jacoco:coverage.
9060 #:tests? #f
9061 #:make-flags
9062 ,#~(list (string-append "-Dhtsjdk_lib_dir="
9063 #$(this-package-input "java-htsjdk")
9064 "/share/java/htsjdk/")
9065 "-Dhtsjdk-classes=dist/tmp"
9066 (string-append "-Dhtsjdk-version="
9067 #$(package-version java-htsjdk)))
9068 #:jdk ,icedtea-8
9069 #:phases
9070 (modify-phases %standard-phases
9071 ;; FIXME: this phase fails with "duplicate entry: htsjdk/samtools/AbstractBAMFileIndex$1.class"
9072 (delete 'generate-jar-indices)
9073 (add-after 'unpack 'fix-guava
9074 (lambda _
9075 (substitute* "src/java/picard/cmdline/CommandLineParser.java"
9076 (("CharMatcher.ASCII") "CharMatcher.ascii()"))))
9077 (add-after 'unpack 'use-our-htsjdk
9078 (lambda* (#:key inputs #:allow-other-keys)
9079 (substitute* "build.xml"
9080 (("\\$\\{htsjdk\\}/lib")
9081 (search-input-directory inputs
9082 "share/java/htsjdk")))))
9083 (add-after 'unpack 'make-test-target-independent
9084 (lambda* (#:key inputs #:allow-other-keys)
9085 (substitute* "build.xml"
9086 (("name=\"test\" depends=\"compile, ")
9087 "name=\"test\" depends=\""))
9088 #t))
9089 (replace 'install (install-jars "dist")))))
9090 (inputs
9091 (list java-htsjdk java-guava))
9092 (native-inputs
9093 (list java-testng))
9094 (home-page "https://broadinstitute.github.io/picard/")
9095 (synopsis "Tools for manipulating high-throughput sequencing data and formats")
9096 (description "Picard is a set of Java command line tools for manipulating
9097high-throughput sequencing (HTS) data and formats. Picard is implemented
9098using the HTSJDK Java library to support accessing file formats that are
9099commonly used for high-throughput sequencing data such as SAM, BAM, CRAM and
9100VCF.")
9101 (license license:expat)))
9102
9103;; This is needed for dropseq-tools
9104(define-public java-picard-2.10.3
9105 (package
9106 (name "java-picard")
9107 (version "2.10.3")
9108 (source (origin
9109 (method git-fetch)
9110 (uri (git-reference
9111 (url "https://github.com/broadinstitute/picard")
9112 (commit version)))
9113 (file-name (string-append "java-picard-" version "-checkout"))
9114 (sha256
9115 (base32
9116 "1ajlx31l6i1k3y2rhnmgq07sz99g2czqfqgkr9mihmdjp3gwjhvi"))))
9117 (build-system ant-build-system)
9118 (arguments
9119 `(#:jar-name "picard.jar"
9120 ;; Tests require jacoco:coverage.
9121 #:tests? #f
9122 #:jdk ,icedtea-8
9123 #:main-class "picard.cmdline.PicardCommandLine"
9124 #:modules ((guix build ant-build-system)
9125 (guix build utils)
9126 (guix build java-utils)
9127 (sxml simple)
9128 (sxml transform)
9129 (sxml xpath))
9130 #:phases
9131 (modify-phases %standard-phases
9132 ;; FIXME: this phase fails with "duplicate entry: htsjdk/samtools/AbstractBAMFileIndex$1.class"
9133 (delete 'generate-jar-indices)
9134 (add-after 'unpack 'remove-useless-build.xml
9135 (lambda _ (delete-file "build.xml") #t))
9136 (add-after 'unpack 'fix-guava
9137 (lambda _
9138 (substitute* "src/main/java/picard/cmdline/CommandLineParser.java"
9139 (("CharMatcher.ASCII") "CharMatcher.ascii()"))))
9140 ;; This is necessary to ensure that htsjdk is found when using
9141 ;; picard.jar as an executable.
9142 (add-before 'build 'edit-classpath-in-manifest
9143 (lambda* (#:key inputs #:allow-other-keys)
9144 (chmod "build.xml" #o664)
9145 (call-with-output-file "build.xml.new"
9146 (lambda (port)
9147 (sxml->xml
9148 (pre-post-order
9149 (with-input-from-file "build.xml"
9150 (lambda _ (xml->sxml #:trim-whitespace? #t)))
9151 `((target . ,(lambda (tag . kids)
9152 (let ((name ((sxpath '(name *text*))
9153 (car kids)))
9154 ;; FIXME: We're breaking the line
9155 ;; early with a dummy path to
9156 ;; ensure that the store reference
9157 ;; isn't broken apart and can still
9158 ;; be found by the reference
9159 ;; scanner.
9160 (msg (format #f
9161 "\
9162Class-Path: /~a \
9163 ~a/share/java/htsjdk.jar${line.separator}${line.separator}"
9164 ;; maximum line length is 70
9165 (string-tabulate (const #\b) 57)
9166 (assoc-ref inputs "java-htsjdk"))))
9167 (if (member "manifest" name)
9168 `(,tag ,@kids
9169 (replaceregexp
9170 (@ (file "${manifest.file}")
9171 (match "\\r\\n\\r\\n")
9172 (replace "${line.separator}")))
9173 (echo
9174 (@ (message ,msg)
9175 (file "${manifest.file}")
9176 (append "true"))))
9177 `(,tag ,@kids)))))
9178 (*default* . ,(lambda (tag . kids) `(,tag ,@kids)))
9179 (*text* . ,(lambda (_ txt) txt))))
9180 port)))
9181 (rename-file "build.xml.new" "build.xml")
9182 #t)))))
9183 (propagated-inputs
9184 (list java-htsjdk-2.10.1))
9185 (native-inputs
9186 (list java-testng java-guava))
9187 (home-page "https://broadinstitute.github.io/picard/")
9188 (synopsis "Tools for manipulating high-throughput sequencing data and formats")
9189 (description "Picard is a set of Java command line tools for manipulating
9190high-throughput sequencing (HTS) data and formats. Picard is implemented
9191using the HTSJDK Java library to support accessing file formats that are
9192commonly used for high-throughput sequencing data such as SAM, BAM, CRAM and
9193VCF.")
9194 (license license:expat)))
9195
9196;; This is the last version of Picard to provide net.sf.samtools
9197(define-public java-picard-1.113
9198 (package (inherit java-picard)
9199 (name "java-picard")
9200 (version "1.113")
9201 (source (origin
9202 (method git-fetch)
9203 (uri (git-reference
9204 (url "https://github.com/broadinstitute/picard")
9205 (commit version)))
9206 (file-name (string-append "java-picard-" version "-checkout"))
9207 (sha256
9208 (base32
9209 "0lkpvin2fz3hhly4l02kk56fqy8lmlgyzr9kmvljk6ry6l1hw973"))
9210 (modules '((guix build utils)))
9211 (snippet
9212 '(begin
9213 ;; Delete pre-built binaries.
9214 (delete-file-recursively "lib")
9215 (mkdir-p "lib")))))
9216 (build-system ant-build-system)
9217 (arguments
9218 `(#:build-target "picard-jar"
9219 #:test-target "test"
9220 ;; FIXME: the class path at test time is wrong.
9221 ;; [testng] Error: A JNI error has occurred, please check your installation and try again
9222 ;; [testng] Exception in thread "main" java.lang.NoClassDefFoundError: com/beust/jcommander/ParameterException
9223 #:tests? #f
9224 #:jdk ,icedtea-8
9225 #:ant ,ant/java8
9226 ;; This is only used for tests.
9227 #:make-flags
9228 (list "-Dsamjdk.intel_deflater_so_path=lib/jni/libIntelDeflater.so")
9229 #:phases
9230 (modify-phases %standard-phases
9231 ;; FIXME: This phase fails.
9232 (delete 'generate-jar-indices)
9233 ;; Do not use bundled ant bzip2.
9234 (add-after 'unpack 'use-ant-bzip
9235 (lambda* (#:key inputs #:allow-other-keys)
9236 (substitute* "build.xml"
9237 (("\\$\\{lib\\}/apache-ant-1.8.2-bzip2.jar")
9238 (search-input-file inputs "/lib/ant.jar")))))
9239 (add-after 'unpack 'make-test-target-independent
9240 (lambda* (#:key inputs #:allow-other-keys)
9241 (substitute* "build.xml"
9242 (("name=\"test\" depends=\"compile, ")
9243 "name=\"test\" depends=\"compile-tests, ")
9244 (("name=\"compile\" depends=\"compile-src, compile-tests\"")
9245 "name=\"compile\" depends=\"compile-src\""))))
9246 (add-after 'unpack 'fix-deflater-path
9247 (lambda* (#:key outputs #:allow-other-keys)
9248 (substitute* "src/java/net/sf/samtools/Defaults.java"
9249 (("getStringProperty\\(\"intel_deflater_so_path\", null\\)")
9250 (string-append "getStringProperty(\"intel_deflater_so_path\", \""
9251 (assoc-ref outputs "out")
9252 "/lib/jni/libIntelDeflater.so"
9253 "\")")))))
9254 ;; Build the deflater library, because we've previously deleted the
9255 ;; pre-built one. This can only be built with access to the JDK
9256 ;; sources.
9257 (add-after 'build 'build-jni
9258 (lambda* (#:key inputs #:allow-other-keys)
9259 (mkdir-p "lib/jni")
9260 (mkdir-p "jdk-src")
9261 (invoke "tar" "--strip-components=1" "-C" "jdk-src"
9262 "-xf" (assoc-ref inputs "jdk-src"))
9263 (invoke "javah" "-jni"
9264 "-classpath" "classes"
9265 "-d" "lib/"
9266 "net.sf.samtools.util.zip.IntelDeflater")
9267 (with-directory-excursion "src/c/inteldeflater"
9268 (invoke "gcc" "-I../../../lib" "-I."
9269 (string-append "-I" (assoc-ref inputs "jdk")
9270 "/include/linux")
9271 "-I../../../jdk-src/src/share/native/common/"
9272 "-I../../../jdk-src/src/solaris/native/common/"
9273 "-c" "-O3" "-fPIC" "IntelDeflater.c")
9274 (invoke "gcc" "-shared"
9275 "-o" "../../../lib/jni/libIntelDeflater.so"
9276 "IntelDeflater.o" "-lz" "-lstdc++"))))
9277 ;; We can only build everything else after building the JNI library.
9278 (add-after 'build-jni 'build-rest
9279 (lambda* (#:key make-flags #:allow-other-keys)
9280 (apply invoke `("ant" "all" ,@make-flags))))
9281 (add-before 'build 'set-JAVA6_HOME
9282 (lambda _
9283 (setenv "JAVA6_HOME" (getenv "JAVA_HOME"))))
9284 (replace 'install (install-jars "dist"))
9285 (add-after 'install 'install-jni-lib
9286 (lambda* (#:key outputs #:allow-other-keys)
9287 (let ((jni (string-append (assoc-ref outputs "out")
9288 "/lib/jni")))
9289 (mkdir-p jni)
9290 (install-file "lib/jni/libIntelDeflater.so" jni)))))))
9291 (inputs
9292 (list java-snappy-1
9293 java-commons-jexl-2
9294 java-cofoja
9295 ant/java8 ;for bzip2 support at runtime
9296 zlib))
9297 (native-inputs
9298 `(("ant-apache-bcel" ,ant-apache-bcel)
9299 ("ant-junit" ,ant-junit)
9300 ("java-testng" ,java-testng)
9301 ("java-commons-bcel" ,java-commons-bcel)
9302 ("java-jcommander" ,java-jcommander)
9303 ("jdk" ,icedtea-8 "jdk")
9304 ("jdk-src" ,(car (assoc-ref (package-native-inputs icedtea-8) "jdk-drop")))))))
9305
9306(define-public fastqc
9307 (package
9308 (name "fastqc")
9309 (version "0.11.9")
9310 (source
9311 (origin
9312 (method git-fetch)
9313 (uri (git-reference
9314 (url "https://github.com/s-andrews/FastQC")
9315 (commit (string-append "v" version))))
9316 (file-name (git-file-name name version))
9317 (sha256
9318 (base32
9319 "00y9drm0bkpxw8xfl8ysss18jmnhj8blgqgr6fpa58rkpfcbg8qk"))
9320 (snippet
9321 '(for-each delete-file
9322 '("cisd-jhdf5.jar"
9323 "sam-1.103.jar"
9324 "jbzip2-0.9.jar")))))
9325 (build-system ant-build-system)
9326 (arguments
9327 (list
9328 #:tests? #f ;there are no tests
9329 #:build-target "build"
9330 #:phases
9331 #~(modify-phases %standard-phases
9332 (add-after 'unpack 'fix-dependencies
9333 (lambda* (#:key inputs #:allow-other-keys)
9334 (substitute* '("build.xml" ".classpath")
9335 (("jbzip2-0.9.jar")
9336 (search-input-file inputs "/share/java/jbzip2.jar"))
9337 (("sam-1.103.jar")
9338 (search-input-file inputs "/share/java/sam-1.112.jar"))
9339 (("cisd-jhdf5.jar")
9340 (search-input-file inputs "/share/java/sis-jhdf5.jar")))))
9341 ;; There is no installation target
9342 (replace 'install
9343 (lambda* (#:key inputs #:allow-other-keys)
9344 (let* ((bin (string-append #$output "/bin"))
9345 (share (string-append #$output "/share/fastqc/"))
9346 (exe (string-append share "/fastqc")))
9347 (for-each mkdir-p (list bin share))
9348 (copy-recursively "bin" share)
9349 (substitute* exe
9350 (("my \\$java_bin = \"java\";")
9351 (string-append "my $java_bin = \""
9352 ;; Use java from the JRE, not the JDK
9353 #$(this-package-input "icedtea") "/bin/java"
9354 "\";"))
9355 (("\\$RealBin\\$delimiter\\$RealBin.*")
9356 (string-append
9357 (string-join
9358 (list
9359 share
9360 (search-input-file inputs "/share/java/sam-1.112.jar")
9361 (search-input-file inputs "/share/java/jbzip2.jar")
9362 (search-input-file inputs "/share/java/sis-jhdf5.jar"))
9363 "$delimiter")
9364 "\";\n")))
9365 (chmod exe #o555)
9366 (symlink exe (string-append bin "/fastqc"))))))))
9367 (inputs
9368 (list icedtea
9369 java-cisd-jhdf5
9370 java-picard-1.113
9371 java-jbzip2
9372 perl)) ;needed for the wrapper script
9373 (native-inputs
9374 (list unzip))
9375 (home-page "https://www.bioinformatics.babraham.ac.uk/projects/fastqc/")
9376 (synopsis "Quality control tool for high throughput sequence data")
9377 (description
9378 "FastQC aims to provide a simple way to do some quality control
9379checks on raw sequence data coming from high throughput sequencing
9380pipelines. It provides a modular set of analyses which you can use to
9381give a quick impression of whether your data has any problems of which
9382you should be aware before doing any further analysis.
9383
9384The main functions of FastQC are:
9385
9386@itemize
9387@item Import of data from BAM, SAM or FastQ files (any variant);
9388@item Providing a quick overview to tell you in which areas there may
9389 be problems;
9390@item Summary graphs and tables to quickly assess your data;
9391@item Export of results to an HTML based permanent report;
9392@item Offline operation to allow automated generation of reports
9393 without running the interactive application.
9394@end itemize\n")
9395 (license license:gpl3+)))
9396
9397(define-public fastp
9398 (package
9399 (name "fastp")
9400 (version "0.23.2")
9401 (source
9402 (origin
9403 (method git-fetch)
9404 (uri (git-reference
9405 (url "https://github.com/OpenGene/fastp")
9406 (commit (string-append "v" version))))
9407 (file-name (git-file-name name version))
9408 (sha256
9409 (base32
9410 "04nmrqpjc3qni0cbazlwvpg8rk1mkfmfma0n4q3zivs3zi6rfnav"))))
9411 (build-system gnu-build-system)
9412 (arguments
9413 (list
9414 #:tests? #false ;there are none
9415 #:make-flags
9416 #~(list (string-append "PREFIX=" #$output))
9417 #:phases
9418 #~(modify-phases %standard-phases
9419 (delete 'configure)
9420 (add-before 'install 'create-target-dir
9421 (lambda _
9422 (mkdir-p (string-append #$output "/bin")))))))
9423 (inputs
9424 (list isa-l libdeflate))
9425 (home-page "https://github.com/OpenGene/fastp/")
9426 (synopsis "All-in-one FastQ preprocessor")
9427 (description
9428 "Fastp is a tool designed to provide fast all-in-one preprocessing for
9429FastQ files. This tool has multi-threading support to afford high
9430performance.")
9431 (license license:expat)))
9432
9433(define-public htscodecs
9434 (package
9435 (name "htscodecs")
9436 (version "1.6.1")
9437 (source (origin
9438 (method url-fetch)
9439 (uri (string-append "https://github.com/samtools/htscodecs/"
9440 "releases/download/v"
9441 version "/htscodecs-" version ".tar.gz"))
9442 (sha256
9443 (base32
9444 "0n962938clim15d5mmggsm7ki2ycyjwqvjgddihjlpdsr5qv28aq"))))
9445 (build-system gnu-build-system)
9446 (inputs (list bzip2 zlib))
9447 (home-page "https://github.com/samtools/htscodecs")
9448 (synopsis "Custom compression for CRAM and others")
9449 (description
9450 "This package implements the custom CRAM codecs used for \"EXTERNAL\"
9451block types. These consist of two variants of the rANS codec (8-bit and
945216-bit renormalisation, with run-length encoding and bit-packing also
9453supported in the latter), a dynamic arithmetic coder, and custom codecs for
9454name/ID compression and quality score compression derived from fqzcomp.")
9455 (license
9456 (list license:public-domain ;c_range_coder.h, rANS_byte.h, and rANS_word.h
9457 license:bsd-3)))) ;all the rest
9458
9459(define-public htslib
9460 (package
9461 (name "htslib")
9462 (version "1.23")
9463 (source (origin
9464 (method url-fetch)
9465 (uri (string-append
9466 "https://github.com/samtools/htslib/releases/download/"
9467 version "/htslib-" version ".tar.bz2"))
9468 (sha256
9469 (base32
9470 "1kg4nwm6qjdhf3v2x2r4hl1y22k0rfb5vfa5cc4h7slwxycp34k3"))
9471 (snippet
9472 #~(begin
9473 (use-modules (guix build utils))
9474 (delete-file-recursively "htscodecs")))))
9475 (build-system gnu-build-system)
9476 ;; Let htslib translate "gs://" and "s3://" to regular https links with
9477 ;; "--enable-gcs" and "--enable-s3". For these options to work, we also
9478 ;; need to set "--enable-libcurl".
9479 (arguments
9480 `(#:configure-flags '("--enable-gcs"
9481 "--enable-libcurl"
9482 "--enable-s3"
9483 "--with-external-htscodecs")))
9484 (inputs
9485 (list bzip2 curl openssl xz))
9486 ;; This is referred to in the pkg-config file as a required library.
9487 (propagated-inputs
9488 (list htscodecs zlib))
9489 (native-inputs
9490 (list perl))
9491 (home-page "https://www.htslib.org")
9492 (synopsis "C library for reading/writing high-throughput sequencing data")
9493 (description
9494 "HTSlib is a C library for reading/writing high-throughput sequencing
9495data. It also provides the @command{bgzip}, @command{htsfile}, and
9496@command{tabix} utilities.")
9497 ;; Files under cram/ are released under the modified BSD license;
9498 ;; the rest is released under the Expat license
9499 (license (list license:expat license:bsd-3))))
9500
9501;; For [email protected], remove when no longer required.
9502(define-public htslib-1.21
9503 (hidden-package
9504 (package
9505 (inherit htslib)
9506 (name "htslib")
9507 (version "1.21")
9508 (source
9509 (origin
9510 (inherit (package-source htslib))
9511 (method url-fetch)
9512 (uri (string-append
9513 "https://github.com/samtools/htslib/releases/download/"
9514 version "/htslib-" version ".tar.bz2"))
9515 (sha256
9516 (base32 "08qq1yn6lqqnww532s11nr6gz0gfpn58rn3gy90kd5pl6pki1dc4")))))))
9517
9518;; This package should be removed once no packages rely upon it.
9519(define htslib-1.3
9520 (package/inherit htslib
9521 (version "1.3.1")
9522 (source (origin
9523 (method url-fetch)
9524 (uri (string-append
9525 "https://github.com/samtools/htslib/releases/download/"
9526 version "/htslib-" version ".tar.bz2"))
9527 (sha256
9528 (base32
9529 "1rja282fwdc25ql6izkhdyh8ppw8x2fs0w0js78zgkmqjlikmma9"))))))
9530
9531(define-public idr
9532 (package
9533 (name "idr")
9534 (version "2.0.4.2")
9535 (source (origin
9536 (method git-fetch)
9537 (uri (git-reference
9538 (url "https://github.com/kundajelab/idr")
9539 (commit version)))
9540 (file-name (git-file-name name version))
9541 (sha256
9542 (base32
9543 "01491ffhhj5plmpvvwmzp6c5arp5390h3jdpgsai92y6xbsgvxz8"))
9544 ;; Delete generated C code.
9545 (snippet
9546 '(begin (delete-file "idr/inv_cdf.c") #t))))
9547 (build-system pyproject-build-system)
9548 ;; There is only one test ("test_inv_cdf.py") and it tests features that
9549 ;; are no longer part of this package. It also asserts False, which
9550 ;; causes the tests to always fail.
9551 (arguments
9552 (list
9553 #:tests? #f
9554 #:phases
9555 '(modify-phases %standard-phases
9556 (add-after 'unpack 'numpy-compatibility
9557 (lambda _
9558 (substitute* "idr/idr.py"
9559 (("numpy.int") "int"))
9560 (substitute* "idr/inv_cdf.pyx"
9561 (("np.int_t") "np.int64_t")))))))
9562 (propagated-inputs
9563 (list python-scipy python-sympy python-numpy python-matplotlib))
9564 (native-inputs
9565 (list python-cython
9566 python-setuptools))
9567 (home-page "https://github.com/nboley/idr")
9568 (synopsis "Tool to measure the irreproducible discovery rate (IDR)")
9569 (description
9570 "The IDR (Irreproducible Discovery Rate) framework is a unified approach
9571to measure the reproducibility of findings identified from replicate
9572experiments and provide highly stable thresholds based on reproducibility.")
9573 (license license:gpl2+)))
9574
9575(define-public isolator
9576 (let ((commit "24bafc0a102dce213bfc2b5b9744136ceadaba03")
9577 (revision "1"))
9578 (package
9579 (name "isolator")
9580 (version (git-version "0.0.2" revision commit))
9581 (source
9582 (origin
9583 (method git-fetch)
9584 (uri (git-reference
9585 (url "https://github.com/dcjones/isolator.git")
9586 (commit commit)))
9587 (file-name (git-file-name name version))
9588 (sha256
9589 (base32
9590 "12mbcfqhiggcjvzizf2ff7b05z31i47njcyzcivpw5j74pfbr3dv"))))
9591 (build-system cmake-build-system)
9592 (arguments
9593 (list
9594 #:tests? #f ;no check target
9595 #:phases
9596 '(modify-phases %standard-phases
9597 (add-after 'unpack 'fix-std
9598 (lambda _
9599 (substitute* '("src/summarize.cpp"
9600 "src/shredder.cpp")
9601 (("isnan") "std::isnan")
9602 (("isinf") "std::isinf")))))))
9603 (inputs
9604 (list boost-1.83 hdf5 zlib))
9605 (home-page "https://github.com/dcjones/isolator")
9606 (synopsis "Tools for the analysis of RNA-Seq experiments")
9607 (description "Isolator analyzes RNA-Seq experiments. Isolator has a
9608particular focus on producing stable, consistent estimates. It implements a
9609full hierarchical Bayesian model of an entire RNA-Seq experiment. It saves
9610all the samples generated by the sampler, which can be processed to compute
9611posterior probabilities for arbitrarily complex questions, far beyond the
9612confines of pairwise tests. It aggressively corrects for technical effects,
9613such as random priming bias, GC-bias, 3' bias, and fragmentation effects.
9614Compared to other MCMC approaches, it is exceedingly efficient, though
9615generally slower than modern maximum likelihood approaches.")
9616 (license license:expat))))
9617
9618(define-public jellyfish
9619 (package
9620 (name "jellyfish")
9621 (version "2.3.0")
9622 (source (origin
9623 (method url-fetch)
9624 (uri (string-append "https://github.com/gmarcais/Jellyfish/"
9625 "releases/download/v" version
9626 "/jellyfish-" version ".tar.gz"))
9627 (sha256
9628 (base32
9629 "0npa62wzasdibas5zp3n8j3armsci4kyvh0jw7jr0am4gg7vg5g1"))))
9630 (build-system gnu-build-system)
9631 (outputs '("out" ;for library
9632 "python")) ;for Python bindings
9633 (arguments
9634 (list
9635 #:configure-flags
9636 #~(list "--without-sse" ; configure script probes for CPU features when SSE is enabled.
9637 (string-append "--enable-python-binding=" #$output:python))
9638 #:phases
9639 '(modify-phases %standard-phases
9640 (add-before 'check 'set-SHELL-variable
9641 (lambda _
9642 ;; generator_manager.hpp either uses /bin/sh or $SHELL
9643 ;; to run tests.
9644 (setenv "SHELL" (which "bash")))))))
9645 (native-inputs
9646 (list bc
9647 time
9648 python-wrapper
9649 python-setuptools
9650 pkg-config))
9651 (inputs
9652 (list htslib))
9653 (synopsis "Tool for fast counting of k-mers in DNA")
9654 (description
9655 "Jellyfish is a tool for fast, memory-efficient counting of k-mers in
9656DNA. A k-mer is a substring of length k, and counting the occurrences of all
9657such substrings is a central step in many analyses of DNA sequence. Jellyfish
9658is a command-line program that reads FASTA and multi-FASTA files containing
9659DNA sequences. It outputs its k-mer counts in a binary format, which can be
9660translated into a human-readable text format using the @code{jellyfish dump}
9661command, or queried for specific k-mers with @code{jellyfish query}.")
9662 (home-page "http://www.genome.umd.edu/jellyfish.html")
9663 ;; JELLYFISH seems to be 64-bit only.
9664 (supported-systems %64bit-supported-systems)
9665 ;; One of these licenses may be picked
9666 (license (list license:gpl3+ license:bsd-3))))
9667
9668(define-public kaiju
9669 (package
9670 (name "kaiju")
9671 (version "1.9.0")
9672 (source (origin
9673 (method git-fetch)
9674 (uri (git-reference
9675 (url "https://github.com/bioinformatics-centre/kaiju")
9676 (commit (string-append "v" version))))
9677 (file-name (git-file-name name version))
9678 (sha256
9679 (base32
9680 "1hfmadkfs6jjd7l3byly5xxb0ifm3dm1wis11sjbqfcv6l89snmg"))))
9681 (build-system gnu-build-system)
9682 (arguments
9683 (list
9684 #:tests? #f ; There are no tests.
9685 #:phases
9686 #~(modify-phases %standard-phases
9687 (delete 'configure)
9688 (add-before 'build 'move-to-src-dir
9689 (lambda _ (chdir "src")))
9690 (replace 'install
9691 (lambda _
9692 (let ((bin (string-append #$output "/bin")))
9693 (mkdir-p bin)
9694 (copy-recursively "../bin" bin)
9695 (let ((path (search-path-as-list '("bin")
9696 '#$(match (package-inputs this-package)
9697 (((_ pkg) ...) pkg)))))
9698 (for-each (lambda (script)
9699 (let ((exe (string-append bin "/" script)))
9700 (chmod exe #o555)
9701 (wrap-script exe
9702 #:guile #$(file-append guile-3.0 "/bin/guile")
9703 `("PATH" ":" prefix ,path))))
9704 (list "kaiju-convertMAR.py"
9705 "kaiju-gbk2faa.pl"
9706 "kaiju-makedb")))))))))
9707 (inputs
9708 (list bzip2
9709 coreutils
9710 curl
9711 gawk
9712 guile-3.0 ;for wrap-script
9713 gzip
9714 perl
9715 python-wrapper
9716 tar
9717 wget
9718 zlib))
9719 (home-page "https://kaiju.binf.ku.dk/")
9720 (synopsis "Fast and sensitive taxonomic classification for metagenomics")
9721 (description "Kaiju is a program for sensitive taxonomic classification
9722of high-throughput sequencing reads from metagenomic whole genome sequencing
9723experiments.")
9724 (license license:gpl3+)))
9725
9726(define-public macs
9727 (package
9728 (name "macs")
9729 (version "3.0.4")
9730 (source
9731 (origin
9732 (method git-fetch)
9733 (uri (git-reference
9734 (url "https://github.com/macs3-project/MACS")
9735 (commit (string-append "v" version))
9736 (recursive? #true)))
9737 (file-name (git-file-name name version))
9738 (sha256
9739 (base32 "16cv6bvvppi0z69r5l357ai8x4jg61rx8xrvcapk1wz6mh9naf5s"))))
9740 (build-system pyproject-build-system)
9741 (arguments
9742 (list
9743 #:test-flags
9744 ;; AssertionError: np.float32(1.0) != np.float64(-1.0)
9745 ;; calculated step by step:
9746 ;; 6.559423e-18
9747 ;; expected:
9748 ;; -2.98155597e-18
9749 #~(list (string-append "--deselect=test/test_SignalProcessing.py::"
9750 "Test_maxima::test_implement_smooth_here"))))
9751 (native-inputs
9752 (list python-cython
9753 python-pytest
9754 python-setuptools
9755 zlib))
9756 (propagated-inputs
9757 (list python-cykhash
9758 python-hmmlearn
9759 python-numpy
9760 python-scikit-learn
9761 python-scipy))
9762 (home-page "https://github.com/macs3-project/MACS")
9763 (synopsis "Model based analysis for ChIP-Seq data")
9764 (description
9765 "MACS is an implementation of a ChIP-Seq analysis algorithm for
9766identifying transcript factor binding sites named Model-based Analysis of
9767ChIP-Seq (MACS). MACS captures the influence of genome complexity to evaluate
9768the significance of enriched ChIP regions and it improves the spatial
9769resolution of binding sites through combining the information of both
9770sequencing tag position and orientation.")
9771 (license license:bsd-3)))
9772
9773;; 2026-05-29
9774(define-deprecated/public-alias macs-3 macs)
9775
9776(define-public maffilter
9777 (package
9778 (name "maffilter")
9779 (version "1.3.1")
9780 (source
9781 (origin
9782 (method git-fetch)
9783 (uri (git-reference
9784 (url "https://github.com/jydu/maffilter")
9785 (commit (string-append "v" version))))
9786 (file-name (git-file-name name version))
9787 (sha256
9788 (base32 "196c16qw82niqqyzi7j1ga1n0zmir73bm26kg04m0i5aq2cpa0ml"))))
9789 (build-system cmake-build-system)
9790 (arguments (list #:tests? #false)) ;there are none
9791 (inputs
9792 (list boost
9793 bpp-core
9794 bpp-phyl
9795 bpp-phyl-omics
9796 bpp-seq
9797 bpp-seq-omics
9798 zlib))
9799 (home-page "https://jydu.github.io/maffilter/")
9800 (synopsis "Multiple alignment format file processor")
9801 (description
9802 "MafFilter is a program dedicated to the analysis of genome alignments.
9803It parses and manipulates @acronym{MAF, multiple alignment format} files as
9804well as more simple fasta files. This package can be used to design a
9805pipeline as a series of consecutive filters, each performing a dedicated
9806analysis. Many of the filters are available, from alignment cleaning to
9807phylogeny reconstruction and population genetics analysis. Despite various
9808filtering options and format conversion tools, MafFilter can compute a wide
9809range of statistics (phylogenetic trees, nucleotide diversity, inference of
9810selection, etc.).")
9811 (license license:gpl3+)))
9812
9813(define-public mafft
9814 (package
9815 (name "mafft")
9816 (version "7.475")
9817 (source (origin
9818 (method url-fetch)
9819 (uri (string-append
9820 "https://mafft.cbrc.jp/alignment/software/mafft-" version
9821 "-without-extensions-src.tgz"))
9822 (file-name (string-append name "-" version ".tgz"))
9823 (sha256
9824 (base32
9825 "0i2i2m3blh2xkbkdk48hxfssks30ny0v381gdl7zwhcvp0axs26r"))))
9826 (build-system gnu-build-system)
9827 (arguments
9828 `(#:tests? #f ; no automated tests, though there are tests in the read me
9829 #:make-flags ,#~(list (string-append "PREFIX=" #$output)
9830 (string-append "BINDIR="
9831 (string-append #$output "/bin")))
9832 #:phases
9833 (modify-phases %standard-phases
9834 (add-after 'unpack 'enter-dir
9835 (lambda _ (chdir "core") #t))
9836 (add-after 'enter-dir 'patch-makefile
9837 (lambda _
9838 ;; on advice from the MAFFT authors, there is no need to
9839 ;; distribute mafft-profile, mafft-distance, or
9840 ;; mafft-homologs.rb as they are too "specialised".
9841 (substitute* "Makefile"
9842 ;; remove mafft-homologs.rb from SCRIPTS
9843 (("^SCRIPTS = mafft mafft-homologs.rb")
9844 "SCRIPTS = mafft")
9845 ;; remove mafft-homologs from MANPAGES
9846 (("^MANPAGES = mafft.1 mafft-homologs.1")
9847 "MANPAGES = mafft.1")
9848 ;; remove mafft-distance from PROGS
9849 (("^PROGS = dvtditr dndfast7 dndblast sextet5 mafft-distance")
9850 "PROGS = dvtditr dndfast7 dndblast sextet5")
9851 ;; remove mafft-profile from PROGS
9852 (("splittbfast disttbfast tbfast mafft-profile 2cl mccaskillwrap")
9853 "splittbfast disttbfast tbfast f2cl mccaskillwrap")
9854 (("^rm -f mafft-profile mafft-profile.exe") "#")
9855 (("^rm -f mafft-distance mafft-distance.exe") ")#")
9856 ;; do not install MAN pages in libexec folder
9857 (("^\t\\$\\(INSTALL\\) -m 644 \\$\\(MANPAGES\\) \
9858\\$\\(DESTDIR\\)\\$\\(LIBDIR\\)") "#"))))
9859 (add-after 'enter-dir 'patch-paths
9860 (lambda* (#:key inputs #:allow-other-keys)
9861 (substitute* '("pairash.c"
9862 "mafft.tmpl")
9863 (("perl") (which "perl"))
9864 (("([\"`| ])awk" _ prefix)
9865 (string-append prefix (which "awk")))
9866 (("grep") (which "grep")))))
9867 (delete 'configure)
9868 (add-after 'install 'wrap-programs
9869 (lambda* (#:key inputs outputs #:allow-other-keys)
9870 (let* ((out (assoc-ref outputs "out"))
9871 (bin (string-append out "/bin"))
9872 (path (string-append
9873 (assoc-ref inputs "coreutils") "/bin:")))
9874 (for-each (lambda (file)
9875 (wrap-program file
9876 `("PATH" ":" prefix (,path))))
9877 (find-files bin))))))))
9878 (inputs
9879 (list bash-minimal perl ruby gawk grep coreutils))
9880 (home-page "https://mafft.cbrc.jp/alignment/software/")
9881 (synopsis "Multiple sequence alignment program")
9882 (description
9883 "MAFFT offers a range of multiple alignment methods for nucleotide and
9884protein sequences. For instance, it offers L-INS-i (accurate; for alignment
9885of <~200 sequences) and FFT-NS-2 (fast; for alignment of <~30,000
9886sequences).")
9887 (license (license:non-copyleft
9888 "https://mafft.cbrc.jp/alignment/software/license.txt"
9889 "BSD-3 with different formatting"))))
9890
9891(define-public mageck
9892 (package
9893 (name "mageck")
9894 (version "0.5.9.5")
9895 (source (origin
9896 (method url-fetch)
9897 (uri (string-append "mirror://sourceforge/mageck/"
9898 (version-major+minor version)
9899 "/mageck-" version ".tar.gz"))
9900 (sha256
9901 (base32
9902 "0fnry7d3ngiw0jarvmwd3pxy5vvsf931m4aifz6mjfd6dl1ihsmh"))))
9903 (build-system pyproject-build-system)
9904 (arguments
9905 (list
9906 #:modules '((guix build pyproject-build-system)
9907 (guix build utils)
9908 (srfi srfi-1)
9909 (ice-9 match))
9910 #:phases
9911 #~(modify-phases %standard-phases
9912 (add-after 'unpack 'use-python3
9913 (lambda _
9914 (substitute* "bin/mageck"
9915 (("python2") "python"))))
9916 (add-after 'unpack 'numpy-compatibility
9917 (lambda _
9918 (substitute* "mageck/cnv_normalization.py"
9919 (("np.float") "float"))))
9920 ;; The build system declares executables both in "scripts" and
9921 ;; "data", which all are supposed to end up in #$output/bin. The
9922 ;; pyproject-build-system gets confused by this, though, so we have
9923 ;; to manually install the mageck executable after the 'install
9924 ;; phase.
9925 (add-after 'unpack 'patch-build-system
9926 (lambda _
9927 (substitute* "setup.py"
9928 (("scripts=\\['bin/mageck'\\],") ""))))
9929 (add-after 'install 'install-mageck
9930 (lambda _
9931 (install-file "bin/mageck" (string-append #$output "/bin"))))
9932 (add-after 'install-mageck 'make-excutable
9933 (lambda _
9934 (for-each (lambda (file) (chmod file #o555))
9935 (find-files (string-append #$output "/bin")))))
9936 (replace 'check
9937 (lambda* (#:key tests? #:allow-other-keys)
9938 (when tests?
9939 (let ((tests '(("demo1" "run.sh")
9940 ("demo2" "runmageck.sh")
9941 ("demo3" "run.sh")
9942 ("demo4" "run.sh"))))
9943 (setenv "PATH"
9944 (string-append #$output "/bin:"
9945 (getenv "PATH")))
9946 (for-each (match-lambda
9947 ((dir script)
9948 (with-directory-excursion (string-append "demo/" dir)
9949 (invoke "bash" script))))
9950 tests))))))))
9951 (native-inputs
9952 (list python-setuptools))
9953 (inputs
9954 (list python-numpy-1
9955 python-scipy
9956 python-matplotlib
9957 python-statsmodels
9958 python-pyqt
9959 r-minimal
9960 r-xtable
9961 r-gplots))
9962 (home-page "https://sourceforge.net/projects/mageck/")
9963 (synopsis "Model-based analysis of genome-wide CRISPR-Cas9 Knockout")
9964 (description
9965 "Model-based Analysis of Genome-wide CRISPR-Cas9
9966Knockout (MAGeCK) is a computational tool to identify important genes
9967from the recent genome-scale CRISPR-Cas9 knockout screens
9968technology. Its features include:
9969
9970@enumerate
9971@item Simple, easy to use pipeline to screen genes in Genome-wide
9972 CRISPR-Cas9 Knockout experiments;
9973@item High sensitivity and low false discovery rate;
9974@item Fully utilize the screening data by performing both positive and
9975 negative screening in one dataset;
9976@item Provide statistical evaluation in genes, sgRNAs and pathways;
9977@item Require as few as 2 samples;
9978@item Identify cell-type specific targets;
9979@item A set of visualization features that generate publication
9980 standard figures.
9981@end enumerate\n")
9982 (license license:bsd-3)))
9983
9984(define-public mash
9985 (package
9986 (name "mash")
9987 (version "2.3")
9988 (source (origin
9989 (method git-fetch)
9990 (uri (git-reference
9991 (url "https://github.com/marbl/mash")
9992 (commit (string-append "v" version))))
9993 (file-name (git-file-name name version))
9994 (sha256
9995 (base32
9996 "00x4pvxwp3isf0qign1qmxwxc9rwzn5b3igjw9hyn3vx17bsx92q"))
9997 (modules '((guix build utils)))
9998 (snippet
9999 ;; Delete bundled kseq.
10000 ;; TODO: Also delete bundled murmurhash and open bloom filter.
10001 '(delete-file "src/mash/kseq.h"))
10002 (patches (search-patches "mash-add-missing-headers.patch"))))
10003 (build-system gnu-build-system)
10004 (arguments
10005 `(#:tests? #f ; No tests.
10006 #:configure-flags
10007 ,#~(list
10008 (string-append "--with-capnp=" #$(this-package-input "capnproto"))
10009 (string-append "--with-gsl=" #$(this-package-input "gsl")))
10010 #:make-flags (list "CC=gcc")
10011 #:phases
10012 (modify-phases %standard-phases
10013 (replace 'bootstrap
10014 ;; The bootstrap script is missing a shebang.
10015 (lambda _
10016 (invoke "bash" "./bootstrap.sh")))
10017 (add-after 'unpack 'fix-includes
10018 (lambda _
10019 (substitute* '("src/mash/Sketch.cpp"
10020 "src/mash/CommandFind.cpp"
10021 "src/mash/CommandScreen.cpp"
10022 "src/mash/CommandTaxScreen.cpp")
10023 (("^#include \"kseq\\.h\"")
10024 "#include \"htslib/kseq.h\""))))
10025 (add-after 'fix-includes 'use-c++14
10026 (lambda _
10027 ;; capnproto 1.0 requires c++14 to build.
10028 (substitute* (list "configure.ac" "Makefile.in")
10029 (("c\\+\\+11") "c++14")))))))
10030 (native-inputs
10031 (list autoconf))
10032 (inputs
10033 (list ;; Capnproto and htslib are statically embedded in the final
10034 ;; application. Therefore we also list their licenses, below.
10035 capnproto
10036 htslib
10037 gsl
10038 zlib))
10039 (supported-systems '("x86_64-linux"))
10040 (home-page "https://mash.readthedocs.io")
10041 (synopsis "Fast genome and metagenome distance estimation using MinHash")
10042 (description "Mash is a fast sequence distance estimator that uses the
10043MinHash algorithm and is designed to work with genomes and metagenomes in the
10044form of assemblies or reads.")
10045 (license (list license:bsd-3 ; Mash
10046 license:expat ; HTSlib and capnproto
10047 license:public-domain ; MurmurHash 3
10048 license:cpl1.0)))) ; Open Bloom Filter
10049
10050(define-public metabat
10051 (package
10052 (name "metabat")
10053 (version "2.15")
10054 (source
10055 (origin
10056 (method git-fetch)
10057 (uri (git-reference
10058 (url "https://bitbucket.org/berkeleylab/metabat.git")
10059 (commit (string-append "v" version))))
10060 (file-name (git-file-name name version))
10061 (sha256
10062 (base32
10063 "0v3gsps0ypani14102z2y1a2wignhpf7s1h45mxmj5f783rkhqd9"))))
10064 (build-system cmake-build-system)
10065 (arguments
10066 `(#:configure-flags
10067 ,#~(list (string-append "-Dzlib_LIB=" #$(this-package-input "zlib")
10068 "/lib/libz.so")
10069 (string-append "-Dhtslib_LIB=" #$(this-package-input "htslib")
10070 "/lib/libhts.so")
10071 (string-append "-DBOOST_ROOT=" #$(this-package-input "boost")))
10072 #:phases
10073 (modify-phases %standard-phases
10074 (add-after 'unpack 'configure-version-file
10075 (lambda _
10076 (copy-file "metabat_version.h.in" "metabat_version.h")
10077 (substitute* "metabat_version.h"
10078 (("@_time_stamp@") "19700101")
10079 (("@GIT_IS_DIRTY@") "0")
10080 (("@GIT_RETRIEVED_STATE@") "0")
10081 (("@GIT_HEAD_SHA1@") (string-append "v" ,version)))))
10082 (add-after 'unpack 'do-not-use-bundled-libraries
10083 (lambda _
10084 (substitute* "CMakeLists.txt"
10085 (("include\\(cmake.*") ""))
10086 (substitute* "src/CMakeLists.txt"
10087 (("set\\(Boost.*") "")
10088 (("add_dependencies.*") "")))))))
10089 (inputs
10090 (list zlib perl samtools htslib boost-1.83))
10091 (home-page "https://bitbucket.org/berkeleylab/metabat")
10092 (synopsis
10093 "Reconstruction of single genomes from complex microbial communities")
10094 (description
10095 "Grouping large genomic fragments assembled from shotgun metagenomic
10096sequences to deconvolute complex microbial communities, or metagenome binning,
10097enables the study of individual organisms and their interactions. MetaBAT is
10098an automated metagenome binning software, which integrates empirical
10099probabilistic distances of genome abundance and tetranucleotide frequency.")
10100 ;; The source code contains inline assembly.
10101 (supported-systems '("x86_64-linux" "i686-linux"))
10102 (license (license:non-copyleft "file://license.txt"
10103 "See license.txt in the distribution."))))
10104
10105(define-public metal
10106 (package
10107 (name "metal")
10108 (version "2011-03-25")
10109 (source
10110 (origin
10111 (method url-fetch)
10112 (uri (string-append "http://csg.sph.umich.edu/abecasis/Metal/"
10113 "download/generic-metal-" version ".tar.gz"))
10114 (sha256
10115 (base32
10116 "1bk00hc0xagmq0mabmbb8bykl75qd4kfyirba869h4x6hmn4a0f3"))))
10117 (build-system gnu-build-system)
10118 (arguments
10119 (list
10120 #:tests? #f
10121 #:make-flags
10122 #~(list (string-append "INSTALLDIR=" #$output "/bin") "all")
10123 #:phases
10124 '(modify-phases %standard-phases
10125 (replace 'configure
10126 (lambda _
10127 (substitute* "Makefile"
10128 (("^CFLAGS=") "CFLAGS=-std=c++11 ")))))))
10129 (inputs (list zlib `(,zlib "static")))
10130 (home-page "http://csg.sph.umich.edu/abecasis/Metal/")
10131 (synopsis "Facilitate meta-analysis of large datasets")
10132 (description "METAL is a tool for meta-analysis genomewide association
10133scans. METAL can combine either test statistics and standard errors or
10134p-values across studies (taking sample size and direction of effect into
10135account). METAL analysis is a convenient alternative to a direct analysis of
10136merged data from multiple studies. It is especially appropriate when data
10137from the individual studies cannot be analyzed together because of differences
10138in ethnicity, phenotype distribution, gender or constraints in sharing of
10139individual level data imposed. Meta-analysis results in little or no loss of
10140efficiency compared to analysis of a combined dataset including data from all
10141individual studies.")
10142 (license license:bsd-3)))
10143
10144(define-public minced
10145 (package
10146 (name "minced")
10147 (version "0.3.2")
10148 (source (origin
10149 (method git-fetch)
10150 (uri (git-reference
10151 (url "https://github.com/ctSkennerton/minced")
10152 (commit version)))
10153 (file-name (git-file-name name version))
10154 (sha256
10155 (base32
10156 "1f5h9him0gd355cnx7p6pnxpknhckd4g0v62mg8zyhfbx9as25fv"))))
10157 (build-system gnu-build-system)
10158 (arguments
10159 `(#:test-target "test"
10160 #:phases
10161 (modify-phases %standard-phases
10162 (delete 'configure)
10163 (add-before 'check 'fix-test
10164 (lambda _
10165 ;; Fix test for latest version.
10166 (substitute* "t/Aquifex_aeolicus_VF5.expected"
10167 (("minced:0.1.6") "minced:0.2.0"))
10168 #t))
10169 (replace 'install ; No install target.
10170 (lambda* (#:key inputs outputs #:allow-other-keys)
10171 (let* ((out (assoc-ref outputs "out"))
10172 (bin (string-append out "/bin"))
10173 (wrapper (string-append bin "/minced")))
10174 ;; Minced comes with a wrapper script that tries to figure out where
10175 ;; it is located before running the JAR. Since these paths are known
10176 ;; to us, we build our own wrapper to avoid coreutils dependency.
10177 (install-file "minced.jar" bin)
10178 (with-output-to-file wrapper
10179 (lambda _
10180 (display
10181 (string-append
10182 "#!" (assoc-ref inputs "bash") "/bin/sh\n\n"
10183 (assoc-ref inputs "jre") "/bin/java -jar "
10184 bin "/minced.jar \"$@\"\n"))))
10185 (chmod wrapper #o555))
10186 #t)))))
10187 (native-inputs
10188 `(("jdk" ,icedtea "jdk")))
10189 (inputs
10190 `(("bash" ,bash)
10191 ("jre" ,icedtea "out")))
10192 (home-page "https://github.com/ctSkennerton/minced")
10193 (synopsis "Mining CRISPRs in Environmental Datasets")
10194 (description
10195 "MinCED is a program to find Clustered Regularly Interspaced Short
10196Palindromic Repeats (CRISPRs) in DNA sequences. It can be used for
10197unassembled metagenomic reads, but is mainly designed for full genomes and
10198assembled metagenomic sequence.")
10199 (license license:gpl3+)))
10200
10201(define-public muscle
10202 (package
10203 (name "muscle")
10204 (version "3.8.1551")
10205 (source (origin
10206 (method url-fetch/tarbomb)
10207 (uri (string-append
10208 "http://www.drive5.com/muscle/muscle_src_"
10209 version ".tar.gz"))
10210 (sha256
10211 (base32
10212 "0bj8kj7sdizy3987zx6w7axihk40fk8rn76mpbqqjcnd64i5a367"))))
10213 (build-system gnu-build-system)
10214 (arguments
10215 `(#:make-flags (list "LDLIBS = -lm")
10216 #:phases
10217 (modify-phases %standard-phases
10218 (delete 'configure)
10219 (replace 'check
10220 ;; There are no tests, so just test if it runs.
10221 (lambda _ (invoke "./muscle" "-version") #t))
10222 (replace 'install
10223 (lambda* (#:key outputs #:allow-other-keys)
10224 (let* ((out (assoc-ref outputs "out"))
10225 (bin (string-append out "/bin")))
10226 (install-file "muscle" bin)
10227 #t))))))
10228 (home-page "http://www.drive5.com/muscle")
10229 (synopsis "Multiple sequence alignment program")
10230 (description
10231 "MUSCLE aims to be a fast and accurate multiple sequence alignment
10232program for nucleotide and protein sequences.")
10233 ;; License information found in 'muscle -h' and usage.cpp.
10234 (license license:public-domain)))
10235
10236(define-public music
10237 (let ((commit "b1caecdb164b1ab80acccb9463abe2526a56f69f")
10238 (revision "1"))
10239 (package
10240 (name "music")
10241 (version (git-version "0.0.0" revision commit))
10242 (source (origin
10243 (method git-fetch)
10244 (uri (git-reference
10245 (url "https://github.com/gersteinlab/MUSIC.git")
10246 (commit commit)))
10247 (file-name (git-file-name name version))
10248 (sha256
10249 (base32
10250 "0arj300h8cpbya7y98g066xsxcg2a65h3y0qs250rlj072f1b4ia"))))
10251 (build-system gnu-build-system)
10252 (arguments
10253 (list
10254 #:tests? #f ; no "check" target
10255 #:phases
10256 #~(modify-phases %standard-phases
10257 (delete 'configure)
10258 ;; There is no "install" target.
10259 (replace 'install
10260 (lambda _
10261 (let ((bin (string-append #$output "/bin")))
10262 (install-file "bin/MUSIC" bin)))))))
10263 (home-page "https://github.com/gersteinlab/MUSIC/")
10264 (synopsis "Multiscale enrichment calling for ChIP-Seq datasets")
10265 (description
10266 "MUSIC is an algorithm for identification of enriched regions at
10267multiple scales in the read depth signals from ChIP-Seq experiments.")
10268 ;; See https://github.com/gersteinlab/MUSIC/issues/6
10269 (license license:gpl2+)
10270 (properties '((lint-hidden-cpe-vendors . ("apple")))))))
10271
10272(define-public newick-utils
10273 ;; There are no recent releases so we package from git.
10274 (let ((commit "da121155a977197cab9fbb15953ca1b40b11eb87"))
10275 (package
10276 (name "newick-utils")
10277 (version (string-append "1.6-1." (string-take commit 8)))
10278 (source (origin
10279 (method git-fetch)
10280 (uri (git-reference
10281 (url "https://github.com/tjunier/newick_utils")
10282 (commit commit)))
10283 (file-name (string-append name "-" version "-checkout"))
10284 (sha256
10285 (base32
10286 "1hkw21rq1mwf7xp0rmbb2gqc0i6p11108m69i7mr7xcjl268pxnb"))))
10287 (build-system gnu-build-system)
10288 (arguments
10289 `(#:tests? ,(not (or (target-riscv64?) ;XXX: stuck on riscv64-linux
10290 (%current-target-system)))
10291 #:make-flags (list "CFLAGS=-O2 -g -fcommon")))
10292 (inputs
10293 ;; XXX: TODO: Enable Lua and Guile bindings.
10294 ;; https://github.com/tjunier/newick_utils/issues/13
10295 (list libxml2 flex bison))
10296 (native-inputs
10297 (list autoconf automake libtool))
10298 (synopsis "Programs for working with newick format phylogenetic trees")
10299 (description
10300 "Newick-utils is a suite of utilities for processing phylogenetic trees
10301in Newick format. Functions include re-rooting, extracting subtrees,
10302trimming, pruning, condensing, drawing (ASCII graphics or SVG).")
10303 (home-page "https://github.com/tjunier/newick_utils")
10304 (license license:bsd-3))))
10305
10306(define-public orfm
10307 (package
10308 (name "orfm")
10309 (version "0.7.1")
10310 (source (origin
10311 (method url-fetch)
10312 (uri (string-append
10313 "https://github.com/wwood/OrfM/releases/download/v"
10314 version "/orfm-" version ".tar.gz"))
10315 (sha256
10316 (base32
10317 "16iigyr2gd8x0imzkk1dr3k5xsds9bpmwg31ayvjg0f4pir9rwqr"))))
10318 (build-system gnu-build-system)
10319 (inputs (list zlib))
10320 (native-inputs
10321 (list ruby-bio-commandeer ruby-rspec ruby))
10322 (synopsis "Simple and not slow open reading frame (ORF) caller")
10323 (description
10324 "An ORF caller finds stretches of DNA that, when translated, are not
10325interrupted by stop codons. OrfM finds and prints these ORFs.")
10326 (home-page "https://github.com/wwood/OrfM")
10327 (license license:lgpl3+)))
10328
10329(define-public prank
10330 (package
10331 (name "prank")
10332 (version "170427")
10333 (source (origin
10334 (method url-fetch)
10335 (uri (string-append
10336 "http://wasabiapp.org/download/prank/prank.source."
10337 version ".tgz"))
10338 (sha256
10339 (base32
10340 "0nc8g9c5rkdxcir46s0in9ci1sxwzbjibxrvkksf22ybnplvagk2"))))
10341 (build-system gnu-build-system)
10342 (arguments
10343 `(#:phases
10344 (modify-phases %standard-phases
10345 (add-after 'unpack 'enter-src-dir
10346 (lambda _ (chdir "src")))
10347 (add-after 'unpack 'remove-m64-flag
10348 ;; Prank will build with the correct 'bit-ness' without this flag
10349 ;; and this allows building on 32-bit machines.
10350 (lambda _
10351 (substitute* "src/Makefile"
10352 (("-m64") ""))))
10353 (delete 'configure)
10354 (replace 'install
10355 (lambda* (#:key inputs outputs #:allow-other-keys)
10356 (let* ((out (assoc-ref outputs "out"))
10357 (bin (string-append out "/bin"))
10358 (man (string-append out "/share/man/man1"))
10359 (path (string-append
10360 (assoc-ref inputs "mafft") "/bin:"
10361 (assoc-ref inputs "exonerate") "/bin:"
10362 (assoc-ref inputs "bppsuite") "/bin")))
10363 (install-file "prank" bin)
10364 (wrap-program (string-append bin "/prank")
10365 `("PATH" ":" prefix (,path)))
10366 (install-file "prank.1" man)))))))
10367 (inputs
10368 (list mafft exonerate bppsuite))
10369 (home-page "http://wasabiapp.org/software/prank/")
10370 (synopsis "Probabilistic multiple sequence alignment program")
10371 (description
10372 "PRANK is a probabilistic multiple sequence alignment program for DNA,
10373codon and amino-acid sequences. It is based on a novel algorithm that treats
10374insertions correctly and avoids over-estimation of the number of deletion
10375events. In addition, PRANK borrows ideas from maximum likelihood methods used
10376in phylogenetics and correctly takes into account the evolutionary distances
10377between sequences. Lastly, PRANK allows for defining a potential structure
10378for sequences to be aligned and then, simultaneously with the alignment,
10379predicts the locations of structural units in the sequences.")
10380 (license license:gpl2+)))
10381
10382(define-public proteinortho
10383 (package
10384 (name "proteinortho")
10385 (version "6.3.2")
10386 (source (origin
10387 (method git-fetch)
10388 (uri (git-reference
10389 (url "https://gitlab.com/paulklemm_PHD/proteinortho.git")
10390 (commit (string-append "v" version))))
10391 (file-name (git-file-name name version))
10392 (sha256
10393 (base32
10394 "0p8iaxq193fh67hw3cydvdah1vz1c3f18227gj1mhkww0ms7g6xa"))
10395 (modules '((guix build utils)))
10396 (snippet
10397 '(begin
10398 ;; Remove pre-built scripts and source tarballs.
10399 (delete-file-recursively "src/BUILD/")
10400 (delete-file "src/lapack-3.8.0.tar.gz")))))
10401 (build-system gnu-build-system)
10402 (arguments
10403 (list
10404 #:test-target "test"
10405 #:parallel-tests? #f
10406 #:make-flags
10407 #~(list (string-append "CC=" #$(cc-for-target))
10408 (string-append "CXX=" #$(cxx-for-target))
10409 (string-append "PREFIX=" #$output)
10410 (string-append "INSTALLDIR=" #$output "/bin"))
10411 #:phases
10412 #~(modify-phases %standard-phases
10413 (delete 'configure)
10414 (add-before 'install 'make-install-directory
10415 ;; The install directory is not created during 'make install'.
10416 (lambda* (#:key outputs #:allow-other-keys)
10417 (mkdir-p (string-append (assoc-ref outputs "out") "/bin"))))
10418 (add-after 'install 'wrap-programs
10419 (lambda* (#:key inputs outputs #:allow-other-keys)
10420 (let ((path (getenv "PATH"))
10421 (out (assoc-ref outputs "out"))
10422 (guile (search-input-file inputs "bin/guile")))
10423 (for-each (lambda (script)
10424 (wrap-script script #:guile guile
10425 `("PATH" ":" prefix (,path))))
10426 (cons (string-append out "/bin/proteinortho")
10427 (find-files out "\\.(pl|py)$")))))))))
10428 (inputs
10429 (list bash-minimal
10430 guile-3.0 ; for wrap-script
10431 diamond
10432 perl
10433 python-wrapper
10434 blast+
10435 openblas))
10436 (native-inputs
10437 (list which))
10438 (home-page "https://www.bioinf.uni-leipzig.de/Software/proteinortho")
10439 (synopsis "Detect orthologous genes across species")
10440 (description
10441 "Proteinortho is a tool to detect orthologous genes across different
10442species. For doing so, it compares similarities of given gene sequences and
10443clusters them to find significant groups. The algorithm was designed to handle
10444large-scale data and can be applied to hundreds of species at once.")
10445 (properties `((tunable? . #t)))
10446 (license license:gpl3+)))
10447
10448(define-public prodigal
10449 (package
10450 (name "prodigal")
10451 ;; Check for a new home page when updating this package:
10452 ;; https://github.com/hyattpd/Prodigal/issues/36#issuecomment-536617588
10453 (version "2.6.3")
10454 (source (origin
10455 (method git-fetch)
10456 (uri (git-reference
10457 (url "https://github.com/hyattpd/Prodigal")
10458 (commit (string-append "v" version))))
10459 (file-name (git-file-name name version))
10460 (sha256
10461 (base32
10462 "1fs1hqk83qjbjhrvhw6ni75zakx5ki1ayy3v6wwkn3xvahc9hi5s"))))
10463 (build-system gnu-build-system)
10464 (arguments
10465 `(#:tests? #f ; no check target
10466 #:make-flags
10467 ,#~(list (string-append "INSTALLDIR=" #$output "/bin"))
10468 #:phases
10469 (modify-phases %standard-phases
10470 (delete 'configure))))
10471 (home-page "https://github.com/hyattpd/Prodigal")
10472 (synopsis "Protein-coding gene prediction for Archaea and Bacteria")
10473 (description
10474 "Prodigal runs smoothly on finished genomes, draft genomes, and
10475metagenomes, providing gene predictions in GFF3, Genbank, or Sequin table
10476format. It runs quickly, in an unsupervised fashion, handles gaps, handles
10477partial genes, and identifies translation initiation sites.")
10478 (license license:gpl3+)))
10479
10480(define-public roary
10481 (package
10482 (name "roary")
10483 (version "3.12.0")
10484 (source
10485 (origin
10486 (method url-fetch)
10487 (uri (string-append
10488 "mirror://cpan/authors/id/A/AJ/AJPAGE/Bio-Roary-"
10489 version ".tar.gz"))
10490 (sha256
10491 (base32
10492 "0qxrds9wx7cfhlkihrp6697kx0flhhxymap9fwan0b3rbdhcnmff"))))
10493 (build-system perl-build-system)
10494 (arguments
10495 `(#:phases
10496 (modify-phases %standard-phases
10497 (delete 'configure)
10498 (delete 'build)
10499 (replace 'check
10500 (lambda _
10501 ;; The tests are not run by default, so we run each test file
10502 ;; directly.
10503 (setenv "PATH" (string-append (getcwd) "/bin" ":"
10504 (getenv "PATH")))
10505 (setenv "PERL5LIB" (string-append (getcwd) "/lib" ":"
10506 (getenv "PERL5LIB")))
10507 (for-each (lambda (file)
10508 (display file)(display "\n")
10509 (invoke "perl" file))
10510 (find-files "t" ".*\\.t$"))))
10511 (replace 'install
10512 ;; There is no 'install' target in the Makefile.
10513 (lambda* (#:key outputs #:allow-other-keys)
10514 (let* ((out (assoc-ref outputs "out"))
10515 (bin (string-append out "/bin"))
10516 (perl (string-append out "/lib/perl5/site_perl"))
10517 (roary-plots "contrib/roary_plots"))
10518 (mkdir-p bin)
10519 (mkdir-p perl)
10520 (copy-recursively "bin" bin)
10521 (copy-recursively "lib" perl))))
10522 (add-after 'install 'wrap-programs
10523 (lambda* (#:key inputs outputs #:allow-other-keys)
10524 (let* ((out (assoc-ref outputs "out"))
10525 (perl5lib (getenv "PERL5LIB"))
10526 (path (getenv "PATH")))
10527 (for-each (lambda (prog)
10528 (let ((binary (string-append out "/" prog)))
10529 (wrap-program binary
10530 `("PERL5LIB" ":" prefix
10531 (,(string-append perl5lib ":" out
10532 "/lib/perl5/site_perl"))))
10533 (wrap-program binary
10534 `("PATH" ":" prefix
10535 (,(string-append path ":" out "/bin"))))))
10536 (find-files "bin" ".*[^R]$"))
10537 (let ((file
10538 (string-append out "/bin/roary-create_pan_genome_plots.R"))
10539 (r-site-lib (getenv "R_LIBS_SITE"))
10540 (coreutils-path
10541 (dirname (search-input-file inputs "bin/chmod"))))
10542 (wrap-program file
10543 `("R_LIBS_SITE" ":" prefix
10544 (,(string-append r-site-lib ":" out "/site-library/"))))
10545 (wrap-program file
10546 `("PATH" ":" prefix
10547 (,(string-append coreutils-path ":" out "/bin")))))))))))
10548 (native-inputs
10549 (list perl-env-path perl-test-files perl-test-most perl-test-output))
10550 (inputs
10551 (list bash-minimal
10552 perl-array-utils
10553 bioperl-minimal
10554 perl-digest-md5-file
10555 perl-exception-class
10556 perl-file-find-rule
10557 perl-file-grep
10558 perl-file-slurper
10559 perl-file-which
10560 perl-graph
10561 perl-graph-readwrite
10562 perl-log-log4perl
10563 perl-moose
10564 perl-perlio-utf8_strict
10565 perl-text-csv
10566 bedtools
10567 cd-hit
10568 blast+
10569 mcl
10570 parallel
10571 prank
10572 mafft
10573 fasttree
10574 grep
10575 sed
10576 gawk
10577 r-minimal
10578 r-ggplot2
10579 coreutils))
10580 (home-page "https://sanger-pathogens.github.io/Roary/")
10581 (synopsis "High speed stand-alone pan genome pipeline")
10582 (description
10583 "Roary is a high speed stand alone pan genome pipeline, which takes
10584annotated assemblies in GFF3 format (produced by the Prokka program) and
10585calculates the pan genome. Using a standard desktop PC, it can analyse
10586datasets with thousands of samples, without compromising the quality of the
10587results. 128 samples can be analysed in under 1 hour using 1 GB of RAM and a
10588single processor. Roary is not intended for metagenomics or for comparing
10589extremely diverse sets of genomes.")
10590 (license license:gpl3)))
10591
10592(define-public raxml
10593 (package
10594 (name "raxml")
10595 (version "8.2.12")
10596 (source
10597 (origin
10598 (method git-fetch)
10599 (uri (git-reference
10600 (url "https://github.com/stamatak/standard-RAxML")
10601 (commit (string-append "v" version))))
10602 (file-name (git-file-name name version))
10603 (sha256
10604 (base32
10605 "1jqjzhch0rips0vp04prvb8vmc20c5pdmsqn8knadcf91yy859fh"))))
10606 (build-system gnu-build-system)
10607 (arguments
10608 `(#:tests? #f ; There are no tests.
10609 ;; Use 'standard' Makefile rather than SSE or AVX ones.
10610 #:make-flags (list "-f" "Makefile.HYBRID.gcc")
10611 #:phases
10612 (modify-phases %standard-phases
10613 (delete 'configure)
10614 (replace 'install
10615 (lambda* (#:key outputs #:allow-other-keys)
10616 (let* ((out (assoc-ref outputs "out"))
10617 (bin (string-append out "/bin"))
10618 (executable "raxmlHPC-HYBRID"))
10619 (install-file executable bin)
10620 (symlink (string-append bin "/" executable) "raxml"))
10621 #t)))))
10622 (inputs
10623 (list openmpi))
10624 (home-page "https://cme.h-its.org/exelixis/web/software/raxml/index.html")
10625 (synopsis "Randomized Axelerated Maximum Likelihood phylogenetic trees")
10626 (description
10627 "RAxML is a tool for phylogenetic analysis and post-analysis of large
10628phylogenies.")
10629 ;; The source includes x86 specific code
10630 (supported-systems '("x86_64-linux" "i686-linux"))
10631 (license license:gpl2+)))
10632
10633(define-public rsem
10634 (package
10635 (name "rsem")
10636 (version "1.3.3")
10637 (source
10638 (origin
10639 (method git-fetch)
10640 (uri (git-reference
10641 (url "https://github.com/deweylab/RSEM")
10642 (commit (string-append "v" version))))
10643 (sha256
10644 (base32 "1yl4i7z20n2p84j1lmk15aiak3yqc6fiw0q5a4pndw7pxfiq3rzp"))
10645 (file-name (git-file-name name version))
10646 (modules '((guix build utils)))
10647 (snippet
10648 '(begin
10649 ;; remove bundled copy of boost and samtools
10650 (delete-file-recursively "boost")
10651 (delete-file-recursively "samtools-1.3")))))
10652 (build-system gnu-build-system)
10653 (arguments
10654 `(#:tests? #f ;no "check" target
10655 #:make-flags
10656 ,#~(list (string-append "BOOST="
10657 #$(this-package-input "boost")
10658 "/include/")
10659 (string-append "SAMHEADERS="
10660 #$(this-package-input "htslib")
10661 "/include/htslib/sam.h")
10662 (string-append "SAMLIBS="
10663 #$(this-package-input "htslib")
10664 "/lib/libhts.so"))
10665 #:phases
10666 (modify-phases %standard-phases
10667 ;; No "configure" script.
10668 (replace 'configure
10669 (lambda _
10670 (substitute* "Makefile"
10671 (("^all : \\$\\(PROGRAMS\\).*") "all: $(PROGRAMS)\n")
10672 ;; Do not build bundled samtools library.
10673 (("^\\$\\(SAMLIBS\\).*") "")
10674 ;; Needed for Boost
10675 (("gnu\\+\\+98") "gnu++11"))
10676 ;; C++11 compatibility
10677 (substitute* "buildReadIndex.cpp"
10678 (("success = \\(getline")
10679 "success = (bool)(getline"))
10680 (substitute* '("PairedEndHit.h"
10681 "SingleHit.h")
10682 (("return \\(in>>sid>>pos")
10683 "return (bool)(in>>sid>>pos"))))
10684 (replace 'install
10685 (lambda* (#:key outputs #:allow-other-keys)
10686 (let* ((out (string-append (assoc-ref outputs "out")))
10687 (bin (string-append out "/bin/"))
10688 (perl (string-append out "/lib/perl5/site_perl")))
10689 (mkdir-p bin)
10690 (mkdir-p perl)
10691 (for-each (lambda (file)
10692 (install-file file bin))
10693 (find-files "." "rsem-.*"))
10694 (install-file "rsem_perl_utils.pm" perl))))
10695 (add-after 'install 'wrap-program
10696 (lambda* (#:key outputs #:allow-other-keys)
10697 (let ((out (assoc-ref outputs "out")))
10698 (for-each (lambda (prog)
10699 (wrap-program (string-append out "/bin/" prog)
10700 `("PERL5LIB" ":" prefix
10701 (,(string-append out "/lib/perl5/site_perl")))))
10702 '("rsem-calculate-expression"
10703 "rsem-control-fdr"
10704 "rsem-generate-data-matrix"
10705 "rsem-generate-ngvector"
10706 "rsem-plot-transcript-wiggles"
10707 "rsem-prepare-reference"
10708 "rsem-run-ebseq"
10709 "rsem-run-prsem-testing-procedure"))))))))
10710 (inputs
10711 (list bash-minimal boost-1.83 r-minimal perl htslib-1.3 zlib))
10712 (home-page "https://deweylab.biostat.wisc.edu/rsem/")
10713 (synopsis "Estimate gene expression levels from RNA-Seq data")
10714 (description
10715 "RSEM is a software package for estimating gene and isoform expression
10716levels from RNA-Seq data. The RSEM package provides a user-friendly
10717interface, supports threads for parallel computation of the EM algorithm,
10718single-end and paired-end read data, quality scores, variable-length reads and
10719RSPD estimation. In addition, it provides posterior mean and 95% credibility
10720interval estimates for expression levels. For visualization, it can generate
10721BAM and Wiggle files in both transcript-coordinate and genomic-coordinate.")
10722 (license license:gpl3+)))
10723
10724(define-public rseqc
10725 (package
10726 (name "rseqc")
10727 (version "3.0.1")
10728 (source
10729 (origin
10730 (method url-fetch)
10731 (uri
10732 (string-append "mirror://sourceforge/rseqc/"
10733 "RSeQC-" version ".tar.gz"))
10734 (sha256
10735 (base32
10736 "0gbb9iyb7swiv5455fm5rg98r7l6qn27v564yllqjd574hncpx6m"))))
10737 (build-system pyproject-build-system)
10738 (arguments (list #:tests? #f)) ; No tests.
10739 (inputs
10740 (list python-bx-python
10741 python-cython
10742 python-numpy
10743 python-pybigwig
10744 python-pyparsing
10745 python-pysam
10746 python-setuptools
10747 zlib))
10748 (home-page "https://rseqc.sourceforge.net/")
10749 (synopsis "RNA-seq quality control package")
10750 (description
10751 "RSeQC provides a number of modules that can comprehensively evaluate
10752high throughput sequence data, especially RNA-seq data. Some basic modules
10753inspect sequence quality, nucleotide composition bias, PCR bias and GC bias,
10754while RNA-seq specific modules evaluate sequencing saturation, mapped reads
10755distribution, coverage uniformity, strand specificity, etc.")
10756 (license license:gpl3+)))
10757
10758(define-public seek
10759 ;; There are no release tarballs. And the installation instructions at
10760 ;; http://seek.princeton.edu/installation.jsp only mention a mercurial
10761 ;; changeset ID. This is a git repository, though. So we just take the
10762 ;; most recent commit.
10763 (let ((commit "196ed4c7633246e9c628e4330d77577ccfd7f1e5")
10764 (revision "1"))
10765 (package
10766 (name "seek")
10767 (version (git-version "1" revision commit))
10768 (source (origin
10769 (method git-fetch)
10770 (uri (git-reference
10771 (url "https://github.com/FunctionLab/sleipnir.git")
10772 (commit commit)
10773 (recursive? #true)))
10774 (file-name (git-file-name name version))
10775 (sha256
10776 (base32
10777 "0c658n8nz563a96dsi4gl2685vxph0yfmmqq5yjc6i4xin1jy1ab"))))
10778 (build-system cmake-build-system)
10779 (arguments
10780 `(#:configure-flags
10781 ,#~(list (string-append "-DSVM_LIBRARY="
10782 #$(this-package-input "libsvm")
10783 "/lib/libsvm.so")
10784 (string-append "-DSVM_INCLUDE="
10785 #$(this-package-input "libsvm")
10786 "/include"))
10787 #:tests? #false ; tests only fail in the build container
10788 #:phases
10789 (modify-phases %standard-phases
10790 ;; The check phase expects to find the unit_tests executable in the
10791 ;; "build/bin" directory, but it is actually in "build/tests".
10792 (replace 'check
10793 (lambda* (#:key tests? #:allow-other-keys)
10794 (when tests?
10795 (invoke "tests/unit_tests")))))))
10796 (inputs
10797 `(("apache-thrift:include" ,apache-thrift "include")
10798 ("apache-thrift:lib" ,apache-thrift "lib")
10799 ("gsl" ,gsl)
10800 ("boost" ,boost)
10801 ("gengetopt" ,gengetopt)
10802 ("libsvm" ,libsvm)
10803 ("log4cpp" ,log4cpp)
10804 ("python" ,python)
10805 ("readline" ,readline)))
10806 (native-inputs
10807 (list pkg-config))
10808 (home-page "https://seek.princeton.edu")
10809 (synopsis "Gene co-expression search engine")
10810 (description
10811 "SEEK is a computational gene co-expression search engine. SEEK provides
10812biologists with a way to navigate the massive human expression compendium that
10813now contains thousands of expression datasets. SEEK returns a robust ranking
10814of co-expressed genes in the biological area of interest defined by the user's
10815query genes. It also prioritizes thousands of expression datasets according
10816to the user's query of interest.")
10817 (license license:cc-by3.0))))
10818
10819(define-public samtools
10820 (package
10821 (name "samtools")
10822 (version "1.19")
10823 (source
10824 (origin
10825 (method url-fetch)
10826 (uri
10827 (string-append "https://github.com/samtools/samtools"
10828 "/releases/download/" version
10829 "/samtools-" version ".tar.bz2"))
10830 (sha256
10831 (base32
10832 "10wby07w33rfypy4kf73v9wwnbyh0lrazbsmrgrvcl88w8c3nszs"))
10833 (modules '((guix build utils)))
10834 ;; Delete bundled htslib.
10835 (snippet '(delete-file-recursively "htslib-1.19"))))
10836 (build-system gnu-build-system)
10837 (arguments
10838 `(#:configure-flags (list "--with-ncurses")
10839 ;; The samtools test suite (and software) expects SSE-based math, even on
10840 ;; i686-linux, and not 387-based math. Adjust the CPPFLAGS accordingly.
10841 ,@(if (target-x86-32?)
10842 `(#:make-flags (list "CPPFLAGS = -msse -mfpmath=sse"))
10843 '())
10844 #:phases
10845 (modify-phases %standard-phases
10846 (add-after 'unpack 'patch-tests
10847 (lambda _
10848 (substitute* "test/test.pl"
10849 ;; The test script calls out to /bin/bash
10850 (("/bin/bash") (which "bash"))))))))
10851 (native-inputs (list pkg-config))
10852 (inputs
10853 (list htslib ncurses perl python zlib))
10854 (home-page "https://samtools.sourceforge.net")
10855 (synopsis "Utilities to efficiently manipulate nucleotide sequence alignments")
10856 (description
10857 "Samtools implements various utilities for post-processing nucleotide
10858sequence alignments in the SAM, BAM, and CRAM formats, including indexing,
10859variant calling (in conjunction with bcftools), and a simple alignment
10860viewer.")
10861 (license license:expat)))
10862
10863(define-public samtools-0.1
10864 ;; This is the most recent version of the 0.1 line of samtools. The input
10865 ;; and output formats differ greatly from that used and produced by samtools
10866 ;; 1.x and is still used in many bioinformatics pipelines.
10867 (package (inherit samtools)
10868 (version "0.1.19")
10869 (source
10870 (origin
10871 (method url-fetch)
10872 (uri
10873 (string-append "mirror://sourceforge/samtools/samtools/"
10874 version "/samtools-" version ".tar.bz2"))
10875 (sha256
10876 (base32 "1m33xsfwz0s8qi45lylagfllqg7fphf4dr0780rsvw75av9wk06h"))))
10877 (arguments
10878 `(#:tests? #f ;no "check" target
10879 #:make-flags
10880 (list "LIBCURSES=-lncurses")
10881 ,@(substitute-keyword-arguments arguments
10882 ((#:modules _ #f)
10883 '((ice-9 ftw)
10884 (ice-9 regex)
10885 (guix build gnu-build-system)
10886 (guix build utils)))
10887 ((#:phases phases)
10888 `(modify-phases ,phases
10889 (replace 'install
10890 (lambda* (#:key outputs #:allow-other-keys)
10891 (let ((bin (string-append
10892 (assoc-ref outputs "out") "/bin")))
10893 (mkdir-p bin)
10894 (install-file "samtools" bin)
10895 #t)))
10896 (add-after 'install 'install-library
10897 (lambda* (#:key outputs #:allow-other-keys)
10898 (let ((lib (string-append (assoc-ref outputs "out") "/lib")))
10899 (install-file "libbam.a" lib))))
10900 (add-after 'install 'install-headers
10901 (lambda* (#:key outputs #:allow-other-keys)
10902 (let ((include (string-append (assoc-ref outputs "out")
10903 "/include/samtools/")))
10904 (for-each (lambda (file)
10905 (install-file file include))
10906 (scandir "." (lambda (name)
10907 (string-match "\\.h$" name)))))))
10908 (delete 'patch-tests)
10909 (delete 'configure))))))))
10910
10911(define-public savvy
10912 (package
10913 (name "savvy")
10914 (version "2.1.0")
10915 (source
10916 (origin
10917 (method git-fetch)
10918 (uri (git-reference
10919 (url "https://github.com/statgen/savvy")
10920 (commit (string-append "v" version))))
10921 (file-name (git-file-name name version))
10922 (sha256
10923 (base32
10924 "03jh89gl67adnpkwx8yrdn62pd9sg69k21gxh15my2vvpfl1pxlx"))))
10925 (build-system cmake-build-system)
10926 (arguments
10927 (list
10928 #:configure-flags
10929 '(list "-DBUILD_TESTS=ON"
10930 "-DBUILD_EVAL=ON")
10931 #:phases
10932 '(modify-phases %standard-phases
10933 (add-after 'unpack 'use-shared-libraries
10934 (lambda _
10935 ;; Do not prefer static libraries.
10936 (substitute* "CMakeLists.txt"
10937 (("set\\(CMAKE_FIND_LIBRARY_SUFFIXES \".a;.*") "")))))))
10938 (native-inputs (list pkg-config))
10939 (inputs (list htslib))
10940 (propagated-inputs (list streambuf-shrinkwrap))
10941 (home-page "https://github.com/statgen/savvy/")
10942 (synopsis "Interface to various variant calling formats")
10943 (description
10944 "Savvy is the official C++ interface for the SAV file format and offers
10945seamless support for BCF and VCF files.")
10946 (license license:mpl2.0)))
10947
10948(define-public morpheus
10949 (package
10950 (name "morpheus")
10951 (version "2.3.6")
10952 (source
10953 (origin
10954 (method git-fetch)
10955 (uri (git-reference
10956 (url "https://gitlab.com/morpheus.lab/morpheus")
10957 (commit (string-append "v" version))))
10958 (file-name (git-file-name name version))
10959 (sha256
10960 (base32 "1jyzbkz8d39kjicrk3ihcx7yvq5wsynvnlcw922bqqsw8nwnn12c"))
10961 (modules '((guix build utils)))
10962 (snippet
10963 '(begin
10964 (delete-file-recursively "3rdparty/eigen")
10965 (substitute* '("morpheus/core/cpm_shape_tracker.cpp"
10966 "morpheus/core/membranemapper.h"
10967 "morpheus/testing/components/motility/directed_motion_test.cpp"
10968 "morpheus/testing/components/interaction/generator_cell_sorting.cpp"
10969 "morpheus/testing/components/interaction/test_cell_sorting.cpp"
10970 "morpheus/testing/core/cpm/generator_csm_plane.cpp"
10971 "morpheus/testing/test_operators.h")
10972 (("#include \"eigen/") "#include \"eigen3/"))))))
10973 ;; This is for a different Morpheus.
10974 (properties '((lint-hidden-cve "CVE-2022-31261")))
10975 (build-system cmake-build-system)
10976 (arguments
10977 (list
10978 #:configure-flags
10979 '(list "-DMORPHEUS_GUI=OFF"
10980 "-DDOWNLOAD_XTENSOR=OFF")
10981 #:phases
10982 '(modify-phases %standard-phases
10983 (add-after 'unpack 'disable-gtest-download
10984 (lambda _
10985 (substitute* "3rdparty/CMakeLists.txt"
10986 (("add_subdirectory\\(GTest\\)") ""))))
10987 (replace 'check
10988 (lambda* (#:key tests? #:allow-other-keys)
10989 (when tests?
10990 (invoke "ctest" "--output-junit" "test_results.xml")))))))
10991 (inputs (list boost
10992 eigen
10993 file
10994 gnuplot
10995 libtiff
10996 libxslt
10997 xsimd
10998 xtensor
10999 xtl
11000 zlib))
11001 (native-inputs
11002 (list doxygen googletest xxd))
11003 (home-page "https://gitlab.com/morpheus.lab/morpheus")
11004 (synopsis "Multicellular simulation")
11005 (description
11006 "Morpheus is a modeling and simulation environment for the study of
11007multi-scale and multicellular systems.")
11008 (license license:bsd-3)))
11009
11010(define-public mosaik
11011 (let ((commit "5c25216d3522d6a33e53875cd76a6d65001e4e67"))
11012 (package
11013 (name "mosaik")
11014 (version "2.2.30")
11015 (source (origin
11016 ;; There are no release tarballs nor tags.
11017 (method git-fetch)
11018 (uri (git-reference
11019 (url "https://github.com/wanpinglee/MOSAIK")
11020 (commit commit)))
11021 (file-name (string-append name "-" version))
11022 (sha256
11023 (base32
11024 "17gj3s07cm77r41z92awh0bim7w7q7fbn0sf5nkqmcm1vw052qgw"))))
11025 (build-system gnu-build-system)
11026 (arguments
11027 `(#:tests? #f ; no tests
11028 #:make-flags (list "CC=gcc")
11029 #:phases
11030 (modify-phases %standard-phases
11031 (replace 'configure
11032 (lambda _ (chdir "src") #t))
11033 (replace 'install
11034 (lambda* (#:key outputs #:allow-other-keys)
11035 (let ((bin (string-append (assoc-ref outputs "out")
11036 "/bin")))
11037 (mkdir-p bin)
11038 (copy-recursively "../bin" bin)
11039 #t))))))
11040 (inputs
11041 `(("perl" ,perl)
11042 ("zlib:static" ,zlib "static")
11043 ("zlib" ,zlib)))
11044 (supported-systems '("x86_64-linux"))
11045 (home-page "https://github.com/wanpinglee/MOSAIK")
11046 (synopsis "Map nucleotide sequence reads to reference genomes")
11047 (description
11048 "MOSAIK is a program for mapping second and third-generation sequencing
11049reads to a reference genome. MOSAIK can align reads generated by all the
11050major sequencing technologies, including Illumina, Applied Biosystems SOLiD,
11051Roche 454, Ion Torrent and Pacific BioSciences SMRT.")
11052 ;; MOSAIK is released under the GPLv2+ with the exception of third-party
11053 ;; code released into the public domain:
11054 ;; 1. fastlz by Ariya Hidayat - http://www.fastlz.org/
11055 ;; 2. MD5 implementation - RSA Data Security, RFC 1321
11056 (license (list license:gpl2+ license:public-domain)))))
11057
11058(define-public mosaicatcher
11059 (package
11060 (name "mosaicatcher")
11061 (version "0.3.1")
11062 (source (origin
11063 ;; There are no release tarballs nor tags.
11064 (method git-fetch)
11065 (uri (git-reference
11066 (url "https://github.com/friendsofstrandseq/mosaicatcher")
11067 (commit (string-append version "-dev"))))
11068 (file-name (git-file-name name version))
11069 (sha256
11070 (base32
11071 "1n2s5wvvj2y0vfgjkg1q11xahpbagxz7h2vf5q7qyy25s12kbzbd"))
11072 (patches (search-patches "mosaicatcher-unbundle-htslib.patch"))))
11073 (build-system cmake-build-system)
11074 (arguments
11075 `(#:tests? #false ; there are no tests
11076 #:phases
11077 (modify-phases %standard-phases
11078 (add-after 'unpack 'chdir
11079 (lambda _ (chdir "src")))
11080 (replace 'install
11081 (lambda* (#:key inputs outputs #:allow-other-keys)
11082 (let* ((target (assoc-ref outputs "out"))
11083 (bin (string-append target "/bin"))
11084 (share (string-append target "/share/mosaicatcher")))
11085 (install-file "mosaic" bin)
11086 (mkdir-p share)
11087 (copy-recursively "../R" share)))))))
11088 (inputs
11089 (list boost htslib))
11090 (home-page "https://github.com/friendsofstrandseq/mosaicatcher")
11091 (synopsis "Count and classify Strand-seq reads")
11092 (description
11093 "Mosaicatcher counts Strand-seq reads and classifies strand states of
11094each chromosome in each cell using a Hidden Markov Model.")
11095 (license license:expat)))
11096
11097(define-public ngs-sdk
11098 (package
11099 (name "ngs-sdk")
11100 (version "2.10.5")
11101 (source (origin
11102 (method git-fetch)
11103 (uri (git-reference
11104 (url "https://github.com/ncbi/ngs")
11105 (commit version)))
11106 (file-name (git-file-name name version))
11107 (sha256
11108 (base32
11109 "1ix51c25hjn57w93qmwzw80xh2i34wx8j2hn7szh8p6w8i3az5qa"))))
11110 (build-system gnu-build-system)
11111 (arguments
11112 `(#:parallel-build? #f ; not supported
11113 #:tests? #f ; no "check" target
11114 #:phases
11115 (modify-phases %standard-phases
11116 (replace 'configure
11117 (lambda* (#:key outputs #:allow-other-keys)
11118 (let ((out (assoc-ref outputs "out")))
11119 ;; Allow 'konfigure.perl' to find 'package.prl'.
11120 (setenv "PERL5LIB"
11121 (string-append ".:" (getenv "PERL5LIB")))
11122
11123 ;; The 'configure' script doesn't recognize things like
11124 ;; '--enable-fast-install'.
11125 (invoke "./configure"
11126 (string-append "--build-prefix=" (getcwd) "/build")
11127 (string-append "--prefix=" out))
11128 #t)))
11129 (add-after 'unpack 'enter-dir
11130 (lambda _ (chdir "ngs-sdk") #t)))))
11131 (native-inputs (list perl))
11132 ;; According to the test
11133 ;; unless ($MARCH =~ /x86_64/i || $MARCH =~ /i?86/i)
11134 ;; in ngs-sdk/setup/konfigure.perl
11135 (supported-systems '("i686-linux" "x86_64-linux"))
11136 (home-page "https://github.com/ncbi/ngs")
11137 (synopsis "API for accessing Next Generation Sequencing data")
11138 (description
11139 "NGS is a domain-specific API for accessing reads, alignments and pileups
11140produced from Next Generation Sequencing. The API itself is independent from
11141any particular back-end implementation, and supports use of multiple back-ends
11142simultaneously.")
11143 (license license:public-domain)))
11144
11145(define-public java-ngs
11146 (package (inherit ngs-sdk)
11147 (name "java-ngs")
11148 (arguments
11149 `(,@(substitute-keyword-arguments
11150 `(#:modules ((guix build gnu-build-system)
11151 (guix build utils)
11152 (srfi srfi-1)
11153 (srfi srfi-26))
11154 ,@(package-arguments ngs-sdk))
11155 ((#:phases phases)
11156 `(modify-phases ,phases
11157 (replace 'enter-dir (lambda _ (chdir "ngs-java") #t)))))))
11158 (inputs
11159 `(("jdk" ,icedtea "jdk")
11160 ("ngs-sdk" ,ngs-sdk)))
11161 (synopsis "Java bindings for NGS SDK")))
11162
11163(define-public ncbi-vdb
11164 (package
11165 (name "ncbi-vdb")
11166 (version "2.10.6")
11167 (source (origin
11168 (method git-fetch)
11169 (uri (git-reference
11170 (url "https://github.com/ncbi/ncbi-vdb")
11171 (commit version)))
11172 (file-name (git-file-name name version))
11173 (sha256
11174 (base32
11175 "0m8hlxscidsfqm9x9fyi62q6lpf1dv5115kgjjgnrkl49q9c27m6"))))
11176 (build-system gnu-build-system)
11177 (arguments
11178 (list
11179 #:parallel-build? #f ; not supported
11180 #:tests? #f ; no "check" target
11181 #:make-flags '(list "HAVE_HDF5=1")
11182 #:phases
11183 #~(modify-phases %standard-phases
11184 #;
11185 (add-after 'unpack 'make-files-writable
11186 (lambda _ (for-each make-file-writable (find-files "." ".*"))))
11187 (add-before 'configure 'set-perl-search-path
11188 (lambda _
11189 ;; Work around "dotless @INC" build failure.
11190 (setenv "PERL5LIB"
11191 (string-append (getcwd) "/setup:"
11192 (getenv "PERL5LIB")))))
11193 ;; See https://github.com/ncbi/ncbi-vdb/issues/14
11194 (add-after 'unpack 'patch-krypto-flags
11195 (lambda _
11196 (substitute* "libs/krypto/Makefile"
11197 (("-Wa,-march=generic64\\+aes") "")
11198 (("-Wa,-march=generic64\\+sse4") ""))))
11199 (replace 'configure
11200 (lambda _
11201 ;; Override include path for libmagic
11202 (substitute* "setup/package.prl"
11203 (("name => 'magic', Include => '/usr/include'")
11204 (string-append "name=> 'magic', Include => '"
11205 #$(this-package-input "file")
11206 "/include" "'")))
11207
11208 ;; Install kdf5 library (needed by sra-tools)
11209 (substitute* "build/Makefile.install"
11210 (("LIBRARIES_TO_INSTALL =")
11211 "LIBRARIES_TO_INSTALL = kdf5.$(VERSION_LIBX) kdf5.$(VERSION_SHLX)"))
11212
11213 (substitute* "build/Makefile.env"
11214 (("CFLAGS =" prefix)
11215 (string-append prefix "-msse2 ")))
11216
11217 ;; Override search path for ngs-java
11218 (substitute* "setup/package.prl"
11219 (("/usr/local/ngs/ngs-java")
11220 #$(this-package-input "java-ngs")))
11221
11222 ;; The 'configure' script doesn't recognize things like
11223 ;; '--enable-fast-install'.
11224 (invoke "./configure"
11225 (string-append "--build-prefix=" (getcwd) "/build")
11226 (string-append "--prefix=" #$output)
11227 (string-append "--debug")
11228 (string-append "--with-xml2-prefix="
11229 #$(this-package-input "libxml2"))
11230 (string-append "--with-ngs-sdk-prefix="
11231 #$(this-package-input "ngs-sdk"))
11232 (string-append "--with-hdf5-prefix="
11233 #$(this-package-input "hdf5")))))
11234 (add-after 'install 'install-interfaces
11235 (lambda _
11236 ;; Install interface libraries. On i686 the interface libraries
11237 ;; are installed to "linux/gcc/i386", so we need to use the Linux
11238 ;; architecture name ("i386") instead of the target system prefix
11239 ;; ("i686").
11240 (mkdir (string-append #$output "/ilib"))
11241 (copy-recursively (string-append
11242 "build/ncbi-vdb/linux/gcc/"
11243 #$(platform-linux-architecture
11244 (lookup-platform-by-target-or-system
11245 (or (%current-target-system)
11246 (%current-system))))
11247 "/rel/ilib")
11248 (string-append #$output "/ilib"))
11249 ;; Install interface headers
11250 (copy-recursively "interfaces"
11251 (string-append #$output "/include"))))
11252 (add-after 'install-interfaces 'install-libs
11253 (lambda _
11254 (copy-recursively (string-append
11255 "build/ncbi-vdb/linux/gcc/"
11256 #$(platform-linux-architecture
11257 (lookup-platform-by-target-or-system
11258 (or (%current-target-system)
11259 (%current-system))))
11260 "/rel/lib")
11261 (string-append #$output "/lib"))))
11262 ;; These files are needed by sra-tools.
11263 (add-after 'install 'install-configuration-files
11264 (lambda _
11265 (let ((target (string-append #$output "/kfg")))
11266 (mkdir target)
11267 (install-file "libs/kfg/default.kfg" target)
11268 (install-file "libs/kfg/certs.kfg" target)))))))
11269 (inputs
11270 (list file hdf5-1.10 java-ngs libxml2 ngs-sdk ))
11271 (native-inputs (list perl))
11272 ;; NCBI-VDB requires SSE capability.
11273 (supported-systems '("i686-linux" "x86_64-linux"))
11274 (home-page "https://github.com/ncbi/ncbi-vdb")
11275 (synopsis "Database engine for genetic information")
11276 (description
11277 "The NCBI-VDB library implements a highly compressed columnar data
11278warehousing engine that is most often used to store genetic information.
11279Databases are stored in a portable image within the file system, and can be
11280accessed/downloaded on demand across HTTP.")
11281 (license license:public-domain)))
11282
11283(define-public plink
11284 (package
11285 (name "plink")
11286 (version "1.07")
11287 (source
11288 (origin
11289 (method url-fetch)
11290 (uri (string-append
11291 "https://zzz.bwh.harvard.edu/plink/dist/plink-"
11292 version "-src.zip"))
11293 (sha256
11294 (base32 "0as8gxm4pjyc8dxmm1sl873rrd7wn5qs0l29nqfnl31x8i467xaa"))
11295 (patches (search-patches "plink-1.07-unclobber-i.patch"
11296 "plink-endian-detection.patch"))))
11297 (build-system gnu-build-system)
11298 (arguments
11299 `(#:tests? #f ;no "check" target
11300 #:make-flags ,#~(list (string-append "LIB_LAPACK="
11301 #$(this-package-input "openblas")
11302 "/lib/libopenblas.so")
11303 "WITH_LAPACK=1"
11304 "FORCE_DYNAMIC=1"
11305 ;; disable phoning home
11306 "WITH_WEBCHECK=")
11307 #:phases
11308 (modify-phases %standard-phases
11309 ;; no "configure" script
11310 (delete 'configure)
11311 (replace 'install
11312 (lambda* (#:key outputs #:allow-other-keys)
11313 (let ((bin (string-append (assoc-ref outputs "out")
11314 "/bin/")))
11315 (install-file "plink" bin)))))))
11316 (inputs
11317 (list zlib libxcrypt openblas))
11318 (native-inputs
11319 (list unzip gcc-7))
11320 (home-page "http://pngu.mgh.harvard.edu/~purcell/plink/")
11321 (synopsis "Whole genome association analysis toolset")
11322 (description
11323 "PLINK is a whole genome association analysis toolset, designed to
11324perform a range of basic, large-scale analyses in a computationally efficient
11325manner. The focus of PLINK is purely on analysis of genotype/phenotype data,
11326so there is no support for steps prior to this (e.g. study design and
11327planning, generating genotype or CNV calls from raw data). Through
11328integration with gPLINK and Haploview, there is some support for the
11329subsequent visualization, annotation and storage of results.")
11330 ;; Code is released under GPLv2, except for fisher.h, which is under
11331 ;; LGPLv2.1+
11332 (license (list license:gpl2 license:lgpl2.1+))))
11333
11334(define-public plink-ng
11335 (package (inherit plink)
11336 (name "plink-ng")
11337 (version "2.0.0-a.6.16")
11338 (source
11339 (origin
11340 (method git-fetch)
11341 (uri (git-reference
11342 (url "https://github.com/chrchang/plink-ng")
11343 (commit (string-append "v" version))))
11344 (file-name (git-file-name name version))
11345 (sha256
11346 (base32 "1v020l8b5njc458silaqfwl8jg7vn46wg8hh4iiq3ip6p31g2dm7"))))
11347 (build-system gnu-build-system)
11348 (arguments
11349 (list
11350 #:tests? #false ;TEST_EXTRACT_CHR doesn't produce expected files
11351 #:make-flags
11352 #~(list "BLASFLAGS=-lopenblas"
11353 "NO_SSE42=1"
11354 "NO_AVX2=1"
11355 "STATIC_ZSTD="
11356 (string-append "CC=" #$(cc-for-target))
11357 (string-append "PREFIX=" #$output)
11358 "DESTDIR=")
11359 #:phases
11360 #~(modify-phases %standard-phases
11361 (add-after 'unpack 'chdir
11362 (lambda _ (chdir "2.0/build_dynamic")))
11363 (add-after 'chdir 'patch-headers
11364 (lambda _
11365 (substitute* '("../include/pvar_ffi_support.h"
11366 "../include/pgenlib_ffi_support.h")
11367 (("#include \"include/pgenlib_misc.h\"")
11368 "#include <pgenlib_misc.h>"))))
11369 (delete 'configure) ; no "configure" script
11370 (replace 'check
11371 (lambda* (#:key tests? inputs #:allow-other-keys)
11372 (when tests?
11373 (setenv "PATH" (string-append (getcwd) ":" (getenv "PATH")))
11374 (with-directory-excursion "../Tests"
11375 (substitute* "run_tests.sh"
11376 (("^./run_tests" m)
11377 (string-append (which "bash") " " m)))
11378 (invoke "bash" "run_tests.sh")))))
11379 (add-after 'build 'build-library
11380 (lambda _
11381 ;; Inspired by what r-saige does to the plink2 sources.
11382 (apply invoke "gcc" "-std=c++14" "-fPIC" "-O3" "-o" "libplink2.so"
11383 (append (find-files "../include" "\\.cc$")
11384 (list "-shared" "-lz" "-lzstd" "-lpthread" "-lm" "-ldeflate")))))
11385 (replace 'install
11386 (lambda _
11387 (install-file "plink2" (string-append #$output "/bin"))
11388 (install-file "libplink2.so" (string-append #$output "/lib"))
11389 (copy-recursively "../include" (string-append #$output "/include"))
11390 (for-each (lambda (header)
11391 (install-file header (string-append #$output "/include")))
11392 (find-files "." "\\.h$")))))))
11393 (inputs
11394 (list libdeflate openblas zlib `(,zstd "lib")))
11395 (native-inputs
11396 (list diffutils python simde)) ; for tests
11397 (home-page "https://www.cog-genomics.org/plink/")
11398 (license license:gpl3+)))
11399
11400(define-public smithlab-cpp
11401 (let ((revision "1")
11402 (commit "728a097bec88c6f4b8528b685932049e660eff2e"))
11403 (package
11404 (name "smithlab-cpp")
11405 (version (string-append "0." revision "." (string-take commit 7)))
11406 (source (origin
11407 (method git-fetch)
11408 (uri (git-reference
11409 (url "https://github.com/smithlabcode/smithlab_cpp")
11410 (commit commit)))
11411 (file-name (string-append name "-" version "-checkout"))
11412 (sha256
11413 (base32
11414 "0d476lmj312xk77kr9fzrv7z1bv96yfyx0w7y62ycmnfbx32ll74"))))
11415 (build-system gnu-build-system)
11416 (arguments
11417 `(#:modules ((guix build gnu-build-system)
11418 (guix build utils)
11419 (srfi srfi-26))
11420 #:tests? #f ;no "check" target
11421 #:phases
11422 (modify-phases %standard-phases
11423 (add-after 'unpack 'use-samtools-headers
11424 (lambda _
11425 (substitute* '("SAM.cpp"
11426 "SAM.hpp")
11427 (("sam.h") "samtools/sam.h"))
11428 #t))
11429 (replace 'install
11430 (lambda* (#:key outputs #:allow-other-keys)
11431 (let* ((out (assoc-ref outputs "out"))
11432 (lib (string-append out "/lib"))
11433 (include (string-append out "/include/smithlab-cpp")))
11434 (mkdir-p lib)
11435 (mkdir-p include)
11436 (for-each (cut install-file <> lib)
11437 (find-files "." "\\.o$"))
11438 (for-each (cut install-file <> include)
11439 (find-files "." "\\.hpp$")))
11440 #t))
11441 (delete 'configure))))
11442 (inputs
11443 (list samtools-0.1 zlib))
11444 (home-page "https://github.com/smithlabcode/smithlab_cpp")
11445 (synopsis "C++ helper library for functions used in Smith lab projects")
11446 (description
11447 "Smithlab CPP is a C++ library that includes functions used in many of
11448the Smith lab bioinformatics projects, such as a wrapper around Samtools data
11449structures, classes for genomic regions, mapped sequencing reads, etc.")
11450 (license license:gpl3+))))
11451
11452(define-public preseq
11453 (package
11454 (name "preseq")
11455 (version "2.0.3")
11456 (source (origin
11457 (method url-fetch)
11458 (uri (string-append "https://github.com/smithlabcode/preseq/"
11459 "releases/download/v" version
11460 "/preseq_v" version ".tar.bz2"))
11461 (sha256
11462 (base32 "149x9xmk1wy1gff85325yfzqc0qk4sgp1w6gbyj9cnji4x1dszbl"))
11463 (modules '((guix build utils)))
11464 ;; Remove bundled samtools.
11465 (snippet '(delete-file-recursively "samtools"))))
11466 (build-system gnu-build-system)
11467 (arguments
11468 `(#:tests? #f ;no "check" target
11469 #:phases
11470 (modify-phases %standard-phases
11471 (delete 'configure))
11472 #:make-flags
11473 ,#~(list (string-append "PREFIX=" #$output)
11474 (string-append "LIBBAM="
11475 #$(this-package-input "samtools")
11476 "/lib/libbam.a")
11477 (string-append "SMITHLAB_CPP="
11478 #$(this-package-input "smithlab-cpp")
11479 "/lib")
11480 "PROGS=preseq"
11481 "INCLUDEDIRS=$(SMITHLAB_CPP)/../include/smithlab-cpp $(SAMTOOLS_DIR)")))
11482 (inputs
11483 (list gsl samtools-0.1 smithlab-cpp zlib))
11484 (home-page "http://smithlabresearch.org/software/preseq/")
11485 (synopsis "Program for analyzing library complexity")
11486 (description
11487 "The preseq package is aimed at predicting and estimating the complexity
11488of a genomic sequencing library, equivalent to predicting and estimating the
11489number of redundant reads from a given sequencing depth and how many will be
11490expected from additional sequencing using an initial sequencing experiment.
11491The estimates can then be used to examine the utility of further sequencing,
11492optimize the sequencing depth, or to screen multiple libraries to avoid low
11493complexity samples.")
11494 (license license:gpl3+)))
11495
11496(define-public python-screed
11497 (package
11498 (name "python-screed")
11499 (version "1.1.3")
11500 (source
11501 (origin
11502 (method url-fetch)
11503 (uri (pypi-uri "screed" version))
11504 (sha256
11505 (base32 "1f3jw3g8d9cdgdggqpfgw42rfcpzdalbbral6l2mmafvqybids1p"))))
11506 (build-system pyproject-build-system)
11507 (native-inputs
11508 (list python-importlib-resources
11509 python-pytest
11510 python-setuptools
11511 python-setuptools-scm))
11512 (home-page "https://github.com/dib-lab/screed/")
11513 (synopsis "Short read sequence database utilities")
11514 (description "Screed parses FASTA and FASTQ files and generates databases.
11515Values such as sequence name, sequence description, sequence quality and the
11516sequence itself can be retrieved from these databases.")
11517 (license license:bsd-3)))
11518
11519(define-public python-slamdunk
11520 (package
11521 (name "python-slamdunk")
11522 (version "0.4.3")
11523 (source
11524 (origin
11525 (method git-fetch)
11526 (uri (git-reference
11527 (url "https://github.com/t-neumann/slamdunk")
11528 (commit (string-append "v" version))))
11529 (file-name (git-file-name name version))
11530 (sha256
11531 (base32 "0lv3h5k2pn1pz35kz0wk5xmricxzy8qscs2y7nwh0k6x4pn0m0s5"))))
11532 (build-system pyproject-build-system)
11533 (propagated-inputs (list python-biopython
11534 python-intervaltree
11535 python-joblib
11536 python-pandas
11537 python-pybedtools
11538 python-pysam))
11539 (native-inputs (list python-cython python-pytest python-setuptools))
11540 (home-page "https://t-neumann.github.io/slamdunk/")
11541 (synopsis "Streamline SLAM-seq analysis with high sensitivity")
11542 (description
11543 "SlamDunk is a fully automated tool for automated, robust,
11544scalable and reproducible SLAMseq data analysis. Diagnostic plotting features
11545and a MultiQC plugin will make your SLAMseq data ready for immediate QA and
11546interpretation.")
11547 (license license:agpl3+)))
11548
11549(define-public python-taggd
11550 (package
11551 (name "python-taggd")
11552 (version "0.4.0")
11553 (source (origin
11554 (method git-fetch)
11555 (uri (git-reference
11556 (url "https://github.com/jfnavarro/taggd")
11557 (commit version)))
11558 (file-name (git-file-name name version))
11559 (sha256
11560 (base32
11561 "17hi1vs1qwhxx8jnradnl9k471li6fjb6w5sljkpzjxy7rkxwb85"))))
11562 (build-system pyproject-build-system)
11563 (arguments
11564 (list
11565 #:phases
11566 #~(modify-phases %standard-phases
11567 (add-before 'check 'remove-local-taggd
11568 (lambda _
11569 ;; This would otherwise interfere with finding the installed
11570 ;; taggd when running tests.
11571 (delete-file-recursively "taggd"))))))
11572 (propagated-inputs
11573 (list python-numpy
11574 python-pysam
11575 python-tqdm
11576 python-aiofiles
11577 python-dnaio
11578 python-types-aiofiles
11579 python-types-tqdm))
11580 (native-inputs
11581 (list python-cython python-pytest python-setuptools))
11582 (home-page "https://github.com/jfnavarro/taggd")
11583 (synopsis "Genetic barcode demultiplexing")
11584 (description "This package provides TagGD barcode demultiplexing utilities
11585for Spatial Transcriptomics data.")
11586 (license license:bsd-3)))
11587
11588(define-public stpipeline
11589 (package
11590 (name "stpipeline")
11591 (version "2.1.0")
11592 (source
11593 (origin
11594 (method git-fetch)
11595 (uri (git-reference
11596 (url "https://github.com/jfnavarro/st_pipeline")
11597 (commit version)))
11598 (file-name (git-file-name name version))
11599 (sha256
11600 (base32 "03j3426ihhb6k6crpdb0cfvygc4bxqn20iq7bvidgcigbq0as7sd"))))
11601 (build-system pyproject-build-system)
11602 (arguments
11603 (list
11604 #:test-flags
11605 ;; This test fails with pandas@3, try to disable it on the next update.
11606 #~(list "--deselect=tests/integration_test.py::test_multi_qa")
11607 #:phases '(modify-phases %standard-phases
11608 ;; requirements.txt and pyproject.toml have all versions
11609 ;; of the dependencies hardcoded. All tests pass, so it should
11610 ;; be good enough.
11611 ;; However, the sanity-check of any Python package that has
11612 ;; stpipelines a dependency, would fail too.
11613 (delete 'sanity-check))))
11614 (propagated-inputs (list htseq
11615 python-distance
11616 python-dnaio
11617 python-numpy
11618 python-pandas
11619 python-pysam
11620 python-regex
11621 python-scikit-learn
11622 python-scipy
11623 python-seaborn
11624 python-taggd
11625 python-types-regex
11626 samtools
11627 star))
11628 (native-inputs (list python-cython
11629 python-pytest
11630 python-poetry-core))
11631 (home-page "https://github.com/jfnavarro/st_pipeline")
11632 (synopsis "Pipeline for spatial mapping of unique transcripts")
11633 (description
11634 "This package provides an automated pipeline for spatial mapping of
11635unique transcripts.")
11636 (license license:expat)))
11637
11638(define-public sra-tools
11639 (package
11640 (name "sra-tools")
11641 (version "2.10.6")
11642 (source
11643 (origin
11644 (method git-fetch)
11645 (uri (git-reference
11646 (url "https://github.com/ncbi/sra-tools")
11647 (commit version)))
11648 (file-name (git-file-name name version))
11649 (sha256
11650 (base32
11651 "1cr2mijkfs5sm35ffjs6861qsd1qkgnhnbavdv65zg5d655abbjf"))))
11652 (build-system gnu-build-system)
11653 (arguments
11654 (list
11655 #:parallel-build? #f ; not supported
11656 #:tests? #f ; no "check" target
11657 #:make-flags
11658 #~(list (string-append "DEFAULT_CRT="
11659 #$(this-package-input "ncbi-vdb")
11660 "/kfg/certs.kfg")
11661 (string-append "DEFAULT_KFG="
11662 #$(this-package-input "ncbi-vdb")
11663 "/kfg/default.kfg")
11664 (string-append "VDB_LIBDIR="
11665 #$(this-package-input "ncbi-vdb")
11666 #$(if (string-prefix? "x86_64"
11667 (or (%current-target-system)
11668 (%current-system)))
11669 "/lib64"
11670 "/lib32")))
11671 #:phases
11672 #~(modify-phases %standard-phases
11673 (add-before 'configure 'set-perl-search-path
11674 (lambda _
11675 ;; Work around "dotless @INC" build failure.
11676 (setenv "PERL5LIB"
11677 (string-append (getcwd) "/setup:"
11678 (getenv "PERL5LIB")))))
11679 (replace 'configure
11680 (lambda* (#:key inputs outputs #:allow-other-keys)
11681 ;; The build system expects a directory containing the sources and
11682 ;; raw build output of ncbi-vdb, including files that are not
11683 ;; installed. Since we are building against an installed version of
11684 ;; ncbi-vdb, the following modifications are needed.
11685 (substitute* "setup/konfigure.perl"
11686 ;; Make the configure script look for the "ilib" directory of
11687 ;; "ncbi-vdb" without first checking for the existence of a
11688 ;; matching library in its "lib" directory.
11689 (("^ my \\$f = File::Spec->catdir\\(\\$libdir, \\$lib\\);")
11690 "my $f = File::Spec->catdir($ilibdir, $ilib);")
11691 ;; Look for interface libraries in ncbi-vdb's "ilib" directory.
11692 (("my \\$ilibdir = File::Spec->catdir\\(\\$builddir, 'ilib'\\);")
11693 "my $ilibdir = File::Spec->catdir($dir, 'ilib');"))
11694
11695 ;; Dynamic linking
11696 (substitute* "tools/copycat/Makefile"
11697 (("smagic-static") "lmagic"))
11698 (substitute* "tools/driver-tool/utf8proc/Makefile"
11699 (("CC\\?=gcc") "myCC=gcc")
11700 (("\\(CC\\)") "(myCC)"))
11701
11702 ;; Don't link libxml2 statically
11703 (substitute* "build/ld.linux.exe.sh"
11704 (("grep -q 'OS_DISTRIBUTOR = Ubuntu.*") "true\n"))
11705
11706 ;; The 'configure' script doesn't recognize things like
11707 ;; '--enable-fast-install'.
11708 (invoke "./configure"
11709 (string-append "--build-prefix=" (getcwd) "/build")
11710 (string-append "--prefix=" #$output)
11711 (string-append "--debug")
11712 (string-append "--with-fuse-prefix="
11713 #$(this-package-input "fuse"))
11714 (string-append "--with-magic-prefix="
11715 #$(this-package-input "file"))
11716 (string-append "--with-xml2-prefix="
11717 #$(this-package-input "libxml2"))
11718 (string-append "--with-ncbi-vdb-sources="
11719 #$(this-package-input "ncbi-vdb"))
11720 (string-append "--with-ncbi-vdb-build="
11721 #$(this-package-input "ncbi-vdb"))
11722 (string-append "--with-ngs-sdk-prefix="
11723 #$(this-package-input "ngs-sdk"))
11724 (string-append "--with-hdf5-prefix="
11725 #$(this-package-input "hdf5"))))))))
11726 (native-inputs (list perl))
11727 (inputs
11728 (list ngs-sdk
11729 ncbi-vdb
11730 file
11731 fuse-2
11732 hdf5-1.10
11733 libxml2
11734 zlib
11735 python-wrapper))
11736 (home-page
11737 "https://trace.ncbi.nlm.nih.gov/Traces/sra/sra.cgi?view=software")
11738 (synopsis "Tools and libraries for reading and writing sequencing data")
11739 (description
11740 "The SRA Toolkit from NCBI is a collection of tools and libraries for
11741reading of sequencing files from the Sequence Read Archive (SRA) database and
11742writing files into the .sra format.")
11743 (license license:public-domain)))
11744
11745(define-public seqan
11746 (package
11747 (name "seqan")
11748 (version "3.0.3")
11749 (source (origin
11750 (method url-fetch)
11751 (uri (string-append "https://github.com/seqan/seqan3/releases/"
11752 "download/" version "/seqan3-"
11753 version "-Source.tar.xz"))
11754 (sha256
11755 (base32
11756 "1h2z0cvgidhkmh5xsbw75waqbrqbbv6kkrvb0b92xfh3gqpaiz22"))))
11757 (build-system cmake-build-system)
11758 (arguments
11759 `(#:phases
11760 (modify-phases %standard-phases
11761 (replace 'check
11762 (lambda _
11763 (invoke "ctest" "test" "--output-on-failure"))))))
11764 (native-inputs
11765 (list bzip2 cereal zlib))
11766 (home-page "https://www.seqan.de")
11767 (synopsis "Library for nucleotide sequence analysis")
11768 (description
11769 "SeqAn is a C++ library of efficient algorithms and data structures for
11770the analysis of sequences with the focus on biological data. It contains
11771algorithms and data structures for string representation and their
11772manipulation, online and indexed string search, efficient I/O of
11773bioinformatics file formats, sequence alignment, and more.")
11774 (license license:bsd-3)))
11775
11776(define-public seqan-2
11777 (package
11778 (inherit seqan)
11779 (version "2.4.0")
11780 (source (origin
11781 (method url-fetch)
11782 (uri (string-append "https://github.com/seqan/seqan/releases/"
11783 "download/seqan-v" version
11784 "/seqan-library-" version ".tar.xz"))
11785 (sha256
11786 (base32
11787 "19a1rlxx03qy1i1iriicly68w64yjxbv24g9gdywnfmq998v35yx"))))
11788 ;; The documentation is 7.8MB and the includes are 3.6MB heavy, so it
11789 ;; makes sense to split the outputs.
11790 (outputs '("out" "doc"))
11791 (build-system trivial-build-system)
11792 (arguments
11793 `(#:modules ((guix build utils))
11794 #:builder
11795 ,#~(begin
11796 (use-modules (guix build utils))
11797 (let ((tar #$(this-package-native-input "tar"))
11798 (xz #$(this-package-native-input "xz"))
11799 (out #$output)
11800 (doc #$output:doc))
11801 (setenv "PATH" (string-append tar "/bin:" xz "/bin"))
11802 (invoke "tar" "xvf" #$(this-package-native-input "source"))
11803 (chdir (string-append "seqan-library-" #$version))
11804 (copy-recursively "include" (string-append out "/include"))
11805 (copy-recursively "share" (string-append doc "/share"))))))
11806 (native-inputs
11807 `(("source" ,source)
11808 ("tar" ,tar)
11809 ("xz" ,xz)))))
11810
11811(define-public seqan-1
11812 (package (inherit seqan)
11813 (name "seqan")
11814 (version "1.4.2")
11815 (source (origin
11816 (method url-fetch)
11817 (uri (string-append "https://packages.seqan.de/seqan-library/"
11818 "seqan-library-" version ".tar.bz2"))
11819 (sha256
11820 (base32
11821 "05s3wrrwn50f81aklfm65i4a749zag1vr8z03k21xm0pdxy47yvp"))))
11822 ;; The documentation is 7.8MB and the includes are 3.6MB heavy, so it
11823 ;; makes sense to split the outputs.
11824 (outputs '("out" "doc"))
11825 (build-system trivial-build-system)
11826 (arguments
11827 `(#:modules ((guix build utils))
11828 #:builder
11829 ,#~(begin
11830 (use-modules (guix build utils))
11831 (let ((tar #$(this-package-native-input "tar"))
11832 (bzip #$(this-package-native-input "bzip2"))
11833 (out #$output)
11834 (doc #$output:doc))
11835 (setenv "PATH" (string-append tar "/bin:" bzip "/bin"))
11836 (invoke "tar" "xvf" #$(this-package-native-input "source"))
11837 (chdir (string-append "seqan-library-" #$version))
11838 (copy-recursively "include" (string-append out "/include"))
11839 (copy-recursively "share" (string-append doc "/share"))))))
11840 (native-inputs
11841 `(("source" ,source)
11842 ("tar" ,tar)
11843 ("bzip2" ,bzip2)))))
11844
11845(define-public seqmagick
11846 (let ((commit "dee6ab9839cff317142e55678bb12c4c9ab2150f")
11847 (revision "0"))
11848 (package
11849 (name "seqmagick")
11850 (version (git-version "0.8.6" revision commit))
11851 (source
11852 (origin
11853 (method git-fetch)
11854 (uri (git-reference
11855 (url "https://github.com/fhcrc/seqmagick")
11856 (commit commit)))
11857 (file-name (git-file-name name version))
11858 (sha256
11859 (base32 "0syipb7m44s5bqrhs17bwr28svy2s83j8d93kbazav92jzszzsw4"))))
11860 (build-system pyproject-build-system)
11861 (arguments
11862 (list
11863 #:phases
11864 #~(modify-phases %standard-phases
11865 (add-after 'unpack 'set-version
11866 ;; Alternative of setup.py version check:
11867 ;;
11868 ;; subprocess.call(
11869 ;; ('mkdir -p seqmagick/data && '
11870 ;; 'git describe --tags --dirty > seqmagick/data/ver.tmp '
11871 ;; '&& mv seqmagick/data/ver.tmp seqmagick/data/ver '
11872 ;; '|| rm -f seqmagick/data/ver.tmp'),
11873 ;; shell=True, stderr=open(os.devnull, "w"))
11874 ;;
11875 (lambda _
11876 (mkdir "seqmagick/data")
11877 (with-output-to-file "seqmagick/data/ver"
11878 (lambda _ (display #$version))))))))
11879 (native-inputs
11880 (list python-pynose
11881 python-setuptools))
11882 (inputs (list python-biopython python-pygtrie))
11883 (home-page "https://github.com/fhcrc/seqmagick")
11884 (synopsis "Tools for converting and modifying sequence files")
11885 (description
11886 "Bioinformaticians often have to convert sequence files between formats
11887and do little manipulations on them, and it's not worth writing scripts for
11888that. Seqmagick is a utility to expose the file format conversion in
11889BioPython in a convenient way. Instead of having a big mess of scripts, there
11890is one that takes arguments.")
11891 (license license:gpl3))))
11892
11893(define-public seqtk
11894 (package
11895 (name "seqtk")
11896 (version "1.3")
11897 (source (origin
11898 (method git-fetch)
11899 (uri (git-reference
11900 (url "https://github.com/lh3/seqtk")
11901 (commit (string-append "v" version))))
11902 (file-name (git-file-name name version))
11903 (sha256
11904 (base32
11905 "1bfzlqa84b5s1qi22blmmw2s8xdyp9h9ydcq22pfjhh5gab3yz6l"))))
11906 (build-system gnu-build-system)
11907 (arguments
11908 `(#:phases
11909 (modify-phases %standard-phases
11910 (delete 'configure)
11911 (replace 'check
11912 ;; There are no tests, so we just run a sanity check.
11913 (lambda _ (invoke "./seqtk" "seq") #t))
11914 (replace 'install
11915 (lambda* (#:key outputs #:allow-other-keys)
11916 (let ((bin (string-append (assoc-ref outputs "out") "/bin/")))
11917 (install-file "seqtk" bin)
11918 #t))))))
11919 (inputs
11920 (list zlib))
11921 (home-page "https://github.com/lh3/seqtk")
11922 (synopsis "Toolkit for processing biological sequences in FASTA/Q format")
11923 (description
11924 "Seqtk is a fast and lightweight tool for processing sequences in the
11925FASTA or FASTQ format. It parses both FASTA and FASTQ files which can be
11926optionally compressed by gzip.")
11927 (license license:expat)))
11928
11929(define-public snap-aligner
11930 (package
11931 (name "snap-aligner")
11932 (version "2.0.0")
11933 (source (origin
11934 (method git-fetch)
11935 (uri (git-reference
11936 (url "https://github.com/amplab/snap")
11937 (commit (string-append "v" version))))
11938 (file-name (git-file-name name version))
11939 (sha256
11940 (base32
11941 "0yag3jcazdqfxgmw0vbi91i98kj9sr0aqx83qqj6m5b45wxs7jms"))))
11942 (build-system gnu-build-system)
11943 (arguments
11944 '(#:phases
11945 (modify-phases %standard-phases
11946 (delete 'configure)
11947 (replace 'check
11948 (lambda* (#:key tests? #:allow-other-keys)
11949 (when tests? (invoke "./unit_tests"))))
11950 (replace 'install
11951 (lambda* (#:key outputs #:allow-other-keys)
11952 (let* ((out (assoc-ref outputs "out"))
11953 (bin (string-append out "/bin")))
11954 (install-file "snap-aligner" bin)
11955 (install-file "SNAPCommand" bin)))))))
11956 (native-inputs
11957 (list zlib))
11958 (home-page "https://snap.cs.berkeley.edu/")
11959 (synopsis "Short read DNA sequence aligner")
11960 (description
11961 "SNAP is a fast and accurate aligner for short DNA reads. It is
11962optimized for modern read lengths of 100 bases or higher, and takes advantage
11963of these reads to align data quickly through a hash-based indexing scheme.")
11964 ;; 32-bit systems are not supported by the unpatched code.
11965 ;; Following the bug reports https://github.com/amplab/snap/issues/68 and
11966 ;; https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=812378 we see that
11967 ;; systems without a lot of memory cannot make good use of this program.
11968 (supported-systems '("x86_64-linux"))
11969 (license license:asl2.0)))
11970
11971(define-public sortmerna
11972 (package
11973 (name "sortmerna")
11974 (version "4.3.7")
11975 (source
11976 (origin
11977 (method git-fetch)
11978 (uri (git-reference
11979 (url "https://github.com/biocore/sortmerna")
11980 (commit (string-append "v" version))))
11981 (file-name (git-file-name name version))
11982 (sha256
11983 (base32
11984 "14p3zi6ysnrs2l33r5mc0fr0la2jnnxmqdcif02fppln8w31j753"))))
11985 (build-system cmake-build-system)
11986 (outputs '("out" ;for binaries
11987 "db")) ;for sequence databases
11988 (arguments
11989 (list
11990 #:tests? #false ;unclear how to run them
11991 #:configure-flags
11992 #~(list "-DWITH_TESTS=ON"
11993 "-DCMAKE_CXX_FLAGS=-pthread"
11994 "-DZLIB_STATIC=OFF"
11995 "-DROCKSDB_STATIC=OFF"
11996 "-DPORTABLE=OFF" ;do not use static linking
11997 (string-append "-DROCKSDB_HOME="
11998 #$(this-package-input "rocksdb"))
11999 (string-append "-DRAPIDJSON_HOME="
12000 #$(this-package-input "rapidjson"))
12001 (string-append "-DRapidJson_DIR="
12002 #$(this-package-input "rapidjson")
12003 "/lib/cmake/RapidJSON")
12004 (string-append "-DRapidJSON_INCLUDE_DIR="
12005 #$(this-package-input "rapidjson")
12006 "/include"))
12007 #:phases
12008 '(modify-phases %standard-phases
12009 (add-after 'unpack 'fix-includes
12010 (lambda _
12011 (substitute* "src/sortmerna/kseq_load.cpp"
12012 (("#include <iostream>" all)
12013 (string-append all "\n#include <cstdint>")))))
12014 (add-after 'unpack 'find-concurrentqueue-headers
12015 (lambda* (#:key inputs #:allow-other-keys)
12016 ;; Ensure that headers can be found
12017 (setenv "CPLUS_INCLUDE_PATH"
12018 (string-append (search-input-directory
12019 inputs "/include/concurrentqueue")
12020 ":"
12021 (or (getenv "CPLUS_INCLUDE_PATH") "")))))
12022 (replace 'install
12023 (lambda* (#:key outputs #:allow-other-keys)
12024 (let* ((out (assoc-ref outputs "out"))
12025 (bin (string-append out "/bin"))
12026 (db (assoc-ref outputs "db"))
12027 (share
12028 (string-append db "/share/sortmerna/rRNA_databases")))
12029 (install-file "src/sortmerna/sortmerna" bin)
12030 (for-each (lambda (file)
12031 (install-file file share))
12032 (find-files "../source/data/rRNA_databases" ".*fasta"))))))))
12033 (inputs
12034 (list concurrentqueue
12035 gflags ; because of rocksdb
12036 rapidjson rocksdb zlib))
12037 (native-inputs
12038 (list pkg-config))
12039 (home-page "https://bioinfo.lifl.fr/RNA/sortmerna/")
12040 (synopsis "Biological sequence analysis tool for NGS reads")
12041 (description
12042 "SortMeRNA is a biological sequence analysis tool for filtering, mapping
12043and @acronym{OTU, operational taxonomic unit} picking of @acronym{NGS, next
12044generation sequencing} reads. The core algorithm is based on approximate seeds
12045and allows for fast and sensitive analyses of nucleotide sequences. The main
12046application of SortMeRNA is filtering rRNA from metatranscriptomic data.")
12047 ;; The source includes x86 specific code
12048 (supported-systems '("x86_64-linux" "i686-linux"))
12049 (license license:lgpl3)))
12050
12051(define-public star
12052 (package
12053 (name "star")
12054 (version "2.7.8a")
12055 (source (origin
12056 (method git-fetch)
12057 (uri (git-reference
12058 (url "https://github.com/alexdobin/STAR")
12059 (commit version)))
12060 (file-name (git-file-name name version))
12061 (sha256
12062 (base32
12063 "0zc5biymja9zml9yizcj1h68fq9c6sxfcav8a0lbgvgsm44rvans"))
12064 (modules '((guix build utils)))
12065 (snippet
12066 '(begin
12067 (substitute* "source/Makefile"
12068 (("/bin/rm") "rm"))
12069 ;; Remove pre-built binaries and bundled htslib sources.
12070 (delete-file-recursively "bin/MacOSX_x86_64")
12071 (delete-file-recursively "bin/Linux_x86_64")
12072 (delete-file-recursively "bin/Linux_x86_64_static")
12073 (delete-file-recursively "source/htslib")
12074 #t))))
12075 (build-system gnu-build-system)
12076 (arguments
12077 '(#:tests? #f ;no check target
12078 #:make-flags '("STAR")
12079 #:phases
12080 (modify-phases %standard-phases
12081 (add-after 'unpack 'enter-source-dir
12082 (lambda _ (chdir "source") #t))
12083 (add-after 'enter-source-dir 'make-reproducible
12084 (lambda _
12085 (substitute* "Makefile"
12086 (("(COMPILATION_TIME_PLACE=\")(.*)(\")" _ pre mid post)
12087 (string-append pre "Built with Guix" post)))
12088 #t))
12089 ;; See https://github.com/alexdobin/STAR/pull/562
12090 (add-after 'enter-source-dir 'add-missing-header
12091 (lambda _
12092 (substitute* "SoloReadFeature_inputRecords.cpp"
12093 (("#include \"binarySearch2.h\"" h)
12094 (string-append h "\n#include <math.h>")))
12095 #t))
12096 (add-after 'enter-source-dir 'do-not-use-bundled-htslib
12097 (lambda _
12098 (substitute* "Makefile"
12099 (("(Depend.list: \\$\\(SOURCES\\) parametersDefault\\.xxd) htslib"
12100 _ prefix) prefix))
12101 (substitute* '("BAMfunctions.cpp"
12102 "signalFromBAM.h"
12103 "bam_cat.h"
12104 "bam_cat.c"
12105 "STAR.cpp"
12106 "bamRemoveDuplicates.cpp")
12107 (("#include \"htslib/([^\"]+\\.h)\"" _ header)
12108 (string-append "#include <" header ">")))
12109 (substitute* "IncludeDefine.h"
12110 (("\"htslib/(htslib/[^\"]+.h)\"" _ header)
12111 (string-append "<" header ">")))
12112 #t))
12113 (replace 'install
12114 (lambda* (#:key outputs #:allow-other-keys)
12115 (let ((bin (string-append (assoc-ref outputs "out") "/bin/")))
12116 (install-file "STAR" bin))
12117 #t))
12118 (delete 'configure))))
12119 (native-inputs
12120 (list xxd))
12121 (inputs
12122 (list htslib zlib))
12123 (home-page "https://github.com/alexdobin/STAR")
12124 (synopsis "Universal RNA-seq aligner")
12125 (description
12126 "The Spliced Transcripts Alignment to a Reference (STAR) software is
12127based on a previously undescribed RNA-seq alignment algorithm that uses
12128sequential maximum mappable seed search in uncompressed suffix arrays followed
12129by seed clustering and stitching procedure. In addition to unbiased de novo
12130detection of canonical junctions, STAR can discover non-canonical splices and
12131chimeric (fusion) transcripts, and is also capable of mapping full-length RNA
12132sequences.")
12133 ;; Only 64-bit systems are supported according to the README.
12134 (supported-systems '("x86_64-linux" "mips64el-linux"))
12135 ;; STAR is licensed under GPLv3 or later; htslib is MIT-licensed.
12136 (license license:gpl3+)))
12137
12138(define-public star-for-pigx
12139 (package
12140 (inherit star)
12141 (name "star")
12142 (version "2.7.3a")
12143 (source (origin
12144 (method git-fetch)
12145 (uri (git-reference
12146 (url "https://github.com/alexdobin/STAR")
12147 (commit version)))
12148 (file-name (git-file-name name version))
12149 (sha256
12150 (base32
12151 "1hgiqw5qhs0pc1xazzihcfd92na02xyq2kb469z04y1v51kpvvjq"))
12152 (modules '((guix build utils)))
12153 (snippet
12154 '(begin
12155 (substitute* "source/Makefile"
12156 (("/bin/rm") "rm"))
12157 ;; Remove pre-built binaries and bundled htslib sources.
12158 (delete-file-recursively "bin/MacOSX_x86_64")
12159 (delete-file-recursively "bin/Linux_x86_64")
12160 (delete-file-recursively "bin/Linux_x86_64_static")
12161 (delete-file-recursively "source/htslib")
12162 #t))))))
12163
12164(define-public starlong
12165 (package (inherit star)
12166 (name "starlong")
12167 (arguments
12168 (substitute-keyword-arguments arguments
12169 ((#:make-flags flags)
12170 `(list "STARlong"))
12171 ((#:phases phases)
12172 `(modify-phases ,phases
12173 ;; Allow extra long sequence reads.
12174 (add-after 'unpack 'make-extra-long
12175 (lambda _
12176 (substitute* "source/IncludeDefine.h"
12177 (("(#define DEF_readNameLengthMax ).*" _ match)
12178 (string-append match "900000\n")))
12179 #t))
12180 (replace 'install
12181 (lambda* (#:key outputs #:allow-other-keys)
12182 (let ((bin (string-append (assoc-ref outputs "out") "/bin/")))
12183 (install-file "STARlong" bin))
12184 #t))))))))
12185
12186(define-public subread
12187 (package
12188 (name "subread")
12189 (version "2.1.1")
12190 (source (origin
12191 (method url-fetch)
12192 (uri (string-append "mirror://sourceforge/subread/subread-"
12193 version "/subread-" version "-source.tar.gz"))
12194 (sha256
12195 (base32
12196 "1ahyn0dgz1aymmqrdfnhismny6x5g4m8jlc2wmkxgk9id33dg4k3"))))
12197 (build-system gnu-build-system)
12198 (arguments
12199 `(#:tests? #f ;no "check" target
12200 ;; The CC and CCFLAGS variables are set to contain a lot of x86_64
12201 ;; optimizations by default, so we override these flags such that x86_64
12202 ;; flags are only added when the build target is an x86_64 system.
12203 #:make-flags
12204 (list (let ((system ,(or (%current-target-system)
12205 (%current-system)))
12206 (flags '("-ggdb" "-fomit-frame-pointer"
12207 "-ffast-math" "-funroll-loops"
12208 "-fmessage-length=0" "-fcommon"
12209 "-O9" "-Wall" "-DMAKE_FOR_EXON"
12210 "-DMAKE_STANDALONE"
12211 "-DSUBREAD_VERSION=\\\"${SUBREAD_VERSION}\\\""))
12212 (flags64 '("-mmmx" "-msse" "-msse2" "-msse3")))
12213 (if (string-prefix? "x86_64" system)
12214 (string-append "CCFLAGS=" (string-join (append flags flags64)))
12215 (string-append "CCFLAGS=" (string-join flags))))
12216 "-f" "Makefile.Linux"
12217 "CC=gcc ${CCFLAGS}")
12218 #:phases
12219 (modify-phases %standard-phases
12220 (add-after 'unpack 'enter-dir
12221 (lambda _ (chdir "src")))
12222 (replace 'install
12223 (lambda* (#:key outputs #:allow-other-keys)
12224 (let ((bin (string-append (assoc-ref outputs "out") "/bin/")))
12225 (mkdir-p bin)
12226 (copy-recursively "../bin" bin))))
12227 ;; no "configure" script
12228 (delete 'configure))))
12229 (inputs (list zlib))
12230 (home-page "https://subread.sourceforge.net/")
12231 (synopsis "Tool kit for processing next-gen sequencing data")
12232 (description
12233 "The subread package contains the following tools: subread aligner, a
12234general-purpose read aligner; subjunc aligner: detecting exon-exon junctions
12235and mapping RNA-seq reads; featureCounts: counting mapped reads for genomic
12236features; exactSNP: a SNP caller that discovers SNPs by testing signals
12237against local background noises.")
12238 (license license:gpl3+)))
12239
12240(define-public stringtie
12241 (package
12242 (name "stringtie")
12243 (version "3.0.2")
12244 (source (origin
12245 (method url-fetch)
12246 (uri (string-append "http://ccb.jhu.edu/software/stringtie/dl/"
12247 "stringtie-" version ".tar.gz"))
12248 (sha256
12249 (base32
12250 "1mrqcvnhxbidyhf521naywb5ci579160ydqnl5kb4hqjqvm01mn2"))
12251 ;; This package bundles an annoying amount of third party source
12252 ;; code.
12253 (modules '((guix build utils)))
12254 (snippet
12255 '(delete-file-recursively "htslib"))))
12256 (build-system gnu-build-system)
12257 (arguments
12258 `(#:tests? #f ;no test suite
12259 #:make-flags '("LIBDEFLATE=-ldeflate"
12260 "LIBBZ2=-lbz2"
12261 "LIBLZMA=-llzma")
12262 #:phases
12263 (modify-phases %standard-phases
12264 ;; no configure script
12265 (delete 'configure)
12266 (add-before 'build 'use-system-samtools
12267 (lambda _
12268 (substitute* "Makefile"
12269 ((" -lm") " -lm -lhts")
12270 ((" \\$\\{HTSLIB\\}/libhts\\.a") " "))))
12271 (replace 'install
12272 (lambda* (#:key outputs #:allow-other-keys)
12273 (let ((bin (string-append (assoc-ref outputs "out") "/bin/")))
12274 (install-file "stringtie" bin)))))))
12275 (inputs
12276 (list bzip2 htslib libdeflate zlib))
12277 (home-page "https://ccb.jhu.edu/software/stringtie/")
12278 (synopsis "Transcript assembly and quantification for RNA-Seq data")
12279 (description
12280 "StringTie is a fast and efficient assembler of RNA-Seq sequence
12281alignments into potential transcripts. It uses a novel network flow algorithm
12282as well as an optional de novo assembly step to assemble and quantitate
12283full-length transcripts representing multiple splice variants for each gene
12284locus. Its input can include not only the alignments of raw reads used by
12285other transcript assemblers, but also alignments of longer sequences that have
12286been assembled from those reads. To identify differentially expressed genes
12287between experiments, StringTie's output can be processed either by the
12288Cuffdiff or Ballgown programs.")
12289 (license license:expat)))
12290
12291(define-public taxtastic
12292 (package
12293 (name "taxtastic")
12294 (version "0.11.1")
12295 (source (origin
12296 ;; The Pypi version does not include tests.
12297 (method git-fetch)
12298 (uri (git-reference
12299 (url "https://github.com/fhcrc/taxtastic")
12300 (commit (string-append "v" version))))
12301 (file-name (git-file-name name version))
12302 (sha256
12303 (base32
12304 "18h3vlyx9qp7xymd8ra6jn5h0vzlpzgcd75kslqyv2qcg1a7scc4"))))
12305 (build-system pyproject-build-system)
12306 (arguments
12307 (list
12308 #:test-flags #~(list "-k" "not test_new_nodes02")
12309 #:phases
12310 #~(modify-phases %standard-phases
12311 (add-after 'unpack 'prepare-directory
12312 (lambda _
12313 ;; This package is unknown to pypi.
12314 (substitute* '("requirements.txt" "setup.py")
12315 ((".*psycopg-binary.*") ""))
12316 ;; This test fails, but the error is not caught by the test
12317 ;; framework, so the tests fail...
12318 (substitute* "tests/test_taxit.py"
12319 (("self.cmd_fails\\(''\\)")
12320 "self.cmd_fails('nothing')"))
12321 ;; This version file is expected to be created with git describe.
12322 (mkdir-p "taxtastic/data")
12323 (with-output-to-file "taxtastic/data/ver"
12324 (lambda () (display #$version))))))))
12325 (native-inputs
12326 (list python-pytest python-setuptools))
12327 (propagated-inputs
12328 (list python-biopython
12329 python-decorator
12330 python-dendropy
12331 python-fastalite
12332 python-jinja2
12333 python-pandas
12334 python-psycopg
12335 python-psycopg2-binary
12336 python-pyyaml
12337 python-sqlalchemy-2
12338 python-sqlparse))
12339 (home-page "https://github.com/fhcrc/taxtastic")
12340 (synopsis "Tools for taxonomic naming and annotation")
12341 (description
12342 "Taxtastic is software written in python used to build and maintain
12343reference packages i.e. collections of reference trees, reference alignments,
12344profiles, and associated taxonomic information.")
12345 (license license:gpl3+)))
12346
12347(define-public vcftools
12348 (package
12349 (name "vcftools")
12350 (version "0.1.16")
12351 (source (origin
12352 (method url-fetch)
12353 (uri (string-append
12354 "https://github.com/vcftools/vcftools/releases/download/v"
12355 version "/vcftools-" version ".tar.gz"))
12356 (sha256
12357 (base32
12358 "1qqlx7flfv7axrjwkaz6njkscsl1d0jw98ns8d8bh1n1hd1pgz6v"))))
12359 (build-system gnu-build-system)
12360 (arguments
12361 `(#:tests? #f ; no "check" target
12362 #:make-flags
12363 ,#~(list
12364 "CFLAGS=-O2" ; override "-m64" flag
12365 (string-append "PREFIX=" #$output)
12366 (string-append "MANDIR=" #$output "/share/man/man1"))))
12367 (native-inputs
12368 (list pkg-config))
12369 (inputs
12370 (list perl zlib))
12371 (home-page "https://vcftools.github.io/")
12372 (synopsis "Tools for working with VCF files")
12373 (description
12374 "VCFtools is a program package designed for working with VCF files, such
12375as those generated by the 1000 Genomes Project. The aim of VCFtools is to
12376provide easily accessible methods for working with complex genetic variation
12377data in the form of VCF files.")
12378 ;; The license is declared as LGPLv3 in the README and
12379 ;; at https://vcftools.github.io/license.html
12380 (license license:lgpl3)))
12381
12382(define-public infernal
12383 (package
12384 (name "infernal")
12385 (version "1.1.4")
12386 (source (origin
12387 (method url-fetch)
12388 (uri (string-append "http://eddylab.org/software/infernal/"
12389 "infernal-" version ".tar.gz"))
12390 (sha256
12391 (base32
12392 "1z4mgwqg1j4n5ika08ai8mg9yjyjhf4821jp83v2bgwzxrykqjgr"))))
12393 (build-system gnu-build-system)
12394 (native-inputs
12395 (list perl python)) ; for tests
12396 (home-page "http://eddylab.org/infernal/")
12397 (synopsis "Inference of RNA alignments")
12398 (description "Infernal (\"INFERence of RNA ALignment\") is a tool for
12399searching DNA sequence databases for RNA structure and sequence similarities.
12400It is an implementation of a special case of profile stochastic context-free
12401grammars called @dfn{covariance models} (CMs). A CM is like a sequence
12402profile, but it scores a combination of sequence consensus and RNA secondary
12403structure consensus, so in many cases, it is more capable of identifying RNA
12404homologs that conserve their secondary structure more than their primary
12405sequence.")
12406 ;; Infernal 1.1.3 requires VMX or SSE capability for parallel instructions.
12407 (supported-systems '("i686-linux" "x86_64-linux"))
12408 (license license:bsd-3)))
12409
12410(define-public r-genenmf
12411 (let ((commit "7ac475261123232d3e691ef851936e05055becd4")
12412 (revision "1"))
12413 (package
12414 (name "r-genenmf")
12415 (version (git-version "0.9.2" revision commit))
12416 (source
12417 (origin
12418 (method git-fetch)
12419 (uri (git-reference
12420 (url "https://github.com/carmonalab/GeneNMF")
12421 (commit commit)))
12422 (file-name (git-file-name name version))
12423 (sha256
12424 (base32 "0kv419nyyddpj2j2dvhxhwk5m26p39f3jc2r7rz98j86x6hgwgpl"))))
12425 (properties `((upstream-name . "GeneNMF")))
12426 (build-system r-build-system)
12427 (propagated-inputs (list r-cluster
12428 r-colorspace
12429 r-dendextend
12430 r-irlba
12431 r-lsa
12432 r-matrix
12433 r-pheatmap
12434 r-rcppml
12435 r-seurat
12436 r-viridis))
12437 (native-inputs (list r-knitr))
12438 (home-page "https://github.com/carmonalab/GeneNMF")
12439 (synopsis "Non-Negative matrix factorization for single-cell omics")
12440 (description
12441 "This package provides a collection of methods to extract gene programs
12442from single-cell gene expression data using @dfn{non-negative matrix
12443factorization} (NMF). @code{GeneNMF} contains functions to directly interact
12444with the Seurat toolkit and derive interpretable gene program signatures.")
12445 (license license:gpl3))))
12446
12447(define-public r-ggexpress
12448 (let ((commit "82f169385f87af328ff971195c2f64ff3c573a8a")
12449 (revision "1"))
12450 (package
12451 (name "r-ggexpress")
12452 (version (git-version "0.6.6" revision commit))
12453 (source (origin
12454 (method git-fetch)
12455 (uri (git-reference
12456 (url "https://github.com/vertesy/ggExpress")
12457 (commit commit)))
12458 (file-name (git-file-name name version))
12459 (sha256
12460 (base32
12461 "122hnw8xv33ngcd4fd7hmf817a06ih1knrxxi0cgklj1fwinm0z4"))))
12462 (properties `((upstream-name . "ggExpress")))
12463 (build-system r-build-system)
12464 (propagated-inputs (list r-cowplot
12465 r-ggplot2
12466 r-ggpubr
12467 r-markdownhelpers
12468 r-markdownreports
12469 r-rcolorbrewer
12470 r-sessioninfo
12471 r-seurat
12472 r-sm
12473 r-stringendo
12474 r-tidyverse))
12475 (home-page "https://github.com/vertesy/ggExpress")
12476 (synopsis
12477 "This is a fast tool to create, annotate and export plots in R")
12478 (description
12479 "This package is a set of R functions for generating precise figures.
12480This tool helps you to create clean markdown reports about what you just
12481discovered with your analysis script.")
12482 (license license:gpl3))))
12483
12484(define-public r-gg3d
12485 (let ((commit "ffdd837d30c1671cd0895db94bdd7b1594dbfcb0")
12486 (revision "1"))
12487 (package
12488 (name "r-gg3d")
12489 (version (git-version "0.0.0.9000" revision commit))
12490 (source (origin
12491 (method git-fetch)
12492 (uri (git-reference
12493 (url "https://github.com/AckerDWM/gg3D")
12494 (commit commit)))
12495 (file-name (git-file-name name version))
12496 (sha256
12497 (base32
12498 "0vz5laj5vz9m1jzb7h7q9f37zjmxwhylhaidlsg61r57wpxvjr3p"))))
12499 (properties `((upstream-name . "gg3D")))
12500 (build-system r-build-system)
12501 (propagated-inputs
12502 (list r-dplyr
12503 r-ggplot2
12504 r-magrittr
12505 r-plot3d
12506 r-plyr
12507 r-scales))
12508 (native-inputs (list r-knitr))
12509 (home-page "https://github.com/AckerDWM/gg3D")
12510 (synopsis "3D perspective plots for ggplot2")
12511 (description
12512 "This package adds 3D perspective plotting of points, paths, and line,
125133D perspective axes, 3D perspective annotations, and wireframe plots.")
12514 (license license:gpl3+))))
12515
12516(define-public r-ggsankey
12517 (let ((commit "be08dd0f86eaee9f9ff9e7ff95d47930660a3c36")
12518 (revision "1"))
12519 (package
12520 (name "r-ggsankey")
12521 (version (git-version "0.0.99999" revision commit))
12522 (source (origin
12523 (method git-fetch)
12524 (uri (git-reference
12525 (url "https://github.com/davidsjoberg/ggsankey")
12526 (commit commit)))
12527 (file-name (git-file-name name version))
12528 (sha256
12529 (base32
12530 "0acpmydqqc91pq5p9wpkpmgqp3nhiljabd7d3i00kwhjxgm2bvba"))))
12531 (properties `((upstream-name . "ggsankey")))
12532 (build-system r-build-system)
12533 (propagated-inputs (list r-dplyr
12534 r-ggplot2
12535 r-magrittr
12536 r-purrr
12537 r-stringr
12538 r-tidyr))
12539 (native-inputs (list r-testthat))
12540 (home-page "https://github.com/davidsjoberg/ggsankey")
12541 (synopsis "Sankey, Alluvial and Sankey bump plots")
12542 (description
12543 "This package provides a package that makes it easy to implement
12544sankey, alluvial and sankey bump plots in @code{ggplot2}.")
12545 (license license:expat))))
12546
12547(define-public r-gutils
12548 (let ((commit "fc24db6f73898c3c25e400e7d627e3e5229003f2")
12549 (revision "2"))
12550 (package
12551 (name "r-gutils")
12552 (version (git-version "0.2.0" revision commit))
12553 (source (origin
12554 (method git-fetch)
12555 (uri (git-reference
12556 (url "https://github.com/mskilab/gUtils")
12557 (commit commit)))
12558 (file-name (git-file-name name version))
12559 (sha256
12560 (base32
12561 "11ijzy1zyjv2wgxrfcaan7g82jl27skd41hw4s2xh9lijkn8ilwh"))))
12562 (properties `((upstream-name . "gUtils")))
12563 (build-system r-build-system)
12564 (arguments
12565 (list
12566 #:phases
12567 '(modify-phases %standard-phases
12568 ;; These deprecated procedures have been removed in testthat.
12569 (add-after 'unpack 'testthat-compatibility
12570 (lambda _
12571 (substitute* "tests/testthat/test_rangeops.R"
12572 (("is_true\\(\\)") "expect_true")))))))
12573 (propagated-inputs
12574 (list r-biocgenerics
12575 r-data-table
12576 r-genomeinfodb
12577 r-genomicranges
12578 r-iranges
12579 r-matrix
12580 r-s4vectors
12581 r-stringr))
12582 (native-inputs (list r-testthat r-xvector))
12583 (home-page "https://github.com/mskilab/gUtils")
12584 (synopsis "Additional capabilities and speed for GenomicRanges operations")
12585 (description
12586 "This is an R package providing additional capabilities and speed for
12587@code{GenomicRanges} operations.")
12588 (license license:gpl2))))
12589
12590(define-public r-bamutils
12591 (let ((commit "0a7d2d90cc720aac3fe44f964abf294f1b827f32")
12592 (revision "2"))
12593 (package
12594 (name "r-bamutils")
12595 (version (git-version "0.0.0.9000" revision commit))
12596 (source (origin
12597 (method git-fetch)
12598 (uri (git-reference
12599 (url "https://github.com/mskilab/bamutils/")
12600 (commit commit)))
12601 (file-name (git-file-name name version))
12602 (sha256
12603 (base32
12604 "1r3y8775y2j9w92pdp42iaif7nbh260xljrhaswkz6lp71phf1yw"))))
12605 (properties `((upstream-name . "bamUtils")))
12606 (build-system r-build-system)
12607 ;; See https://github.com/mskilab-org/bamUtils/issues/12
12608 (arguments (list #:tests? #false))
12609 (propagated-inputs
12610 (list r-abind
12611 r-biocgenerics
12612 r-data-table
12613 r-genomicalignments
12614 r-genomicranges
12615 r-gutils
12616 r-rsamtools
12617 r-variantannotation))
12618 (native-inputs (list r-testthat samtools))
12619 (home-page "https://github.com/mskilab/bamutils/")
12620 (synopsis "Utility functions for manipulating BAMs")
12621 (description "This package provides utility functions for manipulating
12622BAM files.")
12623 (license license:gpl2))))
12624
12625(define-public r-gtrack
12626 (let ((commit "a694fa36cedafca2658da79fc8e5b673535b15e5")
12627 (revision "1"))
12628 (package
12629 (name "r-gtrack")
12630 (version (git-version "0.1.0" revision commit))
12631 (source (origin
12632 (method git-fetch)
12633 (uri (git-reference
12634 (url "https://github.com/mskilab/gTrack/")
12635 (commit commit)))
12636 (file-name (git-file-name name version))
12637 (sha256
12638 (base32
12639 "070qlrbqsbj9max2vx740zigqh0ymvnw2pm1ia5la3wb4dbfwh2b"))))
12640 (properties `((upstream-name . "gTrack")))
12641 (build-system r-build-system)
12642 (propagated-inputs
12643 (list r-biocgenerics
12644 r-data-table
12645 r-genomeinfodb
12646 r-genomicranges
12647 r-gutils
12648 r-iranges
12649 r-matrix
12650 r-rcolorbrewer
12651 r-rcpp
12652 r-rcurl
12653 r-rtracklayer
12654 r-s4vectors))
12655 (native-inputs (list r-testthat))
12656 (home-page "https://github.com/mskilab/gTrack/")
12657 (synopsis "Plot tracks of complex genomic data across multiple genomic windows")
12658 (description
12659 "This package provides an object for plotting GRanges, RleList, UCSC
12660file formats, and ffTrack objects in multi-track panels.")
12661 (license license:gpl2))))
12662
12663(define-public r-gchain
12664 (let ((commit "19f8bb924fdadca136b9827b8538574b278e86a1")
12665 (revision "2"))
12666 (package
12667 (name "r-gchain")
12668 (version (git-version "0.2.0" revision commit))
12669 (source (origin
12670 (method git-fetch)
12671 (uri (git-reference
12672 (url "https://github.com/mskilab/gChain/")
12673 (commit commit)))
12674 (file-name (git-file-name name version))
12675 (sha256
12676 (base32
12677 "0cg7cy97g2w2dcd980jz5fawjjrfl590hdx3rsblavcdlnzcs3x4"))))
12678 (properties `((upstream-name . "gChain")))
12679 (build-system r-build-system)
12680 (arguments
12681 (list
12682 #:phases
12683 '(modify-phases %standard-phases
12684 (add-after 'unpack 'biostrings-compatibility
12685 (lambda _
12686 (substitute* "R/gChain.R"
12687 ((" pairwiseAlignment") " pwalign::pairwiseAlignment")
12688 (("alignedPattern") "pwalign::alignedPattern")
12689 (("deletion\\(") "pwalign::deletion(")
12690 (("insertion\\(") "pwalign::insertion(")
12691 (("Biostrings::pattern") "pwalign::pattern"))))
12692 (add-after 'unpack 'skip-bad-tests
12693 (lambda _
12694 (substitute* "tests/testthat/test_gChain.R"
12695 ;; C stack usage 7973568 is too close to the limit
12696 ((".*'testing lift\\(\\) works'.*" m)
12697 (string-append m "skip('guix')"))
12698 ;; C stack usage 7973568 is too close to the limit
12699 ((".*'testing \"\\*\" works'.*" m)
12700 (string-append m "skip('guix')"))))))))
12701 (propagated-inputs
12702 (list r-bamutils
12703 r-biostrings
12704 r-data-table
12705 r-genomicalignments
12706 r-genomicranges
12707 r-gtrack
12708 r-gutils
12709 r-matrix
12710 r-rtracklayer))
12711 (native-inputs (list r-pwalign r-testthat))
12712 (home-page "https://github.com/mskilab/gChain/")
12713 (synopsis "Additional capabilities and speed for GenomicRanges operations")
12714 (description
12715 "This R package provides additional capabilities and speed for
12716GenomicRanges operations.")
12717 (license license:gpl2))))
12718
12719(define-public r-skitools
12720 (let ((commit "ba322dcc2c0ca24a7f3dabecfb37f95e0e2186d1")
12721 (revision "2"))
12722 (package
12723 (name "r-skitools")
12724 (version (git-version "0.0.0.9000" revision commit))
12725 (source (origin
12726 (method git-fetch)
12727 (uri (git-reference
12728 (url "https://github.com/mskilab/skitools/")
12729 (commit commit)))
12730 (file-name (git-file-name name version))
12731 (sha256
12732 (base32
12733 "1za371x1cmkmlmicbhzxwycg7g1z9q3d5j7ia2rzayf30s9rcc47"))))
12734 (properties `((upstream-name . "skitools")))
12735 (build-system r-build-system)
12736 (arguments
12737 (list
12738 #:phases
12739 '(modify-phases %standard-phases
12740 (add-after 'unpack 'disable-bad-test
12741 (lambda _
12742 ;; See https://github.com/mskilab-org/skitools/issues/11
12743 (substitute* "tests/testthat/test_skitools.R"
12744 ((".*test ra.merge.*" m)
12745 (string-append m "skip('guix')\n"))))))))
12746 (propagated-inputs
12747 (list r-biostrings
12748 r-complexheatmap
12749 r-data-table
12750 r-devtools
12751 r-dt
12752 r-gchain
12753 r-genomeinfodb
12754 r-genomicranges
12755 r-ggplot2
12756 r-gplots
12757 r-gutils
12758 r-htmlwidgets
12759 r-hwriter
12760 r-igraph
12761 r-iranges
12762 r-plotly
12763 r-rcolorbrewer
12764 r-reshape2
12765 r-s4vectors
12766 r-stringr
12767 r-variantannotation))
12768 (native-inputs (list r-bsgenome-hsapiens-ucsc-hg19))
12769 (home-page "https://github.com/mskilab/skitools/")
12770 (synopsis "Various mskilab R utilities")
12771 (description
12772 "This package provides R miscellaneous utilities for basic data
12773manipulation, debugging, visualization, lsf management, and common mskilab
12774tasks.")
12775 (license license:expat))))
12776
12777(define-public r-chromunity
12778 (let ((commit "101e30aafef23b4d8a4fba40375bf7d13a7c0b11")
12779 (revision "2"))
12780 (package
12781 (name "r-chromunity")
12782 (version (git-version "0.0.2" revision commit))
12783 (source (origin
12784 (method git-fetch)
12785 (uri (git-reference
12786 (url "https://github.com/mskilab/chromunity")
12787 (commit commit)))
12788 (file-name (git-file-name name version))
12789 (sha256
12790 (base32
12791 "1fq6l9xn6zl1nqr6ny2575r3iqmhf8dgsd7rxaglm6a7fy3r8zx7"))))
12792 (properties `((upstream-name . "chromunity")))
12793 (build-system r-build-system)
12794 (arguments
12795 (list
12796 #:phases
12797 '(modify-phases %standard-phases
12798 (add-after 'unpack 'disable-bad-tests
12799 (lambda _
12800 ;; This test operates on a NULL object.
12801 (substitute* "tests/testthat/test_chromunity.R"
12802 ((".*synergy.*" m)
12803 (string-append m "skip('guix')\n"))))))))
12804 (propagated-inputs
12805 (list r-arrow
12806 r-biocgenerics
12807 r-bsgenome-hsapiens-ucsc-hg38
12808 r-data-table
12809 r-gchain
12810 r-genomicranges
12811 r-gutils
12812 r-igraph
12813 r-magrittr
12814 r-mass
12815 r-matrix
12816 r-pbmcapply
12817 r-plyr
12818 r-r6
12819 r-zoo))
12820 (native-inputs (list r-testthat))
12821 (home-page "https://github.com/mskilab/chromunity")
12822 (synopsis "Discovery of communities in Pore-C concatemers")
12823 (description "This is a package for the discovery of communities in
12824Pore-C concatemers.")
12825 (license license:gpl3))))
12826
12827(define-public r-cmdstanr
12828 (let ((commit "a45d4f7d686aa6b57ce25f342a71eea79507f01c")
12829 (revision "1"))
12830 (package
12831 (name "r-cmdstanr")
12832 (version (git-version "0.8.1.9000" revision commit))
12833 (source
12834 (origin
12835 (method git-fetch)
12836 (uri (git-reference
12837 (url "https://github.com/stan-dev/cmdstanr")
12838 (commit commit)))
12839 (file-name (git-file-name name version))
12840 (sha256
12841 (base32 "01vyh3sy704rs7yvaka2hp6vld0mdl7hbrs20dpbwidgm4ksrvsi"))))
12842 (properties `((upstream-name . "cmdstanr")))
12843 (build-system r-build-system)
12844 (propagated-inputs (list r-checkmate
12845 r-data-table
12846 r-jsonlite
12847 r-posterior
12848 r-processx
12849 r-r6
12850 r-rlang
12851 r-withr))
12852 (native-inputs (list r-knitr r-testthat))
12853 (home-page "https://github.com/stan-dev/cmdstanr")
12854 (synopsis "R interface to 'CmdStan'")
12855 (description
12856 "This package provides a lightweight interface to Stan
12857<https://mc-stan.org>. The @code{CmdStanR} interface is an alternative
12858to RStan that calls the command line interface for compilation and
12859running algorithms instead of interfacing with C++ via Rcpp'.")
12860 (license license:bsd-3))))
12861
12862(define-public r-dnamcrosshyb
12863 ;; There aren't any releases.
12864 (let ((commit "fe8acb33667e81f00dcb84e0fa75c87ab2db5d8f")
12865 (revision "1"))
12866 (package
12867 (name "r-dnamcrosshyb")
12868 (version (git-version "0.0.0.9000" revision commit))
12869 (source
12870 (origin
12871 (method git-fetch)
12872 (uri (git-reference
12873 (url "https://github.com/pjhop/DNAmCrosshyb")
12874 (commit commit)))
12875 (file-name (git-file-name name version))
12876 (sha256
12877 (base32 "12j1xsiqpvny5rp23z1az0k4cj5ajbcwkg65z00s16vywi2rx6nb"))))
12878 (properties `((upstream-name . "DNAmCrosshyb")))
12879 (build-system r-build-system)
12880 (propagated-inputs
12881 (list r-biocgenerics
12882 r-biocparallel
12883 r-biostrings
12884 r-bsgenome-hsapiens-ucsc-hg19-masked
12885 r-bsgenome-hsapiens-ucsc-hg38-masked
12886 r-dplyr
12887 r-genomicranges
12888 r-ggplot2
12889 r-iranges
12890 r-magrittr
12891 r-minfi
12892 r-purrr
12893 r-s4vectors
12894 r-shiny
12895 r-stringi
12896 r-stringr
12897 r-tibble
12898 r-tidyr
12899 r-watermelon))
12900 (home-page "https://github.com/pjhop/DNAmCrosshyb")
12901 (synopsis "DNAmCrosshyb")
12902 (description
12903 "This package provides helper functions to detect cross-hybridization
12904on Illumina DNAm arrays.")
12905 (license license:gpl3))))
12906
12907(define-public r-doubletcollection
12908 (let ((commit "c0d62f1853942ee6a087eaf7b000d9e4261e2dfd")
12909 (revision "1"))
12910 (package
12911 (name "r-doubletcollection")
12912 (version (git-version "1.1.0" revision commit))
12913 (source (origin
12914 (method git-fetch)
12915 (uri (git-reference
12916 (url "https://github.com/xnnba1984/DoubletCollection")
12917 (commit commit)))
12918 (file-name (git-file-name name version))
12919 (sha256
12920 (base32
12921 "02cvibyc2nwc4037ramm5cskjwyrb9ib9hkrfhmvhbslkn5ixz1v"))))
12922 (properties `((upstream-name . "DoubletCollection")))
12923 (build-system r-build-system)
12924 ;; There are no tests.
12925 (arguments (list #:tests? #false))
12926 (propagated-inputs (list r-biocgenerics
12927 r-doubletfinder
12928 r-gam
12929 r-ggplot2
12930 r-ggthemes
12931 r-mast
12932 r-mclust
12933 r-prroc
12934 r-reticulate
12935 r-scales
12936 r-scdblfinder
12937 r-scds
12938 r-seurat
12939 r-singlecellexperiment
12940 r-slingshot
12941 r-summarizedexperiment
12942 python
12943 python-scrublet
12944 python-doubletdetection))
12945 (native-inputs (list r-testthat))
12946 (home-page "https://github.com/xnnba1984/DoubletCollection")
12947 (synopsis "Tool for finding doublets in scRNA-seq data")
12948 (description
12949 "This is an R package that integrates the installation of
12950doublet-detection methods. In addition, this tool is used for execution and
12951benchmark of those eight mentioned methods.")
12952 (license license:gpl3+))))
12953
12954(define-public r-plsdabatch
12955 (let ((commit "4aadf3a99709afae462db310386b6cf5db20088c")
12956 (revision "1"))
12957 (package
12958 (name "r-plsdabatch")
12959 (version (git-version "0.2.3" revision commit))
12960 (source (origin
12961 (method git-fetch)
12962 (uri (git-reference
12963 (url "https://github.com/EvaYiwenWang/PLSDAbatch")
12964 (commit commit)))
12965 (file-name (git-file-name name version))
12966 (sha256
12967 (base32
12968 "047l923lq2ji7rwybh9b9zkblzvvhkpli5gb2x8g2q9f2n5022nr"))))
12969 (properties `((upstream-name . "PLSDAbatch")))
12970 (build-system r-build-system)
12971 (propagated-inputs (list r-ggplot2
12972 r-ggpubr
12973 r-gridextra
12974 r-lmertest
12975 r-mixomics
12976 r-mvtnorm
12977 r-performance
12978 r-rdpack
12979 r-scales))
12980 (native-inputs (list r-knitr))
12981 (home-page "https://github.com/EvaYiwenWang/PLSDAbatch")
12982 (synopsis "PLSDA-batch")
12983 (description
12984 "This package provides a new batch effect correction method based on
12985Projection to Latent Structures Discriminant Analysis named “PLSDA-batch” to
12986correct data prior to any downstream analysis. PLSDA-batch estimates latent
12987components related to treatment and batch effects to remove batch variation.
12988The method is multivariate, non-parametric and performs dimension reduction.
12989Combined with centered log ratio transformation for addressing uneven library
12990sizes and compositional structure, PLSDA-batch addresses all characteristics
12991of microbiome data that existing correction methods have ignored so far.")
12992 (license license:gpl3))))
12993
12994(define-public r-psupertime
12995 (let ((commit "73825a28d3bd9bc881c15ee0c4c218eec1c9c207")
12996 (revision "1"))
12997 (package
12998 (name "r-psupertime")
12999 (version (git-version "0.2.6" revision commit))
13000 (source (origin
13001 (method git-fetch)
13002 (uri (git-reference
13003 (url "https://github.com/wmacnair/psupertime")
13004 (commit commit)))
13005 (file-name (git-file-name name version))
13006 (sha256
13007 (base32
13008 "00h1r3ffz6m9dwcgkvyki8405b059qn6mnjsd8d76a1rabaf2vfh"))))
13009 (properties `((upstream-name . "psupertime")))
13010 (build-system r-build-system)
13011 (propagated-inputs
13012 (list r-cowplot
13013 r-data-table
13014 r-fastcluster
13015 r-forcats
13016 r-ggplot2
13017 r-glmnet
13018 r-knitr
13019 r-matrix
13020 r-rcolorbrewer
13021 r-scales
13022 r-scran
13023 r-singlecellexperiment
13024 r-stringr
13025 r-summarizedexperiment
13026 r-topgo))
13027 (native-inputs (list r-knitr r-testthat))
13028 (home-page "https://github.com/wmacnair/psupertime")
13029 (synopsis
13030 "Psupertime is supervised pseudotime for single cell RNAseq data")
13031 (description
13032 "Psupertime is supervised pseudotime for single cell RNAseq data. It
13033uses single cell RNAseq data, where the cells have a known ordering. This
13034ordering helps to identify a small number of genes which place cells in that
13035known order. It can be used for discovery of relevant genes, for
13036identification of subpopulations, and characterization of further unknown or
13037differently labelled data.")
13038 (license license:gpl3))))
13039
13040(define-public r-premessa
13041 (let ((commit "68b42bb984637d0f3ad6a0ecc83e9278994afc85")
13042 (revision "1"))
13043 (package
13044 (name "r-premessa")
13045 (version (git-version "0.3.4" revision commit))
13046 (source (origin
13047 (method git-fetch)
13048 (uri (git-reference
13049 (url "https://github.com/ParkerICI/premessa")
13050 (commit commit)))
13051 (file-name (git-file-name name version))
13052 (sha256
13053 (base32
13054 "1l0q431zk0lvg22130nx84gdqi7cpl05yah4am63lbx6m4c769pb"))
13055 (snippet
13056 '(delete-file "inst/normalizer_shinyGUI/www/d3.min.js"))))
13057 (properties `((upstream-name . "premessa")))
13058 (build-system r-build-system)
13059 (arguments
13060 (list
13061 #:phases
13062 '(modify-phases %standard-phases
13063 (add-after 'unpack 'process-javascript
13064 (lambda* (#:key inputs #:allow-other-keys)
13065 (with-directory-excursion "inst/normalizer_shinyGUI/www/"
13066 (invoke "esbuild" (assoc-ref inputs "d3.v4.js")
13067 "--minify" "--outfile=d3.min.js")))))))
13068 (propagated-inputs
13069 (list r-data-table
13070 r-flowcore
13071 r-ggplot2
13072 r-gridextra
13073 r-hexbin
13074 r-jsonlite
13075 r-reshape
13076 r-rhandsontable
13077 r-shiny
13078 r-shinyjqui))
13079 (native-inputs
13080 `(("esbuild" ,esbuild)
13081 ("d3.v4.js"
13082 ,(origin
13083 (method url-fetch)
13084 (uri "https://d3js.org/d3.v4.js")
13085 (sha256
13086 (base32
13087 "0y7byf6kcinfz9ac59jxc4v6kppdazmnyqfav0dm4h550fzfqqlg"))))))
13088 (home-page "https://github.com/ParkerICI/premessa")
13089 (synopsis "Pre-processing of flow and mass cytometry data")
13090 (description
13091 "This is an R package for pre-processing of flow and mass cytometry
13092data. This package includes panel editing or renaming for FCS files,
13093bead-based normalization and debarcoding.")
13094 (license license:gpl3))))
13095
13096(define-public r-projectils
13097 (let ((commit "cc73b97471b4b6eea11ce779b5c4a7dc5c3e1709")
13098 (revision "1"))
13099 (package
13100 (name "r-projectils")
13101 (version (git-version "3.0.0" revision commit))
13102 (source
13103 (origin
13104 (method git-fetch)
13105 (uri (git-reference
13106 (url "https://github.com/carmonalab/ProjecTILs")
13107 (commit commit)))
13108 (file-name (git-file-name name version))
13109 (sha256
13110 (base32 "0dpzvbhhb9andnj7angpj32cgkwd6rs6qgpl6i21pqzcn6vqqhqw"))))
13111 (properties `((upstream-name . "ProjecTILs")))
13112 (build-system r-build-system)
13113 (propagated-inputs
13114 (list r-biocneighbors
13115 r-biocparallel
13116 r-dplyr
13117 r-ggplot2
13118 r-matrix
13119 r-patchwork
13120 r-pheatmap
13121 r-pracma
13122 r-purrr
13123 r-rcolorbrewer
13124 r-reshape2
13125 r-scales
13126 r-scgate
13127 r-seurat
13128 r-seuratobject
13129 r-stacas
13130 r-ucell
13131 r-umap
13132 r-uwot))
13133 (home-page "https://github.com/carmonalab/ProjecTILs")
13134 (synopsis "Reference-based analysis of scRNA-seq data")
13135 (description
13136 "This package implements methods to project single-cell RNA-seq data
13137onto a reference atlas, enabling interpretation of unknown cell transcriptomic
13138states in the the context of known, reference states.")
13139 (license license:gpl3))))
13140
13141(define-public r-presto
13142 (let ((commit "7636b3d0465c468c35853f82f1717d3a64b3c8f6")
13143 (revision "1"))
13144 (package
13145 (name "r-presto")
13146 (version (git-version "1.0.0" revision commit))
13147 (source
13148 (origin
13149 (method git-fetch)
13150 (uri (git-reference
13151 (url "https://github.com/immunogenomics/presto")
13152 (commit commit)))
13153 (file-name (git-file-name name version))
13154 (sha256
13155 (base32 "07giligbadv3ap0p4hzsviqpgiipkqcq7x6p0g8lmb8xxpjz3y29"))))
13156 (properties
13157 '((upstream-name . "presto")
13158 (updater-extra-native-inputs . ("r-broom"))))
13159 (build-system r-build-system)
13160 (propagated-inputs
13161 (list r-data-table
13162 r-dplyr
13163 r-matrix
13164 r-purrr
13165 r-rcpp
13166 r-rcpparmadillo
13167 r-rlang
13168 r-tibble
13169 r-tidyr))
13170 (native-inputs (list r-broom r-knitr r-testthat))
13171 (home-page "https://github.com/immunogenomics/presto")
13172 (synopsis "Fast Functions for Differential Expression using Wilcox and AUC")
13173 (description "This package performs a fast Wilcoxon rank sum test and
13174auROC analysis.")
13175 (license license:gpl3))))
13176
13177(define-public r-sccustomize
13178 (let ((commit "397374590dae2ccc0c560897dcd1ce4382c18798")
13179 (revision "1"))
13180 (package
13181 (name "r-sccustomize")
13182 (version (git-version "2.0.1" revision commit))
13183 (source
13184 (origin
13185 (method git-fetch)
13186 (uri (git-reference
13187 (url "https://github.com/samuel-marsh/scCustomize")
13188 (commit commit)))
13189 (file-name (git-file-name name version))
13190 (sha256
13191 (base32 "11bafm0mlck27fqd8brz80pxb8dc5q0aqbp8zv0s9sx97njp7wsl"))))
13192 (properties `((upstream-name . "scCustomize")))
13193 (build-system r-build-system)
13194 (propagated-inputs (list r-circlize
13195 r-colorway
13196 r-cowplot
13197 r-data-table
13198 r-dittoseq
13199 r-dplyr
13200 r-forcats
13201 r-ggbeeswarm
13202 r-ggplot2
13203 r-ggprism
13204 r-ggpubr
13205 r-ggrastr
13206 r-ggrepel
13207 r-glue
13208 r-janitor
13209 r-magrittr
13210 r-matrix
13211 r-paletteer
13212 r-patchwork
13213 r-pbapply
13214 r-purrr
13215 r-remotes
13216 r-scales
13217 r-scattermore
13218 r-seurat
13219 r-seuratobject
13220 r-stringi
13221 r-stringr
13222 r-tibble
13223 r-tidyr
13224 r-tidyselect
13225 r-viridis))
13226 (native-inputs (list r-knitr))
13227 (home-page "https://github.com/samuel-marsh/scCustomize")
13228 (synopsis "Custom visualization and analyses of single-cell sequencing")
13229 (description
13230 "This is a collection of functions created and/or curated to aid in the
13231visualization and analysis of single-cell data using R.")
13232 (license license:gpl3+))))
13233
13234(define-public r-markdownhelpers
13235 (let ((commit "793372d28ebed607cc1d35f909a1caedb2b41ffe")
13236 (revision "1"))
13237 (package
13238 (name "r-markdownhelpers")
13239 (version (git-version "0.2.0" revision commit))
13240 (source (origin
13241 (method git-fetch)
13242 (uri (git-reference
13243 (url "https://github.com/vertesy/MarkdownHelpers")
13244 (commit commit)))
13245 (file-name (git-file-name name version))
13246 (sha256
13247 (base32
13248 "1d18s2ydhfjm3hjkxz42dirhwrrv792m6mvkmypallaa2qnwrmkg"))))
13249 (properties `((upstream-name . "MarkdownHelpers")))
13250 (build-system r-build-system)
13251 (propagated-inputs (list r-devtools r-stringendo r-usethis))
13252 (home-page "https://github.com/vertesy/MarkdownHelpers")
13253 (synopsis "Helper functions for MarkdownReports and ggExpress")
13254 (description
13255 "This package provides a set of R functions to parse markdown and other
13256generic helpers.")
13257 (license license:gpl3))))
13258
13259(define-public r-markdownreports
13260 (let ((commit "3ba1103e3ddc6df3a0c090eb884f5e65c461eb31")
13261 (revision "1"))
13262 (package
13263 (name "r-markdownreports")
13264 (version (git-version "4.5.9" revision commit))
13265 (source (origin
13266 (method git-fetch)
13267 (uri (git-reference
13268 (url "https://github.com/vertesy/MarkdownReports")
13269 (commit commit)))
13270 (file-name (git-file-name name version))
13271 (sha256
13272 (base32
13273 "1xmasdb630b6nvxi5m1i8pyxiy49nxpzyxf9h8spdppx92rhdkc8"))))
13274 (properties `((upstream-name . "MarkdownReports")))
13275 (build-system r-build-system)
13276 (propagated-inputs
13277 (list r-clipr
13278 r-codeandroll2
13279 r-colorramps
13280 r-devtools
13281 r-gplots
13282 r-markdownhelpers
13283 r-rcolorbrewer
13284 r-readwriter
13285 r-sessioninfo
13286 r-sm
13287 r-stringendo
13288 r-venndiagram
13289 r-vioplot))
13290 (home-page "https://github.com/vertesy/MarkdownReports")
13291 (synopsis "Tool for generating cientific figures and reports")
13292 (description
13293 "This is a set of R functions that allows you to generate precise
13294figures. This tool will create clean markdown reports about what you just
13295discovered.")
13296 (license license:gpl3))))
13297
13298(define-public r-metacell
13299 (let ((commit "d6a6926d103ee0cb34a611c753572429c94a53d9")
13300 (revision "1"))
13301 (package
13302 (name "r-metacell")
13303 (version (git-version "0.3.41" revision commit))
13304 (source
13305 (origin
13306 (method git-fetch)
13307 (uri (git-reference
13308 (url "https://github.com/tanaylab/metacell/")
13309 (commit commit)))
13310 (file-name (git-file-name name version))
13311 (sha256
13312 (base32 "0zrsckr3y35x37mj3ibm6scyqx925s84wzrz1i42fnm9n3msc265"))))
13313 (properties `((upstream-name . "metacell")))
13314 (build-system r-build-system)
13315 (propagated-inputs (list r-cluster
13316 r-cowplot
13317 r-data-table
13318 r-dbscan
13319 r-domc
13320 r-dplyr
13321 r-entropy
13322 r-ggplot2
13323 r-graph
13324 r-igraph
13325 r-kernsmooth
13326 r-magrittr
13327 r-matrix
13328 r-matrixstats
13329 r-pdist
13330 r-pheatmap
13331 r-plyr
13332 r-rcolorbrewer
13333 r-rcurl
13334 r-rgraphviz
13335 r-slam
13336 r-singlecellexperiment
13337 r-svglite
13338 r-tgconfig
13339 r-tgstat
13340 r-tgutil
13341 r-tidyr
13342 r-umap
13343 r-umap
13344 r-zoo))
13345 (native-inputs (list r-knitr))
13346 (home-page "https://github.com/tanaylab/metacell/")
13347 (synopsis "Meta cell analysis for single cell RNA-seq data")
13348 (description
13349 "This package facilitates the analysis of single-cell RNA-seq UMI matrices.
13350It does this by computing partitions of a cell similarity graph into
13351small homogeneous groups of cells, which are defined as metacells (MCs).
13352The derived MCs are then used for building different representations of
13353the data, allowing matrix or 2D graph visualization forming a basis for
13354analysis of cell types, subtypes, transcriptional gradients,cell-cycle
13355variation, gene modules and their regulatory models and more.")
13356 (license license:expat))))
13357
13358(define-public r-metadeconfoundr
13359 ;; There are some relevant updates after the release of version 0.3.0.
13360 (let ((commit "90aec0226c5128bfcbbc08903452eff460d21424")
13361 (revision "1"))
13362 (package
13363 (name "r-metadeconfoundr")
13364 (version (git-version "0.3.0" revision commit))
13365 (source
13366 (origin
13367 (method git-fetch)
13368 (uri (git-reference
13369 (url "https://github.com/TillBirkner/metadeconfoundR")
13370 (commit commit)))
13371 (file-name (git-file-name name version))
13372 (sha256
13373 (base32 "0zkqar27p5qwq46xbxsw5x1pl50xbkgqiizw5bydlyhwb0ga2f3h"))))
13374 (properties `((upstream-name . "metadeconfoundR")))
13375 (build-system r-build-system)
13376 (propagated-inputs (list r-bigmemory
13377 r-detectseparation
13378 r-doparallel
13379 r-dosnow
13380 r-foreach
13381 r-futile-logger
13382 r-ggplot2
13383 r-lme4
13384 r-lmtest
13385 r-reshape2
13386 r-snow))
13387 (native-inputs (list r-knitr))
13388 (home-page "https://github.com/TillBirkner/metadeconfoundR")
13389 (synopsis "Check multiple covariates for potential confounding effects")
13390 (description
13391 "This package detects naive associations between omics features and
13392metadata in cross-sectional data-sets using non-parametric tests. In a second
13393step, confounding effects between metadata associated to the same omics
13394feature are detected and labeled using nested post-hoc model comparison tests.
13395The generated output can be graphically summarized using the built-in plotting
13396function.")
13397 (license license:gpl2))))
13398
13399(define-public r-music
13400 (let ((commit "f21fe67f5670d5e9fca0ad7550abaae3423eb59c")
13401 (revision "2"))
13402 (package
13403 (name "r-music")
13404 (version (git-version "1.0.0" revision commit))
13405 (source
13406 (origin
13407 (method git-fetch)
13408 (uri (git-reference
13409 (url "https://github.com/xuranw/MuSiC")
13410 (commit commit)))
13411 (file-name (git-file-name name version))
13412 (sha256
13413 (base32 "05q72sml35sw3rd0lyg7r9r3470q47x5dsjn4bpgzl99s5d76llx"))))
13414 (properties `((upstream-name . "MuSiC")))
13415 (build-system r-build-system)
13416 (propagated-inputs (list r-biobase
13417 r-ggplot2
13418 r-matrix
13419 r-mcmcpack
13420 r-nnls
13421 r-singlecellexperiment
13422 r-toast))
13423 (native-inputs (list r-knitr))
13424 (home-page "https://github.com/xuranw/MuSiC")
13425 (synopsis "Multi-subject single cell deconvolution")
13426 (description
13427 "MuSiC is a deconvolution method that utilizes cross-subject scRNA-seq
13428to estimate cell type proportions in bulk RNA-seq data.")
13429 (license license:gpl3+))))
13430
13431(define-public r-sleuth
13432 (package
13433 (name "r-sleuth")
13434 (version "0.30.1")
13435 (source
13436 (origin
13437 (method git-fetch)
13438 (uri (git-reference
13439 (url "https://github.com/pachterlab/sleuth")
13440 (commit (string-append "v" version))))
13441 (file-name (git-file-name name version))
13442 (sha256
13443 (base32 "09xgc7r6iisjkk0c0wn0q56zy0aph386kphwixfzq4422y7vlqci"))))
13444 (properties `((upstream-name . "sleuth")))
13445 (build-system r-build-system)
13446 ;; FIXME: there are 10 unknown failures.
13447 (arguments (list #:tests? #false))
13448 (propagated-inputs (list r-aggregation
13449 r-data-table
13450 r-dplyr
13451 r-ggplot2
13452 r-lazyeval
13453 r-matrixstats
13454 r-pheatmap
13455 r-reshape2
13456 r-rhdf5
13457 r-shiny
13458 r-tidyr))
13459 (native-inputs (list r-knitr r-testthat))
13460 (home-page "https://github.com/pachterlab/sleuth")
13461 (synopsis "Tools for investigating RNA-Seq")
13462 (description
13463 "Sleuth is a program for differential analysis of RNA-Seq data.
13464It makes use of quantification uncertainty estimates obtained via Kallisto for
13465accurate differential analysis of isoforms or genes, allows testing in the
13466context of experiments with complex designs, and supports interactive
13467exploratory data analysis via sleuth live.")
13468 (license license:gpl3)))
13469
13470(define-public r-snapatac
13471 (package
13472 (name "r-snapatac")
13473 (version "2.0")
13474 (source
13475 (origin
13476 (method git-fetch)
13477 (uri (git-reference
13478 (url "https://github.com/r3fang/SnapATAC")
13479 (commit (string-append "v" version))))
13480 (file-name (git-file-name name version))
13481 (sha256
13482 (base32 "037jzlbl436fi7lkpq7d83i2vd1crnrik3vac2x6xj75dbikb2av"))))
13483 (properties `((upstream-name . "SnapATAC")))
13484 (build-system r-build-system)
13485 (propagated-inputs
13486 (list r-bigmemory
13487 r-doparallel
13488 r-dosnow
13489 r-edger
13490 r-foreach
13491 r-genomicranges
13492 r-igraph
13493 r-iranges
13494 r-irlba
13495 r-matrix
13496 r-plyr
13497 r-plot3d
13498 r-rann
13499 r-raster
13500 r-rcolorbrewer
13501 r-rhdf5
13502 r-rtsne
13503 r-scales
13504 r-viridis))
13505 (home-page "https://github.com/r3fang/SnapATAC")
13506 (synopsis "Single nucleus analysis package for ATAC-Seq")
13507 (description
13508 "This package provides a fast and accurate analysis toolkit for single
13509cell ATAC-seq (Assay for transposase-accessible chromatin using sequencing).
13510Single cell ATAC-seq can resolve the heterogeneity of a complex tissue and
13511reveal cell-type specific regulatory landscapes. However, the exceeding data
13512sparsity has posed unique challenges for the data analysis. This package
13513@code{r-snapatac} is an end-to-end bioinformatics pipeline for analyzing large-
13514scale single cell ATAC-seq data which includes quality control, normalization,
13515clustering analysis, differential analysis, motif inference and exploration of
13516single cell ATAC-seq sequencing data.")
13517 (license license:gpl3)))
13518
13519(define-public r-tsis
13520 (let ((commit "24460298fbe1d26e4da390f6e4f3d4d9d62334dc")
13521 (revision "1"))
13522 (package
13523 (name "r-tsis")
13524 (version (git-version "0.2.0" revision commit))
13525 (source (origin
13526 (method git-fetch)
13527 (uri (git-reference
13528 (url "https://github.com/wyguo/TSIS")
13529 (commit commit)))
13530 (file-name (git-file-name name version))
13531 (sha256
13532 (base32
13533 "17c8i25iwhldvs3c51m0wny40iffm8szzijalpwrxhzbv0xa94rb"))))
13534 (properties `((upstream-name . "TSIS")))
13535 (build-system r-build-system)
13536 (native-inputs (list r-knitr))
13537 (home-page "https://github.com/wyguo/TSIS")
13538 (synopsis "Time-series isoform switch of alternative splicing")
13539 (description
13540 "TSIS is used for detecting transcript isoform switches in time-series
13541data. Transcript isoform switches occur when a pair of alternatively spliced
13542isoforms reverse the order of their relative expression levels. TSIS
13543characterizes the transcript switch by defining the isoform switch time-points
13544for any pair of transcript isoforms within a gene. In addition, this tool
13545describes the switch using five different features or metrics. Also it
13546filters the results with user’s specifications and visualizes the results
13547using different plots for the user to examine further details of the
13548switches.")
13549 (license license:gpl3))))
13550
13551(define-public r-umi4cpackage
13552 (let ((commit "88b07d896a137418ba6c31c2474b9dbe1d86fc20")
13553 (revision "1"))
13554 (package
13555 (name "r-umi4cpackage")
13556 (version (git-version "0.0.1" revision commit))
13557 (source
13558 (origin
13559 (method git-fetch)
13560 (uri (git-reference
13561 (url "https://github.com/tanaylab/umi4cpackage")
13562 (commit commit)))
13563 (file-name (git-file-name name version))
13564 (sha256
13565 (base32 "0bjzamdw2lcfhlbzc0vdva87c3wwnij8jsvnrpx4wyyxvpcz13m5"))))
13566 (properties `((upstream-name . "umi4cPackage")))
13567 (build-system r-build-system)
13568 (arguments
13569 `(#:phases
13570 (modify-phases %standard-phases
13571 (add-after 'unpack 'fix-references
13572 (lambda _
13573 (substitute* "inst/conf/paths.conf"
13574 (("TG3C\\.bowtie2_bin=.*")
13575 (string-append "TG3C.bowtie2_bin="
13576 (which "bowtie2") "\n")))
13577 (substitute* "inst/perl/map3c/TG3C/import3C.pl"
13578 (("\"perl")
13579 (string-append "\"" (which "perl")))))))))
13580 (inputs
13581 (list perl bowtie))
13582 (propagated-inputs
13583 (list r-misha r-zoo))
13584 (native-inputs (list r-knitr))
13585 (home-page "https://github.com/tanaylab/umi4cpackage")
13586 (synopsis "Processing and analysis of UMI-4C contact profiles")
13587 (description "This is a package that lets you process UMI-4C data from
13588scratch to produce nice plots.")
13589 (license license:expat))))
13590
13591(define-public r-shinycell
13592 (let ((commit
13593 "aecbd56e66802f28e397f5ae1f19403aadd12163")
13594 (revision "1"))
13595 (package
13596 (name "r-shinycell")
13597 (version (git-version "2.0.0" revision commit))
13598 (source
13599 (origin
13600 (method git-fetch)
13601 (uri (git-reference
13602 (url "https://github.com/SGDDNB/ShinyCell")
13603 (commit commit)))
13604 (file-name (git-file-name name version))
13605 (sha256
13606 (base32
13607 "13jn2ikmvljnzayk485g1mmq5abcp9m1b8n1djdb1agmn83zaki5"))))
13608 (properties `((upstream-name . "ShinyCell")))
13609 (build-system r-build-system)
13610 (propagated-inputs
13611 (list r-data-table
13612 r-ggplot2
13613 r-glue
13614 r-gridextra
13615 r-hdf5r
13616 r-matrix
13617 r-r-utils
13618 r-rcolorbrewer
13619 r-readr
13620 r-reticulate))
13621 (home-page "https://github.com/SGDDNB/ShinyCell")
13622 (synopsis "Shiny interactive web apps for single-cell data")
13623 (description
13624 "This package provides Shiny apps for interactive exploration of
13625single-cell data.")
13626 (license license:gpl3))))
13627
13628(define-public r-archr
13629 (let ((commit "c61b0645d1482f80dcc24e25fbd915128c1b2500")
13630 (revision "1"))
13631 (package
13632 (name "r-archr")
13633 (version (git-version "1.0.2" revision commit))
13634 (source
13635 (origin
13636 (method git-fetch)
13637 (uri (git-reference
13638 (url "https://github.com/GreenleafLab/ArchR")
13639 (commit commit)))
13640 (file-name (git-file-name name version))
13641 (sha256
13642 (base32 "0sgdfd8iwgj8cssj2zr3gmshg8nv54q6dd8asjf99i39qkni7p9i"))))
13643 (properties `((upstream-name . "ArchR")))
13644 (build-system r-build-system)
13645 (propagated-inputs
13646 (list r-biocgenerics
13647 r-biostrings
13648 r-chromvar
13649 r-complexheatmap
13650 r-data-table
13651 r-genomicranges
13652 r-ggplot2
13653 r-ggrepel
13654 r-gridextra
13655 r-gtable
13656 r-gtools
13657 r-magrittr
13658 r-matrix
13659 r-matrixstats
13660 r-motifmatchr
13661 r-nabor
13662 r-plyr
13663 r-rcpp
13664 r-rhdf5
13665 r-rsamtools
13666 r-s4vectors
13667 r-stringr
13668 r-summarizedexperiment
13669 r-uwot))
13670 (home-page "https://github.com/GreenleafLab/ArchR")
13671 (synopsis "Analyze single-cell regulatory chromatin in R")
13672 (description
13673 "This package is designed to streamline scATAC analyses in R.")
13674 (license license:gpl2+))))
13675
13676(define-public r-azimuth
13677 (let ((commit "243ee5db80fcbffa3452c944254a325a3da2ef9e")
13678 (revision "1"))
13679 (package
13680 (name "r-azimuth")
13681 (version (git-version "0.5.0" revision commit))
13682 (source
13683 (origin
13684 (method git-fetch)
13685 (uri (git-reference
13686 (url "https://github.com/satijalab/azimuth")
13687 (commit commit)))
13688 (file-name (git-file-name name version))
13689 (sha256
13690 (base32 "0vs4813kf2cv2j1z800ihwk62bw4dgmwgkd47rln58581chv39zm"))))
13691 (properties `((upstream-name . "Azimuth")))
13692 (build-system r-build-system)
13693 (propagated-inputs (list r-bsgenome-hsapiens-ucsc-hg38
13694 r-dt
13695 r-ensdb-hsapiens-v86
13696 r-future
13697 r-ggplot2
13698 r-glmgampoi
13699 r-googlesheets4
13700 r-hdf5r
13701 r-htmltools
13702 r-httr
13703 r-jaspar2020
13704 r-jsonlite
13705 r-matrix
13706 r-patchwork
13707 r-plotly
13708 r-presto
13709 r-rcpp
13710 r-rlang
13711 r-scales
13712 r-seurat
13713 r-seuratdata
13714 r-seuratdisk
13715 r-seuratobject
13716 r-shiny
13717 r-shinybs
13718 r-shinydashboard
13719 r-shinyjs
13720 r-signac
13721 r-stringr
13722 r-tfbstools
13723 r-withr))
13724 (home-page "https://github.com/satijalab/azimuth")
13725 (synopsis
13726 "Shiny app showcasing a single-cell data query-reference mapping algorithm")
13727 (description "Azimuth utilizes an annotated reference dataset. It
13728automates the processing, analysis, and interpretation. This applies
13729specifically to new single-cell RNA-seq or ATAC-seq experiments. Azimuth
13730leverages a reference-based mapping pipeline that inputs accounts matrix and
13731performs normalization, visualization, cell annotation, and differential
13732expression.")
13733 (license license:gpl3))))
13734
13735(define-public r-icellnet
13736 ;; This is an arbitrary commit because there is no tag for 2.2.1.
13737 (let ((commit "e10ee4ae5feaf8130764dcb0736957d2a90b828c")
13738 (revision "1"))
13739 (package
13740 (name "r-icellnet")
13741 (version (git-version "2.2.1" revision commit))
13742 (source (origin
13743 (method git-fetch)
13744 (uri (git-reference
13745 (url "https://github.com/soumelis-lab/ICELLNET")
13746 (commit commit)))
13747 (file-name (git-file-name name version))
13748 (sha256
13749 (base32
13750 "0bszxw9zcsd1gxhg9q89jfzi95266wfjn74hp7z8yb99cr3j53k4"))))
13751 (build-system r-build-system)
13752 (arguments
13753 (list
13754 #:phases
13755 '(modify-phases %standard-phases
13756 (add-after 'unpack 'enter-dir
13757 (lambda _ (chdir "icellnet"))))))
13758 (propagated-inputs
13759 (list r-annotationdbi
13760 r-complexheatmap
13761 r-circlize
13762 r-data-table
13763 r-dplyr
13764 r-ggplot2
13765 r-hgu133plus2-db
13766 r-jetset
13767 r-psych
13768 r-reshape2
13769 r-rlist))
13770 (home-page "https://github.com/soumelis-lab/ICELLNET")
13771 (synopsis "Transcriptomic-based framework to dissect cell communication")
13772 (description "This package provides a a transcriptomic-based framework
13773to dissect cell communication in a global manner. It integrates an original
13774expert-curated database of ligand-receptor interactions taking into account
13775multiple subunits expression. Based on transcriptomic profiles (gene
13776expression), this package computes communication scores between cells
13777and provides several visualization modes that can be helpful to dig into
13778cell-cell interaction mechanism and extend biological knowledge.")
13779 (license license:gpl3))))
13780
13781(define-public r-scde
13782 (package
13783 (name "r-scde")
13784 (version "1.99.2")
13785 (source (origin
13786 (method git-fetch)
13787 (uri (git-reference
13788 (url "https://github.com/hms-dbmi/scde")
13789 (commit version)))
13790 (file-name (git-file-name name version))
13791 (sha256
13792 (base32
13793 "10na2gyka24mszdxf92wz9h2c13hdf1ww30c68gfsw53lvvhhhxb"))))
13794 (build-system r-build-system)
13795 (propagated-inputs
13796 (list r-rcpp
13797 r-rcpparmadillo
13798 r-mgcv
13799 r-rook
13800 r-rjson
13801 r-cairo
13802 r-rcolorbrewer
13803 r-edger
13804 r-quantreg
13805 r-nnet
13806 r-rmtstat
13807 r-extremes
13808 r-pcamethods
13809 r-biocparallel
13810 r-flexmix))
13811 (home-page "https://hms-dbmi.github.io/scde/")
13812 (synopsis "R package for analyzing single-cell RNA-seq data")
13813 (description "The SCDE package implements a set of statistical methods for
13814analyzing single-cell RNA-seq data. SCDE fits individual error models for
13815single-cell RNA-seq measurements. These models can then be used for
13816assessment of differential expression between groups of cells, as well as
13817other types of analysis. The SCDE package also contains the pagoda framework
13818which applies pathway and gene set overdispersion analysis to identify aspects
13819of transcriptional heterogeneity among single cells.")
13820 ;; See https://github.com/hms-dbmi/scde/issues/38
13821 (license license:gpl2)))
13822
13823(define-public r-miamiplot
13824 (let ((commit "beede9c5d6431b4d822aa42e064e01baeb5dd4a0")
13825 (revision "1"))
13826 (package
13827 (name "r-miamiplot")
13828 (version (git-version "1.1.0" revision commit))
13829 (source
13830 (origin
13831 (method git-fetch)
13832 (uri (git-reference
13833 (url "https://github.com/juliedwhite/miamiplot")
13834 (commit commit)))
13835 (file-name (git-file-name name version))
13836 (sha256
13837 (base32 "0wxxk1lk9jbf0imf59qp302ffasvs84idinkvzirs3dw9w3589n9"))))
13838 (properties `((upstream-name . "miamiplot")))
13839 (build-system r-build-system)
13840 (propagated-inputs (list r-checkmate
13841 r-dplyr
13842 r-ggplot2
13843 r-ggrepel
13844 r-gridextra
13845 r-magrittr
13846 r-rlang))
13847 (native-inputs (list r-knitr))
13848 (home-page "https://github.com/juliedwhite/miamiplot")
13849 (synopsis "Create a ggplot2 miami plot")
13850 (description
13851 "This package generates a Miami plot with centered chromosome labels.
13852The output is a ggplot2 object. Users can specify which data they want
13853plotted on top vs. bottom, whether to display significance line(s), what
13854colors to give chromosomes, and what points to label.")
13855 (license license:gpl2))))
13856
13857(define-public r-millefy
13858 (package
13859 (name "r-millefy")
13860 (version "0.1.9-beta")
13861 (source
13862 (origin
13863 (method git-fetch)
13864 (uri (git-reference
13865 (url "https://github.com/yuifu/millefy")
13866 (commit (string-append "v" version))))
13867 (file-name (git-file-name name version))
13868 (sha256
13869 (base32
13870 "0z2y0x99f761pxvg6n37cmnyrnj699jhjk43pvk05sa86iykgizl"))))
13871 (properties `((upstream-name . "millefy")))
13872 (build-system r-build-system)
13873 (propagated-inputs
13874 (list r-data-table
13875 r-destiny
13876 r-dplyr
13877 r-genomicranges
13878 r-iranges
13879 r-magrittr
13880 r-rsamtools
13881 r-rtracklayer
13882 r-tidyr))
13883 (native-inputs (list r-testthat))
13884 (home-page "https://github.com/yuifu/millefy")
13885 (synopsis "Make millefy plot with single-cell RNA-seq data")
13886 (description "@code{Millefy} is a tool for visualizing read coverage of
13887@dfn{scRNA-seq}(single-cell RNA sequencing) datasets in genomic contexts. By
13888dynamically and automatically reorder single cells based on locus-specific
13889pseudo time, @code{Millefy} highlights cell-to-cell heterogeneity in read coverage
13890of scRNA-seq data.")
13891 (license license:expat)))
13892
13893(define-public r-misha
13894 (package
13895 (name "r-misha")
13896 (version "5.6.23")
13897 (source
13898 (origin
13899 (method git-fetch)
13900 (uri (git-reference
13901 (url "https://github.com/tanaylab/misha")
13902 (commit (string-append "v" version))))
13903 (file-name (git-file-name name version))
13904 (sha256
13905 (base32
13906 "1k973j04iq02dy4f7qgi3cmp3rcx5yinyx0m7vyag54rqanird8x"))))
13907 (build-system r-build-system)
13908 (propagated-inputs (list r-curl r-digest r-magrittr r-ps r-yaml))
13909 (native-inputs (list r-knitr r-testthat))
13910 (home-page "https://github.com/tanaylab/misha")
13911 (synopsis "Toolkit for analysis of genomic data")
13912 (description "This package is intended to help users to efficiently
13913analyze genomic data resulting from various experiments.")
13914 (license license:gpl2)))
13915
13916(define-public r-scseqcomm
13917 (let ((commit "01076e703999f1a5aa76419d821b50aebe2b777a")
13918 (revision "0"))
13919 (package
13920 (name "r-scseqcomm")
13921 (version (git-version "0" revision commit))
13922 (source
13923 (origin
13924 (method git-fetch)
13925 (uri (git-reference
13926 (url "https://gitlab.com/sysbiobig/scseqcomm")
13927 (commit commit)))
13928 (file-name (git-file-name name version))
13929 (sha256
13930 (base32
13931 "1fw5si47d6agnz5fibmp2b1sv08pbpwv1j71w57xbav9044i032q"))
13932 ;; Delete bundled dependency.
13933 (modules '((guix build utils)))
13934 (snippet
13935 '(delete-file-recursively "other_deps"))))
13936 (build-system r-build-system)
13937 (inputs
13938 (list r-add2ggplot
13939 r-chorddiag
13940 r-doparallel
13941 r-dplyr
13942 r-foreach
13943 r-gridextra
13944 r-ggplot2
13945 r-gtable
13946 r-htmlwidgets
13947 r-igraph
13948 r-matrix
13949 r-org-hs-eg-db
13950 r-psych
13951 r-rcolorbrewer
13952 r-rlang
13953 r-scico
13954 r-tidygraph
13955 r-topgo))
13956 (native-inputs
13957 (list r-knitr))
13958 (home-page "https://gitlab.com/sysbiobig/scseqcomm")
13959 (synopsis "Inter- and intra- cellular signaling from single cell RNA-seq")
13960 (description "This package is tools for analysing intercellular and
13961intracellular signaling from single cell RNA-seq (scRNA-seq) data.")
13962 (license license:gpl3))))
13963
13964(define-public r-shaman
13965 (let ((commit "d6944e8ac7bd1dbd5c6cec646eafc1d19d0ca96f")
13966 (release "2.0")
13967 (revision "2"))
13968 (package
13969 (name "r-shaman")
13970 (version (git-version release revision commit))
13971 (source (origin
13972 (method git-fetch)
13973 (uri (git-reference
13974 (url "https://github.com/tanaylab/shaman")
13975 (commit commit)))
13976 (file-name (git-file-name name version))
13977 (sha256
13978 (base32
13979 "03sx138dzpfiq23j49z0m0s4j79855mrg64hpj9c83408wzphxi6"))
13980 (snippet
13981 ;; This file will be generated.
13982 '(delete-file "inst/doc/shaman-package.R"))))
13983 (build-system r-build-system)
13984 (propagated-inputs
13985 (list r-data-table
13986 r-domc
13987 r-ggplot2
13988 r-gviz
13989 r-misha
13990 r-plyr
13991 r-rann
13992 r-rcpp
13993 r-reshape2
13994 ;; For vignettes
13995 r-rmarkdown
13996 r-knitr))
13997 (home-page "https://github.com/tanaylab/shaman")
13998 (synopsis "Sampling HiC contact matrices for a-parametric normalization")
13999 (description "The Shaman package implements functions for
14000resampling Hi-C matrices in order to generate expected contact
14001distributions given constraints on marginal coverage and
14002contact-distance probability distributions. The package also provides
14003support for visualizing normalized matrices and statistical analysis
14004of contact distributions around selected landmarks.")
14005 ;; Any version of the GPL
14006 (license license:gpl3+))))
14007
14008(define-public r-centipede
14009 (package
14010 (name "r-centipede")
14011 (version "1.2")
14012 (source (origin
14013 (method url-fetch)
14014 (uri (string-append "http://download.r-forge.r-project.org/"
14015 "src/contrib/CENTIPEDE_" version ".tar.gz"))
14016 (sha256
14017 (base32
14018 "1hsx6qgwr0i67fhy9257zj7s0ppncph2hjgbia5nn6nfmj0ax6l9"))))
14019 (build-system r-build-system)
14020 (home-page "https://centipede.uchicago.edu/")
14021 (synopsis "Predict transcription factor binding sites")
14022 (description
14023 "CENTIPEDE applies a hierarchical Bayesian mixture model to infer regions
14024of the genome that are bound by particular transcription factors. It starts
14025by identifying a set of candidate binding sites, and then aims to classify the
14026sites according to whether each site is bound or not bound by a transcription
14027factor. CENTIPEDE is an unsupervised learning algorithm that discriminates
14028between two different types of motif instances using as much relevant
14029information as possible.")
14030 (license (list license:gpl2+ license:gpl3+))))
14031
14032(define-public r-demultiplex
14033 (let ((commit "6e2a1422c8e6f418cfb271997eebc91f9195f299")
14034 (revision "1"))
14035 (package
14036 (name "r-demultiplex")
14037 (version (git-version "1.0.2" revision commit))
14038 (source
14039 (origin
14040 (method git-fetch)
14041 (uri (git-reference
14042 (url "https://github.com/chris-mcginnis-ucsf/MULTI-seq")
14043 (commit commit)))
14044 (file-name (git-file-name name version))
14045 (sha256
14046 (base32
14047 "01kv88wp8vdaq07sjk0d3d1cb553mq1xqg0war81pgmg63bgi38w"))))
14048 (properties `((upstream-name . "deMULTIplex")))
14049 (build-system r-build-system)
14050 (propagated-inputs
14051 (list r-kernsmooth r-reshape2 r-rtsne r-shortread r-stringdist))
14052 (home-page "https://github.com/chris-mcginnis-ucsf/MULTI-seq")
14053 (synopsis "MULTI-seq pre-processing and classification tools")
14054 (description
14055 "deMULTIplex is an R package for analyzing single-cell RNA sequencing
14056data generated with the MULTI-seq sample multiplexing method. The package
14057includes software to
14058
14059@enumerate
14060@item Convert raw MULTI-seq sample barcode library FASTQs into a sample
14061 barcode UMI count matrix, and
14062@item Classify cell barcodes into sample barcode groups.
14063@end enumerate
14064")
14065 (license license:cc0))))
14066
14067(define-public r-demultiplex2
14068 (let ((commit "c1ce09e8b5784b485680cf96b90bbc12eed96907")
14069 (revision "2"))
14070 (package
14071 (name "r-demultiplex2")
14072 (version (git-version "1.0.2" revision commit))
14073 (source
14074 (origin
14075 (method git-fetch)
14076 (uri (git-reference
14077 (url "https://github.com/Gartner-Lab/deMULTIplex2")
14078 (commit commit)))
14079 (file-name (git-file-name name version))
14080 (sha256
14081 (base32 "0fid5yh0hqg477h5xxq6c8yh8zs5jawjskzns05rndxhbzm51lpr"))))
14082 (properties `((upstream-name . "deMULTIplex2")))
14083 (build-system r-build-system)
14084 (propagated-inputs (list r-data-table
14085 r-devtools
14086 r-dplyr
14087 r-ggextra
14088 r-ggplot2
14089 r-gridextra
14090 r-magrittr
14091 r-mass
14092 r-matrix
14093 r-rcolorbrewer
14094 r-shortread
14095 r-stringdist
14096 r-tidyr
14097 r-uwot
14098 r-viridis
14099 r-xvector))
14100 (home-page "https://github.com/Gartner-Lab/deMULTIplex2")
14101 (synopsis "Robust sample demultiplexing for scRNA-seq")
14102 (description
14103 "This package implements a bioinformatics algorithm for demultiplexing
14104multiplexed single cell datasets. It is built on a statistical model of tag
14105read counts derived from the physical mechanism of tag cross-contamination.")
14106 (license license:cc0))))
14107
14108(define-public r-demuxmix
14109 (let ((commit "09a7918ca6e0cd23e6bbaed2b97388bc499e248e")
14110 (revision "1"))
14111 (package
14112 (name "r-demuxmix")
14113 (version (git-version "1.1.1" revision commit))
14114 (source (origin
14115 (method git-fetch)
14116 (uri (git-reference
14117 (url "https://github.com/huklein/demuxmix")
14118 (commit commit)))
14119 (file-name (git-file-name name version))
14120 (sha256
14121 (base32
14122 "03kfnns7m2447jsc3xplyv9qx8hvvdjmii7j837g3bb6smyxss96"))))
14123 (properties `((upstream-name . "demuxmix")))
14124 (build-system r-build-system)
14125 (propagated-inputs (list r-ggplot2 r-gridextra r-mass r-matrix))
14126 (native-inputs (list r-knitr r-testthat))
14127 (home-page "https://github.com/huklein/demuxmix")
14128 (synopsis
14129 "Demultiplexing oligo-barcoded scRNA-seq data using regression mixture models")
14130 (description
14131 "This package is used for demultiplexing single-cell sequencing
14132experiments of pooled cells. These cells are labeled with barcode
14133oligonucleotides. The package implements methods to fit regression mixture
14134models for a probabilistic classification of cells, including multiplet
14135detection. Demultiplexing error rates can be estimated, and methods for
14136quality control are provided.")
14137 (license license:artistic2.0))))
14138
14139(define-public gdc-client
14140 (package
14141 (name "gdc-client")
14142 (version "2.3")
14143 (source
14144 (origin
14145 (method git-fetch)
14146 (uri (git-reference
14147 (url "https://github.com/NCI-GDC/gdc-client.git")
14148 (commit version)))
14149 (file-name (git-file-name name version))
14150 (sha256
14151 (base32 "1yzd8j3p7w9x00qj6mx8kvlv253063pdnf7ixpkqmmwzbjhv072s"))))
14152 (build-system pyproject-build-system)
14153 (arguments
14154 (list
14155 #:phases
14156 #~(modify-phases %standard-phases
14157 (add-after 'unpack 'relax-requirements
14158 (lambda _
14159 (substitute* "setup.cfg"
14160 (("intervaltree~=3.0.2") "intervaltree")
14161 (("termcolor~=1.1.0") "termcolor")))))))
14162 (native-inputs
14163 (list python-flask
14164 python-httmock
14165 python-moto
14166 python-pytest
14167 python-requests-mock
14168 python-setuptools))
14169 (inputs
14170 (list python-importlib-metadata
14171 python-intervaltree
14172 python-jsonschema
14173 python-lxml
14174 python-progressbar2
14175 python-pyyaml
14176 python-requests
14177 python-termcolor))
14178 (home-page "https://gdc.nci.nih.gov/access-data/gdc-data-transfer-tool")
14179 (synopsis "GDC data transfer tool")
14180 (description
14181 "The gdc-client provides several convenience functions over
14182the GDC API which provides general download/upload via HTTPS.")
14183 (license license:asl2.0)))
14184
14185(define-public vsearch
14186 (package
14187 (name "vsearch")
14188 (version "2.9.1")
14189 (source
14190 (origin
14191 (method git-fetch)
14192 (uri (git-reference
14193 (url "https://github.com/torognes/vsearch")
14194 (commit (string-append "v" version))))
14195 (file-name (git-file-name name version))
14196 (sha256
14197 (base32
14198 "0vhrpjfdf75ba04b24xknp41790cvcgwl0vgpy7qbzj5xh2521ss"))
14199 (patches (search-patches "vsearch-unbundle-cityhash.patch"))
14200 (snippet
14201 '(begin
14202 ;; Remove bundled cityhash sources. The vsearch source is adjusted
14203 ;; for this in the patch.
14204 (delete-file "src/city.h")
14205 (delete-file "src/citycrc.h")
14206 (delete-file "src/city.cc")
14207 #t))))
14208 (build-system gnu-build-system)
14209 (inputs
14210 (list zlib bzip2 cityhash))
14211 (native-inputs
14212 (list autoconf automake))
14213 (synopsis "Sequence search tools for metagenomics")
14214 (description
14215 "VSEARCH supports DNA sequence searching, clustering, chimera detection,
14216dereplication, pairwise alignment, shuffling, subsampling, sorting and
14217masking. The tool takes advantage of parallelism in the form of SIMD
14218vectorization as well as multiple threads to perform accurate alignments at
14219high speed. VSEARCH uses an optimal global aligner (full dynamic programming
14220Needleman-Wunsch).")
14221 (home-page "https://github.com/torognes/vsearch")
14222 ;; vsearch uses non-portable SSE intrinsics so building fails on other
14223 ;; platforms.
14224 (supported-systems '("x86_64-linux"))
14225 ;; Dual licensed; also includes public domain source.
14226 (license (list license:gpl3 license:bsd-2))))
14227
14228(define-public pairadise
14229 (package
14230 (name "pairadise")
14231 (version "1.0.0")
14232 (source
14233 (origin
14234 (method git-fetch)
14235 (uri (git-reference
14236 (url "https://github.com/Xinglab/PAIRADISE")
14237 (commit (string-append "v" version))))
14238 (file-name (git-file-name name version))
14239 (sha256
14240 (base32
14241 "0ycwcqabm4zdng0a7j593g35d5yzvvwm7dyi3b8s19zdi4rjzrwd"))))
14242 (build-system pyproject-build-system)
14243 (arguments
14244 (list
14245 #:tests? #f ;no tests
14246 #:phases
14247 '(modify-phases %standard-phases
14248 (add-after 'unpack 'chdir
14249 (lambda _ (chdir "pairadise")))
14250 (add-before 'build '2to3
14251 (lambda _ (invoke "2to3" "--write" "--nobackups" "."))))))
14252 (native-inputs (list python-setuptools))
14253 (inputs (list star))
14254 (propagated-inputs (list python-pysam))
14255 (home-page "https://github.com/Xinglab/PAIRADISE")
14256 (synopsis "Paired replicate analysis of allelic differential splicing events")
14257 (description
14258 "PAIRADISE is a method for detecting @dfn{allele-specific alternative
14259splicing} (ASAS) from RNA-seq data. Unlike conventional approaches that
14260detect ASAS events one sample at a time, PAIRADISE aggregates ASAS signals
14261across multiple individuals in a population. By treating the two alleles of
14262an individual as paired, and multiple individuals sharing a heterozygous SNP
14263as replicates, PAIRADISE formulates ASAS detection as a statistical problem
14264for identifying differential alternative splicing from RNA-seq data with
14265paired replicates.")
14266 (license license:gpl3+)))
14267
14268(define-public r-pairadise
14269 (package
14270 (inherit pairadise)
14271 (name "r-pairadise")
14272 (build-system r-build-system)
14273 (arguments
14274 (list
14275 #:phases
14276 '(modify-phases %standard-phases
14277 (add-after 'unpack 'chdir
14278 (lambda _ (chdir "pairadise/src/pairadise_model"))))))
14279 (inputs '())
14280 (propagated-inputs (list r-doparallel r-foreach r-iterators r-nloptr))
14281 (license license:expat)))
14282
14283(define-public r-pairwiseadonis
14284 ;; There is no tag for version 0.4.1, nor is there a release archive.
14285 (let ((commit "cb190f7668a0c82c0b0853927db239e7b9ec3e83")
14286 (revision "1"))
14287 (package
14288 (name "r-pairwiseadonis")
14289 ;; The versioning scheme of this package is inconsistent, with versions
14290 ;; progressing from 0.21 to 0.3 and then to 0.4.1, which does not follow
14291 ;; a standard numerical order or convention (e.g., semantic versioning).
14292 (version (git-version "0.4.1" revision commit))
14293 (source
14294 (origin
14295 (method git-fetch)
14296 (uri (git-reference
14297 (url "https://github.com/pmartinezarbizu/pairwiseAdonis")
14298 (commit commit)))
14299 (file-name (git-file-name name version))
14300 (sha256
14301 (base32 "11hl6qqmr5vns476921802y0qmb46i1jf0rf7xfkyswlh6xkcl99"))))
14302 (properties `((upstream-name . "pairwiseAdonis")))
14303 (build-system r-build-system)
14304 (arguments
14305 (list
14306 #:phases
14307 ;; Move into the subdirectory containing the R package files
14308 '(modify-phases %standard-phases
14309 (add-after 'unpack 'move-to-subdir
14310 (lambda _ (chdir "pairwiseAdonis"))))))
14311 (propagated-inputs
14312 (list r-cluster
14313 r-permute
14314 r-vegan))
14315 (synopsis "Pairwise multilevel comparison using adonis")
14316 (description
14317 "This package implements two functions:
14318@itemize
14319@item @code{pairwise.adonis} is a wrapper function for multilevel pairwise
14320comparison using adonis2 from package vegan. The function returns adjusted
14321p-values using @code{p.adjust()}. It does not accept interaction between factors
14322neither strata.
14323@item @code{pairwise.adonis2} accepts a model formula like in adonis from vegan.
14324You can use interactions between factors and define strata to constrain
14325permutations. For pairwise comparison a list of unique pairwise combination of
14326factors is produced.
14327@end itemize")
14328 (home-page "https://github.com/pmartinezarbizu/pairwiseAdonis")
14329 (license license:gpl2+))))
14330
14331(define-public pardre
14332 (package
14333 (name "pardre")
14334 (version "2.2.5")
14335 (source
14336 (origin
14337 (method url-fetch)
14338 (uri (string-append "mirror://sourceforge/pardre/ParDRe-rel"
14339 version ".tar.gz"))
14340 (sha256
14341 (base32
14342 "105s4f8zs8hh0sc32r9p725n7idza9cj5jvp5z1m5pljjhgk3if5"))))
14343 (build-system gnu-build-system)
14344 (arguments
14345 `(#:tests? #f ; tests require "prove"
14346 #:phases
14347 (modify-phases %standard-phases
14348 (delete 'configure)
14349 (replace 'install
14350 (lambda* (#:key outputs #:allow-other-keys)
14351 (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
14352 (install-file "ParDRe" bin)))))))
14353 (inputs
14354 (list openmpi-c++ zlib))
14355 (synopsis "Parallel tool to remove duplicate DNA reads")
14356 (description
14357 "ParDRe is a parallel tool to remove duplicate genetic sequence reads.
14358Duplicate reads can be seen as identical or nearly identical sequences with
14359some mismatches. This tool lets users avoid the analysis of unnecessary
14360reads, reducing the time of subsequent procedures with the
14361dataset (e.g. assemblies, mappings, etc.). The tool is implemented with MPI
14362in order to exploit the parallel capabilities of multicore clusters. It is
14363faster than multithreaded counterparts (end of 2015) for the same number of
14364cores and, thanks to the message-passing technology, it can be executed on
14365clusters.")
14366 (home-page "https://sourceforge.net/projects/pardre/")
14367 (license license:gpl3+)))
14368
14369(define-public ngshmmalign
14370 (package
14371 (name "ngshmmalign")
14372 (version "0.1.1")
14373 (source
14374 (origin
14375 (method url-fetch)
14376 (uri (string-append "https://github.com/cbg-ethz/ngshmmalign/"
14377 "releases/download/" version
14378 "/ngshmmalign-" version ".tar.bz2"))
14379 (sha256
14380 (base32
14381 "0jryvlssi2r2ii1dxnx39yk6bh4yqgq010fnxrgfgbaj3ykijlzv"))))
14382 (build-system cmake-build-system)
14383 (arguments '(#:tests? #false)) ; there are none
14384 (inputs
14385 (list boost))
14386 (home-page "https://github.com/cbg-ethz/ngshmmalign/")
14387 (synopsis "Profile HMM aligner for NGS reads")
14388 (description
14389 "ngshmmalign is a profile HMM aligner for NGS reads designed particularly
14390for small genomes (such as those of RNA viruses like HIV-1 and HCV) that
14391experience substantial biological insertions and deletions.")
14392 (license license:gpl2+)))
14393
14394(define-public prinseq
14395 (package
14396 (name "prinseq")
14397 (version "0.20.4")
14398 (source
14399 (origin
14400 (method url-fetch)
14401 (uri (string-append "mirror://sourceforge/prinseq/standalone/"
14402 "prinseq-lite-" version ".tar.gz"))
14403 (sha256
14404 (base32
14405 "0vxmzvmm67whxrqdaaamwgjk7cf0fzfs5s673jgg00kz7g70splv"))))
14406 (build-system gnu-build-system)
14407 (arguments
14408 `(#:tests? #false ; no check target
14409 #:phases
14410 (modify-phases %standard-phases
14411 (delete 'configure)
14412 (delete 'build)
14413 (replace 'install
14414 (lambda* (#:key inputs outputs #:allow-other-keys)
14415 (let* ((out (assoc-ref outputs "out"))
14416 (bin (string-append out "/bin"))
14417 (scripts (find-files "." "prinseq.*.pl"))
14418 (guile (search-input-file inputs "bin/guile")))
14419 (substitute* scripts
14420 (("\"perl -pe")
14421 (string-append "\"" (which "perl") " -pe")))
14422 (for-each (lambda (file)
14423 (chmod file #o555)
14424 (install-file file bin)
14425 (wrap-script (string-append bin "/" (basename file))
14426 #:guile guile
14427 `("PERL5LIB" ":" prefix
14428 (,(getenv "PERL5LIB")))))
14429 scripts)))))))
14430 (inputs
14431 (list guile-3.0 ; for wrapper scripts
14432 perl
14433 perl-cairo
14434 perl-data-dumper
14435 perl-digest-md5
14436 perl-getopt-long
14437 perl-json
14438 perl-statistics-pca))
14439 (home-page "https://prinseq.sourceforge.net/")
14440 (synopsis "Preprocess sequence data in FASTA or FASTQ formats")
14441 (description
14442 "PRINSEQ is a bioinformatics tool to help you preprocess your genomic or
14443metagenomic sequence data in FASTA or FASTQ formats. The tool is written in
14444Perl and can be helpful if you want to filter, reformat, or trim your sequence
14445data. It also generates basic statistics for your sequences.")
14446 (license license:gpl3+)))
14447
14448(define-public shorah
14449 (package
14450 (name "shorah")
14451 (version "1.99.3")
14452 (source
14453 (origin
14454 (method url-fetch)
14455 (uri (string-append "https://github.com/cbg-ethz/shorah"
14456 "/releases/download/v" version
14457 "/shorah-" version ".tar.xz"))
14458 (sha256
14459 (base32
14460 "0zclbvdvbbfv3qpln3f47qa1yn77wf68z2b30vcxrzq3vsla4kgb"))))
14461 (build-system gnu-build-system)
14462 (arguments
14463 `(#:phases
14464 (modify-phases %standard-phases
14465 (add-after 'unpack 'fix-test-wrapper
14466 (lambda* (#:key outputs #:allow-other-keys)
14467 (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
14468 (substitute* "examples/run_end2end_test"
14469 (("\\$\\{interpreter\\} ../\\$\\{testscript\\}")
14470 (string-append bin "/${testscript}"))))))
14471 (delete 'check)
14472 (add-after 'install 'wrap-programs
14473 (lambda* (#:key outputs #:allow-other-keys)
14474 (let* ((out (assoc-ref outputs "out"))
14475 (site (string-append
14476 out "/lib/python"
14477 ,(version-major+minor
14478 (package-version python))
14479 "/site-packages"))
14480 (pythonpath (getenv "GUIX_PYTHONPATH"))
14481 (script (string-append out "/bin/shorah")))
14482 (chmod script #o555)
14483 (wrap-program script `("GUIX_PYTHONPATH" ":" prefix (,site ,pythonpath))))))
14484 (add-after 'wrap-programs 'check
14485 (lambda* (#:key tests? #:allow-other-keys)
14486 (when tests?
14487 (invoke "make" "check")))))))
14488 (inputs
14489 (list bash-minimal
14490 boost
14491 htslib
14492 python
14493 python-biopython
14494 python-numpy
14495 python-setuptools
14496 zlib))
14497 (native-inputs
14498 (list pkg-config))
14499 (home-page "")
14500 (synopsis "Short reads assembly into haplotypes")
14501 (description
14502 "ShoRAH is a project for the analysis of next generation sequencing data.
14503It is designed to analyse genetically heterogeneous samples. Its tools
14504provide error correction, haplotype reconstruction and estimation of the
14505frequency of the different genetic variants present in a mixed sample.")
14506 (license license:gpl3+)))
14507
14508(define-public sickle
14509 (package
14510 (name "sickle")
14511 (version "1.33")
14512 (source
14513 (origin
14514 (method git-fetch)
14515 (uri (git-reference
14516 (url "https://github.com/najoshi/sickle")
14517 (commit (string-append "v" version))))
14518 (file-name (git-file-name name version))
14519 (sha256
14520 (base32 "1bnq480lpylq9sfsa1y71b4qz0ipi2zjnp8ds48fh10ijlwmwmdc"))))
14521 (build-system gnu-build-system)
14522 (arguments
14523 (list
14524 #:tests? #f ;There are no tests
14525 #:phases
14526 #~(modify-phases %standard-phases
14527 (delete 'configure)
14528 (replace 'install
14529 (lambda _
14530 (install-file "sickle" (string-append #$output "/bin")))))))
14531 (propagated-inputs (list zlib))
14532 (home-page "https://github.com/najoshi/sickle")
14533 (synopsis "Adaptive trimming tool for FASTQ files using quality")
14534 (description
14535 "Sickle is a tool that trims reads based on quality and length
14536thresholds. It uses sliding windows to detect low-quality bases at the 3'-end
14537and high-quality bases at the 5'-end. Additionally, it discards reads based
14538on the length threshold.")
14539 (license license:expat)))
14540
14541(define-public ruby-bio-kseq
14542 (package
14543 (name "ruby-bio-kseq")
14544 (version "0.0.2")
14545 (source
14546 (origin
14547 (method url-fetch)
14548 (uri (rubygems-uri "bio-kseq" version))
14549 (sha256
14550 (base32
14551 "1xyaha46khb5jc6wzkbf7040jagac49jbimn0vcrzid0j8jdikrz"))))
14552 (build-system ruby-build-system)
14553 (arguments
14554 `(#:test-target "spec"))
14555 (native-inputs
14556 (list bundler ruby-rspec ruby-rake-compiler))
14557 (inputs
14558 (list zlib))
14559 (synopsis "Ruby bindings for the kseq.h FASTA/Q parser")
14560 (description
14561 "@code{Bio::Kseq} provides ruby bindings to the @code{kseq.h} FASTA and
14562FASTQ parsing code. It provides a fast iterator over sequences and their
14563quality scores.")
14564 (home-page "https://github.com/gusevfe/bio-kseq")
14565 (license license:expat)))
14566
14567(define-public bio-locus
14568 (package
14569 (name "bio-locus")
14570 (version "0.0.7")
14571 (source
14572 (origin
14573 (method url-fetch)
14574 (uri (rubygems-uri "bio-locus" version))
14575 (sha256
14576 (base32
14577 "02vmrxyimkj9sahsp4zhfhnmbvz6dbbqz1y01vglf8cbwvkajfl0"))))
14578 (build-system ruby-build-system)
14579 (native-inputs
14580 (list ruby-rspec))
14581 (synopsis "Tool for fast querying of genome locations")
14582 (description
14583 "Bio-locus is a tabix-like tool for fast querying of genome
14584locations. Many file formats in bioinformatics contain records that
14585start with a chromosome name and a position for a SNP, or a start-end
14586position for indels. Bio-locus allows users to store this chr+pos or
14587chr+pos+alt information in a database.")
14588 (home-page "https://github.com/pjotrp/bio-locus")
14589 (license license:expat)))
14590
14591(define-public bio-blastxmlparser
14592 (package
14593 (name "bio-blastxmlparser")
14594 (version "2.0.4")
14595 (source (origin
14596 (method url-fetch)
14597 (uri (rubygems-uri "bio-blastxmlparser" version))
14598 (sha256
14599 (base32
14600 "1wf4qygcmdjgcqm6flmvsagfr1gs9lf63mj32qv3z1f481zc5692"))))
14601 (build-system ruby-build-system)
14602 (propagated-inputs
14603 (list ruby-bio-logger ruby-nokogiri))
14604 (inputs
14605 (list ruby-rspec))
14606 (synopsis "Fast big data BLAST XML parser and library")
14607 (description
14608 "Very fast parallel big-data BLAST XML file parser which can be used as
14609command line utility. Use blastxmlparser to: Parse BLAST XML; filter output;
14610generate FASTA, JSON, YAML, RDF, JSON-LD, HTML, CSV, tabular output etc.")
14611 (home-page "https://github.com/pjotrp/blastxmlparser")
14612 (license license:expat)))
14613
14614(define-public bioruby
14615 (package
14616 (name "bioruby")
14617 (version "2.0.4")
14618 (source
14619 (origin
14620 (method url-fetch)
14621 (uri (rubygems-uri "bio" version))
14622 (sha256
14623 (base32
14624 "08aknxk2ingwscwfqpw5vnax6jpk1sxfaialravladb63hcl8dx9"))))
14625 (build-system ruby-build-system)
14626 (propagated-inputs
14627 (list ruby-libxml))
14628 (native-inputs
14629 (list which)) ; required for test phase
14630 (arguments
14631 (list
14632 #:phases
14633 #~(modify-phases %standard-phases
14634 (add-before 'build 'patch-test-command
14635 (lambda _
14636 (substitute* '("test/functional/bio/test_command.rb")
14637 (("/bin/sh") (which "sh")))
14638 (substitute* '("test/functional/bio/test_command.rb")
14639 (("/bin/ls") (which "ls")))
14640 (substitute* '("test/functional/bio/test_command.rb")
14641 (("which") (which "which")))
14642 (substitute* '("test/functional/bio/test_command.rb"
14643 "test/data/command/echoarg2.sh")
14644 (("/bin/echo") (which "echo"))))))))
14645 (synopsis "Ruby library, shell and utilities for bioinformatics")
14646 (description "BioRuby comes with a comprehensive set of Ruby development
14647tools and libraries for bioinformatics and molecular biology. BioRuby has
14648components for sequence analysis, pathway analysis, protein modelling and
14649phylogenetic analysis; it supports many widely used data formats and provides
14650easy access to databases, external programs and public web services, including
14651BLAST, KEGG, GenBank, MEDLINE and GO.")
14652 (home-page "http://bioruby.org/")
14653 ;; Code is released under Ruby license, except for setup
14654 ;; (LGPLv2.1+) and scripts in samples (which have GPL2 and GPL2+)
14655 (license (list license:ruby license:lgpl2.1+ license:gpl2+ ))))
14656
14657(define-public centrifuge
14658 (package
14659 (name "centrifuge")
14660 (version "1.0.4")
14661 (source
14662 (origin
14663 (method git-fetch)
14664 (uri (git-reference
14665 (url "https://github.com/DaehwanKimLab/centrifuge.git")
14666 (commit (string-append "v" version))))
14667 (file-name (git-file-name name version))
14668 (sha256
14669 (base32
14670 "167610gbz1rrh6ir3j7jcmhzg3x5msn7x7a3dpv7wmwdndnnqvg0"))))
14671 (build-system gnu-build-system)
14672 (arguments
14673 (list
14674 #:tests? #false ; no check target
14675 #:make-flags
14676 #~(list (string-append "prefix=" #$output))
14677 #:phases
14678 '(modify-phases %standard-phases
14679 (delete 'configure))))
14680 (inputs (list python-wrapper))
14681 (native-inputs
14682 (list pandoc perl ;for documentation
14683 which))
14684 (home-page "https://github.com/DaehwanKimLab/centrifuge/")
14685 (synopsis "Classifier for metagenomic sequences")
14686 (description "Centrifuge is a microbial classification engine that enables
14687rapid, accurate and sensitive labeling of reads and quantification of species
14688on desktop computers. The system uses an indexing scheme based on the
14689@dfn{Burrows-Wheeler transform} (BWT) and the @dfn{Ferragina-Manzini} (FM)
14690index, optimized specifically for the metagenomic classification problem.
14691Centrifuge requires a relatively small index (4.7 GB for all complete
14692bacterial and viral genomes plus the human genome) and classifies sequences at
14693very high speed, allowing it to process the millions of reads from a typical
14694high-throughput DNA sequencing run within a few minutes.")
14695 (license license:gpl3+)))
14696
14697(define-public bio-vcf
14698 (package
14699 (name "bio-vcf")
14700 (version "0.9.5")
14701 (source
14702 (origin
14703 (method url-fetch)
14704 (uri (rubygems-uri "bio-vcf" version))
14705 (sha256
14706 (base32
14707 "1glw5pn9s8z13spxk6yyfqaz80n9lga67f33w35nkpq9dwi2vg6g"))))
14708 (build-system ruby-build-system)
14709 (arguments
14710 (list
14711 #:phases
14712 #~(modify-phases %standard-phases
14713 (add-before 'check 'delete-failing-tests
14714 (lambda _
14715 ;; This feature compares inspected strings, which can
14716 ;; easily cause differences across different Ruby
14717 ;; versions.
14718 (delete-file "features/vcf_header.feature"))))))
14719 (native-inputs
14720 (list ruby-cucumber))
14721 (synopsis "Smart VCF parser DSL")
14722 (description
14723 "Bio-vcf provides a @acronym{DSL, domain specific language} for processing
14724the VCF format. Record named fields can be queried with regular expressions.
14725Bio-vcf is a new generation VCF parser, filter and converter. Bio-vcf is not
14726only very fast for genome-wide (WGS) data, it also comes with a filtering,
14727evaluation and rewrite language and can output any type of textual data,
14728including VCF header and contents in RDF and JSON.")
14729 (home-page "https://github.com/vcflib/bio-vcf")
14730 (license license:expat)))
14731
14732(define-public r-phantompeakqualtools
14733 (let ((commit "8d2b2d18c686d894ef5908b37da7adf72a07ef42")
14734 (revision "1"))
14735 (package
14736 (name "r-phantompeakqualtools")
14737 (version (git-version "1.2.2" revision commit))
14738 (source
14739 (origin
14740 (method git-fetch)
14741 (uri (git-reference
14742 (url "https://github.com/kundajelab/phantompeakqualtools")
14743 (commit commit)))
14744 (file-name (git-file-name name version))
14745 (sha256
14746 (base32
14747 "00anrvcwsp02d98qhj1xpj85644h2pp4kfzq6dgbmwmdr6jvy7p4"))))
14748 (build-system gnu-build-system)
14749 (arguments
14750 (list
14751 #:tests? #f ; There are no tests.
14752 #:phases
14753 #~(modify-phases %standard-phases
14754 (delete 'configure)
14755 (delete 'build)
14756 (replace 'install
14757 (lambda _
14758 (install-file "run_spp.R"
14759 (string-append #$output "/share/scripts")))))))
14760 (inputs
14761 (list r-minimal))
14762 (propagated-inputs
14763 (list r-catools
14764 r-snow
14765 r-snowfall
14766 r-bitops
14767 r-rsamtools
14768 r-spp
14769 gawk
14770 samtools
14771 boost
14772 gzip))
14773 (home-page "https://github.com/kundajelab/phantompeakqualtools")
14774 (synopsis "Informative enrichment for ChIP-seq data")
14775 (description "This package computes informative enrichment and quality
14776measures for ChIP-seq/DNase-seq/FAIRE-seq/MNase-seq data. It can also be
14777used to obtain robust estimates of the predominant fragment length or
14778characteristic tag shift values in these assays.")
14779 (license license:bsd-3))))
14780
14781(define-public rcas-web
14782 (package
14783 (name "rcas-web")
14784 (version "0.2.0")
14785 (source
14786 (origin
14787 (method git-fetch)
14788 (uri (git-reference
14789 (url "https://github.com/BIMSBbioinfo/rcas-web")
14790 (commit (string-append "v" version))))
14791 (file-name (git-file-name name version))
14792 (sha256
14793 (base32
14794 "0n1mh1132dx0y0ln2rhdy02rssyzp2xa2im5ynzjpnxxw0r6fgip"))))
14795 (build-system gnu-build-system)
14796 (arguments
14797 (list
14798 #:phases
14799 #~(modify-phases %standard-phases
14800 (add-after 'install 'wrap-executable
14801 (lambda* (#:key inputs outputs #:allow-other-keys)
14802 (let* ((json #$(this-package-input "guile-json"))
14803 (redis #$(this-package-input "guile-redis"))
14804 (path (string-append
14805 json "/share/guile/site/3.0:"
14806 redis "/share/guile/site/3.0")))
14807 (wrap-program (string-append #$output "/bin/rcas-web")
14808 `("GUILE_LOAD_PATH" ":" = (,path))
14809 `("GUILE_LOAD_COMPILED_PATH" ":" = (,path))
14810 `("R_LIBS_SITE" ":" = (,(getenv "R_LIBS_SITE"))))))))))
14811 (inputs
14812 (list bash-minimal
14813 r-minimal
14814 r-rcas
14815 r-biocmanager
14816 guile-3.0
14817 guile-json-4
14818 guile-redis))
14819 (native-inputs
14820 (list autoconf
14821 automake
14822 pkg-config))
14823 (home-page "https://github.com/BIMSBbioinfo/rcas-web")
14824 (synopsis "Web interface for RNA-centric annotation system (RCAS)")
14825 (description "This package provides a simple web interface for the
14826@dfn{RNA-centric annotation system} (RCAS).")
14827 (license license:agpl3+)))
14828
14829(define-public r-chipkernels
14830 (let ((commit "c9cfcacb626b1221094fb3490ea7bac0fd625372")
14831 (revision "1"))
14832 (package
14833 (name "r-chipkernels")
14834 (version (git-version "1.1" revision commit))
14835 (source
14836 (origin
14837 (method git-fetch)
14838 (uri (git-reference
14839 (url "https://github.com/ManuSetty/ChIPKernels")
14840 (commit commit)))
14841 (file-name (git-file-name name version))
14842 (sha256
14843 (base32
14844 "14bj5qhjm1hsm9ay561nfbqi9wxsa7y487df2idsaaf6z10nw4v0"))))
14845 (build-system r-build-system)
14846 (arguments
14847 (list
14848 #:phases
14849 #~(modify-phases %standard-phases
14850 (add-before 'install 'fix-r-4.5.0
14851 ;; Changes in R 4.5.0: C-Level Facilities.
14852 ;; Strict R headers are now the default. This removes the legacy
14853 ;; definitions of PI, Calloc, Realloc and Free: use M_PI,
14854 ;; R_Calloc, R_Realloc or R_Free instead.
14855 ;; https://cran.r-project.org/doc/manuals/r-release/NEWS.html
14856 (lambda _
14857 (substitute* "src/hamming_distance.c"
14858 (("Calloc") "R_Calloc")
14859 (("Free") "R_Free")
14860 (("Realloc") "R_Realloc")))))))
14861 (propagated-inputs
14862 (list r-iranges
14863 r-xvector
14864 r-biostrings
14865 r-bsgenome
14866 r-gtools
14867 r-genomicranges
14868 r-sfsmisc
14869 r-kernlab
14870 r-s4vectors
14871 r-biocgenerics))
14872 (home-page "https://github.com/ManuSetty/ChIPKernels")
14873 (synopsis "Build string kernels for DNA Sequence analysis")
14874 (description "ChIPKernels is an R package for building different string
14875kernels used for DNA Sequence analysis. A dictionary of the desired kernel
14876must be built and this dictionary can be used for determining kernels for DNA
14877Sequences.")
14878 (license license:gpl2+))))
14879
14880(define-public r-seqgl
14881 (package
14882 (name "r-seqgl")
14883 (version "1.1.4")
14884 (source
14885 (origin
14886 (method git-fetch)
14887 (uri (git-reference
14888 (url "https://github.com/ManuSetty/SeqGL")
14889 (commit version)))
14890 (file-name (git-file-name name version))
14891 (sha256
14892 (base32
14893 "1r6ywvhxl3ffv48lgj7sbd582mcc6dha3ksgc2qjlvjrnkbj3799"))))
14894 (build-system r-build-system)
14895 (propagated-inputs
14896 (list r-biostrings
14897 r-chipkernels
14898 r-genomicranges
14899 r-spams
14900 r-wgcna
14901 r-fastcluster))
14902 (home-page "https://github.com/ManuSetty/SeqGL")
14903 (synopsis "Group lasso for Dnase/ChIP-seq data")
14904 (description "SeqGL is a group lasso based algorithm to extract
14905transcription factor sequence signals from ChIP, DNase and ATAC-seq profiles.
14906This package presents a method which uses group lasso to discriminate between
14907bound and non bound genomic regions to accurately identify transcription
14908factors bound at the specific regions.")
14909 (license license:gpl2+)))
14910
14911(define-public r-seraster
14912 ;; There are no tags or releases.
14913 (let ((commit "4fdc1ffe5d3feb65de9880329d221cf276b393a1")
14914 (revision "1"))
14915 (package
14916 (name "r-seraster")
14917 (version (git-version "0.99.0" revision commit))
14918 (source
14919 (origin
14920 (method git-fetch)
14921 (uri (git-reference
14922 (url "https://github.com/JEFworks-Lab/SEraster")
14923 (commit commit)))
14924 (file-name (git-file-name name version))
14925 (sha256
14926 (base32 "0y33lk8q0h9nfzmf7slxxvw3l0djassp4l63nsjpm3p6z4pah5s4"))))
14927 (properties `((upstream-name . "SEraster")))
14928 (build-system r-build-system)
14929 (propagated-inputs (list r-biocparallel
14930 r-ggplot2
14931 r-matrix
14932 r-rearrr
14933 r-sf
14934 r-spatialexperiment
14935 r-summarizedexperiment))
14936 (native-inputs (list r-testthat))
14937 (home-page "https://github.com/JEFworks-Lab/SEraster")
14938 (synopsis
14939 "Rasterization framework for scalable spatial omics data analysis")
14940 (description
14941 "This package is a rasterization preprocessing framework that aggregates
14942cellular information into spatial pixels to reduce resource requirements for
14943spatial omics data analysis. SEraster reduces the number of points in spatial
14944omics datasets for downstream analysis through a process of rasterization where
14945single cells gene expression or cell-type labels are aggregated into equally
14946sized pixels based on a user-defined resolution. SEraster can be incorporated
14947with other packages to conduct downstream analyses for spatial omics datasets,
14948such as detecting spatially variable genes.")
14949 (license license:gpl3))))
14950
14951(define-public emboss
14952 (package
14953 (name "emboss")
14954 (version "6.5.7")
14955 (source (origin
14956 (method url-fetch)
14957 (uri (string-append "ftp://emboss.open-bio.org/pub/EMBOSS/old/"
14958 (version-major+minor version) ".0/"
14959 "EMBOSS-" version ".tar.gz"))
14960 (sha256
14961 (base32
14962 "0vsmz96gc411yj2iyzdrsmg4l2n1nhgmp7vrgzlxx3xixv9xbf0q"))))
14963 (build-system gnu-build-system)
14964 (arguments
14965 `(#:configure-flags
14966 ,#~(list (string-append "--with-hpdf="
14967 #$(this-package-input "libharu")))
14968 #:phases
14969 (modify-phases %standard-phases
14970 (add-after 'unpack 'fix-checks
14971 (lambda _
14972 ;; The PNGDRIVER tests check for the presence of libgd, libpng
14973 ;; and zlib, but assume that they are all found at the same
14974 ;; prefix.
14975 (substitute* "configure.in"
14976 (("CHECK_PNGDRIVER")
14977 "LIBS=\"$LIBS -lgd -lpng -lz -lm\"
14978AC_DEFINE([PLD_png], [1], [Define to 1 if PNG support is available])
14979AM_CONDITIONAL(AMPNG, true)"))
14980 #t))
14981 (add-after 'fix-checks 'disable-update-check
14982 (lambda _
14983 ;; At build time there is no connection to the Internet, so
14984 ;; looking for updates will not work.
14985 (substitute* "Makefile.am"
14986 (("\\$\\(bindir\\)/embossupdate") ""))
14987 #t))
14988 (add-after 'disable-update-check 'autogen
14989 (lambda _ (invoke "autoreconf" "-vif") #t)))))
14990 (inputs
14991 (list perl
14992 libpng
14993 gd
14994 libx11
14995 libharu
14996 zlib))
14997 (native-inputs
14998 (list autoconf automake libtool pkg-config))
14999 (home-page "https://emboss.sourceforge.net")
15000 (synopsis "Molecular biology analysis suite")
15001 (description "EMBOSS is the \"European Molecular Biology Open Software
15002Suite\". EMBOSS is an analysis package specially developed for the needs of
15003the molecular biology (e.g. EMBnet) user community. The software
15004automatically copes with data in a variety of formats and even allows
15005transparent retrieval of sequence data from the web. It also provides a
15006number of libraries for the development of software in the field of molecular
15007biology. EMBOSS also integrates a range of currently available packages and
15008tools for sequence analysis into a seamless whole.")
15009 (license license:gpl2+)))
15010
15011(define-public bits
15012 (let ((revision "1")
15013 (commit "3cc4567896d9d6442923da944beb704750a08d2d"))
15014 (package
15015 (name "bits")
15016 ;; The version is 2.13.0 even though no release archives have been
15017 ;; published as yet.
15018 (version (git-version "2.13.0" revision commit))
15019 (source (origin
15020 (method git-fetch)
15021 (uri (git-reference
15022 (url "https://github.com/arq5x/bits")
15023 (commit commit)))
15024 (file-name (git-file-name name version))
15025 (sha256
15026 (base32
15027 "17n2kffk4kmhivd8c98g2vr6y1s23vbg4sxlxs689wni66797hbs"))))
15028 (build-system gnu-build-system)
15029 (arguments
15030 `(#:tests? #f ;no tests included
15031 #:phases
15032 (modify-phases %standard-phases
15033 (delete 'configure)
15034 (add-after 'unpack 'remove-cuda
15035 (lambda _
15036 (substitute* "Makefile"
15037 ((".*_cuda") "")
15038 (("(bits_test_intersections) \\\\" _ match) match))
15039 #t))
15040 (replace 'install
15041 (lambda* (#:key outputs #:allow-other-keys)
15042 (copy-recursively
15043 "bin" (string-append (assoc-ref outputs "out") "/bin"))
15044 #t)))))
15045 (inputs
15046 (list gsl zlib))
15047 (home-page "https://github.com/arq5x/bits")
15048 (synopsis "Implementation of binary interval search algorithm")
15049 (description "This package provides an implementation of the
15050BITS (Binary Interval Search) algorithm, an approach to interval set
15051intersection. It is especially suited for the comparison of diverse genomic
15052datasets and the exploration of large datasets of genome
15053intervals (e.g. genes, sequence alignments).")
15054 (license license:gpl2))))
15055
15056(define-public piranha
15057 ;; There is no release tarball for the latest version. The latest commit is
15058 ;; older than one year at the time of this writing.
15059 (let ((revision "1")
15060 (commit "0466d364b71117d01e4471b74c514436cc281233"))
15061 (package
15062 (name "piranha")
15063 (version (git-version "1.2.1" revision commit))
15064 (source
15065 (origin
15066 (method git-fetch)
15067 (uri (git-reference
15068 (url "https://github.com/smithlabcode/piranha")
15069 (commit commit)))
15070 (file-name (git-file-name name version))
15071 (sha256
15072 (base32 "117dc0zf20c61jam69sk4abl57ah6yi6i7qra7d7y5zrbgk12q5n"))))
15073 (build-system gnu-build-system)
15074 (arguments
15075 (list
15076 #:test-target "test"
15077 #:configure-flags
15078 #~(list (string-append "--with-bam_tools_headers="
15079 #$(this-package-input "bamtools")
15080 "/include/bamtools")
15081 (string-append "--with-bam_tools_library="
15082 #$(this-package-input "bamtools")
15083 "/lib/bamtools"))
15084 #:phases
15085 #~(modify-phases %standard-phases
15086 (add-after 'unpack 'copy-smithlab-cpp
15087 (lambda* (#:key inputs #:allow-other-keys)
15088 (mkdir-p "./src/smithlab_cpp/")
15089 (copy-recursively (assoc-ref inputs "smithlab_cpp-checkout")
15090 "./src/smithlab_cpp/")))
15091 (add-after 'install 'install-to-store
15092 (lambda _
15093 (let ((bin (string-append #$output "/bin")))
15094 (for-each (lambda (file)
15095 (install-file file bin))
15096 (find-files "bin" ".*"))))))))
15097 (inputs
15098 (list bamtools
15099 samtools-0.1
15100 gsl
15101 (let ((commit "3723e2db438c51501d0423429ff396c3035ba46a"))
15102 (origin
15103 (method git-fetch)
15104 (uri (git-reference
15105 (url "https://github.com/smithlabcode/smithlab_cpp")
15106 (commit commit)))
15107 (file-name "smithlab_cpp-checkout")
15108 (sha256
15109 (base32
15110 "0l4gvbwslw5ngziskja41c00x1r06l3yidv7y0xw9djibhykzy0g"))))))
15111 (native-inputs (list python-2))
15112 (home-page "https://github.com/smithlabcode/piranha")
15113 (synopsis "Peak-caller for CLIP-seq and RIP-seq data")
15114 (description
15115 "Piranha is a peak-caller for genomic data produced by CLIP-seq and
15116RIP-seq experiments. It takes input in BED or BAM format and identifies
15117regions of statistically significant read enrichment. Additional covariates
15118may optionally be provided to further inform the peak-calling process.")
15119 (license license:gpl3+))))
15120
15121(define-public filevercmp
15122 (let ((commit "1a9b779b93d0b244040274794d402106907b71b7")
15123 (revision "1"))
15124 (package
15125 (name "filevercmp")
15126 (version (git-version "0" revision commit))
15127 (source (origin
15128 (method git-fetch)
15129 (uri (git-reference
15130 (url "https://github.com/ekg/filevercmp")
15131 (commit commit)))
15132 (file-name (git-file-name name commit))
15133 (sha256
15134 (base32
15135 "1j9vxsy0y050v59h0q1d6501fcw1kjvj0d18l1xk2zyg0jzj247c"))))
15136 (build-system gnu-build-system)
15137 (arguments
15138 `(#:tests? #f ; There are no tests to run.
15139 #:phases
15140 (modify-phases %standard-phases
15141 (delete 'configure) ; There is no configure phase.
15142 (replace 'install
15143 (lambda* (#:key outputs #:allow-other-keys)
15144 (let ((out (assoc-ref outputs "out")))
15145 (install-file "filevercmp" (string-append out "/bin"))
15146 (install-file "filevercmp.h" (string-append out "/include"))
15147 #t))))))
15148 (home-page "https://github.com/ekg/filevercmp")
15149 (synopsis "This program compares version strings")
15150 (description "This program compares version strings. It intends to be a
15151replacement for strverscmp.")
15152 (license license:gpl3+))))
15153
15154(define-public multiqc
15155 (package
15156 (name "multiqc")
15157 (version "1.14")
15158 (source
15159 (origin
15160 (method url-fetch)
15161 (uri (pypi-uri "multiqc" version))
15162 (sha256
15163 (base32
15164 "0qlk2h0765hxp1w9hqf925rh8hq642lzgs6ppg91wln9y02s9fyw"))))
15165 (build-system pyproject-build-system)
15166 (arguments
15167 `(#:phases
15168 (modify-phases %standard-phases
15169 (replace 'check
15170 (lambda* (#:key inputs tests? #:allow-other-keys)
15171 (when tests?
15172 (setenv "HOME" "/tmp")
15173 (let ((here (getcwd)))
15174 (copy-recursively (assoc-ref inputs "tests") "/tmp/tests")
15175 (with-directory-excursion "/tmp/tests"
15176 (invoke "multiqc" "data" "--ignore" "data/modules")))))))))
15177 (inputs
15178 (list python-click
15179 python-coloredlogs
15180 python-future
15181 python-jinja2
15182 python-lzstring
15183 python-markdown
15184 python-matplotlib
15185 python-networkx
15186 python-numpy
15187 python-pyyaml
15188 python-requests
15189 python-rich
15190 python-rich-click
15191 python-setuptools ; For pkg_resources.
15192 python-simplejson
15193 python-spectra))
15194 (native-inputs
15195 `(("python-pytest" ,python-pytest)
15196 ("python-wheel" ,python-wheel)
15197 ("tests"
15198 ,(let ((commit "c3e7400affe3f3ca996973805797af61b93070ba"))
15199 (origin
15200 (method git-fetch)
15201 (uri (git-reference
15202 (url "https://github.com/ewels/MultiQC_TestData")
15203 (commit commit)))
15204 (file-name (git-file-name "multiqc-test-data" commit))
15205 (sha256
15206 (base32
15207 "0wwqbkbfnqj5ax6l0da4csbmv1sw7ya7mwvdwryckaiqmkxy80va")))))))
15208 (home-page "https://multiqc.info")
15209 (synopsis "Aggregate bioinformatics analysis reports")
15210 (description
15211 "MultiQC is a tool to aggregate bioinformatics results across many
15212samples into a single report. It contains modules for a large number of
15213common bioinformatics tools.")
15214 (license license:gpl3+)))
15215
15216(define-public r-chromvarmotifs
15217 (let ((commit "38bed559c1f4770b6c91c80bf3f8ea965da26076")
15218 (revision "1"))
15219 (package
15220 (name "r-chromvarmotifs")
15221 (version (git-version "0.2.0" revision commit))
15222 (source
15223 (origin
15224 (method git-fetch)
15225 (uri (git-reference
15226 (url "https://github.com/GreenleafLab/chromVARmotifs")
15227 (commit commit)))
15228 (file-name (git-file-name name version))
15229 (sha256
15230 (base32 "0i9v1m1hrg1lkd2pnkj5nnrpks6vhhhpbdhsfl2lmjak4npxxr5q"))))
15231 (properties `((upstream-name . "chromVARmotifs")))
15232 (build-system r-build-system)
15233 (propagated-inputs
15234 `(("r-tfbstools" ,r-tfbstools)))
15235 (home-page "https://github.com/GreenleafLab/chromVARmotifs")
15236 (synopsis "Stores motif collections for use with motifmatchr or chromVAR")
15237 (description
15238 "This package stores motif collections as lists of @dfn{position
15239frequency matrix} (PWMatrixList) objects provided by the @code{TFBSTools}
15240package for use in R with packages like @code{motifmatchr} or
15241@code{chromVAR}.")
15242 (license license:expat))))
15243
15244(define-public r-raremetals2
15245 (package
15246 (name "r-raremetals2")
15247 (version "0.1")
15248 (source
15249 (origin
15250 (method url-fetch)
15251 (uri (string-append "http://genome.sph.umich.edu/w/images/"
15252 "b/b7/RareMETALS2_" version ".tar.gz"))
15253 (sha256
15254 (base32
15255 "0z5ljcgvnm06ja9lm85a3cniq7slxcy37aqqkxrdidr79an5fs4s"))))
15256 (properties `((upstream-name . "RareMETALS2")))
15257 (build-system r-build-system)
15258 (propagated-inputs
15259 (list r-seqminer r-mvtnorm r-mass r-compquadform r-getopt))
15260 (home-page "http://genome.sph.umich.edu/wiki/RareMETALS2")
15261 (synopsis "Analyze gene-level association tests for binary trait")
15262 (description
15263 "The R package rareMETALS2 is an extension of the R package rareMETALS.
15264It was designed to meta-analyze gene-level association tests for binary trait.
15265While rareMETALS offers a near-complete solution for meta-analysis of
15266gene-level tests for quantitative trait, it does not offer the optimal
15267solution for binary trait. The package rareMETALS2 offers improved features
15268for analyzing gene-level association tests in meta-analyses for binary
15269trait.")
15270 (license license:gpl3)))
15271
15272(define-public r-rnacrosslinkoo
15273 (let ((commit "a317e0fa6ddf34c309529d57390769e2b2b5bfb7")
15274 (revision "1"))
15275 (package
15276 (name "r-rnacrosslinkoo")
15277 (version (git-version "0.1.3" revision commit))
15278 (source
15279 (origin
15280 (method git-fetch)
15281 (uri (git-reference
15282 (url "https://github.com/cran/rnaCrosslinkOO")
15283 (commit commit)))
15284 (file-name (git-file-name name version))
15285 (sha256
15286 (base32 "0csv9924z0ish960k034qzv3gxh1yabnxni8hsrn5j6xl1r3cdpl"))))
15287 (properties `((upstream-name . "rnaCrosslinkOO")))
15288 (build-system r-build-system)
15289 (propagated-inputs (list r-classdiscovery
15290 r-doparallel
15291 r-foreach
15292 r-genomicranges
15293 r-ggplot2
15294 r-ggrepel
15295 r-heatmap3
15296 r-igraph
15297 r-iranges
15298 r-mass
15299 r-mixtools
15300 r-patchwork
15301 r-r4rna
15302 r-rcolorbrewer
15303 r-reshape2
15304 r-rrna
15305 r-s4vectors
15306 r-seqinr
15307 r-tidyverse
15308 r-topdom))
15309 (native-inputs (list r-knitr r-testthat))
15310 (home-page "https://github.com/cran/rnaCrosslinkOO")
15311 (synopsis "Analysis of RNA crosslinking data")
15312 (description
15313 "The package is ideal for analyzing RNA structure and chemical probing data.")
15314 (license license:gpl3))))
15315
15316(define-public r-rnaseqdtu
15317 (let ((commit "5bee1e769d2e1dc6a3f1cecb78078050eeb5b9ac")
15318 (revision "1"))
15319 (package
15320 (name "r-rnaseqdtu")
15321 (version (git-version "2.0" revision commit))
15322 (source
15323 (origin
15324 (method git-fetch)
15325 (uri (git-reference
15326 (url "https://github.com/mikelove/rnaseqDTU/")
15327 (commit commit)))
15328 (file-name (git-file-name name version))
15329 (sha256
15330 (base32 "0jfi1ydsk8m5nadwnih48v87nnxdc7s3f0pny4axmnj40dd42as0"))))
15331 (properties `((upstream-name . "rnaseqDTU")))
15332 (build-system r-build-system)
15333 (propagated-inputs
15334 (list r-deseq2
15335 r-devtools
15336 r-dexseq
15337 r-drimseq
15338 r-edger
15339 r-rafalib
15340 r-stager))
15341 (native-inputs (list r-knitr))
15342 (home-page "https://github.com/mikelove/rnaseqDTU/")
15343 (synopsis "RNA-seq workflow for differential transcript usage")
15344 (description
15345 "This package provides an RNA-seq workflow for differential transcript
15346usage (DTU) following Salmon quantification. This workflow performs a DTU
15347analysis on simulated data. It also shows how to use stageR to perform
15348two-stage testing of DTU, a statistical framework to screen at the gene level
15349and then confirm which transcripts within the significant genes show evidence
15350of DTU.")
15351 (license license:artistic2.0))))
15352
15353(define-public r-dropbead
15354 (let ((commit "d746c6f3b32110428ea56d6a0001ce52a251c247")
15355 (revision "2"))
15356 (package
15357 (name "r-dropbead")
15358 (version (string-append "0-" revision "." (string-take commit 7)))
15359 (source
15360 (origin
15361 (method git-fetch)
15362 (uri (git-reference
15363 (url "https://github.com/rajewsky-lab/dropbead")
15364 (commit commit)))
15365 (file-name (git-file-name name version))
15366 (sha256
15367 (base32
15368 "0sbzma49aiiyw8b0jpr7fnhzys9nsqmp4hy4hdz1gzyg1lhnca26"))))
15369 (build-system r-build-system)
15370 ;; Tests make invalid assumption about test files and their locations.
15371 (arguments (list #:tests? #false))
15372 (propagated-inputs
15373 (list r-ggplot2 r-rcolorbrewer r-gridextra r-gplots r-plyr))
15374 (native-inputs (list r-data-table))
15375 (home-page "https://github.com/rajewsky-lab/dropbead")
15376 (synopsis "Basic exploration and analysis of Drop-seq data")
15377 (description "This package offers a quick and straight-forward way to
15378explore and perform basic analysis of single cell sequencing data coming from
15379droplet sequencing. It has been particularly tailored for Drop-seq.")
15380 (license license:gpl3))))
15381
15382(define-public r-cellchat
15383 (let ((commit
15384 "21edd226ca408e4c413408f98562d71ee0b54e5d")
15385 (revision "1"))
15386 (package
15387 (name "r-cellchat")
15388 (version (git-version "1.0.0" revision commit))
15389 (source
15390 (origin
15391 (method git-fetch)
15392 (uri (git-reference
15393 (url "https://github.com/sqjin/CellChat")
15394 (commit commit)))
15395 (file-name (git-file-name name version))
15396 (sha256
15397 (base32
15398 "0cvzl9mi8jjznpql2gv67swnk1dndn3a2h22z5l84h7lwpwjmh53"))
15399 (snippet
15400 '(for-each delete-file '("src/CellChat.so"
15401 "src/CellChat_Rcpp.o"
15402 "src/RcppExports.o")))))
15403 (properties `((upstream-name . "CellChat")))
15404 (build-system r-build-system)
15405 (propagated-inputs
15406 (list r-biocgenerics
15407 r-circlize
15408 r-colorspace
15409 r-complexheatmap
15410 r-cowplot
15411 r-dplyr
15412 r-expm
15413 r-fnn
15414 r-forcats
15415 r-future
15416 r-future-apply
15417 r-gg-gap
15418 r-ggalluvial
15419 r-ggplot2
15420 r-ggrepel
15421 r-igraph
15422 r-irlba
15423 r-magrittr
15424 r-matrix
15425 r-nmf
15426 r-patchwork
15427 r-pbapply
15428 r-rcolorbrewer
15429 r-rcpp
15430 r-rcppeigen
15431 r-reshape2
15432 r-reticulate
15433 r-rspectra
15434 r-rtsne
15435 r-scales
15436 r-shape
15437 r-sna
15438 r-stringr
15439 r-svglite))
15440 (native-inputs (list r-knitr))
15441 (home-page "https://github.com/sqjin/CellChat")
15442 (synopsis "Analysis of cell-cell communication from single-cell transcriptomics data")
15443 (description
15444 "This package infers, visualizes and analyzes the cell-cell
15445communication networks from scRNA-seq data.")
15446 (license license:gpl3))))
15447
15448(define-public r-cellchat-2
15449 (let ((commit "b05405af0f4f2cac99f2211e888d42de4c5a9d59")
15450 (revision "1"))
15451 (package
15452 (name "r-cellchat")
15453 (version (git-version "2.1.2" revision commit))
15454 (source
15455 (origin
15456 (method git-fetch)
15457 (uri (git-reference
15458 (url "https://github.com/jinworks/CellChat")
15459 (commit commit)))
15460 (file-name (git-file-name name version))
15461 (sha256
15462 (base32 "14s7bl70xi21ivqr1c3qx6kjf1ndlyxag880xldqkfsqpksvyvkc"))
15463 (snippet '(for-each delete-file
15464 '("src/CellChat.so" "src/CellChat_Rcpp.o"
15465 "src/RcppExports.o")))))
15466 (properties `((upstream-name . "CellChat")))
15467 (build-system r-build-system)
15468 (propagated-inputs (list r-biocgenerics
15469 r-biocneighbors
15470 r-bslib
15471 r-circlize
15472 r-colorspace
15473 r-complexheatmap
15474 r-cowplot
15475 r-dplyr
15476 r-fnn
15477 r-future
15478 r-future-apply
15479 r-ggalluvial
15480 r-ggnetwork
15481 r-ggplot2
15482 r-ggpubr
15483 r-ggrepel
15484 r-igraph
15485 r-irlba
15486 r-magrittr
15487 r-matrix
15488 r-nmf
15489 r-patchwork
15490 r-pbapply
15491 r-plotly
15492 r-plyr
15493 r-rcolorbrewer
15494 r-rcpp
15495 r-rcppeigen
15496 r-reshape2
15497 r-reticulate
15498 r-rspectra
15499 r-scales
15500 r-shape
15501 r-shiny
15502 r-sna
15503 r-stringr
15504 r-svglite))
15505 (native-inputs (list r-knitr))
15506 (home-page "https://github.com/jinworks/CellChat")
15507 (synopsis
15508 "Inference of cell-cell communication from single-cell and transcriptomics")
15509 (description
15510 "This R tool infers, visualizes, and analyzes cell-cell communication networks.
15511It supports scRNA-seq and spatially resolved transcriptomics data.")
15512 (license license:gpl3))))
15513
15514(define-public r-copykat
15515 (let ((commit ;no tag
15516 "256de33dfc1b80a1a0ac9e098c5557f95a4e0d53")
15517 (revision "0"))
15518 (package
15519 (name "r-copykat")
15520 (version (git-version "1.0.8" revision commit))
15521 (source
15522 (origin
15523 (method git-fetch)
15524 (uri (git-reference
15525 (url "https://github.com/navinlabcode/copykat")
15526 (commit commit)))
15527 (file-name (git-file-name name version))
15528 (sha256
15529 (base32
15530 "0ckyqnial3imcqlgd6xfgwk5w977l1i87sx4kdbwdvg40w0vh1j8"))))
15531 (properties `((upstream-name . "copykat")))
15532 (build-system r-build-system)
15533 (propagated-inputs
15534 (list r-cluster
15535 r-dlm
15536 r-gplots
15537 r-mcmcpack
15538 r-mixtools
15539 r-paralleldist
15540 r-rcolorbrewer))
15541 (native-inputs (list r-knitr))
15542 (home-page "https://github.com/navinlabcode/copykat")
15543 (synopsis "Inference of genomic copy number from single cell RNAseq data")
15544 (description
15545 "This package Copynumber KAryotyping of Tumors infers genomic copy
15546number and subclonal structure of human tumors using integrative Bayesian
15547approaches to identify genome-wide aneuploidy at 5MB resolution in single
15548cells data. It separates tumor cells and tumor subclones from normal cells
15549using high-throughput sc-RNAseq data.")
15550 (license license:gpl2))))
15551
15552(define-public sambamba
15553 ;; The update that fixes deprecations doesn't have a tag yet.
15554 (let ((base-version "1.0.1")
15555 (commit "dba65af68708859203338caa04ac62265fcebeab")
15556 (revision "0"))
15557 (package
15558 (name "sambamba")
15559 (version (git-version base-version revision commit))
15560 (source (origin
15561 (method git-fetch)
15562 (uri (git-reference
15563 (url "https://github.com/biod/sambamba")
15564 (commit commit)))
15565 (file-name (git-file-name name version))
15566 (sha256
15567 (base32
15568 "1wmka4ickrsfvkhc1mrrkxqy65g6wylsv0scmjq7m8l8qnllxbak"))))
15569 (build-system gnu-build-system)
15570 (arguments
15571 (list
15572 #:tests? #f ; there is no test target
15573 #:parallel-build? #f ; not supported
15574 #:phases
15575 #~(modify-phases %standard-phases
15576 (delete 'configure)
15577 (add-after 'unpack 'prepare-build-tools
15578 (lambda* (#:key inputs #:allow-other-keys)
15579 (substitute* "Makefile"
15580 (("\\$\\(shell which ldmd2\\)") (which "ldmd2")))
15581 (setenv "CC" "gcc")
15582 (setenv "D_LD" (which "ld.gold"))))
15583 (add-after 'unpack 'unbundle-prerequisites
15584 (lambda _
15585 (substitute* "Makefile"
15586 (("= lz4/lib/liblz4.a") "= -L-llz4")
15587 (("ldc_version_info lz4-static") "ldc_version_info"))))
15588 (replace 'install
15589 (lambda* (#:key outputs #:allow-other-keys)
15590 (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
15591 (mkdir-p bin)
15592 (copy-file (string-append "bin/sambamba-" #$base-version)
15593 (string-append bin "/sambamba")))))
15594 (add-after 'install 'remove-d-include-references
15595 #$(remove-d-include-references-phase
15596 (this-package-input "ldc"))))))
15597 (inputs
15598 (list ldc lz4 zlib))
15599 (native-inputs
15600 (list python))
15601 (home-page "https://github.com/biod/sambamba")
15602 (synopsis "Tools for working with SAM/BAM data")
15603 (description "Sambamba is a high performance modern robust and fast tool
15604(and library), written in the D programming language, for working with SAM and
15605BAM files. Current parallelised functionality is an important subset of
15606samtools functionality, including view, index, sort, markdup, and depth.")
15607 (license license:gpl2+))))
15608
15609(define-public r-rphyloxml
15610 (let ((commit "a30e39249239b2de01d6964ae2a2205a6c48b475")
15611 (revision "1"))
15612 (package
15613 (name "r-rphyloxml")
15614 (version (git-version "0.0-9000" revision commit))
15615 (source
15616 (origin
15617 (method git-fetch)
15618 (uri (git-reference
15619 (url "https://github.com/USCbiostats/rphyloxml")
15620 (commit commit)))
15621 (file-name (git-file-name name version))
15622 (sha256
15623 (base32 "15ijzqvjxx6vqyqlg5asdbqlhw1g0ix6palf1rism3si0qapddgw"))
15624 (snippet
15625 '(delete-file "docs/jquery.sticky-kit.min.js"))))
15626 (properties `((upstream-name . "rphyloxml")))
15627 (build-system r-build-system)
15628 (arguments
15629 (list
15630 #:modules
15631 '((guix build r-build-system)
15632 (guix build minify-build-system)
15633 (guix build utils))
15634 #:imported-modules
15635 `(,@%r-build-system-modules (guix build minify-build-system))
15636 #:phases
15637 '(modify-phases %standard-phases
15638 (add-after 'unpack 'process-javascript
15639 (lambda* (#:key inputs #:allow-other-keys)
15640 (with-directory-excursion "inst/"
15641 (minify (assoc-ref inputs "js-jquery-sticky-kit")
15642 #:target "docs/jquery.sticky-kit.min.js")))))))
15643 (propagated-inputs (list r-ape r-xml2))
15644 (native-inputs
15645 `(("esbuild" ,esbuild)
15646 ("js-jquery-sticky-kit"
15647 ,(origin
15648 (method url-fetch)
15649 (uri "https://raw.githubusercontent.com/leafo/sticky-kit/\
15650v1.1.2/jquery.sticky-kit.js")
15651 (sha256
15652 (base32
15653 "17c3a1hqc3ybwj7hpw8prazajp2x98aq7nyfn71h6lzjvblq297g"))))))
15654 (home-page "https://github.com/USCbiostats/rphyloxml")
15655 (synopsis "Read and write phyloXML files in R")
15656 (description
15657 "The package reads phylogenetic data in the @code{phyloXML} format.
15658It also includes functions for writing data in this format.")
15659 (license license:expat))))
15660
15661(define-public ritornello
15662 (package
15663 (name "ritornello")
15664 (version "2.0.1")
15665 (source (origin
15666 (method git-fetch)
15667 (uri (git-reference
15668 (url "https://github.com/KlugerLab/Ritornello")
15669 (commit (string-append "v" version))))
15670 (file-name (git-file-name name version))
15671 (sha256
15672 (base32
15673 "1xahvq215qld7x1w8vpa5zbrsj6p9crb9shqa2x89sb0aaxa02jk"))))
15674 (build-system gnu-build-system)
15675 (arguments
15676 `(#:tests? #f ; there are no tests
15677 #:phases
15678 (modify-phases %standard-phases
15679 (add-after 'unpack 'patch-samtools-references
15680 (lambda* (#:key inputs #:allow-other-keys)
15681 (substitute* '("src/SamStream.h"
15682 "src/FLD.cpp")
15683 (("<sam.h>") "<samtools/sam.h>"))
15684 #t))
15685 (delete 'configure)
15686 (replace 'install
15687 (lambda* (#:key inputs outputs #:allow-other-keys)
15688 (let* ((out (assoc-ref outputs "out"))
15689 (bin (string-append out "/bin/")))
15690 (mkdir-p bin)
15691 (install-file "bin/Ritornello" bin)
15692 #t))))))
15693 (inputs
15694 (list samtools-0.1 fftw boost zlib))
15695 (home-page "https://github.com/KlugerLab/Ritornello")
15696 (synopsis "Control-free peak caller for ChIP-seq data")
15697 (description "Ritornello is a ChIP-seq peak calling algorithm based on
15698signal processing that can accurately call binding events without the need to
15699do a pair total DNA input or IgG control sample. It has been tested for use
15700with narrow binding events such as transcription factor ChIP-seq.")
15701 (license license:gpl3+)))
15702
15703(define-public trim-galore
15704 (package
15705 (name "trim-galore")
15706 (version "0.6.6")
15707 (source
15708 (origin
15709 (method git-fetch)
15710 (uri (git-reference
15711 (url "https://github.com/FelixKrueger/TrimGalore")
15712 (commit version)))
15713 (file-name (git-file-name name version))
15714 (sha256
15715 (base32
15716 "0yrwg6325j4sb9vnplvl3jplzab0qdhp92wl480qjinpfq88j4rs"))))
15717 (build-system gnu-build-system)
15718 (arguments
15719 `(#:tests? #f ; no tests
15720 #:phases
15721 (modify-phases %standard-phases
15722 (replace 'configure
15723 (lambda _
15724 ;; Trim Galore tries to figure out what version of Python
15725 ;; cutadapt is using by looking at the shebang. Of course that
15726 ;; doesn't work, because cutadapt is wrapped in a shell script.
15727 (substitute* "trim_galore"
15728 (("my \\$python_return.*")
15729 "my $python_return = \"Python 3.999\";\n"))
15730 #t))
15731 (delete 'build)
15732 (add-after 'unpack 'hardcode-tool-references
15733 (lambda* (#:key inputs #:allow-other-keys)
15734 (substitute* "trim_galore"
15735 (("\\$path_to_cutadapt = 'cutadapt'")
15736 (string-append "$path_to_cutadapt = '"
15737 (assoc-ref inputs "cutadapt")
15738 "/bin/cutadapt'"))
15739 (("\\$compression_path = \"gzip\"")
15740 (string-append "$compression_path = \""
15741 (assoc-ref inputs "gzip")
15742 "/bin/gzip\""))
15743 (("\"gunzip")
15744 (string-append "\""
15745 (assoc-ref inputs "gzip")
15746 "/bin/gunzip"))
15747 (("\"pigz")
15748 (string-append "\""
15749 (assoc-ref inputs "pigz")
15750 "/bin/pigz")))
15751 #t))
15752 (replace 'install
15753 (lambda* (#:key outputs #:allow-other-keys)
15754 (let ((bin (string-append (assoc-ref outputs "out")
15755 "/bin")))
15756 (mkdir-p bin)
15757 (install-file "trim_galore" bin)
15758 #t))))))
15759 (inputs
15760 (list gzip perl pigz cutadapt))
15761 (native-inputs
15762 (list unzip))
15763 (home-page "https://www.bioinformatics.babraham.ac.uk/projects/trim_galore/")
15764 (synopsis "Wrapper around Cutadapt and FastQC")
15765 (description "Trim Galore! is a wrapper script to automate quality and
15766adapter trimming as well as quality control, with some added functionality to
15767remove biased methylation positions for RRBS sequence files.")
15768 (license license:gpl3+)))
15769
15770(define-public phyml
15771 (package
15772 (name "phyml")
15773 (version "3.3.20220408")
15774 (source (origin
15775 (method git-fetch)
15776 (uri (git-reference
15777 (url "https://github.com/stephaneguindon/phyml")
15778 (commit (string-append "v" version))))
15779 (file-name (git-file-name name version))
15780 (sha256
15781 (base32
15782 "03hdqmnsgnzkcrp9r9ajdfkj33jgq4b86kra8ssjlrph65y344sa"))
15783 (snippet
15784 '(delete-file "doc/phyml-manual.pdf"))))
15785 (build-system gnu-build-system)
15786 (supported-systems '("x86_64-linux"))
15787 (arguments
15788 (let ((default-flags (list "--disable-native")))
15789 `(#:phases
15790 (let ((build (lambda (what)
15791 (lambda args
15792 (apply (assoc-ref %standard-phases 'configure)
15793 (append args
15794 (list #:configure-flags
15795 (cons (format #false "--enable-~a" what)
15796 '() #;,default-flags))))
15797 (apply (assoc-ref %standard-phases 'build) args)
15798 (apply (assoc-ref %standard-phases 'install) args)))))
15799 (modify-phases %standard-phases
15800 ;; We cannot use --disable-native; see
15801 ;; https://github.com/stephaneguindon/phyml/issues/173 Instead we
15802 ;; patch the code to at least get rid of -march=native.
15803 (add-after 'unpack 'remove-march-native
15804 (lambda _
15805 (substitute* "configure.ac"
15806 (("DEFAULT_VECTOR_FLAG=\"-march=native\"")
15807 "DEFAULT_VECTOR_FLAG=\"-march=athlon64-sse3\"\n"))))
15808 (add-after 'build 'build-manual
15809 (lambda _
15810 (setenv "HOME" "/tmp/")
15811 (with-directory-excursion "doc"
15812 (invoke "make" "phyml-manual.pdf"))))
15813 (add-after 'build-manual 'install-manual
15814 (lambda* (#:key outputs #:allow-other-keys)
15815 (with-directory-excursion "doc"
15816 (install-file "phyml-manual.pdf"
15817 (string-append (assoc-ref outputs "out")
15818 "/share/doc/phyml")))))
15819 (add-after 'install 'build-phyml-mpi
15820 (build "phyml-mpi"))
15821 (add-after 'build-phyml-mpi 'build-rf
15822 (build "rf"))
15823 (add-after 'build-rf 'build-phyrex
15824 (build "phyrex")))))))
15825 (native-inputs
15826 (list automake
15827 autoconf
15828 openmpi
15829 (texlive-local-tree
15830 (list texlive-caption
15831 texlive-cite
15832 texlive-ec
15833 texlive-fancyvrb
15834 texlive-infwarerr
15835 texlive-kvoptions
15836 texlive-pdftexcmds
15837 texlive-psfrag
15838 texlive-xcolor))))
15839 (home-page "https://github.com/stephaneguindon/phyml")
15840 (synopsis "Programs for working on SAM/BAM files")
15841 (description
15842 "@code{PhyML} is a software package that uses modern statistical
15843approaches to analyse alignments of nucleotide or amino acid sequences in a
15844phylogenetic framework. The main tool in this package builds phylogenies
15845under the maximum likelihood criterion. It implements a large number of
15846substitution models coupled with efficient options to search the space of
15847phylogenetic tree topologies. code{PhyREX} fits the
15848spatial-Lambda-Fleming-Viot model to geo-referenced genetic data. This model
15849is similar to the structured coalescent but assumes that individuals are
15850distributed along a spatial continuum rather than discrete demes.
15851@code{PhyREX} can be used to estimate population densities and rates of
15852dispersal. Its output can be processed by treeannotator (from the
15853@code{BEAST} package) as well as @code{SPREAD}.")
15854 (license license:gpl3)))
15855
15856(define-public imp
15857 (package
15858 (name "imp")
15859 (version "2.25.0")
15860 (source
15861 (origin
15862 (method url-fetch)
15863 (uri (string-append "https://integrativemodeling.org/"
15864 version "/download/imp-" version ".tar.gz"))
15865 (sha256
15866 (base32
15867 "0p1wp83my636pg5207640lh6qp8ddkx5kjxnx28sk3sfa81i8z1g"))))
15868 (build-system cmake-build-system)
15869 (arguments
15870 `(#:tests? #false ; The test suite is notoriously fickle
15871 #:configure-flags
15872 (let ((disabled-tests
15873 '("expensive" ;exclude expensive tests
15874 "IMP.modeller" ;fail to import its own modules
15875 "IMP.parallel-test_sge.py" ;fail in build container
15876 ;; The following test fails non-reproducibly on
15877 ;; an inexact numbers assertion.
15878 "IMP.em-medium_test_local_fitting.py"
15879 ;; The following test fails for unknown reasons
15880 "IMP.foxs-add-missing-residues.py")))
15881 (list
15882 (string-append
15883 "-DCMAKE_CTEST_ARGUMENTS="
15884 (string-join
15885 (list "-L" "-tests?-" ;select only tests
15886 "-E" (format #f "'(~a)'" (string-join disabled-tests "|")))
15887 ";"))))))
15888 (native-inputs
15889 (list python-wrapper swig-4.0))
15890 (inputs
15891 (list boost-for-mysql
15892 cereal
15893 cgal-5
15894 gsl
15895 hdf5
15896 fftw
15897 eigen
15898 ;; Enabling MPI causes the build to use all the available memory and
15899 ;; fail (tested on a machine with 32 GiB of RAM).
15900 ;;("mpi" ,openmpi)
15901 opencv))
15902 (propagated-inputs
15903 (list python-numpy python-scipy python-pandas python-scikit-learn
15904 python-networkx))
15905 (home-page "https://integrativemodeling.org")
15906 (synopsis "Integrative modeling platform")
15907 (description "IMP's broad goal is to contribute to a comprehensive
15908structural characterization of biomolecules ranging in size and complexity
15909from small peptides to large macromolecular assemblies, by integrating data
15910from diverse biochemical and biophysical experiments. IMP provides a C++ and
15911Python toolbox for solving complex modeling problems, and a number of
15912applications for tackling some common problems in a user-friendly way.")
15913 ;; IMP is largely available under the GNU Lesser GPL; see the file
15914 ;; COPYING.LGPL for the full text of this license. Some IMP modules are
15915 ;; available under the GNU GPL (see the file COPYING.GPL).
15916 (license (list license:lgpl2.1+
15917 license:gpl3+))))
15918
15919;; We use this seemingly arbitrary commit because of
15920;; https://github.com/3DGenomes/TADbit/issues/371
15921(define-public tadbit
15922 (let ((commit "283812901a00078c725bd9f0ee33366af6783969")
15923 (revision "2"))
15924 (package
15925 (name "tadbit")
15926 (version (git-version "1.0.1" revision commit))
15927 (source (origin
15928 (method git-fetch)
15929 (uri (git-reference
15930 (url "https://github.com/3DGenomes/TADbit")
15931 (commit commit)))
15932 (file-name (git-file-name name version))
15933 (sha256
15934 (base32
15935 "07q0alxah6xl1hibaj1kj7pdzq3pg6csyapsihbwlbmqyfmllbgz"))))
15936 (build-system pyproject-build-system)
15937 (arguments
15938 (list
15939 #:test-backend #~'custom
15940 #:test-flags #~(list "test/test_all.py")
15941 #:phases
15942 #~(modify-phases %standard-phases
15943 ;; Scipy 1.12 no longer has binom_test or polyfit
15944 (add-after 'unpack 'scipy-compatibility
15945 (lambda _
15946 (substitute* '("_pytadbit/modelling/imp_modelling.py"
15947 "_pytadbit/modelling/restraints.py")
15948 (("from scipy .*import polyfit")
15949 "from numpy import polyfit"))
15950 (substitute* "_pytadbit/mapping/restriction_enzymes.py"
15951 (("from scipy.stats import binom_test")
15952 "from scipy.stats import binomtest")
15953 (("binom_test\\(pats[k]['count'], nreads, 0.25\\*\\*len\\(k\\), alternative='greater'\\)")
15954 "binomtest(pats[k]['count'], nreads, 0.25**len(k), alternative='greater').pval"))))
15955 (add-after 'unpack 'fix-problems-with-setup.py
15956 (lambda _
15957 (substitute* "src/test/Makefile"
15958 (("^CFLAGS=") "CFLAGS= -fcommon"))
15959
15960 ;; Don't attempt to install the bash completions to
15961 ;; the home directory.
15962 (rename-file "extras/.bash_completion"
15963 "extras/tadbit")
15964 (substitute* "setup.py"
15965 (("\\(path.expanduser\\('~'\\)")
15966 (string-append "(\"" #$output
15967 "/etc/bash_completion.d\""))
15968 (("extras/\\.bash_completion")
15969 "extras/tadbit")))))))
15970 (native-inputs
15971 (list `(,glib "bin") ;for gtester
15972 glib
15973 pkg-config
15974 python-setuptools))
15975 (inputs
15976 ;; TODO: add Chimera for visualization
15977 (list imp
15978 mcl
15979 python-future
15980 python-h5py
15981 python-scipy
15982 python-numpy
15983 python-matplotlib
15984 python-pysam
15985 r-minimal))
15986 (home-page "https://3dgenomes.github.io/TADbit/")
15987 (synopsis "Analyze, model, and explore 3C-based data")
15988 (description
15989 "TADbit is a complete Python library to deal with all steps to analyze,
15990model, and explore 3C-based data. With TADbit the user can map FASTQ files to
15991obtain raw interaction binned matrices (Hi-C like matrices), normalize and
15992correct interaction matrices, identify and compare the so-called
15993@dfn{Topologically Associating Domains} (TADs), build 3D models from the
15994interaction matrices, and finally, extract structural properties from the
15995models. TADbit is complemented by TADkit for visualizing 3D models.")
15996 (license license:gpl3+))))
15997
15998(define-public kentutils
15999 (package
16000 (name "kentutils")
16001 ;; 302.1.0 is out, but the only difference is the inclusion of
16002 ;; pre-built binaries.
16003 (version "302.0.0")
16004 (source
16005 (origin
16006 (method git-fetch)
16007 (uri (git-reference
16008 (url "https://github.com/ENCODE-DCC/kentUtils")
16009 (commit (string-append "v" version))))
16010 (file-name (git-file-name name version))
16011 (sha256
16012 (base32
16013 "0n1wbyjpzii2b9qhyp9r1q76j623cggpg3y8fmw78ld3z4y7ivha"))
16014 (modules '((guix build utils)
16015 (srfi srfi-26)
16016 (ice-9 ftw)))
16017 (snippet
16018 '(begin
16019 ;; Only the contents of the specified directories are free
16020 ;; for all uses, so we remove the rest. "hg/autoSql" and
16021 ;; "hg/autoXml" are nominally free, but they depend on a
16022 ;; library that is built from the sources in "hg/lib",
16023 ;; which is nonfree.
16024 (let ((free (list "." ".."
16025 "utils" "lib" "inc" "tagStorm"
16026 "parasol" "htslib"))
16027 (directory? (lambda (file)
16028 (eq? 'directory (stat:type (stat file))))))
16029 (for-each (lambda (file)
16030 (and (directory? file)
16031 (delete-file-recursively file)))
16032 (map (cut string-append "src/" <>)
16033 (scandir "src"
16034 (lambda (file)
16035 (not (member file free)))))))
16036 ;; Only make the utils target, not the userApps target,
16037 ;; because that requires libraries we won't build.
16038 (substitute* "Makefile"
16039 ((" userApps") " utils"))
16040 ;; Only build libraries that are free.
16041 (substitute* "src/makefile"
16042 (("DIRS =.*") "DIRS =\n")
16043 (("cd jkOwnLib.*") "")
16044 ((" hgLib") "")
16045 (("cd hg.*") ""))
16046 (substitute* "src/utils/makefile"
16047 ;; These tools depend on "jkhgap.a", which is part of the
16048 ;; nonfree "src/hg/lib" directory.
16049 (("raSqlQuery") "")
16050 (("pslLiftSubrangeBlat") "")
16051
16052 ;; Do not build UCSC tools, which may require nonfree
16053 ;; components.
16054 (("ALL_APPS =.*") "ALL_APPS = $(UTILS_APPLIST)\n"))
16055 #t))))
16056 (build-system gnu-build-system)
16057 (arguments
16058 `( ;; There is no global test target and the test target for
16059 ;; individual tools depends on input files that are not
16060 ;; included.
16061 #:tests? #f
16062 #:phases
16063 (modify-phases %standard-phases
16064 (add-after 'unpack 'fix-permissions
16065 (lambda _ (make-file-writable "src/inc/localEnvironment.mk") #t))
16066 (add-after 'unpack 'fix-paths
16067 (lambda _
16068 (substitute* "Makefile"
16069 (("/bin/echo") (which "echo")))
16070 #t))
16071 (add-after 'unpack 'prepare-samtabix
16072 (lambda* (#:key inputs #:allow-other-keys)
16073 (copy-recursively (assoc-ref inputs "samtabix")
16074 "samtabix")
16075 #t))
16076 (delete 'configure)
16077 (replace 'install
16078 (lambda* (#:key outputs #:allow-other-keys)
16079 (let ((bin (string-append (assoc-ref outputs "out")
16080 "/bin")))
16081 (copy-recursively "bin" bin))
16082 #t)))))
16083 (native-inputs
16084 `(("samtabix"
16085 ,(let ((commit "10fd107909c1ac4d679299908be4262a012965ba"))
16086 (origin
16087 (method git-fetch)
16088 (uri (git-reference
16089 (url "http://genome-source.cse.ucsc.edu/samtabix.git")
16090 (commit commit)))
16091 (file-name (git-file-name "samtabix" (string-take commit 7)))
16092 (sha256
16093 (base32
16094 "0c1nj64l42v395sa84n7az43xiap4i6f9n9dfz4058aqiwkhkmma")))))))
16095 (inputs
16096 `(("zlib" ,zlib)
16097 ("tcsh" ,tcsh)
16098 ("perl" ,perl)
16099 ("libpng" ,libpng)
16100 ("mariadb-dev" ,mariadb "dev")
16101 ("openssl" ,openssl)))
16102 (home-page "https://genome.cse.ucsc.edu/index.html")
16103 (synopsis "Assorted bioinformatics utilities")
16104 (description "This package provides the kentUtils, a selection of
16105bioinformatics utilities used in combination with the UCSC genome
16106browser.")
16107 ;; Only a subset of the sources are released under a non-copyleft
16108 ;; free software license. All other sources are removed in a
16109 ;; snippet. See this bug report for an explanation of how the
16110 ;; license statements apply:
16111 ;; https://github.com/ENCODE-DCC/kentUtils/issues/12
16112 (license (license:non-copyleft
16113 "http://genome.ucsc.edu/license/"
16114 "The contents of this package are free for all uses."))))
16115
16116(define-public skewer
16117 (package
16118 (name "skewer")
16119 (version "0.2.2")
16120 (source
16121 (origin
16122 (method git-fetch)
16123 (uri (git-reference
16124 (url "https://github.com/relipmoc/skewer")
16125 (commit version)))
16126 (file-name (git-file-name name version))
16127 (sha256
16128 (base32
16129 "1b3skfnj3zmd2065fiyxjrg4k6xsxfy6nxz80vmajd830mk6vr69"))))
16130 (build-system gnu-build-system)
16131 (arguments
16132 (list
16133 #:tests? #f
16134 #:make-flags
16135 #~(list "CXXFLAGS=-std=c++11 -c -O2")
16136 #:phases
16137 #~(modify-phases %standard-phases
16138 (delete 'configure)
16139 (replace 'install
16140 (lambda _
16141 (install-file "skewer" (string-append #$output "/bin")))))))
16142 (home-page "https://github.com/relipmoc/skewer")
16143 (synopsis "Bit-masked k-difference matching")
16144 (description "Skewer implements the bit-masked k-difference matching
16145algorithm dedicated to the task of adapter trimming and it is specially
16146designed for processing next-generation sequencing (NGS) paired-end
16147sequences.")
16148 (license license:expat)))
16149
16150(define-public f-seq
16151 (let ((commit "6ccded34cff38cf432deed8503648b4a66953f9b")
16152 (revision "1"))
16153 (package
16154 (name "f-seq")
16155 (version (git-version "1.1" revision commit))
16156 (source (origin
16157 (method git-fetch)
16158 (uri (git-reference
16159 (url "https://github.com/aboyle/F-seq")
16160 (commit commit)))
16161 (file-name (git-file-name name version))
16162 (sha256
16163 (base32
16164 "1nk33k0yajg2id4g59bc4szr58r2q6pdq42vgcw054m8ip9wv26h"))
16165 (modules '((guix build utils)))
16166 ;; Remove bundled Java library archives.
16167 (snippet
16168 '(for-each delete-file (find-files "lib" ".*")))))
16169 (build-system ant-build-system)
16170 (arguments
16171 `(#:tests? #f ; no tests included
16172 #:phases
16173 (modify-phases %standard-phases
16174 (replace 'install
16175 (lambda* (#:key inputs outputs #:allow-other-keys)
16176 (let* ((target (assoc-ref outputs "out"))
16177 (bin (string-append target "/bin"))
16178 (doc (string-append target "/share/doc/f-seq"))
16179 (lib (string-append target "/lib")))
16180 (mkdir-p target)
16181 (mkdir-p doc)
16182 (substitute* "bin/linux/fseq"
16183 (("java") (which "java"))
16184 (("\\$REALDIR/../lib/commons-cli-1.1.jar")
16185 (search-input-file inputs
16186 (string-append "/lib/m2/commons-cli/commons-cli/"
16187 ,(package-version java-commons-cli)
16188 "/commons-cli-"
16189 ,(package-version java-commons-cli)
16190 ".jar")))
16191 (("REALDIR=.*")
16192 (string-append "REALDIR=" bin "\n")))
16193 (install-file "README.txt" doc)
16194 (install-file "bin/linux/fseq" bin)
16195 (install-file "build~/fseq.jar" lib)
16196 (copy-recursively "lib" lib)))))))
16197 (inputs
16198 (list perl java-commons-cli))
16199 (home-page "https://fureylab.web.unc.edu/software/fseq/")
16200 (synopsis "Feature density estimator for high-throughput sequence tags")
16201 (description
16202 "F-Seq is a software package that generates a continuous tag sequence
16203density estimation allowing identification of biologically meaningful sites
16204such as transcription factor binding sites (ChIP-seq) or regions of open
16205chromatin (DNase-seq). Output can be displayed directly in the UCSC Genome
16206Browser.")
16207 (license license:gpl3+))))
16208
16209(define-public bismark
16210 (package
16211 (name "bismark")
16212 (version "0.24.1")
16213 (source
16214 (origin
16215 (method git-fetch)
16216 (uri (git-reference
16217 (url "https://github.com/FelixKrueger/Bismark")
16218 (commit version)))
16219 (file-name (git-file-name name version))
16220 (sha256
16221 (base32
16222 "0j4dy33769f0jr2w1brb710zxwpg3zwjlnvlcpi5pr6mqc8dkg8n"))
16223 (snippet '(delete-file "plotly/plot.ly"))))
16224 (build-system perl-build-system)
16225 (arguments
16226 (list
16227 #:tests? #f ; there are no tests
16228 #:modules '((guix build utils)
16229 (ice-9 popen)
16230 (srfi srfi-26)
16231 (guix build perl-build-system))
16232 #:phases
16233 #~(modify-phases %standard-phases
16234 (add-after 'unpack 'replace-plotly.js
16235 (lambda* (#:key inputs #:allow-other-keys)
16236 (let* ((share (string-append #$output "/share/bismark"))
16237 (file (assoc-ref inputs "plotly.js"))
16238 (installed "plotly/plotly.js"))
16239 ;; The bundled plotly.js is minified.
16240 (let ((minified (open-pipe* OPEN_READ "uglifyjs" file)))
16241 (call-with-output-file installed
16242 (cut dump-port minified <>)))
16243 (substitute* "bismark2report"
16244 (("plotly_template.tpl")
16245 (string-append share "/plotly/plotly_template.tpl"))
16246 (("my \\$plotly_code = read_report_template\\('plot.ly'\\);")
16247 (string-append "\
16248my $plotly_code = read_report_template('" share "/plotly/plotly.js');
16249$plotly_code = \"<script>\" . $plotly_code . \"</script>\";"))))))
16250 (replace 'configure
16251 (lambda* (#:key inputs #:allow-other-keys)
16252 (substitute* "bismark"
16253 (("\\(\\!system \"which samtools >/dev/null 2>&1\"\\)")
16254 "(\"true\")")
16255 (("\\$samtools_path = `which samtools`;")
16256 (string-append "$samtools_path = '"
16257 (search-input-file inputs "/bin/samtools")
16258 "';"))
16259 (("\\$path_to_bowtie2 = 'bowtie2'")
16260 (string-append "$path_to_bowtie2 = '"
16261 (search-input-file inputs "/bin/bowtie2")
16262 "'"))
16263 (("\\$path_to_hisat2 = 'hisat2'")
16264 (string-append "$path_to_hisat2 = '"
16265 (search-input-file inputs "/bin/hisat2")
16266 "'"))
16267 (("\\$path_to_minimap2 = 'minimap2'")
16268 (string-append "$path_to_minimap2 = '"
16269 (search-input-file inputs "/bin/minimap2")
16270 "'")))))
16271 (delete 'build)
16272 (replace 'install
16273 (lambda* (#:key inputs outputs #:allow-other-keys)
16274 (let* ((bin (string-append #$output "/bin"))
16275 (share (string-append #$output "/share/bismark"))
16276 (docdir (string-append #$output "/share/doc/bismark"))
16277 (scripts '("bismark"
16278 "bismark_genome_preparation"
16279 "bismark_methylation_extractor"
16280 "bismark2bedGraph"
16281 "bismark2report"
16282 "coverage2cytosine"
16283 "deduplicate_bismark"
16284 "filter_non_conversion"
16285 "bam2nuc"
16286 "bismark2summary"
16287 "NOMe_filtering")))
16288 (for-each mkdir-p (list bin docdir share))
16289 (for-each (cut install-file <> bin) scripts)
16290 (copy-recursively "docs" docdir)
16291 (copy-recursively "plotly"
16292 (string-append share "/plotly"))
16293
16294 ;; Fix references to gunzip
16295 (with-directory-excursion bin
16296 (substitute* scripts
16297 (("\"gunzip -c")
16298 (format #f "\"~a -c"
16299 (search-input-file inputs "bin/gunzip")))))))))))
16300 (inputs
16301 (list bowtie gzip hisat2 minimap2 perl-carp perl-getopt-long samtools))
16302 (native-inputs
16303 (list
16304 (origin
16305 (method url-fetch)
16306 (uri (string-append "https://raw.githubusercontent.com/plotly/plotly.js/"
16307 "v1.39.4/dist/plotly.js"))
16308 (sha256
16309 (base32 "138mwsr4nf5qif4mrxx286mpnagxd1xwl6k8aidrjgknaqg88zyr")))
16310 node-uglify-js))
16311 (home-page "https://www.bioinformatics.babraham.ac.uk/projects/bismark/")
16312 (synopsis "Map bisulfite treated sequence reads and analyze methylation")
16313 (description "Bismark is a program to map bisulfite treated sequencing
16314reads to a genome of interest and perform methylation calls in a single step.
16315The output can be easily imported into a genome viewer, such as SeqMonk, and
16316enables a researcher to analyse the methylation levels of their samples
16317straight away. Its main features are:
16318
16319@itemize
16320@item Bisulfite mapping and methylation calling in one single step
16321@item Supports single-end and paired-end read alignments
16322@item Supports ungapped and gapped alignments
16323@item Alignment seed length, number of mismatches etc are adjustable
16324@item Output discriminates between cytosine methylation in CpG, CHG
16325 and CHH context
16326@end itemize\n")
16327 (license license:gpl3+)))
16328
16329(define-public paml
16330 (package
16331 (name "paml")
16332 (version "4.9e")
16333 (source (origin
16334 (method url-fetch)
16335 (uri (string-append "http://abacus.gene.ucl.ac.uk/software/"
16336 "paml" version ".tgz"))
16337 (sha256
16338 (base32
16339 "13zf6h9fiqghwhch2h06x1zdr6s42plsnqahflp5g7myr3han3s6"))
16340 (modules '((guix build utils)))
16341 ;; Remove Windows binaries
16342 (snippet
16343 '(begin
16344 (for-each delete-file (find-files "." "\\.exe$"))
16345 ;; Some files in the original tarball have restrictive
16346 ;; permissions, which makes repackaging fail
16347 (for-each (lambda (file) (chmod file #o644)) (find-files "."))
16348 #t))))
16349 (build-system gnu-build-system)
16350 (arguments
16351 `(#:tests? #f ; there are no tests
16352 #:make-flags '("CC=gcc" "CFLAGS=-fcommon -O3")
16353 #:phases
16354 (modify-phases %standard-phases
16355 (replace 'configure
16356 (lambda _
16357 (substitute* "src/BFdriver.c"
16358 (("/bin/bash") (which "bash")))
16359 (chdir "src")))
16360 (replace 'install
16361 (lambda* (#:key outputs #:allow-other-keys)
16362 (let ((tools '("baseml" "basemlg" "codeml"
16363 "pamp" "evolver" "yn00" "chi2"))
16364 (bin (string-append (assoc-ref outputs "out") "/bin"))
16365 (docdir (string-append (assoc-ref outputs "out")
16366 "/share/doc/paml")))
16367 (mkdir-p bin)
16368 (for-each (lambda (file) (install-file file bin)) tools)
16369 (copy-recursively "../doc" docdir)))))))
16370 (home-page "http://abacus.gene.ucl.ac.uk/software/paml.html")
16371 (synopsis "Phylogentic analysis by maximum likelihood")
16372 (description "PAML (for Phylogentic Analysis by Maximum Likelihood)
16373contains a few programs for model fitting and phylogenetic tree reconstruction
16374using nucleotide or amino-acid sequence data.")
16375 ;; GPLv3 only
16376 (license license:gpl3)))
16377
16378(define-public segemehl
16379 (package
16380 (name "segemehl")
16381 (version "0.3.4")
16382 (source (origin
16383 (method url-fetch)
16384 (uri (string-append "https://www.bioinf.uni-leipzig.de/Software"
16385 "/segemehl/downloads/segemehl-"
16386 version ".tar.gz"))
16387 (sha256
16388 (base32
16389 "0lbzbb7i8zadsn9b99plairhq6s2h1z8qdn6n7djclfis01nycz4"))))
16390 (build-system gnu-build-system)
16391 (arguments
16392 `(#:make-flags
16393 (list (string-append "CC=" ,(cc-for-target))
16394 "all")
16395 #:tests? #false ; there are none
16396 #:phases
16397 (modify-phases %standard-phases
16398 (delete 'configure)
16399 ;; There is no installation target
16400 (replace 'install
16401 (lambda* (#:key inputs outputs #:allow-other-keys)
16402 (let* ((out (assoc-ref outputs "out"))
16403 (bin (string-append out "/bin"))
16404 (exes (list "segemehl.x" "haarz.x")))
16405 (mkdir-p bin)
16406 (for-each (lambda (exe)
16407 (install-file exe bin))
16408 exes)))))))
16409 (inputs
16410 (list htslib ncurses zlib))
16411 (native-inputs
16412 (list pkg-config))
16413 (home-page "https://www.bioinf.uni-leipzig.de/Software/segemehl")
16414 (synopsis "Map short sequencer reads to reference genomes")
16415 (description "Segemehl is software to map short sequencer reads to
16416reference genomes. Segemehl implements a matching strategy based on enhanced
16417suffix arrays (ESA). It accepts fasta and fastq queries (gzip'ed and
16418bgzip'ed). In addition to the alignment of reads from standard DNA- and
16419RNA-seq protocols, it also allows the mapping of bisulfite converted
16420reads (Lister and Cokus) and implements a split read mapping strategy. The
16421output of segemehl is a SAM or BAM formatted alignment file.")
16422 (license license:gpl3+)))
16423
16424(define-public kallisto
16425 (package
16426 (name "kallisto")
16427 (version "0.50.1")
16428 (source (origin
16429 (method git-fetch)
16430 (uri (git-reference
16431 (url "https://github.com/pachterlab/kallisto")
16432 (commit (string-append "v" version))))
16433 (file-name (git-file-name name version))
16434 (sha256
16435 (base32
16436 "0zfs79mv75599cf9d7d3c5a3s8idgz9qvl4qfzhvhbd87y3dv7p0"))))
16437 (build-system cmake-build-system)
16438 (arguments
16439 (list
16440 #:tests? #false ;no "check" target
16441 ;; The build system attempts to link libbifrost.a into the kallisto
16442 ;; executable before the library has been built.
16443 #:parallel-build? #false))
16444 (inputs (list hdf5 zlib))
16445 (home-page "https://pachterlab.github.io/kallisto/")
16446 (synopsis "Near-optimal RNA-Seq quantification")
16447 (description
16448 "Kallisto is a program for quantifying abundances of transcripts from
16449RNA-Seq data, or more generally of target sequences using high-throughput
16450sequencing reads. It is based on the novel idea of pseudoalignment for
16451rapidly determining the compatibility of reads with targets, without the need
16452for alignment. Pseudoalignment of reads preserves the key information needed
16453for quantification, and kallisto is therefore not only fast, but also as
16454accurate as existing quantification tools.")
16455 (license license:bsd-2)))
16456
16457(define-public libgff
16458 (package
16459 (name "libgff")
16460 (version "2.0.0")
16461 (source (origin
16462 (method git-fetch)
16463 (uri (git-reference
16464 (url "https://github.com/COMBINE-lab/libgff")
16465 (commit (string-append "v" version))))
16466 (file-name (git-file-name name version))
16467 (sha256
16468 (base32
16469 "0ds9r22y8bl1rj7bhl0003kgmm6aam7g8l41mnjfrzw15d9zf9k4"))))
16470 (build-system cmake-build-system)
16471 (arguments `(#:tests? #f)) ; no tests included
16472 (home-page "https://github.com/COMBINE-lab/libgff")
16473 (synopsis "Parser library for reading/writing GFF files")
16474 (description "This is a simple \"libraryfication\" of the GFF/GTF parsing
16475code that is used in the Cufflinks codebase. The goal of this library is to
16476provide this functionality without the necessity of drawing in a heavy-weight
16477dependency like SeqAn.")
16478 (license (license:x11-style "https://www.boost.org/LICENSE_1_0.txt"))))
16479
16480(define-public sailfish
16481 (package
16482 (name "sailfish")
16483 (version "0.10.1")
16484 (source (origin
16485 (method git-fetch)
16486 (uri (git-reference
16487 (url "https://github.com/kingsfordgroup/sailfish")
16488 (commit (string-append "v" version))))
16489 (file-name (git-file-name name version))
16490 (sha256
16491 (base32
16492 "1amcc5hqvsl42hg4x19bi9vy47cl874s0lw1fmi0hwsdk9i8c03v"))
16493 (modules '((guix build utils)))
16494 ;; Delete bundled headers for eigen3.
16495 (snippet
16496 '(delete-file-recursively "include/eigen3/"))))
16497 (build-system cmake-build-system)
16498 (arguments
16499 `(#:configure-flags
16500 ,#~(list (string-append "-DBOOST_INCLUDEDIR="
16501 #$(this-package-input "boost")
16502 "/include/")
16503 (string-append "-DBOOST_LIBRARYDIR="
16504 #$(this-package-input "boost")
16505 "/lib/")
16506 (string-append "-DBoost_LIBRARIES="
16507 "-lboost_iostreams "
16508 "-lboost_filesystem "
16509 "-lboost_system "
16510 "-lboost_thread "
16511 "-lboost_timer "
16512 "-lboost_chrono "
16513 "-lboost_program_options")
16514 "-DBoost_FOUND=TRUE"
16515 ;; Don't download RapMap---we already have it!
16516 "-DFETCHED_RAPMAP=1")
16517 ;; Tests must be run after installation and the location of the test
16518 ;; data file must be overridden. But the tests fail. It looks like
16519 ;; they are not really meant to be run.
16520 #:tests? #f
16521 #:phases
16522 (modify-phases %standard-phases
16523 ;; Boost cannot be found, even though it's right there.
16524 (add-after 'unpack 'do-not-look-for-boost
16525 (lambda* (#:key inputs #:allow-other-keys)
16526 (substitute* "CMakeLists.txt"
16527 (("find_package\\(Boost 1\\.53\\.0") "#"))))
16528 (add-after 'unpack 'do-not-assign-to-macro
16529 (lambda _
16530 (substitute* "include/spdlog/details/format.cc"
16531 (("const unsigned CHAR_WIDTH = 1;") ""))))
16532 (add-after 'unpack 'prepare-rapmap
16533 (lambda* (#:key inputs #:allow-other-keys)
16534 (let ((src "external/install/src/rapmap/")
16535 (include "external/install/include/rapmap/")
16536 (rapmap (assoc-ref inputs "rapmap")))
16537 (mkdir-p src)
16538 (mkdir-p include)
16539 (for-each (lambda (file)
16540 (install-file file src))
16541 (find-files (string-append rapmap "/src") "\\.(c|cpp)"))
16542 (copy-recursively (string-append rapmap "/include") include))))
16543 (add-after 'unpack 'use-system-libraries
16544 (lambda* (#:key inputs #:allow-other-keys)
16545 (substitute* '("src/SailfishIndexer.cpp"
16546 "src/SailfishUtils.cpp"
16547 "src/SailfishQuantify.cpp"
16548 "src/FASTAParser.cpp"
16549 "include/PCA.hpp"
16550 "include/SailfishUtils.hpp"
16551 "include/SailfishIndex.hpp"
16552 "include/CollapsedEMOptimizer.hpp"
16553 "src/CollapsedEMOptimizer.cpp")
16554 (("#include \"jellyfish/config.h\"") ""))
16555 (substitute* "src/CMakeLists.txt"
16556 (("\\$\\{GAT_SOURCE_DIR\\}/external/install/include/jellyfish-2.2..")
16557 (search-input-directory
16558 inputs
16559 (string-append "/include/jellyfish-" ,(package-version jellyfish))))
16560 (("\\$\\{GAT_SOURCE_DIR\\}/external/install/lib/libjellyfish-2.0.a")
16561 (search-input-file inputs
16562 "/lib/libjellyfish-2.0.a"))
16563 (("\\$\\{GAT_SOURCE_DIR\\}/external/install/lib/libdivsufsort.a")
16564 (search-input-file inputs
16565 "/lib/libdivsufsort.so"))
16566 (("\\$\\{GAT_SOURCE_DIR\\}/external/install/lib/libdivsufsort64.a")
16567 (search-input-file inputs
16568 "/lib/libdivsufsort64.so")))
16569 (substitute* "CMakeLists.txt"
16570 ;; Don't prefer static libs
16571 (("SET\\(CMAKE_FIND_LIBRARY_SUFFIXES.*") "")
16572 (("find_package\\(Jellyfish.*") "")
16573 (("ExternalProject_Add\\(libjellyfish") "message(")
16574 (("ExternalProject_Add\\(libgff") "message(")
16575 (("ExternalProject_Add\\(libsparsehash") "message(")
16576 (("ExternalProject_Add\\(libdivsufsort") "message("))
16577
16578 ;; Ensure that Eigen headers can be found
16579 (setenv "CPLUS_INCLUDE_PATH"
16580 (string-append (search-input-directory
16581 inputs "/include/eigen3")
16582 ":"
16583 (or (getenv "CPLUS_INCLUDE_PATH") ""))))))))
16584 (inputs
16585 `(("boost" ,boost-1.83)
16586 ("eigen" ,eigen)
16587 ("jemalloc" ,jemalloc)
16588 ("jellyfish" ,jellyfish)
16589 ("sparsehash" ,sparsehash)
16590 ("rapmap" ,(origin
16591 (method git-fetch)
16592 (uri (git-reference
16593 (url "https://github.com/COMBINE-lab/RapMap")
16594 (commit (string-append "sf-v" version))))
16595 (file-name (string-append "rapmap-sf-v" version "-checkout"))
16596 (sha256
16597 (base32
16598 "1hv79l5i576ykv5a1srj2p0q36yvyl5966m0fcy2lbi169ipjakf"))
16599 (modules '((guix build utils)))
16600 ;; These files are expected to be excluded.
16601 (snippet
16602 '(begin (delete-file-recursively "include/spdlog")
16603 (for-each delete-file '("include/xxhash.h"
16604 "src/xxhash.c"))))))
16605 ("libdivsufsort" ,libdivsufsort)
16606 ("libgff" ,libgff)
16607 ("tbb" ,tbb-2020)
16608 ("zlib" ,zlib)))
16609 (native-inputs
16610 (list pkg-config))
16611 (home-page "https://www.cs.cmu.edu/~ckingsf/software/sailfish/")
16612 (synopsis "Mapping-based isoform quantification from RNA-Seq reads")
16613 (description "Sailfish is a tool for genomic transcript quantification
16614from RNA-seq data. It requires a set of target transcripts (either from a
16615reference or de-novo assembly) to quantify. All you need to run sailfish is a
16616fasta file containing your reference transcripts and a (set of) fasta/fastq
16617file(s) containing your reads.")
16618 (license license:gpl3+)))
16619
16620(define libstadenio-for-salmon
16621 (package
16622 (name "libstadenio")
16623 (version "1.14.8")
16624 (source (origin
16625 (method git-fetch)
16626 (uri (git-reference
16627 (url "https://github.com/COMBINE-lab/staden-io_lib")
16628 (commit (string-append "v" version))))
16629 (file-name (string-append name "-" version "-checkout"))
16630 (sha256
16631 (base32
16632 "1x8kxxqxl892vwfbprlbyfwkkv7c34ggkc94892x9x0g37x5nbwx"))))
16633 (build-system gnu-build-system)
16634 (arguments '(#:parallel-tests? #f)) ; not supported
16635 (inputs
16636 `(("zlib" ,zlib)))
16637 (native-inputs
16638 `(("perl" ,perl))) ; for tests
16639 (home-page "https://github.com/COMBINE-lab/staden-io_lib")
16640 (synopsis "General purpose trace and experiment file library")
16641 (description "This package provides a library of file reading and writing
16642code to provide a general purpose Trace file (and Experiment File) reading
16643interface.
16644
16645The following file formats are supported:
16646
16647@enumerate
16648@item SCF trace files
16649@item ABI trace files
16650@item ALF trace files
16651@item ZTR trace files
16652@item SFF trace archives
16653@item SRF trace archives
16654@item Experiment files
16655@item Plain text files
16656@item SAM/BAM sequence files
16657@item CRAM sequence files
16658@end enumerate\n")
16659 (license license:bsd-3)))
16660
16661(define-public salmon
16662 (package
16663 (name "salmon")
16664 (version "1.10.3")
16665 (source (origin
16666 (method git-fetch)
16667 (uri (git-reference
16668 (url "https://github.com/COMBINE-lab/salmon")
16669 (commit (string-append "v" version))))
16670 (file-name (git-file-name name version))
16671 (sha256
16672 (base32
16673 "0vii7nlx0ddn62qniwx4abfj6ajwl3w6mizavpa0mkhpxnm06rqw"))
16674 (modules '((guix build utils)))
16675 (snippet
16676 ;; Delete bundled headers for eigen3.
16677 '(delete-file-recursively "include/eigen3/"))))
16678 (build-system cmake-build-system)
16679 (arguments
16680 (list
16681 #:configure-flags
16682 #~(list (string-append "-Dlibgff_DIR="
16683 #$(this-package-input "libgff") "/lib")
16684 "-DCMAKE_CXX_FLAGS=\"-DHAVE_NUMERIC_LIMITS128=1\""
16685 "-Dlibgff_FOUND=TRUE"
16686 "-DTBB_FOUND=TRUE"
16687 #$(string-append "-DTBB_VERSION=" (package-version onetbb))
16688 "-DFETCHED_PUFFERFISH=TRUE"
16689 "-DUSE_SHARED_LIBS=TRUE")
16690 #:phases
16691 '(modify-phases %standard-phases
16692 (add-after 'unpack 'prepare-pufferfish
16693 (lambda* (#:key inputs #:allow-other-keys)
16694 (copy-recursively (assoc-ref inputs "pufferfish")
16695 "external/pufferfish")
16696 ;; This test isn't working correctly, so compilation aborts.
16697 (substitute* "external/pufferfish/include/string_view.hpp"
16698 (("#if __has_include\\(<string_view>\\)")
16699 "#if 0"))
16700 (let ((headers "external/install/pufferfish/include/pufferfish")
16701 (source "external/install/src/pufferfish"))
16702 (mkdir-p headers)
16703 (mkdir-p source)
16704 (for-each (lambda (file)
16705 (install-file (string-append "external/pufferfish/include/" file)
16706 headers))
16707 (list "ProgOpts.hpp" "BooPHF.hpp" "SpinLock.hpp"
16708 "Kmer.hpp" "CanonicalKmer.hpp" "string_view.hpp"
16709 "CanonicalKmerIterator.hpp"
16710 "PufferfishBaseIndex.hpp"
16711 "PufferfishIndex.hpp"
16712 "PufferfishSparseIndex.hpp"
16713 "PufferfishLossyIndex.hpp"
16714 "PufferfishTypes.hpp"
16715 "rank9b.hpp" "rank9sel.hpp" "macros.hpp"
16716 "select.hpp" "Util.hpp"
16717 "PairedAlignmentFormatter.hpp"
16718 "SelectiveAlignmentUtils.hpp"
16719 "PuffAligner.hpp" "MemCollector.hpp"
16720 "MemChainer.hpp" "CommonTypes.hpp"
16721 "SAMWriter.hpp" "PufferfishConfig.hpp"
16722 "BulkChunk.hpp" "BinWriter.hpp"))
16723
16724 (for-each (lambda (dir)
16725 (copy-recursively
16726 (string-append "external/pufferfish/include/" dir)
16727 (string-append headers "/" dir)))
16728 (list "libdivide"
16729 "ksw2pp"
16730 "compact_vector"
16731 "itlib"
16732 "metro"
16733 "chobo"
16734 "sparsepp"
16735 "simde"
16736 "tsl"))
16737 (copy-recursively
16738 (string-append "external/pufferfish/src/metro/")
16739 (string-append source "/metro"))
16740 (install-file
16741 (string-append "external/pufferfish/src/rank9b.cpp")
16742 source)
16743
16744 ;; Do not complain about not having built libtbb
16745 (substitute* "external/pufferfish/external/twopaco/CMakeLists.txt"
16746 (("add_dependencies.*") "")))))
16747 (add-after 'unpack 'do-not-phone-home
16748 (lambda _
16749 (substitute* "src/Salmon.cpp"
16750 (("getVersionMessage\\(\\)") "\"\""))))
16751 (add-after 'unpack 'use-system-libraries
16752 (lambda* (#:key inputs #:allow-other-keys)
16753 ;; Ensure that all headers can be found
16754 (setenv "CPLUS_INCLUDE_PATH"
16755 (string-append (or (getenv "CPLUS_INCLUDE_PATH") "")
16756 ":"
16757 (getcwd) "/external/install/pufferfish/include:"
16758 (assoc-ref inputs "eigen")
16759 "/include/eigen3"))))
16760 (add-after 'unpack 'fix-error-message-in-tests
16761 (lambda _
16762 (substitute* "cmake/TestSalmonQuasi.cmake"
16763 (("SALMON_QUASI_INDEX_COMMAND")
16764 "SALMON_QUASI_INDEX_CMD")))))))
16765 (inputs
16766 (list boost-1.83
16767 bzip2
16768 cereal
16769 curl
16770 eigen
16771 htscodecs
16772 jemalloc
16773 libgff
16774 onetbb
16775 libstadenio-for-salmon
16776 xz
16777 zlib))
16778 (native-inputs
16779 `(("pkg-config" ,pkg-config)
16780 ("pufferfish" ,(origin
16781 (method git-fetch)
16782 (uri (git-reference
16783 (url "https://github.com/COMBINE-lab/pufferfish")
16784 (commit (string-append "salmon-v" version))))
16785 (file-name (git-file-name "pufferfish" version))
16786 (sha256
16787 (base32
16788 "0h12h4wv7k3if1m6as7wvrbd7djm0zsg1vs0xn84bnrswwv5z2l3"))))))
16789 (home-page "https://github.com/COMBINE-lab/salmon")
16790 (synopsis "Quantification from RNA-seq reads using lightweight alignments")
16791 (description "Salmon is a program to produce highly-accurate,
16792transcript-level quantification estimates from RNA-seq data. Salmon achieves
16793its accuracy and speed via a number of different innovations, including the
16794use of lightweight alignments (accurate but fast-to-compute proxies for
16795traditional read alignments) and massively-parallel stochastic collapsed
16796variational inference.")
16797 (license license:gpl3+)))
16798
16799(define-public scallop
16800 (package
16801 (name "scallop")
16802 (version "0.10.5")
16803 (source (origin
16804 (method url-fetch)
16805 (uri (string-append "https://github.com/Kingsford-Group/scallop"
16806 "/releases/download/v" version
16807 "/scallop-" version ".tar.gz"))
16808 (sha256
16809 (base32
16810 "0ylkhr5hsmw7bsdszrjz9yqknsijh2fl5n6rjqmdmcdky5hkr7mh"))))
16811 (build-system gnu-build-system)
16812 (inputs
16813 (list boost htslib))
16814 (home-page "https://github.com/Kingsford-Group/scallop")
16815 (synopsis "Reference-based transcriptome assembler for RNA-seq")
16816 (description "Scallop is a reference-based transcript assembler. Scallop
16817features its high accuracy in assembling multi-exon transcripts as well as
16818lowly expressed transcripts.")
16819 (license license:bsd-3)))
16820
16821(define-public python-fanc
16822 (package
16823 (name "python-fanc")
16824 (version "0.9.28")
16825 (source (origin
16826 (method git-fetch)
16827 (uri (git-reference
16828 (url "https://github.com/vaquerizaslab/fanc")
16829 ;; There are no tags. This commit corresponds to
16830 ;; version 0.9.28.
16831 (commit "d5d86085c920a4dca6e5f6be4857129d718243cc")))
16832 (file-name (git-file-name name version))
16833 (sha256
16834 (base32
16835 "0pfl35ancd0izw9w2dp85lznq9rsyv2nv5f5la6dnbvj20d1m06d"))))
16836 (build-system pyproject-build-system)
16837 (arguments
16838 (list
16839 #:test-flags
16840 '(list "-m" "not longrunning"
16841 ;; XXX: some of the tests here just take forever
16842 "--ignore=fanc/test/test_matrix.py"
16843 "--ignore=fanc/test/test_pairs.py")))
16844 (propagated-inputs
16845 (list python-biopython
16846 python-cooler
16847 python-deprecated
16848 python-future
16849 python-genomic-regions
16850 python-gridmap
16851 python-h5py
16852 python-imageio
16853 python-intervaltree
16854 python-matplotlib
16855 python-msgpack
16856 python-msgpack-numpy
16857 python-numpy
16858 python-pandas
16859 python-pillow
16860 python-progressbar2
16861 python-pybedtools
16862 python-pybigwig
16863 python-pysam
16864 python-pywavelets
16865 python-pyyaml
16866 python-scikit-image
16867 python-scikit-learn
16868 python-scipy
16869 python-seaborn
16870 python-tables
16871 python-tifffile))
16872 (native-inputs
16873 (list python-cython python-pytest python-setuptools))
16874 (home-page "https://github.com/vaquerizaslab/fanc")
16875 (synopsis "Framework for the analysis of C-data")
16876 (description
16877 "FAN-C provides a pipeline for analysing Hi-C data starting at
16878mapped paired-end sequencing reads.")
16879 (license license:gpl3+)))
16880
16881(define-public python-genomic-regions
16882 (package
16883 (name "python-genomic-regions")
16884 (version "0.0.10")
16885 (source (origin
16886 (method url-fetch)
16887 (uri (pypi-uri "genomic_regions" version))
16888 (sha256
16889 (base32
16890 "0hz811iyd1prml1r90qyzimmwyjwycwkjqw4vnl12bxy61rfzjz5"))))
16891 (build-system pyproject-build-system)
16892 (propagated-inputs
16893 (list python-future
16894 python-intervaltree
16895 python-numpy
16896 python-pandas
16897 python-pybedtools
16898 python-pybigwig
16899 python-pytest
16900 python-msgpack-numpy
16901 python-cython
16902 python-msgpack
16903 python-pysam))
16904 (native-inputs (list python-setuptools))
16905 (home-page "https://pypi.org/project/genomic-regions/")
16906 (synopsis "Consistently handle genomic regions")
16907 (description "This package aims to simplify working with genomic region /
16908interval data by providing a common interface that lets you access a wide
16909selection of file types and formats for handling genomic region data---all
16910using the same syntax.")
16911 (license license:expat)))
16912
16913(define-public python-goatools
16914 (package
16915 (name "python-goatools")
16916 (version "1.3.1")
16917 ;; Pypi tarball doesn't include test files.
16918 (source (origin
16919 (method git-fetch)
16920 (uri (git-reference
16921 (url "https://github.com/tanghaibao/goatools")
16922 (commit (string-append "v" version))))
16923 (file-name (git-file-name name version))
16924 (sha256
16925 (base32
16926 "0a295zk9jc8kny5vnka63q3gbksins42kcmgvskf8xy7hkca7cmq"))))
16927 (build-system pyproject-build-system)
16928 (arguments
16929 (list
16930 ;; Almost all tests require access to the internet.
16931 #:tests? #false
16932 #:test-flags
16933 ;; These have syntax errors.
16934 '(list "--ignore=tests/test_i195_sgd_gaf.py"
16935 "--ignore=tests/test_i206.py"
16936 "--ignore=tests/test_setup_dirs.py")))
16937 (propagated-inputs (list python-docopt
16938 python-numpy
16939 python-openpyxl
16940 python-pandas
16941 python-pydot
16942 python-requests
16943 python-scipy
16944 python-setuptools
16945 python-statsmodels
16946 python-xlsxwriter))
16947 (native-inputs (list python-pytest))
16948 (home-page "https://github.com/tanghaibao/goatools")
16949 (synopsis "Python scripts to find enrichment of GO terms")
16950 (description "Python scripts to find enrichment of GO terms. In addition,
16951this package is used for processing the obo-formatted file from Gene Ontology
16952website. The data structure is a directed acyclic graph that allows easy
16953traversal from leaf to root.")
16954 (license license:bsd-2)))
16955
16956(define-public python-loompy
16957 (package
16958 (name "python-loompy")
16959 (version "3.0.8")
16960 (source (origin
16961 (method git-fetch)
16962 (uri (git-reference
16963 (url "https://github.com/linnarsson-lab/loompy")
16964 (commit version)))
16965 (file-name (git-file-name name version))
16966 (sha256
16967 (base32
16968 "1v01imvhj3i7pz720y18cq00yc9w4qkwi0ds01claaxxddjclwsp"))))
16969 (build-system pyproject-build-system)
16970 (arguments
16971 (list
16972 #:phases
16973 '(modify-phases %standard-phases
16974 ;; See https://github.com/linnarsson-lab/loompy/issues/169
16975 (add-after 'unpack 'fix-h5py-error
16976 (lambda _
16977 (substitute* "tests/test_file_attribute_manager.py"
16978 (("h5py.File\\(f.name\\)")
16979 "h5py.File(f.name, 'a')"))))
16980 (add-after 'unpack 'numpy-compatibility
16981 (lambda _
16982 (substitute* "tests/test_connection.py"
16983 (("np.int") "int"))))
16984 ;; Numba needs a writable dir to cache functions.
16985 (add-before 'check 'set-numba-cache-dir
16986 (lambda _
16987 (setenv "NUMBA_CACHE_DIR" "/tmp"))))))
16988 (propagated-inputs
16989 (list python-click
16990 python-h5py
16991 python-numba
16992 python-numpy
16993 python-numpy-groupies
16994 python-pandas
16995 python-scipy))
16996 (native-inputs
16997 (list python-pytest python-setuptools))
16998 (home-page "https://github.com/linnarsson-lab/loompy")
16999 (synopsis "Work with .loom files for single-cell RNA-seq data")
17000 (description "The loom file format is an efficient format for very large
17001omics datasets, consisting of a main matrix, optional additional layers, a
17002variable number of row and column annotations. Loom also supports sparse
17003graphs. This library makes it easy to work with @file{.loom} files for
17004single-cell RNA-seq data.")
17005 (license license:bsd-3)))
17006
17007(define-public python-biothings-client
17008 (package
17009 (name "python-biothings-client")
17010 (version "0.4.1")
17011 (source
17012 (origin
17013 (method git-fetch)
17014 (uri (git-reference
17015 (url "https://github.com/biothings/biothings_client.py")
17016 (commit (string-append "v" version))))
17017 (file-name (git-file-name name version))
17018 (sha256
17019 (base32 "1yhrbripg4wr4hg1c9yfv8m1zns37w90fysbbrwm2wlvhmb4i2xq"))))
17020 (build-system pyproject-build-system)
17021 (arguments (list #:tests? #f)) ;require internet access
17022 (native-inputs (list python-pytest python-setuptools))
17023 (propagated-inputs (list python-httpx python-requests))
17024 (home-page "https://github.com/biothings/biothings_client.py")
17025 (synopsis "Python client for BioThings API services")
17026 (description "This package provides a Python client for BioThings
17027API services.")
17028 (license license:bsd-3)))
17029
17030(define-public python-mgatk
17031 (package
17032 (name "python-mgatk")
17033 (version "0.9.0")
17034 (source
17035 (origin
17036 (method git-fetch)
17037 (uri (git-reference
17038 (url "https://github.com/caleblareau/mgatk")
17039 (commit version)))
17040 (file-name (git-file-name name version))
17041 (sha256
17042 (base32
17043 "0lxq9k50a7qh5mnxi5r076c83fnq13q0264zxjvqbv38zsq1bbac"))))
17044 (build-system pyproject-build-system)
17045 (propagated-inputs
17046 (list python-bam-dedup
17047 python-biopython
17048 python-click
17049 python-matplotlib
17050 python-numpy
17051 python-optparse-pretty
17052 python-pandas
17053 python-pysam
17054 python-regex
17055 python-ruamel.yaml
17056 snakemake))
17057 (native-inputs
17058 (list python-pytest python-setuptools))
17059 (home-page "https://github.com/caleblareau/mgatk")
17060 (synopsis "Mitochondrial genome analysis toolkit")
17061 (description "This package is a Python-based command line interface for
17062processing .bam files with mitochondrial reads and generating high-quality
17063heteroplasmy estimation from sequencing data. The mgatk package places a
17064special emphasis on mitochondrial genotypes generated from single-cell
17065genomics data, primarily @acronym{mtscATAC-seq, mitochondrial single-cell
17066ATAC-sequence}, but is generally applicable across other assays.")
17067 (license license:expat)))
17068
17069(define-public python-multicore-tsne
17070 (let ((commit "c1dbf84eb550980876d8ed822af4e9dfd21c5e05")
17071 (revision "1"))
17072 (package
17073 (name "python-multicore-tsne")
17074 (version (git-version "0" revision commit))
17075 (source
17076 (origin
17077 (method git-fetch)
17078 (uri (git-reference
17079 (url "https://github.com/DmitryUlyanov/Multicore-TSNE.git")
17080 (commit commit)))
17081 (file-name (git-file-name name version))
17082 (sha256
17083 (base32
17084 "0dj805mmd35rfkj7jpkhvnj47x51lqpvascjwyaqxj7pwk6sbkzv"))))
17085 (build-system pyproject-build-system)
17086 ;; Tests require an old version of scikit-learn. See
17087 ;; https://github.com/DmitryUlyanov/Multicore-TSNE/issues/97.
17088 (arguments (list #:tests? #false))
17089 (propagated-inputs
17090 (list python-cffi python-numpy python-packaging))
17091 (native-inputs
17092 (list cmake-minimal
17093 python-scipy
17094 python-scikit-learn
17095 python-setuptools))
17096 (home-page "https://github.com/DmitryUlyanov/Multicore-TSNE")
17097 (synopsis "Parallel t-SNE implementation with Python and Torch wrappers")
17098 (description
17099 "This package contains a multicore Barnes-Hut implementation of the
17100t-SNE algorithm. The implementation is described here:
17101@url{http://lvdmaaten.github.io/publications/papers/JMLR_2014.pdf}.")
17102 (license license:bsd-3))))
17103
17104(define-public python-mygene
17105 (package
17106 (name "python-mygene")
17107 (version "3.2.2")
17108 (source
17109 (origin
17110 (method git-fetch)
17111 (uri (git-reference
17112 (url "https://github.com/biothings/mygene.py")
17113 (commit (string-append "v" version))))
17114 (file-name (git-file-name name version))
17115 (sha256
17116 (base32 "0f6mpbbcs72w20zxsnzdqbhn2ldxlafaq3qd0iwk6rfvwk66bb7w"))))
17117 (build-system pyproject-build-system)
17118 (arguments
17119 (list #:tests? #f)) ;they need network connection
17120 (native-inputs
17121 (list python-setuptools))
17122 (propagated-inputs
17123 (list python-biothings-client))
17124 (home-page "https://github.com/biothings/mygene.py")
17125 (synopsis "Python Client for MyGene.Info services")
17126 (description "MyGene.Info provides simple-to-use REST web services
17127to query/retrieve gene annotation data. It's designed with simplicity
17128and performance emphasized. Mygene is a Python wrapper to access
17129MyGene.Info services.")
17130 (license license:bsd-3)))
17131
17132;; We cannot use the latest commit because it requires Java 9.
17133(define-public java-forester
17134 (let ((commit "86b07efe302d5094b42deed9260f719a4c4ac2e6")
17135 (revision "1"))
17136 (package
17137 (name "java-forester")
17138 (version (string-append "0-" revision "." (string-take commit 7)))
17139 (source (origin
17140 (method git-fetch)
17141 (uri (git-reference
17142 (url "https://github.com/cmzmasek/forester")
17143 (commit commit)))
17144 (file-name (string-append name "-" version "-checkout"))
17145 (sha256
17146 (base32
17147 "0vxavc1yrf84yrnf20dq26hi0lglidk8d382xrxsy4qmlbjd276z"))
17148 (modules '((guix build utils)))
17149 (snippet
17150 '(begin
17151 ;; Delete bundled jars and pre-built classes
17152 (delete-file-recursively "forester/java/resources")
17153 (delete-file-recursively "forester/java/classes")
17154 (for-each delete-file (find-files "forester/java/" "\\.jar$"))
17155 ;; Delete bundled applications
17156 (delete-file-recursively "forester_applications")
17157 #t))))
17158 (build-system ant-build-system)
17159 (arguments
17160 `(#:tests? #f ; there are none
17161 #:jdk ,icedtea-8
17162 #:modules ((guix build ant-build-system)
17163 (guix build utils)
17164 (guix build java-utils)
17165 (sxml simple)
17166 (sxml transform))
17167 #:phases
17168 (modify-phases %standard-phases
17169 (add-after 'unpack 'chdir
17170 (lambda _ (chdir "forester/java") #t))
17171 (add-after 'chdir 'fix-dependencies
17172 (lambda _
17173 (chmod "build.xml" #o664)
17174 (call-with-output-file "build.xml.new"
17175 (lambda (port)
17176 (sxml->xml
17177 (pre-post-order
17178 (with-input-from-file "build.xml"
17179 (lambda _ (xml->sxml #:trim-whitespace? #t)))
17180 `(;; Remove all unjar tags to avoid repacking classes.
17181 (unjar . ,(lambda _ '()))
17182 (*default* . ,(lambda (tag . kids) `(,tag ,@kids)))
17183 (*text* . ,(lambda (_ txt) txt))))
17184 port)))
17185 (rename-file "build.xml.new" "build.xml")
17186 #t))
17187 ;; FIXME: itext is difficult to package as it depends on a few
17188 ;; unpackaged libraries.
17189 (add-after 'chdir 'remove-dependency-on-unpackaged-itext
17190 (lambda _
17191 (delete-file "src/org/forester/archaeopteryx/PdfExporter.java")
17192 (substitute* "src/org/forester/archaeopteryx/MainFrame.java"
17193 (("pdf_written_to = PdfExporter.*")
17194 "throw new IOException(\"PDF export is not available.\");"))
17195 #t))
17196 ;; There is no install target
17197 (replace 'install (install-jars ".")))))
17198 (propagated-inputs
17199 (list java-commons-codec java-openchart2))
17200 (home-page "https://sites.google.com/site/cmzmasek/home/software/forester")
17201 (synopsis "Phylogenomics libraries for Java")
17202 (description "Forester is a collection of Java libraries for
17203phylogenomics and evolutionary biology research. It includes support for
17204reading, writing, and exporting phylogenetic trees.")
17205 (license license:lgpl2.1+))))
17206
17207(define-public java-forester-1.005
17208 (package
17209 (name "java-forester")
17210 (version "1.005")
17211 (source (origin
17212 (method url-fetch)
17213 (uri (string-append "https://repo1.maven.org/maven2/"
17214 "org/biojava/thirdparty/forester/"
17215 version "/forester-" version "-sources.jar"))
17216 (file-name (string-append name "-" version ".jar"))
17217 (sha256
17218 (base32
17219 "04r8qv4rk3p71z4ajrvp11py1z46qrx0047j3zzs79s6lnsm3lcv"))))
17220 (build-system ant-build-system)
17221 (arguments
17222 `(#:tests? #f ; there are none
17223 #:jdk ,icedtea-8
17224 #:modules ((guix build ant-build-system)
17225 (guix build utils)
17226 (guix build java-utils)
17227 (sxml simple)
17228 (sxml transform))
17229 #:phases
17230 (modify-phases %standard-phases
17231 (add-after 'unpack 'fix-dependencies
17232 (lambda* (#:key inputs #:allow-other-keys)
17233 (call-with-output-file "build.xml"
17234 (lambda (port)
17235 (sxml->xml
17236 (pre-post-order
17237 (with-input-from-file "src/build.xml"
17238 (lambda _ (xml->sxml #:trim-whitespace? #t)))
17239 `(;; Remove all unjar tags to avoid repacking classes.
17240 (unjar . ,(lambda _ '()))
17241 (*default* . ,(lambda (tag . kids) `(,tag ,@kids)))
17242 (*text* . ,(lambda (_ txt) txt))))
17243 port)))
17244 (copy-file (assoc-ref inputs "synth_look_and_feel_1.xml")
17245 "synth_look_and_feel_1.xml")
17246 (copy-file (assoc-ref inputs "phyloxml.xsd")
17247 "phyloxml.xsd")
17248 (substitute* "build.xml"
17249 (("../resources/synth_laf/synth_look_and_feel_1.xml")
17250 "synth_look_and_feel_1.xml")
17251 (("../resources/phyloxml_schema/1.10/phyloxml.xsd")
17252 "phyloxml.xsd"))
17253 #t))
17254 ;; FIXME: itext is difficult to package as it depends on a few
17255 ;; unpackaged libraries.
17256 (add-after 'unpack 'remove-dependency-on-unpackaged-itext
17257 (lambda _
17258 (delete-file "src/org/forester/archaeopteryx/PdfExporter.java")
17259 (substitute* '("src/org/forester/archaeopteryx/MainFrame.java"
17260 "src/org/forester/archaeopteryx/MainFrameApplication.java")
17261 (("pdf_written_to = PdfExporter.*")
17262 "throw new IOException(\"PDF export is not available.\"); /*")
17263 ((".getPrintSizeX\\(\\), getOptions\\(\\).getPrintSizeY\\(\\) \\);") "*/")
17264 (("getCurrentTreePanel\\(\\).getHeight\\(\\) \\);") "*/"))
17265 #t))
17266 (add-after 'unpack 'delete-pre-built-classes
17267 (lambda _ (delete-file-recursively "src/classes") #t))
17268 ;; There is no install target
17269 (replace 'install (install-jars ".")))))
17270 (propagated-inputs
17271 (list java-commons-codec java-openchart2))
17272 ;; The source archive does not contain the resources.
17273 (native-inputs
17274 `(("phyloxml.xsd"
17275 ,(origin
17276 (method url-fetch)
17277 (uri (string-append "https://raw.githubusercontent.com/cmzmasek/forester/"
17278 "b61cc2dcede0bede317db362472333115756b8c6/"
17279 "forester/resources/phyloxml_schema/1.10/phyloxml.xsd"))
17280 (file-name (string-append name "-phyloxml-" version ".xsd"))
17281 (sha256
17282 (base32
17283 "1zxc4m8sn4n389nqdnpxa8d0k17qnr3pm2y5y6g6vh4k0zm52npv"))))
17284 ("synth_look_and_feel_1.xml"
17285 ,(origin
17286 (method url-fetch)
17287 (uri (string-append "https://raw.githubusercontent.com/cmzmasek/forester/"
17288 "29e04321615da6b35c1e15c60e52caf3f21d8e6a/"
17289 "forester/java/classes/resources/"
17290 "synth_look_and_feel_1.xml"))
17291 (file-name (string-append name "-synth-look-and-feel-" version ".xml"))
17292 (sha256
17293 (base32
17294 "1gv5602gv4k7y7713y75a4jvj7i9s7nildsbdl7n9q10sc2ikg8h"))))))
17295 (home-page "https://sites.google.com/site/cmzmasek/home/software/forester")
17296 (synopsis "Phylogenomics libraries for Java")
17297 (description "Forester is a collection of Java libraries for
17298phylogenomics and evolutionary biology research. It includes support for
17299reading, writing, and exporting phylogenetic trees.")
17300 (license license:lgpl2.1+)))
17301
17302(define-public java-biojava-core
17303 (package
17304 (name "java-biojava-core")
17305 (version "4.2.11")
17306 (source (origin
17307 (method git-fetch)
17308 (uri (git-reference
17309 (url "https://github.com/biojava/biojava")
17310 (commit (string-append "biojava-" version))))
17311 (file-name (string-append name "-" version "-checkout"))
17312 (sha256
17313 (base32
17314 "1bvryh2bpsvash8ln79cmc9sqm8qw72hz4xzwqxcrjm8ssxszhqk"))))
17315 (build-system ant-build-system)
17316 (arguments
17317 `(#:jdk ,icedtea-8
17318 #:jar-name "biojava-core.jar"
17319 #:source-dir "biojava-core/src/main/java/"
17320 #:test-dir "biojava-core/src/test"
17321 ;; These tests seem to require internet access.
17322 #:test-exclude (list "**/SearchIOTest.java"
17323 "**/BlastXMLParserTest.java"
17324 "**/GenbankCookbookTest.java"
17325 "**/GenbankProxySequenceReaderTest.java")
17326 #:phases
17327 (modify-phases %standard-phases
17328 (add-before 'build 'copy-resources
17329 (lambda _
17330 (copy-recursively "biojava-core/src/main/resources"
17331 "build/classes")
17332 #t))
17333 (add-before 'check 'copy-test-resources
17334 (lambda _
17335 (copy-recursively "biojava-core/src/test/resources"
17336 "build/test-classes")
17337 #t)))))
17338 (propagated-inputs
17339 (list java-log4j-api java-log4j-core java-slf4j-api
17340 java-slf4j-simple))
17341 (native-inputs
17342 (list java-junit java-hamcrest-core))
17343 (home-page "https://biojava.org")
17344 (synopsis "Core libraries of Java framework for processing biological data")
17345 (description "BioJava is a project dedicated to providing a Java framework
17346for processing biological data. It provides analytical and statistical
17347routines, parsers for common file formats, reference implementations of
17348popular algorithms, and allows the manipulation of sequences and 3D
17349structures. The goal of the biojava project is to facilitate rapid
17350application development for bioinformatics.
17351
17352This package provides the core libraries.")
17353 (license license:lgpl2.1+)))
17354
17355(define-public java-biojava-phylo
17356 (package (inherit java-biojava-core)
17357 (name "java-biojava-phylo")
17358 (build-system ant-build-system)
17359 (arguments
17360 `(#:jdk ,icedtea-8
17361 #:jar-name "biojava-phylo.jar"
17362 #:source-dir "biojava-phylo/src/main/java/"
17363 #:test-dir "biojava-phylo/src/test"
17364 #:phases
17365 (modify-phases %standard-phases
17366 (add-before 'build 'copy-resources
17367 (lambda _
17368 (copy-recursively "biojava-phylo/src/main/resources"
17369 "build/classes")
17370 #t))
17371 (add-before 'check 'copy-test-resources
17372 (lambda _
17373 (copy-recursively "biojava-phylo/src/test/resources"
17374 "build/test-classes")
17375 #t)))))
17376 (propagated-inputs
17377 (list java-log4j-api
17378 java-log4j-core
17379 java-slf4j-api
17380 java-slf4j-simple
17381 java-biojava-core
17382 java-forester))
17383 (native-inputs
17384 (list java-junit java-hamcrest-core))
17385 (home-page "https://biojava.org")
17386 (synopsis "Biojava interface to the forester phylogenomics library")
17387 (description "The phylo module provides a biojava interface layer to the
17388forester phylogenomics library for constructing phylogenetic trees.")))
17389
17390(define-public java-biojava-alignment
17391 (package (inherit java-biojava-core)
17392 (name "java-biojava-alignment")
17393 (build-system ant-build-system)
17394 (arguments
17395 `(#:jdk ,icedtea-8
17396 #:jar-name "biojava-alignment.jar"
17397 #:source-dir "biojava-alignment/src/main/java/"
17398 #:test-dir "biojava-alignment/src/test"
17399 #:phases
17400 (modify-phases %standard-phases
17401 (add-before 'build 'copy-resources
17402 (lambda _
17403 (copy-recursively "biojava-alignment/src/main/resources"
17404 "build/classes")
17405 #t))
17406 (add-before 'check 'copy-test-resources
17407 (lambda _
17408 (copy-recursively "biojava-alignment/src/test/resources"
17409 "build/test-classes")
17410 #t)))))
17411 (propagated-inputs
17412 (list java-log4j-api
17413 java-log4j-core
17414 java-slf4j-api
17415 java-slf4j-simple
17416 java-biojava-core
17417 java-biojava-phylo
17418 java-forester))
17419 (native-inputs
17420 (list java-junit java-hamcrest-core))
17421 (home-page "https://biojava.org")
17422 (synopsis "Biojava API for genetic sequence alignment")
17423 (description "The alignment module of BioJava provides an API that
17424contains
17425
17426@itemize
17427@item implementations of dynamic programming algorithms for sequence
17428 alignment;
17429@item reading and writing of popular alignment file formats;
17430@item a single-, or multi- threaded multiple sequence alignment algorithm.
17431@end itemize\n")))
17432
17433(define-public java-biojava-core-4.0
17434 (package (inherit java-biojava-core)
17435 (name "java-biojava-core")
17436 (version "4.0.0")
17437 (source (origin
17438 (method git-fetch)
17439 (uri (git-reference
17440 (url "https://github.com/biojava/biojava")
17441 (commit (string-append "biojava-" version))))
17442 (file-name (string-append name "-" version "-checkout"))
17443 (sha256
17444 (base32
17445 "13675f6y9aqi7bi2lk3s1z7a22ynccjiqwa8izh7p97xi9wsfmd8"))))))
17446
17447(define-public java-biojava-phylo-4.0
17448 (package (inherit java-biojava-core-4.0)
17449 (name "java-biojava-phylo")
17450 (build-system ant-build-system)
17451 (arguments
17452 `(#:jdk ,icedtea-8
17453 #:jar-name "biojava-phylo.jar"
17454 #:source-dir "biojava-phylo/src/main/java/"
17455 #:test-dir "biojava-phylo/src/test"
17456 #:phases
17457 (modify-phases %standard-phases
17458 (add-before 'build 'copy-resources
17459 (lambda _
17460 (copy-recursively "biojava-phylo/src/main/resources"
17461 "build/classes")
17462 #t))
17463 (add-before 'check 'copy-test-resources
17464 (lambda _
17465 (copy-recursively "biojava-phylo/src/test/resources"
17466 "build/test-classes")
17467 #t)))))
17468 (propagated-inputs
17469 (list java-log4j-api
17470 java-log4j-core
17471 java-slf4j-api
17472 java-slf4j-simple
17473 java-biojava-core-4.0
17474 java-forester-1.005))
17475 (native-inputs
17476 (list java-junit java-hamcrest-core))
17477 (home-page "https://biojava.org")
17478 (synopsis "Biojava interface to the forester phylogenomics library")
17479 (description "The phylo module provides a biojava interface layer to the
17480forester phylogenomics library for constructing phylogenetic trees.")))
17481
17482(define-public java-biojava-alignment-4.0
17483 (package (inherit java-biojava-core-4.0)
17484 (name "java-biojava-alignment")
17485 (build-system ant-build-system)
17486 (arguments
17487 `(#:jdk ,icedtea-8
17488 #:jar-name "biojava-alignment.jar"
17489 #:source-dir "biojava-alignment/src/main/java/"
17490 #:test-dir "biojava-alignment/src/test"
17491 #:phases
17492 (modify-phases %standard-phases
17493 (add-before 'build 'copy-resources
17494 (lambda _
17495 (copy-recursively "biojava-alignment/src/main/resources"
17496 "build/classes")
17497 #t))
17498 (add-before 'check 'copy-test-resources
17499 (lambda _
17500 (copy-recursively "biojava-alignment/src/test/resources"
17501 "build/test-classes")
17502 #t)))))
17503 (propagated-inputs
17504 (list java-log4j-api
17505 java-log4j-core
17506 java-slf4j-api
17507 java-slf4j-simple
17508 java-biojava-core-4.0
17509 java-biojava-phylo-4.0
17510 java-forester-1.005))
17511 (native-inputs
17512 (list java-junit java-hamcrest-core))
17513 (home-page "https://biojava.org")
17514 (synopsis "Biojava API for genetic sequence alignment")
17515 (description "The alignment module of BioJava provides an API that
17516contains
17517
17518@itemize
17519@item implementations of dynamic programming algorithms for sequence
17520 alignment;
17521@item reading and writing of popular alignment file formats;
17522@item a single-, or multi- threaded multiple sequence alignment algorithm.
17523@end itemize\n")))
17524
17525(define-public dropseq-tools
17526 (package
17527 (name "dropseq-tools")
17528 (version "1.13")
17529 (source
17530 (origin
17531 (method url-fetch)
17532 (uri "http://mccarrolllab.com/download/1276/")
17533 (file-name (string-append "dropseq-tools-" version ".zip"))
17534 (sha256
17535 (base32 "0yrffckxqk5l8b5xb6z4laq157zd9mdypr2p4b4vq2bhjzi1sj0s"))
17536 ;; Delete bundled libraries
17537 (modules '((guix build utils)))
17538 (snippet
17539 '(begin
17540 (for-each delete-file
17541 (find-files "jar/lib" "\\.jar$"))
17542 (delete-file-recursively "3rdParty")))))
17543 (build-system ant-build-system)
17544 (arguments
17545 (list
17546 #:tests? #f ;test data are not included
17547 #:test-target "test"
17548 #:build-target "all"
17549 #:source-dir "public/src/"
17550 #:jdk icedtea-8
17551 #:make-flags
17552 #~(list (string-append "-Dpicard.executable.dir="
17553 #$(this-package-input "java-picard")
17554 "/share/java/"))
17555 #:modules `((ice-9 match)
17556 (srfi srfi-1)
17557 (guix build utils)
17558 (guix build java-utils)
17559 (guix build ant-build-system))
17560 #:phases
17561 #~(modify-phases %standard-phases
17562 ;; FIXME: fails with "java.io.FileNotFoundException:
17563 ;; /gnu/store/…-dropseq-tools-1.13/share/java/lib/biojava-alignment.jar"
17564 (delete 'generate-jar-indices)
17565 ;; All dependencies must be linked to "lib", because that's where
17566 ;; they will be searched for when the Class-Path property of the
17567 ;; manifest is computed.
17568 (add-after 'unpack 'record-references
17569 (lambda* (#:key inputs #:allow-other-keys)
17570 (mkdir-p "jar/lib")
17571 (let ((dirs (filter-map
17572 (match-lambda
17573 ((name . dir)
17574 (and (string-prefix? "java-" name)
17575 (not (string=? name "java-testng"))
17576 dir)))
17577 inputs)))
17578 (for-each
17579 (lambda (jar)
17580 (symlink jar (string-append "jar/lib/" (basename jar))))
17581 (append-map (lambda (dir)
17582 (find-files dir "\\.jar$"))
17583 dirs)))))
17584 ;; There is no installation target
17585 (replace 'install
17586 (lambda* (#:key inputs #:allow-other-keys)
17587 (let* ((bin (string-append #$output "/bin"))
17588 (share (string-append #$output "/share/java/"))
17589 (scripts (list "BAMTagHistogram"
17590 "BAMTagofTagCounts"
17591 "BaseDistributionAtReadPosition"
17592 "CollapseBarcodesInPlace"
17593 "CollapseTagWithContext"
17594 "ConvertToRefFlat"
17595 "CreateIntervalsFiles"
17596 "DetectBeadSynthesisErrors"
17597 "DigitalExpression"
17598 "Drop-seq_alignment.sh"
17599 "FilterBAM"
17600 "FilterBAMByTag"
17601 "GatherGeneGCLength"
17602 "GatherMolecularBarcodeDistributionByGene"
17603 "GatherReadQualityMetrics"
17604 "PolyATrimmer"
17605 "ReduceGTF"
17606 "SelectCellsByNumTranscripts"
17607 "SingleCellRnaSeqMetricsCollector"
17608 "TagBamWithReadSequenceExtended"
17609 "TagReadWithGeneExon"
17610 "TagReadWithInterval"
17611 "TrimStartingSequence"
17612 "ValidateReference")))
17613 (install-file "dist/dropseq.jar" share)
17614 (for-each (lambda (script)
17615 (chmod script #o555)
17616 (install-file script bin))
17617 scripts)
17618 (with-directory-excursion bin
17619 (substitute* scripts
17620 (("^java")
17621 (which "java"))
17622 (("jar_deploy_dir=.*")
17623 (string-append "jar_deploy_dir=" share "\n")))))))
17624 ;; FIXME: We do this after stripping jars because we don't want it to
17625 ;; copy all these jars and strip them. We only want to install
17626 ;; links. Arguably, this is a problem with the ant-build-system.
17627 (add-after 'strip-jar-timestamps 'install-links
17628 (lambda _
17629 (let ((lib (string-append #$output "/share/java/lib/")))
17630 (mkdir-p lib)
17631 (for-each (lambda (jar)
17632 (symlink (readlink jar)
17633 (string-append lib (basename jar))))
17634 (find-files "jar/lib" "\\.jar$"))))))))
17635 (inputs
17636 (list icedtea-8
17637 java-picard-2.10.3
17638 java-log4j-1.2-api
17639 java-commons-math3
17640 java-commons-jexl-2
17641 java-commons-collections4
17642 java-commons-lang
17643 java-commons-io
17644 java-snappy-1
17645 java-guava
17646 java-la4j
17647 java-biojava-core-4.0
17648 java-biojava-alignment-4.0
17649 java-jdistlib
17650 java-simple-xml
17651 java-snakeyaml))
17652 (native-inputs (list unzip java-testng))
17653 (home-page "http://mccarrolllab.com/dropseq/")
17654 (synopsis "Tools for Drop-seq analyses")
17655 (description
17656 "Drop-seq is a technology to enable biologists to analyze RNA expression
17657genome-wide in thousands of individual cells at once. This package provides
17658tools to perform Drop-seq analyses.")
17659 (license license:expat)))
17660
17661(define-public pigx-rnaseq
17662 (let ((commit "1605b541da090e13d58dae6fed38ae8dda09f002"))
17663 (package
17664 (name "pigx-rnaseq")
17665 (version (git-version "0.1.1" "0" commit))
17666 (source (origin
17667 (method git-fetch)
17668 (uri (git-reference
17669 (url "https://github.com/BIMSBbioinfo/pigx_rnaseq/")
17670 (commit commit)
17671 (recursive? #true)))
17672 (file-name (git-file-name name version))
17673 (sha256
17674 (base32
17675 "1j5c0wlasmxvz9z64yga56m2hhbybl149kknsrpvmq0v2gl31rn5"))))
17676 (build-system gnu-build-system)
17677 (arguments
17678 (list
17679 #:parallel-tests? #f ; not supported
17680 #:phases
17681 '(modify-phases %standard-phases
17682 ;; "test.sh" runs the whole pipeline, which takes a long time and
17683 ;; might fail due to OOM. The MultiQC is also resource intensive.
17684 (add-after 'unpack 'disable-resource-intensive-test
17685 (lambda _
17686 (substitute* "Makefile.am"
17687 (("^ tests/test_multiqc/test.sh.*") "")
17688 (("^ tests/test_hisat2/test.sh.*") " tests/test_hisat2/test.sh\n")
17689 (("^ test.sh") ""))))
17690 (add-before 'bootstrap 'autoreconf
17691 (lambda _
17692 (invoke "autoreconf" "-vif")))
17693 (add-before 'configure 'set-PYTHONPATH
17694 (lambda _
17695 (setenv "PYTHONPATH" (getenv "GUIX_PYTHONPATH"))))
17696 (add-before 'check 'set-timezone
17697 ;; The readr package is picky about timezones.
17698 (lambda* (#:key inputs #:allow-other-keys)
17699 (setenv "TZ" "UTC+1")
17700 (setenv "TZDIR"
17701 (search-input-directory inputs
17702 "share/zoneinfo"))))
17703 (add-before 'check 'pre-check
17704 (lambda _
17705 ;; Needed for tests
17706 (setenv "HOME" "/tmp"))))))
17707 (inputs
17708 (list coreutils
17709 sed
17710 gzip
17711 snakemake
17712 megadepth
17713 multiqc
17714 star-for-pigx
17715 hisat2
17716 fastp
17717 htseq
17718 samtools
17719 r-minimal
17720 r-rmarkdown
17721 r-genomeinfodb
17722 r-ggplot2
17723 r-ggpubr
17724 r-ggrepel
17725 r-gprofiler2
17726 r-deseq2
17727 r-dt
17728 r-knitr
17729 r-pheatmap
17730 r-corrplot
17731 r-reshape2
17732 r-plotly
17733 r-scales
17734 r-summarizedexperiment
17735 r-crosstalk
17736 r-tximport
17737 r-rtracklayer
17738 r-rjson
17739 salmon
17740 pandoc
17741 python-wrapper
17742 python-deeptools
17743 python-pyyaml))
17744 (native-inputs
17745 (list tzdata automake autoconf))
17746 (home-page "https://bioinformatics.mdc-berlin.de/pigx/")
17747 (synopsis "Analysis pipeline for RNA sequencing experiments")
17748 (description "PiGX RNAseq is an analysis pipeline for preprocessing and
17749reporting for RNA sequencing experiments. It is easy to use and produces high
17750quality reports. The inputs are reads files from the sequencing experiment,
17751and a configuration file which describes the experiment. In addition to
17752quality control of the experiment, the pipeline produces a differential
17753expression report comparing samples in an easily configurable manner.")
17754 (license license:gpl3+))))
17755
17756(define-public pigx-chipseq
17757 (package
17758 (name "pigx-chipseq")
17759 (version "0.2.0")
17760 (source (origin
17761 (method url-fetch)
17762 (uri (string-append "https://github.com/BIMSBbioinfo/pigx_chipseq/"
17763 "releases/download/v" version
17764 "/pigx_chipseq-" version ".tar.gz"))
17765 (sha256
17766 (base32
17767 "09m1bpjapfxwhzrnvfs2g2zv28k6af7yf7s5ji861nb9bwlkmyi7"))))
17768 (build-system gnu-build-system)
17769 (arguments
17770 `(#:tests? #f ; parts of the tests rely on access to the network
17771 #:phases
17772 (modify-phases %standard-phases
17773 (add-before 'configure 'set-PYTHONPATH
17774 (lambda _
17775 (setenv "PYTHONPATH" (getenv "GUIX_PYTHONPATH"))))
17776 (add-before 'check 'pre-check
17777 (lambda _
17778 ;; Needed for tests
17779 (setenv "HOME" "/tmp"))))))
17780 (inputs
17781 (list grep
17782 coreutils
17783 r-minimal
17784 r-argparser
17785 r-biocparallel
17786 r-biostrings
17787 r-chipseq
17788 r-corrplot
17789 r-data-table
17790 r-deseq2
17791 r-dplyr
17792 r-dt
17793 r-genomation
17794 r-genomicalignments
17795 r-genomicranges
17796 r-ggplot2
17797 r-ggrepel
17798 r-gprofiler2
17799 r-heatmaply
17800 r-hexbin
17801 r-htmlwidgets
17802 r-jsonlite
17803 r-pheatmap
17804 r-plotly
17805 r-rmarkdown
17806 r-rsamtools
17807 r-rsubread
17808 r-rtracklayer
17809 r-s4vectors
17810 r-stringr
17811 r-tibble
17812 r-tidyr
17813 python-wrapper
17814 python-pyyaml
17815 python-magic
17816 python-xlrd
17817 trim-galore
17818 macs
17819 multiqc
17820 perl
17821 pandoc
17822 fastqc
17823 bowtie
17824 idr
17825 snakemake
17826 samtools
17827 bedtools
17828 kentutils))
17829 (native-inputs
17830 (list python-pytest))
17831 (home-page "https://bioinformatics.mdc-berlin.de/pigx/")
17832 (synopsis "Analysis pipeline for ChIP sequencing experiments")
17833 (description "PiGX ChIPseq is an analysis pipeline for preprocessing, peak
17834calling and reporting for ChIP sequencing experiments. It is easy to use and
17835produces high quality reports. The inputs are reads files from the sequencing
17836experiment, and a configuration file which describes the experiment. In
17837addition to quality control of the experiment, the pipeline enables to set up
17838multiple peak calling analysis and allows the generation of a UCSC track hub
17839in an easily configurable manner.")
17840 (license license:gpl3+)))
17841
17842(define-public pigx-bsseq
17843 (let ((commit "1b3a69bd5363fa882af4193215de7fb475bae066"))
17844 (package
17845 (name "pigx-bsseq")
17846 (version (git-version "0.1.10" "0" commit))
17847 (source (origin
17848 (method git-fetch)
17849 (uri (git-reference
17850 (url "https://github.com/BIMSBbioinfo/pigx_bsseq/")
17851 (commit commit)
17852 (recursive? #true)))
17853 (file-name (git-file-name name version))
17854 (sha256
17855 (base32
17856 "0r0gjfycgh1hqba7ma03bwxlvr2kz68yzclx5iba3wrxxqmivil6"))))
17857 (build-system gnu-build-system)
17858 (arguments
17859 (list
17860 ;; TODO: tests currently require 12+GB of RAM. See
17861 ;; https://github.com/BIMSBbioinfo/pigx_bsseq/issues/164
17862 #:tests? #f
17863 #:phases
17864 '(modify-phases %standard-phases
17865 ;; This file is meant for development, but it interferes with
17866 ;; Makefile.
17867 (add-after 'unpack 'delete-GNUmakefile
17868 (lambda _ (delete-file "GNUmakefile")))
17869 (add-before 'configure 'set-PYTHONPATH
17870 (lambda _
17871 (setenv "PYTHONPATH" (getenv "GUIX_PYTHONPATH"))))
17872 (add-before 'check 'set-timezone
17873 ;; The readr package is picky about timezones.
17874 (lambda* (#:key inputs #:allow-other-keys)
17875 (setenv "TZ" "UTC+1")
17876 (setenv "TZDIR"
17877 (search-input-directory inputs
17878 "share/zoneinfo"))))
17879 (add-before 'check 'pre-check
17880 (lambda _
17881 ;; Needed for tests
17882 (setenv "HOME" "/tmp"))))))
17883 (native-inputs
17884 (list tzdata-for-tests autoconf automake))
17885 (inputs
17886 (list coreutils
17887 sed
17888 grep
17889 r-minimal
17890 r-annotationhub
17891 r-dt
17892 r-genomation
17893 r-ggbio
17894 r-ggrepel
17895 r-matrixstats
17896 r-methylkit
17897 r-reshape2
17898 r-rtracklayer
17899 r-rmarkdown
17900 r-bookdown
17901 r-ggplot2
17902 r-ggbio
17903 pandoc
17904 python-wrapper
17905 python-pyyaml
17906 snakemake
17907 bismark
17908 bowtie
17909 bwa-meth
17910 fastqc
17911 methyldackel
17912 multiqc
17913 trim-galore
17914 cutadapt
17915 samblaster
17916 samtools))
17917 (home-page "https://bioinformatics.mdc-berlin.de/pigx/")
17918 (synopsis "Bisulfite sequencing pipeline from fastq to methylation reports")
17919 (description "PiGx BSseq is a data processing pipeline for raw fastq read
17920data of bisulfite experiments; it produces reports on aggregate methylation
17921and coverage and can be used to produce information on differential
17922methylation and segmentation.")
17923 (license license:gpl3+))))
17924
17925(define-public pigx-scrnaseq
17926 (package
17927 (name "pigx-scrnaseq")
17928 (version "1.1.10")
17929 (source
17930 (origin
17931 (method url-fetch)
17932 (uri (string-append "https://github.com/BIMSBbioinfo/pigx_scrnaseq/"
17933 "releases/download/v" version
17934 "/pigx_scrnaseq-" version ".tar.gz"))
17935 (sha256
17936 (base32 "082im1j6qpd2y8ax4msxw7mfc40zxpl29hx92skqdd55745f58z8"))
17937 (patches
17938 (list
17939 (origin
17940 (method url-fetch)
17941 (uri
17942 (let ((commit "fd556e2708b696cd6925f8f74430491afa0377ee"))
17943 (string-append "https://github.com/BIMSBbioinfo/pigx_scrnaseq/"
17944 "commit/" commit ".patch")))
17945 (sha256
17946 (base32 "1lbgq3jskkppw3p6i5h0p09n36bv1lmjifaq6914w4cndddrp3ds")))))))
17947 (build-system gnu-build-system)
17948 (arguments
17949 (list
17950 #:phases
17951 '(modify-phases %standard-phases
17952 (add-before 'configure 'set-additional-environment-variables
17953 (lambda _
17954 ;; Needed for tests
17955 (setenv "HOME" "/tmp")
17956 ;; Needed because of loompy
17957 (setenv "NUMBA_CACHE_DIR" "/tmp")
17958 ;; Needed to capture environment
17959 (setenv "PYTHONPATH" (getenv "GUIX_PYTHONPATH")))))))
17960 (native-inputs
17961 (list python-setuptools))
17962 (inputs
17963 (list coreutils
17964 perl
17965 fastqc
17966 flexbar
17967 icedtea-8
17968 jellyfish
17969 python-wrapper
17970 python-pyyaml
17971 python-pandas
17972 python-magic
17973 python-numpy-1
17974 python-loompy
17975 pandoc
17976 samtools
17977 snakemake
17978 star-for-pigx
17979 r-minimal
17980 r-argparser
17981 r-cowplot
17982 r-data-table
17983 r-delayedarray
17984 r-delayedmatrixstats
17985 r-dplyr
17986 r-dropbead
17987 r-dt
17988 r-genomicalignments
17989 r-genomicfiles
17990 r-genomicranges
17991 r-ggplot2
17992 r-hdf5array
17993 r-pheatmap
17994 r-rmarkdown
17995 r-rsamtools
17996 r-rtracklayer
17997 r-rtsne
17998 r-scater
17999 r-scran
18000 r-seurat
18001 r-singlecellexperiment
18002 r-stringr
18003 r-yaml))
18004 (home-page "https://bioinformatics.mdc-berlin.de/pigx/")
18005 (synopsis "Analysis pipeline for single-cell RNA sequencing experiments")
18006 (description
18007 "PiGX scRNAseq is an analysis pipeline for preprocessing and
18008quality control for single cell RNA sequencing experiments. The inputs are
18009read files from the sequencing experiment, and a configuration file which
18010describes the experiment. It produces processed files for downstream analysis
18011and interactive quality reports. The pipeline is designed to work with UMI
18012based methods.")
18013 (license license:gpl3+)))
18014
18015(define-public pigx-sars-cov-2
18016 (package
18017 (name "pigx-sars-cov-2")
18018 (version "0.0.9")
18019 (source (origin
18020 (method url-fetch)
18021 (uri (string-append "https://github.com/BIMSBbioinfo/pigx_sars-cov-2"
18022 "/releases/download/v" version
18023 "/pigx_sars-cov-2-" version ".tar.gz"))
18024 (sha256
18025 (base32
18026 "168hrafgsn165q3hcdn916vlbl0zbzri1lckaqapbrcqk00izxma"))))
18027 (build-system gnu-build-system)
18028 (arguments
18029 (list
18030 #:phases
18031 '(modify-phases %standard-phases
18032 (add-after 'unpack 'unpack-databases
18033 (lambda* (#:key inputs #:allow-other-keys)
18034 ;; The tests need to be able to write caches to HOME.
18035 ;; They also default to reading the databases from there.
18036 (setenv "HOME" "/tmp")
18037 ;; Unpack the three databases in the expected location.
18038 (let ((root "/tmp/.local/share/pigx/databases")
18039 (use-underscore (lambda (c) (if (equal? c #\-) #\_ c))))
18040 (for-each (lambda (db)
18041 (let ((where (string-append root "/"
18042 (string-map use-underscore db))))
18043 (mkdir-p where)
18044 (invoke "tar" "-C" where
18045 "-xf" (assoc-ref inputs db))))
18046 '("kraken-db" "krona-db" "vep-db")))))
18047 (add-before 'configure 'set-PYTHONPATH
18048 (lambda _
18049 (setenv "PYTHONPATH" (getenv "GUIX_PYTHONPATH")))))))
18050 (native-inputs
18051 (let ((bimsb-origin
18052 (lambda (name hash)
18053 (origin
18054 (method url-fetch)
18055 (uri
18056 (string-append "https://bimsbstatic.mdc-berlin.de/akalin/AAkalin_pathogenomics"
18057 "/databases_small-20221006/" name))
18058 (sha256 (base32 hash))))))
18059 `(("kraken-db"
18060 ,(bimsb-origin
18061 "kraken_db.tar.gz"
18062 "0sdm4xh5npg6c3y2pz8xgphim4qpglm8wdid6rlaaqsn6iikv0mz"))
18063 ("krona-db"
18064 ,(bimsb-origin
18065 "krona_db.tar.gz"
18066 "1rwy4gd3vw1gdjldrgf44c1xaa3vq8i3pgisjhrac81yx63x8f2h"))
18067 ("vep-db"
18068 ,(bimsb-origin
18069 "vep_db.tar.gz"
18070 "0d8hhi43zsw3wqm7gd0z0gpcdsc6h6ra0imn87hifl9a64jxqzxz")))))
18071 (inputs
18072 (list bash-minimal
18073 bedtools
18074 bwa
18075 ensembl-vep
18076 fastp
18077 fastqc
18078 ivar
18079 kraken2
18080 krona-tools
18081 lofreq
18082 multiqc
18083 python-pyyaml
18084 python-wrapper
18085 r-base64url
18086 r-data-table
18087 r-deconvr
18088 r-dplyr
18089 r-dt
18090 r-ggplot2
18091 r-htmltools
18092 r-jsonlite
18093 r-knitr
18094 r-magrittr
18095 r-mass
18096 r-minimal
18097 r-plotly
18098 r-qpcr
18099 r-r-utils
18100 r-reshape2
18101 r-rmarkdown
18102 r-stringr
18103 r-tidyr
18104 r-viridis
18105 samtools
18106 snakemake
18107 wget))
18108 (home-page "https://bioinformatics.mdc-berlin.de/pigx/")
18109 (synopsis "Analysis pipeline for wastewater sequencing")
18110 (description "PiGx SARS-CoV-2 is a pipeline for analysing data from
18111sequenced wastewater samples and identifying given variants-of-concern of
18112SARS-CoV-2. The pipeline can be used for continuous sampling. The output
18113report will provide an intuitive visual overview about the development of
18114variant abundance over time and location.")
18115 (license license:gpl3+)))
18116
18117(define-public pigx
18118 (package
18119 (name "pigx")
18120 (version "0.0.3")
18121 (source (origin
18122 (method url-fetch)
18123 (uri (string-append "https://github.com/BIMSBbioinfo/pigx/"
18124 "releases/download/v" version
18125 "/pigx-" version ".tar.gz"))
18126 (sha256
18127 (base32
18128 "1i5njdy1clj5ncw45d16p7mwmqvb1ilikl9n797pxklc3f4s7mq7"))))
18129 (build-system gnu-build-system)
18130 (inputs
18131 (list python pigx-bsseq pigx-chipseq pigx-rnaseq pigx-scrnaseq))
18132 (home-page "https://bioinformatics.mdc-berlin.de/pigx/")
18133 (synopsis "Analysis pipelines for genomics")
18134 (description "PiGx is a collection of genomics pipelines. It includes the
18135following pipelines:
18136
18137@itemize
18138@item PiGx BSseq for raw fastq read data of bisulfite experiments
18139@item PiGx RNAseq for RNAseq samples
18140@item PiGx scRNAseq for single cell dropseq analysis
18141@item PiGx ChIPseq for reads from ChIPseq experiments
18142@end itemize
18143
18144All pipelines are easily configured with a simple sample sheet and a
18145descriptive settings file. The result is a set of comprehensive, interactive
18146HTML reports with interesting findings about your samples.")
18147 (license license:gpl3+)))
18148
18149(define-public genrich
18150 (package
18151 (name "genrich")
18152 (version "0.5")
18153 (source (origin
18154 (method git-fetch)
18155 (uri (git-reference
18156 (url "https://github.com/jsh58/Genrich")
18157 (commit (string-append "v" version))))
18158 (file-name (git-file-name name version))
18159 (sha256
18160 (base32
18161 "0x0q6z0208n3cxzqjla4rgjqpyqgwpmz27852lcvzkzaigymq4zp"))))
18162 (build-system gnu-build-system)
18163 (arguments
18164 `(#:tests? #f ; there are none
18165 #:phases
18166 (modify-phases %standard-phases
18167 (delete 'configure)
18168 (replace 'install
18169 (lambda* (#:key outputs #:allow-other-keys)
18170 (install-file "Genrich" (string-append (assoc-ref outputs "out") "/bin"))
18171 #t)))))
18172 (inputs
18173 (list zlib))
18174 (home-page "https://github.com/jsh58/Genrich")
18175 (synopsis "Detecting sites of genomic enrichment")
18176 (description "Genrich is a peak-caller for genomic enrichment
18177assays (e.g. ChIP-seq, ATAC-seq). It analyzes alignment files generated
18178following the assay and produces a file detailing peaks of significant
18179enrichment.")
18180 (license license:expat)))
18181
18182(define-public sjcount
18183 ;; There is no tag for version 3.2, nor is there a release archive.
18184 (let ((commit "292d3917cadb3f6834c81e509c30e61cd7ead6e5")
18185 (revision "1"))
18186 (package
18187 (name "sjcount")
18188 (version (git-version "3.2" revision commit))
18189 (source (origin
18190 (method git-fetch)
18191 (uri (git-reference
18192 (url "https://github.com/pervouchine/sjcount-full")
18193 (commit commit)))
18194 (file-name (string-append name "-" version "-checkout"))
18195 (sha256
18196 (base32
18197 "0gdgj35j249f04rqgq8ymcc1xg1vi9kzbajnjqpaq2wpbh8bl234"))))
18198 (build-system gnu-build-system)
18199 (arguments
18200 `(#:tests? #f ; requires a 1.4G test file
18201 #:make-flags
18202 ,#~(list (string-append "SAMTOOLS_DIR="
18203 #$(this-package-input "samtools")
18204 "/lib/"))
18205 #:phases
18206 (modify-phases %standard-phases
18207 (replace 'configure
18208 (lambda* (#:key inputs #:allow-other-keys)
18209 (substitute* "makefile"
18210 (("-I \\$\\{SAMTOOLS_DIR\\}")
18211 (string-append "-I" (assoc-ref inputs "samtools")
18212 "/include/samtools"))
18213 (("-lz ") "-lz -lpthread "))))
18214 (replace 'install
18215 (lambda* (#:key outputs #:allow-other-keys)
18216 (for-each (lambda (tool)
18217 (install-file tool
18218 (string-append (assoc-ref outputs "out")
18219 "/bin")))
18220 '("j_count" "b_count" "sjcount")))))))
18221 (inputs
18222 (list samtools-0.1 zlib))
18223 (home-page "https://github.com/pervouchine/sjcount-full/")
18224 (synopsis "Annotation-agnostic splice junction counting pipeline")
18225 (description "Sjcount is a utility for fast quantification of splice
18226junctions in RNA-seq data. It is annotation-agnostic and offset-aware. This
18227version does count multisplits.")
18228 (license license:gpl3+))))
18229
18230(define-public minimap2
18231 (package
18232 (name "minimap2")
18233 (version "2.28")
18234 (source
18235 (origin
18236 (method url-fetch)
18237 (uri (string-append "https://github.com/lh3/minimap2/"
18238 "releases/download/v" version "/"
18239 "minimap2-" version ".tar.bz2"))
18240 (sha256
18241 (base32
18242 "1d50j9fdmmaj7sdf4f49xddc235f7032lwh5ijgi2afj6lkp39gz"))))
18243 (build-system gnu-build-system)
18244 (arguments
18245 `(#:tests? #f ; there are none
18246 #:modules ((guix build utils)
18247 (guix build gnu-build-system)
18248 (srfi srfi-26))
18249 #:make-flags
18250 (list (string-append "CC=" ,(cc-for-target))
18251 (let ((system ,(or (%current-target-system)
18252 (%current-system))))
18253 (cond
18254 ((or (string-prefix? "i586" system)
18255 (string-prefix? "i686" system))
18256 "sse2only=1")
18257 ((string-prefix? "armhf" system)
18258 "arm_neon=1")
18259 ((string-prefix? "aarch64" system)
18260 "aarch64=1")
18261 (else "all"))))
18262 #:phases
18263 (modify-phases %standard-phases
18264 (delete 'configure)
18265 (replace 'install
18266 (lambda* (#:key outputs #:allow-other-keys)
18267 (let* ((out (assoc-ref outputs "out"))
18268 (bin (string-append out "/bin"))
18269 (lib (string-append out "/lib"))
18270 (inc (string-append out "/include"))
18271 (man (string-append out "/share/man/man1")))
18272 (install-file "minimap2" bin)
18273 (install-file "libminimap2.a" lib)
18274 (install-file "minimap2.1" man)
18275 (map (cut install-file <> inc)
18276 (find-files "." "\\.h$"))
18277 ;; Not this file.
18278 (delete-file (string-append inc "/emmintrin.h"))
18279 (mkdir-p (string-append lib "/pkgconfig"))
18280 (with-output-to-file (string-append lib "/pkgconfig/minimap2.pc")
18281 (lambda _
18282 (format #t "prefix=~a~@
18283 exec_prefix=${prefix}~@
18284 libdir=${exec_prefix}/lib~@
18285 includedir=${prefix}/include~@
18286 ~@
18287 Name: libminimap2~@
18288 Version: ~a~@
18289 Description: A versatile pairwise aligner for genomic and spliced nucleotide sequence~@
18290 Libs: -L${libdir} -lminimap2~@
18291 Cflags: -I${includedir}~%"
18292 out ,version)))))))))
18293 (inputs
18294 (list zlib))
18295 (home-page "https://lh3.github.io/minimap2/")
18296 (synopsis "Pairwise aligner for genomic and spliced nucleotide sequences")
18297 (description "Minimap2 is a versatile sequence alignment program that
18298aligns DNA or mRNA sequences against a large reference database. Typical use
18299cases include:
18300
18301@enumerate
18302@item mapping PacBio or Oxford Nanopore genomic reads to the human genome;
18303@item finding overlaps between long reads with error rate up to ~15%;
18304@item splice-aware alignment of PacBio Iso-Seq or Nanopore cDNA or Direct RNA
18305 reads against a reference genome;
18306@item aligning Illumina single- or paired-end reads;
18307@item assembly-to-assembly alignment;
18308@item full-genome alignment between two closely related species with
18309 divergence below ~15%.
18310@end enumerate\n")
18311 (license license:expat)))
18312
18313(define-public python-mappy
18314 (package
18315 (name "python-mappy")
18316 (version "2.24")
18317 (source
18318 (origin
18319 (method git-fetch)
18320 (uri (git-reference
18321 (url "https://github.com/lh3/minimap2")
18322 (commit (string-append "v" version))))
18323 (file-name (git-file-name name version))
18324 (sha256
18325 (base32 "0k658659ivxk2xnyawrfqdhcji6a3xcqdr5a9r5myzb2ivypnjmh"))))
18326 (build-system pyproject-build-system)
18327 (arguments
18328 (list
18329 #:test-backend #~'custom
18330 #:test-flags
18331 #~(list "-c" (string-append "import mappy;"
18332 " print(mappy.revcomp("
18333 "mappy.Aligner('test/MT-human.fa')"
18334 ".seq('MT_human', 100, 200)))"))))
18335 (native-inputs
18336 (list python-cython python-setuptools))
18337 (inputs
18338 (list zlib))
18339 (home-page "https://github.com/lh3/minimap2")
18340 (synopsis "Python binding for minimap2")
18341 (description "This package provides a convenient interface to minimap2,
18342a fast and accurate C program to align genomic and transcribe nucleotide
18343sequences.")
18344 (license license:expat)))
18345
18346(define-public miniasm
18347 (package
18348 (name "miniasm")
18349 (version "0.3")
18350 (source (origin
18351 (method git-fetch)
18352 (uri (git-reference
18353 (url "https://github.com/lh3/miniasm")
18354 (commit (string-append "v" version))))
18355 (file-name (git-file-name name version))
18356 (sha256
18357 (base32
18358 "04dv5wv8bhsw1imxwyd438bnn9kby7svp44nbcz8lsadzjjci5gs"))))
18359 (build-system gnu-build-system)
18360 (inputs
18361 (list zlib))
18362 (arguments
18363 `(#:tests? #f ; There are no tests.
18364 #:phases
18365 (modify-phases %standard-phases
18366 (delete 'configure)
18367 (replace 'install
18368 (lambda* (#:key inputs outputs #:allow-other-keys)
18369 (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
18370 (install-file "miniasm" bin)
18371 (install-file "minidot" bin)
18372 #t))))))
18373 (home-page "https://github.com/lh3/miniasm")
18374 (synopsis "Ultrafast de novo assembly for long noisy reads")
18375 (description "Miniasm is a very fast OLC-based de novo assembler for noisy
18376long reads. It takes all-vs-all read self-mappings (typically by minimap) as
18377input and outputs an assembly graph in the GFA format. Different from
18378mainstream assemblers, miniasm does not have a consensus step. It simply
18379concatenates pieces of read sequences to generate the final unitig sequences.
18380Thus the per-base error rate is similar to the raw input reads.")
18381 (license license:expat)))
18382
18383(define-public bandage
18384 (package
18385 (name "bandage")
18386 (version "0.8.1")
18387 (source
18388 (origin
18389 (method git-fetch)
18390 (uri (git-reference
18391 (url "https://github.com/rrwick/Bandage")
18392 (commit (string-append "v" version))))
18393 (file-name (git-file-name name version))
18394 (sha256
18395 (base32 "1bbsn5f5x8wlspg4pbibqz6m5vin8c19nl224f3z3km0pkc97rwv"))))
18396 (build-system qt-build-system)
18397 (arguments
18398 (list
18399 #:modules '((guix build qt-build-system)
18400 ((guix build gnu-build-system) #:prefix gnu:)
18401 (guix build utils))
18402 ;; TODO: Once <https://issues.guix.gnu.org/47475> is fixed,
18403 ;; consider uncommenting the following:
18404 ;;
18405 ;; Prevent the (rarely updated) imagemagick/stable package from
18406 ;; ending up in the closure.
18407 ;; #:disallowed-references (list imagemagick/stable)
18408 #:phases
18409 #~(modify-phases %standard-phases
18410 (replace 'configure
18411 (lambda _
18412 (invoke "qmake" "Bandage.pro")))
18413 (replace 'check
18414 (lambda* (#:key tests? #:allow-other-keys)
18415 (when tests?
18416 (substitute* "tests/bandage_command_line_tests.sh"
18417 (("^bandagepath=.*")
18418 (string-append "bandagepath=" (getcwd) "/Bandage\n")))
18419 (with-directory-excursion "tests"
18420 (setenv "XDG_RUNTIME_DIR" (getcwd))
18421 (invoke "./bandage_command_line_tests.sh")))))
18422 (replace 'build (assoc-ref gnu:%standard-phases 'build))
18423 (replace 'install
18424 (lambda _
18425 (install-file "Bandage" (string-append #$output "/bin")))))))
18426 (inputs
18427 (list qtbase-5 qtsvg-5 qtwayland-5))
18428 (native-inputs
18429 ;; imagemagick/stable cannot be used here, as it will end up in
18430 ;; the closure. See <https://issues.guix.gnu.org/47475>.
18431 (list imagemagick))
18432 (home-page "https://rrwick.github.io/Bandage/")
18433 (synopsis
18434 "Bioinformatics Application for Navigating De novo Assembly Graphs Easily")
18435 (description "Bandage is a program for visualising de novo assembly graphs.
18436It allows users to interact with the assembly graphs made by de novo assemblers
18437such as Velvet, SPAdes, MEGAHIT and others. De novo assembly graphs contain not
18438only assembled contigs but also the connections between those contigs, which
18439were previously not easily accessible. Bandage visualises assembly graphs, with
18440connections, using graph layout algorithms. Nodes in the drawn graph, which
18441represent contigs, can be automatically labelled with their ID, length or depth.
18442Users can interact with the graph by moving, labelling and colouring nodes.
18443Sequence information can also be extracted directly from the graph viewer. By
18444displaying connections between contigs, Bandage opens up new possibilities for
18445analysing and improving de novo assemblies that are not possible by looking at
18446contigs alone.")
18447 (license (list license:gpl2+ ; bundled ogdf
18448 license:gpl3+))))
18449
18450(define-public libmaus2
18451 (package
18452 (name "libmaus2")
18453 (version "2.0.813")
18454 (source (origin
18455 (method git-fetch)
18456 (uri (git-reference
18457 (url "https://gitlab.com/german.tischler/libmaus2")
18458 (commit (string-append version "-release-20221210220409"))))
18459 (file-name (git-file-name name version))
18460 (sha256
18461 (base32
18462 "1hbkp3vjykkn8vkplzxyc6vnm69rzqhnj041jgfk61wvn5r1xzw8"))
18463 (patches
18464 (search-patches "libmaus2-fix-gcc-13-require-include-cstdint.patch"))))
18465 (build-system gnu-build-system)
18466 ;; The test suite attempts to execute ../test-driver, which does not exist.
18467 (arguments '(#:tests? #false))
18468 (inputs (list boost))
18469 (propagated-inputs
18470 (list zlib))
18471 (native-inputs
18472 (list pkg-config))
18473 (home-page "https://gitlab.com/german.tischler/libmaus2")
18474 (synopsis "Collection of data structures and algorithms useful for bioinformatics")
18475 (description "libmaus2 is a collection of data structures and
18476algorithms. It contains:
18477
18478@itemize
18479@item I/O classes (single byte and UTF-8);
18480@item @code{bitio} classes (input, output and various forms of bit level
18481 manipulation);
18482@item text indexing classes (suffix and LCP array, fulltext and minute (FM),
18483 etc.);
18484@item BAM sequence alignment files input/output (simple and collating);
18485and many lower level support classes.
18486@end itemize\n")
18487 ;; The code is explicitly available under the terms of either GPLv2 or
18488 ;; GPLv3 according to the AUTHORS file, though most files have a GPLv3+
18489 ;; license header.
18490 (license (list license:gpl2+ license:gpl3+))))
18491
18492(define-public biobambam2
18493 (package
18494 (name "biobambam2")
18495 (version "2.0.185")
18496 (source (origin
18497 (method git-fetch)
18498 (uri (git-reference
18499 (url "https://gitlab.com/german.tischler/biobambam2")
18500 (commit (string-append version "-release-20221211202123"))))
18501 (file-name (git-file-name name version))
18502 (sha256
18503 (base32
18504 "1ysj0y11wi5z9y05qhbzhd198iqv8d1fh9b5f7ky9c3dklh1nfba"))))
18505 (build-system gnu-build-system)
18506 (arguments
18507 ;; The test suite attempts to execute ../test-driver, which does not exist.
18508 `(#:tests? #false
18509 #:configure-flags
18510 ,#~(list (string-append "--with-libmaus2="
18511 #$(this-package-input "libmaus2")))))
18512 (inputs
18513 (list libmaus2 xerces-c))
18514 (native-inputs
18515 (list pkg-config))
18516 (home-page "https://gitlab.com/german.tischler/biobambam2")
18517 (synopsis "Tools for processing BAM files")
18518 (description "This package contains some tools for processing BAM files
18519including:
18520
18521@itemize
18522@item bamsormadup: parallel sorting and duplicate marking
18523@item bamcollate2: reads BAM and writes BAM reordered such that alignment or
18524 collated by query name
18525@item bammarkduplicates: reads BAM and writes BAM with duplicate alignments
18526 marked using the BAM flags field
18527@item bammaskflags: reads BAM and writes BAM while masking (removing) bits
18528 from the flags column
18529@item bamrecompress: reads BAM and writes BAM with a defined compression
18530 setting. This tool is capable of multi-threading.
18531@item bamsort: reads BAM and writes BAM resorted by coordinates or query name
18532@item bamtofastq: reads BAM and writes FastQ; output can be collated or
18533 uncollated by query name.
18534@end itemize
18535")
18536 ;; The COPYING file states that the code is distributed under version 3 of
18537 ;; the GPL, but the license headers include the "or later" clause.
18538 (license license:gpl3+)))
18539
18540(define-public r-disgenet2r
18541 (let ((commit "8d8ce37da7384004038b25e784b9f7cfe2353de1")
18542 (revision "1"))
18543 (package
18544 (name "r-disgenet2r")
18545 (version (git-version "0.99.2" revision commit))
18546 (source (origin
18547 (method git-fetch)
18548 (uri (git-reference
18549 (url "https://bitbucket.org/ibi_group/disgenet2r")
18550 (commit commit)))
18551 (file-name (git-file-name name version))
18552 (sha256
18553 (base32
18554 "0dvk75s6wqssdyfn5iczldb8krvrz2s0dslxns4571cb2pr09b84"))))
18555 (properties `((upstream-name . "disgenet2r")))
18556 (build-system r-build-system)
18557 (propagated-inputs (list r-data-table
18558 r-ggplot2
18559 r-gtable
18560 r-httr
18561 r-igraph
18562 r-jsonlite
18563 r-purrr
18564 r-reshape
18565 r-reshape2
18566 r-sparql
18567 r-stringr
18568 r-tidyr
18569 r-tidyverse
18570 r-venndiagram))
18571 (native-inputs (list r-knitr))
18572 (home-page "https://bitbucket.org/ibi_group/disgenet2r")
18573 (synopsis "Query, visualize, and expand DisGeNET data")
18574 (description
18575 "This is an R package to query and expand DisGeNET data, and to
18576visualize the results within R framework. The disgenet2r package is designed
18577to retrieve data from DisGeNET v6.0 (Jan, 2019).")
18578 (license license:expat))))
18579
18580(define-public r-dtmm
18581 (let ((commit "3a553b1e17d27d90a496d2e23e98e5dfe4abc266")
18582 (revision "1"))
18583 (package
18584 (name "r-dtmm")
18585 (version (git-version "0.1.0" revision commit))
18586 (source (origin
18587 (method git-fetch)
18588 (uri (git-reference
18589 (url "https://github.com/MaStatLab/DTMM")
18590 (commit commit)))
18591 (file-name (git-file-name name version))
18592 (sha256
18593 (base32
18594 "19279wafqfs9gk9489f8zsp52qcdb0mkxgvqszq4i733ckr2mmkk"))))
18595 (properties `((upstream-name . "DTMM")))
18596 (build-system r-build-system)
18597 (propagated-inputs (list r-ape r-rcpp r-rcpparmadillo))
18598 (home-page "https://github.com/MaStatLab/DTMM")
18599 (synopsis "Dirichlet-tree multinomial mixtures")
18600 (description
18601 "This package lets you perform unsupervised clustering of amplicon
18602sequencing data in microbiome studies with the Dirichlet-tree Multinomial
18603Mixtures.")
18604 (license license:cc0))))
18605
18606;; Needed for r-liana
18607(define-public r-omnipathr/devel
18608 (package
18609 (name "r-omnipathr")
18610 (version "3.15.3")
18611 (source (origin
18612 (method git-fetch)
18613 (uri (git-reference
18614 (url "https://github.com/saezlab/omnipathr")
18615 (commit (string-append "v" version))))
18616 (file-name (git-file-name name version))
18617 (sha256
18618 (base32
18619 "0sq32s3v7q5w9zym54fm0ws1d1wnwyhczazyk9g722ydx2zvbls4"))))
18620 (properties `((upstream-name . "OmnipathR")))
18621 (build-system r-build-system)
18622 (arguments
18623 `(#:phases
18624 (modify-phases %standard-phases
18625 (add-after 'unpack 'set-HOME
18626 (lambda _ (setenv "HOME" "/tmp"))))))
18627 (propagated-inputs
18628 (list r-checkmate
18629 r-crayon
18630 r-curl
18631 r-digest
18632 r-dplyr
18633 r-fs
18634 r-httr2
18635 r-igraph
18636 r-jsonlite
18637 r-later
18638 r-logger
18639 r-lubridate
18640 r-magrittr
18641 r-progress
18642 r-purrr
18643 r-r-utils
18644 r-rappdirs
18645 r-readr
18646 r-readxl
18647 r-rlang
18648 r-rmarkdown
18649 r-rsqlite
18650 r-rvest
18651 r-sessioninfo
18652 r-stringi
18653 r-stringr
18654 r-tibble
18655 r-tidyr
18656 r-tidyselect
18657 r-vctrs
18658 r-withr
18659 r-xml
18660 r-xml2
18661 r-yaml
18662 r-zip))
18663 (native-inputs (list r-knitr r-testthat))
18664 (home-page "https://github.com/saezlab/omnipathr")
18665 (synopsis "OmniPath web service client and more")
18666 (description
18667 "This package provides a client for the OmniPath web service and many
18668other resources. It also includes functions to transform and pretty print
18669some of the downloaded data, functions to access a number of other resources
18670such as BioPlex, ConsensusPathDB, EVEX, Gene Ontology, Guide to
18671Pharmacology (IUPHAR/BPS), Harmonizome, HTRIdb, Human Phenotype Ontology,
18672InWeb InBioMap, KEGG Pathway, Pathway Commons, Ramilowski et al. 2015,
18673RegNetwork, ReMap, TF census, TRRUST and Vinayagam et al. 2011. Furthermore,
18674OmnipathR features a close integration with the NicheNet method for ligand
18675activity prediction from transcriptomics data, and its R implementation
18676@code{nichenetr}.")
18677 (license license:expat)))
18678
18679(define-public r-liana
18680 (let ((commit "6cab46c54234f861ea176c3de77c4b8aa45ecb3d")
18681 (revision "1"))
18682 (package
18683 (name "r-liana")
18684 (version (git-version "0.1.14" revision commit))
18685 (source (origin
18686 (method git-fetch)
18687 (uri (git-reference
18688 (url "https://github.com/saezlab/liana/")
18689 (commit commit)))
18690 (file-name (git-file-name name version))
18691 (sha256
18692 (base32
18693 "1zkvkkvxyhn60b2rribz5fhvm9kvscq8xz6is440080ihpyfyadz"))))
18694 (properties
18695 '((upstream-name . "liana")
18696 (updater-extra-native-inputs
18697 . ("r-delayedmatrixstats" "r-sparsematrixstats"))))
18698 (build-system r-build-system)
18699 (arguments
18700 (list
18701 #:skipped-tests
18702 ;; These tests attempt to connect to the Internet.
18703 '(("test-liana_utils.R" "Test liana pipe")
18704 ("test-liana_tensor.R"
18705 ".*Test tensor wrapper.*"
18706 ".*Test decompose_tensor.*")
18707 ;; XXX: This test returns a data.frame instead of an error.
18708 ("test-liana_cytotalk.R" ".*Test Cytotalk Wrap.*"))
18709 #:phases
18710 '(modify-phases %standard-phases
18711 ;; This is needed to find ~/.config/OmnipathR/omnipathr.yml
18712 (add-after 'unpack 'set-HOME
18713 (lambda _ (setenv "HOME" "/tmp")))
18714 (add-after 'unpack 'seurat-compatibility
18715 (lambda _
18716 ;; The `slot` argument of `GetAssayData()` was deprecated in
18717 ;; SeuratObject 5.0.0.
18718 (substitute* '("R/cellchat_pipe.R"
18719 "R/sca_pipe.R"
18720 "R/liana_prep.R"
18721 "R/natmi_pipe.R")
18722 (("slot =") "layer =")))))))
18723 (propagated-inputs
18724 (list r-basilisk
18725 r-basilisk-utils
18726 r-complexheatmap
18727 r-dplyr
18728 r-ggplot2
18729 r-magrittr
18730 r-omnipathr/devel
18731 r-purrr
18732 r-rcolorbrewer
18733 r-readr
18734 r-reticulate
18735 r-rlang
18736 r-scater
18737 r-scran
18738 r-scuttle
18739 r-seuratobject
18740 r-singlecellexperiment
18741 r-stringr
18742 r-tibble
18743 r-tidyr
18744 r-tidyselect))
18745 (native-inputs
18746 (list r-delayedmatrixstats
18747 r-knitr
18748 r-seurat
18749 r-sparsematrixstats
18750 r-testthat))
18751 (home-page "https://github.com/saezlab/liana/")
18752 (synopsis "LIANA: a LIgand-receptor ANalysis frAmework")
18753 (description
18754 "LIANA provides a number of methods and resource for ligand-receptor
18755interaction inference from scRNA-seq data.")
18756 (license license:gpl3))))
18757
18758(define-public r-circus
18759 (package
18760 (name "r-circus")
18761 (version "0.1.7")
18762 (source (origin
18763 (method git-fetch)
18764 (uri (git-reference
18765 (url "https://github.com/BIMSBbioinfo/ciRcus")
18766 (commit version)))
18767 (file-name (git-file-name name version))
18768 (sha256
18769 (base32
18770 "0d1jz7r81zbcy1gkppggkjmgjxyjhva69s3cdb01m3f0790m4fv0"))))
18771 (properties `((upstream-name . "ciRcus")))
18772 (build-system r-build-system)
18773 (arguments
18774 (list
18775 #:phases
18776 '(modify-phases %standard-phases
18777 (add-after 'unpack 'disable-bad-tests
18778 (lambda _
18779 ;; These tests need Internet access.
18780 (substitute* "tests/testthat/test-loadAnnot.R"
18781 (("test_that.*Annotation.*" m)
18782 (string-append m "skip('guix')\n"))))))))
18783 (propagated-inputs
18784 (list r-annotationdbi
18785 r-annotationhub
18786 r-biocgenerics
18787 r-biomart
18788 r-data-table
18789 r-dbi
18790 r-genomeinfodb
18791 r-genomicfeatures
18792 r-genomicranges
18793 r-ggplot2
18794 r-hash
18795 r-iranges
18796 r-rcolorbrewer
18797 r-rmysql
18798 r-rtracklayer
18799 r-s4vectors
18800 r-stringr
18801 r-summarizedexperiment))
18802 (native-inputs
18803 (list r-knitr r-testthat))
18804 (home-page "https://github.com/BIMSBbioinfo/ciRcus")
18805 (synopsis "Annotation, analysis and visualization of circRNA data")
18806 (description "Circus is an R package for annotation, analysis and
18807visualization of circRNA data. Users can annotate their circRNA candidates
18808with host genes, gene features they are spliced from, and discriminate between
18809known and yet unknown splice junctions. Circular-to-linear ratios of circRNAs
18810can be calculated, and a number of descriptive plots easily generated.")
18811 (license license:artistic2.0)))
18812
18813(define-public r-domultibarheatmap
18814 (let ((commit "9e65afa0aa69fee631c61b7bf3e7742632c9cb95")
18815 (revision "1"))
18816 (package
18817 (name "r-domultibarheatmap")
18818 (version (git-version "0.1.0" revision commit))
18819 (source (origin
18820 (method git-fetch)
18821 (uri (git-reference
18822 (url "https://github.com/elliefewings/DoMultiBarHeatmap")
18823 (commit commit)))
18824 (file-name (git-file-name name version))
18825 (sha256
18826 (base32
18827 "0q9mrc6md08aff6hhzlw3igvv3w7pr1wildzm8i0km9xvbi9iyy9"))))
18828 (properties `((upstream-name . "DoMultiBarHeatmap")))
18829 (build-system r-build-system)
18830 (propagated-inputs (list r-ggplot2 r-magrittr r-rlang r-seurat))
18831 (home-page "https://github.com/elliefewings/DoMultiBarHeatmap")
18832 (synopsis "Produce heatmap from a Seurat object with multiple annotation bars")
18833 (description "This package builds on Seurat's @code{Doheatmap} function
18834code to produce a heatmap from a Seurat object with multiple annotation
18835bars.")
18836 (license license:cc0))))
18837
18838(define-public r-doubletfinder
18839 (let ((commit "554097ba4e2c0ed7c28dc7f0b5b75277f3a50551")
18840 (revision "1"))
18841 (package
18842 (name "r-doubletfinder")
18843 (version (git-version "2.0.3" revision commit))
18844 (source
18845 (origin
18846 (method git-fetch)
18847 (uri (git-reference
18848 (url "https://github.com/chris-mcginnis-ucsf/DoubletFinder")
18849 (commit commit)))
18850 (file-name (git-file-name name version))
18851 (sha256
18852 (base32 "1q1pnqw7ry4syp04wjmvz5bws6z4vg4c340ky07lk0vp577x2773"))))
18853 (properties `((upstream-name . "DoubletFinder")))
18854 (build-system r-build-system)
18855 (propagated-inputs (list r-fields r-kernsmooth r-rocr))
18856 (home-page "https://github.com/chris-mcginnis-ucsf/DoubletFinder")
18857 (synopsis "Identify doublets in single-cell RNA sequencing data")
18858 (description
18859 "DoubletFinder identifies doublets by generating artificial doublets
18860from existing scRNA-seq data and defining which real cells preferentially
18861co-localize with artificial doublets in gene expression space. Other
18862DoubletFinder package functions are used for fitting DoubletFinder to
18863different scRNA-seq datasets. For example, ideal DoubletFinder performance in
18864real-world contexts requires optimal pK selection and homotypic doublet
18865proportion estimation. pK selection is achieved using pN-pK parameter sweeps
18866and maxima identification in mean-variance-normalized bimodality coefficient
18867distributions. Homotypic doublet proportion estimation is achieved by finding
18868the sum of squared cell annotation frequencies.")
18869 (license license:cc0))))
18870
18871;; There have been no releases.
18872(define-public r-cytobackbone
18873 (let ((commit "4c1a0a35cc5ae1f8f516127cec92351d96fe26e7")
18874 (revision "1"))
18875 (package
18876 (name "r-cytobackbone")
18877 (version (git-version "1.0.0" revision commit))
18878 (source (origin
18879 (method git-fetch)
18880 (uri (git-reference
18881 (url "https://github.com/tchitchek-lab/CytoBackBone")
18882 (commit commit)))
18883 (file-name (git-file-name name version))
18884 (sha256
18885 (base32
18886 "0ahiad14zcgdk42xzw5xryic2ibn2l8lkrcdvl2b5sz2js028yb3"))))
18887 (properties `((upstream-name . "CytoBackBone")))
18888 (build-system r-build-system)
18889 (propagated-inputs
18890 (list r-flowcore
18891 r-flowutils
18892 r-fnn
18893 r-ggplot2
18894 r-preprocesscore))
18895 (native-inputs (list r-knitr))
18896 (home-page "https://github.com/tchitchek-lab/CytoBackBone")
18897 (synopsis "Merge phenotype information from different cytometric profiles")
18898 (description
18899 "This package implements an algorithm which increases the number of
18900simultaneously measurable markers and in this way helps with study of the
18901immune responses. Thus, the present algorithm, named @code{CytoBackBone},
18902allows combining phenotypic information of cells from different cytometric
18903profiles obtained from different cytometry panels. This computational
18904approach is based on the principle that each cell has its own phenotypic and
18905functional characteristics that can be used as an identification card.
18906@code{CytoBackBone} uses a set of predefined markers, that we call the
18907backbone, to define this identification card. The phenotypic information of
18908cells with similar identification cards in the different cytometric profiles
18909is then merged.")
18910 (license license:gpl2))))
18911
18912(define-public r-cytoexplorer
18913 (let ((commit "0efb1cc19fc701ae03905cf1b8484c1dfeb387df")
18914 (revision "1"))
18915 (package
18916 (name "r-cytoexplorer")
18917 (version (git-version "1.1.0" revision commit))
18918 (source
18919 (origin
18920 (method git-fetch)
18921 (uri (git-reference
18922 (url "https://github.com/DillonHammill/CytoExploreR")
18923 (commit commit)))
18924 (file-name (git-file-name name version))
18925 (sha256
18926 (base32
18927 "1y7dadsy15i47rjmdq6ns80jzm6p0zmixll37q68ba2c7xn5pq3v"))
18928 (snippet
18929 '(delete-file
18930 "docs/articles/CytoExploreR_files/vis-4.20.1/vis.min.js"))))
18931 (properties `((upstream-name . "CytoExploreR")))
18932 (build-system r-build-system)
18933 (arguments
18934 (list
18935 #:phases
18936 '(modify-phases %standard-phases
18937 (add-after 'unpack 'skip-bad-tests
18938 (lambda _
18939 (with-directory-excursion "tests/testthat/"
18940 ;; All of these fail because with_mock has been removed from
18941 ;; r-testthat.
18942 (substitute* "test-cyto_channels-helpers.R"
18943 (("^test_that.*cyto_channel_select.*" m)
18944 (string-append m "skip('guix')")))
18945 (substitute* "test-cyto_gate_draw.R"
18946 (("^test_that.*cyto_gate_draw.*" m)
18947 (string-append m "skip('guix')")))
18948 (substitute* "test-cyto_gate_helpers.R"
18949 (("^test_that.*cyto_gate_edit.*" m)
18950 (string-append m "skip('guix')")))
18951 (substitute* "test-cyto_helpers.R"
18952 (("^test_that.*cyto_markers_edit.*" m)
18953 (string-append m "skip('guix')"))
18954 (("^test_that.*cyto_details_edit.*" m)
18955 (string-append m "skip('guix')"))
18956 (("^test_that.*cyto_channel_match.*" m)
18957 (string-append m "skip('guix')")))
18958 (substitute* "test-cyto_spillover_compute.R"
18959 (("^test_that.*cyto_spillover_compute universal reference.*" m)
18960 (string-append m "skip('guix')"))
18961 (("^test_that.*cyto_spillover_compute internal reference.*" m)
18962 (string-append m "skip('guix')")))
18963 (substitute* "test-openCyto-plugins.R"
18964 (("^test_that.*cyto_gate_manual.*" m)
18965 (string-append m "skip('guix')")))
18966
18967 ;; These tests fail. Some fail because of unimportant
18968 ;; differences in printed messages.
18969 (substitute* "test-cyto_channels-helpers.R"
18970 (("^test_that.*cyto_channels_restrict.*" m)
18971 (string-append m "skip('guix')")))
18972 (substitute* "test-cyto_gate_helpers.R"
18973 (("^test_that.*cyto_gate_rename.*" m)
18974 (string-append m "skip('guix')"))
18975 (("^test_that.*cyto_gate_remove.*" m)
18976 (string-append m "skip('guix')")))
18977 (substitute* "test-cyto_helpers.R"
18978 (("^test_that.*cyto_compensate.*" m)
18979 (string-append m "skip('guix')"))
18980 (("^test_that.*cyto_empty.*" m)
18981 (string-append m "skip('guix')"))
18982 (("^test_that.*cyto_group_by.*" m)
18983 (string-append m "skip('guix')")))
18984 (substitute* "test-cyto_spillover_spread_compute.R"
18985 (("^test_that.*cyto_spillover_spread_compute internal reference.*" m)
18986 (string-append m "skip('guix')"))
18987 (("^test_that.*cyto_spillover_spread_compute universal reference.*" m)
18988 (string-append m "skip('guix')"))))))
18989 (add-after 'unpack 'process-javascript
18990 (lambda* (#:key inputs #:allow-other-keys)
18991 (with-directory-excursion "docs/articles/CytoExploreR_files/"
18992 (let ((source (search-input-file inputs "/dist/vis.js"))
18993 (target "vis-4.20.1/vis.min.js"))
18994 (invoke "esbuild" source "--minify"
18995 (string-append "--outfile=" target)))))))))
18996 (propagated-inputs
18997 (list r-biocgenerics
18998 r-bslib
18999 r-data-table
19000 r-dplyr
19001 r-embedsom
19002 r-flowai
19003 r-flowcore
19004 r-flowworkspace
19005 r-gtools
19006 r-magrittr
19007 r-mass
19008 r-opencyto
19009 r-purrr
19010 r-rhandsontable
19011 r-robustbase
19012 r-rsvd
19013 r-rtsne
19014 r-shiny
19015 r-superheat
19016 r-tibble
19017 r-tidyr
19018 r-umap
19019 r-visnetwork))
19020 (native-inputs
19021 (list esbuild
19022 r-cytoexplorerdata
19023 r-knitr
19024 r-mockery
19025 r-testthat
19026 (let ((version "4.20.1"))
19027 (origin
19028 (method git-fetch)
19029 (uri (git-reference
19030 (url "https://github.com/almende/vis")
19031 (commit (string-append "v" version))))
19032 (file-name (git-file-name "js-vis" version))
19033 (sha256
19034 (base32
19035 "09ldcqzzki5c0jlwas5992qjffqxnx6j5sl703qccfw7rg1hn469"))))))
19036 (home-page "https://github.com/DillonHammill/CytoExploreR")
19037 (synopsis "Interactive analysis of cytometry data")
19038 (description
19039 "This package has been developed under ROpenSci gudelines to integrate
19040conventional and cutting edge cytometry analysis tools under a unified
19041framework. It aims to represent an intuitive and interactive approach to
19042analysing cytometry data in R.")
19043 (license license:gpl2))))
19044
19045(define-public r-cytoexplorerdata
19046 (let ((commit "488edf083092247ad547172906efe6f8c2aa8700")
19047 (revision "1"))
19048 (package
19049 (name "r-cytoexplorerdata")
19050 (version (git-version "1.0.3" revision commit))
19051 (source
19052 (origin
19053 (method git-fetch)
19054 (uri (git-reference
19055 (url "https://github.com/DillonHammill/CytoExploreRData")
19056 (commit commit)))
19057 (file-name (git-file-name name version))
19058 (sha256
19059 (base32 "0mp3d8cv57psz5zjp7a1f07fxw9dw0w0x9fv32k46a566k1073p3"))))
19060 (properties `((upstream-name . "CytoExploreRData")))
19061 (build-system r-build-system)
19062 (native-inputs (list r-knitr))
19063 (home-page "https://github.com/DillonHammill/CytoExploreRData")
19064 (synopsis "Flow Cytometry Data for CytoExploreR")
19065 (description
19066 "This package contains @code{gatingTemplates}, example fcs files and compensation
19067controls for use in @code{CytoExploreR}.")
19068 (license license:gpl2))))
19069
19070(define-public r-giottoclass
19071 (let ((commit "15627a29bcdaf7e484546363b185a2ccee6470a5")
19072 (revision "1"))
19073 (package
19074 (name "r-giottoclass")
19075 (version (git-version "0.4.10" revision commit))
19076 (source
19077 (origin
19078 (method git-fetch)
19079 (uri (git-reference
19080 (url "https://github.com/drieslab/GiottoClass")
19081 (commit commit)))
19082 (file-name (git-file-name name version))
19083 (sha256
19084 (base32 "15kaf1wli8sc8d9k9l4bkl4z68yrva1zi9w5yqgbbw1n44khn8yx"))))
19085 (properties `((upstream-name . "GiottoClass")))
19086 (build-system r-build-system)
19087 ;; Tests require r-giottodata, which requires r-giottoclass.
19088 (arguments (list #:tests? #false))
19089 (propagated-inputs (list r-checkmate
19090 r-data-table
19091 r-dbscan
19092 r-deldir
19093 r-giottoutils
19094 r-igraph
19095 r-matrix
19096 r-matrixstats
19097 r-reticulate
19098 r-terra))
19099 (native-inputs (list r-knitr r-testthat))
19100 (home-page "https://github.com/drieslab/GiottoClass")
19101 (synopsis "Giotto suite object definitions and framework")
19102 (description
19103 "This package provides definitions for the Giotto object and its
19104subobjects. Functionalities relating to data ingestion, basic object
19105creation, data access within the Giotto object, and generics defined for the
19106Giotto classes are all found here. Applications of this framework and
19107convenience functions for loading specific technologies are found in the base
19108Giotto package.")
19109 (license license:expat))))
19110
19111(define-public r-giottodata
19112 (let ((commit "1dc55ee8195104a81549b9e3fad04bd459b226de")
19113 (revision "1"))
19114 (package
19115 (name "r-giottodata")
19116 (version (git-version "0.2.16" revision commit))
19117 (source
19118 (origin
19119 (method git-fetch)
19120 (uri (git-reference
19121 (url "https://github.com/drieslab/GiottoData")
19122 (commit commit)))
19123 (file-name (git-file-name name version))
19124 (sha256
19125 (base32 "0izlmfrghx5nixlx1m9bpd5qxlvj6llz898qd0ij5ihp5x2w7dqk"))))
19126 (properties `((upstream-name . "GiottoData")))
19127 (build-system r-build-system)
19128 (propagated-inputs (list r-data-table r-giottoclass r-giottoutils
19129 r-rprojroot))
19130 (home-page "https://github.com/drieslab/GiottoData")
19131 (synopsis "Datasets for Giotto")
19132 (description
19133 "This package stores information and scripts to work with, or load
19134various different spatial datasets that can be used with the Giotto Suite
19135workflow. It also contains example mini Giotto subobjects.")
19136 (license license:expat))))
19137
19138(define-public r-giottoutils
19139 (let ((commit "1ce82e5303b002540b41b6bf90ff543c26f41b31")
19140 (revision "1"))
19141 (package
19142 (name "r-giottoutils")
19143 (version (git-version "0.2.5" revision commit))
19144 (source
19145 (origin
19146 (method git-fetch)
19147 (uri (git-reference
19148 (url "https://github.com/drieslab/GiottoUtils")
19149 (commit commit)))
19150 (file-name (git-file-name name version))
19151 (sha256
19152 (base32 "04wm0ym07gz5zi639nm175vv7xsg0rja9vdb03jv969zbwcrd8mv"))))
19153 (properties `((upstream-name . "GiottoUtils")))
19154 (build-system r-build-system)
19155 (arguments
19156 (list
19157 #:phases
19158 '(modify-phases %standard-phases
19159 (add-after 'unpack 'find-python
19160 (lambda _
19161 (setenv "RETICULATE_PYTHON" (which "python3")))))))
19162 (propagated-inputs (list r-biocparallel
19163 r-checkmate
19164 r-data-table
19165 r-dplyr
19166 r-future
19167 r-gtools
19168 r-jsonlite
19169 r-lifecycle
19170 r-magrittr
19171 r-matrix
19172 r-progressr
19173 r-r-utils
19174 r-rcolorbrewer
19175 r-remotes
19176 r-reticulate
19177 python-scipy))
19178 (inputs (list python-wrapper))
19179 (native-inputs (list r-knitr r-testthat))
19180 (home-page "https://github.com/drieslab/GiottoUtils")
19181 (synopsis "Giotto suite utilities")
19182 (description "This package provides utility functions and imports for
19183Giotto Suite.")
19184 (license license:expat))))
19185
19186(define-public r-giottovisuals
19187 (let ((commit "556d75352a208507819f1d4e33ae61c179185435")
19188 (revision "1"))
19189 (package
19190 (name "r-giottovisuals")
19191 (version (git-version "0.2.14" revision commit))
19192 (source
19193 (origin
19194 (method git-fetch)
19195 (uri (git-reference
19196 (url "https://github.com/drieslab/GiottoVisuals")
19197 (commit commit)))
19198 (file-name (git-file-name name version))
19199 (sha256
19200 (base32 "1a9kdfvz7bpb92fjgsyjd12rp7c0zc3cbjvkcv5lf91lfjqivlhb"))))
19201 (properties `((upstream-name . "GiottoVisuals")))
19202 (build-system r-build-system)
19203 (propagated-inputs (list r-checkmate
19204 r-colorramp2
19205 r-cowplot
19206 r-data-table
19207 r-ggplot2
19208 r-ggrepel
19209 r-giottoclass
19210 r-giottoutils
19211 r-igraph
19212 r-plotly
19213 r-scales
19214 r-scattermore
19215 r-terra))
19216 (native-inputs (list r-knitr r-testthat))
19217 (home-page "https://github.com/drieslab/GiottoVisuals")
19218 (synopsis "Visuals for the Giotto spatial biology analysis suite")
19219 (description
19220 "This package provides expanded visualization and plotting
19221functionality for Giotto Suite.")
19222 (license license:expat))))
19223
19224(define-public r-giotto
19225 (let ((commit "7988300d59d7ca67c6203411794f1f3a813979d5")
19226 (revision "1"))
19227 (package
19228 (name "r-giotto")
19229 (version (git-version "4.2.2" revision commit))
19230 (source
19231 (origin
19232 (method git-fetch)
19233 (uri (git-reference
19234 (url "https://github.com/drieslab/Giotto")
19235 (commit commit)))
19236 (file-name (git-file-name name version))
19237 (sha256
19238 (base32 "1h3a6czswpczckc5cgcfsxjcil0pzq57fv8lfrgjl655qqs3riix"))))
19239 (properties `((upstream-name . "Giotto")))
19240 (build-system r-build-system)
19241 ;; Test data are not included.
19242 (arguments (list #:tests? #false))
19243 (propagated-inputs
19244 (list r-bluster
19245 r-biocparallel
19246 r-biocsingular
19247 r-checkmate
19248 r-data-table
19249 r-dbscan
19250 r-ggplot2
19251 r-ggraph
19252 r-giottoclass
19253 r-giottoutils
19254 r-giottovisuals
19255 r-igraph
19256 r-matrix
19257 r-matrixgenerics
19258 r-reticulate
19259 r-scales
19260 r-sparsematrixstats
19261 r-terra
19262 r-uwot
19263
19264 ;; The following are suggested packages
19265 r-arrow
19266 r-clusterr
19267 r-complexheatmap
19268 r-fitdistrplus
19269 r-future-apply
19270 r-ggdendro
19271 r-limma
19272 r-plotly
19273 r-r-utils
19274 r-rfast
19275 r-rlang
19276 r-rtsne))
19277 (native-inputs (list r-knitr r-testthat))
19278 (home-page "https://github.com/drieslab/Giotto")
19279 (synopsis "Spatial single-cell transcriptomics toolbox")
19280 (description
19281 "This package provides a toolbox to process, analyze and visualize
19282spatial single-cell expression data.")
19283 (license license:expat))))
19284
19285;; Variant of r-illuminahumanmethylationepicmanifest in the
19286;; (gnu packages bioconductor) module.
19287(define-public r-illuminahumanmethylationepicmanifest-latest
19288 (let ((commit "a9ffbad36f5e496ece6c4c37b80e2f4f7e02d0c3")
19289 (revision "1"))
19290 (package
19291 (name "r-illuminahumanmethylationepicmanifest")
19292 (version (git-version "1.0.0" revision commit))
19293 (source
19294 (origin
19295 (method git-fetch)
19296 (uri (git-reference
19297 (url
19298 "https://github.com/achilleasNP/IlluminaHumanMethylationEPICmanifest")
19299 (commit commit)))
19300 (file-name (git-file-name name version))
19301 (sha256
19302 (base32 "0v8f0hl0v8gwi61vgqw56rn5j09h95hj54rb8pzbn0znm162n4fc"))))
19303 (properties `((upstream-name . "IlluminaHumanMethylationEPICmanifest")))
19304 (build-system r-build-system)
19305 (home-page
19306 "https://github.com/achilleasNP/IlluminaHumanMethylationEPICmanifest")
19307 (synopsis "Illumina Human Methylation Manifest 1.0 B5 for R and minfi")
19308 (description
19309 "This is a drop-in replacement for the
19310@code{IlluminaHumanMethylationEPIC} package. It utilizes a Manifest based on
193111.0B5 annotation. As of version 0.3.0, the
19312@code{IlluminaHumanMethylationEPIC} package still employs the 1.0B2 annotation
19313manifest. A corresponding annotation package,
19314@code{IlluminaHumanMethylationEPICanno.ilm10b5.hg38}, is available to ensure
19315proper annotation. The decision to maintain the same name is due to
19316complications in downstream processing caused by array name lookup in certain
19317preprocessing options.")
19318 (license license:artistic2.0))))
19319
19320(define-public r-illuminahumanmethylationepicanno-ilm10b5-hg38
19321 (let ((commit "3db06910e27f626e0cc8b335ff45cf9a4050a36a")
19322 (revision "1"))
19323 (package
19324 (name "r-illuminahumanmethylationepicanno-ilm10b5-hg38")
19325 (version (git-version "0.0.1" revision commit))
19326 (source (origin
19327 (method git-fetch)
19328 (uri (git-reference
19329 (url
19330 "https://github.com/achilleasNP/IlluminaHumanMethylationEPICanno.ilm10b5.hg38")
19331 (commit commit)))
19332 (file-name (git-file-name name version))
19333 (sha256
19334 (base32
19335 "0y8fhiwmkldi57f8nq64njfgljw68cm6pb1vh44hjwcc12k48sqr"))))
19336 (properties `((upstream-name . "IlluminaHumanMethylationEPICanno.ilm10b5.hg38")))
19337 (build-system r-build-system)
19338 (propagated-inputs (list r-minfi))
19339 (home-page
19340 "https://github.com/achilleasNP/IlluminaHumanMethylationEPICanno.ilm10b5.hg38")
19341 (synopsis "Illumina Human Methylation EPIC Annotation version 1.0B5")
19342 (description
19343 "This package provides a companion annotation file to the
19344@code{IlluminaHumanMethylationEPICmanifest} package based on the same
19345annotation 1.0B5.")
19346 (license license:artistic2.0))))
19347
19348(define-public r-maxprobes
19349 (let ((commit "c2120dba972e12115280ef274ff80550cee5b264")
19350 (revision "1"))
19351 (package
19352 (name "r-maxprobes")
19353 (version (git-version "0.0.2" revision commit))
19354 (source (origin
19355 (method git-fetch)
19356 (uri (git-reference
19357 (url "https://github.com/markgene/maxprobes")
19358 (commit commit)))
19359 (file-name (git-file-name name version))
19360 (sha256
19361 (base32
19362 "1kij9bds2l9mwm519bzyd2608563qjlmbrayhva1s0vgml5iq9wh"))))
19363 (properties `((upstream-name . "maxprobes")))
19364 (build-system r-build-system)
19365 (propagated-inputs (list r-minfi r-minfidata))
19366 (native-inputs (list r-knitr))
19367 (home-page "https://github.com/markgene/maxprobes")
19368 (synopsis "Methylation array cross-reactive probes")
19369 (description
19370 "The Maxprobes package collects cross-reactive probes of Illumina
19371methylation array 450K and EPIC/850K.")
19372 (license license:gpl2+))))
19373
19374(define-public gffread
19375 ;; We cannot use the tagged release because it is not in sync with gclib.
19376 ;; See https://github.com/gpertea/gffread/issues/26
19377 (let ((commit "ba7535fcb3cea55a6e5a491d916e93b454e87fd0")
19378 (revision "1"))
19379 (package
19380 (name "gffread")
19381 (version (git-version "0.9.12" revision commit))
19382 (source
19383 (origin
19384 (method git-fetch)
19385 (uri (git-reference
19386 (url "https://github.com/gpertea/gffread")
19387 (commit commit)))
19388 (file-name (git-file-name name version))
19389 (sha256
19390 (base32
19391 "1dl2nbcg96lxpd0drg48ssa8343nf7pw9s9mkrc4mjjmfwsin3ki"))))
19392 (build-system gnu-build-system)
19393 (arguments
19394 `(#:tests? #f ; no check target
19395 #:make-flags
19396 (list "GCLDIR=gclib")
19397 #:phases
19398 (modify-phases %standard-phases
19399 (delete 'configure)
19400 (add-after 'unpack 'copy-gclib-source
19401 (lambda* (#:key inputs #:allow-other-keys)
19402 (mkdir-p "gclib")
19403 (copy-recursively (assoc-ref inputs "gclib-source") "gclib")
19404 #t))
19405 ;; There is no install target
19406 (replace 'install
19407 (lambda* (#:key outputs #:allow-other-keys)
19408 (let* ((out (assoc-ref outputs "out"))
19409 (bin (string-append out "/bin")))
19410 (install-file "gffread" bin))
19411 #t)))))
19412 (native-inputs
19413 `(("gclib-source"
19414 ,(let ((version "0.10.3")
19415 (commit "54917d0849c1e83cfb057b5f712e5cb6a35d948f")
19416 (revision "1"))
19417 (origin
19418 (method git-fetch)
19419 (uri (git-reference
19420 (url "https://github.com/gpertea/gclib")
19421 (commit commit)))
19422 (file-name (git-file-name "gclib" version))
19423 (sha256
19424 (base32
19425 "0b51lc0b8syrv7186fd7n8f15rwnf264qgfmm2palrwks1px24mr")))))))
19426 (home-page "https://github.com/gpertea/gffread/")
19427 (synopsis "Parse and convert GFF/GTF files")
19428 (description
19429 "This package provides a GFF/GTF file parsing utility providing format
19430conversions, region filtering, FASTA sequence extraction and more.")
19431 ;; gffread is under Expat, but gclib is under Artistic 2.0
19432 (license (list license:expat
19433 license:artistic2.0)))))
19434
19435(define-public fit-sne
19436 (package
19437 (name "fit-sne")
19438 (version "1.2.1")
19439 (source
19440 (origin
19441 (method git-fetch)
19442 (uri (git-reference
19443 (url "https://github.com/KlugerLab/FIt-SNE")
19444 (commit (string-append "v" version))))
19445 (file-name (git-file-name name version))
19446 (sha256
19447 (base32
19448 "1imq4577awc226wvygf94kpz156qdfw8xl0w0f7ss4w10lhmpmf5"))))
19449 (build-system gnu-build-system)
19450 (arguments
19451 `(#:tests? #false ; there are none
19452 #:phases
19453 ;; There is no build system.
19454 (modify-phases %standard-phases
19455 (delete 'configure)
19456 (replace 'build
19457 (lambda _
19458 (invoke "g++" "-std=c++11" "-O3"
19459 "src/sptree.cpp"
19460 "src/tsne.cpp"
19461 "src/nbodyfft.cpp"
19462 "-o" "bin/fast_tsne"
19463 "-pthread" "-lfftw3" "-lm"
19464 "-Wno-address-of-packed-member")))
19465 (replace 'install
19466 (lambda* (#:key outputs #:allow-other-keys)
19467 (let* ((out (assoc-ref outputs "out"))
19468 (bin (string-append out "/bin"))
19469 (share (string-append out "/share/fit-sne")))
19470 (for-each (lambda (file) (install-file file bin))
19471 (find-files "bin"))
19472
19473 (substitute* "fast_tsne.R"
19474 (("^FAST_TSNE_SCRIPT_DIR.*")
19475 (string-append "FAST_TSNE_SCRIPT_DIR = \"" out "\"\n")))
19476 (install-file "fast_tsne.R" share)))))))
19477 (inputs
19478 (list fftw))
19479 (home-page "https://github.com/KlugerLab/FIt-SNE")
19480 (synopsis "Fast Fourier Transform-accelerated interpolation-based t-SNE")
19481 (description "@dfn{t-Stochastic Neighborhood Embedding} (t-SNE) is a
19482method for dimensionality reduction and visualization of high dimensional
19483datasets. A popular implementation of t-SNE uses the Barnes-Hut algorithm to
19484approximate the gradient at each iteration of gradient descent. This
19485implementation differs in these ways:
19486
19487@itemize
19488@item Instead of approximating the N-body simulation using Barnes-Hut, we
19489 interpolate onto an equispaced grid and use FFT to perform the convolution.
19490@item Instead of computing nearest neighbors using vantage-point trees, we
19491 approximate nearest neighbors using the Annoy library. The neighbor lookups
19492 are multithreaded to take advantage of machines with multiple cores.
19493@end itemize
19494")
19495 ;; See LICENSE.txt for details on what license applies to what files.
19496 (license (list license:bsd-4 license:expat license:asl2.0))))
19497
19498(define-public python-scanpy
19499 (package
19500 (name "python-scanpy")
19501 (version "1.12.2")
19502 (source
19503 (origin
19504 (method git-fetch)
19505 (uri (git-reference
19506 (url "https://github.com/theislab/scanpy")
19507 (commit version)))
19508 (file-name (git-file-name name version))
19509 (sha256
19510 (base32
19511 "02mmsz267zyx1ndw9qqsrccxhjr65xpyyqbf5i1j761y7mm4aayh"))))
19512 (build-system pyproject-build-system)
19513 (arguments
19514 (list
19515 ;; tests: 2052 passed, 101 skipped, 100 xfailed, 12 warnings, 34
19516 ;; subtests passed
19517 #:test-flags
19518 ;; XXX: There is an "internet" marker but it has no effect when
19519 ;; deselected, forcing to download data from Internet during tests
19520 ;; anyway.
19521 #~(list "-m" "not gpu"
19522 "--numprocesses" (number->string (min 8 (parallel-job-count)))
19523 #$@(map (lambda (ls) (string-append "--deselect=tests/"
19524 (string-join ls "::")))
19525 ;; Tests requiring Internet access.
19526 '(("test_pca.py" "test_pca_rep")
19527 ("test_scaling.py" "test_clip")
19528 ("test_pca.py" "test_pca_n_pcs")
19529 ("test_pca.py" "test_pca_sparse")
19530 ("test_pca.py" "test_pca_chunked")
19531 ("test_paga.py" "test_paga_compare")
19532 ("test_pca.py" "test_pca_reproducible")
19533 ("test_plotting.py" "test_string_mask")
19534 ("notebooks/test_pbmc3k.py" "test_pbmc3k")
19535 ("test_plotting.py" "test_scrublet_plots")
19536 ("test_metrics.py" "test_modularity_adata")
19537 ("test_plotting.py" "test_umap_mask_equal")
19538 ("test_aggregated.py" "test_aggregate_axis")
19539 ("test_aggregated.py"
19540 "test_var_no_catastrophic_cancellation")
19541 ("test_datasets.py" "test_download_failure")
19542 ("test_pca.py" "test_covariance_eigh_impls")
19543 ("test_plotting.py" "test_highest_expr_genes")
19544 ("test_pca.py" "test_sparse_dask_input_errors")
19545 ("test_plotting.py" "test_umap_mask_mult_plots")
19546 ("test_plotting.py" "test_violin_scale_warning")
19547 ("test_preprocessing.py" "test_regress_out_int")
19548 ("test_aggregated.py" "test_aggregate_arraytype")
19549 ("test_aggregated.py" "test_aggregate_vs_pandas")
19550 ("test_highly_variable_genes.py" "test_keep_layer")
19551 ("test_score_genes.py" "test_score_with_reference")
19552 ("test_highly_variable_genes.py" "test_cutoff_info")
19553 ("test_aggregated.py" "test_aggregate_incorrect_dim")
19554 ("test_plotting.py" "test_umap_mask_no_modification")
19555 ("test_aggregated.py"
19556 "test_aggregate_bad_dask_array")
19557 ("test_highly_variable_genes.py"
19558 "test_no_filter_genes")
19559 ("test_highly_variable_genes.py"
19560 "test_dask_consistency")
19561 ("test_highly_variable_genes.py"
19562 "test_seurat_v3_warning")
19563 ("test_highly_variable_genes.py"
19564 "test_compare_to_seurat_v3")
19565 ("external/test_harmony_integrate.py"
19566 "test_harmony_integrate")
19567 ("test_plotting.py"
19568 "test_plot_rank_genes_groups_gene_symbols")
19569 ("test_highly_variable_genes.py"
19570 "test_pearson_residuals_batch")
19571 ("test_normalization.py"
19572 "test_normalize_pearson_residuals_pca")
19573 ("test_normalization.py"
19574 "test_normalize_matrix_types")
19575 ("test_highly_variable_genes.py"
19576 "test_pearson_residuals_general")
19577 ("test_highly_variable_genes.py"
19578 "test_subset_inplace_consistency")
19579 ("test_normalization.py"
19580 "test_normalize_pearson_residuals_errors")
19581 ("test_normalization.py"
19582 "test_normalize_pearson_residuals_recipe")
19583 ("test_normalization.py"
19584 "test_normalize_pearson_residuals_warnings")
19585 ("test_highly_variable_genes.py"
19586 "test_pearson_residuals_inputchecks")
19587 ("test_plotting_embedded/test_embeddings.py"
19588 "test_raise_save_future_warning")
19589 ("test_highly_variable_genes.py"
19590 "test_seurat_v3_mean_var_output_with_batchkey")
19591 ("test_plotting_embedded/test_embeddings.py"
19592 "test_embedding_colorbar_location")))
19593 (string-append "--deselect=tests/test_plotting.py"
19594 "::test_umap_categories_change_"
19595 "when_rerun_with_more_categories")
19596 (string-append "--deselect=tests/test_plotting.py"
19597 "::test_umap_categories_dont_change_"
19598 "when_rerun_with_fewer_categories")
19599 (string-append "--deselect=get/_aggregated.py"
19600 "::scanpy.get._aggregated.aggregate")
19601 (string-append "--deselect=external/pp/_magic.py"
19602 "::scanpy.external.pp._magic.magic")
19603 (string-append "--deselect=external/pp/_harmony_integrate.py"
19604 "::scanpy.external.pp."
19605 "_harmony_integrate.harmony_integrate")
19606 #$@(map (lambda (ls) (string-append "--deselect=tests/"
19607 (string-join ls "::")))
19608 ;; Tests failing with error: Image files did not match.
19609 '(("test_plotting.py" "test_rankings")
19610 ("test_plotting.py" "test_dotplot_obj")
19611 ("test_plotting.py" "test_stacked_violin_obj")
19612 ("test_plotting.py" "test_dotplot_add_totals")
19613 ("test_plotting.py" "test_rank_genes_group_axes")
19614 ("test_plotting.py" "test_scatter_no_basis_per_obs")
19615 ("test_plotting.py"
19616 "test_dotplot_matrixplot_stacked_violin")
19617 ("test_plotting_embedded/test_spatial.py"
19618 "test_spatial_general")
19619 ("test_plotting_embedded/test_spatial.py"
19620 "test_visium_empty_img_key")
19621 ("test_plotting_embedded/test_spatial.py"
19622 "test_spatial_external_img")))
19623 #$@(map (lambda (ls) (string-append "--deselect=tests/"
19624 (string-join ls "::")))
19625 ;; Failed on deprecation warnings.
19626 '(("external/test_magic.py" "test_magic_copy")
19627 ("external/test_magic.py" "test_magic_default")
19628 ("external/test_magic.py" "test_magic_pca_only")
19629 ("test_preprocessing.py"
19630 "test_regress_out_constants")
19631 ("test_preprocessing.py"
19632 "test_regress_out_reproducible")
19633 ("test_preprocessing.py"
19634 "test_regress_out_constants_equivalent")))
19635 #$@(map (lambda (ls) (string-append "--deselect=tests/"
19636 (string-join ls "::")))
19637 ;; TypeError: deprecate_kwarg() missing 1 required
19638 ;; positional argument: 'new_arg_name'
19639 '(("test_preprocessing.py" "test_regress_out_categorical")
19640 ;; TypeError: Cannot interpret
19641 ;; '<StringDtype(na_value=nan)>' as a data type
19642 ("test_combat.py" "test_norm")
19643 ;; TypeError: only integer scalar arrays can be
19644 ;; converted to a scalar index
19645 ("test_combat.py" "test_covariates")
19646 ("test_combat.py" "test_combat_obs_names")
19647 ("test_combat.py" "test_silhouette")
19648 ;; [XPASS(strict)] seaborn violin plot is
19649 ;; incompatible with pandas 3
19650 ("test_plotting.py" "test_rank_genes_groups")
19651 ;; pytest.PytestUnhandledThreadExceptionWarning:
19652 ;; Exception in thread ExecutorManagerThread
19653 ("test_preprocessing.py"
19654 "test_regress_out_categorical"))))
19655 #:phases
19656 #~(modify-phases %standard-phases
19657 (add-after 'unpack 'fix-pytest-config
19658 (lambda _
19659 (substitute* "pyproject.toml"
19660 ;; ModuleNotFoundError: No module named 'pyparsing.warnings'
19661 ((".*pyparsing.warnings.*") ""))))
19662 (add-before 'check 'pre-check
19663 (lambda _
19664 ;; Numba needs a writable dir to cache functions.
19665 (setenv "NUMBA_CACHE_DIR" "/tmp")
19666 ;; For Matplotlib.
19667 (setenv "HOME" "/tmp"))))))
19668 (propagated-inputs
19669 (list python-anndata
19670 python-certifi
19671 python-fast-array-utils
19672 python-h5py
19673 python-joblib
19674 python-legacy-api-wrap
19675 python-matplotlib
19676 python-natsort
19677 python-networkx
19678 python-numba
19679 python-numpy
19680 python-packaging
19681 python-pandas
19682 python-patsy
19683 python-pynndescent
19684 python-scikit-learn
19685 python-scipy
19686 python-scverse-misc
19687 python-seaborn
19688 python-session-info2
19689 python-statsmodels
19690 python-tqdm
19691 python-typing-extensions ;Python version <3.13
19692 python-umap-learn
19693 ;; [optional]
19694 python-dask
19695 python-harmonypy
19696 python-igraph
19697 python-leidenalg
19698 python-louvain
19699 python-magic-impute
19700 python-scikit-misc
19701 python-setuptools)) ;for pkg_resources
19702 (native-inputs
19703 (list nss-certs-for-test
19704 python-dependency-groups
19705 python-hatch-vcs
19706 python-hatchling
19707 python-pytest
19708 python-pytest-mock
19709 python-pytest-randomly
19710 python-pytest-rerunfailures
19711 python-pytest-xdist
19712 #;python-tuna)) ;no packaged in Guix yet
19713 (home-page "https://github.com/theislab/scanpy")
19714 (synopsis "Single-Cell Analysis in Python")
19715 (description "Scanpy is a scalable toolkit for analyzing single-cell gene
19716expression data. It includes preprocessing, visualization, clustering,
19717pseudotime and trajectory inference and differential expression testing. The
19718Python-based implementation efficiently deals with datasets of more than one
19719million cells.")
19720 (license license:bsd-3)))
19721
19722(define-public python-bbknn
19723 (package
19724 (name "python-bbknn")
19725 (version "1.6.0")
19726 (source
19727 (origin
19728 (method url-fetch)
19729 (uri (pypi-uri "bbknn" version))
19730 (sha256
19731 (base32
19732 "06q43cpi7wi6f2d2jqs8f9rbd94pg1hh7978gm92mi9gvzbaj08w"))))
19733 (build-system pyproject-build-system)
19734 (arguments
19735 (list
19736 #:tests? #f ;no tests are included
19737 #:phases
19738 '(modify-phases %standard-phases
19739 ;; Numba needs a writable dir to cache functions.
19740 (add-before 'check 'set-numba-cache-dir
19741 (lambda _
19742 (setenv "NUMBA_CACHE_DIR" "/tmp"))))))
19743 (propagated-inputs
19744 (list python-annoy
19745 python-cython
19746 python-numpy
19747 python-pandas
19748 python-pynndescent
19749 python-scikit-learn
19750 python-scipy
19751 python-umap-learn))
19752 (native-inputs (list python-flit-core))
19753 (home-page "https://github.com/Teichlab/bbknn")
19754 (synopsis "Batch balanced KNN")
19755 (description "BBKNN is a batch effect removal tool that can be directly
19756used in the Scanpy workflow. It serves as an alternative to
19757@code{scanpy.api.pp.neighbors()}, with both functions creating a neighbour
19758graph for subsequent use in clustering, pseudotime and UMAP visualisation. If
19759technical artifacts are present in the data, they will make it challenging to
19760link corresponding cell types across different batches. BBKNN actively
19761combats this effect by splitting your data into batches and finding a smaller
19762number of neighbours for each cell within each of the groups. This helps
19763create connections between analogous cells in different batches without
19764altering the counts or PCA space.")
19765 (license license:expat)))
19766
19767(define-public python-drep
19768 (package
19769 (name "python-drep")
19770 (version "3.7.1")
19771 (source
19772 (origin
19773 (method git-fetch)
19774 (uri (git-reference
19775 (url "https://github.com/MrOlm/drep")
19776 (commit version)))
19777 (file-name (git-file-name name version))
19778 (sha256
19779 (base32 "01dnh8rdhz6pzppqjify2v5a10gq5pcbcli5x16a0yi09bnm7nk1"))))
19780 (build-system pyproject-build-system)
19781 (arguments
19782 (list
19783 ;; tests: 27 passed, 12 skipped, 39 deselected, 1 warning
19784 #:test-flags
19785 ;; Tests depend on "near essential" and "optional" dependencies.
19786 #~(list #$@(map (lambda (test) (string-append "--deselect="
19787 "tests/tests/"
19788 test))
19789 (list "test_analyze.py::test_plot_5_1"
19790 "test_analyze.py::test_plot_5_2"
19791 "test_analyze.py::test_plot_6_1"
19792 "test_analyze.py::test_plotting_functional_1"
19793 "test_bonus.py::test_drep_scaffold_level"
19794 "test_bonus.py::test_drep_scaffold_level_2"
19795 "test_bonus.py::test_drep_scaffold_level_3"
19796 "test_bonus.py::test_drep_scaffold_level_4"
19797 "test_bonus.py::test_drep_scaffold_level_5"
19798 "test_bonus.py::test_parse_stb_2"
19799 "test_choose.py::test_centrality_1"
19800 "test_choose.py::test_centrality_2"
19801 "test_choose.py::test_choose_2"
19802 "test_choose.py::test_choose_3"
19803 "test_cluster.py::test_all_vs_all_mash"
19804 "test_cluster.py::test_cluster_functional_1"
19805 "test_cluster.py::test_cluster_functional_3"
19806 "test_cluster.py::test_cluster_functional_4"
19807 "test_cluster.py::test_cluster_functional_5"
19808 "test_cluster.py::test_compare_genomes"
19809 "test_cluster.py::test_fastANI"
19810 "test_cluster.py::test_goANI"
19811 "test_cluster.py::test_goANI2"
19812 "test_cluster.py::test_list_genome_load"
19813 "test_cluster.py::test_low_ram_primary_clustering"
19814 "test_cluster.py::test_skani"
19815 "test_dereplicate.py::test_dereplicate_10"
19816 "test_dereplicate.py::test_dereplicate_2"
19817 "test_dereplicate.py::test_dereplicate_3"
19818 "test_dereplicate.py::test_dereplicate_6"
19819 "test_evaluate.py::test_tertiary_clustering_1"
19820 "test_evaluate.py::test_tertiary_clustering_2"
19821 "test_filter.py::test_filer_functional_3"
19822 "test_greedy.py::test_greedy_secondary_clustering_1"
19823 "test_greedy.py::test_greedy_secondary_clustering_2"
19824 "test_greedy.py::test_multiround_primary_clustering_1"
19825 "test_greedy.py::test_multiround_primary_clustering_2"
19826 "test_rerun.py::test_unit_1"
19827 "test_rerun.py::test_unit_3"
19828 "test_rerun.py::test_unit_4")))))
19829 (native-inputs
19830 (list mash
19831 ;; nsimscan
19832 ;; mummer ;https://github.com/mummer4/mummer, asl2.0
19833 ;; fastani ;https://github.com/ParBLiSS/FastANI, asl2.0
19834 ;; checkm ;https://ecogenomics.github.io/CheckM/, gpl3
19835 ;; skani
19836 python-pytest
19837 python-setuptools))
19838 (propagated-inputs
19839 (list python-biopython
19840 python-matplotlib
19841 python-networkx
19842 python-numpy
19843 python-pandas
19844 python-scikit-learn
19845 python-seaborn
19846 python-tqdm))
19847 (home-page "https://github.com/MrOlm/drep")
19848 (synopsis "De-replication of microbial genomes assembled from multiple samples")
19849 (description
19850 "dRep is a Python program for rapidly comparing large numbers of genomes.
19851dRep can also \"de-replicate\" a genome set by identifying groups of highly
19852similar genomes and choosing the best representative genome for each genome
19853set.")
19854 (license license:expat)))
19855
19856(define-public instrain
19857 (package
19858 (name "instrain")
19859 ;; Git repository does not tag releases, use the latest commit from master
19860 ;; branch.
19861 (properties '((commit . "f172367e599851a6cb90048ae890d1bb6569063f")
19862 (revision . "1")))
19863 (version (git-version "1.10.0"
19864 (assoc-ref properties 'revision)
19865 (assoc-ref properties 'commit)))
19866 (source
19867 (origin
19868 (method git-fetch)
19869 (uri (git-reference
19870 (url "https://github.com/MrOlm/instrain")
19871 (commit (assoc-ref properties 'commit))))
19872 (file-name (git-file-name name version))
19873 (sha256
19874 (base32 "12rrkcckna7k095clir9100cz6i5dn77anih6aq1blbsg4yhprnr"))))
19875 (build-system pyproject-build-system)
19876 (arguments
19877 (list
19878 ;; tests: 10 failed, 86 passed, 15 skipped, 220 warnings
19879 #:test-flags
19880 #~(list #$@(map (lambda (test)
19881 (string-append "--deselect=test/tests/" test))
19882 ;; Mixture of "FileNotFoundError" and "AssertionError"
19883 ;; errors.
19884 (list "test_genes.py::test_genes_0"
19885 "test_genes.py::test_genes_1"
19886 "test_genes.py::test_genes_2"
19887 "test_genes.py::test_genes_3"
19888 "test_parse_gene_annotations.py::test_PA_2"
19889 "test_polymorpher.py::test_polymorpher_unit_0"
19890 "test_polymorpher.py::test_polymorpher_unit_3"
19891 "test_quick_profile.py::test_quick_profile_0"
19892 "test_quick_profile.py::test_quick_profile_1"
19893 "test_quick_profile.py::test_quick_profile_2")))
19894 #:phases
19895 #~(modify-phases %standard-phases
19896 (add-after 'unpack 'patch-relative-imports
19897 (lambda _
19898 ;; See: <https://github.com/MrOlm/inStrain/issues/218>.
19899 (mkdir "test/test_backend/")
19900 (substitute* (find-files "test/tests" "test_.*\\.py")
19901 (("from test_utils import BTO")
19902 "from .test_utils import BTO")
19903 (("import test_utils") "from . import test_utils"))
19904 (substitute* "docker/run_instrain.py"
19905 (("from s3_utils")
19906 "from .s3_utils")
19907 (("from job_utils")
19908 "from .job_utils"))))
19909 (add-after 'unpack 'relax-requirements
19910 (lambda _
19911 (substitute* "setup.py"
19912 (("biopython<=1.74") "biopython")
19913 ((".*pytest.*") "")))))))
19914 (propagated-inputs
19915 (list python-biopython
19916 python-h5py
19917 python-lmfit
19918 python-matplotlib
19919 python-networkx
19920 python-numpy
19921 python-pandas
19922 python-psutil
19923 python-pysam
19924 python-seaborn
19925 python-tqdm))
19926 (native-inputs
19927 (list python-boto3
19928 python-pytest
19929 python-setuptools))
19930 (home-page "https://github.com/MrOlm/inStrain")
19931 (synopsis "Calculation of strain-level metrics")
19932 (description
19933 "inStrain is a Python program for analysis of co-occurring genome
19934populations from metagenomes that allows highly accurate genome comparisons,
19935analysis of coverage, microdiversity, and linkage, and sensitive SNP detection
19936with gene localization and synonymous non-synonymous identification.")
19937 ;; The tool itself says that the license is "MIT", but the repository
19938 ;; contains a LICENSE file with the GPLv3.
19939 ;; See https://github.com/MrOlm/inStrain/issues/51
19940 (license license:expat)))
19941
19942(define-public gffcompare
19943 (let ((commit "be56ef4349ea3966c12c6397f85e49e047361c41")
19944 (revision "1"))
19945 (package
19946 (name "gffcompare")
19947 (version (git-version "0.10.15" revision commit))
19948 (source
19949 (origin
19950 (method git-fetch)
19951 (uri (git-reference
19952 (url "https://github.com/gpertea/gffcompare/")
19953 (commit commit)))
19954 (file-name (git-file-name name version))
19955 (sha256
19956 (base32 "0cp5qpxdhw4mxpya5dld8wi3jk00zyklm6rcri426wydinrnfmkg"))))
19957 (build-system gnu-build-system)
19958 (arguments
19959 `(#:tests? #f ; no check target
19960 #:phases
19961 (modify-phases %standard-phases
19962 (delete 'configure)
19963 (add-before 'build 'copy-gclib-source
19964 (lambda* (#:key inputs #:allow-other-keys)
19965 (mkdir "../gclib")
19966 (copy-recursively
19967 (assoc-ref inputs "gclib-source") "../gclib")
19968 #t))
19969 (replace 'install
19970 (lambda* (#:key outputs #:allow-other-keys)
19971 (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
19972 (install-file "gffcompare" bin)
19973 #t))))))
19974 (native-inputs
19975 `(("gclib-source" ; see 'README.md' of gffcompare
19976 ,(let ((commit "54917d0849c1e83cfb057b5f712e5cb6a35d948f")
19977 (revision "1")
19978 (name "gclib")
19979 (version (git-version "0.10.3" revision commit)))
19980 (origin
19981 (method git-fetch)
19982 (uri (git-reference
19983 (url "https://github.com/gpertea/gclib/")
19984 (commit commit)))
19985 (file-name (git-file-name name version))
19986 (sha256
19987 (base32 "0b51lc0b8syrv7186fd7n8f15rwnf264qgfmm2palrwks1px24mr")))))))
19988 (home-page "https://github.com/gpertea/gffcompare/")
19989 (synopsis "Tool for comparing or classifing transcripts of RNA-Seq")
19990 (description
19991 "@code{gffcompare} is a tool that can:
19992@enumerate
19993@item compare and evaluate the accuracy of RNA-Seq transcript assemblers
19994(Cufflinks, Stringtie);
19995@item collapse (merge) duplicate transcripts from multiple GTF/GFF3 files (e.g.
19996resulted from assembly of different samples);
19997@item classify transcripts from one or multiple GTF/GFF3 files as they relate to
19998reference transcripts provided in a annotation file (also in GTF/GFF3 format).
19999@end enumerate")
20000 (license
20001 (list
20002 license:expat ;license for gffcompare
20003 license:artistic2.0))))) ;license for gclib
20004
20005(define-public intervaltree
20006 (let ((commit "b90527f9e6d51cd36ecbb50429e4524d3a418ea5"))
20007 (package
20008 (name "intervaltree")
20009 (version (git-version "0.0.0" "1" commit))
20010 (source
20011 (origin
20012 (method git-fetch)
20013 (uri (git-reference
20014 (url "https://github.com/ekg/intervaltree/")
20015 (commit commit)))
20016 (file-name (git-file-name name version))
20017 (sha256
20018 (base32 "0rgv6q5fl4x5d74n6p5wvdna6zmbdbqpb4jqqh6vq3670gn08xad"))))
20019 (build-system gnu-build-system)
20020 (arguments
20021 `(#:tests? #f ; No tests.
20022 #:make-flags
20023 ,#~(list (string-append "PREFIX=" #$output) "DESTDIR=\"\"")
20024 #:phases
20025 (modify-phases %standard-phases
20026 (delete 'configure)))) ; There is no configure phase.
20027 (home-page "https://github.com/ekg/intervaltree")
20028 (synopsis "Minimal C++ interval tree implementation")
20029 (description "An interval tree can be used to efficiently find a set of
20030numeric intervals overlapping or containing another interval. This library
20031provides a basic implementation of an interval tree using C++ templates,
20032allowing the insertion of arbitrary types into the tree.")
20033 (license license:expat))))
20034
20035(define-public python-pypairix
20036 (package
20037 (name "python-pypairix")
20038 (version "0.3.9")
20039 ;; The tarball on pypi does not include the makefile to build the
20040 ;; programs.
20041 (source
20042 (origin
20043 (method git-fetch)
20044 (uri (git-reference
20045 (url "https://github.com/4dn-dcic/pairix")
20046 (commit version)))
20047 (file-name (git-file-name name version))
20048 (sha256
20049 (base32
20050 "1jlxj3xa67q1i58pmbi6imhvl6f5w9m5qxv0xd45ba86mp8mnmvz"))))
20051 (build-system pyproject-build-system)
20052 (arguments
20053 (list
20054 #:phases
20055 #~(modify-phases %standard-phases
20056 (add-after 'unpack 'respect-CFLAGS
20057 (lambda _
20058 (substitute* "src/Makefile"
20059 (("CFLAGS=")
20060 "CFLAGS?="))))
20061 (add-before 'build 'relax-gcc-14-strictness
20062 (lambda _
20063 (setenv "CFLAGS"
20064 (string-append "-g -O2"
20065 " -Wno-error=incompatible-pointer-types"
20066 " -Wno-error=int-conversion"))))
20067 (add-before 'build 'build-programs
20068 (lambda _ (invoke "make")))
20069 (add-after 'install 'install-programs
20070 (lambda _
20071 (copy-recursively "bin" (string-append #$output "/bin")))))))
20072 (native-inputs
20073 (list python-pytest
20074 python-setuptools))
20075 (inputs
20076 (list zlib))
20077 (home-page "https://github.com/4dn-dcic/pairix")
20078 (synopsis "Support for querying pairix-indexed bgzipped text files")
20079 (description
20080 "Pypairix is a Python module for fast querying on a pairix-indexed
20081bgzipped text file that contains a pair of genomic coordinates per line.")
20082 (license license:expat)))
20083
20084(define-public python-pyrodigal
20085 (package
20086 (name "python-pyrodigal")
20087 (version "3.6.3")
20088 (source
20089 (origin
20090 (method git-fetch)
20091 (uri (git-reference
20092 (url "https://github.com/althonos/pyrodigal")
20093 (commit (string-append "v" version))
20094 ;; XXX: vendor -> <https://github.com/hyattpd/Prodigal>
20095 (recursive? #t)))
20096 (file-name (git-file-name name version))
20097 (sha256
20098 (base32 "1gcvdrx0q730i0r3lndl7l7h0h8xvzsi09ymf14b498mj03yjdq9"))))
20099 (build-system pyproject-build-system)
20100 (arguments
20101 (list
20102 #:phases
20103 #~(modify-phases %standard-phases
20104 (add-after 'unpack 'patch-pyproject
20105 (lambda _
20106 (substitute* "pyproject.toml"
20107 ;; Extra keys present in "project": 'platform'
20108 (("platform =.*") ""))))
20109 (replace 'check
20110 (lambda* (#:key tests? #:allow-other-keys)
20111 (when tests?
20112 (invoke "python" "-m" "unittest" "pyrodigal.tests" "-vv")))))))
20113 (propagated-inputs (list python-archspec))
20114 (native-inputs
20115 (list cmake-minimal
20116 python-cython
20117 python-scikit-build-core))
20118 (home-page "https://github.com/althonos/pyrodigal")
20119 (synopsis "Cython bindings and Python interface for Prodigal")
20120 (description
20121 "This package offers Cython bindings and a Python interface for Prodigal.
20122 Prodigal is an ORF finder designed for both genomes and metagenomes.")
20123 (license license:gpl3)))
20124
20125(define-public python-pyfaidx
20126 (package
20127 (name "python-pyfaidx")
20128 (version "0.9.0.3")
20129 (source (origin
20130 (method url-fetch)
20131 (uri (pypi-uri "pyfaidx" version))
20132 (sha256
20133 (base32
20134 "0yaa64n5m4wxc02lxw6j9dzjk65rxdbak21dlvwhdjwdv4l4p2v4"))))
20135 (build-system pyproject-build-system)
20136 (arguments
20137 (list
20138 ;; tests: 107 failed, 54 passed, 8 skipped, 7 xfailed, 14 errors
20139 #:tests? #f)) ;most of them need remote data
20140 (native-inputs
20141 (list python-biopython
20142 python-fsspec
20143 python-numpy
20144 ;; python-pyfasta
20145 python-pytest
20146 python-setuptools
20147 python-setuptools-scm))
20148 (propagated-inputs
20149 (list python-packaging))
20150 (home-page "http://mattshirley.com")
20151 (synopsis "Random access to fasta subsequences")
20152 (description
20153 "This package provides procedures for efficient pythonic random access to
20154fasta subsequences.")
20155 (license license:bsd-3)))
20156
20157(define-public python-cooler
20158 (package
20159 (name "python-cooler")
20160 ;; 0.10.4 (2025-07-21), the latest changes provide support for Python
20161 ;; 3.12+; move back to git tag when released.
20162 (properties '((commit . "6c2d65b1420a636193b7f05100a96410ea252147")
20163 (revision . "0")))
20164 (version (git-version "0.10.4"
20165 (assoc-ref properties 'revision)
20166 (assoc-ref properties 'commit)))
20167 (source
20168 (origin
20169 (method git-fetch)
20170 (uri (git-reference
20171 (url "https://github.com/open2c/cooler")
20172 (commit (assoc-ref properties 'commit))))
20173 (file-name (git-file-name name version))
20174 (sha256
20175 (base32 "0xdb7lvyzj3wwv6jhkrxlj7gk830wkac4lwq5rjwk1r5qshjbn3n"))))
20176 (build-system pyproject-build-system)
20177 (arguments
20178 (list
20179 ;; tests: 141 passed, 4 skipped, 2 deselected, 270 warnings
20180 #:test-flags
20181 ;; This test depends on ipytree, which contains a lot of minified
20182 ;; JavaScript.
20183 #~(list "--deselect=tests/test_fileops.py::test_print_trees"
20184 ;; Network access is required.
20185 "--deselect=tests/test_create.py::test_roundtrip")))
20186 (native-inputs
20187 (list python-hatchling
20188 python-pytest))
20189 (propagated-inputs
20190 (list python-asciitree
20191 python-click
20192 python-cytoolz
20193 python-h5py
20194 python-multiprocess
20195 python-numpy
20196 python-pandas
20197 python-pyfaidx
20198 python-pyyaml
20199 python-scipy
20200 python-simplejson
20201 ;; [optional]
20202 python-biopython
20203 python-dask
20204 ;; python-ipytree ;no packaged in Guix
20205 python-ipywidgets
20206 python-matplotlib
20207 python-psutil
20208 python-pysam))
20209 ;; Almost all the projects of the Mirnylab are moved under Open2C umbrella
20210 (home-page "https://github.com/open2c/cooler")
20211 (synopsis "Sparse binary format for genomic interaction matrices")
20212 (description
20213 "Cooler is a support library for a sparse, compressed, binary persistent
20214storage format, called @code{cool}, used to store genomic interaction data,
20215such as Hi-C contact matrices.")
20216 (license license:bsd-3)))
20217
20218(define-public python-cooltools
20219 (package
20220 (name "python-cooltools")
20221 (version "0.7.1")
20222 (source
20223 (origin
20224 (method git-fetch)
20225 (uri (git-reference
20226 (url "https://github.com/open2c/cooltools")
20227 (commit (string-append "v" version))))
20228 (file-name (git-file-name name version))
20229 (sha256
20230 (base32 "04i8s414scrffi7xfwynyz7k9crgj93d1zmqgipvdh2kvpigifn3"))))
20231 (build-system pyproject-build-system)
20232 (arguments
20233 (list
20234 ;; tests: 65 passed, 134 warnings
20235 #:phases
20236 #~(modify-phases %standard-phases
20237 (add-after 'unpack 'fix-pytest-config
20238 (lambda _
20239 (delete-file "pytest.ini")))
20240 (add-before 'sanity-check 'set-HOME
20241 (lambda _
20242 (setenv "HOME" "/tmp"))))))
20243 (native-inputs
20244 (list python-cython
20245 python-pytest
20246 python-setuptools))
20247 (propagated-inputs
20248 (list python-bioframe
20249 python-click
20250 python-cooler
20251 python-joblib
20252 python-matplotlib
20253 python-multiprocess
20254 python-numba
20255 python-numpy
20256 python-pandas-2
20257 python-scikit-image
20258 python-scikit-learn
20259 python-scipy))
20260 (home-page "https://github.com/open2c/cooltools")
20261 (synopsis
20262 "Analysis tools for genomic interaction data stored in .cool format")
20263 (description
20264 "This package provides necessary tools for the analysis of the genomic
20265interaction data stored in @code{.cool} format. This collection of tools
20266includes operations like compartment, insulation or peak calling.")
20267 (license license:expat)))
20268
20269(define-public python-hicmatrix
20270 (package
20271 (name "python-hicmatrix")
20272 (version "17.2")
20273 (source
20274 (origin
20275 (method git-fetch)
20276 (uri (git-reference
20277 (url "https://github.com/deeptools/HiCMatrix")
20278 (commit version)))
20279 (file-name (git-file-name name version))
20280 (sha256
20281 (base32 "0pksh4k0k21jmiqvczpsb4i9i8ypip3a42s2j3j4z6iypakphakh"))))
20282 (build-system pyproject-build-system)
20283 (arguments
20284 (list
20285 ;; tests: 51 passed, 1 deselected, 2 xfailed, 1 xpassed, 8 warnings
20286 #:test-flags
20287 ;; Arrays are not equal
20288 #~(list "--deselect=hicmatrix/test/test_HiCMatrix.py::test_dist_list_to_dict")))
20289 (native-inputs
20290 (list python-pytest
20291 python-setuptools))
20292 (propagated-inputs
20293 (list python-cooler
20294 python-intervaltree
20295 python-numpy
20296 python-pandas
20297 python-scipy
20298 python-tables))
20299 (home-page "https://github.com/deeptools/HiCMatrix/")
20300 (synopsis "HiCMatrix class for HiCExplorer and pyGenomeTracks")
20301 (description
20302 "This helper package implements the @code{HiCMatrix} class for
20303the HiCExplorer and pyGenomeTracks packages.")
20304 (license license:gpl3+)))
20305
20306(define-public python-pygenometracks
20307 (package
20308 (name "python-pygenometracks")
20309 (version "3.9")
20310 (source
20311 (origin
20312 (method git-fetch)
20313 (uri (git-reference
20314 (url "https://github.com/deeptools/pyGenomeTracks")
20315 (commit version)))
20316 (file-name (git-file-name name version))
20317 (sha256
20318 (base32 "1xaw0yjdqnxd1d1aww1x2kkfydrmbdvpvma2ahmax68f5a68b0yk"))))
20319 (build-system pyproject-build-system)
20320 (arguments
20321 (list
20322 ;; tests: 1 failed, 205 passed, 4 skipped, 229 warnings
20323 #:test-flags
20324 ;; AttributeError: module 'bx.seq' has no attribute 'DNA_COMP'
20325 #~(list "--deselect=pygenometracks/tests/test_maf.py::test_first_maf_seq_zoom_dec")
20326 #:phases
20327 #~(modify-phases %standard-phases
20328 (add-after 'unpack 'relax-requirements
20329 (lambda _
20330 (substitute* "pyproject.toml"
20331 (("matplotlib >=3.1.1,<3.9")
20332 "matplotlib >=3.1.1")))))))
20333 (native-inputs
20334 (list python-pytest
20335 python-setuptools))
20336 (propagated-inputs
20337 (list python-bx-python
20338 python-future
20339 python-gffutils
20340 python-hicmatrix
20341 python-intervaltree
20342 python-matplotlib
20343 python-numpy
20344 python-pybedtools
20345 python-pybigwig
20346 python-pyfaidx
20347 python-pysam
20348 python-tqdm))
20349 (home-page "https://pygenometracks.readthedocs.io")
20350 (synopsis "Program and library to plot beautiful genome browser tracks")
20351 (description
20352 "This package aims to produce high-quality genome browser tracks that
20353are highly customizable. Currently, it is possible to plot: bigwig, bed (many
20354options), bedgraph, links (represented as arcs), and Hi-C matrices.
20355pyGenomeTracks can make plots with or without Hi-C data.")
20356 (license license:gpl3+)))
20357
20358(define-public python-iced
20359 (package
20360 (name "python-iced")
20361 (version "0.6.0")
20362 (source
20363 (origin
20364 (method url-fetch)
20365 (uri (pypi-uri "iced" version))
20366 (sha256
20367 (base32
20368 "1zkbq2xq16by8pys5ndqihydb9jfc35lsnznywvg77n44wl16whm"))))
20369 (build-system pyproject-build-system)
20370 ;; tests: 33 passed, 10 warnings
20371 (native-inputs
20372 (list python-cython
20373 python-pytest
20374 python-setuptools))
20375 (propagated-inputs
20376 (list python-numpy
20377 python-pandas
20378 python-scikit-learn
20379 python-scipy))
20380 (home-page "https://github.com/hiclib/iced")
20381 (synopsis "ICE normalization")
20382 (description "This is a package for normalizing Hi-C contact counts
20383efficiently.")
20384 (license license:bsd-3)))
20385
20386(define-public python-hic2cool
20387 (package
20388 (name "python-hic2cool")
20389 (version "1.0.1")
20390 (source
20391 (origin
20392 (method git-fetch)
20393 (uri (git-reference
20394 (url "https://github.com/4dn-dcic/hic2cool")
20395 (commit version)))
20396 (file-name (git-file-name name version))
20397 (sha256
20398 (base32 "0k0i43z43rxbpna4hfci406ma906w893frfj3cha1n8drvhdql6c"))))
20399 (build-system pyproject-build-system)
20400 (arguments
20401 (list #:test-backend #~'custom
20402 #:test-flags #~(list "test.py")))
20403 (native-inputs
20404 (list python-poetry-core))
20405 (propagated-inputs
20406 (list python-cooler
20407 python-h5py
20408 python-numpy
20409 python-pandas
20410 python-scipy))
20411 (home-page "https://github.com/4dn-dcic/hic2cool")
20412 (synopsis "Converter for .hic and .cool files")
20413 (description
20414 "This package provides a converter between @code{.hic} files (from
20415juicer) and single-resolution or multi-resolution @code{.cool} files (for
20416cooler). Both @code{hic} and @code{cool} files describe Hi-C contact
20417matrices.")
20418 (license license:expat)))
20419
20420(define-public python-scanorama
20421 (package
20422 (name "python-scanorama")
20423 (version "1.7.4")
20424 (source
20425 (origin
20426 (method git-fetch)
20427 (uri (git-reference
20428 (url "https://github.com/brianhie/scanorama")
20429 (commit (string-append "v" version))))
20430 (file-name (git-file-name name version))
20431 (sha256
20432 (base32 "1jpn4kq3qqa40xr0dwa9bw5cgga6h9ww9gfbyj6w3mfs8rv4w9rz"))))
20433 (build-system pyproject-build-system)
20434 (propagated-inputs (list python-annoy
20435 python-fbpca
20436 python-geosketch
20437 python-intervaltree
20438 python-matplotlib
20439 python-numpy
20440 python-scikit-learn
20441 python-scipy))
20442 (native-inputs (list python-anndata python-pytest python-setuptools))
20443 (home-page "https://github.com/brianhie/scanorama")
20444 (synopsis
20445 "Panoramic stitching of heterogeneous single cell transcriptomic data")
20446 (description
20447 "Scanorama enables batch-correction and integration of heterogeneous
20448scRNA-seq datasets, which is described in the paper \"Efficient integration of
20449heterogeneous single-cell transcriptomes using Scanorama\" by Brian Hie, Bryan
20450Bryson, and Bonnie Berger.")
20451 (license license:expat)))
20452
20453(define-public r-pore
20454 (package
20455 (name "r-pore")
20456 (version "0.24")
20457 (source
20458 (origin
20459 (method url-fetch)
20460 (uri
20461 (string-append "mirror://sourceforge/rpore/" version
20462 "/poRe_" version ".tar.gz"))
20463 (sha256
20464 (base32 "0pih9nljbv8g4x8rkk29i7aqq681b782r5s5ynp4nw9yzqnmmksv"))))
20465 (properties `((upstream-name . "poRe")))
20466 (build-system r-build-system)
20467 (propagated-inputs
20468 (list r-bit64 r-data-table r-rhdf5 r-shiny r-svdialogs))
20469 (home-page "https://sourceforge.net/projects/rpore/")
20470 (synopsis "Visualize Nanopore sequencing data")
20471 (description
20472 "This package provides graphical user interfaces to organize and visualize Nanopore
20473sequencing data.")
20474 ;; This is free software but the license variant is unclear:
20475 ;; <https://github.com/mw55309/poRe_docs/issues/10>.
20476 (license license:bsd-3)))
20477
20478(define-public r-xbioc
20479 (let ((revision "1")
20480 (commit "6ff0670a37ab3036aaf1d94aa4b208310946b0b5"))
20481 (package
20482 (name "r-xbioc")
20483 (version (git-version "0.1.16" revision commit))
20484 (source (origin
20485 (method git-fetch)
20486 (uri (git-reference
20487 (url "https://github.com/renozao/xbioc")
20488 (commit commit)))
20489 (file-name (git-file-name name version))
20490 (sha256
20491 (base32
20492 "0w8bsq5myiwkfhh83nm6is5ichiyvwa1axx2szvxnzq39x6knf66"))))
20493 (build-system r-build-system)
20494 (propagated-inputs
20495 (list r-annotationdbi
20496 r-assertthat
20497 r-biobase
20498 r-biocmanager
20499 r-digest
20500 r-pkgmaker
20501 r-plyr
20502 r-reshape2
20503 r-stringr))
20504 (home-page "https://github.com/renozao/xbioc/")
20505 (synopsis "Extra base functions for Bioconductor")
20506 (description "This package provides extra utility functions to perform
20507common tasks in the analysis of omics data, leveraging and enhancing features
20508provided by Bioconductor packages.")
20509 (license license:gpl3+))))
20510
20511(define-public r-cssam
20512 (let ((revision "1")
20513 (commit "9ec58c982fa551af0d80b1a266890d92954833f2"))
20514 (package
20515 (name "r-cssam")
20516 (version (git-version "1.4" revision commit))
20517 (source (origin
20518 (method git-fetch)
20519 (uri (git-reference
20520 (url "https://github.com/shenorrLab/csSAM")
20521 (commit commit)))
20522 (file-name (git-file-name name version))
20523 (sha256
20524 (base32
20525 "128syf9v39gk0z3ip000qpsjbg6l1siyq6c8b0hz41dzg5achyb3"))))
20526 (build-system r-build-system)
20527 (propagated-inputs
20528 (list r-formula
20529 r-ggplot2
20530 r-pkgmaker
20531 r-plyr
20532 r-rngtools
20533 r-scales))
20534 (home-page "https://github.com/shenorrLab/csSAM/")
20535 (synopsis "Cell type-specific statistical analysis of microarray")
20536 (description "This package implements the method csSAM that computes
20537cell-specific differential expression from measured cell proportions using
20538SAM.")
20539 ;; Any version
20540 (license license:lgpl2.1+))))
20541
20542(define-public r-bseqsc
20543 (let ((revision "1")
20544 (commit "fef3f3e38dcf3df37103348b5780937982b43b98"))
20545 (package
20546 (name "r-bseqsc")
20547 (version (git-version "1.0" revision commit))
20548 (source (origin
20549 (method git-fetch)
20550 (uri (git-reference
20551 (url "https://github.com/shenorrLab/bseqsc")
20552 (commit commit)))
20553 (file-name (git-file-name name version))
20554 (sha256
20555 (base32
20556 "1prw13wa20f7wlc3gkkls66n1kxz8d28qrb8icfqdwdnnv8w5qg8"))))
20557 (build-system r-build-system)
20558 (propagated-inputs
20559 (list r-abind
20560 r-annotationdbi
20561 r-biobase
20562 r-cssam
20563 r-dplyr
20564 r-e1071
20565 r-edger
20566 r-ggplot2
20567 r-nmf
20568 r-openxlsx
20569 r-pkgmaker
20570 r-plyr
20571 r-preprocesscore
20572 r-rngtools
20573 r-scales
20574 r-stringr
20575 r-xbioc))
20576 (home-page "https://github.com/shenorrLab/bseqsc")
20577 (synopsis "Deconvolution of bulk sequencing experiments using single cell data")
20578 (description "BSeq-sc is a bioinformatics analysis pipeline that
20579leverages single-cell sequencing data to estimate cell type proportion and
20580cell type-specific gene expression differences from RNA-seq data from bulk
20581tissue samples. This is a companion package to the publication \"A
20582single-cell transcriptomic map of the human and mouse pancreas reveals inter-
20583and intra-cell population structure.\" Baron et al. Cell Systems (2016)
20584@url{https://www.ncbi.nlm.nih.gov/pubmed/27667365}.")
20585 (license license:gpl2+))))
20586
20587(define-public jamm
20588 (package
20589 (name "jamm")
20590 (version "1.0.7.6")
20591 (source
20592 (origin
20593 (method git-fetch)
20594 (uri (git-reference
20595 (url "https://github.com/mahmoudibrahim/JAMM")
20596 (commit (string-append "JAMMv" version))))
20597 (file-name (git-file-name name version))
20598 (sha256
20599 (base32
20600 "0bsa5mf9n9q5jz7mmacrra41l7r8rac5vgsn6wv1fb52ya58b970"))))
20601 (build-system gnu-build-system)
20602 (arguments
20603 (list
20604 #:tests? #f ;there are none
20605 #:phases
20606 #~(modify-phases %standard-phases
20607 (delete 'configure)
20608 (delete 'build)
20609 (replace 'install
20610 (lambda _
20611 (let ((libexec (string-append #$output "/libexec/jamm"))
20612 (bin (string-append #$output "/bin")))
20613 (substitute* '("JAMM.sh"
20614 "SignalGenerator.sh")
20615 (("^sPath=.*")
20616 (string-append "sPath=\"" libexec "\"\n")))
20617 (for-each (lambda (file)
20618 (install-file file libexec))
20619 (list "bincalculator.r"
20620 "peakfinder.r"
20621 "peakhelper.r"
20622 "signalmaker.r"
20623 "xcorr.r"
20624 "xcorrhelper.r"
20625 ;; Perl scripts
20626 "peakfilter.pl"
20627 "readshifter.pl"))
20628
20629 (for-each
20630 (lambda (script)
20631 (chmod script #o555)
20632 (install-file script bin)
20633 (wrap-program (string-append bin "/" script)
20634 `("PATH" ":" prefix
20635 (,(string-append #$(this-package-input "coreutils") "/bin")
20636 ,(string-append #$(this-package-input "gawk") "/bin")
20637 ,(string-append #$(this-package-input "perl") "/bin")
20638 ,(string-append #$(this-package-input "r-minimal") "/bin")))
20639 `("PERL5LIB" ":" prefix (,(getenv "PERL5LIB")))
20640 `("R_LIBS_SITE" ":" prefix (,(getenv "R_LIBS_SITE")))))
20641 (list "JAMM.sh" "SignalGenerator.sh"))))))))
20642 (inputs
20643 (list bash
20644 coreutils
20645 gawk
20646 perl
20647 r-minimal
20648 ;;("r-parallel" ,r-parallel)
20649 r-signal
20650 r-mclust))
20651 (home-page "https://github.com/mahmoudibrahim/JAMM")
20652 (synopsis "Peak finder for NGS datasets")
20653 (description
20654 "JAMM is a peak finder for next generation sequencing datasets (ChIP-Seq,
20655ATAC-Seq, DNase-Seq, etc.) that can integrate replicates and assign peak
20656boundaries accurately. JAMM is applicable to both broad and narrow
20657datasets.")
20658 (license license:gpl3+)))
20659
20660(define-public ngless
20661 (package
20662 (name "ngless")
20663 (version "1.5.0")
20664 (source (origin
20665 (method url-fetch)
20666 (uri (hackage-uri "NGLess" version))
20667 (sha256
20668 (base32
20669 "0pljyrlpr9r3cl5311dhgxdl8y40szyi4vprn34i3piy0qrldymi"))))
20670 (build-system haskell-build-system)
20671 (arguments
20672 `(#:haddock? #f
20673 #:phases
20674 (modify-phases %standard-phases
20675 (add-before 'configure 'update-constraints
20676 (lambda _
20677 (substitute* "NGLess.cabal"
20678 (("\\b(base)\\s+[^,]+" all dep)
20679 dep))))
20680 (add-after 'unpack 'create-Versions.hs
20681 (lambda _
20682 (substitute* "NGLess/Dependencies/Versions.hs"
20683 (("bwaVersion = .+")
20684 (string-append "bwaVersion = \""
20685 ,(package-version bwa) "\""))
20686 (("samtoolsVersion = .+")
20687 (string-append "samtoolsVersion = \""
20688 ,(package-version samtools) "\""))
20689 (("prodigalVersion = .+")
20690 (string-append "prodigalVersion = \""
20691 ,(package-version prodigal) "\""))
20692 (("megahitVersion = .+")
20693 (string-append "megahitVersion = \""
20694 ,(package-version megahit) "\""))
20695 (("minimap2Version = .+")
20696 (string-append "minimap2Version = \""
20697 ,(package-version minimap2) "\"")))))
20698 ;; See NGLess/FileManagement.hs.
20699 (add-after 'install 'wrap-program
20700 (lambda* (#:key inputs outputs #:allow-other-keys)
20701 (let* ((out (assoc-ref outputs "out"))
20702 (bwa (search-input-file inputs "/bin/bwa"))
20703 (samtools (search-input-file inputs "/bin/samtools"))
20704 (prodigal (search-input-file inputs "/bin/prodigal"))
20705 (minimap2 (search-input-file inputs "/bin/minimap2"))
20706 (megahit (search-input-file inputs "/bin/megahit")))
20707 (wrap-program (string-append out "/bin/ngless")
20708 `("NGLESS_BWA_BIN" " " = (,bwa))
20709 `("NGLESS_SAMTOOLS_BIN" " " = (,samtools))
20710 `("NGLESS_PRODIGAL_BIN" " " = (,prodigal))
20711 `("NGLESS_MINIMAP2_BIN" " " = (,minimap2))
20712 `("NGLESS_MEGAHIT_BIN" " " = (,megahit))))))
20713 ;; Sanity check.
20714 (add-after 'wrap-program 'check-install
20715 (lambda* (#:key outputs #:allow-other-keys)
20716 (let* ((ngless (string-append (assoc-ref outputs "out") "/bin/ngless")))
20717 (invoke ngless "--check-install"))))
20718 (add-after 'register 'remove-libraries
20719 (lambda* (#:key outputs #:allow-other-keys)
20720 (delete-file-recursively (string-append (assoc-ref outputs "out") "/lib")))))))
20721 (inputs (list bash-minimal
20722 prodigal
20723 bwa
20724 samtools
20725 minimap2
20726 megahit
20727 ghc-missingh
20728 ghc-aeson
20729 ghc-ansi-terminal
20730 ghc-async
20731 ghc-atomic-write
20732 ghc-bytestring-lexing
20733 ghc-conduit
20734 ghc-conduit-algorithms
20735 ghc-conduit-extra
20736 ghc-configurator
20737 ghc-convertible
20738 ghc-data-default
20739 ghc-edit-distance
20740 ghc-either
20741 ghc-errors
20742 ghc-extra
20743 ghc-file-embed
20744 ghc-filemanip
20745 ghc-hashable
20746 ghc-hashtables
20747 ghc-hostname
20748 ghc-http-client
20749 ghc-http-conduit
20750 ghc-inline-c
20751 ghc-inline-c-cpp
20752 ghc-int-interval-map
20753 ghc-network
20754 ghc-optparse-applicative
20755 ghc-primitive
20756 ghc-random-shuffle
20757 ghc-regex
20758 ghc-resourcet
20759 ghc-safe
20760 ghc-stm-chans
20761 ghc-stm-conduit
20762 ghc-strict
20763 ghc-tar
20764 ghc-tar-conduit
20765 ghc-unix-compat
20766 ghc-unliftio
20767 ghc-unliftio-core
20768 ghc-vector
20769 ghc-vector-algorithms
20770 ghc-yaml
20771 ghc-zlib
20772 ghc-bzlib-conduit
20773 ghc-double-conversion
20774 ghc-safeio))
20775 (propagated-inputs
20776 (list r-r6 r-hdf5r r-iterators r-itertools r-matrix))
20777 (native-inputs (list ghc-hunit
20778 ghc-quickcheck
20779 ghc-tasty
20780 ghc-tasty-hunit
20781 ghc-tasty-quickcheck
20782 ghc-tasty-th))
20783 (home-page "https://ngless.embl.de/")
20784 (synopsis "DSL for processing next-generation sequencing data")
20785 (description "Ngless is a domain-specific language for
20786@dfn{next-generation sequencing} (NGS) data processing.")
20787 (license license:expat)))
20788
20789(define-public ghc-int-interval-map
20790 (let ((commit "678763de7fe6d7fa3f1c44b32d18ce58670270f4")
20791 (revision "1"))
20792 (package
20793 (name "ghc-int-interval-map")
20794 (version "0.0.0.0")
20795 (source
20796 (origin
20797 (method git-fetch)
20798 (uri (git-reference
20799 (url "https://github.com/ngless-toolkit/interval-to-int.git")
20800 (commit commit)))
20801 (file-name (git-file-name name version))
20802 (sha256 (base32 "0fd728b5if89vj5j4f9y7k0b2xv2ycz5a21iy15wbdcf5bhim7i8"))))
20803 (build-system haskell-build-system)
20804 (inputs
20805 (list ghc-either ghc-primitive ghc-vector ghc-vector-algorithms))
20806 (native-inputs
20807 (list ghc-hedgehog
20808 ghc-tasty
20809 ghc-tasty-hedgehog
20810 ghc-tasty-hunit
20811 ghc-tasty-quickcheck
20812 ghc-tasty-th))
20813 (home-page "https://github.com/luispedro/interval-to-int#readme")
20814 (synopsis "Interval map structure in Haskell")
20815 (description "An interval map structure that is optimized for low
20816memory (each interval is represented by about 3 words + whatever the
20817cargo is) and has semantics that are appropriate for genomic intervals
20818(namely, intervals can overlap and queries will return all matches
20819together). It also designed to be used in two phases: a construction
20820phase + query phase).")
20821 (license license:expat))))
20822
20823(define-public nanopolish
20824 (package
20825 (name "nanopolish")
20826 (version "0.14.0")
20827 (source
20828 (origin
20829 (method git-fetch)
20830 (uri (git-reference
20831 (url "https://github.com/jts/nanopolish")
20832 (commit (string-append "v" version))
20833 (recursive? #t)))
20834 (file-name (git-file-name name version))
20835 (sha256
20836 (base32 "1ha9v5ia0qrwgav0956cfc7n64wjm9a9w3rvkg21g37a994yixg5"))
20837 (modules '((guix build utils)))
20838 (snippet
20839 ;; TODO: unbundle slow5lib
20840 '(begin (for-each delete-file-recursively
20841 '("htslib" "minimap2"))))))
20842 (build-system gnu-build-system)
20843 (arguments
20844 (list
20845 #:make-flags
20846 #~(list "HDF5=noinstall"
20847 "EIGEN=noinstall"
20848 "HTS=noinstall"
20849 "MINIMAP2=noinstall"
20850 (string-append "CC=" #$(cc-for-target)))
20851 #:tests? #f ; no check target
20852 #:phases
20853 #~(modify-phases %standard-phases
20854 (add-after 'unpack 'find-eigen
20855 (lambda* (#:key inputs #:allow-other-keys)
20856 (setenv "CPATH"
20857 (string-append
20858 (search-input-directory inputs "/include/eigen3")
20859 ":" (or (getenv "CPATH") "")))))
20860 (delete 'configure)
20861 (replace 'install
20862 (lambda _
20863 (let ((bin (string-append #$output "/bin"))
20864 (scripts (string-append #$output "/share/nanopolish/scripts")))
20865
20866 (install-file "nanopolish" bin)
20867 (for-each (lambda (file) (install-file file scripts))
20868 (find-files "scripts" ".*")))))
20869 (add-after 'install 'wrap-programs
20870 (lambda* (#:key inputs #:allow-other-keys)
20871 (let ((pythonpath (getenv "GUIX_PYTHONPATH"))
20872 (perl5lib (getenv "PERL5LIB"))
20873 (scripts (string-append #$output "/share/nanopolish/scripts"))
20874 (guile (search-input-file inputs "bin/guile")))
20875 (for-each (lambda (file)
20876 (wrap-program file `("GUIX_PYTHONPATH" ":" prefix (,pythonpath))))
20877 (find-files scripts "\\.py"))
20878 (for-each (lambda (file)
20879 (wrap-script file #:guile guile
20880 `("PERL5LIB" ":" prefix (,perl5lib))))
20881 (find-files scripts "\\.pl"))))))))
20882 (inputs
20883 (list bash-minimal
20884 guile-3.0 ;for wrappers
20885 eigen
20886 hdf5
20887 htslib
20888 minimap2
20889 perl
20890 bioperl-minimal
20891 perl-getopt-long
20892 python-wrapper
20893 python-biopython
20894 python-numpy
20895 python-pysam
20896 python-scikit-learn
20897 python-scipy
20898 zlib))
20899 (native-inputs (list cmake-minimal))
20900 (home-page "https://github.com/jts/nanopolish")
20901 (synopsis "Signal-level analysis of Oxford Nanopore sequencing data")
20902 (description
20903 "This package analyses the Oxford Nanopore sequencing data at signal-level.
20904Nanopolish can calculate an improved consensus sequence for a draft genome
20905assembly, detect base modifications, call SNPs (Single nucleotide
20906polymorphisms) and indels with respect to a reference genome and more.")
20907 (license license:expat)))
20908
20909(define-public cnvkit
20910 (package
20911 (name "cnvkit")
20912 (version "0.9.13")
20913 (source
20914 (origin
20915 (method git-fetch)
20916 (uri (git-reference
20917 (url "https://github.com/etal/cnvkit")
20918 (commit (string-append "v" version))))
20919 (file-name (git-file-name name version))
20920 (sha256
20921 (base32 "0w81yl5v37r63d035mxdsycma8fgssyr0857rnvvjfw78wjjnvg9"))))
20922 (build-system pyproject-build-system)
20923 (arguments
20924 (list
20925 ;; tests: 70 passed, 211 warnings
20926 #:phases
20927 #~(modify-phases %standard-phases
20928 (add-after 'unpack 'fix-pytest-config
20929 (lambda _
20930 (substitute* "pyproject.toml"
20931 (("filterwarnings =.*")
20932 "")))))))
20933 (propagated-inputs
20934 (list python-biopython
20935 python-matplotlib
20936 python-numpy
20937 python-pandas
20938 python-pomegranate
20939 python-pyfaidx
20940 python-pysam
20941 python-reportlab
20942 python-scikit-learn
20943 python-scipy
20944 ;; R packages
20945 r-dnacopy))
20946 (inputs (list r-minimal)) ;for tests
20947 (native-inputs (list python-pytest python-setuptools))
20948 (home-page "https://cnvkit.readthedocs.org/")
20949 (synopsis "Copy number variant detection from targeted DNA sequencing")
20950 (description
20951 "CNVkit is a Python library and command-line software toolkit to infer
20952and visualize copy number from high-throughput DNA sequencing data. It is
20953designed for use with hybrid capture, including both whole-exome and custom
20954target panels, and short-read sequencing platforms such as Illumina and Ion
20955Torrent.")
20956 (license license:asl2.0)))
20957
20958(define-public python-pyfit-sne
20959 (package
20960 (name "python-pyfit-sne")
20961 (version "1.2.1")
20962 (source
20963 (origin
20964 (method git-fetch)
20965 (uri (git-reference
20966 (url "https://github.com/KlugerLab/pyFIt-SNE")
20967 (commit version)))
20968 (file-name (git-file-name name version))
20969 (sha256
20970 (base32 "0f3n7wcmxbnqiisgimhpa6p5chqpb1hj69i6rpg2hv2671i8nn68"))))
20971 (build-system pyproject-build-system)
20972 (arguments
20973 '(#:tests? #f)) ;there are none
20974 (propagated-inputs (list python-numpy))
20975 (inputs (list fftw))
20976 (native-inputs (list python-cython python-setuptools))
20977 (home-page "https://github.com/KlugerLab/pyFIt-SNE")
20978 (synopsis "FFT-accelerated Interpolation-based t-SNE")
20979 (description
20980 "t-Stochastic Neighborhood Embedding (t-SNE) is a highly successful
20981method for dimensionality reduction and visualization of high dimensional
20982datasets. A popular implementation of t-SNE uses the Barnes-Hut algorithm to
20983approximate the gradient at each iteration of gradient descent. This package
20984is a Cython wrapper for FIt-SNE.")
20985 (license license:bsd-4)))
20986
20987(define-public bbmap
20988 (package
20989 (name "bbmap")
20990 (version "39.01")
20991 (source (origin
20992 (method url-fetch)
20993 (uri (string-append
20994 "mirror://sourceforge/bbmap/BBMap_" version ".tar.gz"))
20995 (sha256
20996 (base32
20997 "1rlkw2mlkn699dk9n5lnigmvwq3zr2f8hnq9plx7zi1h06jqsq4q"))))
20998 (build-system ant-build-system)
20999 (arguments
21000 (list
21001 #:build-target "dist"
21002 #:tests? #f ; there are none
21003 #:make-flags
21004 #~(list (string-append "-Dmpijar="
21005 #$(this-package-input "java-openmpi")
21006 "/lib/mpi.jar"))
21007 #:modules '((guix build ant-build-system)
21008 (guix build utils)
21009 (guix build java-utils))
21010 #:phases
21011 #~(modify-phases %standard-phases
21012 (add-after 'build 'build-jni-library
21013 (lambda _
21014 (with-directory-excursion "jni"
21015 (invoke "make" "-f" "makefile.linux"))))
21016 ;; There is no install target
21017 (replace 'install (install-jars "dist"))
21018 (add-after 'install 'install-scripts-and-documentation
21019 (lambda _
21020 (substitute* "calcmem.sh"
21021 (("\\| awk ") (string-append "| " (which "awk") " ")))
21022 (let* ((scripts (find-files "." "\\.sh$"))
21023 (bin (string-append #$output "/bin"))
21024 (doc (string-append #$output "/share/doc/bbmap"))
21025 (jni (string-append #$output "/lib/jni")))
21026 (substitute* scripts
21027 (("\\$DIR\"\"docs") doc)
21028 (("^CP=.*")
21029 (string-append "CP=" #$output "/share/java/BBTools.jar\n"))
21030 (("^NATIVELIBDIR.*")
21031 (string-append "NATIVELIBDIR=" jni "\n"))
21032 (("CMD=\"java")
21033 (string-append "CMD=\"" (which "java"))))
21034 (for-each (lambda (script) (install-file script bin)) scripts)
21035
21036 ;; Install JNI library
21037 (install-file "jni/libbbtoolsjni.so" jni)
21038
21039 ;; Install documentation
21040 (install-file "docs/readme.txt" doc)
21041 (copy-recursively "docs/guides" doc)))))
21042 #:jdk openjdk11))
21043 (inputs
21044 (list gawk java-eclipse-jdt-core java-eclipse-jdt-compiler-apt
21045 java-openmpi))
21046 (home-page "https://sourceforge.net/projects/bbmap/")
21047 (synopsis "Aligner and other tools for short sequencing reads")
21048 (description
21049 "This package provides bioinformatic tools to align, deduplicate,
21050reformat, filter and normalize DNA and RNA-seq data. It includes the
21051following tools: BBMap, a short read aligner for DNA and RNA-seq data; BBNorm,
21052a kmer-based error-correction and normalization tool; Dedupe, a tool to
21053simplify assemblies by removing duplicate or contained subsequences that share
21054a target percent identity; Reformat, to convert reads between
21055fasta/fastq/scarf/fasta+qual/sam, interleaved/paired, and ASCII-33/64, at over
21056500 MB/s; and BBDuk, a tool to filter, trim, or mask reads with kmer matches
21057to an artifact/contaminant file.")
21058 (license license:bsd-3)))
21059
21060(define-public velvet
21061 (package
21062 (name "velvet")
21063 (version "1.2.10")
21064 (source (origin
21065 (method url-fetch)
21066 (uri (string-append "https://www.ebi.ac.uk/~zerbino/velvet/"
21067 "velvet_" version ".tgz"))
21068 (sha256
21069 (base32
21070 "0h3njwy66p6bx14r3ar1byb0ccaxmxka4c65rn4iybyiqa4d8kc8"))
21071 ;; Delete bundled libraries
21072 (modules '((guix build utils)))
21073 (snippet
21074 '(begin
21075 (delete-file "Manual.pdf")
21076 (delete-file-recursively "third-party")))))
21077 (build-system gnu-build-system)
21078 (arguments
21079 (list
21080 #:make-flags #~(list "OPENMP=t"
21081 "CFLAGS=-Wall -Wno-error=incompatible-pointer-types")
21082 #:test-target "test"
21083 #:phases
21084 #~(modify-phases %standard-phases
21085 (delete 'configure)
21086 (add-after 'unpack 'fix-zlib-include
21087 (lambda _
21088 (substitute* "src/binarySequences.c"
21089 (("../third-party/zlib-1.2.3/zlib.h") "zlib.h"))))
21090 (add-before 'build 'set-home-env
21091 (lambda _
21092 ;; TeXLive requires HOME to be set.
21093 ;; Permission denied: '/homeless-shelter'
21094 (setenv "HOME" "/tmp")))
21095 (replace 'install
21096 (lambda _
21097 (let ((bin (string-append #$output "/bin"))
21098 (doc (string-append #$output "/share/doc/velvet")))
21099 (mkdir-p bin)
21100 (mkdir-p doc)
21101 (install-file "velveth" bin)
21102 (install-file "velvetg" bin)
21103 (install-file "Manual.pdf" doc)
21104 (install-file "Columbus_manual.pdf" doc)))))))
21105 (inputs
21106 (list openmpi zlib))
21107 (native-inputs
21108 (list (texlive-local-tree
21109 (list texlive-ec
21110 texlive-infwarerr
21111 texlive-kvoptions
21112 texlive-pdftexcmds))))
21113 (home-page "https://www.ebi.ac.uk/~zerbino/velvet/")
21114 (synopsis "Nucleic acid sequence assembler for very short reads")
21115 (description
21116 "Velvet is a de novo genomic assembler specially designed for short read
21117sequencing technologies, such as Solexa or 454. Velvet currently takes in
21118short read sequences, removes errors then produces high quality unique
21119contigs. It then uses paired read information, if available, to retrieve the
21120repeated areas between contigs.")
21121 (license license:gpl2+)))
21122
21123(define-public vembrane
21124 (package
21125 (name "vembrane")
21126 (version "1.0.7")
21127 (source (origin
21128 (method git-fetch)
21129 (uri (git-reference
21130 (url "https://github.com/vembrane/vembrane")
21131 (commit (string-append "v" version))))
21132 (file-name (git-file-name name version))
21133 (sha256
21134 (base32
21135 "127wmwj0162nfaql68jwxlkz7rbnjya70xrj4j8zwvcnxcj7x5v3"))))
21136 (build-system pyproject-build-system)
21137 (arguments
21138 (list
21139 #:phases
21140 #~(modify-phases %standard-phases
21141 (add-after 'unpack 'use-poetry-core
21142 (lambda _
21143 ;; Patch to use the core poetry API.
21144 (substitute* "pyproject.toml"
21145 (("poetry.masonry.api") "poetry.core.masonry.api")))))))
21146 (inputs
21147 (list python-asttokens
21148 python-intervaltree
21149 python-numpy
21150 python-pysam
21151 python-pyyaml))
21152 (native-inputs
21153 (list python-poetry-core
21154 python-pytest))
21155 (home-page "https://github.com/vembrane/vembrane")
21156 (synopsis "Filter VCF/BCF files with Python expressions")
21157 (description "Vembrane simultaneously filters variants based on
21158any INFO or FORMAT field, CHROM, POS, ID, REF, ALT, QUAL, FILTER, and the
21159annotation field ANN. When filtering based on ANN, annotation entries are
21160filtered first. If no annotation entry remains, the entire variant is
21161deleted.")
21162 (license license:expat)))
21163
21164(define-public arriba
21165 (package
21166 (name "arriba")
21167 (version "1.0.1")
21168 (source
21169 (origin
21170 (method url-fetch)
21171 (uri (string-append "https://github.com/suhrig/arriba/releases/"
21172 "download/v" version "/arriba_v" version ".tar.gz"))
21173 (sha256
21174 (base32
21175 "0jx9656ry766vb8z08m1c3im87b0c82qpnjby9wz4kcz8vn87dx2"))))
21176 (build-system gnu-build-system)
21177 (arguments
21178 (list
21179 #:tests? #f ;there are none
21180 #:phases
21181 #~(modify-phases %standard-phases
21182 (replace 'configure
21183 (lambda* (#:key inputs #:allow-other-keys)
21184 (substitute* "Makefile"
21185 (("-I\\$\\(HTSLIB\\)/htslib")
21186 (string-append "-I"
21187 (search-input-directory inputs "/include/htslib")))
21188 ((" \\$\\(HTSLIB\\)/libhts.a")
21189 (string-append " " (search-input-file inputs "/lib/libhts.so"))))
21190 (let ((samtools (search-input-file inputs "/bin/samtools")))
21191 (substitute* "run_arriba.sh"
21192 (("^STAR ")
21193 (string-append (search-input-file inputs "/bin/STAR") " "))
21194 (("samtools --version-only")
21195 (string-append samtools " --version-only"))
21196 (("samtools index")
21197 (string-append samtools " index"))
21198 (("samtools sort")
21199 (string-append samtools " sort"))))))
21200 (replace 'install
21201 (lambda _
21202 (let ((bin (string-append #$output "/bin")))
21203 (install-file "arriba" bin)
21204 (install-file "run_arriba.sh" bin)
21205 (install-file "draw_fusions.R" bin)
21206 (wrap-program (string-append bin "/draw_fusions.R")
21207 `("R_LIBS_SITE" ":" prefix (,(getenv "R_LIBS_SITE"))))))))))
21208 (inputs
21209 (list bash-minimal
21210 htslib
21211 r-minimal
21212 r-circlize
21213 r-genomicalignments
21214 r-genomicranges
21215 samtools
21216 star
21217 zlib))
21218 (home-page "https://github.com/suhrig/arriba")
21219 (synopsis "Gene fusion detection from RNA-Seq data")
21220 (description
21221 "Arriba is a command-line tool for the detection of gene fusions from
21222RNA-Seq data. It was developed for the use in a clinical research setting.
21223Therefore, short runtimes and high sensitivity were important design criteria.
21224It is based on the fast STAR aligner and the post-alignment runtime is
21225typically just around two minutes. In contrast to many other fusion detection
21226tools which build on STAR, Arriba does not require to reduce the
21227@code{alignIntronMax} parameter of STAR to detect small deletions.")
21228 ;; All code is under the Expat license with the exception of
21229 ;; "draw_fusions.R", which is under GPLv3.
21230 (license (list license:expat license:gpl3))))
21231
21232(define-public adapterremoval
21233 (package
21234 (name "adapterremoval")
21235 (version "2.3.3")
21236 (source
21237 (origin
21238 (method git-fetch)
21239 (uri (git-reference
21240 (url "https://github.com/MikkelSchubert/adapterremoval")
21241 (commit (string-append "v" version))))
21242 (file-name (git-file-name name version))
21243 (sha256
21244 (base32
21245 "0wyr182667wqdmzhwwa6f7dddr8kk0scgzb8lsm23wim544mvn6i"))))
21246 (build-system gnu-build-system)
21247 (arguments
21248 (list
21249 #:make-flags
21250 #~(list "COLOR_BUILD=no"
21251 (string-append "PREFIX=" #$output))
21252 #:test-target "test"
21253 #:phases
21254 '(modify-phases %standard-phases
21255 (delete 'configure))))
21256 (inputs (list zlib))
21257 (home-page "https://adapterremoval.readthedocs.io/")
21258 (synopsis "Rapid sequence adapter trimming, identification, and read merging")
21259 (description
21260 "This program searches for and removes remnant adapter sequences from
21261@dfn{High-Throughput Sequencing} (HTS) data and (optionally) trims low quality
21262bases from the 3' end of reads following adapter removal. AdapterRemoval can
21263analyze both single end and paired end data, and can be used to merge
21264overlapping paired-ended reads into (longer) consensus sequences.
21265Additionally, the AdapterRemoval may be used to recover a consensus adapter
21266sequence for paired-ended data, for which this information is not available.")
21267 (license license:gpl3+)))
21268
21269(define-public checkm
21270 (package
21271 (name "checkm")
21272 (version "1.2.4")
21273 (source
21274 (origin
21275 (method url-fetch)
21276 (uri (pypi-uri "checkm_genome" version))
21277 (sha256
21278 (base32 "0wdjrz9v5cb6fa6rcd56v3x09yyffx18jjd9g8iw0i6i0lmw9abx"))))
21279 (build-system pyproject-build-system)
21280 (arguments
21281 (list
21282 #:test-flags
21283 #~(list "-k" (string-append
21284 ;; AttributeError: 'BinStatistics' object has no attribute
21285 ;; '_BinStatistics__calculateCodingBases'
21286 "not testCodingBases"
21287 ;; KeyError: 'GC'
21288 " and not testGC"
21289 ;; AttributeError: 'BinStatistics' object
21290 ;; has no attribute
21291 ;; 'calculateScaffoldLengthStats'
21292 " and not testScaffoldLengthStats"))
21293 #:phases
21294 #~(modify-phases %standard-phases
21295 (add-before 'check 'set-HOME
21296 (lambda _
21297 (setenv "HOME" "/tmp"))))))
21298 (native-inputs
21299 (list python-pytest
21300 python-setuptools))
21301 (inputs
21302 (list python-dendropy
21303 python-matplotlib
21304 python-numpy
21305 python-pysam
21306 python-scipy))
21307 (home-page "https://ecogenomics.github.io/CheckM/")
21308 (synopsis "Assess the quality of putative genome bins")
21309 (description
21310 "CheckM provides a set of tools for assessing the quality of genomes
21311recovered from isolates, single cells, or metagenomes. It provides robust
21312estimates of genome completeness and contamination by using collocated sets of
21313genes that are ubiquitous and single-copy within a phylogenetic lineage.
21314Assessment of genome quality can also be examined using plots depicting key
21315genomic characteristics (e.g., GC, coding density) which highlight sequences
21316outside the expected distributions of a typical genome. CheckM also provides
21317tools for identifying genome bins that are likely candidates for merging based
21318on marker set compatibility, similarity in genomic characteristics, and
21319proximity within a reference genome.")
21320 (license license:gpl3+)))
21321
21322(define-public chromap
21323 (package
21324 (name "chromap")
21325 (version "0.2.7")
21326 (source
21327 (origin
21328 (method git-fetch)
21329 (uri (git-reference
21330 (url "https://github.com/haowenz/chromap")
21331 (commit (string-append "v" version))))
21332 (file-name (git-file-name name version))
21333 (sha256
21334 (base32
21335 "099y3kac6npiqyx5prc9ggigw6248j7kchjznqvd9hxkq24rrsqs"))))
21336 (build-system gnu-build-system)
21337 (arguments
21338 (list
21339 #:tests? #false ;there are none
21340 #:phases
21341 #~(modify-phases %standard-phases
21342 (delete 'configure)
21343 (replace 'install
21344 (lambda _
21345 (install-file "chromap" (string-append #$output "/bin")))))))
21346 (inputs (list zlib))
21347 (home-page "https://github.com/haowenz/chromap")
21348 (synopsis "Fast alignment and preprocessing of chromatin profiles")
21349 (description "Chromap is a fast method for aligning and preprocessing high
21350throughput chromatin profiles. Typical use cases include:
21351
21352@itemize
21353@item trimming sequencing adapters, mapping bulk ATAC-seq or ChIP-seq genomic
21354 reads to the human genome and removing duplicates;
21355@item trimming sequencing adapters, mapping single cell ATAC-seq genomic reads
21356 to the human genome, correcting barcodes, removing duplicates and performing
21357 Tn5 shift;
21358@item split alignment of Hi-C reads against a reference genome.
21359@end itemize")
21360 (supported-systems '("x86_64-linux")) ;requires CPU with SSE4.1
21361 (license license:expat)))
21362
21363(define-public umi-tools
21364 (package
21365 (name "umi-tools")
21366 (version "1.1.6")
21367 ;; TODO: Delete generated Cython C files.
21368 (source
21369 (origin
21370 (method git-fetch)
21371 (uri (git-reference
21372 (url "https://github.com/CGATOxford/UMI-tools")
21373 (commit (string-append "v" version))))
21374 (file-name (git-file-name name version))
21375 (sha256
21376 (base32 "1liykfj4msvcgk8an5qq802jcxwlijqxrvijipqj1pwpxqzl9qnh"))))
21377 (build-system pyproject-build-system)
21378 (arguments
21379 (list
21380 #:test-flags
21381 #~(list "--ignore=tests/test_style.py"
21382 "--ignore=step1_unit_test.py")
21383 #:phases
21384 #~(modify-phases %standard-phases
21385 (add-after 'unpack 'fix-bash-path
21386 (lambda _
21387 (substitute* "tests/test_umi_tools.py"
21388 (("/bin/bash")
21389 (which "sh")))))
21390 (add-before 'check 'build-extensions
21391 (lambda _
21392 (invoke "python" "setup.py" "build_ext" "--inplace"))))))
21393 (inputs
21394 (list python-pandas
21395 python-future
21396 python-scipy
21397 python-matplotlib
21398 python-regex
21399 python-pybktree
21400 python-scipy
21401 python-pysam))
21402 (native-inputs
21403 (list python-cython
21404 python-pyaml
21405 python-pytest
21406 python-setuptools))
21407 (home-page "https://github.com/CGATOxford/UMI-tools")
21408 (synopsis "Tools for analyzing unique modular identifiers")
21409 (description "This package provides tools for dealing with @dfn{Unique
21410Molecular Identifiers} (UMIs) and @dfn{Random Molecular Tags} (RMTs) in
21411genetic sequences. There are six tools: the @code{extract} and
21412@code{whitelist} commands are used to prepare a fastq containing UMIs @code{+/-}
21413cell barcodes for alignment. The remaining commands, @code{group},
21414@code{dedup}, and @code{count}/@code{count_tab}, are used to identify PCR
21415duplicates using the UMIs and perform different levels of analysis depending
21416on the needs of the user.")
21417 (license license:expat)))
21418
21419(define-public ataqv
21420 (package
21421 (name "ataqv")
21422 (version "1.0.0")
21423 (source
21424 (origin
21425 (method git-fetch)
21426 (uri (git-reference
21427 (url "https://github.com/ParkerLab/ataqv")
21428 (commit version)))
21429 (file-name (git-file-name name version))
21430 (sha256
21431 (base32
21432 "031xr6jx1aprh26y5b1lv3gzrlmzg4alfl73vvshymx8cq8asrqi"))))
21433 (build-system gnu-build-system)
21434 (arguments
21435 `(#:make-flags
21436 ,#~(list (string-append "prefix=" #$output)
21437 (string-append "BOOST_ROOT="
21438 #$(this-package-input "boost"))
21439 (string-append "HTSLIB_ROOT="
21440 #$(this-package-input "htslib")))
21441 #:test-target "test"
21442 #:phases
21443 (modify-phases %standard-phases
21444 (delete 'configure))))
21445 (inputs
21446 (list boost-1.83 htslib ncurses zlib))
21447 (native-inputs
21448 (list lcov))
21449 (home-page "https://github.com/ParkerLab/ataqv")
21450 (synopsis "Toolkit for quality control and visualization of ATAC-seq data")
21451 (description "This package provides a toolkit for measuring and comparing
21452ATAC-seq results. It was written to make it easier to spot differences that
21453might be caused by ATAC-seq library prep or sequencing. The main program,
21454@code{ataqv}, examines aligned reads and reports some basic metrics.")
21455 (license license:gpl3+)))
21456
21457(define-public r-psiplot
21458 (package
21459 (name "r-psiplot")
21460 (version "2.3.0")
21461 (source
21462 (origin
21463 (method git-fetch)
21464 (uri (git-reference
21465 (url "https://github.com/kcha/psiplot")
21466 (commit (string-append "v" version))))
21467 (file-name (git-file-name name version))
21468 (sha256
21469 (base32 "08438h16cfry5kqh3y9hs8q1b1a8bxhblsm75knviz5r6q0n1jxh"))))
21470 (build-system r-build-system)
21471 (propagated-inputs
21472 (list r-mass
21473 r-dplyr
21474 r-tidyr
21475 r-purrr
21476 r-readr
21477 r-magrittr
21478 r-ggplot2))
21479 (native-inputs (list r-testthat))
21480 (home-page "https://github.com/kcha/psiplot")
21481 (synopsis "Plot percent spliced-in values of alternatively-spliced exons")
21482 (description
21483 "PSIplot is an R package for generating plots of @dfn{percent
21484spliced-in} (PSI) values of alternatively-spliced exons that were computed by
21485vast-tools, an RNA-Seq pipeline for alternative splicing analysis. The plots
21486are generated using @code{ggplot2}.")
21487 (license license:expat)))
21488
21489(define-public r-scopeloomr
21490 (let ((commit "99726f5f7da794042036b73924b6a10d6e7b4d5d")
21491 (revision "1"))
21492 (package
21493 (name "r-scopeloomr")
21494 (version (git-version "0.13.0" revision commit))
21495 (source
21496 (origin
21497 (method git-fetch)
21498 (uri (git-reference
21499 (url "https://github.com/aertslab/SCopeLoomR")
21500 (commit commit)))
21501 (file-name (git-file-name name version))
21502 (sha256
21503 (base32 "1ci17ms0c0hf7yfp9ckcg7a2y1s0nm19jj3cifsd55hwc0gdglmz"))))
21504 (properties `((upstream-name . "SCopeLoomR")))
21505 (build-system r-build-system)
21506 (propagated-inputs
21507 (list r-base64enc r-hdf5r r-igraph r-matrix r-plyr r-rjson r-rlist))
21508 (home-page "https://github.com/aertslab/SCopeLoomR")
21509 (synopsis "Build .loom files and extract data from them")
21510 (description
21511 "This is an R package to build generic @code{.loom} files aligning with
21512the default naming convention of the @code{.loom} format and to integrate
21513other data types e.g.: regulons (SCENIC), clusters from Seurat, trajectory
21514information... The package can also be used to extract data from @code{.loom}
21515files.")
21516 (license license:expat))))
21517
21518(define-public rscape
21519 (package
21520 (name "rscape")
21521 (version "2.0.0.q")
21522 (source (origin
21523 (method url-fetch)
21524 (uri (string-append "http://eddylab.org/software/rscape/"
21525 "rscape_v" version ".tar.gz"))
21526 (sha256
21527 (base32
21528 "1jabvm3fzh8iy4803ns12v1fsy28x6wdy8wx4ik8y0mfac4h787q"))))
21529 (build-system gnu-build-system)
21530 (propagated-inputs (list gsl openmpi))
21531 (native-inputs (list automake autoconf))
21532 (home-page "https://github.com/EddyRivasLab/R-scape")
21533 (synopsis "RNA structural covariation above phylogenetic expectation")
21534 (description
21535 "R-scape discovers RNA secondary structure consensus elements.
21536These elements include riboswitches and ribozymes. It utilizes probabilistic
21537modeling of sequence alignments, explicitly considering folding dependencies.
21538The tool enables the de novo search for new structural elements and
21539facilitates comparative analysis of known RNA families.")
21540 (license license:bsd-3)))
21541
21542(define-public r-databaselinke-r
21543 (let ((commit "cf3d6cc3d36f2e1c9a557390232e9a8ed5abb7fd")
21544 (revision "1"))
21545 (package
21546 (name "r-databaselinke-r")
21547 (version (git-version "1.7.0" revision commit))
21548 (source
21549 (origin
21550 (method git-fetch)
21551 (uri (git-reference
21552 (url "https://github.com/vertesy/DatabaseLinke.R")
21553 (commit commit)))
21554 (file-name (git-file-name name version))
21555 (sha256
21556 (base32 "0hk76sb3w1v8a7c1knpc572ypsbgqlrv0p49c9y55a0dr12n16s1"))))
21557 (properties `((upstream-name . "DatabaseLinke.R")))
21558 (build-system r-build-system)
21559 (propagated-inputs (list r-readwriter))
21560 (home-page "https://github.com/vertesy/DatabaseLinke.R")
21561 (synopsis
21562 "Parse links to databases from your list of gene symbols")
21563 (description
21564 "This package provides a set of functions to parse and open (search
21565query) links to genomics related and other websites for R. Useful when you
21566want to explore e.g.: the function of a set of differentially expressed
21567genes.")
21568 (license license:gpl3))))
21569
21570(define-public r-seuratextend
21571 (let ((commit "5dacd7c1e1da3bc0e78ab81d60056f6d7da3d386")
21572 (revision "1"))
21573 (package
21574 (name "r-seuratextend")
21575 (version (git-version "1.2.5" revision commit))
21576 (source
21577 (origin
21578 (method git-fetch)
21579 (uri (git-reference
21580 (url "https://github.com/huayc09/SeuratExtend")
21581 (commit commit)))
21582 (file-name (git-file-name name version))
21583 (sha256
21584 (base32 "1fnh1idf871jfkpzmr2py15h5v5d9ykh9p0kvlpx7riiidi8wsl2"))))
21585 (properties `((upstream-name . "SeuratExtend")))
21586 (build-system r-build-system)
21587 (propagated-inputs (list r-biocmanager
21588 r-dplyr
21589 r-ggplot2
21590 r-ggpubr
21591 r-glue
21592 r-hdf5r
21593 r-magrittr
21594 r-mosaic
21595 r-purrr
21596 r-remotes
21597 r-reshape2
21598 r-reticulate
21599 r-rlist
21600 r-scales
21601 r-seurat
21602 r-seuratextenddata
21603 r-seuratobject
21604 r-tidyr))
21605 (native-inputs (list r-knitr))
21606 (home-page "https://github.com/huayc09/SeuratExtend")
21607 (synopsis "Enhanced toolkit for scRNA-seq analysis")
21608 (description
21609 "This package is designed to improve and simplify the analysis of
21610scRNA-seq data. It uses the Seurat object for this purpose. It provides an
21611array of enhanced visualization tools, an integrated functional and pathway
21612analysis pipeline, seamless integration with popular Python tools, and a suite
21613of utility functions to aid in data manipulation and presentation.")
21614 (license license:gpl3+))))
21615
21616(define-public r-seuratextenddata
21617 (let ((commit "e7f17d4bacca436705b06b2cd0c879f83add9271")
21618 (revision "1"))
21619 (package
21620 (name "r-seuratextenddata")
21621 (version (git-version "0.2.1" revision commit))
21622 (source
21623 (origin
21624 (method git-fetch)
21625 (uri (git-reference
21626 (url "https://github.com/huayc09/SeuratExtendData")
21627 (commit commit)))
21628 (file-name (git-file-name name version))
21629 (sha256
21630 (base32 "1vl2wvpbv5q04mzc6z3f1jw2jc5i8pw5vm8y1rg5b1cihkwppvq5"))))
21631 (properties `((upstream-name . "SeuratExtendData")))
21632 (build-system r-build-system)
21633 (home-page "https://github.com/huayc09/SeuratExtendData")
21634 (synopsis "Data attached to SeuratExtend package")
21635 (description "This package provides data for the SeuratExtend tool.")
21636 (license license:gpl3+))))
21637
21638(define-public r-seuratwrappers
21639 ;; There are no releases or tags.
21640 (let ((commit "d28512f804d5fe05e6d68900ca9221020d52cf1d")
21641 (revision "1"))
21642 (package
21643 (name "r-seuratwrappers")
21644 (version (git-version "0.3.1" revision commit))
21645 (source (origin
21646 (method git-fetch)
21647 (uri (git-reference
21648 (url "https://github.com/satijalab/seurat-wrappers")
21649 (commit commit)))
21650 (file-name (git-file-name name version))
21651 (sha256
21652 (base32
21653 "0rm74y2fj3cmiqn7jz1ald8jbw53c2qxkj3mgl4pxih9vx39jhgy"))))
21654 (properties `((upstream-name . "SeuratWrappers")))
21655 (build-system r-build-system)
21656 (propagated-inputs
21657 (list r-biocmanager
21658 r-cowplot
21659 r-ggplot2
21660 r-igraph
21661 r-matrix
21662 r-remotes
21663 r-rlang
21664 r-rsvd
21665 r-r-utils
21666 r-seurat))
21667 (home-page "https://github.com/satijalab/seurat-wrappers")
21668 (synopsis "Community-provided methods and extensions for the Seurat object")
21669 (description
21670 "SeuratWrappers is a collection of community-provided methods and
21671extensions for Seurat, curated by the Satija Lab at NYGC. These methods
21672comprise functionality not presently found in Seurat, and are able to be
21673updated much more frequently.")
21674 (license license:gpl3))))
21675
21676(define-public python-ctxcore
21677 (package
21678 (name "python-ctxcore")
21679 (version "0.2.0")
21680 (source
21681 (origin
21682 (method git-fetch)
21683 (uri (git-reference
21684 (url "https://github.com/aertslab/ctxcore")
21685 (commit version)))
21686 (file-name (git-file-name name version))
21687 (sha256
21688 (base32
21689 "0nv4lc46cnzpg5gcdxrsv7b4srmkq55zl3rcadw5pn3yyz5fzd2k"))))
21690 (build-system pyproject-build-system)
21691 (propagated-inputs
21692 (list python-cytoolz
21693 python-frozendict
21694 python-numba
21695 python-numpy
21696 python-pandas
21697 python-pyarrow
21698 python-pyyaml
21699 python-tqdm))
21700 (native-inputs
21701 (list python-pytest python-setuptools python-setuptools-scm))
21702 (home-page "https://github.com/aertslab/ctxcore")
21703 (synopsis "Core functions for pycisTarget and the SCENIC tool suite")
21704 (description
21705 "ctxcore is part of the SCENIC suite of tools. It provides core functions for
21706pycisTarget and SCENIC.")
21707 (license license:gpl3+)))
21708
21709(define-public python-arboreto
21710 (package
21711 (name "python-arboreto")
21712 ;; 0.1.6 was released in 2021
21713 (properties '((commit . "79f916b0ea25c00989331b8db243826049c3d66c")
21714 (revision . "1")))
21715 (version (git-version "0.1.6"
21716 (assoc-ref properties 'revision)
21717 (assoc-ref properties 'commit)))
21718 (source (origin
21719 (method git-fetch)
21720 (uri (git-reference
21721 (url "https://github.com/aertslab/arboreto")
21722 (commit (assoc-ref properties 'commit))))
21723 (file-name (git-file-name name version))
21724 (sha256
21725 (base32
21726 "10h1xzvp5r4612icxd5mfhvmwyw57mlvw6z9nwgh37qpzjcnvddd"))))
21727 (build-system pyproject-build-system)
21728 (arguments
21729 (list
21730 ;; tests: 37 tests (skipped=2)
21731 #:test-backend #~'unittest
21732 #:phases
21733 #~(modify-phases %standard-phases
21734 (add-after 'unpack 'python-3.12-compatibility
21735 (lambda _
21736 (substitute* (find-files "tests" "\\.py")
21737 (("assertEquals") "assertEqual"))))
21738 (add-after 'unpack 'disable-failing-tests
21739 (lambda _
21740 (substitute* "tests/test_algo.py"
21741 ;; AssertionError: 'Timed out trying to connect to
21742 ;; tcp://127.0.0.2:12345 after 10 s' not found in 'Timed out
21743 ;; trying to connect to tcp://127.0.0.2:12345 after 30 s'.
21744 (("def test_address")
21745 "def __off_test_address")
21746 ;; AssertionError: 'closing' != 'closed'
21747 ;; - closing
21748 ;; + closed
21749 (("def test_client")
21750 "def __off_test_client")
21751 ))))))
21752 (native-inputs
21753 (list python-setuptools))
21754 (propagated-inputs
21755 (list python-bokeh ;XXX: for python-dask
21756 python-dask
21757 python-distributed
21758 python-numpy
21759 python-pandas
21760 python-scikit-learn
21761 python-scipy))
21762 (home-page "https://github.com/aertslab/arboreto")
21763 (synopsis "Gene regulatory network inference using tree-based ensemble regressors")
21764 (description
21765 "This package implements scalable gene regulatory network inference using
21766tree-based ensemble regressors.")
21767 (license license:bsd-3)))
21768
21769(define-public pyscenic
21770 ;; We use this commit because the last release is not compatible with the
21771 ;; current version of numpy. See
21772 ;; https://github.com/aertslab/pySCENIC/issues/579#issuecomment-2405207860
21773 (let ((commit "06bafba412792f6efa5a552a23bb221cc3bdea1b")
21774 (revision "2"))
21775 (package
21776 (name "pyscenic")
21777 (version (git-version "0.12.1" revision commit))
21778 (source
21779 (origin
21780 (method git-fetch)
21781 (uri (git-reference
21782 (url "https://github.com/aertslab/pySCENIC")
21783 (commit commit)))
21784 (file-name (git-file-name name version))
21785 (sha256
21786 (base32
21787 "15zkv082j1d7fh4pcznqss1q539ndg8ymwbs62xhypylwh7ry0sx"))))
21788 (build-system pyproject-build-system)
21789 (arguments
21790 (list
21791 #:phases
21792 '(modify-phases %standard-phases
21793 ;; The cli modules referenced here have been removed, so this
21794 ;; breaks the sanity check.
21795 (add-after 'unpack 'do-not-reference-deleted-modules
21796 (lambda _
21797 (substitute* "setup.py"
21798 (("\"db2feather = .*\",") "")
21799 (("\"csv2loom = .*\",") "")
21800 (("\"invertdb = .*\",") "")
21801 (("\"gmt2regions = .*\",") ""))))
21802 ;; Numba needs a writable dir to cache functions.
21803 (add-before 'check 'set-numba-cache-dir
21804 (lambda _
21805 (setenv "NUMBA_CACHE_DIR" "/tmp"))))))
21806 (propagated-inputs
21807 (list python-aiohttp
21808 python-arboreto
21809 python-attrs
21810 python-boltons
21811 python-cloudpickle
21812 python-ctxcore
21813 python-cytoolz
21814 python-dask
21815 python-diptest
21816 python-distributed
21817 python-frozendict
21818 python-fsspec
21819 python-interlap
21820 python-llvmlite
21821 python-loompy
21822 python-multiprocessing-on-dill
21823 python-networkx
21824 python-numba
21825 python-numexpr
21826 python-numpy
21827 python-pandas
21828 python-pyarrow ;XXX for dask
21829 python-pyyaml
21830 python-requests
21831 python-scikit-learn
21832 python-scipy
21833 python-setuptools
21834 python-tqdm
21835 python-umap-learn))
21836 (native-inputs
21837 (list python-pytest python-setuptools))
21838 (home-page "https://scenic.aertslab.org/")
21839 (synopsis "Single-Cell regulatory network inference and clustering")
21840 (description
21841 "pySCENIC is a Python implementation of the SCENIC pipeline (Single-Cell
21842rEgulatory Network Inference and Clustering) which enables biologists to infer
21843transcription factors, gene regulatory networks and cell types from
21844single-cell RNA-seq data.")
21845 (license license:gpl3+))))
21846
21847(define-public python-ikarus
21848 (package
21849 (name "python-ikarus")
21850 (version "0.0.3")
21851 (source
21852 (origin
21853 (method url-fetch)
21854 (uri (pypi-uri "ikarus" version))
21855 (sha256
21856 (base32 "1nzhy1a4mnr23wnxg7sy0pgyydfiavvk8b53cyxh1z8s6wqq1yqj"))))
21857 (build-system pyproject-build-system)
21858 (arguments
21859 (list
21860 #:test-backend #~'custom
21861 #:test-flags
21862 ;; There are no actual tests, it is a step from GitHub Actions.
21863 #~(list "-c" "'from ikarus import classifier, utils, data'")
21864 #:phases
21865 #~(modify-phases %standard-phases
21866 ;; Numba needs a writable dir to cache functions.
21867 (add-before 'build 'set-numba-cache-dir
21868 (lambda _
21869 (setenv "NUMBA_CACHE_DIR" "/tmp"))))))
21870 (propagated-inputs (list pyscenic
21871 python-anndata
21872 python-ctxcore
21873 python-numpy
21874 python-pandas
21875 python-scanpy
21876 python-scipy))
21877 (native-inputs (list python-setuptools))
21878 (home-page "https://github.com/BIMSBbioinfo/ikarus")
21879 (synopsis "Machine learning classifier of tumor cells")
21880 (description
21881 "ikarus is a stepwise machine learning pipeline that tries to cope with a task
21882of distinguishing tumor cells from normal cells. Leveraging multiple
21883annotated single cell datasets it can be used to define a gene set specific to
21884tumor cells. First, the latter gene set is used to rank cells and then to
21885train a logistic classifier for the robust classification of tumor and normal
21886cells. Finally, sensitivity is increased by propagating the cell labels based
21887on a custom cell-cell network. ikarus is tested on multiple single cell
21888datasets to ascertain that it achieves high sensitivity and specificity in
21889multiple experimental contexts.")
21890 (license license:expat)))
21891
21892(define-public tbsp
21893 (let ((commit "dc30c03868233c5504299c9cb0d7b2064ba9cb41")
21894 (revision "2"))
21895 (package
21896 (name "tbsp")
21897 (version (git-version "1.0.0" revision commit))
21898 (source
21899 (origin
21900 (method git-fetch)
21901 (uri (git-reference
21902 (url "https://github.com/phoenixding/tbsp")
21903 (commit commit)))
21904 (file-name (git-file-name name version))
21905 (sha256
21906 (base32 "1im0bik2hxkcb7jzkcxp5nqb30hd8lfraxml6i5ik52j6z3qqln1"))))
21907 (build-system pyproject-build-system)
21908 (arguments
21909 '(#:tests? #f ;no tests included
21910 #:phases (modify-phases %standard-phases
21911 (add-after 'unpack 'relax-requirements
21912 (lambda _
21913 (substitute* "setup.py"
21914 ((", <3.0")
21915 ""))))))) ;matplotlib
21916 (inputs (list python-matplotlib
21917 python-networkx
21918 python-numpy
21919 python-pybigwig
21920 python-biopython-1.73
21921 python-scikit-learn
21922 python-scipy))
21923 (native-inputs (list python-setuptools))
21924 (home-page "https://github.com/phoenixding/tbsp/")
21925 (synopsis "SNP-based trajectory inference")
21926 (description
21927 "Several studies focus on the inference of developmental and response
21928trajectories from single cell RNA-Seq (scRNA-Seq) data. A number of
21929computational methods, often referred to as pseudo-time ordering, have been
21930developed for this task. CRISPR has also been used to reconstruct lineage
21931trees by inserting random mutations. The tbsp package implements an
21932alternative method to detect significant, cell type specific sequence
21933mutations from scRNA-Seq data.")
21934 (license license:expat))))
21935
21936(define-public tabixpp
21937 (package
21938 (name "tabixpp")
21939 (version "1.1.2")
21940 (source (origin
21941 (method git-fetch)
21942 (uri (git-reference
21943 (url "https://github.com/ekg/tabixpp")
21944 (commit (string-append "v" version))))
21945 (file-name (git-file-name name version))
21946 (sha256
21947 (base32 "00aqs147yn8zcvxims5njwxqsbnlbjv7lnmiwqy80bfdcbhljkqf"))
21948 (modules '((guix build utils)))
21949 (snippet
21950 '(delete-file-recursively "htslib"))))
21951 (build-system gnu-build-system)
21952 (inputs
21953 (list bzip2 curl htslib xz zlib))
21954 (arguments
21955 (list #:make-flags #~(list (string-append "CC=" #$(cc-for-target))
21956 (string-append "CXX=" #$(cxx-for-target))
21957 "HTS_HEADERS="
21958 (string-append "HTS_LIB="
21959 (search-input-file %build-inputs
21960 "/lib/libhts.a"))
21961 "INCLUDES=")
21962 #:tests? #f ; There are no tests to run.
21963 #:phases
21964 #~(modify-phases %standard-phases
21965 (delete 'configure) ; There is no configure phase.
21966 ;; Build shared and static libraries.
21967 (add-after 'build 'build-libraries
21968 (lambda* (#:key inputs #:allow-other-keys)
21969 (invoke #$(cxx-for-target)
21970 "-shared" "-o" "libtabixpp.so" "tabix.o" "-lhts")
21971 (invoke #$(ar-for-target) "rcs" "libtabixpp.a" "tabix.o")))
21972 (replace 'install
21973 (lambda _
21974 (let ((lib (string-append #$output "/lib"))
21975 (bin (string-append #$output "/bin")))
21976 (install-file "tabix++" bin)
21977 (install-file "libtabixpp.so" lib)
21978 (install-file "libtabixpp.a" lib)
21979 (install-file "tabix.hpp" (string-append #$output "/include"))
21980 (mkdir-p (string-append lib "/pkgconfig"))
21981 (with-output-to-file (string-append lib "/pkgconfig/tabixpp.pc")
21982 (lambda _
21983 (format #t "\
21984prefix=~a~@
21985exec_prefix=${prefix}~@
21986libdir=${exec_prefix}/lib~@
21987includedir=${prefix}/include~@
21988~@
21989~@
21990Name: libtabixpp~@
21991Version: ~a~@
21992Description: C++ wrapper around tabix project~@
21993Libs: -L${libdir} -ltabixpp~@
21994Cflags: -I${includedir}~%"
21995 #$output #$version)))))))))
21996 (home-page "https://github.com/ekg/tabixpp")
21997 (synopsis "C++ wrapper around tabix project")
21998 (description "This is a C++ wrapper around the Tabix project which abstracts
21999some of the details of opening and jumping in tabix-indexed files.")
22000 (license license:expat)))
22001
22002(define-public smithwaterman
22003 (let ((commit "2610e259611ae4cde8f03c72499d28f03f6d38a7"))
22004 (package
22005 (name "smithwaterman")
22006 (version (git-version "0.0.0" "2" commit))
22007 (source (origin
22008 (method git-fetch)
22009 (uri (git-reference
22010 (url "https://github.com/ekg/smithwaterman/")
22011 (commit commit)))
22012 (file-name (git-file-name name version))
22013 (sha256
22014 (base32 "0i9d8zrxpiracw3mxzd9siybpy62p06rqz9mc2w93arajgbk45bs"))))
22015 (build-system gnu-build-system)
22016 (arguments
22017 (list
22018 #:tests? #f ; There are no tests to run.
22019 #:make-flags
22020 #~(list (string-append "CXX=" #$(cxx-for-target))
22021 "libsw.a" "all")
22022 #:phases
22023 #~(modify-phases %standard-phases
22024 (delete 'configure) ; There is no configure phase.
22025 (add-after 'unpack 'patch-source
22026 (lambda _
22027 (substitute* "Makefile"
22028 (("-c ") "-c -fPIC "))
22029 #$@(if (%current-target-system)
22030 #~((substitute* "Makefile"
22031 (("\tld")
22032 (string-append "\t" #$(%current-target-system) "-ld"))
22033 (("\tar")
22034 (string-append "\t" #$(%current-target-system) "-ar"))))
22035 '())))
22036 (add-after 'build 'build-dynamic
22037 (lambda _
22038 (invoke #$(cxx-for-target)
22039 "-shared" "-o" "libsmithwaterman.so"
22040 "smithwaterman.o" "SmithWatermanGotoh.o"
22041 "disorder.o" "BandedSmithWaterman.o"
22042 "LeftAlign.o" "Repeats.o" "IndelAllele.o")))
22043 (replace 'install
22044 (lambda* (#:key outputs #:allow-other-keys)
22045 (let* ((out (assoc-ref outputs "out"))
22046 (bin (string-append out "/bin"))
22047 (lib (string-append out "/lib")))
22048 (install-file "smithwaterman" bin)
22049 (for-each
22050 (lambda (file)
22051 (install-file file (string-append out "/include/smithwaterman")))
22052 (find-files "." "\\.h$"))
22053 (install-file "libsmithwaterman.so" lib)
22054 (install-file "libsw.a" lib)
22055 (mkdir-p (string-append lib "/pkgconfig"))
22056 (with-output-to-file (string-append lib "/pkgconfig/smithwaterman.pc")
22057 (lambda _
22058 (format #t "prefix=~a~@
22059 exec_prefix=${prefix}~@
22060 libdir=${exec_prefix}/lib~@
22061 includedir=${prefix}/include/smithwaterman~@
22062 ~@
22063 ~@
22064 Name: smithwaterman~@
22065 Version: ~a~@
22066 Description: smith-waterman-gotoh alignment algorithm~@
22067 Libs: -L${libdir} -lsmithwaterman~@
22068 Cflags: -I${includedir}~%"
22069 out #$version)))))))))
22070 (home-page "https://github.com/ekg/smithwaterman")
22071 (synopsis "Implementation of the Smith-Waterman algorithm")
22072 (description "Implementation of the Smith-Waterman algorithm.")
22073 ;; The licensing terms are unclear: https://github.com/ekg/smithwaterman/issues/9.
22074 (license (list license:gpl2 license:expat)))))
22075
22076(define-public sylamer
22077 (package
22078 (name "sylamer")
22079 (version "18-131")
22080 (source (origin
22081 (method git-fetch)
22082 (uri (git-reference
22083 (url "https://github.com/micans/sylamer/")
22084 (commit "aa75c3584797c0c15f860addb645f7bc1dd7627d")))
22085 (file-name (git-file-name name version))
22086 (sha256
22087 (base32
22088 "1ddiwlrdghhb4574rvfw0brjp9gs5l6nfsy82h0m4mvz1dr3gkj5"))))
22089 (build-system gnu-build-system)
22090 (arguments
22091 (list
22092 #:tests? #f ; no test target
22093 #:make-flags
22094 #~(list (string-append "GSLPREFIX=" #$(this-package-input "gsl")))
22095 #:phases
22096 '(modify-phases %standard-phases
22097 (replace 'configure
22098 (lambda* (#:key outputs #:allow-other-keys)
22099 (substitute* "Makefile"
22100 (("cp sylamer \\$\\(HOME\\)/local/bin")
22101 (string-append "install -D -t " (assoc-ref outputs "out")
22102 "/bin sylamer")))
22103 (install-file "Makefile" "src")
22104 (chdir "src"))))))
22105 (inputs (list gsl zlib))
22106 (home-page "https://www.ebi.ac.uk/research/enright/software/sylamer")
22107 (synopsis "Asses microRNA binding and siRNA off-target effects")
22108 (description "Sylamer is a system for finding significantly over or
22109under-represented words in sequences according to a sorted gene list.
22110Typically it is used to find significant enrichment or depletion of microRNA
22111or siRNA seed sequences from microarray expression data. Sylamer is extremely
22112fast and can be applied to genome-wide datasets with ease. Results are
22113plotted in terms of a significance landscape plot. These plots show
22114significance profiles for each word studied across the sorted genelist.")
22115 (license license:gpl3+)))
22116
22117(define-public multichoose
22118 (package
22119 (name "multichoose")
22120 (version "1.0.3")
22121 (source (origin
22122 (method git-fetch)
22123 (uri (git-reference
22124 (url "https://github.com/ekg/multichoose/")
22125 (commit (string-append "v" version))))
22126 (file-name (git-file-name name version))
22127 (sha256
22128 (base32
22129 "0ci5fqvmpamwgxvmyd79ygj6n3bnbl3vc7b6h1sxz58186sm3pfs"))))
22130 (build-system gnu-build-system)
22131 (arguments
22132 (list
22133 #:tests? #f ;Tests require node.
22134 #:phases
22135 #~(modify-phases %standard-phases
22136 (delete 'configure) ;There is no configure phase.
22137 (replace 'install
22138 (lambda _
22139 (let ((bin (string-append #$output "/bin"))
22140 (include (string-append #$output "/include")))
22141 ;; TODO: There are Python modules for these programs too.
22142 (install-file "multichoose" bin)
22143 (install-file "multipermute" bin)
22144 (install-file "multichoose.h" include)
22145 (install-file "multipermute.h" include)))))))
22146 (home-page "https://github.com/ekg/multichoose")
22147 (synopsis "Efficient loopless multiset combination generation algorithm")
22148 (description "This library implements an efficient loopless multiset
22149combination generation algorithm which is (approximately) described in
22150\"Loopless algorithms for generating permutations, combinations, and other
22151combinatorial configurations.\", G. Ehrlich - Journal of the ACM (JACM),
221521973. (Algorithm 7.)")
22153 (license license:expat)))
22154
22155(define-public fastahack
22156 (package
22157 (name "fastahack")
22158 (version "1.0.0")
22159 (source (origin
22160 (method git-fetch)
22161 (uri (git-reference
22162 (url "https://github.com/ekg/fastahack/")
22163 (commit (string-append "v" version))))
22164 (file-name (git-file-name name version))
22165 (sha256
22166 (base32 "0rp1blskhzxf7vbh253ibpxbgl9wwgyzf1wbkxndi08d3j4vcss9"))))
22167 (build-system gnu-build-system)
22168 (arguments
22169 (list #:make-flags #~(list (string-append "CXX=" #$(cxx-for-target)))
22170 ;; Unclear how to run tests: https://github.com/ekg/fastahack/issues/15
22171 #:tests? #f
22172 #:phases
22173 #~(modify-phases %standard-phases
22174 (delete 'configure) ; There is no configure phase.
22175 (add-after 'unpack 'patch-source
22176 (lambda _
22177 (substitute* "Makefile"
22178 (("-c ") "-c -fPIC "))))
22179 (add-after 'build 'build-dynamic
22180 (lambda _
22181 (invoke #$(cxx-for-target)
22182 "-shared" "-o" "libfastahack.so"
22183 "Fasta.o" "FastaHack.o" "split.o" "disorder.o")))
22184 (replace 'install
22185 (lambda* (#:key outputs #:allow-other-keys)
22186 (let* ((out (assoc-ref outputs "out"))
22187 (lib (string-append out "/lib"))
22188 (bin (string-append out "/bin")))
22189 (mkdir-p (string-append out "/include/fastahack"))
22190 (for-each
22191 (lambda (file)
22192 (install-file file (string-append out "/include/fastahack")))
22193 (find-files "." "\\.h$"))
22194 (install-file "fastahack" bin)
22195 (install-file "libfastahack.so" lib)
22196 (mkdir-p (string-append lib "/pkgconfig"))
22197 (with-output-to-file (string-append lib "/pkgconfig/fastahack.pc")
22198 (lambda _
22199 (format #t "prefix=~a~@
22200 exec_prefix=${prefix}~@
22201 libdir=${exec_prefix}/lib~@
22202 includedir=${prefix}/include/fastahack~@
22203 ~@
22204 ~@
22205 Name: fastahack~@
22206 Version: ~a~@
22207 Description: Indexing and sequence extraction from FASTA files~@
22208 Libs: -L${libdir} -lfastahack~@
22209 Cflags: -I${includedir}~%"
22210 out #$version)))))))))
22211 (home-page "https://github.com/ekg/fastahack")
22212 (synopsis "Indexing and sequence extraction from FASTA files")
22213 (description "Fastahack is a small application for indexing and
22214extracting sequences and subsequences from FASTA files. The included library
22215provides a FASTA reader and indexer that can be embedded into applications
22216which would benefit from directly reading subsequences from FASTA files. The
22217library automatically handles index file generation and use.")
22218 (license (list license:expat license:gpl2))))
22219
22220(define-public samblaster
22221 (package
22222 (name "samblaster")
22223 (version "0.1.26")
22224 (source (origin
22225 (method git-fetch)
22226 (uri (git-reference
22227 (url "https://github.com/GregoryFaust/samblaster")
22228 (commit (string-append "v." version))))
22229 (file-name (git-file-name name version))
22230 (sha256
22231 (base32
22232 "0g24fq5hplnfgqkh3xqpg3lgx3wmxwnh9c7m6yw7pbi40lmgl1jv"))))
22233 (build-system gnu-build-system)
22234 (arguments
22235 (list
22236 #:tests? #f ;there are none
22237 #:phases
22238 #~(modify-phases %standard-phases
22239 (delete 'configure) ;There is no configure phase.
22240 (replace 'install
22241 (lambda _
22242 (install-file "samblaster" (string-append #$output "/bin")))))))
22243 (home-page "https://github.com/GregoryFaust/samblaster")
22244 (synopsis "Mark duplicates in paired-end SAM files")
22245 (description "Samblaster is a fast and flexible program for marking
22246duplicates in read-id grouped paired-end SAM files. It can also optionally
22247output discordant read pairs and/or split read mappings to separate SAM files,
22248and/or unmapped/clipped reads to a separate FASTQ file. When marking
22249duplicates, samblaster will require approximately 20MB of memory per 1M read
22250pairs.")
22251 (license license:expat)))
22252
22253(define-public r-hdf5dataframe
22254 (let ((commit "61c52cb4ee940e623363ac7fdaa67766ed6947fa")
22255 (revision "1"))
22256 (package
22257 (name "r-hdf5dataframe")
22258 (version (git-version "0.99.3" revision commit))
22259 (source
22260 (origin
22261 (method git-fetch)
22262 (uri (git-reference
22263 (url "https://github.com/BIMSBbioinfo/HDF5DataFrame")
22264 (commit commit)))
22265 (file-name (git-file-name name version))
22266 (sha256
22267 (base32 "0awd2q5q2rh0lmls0cb5shhi20cs82jc43gphfhx10fwrc4cfmrg"))))
22268 (properties `((upstream-name . "HDF5DataFrame")))
22269 (build-system r-build-system)
22270 (propagated-inputs (list r-biocgenerics
22271 r-delayedarray
22272 r-h5mread
22273 r-hdf5array
22274 r-rhdf5
22275 r-s4vectors))
22276 (native-inputs (list r-knitr r-testthat))
22277 (home-page "https://github.com/BIMSBbioinfo/HDF5DataFrame")
22278 (synopsis "HDF5-backed DataFrame objects and methods")
22279 (description
22280 "This package implements bindings for h5 files that are compatible with
22281Bioconductor S4 data structures, namely the @code{DataFrame} and
22282@code{DelayedArray}. This allows HDF5-backed data to be easily used as data
22283frames with arbitrary sets of columns.")
22284 (license license:expat))))
22285
22286(define-public r-imagearray
22287 (package
22288 (name "r-imagearray")
22289 (version "1.0.0")
22290 (source
22291 (origin
22292 (method url-fetch)
22293 (uri (bioconductor-uri "ImageArray" version))
22294 (sha256
22295 (base32 "07zq5fcw2dsvm4qaksaj4gy9gj5lxcgq82l497c5kgvl4wba049c"))))
22296 (properties `((upstream-name . "ImageArray")))
22297 (build-system r-build-system)
22298 (arguments
22299 (list
22300 #:skipped-tests
22301 ;; RBiomFormats is not installed.
22302 '(("test-array.R" "check indexing \\(BFArray\\)"))))
22303 (propagated-inputs (list r-delayedarray
22304 r-ebimage
22305 r-hdf5array
22306 r-magick
22307 r-rarr
22308 r-rhdf5
22309 r-s4arrays
22310 r-s4vectors
22311 r-zarrarray))
22312 (native-inputs (list r-ggplot2 r-knitr r-testthat))
22313 (home-page "https://github.com/BIMSBbioinfo/ImageArray")
22314 (synopsis "Framework for on-disk and in-memory image arrays")
22315 (description
22316 "@code{ImageArray} provides a framework for on-disk and in-memory image
22317arrays, specifically for pyramidal images stored in HDF5, Zarr and life
22318sciences image file formats (OME Bio-Formats).")
22319 (license license:expat)))
22320
22321(define-public r-velocyto
22322 (let ((commit "d7790346cb99f49ab9c2b23ba70dcf9d2c9fc350")
22323 (revision "1"))
22324 (package
22325 (name "r-velocyto")
22326 (version (git-version "0.6" revision commit))
22327 (source
22328 (origin
22329 (method git-fetch)
22330 (uri (git-reference
22331 (url "https://github.com/velocyto-team/velocyto.R")
22332 (commit commit)))
22333 (file-name (git-file-name name version))
22334 (sha256
22335 (base32
22336 "16wqf70j7rd7pay2q513iyz12i8n9vrpg1bisah4lddbcpx5dz1n"))))
22337 (build-system r-build-system)
22338 (inputs
22339 (list boost-1.83))
22340 (propagated-inputs
22341 (list r-hdf5r
22342 r-mass
22343 r-mgcv
22344 r-pcamethods
22345 r-rcpp
22346 r-rcpparmadillo
22347 ;; Suggested packages
22348 r-rtsne
22349 r-cluster
22350 r-abind
22351 r-biocgenerics
22352 r-genomicalignments
22353 r-rsamtools
22354 r-edger
22355 r-igraph))
22356 (home-page "https://velocyto.org")
22357 (synopsis "RNA velocity estimation in R")
22358 (description
22359 "This package provides basic routines for estimation of gene-specific
22360transcriptional derivatives and visualization of the resulting velocity
22361patterns.")
22362 (license license:gpl3))))
22363
22364(define-public r-voltronstore
22365 (let ((commit "781a75ae73571a3a20387cdbf647f23184324a84")
22366 (revision "1"))
22367 (package
22368 (name "r-voltronstore")
22369 (version (git-version "0.1.1" revision commit))
22370 (source
22371 (origin
22372 (method git-fetch)
22373 (uri (git-reference
22374 (url "https://github.com/BIMSBbioinfo/VoltRonStore")
22375 (commit commit)))
22376 (file-name (git-file-name name version))
22377 (sha256
22378 (base32 "19mi9bbvym6jzlqnyqmzy83fv3wpj1jxq2np71j77l7sf1788cwj"))))
22379 (properties `((upstream-name . "VoltRonStore")))
22380 (build-system r-build-system)
22381 (propagated-inputs (list r-basilisk
22382 r-biocparallel
22383 r-bpcells
22384 r-delayedarray
22385 r-delayedmatrixstats
22386 r-hdf5array
22387 r-hdf5dataframe
22388 r-imagearray
22389 r-rarr
22390 r-reticulate
22391 r-rhdf5
22392 r-zarrdataframe))
22393 (home-page "https://github.com/BIMSBbioinfo/VoltRonStore")
22394 (synopsis "On-Disk support and dependancies for VoltRon")
22395 (description
22396 "@code{VoltRonStore} provides utilities and a resource for installing
22397dependencies of @code{VoltRon} package.")
22398 (license license:expat))))
22399
22400(define-public r-voltron
22401 (package
22402 (name "r-voltron")
22403 (version "0.2.6")
22404 (source
22405 (origin
22406 (method git-fetch)
22407 (uri (git-reference
22408 (url "https://github.com/BIMSBbioinfo/VoltRon")
22409 (commit (string-append "v" version))))
22410 (file-name (git-file-name name version))
22411 (sha256
22412 (base32 "00fl5dmyd9ad4hd0cblgi0415sf6q4q67wh04r7fws828vs5vaj1"))))
22413 (properties `((upstream-name . "VoltRon")))
22414 (build-system r-build-system)
22415 (arguments
22416 (list
22417 #:skipped-tests
22418 '(("test_conversion.R"
22419 ;; These fail to raise an error because of our patch in the
22420 ;; 'do-not-use-conda phase, which falls back to Python from Guix.
22421 "as.AnnData, python path"
22422 "as.ometiff, python path"))
22423 #:phases
22424 #~(modify-phases %standard-phases
22425 ;; By default VoltRon will use Basilisk, which uses Conda to set
22426 ;; up a Python environment. We override the fallback default
22427 ;; here. Users can still override the location of the Python
22428 ;; interpreter with the option "voltron.python.path".
22429 (add-after 'unpack 'do-not-use-conda
22430 (lambda* (#:key inputs #:allow-other-keys)
22431 (substitute* "R/conversion.R"
22432 (("return\\(NULL\\)")
22433 (string-append
22434 "source(paste0(system.file(package=\"VoltRon\"), \"/guix-refs.R\"));\n"
22435 "return(guix_python);")))))
22436 ;; We do this outside of the source code to ensure that
22437 ;; references are accessible to Guix.
22438 (add-after 'install 'record-python-reference
22439 (lambda* (#:key inputs #:allow-other-keys)
22440 (mkdir-p (string-append #$output "/site-library/VoltRon/"))
22441 (call-with-output-file (string-append #$output "/site-library/VoltRon/guix-refs.R")
22442 (lambda (port)
22443 (format port "\
22444Sys.setenv(GUIX_PYTHONPATH=\"~a\");
22445guix_python <- \"~a\";"
22446 (getenv "GUIX_PYTHONPATH")
22447 (search-input-file inputs "/bin/python3")))))))))
22448 (inputs
22449 (list opencv
22450 ;; These Python inputs are used via reticulate.
22451 python-wrapper
22452 python-numpy
22453 python-pandas
22454 python-anndata
22455 python-h5py
22456 python-natsort
22457 python-numcodecs
22458 python-packaging
22459 python-scipy
22460 python-tifffile
22461 python-zarr
22462 which ;tests/testthat/test_conversion.R
22463 zlib))
22464 (propagated-inputs (list r-biocsingular
22465 r-data-table
22466 r-dplyr
22467 r-ebimage
22468 r-ggplot2
22469 r-ggpubr
22470 r-ggrepel
22471 r-ids
22472 r-igraph
22473 r-irlba
22474 r-magick
22475 r-matrix
22476 r-rann
22477 r-rcdt
22478 r-rcpp
22479 r-rcppannoy
22480 r-rcpparmadillo
22481 r-rjson
22482 r-rlang
22483 r-s4arrays
22484 r-s4vectors
22485 r-shiny
22486 r-shinyjs
22487 r-sp
22488 r-stringr
22489 r-uwot
22490
22491 ;; Suggested packages
22492 r-anndata
22493 r-anndatar
22494 r-arrow
22495 r-bpcells
22496 r-circlize
22497 r-codetools
22498 r-complexheatmap
22499 r-delayedarray
22500 r-deseq2
22501 r-geojsonr
22502 r-ggforce
22503 r-ggnewscale
22504 r-giotto
22505 r-glmgampoi
22506 r-hdf5array
22507 r-hdf5dataframe
22508 r-imagearray
22509 r-music
22510 r-rhdf5
22511 r-rstudioapi
22512 r-s4vectors
22513 r-seurat
22514 r-seuratobject
22515 r-singlecellexperiment
22516 r-spacexr
22517 r-spatialexperiment
22518 r-summarizedexperiment
22519 r-viridislite
22520 r-vitesscer
22521 r-voltronstore
22522 r-xml
22523 r-zarrdataframe
22524 simpleitk))
22525 (native-inputs (list pkg-config r-testthat))
22526 (home-page "https://github.com/BIMSBbioinfo/VoltRon")
22527 (synopsis "VoltRon for spatial data integration and analysis")
22528 (description
22529 "@code{VoltRon} is a novel spatial omic analysis toolbox for
22530multi-omics integration using spatial image registration. @code{VoltRon} is
22531capable of analyzing multiple types and modalities of spatially-aware
22532datasets. @code{VoltRon} visualizes and analyzes regions of interests (ROIs),
22533spots, cells and even molecules.")
22534 (license license:expat)))
22535
22536(define-public r-zarrdataframe
22537 (let ((commit "f5f671521934b2afc3c511f8c09181bc7bb789a4")
22538 (revision "3"))
22539 (package
22540 (name "r-zarrdataframe")
22541 (version (git-version "0.0.0" revision commit))
22542 (source
22543 (origin
22544 (method git-fetch)
22545 (uri (git-reference
22546 (url "https://github.com/BIMSBbioinfo/ZarrDataFrame")
22547 (commit commit)))
22548 (file-name (git-file-name name version))
22549 (sha256
22550 (base32 "0klp2njn6qsa8n6c01v1z2dfaa93lhbzhwhbyhl23h8gg7d28yc1"))))
22551 (properties
22552 '((upstream-name . "ZarrDataFrame")
22553 (updater-extra-native-inputs . ("r-testthat"))))
22554 (build-system r-build-system)
22555 (propagated-inputs (list r-biocgenerics r-delayedarray r-rarr
22556 r-s4vectors r-zarrarray))
22557 (native-inputs (list r-knitr r-testthat))
22558 (home-page "https://github.com/BIMSBbioinfo/ZarrDataFrame")
22559 (synopsis "Bioconductor-friendly Bindings for Zarr")
22560 (description
22561 "This package implements bindings for zarr store that are compatible
22562with Bioconductor S4 data structures, namely the @code{DataFrame} and
22563@code{DelayedArray}. This allows Zarr-backed data to be easily used as data
22564frames with arbitrary sets of columns.")
22565 (license license:expat))))
22566
22567(define-public r-zarrarray
22568 (package
22569 (name "r-zarrarray")
22570 (version "1.0.0")
22571 (source
22572 (origin
22573 (method url-fetch)
22574 (uri (bioconductor-uri "ZarrArray" version))
22575 (sha256
22576 (base32 "1ny91qg257kgb1hz2h4jvb0rna9cwyw7fqyj5axv52r3b98xn040"))))
22577 (properties `((upstream-name . "ZarrArray")))
22578 (build-system r-build-system)
22579 (propagated-inputs (list r-biocgenerics
22580 r-delayedarray
22581 r-iranges
22582 r-rarr
22583 r-s4arrays
22584 r-s4vectors
22585 r-sparsearray))
22586 (native-inputs (list r-knitr r-testthat))
22587 (home-page "https://bioconductor.org/packages/ZarrArray")
22588 (synopsis "Bring Zarr datasets in R as DelayedArray objects")
22589 (description
22590 "The @code{ZarrArray} package leverages the Rarr package to bring Zarr
22591datasets in R as @code{DelayedArray} objects. The main class in the package
22592is the @code{ZarrArray} class. A @code{ZarrArray} object is an array-like
22593object that represents a Zarr dataset in R. @code{ZarrArray} objects are
22594@code{DelayedArray} derivatives and therefore support all operations (delayed
22595or block-processed) supported by @code{DelayedArray} objects.")
22596 (license license:artistic2.0)))
22597
22598(define-public methyldackel
22599 (package
22600 (name "methyldackel")
22601 (version "0.6.1")
22602 (source (origin
22603 (method git-fetch)
22604 (uri (git-reference
22605 (url "https://github.com/dpryan79/MethylDackel")
22606 (commit version)))
22607 (file-name (git-file-name name version))
22608 (sha256
22609 (base32
22610 "06kj76pyhzxfcjcpm840a3km3fa9994kfq4asglnb228pwak326z"))))
22611 (build-system gnu-build-system)
22612 (arguments
22613 (list
22614 #:test-target "test"
22615 #:make-flags
22616 #~(list "CC=gcc"
22617 "CFLAGS=-fcommon"
22618 "LIBBIGWIG=-lBigWig"
22619 (string-append "prefix=" #$output "/bin/"))
22620 #:phases
22621 '(modify-phases %standard-phases
22622 (replace 'configure
22623 (lambda _
22624 (substitute* "Makefile"
22625 (("install MethylDackel \\$\\(prefix\\)" match)
22626 (string-append "install -d $(prefix); " match))))))))
22627 (inputs
22628 (list curl htslib libbigwig zlib))
22629 ;; Needed for tests
22630 (native-inputs
22631 (list python-wrapper))
22632 (home-page "https://github.com/dpryan79/MethylDackel")
22633 (synopsis "Universal methylation extractor for BS-seq experiments")
22634 (description
22635 "MethylDackel will process a coordinate-sorted and indexed BAM or CRAM
22636file containing some form of BS-seq alignments and extract per-base
22637methylation metrics from them. MethylDackel requires an indexed fasta file
22638containing the reference genome as well.")
22639 ;; See https://github.com/dpryan79/MethylDackel/issues/85
22640 (license license:expat)))
22641
22642(define-public phast
22643 (package
22644 (name "phast")
22645 (version "1.9.9")
22646 (source
22647 (origin
22648 (method git-fetch)
22649 (uri (git-reference
22650 (url "https://github.com/CshlSiepelLab/phast")
22651 (commit (string-append "v" version))))
22652 (file-name (git-file-name name version))
22653 (sha256
22654 (base32 "0j8mgb833i1d0bl5faaxn087z2bjghqvdixwrgjr2hgpcwnd42ki"))))
22655 (build-system cmake-build-system)
22656 (arguments
22657 (list
22658 #:phases
22659 #~(modify-phases %standard-phases
22660 (delete 'check)
22661 (add-after 'install 'post-install-check
22662 (lambda* (#:key tests? inputs outputs #:allow-other-keys)
22663 (when tests?
22664 (with-directory-excursion "../source"
22665 (setenv "PATH" (string-append #$output "/bin" ":"
22666 (getenv "PATH")))
22667 ;; Only run the msa_view tests because the others fail for
22668 ;; unknown reasons.
22669 (invoke "make" "-C" "test" "msa_view"))))))))
22670 (inputs
22671 (list lapack pcre))
22672 (native-inputs
22673 (list perl))
22674 (home-page "http://compgen.cshl.edu/phast/")
22675 (synopsis "Phylogenetic analysis with space/time models")
22676 (description
22677 "Phylogenetic Analysis with Space/Time models (PHAST) is a collection of
22678command-line programs and supporting libraries for comparative and
22679evolutionary genomics. Best known as the search engine behind the
22680Conservation tracks in the University of California, Santa Cruz (UCSC) Genome
22681Browser, PHAST also includes several tools for phylogenetic modeling,
22682functional element identification, as well as utilities for manipulating
22683alignments, trees and genomic annotations.")
22684 (license license:bsd-3)))
22685
22686(define-public python-gffutils
22687 (package
22688 (name "python-gffutils")
22689 (version "0.13")
22690 (source
22691 (origin
22692 (method git-fetch)
22693 (uri (git-reference
22694 (url "https://github.com/daler/gffutils")
22695 (commit (string-append "v" version))))
22696 (file-name (git-file-name name version))
22697 (sha256
22698 (base32
22699 "148i7bk5bawrz19jp3nl0z859wdlldgrw8f0aw9wsprj8s3d713a"))))
22700 (build-system pyproject-build-system)
22701 (arguments
22702 (list
22703 ;; Failed: 'yield' keyword is allowed in fixtures, but not in tests
22704 ;; (test_region)
22705 #:test-flags #~(list "--ignore=gffutils/test/test_1.py")
22706 #:phases
22707 #~(modify-phases %standard-phases
22708 (add-before 'build 'set-HOME
22709 (lambda _
22710 ;; FileNotFoundError: [Errno 2] No such file or directory:
22711 ;; '/homeless-shelter/.gffutils.test'
22712 (setenv "HOME" "/tmp"))))))
22713 (native-inputs
22714 (list python-pytest python-setuptools))
22715 (propagated-inputs
22716 (list python-argcomplete
22717 python-argh
22718 python-biopython
22719 python-pybedtools
22720 python-pyfaidx
22721 python-simplejson))
22722 (home-page "https://github.com/daler/gffutils")
22723 (synopsis "Tool for manipulation of GFF and GTF files")
22724 (description
22725 "python-gffutils is a Python package for working with and manipulating
22726the GFF and GTF format files typically used for genomic annotations. The
22727files are loaded into a SQLite database, allowing much more complex
22728manipulation of hierarchical features (e.g., genes, transcripts, and exons)
22729than is possible with plain-text methods alone.")
22730 (license license:expat)))
22731
22732(define-public indelfixer
22733 (package
22734 (name "indelfixer")
22735 (version "1.1")
22736 (source (origin
22737 (method git-fetch)
22738 (uri (git-reference
22739 (url "https://github.com/cbg-ethz/InDelFixer/")
22740 (commit (string-append "v" version))))
22741 (file-name (git-file-name name version))
22742 (sha256
22743 (base32
22744 "10ak05x8i1bx2p7rriv2rglqg1wr7c8wrhjrqlq1wm7ka99w8i79"))))
22745 (build-system ant-build-system)
22746 (arguments
22747 `(#:jar-name "InDelFixer.jar"
22748 #:source-dir "src/main/java"
22749 #:test-dir "src/test"))
22750 (inputs
22751 (list java-args4j java-commons-lang))
22752 (native-inputs
22753 (list java-junit))
22754 (home-page "https://github.com/cbg-ethz/InDelFixer/")
22755 (synopsis "Iterative and sensitive NGS sequence aligner")
22756 (description "InDelFixer is a sensitive aligner for 454, Illumina and
22757PacBio data, employing a full Smith-Waterman alignment against a reference.
22758This Java command line application aligns Next-Generation Sequencing (NGS) and
22759third-generation reads to a set of reference sequences, by a prior fast k-mer
22760matching and removes indels, causing frame shifts. In addition, only a
22761specific region can be considered. An iterative refinement of the alignment
22762can be performed, by alignment against the consensus sequence with wobbles.
22763The output is in SAM format.")
22764 (license license:gpl3+)))
22765
22766(define-public libsbml
22767 (package
22768 (name "libsbml")
22769 (version "5.20.5")
22770 (source (origin
22771 (method git-fetch)
22772 (uri (git-reference
22773 (url "https://github.com/sbmlteam/libsbml")
22774 (commit (string-append "v" version))))
22775 (file-name (git-file-name name version))
22776 (sha256
22777 (base32
22778 "1bzsgwblh5l15xxy7kpdwiya5kwm26sj6daqr9i93h04manpqmfw"))))
22779 (build-system cmake-build-system)
22780 (arguments
22781 `(#:configure-flags
22782 ,#~(list "-DWITH_CHECK=ON"
22783 (string-append "-DLIBXML_LIBRARY="
22784 #$(this-package-input "libxml2")
22785 "/lib/libxml2.so")
22786 (string-append "-DLIBXML_INCLUDE_DIR="
22787 #$(this-package-input "libxml2")
22788 "/include/libxml2"))))
22789 (propagated-inputs
22790 (list libxml2))
22791 (native-inputs
22792 (list check swig-4.0))
22793 (home-page "https://sbml.org/Software/libSBML")
22794 (synopsis "Process SBML files and data streams")
22795 (description "LibSBML is a library to help you read, write, manipulate,
22796translate, and validate SBML files and data streams. The @dfn{Systems Biology
22797Markup Language} (SBML) is an interchange format for computer models of
22798biological processes. SBML is useful for models of metabolism, cell
22799signaling, and more. It continues to be evolved and expanded by an
22800international community.")
22801 (license license:lgpl2.1+)))
22802
22803(define-public kraken2
22804 (package
22805 (name "kraken2")
22806 (version "2.1.2")
22807 (source (origin
22808 (method git-fetch)
22809 (uri (git-reference
22810 (url "https://github.com/DerrickWood/kraken2")
22811 (commit (string-append "v" version))))
22812 (file-name (git-file-name name version))
22813 (sha256
22814 (base32
22815 "1pl6ml1ldg2hnhy8ps56q0fl1wq3g91qkhinj6pb4yjjhv1rxsjf"))))
22816 (build-system gnu-build-system)
22817 (arguments
22818 `(#:tests? #false ; there are none
22819 #:make-flags
22820 ,#~(list "-C" "src"
22821 (string-append "KRAKEN2_DIR=" #$output "/bin"))
22822 #:phases
22823 (modify-phases %standard-phases
22824 (delete 'configure)
22825 (add-before 'install 'install-scripts
22826 (lambda* (#:key outputs #:allow-other-keys)
22827 (let* ((bin (string-append (assoc-ref outputs "out") "/bin"))
22828 (replacements `(("KRAKEN2_DIR" . ,bin)
22829 ("VERSION" . ,,version))))
22830 (mkdir-p bin)
22831
22832 (with-directory-excursion "scripts"
22833 (let ((scripts (find-files "." ".*")))
22834 (substitute* scripts
22835 (("#####=([^=]+)=#####" _ key)
22836 (or (assoc-ref replacements key)
22837 (error (format #false "unknown key: ~a~%" key)))))
22838 (substitute* "kraken2"
22839 (("compression_program = \"bzip2\"")
22840 (string-append "compression_program = \""
22841 (which "bzip2")
22842 "\""))
22843 (("compression_program = \"gzip\"")
22844 (string-append "compression_program = \""
22845 (which "gzip")
22846 "\"")))
22847 (substitute* '("download_genomic_library.sh"
22848 "download_taxonomy.sh"
22849 "16S_gg_installation.sh"
22850 "16S_silva_installation.sh"
22851 "16S_rdp_installation.sh")
22852 (("wget") (which "wget")))
22853 (substitute* '("download_taxonomy.sh"
22854 "download_genomic_library.sh"
22855 "rsync_from_ncbi.pl")
22856 (("rsync -")
22857 (string-append (which "rsync") " -")))
22858 (substitute* "mask_low_complexity.sh"
22859 (("which") (which "which")))
22860 (substitute* '("mask_low_complexity.sh"
22861 "download_genomic_library.sh"
22862 "16S_silva_installation.sh")
22863 (("sed -e ")
22864 (string-append (which "sed") " -e ")))
22865 (substitute* '("rsync_from_ncbi.pl"
22866 "16S_rdp_installation.sh"
22867 "16S_silva_installation.sh"
22868 "16S_gg_installation.sh"
22869 "download_taxonomy.sh"
22870 "download_genomic_library.sh")
22871 (("gunzip") (which "gunzip")))
22872 (for-each (lambda (script)
22873 (chmod script #o555)
22874 (install-file script bin))
22875 scripts)))))))))
22876 (inputs
22877 (list gzip
22878 perl
22879 rsync
22880 sed
22881 wget
22882 which))
22883 (home-page "https://github.com/DerrickWood/kraken2")
22884 (synopsis "Taxonomic sequence classification system")
22885 (description "Kraken is a taxonomic sequence classifier that assigns
22886taxonomic labels to DNA sequences. Kraken examines the k-mers within a query
22887sequence and uses the information within those k-mers to query a
22888database. That database maps k-mers to the lowest common ancestor (LCA) of all
22889genomes known to contain a given k-mer.")
22890 (license license:expat)))
22891
22892(define-public lofreq
22893 (package
22894 (name "lofreq")
22895 (version "2.1.5")
22896 (source (origin
22897 (method git-fetch)
22898 (uri (git-reference
22899 (url "https://github.com/CSB5/lofreq")
22900 (commit (string-append "v" version))))
22901 (file-name (git-file-name name version))
22902 (sha256
22903 (base32
22904 "0qssrn3mgjak7df6iqc1rljqd3g3a5syvg0lsv4vds43s3fq23bl"))))
22905 (build-system gnu-build-system)
22906 (arguments
22907 '(#:test-target "bug-tests"
22908 #:tests? #false ;test data are not included
22909 #:phases
22910 (modify-phases %standard-phases
22911 (add-after 'unpack 'set-source-file-times-to-1980
22912 (lambda _
22913 (let ((circa-1980 (* 10 366 24 60 60)))
22914 (for-each (lambda (file)
22915 (let ((s (lstat file)))
22916 (unless (eq? (stat:type s) 'symlink)
22917 (utime file circa-1980 circa-1980))))
22918 (find-files "." #:directories? #t))))))))
22919 (inputs
22920 (list htslib python-wrapper zlib))
22921 (native-inputs
22922 (list autoconf automake python-setuptools which))
22923 (home-page "https://csb5.github.io/lofreq/")
22924 (synopsis "Sensitive variant calling from sequencing data")
22925 (description "LoFreq is a fast and sensitive variant-caller for inferring
22926SNVs and indels from next-generation sequencing data. It makes full use of
22927base-call qualities and other sources of errors inherent in
22928sequencing (e.g. mapping or base/indel alignment uncertainty), which are
22929usually ignored by other methods or only used for filtering.")
22930 (license license:expat)))
22931
22932(define-public louvain
22933 (package
22934 (name "louvain")
22935 (version "0.2")
22936 (source (origin
22937 (method url-fetch)
22938 (uri "mirror://sourceforge/louvain/louvain_latest.tar.gz")
22939 (sha256
22940 (base32
22941 "0hqlv5jqc889nbv7j1bchrx4zhh69hgr2mqvfdygc7kwrywn22lb"))))
22942 (build-system gnu-build-system)
22943 (arguments
22944 (list
22945 #:tests? #false ;there are none
22946 #:phases
22947 #~(modify-phases %standard-phases
22948 (delete 'configure)
22949 (add-after 'unpack 'patch-includes
22950 (lambda _
22951 (substitute* "main_community.cpp"
22952 (("using namespace std;" m)
22953 (string-append "#include <unistd.h> /* for getpid */\n" m)))))
22954 (replace 'install
22955 (lambda _
22956 (for-each
22957 (lambda (exe)
22958 (install-file exe (string-append #$output "/bin")))
22959 '("convert" "community" "hierarchy")))))))
22960 (home-page "https://sourceforge.net/projects/louvain/")
22961 (synopsis "Multi-criteria community detection")
22962 (description "This package offers a set of functions to use in order to
22963compute communities on graphs weighted or unweighted.")
22964 (license license:gpl3+)))
22965
22966(define-public ivar
22967 (package
22968 (name "ivar")
22969 (version "1.4.4")
22970 (source (origin
22971 (method git-fetch)
22972 (uri (git-reference
22973 (url "https://github.com/andersen-lab/ivar")
22974 (commit (string-append "v" version))))
22975 (file-name (git-file-name name version))
22976 (sha256
22977 (base32
22978 "1bwygjv81m4yv5ycxb5gx22k6njgwrzzs7jrsadq6363klcv4irh"))))
22979 (build-system gnu-build-system)
22980 (arguments
22981 (list
22982 #:parallel-tests? #false ;not supported
22983 #:phases
22984 '(modify-phases %standard-phases
22985 (add-after 'unpack 'patch-CXXFLAGS
22986 (lambda _
22987 (substitute* '("src/Makefile.am"
22988 "tests/Makefile.am")
22989 (("-Werror") "")))))))
22990 (inputs
22991 (list htslib zlib))
22992 (native-inputs
22993 (list autoconf automake))
22994 (home-page "https://andersen-lab.github.io/ivar/html/")
22995 (synopsis "Tools for amplicon-based sequencing")
22996 (description "iVar is a computational package that contains functions
22997broadly useful for viral amplicon-based sequencing.")
22998 (license license:gpl3+)))
22999
23000(define-public python-pyliftover
23001 (package
23002 (name "python-pyliftover")
23003 (version "0.4")
23004 ;; The version of pypi does not include test data.
23005 (source
23006 (origin
23007 (method git-fetch)
23008 (uri (git-reference
23009 (url "https://github.com/konstantint/pyliftover")
23010 (commit version)))
23011 (file-name (git-file-name name version))
23012 (sha256
23013 (base32 "1j8jp9iynv2l3jv5pr0pn0p3azlama1bqg233piglzm6bqh3m2m3"))))
23014 (build-system pyproject-build-system)
23015 (arguments
23016 `(#:tests? #f)) ;the tests access the web
23017 (native-inputs (list python-pytest python-setuptools))
23018 (home-page "https://github.com/konstantint/pyliftover")
23019 (synopsis
23020 "Python implementation of UCSC liftOver genome coordinate conversion")
23021 (description
23022 "PyLiftover is a library for quick and easy conversion of genomic (point)
23023coordinates between different assemblies.")
23024 (license license:expat)))
23025
23026(define-public python-cgatcore
23027 (package
23028 (name "python-cgatcore")
23029 (version "0.6.16")
23030 ;; The version of pypi does not include test data.
23031 (source (origin
23032 (method git-fetch)
23033 (uri (git-reference
23034 (url "https://github.com/cgat-developers/cgat-core")
23035 (commit (string-append "v" version))))
23036 (file-name (git-file-name name version))
23037 (sha256
23038 (base32
23039 "0kvfb6fpfncdfb8wjmn7n2vmqk3wd7sdrfw1rhlihfdxbfzb5fa8"))))
23040 (build-system pyproject-build-system)
23041 (arguments
23042 (list
23043 #:test-flags
23044 ;; Failed: 'yield' keyword is allowed in fixtures, but not in tests
23045 ;; (test_import)
23046 '(list "--ignore=tests/test_import.py"
23047 "-k"
23048 (string-append
23049 ;; This test actually does what it should, but the check fails with
23050 ;; TypeError: cannot unpack non-iterable Namespace object
23051 "not test_start_and_stop_are_logged_with_argparse"
23052 ;; These all attempt to connect to localhost with SSH
23053 " and not test_job_should_use_TMPDIR_and_clean_up"
23054 " and not test_job_should_use_TMPDIR_and_clean_up_after_fail"
23055 " and not test_job_should_write_to_explicit_temp_and_not_clean_up"))
23056 #:phases
23057 '(modify-phases %standard-phases
23058 (add-after 'unpack 'fix-references
23059 (lambda _
23060 (substitute* "cgatcore/pipeline/execution.py"
23061 (("#!/bin/bash") (string-append "#!" (which "bash")))
23062 (("executable=\"/bin/bash\"")
23063 (string-append "executable=\"" (which "bash") "\""))
23064 (("\\\\time") (which "time")))))
23065 (add-after 'unpack 'sqlite-compatibility
23066 (lambda _
23067 ;; Load apsw (and thus newer sqlite3) before importing Python's
23068 ;; older sqlite3 library.
23069 (substitute* "cgatcore/pipeline/__init__.py"
23070 (("import os")
23071 (string-append "import os\nimport apsw")))
23072 (substitute* "tests/template_pipeline.py"
23073 (("import sys" m)
23074 (string-append "import apsw\n" m))))))))
23075 (native-inputs
23076 (list inetutils
23077 lsof
23078 openssl
23079 python-pytest
23080 python-setuptools))
23081 (inputs (list time))
23082 (propagated-inputs
23083 (list python-apsw
23084 python-gevent
23085 python-pandas
23086 python-paramiko
23087 python-pyyaml
23088 python-ruffus
23089 python-sqlalchemy))
23090 (home-page "https://github.com/cgat-developers/cgat-core")
23091 (synopsis "Computational genomics analysis toolkit")
23092 (description
23093 "CGAT-core is a set of libraries and helper functions used to enable
23094researchers to design and build computational workflows for the analysis of
23095large-scale data-analysis.")
23096 (license license:expat)))
23097
23098(define-public perl-cworld-dekker
23099 (package
23100 (name "perl-cworld-dekker")
23101 (version "1.01")
23102 (source (origin
23103 (method git-fetch)
23104 (uri (git-reference
23105 (url "https://github.com/dekkerlab/cworld-dekker.git")
23106 (commit (string-append "v" version))))
23107 (file-name (git-file-name name version))
23108 (sha256
23109 (base32
23110 "1dvh23fx52m59y6304xi2j2pl2hiqadlqg8jyv2pm14j1hy71ych"))))
23111 (build-system perl-build-system)
23112 (arguments
23113 (list
23114 #:modules '((guix build perl-build-system)
23115 (guix build utils)
23116 (srfi srfi-26))
23117 #:phases
23118 #~(modify-phases %standard-phases
23119 (add-after 'unpack 'hardcode-references
23120 (lambda* (#:key inputs #:allow-other-keys)
23121 (let ((bedtools #$(this-package-input "bedtools"))
23122 (r #$(this-package-input "r-minimal")))
23123 (substitute* '("scripts/python/getEigenVectors.py"
23124 "scripts/python/matrix2EigenVectors.py")
23125 (("bedtools intersect")
23126 (string-append bedtools "/bin/bedtools intersect")))
23127 (substitute* "lib/cworld/dekker.pm"
23128 (("bedtools --version")
23129 (string-append bedtools "/bin/bedtools --version")))
23130 (substitute* '("scripts/perl/correlateMatrices.pl"
23131 "scripts/perl/matrix2scaling.pl"
23132 "scripts/perl/matrix2distance.pl"
23133 "scripts/perl/coverageCorrect.pl"
23134 "scripts/perl/matrix2anchorPlot.pl"
23135 "scripts/python/matrix2EigenVectors.py"
23136 "scripts/python/matrix2insulation-lite.py"
23137 "scripts/perl/matrix2compartment.pl"
23138 "scripts/perl/anchorPurge.pl"
23139 "scripts/perl/applyCorrection.pl"
23140 "scripts/perl/compareInsulation.pl"
23141 "scripts/perl/fillMissingData.pl"
23142 "scripts/perl/matrix2loess.pl"
23143 "scripts/python/getEigenVectors.py"
23144 "scripts/perl/aggregateBED.pl"
23145 "scripts/perl/collapseMatrix.pl"
23146 "scripts/perl/matrix2direction.pl"
23147 "scripts/perl/singletonRemoval.pl"
23148 "lib/cworld/dekker.pm"
23149 "scripts/perl/matrix2insulation.pl")
23150 (("(`|\")Rscript" _ pre)
23151 (string-append pre r "/bin/Rscript"))))))
23152 (add-after 'install 'install-scripts
23153 (lambda _
23154 (let ((share (string-append #$output "/share/cworld-dekker")))
23155 (mkdir-p share)
23156 (copy-recursively "scripts" share)
23157
23158 ;; Make all scripts executable and wrap them.
23159 (let ((r (find-files share "\\.R$"))
23160 (py (find-files share "\\.py$"))
23161 (pl (find-files share "\\.pl$"))
23162 (wrap (lambda* (script var #:optional (extra ""))
23163 (let ((path (string-append (getenv var)
23164 extra)))
23165 (wrap-program script
23166 `(,var ":" prefix (,path)))))))
23167 (for-each (cut chmod <> #o555) (append r py pl))
23168 (for-each (cut wrap <> "PERL5LIB"
23169 (string-append ":" #$output
23170 "/lib/perl5/site_perl"))
23171 pl)
23172 (for-each (cut wrap <> "GUIX_PYTHONPATH") py))))))))
23173 (inputs
23174 (list gd
23175 perl-gd
23176 bedtools
23177 python-wrapper
23178 python-scipy
23179 python-numpy
23180 python-matplotlib
23181 python-h5py
23182 python-scikit-learn
23183 r-minimal))
23184 (native-inputs
23185 (list perl-module-build))
23186 (home-page "https://github.com/dekkerlab/cworld-dekker")
23187 (synopsis "Utility and analysis scripts for 3C, 4C, 5C, and Hi-C data")
23188 (description "This package is a collection of Perl, Python, and R
23189scripts for manipulating 3C/4C/5C/Hi-C data.")
23190 (license license:asl2.0)))
23191
23192(define-public ensembl-vep
23193 (let* ((api-version "112")
23194 (api-module
23195 (lambda (name hash)
23196 (origin (method git-fetch)
23197 (uri (git-reference
23198 (url (string-append "https://github.com/Ensembl/"
23199 name ".git"))
23200 (commit (string-append "release/" api-version))))
23201 (file-name (string-append name "-" api-version "-checkout"))
23202 (sha256 (base32 hash))))))
23203 (package
23204 (name "ensembl-vep")
23205 (version api-version)
23206 (source
23207 (origin
23208 (method git-fetch)
23209 (uri (git-reference
23210 (url "https://github.com/Ensembl/ensembl-vep.git")
23211 (commit (string-append "release/" version))))
23212 (file-name (git-file-name name version))
23213 (sha256
23214 (base32
23215 "0nznmiln2q6bzd3xp8d5cw56higa5w3g9rmg66956bkfky53chvw"))))
23216 (build-system gnu-build-system)
23217 (arguments
23218 `(#:modules ((guix build gnu-build-system)
23219 (guix build utils)
23220 (ice-9 match))
23221 #:phases
23222 (modify-phases %standard-phases
23223 (delete 'configure)
23224 (delete 'build)
23225 ;; Tests need to run after installation
23226 (delete 'check)
23227 (replace 'install
23228 (lambda* (#:key inputs outputs #:allow-other-keys)
23229 (let* ((modules '(("ensembl" "/")
23230 ("ensembl-variation" "/Variation")
23231 ("ensembl-funcgen" "/Funcgen")
23232 ("ensembl-io" "/")))
23233 (scripts '(("convert_cache.pl" "vep_convert_cache.pl")
23234 ("INSTALL.pl" "vep_install.pl")
23235 ("haplo" #f)
23236 ("variant_recoder" #f)
23237 ("filter_vep" #f)
23238 ("vep" #f)))
23239 (out (assoc-ref outputs "out"))
23240 (bin (string-append out "/bin"))
23241 (perl (string-append out "/lib/perl5/site_perl")))
23242 (for-each
23243 (match-lambda
23244 ((name path)
23245 (let ((dir (string-append perl "/Bio/EnsEMBL" path)))
23246 (mkdir-p dir)
23247 (copy-recursively
23248 (string-append (assoc-ref inputs (string-append "api-module-" name))
23249 "/modules/Bio/EnsEMBL" path)
23250 dir))))
23251 modules)
23252 (copy-recursively "modules/" perl)
23253 (mkdir-p bin)
23254 (for-each
23255 (match-lambda
23256 ((script new-name)
23257 (let ((location (string-append bin "/"
23258 (or new-name (basename script)))))
23259 (copy-file script location)
23260 (chmod location #o555)
23261 (wrap-program location
23262 `("PERL5LIB" ":" prefix (,(getenv "PERL5LIB")
23263 ,perl))))))
23264 scripts)
23265
23266 ;; Fix path to tools
23267 (with-directory-excursion (string-append perl "/Bio/EnsEMBL")
23268 (substitute* '("Funcgen/RunnableDB/ProbeMapping/PrePipelineChecks.pm"
23269 "VEP/BaseRunner.pm"
23270 "VEP/Utils.pm"
23271 "VEP/AnnotationSource/Cache/VariationTabix.pm"
23272 "VEP/AnnotationSource/Cache/BaseSerialized.pm"
23273 "Variation/Utils/BaseVepTabixPlugin.pm"
23274 "Variation/Utils/VEP.pm"
23275 "Variation/Pipeline/ReleaseDataDumps/PreRunChecks.pm")
23276 (("`which")
23277 (string-append "`"
23278 (assoc-ref inputs "which")
23279 "/bin/which")))))))
23280 (add-after 'install 'check
23281 (lambda* (#:key tests? inputs outputs #:allow-other-keys)
23282 (when tests?
23283 (setenv "PERL5LIB"
23284 (string-append (getenv "PERL5LIB")
23285 ":"
23286 (assoc-ref outputs "out")
23287 "/lib/perl5/site_perl"))
23288 (copy-recursively (string-append (assoc-ref inputs "source") "/t")
23289 "/tmp/t")
23290 (for-each make-file-writable (find-files "/tmp/t"))
23291 ;; TODO: haplo needs Set/IntervalTree.pm
23292 (invoke "perl" "-e" (string-append "
23293use Test::Harness; use Test::Exception;
23294my $dirname = \"/tmp\";
23295opendir TEST, \"$dirname\\/t\";
23296my @test_files = map {\"$dirname\\/t\\/\".$_} grep {!/^\\./ && /\\.t$/} readdir TEST; closedir TEST;
23297@test_files = grep {!/Haplo/} @test_files;
23298runtests(@test_files);
23299"))))))))
23300 (inputs
23301 (list bioperl-minimal
23302 perl-bio-db-hts
23303 perl-dbi
23304 perl-dbd-mysql
23305 perl-libwww
23306 perl-list-moreutils
23307 perl-http-tiny
23308 perl-json
23309 which))
23310 (propagated-inputs
23311 (list kentutils))
23312 (native-inputs
23313 `(("unzip" ,unzip)
23314 ("perl" ,perl)
23315 ("api-module-ensembl"
23316 ,(api-module "ensembl"
23317 "10r576iqrz1p61mqbbfs87w4w3nldi45p51z52mq76f3n00l010h"))
23318 ("api-module-ensembl-variation"
23319 ,(api-module "ensembl-variation"
23320 "0ad03xnyyqpya1bkg6igq9abqxdmi58j89wn2kb3m4bvy1zs03mf"))
23321 ("api-module-ensembl-funcgen"
23322 ,(api-module "ensembl-funcgen"
23323 "1m3dxnr6k9x5hmcsxckpxlqx7vbc82lk74r84vcjijgxjkfa5rpp"))
23324 ("api-module-ensembl-io"
23325 ,(api-module "ensembl-io"
23326 "1xr6kdqqzmbi3m4bls589d1dfjvbs13dxlbf1y172xjyipvmag43"))
23327 ("perl-test-deep" ,perl-test-deep)
23328 ("perl-test-exception" ,perl-test-exception)
23329 ("perl-test-harness" ,perl-test-harness)
23330 ("perl-test-warnings" ,perl-test-warnings)))
23331 (home-page "http://www.ensembl.org/vep")
23332 (synopsis "Predict functional effects of genomic variants")
23333 (description
23334 "This package provides a Variant Effect Predictor, which predicts
23335the functional effects of genomic variants. It also provides
23336Haplosaurus, which uses phased genotype data to predict
23337whole-transcript haplotype sequences, and Variant Recoder, which
23338translates between different variant encodings.")
23339 (license license:asl2.0))))
23340
23341(define-public r-signac
23342 (let ((commit "f5a84118508d2f0d6b04bd7fd28ad7f3576de461")
23343 (revision "1"))
23344 (package
23345 (name "r-signac")
23346 (version (git-version "1.16.0" revision commit))
23347 (source (origin
23348 (method git-fetch)
23349 (uri (git-reference
23350 (url "https://github.com/timoast/signac/")
23351 (commit commit)))
23352 (file-name (git-file-name name version))
23353 (sha256
23354 (base32
23355 "1q80ynngskmkndsbfliikrmj8q9q73vx30cfzk6v14w0y6f8rak7"))))
23356 (properties
23357 '((upstream-name . "Signac")
23358 (updater-extra-native-inputs . ("r-testthat"))))
23359 (build-system r-build-system)
23360 (inputs (list zlib))
23361 (propagated-inputs
23362 (list r-biocgenerics
23363 r-data-table
23364 r-dplyr
23365 r-fastmatch
23366 r-future
23367 r-future-apply
23368 r-genomeinfodb
23369 r-genomicranges
23370 r-ggplot2
23371 r-iranges
23372 r-irlba
23373 r-lifecycle
23374 r-matrix
23375 r-patchwork
23376 r-pbapply
23377 r-rcpp
23378 r-rcpproll
23379 r-rlang
23380 r-rsamtools
23381 r-s4vectors
23382 r-scales
23383 r-seuratobject
23384 r-stringi
23385 r-tidyr
23386 r-tidyselect
23387 r-vctrs))
23388 (native-inputs (list r-testthat))
23389 (home-page "https://github.com/timoast/signac/")
23390 (synopsis "Analysis of single-cell chromatin data")
23391 (description
23392 "This package provides a framework for the analysis and exploration of
23393single-cell chromatin data. The Signac package contains functions for
23394quantifying single-cell chromatin data, computing per-cell quality control
23395metrics, dimension reduction and normalization, visualization, and DNA
23396sequence motif analysis.")
23397 (license license:expat))))
23398
23399;; This is a fork of the original unmaintained python-pyvcf.
23400(define-public python-pyvcf3
23401 (let ((commit "1fb3789153d1d8e28e2cedf121399f276b5f312a")
23402 (revision "0"))
23403 (package
23404 (name "python-pyvcf3")
23405 (version (git-version "1.0.3" revision commit))
23406 (source
23407 (origin
23408 (method git-fetch)
23409 (uri (git-reference
23410 (url "https://github.com/dridk/PyVCF3")
23411 (commit commit)))
23412 (file-name (git-file-name name version))
23413 (sha256
23414 (base32 "0i4j5bq5q32q216ja7yvg0mpww5j0b9p8ky5bya4d31wqmygal8z"))))
23415 (build-system pyproject-build-system)
23416 (propagated-inputs (list python-setuptools))
23417 (native-inputs (list python-pytest python-setuptools))
23418 (home-page "https://github.com/dridk/PyVCF3")
23419 (synopsis "Variant Call Format parser for Python")
23420 (description "This package provides a @acronym{VCF,Variant Call Format}
23421parser for Python.")
23422 (license license:expat))))
23423
23424(define-deprecated/public-alias python-pyvcf python-pyvcf3)
23425
23426(define-public nanosv
23427 (package
23428 (name "nanosv")
23429 (version "1.2.4")
23430 (source
23431 (origin
23432 (method url-fetch)
23433 (uri (pypi-uri "NanoSV" version))
23434 (sha256
23435 (base32 "1wl2daj0bwrl8fx5xi8j8hfs3mp3vg3qycy66538n032v1qkc6xg"))))
23436 (build-system pyproject-build-system)
23437 (arguments
23438 (list
23439 #:tests? #f ; No tests upstream, even in git.
23440 #:phases
23441 #~(modify-phases %standard-phases
23442 (add-after 'unpack 'relax-requirements
23443 (lambda _
23444 (substitute* "setup.py"
23445 (("'pyvcf'")
23446 "'pyvcf3'")))))))
23447 (native-inputs (list python-setuptools))
23448 (inputs (list python-configparser python-pysam python-pyvcf3))
23449 (home-page "https://github.com/mroosmalen/nanosv")
23450 (synopsis "Structural variation detection tool for Oxford Nanopore data")
23451 (description
23452 "NanoSV is a software package that can be used to identify
23453structural genomic variations in long-read sequencing data, such as data
23454produced by Oxford Nanopore Technologies’ MinION, GridION or PromethION
23455instruments, or Pacific Biosciences RSII or Sequel sequencers.")
23456 (license license:expat)))
23457
23458(define-public python-strawc
23459 (package
23460 (name "python-strawc")
23461 (version "0.0.2.1")
23462 (source
23463 (origin
23464 (method url-fetch)
23465 (uri (pypi-uri "strawC" version))
23466 (sha256
23467 (base32
23468 "1z1gy8n56lhriy6hdkh9r82ndikndipq2cy2wh8q185qig4rimr6"))))
23469 (build-system pyproject-build-system)
23470 (native-inputs (list python-setuptools))
23471 (arguments (list #:tests? #f)) ;No tests on either PyPI or Git.
23472 (inputs
23473 (list curl zlib))
23474 (propagated-inputs
23475 (list pybind11-2))
23476 (home-page "https://github.com/aidenlab/straw")
23477 (synopsis "Stream data from .hic files")
23478 (description "Straw is library which allows rapid streaming of contact
23479data from @file{.hic} files. This package provides Python bindings.")
23480 (license license:expat)))
23481
23482(define-public python-pybbi
23483 (package
23484 (name "python-pybbi")
23485 (version "0.4.1")
23486 (source
23487 (origin
23488 (method url-fetch)
23489 (uri (pypi-uri "pybbi" version))
23490 (sha256
23491 (base32 "0p1s6y9f33wzmvxdhfg9b37sas2kghnmvkfnb317aiad1p6ks6ba"))))
23492 (build-system pyproject-build-system)
23493 (arguments
23494 (list
23495 #:test-flags
23496 #~(list "-k" (string-join
23497 ;; Network is required to run these tests.
23498 (list "not test_aws_403_redirect"
23499 "test_chromsizes"
23500 "test_fetch_remote"
23501 "test_fetch_remote_https"
23502 "test_sigs")
23503 " and not "))
23504 #:phases
23505 #~(modify-phases %standard-phases
23506 (add-after 'unpack 'set-cc
23507 (lambda _ (setenv "CC" #$(cc-for-target))))
23508 (add-before 'check 'remove-local-bbi
23509 (lambda _
23510 ;; This would otherwise interfere with finding the installed bbi
23511 ;; when running tests.
23512 (delete-file-recursively "bbi"))))))
23513 (native-inputs
23514 (list pkg-config
23515 python-cython
23516 python-pandas
23517 python-pkgconfig
23518 python-pytest
23519 python-setuptools))
23520 (inputs
23521 (list libpng
23522 openssl
23523 zlib))
23524 (propagated-inputs
23525 (list python-numpy))
23526 (home-page "https://github.com/nvictus/pybbi")
23527 (synopsis "Python bindings to UCSC Big Binary file library")
23528 (description
23529 "This package provides Python bindings to the UCSC Big
23530Binary (bigWig/bigBed) file library. This provides read-level access to local
23531and remote bigWig and bigBed files but no write capabilitites. The main
23532feature is fast retrieval of range queries into numpy arrays.")
23533 (license license:expat)))
23534
23535(define-public python-dna-features-viewer
23536 (package
23537 (name "python-dna-features-viewer")
23538 (version "3.1.1")
23539 (source
23540 (origin
23541 (method url-fetch)
23542 (uri (pypi-uri "dna_features_viewer" version))
23543 (sha256
23544 (base32
23545 "10a5pmh73spdgfml88zjqg1rn2j2zdxn06ir8a5q3arspyqvyqcb"))))
23546 (build-system pyproject-build-system)
23547 (arguments
23548 (list
23549 #:tests? #false ;there are none
23550 #:phases
23551 '(modify-phases %standard-phases
23552 ;; See https://github.com/Edinburgh-Genome-Foundry/DnaFeaturesViewer/issues/73
23553 ;; and https://github.com/Edinburgh-Genome-Foundry/DnaFeaturesViewer/pull/74
23554 (add-after 'unpack 'fix-biopython-compatibility
23555 (lambda _
23556 (substitute* "dna_features_viewer/biotools.py"
23557 (("zip\\(aa1 \\+ \"\\*\", aa3 \\+ \\[\"\\*\"\\]\\)")
23558 "zip(aa1 + ('*',), aa3 + ('*',))")))))))
23559 (propagated-inputs
23560 (list python-biopython
23561 python-matplotlib
23562 python-packaging))
23563 (native-inputs (list python-setuptools))
23564 (home-page
23565 "https://github.com/Edinburgh-Genome-Foundry/DnaFeaturesViewer")
23566 (synopsis "Plot features from DNA sequences")
23567 (description
23568 "DNA Features Viewer is a Python library to visualize DNA features,
23569e.g. from GenBank or Gff files, or Biopython SeqRecords.")
23570 (license license:expat)))
23571
23572(define-public python-coolbox
23573 (package
23574 (name "python-coolbox")
23575 ;; TODO: Newer versions depend on python-polars, see
23576 ;; <https://codeberg.org/guix/guix/pulls/2570>.
23577 (version "0.3.9")
23578 (source
23579 (origin
23580 (method git-fetch)
23581 (uri (git-reference
23582 (url "https://github.com/GangCaoLab/CoolBox")
23583 (commit version)))
23584 (file-name (git-file-name name version))
23585 (sha256
23586 (base32 "1a9h0xrg7issgprzm6awabfw73ddm2910rqcvcfg5v0cfn599aws"))))
23587 (build-system pyproject-build-system)
23588 (arguments
23589 (list
23590 ;; tests: 29 passed, 7 deselected, 17 warnings
23591 #:test-flags
23592 ;; XXX: Maybe there is a build problem with python-pypairix?
23593 ;; FileNotFoundError: [Errno 2] No such file or directory: 'pairix'
23594 #~(list "--deselect=tests/test_browser.py::test_browser"
23595 "--deselect=tests/test_coverage.py::test_arcs_coverage"
23596 "--deselect=tests/test_frame.py::test_frame"
23597 "--deselect=tests/test_track.py::test_bedpe"
23598 "--deselect=tests/test_track.py::test_pairs"
23599 "--deselect=tests/test_track.py::test_arcs")
23600 #:phases
23601 #~(modify-phases %standard-phases
23602 ;; FIXME: Some issue with checking the correct versions of Jupyter
23603 ;; dependencies.
23604 (delete 'sanity-check))))
23605 (native-inputs
23606 (list pybind11-2
23607 python-pytest
23608 python-pypairix
23609 python-setuptools
23610 samtools))
23611 (propagated-inputs
23612 (list jupyter
23613 python-cooler
23614 python-dna-features-viewer
23615 python-fire
23616 python-h5py
23617 python-intervaltree
23618 python-ipywidgets
23619 python-matplotlib
23620 python-nbformat
23621 python-numpy
23622 python-numpydoc
23623 python-pandas
23624 python-pybbi
23625 python-scipy
23626 python-statsmodels
23627 python-strawc
23628 python-svgutils
23629 python-voila))
23630 (home-page "https://github.com/GangCaoLab/CoolBox")
23631 (synopsis "Genomic data visualization toolkit")
23632 (description
23633 "CoolBox is a toolkit for visual analysis of genomics data. It aims to
23634be highly compatible with the Python ecosystem, easy to use and highly
23635customizable with a well-designed user interface. It can be used in various
23636visualization situations, for example, to produce high-quality genome track
23637plots or fetch common used genomic data files with a Python script or command
23638line, interactively explore genomic data within Jupyter environment or web
23639browser.")
23640 (license license:gpl3+)))
23641
23642(define-public python-pyspoa
23643 (package
23644 (name "python-pyspoa")
23645 (version "0.0.5")
23646 (source
23647 (origin
23648 (method git-fetch)
23649 (uri (git-reference
23650 (url "https://github.com/nanoporetech/pyspoa")
23651 (commit (string-append "v" version))
23652 (recursive? #t)))
23653 (file-name (git-file-name name version))
23654 (sha256
23655 (base32 "1lgf2shzhxkcsircd6vy46h27pjljd5q95fyz1cm3lkk702qbnzx"))))
23656 (build-system pyproject-build-system)
23657 (arguments
23658 (list
23659 #:test-backend #~'custom
23660 #:test-flags #~(list "tests/test_pyspoa.py")
23661 #:phases
23662 #~(modify-phases %standard-phases
23663 (add-before 'build 'build-libspoa
23664 (lambda _
23665 (mkdir-p "src/build")
23666 (with-directory-excursion "src/build"
23667 (invoke "cmake" "-Dspoa_optimize_for_portability=ON"
23668 "-DCMAKE_BUILD_TYPE=Release"
23669 "-DCMAKE_CXX_FLAGS=\"-I ../vendor/cereal/include/\" -fPIC"
23670 "..")
23671 (invoke "make")))))))
23672 (propagated-inputs (list pybind11-2))
23673 (native-inputs (list cmake-minimal python-setuptools))
23674 (home-page "https://github.com/nanoporetech/pyspoa")
23675 (synopsis "Python bindings for the SIMD partial order alignment library")
23676 (description
23677 "This package provides Python bindings for spoa, a C++ implementation of
23678the @dfn{partial order alignment} (POA) algorithm (as described in
2367910.1093/bioinformatics/18.3.452) which is used to generate consensus
23680sequences")
23681 (license license:expat)))
23682
23683(define-public python-bwapy
23684 (package
23685 (name "python-bwapy")
23686 (version "0.1.4")
23687 (source
23688 (origin
23689 (method url-fetch)
23690 (uri (pypi-uri "bwapy" version))
23691 (sha256
23692 (base32 "090qwx3vl729zn3a7sksbviyg04kc71gpbm3nd8dalqp673x1npw"))
23693 (modules '((guix build utils)))
23694 (snippet
23695 '(for-each delete-file (find-files "." "\\.o$")))))
23696 (build-system pyproject-build-system)
23697 (arguments
23698 (list #:tests? #f ;no tests
23699 #:phases
23700 #~(modify-phases %standard-phases
23701 ;; TODO: it's possible that the import error points to a real
23702 ;; problem with the C sources.
23703 (delete 'sanity-check))))
23704 (propagated-inputs
23705 (list python-cffi python-setuptools))
23706 (inputs
23707 (list zlib))
23708 (home-page "https://github.com/ACEnglish/bwapy")
23709 (synopsis "Python bindings to bwa aligner")
23710 (description "This package provides Python bindings to the bwa mem
23711aligner.")
23712 ;; These Python bindings are licensed under Mozilla Public License 2.0,
23713 ;; bwa itself is licenced under GNU General Public License v3.0.
23714 (license license:mpl2.0)))
23715
23716(define-public python-scvelo
23717 (package
23718 (name "python-scvelo")
23719 (version "0.3.3")
23720 (source
23721 (origin
23722 (method git-fetch)
23723 (uri (git-reference
23724 (url "https://github.com/theislab/scvelo")
23725 (commit (string-append "v" version))))
23726 (file-name (git-file-name name version))
23727 (sha256
23728 (base32 "0xsi0bdsk24mf7zifizshlc3arc6fn2blmvjzbl21k66hc2xd2z9"))))
23729 (build-system pyproject-build-system)
23730 (arguments
23731 (list
23732 ;; tests: 173 passed, 1707 warnings
23733 #:test-flags
23734 ;; Run only core tests as other fail a lot in: datasets, preprocessing
23735 ;; and tools.
23736 #~(list "tests/core")
23737 #:phases
23738 #~(modify-phases %standard-phases
23739 ;; Numba needs a writable dir to cache functions.
23740 (add-before 'build 'set-numba-cache-dir
23741 (lambda _
23742 (setenv "NUMBA_CACHE_DIR" "/tmp"))))))
23743 (native-inputs
23744 (list python-pytest
23745 python-setuptools
23746 python-setuptools-scm))
23747 (propagated-inputs
23748 (list python-anndata
23749 python-loompy
23750 python-matplotlib
23751 python-numba
23752 python-numpy
23753 python-pandas
23754 python-scanpy
23755 python-scikit-learn
23756 python-scipy
23757 python-umap-learn
23758 ;; [optional]
23759 pybind11-2
23760 python-hnswlib
23761 python-igraph
23762 python-louvain))
23763 (home-page "https://scvelo.org")
23764 (synopsis "RNA velocity generalized through dynamical modeling")
23765 (description "ScVelo is a scalable toolkit for RNA velocity analysis in
23766single cells. RNA velocity enables the recovery of directed dynamic
23767information by leveraging splicing kinetics. scVelo generalizes the concept of
23768RNA velocity by relaxing previously made assumptions with a stochastic and a
23769dynamical model that solves the full transcriptional dynamics. It thereby
23770adapts RNA velocity to widely varying specifications such as non-stationary
23771populations.")
23772 (license license:bsd-3)))
23773
23774(define-deprecated-package scvelo
23775 python-scvelo)
23776
23777(define-public megadepth
23778 (package
23779 (name "megadepth")
23780 (version "1.1.1")
23781 (source (origin
23782 (method git-fetch)
23783 (uri (git-reference
23784 (url "https://github.com/ChristopherWilks/megadepth")
23785 (commit version)))
23786 (file-name (git-file-name name version))
23787 (sha256
23788 (base32
23789 "0hj69d2dgmk2zwgazik7xzc04fxxlk93p888kpgc52fmhd95qph7"))))
23790 (build-system cmake-build-system)
23791 (arguments
23792 `(#:tests? #false ; some tests seem to require connection to
23793 ; www.ebi.ac.uk; this may be caused by htslib.
23794 #:phases
23795 (modify-phases %standard-phases
23796 (add-after 'unpack 'prepare-CMakeLists.txt
23797 (lambda _
23798 (rename-file "CMakeLists.txt.ci" "CMakeLists.txt")
23799 (substitute* "CMakeLists.txt"
23800 (("`cat ../VERSION`") ,version)
23801 (("target_link_libraries\\(megadepth_static") "#")
23802 (("target_link_libraries\\(megadepth_statlib") "#")
23803 (("add_executable\\(megadepth_static") "#")
23804 (("add_executable\\(megadepth_statlib") "#"))
23805
23806 (substitute* "tests/test.sh"
23807 ;; Disable remote test
23808 (("./megadepth http://stingray.cs.jhu.edu/data/temp/test.bam") "#")
23809 ;; Prior to installation the binary's name differs from what
23810 ;; the test script assumes.
23811 (("./megadepth") "../build/megadepth_dynamic"))))
23812 (replace 'check
23813 (lambda* (#:key tests? #:allow-other-keys)
23814 (when tests?
23815 (with-directory-excursion "../source"
23816 (invoke "bash" "tests/test.sh" "use-local-test-data")))))
23817 (replace 'install
23818 (lambda* (#:key outputs #:allow-other-keys)
23819 (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
23820 (mkdir-p bin)
23821 (copy-file "megadepth_dynamic"
23822 (string-append bin "/megadepth"))))))))
23823 (native-inputs
23824 (list diffutils perl grep))
23825 (inputs
23826 (list curl htslib libdeflate libbigwig zlib))
23827 (home-page "https://github.com/ChristopherWilks/megadepth")
23828 (synopsis "BigWig and BAM/CRAM related utilities")
23829 (description "Megadepth is an efficient tool for extracting coverage
23830related information from RNA and DNA-seq BAM and BigWig files. It supports
23831reading whole-genome coverage from BAM files and writing either indexed TSV or
23832BigWig files, as well as efficient region coverage summary over intervals from
23833both types of files.")
23834 (license license:expat)))
23835
23836(define-public megahit
23837 (package
23838 (name "megahit")
23839 (version "1.2.9")
23840 (source (origin
23841 (method git-fetch)
23842 (uri (git-reference
23843 (url "https://github.com/voutcn/megahit.git")
23844 (commit (string-append "v" version))))
23845 (file-name (git-file-name name version))
23846 (sha256
23847 (base32
23848 "1r5d9nkdmgjsbrpj43q9hy3s8jwsabaz3ji561v18hy47v58923c"))))
23849 (build-system cmake-build-system)
23850 (arguments
23851 (list
23852 #:modules '((guix build cmake-build-system)
23853 ((guix build gnu-build-system) #:prefix gnu:)
23854 (guix build utils))
23855 #:phases
23856 #~(modify-phases %standard-phases
23857 (add-after 'unpack 'fix-headers
23858 (lambda _
23859 (substitute* "src/localasm/local_assemble.h"
23860 (("#include <string>") "#include <string>\n#include <cstdint>"))))
23861 (add-after 'unpack 'fix-tests
23862 (lambda _
23863 (substitute* "src/megahit"
23864 (("os.path.join\\(script_path, '..'\\)")
23865 "os.path.join(script_path, '../source')"))))
23866 (replace 'check
23867 (lambda* (#:rest args)
23868 (apply (assoc-ref gnu:%standard-phases 'check)
23869 #:test-target "simple_test" args))))))
23870 (inputs (list python-wrapper zlib))
23871 (home-page "https://www.ncbi.nlm.nih.gov/pubmed/25609793")
23872 (synopsis "Meta-genome assembler")
23873 (description "Megahit is a fast and memory-efficient NGS assembler. It is
23874optimized for metagenomes, but also works well on generic single genome
23875assembly (small or mammalian size) and single-cell assembly.")
23876 (license license:gpl3)))
23877
23878(define-public mudskipper
23879 (let ((commit "effd3fac03bc09d313e84fa680f18fdc6f3a16a0")
23880 (revision "1"))
23881 (package
23882 (name "mudskipper")
23883 (version (git-version "0.1.0" revision commit))
23884 (source (origin
23885 (method git-fetch)
23886 (uri (git-reference
23887 (url "https://github.com/OceanGenomics/mudskipper")
23888 (commit commit)))
23889 (file-name (git-file-name name version))
23890 (sha256
23891 (base32
23892 "17jm39sbrwgjlynxsn4g7lvq5hx6rwyjg86p10v4mc74fmdn5xd5"))))
23893 (build-system cargo-build-system)
23894 (arguments
23895 (list #:install-source? #f
23896 #:phases
23897 #~(modify-phases %standard-phases
23898 (add-after 'unpack 'skip-doctesting-code-blocks
23899 ;; See also https://github.com/rust-lang/rust/issues/63193.
23900 (lambda _
23901 (substitute* "src/query_bam_records.rs"
23902 (((string-append
23903 "(pub )?fn ("
23904 (string-join
23905 '("get_next_query_records"
23906 "get_next_query_records_skip"
23907 "get_primary_record_of_sa_tag"
23908 "get_records_from_sa_tag"
23909 "group_records"
23910 "group_records_skip"
23911 "new")
23912 "|")
23913 ")")
23914 all)
23915 (string-append "#[cfg(not(doctest))]\n" all))))))))
23916 (native-inputs
23917 (list pkg-config))
23918 (inputs
23919 (cons* zlib (cargo-inputs 'mudskipper)))
23920 (home-page "https://github.com/OceanGenomics/mudskipper")
23921 (synopsis "Convert genomic alignments to transcriptomic BAM/RAD files")
23922 (description "Mudskipper is a tool for projecting genomic alignments to
23923transcriptomic coordinates.")
23924 (license license:bsd-3))))
23925
23926(define-public r-ascat
23927 (package
23928 (name "r-ascat")
23929 (version "2.5.2")
23930 (source (origin
23931 (method git-fetch)
23932 (uri (git-reference
23933 (url "https://github.com/Crick-CancerGenomics/ascat.git")
23934 (commit (string-append "v" version))))
23935 (file-name (git-file-name name version))
23936 (sha256
23937 (base32
23938 "0cc0y3as6cb64iwnx0pgbajiig7m4z723mns9d5i4j09ccid3ccm"))))
23939 (build-system r-build-system)
23940 (arguments
23941 `(#:phases
23942 (modify-phases %standard-phases
23943 (add-after 'unpack 'move-to-ascat-dir
23944 (lambda _
23945 (chdir "ASCAT"))))))
23946 (propagated-inputs
23947 (list r-rcolorbrewer))
23948 (home-page "https://github.com/VanLoo-lab/ascat/")
23949 (synopsis "Allele-Specific Copy Number Analysis of Tumors in R")
23950 (description "This package provides the @acronym{ASCAT,Allele-Specific Copy
23951Number Analysis of Tumors} R package that can be used to infer tumour purity,
23952ploidy and allele-specific copy number profiles.")
23953 (license license:gpl3)))
23954
23955(define-public r-battenberg
23956 (package
23957 (name "r-battenberg")
23958 (version "2.2.9")
23959 (source (origin
23960 (method git-fetch)
23961 (uri (git-reference
23962 (url "https://github.com/Wedge-lab/battenberg.git")
23963 (commit (string-append "v" version))))
23964 (file-name (git-file-name name version))
23965 (sha256
23966 (base32
23967 "0nmcq4c7y5g8h8lxsq9vadz9bj4qgqn118alip520ny6czaxki4h"))))
23968 (build-system r-build-system)
23969 (propagated-inputs
23970 (list r-devtools
23971 r-readr
23972 r-doparallel
23973 r-ggplot2
23974 r-rcolorbrewer
23975 r-gridextra
23976 r-gtools
23977 r-ascat))
23978 (home-page "https://github.com/Wedge-lab/battenberg")
23979 (synopsis "Subclonal copy number estimation in R")
23980 (description "This package contains the Battenberg R package for subclonal
23981copy number estimation, as described by
23982@url{doi:10.1016/j.cell.2012.04.023,Nik-Zainal et al.}")
23983 (license license:gpl3)))
23984
23985(define-public r-bayesprism
23986 (package
23987 (name "r-bayesprism")
23988 (version "2.2.2")
23989 (source
23990 (origin
23991 (method git-fetch)
23992 (uri (git-reference
23993 (url "https://github.com/Danko-Lab/BayesPrism")
23994 ;; The version string in the DESCRIPTION file was changed to
23995 ;; 2.2.2 in this commit.
23996 (commit "5d43190d5fdfc900571ae1b05b9dcad9ee6b8b2b")))
23997 (file-name (git-file-name name version))
23998 (sha256
23999 (base32 "0rlq6nv1adc9w1ync8834kv59ksixxzbpf3xlbxi5s8x54gv4q9y"))))
24000 (properties `((upstream-name . "BayesPrism")))
24001 (build-system r-build-system)
24002 (arguments
24003 (list
24004 #:phases
24005 '(modify-phases %standard-phases
24006 (add-after 'unpack 'chdir
24007 (lambda _ (chdir "BayesPrism"))))))
24008 (propagated-inputs (list r-biocparallel
24009 r-gplots
24010 r-matrix
24011 r-nmf
24012 r-scran
24013 r-snowfall
24014 r-r-utils))
24015 (native-inputs (list r-knitr))
24016 (home-page "https://github.com/Danko-Lab/BayesPrism")
24017 (synopsis "Bayesian cell type and gene expression deconvolution")
24018 (description
24019 "BayesPrism includes deconvolution and embedding learning modules.
24020The deconvolution module models a prior from cell type-specific expression
24021profiles from scRNA-seq to jointly estimate the posterior distribution of cell
24022type composition and cell type-specific gene expression from bulk RNA-seq
24023expression of tumor samples. The embedding learning module uses
24024@dfn{Expectation-maximization} (EM) to approximate the tumor expression using
24025a linear combination of malignant gene programs while conditional on the
24026inferred expression and fraction of non-malignant cells estimated by the
24027deconvolution module.")
24028 (license license:gpl3)))
24029
24030(define-public r-catch
24031 (let ((commit "196ddd5a51b1a5f5daa01de53fdaad9b7505e084")
24032 (revision "1"))
24033 (package
24034 (name "r-catch")
24035 (version (git-version "1.0" revision commit))
24036 (source (origin
24037 (method git-fetch)
24038 (uri (git-reference
24039 (url "https://github.com/zhanyinx/CaTCH")
24040 (commit commit)))
24041 (file-name (git-file-name name version))
24042 (sha256
24043 (base32
24044 "11c7f1fc8f57wnwk1hrgr5y814m80zj8gkz5021vxyxy2v02cqgd"))))
24045 (build-system r-build-system)
24046 (arguments
24047 `(#:phases
24048 (modify-phases %standard-phases
24049 (add-after 'unpack 'chdir
24050 (lambda _ (chdir "CaTCH"))))))
24051 (home-page "https://github.com/zhanyinx/CaTCH_R")
24052 (synopsis "Call a hierarchy of domains based on Hi-C data")
24053 (description "This package allows building the hierarchy of domains
24054starting from Hi-C data. Each hierarchical level is identified by a minimum
24055value of physical insulation between neighboring domains.")
24056 (license license:gpl2+))))
24057
24058(define-public r-spacexr
24059 (let ((commit "0a0861e3d1e16014a20e9b743d0e19d3b42231f3")
24060 (revision "1"))
24061 (package
24062 (name "r-spacexr")
24063 (version (git-version "2.2.1" revision commit))
24064 (source
24065 (origin
24066 (method git-fetch)
24067 (uri (git-reference
24068 (url "https://github.com/dmcable/spacexr")
24069 (commit commit)))
24070 (file-name (git-file-name name version))
24071 (sha256
24072 (base32 "0hqrllzq2hi6dsr8nykn1yp7s3rcbjrv3m624b61n4nxnzza458a"))))
24073 (properties `((upstream-name . "spacexr")))
24074 (build-system r-build-system)
24075 (propagated-inputs (list r-compquadform
24076 r-data-table
24077 r-doparallel
24078 r-dplyr
24079 r-fields
24080 r-foreach
24081 r-ggplot2
24082 r-knitr
24083 r-locfdr
24084 r-matrix
24085 r-metafor
24086 r-mgcv
24087 r-pals
24088 r-quadprog
24089 r-readr
24090 r-reshape2
24091 r-rfast
24092 r-rmarkdown
24093 r-tibble))
24094 (native-inputs (list r-knitr))
24095 (home-page "https://github.com/dmcable/spacexr")
24096 (synopsis
24097 "Cell type identification and differential expression in spatial transcriptomics")
24098 (description
24099 "This package is used for cell type identification in spatial transcriptomics.
24100It also handles cell type-specific differential expression.")
24101 (license license:gpl3))))
24102
24103(define-public r-spectre
24104 (package
24105 (name "r-spectre")
24106 (version "1.3.0")
24107 (source
24108 (origin
24109 (method git-fetch)
24110 (uri (git-reference
24111 (url "https://github.com/ImmuneDynamics/Spectre")
24112 (commit (string-append "v" version))))
24113 (file-name (git-file-name name version))
24114 (sha256
24115 (base32
24116 "15g9w08x0pz2ia9qfalhcg3z5z2zx2085mfbr8gx9w5yxnw475ld"))))
24117 (properties `((upstream-name . "Spectre")))
24118 (build-system r-build-system)
24119 (propagated-inputs
24120 (list r-biobase
24121 r-biocmanager
24122 r-caret
24123 r-class
24124 r-colorramps
24125 r-data-table
24126 r-dendsort
24127 r-devtools
24128 r-dplyr
24129 r-exactextractr
24130 r-factoextra
24131 r-flowcore
24132 r-flowsom
24133 r-flowviz
24134 r-fnn
24135 r-ggplot2
24136 r-ggpointdensity
24137 r-ggpubr
24138 r-ggraph
24139 r-ggthemes
24140 r-gridextra
24141 r-gridextra
24142 r-gtools
24143 r-hdf5array
24144 r-irlba
24145 r-patchwork
24146 r-pheatmap
24147 r-plyr
24148 r-qs2
24149 r-raster
24150 r-rcolorbrewer
24151 r-rhdf5
24152 r-rstudioapi
24153 r-rsvd
24154 r-rtsne
24155 r-s2
24156 r-scales
24157 r-scattermore
24158 r-sf
24159 r-sp
24160 r-stars
24161 r-stringr
24162 r-tidygraph
24163 r-tidyr
24164 r-tidyr
24165 r-tiff
24166 r-umap
24167 r-uwot))
24168 (home-page "https://github.com/ImmuneDynamics/Spectre")
24169 (synopsis "High-dimensional cytometry and imaging analysis")
24170 (description
24171 "This package provides a computational toolkit in R for the
24172integration, exploration, and analysis of high-dimensional single-cell
24173cytometry and imaging data.")
24174 (license license:expat)))
24175
24176(define-public r-compgenomrdata
24177 (let ((commit "24484cb77631e1123ead6c329b9d62c160e600c6")
24178 (revision "1"))
24179 (package
24180 (name "r-compgenomrdata")
24181 (version (git-version "0.1.0" revision commit))
24182 (source (origin
24183 (method git-fetch)
24184 (uri (git-reference
24185 (url "https://github.com/compgenomr/compGenomRData")
24186 (commit commit)))
24187 (file-name (git-file-name name version))
24188 (sha256
24189 (base32
24190 "06gdvz4m4qlb1ylv10qfx09zv4c95cm7nps4y2s67m946kv8czv8"))))
24191 (properties `((upstream-name . "compGenomRData")))
24192 (build-system r-build-system)
24193 (home-page "https://github.com/compgenomr/compGenomRData")
24194 (synopsis "Data for Computational Genomics with R book")
24195 (description "This package provides data for the book \"Computational
24196Genomics with R\".")
24197 (license license:gpl3))))
24198
24199(define-public r-cytonorm
24200 (let ((commit "166f9ff3d692278241018c2846cb4f86ab16065b")
24201 (revision "1"))
24202 (package
24203 (name "r-cytonorm")
24204 (version (git-version "0.0.10" revision commit))
24205 (source (origin
24206 (method git-fetch)
24207 (uri (git-reference
24208 (url "https://github.com/saeyslab/CytoNorm")
24209 (commit commit)))
24210 (file-name (git-file-name name version))
24211 (sha256
24212 (base32
24213 "0vbqy3b26j1zqmwgqx59kkn9pm2m0qwlcppskvahrxcwrj6m1s5y"))))
24214 (properties `((upstream-name . "CytoNorm")))
24215 (build-system r-build-system)
24216 (propagated-inputs
24217 (list r-cytoml
24218 r-dplyr
24219 r-emdist
24220 r-flowcore
24221 r-flowsom
24222 r-flowworkspace
24223 r-ggplot2
24224 r-gridextra
24225 r-pheatmap
24226 r-stringr))
24227 (home-page "https://github.com/saeyslab/CytoNorm")
24228 (synopsis "Normalize cytometry data measured across multiple batches")
24229 (description
24230 "This package can be used to normalize cytometry samples when a control
24231sample is taken along in each of the batches. This is done by first
24232identifying multiple clusters/cell types, learning the batch effects from the
24233control samples and applying quantile normalization on all markers of
24234interest.")
24235 (license license:gpl2+))))
24236
24237(define-public r-kbet
24238 (let ((commit "f35171dfb04c7951b8a09ac778faf7424c4b6bc0")
24239 (revision "1"))
24240 (package
24241 (name "r-kbet")
24242 (version (git-version "0.99.6" revision commit))
24243 (source (origin
24244 (method git-fetch)
24245 (uri (git-reference
24246 (url "https://github.com/theislab/kBET")
24247 (commit commit)))
24248 (file-name (git-file-name name version))
24249 (sha256
24250 (base32
24251 "1r91prl2kki3zk694vhlmxdlqh0ixlhs8jfcqw6wc7cdsa0nv67k"))))
24252 (properties `((upstream-name . "kBET")))
24253 (build-system r-build-system)
24254 (propagated-inputs (list r-cluster r-fnn r-ggplot2 r-mass r-rcolorbrewer))
24255 (native-inputs (list r-knitr))
24256 (home-page "https://github.com/theislab/kBET")
24257 (synopsis "k-nearest neighbour batch effect test")
24258 (description
24259 "This tool detects batch effects in high-dimensional data based on chi^2-test.")
24260 ;; Any version of the GPL
24261 (license license:gpl3+))))
24262
24263(define-public python-vireosnp
24264 (let ((commit "e3654633f7663732572c03c5dcf9fb00ec43b653")
24265 (revision "0"))
24266 (package
24267 (name "python-vireosnp")
24268 (version (git-version "0.5.9" revision commit))
24269 (source
24270 (origin
24271 (method git-fetch)
24272 (uri (git-reference
24273 (url "https://github.com/huangyh09/vireoSNP")
24274 (commit commit)))
24275 (file-name (git-file-name name version))
24276 (sha256
24277 (base32 "1wd4llm54fvc1pc4nqfdc43g637gfx1f4z4aznvdr3biy9jksqza"))))
24278 (build-system pyproject-build-system)
24279 (arguments
24280 (list
24281 #:phases
24282 #~(modify-phases %standard-phases
24283 (replace 'check
24284 (lambda* (#:key tests? #:allow-other-keys)
24285 (if tests?
24286 (with-directory-excursion "examples"
24287 (invoke "bash" "demo.sh"))
24288 (format #f "test suite not run.~%")))))))
24289 (propagated-inputs (list python-matplotlib python-numpy python-scipy))
24290 (native-inputs (list python-setuptools))
24291 (home-page "https://github.com/huangyh09/vireoSNP")
24292 (synopsis "Deconvolution based on SNP for multiplexed scRNA-seq data")
24293 (description
24294 "This package provides a deconvolution based on Single Nucleotide
24295Position (SNP) for multiplexed scRNA-seq data. The name vireo stand for
24296Variational Inference for Reconstructing Ensemble Origin by expressed SNPs in
24297multiplexed scRNA-seq data and follows the clone identification from
24298single-cell data named @url{https://github.com/PMBio/cardelino, cardelino}.")
24299 (license license:asl2.0))))
24300
24301(define-public ccwl
24302 (package
24303 (name "ccwl")
24304 (version "0.5.0")
24305 (source
24306 (origin
24307 (method url-fetch)
24308 (uri (string-append "https://ccwl.systemreboot.net/releases/ccwl-"
24309 version ".tar.lz"))
24310 (sha256
24311 (base32
24312 "1pna61cqhhg69qpa682x911x85nlin1wpp29naqzq3r0s951qxi6"))))
24313 (build-system gnu-build-system)
24314 (arguments
24315 `(#:make-flags '("GUILE_AUTO_COMPILE=0") ; to prevent guild warnings
24316 #:modules (((guix build guile-build-system)
24317 #:select (target-guile-effective-version))
24318 ,@%default-gnu-modules)
24319 #:imported-modules ((guix build guile-build-system)
24320 ,@%default-gnu-imported-modules)
24321 #:phases
24322 (modify-phases %standard-phases
24323 (add-after 'patch-source-shebangs 'patch-more-source-shebangs
24324 (lambda* (#:key inputs #:allow-other-keys)
24325 (substitute* "scripts/ccwl"
24326 (("^exec guile")
24327 (string-append "exec "
24328 (search-input-file inputs "/bin/guile"))))))
24329 (add-after 'install 'wrap
24330 (lambda* (#:key inputs outputs #:allow-other-keys)
24331 (let ((out (assoc-ref outputs "out"))
24332 (effective-version (target-guile-effective-version)))
24333 (wrap-program (string-append out "/bin/ccwl")
24334 `("GUILE_LOAD_PATH" prefix
24335 (,(string-append out "/share/guile/site/" effective-version)
24336 ,(getenv "GUILE_LOAD_PATH")))
24337 `("GUILE_LOAD_COMPILED_PATH" prefix
24338 (,(string-append out "/lib/guile/" effective-version "/site-ccache")
24339 ,(getenv "GUILE_LOAD_COMPILED_PATH"))))))))))
24340 (inputs
24341 (list bash-minimal
24342 guile-3.0
24343 guile-libyaml))
24344 (native-inputs
24345 (list pkg-config
24346 lzip
24347 guile-run64
24348 ;; To build documentation
24349 cwltool
24350 graphviz
24351 skribilo))
24352 (home-page "https://ccwl.systemreboot.net")
24353 (synopsis "Concise common workflow language")
24354 (description "The @acronym{ccwl, Concise Common Workflow Language} is a
24355concise syntax to express CWL workflows. ccwl is a compiler to generate CWL
24356workflows from concise descriptions in ccwl. It is implemented as an
24357@acronym{EDSL, Embedded Domain Specific Language} in the Scheme programming
24358language.")
24359 (license license:gpl3+)))
24360
24361(define-public hh-suite
24362 (package
24363 (name "hh-suite")
24364 (version "3.3.0")
24365 (source
24366 (origin
24367 (method git-fetch)
24368 (uri (git-reference
24369 (url "https://github.com/soedinglab/hh-suite")
24370 (commit (string-append "v" version))))
24371 (file-name (git-file-name name version))
24372 (sha256
24373 (base32
24374 "1bcmzg0ii6nkda2xm5jdddbwkgsag7k38j20af0c9chr2mbxwx4d"))
24375 (modules '((guix build utils)))
24376 (snippet
24377 '(delete-file-recursively "lib/simde"))))
24378 (build-system cmake-build-system)
24379 (arguments
24380 (list
24381 #:tests? #false ;no test target
24382 #:phases
24383 #~(modify-phases %standard-phases
24384 (add-after 'unpack 'fix-gcc-14
24385 (lambda _
24386 (substitute* "src/a3m_compress.h"
24387 (("#include <climits>")
24388 "#include <climits>
24389#include <cstdint>")))))))
24390 (inputs
24391 (list openmpi simde))
24392 (native-inputs
24393 (list perl pkg-config xxd))
24394 (home-page "https://bmcbioinformatics.biomedcentral.com/articles/10.1186/s12859-019-3019-7")
24395 (synopsis "Remote protein homology detection suite")
24396 (description "The HH-suite is a software package for sensitive protein sequence searching
24397based on the pairwise alignment of hidden Markov models (HMMs).")
24398 (license license:gpl3+)))
24399
24400(define-public wfmash
24401 (package
24402 (name "wfmash")
24403 (version "0.21.0")
24404 (source
24405 (origin
24406 (method url-fetch)
24407 (uri (string-append "https://github.com/waveygang/wfmash/releases/download/v"
24408 version "/wfmash-v" version ".tar.gz"))
24409 (sha256
24410 (base32
24411 "0v9giqrqxl9kkcrs6zrfj1y07j6p9r8d82kkwigvndlg1708457w"))
24412 (snippet
24413 #~(begin
24414 (use-modules (guix build utils))
24415 ;; Unbundle atomic-queue.
24416 (delete-file-recursively "src/common/atomic_queue")
24417 (substitute* "src/align/include/computeAlignments.hpp"
24418 (("\"common/atomic_queue/atomic_queue.h\"")
24419 "<atomic_queue/atomic_queue.h>"))
24420 ;; Remove compiler optimizations.
24421 (substitute* (find-files "." "CMakeLists\\.txt")
24422 (("-march=native ") ""))))))
24423 (build-system cmake-build-system)
24424 (arguments
24425 (list
24426 ;; Tests time out on riscv64-linux.
24427 #:tests? (and (not (%current-target-system))
24428 (not (target-riscv64?)))
24429 #:configure-flags
24430 #~(list "-DWFA_PNG_AND_TSV=ON")
24431 #:phases
24432 #~(modify-phases %standard-phases
24433 (add-after 'unpack 'fix-cmakelists
24434 (lambda _
24435 (substitute* "CMakeLists.txt"
24436 ;; Remove broken configure of CTestCustom.cmake.
24437 (("^configure_file[^\n]*") "")
24438 ;; Do not hard-code wfmash executable.
24439 (("\\./build/bin/wfmash") "wfmash"))))
24440 (add-before 'check 'build-check-prerequisites
24441 (lambda _
24442 (let ((wfa2-lib #$(string-append "../wfmash-v"
24443 version
24444 "/src/common/wflign/deps/WFA2-lib")))
24445 (substitute* (string-append wfa2-lib "/Makefile")
24446 ;; Remove architecture-specific flags.
24447 (("-march=x86-64-v3") ""))
24448 (substitute* (string-append wfa2-lib "/tests/wfa.utest.sh")
24449 ;; Fix time command.
24450 (("\\\\time -v") "time"))
24451 ;; Build wfa2-lib.
24452 (invoke "make" "-C" wfa2-lib
24453 #$(string-append "CC=" (cc-for-target))))))
24454 (add-after 'install 'install-scripts
24455 (lambda _
24456 (copy-file (string-append "../wfmash-v" #$version
24457 "/scripts/split_approx_mappings_in_chunks.py")
24458 (string-append #$output "/bin/split_approx_mappings_in_chunks")))))))
24459 (inputs
24460 (list atomic-queue
24461 gsl
24462 htslib
24463 python-wrapper
24464 libdeflate
24465 zlib))
24466 (native-inputs
24467 (list pkg-config
24468 samtools))
24469 (synopsis "Base-accurate DNA sequence aligner")
24470 (description "@code{wfmash} is a DNA sequence read mapper based on mash
24471distances and the wavefront alignment algorithm. It is a fork of MashMap that
24472implements base-level alignment via the wflign tiled wavefront global
24473alignment algorithm. It completes MashMap with a high-performance alignment
24474module capable of computing base-level alignments for very large sequences.")
24475 (home-page "https://github.com/waveygang/wfmash")
24476 (license license:expat)))
24477
24478(define-public gdcm
24479 (package
24480 (name "gdcm")
24481 (version "3.2.2")
24482 (source (origin
24483 (method git-fetch)
24484 (uri (git-reference
24485 (url "https://github.com/malaterre/gdcm")
24486 (commit (string-append "v" version))
24487 (recursive? #t)))
24488 (file-name (git-file-name name version))
24489 (sha256
24490 (base32
24491 "1d9dm1wawgjy6vgw3shqchqpjcic6hprwhn0v7dw1qkgn3y8508w"))))
24492 (build-system cmake-build-system)
24493 (outputs '("out" "doc"))
24494 (arguments
24495 (list
24496 #:test-exclude (string-join (list "TestSCUValidation"
24497 "TestWriter"
24498 "TestAnonymizer4"
24499 "TestPrinter1"
24500 "TestEcho"
24501 ;; The scanner tests depend on TestWriter output.
24502 "TestStrictScanner1"
24503 "TestStrictScanner2_1"
24504 "TestStrictScanner2"
24505 "TestStrictScanner2_2"
24506 "TestFind"
24507 ;; Fail with 'Unsupported JPEG data precision 12'.
24508 "TestImageReaderRandomEmpty"
24509 "TestTransferSyntax"
24510 ;; Relies on non-existent file.
24511 "TestJSON1")
24512 "|")
24513 #:configure-flags
24514 #~(list "-DGDCM_BUILD_DOCBOOK_MANPAGES=ON"
24515 "-DGDCM_BUILD_TESTING=true"
24516 "-DGDCM_DOCUMENTATION:BOOL=ON"
24517 (string-append "-DGDCM_INSTALL_DOC_DIR="
24518 #$output:doc "/share/doc/" #$name)
24519 "-DGDCM_PDF_DOCUMENTATION:BOOL=OFF"
24520 "-DGDCM_USE_SYSTEM_CHARLS=ON"
24521 "-DGDCM_USE_SYSTEM_EXPAT=ON"
24522 "-DGDCM_USE_SYSTEM_JSON=ON"
24523 "-DGDCM_USE_SYSTEM_OPENSSL=ON"
24524 "-DGDCM_USE_SYSTEM_UUID=ON"
24525 "-DGDCM_USE_SYSTEM_ZLIB=ON")
24526 #:phases
24527 #~(modify-phases %standard-phases
24528 (add-after 'unpack 'refer-to-charls
24529 (lambda _
24530 ;; Resolve the absolute path to libcharls.so instead of exporting
24531 ;; a bare '-lcharls' reference in GDCM targets.
24532 (substitute* "CMakeLists.txt"
24533 (("set\\(GDCM_CHARLS_LIBRARIES charls\\)")
24534 (string-append
24535 "find_library(CHARLS_LIBRARY NAMES charls REQUIRED)\n"
24536 " set(GDCM_CHARLS_LIBRARIES ${CHARLS_LIBRARY})")))))
24537 (add-before 'build 'set-HOME
24538 ;; The build with documentation spams ‘Fontconfig error: No writable
24539 ;; cache directories’ in a seemingly endless loop otherwise.
24540 (lambda _
24541 (setenv "HOME" "/tmp"))))))
24542 (native-inputs (list docbook-xsl doxygen graphviz libxslt))
24543 (inputs (list charls
24544 expat
24545 json-c
24546 openssl
24547 (list util-linux "lib")
24548 zlib))
24549 (home-page "https://sourceforge.net/projects/gdcm/")
24550 (synopsis "Grassroots DICOM library")
24551 (description
24552 "Grassroots DICOM (GDCM) is an implementation of the DICOM standard
24553designed to be open source so that researchers may access clinical data
24554directly. GDCM includes a file format definition and a network communications
24555protocol, both of which should be extended to provide a full set of tools for
24556a researcher or small medical imaging vendor to interface with an existing
24557medical database.")
24558 (license license:bsd-3)))
24559
24560(define-public wiggletools
24561 (package
24562 (name "wiggletools")
24563 (version "1.2.11")
24564 (source
24565 (origin
24566 (method git-fetch)
24567 (uri (git-reference
24568 (url "https://github.com/Ensembl/WiggleTools/")
24569 (commit (string-append "v" version))))
24570 (file-name (git-file-name name version))
24571 (sha256
24572 (base32
24573 "1g3qla4l1g583nzlgyww5jqxpq87ndpn9cmjls098bgqjyn5292q"))))
24574 (build-system gnu-build-system)
24575 (arguments
24576 (list
24577 ;; Tests require internet access
24578 #:tests? #false
24579 #:make-flags
24580 #~(list "Wiggletools"
24581 (string-append "CC=" #$(cc-for-target)))
24582 #:phases
24583 #~(modify-phases %standard-phases
24584 (delete 'configure)
24585 (replace 'install
24586 (lambda _
24587 (install-file "bin/wiggletools"
24588 (string-append #$output "/bin")))))))
24589 (inputs
24590 (list curl ; XXX: needed by libbigwig
24591 htslib libbigwig gsl xz zlib))
24592 (home-page "https://github.com/Ensembl/WiggleTools/")
24593 (synopsis "Operations on the space of numerical functions defined on the genome")
24594 (description "The WiggleTools package allows genomewide data files to be
24595manipulated as numerical functions, equipped with all the standard functional
24596analysis operators (sum, product, product by a scalar, comparators), and
24597derived statistics (mean, median, variance, stddev, t-test, Wilcoxon's rank
24598sum test, etc).")
24599 (license license:asl2.0)))
24600
24601(define-public flair
24602 (package
24603 (name "flair")
24604 (version "1.6.4")
24605 (source
24606 (origin
24607 (method git-fetch)
24608 (uri (git-reference
24609 (url "https://github.com/BrooksLabUCSC/flair")
24610 (commit (string-append "v" version))))
24611 (file-name (git-file-name name version))
24612 (sha256
24613 (base32 "0jviacx6qx5rwgi3wvl7a8a8ml19r6cpngddivlk13f6g9072din"))))
24614 (build-system pyproject-build-system)
24615 (arguments
24616 (list
24617 #:tests? #false ;there are none
24618 #:phases
24619 #~(modify-phases %standard-phases
24620 (add-after 'install 'wrap-executable
24621 (lambda _
24622 (for-each
24623 (lambda (script)
24624 (wrap-program script
24625 `("R_HOME" ":" = (,(string-append #$r-minimal "/lib/R")))
24626 `("R_LIBS_SITE" ":" = (,(getenv "R_LIBS_SITE")))))
24627 (find-files (string-append #$output "/bin"))))))))
24628 (propagated-inputs
24629 (list python-mappy
24630 python-numpy
24631 python-ncls
24632 python-pybedtools
24633 python-pysam
24634 python-rpy2
24635 python-scipy
24636 python-tqdm))
24637 ;; Used by rpy2
24638 (inputs
24639 (list bash-minimal
24640 r-minimal ;for R_LIBS_SITE
24641 r-apeglm ;for runDE
24642 r-deseq2 ;for runDE
24643 r-drimseq ;for runDS
24644 r-ggplot2 ;runDS, runDU
24645 r-lazyeval ;for rpy2
24646 r-qqman ;for runDE
24647 r-rlang)) ;for rpy2
24648 (native-inputs
24649 (list python-pypa-build python-setuptools))
24650 (home-page "https://flair.readthedocs.io/en/latest/")
24651 (synopsis "Full-length alternative isoform analysis of RNA")
24652 (description "This package implements FLAIR (Full-Length Alternative
24653Isoform analysis of RNA) for the correction, isoform definition, and
24654alternative splicing analysis of noisy reads. FLAIR has primarily been used
24655for nanopore cDNA, native RNA, and PacBio sequencing reads.")
24656 (license license:bsd-3)))
24657
24658(define-public go-github-com-biogo-graph
24659 (package
24660 (name "go-github-com-biogo-graph")
24661 (version "0.0.0-20150317020928-057c1989faed")
24662 (source (origin
24663 (method git-fetch)
24664 (uri (git-reference
24665 (url "https://github.com/biogo/graph")
24666 (commit (go-version->git-ref version))))
24667 (file-name (git-file-name name version))
24668 (sha256
24669 (base32
24670 "1kpzs5dfd5dsk4mg1g2qjz1prqd84ixhrcxxnf90hq25vxcnk7lh"))))
24671 (build-system go-build-system)
24672 (arguments
24673 '(#:import-path "github.com/biogo/graph"
24674 #:tests? #false)) ;TODO: one of 13 tests fails for unknown reasons
24675 (propagated-inputs
24676 (list go-gopkg-in-check-v1))
24677 (home-page "https://github.com/biogo/graph")
24678 (synopsis "Undirected graph analysis for biogo")
24679 (description "The package @code{graph} implements graph manipulation
24680functions.")
24681 (license license:bsd-3)))
24682
24683(define-public go-github-com-biogo-store
24684 (package
24685 (name "go-github-com-biogo-store")
24686 (version "0.0.0-20201120204734-aad293a2328f")
24687 (source (origin
24688 (method git-fetch)
24689 (uri (git-reference
24690 (url "https://github.com/biogo/store")
24691 (commit (go-version->git-ref version))))
24692 (file-name (git-file-name name version))
24693 (sha256
24694 (base32
24695 "0skizrp1j6vgbl0g1kmh73picagqlvwckaqs0gkl6rai5lckxj8a"))))
24696 (build-system go-build-system)
24697 (arguments
24698 (list
24699 #:skip-build? #t
24700 #:import-path "github.com/biogo/store"
24701 #:test-flags #~(list "-vet=off")))
24702 (propagated-inputs
24703 (list go-gopkg-in-check-v1
24704 go-github-com-kr-pretty))
24705 (home-page "https://github.com/biogo/store")
24706 (synopsis "Interval store type for biogo")
24707 (description
24708 "The @code{store} package provides a number of data store types that are
24709useful for bioinformatic analysis.")
24710 (license license:bsd-3)))
24711
24712(define-public go-github-com-biogo-hts
24713 (package
24714 (name "go-github-com-biogo-hts")
24715 (version "1.4.4")
24716 (source (origin
24717 (method git-fetch)
24718 (uri (git-reference
24719 (url "https://github.com/biogo/hts")
24720 (commit (string-append "v" version))))
24721 (file-name (git-file-name name version))
24722 (sha256
24723 (base32
24724 "1vkcqxyajghx5p5j7g2i376nbsxh8q2smk0smlv8mi34yr7hlw5b"))))
24725 (build-system go-build-system)
24726 (arguments
24727 (list
24728 #:skip-build? #t
24729 #:import-path "github.com/biogo/hts"
24730 ;; Tests try to get samples from <https://github.com/samtools/htslib>.
24731 #:test-flags #~(list "-skip" "TestHasEOF|TestRead")))
24732 (native-inputs
24733 (list go-gopkg-in-check-v1))
24734 (propagated-inputs
24735 (list go-github-com-ulikunitz-xz
24736 go-github-com-kortschak-utter))
24737 (home-page "https://github.com/biogo/hts")
24738 (synopsis "HTS module for biogo")
24739 (description
24740 "This package provides tools for handling BAM, SAM, Tabix, bgzf, CRAM,
24741CSIv1, CSIv2 and FAI files.")
24742 (license license:bsd-3)))
24743
24744(define-public go-github-com-biogo-biogo
24745 (package
24746 (name "go-github-com-biogo-biogo")
24747 (version "1.0.4")
24748 (source (origin
24749 (method git-fetch)
24750 (uri (git-reference
24751 (url "https://github.com/biogo/biogo")
24752 (commit (string-append "v" version))))
24753 (file-name (git-file-name name version))
24754 (sha256
24755 (base32
24756 "0ali1mqf3dc26myv6l7wmqfr8i25461rbq3qdad8s0wi29622199"))))
24757 (build-system go-build-system)
24758 (arguments
24759 '(#:import-path "github.com/biogo/biogo"))
24760 (propagated-inputs
24761 (list go-gopkg-in-check-v1
24762 go-github-com-biogo-store
24763 go-github-com-biogo-hts
24764 go-github-com-biogo-graph))
24765 (home-page "https://github.com/biogo/biogo")
24766 (synopsis "Bioinformatics library for Go")
24767 (description
24768 "Bíogo is a bioinformatics library for the Go language.")
24769 (license license:bsd-3)))
24770
24771(define-public python-gseapy
24772 (package
24773 (name "python-gseapy")
24774 (version "1.1.12")
24775 (source (origin
24776 (method git-fetch)
24777 (uri (git-reference
24778 (url "https://github.com/zqfang/GSEApy")
24779 (commit (string-append "v" version))))
24780 (file-name (git-file-name name version))
24781 (sha256
24782 (base32
24783 "0xdh2v0s2jwj5n541z9zlcq5f6ka0r8jk03jdv8z3j27hc6azf3s"))))
24784 (build-system cargo-build-system)
24785 (arguments
24786 (list
24787 #:install-source? #false
24788 #:features '(list "extension-module")
24789 #:cargo-test-flags '(list "--features=extension-module")
24790 #:imported-modules
24791 (append %cargo-build-system-modules
24792 %pyproject-build-system-modules)
24793 #:modules
24794 '((guix build cargo-build-system)
24795 ((guix build pyproject-build-system) #:prefix py:)
24796 (guix build utils))
24797 #:phases
24798 #~(modify-phases %standard-phases
24799 (add-after 'install 'prepare-python-module
24800 (lambda _
24801 ;; We don't use maturin, nor do we use setuptools-rust.
24802 (delete-file "pyproject.toml")
24803 (call-with-output-file "pyproject.toml"
24804 (lambda (port)
24805 (format port "\
24806[build-system]
24807build-backend = 'setuptools.build_meta'
24808requires = ['setuptools']
24809")))
24810 (delete-file "setup.py")
24811 (call-with-output-file "setup.cfg"
24812 (lambda (port)
24813 (format port "\
24814[metadata]
24815name = gseapy
24816version = ~a
24817
24818[options]
24819packages = find:
24820
24821[options.packages.find]
24822exclude =
24823 src
24824 docs
24825 tests
24826 Cargo.toml
24827" #$version)))))
24828 ;; We delete the Cargo checks but run the Python tests later.
24829 ;; See https://github.com/zqfang/GSEApy/issues/207
24830 (delete 'check)
24831 (add-after 'prepare-python-module 'enable-bytecode-determinism
24832 (assoc-ref py:%standard-phases 'enable-bytecode-determinism))
24833 (add-after 'enable-bytecode-determinism 'build-python-module
24834 (assoc-ref py:%standard-phases 'build))
24835 (add-after 'build-python-module 'install-python-module
24836 (assoc-ref py:%standard-phases 'install))
24837 (add-after 'install-python-module 'install-python-library
24838 (lambda _
24839 (let ((site (string-append #$output "/lib/python"
24840 #$(version-major+minor
24841 (package-version python))
24842 "/site-packages")))
24843 (mkdir-p site)
24844 (copy-file "target/release/libgse.so"
24845 (string-append site "/gseapy/gse.so")))))
24846 (add-after 'install-python-library 'add-install-to-pythonpath
24847 (assoc-ref py:%standard-phases 'add-install-to-pythonpath))
24848 (add-after 'add-install-to-pythonpath 'check
24849 (lambda* (#:key tests? #:allow-other-keys)
24850 (when tests?
24851 (invoke "pytest" "-vv" "tests"
24852 ;; These tests need access to the internet
24853 "-k" "not test_enrichr and not test_prerank")))))))
24854 (inputs
24855 (cons python-wrapper (cargo-inputs 'python-gseapy)))
24856 (native-inputs
24857 (list python-pytest python-setuptools))
24858 (propagated-inputs
24859 (list python-numpy
24860 python-scipy
24861 python-pandas
24862 python-matplotlib
24863 python-requests))
24864 (home-page "https://github.com/zqfang/gseapy")
24865 (synopsis "Gene Set Enrichment Analysis in Python")
24866 (description "GSEApy is a Python/Rust implementation for GSEA and wrapper
24867for Enrichr. GSEApy can be used for RNA-seq, ChIP-seq, Microarray data. It
24868can be used for convenient GO enrichment and to produce publication quality
24869figures in Python.")
24870 (license license:bsd-3)))
24871
24872;;;
24873;;; Avoid adding new packages to the end of this file. To reduce the chances
24874;;; of a merge conflict, place them above by existing packages with similar
24875;;; functionality or similar names.
24876;;;