projects/guix·blob java-team · refs

24922 lines · 978.9 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.21")
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 "10p2ligd9pqn8wq6szw2s4zqknlm7hmb4057fpdnhlsmsg0lr2jj"))
353 (modules '((guix build utils)))
354 (snippet '(begin
355 ;; Delete bundled htslib.
356 (delete-file-recursively "htslib-1.21")))))
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.31.2")
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 "19jv2502644qjv278yjllqqakwhghmfbaa4h08rayak5mp130i70"))
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 #:phases
2764 #~(modify-phases %standard-phases
2765 (add-before 'check 'build-extensions
2766 (lambda _
2767 ;; Cython extensions have to be built before running the tests.
2768 (invoke "python" "setup.py" "build_ext" "--inplace")))
2769 (add-after 'unpack 'fix-setup
2770 (lambda* (#:key inputs #:allow-other-keys)
2771 (substitute* "setup.py"
2772 (("^htslib_include_dirs =.*")
2773 (string-append "htslib_include_dirs = [\""
2774 #$(this-package-input "htslib") "/include\"]\n"))
2775 (("lib_name = \"libhts.so\"")
2776 (string-append "lib_name = \""
2777 (search-input-file inputs "lib/libhts.so.3")
2778 "\"\n")))))
2779 (add-before 'build 'use-system-htslib-package
2780 (lambda _
2781 (setenv "CYTHONIZE" "1")
2782 (setenv "CYVCF2_HTSLIB_MODE" "EXTERNAL"))))))
2783 (inputs (list curl htslib libdeflate openssl zlib))
2784 (native-inputs
2785 (list python-cython
2786 python-pytest
2787 python-setuptools))
2788 (propagated-inputs
2789 (list python-click
2790 python-coloredlogs
2791 python-numpy))
2792 (home-page "https://github.com/brentp/cyvcf2/")
2793 (synopsis "Fast vcf file parsing with Cython and htslib")
2794 (description "Cyvcf2 is a Cython wrapper around htslib built for fast
2795parsing of Variant Call Format (VCF) files.")
2796 (license license:expat)))
2797
2798(define-public python-decoupler
2799 (package
2800 (name "python-decoupler")
2801 (version "2.2.0")
2802 (source (origin
2803 (method git-fetch)
2804 (uri (git-reference
2805 (url "https://github.com/scverse/decoupler")
2806 (commit (string-append "v" version))))
2807 (file-name (git-file-name name version))
2808 (sha256
2809 (base32
2810 "1jdlwh0v4lfc750mxqkzvy0wbc7hj8agf5bfmr4abnfxh5ckdfyp"))))
2811 (build-system pyproject-build-system)
2812 (arguments
2813 (list
2814 ;; tests: 237 passed, 1 skipped, 35 deselected, 72 warnings
2815 #:test-flags
2816 ;; TypeError: deprecate_kwarg() missing 1 required positional argument:
2817 ;; 'new_arg_name'.
2818 '(list "--ignore=tests/mt/test_mlm.py"
2819 "-k" (string-join
2820 ;; Tests requiring internet access to reach out
2821 ;; <datasets.cellxgene.cziscience.com>, <ftp.ebi.ac.uk>,
2822 ;; <omnipathdb.org>, <raw.githubusercontent.com>,
2823 ;; <static.omnipathdb.org>, <www.ensembl.org>,
2824 ;; <www.ncbi.nlm.nih.gov>, and <zenodo.org>.
2825 (list "not test_collectri"
2826 "test_covid5k"
2827 "test_dorothea"
2828 "test_download"
2829 "test_download_anndata"
2830 "test_ensmbl_to_symbol"
2831 "test_erygast1k"
2832 "test_hallmark"
2833 "test_hsctgfb"
2834 "test_knocktf"
2835 "test_msvisium"
2836 "test_pbmc3k"
2837 "test_progeny"
2838 "test_resource"
2839 "test_show_resources"
2840 "test_translate"
2841 ;; XXX: Some precision mismatched.
2842 "test_func_gsea"
2843 "test_net_corr")
2844 " and not "))
2845 #:phases
2846 '(modify-phases %standard-phases
2847 (add-before 'check 'set-home
2848 ;; Some tests require a home directory to be set.
2849 (lambda _ (setenv "HOME" "/tmp")))
2850 ;; Numba needs a writable dir to cache functions.
2851 (add-before 'build 'set-numba-cache-dir
2852 (lambda _ (setenv "NUMBA_CACHE_DIR" "/tmp"))))))
2853 (propagated-inputs (list python-adjusttext
2854 python-anndata
2855 python-docrep
2856 python-marsilea
2857 python-numba
2858 python-requests
2859 python-scipy
2860 python-session-info2
2861 python-tqdm
2862 ;; [optional]
2863 python-dcor
2864 python-igraph
2865 python-ipywidgets
2866 ;; python-pydeseq2 ;not packaged yet in Guix
2867 python-scanpy
2868 python-xgboost))
2869 (native-inputs
2870 (list nss-certs-for-test
2871 python-hatchling
2872 python-gseapy
2873 python-memory-profiler
2874 python-pytest))
2875 (home-page "https://github.com/scverse/decoupler")
2876 (synopsis
2877 "Framework for modeling, analyzing and interpreting single-cell RNA-seq data")
2878 (description
2879 "This package provides different statistical methods to extract
2880biological activities from omics data within a unified framework.")
2881 (license license:bsd-3)))
2882
2883(define-public python-demuxem
2884 (package
2885 (name "python-demuxem")
2886 (version "0.1.7")
2887 (source (origin
2888 (method url-fetch)
2889 (uri (pypi-uri "demuxEM" version))
2890 (sha256
2891 (base32
2892 "1bhyxqjk44bmyd26m1smapf68wyf7252kk65i27k50dd3kswgnd6"))))
2893 (build-system pyproject-build-system)
2894 ;; There are no tests.
2895 (arguments (list #:tests? #false))
2896 (propagated-inputs
2897 (list python-docopt
2898 python-numpy
2899 python-pandas
2900 python-pegasusio
2901 python-scikit-learn
2902 python-scipy
2903 python-seaborn))
2904 (native-inputs
2905 (list python-cython python-setuptools python-setuptools-scm))
2906 (home-page "https://github.com/lilab-bcb/demuxEM")
2907 (synopsis "Analyze cell-hashing/nucleus-hashing data")
2908 (description
2909 "This is a Python module for analyzing cell-hashing/nucleus-hashing data.
2910It is the demultiplexing module of Pegasus, which is used by Cumulus in the
2911demultiplexing step.")
2912 (license license:bsd-3)))
2913
2914(define-public python-doubletdetection
2915 (package
2916 (name "python-doubletdetection")
2917 (version "4.2")
2918 (source (origin
2919 (method url-fetch)
2920 (uri (pypi-uri "doubletdetection" version))
2921 (sha256
2922 (base32
2923 "0v0a19014h4p6x8pyz1s78xn3q5w5166cysvg574z6vw79a3s9vp"))))
2924 (build-system pyproject-build-system)
2925 (arguments
2926 (list
2927 #:tests? #false ;there are none
2928 #:phases
2929 #~(modify-phases %standard-phases
2930 (add-after 'unpack 'use-poetry-core
2931 (lambda _
2932 ;; Patch to use the core poetry API.
2933 (substitute* "pyproject.toml"
2934 (("poetry.masonry.api")
2935 "poetry.core.masonry.api")))))))
2936 (propagated-inputs
2937 (list python-anndata
2938 python-ipywidgets
2939 python-leidenalg
2940 python-louvain-igraph
2941 python-matplotlib
2942 python-numpy
2943 python-pandas
2944 python-phenograph
2945 python-scanpy
2946 python-scipy
2947 python-tqdm))
2948 (native-inputs
2949 (list python-poetry-core
2950 python-pytest))
2951 (home-page "https://github.com/JonathanShor/DoubletDetection")
2952 (synopsis
2953 "This is a package to detect doublets in single-cell RNA-seq count matrices")
2954 (description
2955 "This package provides a method to detect and enable removal of doublets
2956from single-cell RNA-sequencing.")
2957 (license license:expat)))
2958
2959(define-public python-harmonypy
2960 (package
2961 (name "python-harmonypy")
2962 (version "0.0.10")
2963 (source
2964 (origin
2965 (method git-fetch)
2966 (uri (git-reference
2967 (url "https://github.com/slowkow/harmonypy")
2968 (commit (string-append "v" version))))
2969 (file-name (git-file-name name version))
2970 (sha256
2971 (base32 "15lxgncrnsx1hapfx78pvx4rjx5d48hqixdnacdy55d84myfmrym"))))
2972 (build-system pyproject-build-system)
2973 (arguments
2974 (list
2975 #:phases
2976 #~(modify-phases %standard-phases
2977 (add-after 'unpack 'patch-pyproject
2978 (lambda _
2979 ;; License field should not be empty.
2980 (substitute* "pyproject.toml"
2981 (("^license = \"\"") "")))))))
2982 (propagated-inputs (list python-numpy
2983 python-pandas
2984 python-scikit-learn
2985 python-scipy))
2986 (native-inputs (list python-hatchling python-pytest))
2987 (home-page "https://github.com/slowkow/harmonypy")
2988 (synopsis "Data integration algorithm")
2989 (description
2990 "Harmony is an algorithm for integrating multiple high-dimensional
2991datasets with fuzzy k-means and locally linear adjustments.")
2992 (license license:gpl2)))
2993
2994(define-public python-hclust2
2995 (package
2996 (name "python-hclust2")
2997 (version "1.0.0")
2998 (source (origin
2999 (method url-fetch)
3000 (uri (pypi-uri "hclust2" version))
3001 (sha256
3002 (base32
3003 "0v89n2g42d7jhgfs8glf06apgxx6aswp3mfisgnhm518cv8z2rwn"))))
3004 (build-system pyproject-build-system)
3005 (arguments (list #:tests? #f)) ;there are no tests
3006 (propagated-inputs
3007 (list python-matplotlib
3008 python-numpy
3009 python-pandas
3010 python-scipy))
3011 (native-inputs (list python-setuptools))
3012 (home-page "https://github.com/SegataLab/hclust2/")
3013 (synopsis "Plotting heat-maps for publications")
3014 (description
3015 "Hclust2 is a handy tool for plotting heat-maps with several useful options
3016to produce high quality figures that can be used in publications.")
3017 (license license:expat)))
3018
3019(define-public python-hotspotsc
3020 (package
3021 (name "python-hotspotsc")
3022 (version "1.1.1")
3023 (source
3024 (origin
3025 (method url-fetch)
3026 (uri (pypi-uri "hotspotsc" version))
3027 (sha256
3028 (base32 "1phbd49nb0ivfcgfi6yxd2masgd0v6133mki9vd5pkrhx0a7wb5d"))))
3029 (build-system pyproject-build-system)
3030 (arguments
3031 (list
3032 #:tests? #false ;there are none
3033 #:phases
3034 #~(modify-phases %standard-phases
3035 (add-after 'unpack 'use-poetry-core
3036 (lambda _
3037 ;; Patch to use the core poetry API.
3038 (substitute* "pyproject.toml"
3039 (("poetry.masonry.api")
3040 "poetry.core.masonry.api")
3041 ;; Fix syntax error
3042 (("sphinx>") "sphinx")))))))
3043 (propagated-inputs (list python-anndata
3044 python-ipython
3045 python-matplotlib
3046 python-nbsphinx
3047 python-numba
3048 python-numpy
3049 python-pandas
3050 python-pynndescent
3051 python-scanpy
3052 python-scikit-learn
3053 python-scipy
3054 python-seaborn
3055 python-statsmodels
3056 python-tqdm))
3057 (native-inputs
3058 (list python-poetry-core python-pytest python-sphinx))
3059 (home-page "https://github.com/yoseflab/hotspot")
3060 (synopsis
3061 "Identifying informative genes in a single-cell dataset")
3062 (description
3063 "Hotspot is a tool for identifying informative genes (and gene modules)
3064in a single-cell dataset. Importantly, \"informative\" is decided based on
3065how well a gene's variation agrees with some cell metric---some similarity
3066mapping between cells. Genes which are informative are those whose expression
3067varies in similar way among cells which are nearby in the given metric.")
3068 (license license:expat)))
3069
3070(define-public python-htsget
3071 (package
3072 (name "python-htsget")
3073 (version "0.2.6")
3074 (source (origin
3075 (method url-fetch)
3076 (uri (pypi-uri "htsget" version))
3077 (sha256
3078 (base32
3079 "111q4pzkav26aa3hkgh948wqlyrq7dq6sjml9z63n3blw8s6b0c4"))))
3080 (build-system pyproject-build-system)
3081 (arguments
3082 (list #:tests? #f)) ;they depend on Nose test runner
3083 (native-inputs
3084 (list python-setuptools-scm python-setuptools))
3085 (propagated-inputs
3086 (list python-humanize python-requests python-six))
3087 (home-page "https://pypi.org/project/htsget/")
3088 (synopsis "Python API and command line interface for the GA4GH htsget API")
3089 (description "This package is a client implementation of the GA4GH htsget
3090protocol. It provides a simple and reliable way to retrieve genomic data from
3091servers supporting the protocol.")
3092 (license license:asl2.0)))
3093
3094(define-public python-liana-py
3095 (package
3096 (name "python-liana-py")
3097 (version "1.10.0")
3098 (source
3099 (origin
3100 (method git-fetch)
3101 (uri (git-reference
3102 (url "https://github.com/saezlab/liana-py")
3103 (commit (string-append "v" version))))
3104 (file-name (git-file-name name version))
3105 (sha256
3106 (base32 "0bdbrk0cr4m6br664gs1ixvchyd9hnwjmbnzxkx0gbj5967i1lw3"))))
3107 (build-system pyproject-build-system)
3108 (arguments
3109 (list
3110 ;; tests: 218 passed, 13 deselected, 755 warnings
3111 #:test-flags
3112 #~(list "-m" "not network"
3113 ;; Tests depending on python-corneto.
3114 "--deselect=tests/method/test_causalnet.py::test_build_prior_network"
3115 "--deselect=tests/method/test_causalnet.py::test_caulsalnet"
3116 "--deselect=tests/method/test_causalnet.py::test_causalnet_noweights"
3117 ;; A task has failed to un-serialize.
3118 "--deselect=tests/method/sc/test_methods.py::test_geometric_mean")
3119 #:phases
3120 #~(modify-phases %standard-phases
3121 ;; Numba needs a writable directory to cache functions.
3122 (add-before 'build 'set-numba-cache-dir
3123 (lambda _ (setenv "NUMBA_CACHE_DIR" "/tmp"))))))
3124 (native-inputs
3125 (list python-hatchling
3126 python-numpydoc
3127 python-pytest))
3128 (propagated-inputs
3129 (list python-anndata
3130 python-mudata
3131 python-scanpy
3132 python-numba
3133 python-tqdm
3134 python-docrep
3135 python-plotnine
3136 python-session-info2
3137 ;; See: <https://github.com/saezlab/liana-py/issues/244>.
3138 python-pandas-2
3139 ;; [optional]
3140 python-cell2cell
3141 ;; python-corneto ;not packaged yet in Guix
3142 ;; python-cvxpy-base ;not packaged yet in Guix
3143 python-decoupler
3144 python-gseapy
3145 python-kneed
3146 python-mofapy2
3147 python-mofax
3148 python-muon
3149 python-omnipath
3150 ;; python-pydeseq2 ;not packaged yet in Guix
3151 ;; python-pyscipopt ;not packaged yet in Guix
3152 python-requests))
3153 (home-page "https://github.com/saezlab/liana-py")
3154 (synopsis "LIANA is a ligand-receptor analysis framework")
3155 (description "This is a Ligand-Receptor inference framework. The
3156framework enables the use of any LR method with any resources.")
3157 (license license:gpl3+)))
3158
3159(define-public python-logomaker
3160 (package
3161 (name "python-logomaker")
3162 (version "0.8.7")
3163 (source (origin
3164 (method url-fetch)
3165 (uri (pypi-uri "logomaker" version))
3166 (sha256
3167 (base32
3168 "00ikzh7cv3yi1aj5v3hrpia6w7xrw559rqhwy3qxcja4wbk3qy33"))))
3169 (build-system pyproject-build-system)
3170 (arguments
3171 (list
3172 ;; All tests are marked as skipped in logomaker/tests, this is taken
3173 ;; form GitHub Actions file .github/workflows/daily-tests.yml.
3174 #:test-backend #~'custom
3175 #:test-flags #~(list "-c" "import logomaker")))
3176 (propagated-inputs
3177 (list python-matplotlib python-numpy python-pandas))
3178 (native-inputs (list python-hatchling))
3179 (home-page "https://github.com/jbkinney/logomaker")
3180 (synopsis "Package for making Sequence Logos")
3181 (description "Logomaker is a Python package for generating
3182publication-quality sequence logos. Logomaker can generate both standard and
3183highly customized logos illustrating the properties of DNA, RNA, or protein
3184sequences. Logos are rendered as vector graphics embedded within native
3185matplotlib Axes objects, making them easy to style and incorporate into
3186multi-panel figures.")
3187 (license license:expat)))
3188
3189(define-public python-weblogo
3190 (package
3191 (name "python-weblogo")
3192 (version "3.7.12")
3193 (home-page "https://github.com/gecrooks/weblogo")
3194 (source
3195 (origin
3196 (method url-fetch)
3197 (uri (pypi-uri "weblogo" version))
3198 (sha256
3199 (base32
3200 "0mw6aa0dq3kk9k1nakdvm64icz9504spqbvq4v2h0rb1cb52frkw"))))
3201 (build-system pyproject-build-system)
3202 (propagated-inputs (list ghostscript
3203 python-numpy
3204 python-pluggy
3205 python-scipy))
3206 (native-inputs (list ghostscript
3207 python-importlib-resources
3208 python-pytest
3209 python-setuptools
3210 python-setuptools-scm))
3211 (arguments
3212 (list
3213 #:test-flags
3214 '(list "-k"
3215 ;; These tests fail because of circular imports
3216 (string-append "not test_cli.py"
3217 " and not test_transformseq.py"))))
3218 (synopsis "Sequence Logo Generator")
3219 (description "WebLogo is a web based application designed to make the
3220generation of sequence logos as easy and painless as possible.
3221
3222WebLogo can create output in several common graphics' formats, including the
3223bitmap formats GIF and PNG, suitable for on-screen display, and the vector
3224formats EPS and PDF, more suitable for printing, publication, and further
3225editing. Additional graphics options include bitmap resolution, titles,
3226optional axis, and axis labels, antialiasing, error bars, and alternative
3227symbol formats.
3228
3229A sequence logo is a graphical representation of an amino acid or nucleic acid
3230multiple sequence alignment. Each logo consists of stacks of symbols, one
3231stack for each position in the sequence. The overall height of the stack
3232indicates the sequence conservation at that position, while the height of
3233symbols within the stack indicates the relative frequency of each amino or
3234nucleic acid at that position. The width of the stack is proportional to the
3235fraction of valid symbols in that position.")
3236 (license license:expat)))
3237
3238(define-public python-magic-impute
3239 (package
3240 (name "python-magic-impute")
3241 (version "3.0.0")
3242 (source
3243 (origin
3244 (method git-fetch)
3245 (uri (git-reference
3246 (url "https://github.com/KrishnaswamyLab/MAGIC")
3247 (commit (string-append "v" version))))
3248 (file-name (git-file-name name version))
3249 (sha256
3250 (base32
3251 "1f4ckvpki2461xd5hclhj7gqwj8xizs4d0fd942kvgafidrsdvlx"))))
3252 (build-system pyproject-build-system)
3253 (arguments
3254 (list
3255 #:test-flags
3256 #~(list "test/test.py")
3257 #:phases
3258 #~(modify-phases %standard-phases
3259 (add-after 'unpack 'chdir
3260 (lambda _ (chdir "python"))))))
3261 (native-inputs
3262 (list python-pytest
3263 python-setuptools))
3264 (propagated-inputs
3265 (list python-future
3266 python-graphtools
3267 python-matplotlib
3268 python-numpy
3269 python-pandas
3270 python-scikit-learn
3271 python-scipy
3272 python-scprep
3273 python-tasklogger))
3274 (home-page "https://github.com/KrishnaswamyLab/MAGIC")
3275 (synopsis "Markov affinity-based graph imputation of cells")
3276 (description "MAGIC is an interactive tool to impute missing values in
3277single-cell sequencing data and to restore the structure of the data. It also
3278provides data pre-processing functionality such as dimensionality reduction
3279and gene expression visualization.")
3280 (license license:gpl2+)))
3281
3282(define-public python-metacells
3283 (package
3284 (name "python-metacells")
3285 (version "0.9.5")
3286 (source
3287 (origin
3288 (method url-fetch)
3289 (uri (pypi-uri "metacells" version))
3290 (sha256
3291 (base32 "0rb1r8l1ypfmvd3lwlx7ksfbjvgpnybn1s84a8n9gcpz9yx2rhbs"))))
3292 #;
3293 (properties '((tunable? . #t)))
3294 (build-system pyproject-build-system)
3295 (arguments
3296 (list
3297 #:phases
3298 #~(modify-phases %standard-phases
3299 ;; The package "python-igraph" has been deprecated in favor of
3300 ;; just "igraph".
3301 (add-after 'unpack 'rename-igraph
3302 (lambda _
3303 (substitute* "requirements.txt"
3304 (("python-igraph") "igraph"))))
3305 (add-after 'unpack 'do-not-tune
3306 (lambda _
3307 ;; Without this they pass -march=native to the compiler.
3308 (setenv "WHEEL" "1")))
3309 (add-before 'check 'pre-check
3310 (lambda _
3311 ;; Numba needs a writable dir to cache functions.
3312 (setenv "NUMBA_CACHE_DIR" "/tmp")
3313 (delete-file-recursively "metacells")))
3314 (add-before 'sanity-check 'pre-sanity-check
3315 (lambda _
3316 ;; Numba needs a writable dir to cache functions.
3317 (setenv "NUMBA_CACHE_DIR" "/tmp"))))))
3318 (propagated-inputs (list python-anndata
3319 python-cvxpy
3320 python-fastcluster
3321 python-igraph
3322 python-numpy
3323 python-pandas
3324 python-psutil
3325 python-pyyaml
3326 python-scanpy
3327 python-scipy
3328 python-threadpoolctl
3329 python-umap-learn))
3330 (native-inputs (list pybind11-2 python-pytest python-setuptools))
3331 (home-page "https://github.com/tanaylab/metacells")
3332 (synopsis "Single-cell RNA Sequencing Analysis")
3333 (description "The metacells package implements the improved metacell
3334algorithm for single-cell RNA sequencing (scRNA-seq) data analysis within the
3335scipy framework, and projection algorithm based on it. The original metacell
3336algorithm was implemented in R. The Python package contains various
3337algorithmic improvements and is scalable for larger data sets (millions of
3338cells).")
3339 (license license:expat)))
3340
3341(define-public python-ngesh
3342 (package
3343 (name "python-ngesh")
3344 (version "1.0")
3345 (source
3346 (origin
3347 (method git-fetch)
3348 (uri (git-reference
3349 (url "https://github.com/tresoldi/ngesh")
3350 (commit (string-append "v" version))))
3351 (file-name (git-file-name name version))
3352 (sha256
3353 (base32 "07sj4x95b5hvx57pw24f80sk4ag4hkg1z6wzym3pzi8n5gn85n1z"))))
3354 (build-system pyproject-build-system)
3355 (propagated-inputs (list python-ete3 python-numpy python-six))
3356 (native-inputs (list python-pytest))
3357 (home-page "https://github.com/tresoldi/ngesh")
3358 (synopsis "Library for phylogenetic tree simulation")
3359 (description
3360 "Ngesh is a Python library and CLI tool for simulating phylogenetic trees
3361and data. It is intended for benchmarking phylogenetic methods, especially in
3362historical linguistics andstemmatology. The generation of stochastic
3363phylogenetic trees also goes by the name simulationmethods for phylogenetic
3364trees, synthetic data generation, or just phylogenetic tree simulation.")
3365 (license license:expat)))
3366
3367(define-public python-parabam
3368 (package
3369 (name "python-parabam")
3370 ;; XXX: Upstream works on modernization of the project, use the latest
3371 ;; commit providing fixes.
3372 ;; See: <https://github.com/cancerit/parabam/issues/10>.
3373 (properties '((commit . "be5bd35012d37df8cfa88771325a0273519c8c98")
3374 (revision . "0")))
3375 (version (git-version "3.0.1"
3376 (assoc-ref properties 'revision)
3377 (assoc-ref properties 'commit)))
3378 (source
3379 (origin
3380 (method git-fetch)
3381 (uri (git-reference
3382 (url "https://github.com/cancerit/parabam")
3383 (commit (assoc-ref properties 'commit))))
3384 (file-name (git-file-name name version))
3385 (sha256
3386 (base32 "1x0c1zhlfplhm4n07vibvh4jprjsdlypnlig87a8r07d26d4qphh"))
3387 (patches
3388 (list
3389 (origin
3390 (method url-fetch)
3391 (uri
3392 (string-append "https://github.com/cancerit/parabam/commit/"
3393 "477246d7a13b227841bf49521181235c76afe75f.patch"))
3394 (file-name (string-append name "-" version "-pull-16.patch"))
3395 (sha256
3396 (base32 "0znmyvrmwbscqymhsx60pnp9jhzpz94diyv409jygjm58hj5454z")))))))
3397 (build-system pyproject-build-system)
3398 (arguments
3399 (list
3400 #:tests? #f ;no tests
3401 #:phases
3402 #~(modify-phases %standard-phases
3403 (add-before 'build 'cythonize
3404 (lambda _
3405 (with-directory-excursion "parabam"
3406 (for-each (lambda (file)
3407 (invoke "cython" "-3" file "-I" "."))
3408 (find-files "." ".*\\.pyx$"))))))))
3409 (propagated-inputs (list python-numpy python-pysam))
3410 (native-inputs (list python-cython python-setuptools))
3411 (home-page "https://github.com/cancerit/parabam")
3412 (synopsis "Parallel BAM File Analysis")
3413 (description "Parabam is a tool for processing sequencing files in
3414parallel. It uses Python's native multiprocessing framework to apply a user
3415defined rule on an input file.")
3416 (license license:gpl3)))
3417
3418(define-public python-pdbfixer
3419 (package
3420 (name "python-pdbfixer")
3421 (version "1.12")
3422 (source
3423 (origin
3424 (method git-fetch)
3425 (uri (git-reference
3426 (url "https://github.com/openmm/pdbfixer")
3427 (commit (string-append "v" version))))
3428 (file-name (git-file-name name version))
3429 (sha256
3430 (base32 "0jj724fkvk7bk47izk92ss8nz9ymfvj0f1fkypc0ig4xd5qzjqsz"))))
3431 (build-system pyproject-build-system)
3432 (arguments
3433 (list
3434 #:test-flags
3435 ;; These tests fail because they require internet access or test data.
3436 '(list "-k"
3437 (string-join (list "not test_build_and_simulate"
3438 "test_charge_and_solvate"
3439 "test_cli"
3440 "test_leaving_atoms"
3441 "test_mutate"
3442 "test_nonstandard")
3443 " and not "))))
3444 (propagated-inputs (list openmm python-numpy))
3445 (native-inputs (list python-pytest python-setuptools))
3446 (home-page "https://github.com/openmm/pdbfixer")
3447 (synopsis "Application for fixing problems in Protein Data Bank")
3448 (description
3449 "PDBFixer is designed to rectify issues in Protein Data Bank files.
3450Its intuitive interface simplifies the process of resolving problems
3451encountered in PDB files prior to simulation tasks.")
3452 (license license:expat)))
3453
3454(define-public python-peaks2utr
3455 (package
3456 (name "python-peaks2utr")
3457 (version "1.5.0")
3458 (source
3459 (origin
3460 (method git-fetch)
3461 (uri (git-reference
3462 (url "https://github.com/haessar/peaks2utr")
3463 (commit (string-append "v" version))))
3464 (file-name (git-file-name name version))
3465 (sha256
3466 (base32 "1b4qiccp5j394pzqd1d4ss3k90zv3kdr84lykl6p8izn3k85b2bl"))))
3467 (build-system pyproject-build-system)
3468 (arguments
3469 (list
3470 #:phases
3471 #~(modify-phases %standard-phases
3472 (add-after 'unpack 'relax-requirements
3473 (lambda _
3474 (substitute* "setup.cfg"
3475 (("==") ">=")
3476 ;; See: <https://github.com/haessar/peaks2utr/issues/47>.
3477 (("numpy >= 1.21.4, <= 1.26.4") "numpy >= 1.21.4")))))))
3478 (native-inputs
3479 (list python-pytest
3480 python-setuptools))
3481 (propagated-inputs
3482 (list python-asgiref
3483 python-gffutils
3484 python-importlib-resources
3485 macs
3486 python-numpy
3487 python-psutil
3488 python-pybedtools
3489 python-pysam
3490 python-requests
3491 python-tqdm
3492 python-typing-extensions
3493 python-zipp))
3494 (home-page "https://github.com/haessar/peaks2utr")
3495 (synopsis "Python CLI for annotating three prime UTR")
3496 (description
3497 "This package provides a robust, parallelized Python CLI for annotating
3498three prime UTR.")
3499 (license license:gpl3+)))
3500
3501(define-public python-pegasusio
3502 (package
3503 (name "python-pegasusio")
3504 (version "0.11.0")
3505 (source
3506 (origin
3507 (method git-fetch)
3508 (uri (git-reference
3509 (url "https://github.com/lilab-bcb/pegasusio")
3510 (commit version)))
3511 (file-name (git-file-name name version))
3512 (sha256
3513 (base32 "1v0zcpk13ckw2ab3i3cgqjz66syirx3yplwwv024mpcwzahv826r"))))
3514 (build-system pyproject-build-system)
3515 ;; There are no tests.
3516 (arguments (list #:tests? #false))
3517 (propagated-inputs
3518 (list python-cython
3519 python-docopt
3520 python-h5py
3521 python-loompy
3522 python-natsort
3523 python-numpy
3524 python-pandas
3525 python-pillow
3526 python-scipy
3527 python-setuptools
3528 python-zarr))
3529 (native-inputs (list python-cython python-setuptools python-setuptools-scm))
3530 (home-page "https://github.com/lilab-bcb/pegasusio")
3531 (synopsis "Read or write single-cell genomics data")
3532 (description
3533 "Pegasusio is a Python package for reading or writing single-cell
3534genomics data.")
3535 (license license:bsd-3)))
3536
3537(define-public python-phenograph
3538 ;; XXX: No updates since 2020, probably not compatible with current NumPy stack.
3539 (package
3540 (name "python-phenograph")
3541 (version "1.5.7")
3542 (source (origin
3543 (method url-fetch)
3544 (uri (pypi-uri "PhenoGraph" version))
3545 (sha256
3546 (base32
3547 "0nji449mzwgp1f87iknl5fmnjdkrhkfkapxvafxdw01s0jg8zcj6"))
3548 (modules '((guix build utils)))
3549 ;; Remove bundled binaries
3550 (snippet
3551 '(delete-file-recursively "phenograph/louvain"))))
3552 (build-system pyproject-build-system)
3553 (arguments
3554 (list
3555 ;; tests: 3 passed, 4 deselected, 1 warning
3556 #:test-flags
3557 ;; ValueError: 'scipy.sparse.linalg.bicgstab' called with invalid
3558 ;; `atol`=legacy; if set, `atol` must be a real, non-negative number.
3559 #~(list "--deselect=tests/test_classify.py::test_classify_generated"
3560 "--deselect=tests/test_classify.py::test_classify_fixed"
3561 "--deselect=tests/test_classify.py::test_random_walk_probabilities_fixed"
3562 ;; This test can never succeed because Q_leiden is never set to
3563 ;; anything other than None.
3564 ;; assert 0.6666666666666665 == None
3565 "--deselect=tests/test_cluster.py::test_run_leiden")
3566 #:phases
3567 #~(modify-phases %standard-phases
3568 (add-after 'unpack 'patch-louvain
3569 (lambda* (#:key inputs #:allow-other-keys)
3570 (substitute* "phenograph/core.py"
3571 (("lpath = os.path.*")
3572 (string-append "lpath = \""
3573 (dirname (search-input-file inputs "/bin/community"))
3574 "\"\n"))
3575 (("linux-(community|hierarchy|convert)" _ thing) thing)
3576 ;; Do not write binaries, because the unmodified "convert"
3577 ;; from louvain only knows how to process plain text files.
3578 (("with open\\(filename \\+ \".bin\", \"w\\+b\"\\) as f:")
3579 "with open(filename + \".bin\", \"w+\") as f:")
3580 (("f.writelines\\(\\[e for t in zip\\(ij, s\\) for e in t\\]\\)")
3581 "for [src, dest], weight in zip(ij, s): \
3582f.write(src.astype(\"str\") + ' ' + \
3583dest.astype(\"str\") + ' ' + \
3584weight.astype(\"str\") + '\\n')")))))))
3585 (inputs
3586 (list louvain))
3587 (propagated-inputs
3588 (list python-leidenalg
3589 python-numpy-1
3590 python-psutil
3591 python-scikit-learn
3592 python-scipy))
3593 (native-inputs
3594 (list python-pytest python-setuptools))
3595 (home-page "https://github.com/dpeerlab/PhenoGraph.git")
3596 (synopsis "Graph-based clustering for high-dimensional single-cell data")
3597 (description
3598 "PhenoGraph is a clustering method designed for high-dimensional
3599single-cell data. It works by creating a graph representing phenotypic
3600similarities between cells and then identifying communities in this graph.")
3601 (license license:expat)))
3602
3603(define-public python-phylophlan
3604 (package
3605 (name "python-phylophlan")
3606 (version "3.0.3")
3607 (source (origin
3608 (method git-fetch)
3609 (uri (git-reference
3610 (url "https://github.com/biobakery/phylophlan")
3611 (commit version)))
3612 (file-name (git-file-name name version))
3613 (sha256
3614 (base32
3615 "1wz70xzxqx2sf5flmf45m15jq027dqijfaj1r51pl50w5x6dkawx"))))
3616 (build-system pyproject-build-system)
3617 (arguments (list #:tests? #f)) ;there are no tests
3618 (propagated-inputs
3619 (list python-biopython
3620 python-dendropy
3621 python-matplotlib
3622 python-numpy
3623 python-pandas
3624 python-seaborn))
3625 (native-inputs (list python-setuptools))
3626 (home-page "https://github.com/biobakery/phylophlan")
3627 (synopsis
3628 "Phylogenetic analysis of microbial isolates and genomes from metagenomes")
3629 (description
3630 "This package is an integrated pipeline for large-scale phylogenetic
3631profiling of genomes and metagenomes. PhyloPhlAn is an accurate, rapid, and
3632easy-to-use method for large-scale microbial genome characterization and
3633phylogenetic analysis at multiple levels of resolution. This software package
3634can assign both genomes and @acronym{MAGs, metagenome-assembled genomes} to
3635@acronym{SGBs, species-level genome bins}. PhyloPhlAn can reconstruct
3636strain-level phylogenies using clade- specific maximally informative
3637phylogenetic markers, and can also scale to very large phylogenies comprising
3638>17,000 microbial species.")
3639 (license license:expat)))
3640
3641(define-public python-pybedtools
3642 (package
3643 (name "python-pybedtools")
3644 (version "0.12.0")
3645 (source
3646 (origin
3647 (method url-fetch)
3648 (uri (pypi-uri "pybedtools" version))
3649 (sha256
3650 (base32 "0jbjaj0n34k64jp5q3l653qrrxwd8d276hqbq1ii7j3rcngyr1l7"))
3651 (snippet
3652 ;; Force the Cythonization of C++ files to guard against compilation
3653 ;; problems.
3654 #~(begin
3655 (use-modules (guix build utils))
3656 (use-modules (srfi srfi-26))
3657 (let ((cython-sources (map (cut string-drop-right <> 4)
3658 (find-files "." "\\.pyx$")))
3659 (c/c++-files (find-files "." "\\.(c|cpp|cxx)$")))
3660 (define (strip-extension filename)
3661 (string-take filename (string-index-right filename #\.)))
3662 (define (cythonized? c/c++-file)
3663 (member (strip-extension c/c++-file) cython-sources))
3664 (for-each delete-file (filter cythonized? c/c++-files)))))))
3665 (build-system pyproject-build-system)
3666 (arguments
3667 (list
3668 #:build-backend "setuptools.build_meta"
3669 ;; tests: 508 passed, 1 deselected, 3 xfailed
3670 #:test-flags
3671 #~(list "--pyargs" "pybedtools"
3672 ;; ValueError: It appears you don't have an internet connection
3673 ;; -- unable to get chromsizes from UCSC
3674 "--deselect=test/test_helpers.py::test_chromsizes")
3675 #:phases
3676 #~(modify-phases %standard-phases
3677 (add-after 'unpack 'fix-references
3678 (lambda _
3679 (substitute* "pybedtools/test/test_issues.py"
3680 (("'/bin/bash'") (string-append "'" (which "bash") "'")))))
3681 (add-before 'build 'generate-cython-extensions
3682 (lambda _
3683 (invoke "python" "setup.py" "cythonize")))
3684 (add-before 'check 'remove-local-source
3685 (lambda _
3686 (delete-file-recursively "pybedtools"))))))
3687 (propagated-inputs
3688 (list bedtools
3689 kentutils ;for bedGraphToBigWig
3690 python-numpy
3691 python-pandas
3692 python-psutil
3693 python-pysam
3694 python-pyyaml
3695 samtools))
3696 (inputs
3697 (list zlib))
3698 (native-inputs
3699 (list python-cython
3700 python-pytest
3701 python-setuptools))
3702 (home-page "https://pythonhosted.org/pybedtools/")
3703 (synopsis "Python wrapper for BEDtools programs")
3704 (description
3705 "This package is a Python wrapper for Aaron Quinlan's BEDtools programs,
3706which are widely used for genomic interval manipulation or \"genome algebra\".
3707pybedtools extends BEDTools by offering feature-level manipulations from with
3708Python.")
3709 ;; pypi lists GPLv2 in the PKG-INFO and website, but was relicensed in
3710 ;; version 0.9.0 and the LICENSE.txt is consistent with the source code.
3711 ;;
3712 ;; pybedtools/include/gzstream.cpp and pybedtools/include/gzstream.h are
3713 ;; licensed lgpl2.1+
3714 (license (list license:expat license:lgpl2.1+))))
3715
3716(define-public python-pybio
3717 (let ((commit "c91fddc483da535d5097364405d76ad9b1bde07f")
3718 (revision "1"))
3719 (package
3720 (name "python-pybio")
3721 (version (git-version "0.3.12" revision commit))
3722 (source
3723 (origin
3724 (method git-fetch)
3725 (uri (git-reference
3726 (url "https://github.com/grexor/pybio")
3727 (commit commit)))
3728 (file-name (git-file-name name version))
3729 (sha256
3730 (base32 "0s3n1bqp25zf5pzfsj0x1kqr6i2a6iffpb8hkjwhyvjqrxf5d9rk"))))
3731 (build-system pyproject-build-system)
3732 (arguments
3733 (list
3734 #:tests? #false ;There are no automated tests
3735 #:phases
3736 #~(modify-phases %standard-phases
3737 (add-before 'sanity-check 'set-home
3738 ;; A HOME directory is required when importing the module during
3739 ;; the sanity check.
3740 (lambda _ (setenv "HOME" "/tmp")))
3741 (add-after 'unpack 'adjust-requirements
3742 (lambda _
3743 ;; bs4 is an alternative name for beautifulsoup4, only used to
3744 ;; avoid name squatting on pypi.
3745 (substitute* "setup.py"
3746 (("bs4") "beautifulsoup4"))))
3747 (add-after 'unpack 'avoid-internet-while-building
3748 (lambda _
3749 (setenv "GUIX_BUILD" "yes")
3750 (substitute* "pybio/__init__.py"
3751 (("^pybio.core.genomes.init\\(\\)" m)
3752 (string-append m
3753 "\
3754 if not os.getenv('GUIX_BUILD') else None"))))))))
3755 (propagated-inputs
3756 (list python-beautifulsoup4 python-numpy
3757 python-psutil python-pysam python-requests))
3758 (native-inputs (list python-pytest python-setuptools))
3759 (home-page "https://github.com/grexor/pybio")
3760 (synopsis "Basic genomics toolset")
3761 (description
3762 "This tool provides a Python framework to streamline genomics
3763operations. It offers a direct interface to Ensembl genome assemblies and
3764annotations, while also accommodating custom genomes via FASTA/GTF inputs.
3765The primary objective of pybio is to simplify genome management. It achieves
3766this by providing automatic download of Ensembl genome assemblies and
3767annotation, provides Python genomic feature search and sequence retrieval from
3768the managed genomes, STAR indexing and mapping and more.")
3769 (license license:gpl3+))))
3770
3771(define-public python-pybiomart
3772 (package
3773 (name "python-pybiomart")
3774 (version "0.2.0")
3775 (source
3776 (origin
3777 (method git-fetch)
3778 (uri (git-reference
3779 (url "https://github.com/jrderuiter/pybiomart")
3780 (commit version)))
3781 (file-name (git-file-name name version))
3782 (sha256
3783 (base32 "1x5rd33sa0gwj4nizn02lsc675bbzsspz74f38mp0fbxdp7qnxv8"))))
3784 (build-system pyproject-build-system)
3785 (arguments
3786 (list
3787 #:test-flags
3788 ;; Attempts to access the web.
3789 #~(list "--ignore=tests/test_dataset.py")))
3790 (propagated-inputs
3791 (list python-future
3792 python-pandas
3793 python-requests
3794 python-requests-cache))
3795 (native-inputs
3796 (list python-pytest
3797 python-pytest-helpers-namespace
3798 python-pytest-mock
3799 python-setuptools
3800 python-sphinx
3801 python-sphinx-rtd-theme))
3802 (home-page "https://github.com/jrderuiter/pybiomart")
3803 (synopsis "A simple pythonic interface to biomart")
3804 (description
3805 "Pybiomart provides a simple pythonic interface to biomart.")
3806 (license license:expat)))
3807
3808(define-public python-pygam
3809 (package
3810 (name "python-pygam")
3811 (version "0.12.0")
3812 (source
3813 (origin
3814 (method git-fetch)
3815 (uri (git-reference
3816 (url "https://github.com/dswah/pyGAM")
3817 (commit (string-append "v" version))))
3818 (file-name (git-file-name name version))
3819 (sha256
3820 (base32 "0xf4hly8cxfj73il6l37bd48gygrmky2kyx9l270f1ivnpz1545a"))))
3821 (build-system pyproject-build-system)
3822 (arguments
3823 (list
3824 ;; tests: 161 passed, 1 skipped, 1 deselected, 7 warnings
3825 #:test-flags
3826 ;; Assertion is not equal.
3827 #~(list (string-append "--deselect=pygam/tests/test_gridsearch.py::"
3828 "test_gridsearch_all_dimensions_independent"))))
3829 (native-inputs
3830 (list python-matplotlib
3831 python-mock
3832 python-pytest
3833 python-setuptools))
3834 (propagated-inputs
3835 (list python-numpy
3836 python-pandas
3837 python-progressbar2
3838 python-scipy))
3839 (home-page "https://github.com/dswah/pyGAM")
3840 (synopsis "Generalized additive models in Python")
3841 (description
3842 "This tool is for building Generalized Additive Models in Python.
3843It emphasizes modularity and performance. The API will be immediately
3844familiar to anyone with experience of scikit-learn or scipy.")
3845 (license license:asl2.0)))
3846
3847(define bgen-sample-files
3848 (let* ((name "bgen-sample-files")
3849 (commit "7b1bc74f58b326ca19606fa5f3c6093d48367993")
3850 (revision "0")
3851 (version (git-version "0.0.0" revision commit)))
3852 (origin
3853 (method git-fetch)
3854 (uri (git-reference
3855 (url "https://github.com/fastlmm/bgen-sample-files")
3856 (commit commit)))
3857 (file-name (git-file-name name version))
3858 (sha256
3859 (base32 "1b8jkscccyspfr3y1b66xvwnljcha08r2i24v9d6hcm5zii0l54w")))))
3860
3861(define pynsptools-examples-files
3862 (let* ((name "pysnptools-examples-files")
3863 ;; taken from pysnptools/util/pysnptools.hashdown.json
3864 (commit "ed14e050b2b75e7f4ddb73d512fbe928bbdb2b85")
3865 (revision "0")
3866 (version (git-version "0.0.0" revision commit)))
3867 (origin
3868 (method git-fetch)
3869 (uri (git-reference
3870 (url "https://github.com/fastlmm/PySnpTools")
3871 (commit commit)))
3872 (file-name (git-file-name name version))
3873 (sha256
3874 (base32 "0hznpj15kx2sla16wlmcqz21n2vi2qb1493v30vz75hnm1m4iwm1"))
3875 (modules '((guix build utils)
3876 (ice-9 ftw)))
3877 (snippet
3878 #~(begin
3879 ;; Delete everything except for examples directory:
3880 (define (delete-except exceptions)
3881 (lambda (file)
3882 (unless (member file `("." ".." ,@exceptions))
3883 (delete-file-recursively file))))
3884 (for-each (delete-except '("pysnptools" "tests")) (scandir "."))
3885 (with-directory-excursion "pysnptools"
3886 (for-each (delete-except '("examples")) (scandir ".")))
3887 (with-directory-excursion "tests"
3888 (for-each (delete-except '("datasets")) (scandir "."))))))))
3889
3890(define-public python-pysnptools
3891 (package
3892 (name "python-pysnptools")
3893 (version "0.5.14")
3894 (source
3895 (origin
3896 (method url-fetch)
3897 (uri (pypi-uri "pysnptools" version))
3898 (sha256
3899 (base32 "1babnyky5fk93as1ybdvpz9x3x5099gkgscxflngzfswin23mspk"))))
3900 (build-system pyproject-build-system)
3901 (arguments
3902 (list
3903 #:test-flags
3904 #~(list
3905 ;; These tests require the bgen feature and an additional input.
3906 "--ignore" "pysnptools/distreader/bgen.py"
3907 "--ignore" "pysnptools/distreader/test_bgen2.py"
3908 "--ignore" "pysnptools/distreader/distreader.py"
3909 "-k" "not pysnptools.distreader.distdata.DistData.val \
3910and not pysnptools.distreader.disthdf5.DistHdf5.write \
3911and not pysnptools.distreader.distmemmap.DistMemMap.write"
3912 ;; These tests require network connection.
3913 "--ignore" "pysnptools/util/_example_file.py"
3914 "--ignore" "pysnptools/util/filecache/hashdown.py")
3915 #:phases
3916 #~(modify-phases %standard-phases
3917 (add-after 'unpack 'patch-data-path
3918 (lambda _
3919 (substitute* "pysnptools/util/pysnptools.hashdown.json"
3920 (("https://github\\.com/fastlmm/PySnpTools/\
3921raw/ed14e050b2b75e7f4ddb73d512fbe928bbdb2b85")
3922 (string-append "file://" #+pynsptools-examples-files)))
3923 (substitute* "pysnptools/util/bgen.hashdown.json"
3924 (("https://raw\\.githubusercontent\\.com\
3925/fastlmm/bgen-sample-files/7b1bc74f58b326ca19606fa5f3c6093d48367993")
3926 (string-append "file://" #+bgen-sample-files)))))
3927 (add-after 'unpack 'loosen-requirements
3928 (lambda _
3929 (substitute* "pyproject.toml"
3930 (("(h5py|psutil|wheel)>=[0-9.]*" all target)
3931 target)))))))
3932 (propagated-inputs
3933 (list python-bed-reader
3934 python-cloudpickle
3935 python-h5py
3936 python-more-itertools
3937 python-numpy
3938 python-pandas
3939 python-psutil
3940 python-scipy))
3941 (native-inputs
3942 (list python-pytest
3943 python-pytest-datadir
3944 python-pytest-doctestplus
3945 python-setuptools
3946 python-sphinx
3947 python-sphinx-rtd-theme))
3948 (home-page "http://microsoftgenomics.github.io/PySnpTools/")
3949 (synopsis "Library for reading and manipulating genetic data")
3950 (description
3951 "PySnpTools is a library for reading and manipulating genetic data. It
3952can, for example, efficiently read whole PLINK *.bed/bim/fam files or parts of
3953those files. It can also efficiently manipulate ranges of integers using set
3954operators such as union, intersection, and difference.")
3955 (license license:asl2.0)))
3956
3957(define-public python-ega-download-client
3958 ;; XXX: 5.2.1 (2024-04-03) it's the latest version without any work on
3959 ;; master branch, the project looks un-maintained.
3960 (package
3961 (name "python-ega-download-client")
3962 (version "5.2.1")
3963 (source
3964 (origin
3965 (method git-fetch)
3966 (uri (git-reference
3967 (url "https://github.com/EGA-archive/ega-download-client")
3968 (commit (string-append "v" version))))
3969 (file-name (git-file-name name version))
3970 (sha256
3971 (base32 "0wz36ii6sb65nknh56vr5ss6b446zy9iibz7jv3irgfas955jlrc"))))
3972 (build-system pyproject-build-system)
3973 (arguments
3974 (list
3975 ;; XXX: TypeError: mock_writing_files.<locals>.os_stat_mock() got an
3976 ;; unexpected keyword argument 'follow_symlinks'
3977 #:tests? #f
3978 ;; tests: 78 passed, 2 deselected, 1 warning
3979 #:test-flags
3980 ;; Test suite does a lot of fake os mocking and extensively hash
3981 ;; checking on a large amount of generated files (up to 150GiB each)
3982 ;; which would take some extra compute resources, therefor functional
3983 ;; and some of unit tests are excluded to relax the load.
3984 #~(list #$@(map (lambda (file) (string-append "--ignore="
3985 "tests/"
3986 file))
3987 (list "functional/"
3988 "unit/test_save_to_with_dataset.py"
3989 "unit/test_save_to_with_file.py"
3990 "unit/test_verify_output_dir.py"))
3991 #$@(map (lambda (test) (string-append "--deselect="
3992 "tests/unit/"
3993 "test_commands.py::"
3994 test))
3995 ;; requests.exceptions.RetryError: None: Max retries
3996 ;; exceeded with url:
3997 ;; https://test.data.server/metadata/datasets (Caused by
3998 ;; ResponseError('too many 503 error responses'))
3999 (list "test_error_5xx"
4000 "test_error_too_many_requests")))
4001 #:phases
4002 #~(modify-phases %standard-phases
4003 (add-after 'unpack 'relax-requirements
4004 (lambda _
4005 (substitute* "setup.py"
4006 (("==") ">=")))))))
4007 (propagated-inputs (list python-htsget python-psutil python-requests
4008 python-tqdm python-urllib3))
4009 (native-inputs
4010 (list nss-certs-for-test
4011 python-mock
4012 python-pyfakefs
4013 python-pytest
4014 python-responses
4015 python-setuptools))
4016 (home-page "https://github.com/EGA-archive/ega-download-client")
4017 (synopsis "EGA download client")
4018 (description "PyEGA3 is a tool for viewing and downloading files from
4019authorized EGA datasets. It uses the EGA data API and has several key
4020features:
4021
4022@itemize
4023@item Files are transferred over secure https connections and received
4024 unencrypted, so no need for decryption after download.
4025@item Downloads resume from where they left off in the event that the
4026 connection is interrupted.
4027@item Supports file segmenting and parallelized download of segments,
4028 improving overall performance.
4029@item After download completes, file integrity is verified using checksums.
4030@item Implements the GA4GH-compliant htsget protocol for download of genomic
4031 ranges for data files with accompanying index files.
4032@end itemize\n")
4033 (license license:asl2.0)))
4034
4035(define-public python-scdamandtools
4036 (package
4037 (name "python-scdamandtools")
4038 (version "1.0")
4039 (source (origin
4040 (method git-fetch)
4041 (uri (git-reference
4042 (url "https://github.com/KindLab/scDamAndTools")
4043 (commit (string-append "v" version))))
4044 (file-name (git-file-name name version))
4045 (sha256
4046 (base32
4047 "1mblw6cn5jqik6ky8cv7ry99z6jm1i4r71pzdfl398vrwbda65gd"))))
4048 (build-system pyproject-build-system)
4049 (arguments
4050 (list #:tests? #f)) ;there are none
4051 (propagated-inputs (list python-h5py
4052 python-numpy
4053 python-sortedcontainers
4054 python-pandas
4055 python-pysam
4056 python-tqdm))
4057 (native-inputs (list python-cython python-pytest python-setuptools))
4058 (home-page "https://github.com/KindLab/scDamAndTools")
4059 (synopsis "Functions for processing raw scDam&T-seq data")
4060 (description
4061 "This is a set of functions for processing raw scDam&T-seq data.
4062scDam&T-seq is a method to simultaneously measure protein-DNA interactions and
4063transcription from single cells (Rooijers et al., 2019). It combines a
4064DamID-based method to measure protein-DNA interactions and an adaptation of
4065CEL-Seq to measure transcription. The starting point of the workflow is raw
4066sequencing data and the end result are tables of UMI-unique DamID and CEL-Seq
4067counts.")
4068 (license license:expat)))
4069
4070(define-public python-scprep
4071 ;; XXX: Project has no update since <2023-06-19> and probably is not
4072 ;; compatible with Pandas 3 and NumPy 2.4.
4073 (package
4074 (name "python-scprep")
4075 (version "1.2.3")
4076 (source
4077 (origin
4078 (method git-fetch)
4079 (uri (git-reference
4080 (url "https://github.com/KrishnaswamyLab/scprep")
4081 (commit (string-append "v" version))))
4082 (file-name (git-file-name name version))
4083 (sha256
4084 (base32 "1dbmaix4bqaf9p1zw1fvk5a64kwdbg015q3ykc6rsmdwrcd2g5cz"))))
4085 (build-system pyproject-build-system)
4086 (arguments
4087 (list
4088 ;; tests: 326 passed
4089 #:test-flags
4090 ;; XXX: Mixture of remote data download and some assertion errors.
4091 ;;
4092 ;; Tests from "test/test_io.py" download data files from
4093 ;; <https://raw.githubusercontent.com/KrishnaswamyLab/scprep/>.
4094 #~(list "--ignore-files=test_io.py"
4095 (string-join
4096 (list "--exclude=(test.*dyngen.*" ;TODO: they need R packages
4097 "test_slingshot.*" ;
4098 "test_splatter_.*" ;
4099 "test_builtins"
4100 "test_combine_batches_errors"
4101 "test_conversion_sce"
4102 "test_conversion_spmatrix"
4103 "test_differential_expression"
4104 "test_differential_expression_error"
4105 "test_fcs"
4106 "test_fcs_PnN"
4107 "test_fcs_header_error"
4108 "test_fcs_reformat_meta"
4109 "test_generate_colorbar_dict"
4110 "test_install_bioc"
4111 "test_install_github_dependencies_None"
4112 "test_install_github_dependencies_True"
4113 "test_install_github_lib"
4114 "test_is_sparse_series"
4115 "test_builtins"
4116 "test_mtx"
4117 "test_scatter_rotate_mp4"
4118 "test_sparse_svd"
4119 "test_to_array_or_spmatrix_list_of_strings"
4120 "test_unzip_no_destination"
4121 ;; AttributeError: module 'rpy2' has no attribute
4122 ;; '__version__'
4123 "test_verbose"
4124 "test_conversion_list"
4125 "test_conversion_dict"
4126 "test_conversion_array"
4127 "test_conversion_dataframe"
4128 "test_conversion_anndata_missing"
4129 "test_r_traceback"
4130 ;; Pandas compatibility faileurs, see:
4131 ;; <https://github.com/KrishnaswamyLab/scprep/issues/144>.
4132 "test_batch_mean_center"
4133 "test_batch_mean_center_one_sample"
4134 "test_dense"
4135 "test_libsize_norm_rescale_integer"
4136 "test_libsize_norm_rescale_mean"
4137 "test_libsize_norm_rescale_median"
4138 "test_libsize_norm_rescale_none"
4139 "test_matrix_transpose"
4140 "test_pandas_series_rmatmul)")
4141 "|")
4142 "test")
4143 #:phases
4144 #~(modify-phases %standard-phases
4145 (add-after 'unpack 'relax-requirements
4146 (lambda _
4147 (substitute* "setup.py"
4148 ;; "pandas>=0.25,<2.1",
4149 ((",<2.1") ""))))
4150 (add-before 'check 'pre-check
4151 (lambda _
4152 (setenv "HOME" "/tmp"))))))
4153 (native-inputs
4154 (list python-fcsparser
4155 python-anndata
4156 python-h5py
4157 python-matplotlib
4158 python-parameterized
4159 python-nose2
4160 python-pynose
4161 python-requests
4162 python-rpy2
4163 python-setuptools
4164 python-tables))
4165 ;; Used by rpy2
4166 (inputs
4167 (list bash-minimal
4168 r-apeglm
4169 r-deseq2
4170 r-drimseq
4171 r-ggplot2
4172 r-lazyeval
4173 r-minimal
4174 r-qqman
4175 r-renv
4176 r-rlang
4177 r-slingshot
4178 #;r-splatter)) ;https://github.com/Oshlack/splatter
4179 (propagated-inputs
4180 (list python-decorator
4181 python-numpy
4182 python-packaging
4183 python-pandas
4184 python-scikit-learn
4185 python-scipy))
4186 (home-page "https://github.com/KrishnaswamyLab/scprep")
4187 (synopsis "Tools for loading, processing, and handling single cell data")
4188 (description
4189 "@code{scprep} provides an all-in-one framework for loading,
4190 preprocessing, and plotting matrices in Python, with a focus on single-cell
4191genomics.")
4192 (license license:expat)))
4193
4194(define-public python-snaptools
4195 (package
4196 (name "python-snaptools")
4197 (version "1.4.8")
4198 (source
4199 (origin
4200 (method url-fetch)
4201 (uri (pypi-uri "snaptools" version))
4202 (sha256
4203 (base32
4204 "1s5373g5jjbshh3q39zy7dlxr7nda6ksxq9d1gw46h82c4fsmfbn"))))
4205 (build-system pyproject-build-system)
4206 (arguments (list #:tests? #false)) ;there are none
4207 (propagated-inputs
4208 (list python-future
4209 python-h5py
4210 python-louvain
4211 python-numpy
4212 python-pybedtools
4213 python-pysam))
4214 (native-inputs (list python-setuptools))
4215 (home-page "https://github.com/r3fang/SnapTools")
4216 (synopsis "Tools for processing snap files" )
4217 (description
4218 "@code{SnapTools} can operate on snap files the following types of
4219operations:
4220
4221@itemize
4222@item index the reference genome before alignment;
4223@item align reads to the corresponding reference genome;
4224@item pre-process by convert pair-end reads into fragments, checking the
4225 mapping quality score, alignment and filtration;
4226@item create the cell-by-bin matrix.
4227@end itemize")
4228 (license license:asl2.0)))
4229
4230(define-public python-telomerecat
4231 (package
4232 (name "python-telomerecat")
4233 (version "4.0.2")
4234 (source
4235 (origin
4236 (method url-fetch)
4237 (uri (pypi-uri "telomerecat" version))
4238 (sha256
4239 (base32 "16mfdqmp0j6g3h26h59334w9lqb4qihqrlzwvgznj0fiqs1rkxn2"))))
4240 (build-system pyproject-build-system)
4241 (arguments (list #:tests? #false)) ;there are none
4242 (propagated-inputs (list python-click python-numpy python-pandas
4243 python-parabam python-pysam))
4244 (native-inputs (list python-setuptools))
4245 (home-page "https://github.com/cancerit/telomerecat")
4246 (synopsis "Telomere computational analysis tool")
4247 (description "Telomerecat is a tool for estimating the average telomere
4248length (TL) for a paired end, whole genome sequencing (WGS) sample.
4249
4250Telomerecat is adaptable, accurate and fast. The algorithm accounts for
4251sequencing amplification artifacts, anneouploidy (common in cancer samples)
4252and noise generated by WGS. For a high coverage WGS BAM file of around 100GB
4253telomerecat can produce an estimate in ~1 hour.")
4254 (license license:gpl3)))
4255
4256(define-public python-bioframe
4257 (package
4258 (name "python-bioframe")
4259 (version "0.8.0")
4260 (source
4261 (origin
4262 (method git-fetch)
4263 (uri (git-reference
4264 (url "https://github.com/open2c/bioframe")
4265 (commit (string-append "v" version))))
4266 (file-name (git-file-name name version))
4267 (sha256
4268 (base32 "06y7f3whmwg4ibcn9pa35k8m4fmnw9dkk8ibk5v4ij92s9n1r36r"))))
4269 (build-system pyproject-build-system)
4270 (arguments
4271 (list
4272 #:test-flags
4273 #~(list #$@(map (lambda (test) (string-append "--deselect=tests/" test))
4274 (list
4275 ;; Tests requiring network access.
4276 "test_resources.py::test_fetch_chromsizes"
4277 "test_resources.py::test_fetch_chromsizes_local_vs_ucsc"
4278 "test_resources.py::test_fetch_centromeres"
4279 ;; Attribute "dtype" are different
4280 "test_ops.py::test_overlap"
4281 "test_ops.py::test_closest"
4282 ;; AssertionError: assert np.False_
4283 "test_ops.py::test_assign_view")))
4284 #:phases
4285 #~(modify-phases %standard-phases
4286 (add-before 'check 'pre-check
4287 (lambda _ (setenv "MPLCONFIGDIR" "/tmp"))))))
4288 (native-inputs
4289 (list python-biopython
4290 python-hatchling
4291 python-pysam
4292 python-pytest))
4293 (propagated-inputs
4294 (list python-matplotlib
4295 python-numpy
4296 python-pandas
4297 python-pyyaml
4298 python-requests))
4299 (home-page "https://github.com/open2c/bioframe")
4300 (synopsis "Pandas utilities for tab-delimited and other genomic files")
4301 (description
4302 "This package is a library to enable flexible and scalable operations on
4303genomic interval dataframes in Python. Bioframe enables access to a rich set
4304of dataframe operations. Working in Python enables rapid visualization and
4305iteration of genomic analyses. The philosophy underlying bioframe is to
4306enable flexible operations. Instead of creating a function for every possible
4307use-case, we encourage users to compose functions to achieve their goals.")
4308 (license license:expat)))
4309
4310(define-public python-biom-format
4311 (package
4312 (name "python-biom-format")
4313 ;; 2.1.17 (2025-08-26); the latest changes provide support for fresh NumPy
4314 ;; and Pandas., see: <https://github.com/biocore/biom-format/issues/1003>,
4315 ;; <https://github.com/biocore/biom-format/issues/1001>.
4316 (properties '((commit . "0f3855c4af5dd5f33766badd8a6ba2dbdccf29dd")
4317 (revision . "0")))
4318 (version (git-version "2.1.17"
4319 (assoc-ref properties 'revision)
4320 (assoc-ref properties 'commit)))
4321 (source
4322 (origin
4323 (method git-fetch)
4324 (uri (git-reference
4325 (url "https://github.com/biocore/biom-format")
4326 (commit (assoc-ref properties 'commit))))
4327 (file-name (git-file-name name version))
4328 (sha256
4329 (base32 "1hqihr1hkx3g0p71vkzx5sk2k1cwrxhskxzxss6z9vxg1hwn27k0"))))
4330 (build-system pyproject-build-system)
4331 (arguments
4332 (list
4333 ;; tests: 378 passed, 7 skipped, 7 warnings
4334 #:test-flags
4335 ;; Doctests depend on Nose.
4336 #~(list "--ignore=doc/sphinxext/numpydoc/numpydoc/tests/")
4337 #:phases
4338 #~(modify-phases %standard-phases
4339 (add-before 'check 'remove-local-source
4340 (lambda _
4341 (copy-recursively "biom/tests" "tests")
4342 (delete-file-recursively "biom")
4343 (substitute* "tests/test_cli/test_validate_table.py"
4344 ;; Help finding "examples" directory.
4345 (("cur_path.rsplit\\(os.path.sep, 3\\)\\[0\\]")
4346 (format #f "~s" (getcwd)))))))))
4347 (native-inputs
4348 (list python-cython
4349 python-pytest
4350 python-setuptools))
4351 (propagated-inputs
4352 (list python-click
4353 python-h5py
4354 python-numpy
4355 python-pandas
4356 python-scipy))
4357 (home-page "https://www.biom-format.org")
4358 (synopsis "Biological Observation Matrix (BIOM) format utilities")
4359 (description
4360 "The BIOM file format is designed to be a general-use format for
4361representing counts of observations e.g. operational taxonomic units, KEGG
4362orthology groups or lipid types, in one or more biological samples
4363e.g. microbiome samples, genomes, metagenomes.")
4364 (license license:bsd-3)))
4365
4366(define-public python-pairtools
4367 (package
4368 (name "python-pairtools")
4369 (version "1.1.0-fix")
4370 (source (origin
4371 (method git-fetch)
4372 (uri (git-reference
4373 (url "https://github.com/open2c/pairtools")
4374 (commit (string-append "pairtools-v" version))))
4375 (file-name (git-file-name name version))
4376 (sha256
4377 (base32
4378 "0983vw4kb6frjncsnml4ahw3l7sixg1paz80s119iah2i086cw06"))))
4379 (build-system pyproject-build-system)
4380 (arguments
4381 (list
4382 #:phases
4383 '(modify-phases %standard-phases
4384 (add-after 'unpack 'patch-setup.py
4385 (lambda _
4386 ;; __NUMPY_SETUP__ is undefined.
4387 (substitute* "setup.py"
4388 ((".*__builtins__.__NUMPY_SETUP.*") ""))))
4389 (add-after 'unpack 'fix-references
4390 (lambda _
4391 (substitute* '("pairtools/cli/header.py"
4392 "pairtools/cli/merge.py"
4393 "pairtools/cli/sort.py")
4394 (("/bin/bash") (which "bash")))))
4395 (replace 'check
4396 (lambda* (#:key tests? #:allow-other-keys)
4397 (when tests?
4398 (with-directory-excursion "/tmp"
4399 (invoke "pytest" "-v"))))))))
4400 (native-inputs
4401 (list python-cython python-pytest python-setuptools))
4402 (propagated-inputs
4403 (list htslib ; for bgzip, looked up in PATH
4404 samtools ; looked up in PATH
4405 lz4 ; for lz4c
4406 python-bioframe
4407 python-click
4408 python-numpy
4409 python-pandas
4410 python-pysam
4411 python-pyyaml
4412 python-scipy))
4413 (home-page "https://github.com/open2c/pairtools")
4414 (synopsis "Process mapped Hi-C data")
4415 (description "Pairtools is a simple and fast command-line framework to
4416process sequencing data from a Hi-C experiment. Process pair-end sequence
4417alignments and perform the following operations:
4418
4419@itemize
4420@item detect ligation junctions (a.k.a. Hi-C pairs) in aligned paired-end
4421 sequences of Hi-C DNA molecules
4422@item sort @code{.pairs} files for downstream analyses
4423@item detect, tag and remove PCR/optical duplicates
4424@item generate extensive statistics of Hi-C datasets
4425@item select Hi-C pairs given flexibly defined criteria
4426@item restore @code{.sam} alignments from Hi-C pairs.
4427@end itemize
4428")
4429 (license license:expat)))
4430
4431(define-public python-readpaf
4432 (package
4433 (name "python-readpaf")
4434 (version "0.0.10")
4435 (source (origin
4436 (method url-fetch)
4437 (uri (pypi-uri "readpaf" version))
4438 (sha256
4439 (base32
4440 "15m6ffks4zwpp1ycwk6n02py6mw2yh7qr0vhpc178b91gldr97ia"))))
4441 (build-system pyproject-build-system)
4442 (arguments (list #:tests? #false)) ;there are none
4443 (propagated-inputs (list python-pandas))
4444 (native-inputs (list python-setuptools))
4445 (home-page "https://github.com/alexomics/read-paf")
4446 (synopsis "Minimap2 PAF file reader")
4447 (description
4448 "This is a fast parser for minimap2 PAF (Pairwise mApping Format)
4449files.")
4450 (license license:expat)))
4451
4452(define-public python-whatshap
4453 (package
4454 (name "python-whatshap")
4455 (version "2.8")
4456 (source
4457 (origin
4458 (method git-fetch)
4459 (uri (git-reference
4460 (url "https://github.com/whatshap/whatshap")
4461 (commit (string-append "v" version))))
4462 (file-name (git-file-name name version))
4463 (sha256
4464 (base32 "1iw753vvg33x32xvva42wflrksv4iwxqb818chhrlwq1djc7hz10"))))
4465 (build-system pyproject-build-system)
4466 (arguments
4467 (list
4468 #:test-flags
4469 #~(list "--pyargs" "whatshap"
4470 "tests")
4471 #:phases
4472 #~(modify-phases %standard-phases
4473 (add-before 'check 'remove-local-source
4474 (lambda _
4475 (delete-file-recursively "whatshap"))))))
4476 (native-inputs
4477 (list python-cython
4478 python-pytest
4479 python-pysam
4480 python-setuptools
4481 python-setuptools-scm))
4482 (propagated-inputs
4483 (list python-biopython
4484 python-matplotlib
4485 python-networkx
4486 python-pulp
4487 python-pyfaidx
4488 python-scipy
4489 python-xopen))
4490 (home-page "https://whatshap.readthedocs.io/")
4491 (synopsis "Read-based phasing of genomic variants")
4492 (description
4493 "WhatsHap is software for phasing genomic variants using DNA sequencing
4494reads, also called read-based phasing or haplotype assembly. It is especially
4495suitable for long reads, but works also well with short reads.")
4496 (license license:expat)))
4497
4498(define-public bioperl-minimal
4499 (package
4500 (name "bioperl-minimal")
4501 (version "1.7.0")
4502 (source
4503 (origin
4504 (method git-fetch)
4505 (uri (git-reference
4506 (url "https://github.com/bioperl/bioperl-live")
4507 (commit (string-append "release-"
4508 (string-map (lambda (c)
4509 (if (char=? c #\.)
4510 #\- c)) version)))))
4511 (file-name (git-file-name name version))
4512 (sha256
4513 (base32
4514 "0wl8yvzcls59pwwk6m8ahy87pwg6nnibzy5cldbvmcwg2x2w7783"))))
4515 (build-system perl-build-system)
4516 (arguments
4517 (let ((transitive-inputs
4518 (map (compose package-name cadr)
4519 (delete-duplicates
4520 (concatenate
4521 (map (compose package-transitive-target-inputs cadr)
4522 (package-inputs this-package)))))))
4523 `(#:phases
4524 (modify-phases %standard-phases
4525 (add-after 'install 'wrap-programs
4526 (lambda* (#:key outputs #:allow-other-keys)
4527 ;; Make sure all executables in "bin" find the required Perl
4528 ;; modules at runtime. As the PERL5LIB variable contains also
4529 ;; the paths of native inputs, we pick the transitive target
4530 ;; inputs from %build-inputs.
4531 (let* ((out (assoc-ref outputs "out"))
4532 (bin (string-append out "/bin/"))
4533 (path (string-join
4534 (cons (string-append out "/lib/perl5/site_perl")
4535 (map (lambda (name)
4536 (assoc-ref %build-inputs name))
4537 ',transitive-inputs))
4538 ":")))
4539 (for-each (lambda (file)
4540 (wrap-program file
4541 `("PERL5LIB" ":" prefix (,path))))
4542 (find-files bin "\\.pl$")))))))))
4543 (inputs
4544 (list bash-minimal perl-module-build perl-data-stag perl-libwww perl-uri))
4545 (native-inputs
4546 (list perl-test-most))
4547 (home-page "https://metacpan.org/release/BioPerl")
4548 (synopsis "Bioinformatics toolkit")
4549 (description
4550 "BioPerl is the product of a community effort to produce Perl code which
4551is useful in biology. Examples include Sequence objects, Alignment objects
4552and database searching objects. These objects not only do what they are
4553advertised to do in the documentation, but they also interact - Alignment
4554objects are made from the Sequence objects, Sequence objects have access to
4555Annotation and SeqFeature objects and databases, Blast objects can be
4556converted to Alignment objects, and so on. This means that the objects
4557provide a coordinated and extensible framework to do computational biology.")
4558 (license license:perl-license)))
4559
4560(define-public perl-bio-db-hts
4561 (package
4562 (name "perl-bio-db-hts")
4563 (version "3.01")
4564 (source
4565 (origin
4566 (method url-fetch)
4567 (uri (string-append "mirror://cpan/authors/id/A/AV/AVULLO/Bio-DB-HTS-"
4568 version ".tar.gz"))
4569 (sha256
4570 (base32
4571 "0hjg0igfkpvh27zdkdr6pa7cqm9n6r7cwz0np74cl4wmawgvr9hj"))))
4572 (build-system perl-build-system)
4573 (native-inputs
4574 (list perl-module-build pkg-config))
4575 (propagated-inputs
4576 (list bioperl-minimal htslib))
4577 (home-page "https://metacpan.org/release/Bio-DB-HTS")
4578 (synopsis "Perl interface to HTS library for DNA sequencing")
4579 (description "This is a Perl interface to the HTS library for DNA
4580sequencing.")
4581 (license license:asl2.0)))
4582
4583(define-public python-biopython
4584 (package
4585 (name "python-biopython")
4586 (version "1.87")
4587 (source (origin
4588 (method url-fetch)
4589 ;; use PyPi rather than biopython.org to ease updating
4590 (uri (pypi-uri "biopython" version))
4591 (sha256
4592 (base32
4593 "1gxxr5m98xxhyf2v16znkc42z7w0v5zmlbj22abrlrwv8l1whml4"))))
4594 (build-system pyproject-build-system)
4595 (arguments
4596 (list
4597 ;; tests: 501 passed
4598 #:phases
4599 #~(modify-phases %standard-phases
4600 (add-before 'check 'set-home
4601 ;; Some tests require a home directory to be set.
4602 (lambda _ (setenv "HOME" "/tmp")))
4603 (replace 'check
4604 (lambda* (#:key tests? #:allow-other-keys)
4605 (when tests?
4606 (with-directory-excursion "Tests"
4607 (invoke "python" "run_tests.py" "--offline"))))))))
4608 (native-inputs
4609 (list python-setuptools))
4610 (propagated-inputs
4611 (list python-numpy))
4612 (home-page "https://biopython.org/")
4613 (synopsis "Tools for biological computation in Python")
4614 (description
4615 "Biopython is a set of tools for biological computation including parsers
4616for bioinformatics files into Python data structures; interfaces to common
4617bioinformatics programs; a standard sequence class and tools for performing
4618common operations on them; code to perform data classification; code for
4619dealing with alignments; code making it easy to split up parallelizable tasks
4620into separate processes; and more.")
4621 (license (license:non-copyleft "http://www.biopython.org/DIST/LICENSE"))))
4622
4623(define-public python-biopython-1.73
4624 (package
4625 (inherit python-biopython)
4626 (version "1.73")
4627 (source (origin
4628 (method url-fetch)
4629 ;; use PyPi rather than biopython.org to ease updating
4630 (uri (pypi-uri "biopython" version))
4631 (sha256
4632 (base32
4633 "1q55jhf76z3k6is3psis0ckbki7df26x7dikpcc3vhk1vhkwribh"))))
4634 (arguments
4635 (list
4636 #:phases
4637 #~(modify-phases %standard-phases
4638 (add-after 'unpack 'python3.12-compatibility
4639 (lambda _
4640 ;; This was removed in Python 3.12
4641 (substitute* "Bio/Align/_aligners.c"
4642 (("case PyUnicode_WCHAR_KIND:") ""))
4643 ;; Py_TYPE was changed to an inline static function in Python
4644 ;; 3.11, so it cannot be used on the left-hand side.
4645 (substitute* "Bio/triemodule.c"
4646 (("Py_TYPE\\(&Trie_Type\\) = &PyType_Type;")
4647 "Py_SET_TYPE(&Trie_Type, &PyType_Type);"))
4648
4649 ;; PY_SSIZE_T_CLEAN must be defined if s# notation is used.
4650 ;; Note that this is no longer needed in Python 3.13.
4651 (substitute* '("Bio/triemodule.c" "Bio/motifs/_pwm.c")
4652 (("#include <Python.h>")
4653 "#define PY_SSIZE_T_CLEAN\n#include <Python.h>")
4654 (("int s;") "Py_ssize_t s;"))
4655
4656 ;; The U mode is implicit in Python 3.11.
4657 (substitute* '("Tests/test_KGML_nographics.py"
4658 "Tests/test_PDB.py")
4659 (("'rU'") "'r'"))
4660 (substitute* "Bio/SCOP/Cla.py"
4661 (("\"rU\"") "\"r\""))
4662
4663 ;; ExactPosition class needs to define __str__.
4664 (substitute* "Bio/SeqFeature.py"
4665 (("class UncertainPosition" m)
4666 (string-append "\
4667 # Must define this on Python 3.8 onwards because we redefine __repr__
4668 def __str__(self):
4669 return str(int(self))
4670
4671 def __add__(self, offset):
4672 # By default preserve any subclass
4673 return self.__class__(int(self) + offset)
4674" m)))
4675 ;; This was removed in Python 3.9 already
4676 (substitute* "Bio/KEGG/KGML/KGML_parser.py"
4677 (("self.entry.getchildren\\(\\)")
4678 "list(self.entry)")
4679 (("element.getchildren\\(\\)")
4680 "list(element)"))
4681 (substitute* "Bio/Phylo/NeXMLIO.py"
4682 (("node.getchildren\\(\\)")
4683 "list(node)")
4684 (("edge.getchildren\\(\\)")
4685 "list(edge)"))
4686 (substitute* "Bio/Entrez/Parser.py"
4687 (("child.getiterator\\(\\)")
4688 "list(child.iter())"))
4689 (substitute* "Bio/SeqIO/UniprotIO.py"
4690 (("alt_element.getiterator\\(NS \\+ ('.*')\\)" m something)
4691 (string-append "list(alt_element.iter(NS + " something "))"))
4692 (("link_element.getiterator\\(NS \\+ ('.*')\\)" m something)
4693 (string-append "list(link_element.iter(NS + " something "))"))
4694 (("loc_element.getiterator\\(NS \\+ ('.*')\\)" m something)
4695 (string-append "list(loc_element.iter(NS + " something "))"))
4696 (("element.getiterator\\(NS \\+ ('.*')\\)" m something)
4697 (string-append "list(element.iter(NS + " something "))")))))
4698 (add-after 'unpack 'numpy-compatibility
4699 (lambda _
4700 (substitute* '("Bio/Statistics/lowess.py"
4701 "Tests/test_Cluster.py")
4702 (("numpy.float32") "float")
4703 (("numpy.float") "float"))))
4704 (add-before 'check 'set-home
4705 ;; Some tests require a home directory to be set.
4706 (lambda _ (setenv "HOME" "/tmp")))
4707 (add-before 'check 'build-extensions
4708 (lambda _
4709 ;; Cython extensions have to be built before running the tests.
4710 (invoke "python3" "setup.py" "build_ext" "--inplace")))
4711 (add-after 'unpack 'patch-tests
4712 (lambda _
4713 (substitute* "Tests/run_tests.py"
4714 ;; Do not run doctests.
4715 (("self.tests.append\\(\"doctest\"\\)") "")
4716 (("opt == \"--offline\"") "True")))))))))
4717
4718(define-public python-scanrbp
4719 (package
4720 (name "python-scanrbp")
4721 (version "0.3")
4722 (home-page "https://github.com/grexor/scanrbp")
4723 (source
4724 (origin
4725 (method git-fetch)
4726 (uri (git-reference
4727 (url home-page)
4728 (commit "cdc3587cfdb3bc1c68154ce8538b8c985099eb9f")))
4729 (file-name (git-file-name name version))
4730 (sha256
4731 (base32
4732 "1bv25qhr1dwym2j7llsd3ggnjb9l3h4bchng7bp7cq57s9g0bnjz"))))
4733 (build-system pyproject-build-system)
4734 (arguments
4735 (list
4736 ;; There are no tests in repository. However, running the example from the
4737 ;; README is added as a test below. But that fails, because python-pybio
4738 ;; needs to access the internet.
4739 ;; TODO: Fix python-pybio to not (or optionally) require internet,
4740 ;; and then enable the tests here.
4741 #:tests? #f
4742 #:phases
4743 #~(modify-phases %standard-phases
4744 ;; Normally, importing scanRBP for the first time will first create
4745 ;; configuration file `~/.scanRBP` with a `data_folder` specified as
4746 ;; `~/scanRBP_data/`. Then `data.tar.gz` is downloaded from the github
4747 ;; project and placed into this directory.
4748 ;;
4749 ;; Instead of doing all that, all internet access can be prevented:
4750 ;; - copy the `data.tar.gz` tarball directly to the store,
4751 ;; - refer to that directory in the example configuration file,
4752 ;; - set the configuration file path to that example file.
4753 (add-before 'build 'patchpath
4754 (lambda* (#:key inputs outputs #:allow-other-keys)
4755 (let ((data-dir (string-append (assoc-ref outputs "out")
4756 "/share/scanRBP_data")))
4757 (substitute* "scanRBP/scanRBP.config.example"
4758 (("~/scanRBP_data") data-dir))
4759 (substitute* "scanRBP/config/__init__.py"
4760 (("config_fname = .*")
4761 (string-append
4762 "config_fname = \""
4763 (site-packages inputs outputs)
4764 "/scanRBP/scanRBP.config.example\"\n"))))))
4765 (add-before 'install 'copy-data
4766 (lambda* (#:key outputs #:allow-other-keys)
4767 (let ((data-dir (string-append (assoc-ref outputs "out")
4768 "/share/scanRBP_data"))
4769 (data-file "data/data.tar.gz"))
4770 ;; Copy the tarball. The tarball is unpacked when files are
4771 ;; imported in the [sanity-]check phase.
4772 (mkdir-p data-dir)
4773 (copy-file
4774 data-file
4775 (string-append data-dir "/" (basename data-file))))))
4776 (add-before 'check 'set-HOME
4777 ;; Set the HOME directory to make python-pybio work.
4778 (lambda _ (setenv "HOME" "/tmp")))
4779 (replace 'check
4780 ;; Run example from the README.
4781 ;; The test currently fails (and is therefore disabled), because
4782 ;; python-pybio currently needs to access the internet.
4783 ;; TODO: Verify results?
4784 (lambda* (#:key tests? #:allow-other-keys)
4785 (when tests?
4786 (invoke
4787 "scanRBP"
4788 "AAAGCGGCGACTTATTATATCCCCATATATTATATCTTCTTCTCTTATATATAAACCAGAGATAGATGTGTGTGGTGG"
4789 "example1"
4790 "-heatmap"
4791 "example1")))))))
4792 (propagated-inputs
4793 (list python-biopython
4794 python-matplotlib
4795 python-pybio
4796 python-scipy
4797 python-seaborn))
4798 (native-inputs
4799 (list python-setuptools))
4800 (synopsis "Tool for creating a RNA RBP heatmap in Python")
4801 (description "python-scanrbp is a Python package that provides the scanRBP
4802tool that loads RNA-protein binding motif PWM and computes the log-odds scores
4803for all the loaded RBPs across a given genomic sequence and draws a heatmap of
4804the scores.")
4805 (license license:gpl3)))
4806
4807(define-public python-splicekit
4808 (package
4809 (name "python-splicekit")
4810 (version "0.7")
4811 (home-page "https://github.com/bedapub/splicekit")
4812 (source
4813 (origin
4814 (method git-fetch)
4815 (uri (git-reference
4816 (url home-page)
4817 (commit "ded5dbec16b45e0df44750d9ae021ae2416ff921")))
4818 (file-name (git-file-name name version))
4819 (sha256
4820 (base32 "04l244qagbplksqp81w2s60pkymyhjq389xmqwsyc0n4q6b054h2"))))
4821 (build-system pyproject-build-system)
4822 (arguments
4823 (list
4824 #:tests? #false ;There are no tests.
4825 #:phases
4826 #~(modify-phases %standard-phases
4827 (add-after 'unpack 'adjust-requirements
4828 (lambda _
4829 (substitute* "setup.py"
4830 ;; bs4 is an alternative name for beautifulsoup4, only used to
4831 ;; avoid name squatting on pypi.
4832 (("bs4") "beautifulsoup4"))))
4833 ;; fireducks seems to be a binary-only python-panda replacement
4834 (add-after 'unpack 'remove-fireducks
4835 (lambda _
4836 (substitute* '("Snakefile"
4837 "splicekit/core/delta_dar.py"
4838 "splicekit/core/juan.py"
4839 "splicekit/core/motifs.py"
4840 "splicekit/judge/__init__.py")
4841 (("import fireducks.pandas as pd") "import pandas as pd"))
4842 (substitute* "splicekit.yaml"
4843 ((".*fireducks.*") "")))))))
4844 (native-inputs
4845 (list python-setuptools snakemake))
4846 (propagated-inputs
4847 (list python-beautifulsoup4
4848 python-dateutil
4849 python-levenshtein
4850 python-logomaker
4851 python-numpy
4852 python-pandas
4853 python-plotly
4854 python-psutil
4855 python-pybio
4856 python-pysam
4857 python-rangehttpserver
4858 python-requests
4859 python-scanrbp))
4860 (synopsis "Python toolkit for splicing analysis from short-read RNA-seq")
4861 (description
4862 "Splicekit is a modular platform for splicing analysis from short-read
4863RNA-seq datasets. The platform also integrates pybio for genomic operations
4864and scanRBP for RNA-protein binding studies. The whole analysis is
4865self-contained (one single directory) and the platform is written in Python,
4866in a modular way.")
4867 (license license:gpl3)))
4868
4869(define-public python-presto
4870 (package
4871 (name "python-presto")
4872 (version "0.7.6")
4873 (source
4874 (origin
4875 (method git-fetch)
4876 (uri (git-reference
4877 (url "https://github.com/immcantation/presto")
4878 (commit version)))
4879 (file-name (git-file-name name version))
4880 (sha256
4881 (base32 "1mcngwrxiw8r1j26r5crf7j0dscvhg3b8g1is3j3vq5jpnyn8jmz"))))
4882 (build-system pyproject-build-system)
4883 (arguments
4884 (list
4885 #:build-backend "setuptools.build_meta"
4886 ;; tests: 29 passed, 6 skipped, 3 deselected, 8 warnings
4887 #:test-flags
4888 ;; FileNotFoundError: [Errno 2] No such file or directory: 'cd-hit-est'
4889 #~(list "--ignore=tests/test_ClusterSets.py"
4890 ;; TypeError: seq argument should be a Seq or MutableSeq object
4891 #$@(map (lambda (test) (string-append "--deselect="
4892 "tests/"
4893 "test_EstimateError.py::"
4894 "TestEstimateError::"
4895 test))
4896 (list "test_calculateDistances"
4897 "test_countMismatches"
4898 "test_initializeMismatchDictionary")))))
4899 (native-inputs
4900 (list python-pytest
4901 python-setuptools))
4902 (propagated-inputs
4903 (list muscle
4904 python-biopython
4905 python-numpy
4906 python-pandas
4907 python-pyyaml
4908 python-scipy
4909 vsearch))
4910 (home-page "https://github.com/immcantation/presto")
4911 (synopsis "The REpertoire Sequencing TOolkit")
4912 (description "Presto is a python toolkit for processing raw reads from
4913high-throughput sequencing of B cell and T cell repertoires.")
4914 (license license:agpl3)))
4915
4916(define-public python-changeo
4917 (package
4918 (name "python-changeo")
4919 (version "1.3.4")
4920 (source
4921 (origin
4922 (method url-fetch)
4923 (uri (pypi-uri "changeo" version))
4924 (sha256
4925 (base32 "0jm4chddpl929a8daicp9mv14nwzf2hajpjfhzckg6x8cpgc1087"))))
4926 (build-system pyproject-build-system)
4927 (arguments
4928 (list
4929 #:build-backend "setuptools.build_meta"))
4930 (native-inputs
4931 (list python-pytest
4932 python-setuptools))
4933 (propagated-inputs
4934 (list python-airr
4935 python-biopython
4936 python-importlib-resources
4937 python-numpy
4938 python-packaging
4939 python-pandas
4940 python-presto
4941 python-pyyaml
4942 python-scipy))
4943 (home-page "http://changeo.readthedocs.io")
4944 (synopsis "Repertoire clonal assignment toolkit")
4945 (description "Change-O is a collection of tools for processing the output
4946of V(D)J alignment tools, assigning clonal clusters to immunoglobulin (Ig)
4947sequences, and reconstructing germline sequences.")
4948 (license license:gpl3)))
4949
4950(define-public python-fastalite
4951 (package
4952 (name "python-fastalite")
4953 (version "0.4.1")
4954 (source
4955 (origin
4956 (method git-fetch)
4957 (uri (git-reference
4958 (url "https://github.com/nhoffman/fastalite")
4959 (commit version)))
4960 (file-name (git-file-name name version))
4961 (sha256
4962 (base32 "19sps1l8k2vp7sj943gccabfkr2h3fn1n93sn28h9gay2ywc41ly"))))
4963 (build-system pyproject-build-system)
4964 (arguments
4965 (list
4966 #:test-backend #~'unittest
4967 #:phases
4968 #~(modify-phases %standard-phases
4969 (add-after 'unpack 'set-version
4970 (lambda _
4971 ;; This version file is expected to be created with git describe.
4972 (mkdir-p "fastalite/data")
4973 (with-output-to-file "fastalite/data/ver"
4974 (lambda () (display #$version))))))))
4975 (native-inputs
4976 (list python-setuptools))
4977 (home-page "https://github.com/nhoffman/fastalite")
4978 (synopsis "Simplest possible FASTA parser")
4979 (description "This library implements a FASTA and a FASTQ parser without
4980relying on a complex dependency tree.")
4981 (license license:expat)))
4982
4983(define-public biosoup
4984 (package
4985 (name "biosoup")
4986 (version "0.11.0")
4987 (source
4988 (origin
4989 (method git-fetch)
4990 (uri (git-reference
4991 (url "https://github.com/rvaser/biosoup")
4992 (commit version)))
4993 (file-name (git-file-name name version))
4994 (sha256
4995 (base32
4996 "0vn1hj3h152iwahnrzghqll34qaphchi07klb3j70vgc248micbz"))))
4997 (build-system cmake-build-system)
4998 (arguments
4999 (list
5000 #:phases
5001 #~(modify-phases %standard-phases
5002 (add-after 'unpack 'enable-testing
5003 (lambda _
5004 (substitute* "CMakeLists.txt"
5005 (("target_link_libraries\\(biosoup_test")
5006 "enable_testing()
5007 add_test(NAME biosoup-test COMMAND biosoup_test)
5008 target_link_libraries(biosoup_test")))))))
5009 (native-inputs
5010 (list googletest))
5011 (home-page "https://github.com/rvaser/biosoup")
5012 (synopsis "C++ support library for bioinformatics tools")
5013 (description "Biosoup is a C++ collection of header-only data structures
5014used for storage and logging in bioinformatics tools.")
5015 (license license:expat)))
5016
5017(define-public bioparser
5018 (package
5019 (name "bioparser")
5020 (version "3.1.0")
5021 (source
5022 (origin
5023 (method git-fetch)
5024 (uri (git-reference
5025 (url "https://github.com/rvaser/bioparser")
5026 (commit version)))
5027 (file-name (git-file-name name version))
5028 (sha256
5029 (base32
5030 "057zb3g8qyvbkbfzgkygrf0iphz3v4icm13pchxzrafiy7zkbmrq"))))
5031 (build-system cmake-build-system)
5032 (arguments
5033 (list
5034 #:phases
5035 #~(modify-phases %standard-phases
5036 (add-after 'unpack 'enable-testing
5037 (lambda _
5038 (substitute* "CMakeLists.txt"
5039 (("target_link_libraries\\(bioparser_test")
5040 "enable_testing()
5041 add_test(NAME bioparser-test COMMAND bioparser_test)
5042 target_link_libraries(bioparser_test")))))))
5043 (inputs
5044 (list biosoup))
5045 (propagated-inputs
5046 (list zlib))
5047 (native-inputs
5048 (list googletest))
5049 (home-page "https://github.com/rvaser/bioparser")
5050 (synopsis "C++ library for parsing several formats in bioinformatics")
5051 (description "Bioparser is a C++ header only parsing library for several
5052bioinformatics formats (FASTA/Q, MHAP/PAF/SAM), with support for zlib
5053compressed files.")
5054 (license license:expat)))
5055
5056(define-public python-circe
5057 (package
5058 (name "python-circe")
5059 (version "0.4.0")
5060 (source
5061 (origin
5062 (method git-fetch)
5063 (uri (git-reference
5064 (url "https://github.com/cantinilab/circe")
5065 (commit (string-append "v" version))))
5066 (file-name (git-file-name name version))
5067 (sha256
5068 (base32 "0im5h9a759v1mh8a9mz12bn7r1qb9dyds1qcr3q04w71y1jwl1rz"))))
5069 (build-system pyproject-build-system)
5070 (arguments
5071 (list
5072 ;; tests: 19 passed, 1 deselected, 3 warnings
5073 #:test-flags
5074 ;; Network access is required to reach data from <www.ensembl.org>.
5075 #~(list "--deselect=tests/test_network/test_network.py::test_network_atac")
5076 #:phases
5077 #~(modify-phases %standard-phases
5078 (add-after 'unpack 'relax-requirements
5079 (lambda _
5080 (substitute* "pyproject.toml"
5081 (("'cmake',") ""))))
5082 ;; Numba needs a writable dir to cache functions.
5083 (add-before 'build 'set-numba-cache-dir
5084 (lambda _ (setenv "NUMBA_CACHE_DIR" "/tmp"))))))
5085 (native-inputs
5086 (list python-cython
5087 python-pybiomart
5088 python-pytest
5089 python-setuptools))
5090 (inputs
5091 (list lapack
5092 openblas))
5093 (propagated-inputs
5094 (list python-anndata
5095 python-attrs
5096 python-dask
5097 python-distributed
5098 python-joblib
5099 python-numpy
5100 python-pandas
5101 python-rich
5102 python-scanpy
5103 python-scikit-learn
5104 ;; [optinal]
5105 python-pybiomart))
5106 (home-page "https://github.com/cantinilab/circe")
5107 (synopsis "Cis-regulatory interactions between chromatin regions")
5108 (description "Circe is a Python package for inferring co-accessibility
5109networks from single-cell ATAC-seq data, using skggm for the graphical lasso
5110and python-scanpy for data processing.")
5111 (license license:gpl3)))
5112
5113(define-public qtltools
5114 (package
5115 (name "qtltools")
5116 (version "1.3.1")
5117 (source (origin
5118 (method url-fetch/tarbomb)
5119 (uri (string-append "https://qtltools.github.io/qtltools/"
5120 "binaries/QTLtools_" version
5121 "_source.tar.gz"))
5122 (sha256
5123 (base32
5124 "13gdry5l43abn3464fmk8qzrxgxnxah2612r66p9dzhhl92j30cd"))))
5125 (build-system gnu-build-system)
5126 (arguments
5127 `(#:tests? #f ; no tests included
5128 #:make-flags
5129 ,#~(list (string-append "BOOST_INC="
5130 #$(this-package-input "boost") "/include")
5131 (string-append "BOOST_LIB="
5132 #$(this-package-input "boost") "/lib")
5133 (string-append "HTSLD_INC="
5134 #$(this-package-input "htslib") "/include")
5135 (string-append "HTSLD_LIB="
5136 #$(this-package-input "htslib") "/lib")
5137 (string-append "RMATH_INC="
5138 #$(this-package-input "rmath-standalone")
5139 "/include")
5140 (string-append "RMATH_LIB="
5141 #$(this-package-input "rmath-standalone")
5142 "/lib"))
5143 #:phases
5144 (modify-phases %standard-phases
5145 (add-after 'unpack 'fix-linkage
5146 (lambda _
5147 (substitute* "qtltools/Makefile"
5148 (("libboost_iostreams.a")
5149 "libboost_iostreams.so")
5150 (("libboost_program_options.a")
5151 "libboost_program_options.so")
5152 (("-lblas") "-lopenblas"))))
5153 (add-before 'build 'chdir
5154 (lambda _ (chdir "qtltools")))
5155 (replace 'configure
5156 (lambda _
5157 (substitute* "qtltools/Makefile"
5158 (("LIB_FLAGS=-lz")
5159 "LIB_FLAGS=-lz -lcrypto -lssl")
5160 (("LIB_FILES=\\$\\(RMATH_LIB\\)/libRmath.a \
5161\\$\\(HTSLD_LIB\\)/libhts.a \
5162\\$\\(BOOST_LIB\\)/libboost_iostreams.a \
5163\\$\\(BOOST_LIB\\)/libboost_program_options.a")
5164 "LIB_FILES=$(RMATH_LIB)/libRmath.so \
5165$(HTSLD_LIB)/libhts.so \
5166$(BOOST_LIB)/libboost_iostreams.so \
5167$(BOOST_LIB)/libboost_program_options.so"))))
5168 (replace 'install
5169 (lambda* (#:key outputs #:allow-other-keys)
5170 (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
5171 (mkdir-p bin)
5172 (install-file "bin/QTLtools" bin)))))))
5173 (inputs
5174 (list curl
5175 gsl
5176 boost
5177 rmath-standalone
5178 htslib-1.3
5179 openssl
5180 openblas
5181 zlib))
5182 (home-page "https://qtltools.github.io/qtltools/")
5183 (synopsis "Tool set for molecular QTL discovery and analysis")
5184 (description "QTLtools is a tool set for molecular QTL discovery
5185and analysis. It allows going from the raw genetic sequence data to
5186collection of molecular @dfn{Quantitative Trait Loci} (QTLs) in few
5187easy-to-perform steps.")
5188 (license license:gpl3+)))
5189
5190(define-public bpp-core
5191 (package
5192 (name "bpp-core")
5193 (version "2.4.1")
5194 (source
5195 (origin
5196 (method git-fetch)
5197 (uri (git-reference
5198 (url "https://github.com/BioPP/bpp-core")
5199 (commit (string-append "v" version))))
5200 (file-name (git-file-name name version))
5201 (sha256
5202 (base32 "0ma2cl677l7s0n5sffh66cy9lxp5wycm50f121g8rx85p95vkgwv"))))
5203 (build-system cmake-build-system)
5204 (arguments
5205 (list #:phases
5206 #~(modify-phases %standard-phases
5207 (add-after 'unpack 'add-missing-header
5208 (lambda _
5209 (substitute* "src/Bpp/Graph/GlobalGraph.cpp"
5210 (("include <vector>" all)
5211 (string-append all "\n#include <limits>"))))))))
5212 (home-page "https://pbil.univ-lyon1.fr/bpp-doc/bpp-core/html/index.html")
5213 (synopsis "C++ libraries for Bioinformatics")
5214 (description
5215 "Bio++ is a set of C++ libraries for Bioinformatics, including sequence
5216analysis, phylogenetics, molecular evolution and population genetics. It is
5217Object Oriented and is designed to be both easy to use and computer efficient.
5218Bio++ intends to help programmers to write computer expensive programs, by
5219providing them a set of re-usable tools.")
5220 (license license:cecill-c)))
5221
5222(define-public bpp-phyl
5223 (package
5224 (name "bpp-phyl")
5225 (version "2.4.1")
5226 (source (origin
5227 (method git-fetch)
5228 (uri (git-reference
5229 (url "https://github.com/BioPP/bpp-phyl")
5230 (commit (string-append "v" version))))
5231 (file-name (git-file-name name version))
5232 (sha256
5233 (base32
5234 "192zks6wyk903n06c2lbsscdhkjnfwms8p7jblsmk3lvjhdipb20"))))
5235 (build-system cmake-build-system)
5236 (inputs
5237 (list bpp-core bpp-seq))
5238 (home-page "https://pbil.univ-lyon1.fr/bpp-doc/bpp-phyl/html/")
5239 (synopsis "Bio++ phylogenetic library")
5240 (description
5241 "Bio++ is a set of C++ libraries for Bioinformatics, including sequence
5242analysis, phylogenetics, molecular evolution and population genetics. This
5243library provides phylogenetics-related modules.")
5244 (license license:cecill-c)))
5245
5246(define-public bpp-phyl-omics
5247 (package
5248 (name "bpp-phyl-omics")
5249 (version "2.4.1")
5250 (source
5251 (origin
5252 (method git-fetch)
5253 (uri (git-reference
5254 (url "https://github.com/BioPP/bpp-phyl-omics")
5255 (commit (string-append "v" version))))
5256 (file-name (git-file-name name version))
5257 (sha256
5258 (base32 "172psb8njkjwg3cd6gdy5w0mq8f0817v635yw4bk7146aggjzl1h"))))
5259 (build-system cmake-build-system)
5260 (arguments
5261 (list #:tests? #f)) ; No test provided.
5262 (inputs
5263 (list bpp-core
5264 bpp-phyl
5265 bpp-seq
5266 bpp-seq-omics))
5267 (home-page "https://github.com/BioPP/bpp-phyl-omics")
5268 (synopsis "Bio++ phylogenetic library genomics components")
5269 (description
5270 "This library contains the genomics components of the Bio++ phylogenetics
5271library. It is part of the Bio++ project.")
5272 (license license:cecill)))
5273
5274(define-public bpp-popgen
5275 (package
5276 (name "bpp-popgen")
5277 (version "2.4.1")
5278 (source (origin
5279 (method git-fetch)
5280 (uri (git-reference
5281 (url "https://github.com/BioPP/bpp-popgen")
5282 (commit (string-append "v" version))))
5283 (file-name (git-file-name name version))
5284 (sha256
5285 (base32
5286 "0bz0fhrq3dri6a0hvfc3zlvrns8mrzzlnicw5pyfa812gc1qwfvh"))))
5287 (build-system cmake-build-system)
5288 (arguments
5289 (list #:tests? #f)) ; There are no tests.
5290 (inputs
5291 (list bpp-core bpp-seq))
5292 (home-page "https://pbil.univ-lyon1.fr/bpp-doc/bpp-popgen/html/")
5293 (synopsis "Bio++ population genetics library")
5294 (description
5295 "Bio++ is a set of C++ libraries for Bioinformatics, including sequence
5296analysis, phylogenetics, molecular evolution and population genetics. This
5297library provides population genetics-related modules.")
5298 (license license:cecill-c)))
5299
5300(define-public bpp-seq
5301 (package
5302 (name "bpp-seq")
5303 (version "2.4.1")
5304 (source (origin
5305 (method git-fetch)
5306 (uri (git-reference
5307 (url "https://github.com/BioPP/bpp-seq")
5308 (commit (string-append "v" version))))
5309 (file-name (git-file-name name version))
5310 (sha256
5311 (base32 "1mc09g8jswzsa4wgrfv59jxn15ys3q8s0227p1j838wkphlwn2qk"))))
5312 (build-system cmake-build-system)
5313 (inputs
5314 (list bpp-core))
5315 (home-page "https://pbil.univ-lyon1.fr/bpp-doc/bpp-seq/html/")
5316 (synopsis "Bio++ sequence library")
5317 (description
5318 "Bio++ is a set of C++ libraries for Bioinformatics, including sequence
5319analysis, phylogenetics, molecular evolution and population genetics. This
5320library provides sequence-related modules.")
5321 (license license:cecill-c)))
5322
5323(define-public bpp-seq-omics
5324 (package
5325 (name "bpp-seq-omics")
5326 (version "2.4.1")
5327 (source (origin
5328 (method git-fetch)
5329 (uri (git-reference
5330 (url "https://github.com/BioPP/bpp-seq-omics")
5331 (commit (string-append "v" version))))
5332 (file-name (git-file-name name version))
5333 (sha256
5334 (base32 "1sc2xdfnfp5a6qihplp49rgrqmj89898avfy9bqaq1g2fajppgjj"))))
5335 (build-system cmake-build-system)
5336 (inputs
5337 (list bpp-core bpp-seq))
5338 (home-page "https://github.com/BioPP/bpp-seq-omics")
5339 (synopsis "Bio++ sequence library genomics components")
5340 (description
5341 "This library contains the genomics components of the Bio++ sequence library.
5342It is part of the Bio++ project.")
5343 (license license:cecill)))
5344
5345(define-public bppsuite
5346 (package
5347 (name "bppsuite")
5348 (version "2.4.1")
5349 (source (origin
5350 (method git-fetch)
5351 (uri (git-reference
5352 (url "https://github.com/BioPP/bppsuite")
5353 (commit (string-append "v" version))))
5354 (file-name (git-file-name name version))
5355 (sha256
5356 (base32
5357 "1wdwcgczqbc3m116vakvi0129wm3acln3cfc7ivqnalwvi6lrpds"))))
5358 (build-system cmake-build-system)
5359 (arguments
5360 (list #:tests? #f)) ; There are no tests.
5361 (native-inputs
5362 (list groff man-db texinfo))
5363 (inputs
5364 (list bpp-core bpp-seq bpp-phyl bpp-popgen))
5365 (home-page "https://github.com/BioPP")
5366 (synopsis "Bioinformatics tools written with the Bio++ libraries")
5367 (description
5368 "Bio++ is a set of C++ libraries for Bioinformatics, including sequence
5369analysis, phylogenetics, molecular evolution and population genetics. This
5370package provides command line tools using the Bio++ library.")
5371 (license license:cecill-c)))
5372
5373(define-public blast+
5374 (package
5375 (name "blast+")
5376 (version "2.17.0")
5377 (source (origin
5378 (method url-fetch)
5379 (uri (string-append
5380 "https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/"
5381 version "/ncbi-blast-" version "+-src.tar.gz"))
5382 (sha256
5383 (base32
5384 "0ix1bqgaywi3ggis4qvaipb0mk3llhgf52vmc97f744risl5f82h"))
5385 (modules '((guix build utils)))
5386 (snippet
5387 '(begin
5388 ;; Remove bundled bzip2, zlib and pcre.
5389 (delete-file-recursively "c++/src/util/compress/bzip2")
5390 (delete-file-recursively "c++/src/util/compress/zlib")
5391 (delete-file-recursively "c++/src/util/regexp")
5392 (substitute* "c++/src/util/compress/Makefile.in"
5393 (("bzip2 zlib api") "api"))
5394 ;; Remove useless msbuild directory
5395 (delete-file-recursively
5396 "c++/src/build-system/project_tree_builder/msbuild")
5397
5398 ;; Build reproducibly.
5399 ;; Do not record the kernel version
5400 (substitute* "c++/src/build-system/configure"
5401 (("kver=.*") "kver=\"\""))
5402 ;; Do not generate random numbers.
5403 (substitute* "c++/scripts/common/impl/define_random_macros.sh"
5404 (("#define NCBI_RANDOM_VALUE_MAX 0xffffffffu" m)
5405 (string-append m "
5406#define NCBI_RANDOM_VALUE_0 2845495105u
5407#define NCBI_RANDOM_VALUE_1 2158634051u
5408#define NCBI_RANDOM_VALUE_2 4072202242u
5409#define NCBI_RANDOM_VALUE_3 902228395u
5410#define NCBI_RANDOM_VALUE_4 1353323915u
5411#define NCBI_RANDOM_VALUE_5 574823513u
5412#define NCBI_RANDOM_VALUE_6 4119501261u
5413#define NCBI_RANDOM_VALUE_7 2477640938u
5414#define NCBI_RANDOM_VALUE_8 2776595395u
5415#define NCBI_RANDOM_VALUE_9 270550684u
5416"))
5417 (("cksum") "cksum >/dev/null"))))))
5418 (build-system gnu-build-system)
5419 (arguments
5420 (list
5421 ;; There are two(!) tests for this massive library, and both fail with
5422 ;; "unparsable timing stats".
5423 ;; ERR [127] -- [serial/datatool] datatool.sh (unparsable timing stats)
5424 ;; ERR [127] -- [serial/datatool] datatool_xml.sh (unparsable timing stats)
5425 #:tests? #f
5426 #:out-of-source? #t
5427 #:parallel-build? #f ;not supported
5428 #:phases
5429 #~(modify-phases %standard-phases
5430 (add-before 'configure 'set-HOME
5431 ;; $HOME needs to be set at some point during the configure phase
5432 (lambda _ (setenv "HOME" "/tmp")))
5433 (add-after 'unpack 'enter-dir
5434 (lambda _ (chdir "c++")))
5435 (add-after 'enter-dir 'fix-build-system
5436 (lambda _
5437 (define (which* cmd)
5438 (cond ((string=? cmd "date")
5439 ;; make call to "date" deterministic
5440 "date -d @0")
5441 ((which cmd)
5442 => identity)
5443 (else
5444 (format (current-error-port)
5445 "WARNING: Unable to find absolute path for ~s~%"
5446 cmd)
5447 #false)))
5448
5449 ;; Rewrite hardcoded paths to various tools
5450 (substitute* (append '("src/build-system/configure.ac"
5451 "src/build-system/configure"
5452 "src/build-system/helpers/run_with_lock.c"
5453 "scripts/common/impl/if_diff.sh"
5454 "scripts/common/impl/run_with_lock.sh"
5455 "src/build-system/Makefile.configurables.real"
5456 "src/build-system/Makefile.in.top"
5457 "src/build-system/Makefile.meta.gmake=no"
5458 "src/build-system/Makefile.meta.in"
5459 "src/build-system/Makefile.meta_l"
5460 "src/build-system/Makefile.meta_p"
5461 "src/build-system/Makefile.meta_r"
5462 "src/build-system/Makefile.mk.in"
5463 "src/build-system/Makefile.requirements"
5464 "src/build-system/Makefile.rules_with_autodep.in")
5465 (find-files "scripts/common/check" "\\.sh$"))
5466 (("(/usr/bin/|/bin/)([a-z][-_.a-z]*(\\+\\+)?)" all dir cmd)
5467 (or (which* cmd) all)))
5468
5469 (substitute* (find-files "src/build-system" "^config.*")
5470 (("LN_S=/bin/\\$LN_S") (string-append "LN_S=" (which "ln")))
5471 (("^PATH=.*") ""))
5472
5473 ;; rewrite "/var/tmp" in check script
5474 (substitute* "scripts/common/check/check_make_unix.sh"
5475 (("/var/tmp") "/tmp"))
5476
5477 ;; do not reset PATH
5478 (substitute* (find-files "scripts/common/impl/" "\\.sh$")
5479 (("^ *PATH=.*") "")
5480 (("action=/bin/") "action=")
5481 (("export PATH") ":"))))
5482 (replace 'configure
5483 (lambda _
5484 (let ((lib (string-append #$output:lib "/lib"))
5485 (include (string-append #$output:include
5486 "/include/ncbi-tools++")))
5487 ;; The 'configure' script doesn't recognize things like
5488 ;; '--enable-fast-install'.
5489 (invoke "./configure.orig"
5490 (string-append "--with-build-root=" (getcwd) "/build")
5491 (string-append "--prefix=" #$output)
5492 (string-append "--libdir=" lib)
5493 (string-append "--includedir=" include)
5494 (string-append "--with-bz2="
5495 #$(this-package-input "bzip2"))
5496 (string-append "--with-z="
5497 #$(this-package-input "zlib"))
5498 (string-append "--with-pcre="
5499 #$(this-package-input "pcre"))
5500 ;; Each library is built twice by default, once
5501 ;; with "-static" in its name, and again
5502 ;; without.
5503 "--without-static"
5504 "--with-dll")))))))
5505 (outputs '("out" ; 21 MB
5506 "lib" ; 226 MB
5507 "include")) ; 33 MB
5508 (inputs
5509 (list bzip2
5510 lmdb
5511 zlib
5512 pcre
5513 perl
5514 python-wrapper
5515 sqlite))
5516 (native-inputs
5517 (list cpio))
5518 (home-page "https://blast.ncbi.nlm.nih.gov")
5519 (synopsis "Basic local alignment search tool")
5520 (description
5521 "BLAST is a popular method of performing a DNA or protein sequence
5522similarity search, using heuristics to produce results quickly. It also
5523calculates an “expect value” that estimates how many matches would have
5524occurred at a given score by chance, which can aid a user in judging how much
5525confidence to have in an alignment.")
5526 ;; Most of the sources are in the public domain, with the following
5527 ;; exceptions:
5528 ;; * Expat:
5529 ;; * ./c++/include/util/bitset/
5530 ;; * ./c++/src/html/ncbi_menu*.js
5531 ;; * Boost license:
5532 ;; * ./c++/include/util/impl/floating_point_comparison.hpp
5533 ;; * LGPL 2+:
5534 ;; * ./c++/include/dbapi/driver/odbc/unix_odbc/
5535 ;; * ASL 2.0:
5536 ;; * ./c++/src/corelib/teamcity_*
5537 (license (list license:public-domain
5538 license:expat
5539 license:boost1.0
5540 license:lgpl2.0+
5541 license:asl2.0))))
5542
5543(define-public bless
5544 (package
5545 (name "bless")
5546 (version "1p02")
5547 (source (origin
5548 (method url-fetch)
5549 (uri (string-append "mirror://sourceforge/bless-ec/bless.v"
5550 version ".tgz"))
5551 (sha256
5552 (base32
5553 "0rm0gw2s18dqwzzpl3c2x1z05ni2v0xz5dmfk3d33j6g4cgrlrdd"))
5554 (modules '((guix build utils)))
5555 (snippet
5556 `(begin
5557 ;; Remove bundled boost, pigz, zlib, and .git directory
5558 ;; FIXME: also remove bundled sources for murmurhash3 and
5559 ;; kmc once packaged.
5560 (delete-file-recursively "boost")
5561 (delete-file-recursively "pigz")
5562 (delete-file-recursively "google-sparsehash")
5563 (delete-file-recursively "zlib")
5564 (delete-file-recursively ".git")))))
5565 (build-system gnu-build-system)
5566 (arguments
5567 `(#:tests? #f ;no "check" target
5568 #:make-flags
5569 ,#~(list (string-append "ZLIB="
5570 #$(this-package-input "zlib")
5571 "/lib/libz.so")
5572 (string-append "LDFLAGS="
5573 (string-join '("-lboost_filesystem"
5574 "-lboost_system"
5575 "-lboost_iostreams"
5576 "-lz"
5577 "-fopenmp"))))
5578 #:phases
5579 (modify-phases %standard-phases
5580 (add-after 'unpack 'do-not-build-bundled-pigz
5581 (lambda* (#:key inputs outputs #:allow-other-keys)
5582 (substitute* "Makefile"
5583 (("cd pigz/pigz-2.3.3; make") ""))))
5584 (add-after 'unpack 'patch-paths-to-executables
5585 (lambda* (#:key inputs outputs #:allow-other-keys)
5586 (substitute* "parse_args.cpp"
5587 (("kmc_binary = .*")
5588 (string-append "kmc_binary = \""
5589 (assoc-ref outputs "out")
5590 "/bin/kmc\";"))
5591 (("pigz_binary = .*")
5592 (string-append "pigz_binary = \""
5593 (assoc-ref inputs "pigz")
5594 "/bin/pigz\";")))))
5595 (replace 'install
5596 (lambda* (#:key outputs #:allow-other-keys)
5597 (let ((bin (string-append (assoc-ref outputs "out") "/bin/")))
5598 (for-each (lambda (file)
5599 (install-file file bin))
5600 '("bless" "kmc/bin/kmc")))))
5601 (delete 'configure))))
5602 (native-inputs
5603 (list perl))
5604 (inputs
5605 (list openmpi boost-1.83 sparsehash pigz zlib))
5606 (supported-systems '("x86_64-linux"))
5607 (home-page "https://sourceforge.net/p/bless-ec/wiki/Home/")
5608 (synopsis "Bloom-filter-based error correction tool for NGS reads")
5609 (description
5610 "@dfn{Bloom-filter-based error correction solution for high-throughput
5611sequencing reads} (BLESS) uses a single minimum-sized bloom filter is a
5612correction tool for genomic reads produced by @dfn{Next-generation
5613sequencing} (NGS). BLESS produces accurate correction results with much less
5614memory compared with previous solutions and is also able to tolerate a higher
5615false-positive rate. BLESS can extend reads like DNA assemblers to correct
5616errors at the end of reads.")
5617 (license license:gpl3+)))
5618
5619(define-public bowtie
5620 (package
5621 (name "bowtie")
5622 (version "2.5.4")
5623 (source (origin
5624 (method git-fetch)
5625 (uri (git-reference
5626 (url "https://github.com/BenLangmead/bowtie2")
5627 (commit (string-append "v" version))))
5628 (file-name (git-file-name name version))
5629 (sha256
5630 (base32
5631 "020dwg059zmgqcfnxgg67qmn8rf207mwrybly39ncch1riva58z5"))
5632 (snippet
5633 #~(begin
5634 (use-modules (guix build utils))
5635 (substitute* "Makefile"
5636 ;; replace BUILD_HOST and BUILD_TIME for deterministic build
5637 (("-DBUILD_HOST=.*") "-DBUILD_HOST=\"\\\"guix\\\"\"")
5638 (("-DBUILD_TIME=.*") "-DBUILD_TIME=\"\\\"0\\\"\""))))))
5639 (build-system gnu-build-system)
5640 (arguments
5641 (list
5642 #:make-flags
5643 #~(list "allall"
5644 "WITH_TBB=1"
5645 (string-append "prefix=" #$output)
5646 (string-append "CC=" #$(cc-for-target)))
5647 #:phases
5648 #~(modify-phases %standard-phases
5649 (add-after 'unpack 'fix-prefix
5650 (lambda _
5651 (substitute* "Makefile"
5652 (("/usr/local") #$output))))
5653 (replace 'configure
5654 (lambda _
5655 ;; This "extended character" is not considered valid.
5656 (substitute* "processor_support.h"
5657 (("“") "\"")
5658 (("”") "\""))))
5659 (replace 'check
5660 (lambda* (#:key tests? #:allow-other-keys)
5661 (when tests?
5662 (invoke "perl"
5663 "scripts/test/simple_tests.pl"
5664 "--bowtie2=./bowtie2"
5665 "--bowtie2-build=./bowtie2-build")))))))
5666 (inputs
5667 (list onetbb zlib))
5668 (native-inputs
5669 (list perl
5670 perl-clone
5671 perl-file-which
5672 perl-test-deep
5673 perl-test-simple
5674 python-wrapper
5675 which))
5676 (home-page "https://bowtie-bio.sourceforge.net/bowtie2/index.shtml")
5677 (synopsis "Fast and sensitive nucleotide sequence read aligner")
5678 (description
5679 "Bowtie 2 is a fast and memory-efficient tool for aligning sequencing
5680reads to long reference sequences. It is particularly good at aligning reads
5681of about 50 up to 100s or 1,000s of characters, and particularly good at
5682aligning to relatively long (e.g. mammalian) genomes. Bowtie 2 indexes the
5683genome with an FM Index to keep its memory footprint small: for the human
5684genome, its memory footprint is typically around 3.2 GB. Bowtie 2 supports
5685gapped, local, and paired-end alignment modes.")
5686 (supported-systems '("x86_64-linux"))
5687 (license license:gpl3+)))
5688
5689(define-public bwa
5690 (package
5691 (name "bwa")
5692 (version "0.7.19")
5693 (source (origin
5694 (method git-fetch)
5695 (uri (git-reference
5696 (url "https://github.com/lh3/bwa")
5697 (commit (string-append "v" version))))
5698 (file-name (git-file-name name version))
5699 (sha256
5700 (base32
5701 "04hvp3sl64h5wmlkzjawmma3v8h1lb9vbqwkkz8nkxmqzy8vnzx3"))))
5702 (build-system gnu-build-system)
5703 (arguments
5704 (list #:tests? #f ;no "check" target
5705 #:make-flags #~(list "CFLAGS=-fcommon"
5706 (string-append "CC=" #$(cc-for-target)))
5707 #:phases
5708 #~(modify-phases %standard-phases
5709 (replace 'install
5710 (lambda* (#:key outputs #:allow-other-keys)
5711 (let* ((out (assoc-ref outputs "out"))
5712 (bin (string-append out "/bin"))
5713 (lib (string-append out "/lib"))
5714 (doc (string-append out "/share/doc/bwa"))
5715 (man (string-append out "/share/man/man1")))
5716 (install-file "bwa" bin)
5717 (install-file "libbwa.a" lib)
5718 (install-file "README.md" doc)
5719 (install-file "bwa.1" man))))
5720 ;; no "configure" script
5721 (delete 'configure))))
5722 (inputs (list zlib))
5723 (supported-systems '("x86_64-linux" "aarch64-linux"))
5724 (home-page "https://bio-bwa.sourceforge.net/")
5725 (synopsis "Burrows-Wheeler sequence aligner")
5726 (description
5727 "BWA is a software package for mapping low-divergent sequences against a
5728large reference genome, such as the human genome. It consists of three
5729algorithms: BWA-backtrack, BWA-SW and BWA-MEM. The first algorithm is
5730designed for Illumina sequence reads up to 100bp, while the rest two for
5731longer sequences ranged from 70bp to 1Mbp. BWA-MEM and BWA-SW share similar
5732features such as long-read support and split alignment, but BWA-MEM, which is
5733the latest, is generally recommended for high-quality queries as it is faster
5734and more accurate. BWA-MEM also has better performance than BWA-backtrack for
573570-100bp Illumina reads.")
5736 (license license:gpl3+)))
5737
5738(define-public bwa-pssm
5739 (package
5740 (inherit bwa)
5741 (name "bwa-pssm")
5742 (version "0.5.11")
5743 (source (origin
5744 (method git-fetch)
5745 (uri (git-reference
5746 (url "https://github.com/pkerpedjiev/bwa-pssm")
5747 (commit version)))
5748 (file-name (git-file-name name version))
5749 (sha256
5750 (base32
5751 "076c4q0cdqz8jgylb067y9zmvxglppnzi3qiscn0xiypgc6lgb5r"))))
5752 (build-system gnu-build-system)
5753 (arguments
5754 (substitute-keyword-arguments arguments
5755 ((#:phases phases #~%standard-phases)
5756 #~(modify-phases #$phases
5757 (add-after 'unpack 'patch-C-error
5758 (lambda _
5759 (substitute* "pssm.c"
5760 (("inline int map") "int map"))))))))
5761 (inputs
5762 (list gdsl zlib perl))
5763 ;; https://bwa-pssm.binf.ku.dk is down, and all Web Archived copies are
5764 ;; blank (they actually have "display:none" for some nefarious reason).
5765 (home-page "https://github.com/pkerpedjiev/bwa-pssm")
5766 (synopsis "Burrows-Wheeler transform-based probabilistic short read mapper")
5767 (description
5768 "BWA-PSSM is a probabilistic short genomic sequence read aligner based on
5769the use of @dfn{position specific scoring matrices} (PSSM). Like many of the
5770existing aligners it is fast and sensitive. Unlike most other aligners,
5771however, it is also adaptible in the sense that one can direct the alignment
5772based on known biases within the data set. It is coded as a modification of
5773the original BWA alignment program and shares the genome index structure as
5774well as many of the command line options.")
5775 (license license:gpl3+)))
5776
5777(define-public bwa-meth
5778 (package
5779 (name "bwa-meth")
5780 (version "0.2.9")
5781 (source (origin
5782 (method git-fetch)
5783 (uri (git-reference
5784 (url "https://github.com/brentp/bwa-meth")
5785 (commit (string-append "v" version))))
5786 (file-name (git-file-name name version))
5787 (sha256
5788 (base32
5789 "0192h6rdaxa1rx16hgkanwsp3qv9knsmnghy07ya1231qia8h67p"))))
5790 (build-system pyproject-build-system)
5791 (arguments
5792 `(#:tests? #f ;no tests
5793 #:phases
5794 (modify-phases %standard-phases
5795 (add-after 'unpack 'keep-references-to-bwa
5796 (lambda* (#:key inputs #:allow-other-keys)
5797 (substitute* "bwameth.py"
5798 (("bwa (mem|index)" _ command)
5799 (string-append (which "bwa") " " command))
5800 ;; There's an ill-advised check for "samtools" on PATH.
5801 (("^checkX.*") "")))))))
5802 (native-inputs
5803 (list python-setuptools))
5804 (inputs
5805 (list bwa
5806 python-toolshed))
5807 (home-page "https://github.com/brentp/bwa-meth")
5808 (synopsis "Fast and accurante alignment of BS-Seq reads")
5809 (description
5810 "BWA-Meth works for single-end reads and for paired-end reads from the
5811directional protocol (most common). It uses the method employed by
5812methylcoder and Bismark of in silico conversion of all C's to T's in both
5813reference and reads. It recovers the original read (needed to tabulate
5814methylation) by attaching it as a comment which BWA appends as a tag to the
5815read. It performs favorably to existing aligners gauged by number of on and
5816off-target reads for a capture method that targets CpG-rich region.")
5817 (license license:expat)))
5818
5819(define-public python-bx-python
5820 (package
5821 (name "python-bx-python")
5822 (version "0.14.0")
5823 (source (origin
5824 (method git-fetch)
5825 (uri (git-reference
5826 (url "https://github.com/bxlab/bx-python")
5827 (commit (string-append "v" version))))
5828 (file-name (git-file-name name version))
5829 (sha256
5830 (base32
5831 "1031ddndi5anxk76h1irdwa6nwr5sy20p816zn5jz50010zc562r"))))
5832 (build-system pyproject-build-system)
5833 (arguments
5834 (list
5835 #:phases
5836 '(modify-phases %standard-phases
5837 (add-before 'check 'build-extensions
5838 (lambda _
5839 ;; Cython extensions have to be built before running the tests.
5840 (invoke "python" "setup.py" "build_ext" "--inplace")))
5841 ;; Unrecognized argument.
5842 (add-after 'unpack 'disable-cython-doctests
5843 (lambda _ (substitute* "pytest.ini" (("--doctest-cython") "")))))))
5844 (propagated-inputs
5845 (list python-numpy
5846 python-pyparsing))
5847 (inputs
5848 (list zlib))
5849 (native-inputs
5850 (list python-cython python-lzo python-pytest python-setuptools))
5851 (home-page "https://github.com/bxlab/bx-python")
5852 (synopsis "Tools for manipulating biological data")
5853 (description
5854 "bx-python provides tools for manipulating biological data, particularly
5855multiple sequence alignments.")
5856 (license license:expat)))
5857
5858(define-public python-mofax
5859 (let ((commit "e4821fef8b1f9f50afd84a6acb96fcc49445c967")
5860 (revision "1"))
5861 (package
5862 (name "python-mofax")
5863 (version (git-version "0.3.7" revision commit))
5864 (source (origin
5865 (method git-fetch)
5866 (uri (git-reference
5867 (url "https://github.com/bioFAM/mofax")
5868 (commit commit)))
5869 (file-name (git-file-name name version))
5870 (sha256
5871 (base32
5872 "07lkz51n7p7inmmh4bpr6fcr6b6jcjvkfws06zn8kpxfsv5z9kxa"))))
5873 (build-system pyproject-build-system)
5874 (propagated-inputs (list python-h5py
5875 python-matplotlib
5876 python-pandas
5877 python-scipy
5878 python-seaborn))
5879 (native-inputs (list python-poetry-core
5880 python-numpy python-pytest))
5881 (home-page "https://github.com/bioFAM/mofax")
5882 (synopsis
5883 "Motif activity finder for transcription factor motif analysis")
5884 (description
5885 "MoFax is a Python package for transcription factor motif analysis.
5886It provides convenience functions to load and visualize factor models trained
5887with MOFA+ in Python.")
5888 (license license:expat))))
5889
5890(define-public python-mudata
5891 (package
5892 (name "python-mudata")
5893 (version "0.3.10")
5894 (source
5895 (origin
5896 (method git-fetch)
5897 (uri (git-reference
5898 (url "https://github.com/scverse/mudata")
5899 (commit (string-append "v" version))))
5900 (file-name (git-file-name name version))
5901 (sha256
5902 (base32 "1s0vkxmbw6kbyl5pxgr296g9g0wpjggzcxrj5i67lgg1kzxkqb8k"))))
5903 (build-system pyproject-build-system)
5904 (arguments
5905 (list
5906 ;; tests: 484 passed, 1 deselected, 2 xfailed, 1343 warnings
5907 #:test-flags
5908 ;; TypeError: MetaAcc.get() missing 1 required positional argument: 'k'
5909 #~(list "--deselect=tests/test_obs_var.py::test_accessors")))
5910 (native-inputs
5911 (list python-hatch-vcs
5912 python-hatchling
5913 python-pytest))
5914 (propagated-inputs
5915 (list python-anndata
5916 python-h5py
5917 python-numpy
5918 python-pandas
5919 python-scipy
5920 python-scverse-misc
5921 python-session-info2
5922 ;; [optional]
5923 python-fsspec
5924 python-zarr))
5925 (home-page "https://github.com/scverse/mudata")
5926 (synopsis "Python package for multi-omics data analysis")
5927 (description
5928 "Mudata is a Python package for multi-omics data analysis.
5929It is designed to provide functionality to load, process, and store multimodal
5930omics data.")
5931 (license license:bsd-3)))
5932
5933(define-public python-mofapy2
5934 (package
5935 (name "python-mofapy2")
5936 ;; Upstream removed all tags.
5937 (properties '((commit . "45d7e901b7cfe071476ad849a62944de8732f4d9")
5938 (revision . "0")))
5939 (version (git-version "0.7.4"
5940 (assoc-ref properties 'revision)
5941 (assoc-ref properties 'commit)))
5942 (source
5943 (origin
5944 ;; The tarball from PyPi doesn't include tests.
5945 (method git-fetch)
5946 (uri (git-reference
5947 (url "https://github.com/bioFAM/mofapy2")
5948 (commit (assoc-ref properties 'commit))))
5949 (file-name (git-file-name name version))
5950 (sha256
5951 (base32
5952 "1b2m7bphn06n8bgyqz02f08jwjzqw11zl8nf5zm58vs1v5wq8cnd"))))
5953 (build-system pyproject-build-system)
5954 (arguments
5955 (list
5956 #:test-flags
5957 ;; cupy is an optional dependency, which
5958 ;; itself has nonfree dependencies (CUDA)
5959 '(list "--ignore=mofapy2/notebooks/test_cupy.py")))
5960 (propagated-inputs (list python-anndata
5961 python-h5py
5962 python-numpy
5963 python-pandas
5964 python-scikit-learn
5965 python-scipy))
5966 (native-inputs (list python-poetry-core
5967 python-pytest))
5968 (home-page "https://biofam.github.io/MOFA2/")
5969 (synopsis "Multi-omics factor analysis")
5970 (description "MOFA is a factor analysis model that provides a general
5971framework for the integration of multi-omic data sets in an unsupervised
5972fashion. Intuitively, MOFA can be viewed as a versatile and statistically
5973rigorous generalization of principal component analysis to multi-omics data.
5974Given several data matrices with measurements of multiple -omics data types on
5975the same or on overlapping sets of samples, MOFA infers an interpretable
5976low-dimensional representation in terms of a few latent factors. These learnt
5977factors represent the driving sources of variation across data modalities,
5978thus facilitating the identification of cellular states or disease
5979subgroups.")
5980 (license license:lgpl3)))
5981
5982(define-public python-muon
5983 (package
5984 (name "python-muon")
5985 ;; 0.1.7 (2024-10-30); the latest changes provide compatibility with NumPy
5986 ;; 2 and Pandas 3.
5987 (properties '((commit . "05d3bf11f55ccc656e2f10a1466e185b0302aa52")
5988 (revision . "0")))
5989 (version (git-version "0.1.7"
5990 (assoc-ref properties 'revision)
5991 (assoc-ref properties 'commit)))
5992 (source
5993 (origin
5994 (method git-fetch)
5995 (uri (git-reference
5996 (url "https://github.com/scverse/muon")
5997 (commit (assoc-ref properties 'commit))))
5998 (file-name (git-file-name name version))
5999 (sha256
6000 (base32 "14hhz3150m0vg4iwr73b0cxkw45jmn3z94wxs75q64dj5f62ghpw"))))
6001 (build-system pyproject-build-system)
6002 (arguments
6003 (list
6004 ;; tests: 32 passed, 4 deselected, 333 warnings
6005 #:test-flags
6006 #~(list
6007 ;; Failed: assert -1.6939765212353823 == -1.719391 ± 1.7e-06
6008 "--deselect=tests/test_muon_tools.py::TestMOFA2D::test_multi_group"
6009 ;; Network access is required.
6010 (string-append "--deselect=tests/test_muon_preproc.py"
6011 "::TestInPlaceFiltering"
6012 "::test_filter_obs_with_obsm_obsp")
6013 (string-append "--deselect=tests/test_muon_preproc.py"
6014 "::TestInPlaceFiltering"
6015 "::test_filter_var_with_varm_varp"))
6016 #:phases
6017 #~(modify-phases %standard-phases
6018 ;; Numba needs a writable dir to cache functions.
6019 (add-before 'build 'set-numba-cache-dir
6020 (lambda _
6021 (setenv "NUMBA_CACHE_DIR" "/tmp"))))))
6022 (native-inputs
6023 (list nss-certs-for-test
6024 python-flit-core
6025 python-pytest))
6026 (propagated-inputs
6027 (list python-anndata
6028 python-h5py
6029 python-matplotlib
6030 python-mudata
6031 python-numba
6032 python-numpy
6033 python-pandas
6034 python-protobuf
6035 python-scanpy
6036 python-scikit-learn
6037 python-seaborn
6038 python-tqdm
6039 python-umap-learn
6040 ;; [optional]
6041 python-mofapy2
6042 python-pybedtools
6043 python-pysam))
6044 (home-page "https://github.com/scverse/muon")
6045 (synopsis "Multimodal omics analysis framework")
6046 (description "muon is a multimodal omics Python framework.")
6047 (license license:bsd-3)))
6048
6049(define-public python-pysam
6050 (package
6051 (name "python-pysam")
6052 (version "0.23.3")
6053 (source (origin
6054 (method git-fetch)
6055 (uri (git-reference
6056 (url "https://github.com/pysam-developers/pysam")
6057 (commit (string-append "v" version))))
6058 (file-name (git-file-name name version))
6059 (sha256
6060 (base32
6061 "1kb70fp9mnjl4czhwiahb192lwkq1j357b774ddg533ibj3h7gcz"))
6062 (modules '((guix build utils)))
6063 (snippet '(begin
6064 ;; FIXME: Unbundle samtools and bcftools.
6065 (delete-file-recursively "htslib")))))
6066 (build-system pyproject-build-system)
6067 (arguments
6068 (list
6069 #:test-flags
6070 ;; This test requires network access.
6071 '(list "-k" "not FileHTTP" "tests")
6072 #:phases
6073 #~(modify-phases %standard-phases
6074 (add-after 'unpack 'patch-build-system
6075 (lambda _
6076 (substitute* "pyproject.toml"
6077 ((":__legacy__") ""))))
6078 (add-before 'build 'set-flags
6079 (lambda* (#:key inputs #:allow-other-keys)
6080 (setenv "HTSLIB_MODE" "external")
6081 (setenv "HTSLIB_LIBRARY_DIR"
6082 (string-append (assoc-ref inputs "htslib") "/lib"))
6083 (setenv "HTSLIB_INCLUDE_DIR"
6084 (string-append (assoc-ref inputs "htslib") "/include"))
6085 (setenv "LDFLAGS" "-lncurses")
6086 (setenv "CFLAGS" "-D_CURSES_LIB=1")))
6087 (add-before 'check 'pre-check
6088 (lambda* (#:key tests? #:allow-other-keys)
6089 (when tests?
6090 (with-directory-excursion "tests"
6091 (setenv "HOME" "/tmp")
6092 (invoke "make" "-C" "pysam_data")
6093 (invoke "make" "-C" "cbcf_data"))))))))
6094 (propagated-inputs
6095 (list htslib)) ; Included from installed header files.
6096 (inputs
6097 (list ncurses curl zlib))
6098 (native-inputs
6099 (list python-cython
6100 python-pytest
6101 python-setuptools
6102 ;; Dependencies below are are for tests only.
6103 samtools
6104 bcftools))
6105 (home-page "https://github.com/pysam-developers/pysam")
6106 (synopsis "Python bindings to the SAMtools C API")
6107 (description
6108 "Pysam is a Python module for reading and manipulating files in the
6109SAM/BAM format. Pysam is a lightweight wrapper of the SAMtools C API. It
6110also includes an interface for tabix.")
6111 (license license:expat)))
6112
6113(define-public python-twobitreader
6114 (package
6115 (name "python-twobitreader")
6116 (version "3.1.9")
6117 (source (origin
6118 (method git-fetch)
6119 (uri (git-reference
6120 (url "https://github.com/benjschiller/twobitreader")
6121 (commit version)))
6122 (file-name (git-file-name name version))
6123 (sha256
6124 (base32
6125 "1yk86vgdh43wpg8wv4riiff3qv0nrmizxzv774ghjkgiss4g1l2q"))))
6126 (build-system pyproject-build-system)
6127 (native-inputs
6128 (list python-pytest
6129 python-setuptools))
6130 (home-page "https://github.com/benjschiller/twobitreader")
6131 (synopsis "Python library for reading .2bit files")
6132 (description
6133 "twobitreader is a Python library for reading .2bit files as used by the
6134UCSC genome browser.")
6135 (license license:artistic2.0)))
6136
6137(define-public tetoolkit
6138 (package
6139 (name "tetoolkit")
6140 (version "2.2.3")
6141 (source
6142 (origin
6143 (method git-fetch)
6144 (uri (git-reference
6145 (url "https://github.com/mhammell-laboratory/TEtranscripts")
6146 (commit version)))
6147 (file-name (git-file-name name version))
6148 (sha256
6149 (base32 "1jgwnm1kmj2mgvc3gib6d73rvyy3l54icjcj2gw0p1ay6kqkzs0p"))))
6150 (build-system pyproject-build-system)
6151 (arguments
6152 `(#:tests? #f ;no tests
6153 #:phases (modify-phases %standard-phases
6154 (add-after 'unpack 'adjust-requirements
6155 (lambda _
6156 (substitute* "setup.py"
6157 ;; This defunct dependency isn't required for Python 3 (see:
6158 ;; https://github.com/mhammell-laboratory/TEtranscripts/issues/111).
6159 ((".*'argparse'.*")
6160 ""))))
6161 (add-after 'unpack 'patch-invocations
6162 (lambda* (#:key inputs #:allow-other-keys)
6163 (substitute* '("bin/TEtranscripts" "bin/TEcount")
6164 (("'sort ")
6165 (string-append "'"
6166 (search-input-file inputs "bin/sort")
6167 " "))
6168 (("'rm -f ")
6169 (string-append "'"
6170 (search-input-file inputs "bin/rm")
6171 " -f "))
6172 (("'Rscript'")
6173 (string-append "'"
6174 (search-input-file inputs
6175 "bin/Rscript") "'")))
6176 (substitute* "TEToolkit/IO/ReadInputs.py"
6177 (("BamToBED")
6178 (search-input-file inputs "bin/bamToBed")))
6179 (substitute* "TEToolkit/Normalization.py"
6180 (("\"Rscript\"")
6181 (string-append "\""
6182 (search-input-file inputs
6183 "bin/Rscript") "\"")))))
6184 (add-after 'install 'wrap-program
6185 (lambda* (#:key outputs #:allow-other-keys)
6186 ;; Make sure the executables find R packages.
6187 (for-each (lambda (script)
6188 (wrap-program script
6189 `("R_LIBS_SITE" ":" =
6190 (,(getenv "R_LIBS_SITE")))))
6191 (list (search-input-file outputs
6192 "bin/TEtranscripts")
6193 (search-input-file outputs "bin/TEcount"))))))))
6194 (inputs (list bash-minimal
6195 coreutils
6196 bedtools
6197 python-pysam
6198 r-minimal
6199 r-deseq2))
6200 (native-inputs (list python-setuptools))
6201 (home-page "https://github.com/mhammell-laboratory/TEtranscripts")
6202 (synopsis "Transposable elements in differential enrichment analysis")
6203 (description
6204 "This is package for including transposable elements in differential
6205enrichment analysis of sequencing datasets. TEtranscripts and TEcount take
6206RNA-seq (and similar data) and annotates reads to both genes and transposable
6207elements. TEtranscripts then performs differential analysis using DESeq2.
6208Note that TEtranscripts and TEcount rely on specially curated GTF files, which
6209are not included due to their size.")
6210 (license license:gpl3+)))
6211
6212(define-public cd-hit
6213 (package
6214 (name "cd-hit")
6215 (version "4.8.1")
6216 (source (origin
6217 (method url-fetch)
6218 (uri (string-append "https://github.com/weizhongli/cdhit"
6219 "/releases/download/V" version
6220 "/cd-hit-v" version
6221 "-2019-0228.tar.gz"))
6222 (sha256
6223 (base32
6224 "1phmfhgcpyfd6kj7jwzw976613lcpv1wc2pzfdfaxla062x2s5r6"))))
6225 (build-system gnu-build-system)
6226 (arguments
6227 (list
6228 #:tests? #f ; there are no tests
6229 #:make-flags
6230 ;; Executables are copied directly to the PREFIX.
6231 #~(list (string-append "PREFIX=" #$output "/bin")
6232 ;; Support longer sequences (e.g. Pacbio sequences)
6233 "MAX_SEQ=60000000")
6234 #:phases
6235 '(modify-phases %standard-phases
6236 ;; No "configure" script
6237 (delete 'configure)
6238 ;; Remove sources of non-determinism
6239 (add-after 'unpack 'be-timeless
6240 (lambda _
6241 (substitute* "cdhit-utility.c++"
6242 ((" \\(built on \" __DATE__ \"\\)") ""))
6243 (substitute* "cdhit-common.c++"
6244 (("__DATE__") "\"0\"")
6245 (("\", %s, \" __TIME__ \"\\\\n\", date") ""))))
6246 ;; The "install" target does not create the target directory.
6247 (add-before 'install 'create-target-dir
6248 (lambda* (#:key outputs #:allow-other-keys)
6249 (mkdir-p (string-append (assoc-ref outputs "out") "/bin")))))))
6250 (inputs
6251 (list perl zlib))
6252 (home-page "http://weizhongli-lab.org/cd-hit/")
6253 (synopsis "Cluster and compare protein or nucleotide sequences")
6254 (description
6255 "CD-HIT is a program for clustering and comparing protein or nucleotide
6256sequences. CD-HIT is designed to be fast and handle extremely large
6257databases.")
6258 ;; The manual says: "It can be copied under the GNU General Public License
6259 ;; version 2 (GPLv2)."
6260 (license license:gpl2)))
6261
6262(define-public cd-hit-auxtools
6263 (package
6264 (inherit cd-hit)
6265 (name "cd-hit-auxtools")
6266 (arguments
6267 (list
6268 #:tests? #f ; there are no tests
6269 #:phases
6270 #~(modify-phases %standard-phases
6271 (add-after 'unpack 'chdir (lambda _ (chdir "cd-hit-auxtools")))
6272 ;; No "configure" script
6273 (delete 'configure)
6274 ;; There is no install target.
6275 (replace 'install
6276 (lambda _
6277 (for-each (lambda (file)
6278 (install-file file (string-append #$output "/bin")))
6279 '("cd-hit-dup" "cd-hit-lap" "read-linker")))))))
6280 (inputs '())))
6281
6282(define-public clipper-peak
6283 (package
6284 (name "clipper-peak")
6285 (version "2.0.1")
6286 (source
6287 (origin
6288 (method git-fetch)
6289 (uri (git-reference
6290 (url "https://github.com/YeoLab/clipper")
6291 (commit version)))
6292 (file-name (git-file-name name version))
6293 (sha256
6294 (base32 "0508rgnfjk5ar5d1mjbjyrnarv4kw9ksq0m3jw2bmgabmb5v6ikk"))
6295 (modules '((guix build utils)))
6296 (snippet '(begin
6297 ;; Delete pre-compiled files.
6298 (delete-file "clipper/src/peaks.so")))))
6299 (build-system pyproject-build-system)
6300 (arguments
6301 `(#:tests? #f
6302 #:phases (modify-phases %standard-phases
6303 (add-after 'unpack 'use-python3-for-cython
6304 (lambda _
6305 (substitute* "setup.py"
6306 (("^setup")
6307 "peaks.cython_directives = {'language_level': '3'}
6308readsToWiggle.cython_directives = {'language_level': '3'}
6309setup"))))
6310 (add-after 'unpack 'disable-nondeterministic-test
6311 (lambda _
6312 ;; This test fails/succeeds non-deterministically.
6313 (substitute* "clipper/test/test_call_peak.py"
6314 (("test_get_FDR_cutoff_mean")
6315 "_test_get_FDR_cutoff_mean"))))
6316 ;; This doesn't work because "usage" is executed, and that calls
6317 ;; exit(8).
6318 (replace 'check
6319 (lambda* (#:key tests? inputs outputs #:allow-other-keys)
6320 (when tests?
6321 (add-installed-pythonpath inputs outputs)
6322 (with-directory-excursion "clipper/test"
6323 (invoke "python" "-m" "unittest")))))
6324 ;; This is not a library
6325 (delete 'sanity-check))))
6326 (inputs (list htseq
6327 python-pybedtools
6328 python-cython
6329 python-scikit-learn
6330 python-matplotlib
6331 python-pandas
6332 python-pysam
6333 python-numpy
6334 python-scipy))
6335 (native-inputs (list python-mock
6336 python-pynose
6337 python-pytz
6338 python-setuptools
6339 python-setuptools-git))
6340 (home-page "https://github.com/YeoLab/clipper")
6341 (synopsis "CLIP peak enrichment recognition")
6342 (description "CLIPper is a tool to define peaks in CLIP-seq datasets.")
6343 (license license:gpl2)))
6344
6345(define-public codingquarry
6346 (package
6347 (name "codingquarry")
6348 (version "2.0")
6349 (source (origin
6350 (method url-fetch)
6351 (uri (string-append
6352 "mirror://sourceforge/codingquarry/CodingQuarry_v"
6353 version ".tar.gz"))
6354 (sha256
6355 (base32
6356 "0115hkjflsnfzn36xppwf9h9avfxlavr43djqmshkkzbgjzsz60i"))))
6357 (build-system gnu-build-system)
6358 (arguments
6359 (list
6360 #:tests? #f ;no "check" target
6361 #:phases
6362 #~(modify-phases %standard-phases
6363 (delete 'configure)
6364 (replace 'install
6365 (lambda _
6366 (let ((bin (string-append #$output "/bin"))
6367 (doc (string-append #$output "/share/doc/codingquarry")))
6368 (install-file "INSTRUCTIONS.pdf" doc)
6369 (copy-recursively "QuarryFiles"
6370 (string-append #$output
6371 "/share/codingquarry/QuarryFiles"))
6372 (install-file "CodingQuarry" bin)
6373 (install-file "CufflinksGTF_to_CodingQuarryGFF3.py" bin)))))))
6374 ;; TODO: This package also needs a Python 2 variant of biopython
6375 (inputs (list openmpi python-2)) ;Only Python 2 is supported
6376 (native-search-paths
6377 (list (search-path-specification
6378 (variable "QUARRY_PATH")
6379 (files '("share/codingquarry/QuarryFiles")))))
6380 (home-page "https://sourceforge.net/projects/codingquarry/")
6381 (synopsis "Fungal gene predictor")
6382 (description "CodingQuarry is a highly accurate, self-training GHMM fungal
6383gene predictor designed to work with assembled, aligned RNA-seq transcripts.")
6384 (license license:gpl3+)))
6385
6386(define-public crossmap
6387 (package
6388 (name "crossmap")
6389 (version "0.7.3")
6390 (source
6391 (origin
6392 (method url-fetch)
6393 (uri (pypi-uri "crossmap" version))
6394 (sha256
6395 (base32 "0v8z75di5ghrv1aiain67qx9n5lslwq9ikfq44zjp5papwdksyf5"))
6396 (modules '((guix build utils)))
6397 (snippet '(begin
6398 ;; Delete compiled Python files.
6399 (for-each delete-file
6400 (find-files "." "\\.pyc$"))
6401 (delete-file-recursively "src/CrossMap.egg-info")))))
6402 (build-system pyproject-build-system)
6403 (arguments (list #:tests? #f)) ; No tests in PyPI and Git.
6404 (inputs (list python-bx-python python-numpy python-pybigwig python-pysam
6405 zlib))
6406 (native-inputs (list python-cython python-pyparsing python-setuptools))
6407 (home-page "https://crossmap.sourceforge.net/")
6408 (synopsis "Convert genome coordinates between assemblies")
6409 (description
6410 "CrossMap is a program for conversion of genome coordinates or annotation
6411files between different genome assemblies. It supports most commonly used
6412file formats including SAM/BAM, Wiggle/BigWig, BED, GFF/GTF, VCF.")
6413 (license license:gpl2+)))
6414
6415(define-public python-dnaio
6416 (package
6417 (name "python-dnaio")
6418 (version "0.10.0")
6419 (source
6420 (origin
6421 (method url-fetch)
6422 (uri (pypi-uri "dnaio" version))
6423 (sha256
6424 (base32
6425 "064xc4j8plb4fpkm8mw55715mvpvi2sxsknpjx18c2zh904salfy"))))
6426 (build-system pyproject-build-system)
6427 (arguments
6428 (list #:tests? #false)) ;there are none
6429 (native-inputs
6430 (list python-cython
6431 python-pytest
6432 python-setuptools-scm
6433 python-setuptools))
6434 (propagated-inputs
6435 (list python-xopen))
6436 (home-page "https://github.com/marcelm/dnaio/")
6437 (synopsis "Read FASTA and FASTQ files efficiently")
6438 (description
6439 "dnaio is a Python library for fast parsing of FASTQ and also FASTA
6440files. The code was previously part of the cutadapt tool.")
6441 (license license:expat)))
6442
6443(define-public python-deeptoolsintervals
6444 (package
6445 (name "python-deeptoolsintervals")
6446 (version "0.1.9")
6447 (source (origin
6448 (method url-fetch)
6449 (uri (pypi-uri "deeptoolsintervals" version))
6450 (sha256
6451 (base32
6452 "1xnl80nblysj6dylj4683wgrfa425rkx4dp5k65hvwdns9pw753x"))))
6453 (build-system pyproject-build-system)
6454 (arguments
6455 (list
6456 #:test-flags
6457 #~(list "--pyargs" "deeptoolsintervals"
6458 "--doctest-modules")))
6459 (native-inputs
6460 (list python-pytest
6461 python-setuptools))
6462 (inputs
6463 (list zlib))
6464 (home-page "https://github.com/deeptools/deeptools_intervals")
6465 (synopsis "Create GTF-based interval trees with associated meta-data")
6466 (description
6467 "This package provides a Python module creating/accessing GTF-based
6468interval trees with associated meta-data. It is primarily used by the
6469@code{deeptools} package.")
6470 (license license:expat)))
6471
6472(define-public python-deeptools
6473 (package
6474 (name "python-deeptools")
6475 (version "3.5.6")
6476 (source (origin
6477 (method git-fetch)
6478 (uri (git-reference
6479 (url "https://github.com/deeptools/deepTools")
6480 (commit version)))
6481 (file-name (git-file-name name version))
6482 (sha256
6483 (base32
6484 "0npdcqlbcxwzkadz9j6yqzk7snl6758gn3lnff9845x3ycxfa5bp"))))
6485 (build-system pyproject-build-system)
6486 (arguments
6487 (list
6488 ;; tests: 99 passed, 1 deselected
6489 #:test-flags
6490 ;; AssertionError: assert '.alignmentSieve-real 3.5.6' ==
6491 ;; 'alignmentSieve 3.5.6'
6492 #~(list "--deselect=deeptools/test/test_tools.py::test_tools")))
6493 (native-inputs
6494 (list python-mock
6495 python-pytest
6496 python-setuptools))
6497 (propagated-inputs
6498 (list python-matplotlib
6499 python-numpy
6500 python-numpydoc
6501 python-py2bit
6502 python-pybigwig
6503 python-pysam
6504 python-scipy
6505 python-deeptoolsintervals
6506 python-plotly))
6507 (home-page "https://pypi.org/project/deepTools/")
6508 (synopsis "Useful tools for exploring deep sequencing data")
6509 (description "This package addresses the challenge of handling large amounts
6510of data that are now routinely generated from DNA sequencing centers.
6511@code{deepTools} contains useful modules to process the mapped reads data for
6512multiple quality checks, creating normalized coverage files in standard bedGraph
6513and bigWig file formats, that allow comparison between different files. Finally,
6514using such normalized and standardized files, deepTools can create many
6515publication-ready visualizations to identify enrichments and for functional
6516annotations of the genome.")
6517 ;; The file deeptools/cm.py is licensed under the BSD license. The
6518 ;; remainder of the code is licensed under the MIT license.
6519 (license (list license:bsd-3 license:expat))))
6520
6521(define-public cutadapt
6522 (package
6523 (name "cutadapt")
6524 (version "4.0")
6525 (source (origin
6526 (method url-fetch)
6527 (uri (pypi-uri "cutadapt" version))
6528 (sha256
6529 (base32
6530 "0xgsv88mrlw2b1radmd1104y7bg8hvv54ay7xfdpnjiw2jgkrha9"))))
6531 (build-system pyproject-build-system)
6532 (arguments
6533 (list
6534 #:test-flags
6535 '(list "-k" "not test_no_read_only_comment_fasta_input")
6536 #:phases
6537 #~(modify-phases %standard-phases
6538 (add-after 'unpack 'fix-test
6539 (lambda _
6540 (let ((site (string-append
6541 #$output "/lib/python"
6542 #$(version-major+minor
6543 (package-version python))
6544 "/site-packages")))
6545 (substitute* "tests/test_command.py"
6546 (("env=\\{\"LC_CTYPE\": \"C\"\\},")
6547 (string-append "env={\"LC_CTYPE\": \"C\", \"GUIX_PYTHONPATH\": \""
6548 (getenv "GUIX_PYTHONPATH") ":" site
6549 "\"},")))))))))
6550 (inputs
6551 (list python-dnaio python-xopen))
6552 (native-inputs
6553 (list python-cython
6554 python-pytest
6555 python-pytest-mock
6556 python-pytest-timeout
6557 python-setuptools
6558 python-setuptools-scm))
6559 (home-page "https://cutadapt.readthedocs.io/en/stable/")
6560 (synopsis "Remove adapter sequences from nucleotide sequencing reads")
6561 (description
6562 "Cutadapt finds and removes adapter sequences, primers, poly-A tails and
6563other types of unwanted sequence from high-throughput sequencing reads.")
6564 (license license:expat)))
6565
6566(define-public lammps
6567 (let ((commit "stable_22Jul2025_update3")
6568 (version-tag "250722.3"))
6569 (package
6570 (name "lammps")
6571 (version version-tag)
6572 (source
6573 (origin
6574 (method git-fetch)
6575 (uri (git-reference
6576 (url "https://github.com/lammps/lammps.git")
6577 (commit commit)))
6578 (file-name (git-file-name name version))
6579 (sha256
6580 (base32
6581 "1ar1qvhziw7bx3az881lfq1a4w3w80x17ri1jiamd6f6ck57gwyz"))))
6582 (build-system cmake-build-system)
6583 (arguments
6584 (list
6585 #:configure-flags
6586 #~(list
6587 ;; activate all possible lammps packages.
6588 "-C ../cmake/presets/all_on.cmake"
6589 "-D PKG_USER-MISC=yes"
6590 ;; prevent from downloading extra packages.
6591 "-D DOWNLOAD_POTENTIALS=off"
6592 ;; Parallel
6593 "-D LAMMPS_MACHINE=mpi"
6594 "-D BUILD_MPI=yes"
6595 "-D BUILD_OMP=yes"
6596 ;; Build libraries to link to other codes.
6597 "-D BUILD_SHARED_LIBS=yes"
6598 ;; Deactivate package currently unavailable on guix
6599 "-D PKG_VTK=no"
6600 "-D PKG_ADIOS=no"
6601 "-D PKG_GPU=no"
6602 "-D PKG_VMD=no"
6603 "-D PKG_VORONOI=no"
6604 "-D PKG_SCAFACOS=no"
6605 "-D PKG_MDI=no"
6606 "-D PKG_ML-QUIP=no"
6607 "-D PKG_ML-PACE=no"
6608 "-D PKG_KIM=no"
6609 "-D PKG_PLUMED=no"
6610 "-D PKG_APIP=no"
6611 ;; Extra arguments for some packages.
6612 "-D FFT=FFTW3"
6613 "-D Kokkos_ENABLE_OPENMP=yes"
6614 "-D MLIAP_ENABLE_PYTHON=yes"
6615 (string-append "-DN2P2_DIR=" #$(this-package-input "n2p2")))
6616 #:tests? #f
6617 #:build-type "Release"
6618 #:phases
6619 #~(modify-phases %standard-phases
6620 (add-before 'configure 'goto-cmake-dir
6621 (lambda _
6622 (chdir "./cmake"))))))
6623 (inputs
6624 (list ffmpeg
6625 gzip
6626 hdf5-parallel-openmpi
6627 libjpeg-turbo
6628 libpng
6629 fftw
6630 n2p2
6631 gsl
6632 openblas
6633 libomp-13
6634 eigen
6635 netcdf
6636 pnetcdf
6637 python-numpy
6638 python-wrapper))
6639 (native-inputs
6640 (list bc
6641 pkg-config
6642 python-cython
6643 gfortran))
6644 (home-page "https://www.lammps.org/")
6645 (synopsis "Classical molecular dynamics simulator")
6646 (description "LAMMPS is a classical molecular dynamics simulator
6647designed to run efficiently on parallel computers. LAMMPS has potentials for
6648solid-state materials (metals, semiconductors), soft matter (biomolecules,
6649polymers), and coarse-grained or mesoscopic systems. It can be used to model
6650atoms or, more generically, as a parallel particle simulator at the atomic,
6651meso, or continuum scale.")
6652 (license license:gpl2+))))
6653
6654(define-public lammps-serial
6655 (package
6656 (inherit lammps)
6657 (name "lammps-serial")
6658 (arguments
6659 (substitute-keyword-arguments arguments
6660 ((#:configure-flags flags)
6661 #~(list
6662 ;; activate all possible lammps packages.
6663 "-C ../cmake/presets/all_on.cmake"
6664 "-D PKG_USER-MISC=yes"
6665 ;; prevent from downloading extra packages.
6666 "-D DOWNLOAD_POTENTIALS=off"
6667 ;; Build libraries to link to other codes.
6668 "-D BUILD_SHARED_LIBS=yes"
6669 ;; Deactivate package currently unavailable on guix
6670 "-D PKG_VTK=no"
6671 "-D PKG_ADIOS=no"
6672 "-D PKG_GPU=no"
6673 "-D PKG_VMD=no"
6674 "-D PKG_VORONOI=no"
6675 "-D PKG_SCAFACOS=no"
6676 "-D PKG_MDI=no"
6677 "-D PKG_ML-QUIP=no"
6678 "-D PKG_ML-PACE=no"
6679 "-D PKG_KIM=no"
6680 "-D PKG_PLUMED=no"
6681 "-D PKG_APIP=no"
6682 "-D PKG_LATBOLTZ=no"
6683 ;; Extra arguments for some packages.
6684 "-D FFT=FFTW3"
6685 "-D MLIAP_ENABLE_PYTHON=yes"
6686 (string-append "-DN2P2_DIR=" #$(this-package-input "n2p2"))))))
6687 (inputs
6688 (modify-inputs inputs
6689 (delete "pnetcdf")
6690 (replace "hdf5-parallel-openmpi" hdf5)))))
6691
6692(define-public libbigwig
6693 (package
6694 (name "libbigwig")
6695 (version "0.4.8")
6696 (source (origin
6697 (method git-fetch)
6698 (uri (git-reference
6699 (url "https://github.com/dpryan79/libBigWig")
6700 (commit version)))
6701 (file-name (git-file-name name version))
6702 (sha256
6703 (base32
6704 "1bqw2kbgxszvh5vd85p9zqdv32bvyqr25yvgy5crnxl0yn8xqs97"))))
6705 (build-system gnu-build-system)
6706 (arguments
6707 (list
6708 #:test-target "test"
6709 #:tests? #f ; tests require access to the web
6710 #:make-flags
6711 #~(list (string-append "CC=" #$(cc-for-target))
6712 (string-append "prefix=" #$output))
6713 #:phases
6714 #~(modify-phases %standard-phases
6715 (delete 'configure))))
6716 (inputs
6717 (list zlib curl))
6718 (native-inputs
6719 (list doxygen
6720 python)) ;for tests
6721 (home-page "https://github.com/dpryan79/libBigWig")
6722 (synopsis "C library for handling bigWig files")
6723 (description
6724 "This package provides a C library for parsing local and remote BigWig
6725files.")
6726 (license license:expat)))
6727
6728(define-public lsgkm
6729 (package
6730 (name "lsgkm")
6731 (version "0.1.1")
6732 (source
6733 (origin
6734 (method git-fetch)
6735 (uri (git-reference
6736 (url "https://github.com/Dongwon-Lee/lsgkm.git")
6737 (commit (string-append "v" version))))
6738 (file-name (git-file-name name version))
6739 (sha256
6740 (base32
6741 "0b3m94kndvimdfjaf1q2yhmsn7lm5s9v81c5xgfjcp6ig7mh3sa5"))))
6742 (build-system gnu-build-system)
6743 (arguments
6744 (list
6745 #:make-flags '(list "-C" "src")
6746 #:tests? #false ;there are no executable tests
6747 #:phases
6748 #~(modify-phases %standard-phases
6749 (delete 'configure)
6750 (replace 'install
6751 (lambda _
6752 (let ((bin (string-append #$output "/bin")))
6753 (for-each (lambda (file)
6754 (install-file file bin))
6755 '("src/gkmtrain"
6756 "src/gkmpredict"))))))))
6757 (home-page "https://github.com/Dongwon-Lee/lsgkm")
6758 (synopsis "Predict regulatory DNA elements in large-scale data")
6759 (description "gkm-SVM, a sequence-based method for predicting regulatory
6760DNA elements, is a useful tool for studying gene regulatory mechanisms.
6761LS-GKM is an effort to improve the method. It offers much better scalability
6762and provides further advanced gapped k-mer based kernel functions. As a
6763result, LS-GKM achieves considerably higher accuracy than the original
6764gkm-SVM.")
6765 (license license:gpl3+)))
6766
6767(define-public python-fcsparser
6768 (package
6769 (name "python-fcsparser")
6770 (version "0.2.8")
6771 (source
6772 (origin
6773 (method url-fetch)
6774 (uri (pypi-uri "fcsparser" version))
6775 (sha256
6776 (base32 "1skk1k8phq9sj4ar0cnq8px89y3kcyh5zrbl6anz9wcdcyzkc16z"))))
6777 (build-system pyproject-build-system)
6778 ;; See: <https://github.com/eyurtsev/fcsparser/issues/74>.
6779 (propagated-inputs (list python-numpy-1 python-pandas))
6780 (native-inputs (list python-poetry-core python-pytest))
6781 (home-page "https://github.com/eyurtsev/fcsparser")
6782 (synopsis "Package for reading raw fcs files")
6783 (description
6784 "This package provides a Python package for reading raw fcs files")
6785 (license license:expat)))
6786
6787(define-public python-pybigwig
6788 (package
6789 (name "python-pybigwig")
6790 (version "0.3.25")
6791 (source
6792 (origin
6793 (method git-fetch)
6794 (uri (git-reference
6795 (url "https://github.com/deeptools/pyBigWig")
6796 (commit version)))
6797 (file-name (git-file-name name version))
6798 (sha256
6799 (base32 "031hd0b39g35b38w4jg9zv8widshcf26fiyrwg4yda1nk1sd1bsn"))
6800 (modules '((guix build utils)))
6801 (snippet
6802 ;; Delete bundled libBigWig sources
6803 '(delete-file-recursively "libBigWig"))))
6804 (build-system pyproject-build-system)
6805 (arguments
6806 '(#:tests? #false ;only one test exists and it needs internet access
6807 #:phases
6808 (modify-phases %standard-phases
6809 (add-after 'unpack 'link-with-libBigWig
6810 (lambda _
6811 (substitute* "setup.py"
6812 (("libs=\\[") "libs=[\"BigWig\", ")))))))
6813 (propagated-inputs
6814 (list python-numpy))
6815 (inputs
6816 (list libbigwig zlib curl))
6817 (native-inputs (list python-setuptools))
6818 (home-page "https://github.com/dpryan79/pyBigWig")
6819 (synopsis "Access bigWig files in Python using libBigWig")
6820 (description
6821 "This package provides Python bindings to the libBigWig library for
6822accessing bigWig files.")
6823 (license license:expat)))
6824
6825(define-public python-schema-salad
6826 (package
6827 (name "python-schema-salad")
6828 (version "8.9.20251102115403")
6829 (source
6830 (origin
6831 (method git-fetch)
6832 (uri (git-reference
6833 (url "https://github.com/common-workflow-language/schema_salad")
6834 (commit version)))
6835 (file-name (git-file-name name version))
6836 (sha256
6837 (base32 "0jcq6yam58q9xic9mzv09075s2mbng5bs0pxsh335i6jfwrp1b6x"))))
6838 (build-system pyproject-build-system)
6839 (arguments
6840 (list
6841 #:test-flags
6842 #~(list
6843 ;; These tests require network access.
6844 "--deselect=schema_salad/tests/test_examples.py::test_bad_schemas"
6845 "--deselect=schema_salad/tests/test_cg.py::test_load_by_yaml_metaschema"
6846 ;; This test requires the cwl-runner binary.
6847 "--ignore=schema_salad/tests/test_cwl11.py")
6848 #:phases
6849 #~(modify-phases %standard-phases
6850 (add-after 'unpack 'relax-requirements
6851 (lambda _
6852 ;; Mistune dependency is too strict mistune>=3,<3.1 .
6853 ;; TODO: Remove when upgrading, because updated upstream.
6854 (substitute* "requirements.txt"
6855 (("mistune.*") "mistune"))
6856 (substitute* "setup.py"
6857 (("mistune[^\"]*") "mistune")))))))
6858 (propagated-inputs
6859 (list python-cachecontrol
6860 python-mistune
6861 python-mypy-extensions
6862 python-rdflib
6863 python-requests
6864 python-ruamel.yaml))
6865 (native-inputs
6866 (list python-black ;black is actually used in the tests.
6867 python-cachecontrol
6868 python-pytest
6869 python-pytest-xdist ;because tests are ran with "-n auto" in tox.ini
6870 python-setuptools
6871 python-setuptools-scm))
6872 (home-page "https://github.com/common-workflow-language/schema_salad")
6873 (synopsis "Schema Annotations for Linked Avro Data (SALAD)")
6874 (description
6875 "Salad is a schema language for describing JSON or YAML structured linked
6876data documents. Salad schema describes rules for preprocessing, structural
6877validation, and hyperlink checking for documents described by a Salad schema.
6878Salad supports rich data modeling with inheritance, template specialization,
6879object identifiers, object references, documentation generation, code
6880generation, and transformation to RDF. Salad provides a bridge between document
6881and record oriented data modeling and the Semantic Web.")
6882 (license license:asl2.0)))
6883
6884(define-public python-scikit-bio
6885 (package
6886 (name "python-scikit-bio")
6887 (version "0.7.3")
6888 (source
6889 (origin
6890 (method git-fetch)
6891 (uri (git-reference
6892 (url "https://github.com/scikit-bio/scikit-bio")
6893 (commit version)))
6894 (file-name (git-file-name name version))
6895 (sha256
6896 (base32 "1bg50d57jnzbkixcc3c23wrm8mf1za2nf0i3dy4n5zzizsk6vjpd"))))
6897 (build-system pyproject-build-system)
6898 (arguments
6899 (list
6900 ;; tests: 3336 passed, 105 skipped, 73 warnings
6901 #:test-backend #~'custom
6902 #:test-flags #~(list "-m" "skbio.test")
6903 #:phases
6904 #~(modify-phases %standard-phases
6905 (add-before 'check 'remove-local-source
6906 (lambda _
6907 (delete-file-recursively "skbio"))))))
6908 (native-inputs
6909 (list python-cython
6910 python-dateutil
6911 python-matplotlib
6912 python-numpy
6913 python-patsy
6914 python-pytest
6915 python-responses
6916 python-setuptools
6917 python-statsmodels))
6918 (propagated-inputs
6919 (list python-array-api-compat
6920 python-biom-format
6921 python-decorator
6922 python-h5py
6923 python-natsort
6924 python-numpy
6925 python-pandas
6926 python-patsy
6927 python-requests
6928 python-scipy
6929 python-statsmodels))
6930 (home-page "https://scikit.bio")
6931 (synopsis "Data structures, algorithms and educational resources for bioinformatics")
6932 (description
6933 "This package provides data structures, algorithms and educational
6934resources for bioinformatics.")
6935 (license license:bsd-3)))
6936
6937(define-public python-scrublet
6938 (package
6939 (name "python-scrublet")
6940 (version "0.2.3")
6941 (source (origin
6942 (method url-fetch)
6943 (uri (pypi-uri "scrublet" version))
6944 (sha256
6945 (base32
6946 "0fk5pwk12yz9wpvwkl6j2l2g28f3x35b9r9n5bw6f0i9f0qgd191"))))
6947 (build-system pyproject-build-system)
6948 (arguments '(#:tests? #false)) ;there are none
6949 (propagated-inputs
6950 (list python-annoy
6951 python-cython
6952 python-matplotlib
6953 python-numba
6954 python-numpy
6955 python-pandas
6956 python-scikit-image
6957 python-scikit-learn
6958 python-scipy
6959 python-umap-learn))
6960 (native-inputs (list python-setuptools))
6961 (home-page "https://github.com/swolock/scrublet")
6962 (synopsis "Tool to identify and remove doublets in single-cell data")
6963 (description "This package provides a tool for identifying and removing
6964doublets in single-cell RNA-seq data.")
6965 (license license:expat)))
6966
6967(define-public python-cwlformat
6968 (package
6969 (name "python-cwlformat")
6970 (version "2022.02.18")
6971 (source
6972 ;; The PyPI tarball is missing Readme.md. Readme.md is required for the
6973 ;; build.
6974 (origin
6975 (method git-fetch)
6976 (uri (git-reference
6977 (url "https://github.com/rabix/cwl-format")
6978 (commit version)))
6979 (file-name (git-file-name name version))
6980 (sha256
6981 (base32
6982 "0agkz2w86k91rc9m5vx5hsqi5nm6fcmzkng6j99hjapz0r9233ql"))))
6983 (build-system pyproject-build-system)
6984 (arguments
6985 (list
6986 #:test-flags
6987 ;; Assert fails to compare large files.
6988 #~(list "--deselect=tests/test_battery.py::test_formatting_battery")))
6989 (native-inputs
6990 (list python-pytest
6991 python-setuptools))
6992 (propagated-inputs
6993 (list python-importlib-resources
6994 python-ruamel.yaml))
6995 (home-page "https://github.com/rabix/cwl-format")
6996 (synopsis "Prettifier for CWL code")
6997 (description "@code{python-cwlformat} is a specification and a reference
6998implementation for a very opinionated @acronym{CWL, Common Workflow Language}
6999code formatter. It outputs CWL in a standardized YAML format.")
7000 (license license:asl2.0)))
7001
7002(define-public python-cwl-upgrader
7003 (package
7004 (name "python-cwl-upgrader")
7005 (version "1.2.11")
7006 (source
7007 (origin
7008 (method url-fetch)
7009 (uri (pypi-uri "cwl-upgrader" version))
7010 (sha256
7011 (base32
7012 "12j6z8nvwnzjjyypz59hwj5hmrcri2r6aknw52n9dbj6lbzbdd2p"))))
7013 (build-system pyproject-build-system)
7014 (native-inputs
7015 (list python-pytest python-setuptools))
7016 (propagated-inputs
7017 (list python-ruamel.yaml
7018 python-schema-salad))
7019 (home-page "https://github.com/common-workflow-language/cwl-upgrader")
7020 (synopsis "CWL document upgrader")
7021 (description "@code{python-cwl-upgrader} is a standalone upgrader for
7022@acronym{CWL, Common Workflow Language} documents from version draft-3, v1.0,
7023and v1.1 to v1.2.")
7024 (license license:asl2.0)))
7025
7026(define-public python-cwl-utils
7027 (package
7028 (name "python-cwl-utils")
7029 (version "0.32")
7030 (source
7031 (origin
7032 (method url-fetch)
7033 (uri (pypi-uri "cwl-utils" version))
7034 (sha256
7035 (base32
7036 "06wkw8d8cqm3hnz8xwnysz874gwaym36c358cr7frw5iglhvsj98"))))
7037 (build-system pyproject-build-system)
7038 (arguments
7039 (list
7040 #:test-flags
7041 #~(list "-k"
7042 (string-append "not test_graph_split"
7043 " and not test_load_document_with_remote_uri"
7044 " and not test_remote_packing"
7045 " and not test_remote_packing_github_soft_links"
7046 " and not test_value_from_two_concatenated_expressions"))))
7047 (inputs
7048 (list node-lts))
7049 (native-inputs
7050 (list python-mypy-extensions
7051 python-pytest
7052 python-pytest-mock
7053 python-setuptools))
7054 (propagated-inputs
7055 (list python-cwl-upgrader
7056 python-cwlformat
7057 python-packaging
7058 python-rdflib
7059 python-requests
7060 python-ruamel.yaml
7061 python-schema-salad))
7062 (home-page "https://github.com/common-workflow-language/cwl-utils")
7063 (synopsis "Python utilities for CWL")
7064 (description "@code{python-cwl-utils} provides python utilities and
7065autogenerated classes for loading and parsing CWL v1.0, CWL v1.1, and CWL v1.2
7066documents.")
7067 (license license:asl2.0)))
7068
7069(define-public cwltool
7070 (package
7071 (name "cwltool")
7072 (version "3.1.20260315121657")
7073 (source (origin
7074 (method git-fetch)
7075 (uri (git-reference
7076 (url "https://github.com/common-workflow-language/cwltool")
7077 (commit version)))
7078 (file-name (git-file-name name version))
7079 (sha256
7080 (base32
7081 "07glkzm9af9n1jsmqk6vgrjkxhgjask9jy56g7zca20sz7hpmiyi"))))
7082 (build-system pyproject-build-system)
7083 (arguments
7084 (list
7085 #:test-flags
7086 ;; These tests try to connect to the internet.
7087 #~(list "--ignore=tests/test_content_type.py"
7088 "--ignore=tests/test_udocker.py"
7089 "--ignore=tests/test_http_input.py"
7090 "-k"
7091 (string-append
7092 ;; Causes
7093 ;; INTERNALERROR> RuntimeError: Unexpectedly no active
7094 ;; workers available
7095 "not test_env_filtering"
7096 ;; Tries to write to /tmp/guix-build-cwltool-3.fastq
7097 " and not test_iwdr_writable_secondaryfiles"
7098 ;; Tries to use cwl-runners.
7099 " and not test_v1_0_arg_empty_prefix_separate_false"
7100 ;; Tries to connect to the internet.
7101 " and not test_issue_1765_print_deps_with_workflows_having_namespace_location_steps"))
7102 #:phases
7103 #~(modify-phases %standard-phases
7104 (add-after 'unpack 'loosen-version-restrictions
7105 (lambda _
7106 (substitute* "setup.py"
7107 (("== 1.5.1") "> 1.5.1")))) ; prov
7108 (add-after 'unpack 'patch-tests
7109 (lambda _
7110 (substitute* '("tests/subgraph/env-tool2.cwl"
7111 "tests/subgraph/env-tool2_req.cwl"
7112 "tests/subgraph/env-wf2_subwf-packed.cwl"
7113 "tests/subgraph/env-tool2_no_env.cwl")
7114 (("\"/bin/sh\"") (string-append "\"" (which "sh") "\""))))))))
7115 (inputs
7116 (list python-argcomplete
7117 python-bagit
7118 python-coloredlogs
7119 python-cwl-utils
7120 python-mypy-extensions
7121 python-prov
7122 python-pydot
7123 python-psutil
7124 python-rdflib-6
7125 python-requests
7126 python-rich-argparse
7127 python-ruamel.yaml
7128 python-schema-salad
7129 python-setuptools
7130 python-spython
7131 ;; Not listed as needed but still necessary:
7132 node-lts))
7133 (native-inputs
7134 (list python-arcp
7135 python-mock
7136 python-pytest
7137 python-pytest-mock
7138 python-pytest-xdist))
7139 (home-page
7140 "https://github.com/common-workflow-language/common-workflow-language")
7141 (synopsis "Common Workflow Language reference implementation")
7142 (description
7143 "This is the reference implementation of the @acronym{CWL, Common Workflow
7144Language} standards. The CWL open standards are for describing analysis
7145workflows and tools in a way that makes them portable and scalable across a
7146variety of software and hardware environments, from workstations to cluster,
7147cloud, and high performance computing (HPC) environments. CWL is designed to
7148meet the needs of data-intensive science, such as Bioinformatics, Medical
7149Imaging, Astronomy, Physics, and Chemistry. The @acronym{cwltool, CWL reference
7150implementation} is intended to be feature complete and to provide comprehensive
7151validation of CWL files as well as provide other tools related to working with
7152CWL descriptions.")
7153 (license license:asl2.0)))
7154
7155(define-public ravanan
7156 (package
7157 (name "ravanan")
7158 (version "0.2.0")
7159 (source
7160 (origin
7161 (method git-fetch)
7162 (uri (git-reference
7163 (url "https://github.com/arunisaac/ravanan")
7164 (commit (string-append "v" version))))
7165 (file-name (git-file-name name version))
7166 (sha256
7167 (base32
7168 "1ap9h2d92wjvnn8914baqkx6xn8zdanxmpjfg81v3qx35pn938al"))))
7169 (arguments
7170 (list #:make-flags
7171 #~(list (string-append "prefix=" #$output)
7172 (string-append "NODE=" (search-input-file %build-inputs "bin/node")))
7173 #:modules `(((guix build guile-build-system)
7174 #:select (target-guile-effective-version))
7175 ,@%default-gnu-imported-modules)
7176 #:phases
7177 (with-imported-modules `((guix build guile-build-system)
7178 ,@%default-gnu-imported-modules)
7179 #~(modify-phases %standard-phases
7180 (replace 'patch-source-shebangs
7181 (lambda* (#:key inputs #:allow-other-keys)
7182 (substitute* "bin/ravanan"
7183 (("^exec guile")
7184 (string-append "exec "
7185 (search-input-file inputs "/bin/guile"))))))
7186 (delete 'configure)
7187 (add-after 'install 'wrap
7188 (lambda* (#:key inputs outputs #:allow-other-keys)
7189 (let ((out (assoc-ref outputs "out"))
7190 (effective-version (target-guile-effective-version)))
7191 (wrap-program (string-append out "/bin/ravanan")
7192 `("GUILE_LOAD_PATH" prefix
7193 (,(string-append out "/share/guile/site/" effective-version)
7194 ,(getenv "GUILE_LOAD_PATH")))
7195 `("GUILE_LOAD_COMPILED_PATH" prefix
7196 (,(string-append out "/lib/guile/"
7197 effective-version "/site-ccache")
7198 ,(getenv "GUILE_LOAD_COMPILED_PATH")))))))))))
7199 (inputs
7200 (list bash-minimal
7201 node
7202 (lookup-package-input guix "guile")
7203 guile-filesystem
7204 guile-gcrypt
7205 guile-json-4
7206 guile-libyaml
7207 guix))
7208 (native-inputs
7209 (list guile-run64
7210 lzip))
7211 (build-system gnu-build-system)
7212 (home-page "https://forge.systemreboot.net/ravanan/")
7213 (synopsis "High-reproducibility CWL runner powered by Guix")
7214 (description "ravanan is a @acronym{CWL, Common Workflow Language}
7215implementation that is powered by GNU Guix and provides strong reproducibility
7216guarantees. ravanan provides strong caching of intermediate results so the
7217same step of a workflow is never run twice. ravanan captures logs from every
7218step of the workflow for easy tracing back in case of job failures. ravanan
7219currently runs on single machines and on slurm via its API.")
7220 (license license:gpl3+)))
7221
7222(define-public python-dendropy
7223 (package
7224 (name "python-dendropy")
7225 (version "5.0.8")
7226 (source
7227 (origin
7228 (method git-fetch)
7229 (uri (git-reference
7230 (url "https://github.com/jeetsukumaran/DendroPy")
7231 (commit (string-append "v" version))))
7232 (file-name (git-file-name name version))
7233 (sha256
7234 (base32
7235 "0gcg4brixwh1dykrwkb2iyg9q27zz6d4gd7p05p08r8pbvsscqh2"))))
7236 (build-system pyproject-build-system)
7237 (arguments
7238 (list
7239 ;; tests: 1047 passed, 5 deselected, 12 warnings
7240 #:test-flags
7241 #~(list "-k"
7242 (string-join
7243 ;; These tests fail because we have no "paup" executable.
7244 (list "not test_group1"
7245 "test_basic_split_counting_under_different_rootings"
7246 "test_basic_split_count_with_incorrect_weight_treatment_raises_error"
7247 "test_basic_split_count_with_incorrect_rootings_raises_error")
7248 " and not "))))
7249 (native-inputs
7250 (list python-pytest
7251 python-setuptools))
7252 (home-page "https://dendropy.org/")
7253 (synopsis "Library for phylogenetics and phylogenetic computing")
7254 (description
7255 "DendroPy is a library for phylogenetics and phylogenetic computing: reading,
7256writing, simulation, processing and manipulation of phylogenetic
7257trees (phylogenies) and characters.")
7258 (license license:bsd-3)))
7259
7260(define-public python-py2bit
7261 (package
7262 (name "python-py2bit")
7263 (version "0.3.3")
7264 (source
7265 (origin
7266 (method url-fetch)
7267 (uri (pypi-uri "py2bit" version))
7268 (sha256
7269 (base32
7270 "0w1p4l1jwg9kkifm0jsg33a212ps0jn61islmnng2afp77y5nkr6"))))
7271 (build-system pyproject-build-system)
7272 (arguments
7273 (list #:test-flags #~(list "py2bitTest/test.py")))
7274 (native-inputs (list python-pytest python-setuptools python-setuptools-scm))
7275 (home-page "https://github.com/dpryan79/py2bit")
7276 (synopsis "Access 2bit files using lib2bit")
7277 (description
7278 "This package provides Python bindings for lib2bit to access 2bit files
7279with Python.")
7280 (license license:expat)))
7281
7282(define-public deacon
7283 (package
7284 (name "deacon")
7285 (version "0.15.0")
7286 (source
7287 (origin
7288 (method url-fetch)
7289 (uri (crate-uri "deacon" version))
7290 (file-name (string-append name "-" version ".tar.gz"))
7291 (sha256
7292 (base32 "0wmw8zyr03swbygwifj59samz9srfzxqw1gnm22msa0ng75282z0"))))
7293 (build-system cargo-build-system)
7294 (arguments
7295 (list
7296 #:install-source? #f
7297 #:features ''("ensure_simd/scalar"))) ; Avoid AVX2 dependency.
7298 (native-inputs (list pkg-config))
7299 (inputs (cons* bzip2
7300 xz
7301 `(,zstd "lib")
7302 (cargo-inputs 'deacon)))
7303 (home-page "https://github.com/bede/deacon")
7304 (synopsis
7305 "Accelerated DNA sequence search and [host] depletion using minimizers")
7306 (description
7307 "Deacon filters DNA sequences in FASTA/Q files and streams using
7308SIMD-accelerated minimizer comparison with query sequence(s), emitting either
7309matching sequences (search mode), or sequences without matches (deplete mode).
7310Sequences match when they share enough distinct minimizers with the indexed
7311query to exceed chosen absolute and relative thresholds. Query size has little
7312impact on filtering speed, enabling ultrafast search and depletion with gene-,
7313genome- and pangenome-scale queries using a laptop.")
7314 ;; Upstream suggests compiling with '-C target-cpu=native'
7315 (properties '((tunable? . #t)))
7316 (license license:expat)))
7317
7318(define-public delly
7319 (package
7320 (name "delly")
7321 (version "1.7.3")
7322 (source (origin
7323 (method git-fetch)
7324 (uri (git-reference
7325 (url "https://github.com/dellytools/delly")
7326 (commit (string-append "v" version))))
7327 (file-name (git-file-name name version))
7328 (sha256
7329 (base32 "1ri7m7iv3wakm7zdwqdzm5m71y0swad9n78dzrzr9gs3j7j5yxjs"))
7330 (modules '((guix build utils)))
7331 (snippet
7332 '(delete-file-recursively "src/htslib"))))
7333 (build-system gnu-build-system)
7334 (arguments
7335 (list
7336 #:tests? #f ;There are no tests to run.
7337 #:make-flags
7338 #~(list "PARALLEL=1" ; Allow parallel execution at run-time.
7339 (string-append "prefix=" #$output))
7340 #:phases
7341 #~(modify-phases %standard-phases
7342 (delete 'configure) ; There is no configure phase.
7343 (add-after 'install 'install-templates
7344 (lambda _
7345 (let ((templates (string-append #$output
7346 "/share/delly/templates")))
7347 (mkdir-p templates)
7348 (copy-recursively "excludeTemplates" templates)))))))
7349 (inputs
7350 (list boost bzip2 htslib zlib))
7351 (home-page "https://github.com/dellytools/delly")
7352 (synopsis "Integrated structural variant prediction method")
7353 (description "Delly is an integrated structural variant prediction method
7354that can discover and genotype deletions, tandem duplications, inversions and
7355translocations at single-nucleotide resolution in short-read massively parallel
7356sequencing data. It uses paired-ends and split-reads to sensitively and
7357accurately delineate genomic rearrangements throughout the genome.")
7358 (license license:gpl3+)))
7359
7360(define-public transanno
7361 (package
7362 (name "transanno")
7363 (version "0.4.5")
7364 (source
7365 (origin
7366 (method git-fetch)
7367 (uri (git-reference
7368 (url "https://github.com/informationsea/transanno")
7369 (commit (string-append "v" version))))
7370 (file-name (git-file-name name version))
7371 (sha256
7372 (base32
7373 "0x62v8qhnpw8579kcqpr9k5ldv2y3awjp7a32f1j8qky0i1jgxp1"))
7374 (snippet
7375 '(with-output-to-file "liftover-rs/build.rs"
7376 (lambda _
7377 (format #true
7378 "fn main() {~@
7379 println!(\"cargo:rustc-link-lib=lzma\");~@
7380 }~%"))))))
7381 (build-system cargo-build-system)
7382 (arguments
7383 (list
7384 #:install-source? #false ;fails
7385 #:phases
7386 #~(modify-phases %standard-phases
7387 (add-after 'unpack 'prepare-test-files
7388 (lambda _
7389 (delete-file "Cargo.lock")
7390 (substitute* "liftover-rs/prepare-test.sh"
7391 (("/bin/bash")
7392 (string-append #$(this-package-native-input "bash")
7393 "/bin/bash")))
7394 (invoke "bash" "prepare-test-files.sh")))
7395 (add-before 'install 'chdir
7396 (lambda _ (chdir "transanno"))))))
7397 (native-inputs (list bash pkg-config))
7398 (inputs (cons* xz `(,zstd "lib") (cargo-inputs 'transanno)))
7399 (home-page "https://github.com/informationsea/transanno")
7400 (synopsis "LiftOver tool for new genome assemblies")
7401 (description "This package provides an accurate VCF/GFF3/GTF LiftOver tool
7402for new genome assemblies.")
7403 (license license:gpl3+)))
7404
7405(define-public trf
7406 (package
7407 (name "trf")
7408 (version "4.09.1")
7409 (source (origin
7410 (method git-fetch)
7411 (uri (git-reference
7412 (url "https://github.com/Benson-Genomics-Lab/TRF")
7413 (commit (string-append "v" version))))
7414 (file-name (git-file-name name version))
7415 (sha256
7416 (base32 "0fhwr4s1mf8nw8fr5imwjvjr42b59p97zr961ifm8xl1bajz4wpg"))))
7417 (build-system gnu-build-system)
7418 (home-page "https://github.com/Benson-Genomics-Lab/TRF")
7419 (synopsis "Tandem Repeats Finder: a program to analyze DNA sequences")
7420 (description "A tandem repeat in DNA is two or more adjacent, approximate
7421copies of a pattern of nucleotides. Tandem Repeats Finder is a program to
7422locate and display tandem repeats in DNA sequences. In order to use the
7423program, the user submits a sequence in FASTA format. The output consists of
7424two files: a repeat table file and an alignment file. Submitted sequences may
7425be of arbitrary length. Repeats with pattern size in the range from 1 to 2000
7426bases are detected.")
7427 (license license:agpl3+)))
7428
7429(define-public trinityrnaseq
7430 (package
7431 (name "trinityrnaseq")
7432 (version "2.15.2")
7433 (source (origin
7434 (method git-fetch)
7435 (uri (git-reference
7436 (url "https://github.com/trinityrnaseq/trinityrnaseq.git")
7437 (commit (string-append "Trinity-v" version))
7438 (recursive? #true)))
7439 (file-name (git-file-name name version))
7440 (sha256
7441 (base32
7442 "06qvxy6wvvjpn1mkg8m78syyn98xj76569gpl2jbc9q036i56kh8"))))
7443 (build-system gnu-build-system)
7444 (arguments
7445 (list
7446 #:test-target "test"
7447 #:modules
7448 '((guix build gnu-build-system)
7449 (guix build utils)
7450 (ice-9 match)
7451 (srfi srfi-1))
7452 #:make-flags
7453 #~(list (string-append "CC=" #$(cc-for-target)))
7454 #:phases
7455 #~(modify-phases %standard-phases
7456 (replace 'configure
7457 (lambda _
7458 (setenv "SHELL" (which "sh"))
7459 (setenv "CONFIG_SHELL" (which "sh"))
7460 ;; Do not require version.h, which triggers a local build of a
7461 ;; vendored htslib.
7462 (substitute* "trinity-plugins/bamsifter/Makefile"
7463 (("sift_bam_max_cov.cpp htslib/version.h")
7464 "sift_bam_max_cov.cpp"))))
7465 (add-after 'build 'build-plugins
7466 (lambda _
7467 ;; Run this in the subdirectory to avoid running the
7468 ;; tests right here.
7469 (with-directory-excursion "trinity-plugins"
7470 (invoke "make" "plugins"))))
7471 ;; The install script uses rsync, provides no overrides for the
7472 ;; default location at /usr/local/bin, and patching it would change
7473 ;; all lines that do something.
7474 (replace 'install
7475 (lambda* (#:key inputs #:allow-other-keys)
7476 (let ((share (string-append #$output "/share/trinity/"))
7477 (bin (string-append #$output "/bin/")))
7478 (mkdir-p bin)
7479 (copy-recursively "." share)
7480
7481 (wrap-program (string-append share "Trinity")
7482 `("R_LIBS_SITE" ":" = (,(getenv "R_LIBS_SITE")))
7483 `("PERL5LIB" ":" = (,(getenv "PERL5LIB")))
7484 `("PYTHONPATH" ":" = (,(getenv "GUIX_PYTHONPATH")))
7485 `("PATH" ":" =
7486 ,(cons (string-append share "/trinity-plugins/BIN")
7487 (filter-map (match-lambda
7488 ((name . dir)
7489 (string-append dir "/bin")))
7490 inputs))))
7491 (symlink (string-append share "Trinity")
7492 (string-append bin "Trinity"))))))))
7493 (inputs
7494 (list blast+
7495 bowtie
7496 fastqc
7497 hisat
7498 htslib
7499 icedtea-8
7500 jellyfish
7501 kallisto
7502 multiqc
7503 perl
7504 perl-uri-escape
7505 python-numpy
7506 python-wrapper
7507 r-ape
7508 r-argparse
7509 r-biobase
7510 r-ctc
7511 r-deseq2
7512 r-edger
7513 r-fastcluster
7514 r-glimma
7515 r-goplot
7516 r-goseq
7517 r-gplots
7518 r-minimal
7519 r-qvalue
7520 r-rots
7521 r-sm
7522 r-tidyverse
7523 rsem
7524 salmon
7525 samtools
7526 sra-tools
7527 star
7528 zlib))
7529 (propagated-inputs
7530 (list coreutils
7531 gzip
7532 which))
7533 (native-inputs (list cmake-minimal))
7534 (home-page "https://github.com/trinityrnaseq/trinityrnaseq/wiki")
7535 (synopsis "Trinity RNA-Seq de novo transcriptome assembly")
7536 (description "Trinity assembles transcript sequences from Illumina RNA-Seq
7537data. Trinity represents a novel method for the efficient and robust de novo
7538reconstruction of transcriptomes from RNA-seq data. Trinity combines three
7539independent software modules: Inchworm, Chrysalis, and Butterfly, applied
7540sequentially to process large volumes of RNA-seq reads. Trinity partitions
7541the sequence data into many individual de Bruijn graphs, each representing the
7542transcriptional complexity at a given gene or locus, and then processes each
7543graph independently to extract full-length splicing isoforms and to tease
7544apart transcripts derived from paralogous genes.")
7545 (license license:bsd-3)))
7546
7547(define-public repeat-masker
7548 (package
7549 (name "repeat-masker")
7550 (version "4.1.2-p1")
7551 (source (origin
7552 (method url-fetch)
7553 (uri (string-append "http://www.repeatmasker.org/"
7554 "RepeatMasker/RepeatMasker-"
7555 version ".tar.gz"))
7556 (sha256
7557 (base32 "15hfdfpzmdjcx7ng7rjfid69bmvgn3z9g9r43qhjnhjhq3v4prab"))))
7558 (build-system gnu-build-system)
7559 (arguments
7560 `(#:tests? #false ; there are none
7561 #:phases
7562 (modify-phases %standard-phases
7563 (delete 'configure)
7564 (replace 'build
7565 (lambda* (#:key inputs outputs #:allow-other-keys)
7566 (let ((share (string-append (assoc-ref outputs "out")
7567 "/share/RepeatMasker")))
7568 (mkdir-p share)
7569 (copy-recursively "." share)
7570 (with-directory-excursion share
7571 (invoke "perl" "configure"
7572 "--trf_prgm" (which "trf")
7573 "--hmmer_dir"
7574 (string-append (assoc-ref inputs "hmmer")
7575 "/bin"))))))
7576 (replace 'install
7577 (lambda* (#:key outputs #:allow-other-keys)
7578 (let* ((out (assoc-ref outputs "out"))
7579 (share (string-append out "/share/RepeatMasker"))
7580 (bin (string-append out "/bin"))
7581 (path (getenv "PERL5LIB")))
7582 (install-file (string-append share "/RepeatMasker") bin)
7583 (wrap-program (string-append bin "/RepeatMasker")
7584 `("PERL5LIB" ":" prefix (,path ,share)))))))))
7585 (inputs
7586 (list bash-minimal
7587 perl
7588 perl-text-soundex
7589 python
7590 python-h5py
7591 hmmer
7592 trf))
7593 (home-page "https://github.com/Benson-Genomics-Lab/TRF")
7594 (synopsis "Tandem Repeats Finder: a program to analyze DNA sequences")
7595 (description "A tandem repeat in DNA is two or more adjacent, approximate
7596copies of a pattern of nucleotides. Tandem Repeats Finder is a program to
7597locate and display tandem repeats in DNA sequences. In order to use the
7598program, the user submits a sequence in FASTA format. The output consists of
7599two files: a repeat table file and an alignment file. Submitted sequences may
7600be of arbitrary length. Repeats with pattern size in the range from 1 to 2000
7601bases are detected.")
7602 (license license:osl2.1)))
7603
7604(define-public trust4
7605 (package
7606 (name "trust4")
7607 (version "1.1.0")
7608 (source
7609 (origin
7610 (method git-fetch)
7611 (uri (git-reference
7612 (url "https://github.com/liulab-dfci/TRUST4")
7613 (commit (string-append "v" version))))
7614 (file-name (git-file-name name version))
7615 (sha256
7616 (base32 "170k4rrchg7f2jyn3v4y4fxxq1d49n1vnvhx5xcnnr6jql8q3h08"))
7617 (modules '((guix build utils)))
7618 (snippet '(begin
7619 ;; Remove bundled samtools
7620 (delete-file-recursively "samtools-0.1.19")))))
7621 (build-system gnu-build-system)
7622 (arguments
7623 (list
7624 #:tests? #f ;there are no tests
7625 #:phases
7626 #~(modify-phases %standard-phases
7627 (add-after 'unpack 'use-samtools-headers
7628 (lambda* (#:key inputs #:allow-other-keys)
7629 (substitute* "Makefile"
7630 (("LINKPATH= -I./samtools-0.1.19 -L./samtools-0.1.19")
7631 (string-append "LINKPATH= -I."
7632 #$(this-package-native-input "samtools")
7633 "/include/samtools"
7634 " -L."
7635 #$(this-package-native-input "samtools")
7636 "/lib"))
7637 (("./samtools-0.1.19/")
7638 (string-append #$(this-package-native-input
7639 "samtools") "/lib/")))
7640 (substitute* "alignments.hpp"
7641 (("samtools-0.1.19")
7642 (string-append #$(this-package-native-input
7643 "samtools") "/include/samtools")))))
7644 (delete 'configure) ; No configure.
7645 (replace 'install
7646 (lambda* (#:key outputs #:allow-other-keys)
7647 (let ((bin (string-append (assoc-ref outputs "out") "/bin"))
7648 (scripts (string-append #$output
7649 "/share/trust4/scripts")))
7650 (install-file "annotator" bin)
7651 (install-file "bam-extractor" bin)
7652 (install-file "fastq-extractor" bin)
7653 (install-file "run-trust4" bin)
7654 (install-file "trust4" bin)
7655 ;; install scripts stored in the scrips dir
7656 (for-each (lambda (file)
7657 (chmod file #o555))
7658 (find-files "scripts" "\\.p(y|l)"))
7659 (copy-recursively "scripts" scripts)
7660 (delete-file-recursively "scripts")
7661 ;; install the rest of the scripts that are in the main dir
7662 (for-each (lambda (file)
7663 (chmod file #o555)
7664 (install-file file bin))
7665 (find-files "." "\\.(pl|py|sh)"))))))))
7666 (native-inputs (list automake samtools-0.1))
7667 (inputs (list perl python-wrapper zlib))
7668 (home-page "https://github.com/liulab-dfci/TRUST4")
7669 (synopsis "TCR and BCR assembly from RNA-seq data")
7670 (description "This package is analyzing @acronym{TCR, T cell receptor} and
7671@acronym{BCR, B cell receptor} sequences using unselected RNA sequencing data,
7672profiled from fluid and solid tissues, including tumors. TRUST4 performs de
7673novo assembly on V, J, C genes including the hypervariable @acronym{CDR3,
7674complementarity-determining region 3} and reports consensus contigs of BCR/TCR
7675sequences. TRUST4 then realigns the contigs to IMGT reference gene sequences to
7676identify the corresponding gene and CDR3 details. TRUST4 supports both single-end
7677and paired-end bulk or single-cell sequencing data with any read length.")
7678 (license license:gpl3)))
7679
7680(define-public python-airr
7681 (package
7682 (name "python-airr")
7683 (version "1.5.1")
7684 (source
7685 (origin
7686 (method url-fetch)
7687 (uri (pypi-uri "airr" version))
7688 (sha256
7689 (base32 "0jbigfdwa23xv5riw0ljdfq2qwg1b2fav2kfi81zxd1g1jprxy3i"))))
7690 (build-system pyproject-build-system)
7691 (native-inputs
7692 (list python-jsondiff
7693 python-pytest
7694 python-setuptools))
7695 (propagated-inputs
7696 (list python-pandas
7697 python-pyyaml
7698 python-yamlordereddictloader))
7699 (home-page "http://docs.airr-community.org")
7700 (synopsis "Data Representation Standard library for antibody and TCR sequences")
7701 (description "Python-airr provides a library by the AIRR community to for
7702describing, reporting, storing, and sharing adaptive immune receptor
7703repertoire (AIRR) data, such as sequences of antibodies and T cell
7704receptors (TCRs).")
7705 (license license:cc-by4.0)))
7706
7707(define-public diamond
7708 (package
7709 (name "diamond")
7710 (version "2.1.6")
7711 (source (origin
7712 (method git-fetch)
7713 (uri (git-reference
7714 (url "https://github.com/bbuchfink/diamond")
7715 (commit (string-append "v" version))))
7716 (file-name (git-file-name name version))
7717 (sha256
7718 (base32
7719 "0kb17jwlsrvgswfahzznrffv1i6ybwwmq99qs7iga5yzbx64jp6q"))))
7720 (build-system cmake-build-system)
7721 (arguments
7722 (list #:configure-flags '(list "-DX86=OFF"))) ;avoid SSE4 and AVX2
7723 (inputs (list zlib))
7724 (home-page "https://github.com/bbuchfink/diamond")
7725 (synopsis "Accelerated BLAST compatible local sequence aligner")
7726 (description
7727 "DIAMOND is a BLAST-compatible local aligner for mapping protein and
7728translated DNA query sequences against a protein reference database (BLASTP
7729and BLASTX alignment mode). The speedup over BLAST is up to 20,000 on short
7730reads at a typical sensitivity of 90-99% relative to BLAST depending on the
7731data and settings.")
7732 (license license:gpl3+)))
7733
7734(define-public eddylab-squid
7735 (package
7736 (name "eddylab-squid")
7737 (version "1.9g")
7738 (source
7739 (origin
7740 (method url-fetch)
7741 (uri (string-append "http://eddylab.org/software/squid/squid-"
7742 version ".tar.gz"))
7743 (sha256
7744 (base32
7745 "19ywv1h581a84yyjnp64gwww99vhgbxi8v4rl37xp92ag7l44brh"))))
7746 (build-system gnu-build-system)
7747 (arguments
7748 `(#:phases
7749 (modify-phases %standard-phases
7750 (add-before 'check 'set-perl-search-path
7751 (lambda _
7752 ;; Work around "dotless @INC" build failure.
7753 (setenv "PERL5LIB"
7754 (string-append (getcwd) "/Testsuite:"
7755 (getenv "PERL5LIB"))))))))
7756 (inputs (list perl))
7757 (home-page "http://eddylab.org/software.html")
7758 (synopsis "C function library for sequence analysis")
7759 (description "SQUID is Sean Eddy's personal library of C functions
7760and utility programs for sequence analysis.")
7761 (license license:gpl2)))
7762
7763(define-public edirect
7764 (package
7765 (name "edirect")
7766 (version "13.3.20200128")
7767 (source (origin
7768 (method url-fetch)
7769 (uri (string-append "ftp://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect"
7770 "/versions/" version
7771 "/edirect-" version ".tar.gz"))
7772 (sha256
7773 (base32
7774 "093zp7klv81ph0y8mm8d78a9hnpfxbv2kdym70gzdf3vz176rw33"))
7775 (modules '((guix build utils)))
7776 (snippet
7777 '(begin (delete-file "Mozilla-CA.tar.gz")
7778 (substitute* "rchive.go"
7779 ;; This go library does not have any license.
7780 (("github.com/fiam/gounidecode/unidecode")
7781 "golang.org/rainycape/unidecode"))))))
7782 (build-system perl-build-system)
7783 (arguments
7784 `(#:phases
7785 (modify-phases %standard-phases
7786 (delete 'configure)
7787 (delete 'build)
7788 (delete 'check) ; simple check after install
7789 (add-after 'unpack 'patch-programs
7790 (lambda* (#:key inputs #:allow-other-keys)
7791 ;; Ignore errors about missing xtract.Linux and rchive.Linux.
7792 (substitute* "pm-refresh"
7793 (("cat \\\"\\$target")
7794 "grep ^[[:digit:]] \"$target"))))
7795 (replace 'install
7796 (lambda* (#:key inputs outputs #:allow-other-keys)
7797 (let ((bin (string-append (assoc-ref outputs "out") "/bin"))
7798 (edirect-go (assoc-ref inputs "edirect-go-programs")))
7799 (for-each
7800 (lambda (file)
7801 (install-file file bin))
7802 '("archive-pubmed" "asp-cp" "asp-ls" "download-ncbi-data"
7803 "download-pubmed" "edirect.pl" "efetch" "epost" "esearch"
7804 "fetch-pubmed" "ftp-cp" "ftp-ls" "has-asp" "index-pubmed"
7805 "pm-prepare" "pm-refresh" "pm-stash" "pm-collect"
7806 "pm-index" "pm-invert" "pm-merge" "pm-promote"))
7807 (symlink (string-append edirect-go "/bin/xtract.Linux")
7808 (string-append bin "/xtract"))
7809 (symlink (string-append edirect-go "/bin/rchive.Linux")
7810 (string-append bin "/rchive")))))
7811 (add-after 'install 'wrap-program
7812 (lambda* (#:key outputs #:allow-other-keys)
7813 ;; Make sure everything can run in a pure environment.
7814 (let ((out (assoc-ref outputs "out"))
7815 (path (getenv "PERL5LIB")))
7816 (for-each
7817 (lambda (file)
7818 (wrap-program file
7819 `("PERL5LIB" ":" prefix (,path)))
7820 (wrap-program file
7821 `("PATH" ":" prefix (,(string-append out "/bin")
7822 ,(dirname (which "sed"))
7823 ,(dirname (which "gzip"))
7824 ,(dirname (which "grep"))
7825 ,(dirname (which "perl"))
7826 ,(dirname (which "uname"))))))
7827 (find-files out ".")))))
7828 (add-after 'wrap-program 'check
7829 (lambda* (#:key outputs #:allow-other-keys)
7830 (invoke (string-append (assoc-ref outputs "out")
7831 "/bin/edirect.pl")
7832 "-filter" "-help"))))))
7833 (inputs
7834 (list bash-minimal
7835 edirect-go-programs
7836 perl-html-parser
7837 perl-encode-locale
7838 perl-file-listing
7839 perl-html-tagset
7840 perl-html-tree
7841 perl-http-cookies
7842 perl-http-date
7843 perl-http-message
7844 perl-http-negotiate
7845 perl-lwp-mediatypes
7846 perl-lwp-protocol-https
7847 perl-net-http
7848 perl-uri
7849 perl-www-robotrules
7850 perl-xml-simple
7851 perl))
7852 (home-page "https://www.ncbi.nlm.nih.gov/books/NBK179288/")
7853 (synopsis "Tools for accessing the NCBI's set of databases")
7854 (description
7855 "Entrez Direct (EDirect) is a method for accessing the National Center
7856for Biotechnology Information's (NCBI) set of interconnected
7857databases (publication, sequence, structure, gene, variation, expression,
7858etc.) from a terminal. Functions take search terms from command-line
7859arguments. Individual operations are combined to build multi-step queries.
7860Record retrieval and formatting normally complete the process.
7861
7862EDirect also provides an argument-driven function that simplifies the
7863extraction of data from document summaries or other results that are returned
7864in structured XML format. This can eliminate the need for writing custom
7865software to answer ad hoc questions.")
7866 (native-search-paths
7867 ;; Ideally this should be set for LWP somewhere.
7868 (list (search-path-specification
7869 (variable "PERL_LWP_SSL_CA_FILE")
7870 (file-type 'regular)
7871 (separator #f)
7872 (files '("/etc/ssl/certs/ca-certificates.crt")))))
7873 (license license:public-domain)))
7874
7875(define-public edirect-go-programs
7876 (package
7877 (inherit edirect)
7878 (name "edirect-go-programs")
7879 (build-system go-build-system)
7880 (arguments
7881 `(#:install-source? #f
7882 #:tests? #f ; No tests.
7883 #:import-path "ncbi.nlm.nih.gov/entrez/edirect"
7884 #:phases
7885 (modify-phases %standard-phases
7886 (replace 'build
7887 (lambda* (#:key import-path #:allow-other-keys)
7888 (with-directory-excursion (string-append "src/" import-path)
7889 (invoke "go" "build" "-v" "-x" "j2x.go")
7890 (invoke "go" "build" "-v" "-x" "t2x.go")
7891 (invoke "go" "build" "-v" "-x" "-o"
7892 "xtract.Linux" "xtract.go" "common.go")
7893 (invoke "go" "build" "-v" "-x" "-o"
7894 "rchive.Linux" "rchive.go" "common.go")
7895 (invoke "go" "build" "-v" "-x" "-o" "symbols.Linux" "s2p.go"))))
7896 (replace 'install
7897 (lambda* (#:key outputs import-path #:allow-other-keys)
7898 (let ((dest (string-append (assoc-ref outputs "out") "/bin"))
7899 (source (string-append "src/" import-path "/")))
7900 (for-each (lambda (file)
7901 (format #t "installing ~a~%" file)
7902 (install-file (string-append source file) dest))
7903 '("j2x" "t2x" "symbols.Linux" "xtract.Linux" "rchive.Linux"))
7904 #t))))))
7905 (native-inputs '())
7906 (propagated-inputs '())
7907 (inputs
7908 (list go-github-com-fatih-color
7909 go-github-com-fogleman-gg
7910 go-github-com-gedex-inflector
7911 go-github-com-golang-freetype
7912 go-github-com-klauspost-cpuid
7913 go-github-com-pbnjay-memory
7914 go-github-com-surgebase-porter2
7915 go-golang-org-rainycape-unidecode
7916 go-golang-org-x-image
7917 go-golang-org-x-text))))
7918
7919(define-public python-baltica
7920 (package
7921 (name "python-baltica")
7922 (version "1.1.2")
7923 (source (origin
7924 (method git-fetch)
7925 (uri (git-reference
7926 (url "https://github.com/dieterich-lab/Baltica")
7927 (commit (string-append "v" version))))
7928 (file-name (git-file-name name version))
7929 (sha256
7930 (base32
7931 "001ac03v9pbqqzf9pv7v8gf0296ksa4f0v3wdmpa6m9701skqi4r"))))
7932 (build-system pyproject-build-system)
7933 (arguments
7934 (list
7935 #:phases
7936 '(modify-phases %standard-phases
7937 (replace 'check
7938 (lambda* (#:key tests? #:allow-other-keys)
7939 (when tests?
7940 ;; The tests need to be run from elsewhere...
7941 (mkdir-p "/tmp/test")
7942 (copy-recursively ".tests" "/tmp/test")
7943 (with-directory-excursion "/tmp/test"
7944 (invoke "pytest" "-v" "--doctest-modules"))))))))
7945 (propagated-inputs
7946 (list gunicorn
7947 python-anndata
7948 python-click
7949 python-flask
7950 python-flask-wtf
7951 python-h5py
7952 python-numpy
7953 python-psutil
7954 python-pysam
7955 python-pyyaml
7956 python-scipy
7957 r-biocmanager
7958 r-dplyr
7959 r-genomicranges
7960 r-here
7961 r-openxlsx
7962 r-optparse
7963 r-readr
7964 r-rsamtools
7965 r-stringr
7966 r-tidyr
7967 r-upsetr
7968 r-yaml
7969 snakemake))
7970 (native-inputs (list python-cython python-pyfakefs python-pytest))
7971 (home-page "https://github.com/dieterich-lab/Baltica")
7972 (synopsis "Integrated splice junction usage analysis")
7973 (description
7974 "This framework facilitates the execution of @dfn{differential junction
7975usage} (DJU) methods. Additionally, it enables the integration of results from
7976multiple DJU methods.")
7977 (license license:expat)))
7978
7979(define-public python-bamnostic
7980 (package
7981 (name "python-bamnostic")
7982 (version "1.3.0")
7983 (source
7984 (origin
7985 (method git-fetch)
7986 (uri (git-reference
7987 (url "https://github.com/betteridiot/bamnostic/")
7988 (commit (string-append "v" version))))
7989 (file-name (git-file-name name version))
7990 (sha256
7991 (base32 "1rlr46zcb0hzi9lj9naf3gkqqqxhzbwd84zxyjsaa8dvcdm23x14"))))
7992 (build-system pyproject-build-system)
7993 (native-inputs (list python-pytest python-setuptools))
7994 (home-page "https://github.com/betteridiot/bamnostic/")
7995 (synopsis "Tool for binary alignment map, random access and parsing")
7996 (description
7997 "Bamnostic is a pure Python @dfn{Binary Alignment Map} (BAM) file parser
7998and random access tool.")
7999 (license license:bsd-3)))
8000
8001(define-public python-modbedtools
8002 (package
8003 (name "python-modbedtools")
8004 (version "0.2.0")
8005 (source
8006 (origin
8007 (method url-fetch)
8008 (uri (pypi-uri "modbedtools" version))
8009 (sha256
8010 (base32 "1cl8ski098daw85vcygc22c7shpk3z34zs0rpa584w93xspsv10r"))))
8011 (build-system pyproject-build-system)
8012 (propagated-inputs (list python-pysam))
8013 (native-inputs (list python-setuptools
8014 python-setuptools-scm))
8015 ;; No tests in PyPI archive, git provides no tests scenarios either; there
8016 ;; is some test data in "test" directory but no description in README how
8017 ;; to use them for testing the module.
8018 (arguments (list #:tests? #f))
8019 (home-page "https://github.com/lidaof/modbedtools")
8020 (synopsis
8021 "Generate modbed track files for visualization on WashU Epigenome Browser")
8022 (description
8023 "modbedtools is a python command line tool to generate modbed files for
8024visualization on the WashU Epigenome Browser.")
8025 (license license:expat)))
8026
8027(define-public python-ete3
8028 (package
8029 (name "python-ete3")
8030 (version "3.1.3")
8031 (source (origin
8032 (method git-fetch)
8033 (uri (git-reference
8034 (url "https://github.com/etetoolkit/ete")
8035 (commit version)))
8036 (file-name (git-file-name name version))
8037 (sha256
8038 (base32
8039 "1i6533wsm06mz0sdrisqai929j744cnczwjgsmxl847q5k16kngd"))))
8040 (build-system pyproject-build-system)
8041 (arguments
8042 (list
8043 #:test-flags
8044 '(list "-k"
8045 ;; This test crashes Python in the build container
8046 (string-append "not test_renderer"
8047 ;; These all need internet access
8048 " and not test_00_update_database"
8049 " and not test_01tree_annotation"
8050 " and not test_get_topology"
8051 " and not test_merged_id"
8052 " and not test_ncbi_compare"
8053 " and not test_ncbiquery")
8054 "ete3/test/test_api.py")
8055 #:phases
8056 '(modify-phases %standard-phases
8057 (add-after 'unpack 'python312-compatibility
8058 (lambda _
8059 (substitute* '("ete3/test/test_arraytable.py"
8060 "ete3/test/test_evol.py")
8061 (("assert_") "assertTrue")))))))
8062 (propagated-inputs
8063 (list python-lxml
8064 python-numpy
8065 python-pyqt
8066 python-scipy
8067 python-six))
8068 (native-inputs
8069 (list python-pytest python-setuptools))
8070 (home-page "http://etetoolkit.org")
8071 (synopsis "Python environment for phylogenetic tree exploration")
8072 (description
8073 "This package provides a Python environment for phylogenetic tree
8074exploration.")
8075 (license license:gpl3+)))
8076
8077(define-public python-illumina-utils
8078 (package
8079 (name "python-illumina-utils")
8080 (version "2.13")
8081 (source
8082 (origin
8083 (method git-fetch)
8084 (uri (git-reference
8085 (url "https://github.com/meren/illumina-utils")
8086 (commit (string-append "v" version))))
8087 (file-name (git-file-name name version))
8088 (sha256
8089 (base32 "15cyb5slw07va5siq8nzc0nwcgnvx1hmqqrgwk2v0fxy250fp9v4"))))
8090 (build-system pyproject-build-system)
8091 (arguments
8092 (list
8093 #:tests? #f ;there are none
8094 #:phases
8095 #~(modify-phases %standard-phases
8096 (add-after 'unpack 'adjust-requirements
8097 (lambda _
8098 (substitute* "requirements.txt"
8099 (("python-Levenshtein")
8100 "levenshtein")))))))
8101 (propagated-inputs (list python-levenshtein python-matplotlib python-numpy))
8102 (native-inputs (list python-pip python-setuptools))
8103 (home-page "https://github.com/meren/illumina-utils")
8104 (synopsis "Library and scripts to work with Illumina paired-end data")
8105 (description
8106 "This package provides a library and collection of scripts to work with
8107Illumina paired-end data (for CASAVA 1.8+).")
8108 (license license:gpl2+)))
8109
8110(define-public python-pyani
8111 (package
8112 (name "python-pyani")
8113 (version "0.2.12")
8114 (source (origin
8115 (method url-fetch)
8116 (uri (pypi-uri "pyani" version))
8117 (sha256
8118 (base32
8119 "124kdg7168nbh4a5wisfws1fgkd89dd4js9v6dml2lvgclbv4mjg"))))
8120 (build-system pyproject-build-system)
8121 ;; This contains two test data files but no way to run the tests.
8122 (arguments (list #:tests? #false))
8123 (propagated-inputs
8124 (list python-biopython python-matplotlib python-pandas
8125 python-scipy python-seaborn))
8126 (native-inputs (list python-setuptools))
8127 (home-page "https://widdowquinn.github.io/pyani/")
8128 (synopsis "Calculate genome-scale average nucleotide identity")
8129 (description
8130 "Pyani provides a package and script for calculation of genome-scale
8131average nucleotide identity.")
8132 (license license:expat)))
8133
8134(define-public python-pyahocorasick
8135 (package
8136 (name "python-pyahocorasick")
8137 (version "2.2.0")
8138 (source
8139 (origin
8140 (method git-fetch)
8141 (uri (git-reference
8142 (url "https://github.com/WojciechMula/pyahocorasick")
8143 (commit (string-append "v" version))))
8144 (file-name (git-file-name name version))
8145 (sha256
8146 (base32 "0r9n8awy80dg8dmgza4kpgwbpkvjf4s85cyswnq04h3x6cf62lll"))))
8147 (build-system pyproject-build-system)
8148 (native-inputs (list python-pytest python-setuptools))
8149 (home-page "https://github.com/WojciechMula/pyahocorasick")
8150 (synopsis "Library for finding multiple key strings in text")
8151 (description
8152 "Pyahocorasick is a fast, memory-efficient library for multi-pattern string search.
8153This means that you can find multiple key strings occurrences
8154at once in some input text.")
8155 (license license:bsd-3)))
8156
8157(define-public exonerate
8158 (package
8159 (name "exonerate")
8160 (version "2.4.0")
8161 (source
8162 (origin
8163 (method url-fetch)
8164 (uri
8165 (string-append
8166 "http://ftp.ebi.ac.uk/pub/software/vertebrategenomics/exonerate/"
8167 "exonerate-" version ".tar.gz"))
8168 (sha256
8169 (base32
8170 "0hj0m9xygiqsdxvbg79wq579kbrx1mdrabi2bzqz2zn9qwfjcjgq"))))
8171 (build-system gnu-build-system)
8172 (arguments
8173 `(#:parallel-build? #f)) ; Building in parallel fails on some machines.
8174 (native-inputs
8175 (list pkg-config))
8176 (inputs
8177 (list glib))
8178 (home-page
8179 "https://www.ebi.ac.uk/about/vertebrate-genomics/software/exonerate")
8180 (synopsis "Generic tool for biological sequence alignment")
8181 (description
8182 "Exonerate is a generic tool for pairwise sequence comparison. It allows
8183the alignment of sequences using a many alignment models, either exhaustive
8184dynamic programming or a variety of heuristics.")
8185 (license license:gpl3)))
8186
8187(define-public express
8188 (package
8189 (name "express")
8190 (version "1.5.3")
8191 (source (origin
8192 (method git-fetch)
8193 (uri (git-reference
8194 (url "https://github.com/adarob/eXpress")
8195 (commit version)))
8196 (file-name (git-file-name name version))
8197 (sha256
8198 (base32
8199 "18nb22n7x820fzjngf4qgyb3mspqkw7xyk7v7s5ps6wfrd8qwscb"))))
8200 (build-system cmake-build-system)
8201 (arguments
8202 (list
8203 #:tests? #f ;no "check" target
8204 #:phases
8205 #~(modify-phases %standard-phases
8206 (add-after 'unpack 'use-shared-boost-libs-and-set-bamtools-paths
8207 (lambda* (#:key inputs #:allow-other-keys)
8208 (substitute* "CMakeLists.txt"
8209 (("set\\(Boost_USE_STATIC_LIBS ON\\)")
8210 "set(Boost_USE_STATIC_LIBS OFF)")
8211 (("\\$\\{CMAKE_CURRENT_SOURCE_DIR\\}/bamtools/include")
8212 (search-input-directory inputs "/include/bamtools"))
8213 (("\\$\\{PROJECT_SOURCE_DIR\\}/bamtools/lib/libbamtools.a")
8214 (search-input-file inputs "/lib/libbamtools.so"))
8215 (("libbamtools.a") "libbamtools.so"))
8216 (substitute* "src/CMakeLists.txt"
8217 (("libprotobuf.a") "libprotobuf.so"))))
8218 (add-after 'unpack 'remove-update-check
8219 (lambda _
8220 (substitute* "src/main.cpp"
8221 (("#include \"update_check.h\"") "")
8222 (("check_version\\(PACKAGE_VERSION\\);") "")))))))
8223 (inputs
8224 (list boost-1.83 bamtools protobuf zlib))
8225 (home-page "http://bio.math.berkeley.edu/eXpress")
8226 (synopsis "Streaming quantification for high-throughput genomic sequencing")
8227 (description
8228 "eXpress is a streaming tool for quantifying the abundances of a set of
8229target sequences from sampled subsequences. Example applications include
8230transcript-level RNA-Seq quantification, allele-specific/haplotype expression
8231analysis (from RNA-Seq), transcription factor binding quantification in
8232ChIP-Seq, and analysis of metagenomic data.")
8233 (properties `((lint-hidden-cpe-vendors . ("openjsf" "qs_project"))))
8234 (license license:artistic2.0)))
8235
8236(define-public fasttree
8237 (package
8238 (name "fasttree")
8239 (version "2.1.10")
8240 (source (origin
8241 (method url-fetch)
8242 (uri (string-append
8243 "http://www.microbesonline.org/fasttree/FastTree-"
8244 version ".c"))
8245 (sha256
8246 (base32
8247 "0vcjdvy1j4m702vmak4svbfkrpcw63k7wymfksjp9a982zy8kjsl"))))
8248 (build-system gnu-build-system)
8249 (arguments
8250 `(#:tests? #f ; no "check" target
8251 #:phases
8252 (modify-phases %standard-phases
8253 (delete 'unpack)
8254 (delete 'configure)
8255 (replace 'build
8256 (lambda* (#:key source #:allow-other-keys)
8257 (invoke "gcc"
8258 "-O3"
8259 "-finline-functions"
8260 "-funroll-loops"
8261 "-Wall"
8262 "-o"
8263 "FastTree"
8264 source
8265 "-lm")
8266 (invoke "gcc"
8267 "-DOPENMP"
8268 "-fopenmp"
8269 "-O3"
8270 "-finline-functions"
8271 "-funroll-loops"
8272 "-Wall"
8273 "-o"
8274 "FastTreeMP"
8275 source
8276 "-lm")
8277 #t))
8278 (replace 'install
8279 (lambda* (#:key outputs #:allow-other-keys)
8280 (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
8281 (install-file "FastTree" bin)
8282 (install-file "FastTreeMP" bin)
8283 #t))))))
8284 (home-page "http://www.microbesonline.org/fasttree")
8285 (synopsis "Infers approximately-maximum-likelihood phylogenetic trees")
8286 (description
8287 "FastTree can handle alignments with up to a million of sequences in a
8288reasonable amount of time and memory. For large alignments, FastTree is
8289100-1,000 times faster than PhyML 3.0 or RAxML 7.")
8290 (license license:gpl2+)))
8291
8292(define-public flash
8293 (package
8294 (name "flash")
8295 (version "1.2.11")
8296 (source
8297 (origin
8298 (method url-fetch)
8299 (uri (string-append "mirror://sourceforge/flashpage/FLASH-"
8300 version ".tar.gz"))
8301 (sha256
8302 (base32
8303 "1b1ns9ghbcxy92xwa2a53ikqacvnyhvca0zfv0s7986xzvvscp38"))))
8304 (build-system gnu-build-system)
8305 (arguments
8306 (list
8307 #:make-flags #~(list (string-append "CC=" #$(cc-for-target)))
8308 #:tests? #f ;no tests
8309 #:phases
8310 #~(modify-phases %standard-phases
8311 ;; No configure script
8312 (delete 'configure)
8313 ;; No install target
8314 (replace 'install
8315 (lambda _
8316 (install-file "flash"
8317 (string-append #$output "/bin")))))))
8318 (inputs (list zlib))
8319 (home-page "http://ccb.jhu.edu/software/FLASH/")
8320 (synopsis "Merge paired-end nucleotide reads from NGS experiments")
8321 (description "FLASH (Fast Length Adjustment of SHort reads) is a tool to
8322merge paired-end reads from next-generation sequencing experiments. FLASH is
8323designed to merge pairs of reads when the original DNA fragments are shorter
8324than twice the length of reads. The resulting longer reads can significantly
8325improve genome assemblies. They can also improve transcriptome assembly when
8326FLASH is used to merge RNA-seq data.")
8327 (license license:gpl3+)))
8328
8329(define-public flexbar
8330 (package
8331 (name "flexbar")
8332 (version "3.5.0")
8333 (source (origin
8334 (method git-fetch)
8335 (uri (git-reference
8336 (url "https://github.com/seqan/flexbar")
8337 (commit (string-append "v" version))))
8338 (file-name (git-file-name name version))
8339 (sha256
8340 (base32
8341 "1w0c592wmi3xin2wlb9vmxp7f8f3s9nhl3y9ih4djrlfqyim70h9"))))
8342 (build-system cmake-build-system)
8343 (arguments
8344 (list
8345 #:phases
8346 #~(modify-phases %standard-phases
8347 (add-after 'unpack 'do-not-tune-to-CPU
8348 (lambda _
8349 (substitute* "src/CMakeLists.txt"
8350 ((" -march=native") ""))))
8351 (replace 'check
8352 (lambda _
8353 (setenv "PATH" (string-append (getcwd) ":" (getenv "PATH")))
8354 (with-directory-excursion "../source/test"
8355 (invoke "bash" "flexbar_test.sh"))))
8356 (replace 'install
8357 (lambda* (#:key outputs #:allow-other-keys)
8358 (install-file "flexbar" (string-append #$output "/bin/")))))))
8359 (inputs
8360 (list tbb-2020 zlib))
8361 (native-inputs
8362 (list pkg-config seqan-2))
8363 (home-page "https://github.com/seqan/flexbar")
8364 (synopsis "Barcode and adapter removal tool for sequencing platforms")
8365 (description
8366 "Flexbar preprocesses high-throughput nucleotide sequencing data
8367efficiently. It demultiplexes barcoded runs and removes adapter sequences.
8368Moreover, trimming and filtering features are provided. Flexbar increases
8369read mapping rates and improves genome and transcriptome assemblies. It
8370supports next-generation sequencing data in fasta/q and csfasta/q format from
8371Illumina, Roche 454, and the SOLiD platform.")
8372 (license license:bsd-3)))
8373
8374(define-public fxtract
8375 (let ((util-commit "776ca85a18a47492af3794745efcb4a905113115"))
8376 (package
8377 (name "fxtract")
8378 (version "2.3")
8379 (source
8380 (origin
8381 (method git-fetch)
8382 (uri (git-reference
8383 (url "https://github.com/ctSkennerton/fxtract")
8384 (commit version)))
8385 (file-name (git-file-name name version))
8386 (sha256
8387 (base32
8388 "0hab3gpwf4w9s87qlbswq6ws1qqybh4dcqk79q1ahyldzai5fgp5"))))
8389 (build-system gnu-build-system)
8390 (arguments
8391 `(#:make-flags ,#~(list
8392 (string-append "PREFIX=" #$output)
8393 "CC=gcc")
8394 #:test-target "fxtract_test"
8395 #:phases
8396 (modify-phases %standard-phases
8397 (delete 'configure)
8398 (add-before 'build 'copy-util
8399 (lambda* (#:key inputs #:allow-other-keys)
8400 (rmdir "util")
8401 (copy-recursively (assoc-ref inputs "ctskennerton-util") "util")
8402 #t))
8403 ;; Do not use make install as this requires additional dependencies.
8404 (replace 'install
8405 (lambda* (#:key outputs #:allow-other-keys)
8406 (let* ((out (assoc-ref outputs "out"))
8407 (bin (string-append out"/bin")))
8408 (install-file "fxtract" bin)
8409 #t))))))
8410 (inputs
8411 (list pcre zlib))
8412 (native-inputs
8413 ;; ctskennerton-util is licensed under GPL2.
8414 `(("ctskennerton-util"
8415 ,(origin
8416 (method git-fetch)
8417 (uri (git-reference
8418 (url "https://github.com/ctSkennerton/util")
8419 (commit util-commit)))
8420 (file-name (string-append
8421 "ctstennerton-util-" util-commit "-checkout"))
8422 (sha256
8423 (base32
8424 "0cls1hd4vgj3f36fpzzg4xc77d6f3hpc60cbpfmn2gdr7ykzzad7"))))))
8425 (home-page "https://github.com/ctSkennerton/fxtract")
8426 (synopsis "Extract sequences from FASTA and FASTQ files")
8427 (description
8428 "Fxtract extracts sequences from a protein or nucleotide fastx (FASTA
8429or FASTQ) file given a subsequence. It uses a simple substring search for
8430basic tasks but can change to using POSIX regular expressions, PCRE, hash
8431lookups or multi-pattern searching as required. By default fxtract looks in
8432the sequence of each record but can also be told to look in the header,
8433comment or quality sections.")
8434 ;; 'util' requires SSE instructions.
8435 (supported-systems '("x86_64-linux"))
8436 (license license:expat))))
8437
8438(define-public gemma
8439 (package
8440 (name "gemma")
8441 (version "0.98.5")
8442 (source (origin
8443 (method git-fetch)
8444 (uri (git-reference
8445 (url "https://github.com/genetics-statistics/GEMMA")
8446 (commit (string-append "v" version))))
8447 (file-name (git-file-name name version))
8448 (sha256
8449 (base32
8450 "1dm8pf1fbdmv2yiz5aybcvk3050m5350gq8xlr4j6swzm3wwhydn"))
8451 (modules '((guix build utils)))
8452 (snippet
8453 #~(begin
8454 (delete-file-recursively "contrib")))))
8455 (build-system gnu-build-system)
8456 (inputs
8457 (list gsl openblas zlib))
8458 (native-inputs
8459 (list catch2-1
8460 perl
8461 shunit2
8462 which))
8463 (arguments
8464 (list
8465 #:phases
8466 #~(modify-phases %standard-phases
8467 (delete 'configure)
8468 (add-after 'unpack 'prepare-build
8469 (lambda _
8470 (mkdir-p "bin")
8471 (substitute* "Makefile"
8472 (("/usr/local/opt/openblas")
8473 #$(this-package-input "openblas")))))
8474 (replace 'check
8475 (lambda* (#:key tests? #:allow-other-keys)
8476 (when tests?
8477 ;; 'make slow-check' expects shunit2-2.0.3.
8478 (with-directory-excursion "test"
8479 (invoke "./test_suite.sh")))))
8480 (replace 'install
8481 (lambda _
8482 (install-file "bin/gemma" (string-append #$output "/bin")))))))
8483 (home-page "https://github.com/genetics-statistics/GEMMA")
8484 (synopsis "Tool for genome-wide efficient mixed model association")
8485 (description
8486 "@acronym{GEMMA, Genome-wide Efficient Mixed Model Association} provides a
8487standard linear mixed model resolver with application in @acronym{GWAS,
8488genome-wide association studies}.")
8489 (license license:gpl3)))
8490
8491(define-public hisat
8492 (package
8493 (name "hisat")
8494 (version "0.1.6")
8495 (source (origin
8496 (method url-fetch)
8497 (uri (string-append
8498 "http://ccb.jhu.edu/software/hisat/downloads/hisat-"
8499 version "-beta-source.zip"))
8500 (sha256
8501 (base32
8502 "177z85vqp9b30vgxl5py5hz4mm37ila37nzhfam23ci9iyfxgyv9"))))
8503 (build-system gnu-build-system)
8504 (arguments
8505 `(#:tests? #f ;no check target
8506 #:make-flags '("allall"
8507 ;; Disable unsupported `popcnt' instructions on
8508 ;; architectures other than x86_64
8509 ,@(if (string-prefix? "x86_64"
8510 (or (%current-target-system)
8511 (%current-system)))
8512 '()
8513 '("POPCNT_CAPABILITY=0")))
8514 #:phases
8515 (modify-phases %standard-phases
8516 (add-after 'unpack 'patch-sources
8517 (lambda _
8518 ;; XXX Cannot use snippet because zip files are not supported
8519 (substitute* "Makefile"
8520 (("^CC = .*$") "CC = gcc")
8521 (("^CPP = .*$") "CPP = g++")
8522 ;; replace BUILD_HOST and BUILD_TIME for deterministic build
8523 (("-DBUILD_HOST=.*") "-DBUILD_HOST=\"\\\"guix\\\"\"")
8524 (("-DBUILD_TIME=.*") "-DBUILD_TIME=\"\\\"0\\\"\""))
8525 (substitute* '("hisat-build" "hisat-inspect")
8526 (("/usr/bin/env") (which "env")))
8527 ;; This "extended character" is not considered valid.
8528 (substitute* "processor_support.h"
8529 (("“") "\"")
8530 (("”") "\""))))
8531 (replace 'install
8532 (lambda* (#:key outputs #:allow-other-keys)
8533 (let ((bin (string-append (assoc-ref outputs "out") "/bin/")))
8534 (for-each (lambda (file)
8535 (install-file file bin))
8536 (find-files
8537 "."
8538 "hisat(-(build|align|inspect)(-(s|l)(-debug)*)*)*$")))))
8539 (delete 'configure))))
8540 (native-inputs
8541 (list gcc-10 unzip))
8542 (inputs
8543 (list perl python zlib))
8544 ;; Non-portable SSE instructions are used so building fails on platforms
8545 ;; other than x86_64.
8546 (supported-systems '("x86_64-linux"))
8547 (home-page "https://ccb.jhu.edu/software/hisat/index.shtml")
8548 (synopsis "Hierarchical indexing for spliced alignment of transcripts")
8549 (description
8550 "HISAT is a fast and sensitive spliced alignment program for mapping
8551RNA-seq reads. In addition to one global FM index that represents a whole
8552genome, HISAT uses a large set of small FM indexes that collectively cover the
8553whole genome. These small indexes (called local indexes) combined with
8554several alignment strategies enable effective alignment of RNA-seq reads, in
8555particular, reads spanning multiple exons.")
8556 (license license:gpl3+)))
8557
8558(define-public hisat2
8559 (package
8560 (name "hisat2")
8561 (version "2.2.2")
8562 (source
8563 (origin
8564 (method git-fetch)
8565 (uri (git-reference
8566 (url "https://github.com/DaehwanKimLab/hisat2/")
8567 (commit (string-append "v" version))))
8568 (file-name (git-file-name name version))
8569 (sha256
8570 (base32
8571 "1q60a8r8vgnpyn1ivrw9yp89awbdwi85k8hisy8lyvdpgrxwxgji"))))
8572 (build-system gnu-build-system)
8573 (arguments
8574 (list
8575 #:tests? #f ; no check target
8576 #:make-flags
8577 #~(list (string-append "CC=" #$(cc-for-target))
8578 (string-append "CXX=" #$(cxx-for-target))
8579 "allall")
8580 #:modules `((guix build gnu-build-system)
8581 (guix build utils)
8582 (srfi srfi-26))
8583 #:phases
8584 #~(modify-phases %standard-phases
8585 (add-after 'unpack 'make-deterministic
8586 (lambda _
8587 (substitute* "Makefile"
8588 (("`hostname`") "guix")
8589 (("`date`") "0"))))
8590 (delete 'configure)
8591 (add-before 'build 'build-manual
8592 (lambda _
8593 (mkdir-p "doc")
8594 (invoke "make" "doc")))
8595 (replace 'install
8596 (lambda _
8597 (for-each
8598 (cute install-file <> (string-append #$output "/bin/"))
8599 (find-files "."
8600 "hisat2(-(build|align|inspect)(-(s|l)(-debug)*)*)*$"))
8601 (install-file "doc/manual.inc.html"
8602 (string-append #$output "/share/doc/hisat2/")))))))
8603 (native-inputs
8604 (list perl pandoc)) ; for documentation
8605 (inputs
8606 (list python-wrapper))
8607 ;; Non-portable instructions are used so building fails on other platforms
8608 ;; There is an open PR to address this issue:
8609 ;; https://github.com/DaehwanKimLab/hisat2/pull/251
8610 (supported-systems '("x86_64-linux"))
8611 (home-page "https://daehwankimlab.github.io/hisat2/")
8612 (synopsis "Graph-based alignment of genomic sequencing reads")
8613 (description "HISAT2 is a fast and sensitive alignment program for mapping
8614next-generation sequencing reads (both DNA and RNA) to a population of human
8615genomes (as well as to a single reference genome). In addition to using one
8616global @dfn{graph FM} (GFM) index that represents a population of human
8617genomes, HISAT2 uses a large set of small GFM indexes that collectively cover
8618the whole genome. These small indexes, combined with several alignment
8619strategies, enable rapid and accurate alignment of sequencing reads. This new
8620indexing scheme is called a @dfn{Hierarchical Graph FM index} (HGFM).")
8621 ;; HISAT2 contains files from Bowtie2, which is released under
8622 ;; GPLv2 or later. The HISAT2 source files are released under
8623 ;; GPLv3 or later.
8624 (license license:gpl3+)))
8625
8626(define-public homer
8627 (package
8628 (name "homer")
8629 (version "4.11.1")
8630 (source
8631 (origin
8632 (method url-fetch/zipbomb)
8633 (uri (string-append "http://homer.ucsd.edu/homer/data/software/homer.v"
8634 version ".zip"))
8635 (sha256
8636 (base32
8637 "0ay802swzq6ix9d8fkinpplcvyc1xyi3cjmj2x08jab7c40cvlc0"))))
8638 (build-system gnu-build-system)
8639 (arguments
8640 (list
8641 #:phases
8642 #~(modify-phases %standard-phases
8643 (replace 'configure
8644 (lambda* (#:key inputs #:allow-other-keys)
8645 (let ((share (string-append #$output "/share/homer")))
8646 (mkdir-p share)
8647 (copy-file (assoc-ref inputs "config.txt")
8648 (string-append share "/config.txt"))
8649 (substitute* "configureHomer.pl"
8650 (("my \\$homeDir = \\$1;")
8651 (string-append "my $homeDir = \"" share "\";"))))))
8652 (replace 'build
8653 (lambda _
8654 (let ((share (string-append #$output "/share/homer")))
8655 (copy-recursively "." share))
8656 (invoke "perl" "configureHomer.pl" "-local")))
8657 (replace 'check
8658 (lambda* (#:key tests? #:allow-other-keys)
8659 (when tests?
8660 (invoke (string-append #$output "/share/homer/bin/homer2")))))
8661 (replace 'install
8662 (lambda _
8663 (mkdir-p (string-append #$output "/bin"))
8664 (symlink (string-append #$output "/share/homer/bin/homer2")
8665 (string-append #$output "/bin/homer2"))
8666 (symlink (string-append #$output "/share/homer/bin/homer")
8667 (string-append #$output "/bin/homer"))
8668 (for-each patch-shebang
8669 (find-files (string-append #$output "/share/homer/bin")
8670 "\\.pl$"))
8671 ;; Also load config file from user's home directory.
8672 (substitute* (string-append #$output "/share/homer/bin/HomerConfig.pm")
8673 (("#parseConfigFile") "parseConfigFile")))))))
8674 (inputs
8675 (list perl))
8676 (native-inputs
8677 `(("perl" ,perl)
8678 ("unzip" ,unzip)
8679 ("config.txt"
8680 ,(origin
8681 (method url-fetch)
8682 (uri (string-append "https://web.archive.org/web/20200531014112id_/"
8683 "http://homer.ucsd.edu/homer/update.txt"))
8684 (sha256
8685 (base32
8686 "1hf17pk8r6b297ysd27bvxzyn8pxdhxd8wj8g0lqlifbid9fw04h"))))))
8687 (home-page "http://homer.ucsd.edu/homer")
8688 (synopsis "Motif discovery and next generation sequencing analysis")
8689 (description
8690 "HOMER (Hypergeometric Optimization of Motif EnRichment) is a suite of
8691tools for Motif Discovery and next-gen sequencing analysis. It is a
8692collection of command line programs written in Perl and C++. HOMER was
8693primarily written as a de novo motif discovery algorithm and is well suited
8694for finding 8-20 bp motifs in large scale genomics data. HOMER contains many
8695useful tools for analyzing ChIP-Seq, GRO-Seq, RNA-Seq, DNase-Seq, Hi-C and
8696numerous other types of functional genomics sequencing data sets.")
8697 (license license:gpl3+)))
8698
8699(define-public hmmer
8700 (package
8701 (name "hmmer")
8702 (version "3.3.2")
8703 (source
8704 (origin
8705 (method url-fetch)
8706 (uri (string-append
8707 "http://eddylab.org/software/hmmer/hmmer-" version ".tar.gz"))
8708 (sha256
8709 (base32
8710 "0s9wf6n0qanbx8qs6igfl3vyjikwbrvh4d9d6mv54yp3xysykzlj"))))
8711 (build-system gnu-build-system)
8712 (native-inputs (list perl python)) ; for tests
8713 (home-page "http://hmmer.org/")
8714 (synopsis "Biosequence analysis using profile hidden Markov models")
8715 (description
8716 "HMMER is used for searching sequence databases for homologs of protein
8717sequences, and for making protein sequence alignments. It implements methods
8718using probabilistic models called profile hidden Markov models (profile
8719HMMs).")
8720 ;; hmmer uses non-portable SSE intrinsics so building fails on other
8721 ;; platforms.
8722 (supported-systems '("x86_64-linux" "i686-linux"))
8723 (license license:bsd-3)))
8724
8725(define-public htseq
8726 (package
8727 (name "htseq")
8728 (version "2.0.9")
8729 (source (origin
8730 (method git-fetch)
8731 (uri (git-reference
8732 (url "https://github.com/htseq/htseq")
8733 (commit (string-append "release_" version))))
8734 (file-name (git-file-name name version))
8735 (sha256
8736 (base32
8737 "1wyv5aqdx1i48i01xnav1cvv5zjv9n4nxplcgplwzxz9pxiw3kcb"))))
8738 (build-system pyproject-build-system)
8739 (propagated-inputs
8740 (list python-numpy
8741 python-pysam))
8742 (native-inputs
8743 (list python-cython
8744 python-matplotlib
8745 python-pandas
8746 python-pytest
8747 python-scipy
8748 python-setuptools
8749 swig-4.0))
8750 (home-page "https://github.com/htseq")
8751 (synopsis "Framework for analyzing high-throughput sequencing data")
8752 (description
8753 "This package provides a framework to process and analyze data from
8754high-throughput sequencing (HTS) assays")
8755 (license license:gpl3+)))
8756
8757(define-public python-genomepy
8758 (package
8759 (name "python-genomepy")
8760 (version "0.16.3")
8761 (source
8762 (origin
8763 (method git-fetch)
8764 (uri (git-reference
8765 (url "https://github.com/vanheeringen-lab/genomepy")
8766 (commit version)))
8767 (file-name (git-file-name name version))
8768 (sha256
8769 (base32 "0bsvsvid6vl54qck3iwylfcyxc8v7xy0klwv7558zl6yckw3i4p0"))))
8770 (build-system pyproject-build-system)
8771 (arguments
8772 (list
8773 ;; The tests require internet access.
8774 #:tests? #false
8775 #:phases
8776 '(modify-phases %standard-phases
8777 ;; Needed by tests
8778 (add-after 'unpack 'set-HOME
8779 (lambda _ (setenv "HOME" "/tmp"))))))
8780 (propagated-inputs (list mysql-connector-python
8781 python-appdirs
8782 python-biopython
8783 python-click
8784 python-colorama
8785 python-diskcache
8786 python-filelock
8787 python-loguru
8788 python-mygene
8789 python-norns
8790 python-numpy
8791 python-pandas
8792 python-pyfaidx
8793 python-requests
8794 python-tqdm))
8795 (native-inputs (list python-hatchling))
8796 (home-page "https://vanheeringen-lab.github.io/genomepy/")
8797 (synopsis "Genes and genomes at your fingertips")
8798 (description "genomepy is designed to provide a simple and straightforward
8799way to download and use genomic data. This includes
8800
8801@enumerate
8802@item searching available data,
8803@item showing the available metadata,
8804@item automatically downloading, preprocessing and matching data, and
8805@item generating optional aligner indexes.
8806@end enumerate
8807
8808All with sensible, yet controllable defaults.")
8809 (license license:expat)))
8810
8811(define-public java-htsjdk
8812 (package
8813 (name "java-htsjdk")
8814 (version "2.3.0") ; last version without build dependency on gradle
8815 (source (origin
8816 (method git-fetch)
8817 (uri (git-reference
8818 (url "https://github.com/samtools/htsjdk")
8819 (commit version)))
8820 (file-name (git-file-name name version))
8821 (sha256
8822 (base32
8823 "1b178ixcabanm834ydjl3jiakpyxdmki32hqfv2abrzn3rcwa28i"))
8824 (modules '((guix build utils)))
8825 (snippet
8826 ;; Delete pre-built binaries
8827 '(begin
8828 (delete-file-recursively "lib")
8829 (mkdir-p "lib")
8830 #t))))
8831 (build-system ant-build-system)
8832 (arguments
8833 (list
8834 #:tests? #f ; test require Internet access
8835 #:jdk icedtea-8
8836 #:make-flags
8837 #~(list (string-append "-Ddist=" #$output "/share/java/htsjdk/"))
8838 #:build-target "all"
8839 #:phases
8840 #~(modify-phases %standard-phases
8841 ;; The build phase also installs the jars
8842 (delete 'install))))
8843 (inputs
8844 (list java-commons-compress
8845 java-commons-jexl-2
8846 java-commons-logging-minimal
8847 java-ngs
8848 java-snappy-1
8849 java-xz))
8850 (native-inputs
8851 (list java-testng))
8852 (home-page "https://samtools.github.io/htsjdk/")
8853 (synopsis "Java API for high-throughput sequencing data (HTS) formats")
8854 (description
8855 "HTSJDK is an implementation of a unified Java library for accessing
8856common file formats, such as SAM and VCF, used for high-throughput
8857sequencing (HTS) data. There are also an number of useful utilities for
8858manipulating HTS data.")
8859 (license license:expat)))
8860
8861(define-public java-htsjdk-latest
8862 (package
8863 (name "java-htsjdk")
8864 (version "2.14.3")
8865 (source (origin
8866 (method git-fetch)
8867 (uri (git-reference
8868 (url "https://github.com/samtools/htsjdk")
8869 (commit version)))
8870 (file-name (string-append name "-" version "-checkout"))
8871 (sha256
8872 (base32
8873 "1lmya1fdjy03mz6zmdmd86j9v9vfhqb3952mqq075navx1i6g4bc"))))
8874 (build-system ant-build-system)
8875 (arguments
8876 (list
8877 #:tests? #f ; test require Scala
8878 #:jdk icedtea-8
8879 #:jar-name "htsjdk.jar"
8880 #:phases
8881 #~(modify-phases %standard-phases
8882 (add-after 'unpack 'remove-useless-build.xml
8883 (lambda _
8884 (delete-file "build.xml")))
8885 ;; The tests require the scalatest package.
8886 (add-after 'unpack 'remove-tests
8887 (lambda _
8888 (delete-file-recursively "src/test"))))))
8889 (inputs
8890 (list java-commons-compress
8891 java-commons-jexl-2
8892 java-commons-logging-minimal
8893 java-ngs
8894 java-snappy-1
8895 java-xz))
8896 (native-inputs
8897 (list java-junit))
8898 (home-page "https://samtools.github.io/htsjdk/")
8899 (synopsis "Java API for high-throughput sequencing data (HTS) formats")
8900 (description
8901 "HTSJDK is an implementation of a unified Java library for accessing
8902common file formats, such as SAM and VCF, used for high-throughput
8903sequencing (HTS) data. There are also an number of useful utilities for
8904manipulating HTS data.")
8905 (license license:expat)))
8906
8907;; This is needed for picard 2.10.3
8908(define-public java-htsjdk-2.10.1
8909 (package (inherit java-htsjdk-latest)
8910 (name "java-htsjdk")
8911 (version "2.10.1")
8912 (source (origin
8913 (method git-fetch)
8914 (uri (git-reference
8915 (url "https://github.com/samtools/htsjdk")
8916 (commit version)))
8917 (file-name (string-append name "-" version "-checkout"))
8918 (sha256
8919 (base32
8920 "1kxh7slm2pm3x9p6jxa1wqsq9a31dhiiflhxnxqcisan4k3rwia2"))))
8921 (build-system ant-build-system)
8922 (arguments
8923 (list
8924 #:tests? #f ; tests require Scala
8925 #:jdk icedtea-8
8926 #:jar-name "htsjdk.jar"
8927 #:phases
8928 #~(modify-phases %standard-phases
8929 (add-after 'unpack 'remove-useless-build.xml
8930 (lambda _ (delete-file "build.xml")))
8931 ;; The tests require the scalatest package.
8932 (add-after 'unpack 'remove-tests
8933 (lambda _ (delete-file-recursively "src/test"))))))))
8934
8935(define-public java-maxent
8936 (package
8937 (name "java-maxent")
8938 (version "3.4.4")
8939 (source (origin
8940 (method git-fetch)
8941 (uri (git-reference
8942 (url "https://github.com/mrmaxent/Maxent")
8943 (commit (string-append "v" version))))
8944 (file-name (git-file-name name version))
8945 (sha256
8946 (base32
8947 "12q7hhly76l77vm8w8v9icga2gn6xs0bw33a7wb7zikcmvizcyp0"))))
8948 (build-system ant-build-system)
8949 (arguments
8950 (list
8951 #:tests? #false ;there are none
8952 #:jdk icedtea-8
8953 #:phases
8954 #~(modify-phases %standard-phases
8955 (replace 'build
8956 (lambda* (#:key inputs #:allow-other-keys)
8957 ;; See https://github.com/mrmaxent/Maxent/pull/11
8958 (substitute* "density/Extractor.java"
8959 (("float") "double"))
8960 (with-directory-excursion "gnu/getopt/"
8961 (invoke "make"))
8962 (mkdir-p "ptii")
8963 (with-directory-excursion "ptii"
8964 (invoke "tar" "xvf" (assoc-ref inputs "ptii")
8965 "--strip-components=1")
8966 (copy-recursively "com" "../com"))
8967 (delete-file-recursively "ptii")
8968 (apply invoke "javac" "-cp" (getcwd) "-g"
8969 (find-files "com/microstar/xml" "\\.java$"))
8970 (apply invoke "javac" "-cp" (getcwd) "-g"
8971 (find-files "density" "\\.java$"))
8972
8973 ;; This needs the proprietary com.sun.image.codec.jpeg module.
8974 (delete-file "ptolemy/plot/servlet/PlotServlet.java")
8975 (apply invoke "javac" "-cp"
8976 (string-append (getcwd) ":" (getenv "CLASSPATH")) "-g"
8977 (find-files "ptolemy/plot" "\\.java$"))
8978 (apply invoke "javac" "-cp" (getcwd) "-g"
8979 (find-files "com" "\\.java$"))
8980 (apply invoke "javac" "-cp" (getcwd) "-g"
8981 (find-files "gui" "\\.java$"))
8982 (apply invoke "jar" "cvfm" "maxent.jar"
8983 (cons* "density/mc.mf"
8984 "density/parameters.csv"
8985 (append (find-files "density" "\\.class$")
8986 (find-files "density" "\\.html$")
8987 (find-files "gnu/getopt" ".*")
8988 (find-files "gui/layouts" "\\.class$")
8989 (find-files "com/macfaq/io" "\\.class$")
8990 (find-files "density/tools" "\\.class$")
8991 (find-files "ptolemy/plot" "\\.class$"))))))
8992 (replace 'install
8993 (lambda _
8994 (install-file "maxent.jar"
8995 (string-append #$output "/share/java/maxent/")))))))
8996 (inputs
8997 (list java-classpathx-servletapi))
8998 (native-inputs
8999 `(("make" ,gnu-make)
9000 ;; For com.microstar.xml
9001 ("ptii"
9002 ,(let ((version "4.0.1"))
9003 (origin
9004 (method url-fetch)
9005 (uri (string-append "https://ptolemy.berkeley.edu/ptolemyII/ptII"
9006 (version-major+minor version)
9007 "/ptII" version ".src.tar.gz"))
9008 (sha256
9009 (base32
9010 "0ifmmvrcipcnd4b9im1g379ffrs7g7k99sw5vv9d9h3hzq6hqv21")))))))
9011 (home-page "http://biodiversityinformatics.amnh.org/open_source/maxent")
9012 (synopsis "Model species geographic distributions")
9013 (description
9014 "Maxent is a stand-alone Java application for modelling species
9015geographic distributions.")
9016 (license license:expat)))
9017
9018;; This version matches java-htsjdk 2.3.0. Later versions also require a more
9019;; recent version of java-htsjdk, which depends on gradle.
9020(define-public java-picard
9021 (package
9022 (name "java-picard")
9023 (version "2.3.0")
9024 (source (origin
9025 (method git-fetch)
9026 (uri (git-reference
9027 (url "https://github.com/broadinstitute/picard")
9028 (commit version)))
9029 (file-name (string-append "java-picard-" version "-checkout"))
9030 (sha256
9031 (base32
9032 "1ll7mf4r3by92w2nhlmpa591xd1f46xlkwh59mq6fvbb5pdwzvx6"))
9033 (modules '((guix build utils)))
9034 (snippet
9035 '(begin
9036 ;; Delete pre-built binaries.
9037 (delete-file-recursively "lib")
9038 (mkdir-p "lib")
9039 (substitute* "build.xml"
9040 ;; Remove build-time dependency on git.
9041 (("failifexecutionfails=\"true\"")
9042 "failifexecutionfails=\"false\"")
9043 ;; Use our htsjdk.
9044 (("depends=\"compile-htsjdk, ")
9045 "depends=\"")
9046 (("depends=\"compile-htsjdk-tests, ")
9047 "depends=\"")
9048 ;; Build picard-lib.jar before building picard.jar
9049 (("name=\"picard-jar\" depends=\"" line)
9050 (string-append line "picard-lib-jar, ")))
9051 #t))))
9052 (build-system ant-build-system)
9053 (arguments
9054 `(#:build-target "picard-jar"
9055 #:test-target "test"
9056 ;; Tests require jacoco:coverage.
9057 #:tests? #f
9058 #:make-flags
9059 ,#~(list (string-append "-Dhtsjdk_lib_dir="
9060 #$(this-package-input "java-htsjdk")
9061 "/share/java/htsjdk/")
9062 "-Dhtsjdk-classes=dist/tmp"
9063 (string-append "-Dhtsjdk-version="
9064 #$(package-version java-htsjdk)))
9065 #:jdk ,icedtea-8
9066 #:phases
9067 (modify-phases %standard-phases
9068 ;; FIXME: this phase fails with "duplicate entry: htsjdk/samtools/AbstractBAMFileIndex$1.class"
9069 (delete 'generate-jar-indices)
9070 (add-after 'unpack 'fix-guava
9071 (lambda _
9072 (substitute* "src/java/picard/cmdline/CommandLineParser.java"
9073 (("CharMatcher.ASCII") "CharMatcher.ascii()"))))
9074 (add-after 'unpack 'use-our-htsjdk
9075 (lambda* (#:key inputs #:allow-other-keys)
9076 (substitute* "build.xml"
9077 (("\\$\\{htsjdk\\}/lib")
9078 (search-input-directory inputs
9079 "share/java/htsjdk")))))
9080 (add-after 'unpack 'make-test-target-independent
9081 (lambda* (#:key inputs #:allow-other-keys)
9082 (substitute* "build.xml"
9083 (("name=\"test\" depends=\"compile, ")
9084 "name=\"test\" depends=\""))
9085 #t))
9086 (replace 'install (install-jars "dist")))))
9087 (inputs
9088 (list java-htsjdk java-guava))
9089 (native-inputs
9090 (list java-testng))
9091 (home-page "https://broadinstitute.github.io/picard/")
9092 (synopsis "Tools for manipulating high-throughput sequencing data and formats")
9093 (description "Picard is a set of Java command line tools for manipulating
9094high-throughput sequencing (HTS) data and formats. Picard is implemented
9095using the HTSJDK Java library to support accessing file formats that are
9096commonly used for high-throughput sequencing data such as SAM, BAM, CRAM and
9097VCF.")
9098 (license license:expat)))
9099
9100;; This is needed for dropseq-tools
9101(define-public java-picard-2.10.3
9102 (package
9103 (name "java-picard")
9104 (version "2.10.3")
9105 (source (origin
9106 (method git-fetch)
9107 (uri (git-reference
9108 (url "https://github.com/broadinstitute/picard")
9109 (commit version)))
9110 (file-name (string-append "java-picard-" version "-checkout"))
9111 (sha256
9112 (base32
9113 "1ajlx31l6i1k3y2rhnmgq07sz99g2czqfqgkr9mihmdjp3gwjhvi"))))
9114 (build-system ant-build-system)
9115 (arguments
9116 `(#:jar-name "picard.jar"
9117 ;; Tests require jacoco:coverage.
9118 #:tests? #f
9119 #:jdk ,icedtea-8
9120 #:main-class "picard.cmdline.PicardCommandLine"
9121 #:modules ((guix build ant-build-system)
9122 (guix build utils)
9123 (guix build java-utils)
9124 (sxml simple)
9125 (sxml transform)
9126 (sxml xpath))
9127 #:phases
9128 (modify-phases %standard-phases
9129 ;; FIXME: this phase fails with "duplicate entry: htsjdk/samtools/AbstractBAMFileIndex$1.class"
9130 (delete 'generate-jar-indices)
9131 (add-after 'unpack 'remove-useless-build.xml
9132 (lambda _ (delete-file "build.xml") #t))
9133 (add-after 'unpack 'fix-guava
9134 (lambda _
9135 (substitute* "src/main/java/picard/cmdline/CommandLineParser.java"
9136 (("CharMatcher.ASCII") "CharMatcher.ascii()"))))
9137 ;; This is necessary to ensure that htsjdk is found when using
9138 ;; picard.jar as an executable.
9139 (add-before 'build 'edit-classpath-in-manifest
9140 (lambda* (#:key inputs #:allow-other-keys)
9141 (chmod "build.xml" #o664)
9142 (call-with-output-file "build.xml.new"
9143 (lambda (port)
9144 (sxml->xml
9145 (pre-post-order
9146 (with-input-from-file "build.xml"
9147 (lambda _ (xml->sxml #:trim-whitespace? #t)))
9148 `((target . ,(lambda (tag . kids)
9149 (let ((name ((sxpath '(name *text*))
9150 (car kids)))
9151 ;; FIXME: We're breaking the line
9152 ;; early with a dummy path to
9153 ;; ensure that the store reference
9154 ;; isn't broken apart and can still
9155 ;; be found by the reference
9156 ;; scanner.
9157 (msg (format #f
9158 "\
9159Class-Path: /~a \
9160 ~a/share/java/htsjdk.jar${line.separator}${line.separator}"
9161 ;; maximum line length is 70
9162 (string-tabulate (const #\b) 57)
9163 (assoc-ref inputs "java-htsjdk"))))
9164 (if (member "manifest" name)
9165 `(,tag ,@kids
9166 (replaceregexp
9167 (@ (file "${manifest.file}")
9168 (match "\\r\\n\\r\\n")
9169 (replace "${line.separator}")))
9170 (echo
9171 (@ (message ,msg)
9172 (file "${manifest.file}")
9173 (append "true"))))
9174 `(,tag ,@kids)))))
9175 (*default* . ,(lambda (tag . kids) `(,tag ,@kids)))
9176 (*text* . ,(lambda (_ txt) txt))))
9177 port)))
9178 (rename-file "build.xml.new" "build.xml")
9179 #t)))))
9180 (propagated-inputs
9181 (list java-htsjdk-2.10.1))
9182 (native-inputs
9183 (list java-testng java-guava))
9184 (home-page "https://broadinstitute.github.io/picard/")
9185 (synopsis "Tools for manipulating high-throughput sequencing data and formats")
9186 (description "Picard is a set of Java command line tools for manipulating
9187high-throughput sequencing (HTS) data and formats. Picard is implemented
9188using the HTSJDK Java library to support accessing file formats that are
9189commonly used for high-throughput sequencing data such as SAM, BAM, CRAM and
9190VCF.")
9191 (license license:expat)))
9192
9193;; This is the last version of Picard to provide net.sf.samtools
9194(define-public java-picard-1.113
9195 (package (inherit java-picard)
9196 (name "java-picard")
9197 (version "1.113")
9198 (source (origin
9199 (method git-fetch)
9200 (uri (git-reference
9201 (url "https://github.com/broadinstitute/picard")
9202 (commit version)))
9203 (file-name (string-append "java-picard-" version "-checkout"))
9204 (sha256
9205 (base32
9206 "0lkpvin2fz3hhly4l02kk56fqy8lmlgyzr9kmvljk6ry6l1hw973"))
9207 (modules '((guix build utils)))
9208 (snippet
9209 '(begin
9210 ;; Delete pre-built binaries.
9211 (delete-file-recursively "lib")
9212 (mkdir-p "lib")))))
9213 (build-system ant-build-system)
9214 (arguments
9215 `(#:build-target "picard-jar"
9216 #:test-target "test"
9217 ;; FIXME: the class path at test time is wrong.
9218 ;; [testng] Error: A JNI error has occurred, please check your installation and try again
9219 ;; [testng] Exception in thread "main" java.lang.NoClassDefFoundError: com/beust/jcommander/ParameterException
9220 #:tests? #f
9221 #:jdk ,icedtea-8
9222 #:ant ,ant
9223 ;; This is only used for tests.
9224 #:make-flags
9225 (list "-Dsamjdk.intel_deflater_so_path=lib/jni/libIntelDeflater.so")
9226 #:phases
9227 (modify-phases %standard-phases
9228 ;; FIXME: This phase fails.
9229 (delete 'generate-jar-indices)
9230 ;; Do not use bundled ant bzip2.
9231 (add-after 'unpack 'use-ant-bzip
9232 (lambda* (#:key inputs #:allow-other-keys)
9233 (substitute* "build.xml"
9234 (("\\$\\{lib\\}/apache-ant-1.8.2-bzip2.jar")
9235 (search-input-file inputs "/lib/ant.jar")))))
9236 (add-after 'unpack 'make-test-target-independent
9237 (lambda* (#:key inputs #:allow-other-keys)
9238 (substitute* "build.xml"
9239 (("name=\"test\" depends=\"compile, ")
9240 "name=\"test\" depends=\"compile-tests, ")
9241 (("name=\"compile\" depends=\"compile-src, compile-tests\"")
9242 "name=\"compile\" depends=\"compile-src\""))))
9243 (add-after 'unpack 'fix-deflater-path
9244 (lambda* (#:key outputs #:allow-other-keys)
9245 (substitute* "src/java/net/sf/samtools/Defaults.java"
9246 (("getStringProperty\\(\"intel_deflater_so_path\", null\\)")
9247 (string-append "getStringProperty(\"intel_deflater_so_path\", \""
9248 (assoc-ref outputs "out")
9249 "/lib/jni/libIntelDeflater.so"
9250 "\")")))))
9251 ;; Build the deflater library, because we've previously deleted the
9252 ;; pre-built one. This can only be built with access to the JDK
9253 ;; sources.
9254 (add-after 'build 'build-jni
9255 (lambda* (#:key inputs #:allow-other-keys)
9256 (mkdir-p "lib/jni")
9257 (mkdir-p "jdk-src")
9258 (invoke "tar" "--strip-components=1" "-C" "jdk-src"
9259 "-xf" (assoc-ref inputs "jdk-src"))
9260 (invoke "javah" "-jni"
9261 "-classpath" "classes"
9262 "-d" "lib/"
9263 "net.sf.samtools.util.zip.IntelDeflater")
9264 (with-directory-excursion "src/c/inteldeflater"
9265 (invoke "gcc" "-I../../../lib" "-I."
9266 (string-append "-I" (assoc-ref inputs "jdk")
9267 "/include/linux")
9268 "-I../../../jdk-src/src/share/native/common/"
9269 "-I../../../jdk-src/src/solaris/native/common/"
9270 "-c" "-O3" "-fPIC" "IntelDeflater.c")
9271 (invoke "gcc" "-shared"
9272 "-o" "../../../lib/jni/libIntelDeflater.so"
9273 "IntelDeflater.o" "-lz" "-lstdc++"))))
9274 ;; We can only build everything else after building the JNI library.
9275 (add-after 'build-jni 'build-rest
9276 (lambda* (#:key make-flags #:allow-other-keys)
9277 (apply invoke `("ant" "all" ,@make-flags))))
9278 (add-before 'build 'set-JAVA6_HOME
9279 (lambda _
9280 (setenv "JAVA6_HOME" (getenv "JAVA_HOME"))))
9281 (replace 'install (install-jars "dist"))
9282 (add-after 'install 'install-jni-lib
9283 (lambda* (#:key outputs #:allow-other-keys)
9284 (let ((jni (string-append (assoc-ref outputs "out")
9285 "/lib/jni")))
9286 (mkdir-p jni)
9287 (install-file "lib/jni/libIntelDeflater.so" jni)))))))
9288 (inputs
9289 (list java-snappy-1
9290 java-commons-jexl-2
9291 java-cofoja
9292 ant ;for bzip2 support at runtime
9293 zlib))
9294 (native-inputs
9295 `(("ant-apache-bcel" ,ant-apache-bcel)
9296 ("java-testng" ,java-testng)
9297 ("java-commons-bcel" ,java-commons-bcel)
9298 ("java-jcommander" ,java-jcommander)
9299 ("jdk" ,icedtea-8 "jdk")
9300 ("jdk-src" ,(car (assoc-ref (package-native-inputs icedtea-8) "jdk-drop")))))))
9301
9302(define-public fastqc
9303 (package
9304 (name "fastqc")
9305 (version "0.11.9")
9306 (source
9307 (origin
9308 (method git-fetch)
9309 (uri (git-reference
9310 (url "https://github.com/s-andrews/FastQC")
9311 (commit (string-append "v" version))))
9312 (file-name (git-file-name name version))
9313 (sha256
9314 (base32
9315 "00y9drm0bkpxw8xfl8ysss18jmnhj8blgqgr6fpa58rkpfcbg8qk"))
9316 (snippet
9317 '(for-each delete-file
9318 '("cisd-jhdf5.jar"
9319 "sam-1.103.jar"
9320 "jbzip2-0.9.jar")))))
9321 (build-system ant-build-system)
9322 (arguments
9323 (list
9324 #:tests? #f ;there are no tests
9325 #:build-target "build"
9326 #:phases
9327 #~(modify-phases %standard-phases
9328 (add-after 'unpack 'fix-dependencies
9329 (lambda* (#:key inputs #:allow-other-keys)
9330 (substitute* '("build.xml" ".classpath")
9331 (("jbzip2-0.9.jar")
9332 (search-input-file inputs "/share/java/jbzip2.jar"))
9333 (("sam-1.103.jar")
9334 (search-input-file inputs "/share/java/sam-1.112.jar"))
9335 (("cisd-jhdf5.jar")
9336 (search-input-file inputs "/share/java/sis-jhdf5.jar")))))
9337 ;; There is no installation target
9338 (replace 'install
9339 (lambda* (#:key inputs #:allow-other-keys)
9340 (let* ((bin (string-append #$output "/bin"))
9341 (share (string-append #$output "/share/fastqc/"))
9342 (exe (string-append share "/fastqc")))
9343 (for-each mkdir-p (list bin share))
9344 (copy-recursively "bin" share)
9345 (substitute* exe
9346 (("my \\$java_bin = \"java\";")
9347 (string-append "my $java_bin = \""
9348 ;; Use java from the JRE, not the JDK
9349 #$(this-package-input "icedtea") "/bin/java"
9350 "\";"))
9351 (("\\$RealBin\\$delimiter\\$RealBin.*")
9352 (string-append
9353 (string-join
9354 (list
9355 share
9356 (search-input-file inputs "/share/java/sam-1.112.jar")
9357 (search-input-file inputs "/share/java/jbzip2.jar")
9358 (search-input-file inputs "/share/java/sis-jhdf5.jar"))
9359 "$delimiter")
9360 "\";\n")))
9361 (chmod exe #o555)
9362 (symlink exe (string-append bin "/fastqc"))))))))
9363 (inputs
9364 (list icedtea
9365 java-cisd-jhdf5
9366 java-picard-1.113
9367 java-jbzip2
9368 perl)) ;needed for the wrapper script
9369 (native-inputs
9370 (list unzip))
9371 (home-page "https://www.bioinformatics.babraham.ac.uk/projects/fastqc/")
9372 (synopsis "Quality control tool for high throughput sequence data")
9373 (description
9374 "FastQC aims to provide a simple way to do some quality control
9375checks on raw sequence data coming from high throughput sequencing
9376pipelines. It provides a modular set of analyses which you can use to
9377give a quick impression of whether your data has any problems of which
9378you should be aware before doing any further analysis.
9379
9380The main functions of FastQC are:
9381
9382@itemize
9383@item Import of data from BAM, SAM or FastQ files (any variant);
9384@item Providing a quick overview to tell you in which areas there may
9385 be problems;
9386@item Summary graphs and tables to quickly assess your data;
9387@item Export of results to an HTML based permanent report;
9388@item Offline operation to allow automated generation of reports
9389 without running the interactive application.
9390@end itemize\n")
9391 (license license:gpl3+)))
9392
9393(define-public fastp
9394 (package
9395 (name "fastp")
9396 (version "0.23.2")
9397 (source
9398 (origin
9399 (method git-fetch)
9400 (uri (git-reference
9401 (url "https://github.com/OpenGene/fastp")
9402 (commit (string-append "v" version))))
9403 (file-name (git-file-name name version))
9404 (sha256
9405 (base32
9406 "04nmrqpjc3qni0cbazlwvpg8rk1mkfmfma0n4q3zivs3zi6rfnav"))))
9407 (build-system gnu-build-system)
9408 (arguments
9409 (list
9410 #:tests? #false ;there are none
9411 #:make-flags
9412 #~(list (string-append "PREFIX=" #$output))
9413 #:phases
9414 #~(modify-phases %standard-phases
9415 (delete 'configure)
9416 (add-before 'install 'create-target-dir
9417 (lambda _
9418 (mkdir-p (string-append #$output "/bin")))))))
9419 (inputs
9420 (list isa-l libdeflate))
9421 (home-page "https://github.com/OpenGene/fastp/")
9422 (synopsis "All-in-one FastQ preprocessor")
9423 (description
9424 "Fastp is a tool designed to provide fast all-in-one preprocessing for
9425FastQ files. This tool has multi-threading support to afford high
9426performance.")
9427 (license license:expat)))
9428
9429(define-public htscodecs
9430 (package
9431 (name "htscodecs")
9432 (version "1.6.1")
9433 (source (origin
9434 (method url-fetch)
9435 (uri (string-append "https://github.com/samtools/htscodecs/"
9436 "releases/download/v"
9437 version "/htscodecs-" version ".tar.gz"))
9438 (sha256
9439 (base32
9440 "0n962938clim15d5mmggsm7ki2ycyjwqvjgddihjlpdsr5qv28aq"))))
9441 (build-system gnu-build-system)
9442 (inputs (list bzip2 zlib))
9443 (home-page "https://github.com/samtools/htscodecs")
9444 (synopsis "Custom compression for CRAM and others")
9445 (description
9446 "This package implements the custom CRAM codecs used for \"EXTERNAL\"
9447block types. These consist of two variants of the rANS codec (8-bit and
944816-bit renormalisation, with run-length encoding and bit-packing also
9449supported in the latter), a dynamic arithmetic coder, and custom codecs for
9450name/ID compression and quality score compression derived from fqzcomp.")
9451 (license
9452 (list license:public-domain ;c_range_coder.h, rANS_byte.h, and rANS_word.h
9453 license:bsd-3)))) ;all the rest
9454
9455(define-public htslib
9456 (package
9457 (name "htslib")
9458 (version "1.21")
9459 (source (origin
9460 (method url-fetch)
9461 (uri (string-append
9462 "https://github.com/samtools/htslib/releases/download/"
9463 version "/htslib-" version ".tar.bz2"))
9464 (sha256
9465 (base32
9466 "08qq1yn6lqqnww532s11nr6gz0gfpn58rn3gy90kd5pl6pki1dc4"))
9467 (snippet
9468 #~(begin
9469 (use-modules (guix build utils))
9470 (delete-file-recursively "htscodecs")))))
9471 (build-system gnu-build-system)
9472 ;; Let htslib translate "gs://" and "s3://" to regular https links with
9473 ;; "--enable-gcs" and "--enable-s3". For these options to work, we also
9474 ;; need to set "--enable-libcurl".
9475 (arguments
9476 `(#:configure-flags '("--enable-gcs"
9477 "--enable-libcurl"
9478 "--enable-s3"
9479 "--with-external-htscodecs")))
9480 (inputs
9481 (list bzip2 curl openssl xz))
9482 ;; This is referred to in the pkg-config file as a required library.
9483 (propagated-inputs
9484 (list htscodecs zlib))
9485 (native-inputs
9486 (list perl))
9487 (home-page "https://www.htslib.org")
9488 (synopsis "C library for reading/writing high-throughput sequencing data")
9489 (description
9490 "HTSlib is a C library for reading/writing high-throughput sequencing
9491data. It also provides the @command{bgzip}, @command{htsfile}, and
9492@command{tabix} utilities.")
9493 ;; Files under cram/ are released under the modified BSD license;
9494 ;; the rest is released under the Expat license
9495 (license (list license:expat license:bsd-3))))
9496
9497;; This package should be removed once no packages rely upon it.
9498(define htslib-1.3
9499 (package/inherit htslib
9500 (version "1.3.1")
9501 (source (origin
9502 (method url-fetch)
9503 (uri (string-append
9504 "https://github.com/samtools/htslib/releases/download/"
9505 version "/htslib-" version ".tar.bz2"))
9506 (sha256
9507 (base32
9508 "1rja282fwdc25ql6izkhdyh8ppw8x2fs0w0js78zgkmqjlikmma9"))))))
9509
9510(define-public idr
9511 (package
9512 (name "idr")
9513 (version "2.0.4.2")
9514 (source (origin
9515 (method git-fetch)
9516 (uri (git-reference
9517 (url "https://github.com/kundajelab/idr")
9518 (commit version)))
9519 (file-name (git-file-name name version))
9520 (sha256
9521 (base32
9522 "01491ffhhj5plmpvvwmzp6c5arp5390h3jdpgsai92y6xbsgvxz8"))
9523 ;; Delete generated C code.
9524 (snippet
9525 '(begin (delete-file "idr/inv_cdf.c") #t))))
9526 (build-system pyproject-build-system)
9527 ;; There is only one test ("test_inv_cdf.py") and it tests features that
9528 ;; are no longer part of this package. It also asserts False, which
9529 ;; causes the tests to always fail.
9530 (arguments
9531 (list
9532 #:tests? #f
9533 #:phases
9534 '(modify-phases %standard-phases
9535 (add-after 'unpack 'numpy-compatibility
9536 (lambda _
9537 (substitute* "idr/idr.py"
9538 (("numpy.int") "int"))
9539 (substitute* "idr/inv_cdf.pyx"
9540 (("np.int_t") "np.int64_t")))))))
9541 (propagated-inputs
9542 (list python-scipy python-sympy python-numpy python-matplotlib))
9543 (native-inputs
9544 (list python-cython
9545 python-setuptools))
9546 (home-page "https://github.com/nboley/idr")
9547 (synopsis "Tool to measure the irreproducible discovery rate (IDR)")
9548 (description
9549 "The IDR (Irreproducible Discovery Rate) framework is a unified approach
9550to measure the reproducibility of findings identified from replicate
9551experiments and provide highly stable thresholds based on reproducibility.")
9552 (license license:gpl2+)))
9553
9554(define-public isolator
9555 (let ((commit "24bafc0a102dce213bfc2b5b9744136ceadaba03")
9556 (revision "1"))
9557 (package
9558 (name "isolator")
9559 (version (git-version "0.0.2" revision commit))
9560 (source
9561 (origin
9562 (method git-fetch)
9563 (uri (git-reference
9564 (url "https://github.com/dcjones/isolator.git")
9565 (commit commit)))
9566 (file-name (git-file-name name version))
9567 (sha256
9568 (base32
9569 "12mbcfqhiggcjvzizf2ff7b05z31i47njcyzcivpw5j74pfbr3dv"))))
9570 (build-system cmake-build-system)
9571 (arguments
9572 (list
9573 #:tests? #f ;no check target
9574 #:phases
9575 '(modify-phases %standard-phases
9576 (add-after 'unpack 'fix-std
9577 (lambda _
9578 (substitute* '("src/summarize.cpp"
9579 "src/shredder.cpp")
9580 (("isnan") "std::isnan")
9581 (("isinf") "std::isinf")))))))
9582 (inputs
9583 (list boost-1.83 hdf5 zlib))
9584 (home-page "https://github.com/dcjones/isolator")
9585 (synopsis "Tools for the analysis of RNA-Seq experiments")
9586 (description "Isolator analyzes RNA-Seq experiments. Isolator has a
9587particular focus on producing stable, consistent estimates. It implements a
9588full hierarchical Bayesian model of an entire RNA-Seq experiment. It saves
9589all the samples generated by the sampler, which can be processed to compute
9590posterior probabilities for arbitrarily complex questions, far beyond the
9591confines of pairwise tests. It aggressively corrects for technical effects,
9592such as random priming bias, GC-bias, 3' bias, and fragmentation effects.
9593Compared to other MCMC approaches, it is exceedingly efficient, though
9594generally slower than modern maximum likelihood approaches.")
9595 (license license:expat))))
9596
9597(define-public jellyfish
9598 (package
9599 (name "jellyfish")
9600 (version "2.3.0")
9601 (source (origin
9602 (method url-fetch)
9603 (uri (string-append "https://github.com/gmarcais/Jellyfish/"
9604 "releases/download/v" version
9605 "/jellyfish-" version ".tar.gz"))
9606 (sha256
9607 (base32
9608 "0npa62wzasdibas5zp3n8j3armsci4kyvh0jw7jr0am4gg7vg5g1"))))
9609 (build-system gnu-build-system)
9610 (outputs '("out" ;for library
9611 "python")) ;for Python bindings
9612 (arguments
9613 (list
9614 #:configure-flags
9615 #~(list "--without-sse" ; configure script probes for CPU features when SSE is enabled.
9616 (string-append "--enable-python-binding=" #$output:python))
9617 #:phases
9618 '(modify-phases %standard-phases
9619 (add-before 'check 'set-SHELL-variable
9620 (lambda _
9621 ;; generator_manager.hpp either uses /bin/sh or $SHELL
9622 ;; to run tests.
9623 (setenv "SHELL" (which "bash")))))))
9624 (native-inputs
9625 (list bc
9626 time
9627 python-wrapper
9628 python-setuptools
9629 pkg-config))
9630 (inputs
9631 (list htslib))
9632 (synopsis "Tool for fast counting of k-mers in DNA")
9633 (description
9634 "Jellyfish is a tool for fast, memory-efficient counting of k-mers in
9635DNA. A k-mer is a substring of length k, and counting the occurrences of all
9636such substrings is a central step in many analyses of DNA sequence. Jellyfish
9637is a command-line program that reads FASTA and multi-FASTA files containing
9638DNA sequences. It outputs its k-mer counts in a binary format, which can be
9639translated into a human-readable text format using the @code{jellyfish dump}
9640command, or queried for specific k-mers with @code{jellyfish query}.")
9641 (home-page "http://www.genome.umd.edu/jellyfish.html")
9642 ;; JELLYFISH seems to be 64-bit only.
9643 (supported-systems %64bit-supported-systems)
9644 ;; One of these licenses may be picked
9645 (license (list license:gpl3+ license:bsd-3))))
9646
9647(define-public kaiju
9648 (package
9649 (name "kaiju")
9650 (version "1.9.0")
9651 (source (origin
9652 (method git-fetch)
9653 (uri (git-reference
9654 (url "https://github.com/bioinformatics-centre/kaiju")
9655 (commit (string-append "v" version))))
9656 (file-name (git-file-name name version))
9657 (sha256
9658 (base32
9659 "1hfmadkfs6jjd7l3byly5xxb0ifm3dm1wis11sjbqfcv6l89snmg"))))
9660 (build-system gnu-build-system)
9661 (arguments
9662 (list
9663 #:tests? #f ; There are no tests.
9664 #:phases
9665 #~(modify-phases %standard-phases
9666 (delete 'configure)
9667 (add-before 'build 'move-to-src-dir
9668 (lambda _ (chdir "src")))
9669 (replace 'install
9670 (lambda _
9671 (let ((bin (string-append #$output "/bin")))
9672 (mkdir-p bin)
9673 (copy-recursively "../bin" bin)
9674 (let ((path (search-path-as-list '("bin")
9675 '#$(match (package-inputs this-package)
9676 (((_ pkg) ...) pkg)))))
9677 (for-each (lambda (script)
9678 (let ((exe (string-append bin "/" script)))
9679 (chmod exe #o555)
9680 (wrap-script exe
9681 #:guile #$(file-append guile-3.0 "/bin/guile")
9682 `("PATH" ":" prefix ,path))))
9683 (list "kaiju-convertMAR.py"
9684 "kaiju-gbk2faa.pl"
9685 "kaiju-makedb")))))))))
9686 (inputs
9687 (list bzip2
9688 coreutils
9689 curl
9690 gawk
9691 guile-3.0 ;for wrap-script
9692 gzip
9693 perl
9694 python-wrapper
9695 tar
9696 wget
9697 zlib))
9698 (home-page "https://kaiju.binf.ku.dk/")
9699 (synopsis "Fast and sensitive taxonomic classification for metagenomics")
9700 (description "Kaiju is a program for sensitive taxonomic classification
9701of high-throughput sequencing reads from metagenomic whole genome sequencing
9702experiments.")
9703 (license license:gpl3+)))
9704
9705(define-public macs
9706 (package
9707 (name "macs")
9708 (version "3.0.4")
9709 (source
9710 (origin
9711 (method git-fetch)
9712 (uri (git-reference
9713 (url "https://github.com/macs3-project/MACS")
9714 (commit (string-append "v" version))
9715 (recursive? #true)))
9716 (file-name (git-file-name name version))
9717 (sha256
9718 (base32 "16cv6bvvppi0z69r5l357ai8x4jg61rx8xrvcapk1wz6mh9naf5s"))))
9719 (build-system pyproject-build-system)
9720 (arguments
9721 (list
9722 #:test-flags
9723 ;; AssertionError: np.float32(1.0) != np.float64(-1.0)
9724 ;; calculated step by step:
9725 ;; 6.559423e-18
9726 ;; expected:
9727 ;; -2.98155597e-18
9728 #~(list (string-append "--deselect=test/test_SignalProcessing.py::"
9729 "Test_maxima::test_implement_smooth_here"))))
9730 (native-inputs
9731 (list python-cython
9732 python-pytest
9733 python-setuptools
9734 zlib))
9735 (propagated-inputs
9736 (list python-cykhash
9737 python-hmmlearn
9738 python-numpy
9739 python-scikit-learn
9740 python-scipy))
9741 (home-page "https://github.com/macs3-project/MACS")
9742 (synopsis "Model based analysis for ChIP-Seq data")
9743 (description
9744 "MACS is an implementation of a ChIP-Seq analysis algorithm for
9745identifying transcript factor binding sites named Model-based Analysis of
9746ChIP-Seq (MACS). MACS captures the influence of genome complexity to evaluate
9747the significance of enriched ChIP regions and it improves the spatial
9748resolution of binding sites through combining the information of both
9749sequencing tag position and orientation.")
9750 (license license:bsd-3)))
9751
9752;; 2026-05-29
9753(define-deprecated/public-alias macs-3 macs)
9754
9755(define-public maffilter
9756 (package
9757 (name "maffilter")
9758 (version "1.3.1")
9759 (source
9760 (origin
9761 (method git-fetch)
9762 (uri (git-reference
9763 (url "https://github.com/jydu/maffilter")
9764 (commit (string-append "v" version))))
9765 (file-name (git-file-name name version))
9766 (sha256
9767 (base32 "196c16qw82niqqyzi7j1ga1n0zmir73bm26kg04m0i5aq2cpa0ml"))))
9768 (build-system cmake-build-system)
9769 (arguments (list #:tests? #false)) ;there are none
9770 (inputs
9771 (list boost
9772 bpp-core
9773 bpp-phyl
9774 bpp-phyl-omics
9775 bpp-seq
9776 bpp-seq-omics
9777 zlib))
9778 (home-page "https://jydu.github.io/maffilter/")
9779 (synopsis "Multiple alignment format file processor")
9780 (description
9781 "MafFilter is a program dedicated to the analysis of genome alignments.
9782It parses and manipulates @acronym{MAF, multiple alignment format} files as
9783well as more simple fasta files. This package can be used to design a
9784pipeline as a series of consecutive filters, each performing a dedicated
9785analysis. Many of the filters are available, from alignment cleaning to
9786phylogeny reconstruction and population genetics analysis. Despite various
9787filtering options and format conversion tools, MafFilter can compute a wide
9788range of statistics (phylogenetic trees, nucleotide diversity, inference of
9789selection, etc.).")
9790 (license license:gpl3+)))
9791
9792(define-public mafft
9793 (package
9794 (name "mafft")
9795 (version "7.475")
9796 (source (origin
9797 (method url-fetch)
9798 (uri (string-append
9799 "https://mafft.cbrc.jp/alignment/software/mafft-" version
9800 "-without-extensions-src.tgz"))
9801 (file-name (string-append name "-" version ".tgz"))
9802 (sha256
9803 (base32
9804 "0i2i2m3blh2xkbkdk48hxfssks30ny0v381gdl7zwhcvp0axs26r"))))
9805 (build-system gnu-build-system)
9806 (arguments
9807 `(#:tests? #f ; no automated tests, though there are tests in the read me
9808 #:make-flags ,#~(list (string-append "PREFIX=" #$output)
9809 (string-append "BINDIR="
9810 (string-append #$output "/bin")))
9811 #:phases
9812 (modify-phases %standard-phases
9813 (add-after 'unpack 'enter-dir
9814 (lambda _ (chdir "core") #t))
9815 (add-after 'enter-dir 'patch-makefile
9816 (lambda _
9817 ;; on advice from the MAFFT authors, there is no need to
9818 ;; distribute mafft-profile, mafft-distance, or
9819 ;; mafft-homologs.rb as they are too "specialised".
9820 (substitute* "Makefile"
9821 ;; remove mafft-homologs.rb from SCRIPTS
9822 (("^SCRIPTS = mafft mafft-homologs.rb")
9823 "SCRIPTS = mafft")
9824 ;; remove mafft-homologs from MANPAGES
9825 (("^MANPAGES = mafft.1 mafft-homologs.1")
9826 "MANPAGES = mafft.1")
9827 ;; remove mafft-distance from PROGS
9828 (("^PROGS = dvtditr dndfast7 dndblast sextet5 mafft-distance")
9829 "PROGS = dvtditr dndfast7 dndblast sextet5")
9830 ;; remove mafft-profile from PROGS
9831 (("splittbfast disttbfast tbfast mafft-profile 2cl mccaskillwrap")
9832 "splittbfast disttbfast tbfast f2cl mccaskillwrap")
9833 (("^rm -f mafft-profile mafft-profile.exe") "#")
9834 (("^rm -f mafft-distance mafft-distance.exe") ")#")
9835 ;; do not install MAN pages in libexec folder
9836 (("^\t\\$\\(INSTALL\\) -m 644 \\$\\(MANPAGES\\) \
9837\\$\\(DESTDIR\\)\\$\\(LIBDIR\\)") "#"))))
9838 (add-after 'enter-dir 'patch-paths
9839 (lambda* (#:key inputs #:allow-other-keys)
9840 (substitute* '("pairash.c"
9841 "mafft.tmpl")
9842 (("perl") (which "perl"))
9843 (("([\"`| ])awk" _ prefix)
9844 (string-append prefix (which "awk")))
9845 (("grep") (which "grep")))))
9846 (delete 'configure)
9847 (add-after 'install 'wrap-programs
9848 (lambda* (#:key inputs outputs #:allow-other-keys)
9849 (let* ((out (assoc-ref outputs "out"))
9850 (bin (string-append out "/bin"))
9851 (path (string-append
9852 (assoc-ref inputs "coreutils") "/bin:")))
9853 (for-each (lambda (file)
9854 (wrap-program file
9855 `("PATH" ":" prefix (,path))))
9856 (find-files bin))))))))
9857 (inputs
9858 (list bash-minimal perl ruby gawk grep coreutils))
9859 (home-page "https://mafft.cbrc.jp/alignment/software/")
9860 (synopsis "Multiple sequence alignment program")
9861 (description
9862 "MAFFT offers a range of multiple alignment methods for nucleotide and
9863protein sequences. For instance, it offers L-INS-i (accurate; for alignment
9864of <~200 sequences) and FFT-NS-2 (fast; for alignment of <~30,000
9865sequences).")
9866 (license (license:non-copyleft
9867 "https://mafft.cbrc.jp/alignment/software/license.txt"
9868 "BSD-3 with different formatting"))))
9869
9870(define-public mageck
9871 (package
9872 (name "mageck")
9873 (version "0.5.9.5")
9874 (source (origin
9875 (method url-fetch)
9876 (uri (string-append "mirror://sourceforge/mageck/"
9877 (version-major+minor version)
9878 "/mageck-" version ".tar.gz"))
9879 (sha256
9880 (base32
9881 "0fnry7d3ngiw0jarvmwd3pxy5vvsf931m4aifz6mjfd6dl1ihsmh"))))
9882 (build-system pyproject-build-system)
9883 (arguments
9884 (list
9885 #:modules '((guix build pyproject-build-system)
9886 (guix build utils)
9887 (srfi srfi-1)
9888 (ice-9 match))
9889 #:phases
9890 #~(modify-phases %standard-phases
9891 (add-after 'unpack 'use-python3
9892 (lambda _
9893 (substitute* "bin/mageck"
9894 (("python2") "python"))))
9895 (add-after 'unpack 'numpy-compatibility
9896 (lambda _
9897 (substitute* "mageck/cnv_normalization.py"
9898 (("np.float") "float"))))
9899 ;; The build system declares executables both in "scripts" and
9900 ;; "data", which all are supposed to end up in #$output/bin. The
9901 ;; pyproject-build-system gets confused by this, though, so we have
9902 ;; to manually install the mageck executable after the 'install
9903 ;; phase.
9904 (add-after 'unpack 'patch-build-system
9905 (lambda _
9906 (substitute* "setup.py"
9907 (("scripts=\\['bin/mageck'\\],") ""))))
9908 (add-after 'install 'install-mageck
9909 (lambda _
9910 (install-file "bin/mageck" (string-append #$output "/bin"))))
9911 (add-after 'install-mageck 'make-excutable
9912 (lambda _
9913 (for-each (lambda (file) (chmod file #o555))
9914 (find-files (string-append #$output "/bin")))))
9915 (replace 'check
9916 (lambda* (#:key tests? #:allow-other-keys)
9917 (when tests?
9918 (let ((tests '(("demo1" "run.sh")
9919 ("demo2" "runmageck.sh")
9920 ("demo3" "run.sh")
9921 ("demo4" "run.sh"))))
9922 (setenv "PATH"
9923 (string-append #$output "/bin:"
9924 (getenv "PATH")))
9925 (for-each (match-lambda
9926 ((dir script)
9927 (with-directory-excursion (string-append "demo/" dir)
9928 (invoke "bash" script))))
9929 tests))))))))
9930 (native-inputs
9931 (list python-setuptools))
9932 (inputs
9933 (list python-numpy-1
9934 python-scipy
9935 python-matplotlib
9936 python-statsmodels
9937 python-pyqt
9938 r-minimal
9939 r-xtable
9940 r-gplots))
9941 (home-page "https://sourceforge.net/projects/mageck/")
9942 (synopsis "Model-based analysis of genome-wide CRISPR-Cas9 Knockout")
9943 (description
9944 "Model-based Analysis of Genome-wide CRISPR-Cas9
9945Knockout (MAGeCK) is a computational tool to identify important genes
9946from the recent genome-scale CRISPR-Cas9 knockout screens
9947technology. Its features include:
9948
9949@enumerate
9950@item Simple, easy to use pipeline to screen genes in Genome-wide
9951 CRISPR-Cas9 Knockout experiments;
9952@item High sensitivity and low false discovery rate;
9953@item Fully utilize the screening data by performing both positive and
9954 negative screening in one dataset;
9955@item Provide statistical evaluation in genes, sgRNAs and pathways;
9956@item Require as few as 2 samples;
9957@item Identify cell-type specific targets;
9958@item A set of visualization features that generate publication
9959 standard figures.
9960@end enumerate\n")
9961 (license license:bsd-3)))
9962
9963(define-public mash
9964 (package
9965 (name "mash")
9966 (version "2.3")
9967 (source (origin
9968 (method git-fetch)
9969 (uri (git-reference
9970 (url "https://github.com/marbl/mash")
9971 (commit (string-append "v" version))))
9972 (file-name (git-file-name name version))
9973 (sha256
9974 (base32
9975 "00x4pvxwp3isf0qign1qmxwxc9rwzn5b3igjw9hyn3vx17bsx92q"))
9976 (modules '((guix build utils)))
9977 (snippet
9978 ;; Delete bundled kseq.
9979 ;; TODO: Also delete bundled murmurhash and open bloom filter.
9980 '(delete-file "src/mash/kseq.h"))
9981 (patches (search-patches "mash-add-missing-headers.patch"))))
9982 (build-system gnu-build-system)
9983 (arguments
9984 `(#:tests? #f ; No tests.
9985 #:configure-flags
9986 ,#~(list
9987 (string-append "--with-capnp=" #$(this-package-input "capnproto"))
9988 (string-append "--with-gsl=" #$(this-package-input "gsl")))
9989 #:make-flags (list "CC=gcc")
9990 #:phases
9991 (modify-phases %standard-phases
9992 (replace 'bootstrap
9993 ;; The bootstrap script is missing a shebang.
9994 (lambda _
9995 (invoke "bash" "./bootstrap.sh")))
9996 (add-after 'unpack 'fix-includes
9997 (lambda _
9998 (substitute* '("src/mash/Sketch.cpp"
9999 "src/mash/CommandFind.cpp"
10000 "src/mash/CommandScreen.cpp"
10001 "src/mash/CommandTaxScreen.cpp")
10002 (("^#include \"kseq\\.h\"")
10003 "#include \"htslib/kseq.h\""))))
10004 (add-after 'fix-includes 'use-c++14
10005 (lambda _
10006 ;; capnproto 1.0 requires c++14 to build.
10007 (substitute* (list "configure.ac" "Makefile.in")
10008 (("c\\+\\+11") "c++14")))))))
10009 (native-inputs
10010 (list autoconf))
10011 (inputs
10012 (list ;; Capnproto and htslib are statically embedded in the final
10013 ;; application. Therefore we also list their licenses, below.
10014 capnproto
10015 htslib
10016 gsl
10017 zlib))
10018 (supported-systems '("x86_64-linux"))
10019 (home-page "https://mash.readthedocs.io")
10020 (synopsis "Fast genome and metagenome distance estimation using MinHash")
10021 (description "Mash is a fast sequence distance estimator that uses the
10022MinHash algorithm and is designed to work with genomes and metagenomes in the
10023form of assemblies or reads.")
10024 (license (list license:bsd-3 ; Mash
10025 license:expat ; HTSlib and capnproto
10026 license:public-domain ; MurmurHash 3
10027 license:cpl1.0)))) ; Open Bloom Filter
10028
10029(define-public metabat
10030 (package
10031 (name "metabat")
10032 (version "2.15")
10033 (source
10034 (origin
10035 (method git-fetch)
10036 (uri (git-reference
10037 (url "https://bitbucket.org/berkeleylab/metabat.git")
10038 (commit (string-append "v" version))))
10039 (file-name (git-file-name name version))
10040 (sha256
10041 (base32
10042 "0v3gsps0ypani14102z2y1a2wignhpf7s1h45mxmj5f783rkhqd9"))))
10043 (build-system cmake-build-system)
10044 (arguments
10045 `(#:configure-flags
10046 ,#~(list (string-append "-Dzlib_LIB=" #$(this-package-input "zlib")
10047 "/lib/libz.so")
10048 (string-append "-Dhtslib_LIB=" #$(this-package-input "htslib")
10049 "/lib/libhts.so")
10050 (string-append "-DBOOST_ROOT=" #$(this-package-input "boost")))
10051 #:phases
10052 (modify-phases %standard-phases
10053 (add-after 'unpack 'configure-version-file
10054 (lambda _
10055 (copy-file "metabat_version.h.in" "metabat_version.h")
10056 (substitute* "metabat_version.h"
10057 (("@_time_stamp@") "19700101")
10058 (("@GIT_IS_DIRTY@") "0")
10059 (("@GIT_RETRIEVED_STATE@") "0")
10060 (("@GIT_HEAD_SHA1@") (string-append "v" ,version)))))
10061 (add-after 'unpack 'do-not-use-bundled-libraries
10062 (lambda _
10063 (substitute* "CMakeLists.txt"
10064 (("include\\(cmake.*") ""))
10065 (substitute* "src/CMakeLists.txt"
10066 (("set\\(Boost.*") "")
10067 (("add_dependencies.*") "")))))))
10068 (inputs
10069 (list zlib perl samtools htslib boost-1.83))
10070 (home-page "https://bitbucket.org/berkeleylab/metabat")
10071 (synopsis
10072 "Reconstruction of single genomes from complex microbial communities")
10073 (description
10074 "Grouping large genomic fragments assembled from shotgun metagenomic
10075sequences to deconvolute complex microbial communities, or metagenome binning,
10076enables the study of individual organisms and their interactions. MetaBAT is
10077an automated metagenome binning software, which integrates empirical
10078probabilistic distances of genome abundance and tetranucleotide frequency.")
10079 ;; The source code contains inline assembly.
10080 (supported-systems '("x86_64-linux" "i686-linux"))
10081 (license (license:non-copyleft "file://license.txt"
10082 "See license.txt in the distribution."))))
10083
10084(define-public metal
10085 (package
10086 (name "metal")
10087 (version "2011-03-25")
10088 (source
10089 (origin
10090 (method url-fetch)
10091 (uri (string-append "http://csg.sph.umich.edu/abecasis/Metal/"
10092 "download/generic-metal-" version ".tar.gz"))
10093 (sha256
10094 (base32
10095 "1bk00hc0xagmq0mabmbb8bykl75qd4kfyirba869h4x6hmn4a0f3"))))
10096 (build-system gnu-build-system)
10097 (arguments
10098 (list
10099 #:tests? #f
10100 #:make-flags
10101 #~(list (string-append "INSTALLDIR=" #$output "/bin") "all")
10102 #:phases
10103 '(modify-phases %standard-phases
10104 (replace 'configure
10105 (lambda _
10106 (substitute* "Makefile"
10107 (("^CFLAGS=") "CFLAGS=-std=c++11 ")))))))
10108 (inputs (list zlib `(,zlib "static")))
10109 (home-page "http://csg.sph.umich.edu/abecasis/Metal/")
10110 (synopsis "Facilitate meta-analysis of large datasets")
10111 (description "METAL is a tool for meta-analysis genomewide association
10112scans. METAL can combine either test statistics and standard errors or
10113p-values across studies (taking sample size and direction of effect into
10114account). METAL analysis is a convenient alternative to a direct analysis of
10115merged data from multiple studies. It is especially appropriate when data
10116from the individual studies cannot be analyzed together because of differences
10117in ethnicity, phenotype distribution, gender or constraints in sharing of
10118individual level data imposed. Meta-analysis results in little or no loss of
10119efficiency compared to analysis of a combined dataset including data from all
10120individual studies.")
10121 (license license:bsd-3)))
10122
10123(define-public minced
10124 (package
10125 (name "minced")
10126 (version "0.3.2")
10127 (source (origin
10128 (method git-fetch)
10129 (uri (git-reference
10130 (url "https://github.com/ctSkennerton/minced")
10131 (commit version)))
10132 (file-name (git-file-name name version))
10133 (sha256
10134 (base32
10135 "1f5h9him0gd355cnx7p6pnxpknhckd4g0v62mg8zyhfbx9as25fv"))))
10136 (build-system gnu-build-system)
10137 (arguments
10138 `(#:test-target "test"
10139 #:phases
10140 (modify-phases %standard-phases
10141 (delete 'configure)
10142 (add-before 'check 'fix-test
10143 (lambda _
10144 ;; Fix test for latest version.
10145 (substitute* "t/Aquifex_aeolicus_VF5.expected"
10146 (("minced:0.1.6") "minced:0.2.0"))
10147 #t))
10148 (replace 'install ; No install target.
10149 (lambda* (#:key inputs outputs #:allow-other-keys)
10150 (let* ((out (assoc-ref outputs "out"))
10151 (bin (string-append out "/bin"))
10152 (wrapper (string-append bin "/minced")))
10153 ;; Minced comes with a wrapper script that tries to figure out where
10154 ;; it is located before running the JAR. Since these paths are known
10155 ;; to us, we build our own wrapper to avoid coreutils dependency.
10156 (install-file "minced.jar" bin)
10157 (with-output-to-file wrapper
10158 (lambda _
10159 (display
10160 (string-append
10161 "#!" (assoc-ref inputs "bash") "/bin/sh\n\n"
10162 (assoc-ref inputs "jre") "/bin/java -jar "
10163 bin "/minced.jar \"$@\"\n"))))
10164 (chmod wrapper #o555))
10165 #t)))))
10166 (native-inputs
10167 `(("jdk" ,icedtea "jdk")))
10168 (inputs
10169 `(("bash" ,bash)
10170 ("jre" ,icedtea "out")))
10171 (home-page "https://github.com/ctSkennerton/minced")
10172 (synopsis "Mining CRISPRs in Environmental Datasets")
10173 (description
10174 "MinCED is a program to find Clustered Regularly Interspaced Short
10175Palindromic Repeats (CRISPRs) in DNA sequences. It can be used for
10176unassembled metagenomic reads, but is mainly designed for full genomes and
10177assembled metagenomic sequence.")
10178 (license license:gpl3+)))
10179
10180(define-public muscle
10181 (package
10182 (name "muscle")
10183 (version "3.8.1551")
10184 (source (origin
10185 (method url-fetch/tarbomb)
10186 (uri (string-append
10187 "http://www.drive5.com/muscle/muscle_src_"
10188 version ".tar.gz"))
10189 (sha256
10190 (base32
10191 "0bj8kj7sdizy3987zx6w7axihk40fk8rn76mpbqqjcnd64i5a367"))))
10192 (build-system gnu-build-system)
10193 (arguments
10194 `(#:make-flags (list "LDLIBS = -lm")
10195 #:phases
10196 (modify-phases %standard-phases
10197 (delete 'configure)
10198 (replace 'check
10199 ;; There are no tests, so just test if it runs.
10200 (lambda _ (invoke "./muscle" "-version") #t))
10201 (replace 'install
10202 (lambda* (#:key outputs #:allow-other-keys)
10203 (let* ((out (assoc-ref outputs "out"))
10204 (bin (string-append out "/bin")))
10205 (install-file "muscle" bin)
10206 #t))))))
10207 (home-page "http://www.drive5.com/muscle")
10208 (synopsis "Multiple sequence alignment program")
10209 (description
10210 "MUSCLE aims to be a fast and accurate multiple sequence alignment
10211program for nucleotide and protein sequences.")
10212 ;; License information found in 'muscle -h' and usage.cpp.
10213 (license license:public-domain)))
10214
10215(define-public music
10216 (let ((commit "b1caecdb164b1ab80acccb9463abe2526a56f69f")
10217 (revision "1"))
10218 (package
10219 (name "music")
10220 (version (git-version "0.0.0" revision commit))
10221 (source (origin
10222 (method git-fetch)
10223 (uri (git-reference
10224 (url "https://github.com/gersteinlab/MUSIC.git")
10225 (commit commit)))
10226 (file-name (git-file-name name version))
10227 (sha256
10228 (base32
10229 "0arj300h8cpbya7y98g066xsxcg2a65h3y0qs250rlj072f1b4ia"))))
10230 (build-system gnu-build-system)
10231 (arguments
10232 (list
10233 #:tests? #f ; no "check" target
10234 #:phases
10235 #~(modify-phases %standard-phases
10236 (delete 'configure)
10237 ;; There is no "install" target.
10238 (replace 'install
10239 (lambda _
10240 (let ((bin (string-append #$output "/bin")))
10241 (install-file "bin/MUSIC" bin)))))))
10242 (home-page "https://github.com/gersteinlab/MUSIC/")
10243 (synopsis "Multiscale enrichment calling for ChIP-Seq datasets")
10244 (description
10245 "MUSIC is an algorithm for identification of enriched regions at
10246multiple scales in the read depth signals from ChIP-Seq experiments.")
10247 ;; See https://github.com/gersteinlab/MUSIC/issues/6
10248 (license license:gpl2+)
10249 (properties '((lint-hidden-cpe-vendors . ("apple")))))))
10250
10251(define-public newick-utils
10252 ;; There are no recent releases so we package from git.
10253 (let ((commit "da121155a977197cab9fbb15953ca1b40b11eb87"))
10254 (package
10255 (name "newick-utils")
10256 (version (string-append "1.6-1." (string-take commit 8)))
10257 (source (origin
10258 (method git-fetch)
10259 (uri (git-reference
10260 (url "https://github.com/tjunier/newick_utils")
10261 (commit commit)))
10262 (file-name (string-append name "-" version "-checkout"))
10263 (sha256
10264 (base32
10265 "1hkw21rq1mwf7xp0rmbb2gqc0i6p11108m69i7mr7xcjl268pxnb"))))
10266 (build-system gnu-build-system)
10267 (arguments
10268 `(#:tests? ,(not (or (target-riscv64?) ;XXX: stuck on riscv64-linux
10269 (%current-target-system)))
10270 #:make-flags (list "CFLAGS=-O2 -g -fcommon")))
10271 (inputs
10272 ;; XXX: TODO: Enable Lua and Guile bindings.
10273 ;; https://github.com/tjunier/newick_utils/issues/13
10274 (list libxml2 flex bison))
10275 (native-inputs
10276 (list autoconf automake libtool))
10277 (synopsis "Programs for working with newick format phylogenetic trees")
10278 (description
10279 "Newick-utils is a suite of utilities for processing phylogenetic trees
10280in Newick format. Functions include re-rooting, extracting subtrees,
10281trimming, pruning, condensing, drawing (ASCII graphics or SVG).")
10282 (home-page "https://github.com/tjunier/newick_utils")
10283 (license license:bsd-3))))
10284
10285(define-public orfm
10286 (package
10287 (name "orfm")
10288 (version "0.7.1")
10289 (source (origin
10290 (method url-fetch)
10291 (uri (string-append
10292 "https://github.com/wwood/OrfM/releases/download/v"
10293 version "/orfm-" version ".tar.gz"))
10294 (sha256
10295 (base32
10296 "16iigyr2gd8x0imzkk1dr3k5xsds9bpmwg31ayvjg0f4pir9rwqr"))))
10297 (build-system gnu-build-system)
10298 (inputs (list zlib))
10299 (native-inputs
10300 (list ruby-bio-commandeer ruby-rspec ruby))
10301 (synopsis "Simple and not slow open reading frame (ORF) caller")
10302 (description
10303 "An ORF caller finds stretches of DNA that, when translated, are not
10304interrupted by stop codons. OrfM finds and prints these ORFs.")
10305 (home-page "https://github.com/wwood/OrfM")
10306 (license license:lgpl3+)))
10307
10308(define-public prank
10309 (package
10310 (name "prank")
10311 (version "170427")
10312 (source (origin
10313 (method url-fetch)
10314 (uri (string-append
10315 "http://wasabiapp.org/download/prank/prank.source."
10316 version ".tgz"))
10317 (sha256
10318 (base32
10319 "0nc8g9c5rkdxcir46s0in9ci1sxwzbjibxrvkksf22ybnplvagk2"))))
10320 (build-system gnu-build-system)
10321 (arguments
10322 `(#:phases
10323 (modify-phases %standard-phases
10324 (add-after 'unpack 'enter-src-dir
10325 (lambda _ (chdir "src")))
10326 (add-after 'unpack 'remove-m64-flag
10327 ;; Prank will build with the correct 'bit-ness' without this flag
10328 ;; and this allows building on 32-bit machines.
10329 (lambda _
10330 (substitute* "src/Makefile"
10331 (("-m64") ""))))
10332 (delete 'configure)
10333 (replace 'install
10334 (lambda* (#:key inputs outputs #:allow-other-keys)
10335 (let* ((out (assoc-ref outputs "out"))
10336 (bin (string-append out "/bin"))
10337 (man (string-append out "/share/man/man1"))
10338 (path (string-append
10339 (assoc-ref inputs "mafft") "/bin:"
10340 (assoc-ref inputs "exonerate") "/bin:"
10341 (assoc-ref inputs "bppsuite") "/bin")))
10342 (install-file "prank" bin)
10343 (wrap-program (string-append bin "/prank")
10344 `("PATH" ":" prefix (,path)))
10345 (install-file "prank.1" man)))))))
10346 (inputs
10347 (list mafft exonerate bppsuite))
10348 (home-page "http://wasabiapp.org/software/prank/")
10349 (synopsis "Probabilistic multiple sequence alignment program")
10350 (description
10351 "PRANK is a probabilistic multiple sequence alignment program for DNA,
10352codon and amino-acid sequences. It is based on a novel algorithm that treats
10353insertions correctly and avoids over-estimation of the number of deletion
10354events. In addition, PRANK borrows ideas from maximum likelihood methods used
10355in phylogenetics and correctly takes into account the evolutionary distances
10356between sequences. Lastly, PRANK allows for defining a potential structure
10357for sequences to be aligned and then, simultaneously with the alignment,
10358predicts the locations of structural units in the sequences.")
10359 (license license:gpl2+)))
10360
10361(define-public proteinortho
10362 (package
10363 (name "proteinortho")
10364 (version "6.3.2")
10365 (source (origin
10366 (method git-fetch)
10367 (uri (git-reference
10368 (url "https://gitlab.com/paulklemm_PHD/proteinortho.git")
10369 (commit (string-append "v" version))))
10370 (file-name (git-file-name name version))
10371 (sha256
10372 (base32
10373 "0p8iaxq193fh67hw3cydvdah1vz1c3f18227gj1mhkww0ms7g6xa"))
10374 (modules '((guix build utils)))
10375 (snippet
10376 '(begin
10377 ;; Remove pre-built scripts and source tarballs.
10378 (delete-file-recursively "src/BUILD/")
10379 (delete-file "src/lapack-3.8.0.tar.gz")))))
10380 (build-system gnu-build-system)
10381 (arguments
10382 (list
10383 #:test-target "test"
10384 #:parallel-tests? #f
10385 #:make-flags
10386 #~(list (string-append "CC=" #$(cc-for-target))
10387 (string-append "CXX=" #$(cxx-for-target))
10388 (string-append "PREFIX=" #$output)
10389 (string-append "INSTALLDIR=" #$output "/bin"))
10390 #:phases
10391 #~(modify-phases %standard-phases
10392 (delete 'configure)
10393 (add-before 'install 'make-install-directory
10394 ;; The install directory is not created during 'make install'.
10395 (lambda* (#:key outputs #:allow-other-keys)
10396 (mkdir-p (string-append (assoc-ref outputs "out") "/bin"))))
10397 (add-after 'install 'wrap-programs
10398 (lambda* (#:key inputs outputs #:allow-other-keys)
10399 (let ((path (getenv "PATH"))
10400 (out (assoc-ref outputs "out"))
10401 (guile (search-input-file inputs "bin/guile")))
10402 (for-each (lambda (script)
10403 (wrap-script script #:guile guile
10404 `("PATH" ":" prefix (,path))))
10405 (cons (string-append out "/bin/proteinortho")
10406 (find-files out "\\.(pl|py)$")))))))))
10407 (inputs
10408 (list bash-minimal
10409 guile-3.0 ; for wrap-script
10410 diamond
10411 perl
10412 python-wrapper
10413 blast+
10414 openblas))
10415 (native-inputs
10416 (list which))
10417 (home-page "https://www.bioinf.uni-leipzig.de/Software/proteinortho")
10418 (synopsis "Detect orthologous genes across species")
10419 (description
10420 "Proteinortho is a tool to detect orthologous genes across different
10421species. For doing so, it compares similarities of given gene sequences and
10422clusters them to find significant groups. The algorithm was designed to handle
10423large-scale data and can be applied to hundreds of species at once.")
10424 (properties `((tunable? . #t)))
10425 (license license:gpl3+)))
10426
10427(define-public prodigal
10428 (package
10429 (name "prodigal")
10430 ;; Check for a new home page when updating this package:
10431 ;; https://github.com/hyattpd/Prodigal/issues/36#issuecomment-536617588
10432 (version "2.6.3")
10433 (source (origin
10434 (method git-fetch)
10435 (uri (git-reference
10436 (url "https://github.com/hyattpd/Prodigal")
10437 (commit (string-append "v" version))))
10438 (file-name (git-file-name name version))
10439 (sha256
10440 (base32
10441 "1fs1hqk83qjbjhrvhw6ni75zakx5ki1ayy3v6wwkn3xvahc9hi5s"))))
10442 (build-system gnu-build-system)
10443 (arguments
10444 `(#:tests? #f ; no check target
10445 #:make-flags
10446 ,#~(list (string-append "INSTALLDIR=" #$output "/bin"))
10447 #:phases
10448 (modify-phases %standard-phases
10449 (delete 'configure))))
10450 (home-page "https://github.com/hyattpd/Prodigal")
10451 (synopsis "Protein-coding gene prediction for Archaea and Bacteria")
10452 (description
10453 "Prodigal runs smoothly on finished genomes, draft genomes, and
10454metagenomes, providing gene predictions in GFF3, Genbank, or Sequin table
10455format. It runs quickly, in an unsupervised fashion, handles gaps, handles
10456partial genes, and identifies translation initiation sites.")
10457 (license license:gpl3+)))
10458
10459(define-public roary
10460 (package
10461 (name "roary")
10462 (version "3.12.0")
10463 (source
10464 (origin
10465 (method url-fetch)
10466 (uri (string-append
10467 "mirror://cpan/authors/id/A/AJ/AJPAGE/Bio-Roary-"
10468 version ".tar.gz"))
10469 (sha256
10470 (base32
10471 "0qxrds9wx7cfhlkihrp6697kx0flhhxymap9fwan0b3rbdhcnmff"))))
10472 (build-system perl-build-system)
10473 (arguments
10474 `(#:phases
10475 (modify-phases %standard-phases
10476 (delete 'configure)
10477 (delete 'build)
10478 (replace 'check
10479 (lambda _
10480 ;; The tests are not run by default, so we run each test file
10481 ;; directly.
10482 (setenv "PATH" (string-append (getcwd) "/bin" ":"
10483 (getenv "PATH")))
10484 (setenv "PERL5LIB" (string-append (getcwd) "/lib" ":"
10485 (getenv "PERL5LIB")))
10486 (for-each (lambda (file)
10487 (display file)(display "\n")
10488 (invoke "perl" file))
10489 (find-files "t" ".*\\.t$"))))
10490 (replace 'install
10491 ;; There is no 'install' target in the Makefile.
10492 (lambda* (#:key outputs #:allow-other-keys)
10493 (let* ((out (assoc-ref outputs "out"))
10494 (bin (string-append out "/bin"))
10495 (perl (string-append out "/lib/perl5/site_perl"))
10496 (roary-plots "contrib/roary_plots"))
10497 (mkdir-p bin)
10498 (mkdir-p perl)
10499 (copy-recursively "bin" bin)
10500 (copy-recursively "lib" perl))))
10501 (add-after 'install 'wrap-programs
10502 (lambda* (#:key inputs outputs #:allow-other-keys)
10503 (let* ((out (assoc-ref outputs "out"))
10504 (perl5lib (getenv "PERL5LIB"))
10505 (path (getenv "PATH")))
10506 (for-each (lambda (prog)
10507 (let ((binary (string-append out "/" prog)))
10508 (wrap-program binary
10509 `("PERL5LIB" ":" prefix
10510 (,(string-append perl5lib ":" out
10511 "/lib/perl5/site_perl"))))
10512 (wrap-program binary
10513 `("PATH" ":" prefix
10514 (,(string-append path ":" out "/bin"))))))
10515 (find-files "bin" ".*[^R]$"))
10516 (let ((file
10517 (string-append out "/bin/roary-create_pan_genome_plots.R"))
10518 (r-site-lib (getenv "R_LIBS_SITE"))
10519 (coreutils-path
10520 (dirname (search-input-file inputs "bin/chmod"))))
10521 (wrap-program file
10522 `("R_LIBS_SITE" ":" prefix
10523 (,(string-append r-site-lib ":" out "/site-library/"))))
10524 (wrap-program file
10525 `("PATH" ":" prefix
10526 (,(string-append coreutils-path ":" out "/bin")))))))))))
10527 (native-inputs
10528 (list perl-env-path perl-test-files perl-test-most perl-test-output))
10529 (inputs
10530 (list bash-minimal
10531 perl-array-utils
10532 bioperl-minimal
10533 perl-digest-md5-file
10534 perl-exception-class
10535 perl-file-find-rule
10536 perl-file-grep
10537 perl-file-slurper
10538 perl-file-which
10539 perl-graph
10540 perl-graph-readwrite
10541 perl-log-log4perl
10542 perl-moose
10543 perl-perlio-utf8_strict
10544 perl-text-csv
10545 bedtools
10546 cd-hit
10547 blast+
10548 mcl
10549 parallel
10550 prank
10551 mafft
10552 fasttree
10553 grep
10554 sed
10555 gawk
10556 r-minimal
10557 r-ggplot2
10558 coreutils))
10559 (home-page "https://sanger-pathogens.github.io/Roary/")
10560 (synopsis "High speed stand-alone pan genome pipeline")
10561 (description
10562 "Roary is a high speed stand alone pan genome pipeline, which takes
10563annotated assemblies in GFF3 format (produced by the Prokka program) and
10564calculates the pan genome. Using a standard desktop PC, it can analyse
10565datasets with thousands of samples, without compromising the quality of the
10566results. 128 samples can be analysed in under 1 hour using 1 GB of RAM and a
10567single processor. Roary is not intended for metagenomics or for comparing
10568extremely diverse sets of genomes.")
10569 (license license:gpl3)))
10570
10571(define-public raxml
10572 (package
10573 (name "raxml")
10574 (version "8.2.12")
10575 (source
10576 (origin
10577 (method git-fetch)
10578 (uri (git-reference
10579 (url "https://github.com/stamatak/standard-RAxML")
10580 (commit (string-append "v" version))))
10581 (file-name (git-file-name name version))
10582 (sha256
10583 (base32
10584 "1jqjzhch0rips0vp04prvb8vmc20c5pdmsqn8knadcf91yy859fh"))))
10585 (build-system gnu-build-system)
10586 (arguments
10587 `(#:tests? #f ; There are no tests.
10588 ;; Use 'standard' Makefile rather than SSE or AVX ones.
10589 #:make-flags (list "-f" "Makefile.HYBRID.gcc")
10590 #:phases
10591 (modify-phases %standard-phases
10592 (delete 'configure)
10593 (replace 'install
10594 (lambda* (#:key outputs #:allow-other-keys)
10595 (let* ((out (assoc-ref outputs "out"))
10596 (bin (string-append out "/bin"))
10597 (executable "raxmlHPC-HYBRID"))
10598 (install-file executable bin)
10599 (symlink (string-append bin "/" executable) "raxml"))
10600 #t)))))
10601 (inputs
10602 (list openmpi))
10603 (home-page "https://cme.h-its.org/exelixis/web/software/raxml/index.html")
10604 (synopsis "Randomized Axelerated Maximum Likelihood phylogenetic trees")
10605 (description
10606 "RAxML is a tool for phylogenetic analysis and post-analysis of large
10607phylogenies.")
10608 ;; The source includes x86 specific code
10609 (supported-systems '("x86_64-linux" "i686-linux"))
10610 (license license:gpl2+)))
10611
10612(define-public rsem
10613 (package
10614 (name "rsem")
10615 (version "1.3.3")
10616 (source
10617 (origin
10618 (method git-fetch)
10619 (uri (git-reference
10620 (url "https://github.com/deweylab/RSEM")
10621 (commit (string-append "v" version))))
10622 (sha256
10623 (base32 "1yl4i7z20n2p84j1lmk15aiak3yqc6fiw0q5a4pndw7pxfiq3rzp"))
10624 (file-name (git-file-name name version))
10625 (modules '((guix build utils)))
10626 (snippet
10627 '(begin
10628 ;; remove bundled copy of boost and samtools
10629 (delete-file-recursively "boost")
10630 (delete-file-recursively "samtools-1.3")))))
10631 (build-system gnu-build-system)
10632 (arguments
10633 `(#:tests? #f ;no "check" target
10634 #:make-flags
10635 ,#~(list (string-append "BOOST="
10636 #$(this-package-input "boost")
10637 "/include/")
10638 (string-append "SAMHEADERS="
10639 #$(this-package-input "htslib")
10640 "/include/htslib/sam.h")
10641 (string-append "SAMLIBS="
10642 #$(this-package-input "htslib")
10643 "/lib/libhts.so"))
10644 #:phases
10645 (modify-phases %standard-phases
10646 ;; No "configure" script.
10647 (replace 'configure
10648 (lambda _
10649 (substitute* "Makefile"
10650 (("^all : \\$\\(PROGRAMS\\).*") "all: $(PROGRAMS)\n")
10651 ;; Do not build bundled samtools library.
10652 (("^\\$\\(SAMLIBS\\).*") "")
10653 ;; Needed for Boost
10654 (("gnu\\+\\+98") "gnu++11"))
10655 ;; C++11 compatibility
10656 (substitute* "buildReadIndex.cpp"
10657 (("success = \\(getline")
10658 "success = (bool)(getline"))
10659 (substitute* '("PairedEndHit.h"
10660 "SingleHit.h")
10661 (("return \\(in>>sid>>pos")
10662 "return (bool)(in>>sid>>pos"))))
10663 (replace 'install
10664 (lambda* (#:key outputs #:allow-other-keys)
10665 (let* ((out (string-append (assoc-ref outputs "out")))
10666 (bin (string-append out "/bin/"))
10667 (perl (string-append out "/lib/perl5/site_perl")))
10668 (mkdir-p bin)
10669 (mkdir-p perl)
10670 (for-each (lambda (file)
10671 (install-file file bin))
10672 (find-files "." "rsem-.*"))
10673 (install-file "rsem_perl_utils.pm" perl))))
10674 (add-after 'install 'wrap-program
10675 (lambda* (#:key outputs #:allow-other-keys)
10676 (let ((out (assoc-ref outputs "out")))
10677 (for-each (lambda (prog)
10678 (wrap-program (string-append out "/bin/" prog)
10679 `("PERL5LIB" ":" prefix
10680 (,(string-append out "/lib/perl5/site_perl")))))
10681 '("rsem-calculate-expression"
10682 "rsem-control-fdr"
10683 "rsem-generate-data-matrix"
10684 "rsem-generate-ngvector"
10685 "rsem-plot-transcript-wiggles"
10686 "rsem-prepare-reference"
10687 "rsem-run-ebseq"
10688 "rsem-run-prsem-testing-procedure"))))))))
10689 (inputs
10690 (list bash-minimal boost-1.83 r-minimal perl htslib-1.3 zlib))
10691 (home-page "https://deweylab.biostat.wisc.edu/rsem/")
10692 (synopsis "Estimate gene expression levels from RNA-Seq data")
10693 (description
10694 "RSEM is a software package for estimating gene and isoform expression
10695levels from RNA-Seq data. The RSEM package provides a user-friendly
10696interface, supports threads for parallel computation of the EM algorithm,
10697single-end and paired-end read data, quality scores, variable-length reads and
10698RSPD estimation. In addition, it provides posterior mean and 95% credibility
10699interval estimates for expression levels. For visualization, it can generate
10700BAM and Wiggle files in both transcript-coordinate and genomic-coordinate.")
10701 (license license:gpl3+)))
10702
10703(define-public rseqc
10704 (package
10705 (name "rseqc")
10706 (version "3.0.1")
10707 (source
10708 (origin
10709 (method url-fetch)
10710 (uri
10711 (string-append "mirror://sourceforge/rseqc/"
10712 "RSeQC-" version ".tar.gz"))
10713 (sha256
10714 (base32
10715 "0gbb9iyb7swiv5455fm5rg98r7l6qn27v564yllqjd574hncpx6m"))))
10716 (build-system pyproject-build-system)
10717 (arguments (list #:tests? #f)) ; No tests.
10718 (inputs
10719 (list python-bx-python
10720 python-cython
10721 python-numpy
10722 python-pybigwig
10723 python-pyparsing
10724 python-pysam
10725 python-setuptools
10726 zlib))
10727 (home-page "https://rseqc.sourceforge.net/")
10728 (synopsis "RNA-seq quality control package")
10729 (description
10730 "RSeQC provides a number of modules that can comprehensively evaluate
10731high throughput sequence data, especially RNA-seq data. Some basic modules
10732inspect sequence quality, nucleotide composition bias, PCR bias and GC bias,
10733while RNA-seq specific modules evaluate sequencing saturation, mapped reads
10734distribution, coverage uniformity, strand specificity, etc.")
10735 (license license:gpl3+)))
10736
10737(define-public seek
10738 ;; There are no release tarballs. And the installation instructions at
10739 ;; http://seek.princeton.edu/installation.jsp only mention a mercurial
10740 ;; changeset ID. This is a git repository, though. So we just take the
10741 ;; most recent commit.
10742 (let ((commit "196ed4c7633246e9c628e4330d77577ccfd7f1e5")
10743 (revision "1"))
10744 (package
10745 (name "seek")
10746 (version (git-version "1" revision commit))
10747 (source (origin
10748 (method git-fetch)
10749 (uri (git-reference
10750 (url "https://github.com/FunctionLab/sleipnir.git")
10751 (commit commit)
10752 (recursive? #true)))
10753 (file-name (git-file-name name version))
10754 (sha256
10755 (base32
10756 "0c658n8nz563a96dsi4gl2685vxph0yfmmqq5yjc6i4xin1jy1ab"))))
10757 (build-system cmake-build-system)
10758 (arguments
10759 `(#:configure-flags
10760 ,#~(list (string-append "-DSVM_LIBRARY="
10761 #$(this-package-input "libsvm")
10762 "/lib/libsvm.so")
10763 (string-append "-DSVM_INCLUDE="
10764 #$(this-package-input "libsvm")
10765 "/include"))
10766 #:tests? #false ; tests only fail in the build container
10767 #:phases
10768 (modify-phases %standard-phases
10769 ;; The check phase expects to find the unit_tests executable in the
10770 ;; "build/bin" directory, but it is actually in "build/tests".
10771 (replace 'check
10772 (lambda* (#:key tests? #:allow-other-keys)
10773 (when tests?
10774 (invoke "tests/unit_tests")))))))
10775 (inputs
10776 `(("apache-thrift:include" ,apache-thrift "include")
10777 ("apache-thrift:lib" ,apache-thrift "lib")
10778 ("gsl" ,gsl)
10779 ("boost" ,boost)
10780 ("gengetopt" ,gengetopt)
10781 ("libsvm" ,libsvm)
10782 ("log4cpp" ,log4cpp)
10783 ("python" ,python)
10784 ("readline" ,readline)))
10785 (native-inputs
10786 (list pkg-config))
10787 (home-page "https://seek.princeton.edu")
10788 (synopsis "Gene co-expression search engine")
10789 (description
10790 "SEEK is a computational gene co-expression search engine. SEEK provides
10791biologists with a way to navigate the massive human expression compendium that
10792now contains thousands of expression datasets. SEEK returns a robust ranking
10793of co-expressed genes in the biological area of interest defined by the user's
10794query genes. It also prioritizes thousands of expression datasets according
10795to the user's query of interest.")
10796 (license license:cc-by3.0))))
10797
10798(define-public samtools
10799 (package
10800 (name "samtools")
10801 (version "1.19")
10802 (source
10803 (origin
10804 (method url-fetch)
10805 (uri
10806 (string-append "https://github.com/samtools/samtools"
10807 "/releases/download/" version
10808 "/samtools-" version ".tar.bz2"))
10809 (sha256
10810 (base32
10811 "10wby07w33rfypy4kf73v9wwnbyh0lrazbsmrgrvcl88w8c3nszs"))
10812 (modules '((guix build utils)))
10813 ;; Delete bundled htslib.
10814 (snippet '(delete-file-recursively "htslib-1.19"))))
10815 (build-system gnu-build-system)
10816 (arguments
10817 `(#:configure-flags (list "--with-ncurses")
10818 ;; The samtools test suite (and software) expects SSE-based math, even on
10819 ;; i686-linux, and not 387-based math. Adjust the CPPFLAGS accordingly.
10820 ,@(if (target-x86-32?)
10821 `(#:make-flags (list "CPPFLAGS = -msse -mfpmath=sse"))
10822 '())
10823 #:phases
10824 (modify-phases %standard-phases
10825 (add-after 'unpack 'patch-tests
10826 (lambda _
10827 (substitute* "test/test.pl"
10828 ;; The test script calls out to /bin/bash
10829 (("/bin/bash") (which "bash"))))))))
10830 (native-inputs (list pkg-config))
10831 (inputs
10832 (list htslib ncurses perl python zlib))
10833 (home-page "https://samtools.sourceforge.net")
10834 (synopsis "Utilities to efficiently manipulate nucleotide sequence alignments")
10835 (description
10836 "Samtools implements various utilities for post-processing nucleotide
10837sequence alignments in the SAM, BAM, and CRAM formats, including indexing,
10838variant calling (in conjunction with bcftools), and a simple alignment
10839viewer.")
10840 (license license:expat)))
10841
10842(define-public samtools-0.1
10843 ;; This is the most recent version of the 0.1 line of samtools. The input
10844 ;; and output formats differ greatly from that used and produced by samtools
10845 ;; 1.x and is still used in many bioinformatics pipelines.
10846 (package (inherit samtools)
10847 (version "0.1.19")
10848 (source
10849 (origin
10850 (method url-fetch)
10851 (uri
10852 (string-append "mirror://sourceforge/samtools/samtools/"
10853 version "/samtools-" version ".tar.bz2"))
10854 (sha256
10855 (base32 "1m33xsfwz0s8qi45lylagfllqg7fphf4dr0780rsvw75av9wk06h"))))
10856 (arguments
10857 `(#:tests? #f ;no "check" target
10858 #:make-flags
10859 (list "LIBCURSES=-lncurses")
10860 ,@(substitute-keyword-arguments arguments
10861 ((#:modules _ #f)
10862 '((ice-9 ftw)
10863 (ice-9 regex)
10864 (guix build gnu-build-system)
10865 (guix build utils)))
10866 ((#:phases phases)
10867 `(modify-phases ,phases
10868 (replace 'install
10869 (lambda* (#:key outputs #:allow-other-keys)
10870 (let ((bin (string-append
10871 (assoc-ref outputs "out") "/bin")))
10872 (mkdir-p bin)
10873 (install-file "samtools" bin)
10874 #t)))
10875 (add-after 'install 'install-library
10876 (lambda* (#:key outputs #:allow-other-keys)
10877 (let ((lib (string-append (assoc-ref outputs "out") "/lib")))
10878 (install-file "libbam.a" lib))))
10879 (add-after 'install 'install-headers
10880 (lambda* (#:key outputs #:allow-other-keys)
10881 (let ((include (string-append (assoc-ref outputs "out")
10882 "/include/samtools/")))
10883 (for-each (lambda (file)
10884 (install-file file include))
10885 (scandir "." (lambda (name)
10886 (string-match "\\.h$" name)))))))
10887 (delete 'patch-tests)
10888 (delete 'configure))))))))
10889
10890(define-public savvy
10891 (package
10892 (name "savvy")
10893 (version "2.1.0")
10894 (source
10895 (origin
10896 (method git-fetch)
10897 (uri (git-reference
10898 (url "https://github.com/statgen/savvy")
10899 (commit (string-append "v" version))))
10900 (file-name (git-file-name name version))
10901 (sha256
10902 (base32
10903 "03jh89gl67adnpkwx8yrdn62pd9sg69k21gxh15my2vvpfl1pxlx"))))
10904 (build-system cmake-build-system)
10905 (arguments
10906 (list
10907 #:configure-flags
10908 '(list "-DBUILD_TESTS=ON"
10909 "-DBUILD_EVAL=ON")
10910 #:phases
10911 '(modify-phases %standard-phases
10912 (add-after 'unpack 'use-shared-libraries
10913 (lambda _
10914 ;; Do not prefer static libraries.
10915 (substitute* "CMakeLists.txt"
10916 (("set\\(CMAKE_FIND_LIBRARY_SUFFIXES \".a;.*") "")))))))
10917 (native-inputs (list pkg-config))
10918 (inputs (list htslib))
10919 (propagated-inputs (list streambuf-shrinkwrap))
10920 (home-page "https://github.com/statgen/savvy/")
10921 (synopsis "Interface to various variant calling formats")
10922 (description
10923 "Savvy is the official C++ interface for the SAV file format and offers
10924seamless support for BCF and VCF files.")
10925 (license license:mpl2.0)))
10926
10927(define-public morpheus
10928 (package
10929 (name "morpheus")
10930 (version "2.3.6")
10931 (source
10932 (origin
10933 (method git-fetch)
10934 (uri (git-reference
10935 (url "https://gitlab.com/morpheus.lab/morpheus")
10936 (commit (string-append "v" version))))
10937 (file-name (git-file-name name version))
10938 (sha256
10939 (base32 "1jyzbkz8d39kjicrk3ihcx7yvq5wsynvnlcw922bqqsw8nwnn12c"))
10940 (modules '((guix build utils)))
10941 (snippet
10942 '(begin
10943 (delete-file-recursively "3rdparty/eigen")
10944 (substitute* '("morpheus/core/cpm_shape_tracker.cpp"
10945 "morpheus/core/membranemapper.h"
10946 "morpheus/testing/components/motility/directed_motion_test.cpp"
10947 "morpheus/testing/components/interaction/generator_cell_sorting.cpp"
10948 "morpheus/testing/components/interaction/test_cell_sorting.cpp"
10949 "morpheus/testing/core/cpm/generator_csm_plane.cpp"
10950 "morpheus/testing/test_operators.h")
10951 (("#include \"eigen/") "#include \"eigen3/"))))))
10952 ;; This is for a different Morpheus.
10953 (properties '((lint-hidden-cve "CVE-2022-31261")))
10954 (build-system cmake-build-system)
10955 (arguments
10956 (list
10957 #:configure-flags
10958 '(list "-DMORPHEUS_GUI=OFF"
10959 "-DDOWNLOAD_XTENSOR=OFF")
10960 #:phases
10961 '(modify-phases %standard-phases
10962 (add-after 'unpack 'disable-gtest-download
10963 (lambda _
10964 (substitute* "3rdparty/CMakeLists.txt"
10965 (("add_subdirectory\\(GTest\\)") ""))))
10966 (replace 'check
10967 (lambda* (#:key tests? #:allow-other-keys)
10968 (when tests?
10969 (invoke "ctest" "--output-junit" "test_results.xml")))))))
10970 (inputs (list boost
10971 eigen
10972 file
10973 gnuplot
10974 libtiff
10975 libxslt
10976 xsimd
10977 xtensor
10978 xtl
10979 zlib))
10980 (native-inputs
10981 (list doxygen googletest xxd))
10982 (home-page "https://gitlab.com/morpheus.lab/morpheus")
10983 (synopsis "Multicellular simulation")
10984 (description
10985 "Morpheus is a modeling and simulation environment for the study of
10986multi-scale and multicellular systems.")
10987 (license license:bsd-3)))
10988
10989(define-public mosaik
10990 (let ((commit "5c25216d3522d6a33e53875cd76a6d65001e4e67"))
10991 (package
10992 (name "mosaik")
10993 (version "2.2.30")
10994 (source (origin
10995 ;; There are no release tarballs nor tags.
10996 (method git-fetch)
10997 (uri (git-reference
10998 (url "https://github.com/wanpinglee/MOSAIK")
10999 (commit commit)))
11000 (file-name (string-append name "-" version))
11001 (sha256
11002 (base32
11003 "17gj3s07cm77r41z92awh0bim7w7q7fbn0sf5nkqmcm1vw052qgw"))))
11004 (build-system gnu-build-system)
11005 (arguments
11006 `(#:tests? #f ; no tests
11007 #:make-flags (list "CC=gcc")
11008 #:phases
11009 (modify-phases %standard-phases
11010 (replace 'configure
11011 (lambda _ (chdir "src") #t))
11012 (replace 'install
11013 (lambda* (#:key outputs #:allow-other-keys)
11014 (let ((bin (string-append (assoc-ref outputs "out")
11015 "/bin")))
11016 (mkdir-p bin)
11017 (copy-recursively "../bin" bin)
11018 #t))))))
11019 (inputs
11020 `(("perl" ,perl)
11021 ("zlib:static" ,zlib "static")
11022 ("zlib" ,zlib)))
11023 (supported-systems '("x86_64-linux"))
11024 (home-page "https://github.com/wanpinglee/MOSAIK")
11025 (synopsis "Map nucleotide sequence reads to reference genomes")
11026 (description
11027 "MOSAIK is a program for mapping second and third-generation sequencing
11028reads to a reference genome. MOSAIK can align reads generated by all the
11029major sequencing technologies, including Illumina, Applied Biosystems SOLiD,
11030Roche 454, Ion Torrent and Pacific BioSciences SMRT.")
11031 ;; MOSAIK is released under the GPLv2+ with the exception of third-party
11032 ;; code released into the public domain:
11033 ;; 1. fastlz by Ariya Hidayat - http://www.fastlz.org/
11034 ;; 2. MD5 implementation - RSA Data Security, RFC 1321
11035 (license (list license:gpl2+ license:public-domain)))))
11036
11037(define-public mosaicatcher
11038 (package
11039 (name "mosaicatcher")
11040 (version "0.3.1")
11041 (source (origin
11042 ;; There are no release tarballs nor tags.
11043 (method git-fetch)
11044 (uri (git-reference
11045 (url "https://github.com/friendsofstrandseq/mosaicatcher")
11046 (commit (string-append version "-dev"))))
11047 (file-name (git-file-name name version))
11048 (sha256
11049 (base32
11050 "1n2s5wvvj2y0vfgjkg1q11xahpbagxz7h2vf5q7qyy25s12kbzbd"))
11051 (patches (search-patches "mosaicatcher-unbundle-htslib.patch"))))
11052 (build-system cmake-build-system)
11053 (arguments
11054 `(#:tests? #false ; there are no tests
11055 #:phases
11056 (modify-phases %standard-phases
11057 (add-after 'unpack 'chdir
11058 (lambda _ (chdir "src")))
11059 (replace 'install
11060 (lambda* (#:key inputs outputs #:allow-other-keys)
11061 (let* ((target (assoc-ref outputs "out"))
11062 (bin (string-append target "/bin"))
11063 (share (string-append target "/share/mosaicatcher")))
11064 (install-file "mosaic" bin)
11065 (mkdir-p share)
11066 (copy-recursively "../R" share)))))))
11067 (inputs
11068 (list boost htslib))
11069 (home-page "https://github.com/friendsofstrandseq/mosaicatcher")
11070 (synopsis "Count and classify Strand-seq reads")
11071 (description
11072 "Mosaicatcher counts Strand-seq reads and classifies strand states of
11073each chromosome in each cell using a Hidden Markov Model.")
11074 (license license:expat)))
11075
11076(define-public ngs-sdk
11077 (package
11078 (name "ngs-sdk")
11079 (version "2.10.5")
11080 (source (origin
11081 (method git-fetch)
11082 (uri (git-reference
11083 (url "https://github.com/ncbi/ngs")
11084 (commit version)))
11085 (file-name (git-file-name name version))
11086 (sha256
11087 (base32
11088 "1ix51c25hjn57w93qmwzw80xh2i34wx8j2hn7szh8p6w8i3az5qa"))))
11089 (build-system gnu-build-system)
11090 (arguments
11091 `(#:parallel-build? #f ; not supported
11092 #:tests? #f ; no "check" target
11093 #:phases
11094 (modify-phases %standard-phases
11095 (replace 'configure
11096 (lambda* (#:key outputs #:allow-other-keys)
11097 (let ((out (assoc-ref outputs "out")))
11098 ;; Allow 'konfigure.perl' to find 'package.prl'.
11099 (setenv "PERL5LIB"
11100 (string-append ".:" (getenv "PERL5LIB")))
11101
11102 ;; The 'configure' script doesn't recognize things like
11103 ;; '--enable-fast-install'.
11104 (invoke "./configure"
11105 (string-append "--build-prefix=" (getcwd) "/build")
11106 (string-append "--prefix=" out))
11107 #t)))
11108 (add-after 'unpack 'enter-dir
11109 (lambda _ (chdir "ngs-sdk") #t)))))
11110 (native-inputs (list perl))
11111 ;; According to the test
11112 ;; unless ($MARCH =~ /x86_64/i || $MARCH =~ /i?86/i)
11113 ;; in ngs-sdk/setup/konfigure.perl
11114 (supported-systems '("i686-linux" "x86_64-linux"))
11115 (home-page "https://github.com/ncbi/ngs")
11116 (synopsis "API for accessing Next Generation Sequencing data")
11117 (description
11118 "NGS is a domain-specific API for accessing reads, alignments and pileups
11119produced from Next Generation Sequencing. The API itself is independent from
11120any particular back-end implementation, and supports use of multiple back-ends
11121simultaneously.")
11122 (license license:public-domain)))
11123
11124(define-public java-ngs
11125 (package (inherit ngs-sdk)
11126 (name "java-ngs")
11127 (arguments
11128 `(,@(substitute-keyword-arguments
11129 `(#:modules ((guix build gnu-build-system)
11130 (guix build utils)
11131 (srfi srfi-1)
11132 (srfi srfi-26))
11133 ,@(package-arguments ngs-sdk))
11134 ((#:phases phases)
11135 `(modify-phases ,phases
11136 (replace 'enter-dir (lambda _ (chdir "ngs-java") #t)))))))
11137 (inputs
11138 `(("jdk" ,icedtea "jdk")
11139 ("ngs-sdk" ,ngs-sdk)))
11140 (synopsis "Java bindings for NGS SDK")))
11141
11142(define-public ncbi-vdb
11143 (package
11144 (name "ncbi-vdb")
11145 (version "2.10.6")
11146 (source (origin
11147 (method git-fetch)
11148 (uri (git-reference
11149 (url "https://github.com/ncbi/ncbi-vdb")
11150 (commit version)))
11151 (file-name (git-file-name name version))
11152 (sha256
11153 (base32
11154 "0m8hlxscidsfqm9x9fyi62q6lpf1dv5115kgjjgnrkl49q9c27m6"))))
11155 (build-system gnu-build-system)
11156 (arguments
11157 (list
11158 #:parallel-build? #f ; not supported
11159 #:tests? #f ; no "check" target
11160 #:make-flags '(list "HAVE_HDF5=1")
11161 #:phases
11162 #~(modify-phases %standard-phases
11163 #;
11164 (add-after 'unpack 'make-files-writable
11165 (lambda _ (for-each make-file-writable (find-files "." ".*"))))
11166 (add-before 'configure 'set-perl-search-path
11167 (lambda _
11168 ;; Work around "dotless @INC" build failure.
11169 (setenv "PERL5LIB"
11170 (string-append (getcwd) "/setup:"
11171 (getenv "PERL5LIB")))))
11172 ;; See https://github.com/ncbi/ncbi-vdb/issues/14
11173 (add-after 'unpack 'patch-krypto-flags
11174 (lambda _
11175 (substitute* "libs/krypto/Makefile"
11176 (("-Wa,-march=generic64\\+aes") "")
11177 (("-Wa,-march=generic64\\+sse4") ""))))
11178 (replace 'configure
11179 (lambda _
11180 ;; Override include path for libmagic
11181 (substitute* "setup/package.prl"
11182 (("name => 'magic', Include => '/usr/include'")
11183 (string-append "name=> 'magic', Include => '"
11184 #$(this-package-input "file")
11185 "/include" "'")))
11186
11187 ;; Install kdf5 library (needed by sra-tools)
11188 (substitute* "build/Makefile.install"
11189 (("LIBRARIES_TO_INSTALL =")
11190 "LIBRARIES_TO_INSTALL = kdf5.$(VERSION_LIBX) kdf5.$(VERSION_SHLX)"))
11191
11192 (substitute* "build/Makefile.env"
11193 (("CFLAGS =" prefix)
11194 (string-append prefix "-msse2 ")))
11195
11196 ;; Override search path for ngs-java
11197 (substitute* "setup/package.prl"
11198 (("/usr/local/ngs/ngs-java")
11199 #$(this-package-input "java-ngs")))
11200
11201 ;; The 'configure' script doesn't recognize things like
11202 ;; '--enable-fast-install'.
11203 (invoke "./configure"
11204 (string-append "--build-prefix=" (getcwd) "/build")
11205 (string-append "--prefix=" #$output)
11206 (string-append "--debug")
11207 (string-append "--with-xml2-prefix="
11208 #$(this-package-input "libxml2"))
11209 (string-append "--with-ngs-sdk-prefix="
11210 #$(this-package-input "ngs-sdk"))
11211 (string-append "--with-hdf5-prefix="
11212 #$(this-package-input "hdf5")))))
11213 (add-after 'install 'install-interfaces
11214 (lambda _
11215 ;; Install interface libraries. On i686 the interface libraries
11216 ;; are installed to "linux/gcc/i386", so we need to use the Linux
11217 ;; architecture name ("i386") instead of the target system prefix
11218 ;; ("i686").
11219 (mkdir (string-append #$output "/ilib"))
11220 (copy-recursively (string-append
11221 "build/ncbi-vdb/linux/gcc/"
11222 #$(platform-linux-architecture
11223 (lookup-platform-by-target-or-system
11224 (or (%current-target-system)
11225 (%current-system))))
11226 "/rel/ilib")
11227 (string-append #$output "/ilib"))
11228 ;; Install interface headers
11229 (copy-recursively "interfaces"
11230 (string-append #$output "/include"))))
11231 (add-after 'install-interfaces 'install-libs
11232 (lambda _
11233 (copy-recursively (string-append
11234 "build/ncbi-vdb/linux/gcc/"
11235 #$(platform-linux-architecture
11236 (lookup-platform-by-target-or-system
11237 (or (%current-target-system)
11238 (%current-system))))
11239 "/rel/lib")
11240 (string-append #$output "/lib"))))
11241 ;; These files are needed by sra-tools.
11242 (add-after 'install 'install-configuration-files
11243 (lambda _
11244 (let ((target (string-append #$output "/kfg")))
11245 (mkdir target)
11246 (install-file "libs/kfg/default.kfg" target)
11247 (install-file "libs/kfg/certs.kfg" target)))))))
11248 (inputs
11249 (list file hdf5-1.10 java-ngs libxml2 ngs-sdk ))
11250 (native-inputs (list perl))
11251 ;; NCBI-VDB requires SSE capability.
11252 (supported-systems '("i686-linux" "x86_64-linux"))
11253 (home-page "https://github.com/ncbi/ncbi-vdb")
11254 (synopsis "Database engine for genetic information")
11255 (description
11256 "The NCBI-VDB library implements a highly compressed columnar data
11257warehousing engine that is most often used to store genetic information.
11258Databases are stored in a portable image within the file system, and can be
11259accessed/downloaded on demand across HTTP.")
11260 (license license:public-domain)))
11261
11262(define-public plink
11263 (package
11264 (name "plink")
11265 (version "1.07")
11266 (source
11267 (origin
11268 (method url-fetch)
11269 (uri (string-append
11270 "https://zzz.bwh.harvard.edu/plink/dist/plink-"
11271 version "-src.zip"))
11272 (sha256
11273 (base32 "0as8gxm4pjyc8dxmm1sl873rrd7wn5qs0l29nqfnl31x8i467xaa"))
11274 (patches (search-patches "plink-1.07-unclobber-i.patch"
11275 "plink-endian-detection.patch"))))
11276 (build-system gnu-build-system)
11277 (arguments
11278 `(#:tests? #f ;no "check" target
11279 #:make-flags ,#~(list (string-append "LIB_LAPACK="
11280 #$(this-package-input "openblas")
11281 "/lib/libopenblas.so")
11282 "WITH_LAPACK=1"
11283 "FORCE_DYNAMIC=1"
11284 ;; disable phoning home
11285 "WITH_WEBCHECK=")
11286 #:phases
11287 (modify-phases %standard-phases
11288 ;; no "configure" script
11289 (delete 'configure)
11290 (replace 'install
11291 (lambda* (#:key outputs #:allow-other-keys)
11292 (let ((bin (string-append (assoc-ref outputs "out")
11293 "/bin/")))
11294 (install-file "plink" bin)))))))
11295 (inputs
11296 (list zlib libxcrypt openblas))
11297 (native-inputs
11298 (list unzip gcc-7))
11299 (home-page "http://pngu.mgh.harvard.edu/~purcell/plink/")
11300 (synopsis "Whole genome association analysis toolset")
11301 (description
11302 "PLINK is a whole genome association analysis toolset, designed to
11303perform a range of basic, large-scale analyses in a computationally efficient
11304manner. The focus of PLINK is purely on analysis of genotype/phenotype data,
11305so there is no support for steps prior to this (e.g. study design and
11306planning, generating genotype or CNV calls from raw data). Through
11307integration with gPLINK and Haploview, there is some support for the
11308subsequent visualization, annotation and storage of results.")
11309 ;; Code is released under GPLv2, except for fisher.h, which is under
11310 ;; LGPLv2.1+
11311 (license (list license:gpl2 license:lgpl2.1+))))
11312
11313(define-public plink-ng
11314 (package (inherit plink)
11315 (name "plink-ng")
11316 (version "2.0.0-a.6.16")
11317 (source
11318 (origin
11319 (method git-fetch)
11320 (uri (git-reference
11321 (url "https://github.com/chrchang/plink-ng")
11322 (commit (string-append "v" version))))
11323 (file-name (git-file-name name version))
11324 (sha256
11325 (base32 "1v020l8b5njc458silaqfwl8jg7vn46wg8hh4iiq3ip6p31g2dm7"))))
11326 (build-system gnu-build-system)
11327 (arguments
11328 (list
11329 #:tests? #false ;TEST_EXTRACT_CHR doesn't produce expected files
11330 #:make-flags
11331 #~(list "BLASFLAGS=-lopenblas"
11332 "NO_SSE42=1"
11333 "NO_AVX2=1"
11334 "STATIC_ZSTD="
11335 (string-append "CC=" #$(cc-for-target))
11336 (string-append "PREFIX=" #$output)
11337 "DESTDIR=")
11338 #:phases
11339 #~(modify-phases %standard-phases
11340 (add-after 'unpack 'chdir
11341 (lambda _ (chdir "2.0/build_dynamic")))
11342 (add-after 'chdir 'patch-headers
11343 (lambda _
11344 (substitute* '("../include/pvar_ffi_support.h"
11345 "../include/pgenlib_ffi_support.h")
11346 (("#include \"include/pgenlib_misc.h\"")
11347 "#include <pgenlib_misc.h>"))))
11348 (delete 'configure) ; no "configure" script
11349 (replace 'check
11350 (lambda* (#:key tests? inputs #:allow-other-keys)
11351 (when tests?
11352 (setenv "PATH" (string-append (getcwd) ":" (getenv "PATH")))
11353 (with-directory-excursion "../Tests"
11354 (substitute* "run_tests.sh"
11355 (("^./run_tests" m)
11356 (string-append (which "bash") " " m)))
11357 (invoke "bash" "run_tests.sh")))))
11358 (add-after 'build 'build-library
11359 (lambda _
11360 ;; Inspired by what r-saige does to the plink2 sources.
11361 (apply invoke "gcc" "-std=c++14" "-fPIC" "-O3" "-o" "libplink2.so"
11362 (append (find-files "../include" "\\.cc$")
11363 (list "-shared" "-lz" "-lzstd" "-lpthread" "-lm" "-ldeflate")))))
11364 (replace 'install
11365 (lambda _
11366 (install-file "plink2" (string-append #$output "/bin"))
11367 (install-file "libplink2.so" (string-append #$output "/lib"))
11368 (copy-recursively "../include" (string-append #$output "/include"))
11369 (for-each (lambda (header)
11370 (install-file header (string-append #$output "/include")))
11371 (find-files "." "\\.h$")))))))
11372 (inputs
11373 (list libdeflate openblas zlib `(,zstd "lib")))
11374 (native-inputs
11375 (list diffutils python simde)) ; for tests
11376 (home-page "https://www.cog-genomics.org/plink/")
11377 (license license:gpl3+)))
11378
11379(define-public smithlab-cpp
11380 (let ((revision "1")
11381 (commit "728a097bec88c6f4b8528b685932049e660eff2e"))
11382 (package
11383 (name "smithlab-cpp")
11384 (version (string-append "0." revision "." (string-take commit 7)))
11385 (source (origin
11386 (method git-fetch)
11387 (uri (git-reference
11388 (url "https://github.com/smithlabcode/smithlab_cpp")
11389 (commit commit)))
11390 (file-name (string-append name "-" version "-checkout"))
11391 (sha256
11392 (base32
11393 "0d476lmj312xk77kr9fzrv7z1bv96yfyx0w7y62ycmnfbx32ll74"))))
11394 (build-system gnu-build-system)
11395 (arguments
11396 `(#:modules ((guix build gnu-build-system)
11397 (guix build utils)
11398 (srfi srfi-26))
11399 #:tests? #f ;no "check" target
11400 #:phases
11401 (modify-phases %standard-phases
11402 (add-after 'unpack 'use-samtools-headers
11403 (lambda _
11404 (substitute* '("SAM.cpp"
11405 "SAM.hpp")
11406 (("sam.h") "samtools/sam.h"))
11407 #t))
11408 (replace 'install
11409 (lambda* (#:key outputs #:allow-other-keys)
11410 (let* ((out (assoc-ref outputs "out"))
11411 (lib (string-append out "/lib"))
11412 (include (string-append out "/include/smithlab-cpp")))
11413 (mkdir-p lib)
11414 (mkdir-p include)
11415 (for-each (cut install-file <> lib)
11416 (find-files "." "\\.o$"))
11417 (for-each (cut install-file <> include)
11418 (find-files "." "\\.hpp$")))
11419 #t))
11420 (delete 'configure))))
11421 (inputs
11422 (list samtools-0.1 zlib))
11423 (home-page "https://github.com/smithlabcode/smithlab_cpp")
11424 (synopsis "C++ helper library for functions used in Smith lab projects")
11425 (description
11426 "Smithlab CPP is a C++ library that includes functions used in many of
11427the Smith lab bioinformatics projects, such as a wrapper around Samtools data
11428structures, classes for genomic regions, mapped sequencing reads, etc.")
11429 (license license:gpl3+))))
11430
11431(define-public preseq
11432 (package
11433 (name "preseq")
11434 (version "2.0.3")
11435 (source (origin
11436 (method url-fetch)
11437 (uri (string-append "https://github.com/smithlabcode/preseq/"
11438 "releases/download/v" version
11439 "/preseq_v" version ".tar.bz2"))
11440 (sha256
11441 (base32 "149x9xmk1wy1gff85325yfzqc0qk4sgp1w6gbyj9cnji4x1dszbl"))
11442 (modules '((guix build utils)))
11443 ;; Remove bundled samtools.
11444 (snippet '(delete-file-recursively "samtools"))))
11445 (build-system gnu-build-system)
11446 (arguments
11447 `(#:tests? #f ;no "check" target
11448 #:phases
11449 (modify-phases %standard-phases
11450 (delete 'configure))
11451 #:make-flags
11452 ,#~(list (string-append "PREFIX=" #$output)
11453 (string-append "LIBBAM="
11454 #$(this-package-input "samtools")
11455 "/lib/libbam.a")
11456 (string-append "SMITHLAB_CPP="
11457 #$(this-package-input "smithlab-cpp")
11458 "/lib")
11459 "PROGS=preseq"
11460 "INCLUDEDIRS=$(SMITHLAB_CPP)/../include/smithlab-cpp $(SAMTOOLS_DIR)")))
11461 (inputs
11462 (list gsl samtools-0.1 smithlab-cpp zlib))
11463 (home-page "http://smithlabresearch.org/software/preseq/")
11464 (synopsis "Program for analyzing library complexity")
11465 (description
11466 "The preseq package is aimed at predicting and estimating the complexity
11467of a genomic sequencing library, equivalent to predicting and estimating the
11468number of redundant reads from a given sequencing depth and how many will be
11469expected from additional sequencing using an initial sequencing experiment.
11470The estimates can then be used to examine the utility of further sequencing,
11471optimize the sequencing depth, or to screen multiple libraries to avoid low
11472complexity samples.")
11473 (license license:gpl3+)))
11474
11475(define-public python-screed
11476 (package
11477 (name "python-screed")
11478 (version "1.1.3")
11479 (source
11480 (origin
11481 (method url-fetch)
11482 (uri (pypi-uri "screed" version))
11483 (sha256
11484 (base32 "1f3jw3g8d9cdgdggqpfgw42rfcpzdalbbral6l2mmafvqybids1p"))))
11485 (build-system pyproject-build-system)
11486 (native-inputs
11487 (list python-importlib-resources
11488 python-pytest
11489 python-setuptools
11490 python-setuptools-scm))
11491 (home-page "https://github.com/dib-lab/screed/")
11492 (synopsis "Short read sequence database utilities")
11493 (description "Screed parses FASTA and FASTQ files and generates databases.
11494Values such as sequence name, sequence description, sequence quality and the
11495sequence itself can be retrieved from these databases.")
11496 (license license:bsd-3)))
11497
11498(define-public python-slamdunk
11499 (package
11500 (name "python-slamdunk")
11501 (version "0.4.3")
11502 (source
11503 (origin
11504 (method git-fetch)
11505 (uri (git-reference
11506 (url "https://github.com/t-neumann/slamdunk")
11507 (commit (string-append "v" version))))
11508 (file-name (git-file-name name version))
11509 (sha256
11510 (base32 "0lv3h5k2pn1pz35kz0wk5xmricxzy8qscs2y7nwh0k6x4pn0m0s5"))))
11511 (build-system pyproject-build-system)
11512 (propagated-inputs (list python-biopython
11513 python-intervaltree
11514 python-joblib
11515 python-pandas
11516 python-pybedtools
11517 python-pysam))
11518 (native-inputs (list python-cython python-pytest python-setuptools))
11519 (home-page "https://t-neumann.github.io/slamdunk/")
11520 (synopsis "Streamline SLAM-seq analysis with high sensitivity")
11521 (description
11522 "SlamDunk is a fully automated tool for automated, robust,
11523scalable and reproducible SLAMseq data analysis. Diagnostic plotting features
11524and a MultiQC plugin will make your SLAMseq data ready for immediate QA and
11525interpretation.")
11526 (license license:agpl3+)))
11527
11528(define-public python-taggd
11529 (package
11530 (name "python-taggd")
11531 (version "0.4.0")
11532 (source (origin
11533 (method git-fetch)
11534 (uri (git-reference
11535 (url "https://github.com/jfnavarro/taggd")
11536 (commit version)))
11537 (file-name (git-file-name name version))
11538 (sha256
11539 (base32
11540 "17hi1vs1qwhxx8jnradnl9k471li6fjb6w5sljkpzjxy7rkxwb85"))))
11541 (build-system pyproject-build-system)
11542 (arguments
11543 (list
11544 #:phases
11545 #~(modify-phases %standard-phases
11546 (add-before 'check 'remove-local-taggd
11547 (lambda _
11548 ;; This would otherwise interfere with finding the installed
11549 ;; taggd when running tests.
11550 (delete-file-recursively "taggd"))))))
11551 (propagated-inputs
11552 (list python-numpy
11553 python-pysam
11554 python-tqdm
11555 python-aiofiles
11556 python-dnaio
11557 python-types-aiofiles
11558 python-types-tqdm))
11559 (native-inputs
11560 (list python-cython python-pytest python-setuptools))
11561 (home-page "https://github.com/jfnavarro/taggd")
11562 (synopsis "Genetic barcode demultiplexing")
11563 (description "This package provides TagGD barcode demultiplexing utilities
11564for Spatial Transcriptomics data.")
11565 (license license:bsd-3)))
11566
11567(define-public stpipeline
11568 (package
11569 (name "stpipeline")
11570 (version "2.1.0")
11571 (source
11572 (origin
11573 (method git-fetch)
11574 (uri (git-reference
11575 (url "https://github.com/jfnavarro/st_pipeline")
11576 (commit version)))
11577 (file-name (git-file-name name version))
11578 (sha256
11579 (base32 "03j3426ihhb6k6crpdb0cfvygc4bxqn20iq7bvidgcigbq0as7sd"))))
11580 (build-system pyproject-build-system)
11581 (arguments
11582 (list
11583 #:test-flags
11584 ;; This test fails with pandas@3, try to disable it on the next update.
11585 #~(list "--deselect=tests/integration_test.py::test_multi_qa")
11586 #:phases '(modify-phases %standard-phases
11587 ;; requirements.txt and pyproject.toml have all versions
11588 ;; of the dependencies hardcoded. All tests pass, so it should
11589 ;; be good enough.
11590 ;; However, the sanity-check of any Python package that has
11591 ;; stpipelines a dependency, would fail too.
11592 (delete 'sanity-check))))
11593 (propagated-inputs (list htseq
11594 python-distance
11595 python-dnaio
11596 python-numpy
11597 python-pandas
11598 python-pysam
11599 python-regex
11600 python-scikit-learn
11601 python-scipy
11602 python-seaborn
11603 python-taggd
11604 python-types-regex
11605 samtools
11606 star))
11607 (native-inputs (list python-cython
11608 python-pytest
11609 python-poetry-core))
11610 (home-page "https://github.com/jfnavarro/st_pipeline")
11611 (synopsis "Pipeline for spatial mapping of unique transcripts")
11612 (description
11613 "This package provides an automated pipeline for spatial mapping of
11614unique transcripts.")
11615 (license license:expat)))
11616
11617(define-public sra-tools
11618 (package
11619 (name "sra-tools")
11620 (version "2.10.6")
11621 (source
11622 (origin
11623 (method git-fetch)
11624 (uri (git-reference
11625 (url "https://github.com/ncbi/sra-tools")
11626 (commit version)))
11627 (file-name (git-file-name name version))
11628 (sha256
11629 (base32
11630 "1cr2mijkfs5sm35ffjs6861qsd1qkgnhnbavdv65zg5d655abbjf"))))
11631 (build-system gnu-build-system)
11632 (arguments
11633 (list
11634 #:parallel-build? #f ; not supported
11635 #:tests? #f ; no "check" target
11636 #:make-flags
11637 #~(list (string-append "DEFAULT_CRT="
11638 #$(this-package-input "ncbi-vdb")
11639 "/kfg/certs.kfg")
11640 (string-append "DEFAULT_KFG="
11641 #$(this-package-input "ncbi-vdb")
11642 "/kfg/default.kfg")
11643 (string-append "VDB_LIBDIR="
11644 #$(this-package-input "ncbi-vdb")
11645 #$(if (string-prefix? "x86_64"
11646 (or (%current-target-system)
11647 (%current-system)))
11648 "/lib64"
11649 "/lib32")))
11650 #:phases
11651 #~(modify-phases %standard-phases
11652 (add-before 'configure 'set-perl-search-path
11653 (lambda _
11654 ;; Work around "dotless @INC" build failure.
11655 (setenv "PERL5LIB"
11656 (string-append (getcwd) "/setup:"
11657 (getenv "PERL5LIB")))))
11658 (replace 'configure
11659 (lambda* (#:key inputs outputs #:allow-other-keys)
11660 ;; The build system expects a directory containing the sources and
11661 ;; raw build output of ncbi-vdb, including files that are not
11662 ;; installed. Since we are building against an installed version of
11663 ;; ncbi-vdb, the following modifications are needed.
11664 (substitute* "setup/konfigure.perl"
11665 ;; Make the configure script look for the "ilib" directory of
11666 ;; "ncbi-vdb" without first checking for the existence of a
11667 ;; matching library in its "lib" directory.
11668 (("^ my \\$f = File::Spec->catdir\\(\\$libdir, \\$lib\\);")
11669 "my $f = File::Spec->catdir($ilibdir, $ilib);")
11670 ;; Look for interface libraries in ncbi-vdb's "ilib" directory.
11671 (("my \\$ilibdir = File::Spec->catdir\\(\\$builddir, 'ilib'\\);")
11672 "my $ilibdir = File::Spec->catdir($dir, 'ilib');"))
11673
11674 ;; Dynamic linking
11675 (substitute* "tools/copycat/Makefile"
11676 (("smagic-static") "lmagic"))
11677 (substitute* "tools/driver-tool/utf8proc/Makefile"
11678 (("CC\\?=gcc") "myCC=gcc")
11679 (("\\(CC\\)") "(myCC)"))
11680
11681 ;; Don't link libxml2 statically
11682 (substitute* "build/ld.linux.exe.sh"
11683 (("grep -q 'OS_DISTRIBUTOR = Ubuntu.*") "true\n"))
11684
11685 ;; The 'configure' script doesn't recognize things like
11686 ;; '--enable-fast-install'.
11687 (invoke "./configure"
11688 (string-append "--build-prefix=" (getcwd) "/build")
11689 (string-append "--prefix=" #$output)
11690 (string-append "--debug")
11691 (string-append "--with-fuse-prefix="
11692 #$(this-package-input "fuse"))
11693 (string-append "--with-magic-prefix="
11694 #$(this-package-input "file"))
11695 (string-append "--with-xml2-prefix="
11696 #$(this-package-input "libxml2"))
11697 (string-append "--with-ncbi-vdb-sources="
11698 #$(this-package-input "ncbi-vdb"))
11699 (string-append "--with-ncbi-vdb-build="
11700 #$(this-package-input "ncbi-vdb"))
11701 (string-append "--with-ngs-sdk-prefix="
11702 #$(this-package-input "ngs-sdk"))
11703 (string-append "--with-hdf5-prefix="
11704 #$(this-package-input "hdf5"))))))))
11705 (native-inputs (list perl))
11706 (inputs
11707 (list ngs-sdk
11708 ncbi-vdb
11709 file
11710 fuse-2
11711 hdf5-1.10
11712 libxml2
11713 zlib
11714 python-wrapper))
11715 (home-page
11716 "https://trace.ncbi.nlm.nih.gov/Traces/sra/sra.cgi?view=software")
11717 (synopsis "Tools and libraries for reading and writing sequencing data")
11718 (description
11719 "The SRA Toolkit from NCBI is a collection of tools and libraries for
11720reading of sequencing files from the Sequence Read Archive (SRA) database and
11721writing files into the .sra format.")
11722 (license license:public-domain)))
11723
11724(define-public seqan
11725 (package
11726 (name "seqan")
11727 (version "3.0.3")
11728 (source (origin
11729 (method url-fetch)
11730 (uri (string-append "https://github.com/seqan/seqan3/releases/"
11731 "download/" version "/seqan3-"
11732 version "-Source.tar.xz"))
11733 (sha256
11734 (base32
11735 "1h2z0cvgidhkmh5xsbw75waqbrqbbv6kkrvb0b92xfh3gqpaiz22"))))
11736 (build-system cmake-build-system)
11737 (arguments
11738 `(#:phases
11739 (modify-phases %standard-phases
11740 (replace 'check
11741 (lambda _
11742 (invoke "ctest" "test" "--output-on-failure"))))))
11743 (native-inputs
11744 (list bzip2 cereal zlib))
11745 (home-page "https://www.seqan.de")
11746 (synopsis "Library for nucleotide sequence analysis")
11747 (description
11748 "SeqAn is a C++ library of efficient algorithms and data structures for
11749the analysis of sequences with the focus on biological data. It contains
11750algorithms and data structures for string representation and their
11751manipulation, online and indexed string search, efficient I/O of
11752bioinformatics file formats, sequence alignment, and more.")
11753 (license license:bsd-3)))
11754
11755(define-public seqan-2
11756 (package
11757 (inherit seqan)
11758 (version "2.4.0")
11759 (source (origin
11760 (method url-fetch)
11761 (uri (string-append "https://github.com/seqan/seqan/releases/"
11762 "download/seqan-v" version
11763 "/seqan-library-" version ".tar.xz"))
11764 (sha256
11765 (base32
11766 "19a1rlxx03qy1i1iriicly68w64yjxbv24g9gdywnfmq998v35yx"))))
11767 ;; The documentation is 7.8MB and the includes are 3.6MB heavy, so it
11768 ;; makes sense to split the outputs.
11769 (outputs '("out" "doc"))
11770 (build-system trivial-build-system)
11771 (arguments
11772 `(#:modules ((guix build utils))
11773 #:builder
11774 ,#~(begin
11775 (use-modules (guix build utils))
11776 (let ((tar #$(this-package-native-input "tar"))
11777 (xz #$(this-package-native-input "xz"))
11778 (out #$output)
11779 (doc #$output:doc))
11780 (setenv "PATH" (string-append tar "/bin:" xz "/bin"))
11781 (invoke "tar" "xvf" #$(this-package-native-input "source"))
11782 (chdir (string-append "seqan-library-" #$version))
11783 (copy-recursively "include" (string-append out "/include"))
11784 (copy-recursively "share" (string-append doc "/share"))))))
11785 (native-inputs
11786 `(("source" ,source)
11787 ("tar" ,tar)
11788 ("xz" ,xz)))))
11789
11790(define-public seqan-1
11791 (package (inherit seqan)
11792 (name "seqan")
11793 (version "1.4.2")
11794 (source (origin
11795 (method url-fetch)
11796 (uri (string-append "https://packages.seqan.de/seqan-library/"
11797 "seqan-library-" version ".tar.bz2"))
11798 (sha256
11799 (base32
11800 "05s3wrrwn50f81aklfm65i4a749zag1vr8z03k21xm0pdxy47yvp"))))
11801 ;; The documentation is 7.8MB and the includes are 3.6MB heavy, so it
11802 ;; makes sense to split the outputs.
11803 (outputs '("out" "doc"))
11804 (build-system trivial-build-system)
11805 (arguments
11806 `(#:modules ((guix build utils))
11807 #:builder
11808 ,#~(begin
11809 (use-modules (guix build utils))
11810 (let ((tar #$(this-package-native-input "tar"))
11811 (bzip #$(this-package-native-input "bzip2"))
11812 (out #$output)
11813 (doc #$output:doc))
11814 (setenv "PATH" (string-append tar "/bin:" bzip "/bin"))
11815 (invoke "tar" "xvf" #$(this-package-native-input "source"))
11816 (chdir (string-append "seqan-library-" #$version))
11817 (copy-recursively "include" (string-append out "/include"))
11818 (copy-recursively "share" (string-append doc "/share"))))))
11819 (native-inputs
11820 `(("source" ,source)
11821 ("tar" ,tar)
11822 ("bzip2" ,bzip2)))))
11823
11824(define-public seqmagick
11825 (let ((commit "dee6ab9839cff317142e55678bb12c4c9ab2150f")
11826 (revision "0"))
11827 (package
11828 (name "seqmagick")
11829 (version (git-version "0.8.6" revision commit))
11830 (source
11831 (origin
11832 (method git-fetch)
11833 (uri (git-reference
11834 (url "https://github.com/fhcrc/seqmagick")
11835 (commit commit)))
11836 (file-name (git-file-name name version))
11837 (sha256
11838 (base32 "0syipb7m44s5bqrhs17bwr28svy2s83j8d93kbazav92jzszzsw4"))))
11839 (build-system pyproject-build-system)
11840 (arguments
11841 (list
11842 #:phases
11843 #~(modify-phases %standard-phases
11844 (add-after 'unpack 'set-version
11845 ;; Alternative of setup.py version check:
11846 ;;
11847 ;; subprocess.call(
11848 ;; ('mkdir -p seqmagick/data && '
11849 ;; 'git describe --tags --dirty > seqmagick/data/ver.tmp '
11850 ;; '&& mv seqmagick/data/ver.tmp seqmagick/data/ver '
11851 ;; '|| rm -f seqmagick/data/ver.tmp'),
11852 ;; shell=True, stderr=open(os.devnull, "w"))
11853 ;;
11854 (lambda _
11855 (mkdir "seqmagick/data")
11856 (with-output-to-file "seqmagick/data/ver"
11857 (lambda _ (display #$version))))))))
11858 (native-inputs
11859 (list python-pynose
11860 python-setuptools))
11861 (inputs (list python-biopython python-pygtrie))
11862 (home-page "https://github.com/fhcrc/seqmagick")
11863 (synopsis "Tools for converting and modifying sequence files")
11864 (description
11865 "Bioinformaticians often have to convert sequence files between formats
11866and do little manipulations on them, and it's not worth writing scripts for
11867that. Seqmagick is a utility to expose the file format conversion in
11868BioPython in a convenient way. Instead of having a big mess of scripts, there
11869is one that takes arguments.")
11870 (license license:gpl3))))
11871
11872(define-public seqtk
11873 (package
11874 (name "seqtk")
11875 (version "1.3")
11876 (source (origin
11877 (method git-fetch)
11878 (uri (git-reference
11879 (url "https://github.com/lh3/seqtk")
11880 (commit (string-append "v" version))))
11881 (file-name (git-file-name name version))
11882 (sha256
11883 (base32
11884 "1bfzlqa84b5s1qi22blmmw2s8xdyp9h9ydcq22pfjhh5gab3yz6l"))))
11885 (build-system gnu-build-system)
11886 (arguments
11887 `(#:phases
11888 (modify-phases %standard-phases
11889 (delete 'configure)
11890 (replace 'check
11891 ;; There are no tests, so we just run a sanity check.
11892 (lambda _ (invoke "./seqtk" "seq") #t))
11893 (replace 'install
11894 (lambda* (#:key outputs #:allow-other-keys)
11895 (let ((bin (string-append (assoc-ref outputs "out") "/bin/")))
11896 (install-file "seqtk" bin)
11897 #t))))))
11898 (inputs
11899 (list zlib))
11900 (home-page "https://github.com/lh3/seqtk")
11901 (synopsis "Toolkit for processing biological sequences in FASTA/Q format")
11902 (description
11903 "Seqtk is a fast and lightweight tool for processing sequences in the
11904FASTA or FASTQ format. It parses both FASTA and FASTQ files which can be
11905optionally compressed by gzip.")
11906 (license license:expat)))
11907
11908(define-public snap-aligner
11909 (package
11910 (name "snap-aligner")
11911 (version "2.0.0")
11912 (source (origin
11913 (method git-fetch)
11914 (uri (git-reference
11915 (url "https://github.com/amplab/snap")
11916 (commit (string-append "v" version))))
11917 (file-name (git-file-name name version))
11918 (sha256
11919 (base32
11920 "0yag3jcazdqfxgmw0vbi91i98kj9sr0aqx83qqj6m5b45wxs7jms"))))
11921 (build-system gnu-build-system)
11922 (arguments
11923 '(#:phases
11924 (modify-phases %standard-phases
11925 (delete 'configure)
11926 (replace 'check
11927 (lambda* (#:key tests? #:allow-other-keys)
11928 (when tests? (invoke "./unit_tests"))))
11929 (replace 'install
11930 (lambda* (#:key outputs #:allow-other-keys)
11931 (let* ((out (assoc-ref outputs "out"))
11932 (bin (string-append out "/bin")))
11933 (install-file "snap-aligner" bin)
11934 (install-file "SNAPCommand" bin)))))))
11935 (native-inputs
11936 (list zlib))
11937 (home-page "https://snap.cs.berkeley.edu/")
11938 (synopsis "Short read DNA sequence aligner")
11939 (description
11940 "SNAP is a fast and accurate aligner for short DNA reads. It is
11941optimized for modern read lengths of 100 bases or higher, and takes advantage
11942of these reads to align data quickly through a hash-based indexing scheme.")
11943 ;; 32-bit systems are not supported by the unpatched code.
11944 ;; Following the bug reports https://github.com/amplab/snap/issues/68 and
11945 ;; https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=812378 we see that
11946 ;; systems without a lot of memory cannot make good use of this program.
11947 (supported-systems '("x86_64-linux"))
11948 (license license:asl2.0)))
11949
11950(define-public sortmerna
11951 (package
11952 (name "sortmerna")
11953 (version "4.3.7")
11954 (source
11955 (origin
11956 (method git-fetch)
11957 (uri (git-reference
11958 (url "https://github.com/biocore/sortmerna")
11959 (commit (string-append "v" version))))
11960 (file-name (git-file-name name version))
11961 (sha256
11962 (base32
11963 "14p3zi6ysnrs2l33r5mc0fr0la2jnnxmqdcif02fppln8w31j753"))))
11964 (build-system cmake-build-system)
11965 (outputs '("out" ;for binaries
11966 "db")) ;for sequence databases
11967 (arguments
11968 (list
11969 #:tests? #false ;unclear how to run them
11970 #:configure-flags
11971 #~(list "-DWITH_TESTS=ON"
11972 "-DCMAKE_CXX_FLAGS=-pthread"
11973 "-DZLIB_STATIC=OFF"
11974 "-DROCKSDB_STATIC=OFF"
11975 "-DPORTABLE=OFF" ;do not use static linking
11976 (string-append "-DROCKSDB_HOME="
11977 #$(this-package-input "rocksdb"))
11978 (string-append "-DRAPIDJSON_HOME="
11979 #$(this-package-input "rapidjson"))
11980 (string-append "-DRapidJson_DIR="
11981 #$(this-package-input "rapidjson")
11982 "/lib/cmake/RapidJSON")
11983 (string-append "-DRapidJSON_INCLUDE_DIR="
11984 #$(this-package-input "rapidjson")
11985 "/include"))
11986 #:phases
11987 '(modify-phases %standard-phases
11988 (add-after 'unpack 'fix-includes
11989 (lambda _
11990 (substitute* "src/sortmerna/kseq_load.cpp"
11991 (("#include <iostream>" all)
11992 (string-append all "\n#include <cstdint>")))))
11993 (add-after 'unpack 'find-concurrentqueue-headers
11994 (lambda* (#:key inputs #:allow-other-keys)
11995 ;; Ensure that headers can be found
11996 (setenv "CPLUS_INCLUDE_PATH"
11997 (string-append (search-input-directory
11998 inputs "/include/concurrentqueue")
11999 ":"
12000 (or (getenv "CPLUS_INCLUDE_PATH") "")))))
12001 (replace 'install
12002 (lambda* (#:key outputs #:allow-other-keys)
12003 (let* ((out (assoc-ref outputs "out"))
12004 (bin (string-append out "/bin"))
12005 (db (assoc-ref outputs "db"))
12006 (share
12007 (string-append db "/share/sortmerna/rRNA_databases")))
12008 (install-file "src/sortmerna/sortmerna" bin)
12009 (for-each (lambda (file)
12010 (install-file file share))
12011 (find-files "../source/data/rRNA_databases" ".*fasta"))))))))
12012 (inputs
12013 (list concurrentqueue
12014 gflags ; because of rocksdb
12015 rapidjson rocksdb zlib))
12016 (native-inputs
12017 (list pkg-config))
12018 (home-page "https://bioinfo.lifl.fr/RNA/sortmerna/")
12019 (synopsis "Biological sequence analysis tool for NGS reads")
12020 (description
12021 "SortMeRNA is a biological sequence analysis tool for filtering, mapping
12022and @acronym{OTU, operational taxonomic unit} picking of @acronym{NGS, next
12023generation sequencing} reads. The core algorithm is based on approximate seeds
12024and allows for fast and sensitive analyses of nucleotide sequences. The main
12025application of SortMeRNA is filtering rRNA from metatranscriptomic data.")
12026 ;; The source includes x86 specific code
12027 (supported-systems '("x86_64-linux" "i686-linux"))
12028 (license license:lgpl3)))
12029
12030(define-public star
12031 (package
12032 (name "star")
12033 (version "2.7.8a")
12034 (source (origin
12035 (method git-fetch)
12036 (uri (git-reference
12037 (url "https://github.com/alexdobin/STAR")
12038 (commit version)))
12039 (file-name (git-file-name name version))
12040 (sha256
12041 (base32
12042 "0zc5biymja9zml9yizcj1h68fq9c6sxfcav8a0lbgvgsm44rvans"))
12043 (modules '((guix build utils)))
12044 (snippet
12045 '(begin
12046 (substitute* "source/Makefile"
12047 (("/bin/rm") "rm"))
12048 ;; Remove pre-built binaries and bundled htslib sources.
12049 (delete-file-recursively "bin/MacOSX_x86_64")
12050 (delete-file-recursively "bin/Linux_x86_64")
12051 (delete-file-recursively "bin/Linux_x86_64_static")
12052 (delete-file-recursively "source/htslib")
12053 #t))))
12054 (build-system gnu-build-system)
12055 (arguments
12056 '(#:tests? #f ;no check target
12057 #:make-flags '("STAR")
12058 #:phases
12059 (modify-phases %standard-phases
12060 (add-after 'unpack 'enter-source-dir
12061 (lambda _ (chdir "source") #t))
12062 (add-after 'enter-source-dir 'make-reproducible
12063 (lambda _
12064 (substitute* "Makefile"
12065 (("(COMPILATION_TIME_PLACE=\")(.*)(\")" _ pre mid post)
12066 (string-append pre "Built with Guix" post)))
12067 #t))
12068 ;; See https://github.com/alexdobin/STAR/pull/562
12069 (add-after 'enter-source-dir 'add-missing-header
12070 (lambda _
12071 (substitute* "SoloReadFeature_inputRecords.cpp"
12072 (("#include \"binarySearch2.h\"" h)
12073 (string-append h "\n#include <math.h>")))
12074 #t))
12075 (add-after 'enter-source-dir 'do-not-use-bundled-htslib
12076 (lambda _
12077 (substitute* "Makefile"
12078 (("(Depend.list: \\$\\(SOURCES\\) parametersDefault\\.xxd) htslib"
12079 _ prefix) prefix))
12080 (substitute* '("BAMfunctions.cpp"
12081 "signalFromBAM.h"
12082 "bam_cat.h"
12083 "bam_cat.c"
12084 "STAR.cpp"
12085 "bamRemoveDuplicates.cpp")
12086 (("#include \"htslib/([^\"]+\\.h)\"" _ header)
12087 (string-append "#include <" header ">")))
12088 (substitute* "IncludeDefine.h"
12089 (("\"htslib/(htslib/[^\"]+.h)\"" _ header)
12090 (string-append "<" header ">")))
12091 #t))
12092 (replace 'install
12093 (lambda* (#:key outputs #:allow-other-keys)
12094 (let ((bin (string-append (assoc-ref outputs "out") "/bin/")))
12095 (install-file "STAR" bin))
12096 #t))
12097 (delete 'configure))))
12098 (native-inputs
12099 (list xxd))
12100 (inputs
12101 (list htslib zlib))
12102 (home-page "https://github.com/alexdobin/STAR")
12103 (synopsis "Universal RNA-seq aligner")
12104 (description
12105 "The Spliced Transcripts Alignment to a Reference (STAR) software is
12106based on a previously undescribed RNA-seq alignment algorithm that uses
12107sequential maximum mappable seed search in uncompressed suffix arrays followed
12108by seed clustering and stitching procedure. In addition to unbiased de novo
12109detection of canonical junctions, STAR can discover non-canonical splices and
12110chimeric (fusion) transcripts, and is also capable of mapping full-length RNA
12111sequences.")
12112 ;; Only 64-bit systems are supported according to the README.
12113 (supported-systems '("x86_64-linux" "mips64el-linux"))
12114 ;; STAR is licensed under GPLv3 or later; htslib is MIT-licensed.
12115 (license license:gpl3+)))
12116
12117(define-public star-for-pigx
12118 (package
12119 (inherit star)
12120 (name "star")
12121 (version "2.7.3a")
12122 (source (origin
12123 (method git-fetch)
12124 (uri (git-reference
12125 (url "https://github.com/alexdobin/STAR")
12126 (commit version)))
12127 (file-name (git-file-name name version))
12128 (sha256
12129 (base32
12130 "1hgiqw5qhs0pc1xazzihcfd92na02xyq2kb469z04y1v51kpvvjq"))
12131 (modules '((guix build utils)))
12132 (snippet
12133 '(begin
12134 (substitute* "source/Makefile"
12135 (("/bin/rm") "rm"))
12136 ;; Remove pre-built binaries and bundled htslib sources.
12137 (delete-file-recursively "bin/MacOSX_x86_64")
12138 (delete-file-recursively "bin/Linux_x86_64")
12139 (delete-file-recursively "bin/Linux_x86_64_static")
12140 (delete-file-recursively "source/htslib")
12141 #t))))))
12142
12143(define-public starlong
12144 (package (inherit star)
12145 (name "starlong")
12146 (arguments
12147 (substitute-keyword-arguments arguments
12148 ((#:make-flags flags)
12149 `(list "STARlong"))
12150 ((#:phases phases)
12151 `(modify-phases ,phases
12152 ;; Allow extra long sequence reads.
12153 (add-after 'unpack 'make-extra-long
12154 (lambda _
12155 (substitute* "source/IncludeDefine.h"
12156 (("(#define DEF_readNameLengthMax ).*" _ match)
12157 (string-append match "900000\n")))
12158 #t))
12159 (replace 'install
12160 (lambda* (#:key outputs #:allow-other-keys)
12161 (let ((bin (string-append (assoc-ref outputs "out") "/bin/")))
12162 (install-file "STARlong" bin))
12163 #t))))))))
12164
12165(define-public subread
12166 (package
12167 (name "subread")
12168 (version "2.1.1")
12169 (source (origin
12170 (method url-fetch)
12171 (uri (string-append "mirror://sourceforge/subread/subread-"
12172 version "/subread-" version "-source.tar.gz"))
12173 (sha256
12174 (base32
12175 "1ahyn0dgz1aymmqrdfnhismny6x5g4m8jlc2wmkxgk9id33dg4k3"))))
12176 (build-system gnu-build-system)
12177 (arguments
12178 `(#:tests? #f ;no "check" target
12179 ;; The CC and CCFLAGS variables are set to contain a lot of x86_64
12180 ;; optimizations by default, so we override these flags such that x86_64
12181 ;; flags are only added when the build target is an x86_64 system.
12182 #:make-flags
12183 (list (let ((system ,(or (%current-target-system)
12184 (%current-system)))
12185 (flags '("-ggdb" "-fomit-frame-pointer"
12186 "-ffast-math" "-funroll-loops"
12187 "-fmessage-length=0" "-fcommon"
12188 "-O9" "-Wall" "-DMAKE_FOR_EXON"
12189 "-DMAKE_STANDALONE"
12190 "-DSUBREAD_VERSION=\\\"${SUBREAD_VERSION}\\\""))
12191 (flags64 '("-mmmx" "-msse" "-msse2" "-msse3")))
12192 (if (string-prefix? "x86_64" system)
12193 (string-append "CCFLAGS=" (string-join (append flags flags64)))
12194 (string-append "CCFLAGS=" (string-join flags))))
12195 "-f" "Makefile.Linux"
12196 "CC=gcc ${CCFLAGS}")
12197 #:phases
12198 (modify-phases %standard-phases
12199 (add-after 'unpack 'enter-dir
12200 (lambda _ (chdir "src")))
12201 (replace 'install
12202 (lambda* (#:key outputs #:allow-other-keys)
12203 (let ((bin (string-append (assoc-ref outputs "out") "/bin/")))
12204 (mkdir-p bin)
12205 (copy-recursively "../bin" bin))))
12206 ;; no "configure" script
12207 (delete 'configure))))
12208 (inputs (list zlib))
12209 (home-page "https://subread.sourceforge.net/")
12210 (synopsis "Tool kit for processing next-gen sequencing data")
12211 (description
12212 "The subread package contains the following tools: subread aligner, a
12213general-purpose read aligner; subjunc aligner: detecting exon-exon junctions
12214and mapping RNA-seq reads; featureCounts: counting mapped reads for genomic
12215features; exactSNP: a SNP caller that discovers SNPs by testing signals
12216against local background noises.")
12217 (license license:gpl3+)))
12218
12219(define-public stringtie
12220 (package
12221 (name "stringtie")
12222 (version "3.0.2")
12223 (source (origin
12224 (method url-fetch)
12225 (uri (string-append "http://ccb.jhu.edu/software/stringtie/dl/"
12226 "stringtie-" version ".tar.gz"))
12227 (sha256
12228 (base32
12229 "1mrqcvnhxbidyhf521naywb5ci579160ydqnl5kb4hqjqvm01mn2"))
12230 ;; This package bundles an annoying amount of third party source
12231 ;; code.
12232 (modules '((guix build utils)))
12233 (snippet
12234 '(delete-file-recursively "htslib"))))
12235 (build-system gnu-build-system)
12236 (arguments
12237 `(#:tests? #f ;no test suite
12238 #:make-flags '("LIBDEFLATE=-ldeflate"
12239 "LIBBZ2=-lbz2"
12240 "LIBLZMA=-llzma")
12241 #:phases
12242 (modify-phases %standard-phases
12243 ;; no configure script
12244 (delete 'configure)
12245 (add-before 'build 'use-system-samtools
12246 (lambda _
12247 (substitute* "Makefile"
12248 ((" -lm") " -lm -lhts")
12249 ((" \\$\\{HTSLIB\\}/libhts\\.a") " "))))
12250 (replace 'install
12251 (lambda* (#:key outputs #:allow-other-keys)
12252 (let ((bin (string-append (assoc-ref outputs "out") "/bin/")))
12253 (install-file "stringtie" bin)))))))
12254 (inputs
12255 (list bzip2 htslib libdeflate zlib))
12256 (home-page "https://ccb.jhu.edu/software/stringtie/")
12257 (synopsis "Transcript assembly and quantification for RNA-Seq data")
12258 (description
12259 "StringTie is a fast and efficient assembler of RNA-Seq sequence
12260alignments into potential transcripts. It uses a novel network flow algorithm
12261as well as an optional de novo assembly step to assemble and quantitate
12262full-length transcripts representing multiple splice variants for each gene
12263locus. Its input can include not only the alignments of raw reads used by
12264other transcript assemblers, but also alignments of longer sequences that have
12265been assembled from those reads. To identify differentially expressed genes
12266between experiments, StringTie's output can be processed either by the
12267Cuffdiff or Ballgown programs.")
12268 (license license:expat)))
12269
12270(define-public taxtastic
12271 (package
12272 (name "taxtastic")
12273 (version "0.11.1")
12274 (source (origin
12275 ;; The Pypi version does not include tests.
12276 (method git-fetch)
12277 (uri (git-reference
12278 (url "https://github.com/fhcrc/taxtastic")
12279 (commit (string-append "v" version))))
12280 (file-name (git-file-name name version))
12281 (sha256
12282 (base32
12283 "18h3vlyx9qp7xymd8ra6jn5h0vzlpzgcd75kslqyv2qcg1a7scc4"))))
12284 (build-system pyproject-build-system)
12285 (arguments
12286 (list
12287 #:test-flags #~(list "-k" "not test_new_nodes02")
12288 #:phases
12289 #~(modify-phases %standard-phases
12290 (add-after 'unpack 'prepare-directory
12291 (lambda _
12292 ;; This package is unknown to pypi.
12293 (substitute* '("requirements.txt" "setup.py")
12294 ((".*psycopg-binary.*") ""))
12295 ;; This test fails, but the error is not caught by the test
12296 ;; framework, so the tests fail...
12297 (substitute* "tests/test_taxit.py"
12298 (("self.cmd_fails\\(''\\)")
12299 "self.cmd_fails('nothing')"))
12300 ;; This version file is expected to be created with git describe.
12301 (mkdir-p "taxtastic/data")
12302 (with-output-to-file "taxtastic/data/ver"
12303 (lambda () (display #$version))))))))
12304 (native-inputs
12305 (list python-pytest python-setuptools))
12306 (propagated-inputs
12307 (list python-biopython
12308 python-decorator
12309 python-dendropy
12310 python-fastalite
12311 python-jinja2
12312 python-pandas
12313 python-psycopg
12314 python-psycopg2-binary
12315 python-pyyaml
12316 python-sqlalchemy-2
12317 python-sqlparse))
12318 (home-page "https://github.com/fhcrc/taxtastic")
12319 (synopsis "Tools for taxonomic naming and annotation")
12320 (description
12321 "Taxtastic is software written in python used to build and maintain
12322reference packages i.e. collections of reference trees, reference alignments,
12323profiles, and associated taxonomic information.")
12324 (license license:gpl3+)))
12325
12326(define-public vcftools
12327 (package
12328 (name "vcftools")
12329 (version "0.1.16")
12330 (source (origin
12331 (method url-fetch)
12332 (uri (string-append
12333 "https://github.com/vcftools/vcftools/releases/download/v"
12334 version "/vcftools-" version ".tar.gz"))
12335 (sha256
12336 (base32
12337 "1qqlx7flfv7axrjwkaz6njkscsl1d0jw98ns8d8bh1n1hd1pgz6v"))))
12338 (build-system gnu-build-system)
12339 (arguments
12340 `(#:tests? #f ; no "check" target
12341 #:make-flags
12342 ,#~(list
12343 "CFLAGS=-O2" ; override "-m64" flag
12344 (string-append "PREFIX=" #$output)
12345 (string-append "MANDIR=" #$output "/share/man/man1"))))
12346 (native-inputs
12347 (list pkg-config))
12348 (inputs
12349 (list perl zlib))
12350 (home-page "https://vcftools.github.io/")
12351 (synopsis "Tools for working with VCF files")
12352 (description
12353 "VCFtools is a program package designed for working with VCF files, such
12354as those generated by the 1000 Genomes Project. The aim of VCFtools is to
12355provide easily accessible methods for working with complex genetic variation
12356data in the form of VCF files.")
12357 ;; The license is declared as LGPLv3 in the README and
12358 ;; at https://vcftools.github.io/license.html
12359 (license license:lgpl3)))
12360
12361(define-public infernal
12362 (package
12363 (name "infernal")
12364 (version "1.1.4")
12365 (source (origin
12366 (method url-fetch)
12367 (uri (string-append "http://eddylab.org/software/infernal/"
12368 "infernal-" version ".tar.gz"))
12369 (sha256
12370 (base32
12371 "1z4mgwqg1j4n5ika08ai8mg9yjyjhf4821jp83v2bgwzxrykqjgr"))))
12372 (build-system gnu-build-system)
12373 (native-inputs
12374 (list perl python)) ; for tests
12375 (home-page "http://eddylab.org/infernal/")
12376 (synopsis "Inference of RNA alignments")
12377 (description "Infernal (\"INFERence of RNA ALignment\") is a tool for
12378searching DNA sequence databases for RNA structure and sequence similarities.
12379It is an implementation of a special case of profile stochastic context-free
12380grammars called @dfn{covariance models} (CMs). A CM is like a sequence
12381profile, but it scores a combination of sequence consensus and RNA secondary
12382structure consensus, so in many cases, it is more capable of identifying RNA
12383homologs that conserve their secondary structure more than their primary
12384sequence.")
12385 ;; Infernal 1.1.3 requires VMX or SSE capability for parallel instructions.
12386 (supported-systems '("i686-linux" "x86_64-linux"))
12387 (license license:bsd-3)))
12388
12389(define-public r-genenmf
12390 (let ((commit "7ac475261123232d3e691ef851936e05055becd4")
12391 (revision "1"))
12392 (package
12393 (name "r-genenmf")
12394 (version (git-version "0.9.2" revision commit))
12395 (source
12396 (origin
12397 (method git-fetch)
12398 (uri (git-reference
12399 (url "https://github.com/carmonalab/GeneNMF")
12400 (commit commit)))
12401 (file-name (git-file-name name version))
12402 (sha256
12403 (base32 "0kv419nyyddpj2j2dvhxhwk5m26p39f3jc2r7rz98j86x6hgwgpl"))))
12404 (properties `((upstream-name . "GeneNMF")))
12405 (build-system r-build-system)
12406 (propagated-inputs (list r-cluster
12407 r-colorspace
12408 r-dendextend
12409 r-irlba
12410 r-lsa
12411 r-matrix
12412 r-pheatmap
12413 r-rcppml
12414 r-seurat
12415 r-viridis))
12416 (native-inputs (list r-knitr))
12417 (home-page "https://github.com/carmonalab/GeneNMF")
12418 (synopsis "Non-Negative matrix factorization for single-cell omics")
12419 (description
12420 "This package provides a collection of methods to extract gene programs
12421from single-cell gene expression data using @dfn{non-negative matrix
12422factorization} (NMF). @code{GeneNMF} contains functions to directly interact
12423with the Seurat toolkit and derive interpretable gene program signatures.")
12424 (license license:gpl3))))
12425
12426(define-public r-ggexpress
12427 (let ((commit "82f169385f87af328ff971195c2f64ff3c573a8a")
12428 (revision "1"))
12429 (package
12430 (name "r-ggexpress")
12431 (version (git-version "0.6.6" revision commit))
12432 (source (origin
12433 (method git-fetch)
12434 (uri (git-reference
12435 (url "https://github.com/vertesy/ggExpress")
12436 (commit commit)))
12437 (file-name (git-file-name name version))
12438 (sha256
12439 (base32
12440 "122hnw8xv33ngcd4fd7hmf817a06ih1knrxxi0cgklj1fwinm0z4"))))
12441 (properties `((upstream-name . "ggExpress")))
12442 (build-system r-build-system)
12443 (propagated-inputs (list r-cowplot
12444 r-ggplot2
12445 r-ggpubr
12446 r-markdownhelpers
12447 r-markdownreports
12448 r-rcolorbrewer
12449 r-sessioninfo
12450 r-seurat
12451 r-sm
12452 r-stringendo
12453 r-tidyverse))
12454 (home-page "https://github.com/vertesy/ggExpress")
12455 (synopsis
12456 "This is a fast tool to create, annotate and export plots in R")
12457 (description
12458 "This package is a set of R functions for generating precise figures.
12459This tool helps you to create clean markdown reports about what you just
12460discovered with your analysis script.")
12461 (license license:gpl3))))
12462
12463(define-public r-gg3d
12464 (let ((commit "ffdd837d30c1671cd0895db94bdd7b1594dbfcb0")
12465 (revision "1"))
12466 (package
12467 (name "r-gg3d")
12468 (version (git-version "0.0.0.9000" revision commit))
12469 (source (origin
12470 (method git-fetch)
12471 (uri (git-reference
12472 (url "https://github.com/AckerDWM/gg3D")
12473 (commit commit)))
12474 (file-name (git-file-name name version))
12475 (sha256
12476 (base32
12477 "0vz5laj5vz9m1jzb7h7q9f37zjmxwhylhaidlsg61r57wpxvjr3p"))))
12478 (properties `((upstream-name . "gg3D")))
12479 (build-system r-build-system)
12480 (propagated-inputs
12481 (list r-dplyr
12482 r-ggplot2
12483 r-magrittr
12484 r-plot3d
12485 r-plyr
12486 r-scales))
12487 (native-inputs (list r-knitr))
12488 (home-page "https://github.com/AckerDWM/gg3D")
12489 (synopsis "3D perspective plots for ggplot2")
12490 (description
12491 "This package adds 3D perspective plotting of points, paths, and line,
124923D perspective axes, 3D perspective annotations, and wireframe plots.")
12493 (license license:gpl3+))))
12494
12495(define-public r-ggsankey
12496 (let ((commit "be08dd0f86eaee9f9ff9e7ff95d47930660a3c36")
12497 (revision "1"))
12498 (package
12499 (name "r-ggsankey")
12500 (version (git-version "0.0.99999" revision commit))
12501 (source (origin
12502 (method git-fetch)
12503 (uri (git-reference
12504 (url "https://github.com/davidsjoberg/ggsankey")
12505 (commit commit)))
12506 (file-name (git-file-name name version))
12507 (sha256
12508 (base32
12509 "0acpmydqqc91pq5p9wpkpmgqp3nhiljabd7d3i00kwhjxgm2bvba"))))
12510 (properties `((upstream-name . "ggsankey")))
12511 (build-system r-build-system)
12512 (propagated-inputs (list r-dplyr
12513 r-ggplot2
12514 r-magrittr
12515 r-purrr
12516 r-stringr
12517 r-tidyr))
12518 (native-inputs (list r-testthat))
12519 (home-page "https://github.com/davidsjoberg/ggsankey")
12520 (synopsis "Sankey, Alluvial and Sankey bump plots")
12521 (description
12522 "This package provides a package that makes it easy to implement
12523sankey, alluvial and sankey bump plots in @code{ggplot2}.")
12524 (license license:expat))))
12525
12526(define-public r-gutils
12527 (let ((commit "fc24db6f73898c3c25e400e7d627e3e5229003f2")
12528 (revision "2"))
12529 (package
12530 (name "r-gutils")
12531 (version (git-version "0.2.0" revision commit))
12532 (source (origin
12533 (method git-fetch)
12534 (uri (git-reference
12535 (url "https://github.com/mskilab/gUtils")
12536 (commit commit)))
12537 (file-name (git-file-name name version))
12538 (sha256
12539 (base32
12540 "11ijzy1zyjv2wgxrfcaan7g82jl27skd41hw4s2xh9lijkn8ilwh"))))
12541 (properties `((upstream-name . "gUtils")))
12542 (build-system r-build-system)
12543 (arguments
12544 (list
12545 #:phases
12546 '(modify-phases %standard-phases
12547 ;; These deprecated procedures have been removed in testthat.
12548 (add-after 'unpack 'testthat-compatibility
12549 (lambda _
12550 (substitute* "tests/testthat/test_rangeops.R"
12551 (("is_true\\(\\)") "expect_true")))))))
12552 (propagated-inputs
12553 (list r-biocgenerics
12554 r-data-table
12555 r-genomeinfodb
12556 r-genomicranges
12557 r-iranges
12558 r-matrix
12559 r-s4vectors
12560 r-stringr))
12561 (native-inputs (list r-testthat r-xvector))
12562 (home-page "https://github.com/mskilab/gUtils")
12563 (synopsis "Additional capabilities and speed for GenomicRanges operations")
12564 (description
12565 "This is an R package providing additional capabilities and speed for
12566@code{GenomicRanges} operations.")
12567 (license license:gpl2))))
12568
12569(define-public r-bamutils
12570 (let ((commit "0a7d2d90cc720aac3fe44f964abf294f1b827f32")
12571 (revision "2"))
12572 (package
12573 (name "r-bamutils")
12574 (version (git-version "0.0.0.9000" revision commit))
12575 (source (origin
12576 (method git-fetch)
12577 (uri (git-reference
12578 (url "https://github.com/mskilab/bamutils/")
12579 (commit commit)))
12580 (file-name (git-file-name name version))
12581 (sha256
12582 (base32
12583 "1r3y8775y2j9w92pdp42iaif7nbh260xljrhaswkz6lp71phf1yw"))))
12584 (properties `((upstream-name . "bamUtils")))
12585 (build-system r-build-system)
12586 ;; See https://github.com/mskilab-org/bamUtils/issues/12
12587 (arguments (list #:tests? #false))
12588 (propagated-inputs
12589 (list r-abind
12590 r-biocgenerics
12591 r-data-table
12592 r-genomicalignments
12593 r-genomicranges
12594 r-gutils
12595 r-rsamtools
12596 r-variantannotation))
12597 (native-inputs (list r-testthat samtools))
12598 (home-page "https://github.com/mskilab/bamutils/")
12599 (synopsis "Utility functions for manipulating BAMs")
12600 (description "This package provides utility functions for manipulating
12601BAM files.")
12602 (license license:gpl2))))
12603
12604(define-public r-gtrack
12605 (let ((commit "a694fa36cedafca2658da79fc8e5b673535b15e5")
12606 (revision "1"))
12607 (package
12608 (name "r-gtrack")
12609 (version (git-version "0.1.0" revision commit))
12610 (source (origin
12611 (method git-fetch)
12612 (uri (git-reference
12613 (url "https://github.com/mskilab/gTrack/")
12614 (commit commit)))
12615 (file-name (git-file-name name version))
12616 (sha256
12617 (base32
12618 "070qlrbqsbj9max2vx740zigqh0ymvnw2pm1ia5la3wb4dbfwh2b"))))
12619 (properties `((upstream-name . "gTrack")))
12620 (build-system r-build-system)
12621 (propagated-inputs
12622 (list r-biocgenerics
12623 r-data-table
12624 r-genomeinfodb
12625 r-genomicranges
12626 r-gutils
12627 r-iranges
12628 r-matrix
12629 r-rcolorbrewer
12630 r-rcpp
12631 r-rcurl
12632 r-rtracklayer
12633 r-s4vectors))
12634 (native-inputs (list r-testthat))
12635 (home-page "https://github.com/mskilab/gTrack/")
12636 (synopsis "Plot tracks of complex genomic data across multiple genomic windows")
12637 (description
12638 "This package provides an object for plotting GRanges, RleList, UCSC
12639file formats, and ffTrack objects in multi-track panels.")
12640 (license license:gpl2))))
12641
12642(define-public r-gchain
12643 (let ((commit "19f8bb924fdadca136b9827b8538574b278e86a1")
12644 (revision "2"))
12645 (package
12646 (name "r-gchain")
12647 (version (git-version "0.2.0" revision commit))
12648 (source (origin
12649 (method git-fetch)
12650 (uri (git-reference
12651 (url "https://github.com/mskilab/gChain/")
12652 (commit commit)))
12653 (file-name (git-file-name name version))
12654 (sha256
12655 (base32
12656 "0cg7cy97g2w2dcd980jz5fawjjrfl590hdx3rsblavcdlnzcs3x4"))))
12657 (properties `((upstream-name . "gChain")))
12658 (build-system r-build-system)
12659 (arguments
12660 (list
12661 #:phases
12662 '(modify-phases %standard-phases
12663 (add-after 'unpack 'biostrings-compatibility
12664 (lambda _
12665 (substitute* "R/gChain.R"
12666 ((" pairwiseAlignment") " pwalign::pairwiseAlignment")
12667 (("alignedPattern") "pwalign::alignedPattern")
12668 (("deletion\\(") "pwalign::deletion(")
12669 (("insertion\\(") "pwalign::insertion(")
12670 (("Biostrings::pattern") "pwalign::pattern"))))
12671 (add-after 'unpack 'skip-bad-tests
12672 (lambda _
12673 (substitute* "tests/testthat/test_gChain.R"
12674 ;; C stack usage 7973568 is too close to the limit
12675 ((".*'testing lift\\(\\) works'.*" m)
12676 (string-append m "skip('guix')"))
12677 ;; C stack usage 7973568 is too close to the limit
12678 ((".*'testing \"\\*\" works'.*" m)
12679 (string-append m "skip('guix')"))))))))
12680 (propagated-inputs
12681 (list r-bamutils
12682 r-biostrings
12683 r-data-table
12684 r-genomicalignments
12685 r-genomicranges
12686 r-gtrack
12687 r-gutils
12688 r-matrix
12689 r-rtracklayer))
12690 (native-inputs (list r-pwalign r-testthat))
12691 (home-page "https://github.com/mskilab/gChain/")
12692 (synopsis "Additional capabilities and speed for GenomicRanges operations")
12693 (description
12694 "This R package provides additional capabilities and speed for
12695GenomicRanges operations.")
12696 (license license:gpl2))))
12697
12698(define-public r-skitools
12699 (let ((commit "ba322dcc2c0ca24a7f3dabecfb37f95e0e2186d1")
12700 (revision "2"))
12701 (package
12702 (name "r-skitools")
12703 (version (git-version "0.0.0.9000" revision commit))
12704 (source (origin
12705 (method git-fetch)
12706 (uri (git-reference
12707 (url "https://github.com/mskilab/skitools/")
12708 (commit commit)))
12709 (file-name (git-file-name name version))
12710 (sha256
12711 (base32
12712 "1za371x1cmkmlmicbhzxwycg7g1z9q3d5j7ia2rzayf30s9rcc47"))))
12713 (properties `((upstream-name . "skitools")))
12714 (build-system r-build-system)
12715 (arguments
12716 (list
12717 #:phases
12718 '(modify-phases %standard-phases
12719 (add-after 'unpack 'disable-bad-test
12720 (lambda _
12721 ;; See https://github.com/mskilab-org/skitools/issues/11
12722 (substitute* "tests/testthat/test_skitools.R"
12723 ((".*test ra.merge.*" m)
12724 (string-append m "skip('guix')\n"))))))))
12725 (propagated-inputs
12726 (list r-biostrings
12727 r-complexheatmap
12728 r-data-table
12729 r-devtools
12730 r-dt
12731 r-gchain
12732 r-genomeinfodb
12733 r-genomicranges
12734 r-ggplot2
12735 r-gplots
12736 r-gutils
12737 r-htmlwidgets
12738 r-hwriter
12739 r-igraph
12740 r-iranges
12741 r-plotly
12742 r-rcolorbrewer
12743 r-reshape2
12744 r-s4vectors
12745 r-stringr
12746 r-variantannotation))
12747 (native-inputs (list r-bsgenome-hsapiens-ucsc-hg19))
12748 (home-page "https://github.com/mskilab/skitools/")
12749 (synopsis "Various mskilab R utilities")
12750 (description
12751 "This package provides R miscellaneous utilities for basic data
12752manipulation, debugging, visualization, lsf management, and common mskilab
12753tasks.")
12754 (license license:expat))))
12755
12756(define-public r-chromunity
12757 (let ((commit "101e30aafef23b4d8a4fba40375bf7d13a7c0b11")
12758 (revision "2"))
12759 (package
12760 (name "r-chromunity")
12761 (version (git-version "0.0.2" revision commit))
12762 (source (origin
12763 (method git-fetch)
12764 (uri (git-reference
12765 (url "https://github.com/mskilab/chromunity")
12766 (commit commit)))
12767 (file-name (git-file-name name version))
12768 (sha256
12769 (base32
12770 "1fq6l9xn6zl1nqr6ny2575r3iqmhf8dgsd7rxaglm6a7fy3r8zx7"))))
12771 (properties `((upstream-name . "chromunity")))
12772 (build-system r-build-system)
12773 (arguments
12774 (list
12775 #:phases
12776 '(modify-phases %standard-phases
12777 (add-after 'unpack 'disable-bad-tests
12778 (lambda _
12779 ;; This test operates on a NULL object.
12780 (substitute* "tests/testthat/test_chromunity.R"
12781 ((".*synergy.*" m)
12782 (string-append m "skip('guix')\n"))))))))
12783 (propagated-inputs
12784 (list r-arrow
12785 r-biocgenerics
12786 r-bsgenome-hsapiens-ucsc-hg38
12787 r-data-table
12788 r-gchain
12789 r-genomicranges
12790 r-gutils
12791 r-igraph
12792 r-magrittr
12793 r-mass
12794 r-matrix
12795 r-pbmcapply
12796 r-plyr
12797 r-r6
12798 r-zoo))
12799 (native-inputs (list r-testthat))
12800 (home-page "https://github.com/mskilab/chromunity")
12801 (synopsis "Discovery of communities in Pore-C concatemers")
12802 (description "This is a package for the discovery of communities in
12803Pore-C concatemers.")
12804 (license license:gpl3))))
12805
12806(define-public r-cmdstanr
12807 (let ((commit "a45d4f7d686aa6b57ce25f342a71eea79507f01c")
12808 (revision "1"))
12809 (package
12810 (name "r-cmdstanr")
12811 (version (git-version "0.8.1.9000" revision commit))
12812 (source
12813 (origin
12814 (method git-fetch)
12815 (uri (git-reference
12816 (url "https://github.com/stan-dev/cmdstanr")
12817 (commit commit)))
12818 (file-name (git-file-name name version))
12819 (sha256
12820 (base32 "01vyh3sy704rs7yvaka2hp6vld0mdl7hbrs20dpbwidgm4ksrvsi"))))
12821 (properties `((upstream-name . "cmdstanr")))
12822 (build-system r-build-system)
12823 (propagated-inputs (list r-checkmate
12824 r-data-table
12825 r-jsonlite
12826 r-posterior
12827 r-processx
12828 r-r6
12829 r-rlang
12830 r-withr))
12831 (native-inputs (list r-knitr r-testthat))
12832 (home-page "https://github.com/stan-dev/cmdstanr")
12833 (synopsis "R interface to 'CmdStan'")
12834 (description
12835 "This package provides a lightweight interface to Stan
12836<https://mc-stan.org>. The @code{CmdStanR} interface is an alternative
12837to RStan that calls the command line interface for compilation and
12838running algorithms instead of interfacing with C++ via Rcpp'.")
12839 (license license:bsd-3))))
12840
12841(define-public r-dnamcrosshyb
12842 ;; There aren't any releases.
12843 (let ((commit "fe8acb33667e81f00dcb84e0fa75c87ab2db5d8f")
12844 (revision "1"))
12845 (package
12846 (name "r-dnamcrosshyb")
12847 (version (git-version "0.0.0.9000" revision commit))
12848 (source
12849 (origin
12850 (method git-fetch)
12851 (uri (git-reference
12852 (url "https://github.com/pjhop/DNAmCrosshyb")
12853 (commit commit)))
12854 (file-name (git-file-name name version))
12855 (sha256
12856 (base32 "12j1xsiqpvny5rp23z1az0k4cj5ajbcwkg65z00s16vywi2rx6nb"))))
12857 (properties `((upstream-name . "DNAmCrosshyb")))
12858 (build-system r-build-system)
12859 (propagated-inputs
12860 (list r-biocgenerics
12861 r-biocparallel
12862 r-biostrings
12863 r-bsgenome-hsapiens-ucsc-hg19-masked
12864 r-bsgenome-hsapiens-ucsc-hg38-masked
12865 r-dplyr
12866 r-genomicranges
12867 r-ggplot2
12868 r-iranges
12869 r-magrittr
12870 r-minfi
12871 r-purrr
12872 r-s4vectors
12873 r-shiny
12874 r-stringi
12875 r-stringr
12876 r-tibble
12877 r-tidyr
12878 r-watermelon))
12879 (home-page "https://github.com/pjhop/DNAmCrosshyb")
12880 (synopsis "DNAmCrosshyb")
12881 (description
12882 "This package provides helper functions to detect cross-hybridization
12883on Illumina DNAm arrays.")
12884 (license license:gpl3))))
12885
12886(define-public r-doubletcollection
12887 (let ((commit "c0d62f1853942ee6a087eaf7b000d9e4261e2dfd")
12888 (revision "1"))
12889 (package
12890 (name "r-doubletcollection")
12891 (version (git-version "1.1.0" revision commit))
12892 (source (origin
12893 (method git-fetch)
12894 (uri (git-reference
12895 (url "https://github.com/xnnba1984/DoubletCollection")
12896 (commit commit)))
12897 (file-name (git-file-name name version))
12898 (sha256
12899 (base32
12900 "02cvibyc2nwc4037ramm5cskjwyrb9ib9hkrfhmvhbslkn5ixz1v"))))
12901 (properties `((upstream-name . "DoubletCollection")))
12902 (build-system r-build-system)
12903 ;; There are no tests.
12904 (arguments (list #:tests? #false))
12905 (propagated-inputs (list r-biocgenerics
12906 r-doubletfinder
12907 r-gam
12908 r-ggplot2
12909 r-ggthemes
12910 r-mast
12911 r-mclust
12912 r-prroc
12913 r-reticulate
12914 r-scales
12915 r-scdblfinder
12916 r-scds
12917 r-seurat
12918 r-singlecellexperiment
12919 r-slingshot
12920 r-summarizedexperiment
12921 python
12922 python-scrublet
12923 python-doubletdetection))
12924 (native-inputs (list r-testthat))
12925 (home-page "https://github.com/xnnba1984/DoubletCollection")
12926 (synopsis "Tool for finding doublets in scRNA-seq data")
12927 (description
12928 "This is an R package that integrates the installation of
12929doublet-detection methods. In addition, this tool is used for execution and
12930benchmark of those eight mentioned methods.")
12931 (license license:gpl3+))))
12932
12933(define-public r-plsdabatch
12934 (let ((commit "4aadf3a99709afae462db310386b6cf5db20088c")
12935 (revision "1"))
12936 (package
12937 (name "r-plsdabatch")
12938 (version (git-version "0.2.3" revision commit))
12939 (source (origin
12940 (method git-fetch)
12941 (uri (git-reference
12942 (url "https://github.com/EvaYiwenWang/PLSDAbatch")
12943 (commit commit)))
12944 (file-name (git-file-name name version))
12945 (sha256
12946 (base32
12947 "047l923lq2ji7rwybh9b9zkblzvvhkpli5gb2x8g2q9f2n5022nr"))))
12948 (properties `((upstream-name . "PLSDAbatch")))
12949 (build-system r-build-system)
12950 (propagated-inputs (list r-ggplot2
12951 r-ggpubr
12952 r-gridextra
12953 r-lmertest
12954 r-mixomics
12955 r-mvtnorm
12956 r-performance
12957 r-rdpack
12958 r-scales))
12959 (native-inputs (list r-knitr))
12960 (home-page "https://github.com/EvaYiwenWang/PLSDAbatch")
12961 (synopsis "PLSDA-batch")
12962 (description
12963 "This package provides a new batch effect correction method based on
12964Projection to Latent Structures Discriminant Analysis named “PLSDA-batch” to
12965correct data prior to any downstream analysis. PLSDA-batch estimates latent
12966components related to treatment and batch effects to remove batch variation.
12967The method is multivariate, non-parametric and performs dimension reduction.
12968Combined with centered log ratio transformation for addressing uneven library
12969sizes and compositional structure, PLSDA-batch addresses all characteristics
12970of microbiome data that existing correction methods have ignored so far.")
12971 (license license:gpl3))))
12972
12973(define-public r-psupertime
12974 (let ((commit "73825a28d3bd9bc881c15ee0c4c218eec1c9c207")
12975 (revision "1"))
12976 (package
12977 (name "r-psupertime")
12978 (version (git-version "0.2.6" revision commit))
12979 (source (origin
12980 (method git-fetch)
12981 (uri (git-reference
12982 (url "https://github.com/wmacnair/psupertime")
12983 (commit commit)))
12984 (file-name (git-file-name name version))
12985 (sha256
12986 (base32
12987 "00h1r3ffz6m9dwcgkvyki8405b059qn6mnjsd8d76a1rabaf2vfh"))))
12988 (properties `((upstream-name . "psupertime")))
12989 (build-system r-build-system)
12990 (propagated-inputs
12991 (list r-cowplot
12992 r-data-table
12993 r-fastcluster
12994 r-forcats
12995 r-ggplot2
12996 r-glmnet
12997 r-knitr
12998 r-matrix
12999 r-rcolorbrewer
13000 r-scales
13001 r-scran
13002 r-singlecellexperiment
13003 r-stringr
13004 r-summarizedexperiment
13005 r-topgo))
13006 (native-inputs (list r-knitr r-testthat))
13007 (home-page "https://github.com/wmacnair/psupertime")
13008 (synopsis
13009 "Psupertime is supervised pseudotime for single cell RNAseq data")
13010 (description
13011 "Psupertime is supervised pseudotime for single cell RNAseq data. It
13012uses single cell RNAseq data, where the cells have a known ordering. This
13013ordering helps to identify a small number of genes which place cells in that
13014known order. It can be used for discovery of relevant genes, for
13015identification of subpopulations, and characterization of further unknown or
13016differently labelled data.")
13017 (license license:gpl3))))
13018
13019(define-public r-premessa
13020 (let ((commit "68b42bb984637d0f3ad6a0ecc83e9278994afc85")
13021 (revision "1"))
13022 (package
13023 (name "r-premessa")
13024 (version (git-version "0.3.4" revision commit))
13025 (source (origin
13026 (method git-fetch)
13027 (uri (git-reference
13028 (url "https://github.com/ParkerICI/premessa")
13029 (commit commit)))
13030 (file-name (git-file-name name version))
13031 (sha256
13032 (base32
13033 "1l0q431zk0lvg22130nx84gdqi7cpl05yah4am63lbx6m4c769pb"))
13034 (snippet
13035 '(delete-file "inst/normalizer_shinyGUI/www/d3.min.js"))))
13036 (properties `((upstream-name . "premessa")))
13037 (build-system r-build-system)
13038 (arguments
13039 (list
13040 #:phases
13041 '(modify-phases %standard-phases
13042 (add-after 'unpack 'process-javascript
13043 (lambda* (#:key inputs #:allow-other-keys)
13044 (with-directory-excursion "inst/normalizer_shinyGUI/www/"
13045 (invoke "esbuild" (assoc-ref inputs "d3.v4.js")
13046 "--minify" "--outfile=d3.min.js")))))))
13047 (propagated-inputs
13048 (list r-data-table
13049 r-flowcore
13050 r-ggplot2
13051 r-gridextra
13052 r-hexbin
13053 r-jsonlite
13054 r-reshape
13055 r-rhandsontable
13056 r-shiny
13057 r-shinyjqui))
13058 (native-inputs
13059 `(("esbuild" ,esbuild)
13060 ("d3.v4.js"
13061 ,(origin
13062 (method url-fetch)
13063 (uri "https://d3js.org/d3.v4.js")
13064 (sha256
13065 (base32
13066 "0y7byf6kcinfz9ac59jxc4v6kppdazmnyqfav0dm4h550fzfqqlg"))))))
13067 (home-page "https://github.com/ParkerICI/premessa")
13068 (synopsis "Pre-processing of flow and mass cytometry data")
13069 (description
13070 "This is an R package for pre-processing of flow and mass cytometry
13071data. This package includes panel editing or renaming for FCS files,
13072bead-based normalization and debarcoding.")
13073 (license license:gpl3))))
13074
13075(define-public r-projectils
13076 (let ((commit "cc73b97471b4b6eea11ce779b5c4a7dc5c3e1709")
13077 (revision "1"))
13078 (package
13079 (name "r-projectils")
13080 (version (git-version "3.0.0" revision commit))
13081 (source
13082 (origin
13083 (method git-fetch)
13084 (uri (git-reference
13085 (url "https://github.com/carmonalab/ProjecTILs")
13086 (commit commit)))
13087 (file-name (git-file-name name version))
13088 (sha256
13089 (base32 "0dpzvbhhb9andnj7angpj32cgkwd6rs6qgpl6i21pqzcn6vqqhqw"))))
13090 (properties `((upstream-name . "ProjecTILs")))
13091 (build-system r-build-system)
13092 (propagated-inputs
13093 (list r-biocneighbors
13094 r-biocparallel
13095 r-dplyr
13096 r-ggplot2
13097 r-matrix
13098 r-patchwork
13099 r-pheatmap
13100 r-pracma
13101 r-purrr
13102 r-rcolorbrewer
13103 r-reshape2
13104 r-scales
13105 r-scgate
13106 r-seurat
13107 r-seuratobject
13108 r-stacas
13109 r-ucell
13110 r-umap
13111 r-uwot))
13112 (home-page "https://github.com/carmonalab/ProjecTILs")
13113 (synopsis "Reference-based analysis of scRNA-seq data")
13114 (description
13115 "This package implements methods to project single-cell RNA-seq data
13116onto a reference atlas, enabling interpretation of unknown cell transcriptomic
13117states in the the context of known, reference states.")
13118 (license license:gpl3))))
13119
13120(define-public r-presto
13121 (let ((commit "7636b3d0465c468c35853f82f1717d3a64b3c8f6")
13122 (revision "1"))
13123 (package
13124 (name "r-presto")
13125 (version (git-version "1.0.0" revision commit))
13126 (source
13127 (origin
13128 (method git-fetch)
13129 (uri (git-reference
13130 (url "https://github.com/immunogenomics/presto")
13131 (commit commit)))
13132 (file-name (git-file-name name version))
13133 (sha256
13134 (base32 "07giligbadv3ap0p4hzsviqpgiipkqcq7x6p0g8lmb8xxpjz3y29"))))
13135 (properties
13136 '((upstream-name . "presto")
13137 (updater-extra-native-inputs . ("r-broom"))))
13138 (build-system r-build-system)
13139 (propagated-inputs
13140 (list r-data-table
13141 r-dplyr
13142 r-matrix
13143 r-purrr
13144 r-rcpp
13145 r-rcpparmadillo
13146 r-rlang
13147 r-tibble
13148 r-tidyr))
13149 (native-inputs (list r-broom r-knitr r-testthat))
13150 (home-page "https://github.com/immunogenomics/presto")
13151 (synopsis "Fast Functions for Differential Expression using Wilcox and AUC")
13152 (description "This package performs a fast Wilcoxon rank sum test and
13153auROC analysis.")
13154 (license license:gpl3))))
13155
13156(define-public r-sccustomize
13157 (let ((commit "397374590dae2ccc0c560897dcd1ce4382c18798")
13158 (revision "1"))
13159 (package
13160 (name "r-sccustomize")
13161 (version (git-version "2.0.1" revision commit))
13162 (source
13163 (origin
13164 (method git-fetch)
13165 (uri (git-reference
13166 (url "https://github.com/samuel-marsh/scCustomize")
13167 (commit commit)))
13168 (file-name (git-file-name name version))
13169 (sha256
13170 (base32 "11bafm0mlck27fqd8brz80pxb8dc5q0aqbp8zv0s9sx97njp7wsl"))))
13171 (properties `((upstream-name . "scCustomize")))
13172 (build-system r-build-system)
13173 (propagated-inputs (list r-circlize
13174 r-colorway
13175 r-cowplot
13176 r-data-table
13177 r-dittoseq
13178 r-dplyr
13179 r-forcats
13180 r-ggbeeswarm
13181 r-ggplot2
13182 r-ggprism
13183 r-ggpubr
13184 r-ggrastr
13185 r-ggrepel
13186 r-glue
13187 r-janitor
13188 r-magrittr
13189 r-matrix
13190 r-paletteer
13191 r-patchwork
13192 r-pbapply
13193 r-purrr
13194 r-remotes
13195 r-scales
13196 r-scattermore
13197 r-seurat
13198 r-seuratobject
13199 r-stringi
13200 r-stringr
13201 r-tibble
13202 r-tidyr
13203 r-tidyselect
13204 r-viridis))
13205 (native-inputs (list r-knitr))
13206 (home-page "https://github.com/samuel-marsh/scCustomize")
13207 (synopsis "Custom visualization and analyses of single-cell sequencing")
13208 (description
13209 "This is a collection of functions created and/or curated to aid in the
13210visualization and analysis of single-cell data using R.")
13211 (license license:gpl3+))))
13212
13213(define-public r-markdownhelpers
13214 (let ((commit "793372d28ebed607cc1d35f909a1caedb2b41ffe")
13215 (revision "1"))
13216 (package
13217 (name "r-markdownhelpers")
13218 (version (git-version "0.2.0" revision commit))
13219 (source (origin
13220 (method git-fetch)
13221 (uri (git-reference
13222 (url "https://github.com/vertesy/MarkdownHelpers")
13223 (commit commit)))
13224 (file-name (git-file-name name version))
13225 (sha256
13226 (base32
13227 "1d18s2ydhfjm3hjkxz42dirhwrrv792m6mvkmypallaa2qnwrmkg"))))
13228 (properties `((upstream-name . "MarkdownHelpers")))
13229 (build-system r-build-system)
13230 (propagated-inputs (list r-devtools r-stringendo r-usethis))
13231 (home-page "https://github.com/vertesy/MarkdownHelpers")
13232 (synopsis "Helper functions for MarkdownReports and ggExpress")
13233 (description
13234 "This package provides a set of R functions to parse markdown and other
13235generic helpers.")
13236 (license license:gpl3))))
13237
13238(define-public r-markdownreports
13239 (let ((commit "3ba1103e3ddc6df3a0c090eb884f5e65c461eb31")
13240 (revision "1"))
13241 (package
13242 (name "r-markdownreports")
13243 (version (git-version "4.5.9" revision commit))
13244 (source (origin
13245 (method git-fetch)
13246 (uri (git-reference
13247 (url "https://github.com/vertesy/MarkdownReports")
13248 (commit commit)))
13249 (file-name (git-file-name name version))
13250 (sha256
13251 (base32
13252 "1xmasdb630b6nvxi5m1i8pyxiy49nxpzyxf9h8spdppx92rhdkc8"))))
13253 (properties `((upstream-name . "MarkdownReports")))
13254 (build-system r-build-system)
13255 (propagated-inputs
13256 (list r-clipr
13257 r-codeandroll2
13258 r-colorramps
13259 r-devtools
13260 r-gplots
13261 r-markdownhelpers
13262 r-rcolorbrewer
13263 r-readwriter
13264 r-sessioninfo
13265 r-sm
13266 r-stringendo
13267 r-venndiagram
13268 r-vioplot))
13269 (home-page "https://github.com/vertesy/MarkdownReports")
13270 (synopsis "Tool for generating cientific figures and reports")
13271 (description
13272 "This is a set of R functions that allows you to generate precise
13273figures. This tool will create clean markdown reports about what you just
13274discovered.")
13275 (license license:gpl3))))
13276
13277(define-public r-metacell
13278 (let ((commit "d6a6926d103ee0cb34a611c753572429c94a53d9")
13279 (revision "1"))
13280 (package
13281 (name "r-metacell")
13282 (version (git-version "0.3.41" revision commit))
13283 (source
13284 (origin
13285 (method git-fetch)
13286 (uri (git-reference
13287 (url "https://github.com/tanaylab/metacell/")
13288 (commit commit)))
13289 (file-name (git-file-name name version))
13290 (sha256
13291 (base32 "0zrsckr3y35x37mj3ibm6scyqx925s84wzrz1i42fnm9n3msc265"))))
13292 (properties `((upstream-name . "metacell")))
13293 (build-system r-build-system)
13294 (propagated-inputs (list r-cluster
13295 r-cowplot
13296 r-data-table
13297 r-dbscan
13298 r-domc
13299 r-dplyr
13300 r-entropy
13301 r-ggplot2
13302 r-graph
13303 r-igraph
13304 r-kernsmooth
13305 r-magrittr
13306 r-matrix
13307 r-matrixstats
13308 r-pdist
13309 r-pheatmap
13310 r-plyr
13311 r-rcolorbrewer
13312 r-rcurl
13313 r-rgraphviz
13314 r-slam
13315 r-singlecellexperiment
13316 r-svglite
13317 r-tgconfig
13318 r-tgstat
13319 r-tgutil
13320 r-tidyr
13321 r-umap
13322 r-umap
13323 r-zoo))
13324 (native-inputs (list r-knitr))
13325 (home-page "https://github.com/tanaylab/metacell/")
13326 (synopsis "Meta cell analysis for single cell RNA-seq data")
13327 (description
13328 "This package facilitates the analysis of single-cell RNA-seq UMI matrices.
13329It does this by computing partitions of a cell similarity graph into
13330small homogeneous groups of cells, which are defined as metacells (MCs).
13331The derived MCs are then used for building different representations of
13332the data, allowing matrix or 2D graph visualization forming a basis for
13333analysis of cell types, subtypes, transcriptional gradients,cell-cycle
13334variation, gene modules and their regulatory models and more.")
13335 (license license:expat))))
13336
13337(define-public r-metadeconfoundr
13338 ;; There are some relevant updates after the release of version 0.3.0.
13339 (let ((commit "90aec0226c5128bfcbbc08903452eff460d21424")
13340 (revision "1"))
13341 (package
13342 (name "r-metadeconfoundr")
13343 (version (git-version "0.3.0" revision commit))
13344 (source
13345 (origin
13346 (method git-fetch)
13347 (uri (git-reference
13348 (url "https://github.com/TillBirkner/metadeconfoundR")
13349 (commit commit)))
13350 (file-name (git-file-name name version))
13351 (sha256
13352 (base32 "0zkqar27p5qwq46xbxsw5x1pl50xbkgqiizw5bydlyhwb0ga2f3h"))))
13353 (properties `((upstream-name . "metadeconfoundR")))
13354 (build-system r-build-system)
13355 (propagated-inputs (list r-bigmemory
13356 r-detectseparation
13357 r-doparallel
13358 r-dosnow
13359 r-foreach
13360 r-futile-logger
13361 r-ggplot2
13362 r-lme4
13363 r-lmtest
13364 r-reshape2
13365 r-snow))
13366 (native-inputs (list r-knitr))
13367 (home-page "https://github.com/TillBirkner/metadeconfoundR")
13368 (synopsis "Check multiple covariates for potential confounding effects")
13369 (description
13370 "This package detects naive associations between omics features and
13371metadata in cross-sectional data-sets using non-parametric tests. In a second
13372step, confounding effects between metadata associated to the same omics
13373feature are detected and labeled using nested post-hoc model comparison tests.
13374The generated output can be graphically summarized using the built-in plotting
13375function.")
13376 (license license:gpl2))))
13377
13378(define-public r-music
13379 (let ((commit "f21fe67f5670d5e9fca0ad7550abaae3423eb59c")
13380 (revision "2"))
13381 (package
13382 (name "r-music")
13383 (version (git-version "1.0.0" revision commit))
13384 (source
13385 (origin
13386 (method git-fetch)
13387 (uri (git-reference
13388 (url "https://github.com/xuranw/MuSiC")
13389 (commit commit)))
13390 (file-name (git-file-name name version))
13391 (sha256
13392 (base32 "05q72sml35sw3rd0lyg7r9r3470q47x5dsjn4bpgzl99s5d76llx"))))
13393 (properties `((upstream-name . "MuSiC")))
13394 (build-system r-build-system)
13395 (propagated-inputs (list r-biobase
13396 r-ggplot2
13397 r-matrix
13398 r-mcmcpack
13399 r-nnls
13400 r-singlecellexperiment
13401 r-toast))
13402 (native-inputs (list r-knitr))
13403 (home-page "https://github.com/xuranw/MuSiC")
13404 (synopsis "Multi-subject single cell deconvolution")
13405 (description
13406 "MuSiC is a deconvolution method that utilizes cross-subject scRNA-seq
13407to estimate cell type proportions in bulk RNA-seq data.")
13408 (license license:gpl3+))))
13409
13410(define-public r-sleuth
13411 (package
13412 (name "r-sleuth")
13413 (version "0.30.1")
13414 (source
13415 (origin
13416 (method git-fetch)
13417 (uri (git-reference
13418 (url "https://github.com/pachterlab/sleuth")
13419 (commit (string-append "v" version))))
13420 (file-name (git-file-name name version))
13421 (sha256
13422 (base32 "09xgc7r6iisjkk0c0wn0q56zy0aph386kphwixfzq4422y7vlqci"))))
13423 (properties `((upstream-name . "sleuth")))
13424 (build-system r-build-system)
13425 ;; FIXME: there are 10 unknown failures.
13426 (arguments (list #:tests? #false))
13427 (propagated-inputs (list r-aggregation
13428 r-data-table
13429 r-dplyr
13430 r-ggplot2
13431 r-lazyeval
13432 r-matrixstats
13433 r-pheatmap
13434 r-reshape2
13435 r-rhdf5
13436 r-shiny
13437 r-tidyr))
13438 (native-inputs (list r-knitr r-testthat))
13439 (home-page "https://github.com/pachterlab/sleuth")
13440 (synopsis "Tools for investigating RNA-Seq")
13441 (description
13442 "Sleuth is a program for differential analysis of RNA-Seq data.
13443It makes use of quantification uncertainty estimates obtained via Kallisto for
13444accurate differential analysis of isoforms or genes, allows testing in the
13445context of experiments with complex designs, and supports interactive
13446exploratory data analysis via sleuth live.")
13447 (license license:gpl3)))
13448
13449(define-public r-snapatac
13450 (package
13451 (name "r-snapatac")
13452 (version "2.0")
13453 (source
13454 (origin
13455 (method git-fetch)
13456 (uri (git-reference
13457 (url "https://github.com/r3fang/SnapATAC")
13458 (commit (string-append "v" version))))
13459 (file-name (git-file-name name version))
13460 (sha256
13461 (base32 "037jzlbl436fi7lkpq7d83i2vd1crnrik3vac2x6xj75dbikb2av"))))
13462 (properties `((upstream-name . "SnapATAC")))
13463 (build-system r-build-system)
13464 (propagated-inputs
13465 (list r-bigmemory
13466 r-doparallel
13467 r-dosnow
13468 r-edger
13469 r-foreach
13470 r-genomicranges
13471 r-igraph
13472 r-iranges
13473 r-irlba
13474 r-matrix
13475 r-plyr
13476 r-plot3d
13477 r-rann
13478 r-raster
13479 r-rcolorbrewer
13480 r-rhdf5
13481 r-rtsne
13482 r-scales
13483 r-viridis))
13484 (home-page "https://github.com/r3fang/SnapATAC")
13485 (synopsis "Single nucleus analysis package for ATAC-Seq")
13486 (description
13487 "This package provides a fast and accurate analysis toolkit for single
13488cell ATAC-seq (Assay for transposase-accessible chromatin using sequencing).
13489Single cell ATAC-seq can resolve the heterogeneity of a complex tissue and
13490reveal cell-type specific regulatory landscapes. However, the exceeding data
13491sparsity has posed unique challenges for the data analysis. This package
13492@code{r-snapatac} is an end-to-end bioinformatics pipeline for analyzing large-
13493scale single cell ATAC-seq data which includes quality control, normalization,
13494clustering analysis, differential analysis, motif inference and exploration of
13495single cell ATAC-seq sequencing data.")
13496 (license license:gpl3)))
13497
13498(define-public r-tsis
13499 (let ((commit "24460298fbe1d26e4da390f6e4f3d4d9d62334dc")
13500 (revision "1"))
13501 (package
13502 (name "r-tsis")
13503 (version (git-version "0.2.0" revision commit))
13504 (source (origin
13505 (method git-fetch)
13506 (uri (git-reference
13507 (url "https://github.com/wyguo/TSIS")
13508 (commit commit)))
13509 (file-name (git-file-name name version))
13510 (sha256
13511 (base32
13512 "17c8i25iwhldvs3c51m0wny40iffm8szzijalpwrxhzbv0xa94rb"))))
13513 (properties `((upstream-name . "TSIS")))
13514 (build-system r-build-system)
13515 (native-inputs (list r-knitr))
13516 (home-page "https://github.com/wyguo/TSIS")
13517 (synopsis "Time-series isoform switch of alternative splicing")
13518 (description
13519 "TSIS is used for detecting transcript isoform switches in time-series
13520data. Transcript isoform switches occur when a pair of alternatively spliced
13521isoforms reverse the order of their relative expression levels. TSIS
13522characterizes the transcript switch by defining the isoform switch time-points
13523for any pair of transcript isoforms within a gene. In addition, this tool
13524describes the switch using five different features or metrics. Also it
13525filters the results with user’s specifications and visualizes the results
13526using different plots for the user to examine further details of the
13527switches.")
13528 (license license:gpl3))))
13529
13530(define-public r-umi4cpackage
13531 (let ((commit "88b07d896a137418ba6c31c2474b9dbe1d86fc20")
13532 (revision "1"))
13533 (package
13534 (name "r-umi4cpackage")
13535 (version (git-version "0.0.1" revision commit))
13536 (source
13537 (origin
13538 (method git-fetch)
13539 (uri (git-reference
13540 (url "https://github.com/tanaylab/umi4cpackage")
13541 (commit commit)))
13542 (file-name (git-file-name name version))
13543 (sha256
13544 (base32 "0bjzamdw2lcfhlbzc0vdva87c3wwnij8jsvnrpx4wyyxvpcz13m5"))))
13545 (properties `((upstream-name . "umi4cPackage")))
13546 (build-system r-build-system)
13547 (arguments
13548 `(#:phases
13549 (modify-phases %standard-phases
13550 (add-after 'unpack 'fix-references
13551 (lambda _
13552 (substitute* "inst/conf/paths.conf"
13553 (("TG3C\\.bowtie2_bin=.*")
13554 (string-append "TG3C.bowtie2_bin="
13555 (which "bowtie2") "\n")))
13556 (substitute* "inst/perl/map3c/TG3C/import3C.pl"
13557 (("\"perl")
13558 (string-append "\"" (which "perl")))))))))
13559 (inputs
13560 (list perl bowtie))
13561 (propagated-inputs
13562 (list r-misha r-zoo))
13563 (native-inputs (list r-knitr))
13564 (home-page "https://github.com/tanaylab/umi4cpackage")
13565 (synopsis "Processing and analysis of UMI-4C contact profiles")
13566 (description "This is a package that lets you process UMI-4C data from
13567scratch to produce nice plots.")
13568 (license license:expat))))
13569
13570(define-public r-shinycell
13571 (let ((commit
13572 "aecbd56e66802f28e397f5ae1f19403aadd12163")
13573 (revision "1"))
13574 (package
13575 (name "r-shinycell")
13576 (version (git-version "2.0.0" revision commit))
13577 (source
13578 (origin
13579 (method git-fetch)
13580 (uri (git-reference
13581 (url "https://github.com/SGDDNB/ShinyCell")
13582 (commit commit)))
13583 (file-name (git-file-name name version))
13584 (sha256
13585 (base32
13586 "13jn2ikmvljnzayk485g1mmq5abcp9m1b8n1djdb1agmn83zaki5"))))
13587 (properties `((upstream-name . "ShinyCell")))
13588 (build-system r-build-system)
13589 (propagated-inputs
13590 (list r-data-table
13591 r-ggplot2
13592 r-glue
13593 r-gridextra
13594 r-hdf5r
13595 r-matrix
13596 r-r-utils
13597 r-rcolorbrewer
13598 r-readr
13599 r-reticulate))
13600 (home-page "https://github.com/SGDDNB/ShinyCell")
13601 (synopsis "Shiny interactive web apps for single-cell data")
13602 (description
13603 "This package provides Shiny apps for interactive exploration of
13604single-cell data.")
13605 (license license:gpl3))))
13606
13607(define-public r-archr
13608 (let ((commit "c61b0645d1482f80dcc24e25fbd915128c1b2500")
13609 (revision "1"))
13610 (package
13611 (name "r-archr")
13612 (version (git-version "1.0.2" revision commit))
13613 (source
13614 (origin
13615 (method git-fetch)
13616 (uri (git-reference
13617 (url "https://github.com/GreenleafLab/ArchR")
13618 (commit commit)))
13619 (file-name (git-file-name name version))
13620 (sha256
13621 (base32 "0sgdfd8iwgj8cssj2zr3gmshg8nv54q6dd8asjf99i39qkni7p9i"))))
13622 (properties `((upstream-name . "ArchR")))
13623 (build-system r-build-system)
13624 (propagated-inputs
13625 (list r-biocgenerics
13626 r-biostrings
13627 r-chromvar
13628 r-complexheatmap
13629 r-data-table
13630 r-genomicranges
13631 r-ggplot2
13632 r-ggrepel
13633 r-gridextra
13634 r-gtable
13635 r-gtools
13636 r-magrittr
13637 r-matrix
13638 r-matrixstats
13639 r-motifmatchr
13640 r-nabor
13641 r-plyr
13642 r-rcpp
13643 r-rhdf5
13644 r-rsamtools
13645 r-s4vectors
13646 r-stringr
13647 r-summarizedexperiment
13648 r-uwot))
13649 (home-page "https://github.com/GreenleafLab/ArchR")
13650 (synopsis "Analyze single-cell regulatory chromatin in R")
13651 (description
13652 "This package is designed to streamline scATAC analyses in R.")
13653 (license license:gpl2+))))
13654
13655(define-public r-azimuth
13656 (let ((commit "243ee5db80fcbffa3452c944254a325a3da2ef9e")
13657 (revision "1"))
13658 (package
13659 (name "r-azimuth")
13660 (version (git-version "0.5.0" revision commit))
13661 (source
13662 (origin
13663 (method git-fetch)
13664 (uri (git-reference
13665 (url "https://github.com/satijalab/azimuth")
13666 (commit commit)))
13667 (file-name (git-file-name name version))
13668 (sha256
13669 (base32 "0vs4813kf2cv2j1z800ihwk62bw4dgmwgkd47rln58581chv39zm"))))
13670 (properties `((upstream-name . "Azimuth")))
13671 (build-system r-build-system)
13672 (propagated-inputs (list r-bsgenome-hsapiens-ucsc-hg38
13673 r-dt
13674 r-ensdb-hsapiens-v86
13675 r-future
13676 r-ggplot2
13677 r-glmgampoi
13678 r-googlesheets4
13679 r-hdf5r
13680 r-htmltools
13681 r-httr
13682 r-jaspar2020
13683 r-jsonlite
13684 r-matrix
13685 r-patchwork
13686 r-plotly
13687 r-presto
13688 r-rcpp
13689 r-rlang
13690 r-scales
13691 r-seurat
13692 r-seuratdata
13693 r-seuratdisk
13694 r-seuratobject
13695 r-shiny
13696 r-shinybs
13697 r-shinydashboard
13698 r-shinyjs
13699 r-signac
13700 r-stringr
13701 r-tfbstools
13702 r-withr))
13703 (home-page "https://github.com/satijalab/azimuth")
13704 (synopsis
13705 "Shiny app showcasing a single-cell data query-reference mapping algorithm")
13706 (description "Azimuth utilizes an annotated reference dataset. It
13707automates the processing, analysis, and interpretation. This applies
13708specifically to new single-cell RNA-seq or ATAC-seq experiments. Azimuth
13709leverages a reference-based mapping pipeline that inputs accounts matrix and
13710performs normalization, visualization, cell annotation, and differential
13711expression.")
13712 (license license:gpl3))))
13713
13714(define-public r-icellnet
13715 ;; This is an arbitrary commit because there is no tag for 2.2.1.
13716 (let ((commit "e10ee4ae5feaf8130764dcb0736957d2a90b828c")
13717 (revision "1"))
13718 (package
13719 (name "r-icellnet")
13720 (version (git-version "2.2.1" revision commit))
13721 (source (origin
13722 (method git-fetch)
13723 (uri (git-reference
13724 (url "https://github.com/soumelis-lab/ICELLNET")
13725 (commit commit)))
13726 (file-name (git-file-name name version))
13727 (sha256
13728 (base32
13729 "0bszxw9zcsd1gxhg9q89jfzi95266wfjn74hp7z8yb99cr3j53k4"))))
13730 (build-system r-build-system)
13731 (arguments
13732 (list
13733 #:phases
13734 '(modify-phases %standard-phases
13735 (add-after 'unpack 'enter-dir
13736 (lambda _ (chdir "icellnet"))))))
13737 (propagated-inputs
13738 (list r-annotationdbi
13739 r-complexheatmap
13740 r-circlize
13741 r-data-table
13742 r-dplyr
13743 r-ggplot2
13744 r-hgu133plus2-db
13745 r-jetset
13746 r-psych
13747 r-reshape2
13748 r-rlist))
13749 (home-page "https://github.com/soumelis-lab/ICELLNET")
13750 (synopsis "Transcriptomic-based framework to dissect cell communication")
13751 (description "This package provides a a transcriptomic-based framework
13752to dissect cell communication in a global manner. It integrates an original
13753expert-curated database of ligand-receptor interactions taking into account
13754multiple subunits expression. Based on transcriptomic profiles (gene
13755expression), this package computes communication scores between cells
13756and provides several visualization modes that can be helpful to dig into
13757cell-cell interaction mechanism and extend biological knowledge.")
13758 (license license:gpl3))))
13759
13760(define-public r-scde
13761 (package
13762 (name "r-scde")
13763 (version "1.99.2")
13764 (source (origin
13765 (method git-fetch)
13766 (uri (git-reference
13767 (url "https://github.com/hms-dbmi/scde")
13768 (commit version)))
13769 (file-name (git-file-name name version))
13770 (sha256
13771 (base32
13772 "10na2gyka24mszdxf92wz9h2c13hdf1ww30c68gfsw53lvvhhhxb"))))
13773 (build-system r-build-system)
13774 (propagated-inputs
13775 (list r-rcpp
13776 r-rcpparmadillo
13777 r-mgcv
13778 r-rook
13779 r-rjson
13780 r-cairo
13781 r-rcolorbrewer
13782 r-edger
13783 r-quantreg
13784 r-nnet
13785 r-rmtstat
13786 r-extremes
13787 r-pcamethods
13788 r-biocparallel
13789 r-flexmix))
13790 (home-page "https://hms-dbmi.github.io/scde/")
13791 (synopsis "R package for analyzing single-cell RNA-seq data")
13792 (description "The SCDE package implements a set of statistical methods for
13793analyzing single-cell RNA-seq data. SCDE fits individual error models for
13794single-cell RNA-seq measurements. These models can then be used for
13795assessment of differential expression between groups of cells, as well as
13796other types of analysis. The SCDE package also contains the pagoda framework
13797which applies pathway and gene set overdispersion analysis to identify aspects
13798of transcriptional heterogeneity among single cells.")
13799 ;; See https://github.com/hms-dbmi/scde/issues/38
13800 (license license:gpl2)))
13801
13802(define-public r-miamiplot
13803 (let ((commit "beede9c5d6431b4d822aa42e064e01baeb5dd4a0")
13804 (revision "1"))
13805 (package
13806 (name "r-miamiplot")
13807 (version (git-version "1.1.0" revision commit))
13808 (source
13809 (origin
13810 (method git-fetch)
13811 (uri (git-reference
13812 (url "https://github.com/juliedwhite/miamiplot")
13813 (commit commit)))
13814 (file-name (git-file-name name version))
13815 (sha256
13816 (base32 "0wxxk1lk9jbf0imf59qp302ffasvs84idinkvzirs3dw9w3589n9"))))
13817 (properties `((upstream-name . "miamiplot")))
13818 (build-system r-build-system)
13819 (propagated-inputs (list r-checkmate
13820 r-dplyr
13821 r-ggplot2
13822 r-ggrepel
13823 r-gridextra
13824 r-magrittr
13825 r-rlang))
13826 (native-inputs (list r-knitr))
13827 (home-page "https://github.com/juliedwhite/miamiplot")
13828 (synopsis "Create a ggplot2 miami plot")
13829 (description
13830 "This package generates a Miami plot with centered chromosome labels.
13831The output is a ggplot2 object. Users can specify which data they want
13832plotted on top vs. bottom, whether to display significance line(s), what
13833colors to give chromosomes, and what points to label.")
13834 (license license:gpl2))))
13835
13836(define-public r-millefy
13837 (package
13838 (name "r-millefy")
13839 (version "0.1.9-beta")
13840 (source
13841 (origin
13842 (method git-fetch)
13843 (uri (git-reference
13844 (url "https://github.com/yuifu/millefy")
13845 (commit (string-append "v" version))))
13846 (file-name (git-file-name name version))
13847 (sha256
13848 (base32
13849 "0z2y0x99f761pxvg6n37cmnyrnj699jhjk43pvk05sa86iykgizl"))))
13850 (properties `((upstream-name . "millefy")))
13851 (build-system r-build-system)
13852 (propagated-inputs
13853 (list r-data-table
13854 r-destiny
13855 r-dplyr
13856 r-genomicranges
13857 r-iranges
13858 r-magrittr
13859 r-rsamtools
13860 r-rtracklayer
13861 r-tidyr))
13862 (native-inputs (list r-testthat))
13863 (home-page "https://github.com/yuifu/millefy")
13864 (synopsis "Make millefy plot with single-cell RNA-seq data")
13865 (description "@code{Millefy} is a tool for visualizing read coverage of
13866@dfn{scRNA-seq}(single-cell RNA sequencing) datasets in genomic contexts. By
13867dynamically and automatically reorder single cells based on locus-specific
13868pseudo time, @code{Millefy} highlights cell-to-cell heterogeneity in read coverage
13869of scRNA-seq data.")
13870 (license license:expat)))
13871
13872(define-public r-misha
13873 (package
13874 (name "r-misha")
13875 (version "5.6.23")
13876 (source
13877 (origin
13878 (method git-fetch)
13879 (uri (git-reference
13880 (url "https://github.com/tanaylab/misha")
13881 (commit (string-append "v" version))))
13882 (file-name (git-file-name name version))
13883 (sha256
13884 (base32
13885 "1k973j04iq02dy4f7qgi3cmp3rcx5yinyx0m7vyag54rqanird8x"))))
13886 (build-system r-build-system)
13887 (propagated-inputs (list r-curl r-digest r-magrittr r-ps r-yaml))
13888 (native-inputs (list r-knitr r-testthat))
13889 (home-page "https://github.com/tanaylab/misha")
13890 (synopsis "Toolkit for analysis of genomic data")
13891 (description "This package is intended to help users to efficiently
13892analyze genomic data resulting from various experiments.")
13893 (license license:gpl2)))
13894
13895(define-public r-scseqcomm
13896 (let ((commit "01076e703999f1a5aa76419d821b50aebe2b777a")
13897 (revision "0"))
13898 (package
13899 (name "r-scseqcomm")
13900 (version (git-version "0" revision commit))
13901 (source
13902 (origin
13903 (method git-fetch)
13904 (uri (git-reference
13905 (url "https://gitlab.com/sysbiobig/scseqcomm")
13906 (commit commit)))
13907 (file-name (git-file-name name version))
13908 (sha256
13909 (base32
13910 "1fw5si47d6agnz5fibmp2b1sv08pbpwv1j71w57xbav9044i032q"))
13911 ;; Delete bundled dependency.
13912 (modules '((guix build utils)))
13913 (snippet
13914 '(delete-file-recursively "other_deps"))))
13915 (build-system r-build-system)
13916 (inputs
13917 (list r-add2ggplot
13918 r-chorddiag
13919 r-doparallel
13920 r-dplyr
13921 r-foreach
13922 r-gridextra
13923 r-ggplot2
13924 r-gtable
13925 r-htmlwidgets
13926 r-igraph
13927 r-matrix
13928 r-org-hs-eg-db
13929 r-psych
13930 r-rcolorbrewer
13931 r-rlang
13932 r-scico
13933 r-tidygraph
13934 r-topgo))
13935 (native-inputs
13936 (list r-knitr))
13937 (home-page "https://gitlab.com/sysbiobig/scseqcomm")
13938 (synopsis "Inter- and intra- cellular signaling from single cell RNA-seq")
13939 (description "This package is tools for analysing intercellular and
13940intracellular signaling from single cell RNA-seq (scRNA-seq) data.")
13941 (license license:gpl3))))
13942
13943(define-public r-shaman
13944 (let ((commit "d6944e8ac7bd1dbd5c6cec646eafc1d19d0ca96f")
13945 (release "2.0")
13946 (revision "2"))
13947 (package
13948 (name "r-shaman")
13949 (version (git-version release revision commit))
13950 (source (origin
13951 (method git-fetch)
13952 (uri (git-reference
13953 (url "https://github.com/tanaylab/shaman")
13954 (commit commit)))
13955 (file-name (git-file-name name version))
13956 (sha256
13957 (base32
13958 "03sx138dzpfiq23j49z0m0s4j79855mrg64hpj9c83408wzphxi6"))
13959 (snippet
13960 ;; This file will be generated.
13961 '(delete-file "inst/doc/shaman-package.R"))))
13962 (build-system r-build-system)
13963 (propagated-inputs
13964 (list r-data-table
13965 r-domc
13966 r-ggplot2
13967 r-gviz
13968 r-misha
13969 r-plyr
13970 r-rann
13971 r-rcpp
13972 r-reshape2
13973 ;; For vignettes
13974 r-rmarkdown
13975 r-knitr))
13976 (home-page "https://github.com/tanaylab/shaman")
13977 (synopsis "Sampling HiC contact matrices for a-parametric normalization")
13978 (description "The Shaman package implements functions for
13979resampling Hi-C matrices in order to generate expected contact
13980distributions given constraints on marginal coverage and
13981contact-distance probability distributions. The package also provides
13982support for visualizing normalized matrices and statistical analysis
13983of contact distributions around selected landmarks.")
13984 ;; Any version of the GPL
13985 (license license:gpl3+))))
13986
13987(define-public r-centipede
13988 (package
13989 (name "r-centipede")
13990 (version "1.2")
13991 (source (origin
13992 (method url-fetch)
13993 (uri (string-append "http://download.r-forge.r-project.org/"
13994 "src/contrib/CENTIPEDE_" version ".tar.gz"))
13995 (sha256
13996 (base32
13997 "1hsx6qgwr0i67fhy9257zj7s0ppncph2hjgbia5nn6nfmj0ax6l9"))))
13998 (build-system r-build-system)
13999 (home-page "https://centipede.uchicago.edu/")
14000 (synopsis "Predict transcription factor binding sites")
14001 (description
14002 "CENTIPEDE applies a hierarchical Bayesian mixture model to infer regions
14003of the genome that are bound by particular transcription factors. It starts
14004by identifying a set of candidate binding sites, and then aims to classify the
14005sites according to whether each site is bound or not bound by a transcription
14006factor. CENTIPEDE is an unsupervised learning algorithm that discriminates
14007between two different types of motif instances using as much relevant
14008information as possible.")
14009 (license (list license:gpl2+ license:gpl3+))))
14010
14011(define-public r-demultiplex
14012 (let ((commit "6e2a1422c8e6f418cfb271997eebc91f9195f299")
14013 (revision "1"))
14014 (package
14015 (name "r-demultiplex")
14016 (version (git-version "1.0.2" revision commit))
14017 (source
14018 (origin
14019 (method git-fetch)
14020 (uri (git-reference
14021 (url "https://github.com/chris-mcginnis-ucsf/MULTI-seq")
14022 (commit commit)))
14023 (file-name (git-file-name name version))
14024 (sha256
14025 (base32
14026 "01kv88wp8vdaq07sjk0d3d1cb553mq1xqg0war81pgmg63bgi38w"))))
14027 (properties `((upstream-name . "deMULTIplex")))
14028 (build-system r-build-system)
14029 (propagated-inputs
14030 (list r-kernsmooth r-reshape2 r-rtsne r-shortread r-stringdist))
14031 (home-page "https://github.com/chris-mcginnis-ucsf/MULTI-seq")
14032 (synopsis "MULTI-seq pre-processing and classification tools")
14033 (description
14034 "deMULTIplex is an R package for analyzing single-cell RNA sequencing
14035data generated with the MULTI-seq sample multiplexing method. The package
14036includes software to
14037
14038@enumerate
14039@item Convert raw MULTI-seq sample barcode library FASTQs into a sample
14040 barcode UMI count matrix, and
14041@item Classify cell barcodes into sample barcode groups.
14042@end enumerate
14043")
14044 (license license:cc0))))
14045
14046(define-public r-demultiplex2
14047 (let ((commit "c1ce09e8b5784b485680cf96b90bbc12eed96907")
14048 (revision "2"))
14049 (package
14050 (name "r-demultiplex2")
14051 (version (git-version "1.0.2" revision commit))
14052 (source
14053 (origin
14054 (method git-fetch)
14055 (uri (git-reference
14056 (url "https://github.com/Gartner-Lab/deMULTIplex2")
14057 (commit commit)))
14058 (file-name (git-file-name name version))
14059 (sha256
14060 (base32 "0fid5yh0hqg477h5xxq6c8yh8zs5jawjskzns05rndxhbzm51lpr"))))
14061 (properties `((upstream-name . "deMULTIplex2")))
14062 (build-system r-build-system)
14063 (propagated-inputs (list r-data-table
14064 r-devtools
14065 r-dplyr
14066 r-ggextra
14067 r-ggplot2
14068 r-gridextra
14069 r-magrittr
14070 r-mass
14071 r-matrix
14072 r-rcolorbrewer
14073 r-shortread
14074 r-stringdist
14075 r-tidyr
14076 r-uwot
14077 r-viridis
14078 r-xvector))
14079 (home-page "https://github.com/Gartner-Lab/deMULTIplex2")
14080 (synopsis "Robust sample demultiplexing for scRNA-seq")
14081 (description
14082 "This package implements a bioinformatics algorithm for demultiplexing
14083multiplexed single cell datasets. It is built on a statistical model of tag
14084read counts derived from the physical mechanism of tag cross-contamination.")
14085 (license license:cc0))))
14086
14087(define-public r-demuxmix
14088 (let ((commit "09a7918ca6e0cd23e6bbaed2b97388bc499e248e")
14089 (revision "1"))
14090 (package
14091 (name "r-demuxmix")
14092 (version (git-version "1.1.1" revision commit))
14093 (source (origin
14094 (method git-fetch)
14095 (uri (git-reference
14096 (url "https://github.com/huklein/demuxmix")
14097 (commit commit)))
14098 (file-name (git-file-name name version))
14099 (sha256
14100 (base32
14101 "03kfnns7m2447jsc3xplyv9qx8hvvdjmii7j837g3bb6smyxss96"))))
14102 (properties `((upstream-name . "demuxmix")))
14103 (build-system r-build-system)
14104 (propagated-inputs (list r-ggplot2 r-gridextra r-mass r-matrix))
14105 (native-inputs (list r-knitr r-testthat))
14106 (home-page "https://github.com/huklein/demuxmix")
14107 (synopsis
14108 "Demultiplexing oligo-barcoded scRNA-seq data using regression mixture models")
14109 (description
14110 "This package is used for demultiplexing single-cell sequencing
14111experiments of pooled cells. These cells are labeled with barcode
14112oligonucleotides. The package implements methods to fit regression mixture
14113models for a probabilistic classification of cells, including multiplet
14114detection. Demultiplexing error rates can be estimated, and methods for
14115quality control are provided.")
14116 (license license:artistic2.0))))
14117
14118(define-public gdc-client
14119 (package
14120 (name "gdc-client")
14121 (version "2.3")
14122 (source
14123 (origin
14124 (method git-fetch)
14125 (uri (git-reference
14126 (url "https://github.com/NCI-GDC/gdc-client.git")
14127 (commit version)))
14128 (file-name (git-file-name name version))
14129 (sha256
14130 (base32 "1yzd8j3p7w9x00qj6mx8kvlv253063pdnf7ixpkqmmwzbjhv072s"))))
14131 (build-system pyproject-build-system)
14132 (arguments
14133 (list
14134 #:phases
14135 #~(modify-phases %standard-phases
14136 (add-after 'unpack 'relax-requirements
14137 (lambda _
14138 (substitute* "setup.cfg"
14139 (("intervaltree~=3.0.2") "intervaltree")
14140 (("termcolor~=1.1.0") "termcolor")))))))
14141 (native-inputs
14142 (list python-flask
14143 python-httmock
14144 python-moto
14145 python-pytest
14146 python-requests-mock
14147 python-setuptools))
14148 (inputs
14149 (list python-importlib-metadata
14150 python-intervaltree
14151 python-jsonschema
14152 python-lxml
14153 python-progressbar2
14154 python-pyyaml
14155 python-requests
14156 python-termcolor))
14157 (home-page "https://gdc.nci.nih.gov/access-data/gdc-data-transfer-tool")
14158 (synopsis "GDC data transfer tool")
14159 (description
14160 "The gdc-client provides several convenience functions over
14161the GDC API which provides general download/upload via HTTPS.")
14162 (license license:asl2.0)))
14163
14164(define-public vsearch
14165 (package
14166 (name "vsearch")
14167 (version "2.9.1")
14168 (source
14169 (origin
14170 (method git-fetch)
14171 (uri (git-reference
14172 (url "https://github.com/torognes/vsearch")
14173 (commit (string-append "v" version))))
14174 (file-name (git-file-name name version))
14175 (sha256
14176 (base32
14177 "0vhrpjfdf75ba04b24xknp41790cvcgwl0vgpy7qbzj5xh2521ss"))
14178 (patches (search-patches "vsearch-unbundle-cityhash.patch"))
14179 (snippet
14180 '(begin
14181 ;; Remove bundled cityhash sources. The vsearch source is adjusted
14182 ;; for this in the patch.
14183 (delete-file "src/city.h")
14184 (delete-file "src/citycrc.h")
14185 (delete-file "src/city.cc")
14186 #t))))
14187 (build-system gnu-build-system)
14188 (inputs
14189 (list zlib bzip2 cityhash))
14190 (native-inputs
14191 (list autoconf automake))
14192 (synopsis "Sequence search tools for metagenomics")
14193 (description
14194 "VSEARCH supports DNA sequence searching, clustering, chimera detection,
14195dereplication, pairwise alignment, shuffling, subsampling, sorting and
14196masking. The tool takes advantage of parallelism in the form of SIMD
14197vectorization as well as multiple threads to perform accurate alignments at
14198high speed. VSEARCH uses an optimal global aligner (full dynamic programming
14199Needleman-Wunsch).")
14200 (home-page "https://github.com/torognes/vsearch")
14201 ;; vsearch uses non-portable SSE intrinsics so building fails on other
14202 ;; platforms.
14203 (supported-systems '("x86_64-linux"))
14204 ;; Dual licensed; also includes public domain source.
14205 (license (list license:gpl3 license:bsd-2))))
14206
14207(define-public pairadise
14208 (package
14209 (name "pairadise")
14210 (version "1.0.0")
14211 (source
14212 (origin
14213 (method git-fetch)
14214 (uri (git-reference
14215 (url "https://github.com/Xinglab/PAIRADISE")
14216 (commit (string-append "v" version))))
14217 (file-name (git-file-name name version))
14218 (sha256
14219 (base32
14220 "0ycwcqabm4zdng0a7j593g35d5yzvvwm7dyi3b8s19zdi4rjzrwd"))))
14221 (build-system pyproject-build-system)
14222 (arguments
14223 (list
14224 #:tests? #f ;no tests
14225 #:phases
14226 '(modify-phases %standard-phases
14227 (add-after 'unpack 'chdir
14228 (lambda _ (chdir "pairadise")))
14229 (add-before 'build '2to3
14230 (lambda _ (invoke "2to3" "--write" "--nobackups" "."))))))
14231 (native-inputs (list python-setuptools))
14232 (inputs (list star))
14233 (propagated-inputs (list python-pysam))
14234 (home-page "https://github.com/Xinglab/PAIRADISE")
14235 (synopsis "Paired replicate analysis of allelic differential splicing events")
14236 (description
14237 "PAIRADISE is a method for detecting @dfn{allele-specific alternative
14238splicing} (ASAS) from RNA-seq data. Unlike conventional approaches that
14239detect ASAS events one sample at a time, PAIRADISE aggregates ASAS signals
14240across multiple individuals in a population. By treating the two alleles of
14241an individual as paired, and multiple individuals sharing a heterozygous SNP
14242as replicates, PAIRADISE formulates ASAS detection as a statistical problem
14243for identifying differential alternative splicing from RNA-seq data with
14244paired replicates.")
14245 (license license:gpl3+)))
14246
14247(define-public r-pairadise
14248 (package
14249 (inherit pairadise)
14250 (name "r-pairadise")
14251 (build-system r-build-system)
14252 (arguments
14253 (list
14254 #:phases
14255 '(modify-phases %standard-phases
14256 (add-after 'unpack 'chdir
14257 (lambda _ (chdir "pairadise/src/pairadise_model"))))))
14258 (inputs '())
14259 (propagated-inputs (list r-doparallel r-foreach r-iterators r-nloptr))
14260 (license license:expat)))
14261
14262(define-public r-pairwiseadonis
14263 ;; There is no tag for version 0.4.1, nor is there a release archive.
14264 (let ((commit "cb190f7668a0c82c0b0853927db239e7b9ec3e83")
14265 (revision "1"))
14266 (package
14267 (name "r-pairwiseadonis")
14268 ;; The versioning scheme of this package is inconsistent, with versions
14269 ;; progressing from 0.21 to 0.3 and then to 0.4.1, which does not follow
14270 ;; a standard numerical order or convention (e.g., semantic versioning).
14271 (version (git-version "0.4.1" revision commit))
14272 (source
14273 (origin
14274 (method git-fetch)
14275 (uri (git-reference
14276 (url "https://github.com/pmartinezarbizu/pairwiseAdonis")
14277 (commit commit)))
14278 (file-name (git-file-name name version))
14279 (sha256
14280 (base32 "11hl6qqmr5vns476921802y0qmb46i1jf0rf7xfkyswlh6xkcl99"))))
14281 (properties `((upstream-name . "pairwiseAdonis")))
14282 (build-system r-build-system)
14283 (arguments
14284 (list
14285 #:phases
14286 ;; Move into the subdirectory containing the R package files
14287 '(modify-phases %standard-phases
14288 (add-after 'unpack 'move-to-subdir
14289 (lambda _ (chdir "pairwiseAdonis"))))))
14290 (propagated-inputs
14291 (list r-cluster
14292 r-permute
14293 r-vegan))
14294 (synopsis "Pairwise multilevel comparison using adonis")
14295 (description
14296 "This package implements two functions:
14297@itemize
14298@item @code{pairwise.adonis} is a wrapper function for multilevel pairwise
14299comparison using adonis2 from package vegan. The function returns adjusted
14300p-values using @code{p.adjust()}. It does not accept interaction between factors
14301neither strata.
14302@item @code{pairwise.adonis2} accepts a model formula like in adonis from vegan.
14303You can use interactions between factors and define strata to constrain
14304permutations. For pairwise comparison a list of unique pairwise combination of
14305factors is produced.
14306@end itemize")
14307 (home-page "https://github.com/pmartinezarbizu/pairwiseAdonis")
14308 (license license:gpl2+))))
14309
14310(define-public pardre
14311 (package
14312 (name "pardre")
14313 (version "2.2.5")
14314 (source
14315 (origin
14316 (method url-fetch)
14317 (uri (string-append "mirror://sourceforge/pardre/ParDRe-rel"
14318 version ".tar.gz"))
14319 (sha256
14320 (base32
14321 "105s4f8zs8hh0sc32r9p725n7idza9cj5jvp5z1m5pljjhgk3if5"))))
14322 (build-system gnu-build-system)
14323 (arguments
14324 `(#:tests? #f ; tests require "prove"
14325 #:phases
14326 (modify-phases %standard-phases
14327 (delete 'configure)
14328 (replace 'install
14329 (lambda* (#:key outputs #:allow-other-keys)
14330 (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
14331 (install-file "ParDRe" bin)))))))
14332 (inputs
14333 (list openmpi-c++ zlib))
14334 (synopsis "Parallel tool to remove duplicate DNA reads")
14335 (description
14336 "ParDRe is a parallel tool to remove duplicate genetic sequence reads.
14337Duplicate reads can be seen as identical or nearly identical sequences with
14338some mismatches. This tool lets users avoid the analysis of unnecessary
14339reads, reducing the time of subsequent procedures with the
14340dataset (e.g. assemblies, mappings, etc.). The tool is implemented with MPI
14341in order to exploit the parallel capabilities of multicore clusters. It is
14342faster than multithreaded counterparts (end of 2015) for the same number of
14343cores and, thanks to the message-passing technology, it can be executed on
14344clusters.")
14345 (home-page "https://sourceforge.net/projects/pardre/")
14346 (license license:gpl3+)))
14347
14348(define-public ngshmmalign
14349 (package
14350 (name "ngshmmalign")
14351 (version "0.1.1")
14352 (source
14353 (origin
14354 (method url-fetch)
14355 (uri (string-append "https://github.com/cbg-ethz/ngshmmalign/"
14356 "releases/download/" version
14357 "/ngshmmalign-" version ".tar.bz2"))
14358 (sha256
14359 (base32
14360 "0jryvlssi2r2ii1dxnx39yk6bh4yqgq010fnxrgfgbaj3ykijlzv"))))
14361 (build-system cmake-build-system)
14362 (arguments '(#:tests? #false)) ; there are none
14363 (inputs
14364 (list boost))
14365 (home-page "https://github.com/cbg-ethz/ngshmmalign/")
14366 (synopsis "Profile HMM aligner for NGS reads")
14367 (description
14368 "ngshmmalign is a profile HMM aligner for NGS reads designed particularly
14369for small genomes (such as those of RNA viruses like HIV-1 and HCV) that
14370experience substantial biological insertions and deletions.")
14371 (license license:gpl2+)))
14372
14373(define-public prinseq
14374 (package
14375 (name "prinseq")
14376 (version "0.20.4")
14377 (source
14378 (origin
14379 (method url-fetch)
14380 (uri (string-append "mirror://sourceforge/prinseq/standalone/"
14381 "prinseq-lite-" version ".tar.gz"))
14382 (sha256
14383 (base32
14384 "0vxmzvmm67whxrqdaaamwgjk7cf0fzfs5s673jgg00kz7g70splv"))))
14385 (build-system gnu-build-system)
14386 (arguments
14387 `(#:tests? #false ; no check target
14388 #:phases
14389 (modify-phases %standard-phases
14390 (delete 'configure)
14391 (delete 'build)
14392 (replace 'install
14393 (lambda* (#:key inputs outputs #:allow-other-keys)
14394 (let* ((out (assoc-ref outputs "out"))
14395 (bin (string-append out "/bin"))
14396 (scripts (find-files "." "prinseq.*.pl"))
14397 (guile (search-input-file inputs "bin/guile")))
14398 (substitute* scripts
14399 (("\"perl -pe")
14400 (string-append "\"" (which "perl") " -pe")))
14401 (for-each (lambda (file)
14402 (chmod file #o555)
14403 (install-file file bin)
14404 (wrap-script (string-append bin "/" (basename file))
14405 #:guile guile
14406 `("PERL5LIB" ":" prefix
14407 (,(getenv "PERL5LIB")))))
14408 scripts)))))))
14409 (inputs
14410 (list guile-3.0 ; for wrapper scripts
14411 perl
14412 perl-cairo
14413 perl-data-dumper
14414 perl-digest-md5
14415 perl-getopt-long
14416 perl-json
14417 perl-statistics-pca))
14418 (home-page "https://prinseq.sourceforge.net/")
14419 (synopsis "Preprocess sequence data in FASTA or FASTQ formats")
14420 (description
14421 "PRINSEQ is a bioinformatics tool to help you preprocess your genomic or
14422metagenomic sequence data in FASTA or FASTQ formats. The tool is written in
14423Perl and can be helpful if you want to filter, reformat, or trim your sequence
14424data. It also generates basic statistics for your sequences.")
14425 (license license:gpl3+)))
14426
14427(define-public shorah
14428 (package
14429 (name "shorah")
14430 (version "1.99.3")
14431 (source
14432 (origin
14433 (method url-fetch)
14434 (uri (string-append "https://github.com/cbg-ethz/shorah"
14435 "/releases/download/v" version
14436 "/shorah-" version ".tar.xz"))
14437 (sha256
14438 (base32
14439 "0zclbvdvbbfv3qpln3f47qa1yn77wf68z2b30vcxrzq3vsla4kgb"))))
14440 (build-system gnu-build-system)
14441 (arguments
14442 `(#:phases
14443 (modify-phases %standard-phases
14444 (add-after 'unpack 'fix-test-wrapper
14445 (lambda* (#:key outputs #:allow-other-keys)
14446 (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
14447 (substitute* "examples/run_end2end_test"
14448 (("\\$\\{interpreter\\} ../\\$\\{testscript\\}")
14449 (string-append bin "/${testscript}"))))))
14450 (delete 'check)
14451 (add-after 'install 'wrap-programs
14452 (lambda* (#:key outputs #:allow-other-keys)
14453 (let* ((out (assoc-ref outputs "out"))
14454 (site (string-append
14455 out "/lib/python"
14456 ,(version-major+minor
14457 (package-version python))
14458 "/site-packages"))
14459 (pythonpath (getenv "GUIX_PYTHONPATH"))
14460 (script (string-append out "/bin/shorah")))
14461 (chmod script #o555)
14462 (wrap-program script `("GUIX_PYTHONPATH" ":" prefix (,site ,pythonpath))))))
14463 (add-after 'wrap-programs 'check
14464 (lambda* (#:key tests? #:allow-other-keys)
14465 (when tests?
14466 (invoke "make" "check")))))))
14467 (inputs
14468 (list bash-minimal
14469 boost
14470 htslib
14471 python
14472 python-biopython
14473 python-numpy
14474 python-setuptools
14475 zlib))
14476 (native-inputs
14477 (list pkg-config))
14478 (home-page "")
14479 (synopsis "Short reads assembly into haplotypes")
14480 (description
14481 "ShoRAH is a project for the analysis of next generation sequencing data.
14482It is designed to analyse genetically heterogeneous samples. Its tools
14483provide error correction, haplotype reconstruction and estimation of the
14484frequency of the different genetic variants present in a mixed sample.")
14485 (license license:gpl3+)))
14486
14487(define-public sickle
14488 (package
14489 (name "sickle")
14490 (version "1.33")
14491 (source
14492 (origin
14493 (method git-fetch)
14494 (uri (git-reference
14495 (url "https://github.com/najoshi/sickle")
14496 (commit (string-append "v" version))))
14497 (file-name (git-file-name name version))
14498 (sha256
14499 (base32 "1bnq480lpylq9sfsa1y71b4qz0ipi2zjnp8ds48fh10ijlwmwmdc"))))
14500 (build-system gnu-build-system)
14501 (arguments
14502 (list
14503 #:tests? #f ;There are no tests
14504 #:phases
14505 #~(modify-phases %standard-phases
14506 (delete 'configure)
14507 (replace 'install
14508 (lambda _
14509 (install-file "sickle" (string-append #$output "/bin")))))))
14510 (propagated-inputs (list zlib))
14511 (home-page "https://github.com/najoshi/sickle")
14512 (synopsis "Adaptive trimming tool for FASTQ files using quality")
14513 (description
14514 "Sickle is a tool that trims reads based on quality and length
14515thresholds. It uses sliding windows to detect low-quality bases at the 3'-end
14516and high-quality bases at the 5'-end. Additionally, it discards reads based
14517on the length threshold.")
14518 (license license:expat)))
14519
14520(define-public ruby-bio-kseq
14521 (package
14522 (name "ruby-bio-kseq")
14523 (version "0.0.2")
14524 (source
14525 (origin
14526 (method url-fetch)
14527 (uri (rubygems-uri "bio-kseq" version))
14528 (sha256
14529 (base32
14530 "1xyaha46khb5jc6wzkbf7040jagac49jbimn0vcrzid0j8jdikrz"))))
14531 (build-system ruby-build-system)
14532 (arguments
14533 `(#:test-target "spec"))
14534 (native-inputs
14535 (list bundler ruby-rspec ruby-rake-compiler))
14536 (inputs
14537 (list zlib))
14538 (synopsis "Ruby bindings for the kseq.h FASTA/Q parser")
14539 (description
14540 "@code{Bio::Kseq} provides ruby bindings to the @code{kseq.h} FASTA and
14541FASTQ parsing code. It provides a fast iterator over sequences and their
14542quality scores.")
14543 (home-page "https://github.com/gusevfe/bio-kseq")
14544 (license license:expat)))
14545
14546(define-public bio-locus
14547 (package
14548 (name "bio-locus")
14549 (version "0.0.7")
14550 (source
14551 (origin
14552 (method url-fetch)
14553 (uri (rubygems-uri "bio-locus" version))
14554 (sha256
14555 (base32
14556 "02vmrxyimkj9sahsp4zhfhnmbvz6dbbqz1y01vglf8cbwvkajfl0"))))
14557 (build-system ruby-build-system)
14558 (native-inputs
14559 (list ruby-rspec))
14560 (synopsis "Tool for fast querying of genome locations")
14561 (description
14562 "Bio-locus is a tabix-like tool for fast querying of genome
14563locations. Many file formats in bioinformatics contain records that
14564start with a chromosome name and a position for a SNP, or a start-end
14565position for indels. Bio-locus allows users to store this chr+pos or
14566chr+pos+alt information in a database.")
14567 (home-page "https://github.com/pjotrp/bio-locus")
14568 (license license:expat)))
14569
14570(define-public bio-blastxmlparser
14571 (package
14572 (name "bio-blastxmlparser")
14573 (version "2.0.4")
14574 (source (origin
14575 (method url-fetch)
14576 (uri (rubygems-uri "bio-blastxmlparser" version))
14577 (sha256
14578 (base32
14579 "1wf4qygcmdjgcqm6flmvsagfr1gs9lf63mj32qv3z1f481zc5692"))))
14580 (build-system ruby-build-system)
14581 (propagated-inputs
14582 (list ruby-bio-logger ruby-nokogiri))
14583 (inputs
14584 (list ruby-rspec))
14585 (synopsis "Fast big data BLAST XML parser and library")
14586 (description
14587 "Very fast parallel big-data BLAST XML file parser which can be used as
14588command line utility. Use blastxmlparser to: Parse BLAST XML; filter output;
14589generate FASTA, JSON, YAML, RDF, JSON-LD, HTML, CSV, tabular output etc.")
14590 (home-page "https://github.com/pjotrp/blastxmlparser")
14591 (license license:expat)))
14592
14593(define-public bioruby
14594 (package
14595 (name "bioruby")
14596 (version "2.0.4")
14597 (source
14598 (origin
14599 (method url-fetch)
14600 (uri (rubygems-uri "bio" version))
14601 (sha256
14602 (base32
14603 "08aknxk2ingwscwfqpw5vnax6jpk1sxfaialravladb63hcl8dx9"))))
14604 (build-system ruby-build-system)
14605 (propagated-inputs
14606 (list ruby-libxml))
14607 (native-inputs
14608 (list which)) ; required for test phase
14609 (arguments
14610 (list
14611 #:phases
14612 #~(modify-phases %standard-phases
14613 (add-before 'build 'patch-test-command
14614 (lambda _
14615 (substitute* '("test/functional/bio/test_command.rb")
14616 (("/bin/sh") (which "sh")))
14617 (substitute* '("test/functional/bio/test_command.rb")
14618 (("/bin/ls") (which "ls")))
14619 (substitute* '("test/functional/bio/test_command.rb")
14620 (("which") (which "which")))
14621 (substitute* '("test/functional/bio/test_command.rb"
14622 "test/data/command/echoarg2.sh")
14623 (("/bin/echo") (which "echo"))))))))
14624 (synopsis "Ruby library, shell and utilities for bioinformatics")
14625 (description "BioRuby comes with a comprehensive set of Ruby development
14626tools and libraries for bioinformatics and molecular biology. BioRuby has
14627components for sequence analysis, pathway analysis, protein modelling and
14628phylogenetic analysis; it supports many widely used data formats and provides
14629easy access to databases, external programs and public web services, including
14630BLAST, KEGG, GenBank, MEDLINE and GO.")
14631 (home-page "http://bioruby.org/")
14632 ;; Code is released under Ruby license, except for setup
14633 ;; (LGPLv2.1+) and scripts in samples (which have GPL2 and GPL2+)
14634 (license (list license:ruby license:lgpl2.1+ license:gpl2+ ))))
14635
14636(define-public centrifuge
14637 (package
14638 (name "centrifuge")
14639 (version "1.0.4")
14640 (source
14641 (origin
14642 (method git-fetch)
14643 (uri (git-reference
14644 (url "https://github.com/DaehwanKimLab/centrifuge.git")
14645 (commit (string-append "v" version))))
14646 (file-name (git-file-name name version))
14647 (sha256
14648 (base32
14649 "167610gbz1rrh6ir3j7jcmhzg3x5msn7x7a3dpv7wmwdndnnqvg0"))))
14650 (build-system gnu-build-system)
14651 (arguments
14652 (list
14653 #:tests? #false ; no check target
14654 #:make-flags
14655 #~(list (string-append "prefix=" #$output))
14656 #:phases
14657 '(modify-phases %standard-phases
14658 (delete 'configure))))
14659 (inputs (list python-wrapper))
14660 (native-inputs
14661 (list pandoc perl ;for documentation
14662 which))
14663 (home-page "https://github.com/DaehwanKimLab/centrifuge/")
14664 (synopsis "Classifier for metagenomic sequences")
14665 (description "Centrifuge is a microbial classification engine that enables
14666rapid, accurate and sensitive labeling of reads and quantification of species
14667on desktop computers. The system uses an indexing scheme based on the
14668@dfn{Burrows-Wheeler transform} (BWT) and the @dfn{Ferragina-Manzini} (FM)
14669index, optimized specifically for the metagenomic classification problem.
14670Centrifuge requires a relatively small index (4.7 GB for all complete
14671bacterial and viral genomes plus the human genome) and classifies sequences at
14672very high speed, allowing it to process the millions of reads from a typical
14673high-throughput DNA sequencing run within a few minutes.")
14674 (license license:gpl3+)))
14675
14676(define-public bio-vcf
14677 (package
14678 (name "bio-vcf")
14679 (version "0.9.5")
14680 (source
14681 (origin
14682 (method url-fetch)
14683 (uri (rubygems-uri "bio-vcf" version))
14684 (sha256
14685 (base32
14686 "1glw5pn9s8z13spxk6yyfqaz80n9lga67f33w35nkpq9dwi2vg6g"))))
14687 (build-system ruby-build-system)
14688 (arguments
14689 (list
14690 #:phases
14691 #~(modify-phases %standard-phases
14692 (add-before 'check 'delete-failing-tests
14693 (lambda _
14694 ;; This feature compares inspected strings, which can
14695 ;; easily cause differences across different Ruby
14696 ;; versions.
14697 (delete-file "features/vcf_header.feature"))))))
14698 (native-inputs
14699 (list ruby-cucumber))
14700 (synopsis "Smart VCF parser DSL")
14701 (description
14702 "Bio-vcf provides a @acronym{DSL, domain specific language} for processing
14703the VCF format. Record named fields can be queried with regular expressions.
14704Bio-vcf is a new generation VCF parser, filter and converter. Bio-vcf is not
14705only very fast for genome-wide (WGS) data, it also comes with a filtering,
14706evaluation and rewrite language and can output any type of textual data,
14707including VCF header and contents in RDF and JSON.")
14708 (home-page "https://github.com/vcflib/bio-vcf")
14709 (license license:expat)))
14710
14711(define-public r-phantompeakqualtools
14712 (let ((commit "8d2b2d18c686d894ef5908b37da7adf72a07ef42")
14713 (revision "1"))
14714 (package
14715 (name "r-phantompeakqualtools")
14716 (version (git-version "1.2.2" revision commit))
14717 (source
14718 (origin
14719 (method git-fetch)
14720 (uri (git-reference
14721 (url "https://github.com/kundajelab/phantompeakqualtools")
14722 (commit commit)))
14723 (file-name (git-file-name name version))
14724 (sha256
14725 (base32
14726 "00anrvcwsp02d98qhj1xpj85644h2pp4kfzq6dgbmwmdr6jvy7p4"))))
14727 (build-system gnu-build-system)
14728 (arguments
14729 (list
14730 #:tests? #f ; There are no tests.
14731 #:phases
14732 #~(modify-phases %standard-phases
14733 (delete 'configure)
14734 (delete 'build)
14735 (replace 'install
14736 (lambda _
14737 (install-file "run_spp.R"
14738 (string-append #$output "/share/scripts")))))))
14739 (inputs
14740 (list r-minimal))
14741 (propagated-inputs
14742 (list r-catools
14743 r-snow
14744 r-snowfall
14745 r-bitops
14746 r-rsamtools
14747 r-spp
14748 gawk
14749 samtools
14750 boost
14751 gzip))
14752 (home-page "https://github.com/kundajelab/phantompeakqualtools")
14753 (synopsis "Informative enrichment for ChIP-seq data")
14754 (description "This package computes informative enrichment and quality
14755measures for ChIP-seq/DNase-seq/FAIRE-seq/MNase-seq data. It can also be
14756used to obtain robust estimates of the predominant fragment length or
14757characteristic tag shift values in these assays.")
14758 (license license:bsd-3))))
14759
14760(define-public rcas-web
14761 (package
14762 (name "rcas-web")
14763 (version "0.2.0")
14764 (source
14765 (origin
14766 (method git-fetch)
14767 (uri (git-reference
14768 (url "https://github.com/BIMSBbioinfo/rcas-web")
14769 (commit (string-append "v" version))))
14770 (file-name (git-file-name name version))
14771 (sha256
14772 (base32
14773 "0n1mh1132dx0y0ln2rhdy02rssyzp2xa2im5ynzjpnxxw0r6fgip"))))
14774 (build-system gnu-build-system)
14775 (arguments
14776 (list
14777 #:phases
14778 #~(modify-phases %standard-phases
14779 (add-after 'install 'wrap-executable
14780 (lambda* (#:key inputs outputs #:allow-other-keys)
14781 (let* ((json #$(this-package-input "guile-json"))
14782 (redis #$(this-package-input "guile-redis"))
14783 (path (string-append
14784 json "/share/guile/site/3.0:"
14785 redis "/share/guile/site/3.0")))
14786 (wrap-program (string-append #$output "/bin/rcas-web")
14787 `("GUILE_LOAD_PATH" ":" = (,path))
14788 `("GUILE_LOAD_COMPILED_PATH" ":" = (,path))
14789 `("R_LIBS_SITE" ":" = (,(getenv "R_LIBS_SITE"))))))))))
14790 (inputs
14791 (list bash-minimal
14792 r-minimal
14793 r-rcas
14794 r-biocmanager
14795 guile-3.0
14796 guile-json-4
14797 guile-redis))
14798 (native-inputs
14799 (list autoconf
14800 automake
14801 pkg-config))
14802 (home-page "https://github.com/BIMSBbioinfo/rcas-web")
14803 (synopsis "Web interface for RNA-centric annotation system (RCAS)")
14804 (description "This package provides a simple web interface for the
14805@dfn{RNA-centric annotation system} (RCAS).")
14806 (license license:agpl3+)))
14807
14808(define-public r-chipkernels
14809 (let ((commit "c9cfcacb626b1221094fb3490ea7bac0fd625372")
14810 (revision "1"))
14811 (package
14812 (name "r-chipkernels")
14813 (version (git-version "1.1" revision commit))
14814 (source
14815 (origin
14816 (method git-fetch)
14817 (uri (git-reference
14818 (url "https://github.com/ManuSetty/ChIPKernels")
14819 (commit commit)))
14820 (file-name (git-file-name name version))
14821 (sha256
14822 (base32
14823 "14bj5qhjm1hsm9ay561nfbqi9wxsa7y487df2idsaaf6z10nw4v0"))))
14824 (build-system r-build-system)
14825 (arguments
14826 (list
14827 #:phases
14828 #~(modify-phases %standard-phases
14829 (add-before 'install 'fix-r-4.5.0
14830 ;; Changes in R 4.5.0: C-Level Facilities.
14831 ;; Strict R headers are now the default. This removes the legacy
14832 ;; definitions of PI, Calloc, Realloc and Free: use M_PI,
14833 ;; R_Calloc, R_Realloc or R_Free instead.
14834 ;; https://cran.r-project.org/doc/manuals/r-release/NEWS.html
14835 (lambda _
14836 (substitute* "src/hamming_distance.c"
14837 (("Calloc") "R_Calloc")
14838 (("Free") "R_Free")
14839 (("Realloc") "R_Realloc")))))))
14840 (propagated-inputs
14841 (list r-iranges
14842 r-xvector
14843 r-biostrings
14844 r-bsgenome
14845 r-gtools
14846 r-genomicranges
14847 r-sfsmisc
14848 r-kernlab
14849 r-s4vectors
14850 r-biocgenerics))
14851 (home-page "https://github.com/ManuSetty/ChIPKernels")
14852 (synopsis "Build string kernels for DNA Sequence analysis")
14853 (description "ChIPKernels is an R package for building different string
14854kernels used for DNA Sequence analysis. A dictionary of the desired kernel
14855must be built and this dictionary can be used for determining kernels for DNA
14856Sequences.")
14857 (license license:gpl2+))))
14858
14859(define-public r-seqgl
14860 (package
14861 (name "r-seqgl")
14862 (version "1.1.4")
14863 (source
14864 (origin
14865 (method git-fetch)
14866 (uri (git-reference
14867 (url "https://github.com/ManuSetty/SeqGL")
14868 (commit version)))
14869 (file-name (git-file-name name version))
14870 (sha256
14871 (base32
14872 "1r6ywvhxl3ffv48lgj7sbd582mcc6dha3ksgc2qjlvjrnkbj3799"))))
14873 (build-system r-build-system)
14874 (propagated-inputs
14875 (list r-biostrings
14876 r-chipkernels
14877 r-genomicranges
14878 r-spams
14879 r-wgcna
14880 r-fastcluster))
14881 (home-page "https://github.com/ManuSetty/SeqGL")
14882 (synopsis "Group lasso for Dnase/ChIP-seq data")
14883 (description "SeqGL is a group lasso based algorithm to extract
14884transcription factor sequence signals from ChIP, DNase and ATAC-seq profiles.
14885This package presents a method which uses group lasso to discriminate between
14886bound and non bound genomic regions to accurately identify transcription
14887factors bound at the specific regions.")
14888 (license license:gpl2+)))
14889
14890(define-public r-seraster
14891 ;; There are no tags or releases.
14892 (let ((commit "4fdc1ffe5d3feb65de9880329d221cf276b393a1")
14893 (revision "1"))
14894 (package
14895 (name "r-seraster")
14896 (version (git-version "0.99.0" revision commit))
14897 (source
14898 (origin
14899 (method git-fetch)
14900 (uri (git-reference
14901 (url "https://github.com/JEFworks-Lab/SEraster")
14902 (commit commit)))
14903 (file-name (git-file-name name version))
14904 (sha256
14905 (base32 "0y33lk8q0h9nfzmf7slxxvw3l0djassp4l63nsjpm3p6z4pah5s4"))))
14906 (properties `((upstream-name . "SEraster")))
14907 (build-system r-build-system)
14908 (propagated-inputs (list r-biocparallel
14909 r-ggplot2
14910 r-matrix
14911 r-rearrr
14912 r-sf
14913 r-spatialexperiment
14914 r-summarizedexperiment))
14915 (native-inputs (list r-testthat))
14916 (home-page "https://github.com/JEFworks-Lab/SEraster")
14917 (synopsis
14918 "Rasterization framework for scalable spatial omics data analysis")
14919 (description
14920 "This package is a rasterization preprocessing framework that aggregates
14921cellular information into spatial pixels to reduce resource requirements for
14922spatial omics data analysis. SEraster reduces the number of points in spatial
14923omics datasets for downstream analysis through a process of rasterization where
14924single cells gene expression or cell-type labels are aggregated into equally
14925sized pixels based on a user-defined resolution. SEraster can be incorporated
14926with other packages to conduct downstream analyses for spatial omics datasets,
14927such as detecting spatially variable genes.")
14928 (license license:gpl3))))
14929
14930(define-public emboss
14931 (package
14932 (name "emboss")
14933 (version "6.5.7")
14934 (source (origin
14935 (method url-fetch)
14936 (uri (string-append "ftp://emboss.open-bio.org/pub/EMBOSS/old/"
14937 (version-major+minor version) ".0/"
14938 "EMBOSS-" version ".tar.gz"))
14939 (sha256
14940 (base32
14941 "0vsmz96gc411yj2iyzdrsmg4l2n1nhgmp7vrgzlxx3xixv9xbf0q"))))
14942 (build-system gnu-build-system)
14943 (arguments
14944 `(#:configure-flags
14945 ,#~(list (string-append "--with-hpdf="
14946 #$(this-package-input "libharu")))
14947 #:phases
14948 (modify-phases %standard-phases
14949 (add-after 'unpack 'fix-checks
14950 (lambda _
14951 ;; The PNGDRIVER tests check for the presence of libgd, libpng
14952 ;; and zlib, but assume that they are all found at the same
14953 ;; prefix.
14954 (substitute* "configure.in"
14955 (("CHECK_PNGDRIVER")
14956 "LIBS=\"$LIBS -lgd -lpng -lz -lm\"
14957AC_DEFINE([PLD_png], [1], [Define to 1 if PNG support is available])
14958AM_CONDITIONAL(AMPNG, true)"))
14959 #t))
14960 (add-after 'fix-checks 'disable-update-check
14961 (lambda _
14962 ;; At build time there is no connection to the Internet, so
14963 ;; looking for updates will not work.
14964 (substitute* "Makefile.am"
14965 (("\\$\\(bindir\\)/embossupdate") ""))
14966 #t))
14967 (add-after 'disable-update-check 'autogen
14968 (lambda _ (invoke "autoreconf" "-vif") #t)))))
14969 (inputs
14970 (list perl
14971 libpng
14972 gd
14973 libx11
14974 libharu
14975 zlib))
14976 (native-inputs
14977 (list autoconf automake libtool pkg-config))
14978 (home-page "https://emboss.sourceforge.net")
14979 (synopsis "Molecular biology analysis suite")
14980 (description "EMBOSS is the \"European Molecular Biology Open Software
14981Suite\". EMBOSS is an analysis package specially developed for the needs of
14982the molecular biology (e.g. EMBnet) user community. The software
14983automatically copes with data in a variety of formats and even allows
14984transparent retrieval of sequence data from the web. It also provides a
14985number of libraries for the development of software in the field of molecular
14986biology. EMBOSS also integrates a range of currently available packages and
14987tools for sequence analysis into a seamless whole.")
14988 (license license:gpl2+)))
14989
14990(define-public bits
14991 (let ((revision "1")
14992 (commit "3cc4567896d9d6442923da944beb704750a08d2d"))
14993 (package
14994 (name "bits")
14995 ;; The version is 2.13.0 even though no release archives have been
14996 ;; published as yet.
14997 (version (git-version "2.13.0" revision commit))
14998 (source (origin
14999 (method git-fetch)
15000 (uri (git-reference
15001 (url "https://github.com/arq5x/bits")
15002 (commit commit)))
15003 (file-name (git-file-name name version))
15004 (sha256
15005 (base32
15006 "17n2kffk4kmhivd8c98g2vr6y1s23vbg4sxlxs689wni66797hbs"))))
15007 (build-system gnu-build-system)
15008 (arguments
15009 `(#:tests? #f ;no tests included
15010 #:phases
15011 (modify-phases %standard-phases
15012 (delete 'configure)
15013 (add-after 'unpack 'remove-cuda
15014 (lambda _
15015 (substitute* "Makefile"
15016 ((".*_cuda") "")
15017 (("(bits_test_intersections) \\\\" _ match) match))
15018 #t))
15019 (replace 'install
15020 (lambda* (#:key outputs #:allow-other-keys)
15021 (copy-recursively
15022 "bin" (string-append (assoc-ref outputs "out") "/bin"))
15023 #t)))))
15024 (inputs
15025 (list gsl zlib))
15026 (home-page "https://github.com/arq5x/bits")
15027 (synopsis "Implementation of binary interval search algorithm")
15028 (description "This package provides an implementation of the
15029BITS (Binary Interval Search) algorithm, an approach to interval set
15030intersection. It is especially suited for the comparison of diverse genomic
15031datasets and the exploration of large datasets of genome
15032intervals (e.g. genes, sequence alignments).")
15033 (license license:gpl2))))
15034
15035(define-public piranha
15036 ;; There is no release tarball for the latest version. The latest commit is
15037 ;; older than one year at the time of this writing.
15038 (let ((revision "1")
15039 (commit "0466d364b71117d01e4471b74c514436cc281233"))
15040 (package
15041 (name "piranha")
15042 (version (git-version "1.2.1" revision commit))
15043 (source
15044 (origin
15045 (method git-fetch)
15046 (uri (git-reference
15047 (url "https://github.com/smithlabcode/piranha")
15048 (commit commit)))
15049 (file-name (git-file-name name version))
15050 (sha256
15051 (base32 "117dc0zf20c61jam69sk4abl57ah6yi6i7qra7d7y5zrbgk12q5n"))))
15052 (build-system gnu-build-system)
15053 (arguments
15054 (list
15055 #:test-target "test"
15056 #:configure-flags
15057 #~(list (string-append "--with-bam_tools_headers="
15058 #$(this-package-input "bamtools")
15059 "/include/bamtools")
15060 (string-append "--with-bam_tools_library="
15061 #$(this-package-input "bamtools")
15062 "/lib/bamtools"))
15063 #:phases
15064 #~(modify-phases %standard-phases
15065 (add-after 'unpack 'copy-smithlab-cpp
15066 (lambda* (#:key inputs #:allow-other-keys)
15067 (mkdir-p "./src/smithlab_cpp/")
15068 (copy-recursively (assoc-ref inputs "smithlab_cpp-checkout")
15069 "./src/smithlab_cpp/")))
15070 (add-after 'install 'install-to-store
15071 (lambda _
15072 (let ((bin (string-append #$output "/bin")))
15073 (for-each (lambda (file)
15074 (install-file file bin))
15075 (find-files "bin" ".*"))))))))
15076 (inputs
15077 (list bamtools
15078 samtools-0.1
15079 gsl
15080 (let ((commit "3723e2db438c51501d0423429ff396c3035ba46a"))
15081 (origin
15082 (method git-fetch)
15083 (uri (git-reference
15084 (url "https://github.com/smithlabcode/smithlab_cpp")
15085 (commit commit)))
15086 (file-name "smithlab_cpp-checkout")
15087 (sha256
15088 (base32
15089 "0l4gvbwslw5ngziskja41c00x1r06l3yidv7y0xw9djibhykzy0g"))))))
15090 (native-inputs (list python-2))
15091 (home-page "https://github.com/smithlabcode/piranha")
15092 (synopsis "Peak-caller for CLIP-seq and RIP-seq data")
15093 (description
15094 "Piranha is a peak-caller for genomic data produced by CLIP-seq and
15095RIP-seq experiments. It takes input in BED or BAM format and identifies
15096regions of statistically significant read enrichment. Additional covariates
15097may optionally be provided to further inform the peak-calling process.")
15098 (license license:gpl3+))))
15099
15100(define-public filevercmp
15101 (let ((commit "1a9b779b93d0b244040274794d402106907b71b7")
15102 (revision "1"))
15103 (package
15104 (name "filevercmp")
15105 (version (git-version "0" revision commit))
15106 (source (origin
15107 (method git-fetch)
15108 (uri (git-reference
15109 (url "https://github.com/ekg/filevercmp")
15110 (commit commit)))
15111 (file-name (git-file-name name commit))
15112 (sha256
15113 (base32
15114 "1j9vxsy0y050v59h0q1d6501fcw1kjvj0d18l1xk2zyg0jzj247c"))))
15115 (build-system gnu-build-system)
15116 (arguments
15117 `(#:tests? #f ; There are no tests to run.
15118 #:phases
15119 (modify-phases %standard-phases
15120 (delete 'configure) ; There is no configure phase.
15121 (replace 'install
15122 (lambda* (#:key outputs #:allow-other-keys)
15123 (let ((out (assoc-ref outputs "out")))
15124 (install-file "filevercmp" (string-append out "/bin"))
15125 (install-file "filevercmp.h" (string-append out "/include"))
15126 #t))))))
15127 (home-page "https://github.com/ekg/filevercmp")
15128 (synopsis "This program compares version strings")
15129 (description "This program compares version strings. It intends to be a
15130replacement for strverscmp.")
15131 (license license:gpl3+))))
15132
15133(define-public multiqc
15134 (package
15135 (name "multiqc")
15136 (version "1.14")
15137 (source
15138 (origin
15139 (method url-fetch)
15140 (uri (pypi-uri "multiqc" version))
15141 (sha256
15142 (base32
15143 "0qlk2h0765hxp1w9hqf925rh8hq642lzgs6ppg91wln9y02s9fyw"))))
15144 (build-system pyproject-build-system)
15145 (arguments
15146 `(#:phases
15147 (modify-phases %standard-phases
15148 (replace 'check
15149 (lambda* (#:key inputs tests? #:allow-other-keys)
15150 (when tests?
15151 (setenv "HOME" "/tmp")
15152 (let ((here (getcwd)))
15153 (copy-recursively (assoc-ref inputs "tests") "/tmp/tests")
15154 (with-directory-excursion "/tmp/tests"
15155 (invoke "multiqc" "data" "--ignore" "data/modules")))))))))
15156 (inputs
15157 (list python-click
15158 python-coloredlogs
15159 python-future
15160 python-jinja2
15161 python-lzstring
15162 python-markdown
15163 python-matplotlib
15164 python-networkx
15165 python-numpy
15166 python-pyyaml
15167 python-requests
15168 python-rich
15169 python-rich-click
15170 python-setuptools ; For pkg_resources.
15171 python-simplejson
15172 python-spectra))
15173 (native-inputs
15174 `(("python-pytest" ,python-pytest)
15175 ("python-wheel" ,python-wheel)
15176 ("tests"
15177 ,(let ((commit "c3e7400affe3f3ca996973805797af61b93070ba"))
15178 (origin
15179 (method git-fetch)
15180 (uri (git-reference
15181 (url "https://github.com/ewels/MultiQC_TestData")
15182 (commit commit)))
15183 (file-name (git-file-name "multiqc-test-data" commit))
15184 (sha256
15185 (base32
15186 "0wwqbkbfnqj5ax6l0da4csbmv1sw7ya7mwvdwryckaiqmkxy80va")))))))
15187 (home-page "https://multiqc.info")
15188 (synopsis "Aggregate bioinformatics analysis reports")
15189 (description
15190 "MultiQC is a tool to aggregate bioinformatics results across many
15191samples into a single report. It contains modules for a large number of
15192common bioinformatics tools.")
15193 (license license:gpl3+)))
15194
15195(define-public r-chromvarmotifs
15196 (let ((commit "38bed559c1f4770b6c91c80bf3f8ea965da26076")
15197 (revision "1"))
15198 (package
15199 (name "r-chromvarmotifs")
15200 (version (git-version "0.2.0" revision commit))
15201 (source
15202 (origin
15203 (method git-fetch)
15204 (uri (git-reference
15205 (url "https://github.com/GreenleafLab/chromVARmotifs")
15206 (commit commit)))
15207 (file-name (git-file-name name version))
15208 (sha256
15209 (base32 "0i9v1m1hrg1lkd2pnkj5nnrpks6vhhhpbdhsfl2lmjak4npxxr5q"))))
15210 (properties `((upstream-name . "chromVARmotifs")))
15211 (build-system r-build-system)
15212 (propagated-inputs
15213 `(("r-tfbstools" ,r-tfbstools)))
15214 (home-page "https://github.com/GreenleafLab/chromVARmotifs")
15215 (synopsis "Stores motif collections for use with motifmatchr or chromVAR")
15216 (description
15217 "This package stores motif collections as lists of @dfn{position
15218frequency matrix} (PWMatrixList) objects provided by the @code{TFBSTools}
15219package for use in R with packages like @code{motifmatchr} or
15220@code{chromVAR}.")
15221 (license license:expat))))
15222
15223(define-public r-raremetals2
15224 (package
15225 (name "r-raremetals2")
15226 (version "0.1")
15227 (source
15228 (origin
15229 (method url-fetch)
15230 (uri (string-append "http://genome.sph.umich.edu/w/images/"
15231 "b/b7/RareMETALS2_" version ".tar.gz"))
15232 (sha256
15233 (base32
15234 "0z5ljcgvnm06ja9lm85a3cniq7slxcy37aqqkxrdidr79an5fs4s"))))
15235 (properties `((upstream-name . "RareMETALS2")))
15236 (build-system r-build-system)
15237 (propagated-inputs
15238 (list r-seqminer r-mvtnorm r-mass r-compquadform r-getopt))
15239 (home-page "http://genome.sph.umich.edu/wiki/RareMETALS2")
15240 (synopsis "Analyze gene-level association tests for binary trait")
15241 (description
15242 "The R package rareMETALS2 is an extension of the R package rareMETALS.
15243It was designed to meta-analyze gene-level association tests for binary trait.
15244While rareMETALS offers a near-complete solution for meta-analysis of
15245gene-level tests for quantitative trait, it does not offer the optimal
15246solution for binary trait. The package rareMETALS2 offers improved features
15247for analyzing gene-level association tests in meta-analyses for binary
15248trait.")
15249 (license license:gpl3)))
15250
15251(define-public r-rnacrosslinkoo
15252 (let ((commit "a317e0fa6ddf34c309529d57390769e2b2b5bfb7")
15253 (revision "1"))
15254 (package
15255 (name "r-rnacrosslinkoo")
15256 (version (git-version "0.1.3" revision commit))
15257 (source
15258 (origin
15259 (method git-fetch)
15260 (uri (git-reference
15261 (url "https://github.com/cran/rnaCrosslinkOO")
15262 (commit commit)))
15263 (file-name (git-file-name name version))
15264 (sha256
15265 (base32 "0csv9924z0ish960k034qzv3gxh1yabnxni8hsrn5j6xl1r3cdpl"))))
15266 (properties `((upstream-name . "rnaCrosslinkOO")))
15267 (build-system r-build-system)
15268 (propagated-inputs (list r-classdiscovery
15269 r-doparallel
15270 r-foreach
15271 r-genomicranges
15272 r-ggplot2
15273 r-ggrepel
15274 r-heatmap3
15275 r-igraph
15276 r-iranges
15277 r-mass
15278 r-mixtools
15279 r-patchwork
15280 r-r4rna
15281 r-rcolorbrewer
15282 r-reshape2
15283 r-rrna
15284 r-s4vectors
15285 r-seqinr
15286 r-tidyverse
15287 r-topdom))
15288 (native-inputs (list r-knitr r-testthat))
15289 (home-page "https://github.com/cran/rnaCrosslinkOO")
15290 (synopsis "Analysis of RNA crosslinking data")
15291 (description
15292 "The package is ideal for analyzing RNA structure and chemical probing data.")
15293 (license license:gpl3))))
15294
15295(define-public r-rnaseqdtu
15296 (let ((commit "5bee1e769d2e1dc6a3f1cecb78078050eeb5b9ac")
15297 (revision "1"))
15298 (package
15299 (name "r-rnaseqdtu")
15300 (version (git-version "2.0" revision commit))
15301 (source
15302 (origin
15303 (method git-fetch)
15304 (uri (git-reference
15305 (url "https://github.com/mikelove/rnaseqDTU/")
15306 (commit commit)))
15307 (file-name (git-file-name name version))
15308 (sha256
15309 (base32 "0jfi1ydsk8m5nadwnih48v87nnxdc7s3f0pny4axmnj40dd42as0"))))
15310 (properties `((upstream-name . "rnaseqDTU")))
15311 (build-system r-build-system)
15312 (propagated-inputs
15313 (list r-deseq2
15314 r-devtools
15315 r-dexseq
15316 r-drimseq
15317 r-edger
15318 r-rafalib
15319 r-stager))
15320 (native-inputs (list r-knitr))
15321 (home-page "https://github.com/mikelove/rnaseqDTU/")
15322 (synopsis "RNA-seq workflow for differential transcript usage")
15323 (description
15324 "This package provides an RNA-seq workflow for differential transcript
15325usage (DTU) following Salmon quantification. This workflow performs a DTU
15326analysis on simulated data. It also shows how to use stageR to perform
15327two-stage testing of DTU, a statistical framework to screen at the gene level
15328and then confirm which transcripts within the significant genes show evidence
15329of DTU.")
15330 (license license:artistic2.0))))
15331
15332(define-public r-dropbead
15333 (let ((commit "d746c6f3b32110428ea56d6a0001ce52a251c247")
15334 (revision "2"))
15335 (package
15336 (name "r-dropbead")
15337 (version (string-append "0-" revision "." (string-take commit 7)))
15338 (source
15339 (origin
15340 (method git-fetch)
15341 (uri (git-reference
15342 (url "https://github.com/rajewsky-lab/dropbead")
15343 (commit commit)))
15344 (file-name (git-file-name name version))
15345 (sha256
15346 (base32
15347 "0sbzma49aiiyw8b0jpr7fnhzys9nsqmp4hy4hdz1gzyg1lhnca26"))))
15348 (build-system r-build-system)
15349 ;; Tests make invalid assumption about test files and their locations.
15350 (arguments (list #:tests? #false))
15351 (propagated-inputs
15352 (list r-ggplot2 r-rcolorbrewer r-gridextra r-gplots r-plyr))
15353 (native-inputs (list r-data-table))
15354 (home-page "https://github.com/rajewsky-lab/dropbead")
15355 (synopsis "Basic exploration and analysis of Drop-seq data")
15356 (description "This package offers a quick and straight-forward way to
15357explore and perform basic analysis of single cell sequencing data coming from
15358droplet sequencing. It has been particularly tailored for Drop-seq.")
15359 (license license:gpl3))))
15360
15361(define-public r-cellchat
15362 (let ((commit
15363 "21edd226ca408e4c413408f98562d71ee0b54e5d")
15364 (revision "1"))
15365 (package
15366 (name "r-cellchat")
15367 (version (git-version "1.0.0" revision commit))
15368 (source
15369 (origin
15370 (method git-fetch)
15371 (uri (git-reference
15372 (url "https://github.com/sqjin/CellChat")
15373 (commit commit)))
15374 (file-name (git-file-name name version))
15375 (sha256
15376 (base32
15377 "0cvzl9mi8jjznpql2gv67swnk1dndn3a2h22z5l84h7lwpwjmh53"))
15378 (snippet
15379 '(for-each delete-file '("src/CellChat.so"
15380 "src/CellChat_Rcpp.o"
15381 "src/RcppExports.o")))))
15382 (properties `((upstream-name . "CellChat")))
15383 (build-system r-build-system)
15384 (propagated-inputs
15385 (list r-biocgenerics
15386 r-circlize
15387 r-colorspace
15388 r-complexheatmap
15389 r-cowplot
15390 r-dplyr
15391 r-expm
15392 r-fnn
15393 r-forcats
15394 r-future
15395 r-future-apply
15396 r-gg-gap
15397 r-ggalluvial
15398 r-ggplot2
15399 r-ggrepel
15400 r-igraph
15401 r-irlba
15402 r-magrittr
15403 r-matrix
15404 r-nmf
15405 r-patchwork
15406 r-pbapply
15407 r-rcolorbrewer
15408 r-rcpp
15409 r-rcppeigen
15410 r-reshape2
15411 r-reticulate
15412 r-rspectra
15413 r-rtsne
15414 r-scales
15415 r-shape
15416 r-sna
15417 r-stringr
15418 r-svglite))
15419 (native-inputs (list r-knitr))
15420 (home-page "https://github.com/sqjin/CellChat")
15421 (synopsis "Analysis of cell-cell communication from single-cell transcriptomics data")
15422 (description
15423 "This package infers, visualizes and analyzes the cell-cell
15424communication networks from scRNA-seq data.")
15425 (license license:gpl3))))
15426
15427(define-public r-cellchat-2
15428 (let ((commit "b05405af0f4f2cac99f2211e888d42de4c5a9d59")
15429 (revision "1"))
15430 (package
15431 (name "r-cellchat")
15432 (version (git-version "2.1.2" revision commit))
15433 (source
15434 (origin
15435 (method git-fetch)
15436 (uri (git-reference
15437 (url "https://github.com/jinworks/CellChat")
15438 (commit commit)))
15439 (file-name (git-file-name name version))
15440 (sha256
15441 (base32 "14s7bl70xi21ivqr1c3qx6kjf1ndlyxag880xldqkfsqpksvyvkc"))
15442 (snippet '(for-each delete-file
15443 '("src/CellChat.so" "src/CellChat_Rcpp.o"
15444 "src/RcppExports.o")))))
15445 (properties `((upstream-name . "CellChat")))
15446 (build-system r-build-system)
15447 (propagated-inputs (list r-biocgenerics
15448 r-biocneighbors
15449 r-bslib
15450 r-circlize
15451 r-colorspace
15452 r-complexheatmap
15453 r-cowplot
15454 r-dplyr
15455 r-fnn
15456 r-future
15457 r-future-apply
15458 r-ggalluvial
15459 r-ggnetwork
15460 r-ggplot2
15461 r-ggpubr
15462 r-ggrepel
15463 r-igraph
15464 r-irlba
15465 r-magrittr
15466 r-matrix
15467 r-nmf
15468 r-patchwork
15469 r-pbapply
15470 r-plotly
15471 r-plyr
15472 r-rcolorbrewer
15473 r-rcpp
15474 r-rcppeigen
15475 r-reshape2
15476 r-reticulate
15477 r-rspectra
15478 r-scales
15479 r-shape
15480 r-shiny
15481 r-sna
15482 r-stringr
15483 r-svglite))
15484 (native-inputs (list r-knitr))
15485 (home-page "https://github.com/jinworks/CellChat")
15486 (synopsis
15487 "Inference of cell-cell communication from single-cell and transcriptomics")
15488 (description
15489 "This R tool infers, visualizes, and analyzes cell-cell communication networks.
15490It supports scRNA-seq and spatially resolved transcriptomics data.")
15491 (license license:gpl3))))
15492
15493(define-public r-copykat
15494 (let ((commit ;no tag
15495 "256de33dfc1b80a1a0ac9e098c5557f95a4e0d53")
15496 (revision "0"))
15497 (package
15498 (name "r-copykat")
15499 (version (git-version "1.0.8" revision commit))
15500 (source
15501 (origin
15502 (method git-fetch)
15503 (uri (git-reference
15504 (url "https://github.com/navinlabcode/copykat")
15505 (commit commit)))
15506 (file-name (git-file-name name version))
15507 (sha256
15508 (base32
15509 "0ckyqnial3imcqlgd6xfgwk5w977l1i87sx4kdbwdvg40w0vh1j8"))))
15510 (properties `((upstream-name . "copykat")))
15511 (build-system r-build-system)
15512 (propagated-inputs
15513 (list r-cluster
15514 r-dlm
15515 r-gplots
15516 r-mcmcpack
15517 r-mixtools
15518 r-paralleldist
15519 r-rcolorbrewer))
15520 (native-inputs (list r-knitr))
15521 (home-page "https://github.com/navinlabcode/copykat")
15522 (synopsis "Inference of genomic copy number from single cell RNAseq data")
15523 (description
15524 "This package Copynumber KAryotyping of Tumors infers genomic copy
15525number and subclonal structure of human tumors using integrative Bayesian
15526approaches to identify genome-wide aneuploidy at 5MB resolution in single
15527cells data. It separates tumor cells and tumor subclones from normal cells
15528using high-throughput sc-RNAseq data.")
15529 (license license:gpl2))))
15530
15531(define-public sambamba
15532 ;; The update that fixes deprecations doesn't have a tag yet.
15533 (let ((base-version "1.0.1")
15534 (commit "dba65af68708859203338caa04ac62265fcebeab")
15535 (revision "0"))
15536 (package
15537 (name "sambamba")
15538 (version (git-version base-version revision commit))
15539 (source (origin
15540 (method git-fetch)
15541 (uri (git-reference
15542 (url "https://github.com/biod/sambamba")
15543 (commit commit)))
15544 (file-name (git-file-name name version))
15545 (sha256
15546 (base32
15547 "1wmka4ickrsfvkhc1mrrkxqy65g6wylsv0scmjq7m8l8qnllxbak"))))
15548 (build-system gnu-build-system)
15549 (arguments
15550 (list
15551 #:tests? #f ; there is no test target
15552 #:parallel-build? #f ; not supported
15553 #:phases
15554 #~(modify-phases %standard-phases
15555 (delete 'configure)
15556 (add-after 'unpack 'prepare-build-tools
15557 (lambda* (#:key inputs #:allow-other-keys)
15558 (substitute* "Makefile"
15559 (("\\$\\(shell which ldmd2\\)") (which "ldmd2")))
15560 (setenv "CC" "gcc")
15561 (setenv "D_LD" (which "ld.gold"))))
15562 (add-after 'unpack 'unbundle-prerequisites
15563 (lambda _
15564 (substitute* "Makefile"
15565 (("= lz4/lib/liblz4.a") "= -L-llz4")
15566 (("ldc_version_info lz4-static") "ldc_version_info"))))
15567 (replace 'install
15568 (lambda* (#:key outputs #:allow-other-keys)
15569 (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
15570 (mkdir-p bin)
15571 (copy-file (string-append "bin/sambamba-" #$base-version)
15572 (string-append bin "/sambamba")))))
15573 (add-after 'install 'remove-d-include-references
15574 #$(remove-d-include-references-phase
15575 (this-package-input "ldc"))))))
15576 (inputs
15577 (list ldc lz4 zlib))
15578 (native-inputs
15579 (list python))
15580 (home-page "https://github.com/biod/sambamba")
15581 (synopsis "Tools for working with SAM/BAM data")
15582 (description "Sambamba is a high performance modern robust and fast tool
15583(and library), written in the D programming language, for working with SAM and
15584BAM files. Current parallelised functionality is an important subset of
15585samtools functionality, including view, index, sort, markdup, and depth.")
15586 (license license:gpl2+))))
15587
15588(define-public r-rphyloxml
15589 (let ((commit "a30e39249239b2de01d6964ae2a2205a6c48b475")
15590 (revision "1"))
15591 (package
15592 (name "r-rphyloxml")
15593 (version (git-version "0.0-9000" revision commit))
15594 (source
15595 (origin
15596 (method git-fetch)
15597 (uri (git-reference
15598 (url "https://github.com/USCbiostats/rphyloxml")
15599 (commit commit)))
15600 (file-name (git-file-name name version))
15601 (sha256
15602 (base32 "15ijzqvjxx6vqyqlg5asdbqlhw1g0ix6palf1rism3si0qapddgw"))
15603 (snippet
15604 '(delete-file "docs/jquery.sticky-kit.min.js"))))
15605 (properties `((upstream-name . "rphyloxml")))
15606 (build-system r-build-system)
15607 (arguments
15608 (list
15609 #:modules
15610 '((guix build r-build-system)
15611 (guix build minify-build-system)
15612 (guix build utils))
15613 #:imported-modules
15614 `(,@%r-build-system-modules (guix build minify-build-system))
15615 #:phases
15616 '(modify-phases %standard-phases
15617 (add-after 'unpack 'process-javascript
15618 (lambda* (#:key inputs #:allow-other-keys)
15619 (with-directory-excursion "inst/"
15620 (minify (assoc-ref inputs "js-jquery-sticky-kit")
15621 #:target "docs/jquery.sticky-kit.min.js")))))))
15622 (propagated-inputs (list r-ape r-xml2))
15623 (native-inputs
15624 `(("esbuild" ,esbuild)
15625 ("js-jquery-sticky-kit"
15626 ,(origin
15627 (method url-fetch)
15628 (uri "https://raw.githubusercontent.com/leafo/sticky-kit/\
15629v1.1.2/jquery.sticky-kit.js")
15630 (sha256
15631 (base32
15632 "17c3a1hqc3ybwj7hpw8prazajp2x98aq7nyfn71h6lzjvblq297g"))))))
15633 (home-page "https://github.com/USCbiostats/rphyloxml")
15634 (synopsis "Read and write phyloXML files in R")
15635 (description
15636 "The package reads phylogenetic data in the @code{phyloXML} format.
15637It also includes functions for writing data in this format.")
15638 (license license:expat))))
15639
15640(define-public ritornello
15641 (package
15642 (name "ritornello")
15643 (version "2.0.1")
15644 (source (origin
15645 (method git-fetch)
15646 (uri (git-reference
15647 (url "https://github.com/KlugerLab/Ritornello")
15648 (commit (string-append "v" version))))
15649 (file-name (git-file-name name version))
15650 (sha256
15651 (base32
15652 "1xahvq215qld7x1w8vpa5zbrsj6p9crb9shqa2x89sb0aaxa02jk"))))
15653 (build-system gnu-build-system)
15654 (arguments
15655 `(#:tests? #f ; there are no tests
15656 #:phases
15657 (modify-phases %standard-phases
15658 (add-after 'unpack 'patch-samtools-references
15659 (lambda* (#:key inputs #:allow-other-keys)
15660 (substitute* '("src/SamStream.h"
15661 "src/FLD.cpp")
15662 (("<sam.h>") "<samtools/sam.h>"))
15663 #t))
15664 (delete 'configure)
15665 (replace 'install
15666 (lambda* (#:key inputs outputs #:allow-other-keys)
15667 (let* ((out (assoc-ref outputs "out"))
15668 (bin (string-append out "/bin/")))
15669 (mkdir-p bin)
15670 (install-file "bin/Ritornello" bin)
15671 #t))))))
15672 (inputs
15673 (list samtools-0.1 fftw boost zlib))
15674 (home-page "https://github.com/KlugerLab/Ritornello")
15675 (synopsis "Control-free peak caller for ChIP-seq data")
15676 (description "Ritornello is a ChIP-seq peak calling algorithm based on
15677signal processing that can accurately call binding events without the need to
15678do a pair total DNA input or IgG control sample. It has been tested for use
15679with narrow binding events such as transcription factor ChIP-seq.")
15680 (license license:gpl3+)))
15681
15682(define-public trim-galore
15683 (package
15684 (name "trim-galore")
15685 (version "0.6.6")
15686 (source
15687 (origin
15688 (method git-fetch)
15689 (uri (git-reference
15690 (url "https://github.com/FelixKrueger/TrimGalore")
15691 (commit version)))
15692 (file-name (git-file-name name version))
15693 (sha256
15694 (base32
15695 "0yrwg6325j4sb9vnplvl3jplzab0qdhp92wl480qjinpfq88j4rs"))))
15696 (build-system gnu-build-system)
15697 (arguments
15698 `(#:tests? #f ; no tests
15699 #:phases
15700 (modify-phases %standard-phases
15701 (replace 'configure
15702 (lambda _
15703 ;; Trim Galore tries to figure out what version of Python
15704 ;; cutadapt is using by looking at the shebang. Of course that
15705 ;; doesn't work, because cutadapt is wrapped in a shell script.
15706 (substitute* "trim_galore"
15707 (("my \\$python_return.*")
15708 "my $python_return = \"Python 3.999\";\n"))
15709 #t))
15710 (delete 'build)
15711 (add-after 'unpack 'hardcode-tool-references
15712 (lambda* (#:key inputs #:allow-other-keys)
15713 (substitute* "trim_galore"
15714 (("\\$path_to_cutadapt = 'cutadapt'")
15715 (string-append "$path_to_cutadapt = '"
15716 (assoc-ref inputs "cutadapt")
15717 "/bin/cutadapt'"))
15718 (("\\$compression_path = \"gzip\"")
15719 (string-append "$compression_path = \""
15720 (assoc-ref inputs "gzip")
15721 "/bin/gzip\""))
15722 (("\"gunzip")
15723 (string-append "\""
15724 (assoc-ref inputs "gzip")
15725 "/bin/gunzip"))
15726 (("\"pigz")
15727 (string-append "\""
15728 (assoc-ref inputs "pigz")
15729 "/bin/pigz")))
15730 #t))
15731 (replace 'install
15732 (lambda* (#:key outputs #:allow-other-keys)
15733 (let ((bin (string-append (assoc-ref outputs "out")
15734 "/bin")))
15735 (mkdir-p bin)
15736 (install-file "trim_galore" bin)
15737 #t))))))
15738 (inputs
15739 (list gzip perl pigz cutadapt))
15740 (native-inputs
15741 (list unzip))
15742 (home-page "https://www.bioinformatics.babraham.ac.uk/projects/trim_galore/")
15743 (synopsis "Wrapper around Cutadapt and FastQC")
15744 (description "Trim Galore! is a wrapper script to automate quality and
15745adapter trimming as well as quality control, with some added functionality to
15746remove biased methylation positions for RRBS sequence files.")
15747 (license license:gpl3+)))
15748
15749(define-public phyml
15750 (package
15751 (name "phyml")
15752 (version "3.3.20220408")
15753 (source (origin
15754 (method git-fetch)
15755 (uri (git-reference
15756 (url "https://github.com/stephaneguindon/phyml")
15757 (commit (string-append "v" version))))
15758 (file-name (git-file-name name version))
15759 (sha256
15760 (base32
15761 "03hdqmnsgnzkcrp9r9ajdfkj33jgq4b86kra8ssjlrph65y344sa"))
15762 (snippet
15763 '(delete-file "doc/phyml-manual.pdf"))))
15764 (build-system gnu-build-system)
15765 (supported-systems '("x86_64-linux"))
15766 (arguments
15767 (let ((default-flags (list "--disable-native")))
15768 `(#:phases
15769 (let ((build (lambda (what)
15770 (lambda args
15771 (apply (assoc-ref %standard-phases 'configure)
15772 (append args
15773 (list #:configure-flags
15774 (cons (format #false "--enable-~a" what)
15775 '() #;,default-flags))))
15776 (apply (assoc-ref %standard-phases 'build) args)
15777 (apply (assoc-ref %standard-phases 'install) args)))))
15778 (modify-phases %standard-phases
15779 ;; We cannot use --disable-native; see
15780 ;; https://github.com/stephaneguindon/phyml/issues/173 Instead we
15781 ;; patch the code to at least get rid of -march=native.
15782 (add-after 'unpack 'remove-march-native
15783 (lambda _
15784 (substitute* "configure.ac"
15785 (("DEFAULT_VECTOR_FLAG=\"-march=native\"")
15786 "DEFAULT_VECTOR_FLAG=\"-march=athlon64-sse3\"\n"))))
15787 (add-after 'build 'build-manual
15788 (lambda _
15789 (setenv "HOME" "/tmp/")
15790 (with-directory-excursion "doc"
15791 (invoke "make" "phyml-manual.pdf"))))
15792 (add-after 'build-manual 'install-manual
15793 (lambda* (#:key outputs #:allow-other-keys)
15794 (with-directory-excursion "doc"
15795 (install-file "phyml-manual.pdf"
15796 (string-append (assoc-ref outputs "out")
15797 "/share/doc/phyml")))))
15798 (add-after 'install 'build-phyml-mpi
15799 (build "phyml-mpi"))
15800 (add-after 'build-phyml-mpi 'build-rf
15801 (build "rf"))
15802 (add-after 'build-rf 'build-phyrex
15803 (build "phyrex")))))))
15804 (native-inputs
15805 (list automake
15806 autoconf
15807 openmpi
15808 (texlive-local-tree
15809 (list texlive-caption
15810 texlive-cite
15811 texlive-ec
15812 texlive-fancyvrb
15813 texlive-infwarerr
15814 texlive-kvoptions
15815 texlive-pdftexcmds
15816 texlive-psfrag
15817 texlive-xcolor))))
15818 (home-page "https://github.com/stephaneguindon/phyml")
15819 (synopsis "Programs for working on SAM/BAM files")
15820 (description
15821 "@code{PhyML} is a software package that uses modern statistical
15822approaches to analyse alignments of nucleotide or amino acid sequences in a
15823phylogenetic framework. The main tool in this package builds phylogenies
15824under the maximum likelihood criterion. It implements a large number of
15825substitution models coupled with efficient options to search the space of
15826phylogenetic tree topologies. code{PhyREX} fits the
15827spatial-Lambda-Fleming-Viot model to geo-referenced genetic data. This model
15828is similar to the structured coalescent but assumes that individuals are
15829distributed along a spatial continuum rather than discrete demes.
15830@code{PhyREX} can be used to estimate population densities and rates of
15831dispersal. Its output can be processed by treeannotator (from the
15832@code{BEAST} package) as well as @code{SPREAD}.")
15833 (license license:gpl3)))
15834
15835(define-public imp
15836 (package
15837 (name "imp")
15838 (version "2.23.0")
15839 (source
15840 (origin
15841 (method url-fetch)
15842 (uri (string-append "https://integrativemodeling.org/"
15843 version "/download/imp-" version ".tar.gz"))
15844 (sha256
15845 (base32
15846 "080z50iq1f3nmkccy2i5hj0i34j26sbwcaqizcbljji9mvp0nc0q"))))
15847 (build-system cmake-build-system)
15848 (arguments
15849 `(#:tests? #false ; The test suite is notoriously fickle
15850 #:configure-flags
15851 (let ((disabled-tests
15852 '("expensive" ;exclude expensive tests
15853 "IMP.modeller" ;fail to import its own modules
15854 "IMP.parallel-test_sge.py" ;fail in build container
15855 ;; The following test fails non-reproducibly on
15856 ;; an inexact numbers assertion.
15857 "IMP.em-medium_test_local_fitting.py"
15858 ;; The following test fails for unknown reasons
15859 "IMP.foxs-add-missing-residues.py")))
15860 (list
15861 (string-append
15862 "-DCMAKE_CTEST_ARGUMENTS="
15863 (string-join
15864 (list "-L" "-tests?-" ;select only tests
15865 "-E" (format #f "'(~a)'" (string-join disabled-tests "|")))
15866 ";"))))))
15867 (native-inputs
15868 (list python-wrapper swig-4.0))
15869 (inputs
15870 (list boost-for-mysql
15871 cereal
15872 cgal-5
15873 gsl
15874 hdf5
15875 fftw
15876 eigen
15877 ;; Enabling MPI causes the build to use all the available memory and
15878 ;; fail (tested on a machine with 32 GiB of RAM).
15879 ;;("mpi" ,openmpi)
15880 opencv))
15881 (propagated-inputs
15882 (list python-numpy python-scipy python-pandas python-scikit-learn
15883 python-networkx))
15884 (home-page "https://integrativemodeling.org")
15885 (synopsis "Integrative modeling platform")
15886 (description "IMP's broad goal is to contribute to a comprehensive
15887structural characterization of biomolecules ranging in size and complexity
15888from small peptides to large macromolecular assemblies, by integrating data
15889from diverse biochemical and biophysical experiments. IMP provides a C++ and
15890Python toolbox for solving complex modeling problems, and a number of
15891applications for tackling some common problems in a user-friendly way.")
15892 ;; IMP is largely available under the GNU Lesser GPL; see the file
15893 ;; COPYING.LGPL for the full text of this license. Some IMP modules are
15894 ;; available under the GNU GPL (see the file COPYING.GPL).
15895 (license (list license:lgpl2.1+
15896 license:gpl3+))))
15897
15898;; We use this seemingly arbitrary commit because of
15899;; https://github.com/3DGenomes/TADbit/issues/371
15900(define-public tadbit
15901 (let ((commit "283812901a00078c725bd9f0ee33366af6783969")
15902 (revision "2"))
15903 (package
15904 (name "tadbit")
15905 (version (git-version "1.0.1" revision commit))
15906 (source (origin
15907 (method git-fetch)
15908 (uri (git-reference
15909 (url "https://github.com/3DGenomes/TADbit")
15910 (commit commit)))
15911 (file-name (git-file-name name version))
15912 (sha256
15913 (base32
15914 "07q0alxah6xl1hibaj1kj7pdzq3pg6csyapsihbwlbmqyfmllbgz"))))
15915 (build-system pyproject-build-system)
15916 (arguments
15917 (list
15918 #:test-backend #~'custom
15919 #:test-flags #~(list "test/test_all.py")
15920 #:phases
15921 #~(modify-phases %standard-phases
15922 ;; Scipy 1.12 no longer has binom_test or polyfit
15923 (add-after 'unpack 'scipy-compatibility
15924 (lambda _
15925 (substitute* '("_pytadbit/modelling/imp_modelling.py"
15926 "_pytadbit/modelling/restraints.py")
15927 (("from scipy .*import polyfit")
15928 "from numpy import polyfit"))
15929 (substitute* "_pytadbit/mapping/restriction_enzymes.py"
15930 (("from scipy.stats import binom_test")
15931 "from scipy.stats import binomtest")
15932 (("binom_test\\(pats[k]['count'], nreads, 0.25\\*\\*len\\(k\\), alternative='greater'\\)")
15933 "binomtest(pats[k]['count'], nreads, 0.25**len(k), alternative='greater').pval"))))
15934 (add-after 'unpack 'fix-problems-with-setup.py
15935 (lambda _
15936 (substitute* "src/test/Makefile"
15937 (("^CFLAGS=") "CFLAGS= -fcommon"))
15938
15939 ;; Don't attempt to install the bash completions to
15940 ;; the home directory.
15941 (rename-file "extras/.bash_completion"
15942 "extras/tadbit")
15943 (substitute* "setup.py"
15944 (("\\(path.expanduser\\('~'\\)")
15945 (string-append "(\"" #$output
15946 "/etc/bash_completion.d\""))
15947 (("extras/\\.bash_completion")
15948 "extras/tadbit")))))))
15949 (native-inputs
15950 (list `(,glib "bin") ;for gtester
15951 glib
15952 pkg-config
15953 python-setuptools))
15954 (inputs
15955 ;; TODO: add Chimera for visualization
15956 (list imp
15957 mcl
15958 python-future
15959 python-h5py
15960 python-scipy
15961 python-numpy
15962 python-matplotlib
15963 python-pysam
15964 r-minimal))
15965 (home-page "https://3dgenomes.github.io/TADbit/")
15966 (synopsis "Analyze, model, and explore 3C-based data")
15967 (description
15968 "TADbit is a complete Python library to deal with all steps to analyze,
15969model, and explore 3C-based data. With TADbit the user can map FASTQ files to
15970obtain raw interaction binned matrices (Hi-C like matrices), normalize and
15971correct interaction matrices, identify and compare the so-called
15972@dfn{Topologically Associating Domains} (TADs), build 3D models from the
15973interaction matrices, and finally, extract structural properties from the
15974models. TADbit is complemented by TADkit for visualizing 3D models.")
15975 (license license:gpl3+))))
15976
15977(define-public kentutils
15978 (package
15979 (name "kentutils")
15980 ;; 302.1.0 is out, but the only difference is the inclusion of
15981 ;; pre-built binaries.
15982 (version "302.0.0")
15983 (source
15984 (origin
15985 (method git-fetch)
15986 (uri (git-reference
15987 (url "https://github.com/ENCODE-DCC/kentUtils")
15988 (commit (string-append "v" version))))
15989 (file-name (git-file-name name version))
15990 (sha256
15991 (base32
15992 "0n1wbyjpzii2b9qhyp9r1q76j623cggpg3y8fmw78ld3z4y7ivha"))
15993 (modules '((guix build utils)
15994 (srfi srfi-26)
15995 (ice-9 ftw)))
15996 (snippet
15997 '(begin
15998 ;; Only the contents of the specified directories are free
15999 ;; for all uses, so we remove the rest. "hg/autoSql" and
16000 ;; "hg/autoXml" are nominally free, but they depend on a
16001 ;; library that is built from the sources in "hg/lib",
16002 ;; which is nonfree.
16003 (let ((free (list "." ".."
16004 "utils" "lib" "inc" "tagStorm"
16005 "parasol" "htslib"))
16006 (directory? (lambda (file)
16007 (eq? 'directory (stat:type (stat file))))))
16008 (for-each (lambda (file)
16009 (and (directory? file)
16010 (delete-file-recursively file)))
16011 (map (cut string-append "src/" <>)
16012 (scandir "src"
16013 (lambda (file)
16014 (not (member file free)))))))
16015 ;; Only make the utils target, not the userApps target,
16016 ;; because that requires libraries we won't build.
16017 (substitute* "Makefile"
16018 ((" userApps") " utils"))
16019 ;; Only build libraries that are free.
16020 (substitute* "src/makefile"
16021 (("DIRS =.*") "DIRS =\n")
16022 (("cd jkOwnLib.*") "")
16023 ((" hgLib") "")
16024 (("cd hg.*") ""))
16025 (substitute* "src/utils/makefile"
16026 ;; These tools depend on "jkhgap.a", which is part of the
16027 ;; nonfree "src/hg/lib" directory.
16028 (("raSqlQuery") "")
16029 (("pslLiftSubrangeBlat") "")
16030
16031 ;; Do not build UCSC tools, which may require nonfree
16032 ;; components.
16033 (("ALL_APPS =.*") "ALL_APPS = $(UTILS_APPLIST)\n"))
16034 #t))))
16035 (build-system gnu-build-system)
16036 (arguments
16037 `( ;; There is no global test target and the test target for
16038 ;; individual tools depends on input files that are not
16039 ;; included.
16040 #:tests? #f
16041 #:phases
16042 (modify-phases %standard-phases
16043 (add-after 'unpack 'fix-permissions
16044 (lambda _ (make-file-writable "src/inc/localEnvironment.mk") #t))
16045 (add-after 'unpack 'fix-paths
16046 (lambda _
16047 (substitute* "Makefile"
16048 (("/bin/echo") (which "echo")))
16049 #t))
16050 (add-after 'unpack 'prepare-samtabix
16051 (lambda* (#:key inputs #:allow-other-keys)
16052 (copy-recursively (assoc-ref inputs "samtabix")
16053 "samtabix")
16054 #t))
16055 (delete 'configure)
16056 (replace 'install
16057 (lambda* (#:key outputs #:allow-other-keys)
16058 (let ((bin (string-append (assoc-ref outputs "out")
16059 "/bin")))
16060 (copy-recursively "bin" bin))
16061 #t)))))
16062 (native-inputs
16063 `(("samtabix"
16064 ,(let ((commit "10fd107909c1ac4d679299908be4262a012965ba"))
16065 (origin
16066 (method git-fetch)
16067 (uri (git-reference
16068 (url "http://genome-source.cse.ucsc.edu/samtabix.git")
16069 (commit commit)))
16070 (file-name (git-file-name "samtabix" (string-take commit 7)))
16071 (sha256
16072 (base32
16073 "0c1nj64l42v395sa84n7az43xiap4i6f9n9dfz4058aqiwkhkmma")))))))
16074 (inputs
16075 `(("zlib" ,zlib)
16076 ("tcsh" ,tcsh)
16077 ("perl" ,perl)
16078 ("libpng" ,libpng)
16079 ("mariadb-dev" ,mariadb "dev")
16080 ("openssl" ,openssl)))
16081 (home-page "https://genome.cse.ucsc.edu/index.html")
16082 (synopsis "Assorted bioinformatics utilities")
16083 (description "This package provides the kentUtils, a selection of
16084bioinformatics utilities used in combination with the UCSC genome
16085browser.")
16086 ;; Only a subset of the sources are released under a non-copyleft
16087 ;; free software license. All other sources are removed in a
16088 ;; snippet. See this bug report for an explanation of how the
16089 ;; license statements apply:
16090 ;; https://github.com/ENCODE-DCC/kentUtils/issues/12
16091 (license (license:non-copyleft
16092 "http://genome.ucsc.edu/license/"
16093 "The contents of this package are free for all uses."))))
16094
16095(define-public skewer
16096 (package
16097 (name "skewer")
16098 (version "0.2.2")
16099 (source
16100 (origin
16101 (method git-fetch)
16102 (uri (git-reference
16103 (url "https://github.com/relipmoc/skewer")
16104 (commit version)))
16105 (file-name (git-file-name name version))
16106 (sha256
16107 (base32
16108 "1b3skfnj3zmd2065fiyxjrg4k6xsxfy6nxz80vmajd830mk6vr69"))))
16109 (build-system gnu-build-system)
16110 (arguments
16111 (list
16112 #:tests? #f
16113 #:make-flags
16114 #~(list "CXXFLAGS=-std=c++11 -c -O2")
16115 #:phases
16116 #~(modify-phases %standard-phases
16117 (delete 'configure)
16118 (replace 'install
16119 (lambda _
16120 (install-file "skewer" (string-append #$output "/bin")))))))
16121 (home-page "https://github.com/relipmoc/skewer")
16122 (synopsis "Bit-masked k-difference matching")
16123 (description "Skewer implements the bit-masked k-difference matching
16124algorithm dedicated to the task of adapter trimming and it is specially
16125designed for processing next-generation sequencing (NGS) paired-end
16126sequences.")
16127 (license license:expat)))
16128
16129(define-public f-seq
16130 (let ((commit "6ccded34cff38cf432deed8503648b4a66953f9b")
16131 (revision "1"))
16132 (package
16133 (name "f-seq")
16134 (version (git-version "1.1" revision commit))
16135 (source (origin
16136 (method git-fetch)
16137 (uri (git-reference
16138 (url "https://github.com/aboyle/F-seq")
16139 (commit commit)))
16140 (file-name (git-file-name name version))
16141 (sha256
16142 (base32
16143 "1nk33k0yajg2id4g59bc4szr58r2q6pdq42vgcw054m8ip9wv26h"))
16144 (modules '((guix build utils)))
16145 ;; Remove bundled Java library archives.
16146 (snippet
16147 '(for-each delete-file (find-files "lib" ".*")))))
16148 (build-system ant-build-system)
16149 (arguments
16150 `(#:tests? #f ; no tests included
16151 #:phases
16152 (modify-phases %standard-phases
16153 (replace 'install
16154 (lambda* (#:key inputs outputs #:allow-other-keys)
16155 (let* ((target (assoc-ref outputs "out"))
16156 (bin (string-append target "/bin"))
16157 (doc (string-append target "/share/doc/f-seq"))
16158 (lib (string-append target "/lib")))
16159 (mkdir-p target)
16160 (mkdir-p doc)
16161 (substitute* "bin/linux/fseq"
16162 (("java") (which "java"))
16163 (("\\$REALDIR/../lib/commons-cli-1.1.jar")
16164 (search-input-file inputs
16165 (string-append "/lib/m2/commons-cli/commons-cli/"
16166 ,(package-version java-commons-cli)
16167 "/commons-cli-"
16168 ,(package-version java-commons-cli)
16169 ".jar")))
16170 (("REALDIR=.*")
16171 (string-append "REALDIR=" bin "\n")))
16172 (install-file "README.txt" doc)
16173 (install-file "bin/linux/fseq" bin)
16174 (install-file "build~/fseq.jar" lib)
16175 (copy-recursively "lib" lib)))))))
16176 (inputs
16177 (list perl java-commons-cli))
16178 (home-page "https://fureylab.web.unc.edu/software/fseq/")
16179 (synopsis "Feature density estimator for high-throughput sequence tags")
16180 (description
16181 "F-Seq is a software package that generates a continuous tag sequence
16182density estimation allowing identification of biologically meaningful sites
16183such as transcription factor binding sites (ChIP-seq) or regions of open
16184chromatin (DNase-seq). Output can be displayed directly in the UCSC Genome
16185Browser.")
16186 (license license:gpl3+))))
16187
16188(define-public bismark
16189 (package
16190 (name "bismark")
16191 (version "0.24.1")
16192 (source
16193 (origin
16194 (method git-fetch)
16195 (uri (git-reference
16196 (url "https://github.com/FelixKrueger/Bismark")
16197 (commit version)))
16198 (file-name (git-file-name name version))
16199 (sha256
16200 (base32
16201 "0j4dy33769f0jr2w1brb710zxwpg3zwjlnvlcpi5pr6mqc8dkg8n"))
16202 (snippet '(delete-file "plotly/plot.ly"))))
16203 (build-system perl-build-system)
16204 (arguments
16205 (list
16206 #:tests? #f ; there are no tests
16207 #:modules '((guix build utils)
16208 (ice-9 popen)
16209 (srfi srfi-26)
16210 (guix build perl-build-system))
16211 #:phases
16212 #~(modify-phases %standard-phases
16213 (add-after 'unpack 'replace-plotly.js
16214 (lambda* (#:key inputs #:allow-other-keys)
16215 (let* ((share (string-append #$output "/share/bismark"))
16216 (file (assoc-ref inputs "plotly.js"))
16217 (installed "plotly/plotly.js"))
16218 ;; The bundled plotly.js is minified.
16219 (let ((minified (open-pipe* OPEN_READ "uglifyjs" file)))
16220 (call-with-output-file installed
16221 (cut dump-port minified <>)))
16222 (substitute* "bismark2report"
16223 (("plotly_template.tpl")
16224 (string-append share "/plotly/plotly_template.tpl"))
16225 (("my \\$plotly_code = read_report_template\\('plot.ly'\\);")
16226 (string-append "\
16227my $plotly_code = read_report_template('" share "/plotly/plotly.js');
16228$plotly_code = \"<script>\" . $plotly_code . \"</script>\";"))))))
16229 (replace 'configure
16230 (lambda* (#:key inputs #:allow-other-keys)
16231 (substitute* "bismark"
16232 (("\\(\\!system \"which samtools >/dev/null 2>&1\"\\)")
16233 "(\"true\")")
16234 (("\\$samtools_path = `which samtools`;")
16235 (string-append "$samtools_path = '"
16236 (search-input-file inputs "/bin/samtools")
16237 "';"))
16238 (("\\$path_to_bowtie2 = 'bowtie2'")
16239 (string-append "$path_to_bowtie2 = '"
16240 (search-input-file inputs "/bin/bowtie2")
16241 "'"))
16242 (("\\$path_to_hisat2 = 'hisat2'")
16243 (string-append "$path_to_hisat2 = '"
16244 (search-input-file inputs "/bin/hisat2")
16245 "'"))
16246 (("\\$path_to_minimap2 = 'minimap2'")
16247 (string-append "$path_to_minimap2 = '"
16248 (search-input-file inputs "/bin/minimap2")
16249 "'")))))
16250 (delete 'build)
16251 (replace 'install
16252 (lambda* (#:key inputs outputs #:allow-other-keys)
16253 (let* ((bin (string-append #$output "/bin"))
16254 (share (string-append #$output "/share/bismark"))
16255 (docdir (string-append #$output "/share/doc/bismark"))
16256 (scripts '("bismark"
16257 "bismark_genome_preparation"
16258 "bismark_methylation_extractor"
16259 "bismark2bedGraph"
16260 "bismark2report"
16261 "coverage2cytosine"
16262 "deduplicate_bismark"
16263 "filter_non_conversion"
16264 "bam2nuc"
16265 "bismark2summary"
16266 "NOMe_filtering")))
16267 (for-each mkdir-p (list bin docdir share))
16268 (for-each (cut install-file <> bin) scripts)
16269 (copy-recursively "docs" docdir)
16270 (copy-recursively "plotly"
16271 (string-append share "/plotly"))
16272
16273 ;; Fix references to gunzip
16274 (with-directory-excursion bin
16275 (substitute* scripts
16276 (("\"gunzip -c")
16277 (format #f "\"~a -c"
16278 (search-input-file inputs "bin/gunzip")))))))))))
16279 (inputs
16280 (list bowtie gzip hisat2 minimap2 perl-carp perl-getopt-long samtools))
16281 (native-inputs
16282 (list
16283 (origin
16284 (method url-fetch)
16285 (uri (string-append "https://raw.githubusercontent.com/plotly/plotly.js/"
16286 "v1.39.4/dist/plotly.js"))
16287 (sha256
16288 (base32 "138mwsr4nf5qif4mrxx286mpnagxd1xwl6k8aidrjgknaqg88zyr")))
16289 node-uglify-js))
16290 (home-page "https://www.bioinformatics.babraham.ac.uk/projects/bismark/")
16291 (synopsis "Map bisulfite treated sequence reads and analyze methylation")
16292 (description "Bismark is a program to map bisulfite treated sequencing
16293reads to a genome of interest and perform methylation calls in a single step.
16294The output can be easily imported into a genome viewer, such as SeqMonk, and
16295enables a researcher to analyse the methylation levels of their samples
16296straight away. Its main features are:
16297
16298@itemize
16299@item Bisulfite mapping and methylation calling in one single step
16300@item Supports single-end and paired-end read alignments
16301@item Supports ungapped and gapped alignments
16302@item Alignment seed length, number of mismatches etc are adjustable
16303@item Output discriminates between cytosine methylation in CpG, CHG
16304 and CHH context
16305@end itemize\n")
16306 (license license:gpl3+)))
16307
16308(define-public paml
16309 (package
16310 (name "paml")
16311 (version "4.9e")
16312 (source (origin
16313 (method url-fetch)
16314 (uri (string-append "http://abacus.gene.ucl.ac.uk/software/"
16315 "paml" version ".tgz"))
16316 (sha256
16317 (base32
16318 "13zf6h9fiqghwhch2h06x1zdr6s42plsnqahflp5g7myr3han3s6"))
16319 (modules '((guix build utils)))
16320 ;; Remove Windows binaries
16321 (snippet
16322 '(begin
16323 (for-each delete-file (find-files "." "\\.exe$"))
16324 ;; Some files in the original tarball have restrictive
16325 ;; permissions, which makes repackaging fail
16326 (for-each (lambda (file) (chmod file #o644)) (find-files "."))
16327 #t))))
16328 (build-system gnu-build-system)
16329 (arguments
16330 `(#:tests? #f ; there are no tests
16331 #:make-flags '("CC=gcc" "CFLAGS=-fcommon -O3")
16332 #:phases
16333 (modify-phases %standard-phases
16334 (replace 'configure
16335 (lambda _
16336 (substitute* "src/BFdriver.c"
16337 (("/bin/bash") (which "bash")))
16338 (chdir "src")))
16339 (replace 'install
16340 (lambda* (#:key outputs #:allow-other-keys)
16341 (let ((tools '("baseml" "basemlg" "codeml"
16342 "pamp" "evolver" "yn00" "chi2"))
16343 (bin (string-append (assoc-ref outputs "out") "/bin"))
16344 (docdir (string-append (assoc-ref outputs "out")
16345 "/share/doc/paml")))
16346 (mkdir-p bin)
16347 (for-each (lambda (file) (install-file file bin)) tools)
16348 (copy-recursively "../doc" docdir)))))))
16349 (home-page "http://abacus.gene.ucl.ac.uk/software/paml.html")
16350 (synopsis "Phylogentic analysis by maximum likelihood")
16351 (description "PAML (for Phylogentic Analysis by Maximum Likelihood)
16352contains a few programs for model fitting and phylogenetic tree reconstruction
16353using nucleotide or amino-acid sequence data.")
16354 ;; GPLv3 only
16355 (license license:gpl3)))
16356
16357(define-public segemehl
16358 (package
16359 (name "segemehl")
16360 (version "0.3.4")
16361 (source (origin
16362 (method url-fetch)
16363 (uri (string-append "https://www.bioinf.uni-leipzig.de/Software"
16364 "/segemehl/downloads/segemehl-"
16365 version ".tar.gz"))
16366 (sha256
16367 (base32
16368 "0lbzbb7i8zadsn9b99plairhq6s2h1z8qdn6n7djclfis01nycz4"))))
16369 (build-system gnu-build-system)
16370 (arguments
16371 `(#:make-flags
16372 (list (string-append "CC=" ,(cc-for-target))
16373 "all")
16374 #:tests? #false ; there are none
16375 #:phases
16376 (modify-phases %standard-phases
16377 (delete 'configure)
16378 ;; There is no installation target
16379 (replace 'install
16380 (lambda* (#:key inputs outputs #:allow-other-keys)
16381 (let* ((out (assoc-ref outputs "out"))
16382 (bin (string-append out "/bin"))
16383 (exes (list "segemehl.x" "haarz.x")))
16384 (mkdir-p bin)
16385 (for-each (lambda (exe)
16386 (install-file exe bin))
16387 exes)))))))
16388 (inputs
16389 (list htslib ncurses zlib))
16390 (native-inputs
16391 (list pkg-config))
16392 (home-page "https://www.bioinf.uni-leipzig.de/Software/segemehl")
16393 (synopsis "Map short sequencer reads to reference genomes")
16394 (description "Segemehl is software to map short sequencer reads to
16395reference genomes. Segemehl implements a matching strategy based on enhanced
16396suffix arrays (ESA). It accepts fasta and fastq queries (gzip'ed and
16397bgzip'ed). In addition to the alignment of reads from standard DNA- and
16398RNA-seq protocols, it also allows the mapping of bisulfite converted
16399reads (Lister and Cokus) and implements a split read mapping strategy. The
16400output of segemehl is a SAM or BAM formatted alignment file.")
16401 (license license:gpl3+)))
16402
16403(define-public kallisto
16404 (package
16405 (name "kallisto")
16406 (version "0.50.1")
16407 (source (origin
16408 (method git-fetch)
16409 (uri (git-reference
16410 (url "https://github.com/pachterlab/kallisto")
16411 (commit (string-append "v" version))))
16412 (file-name (git-file-name name version))
16413 (sha256
16414 (base32
16415 "0zfs79mv75599cf9d7d3c5a3s8idgz9qvl4qfzhvhbd87y3dv7p0"))))
16416 (build-system cmake-build-system)
16417 (arguments
16418 (list
16419 #:tests? #false ;no "check" target
16420 ;; The build system attempts to link libbifrost.a into the kallisto
16421 ;; executable before the library has been built.
16422 #:parallel-build? #false))
16423 (inputs (list hdf5 zlib))
16424 (home-page "https://pachterlab.github.io/kallisto/")
16425 (synopsis "Near-optimal RNA-Seq quantification")
16426 (description
16427 "Kallisto is a program for quantifying abundances of transcripts from
16428RNA-Seq data, or more generally of target sequences using high-throughput
16429sequencing reads. It is based on the novel idea of pseudoalignment for
16430rapidly determining the compatibility of reads with targets, without the need
16431for alignment. Pseudoalignment of reads preserves the key information needed
16432for quantification, and kallisto is therefore not only fast, but also as
16433accurate as existing quantification tools.")
16434 (license license:bsd-2)))
16435
16436(define-public libgff
16437 (package
16438 (name "libgff")
16439 (version "2.0.0")
16440 (source (origin
16441 (method git-fetch)
16442 (uri (git-reference
16443 (url "https://github.com/COMBINE-lab/libgff")
16444 (commit (string-append "v" version))))
16445 (file-name (git-file-name name version))
16446 (sha256
16447 (base32
16448 "0ds9r22y8bl1rj7bhl0003kgmm6aam7g8l41mnjfrzw15d9zf9k4"))))
16449 (build-system cmake-build-system)
16450 (arguments `(#:tests? #f)) ; no tests included
16451 (home-page "https://github.com/COMBINE-lab/libgff")
16452 (synopsis "Parser library for reading/writing GFF files")
16453 (description "This is a simple \"libraryfication\" of the GFF/GTF parsing
16454code that is used in the Cufflinks codebase. The goal of this library is to
16455provide this functionality without the necessity of drawing in a heavy-weight
16456dependency like SeqAn.")
16457 (license (license:x11-style "https://www.boost.org/LICENSE_1_0.txt"))))
16458
16459(define-public sailfish
16460 (package
16461 (name "sailfish")
16462 (version "0.10.1")
16463 (source (origin
16464 (method git-fetch)
16465 (uri (git-reference
16466 (url "https://github.com/kingsfordgroup/sailfish")
16467 (commit (string-append "v" version))))
16468 (file-name (git-file-name name version))
16469 (sha256
16470 (base32
16471 "1amcc5hqvsl42hg4x19bi9vy47cl874s0lw1fmi0hwsdk9i8c03v"))
16472 (modules '((guix build utils)))
16473 ;; Delete bundled headers for eigen3.
16474 (snippet
16475 '(delete-file-recursively "include/eigen3/"))))
16476 (build-system cmake-build-system)
16477 (arguments
16478 `(#:configure-flags
16479 ,#~(list (string-append "-DBOOST_INCLUDEDIR="
16480 #$(this-package-input "boost")
16481 "/include/")
16482 (string-append "-DBOOST_LIBRARYDIR="
16483 #$(this-package-input "boost")
16484 "/lib/")
16485 (string-append "-DBoost_LIBRARIES="
16486 "-lboost_iostreams "
16487 "-lboost_filesystem "
16488 "-lboost_system "
16489 "-lboost_thread "
16490 "-lboost_timer "
16491 "-lboost_chrono "
16492 "-lboost_program_options")
16493 "-DBoost_FOUND=TRUE"
16494 ;; Don't download RapMap---we already have it!
16495 "-DFETCHED_RAPMAP=1")
16496 ;; Tests must be run after installation and the location of the test
16497 ;; data file must be overridden. But the tests fail. It looks like
16498 ;; they are not really meant to be run.
16499 #:tests? #f
16500 #:phases
16501 (modify-phases %standard-phases
16502 ;; Boost cannot be found, even though it's right there.
16503 (add-after 'unpack 'do-not-look-for-boost
16504 (lambda* (#:key inputs #:allow-other-keys)
16505 (substitute* "CMakeLists.txt"
16506 (("find_package\\(Boost 1\\.53\\.0") "#"))))
16507 (add-after 'unpack 'do-not-assign-to-macro
16508 (lambda _
16509 (substitute* "include/spdlog/details/format.cc"
16510 (("const unsigned CHAR_WIDTH = 1;") ""))))
16511 (add-after 'unpack 'prepare-rapmap
16512 (lambda* (#:key inputs #:allow-other-keys)
16513 (let ((src "external/install/src/rapmap/")
16514 (include "external/install/include/rapmap/")
16515 (rapmap (assoc-ref inputs "rapmap")))
16516 (mkdir-p src)
16517 (mkdir-p include)
16518 (for-each (lambda (file)
16519 (install-file file src))
16520 (find-files (string-append rapmap "/src") "\\.(c|cpp)"))
16521 (copy-recursively (string-append rapmap "/include") include))))
16522 (add-after 'unpack 'use-system-libraries
16523 (lambda* (#:key inputs #:allow-other-keys)
16524 (substitute* '("src/SailfishIndexer.cpp"
16525 "src/SailfishUtils.cpp"
16526 "src/SailfishQuantify.cpp"
16527 "src/FASTAParser.cpp"
16528 "include/PCA.hpp"
16529 "include/SailfishUtils.hpp"
16530 "include/SailfishIndex.hpp"
16531 "include/CollapsedEMOptimizer.hpp"
16532 "src/CollapsedEMOptimizer.cpp")
16533 (("#include \"jellyfish/config.h\"") ""))
16534 (substitute* "src/CMakeLists.txt"
16535 (("\\$\\{GAT_SOURCE_DIR\\}/external/install/include/jellyfish-2.2..")
16536 (search-input-directory
16537 inputs
16538 (string-append "/include/jellyfish-" ,(package-version jellyfish))))
16539 (("\\$\\{GAT_SOURCE_DIR\\}/external/install/lib/libjellyfish-2.0.a")
16540 (search-input-file inputs
16541 "/lib/libjellyfish-2.0.a"))
16542 (("\\$\\{GAT_SOURCE_DIR\\}/external/install/lib/libdivsufsort.a")
16543 (search-input-file inputs
16544 "/lib/libdivsufsort.so"))
16545 (("\\$\\{GAT_SOURCE_DIR\\}/external/install/lib/libdivsufsort64.a")
16546 (search-input-file inputs
16547 "/lib/libdivsufsort64.so")))
16548 (substitute* "CMakeLists.txt"
16549 ;; Don't prefer static libs
16550 (("SET\\(CMAKE_FIND_LIBRARY_SUFFIXES.*") "")
16551 (("find_package\\(Jellyfish.*") "")
16552 (("ExternalProject_Add\\(libjellyfish") "message(")
16553 (("ExternalProject_Add\\(libgff") "message(")
16554 (("ExternalProject_Add\\(libsparsehash") "message(")
16555 (("ExternalProject_Add\\(libdivsufsort") "message("))
16556
16557 ;; Ensure that Eigen headers can be found
16558 (setenv "CPLUS_INCLUDE_PATH"
16559 (string-append (search-input-directory
16560 inputs "/include/eigen3")
16561 ":"
16562 (or (getenv "CPLUS_INCLUDE_PATH") ""))))))))
16563 (inputs
16564 `(("boost" ,boost-1.83)
16565 ("eigen" ,eigen)
16566 ("jemalloc" ,jemalloc)
16567 ("jellyfish" ,jellyfish)
16568 ("sparsehash" ,sparsehash)
16569 ("rapmap" ,(origin
16570 (method git-fetch)
16571 (uri (git-reference
16572 (url "https://github.com/COMBINE-lab/RapMap")
16573 (commit (string-append "sf-v" version))))
16574 (file-name (string-append "rapmap-sf-v" version "-checkout"))
16575 (sha256
16576 (base32
16577 "1hv79l5i576ykv5a1srj2p0q36yvyl5966m0fcy2lbi169ipjakf"))
16578 (modules '((guix build utils)))
16579 ;; These files are expected to be excluded.
16580 (snippet
16581 '(begin (delete-file-recursively "include/spdlog")
16582 (for-each delete-file '("include/xxhash.h"
16583 "src/xxhash.c"))))))
16584 ("libdivsufsort" ,libdivsufsort)
16585 ("libgff" ,libgff)
16586 ("tbb" ,tbb-2020)
16587 ("zlib" ,zlib)))
16588 (native-inputs
16589 (list pkg-config))
16590 (home-page "https://www.cs.cmu.edu/~ckingsf/software/sailfish/")
16591 (synopsis "Mapping-based isoform quantification from RNA-Seq reads")
16592 (description "Sailfish is a tool for genomic transcript quantification
16593from RNA-seq data. It requires a set of target transcripts (either from a
16594reference or de-novo assembly) to quantify. All you need to run sailfish is a
16595fasta file containing your reference transcripts and a (set of) fasta/fastq
16596file(s) containing your reads.")
16597 (license license:gpl3+)))
16598
16599(define libstadenio-for-salmon
16600 (package
16601 (name "libstadenio")
16602 (version "1.14.8")
16603 (source (origin
16604 (method git-fetch)
16605 (uri (git-reference
16606 (url "https://github.com/COMBINE-lab/staden-io_lib")
16607 (commit (string-append "v" version))))
16608 (file-name (string-append name "-" version "-checkout"))
16609 (sha256
16610 (base32
16611 "1x8kxxqxl892vwfbprlbyfwkkv7c34ggkc94892x9x0g37x5nbwx"))))
16612 (build-system gnu-build-system)
16613 (arguments '(#:parallel-tests? #f)) ; not supported
16614 (inputs
16615 `(("zlib" ,zlib)))
16616 (native-inputs
16617 `(("perl" ,perl))) ; for tests
16618 (home-page "https://github.com/COMBINE-lab/staden-io_lib")
16619 (synopsis "General purpose trace and experiment file library")
16620 (description "This package provides a library of file reading and writing
16621code to provide a general purpose Trace file (and Experiment File) reading
16622interface.
16623
16624The following file formats are supported:
16625
16626@enumerate
16627@item SCF trace files
16628@item ABI trace files
16629@item ALF trace files
16630@item ZTR trace files
16631@item SFF trace archives
16632@item SRF trace archives
16633@item Experiment files
16634@item Plain text files
16635@item SAM/BAM sequence files
16636@item CRAM sequence files
16637@end enumerate\n")
16638 (license license:bsd-3)))
16639
16640(define-public salmon
16641 (package
16642 (name "salmon")
16643 (version "1.10.3")
16644 (source (origin
16645 (method git-fetch)
16646 (uri (git-reference
16647 (url "https://github.com/COMBINE-lab/salmon")
16648 (commit (string-append "v" version))))
16649 (file-name (git-file-name name version))
16650 (sha256
16651 (base32
16652 "0vii7nlx0ddn62qniwx4abfj6ajwl3w6mizavpa0mkhpxnm06rqw"))
16653 (modules '((guix build utils)))
16654 (snippet
16655 ;; Delete bundled headers for eigen3.
16656 '(delete-file-recursively "include/eigen3/"))))
16657 (build-system cmake-build-system)
16658 (arguments
16659 (list
16660 #:configure-flags
16661 #~(list (string-append "-Dlibgff_DIR="
16662 #$(this-package-input "libgff") "/lib")
16663 "-DCMAKE_CXX_FLAGS=\"-DHAVE_NUMERIC_LIMITS128=1\""
16664 "-Dlibgff_FOUND=TRUE"
16665 "-DTBB_FOUND=TRUE"
16666 #$(string-append "-DTBB_VERSION=" (package-version onetbb))
16667 "-DFETCHED_PUFFERFISH=TRUE"
16668 "-DUSE_SHARED_LIBS=TRUE")
16669 #:phases
16670 '(modify-phases %standard-phases
16671 (add-after 'unpack 'prepare-pufferfish
16672 (lambda* (#:key inputs #:allow-other-keys)
16673 (copy-recursively (assoc-ref inputs "pufferfish")
16674 "external/pufferfish")
16675 ;; This test isn't working correctly, so compilation aborts.
16676 (substitute* "external/pufferfish/include/string_view.hpp"
16677 (("#if __has_include\\(<string_view>\\)")
16678 "#if 0"))
16679 (let ((headers "external/install/pufferfish/include/pufferfish")
16680 (source "external/install/src/pufferfish"))
16681 (mkdir-p headers)
16682 (mkdir-p source)
16683 (for-each (lambda (file)
16684 (install-file (string-append "external/pufferfish/include/" file)
16685 headers))
16686 (list "ProgOpts.hpp" "BooPHF.hpp" "SpinLock.hpp"
16687 "Kmer.hpp" "CanonicalKmer.hpp" "string_view.hpp"
16688 "CanonicalKmerIterator.hpp"
16689 "PufferfishBaseIndex.hpp"
16690 "PufferfishIndex.hpp"
16691 "PufferfishSparseIndex.hpp"
16692 "PufferfishLossyIndex.hpp"
16693 "PufferfishTypes.hpp"
16694 "rank9b.hpp" "rank9sel.hpp" "macros.hpp"
16695 "select.hpp" "Util.hpp"
16696 "PairedAlignmentFormatter.hpp"
16697 "SelectiveAlignmentUtils.hpp"
16698 "PuffAligner.hpp" "MemCollector.hpp"
16699 "MemChainer.hpp" "CommonTypes.hpp"
16700 "SAMWriter.hpp" "PufferfishConfig.hpp"
16701 "BulkChunk.hpp" "BinWriter.hpp"))
16702
16703 (for-each (lambda (dir)
16704 (copy-recursively
16705 (string-append "external/pufferfish/include/" dir)
16706 (string-append headers "/" dir)))
16707 (list "libdivide"
16708 "ksw2pp"
16709 "compact_vector"
16710 "itlib"
16711 "metro"
16712 "chobo"
16713 "sparsepp"
16714 "simde"
16715 "tsl"))
16716 (copy-recursively
16717 (string-append "external/pufferfish/src/metro/")
16718 (string-append source "/metro"))
16719 (install-file
16720 (string-append "external/pufferfish/src/rank9b.cpp")
16721 source)
16722
16723 ;; Do not complain about not having built libtbb
16724 (substitute* "external/pufferfish/external/twopaco/CMakeLists.txt"
16725 (("add_dependencies.*") "")))))
16726 (add-after 'unpack 'do-not-phone-home
16727 (lambda _
16728 (substitute* "src/Salmon.cpp"
16729 (("getVersionMessage\\(\\)") "\"\""))))
16730 (add-after 'unpack 'use-system-libraries
16731 (lambda* (#:key inputs #:allow-other-keys)
16732 ;; Ensure that all headers can be found
16733 (setenv "CPLUS_INCLUDE_PATH"
16734 (string-append (or (getenv "CPLUS_INCLUDE_PATH") "")
16735 ":"
16736 (getcwd) "/external/install/pufferfish/include:"
16737 (assoc-ref inputs "eigen")
16738 "/include/eigen3"))))
16739 (add-after 'unpack 'fix-error-message-in-tests
16740 (lambda _
16741 (substitute* "cmake/TestSalmonQuasi.cmake"
16742 (("SALMON_QUASI_INDEX_COMMAND")
16743 "SALMON_QUASI_INDEX_CMD")))))))
16744 (inputs
16745 (list boost-1.83
16746 bzip2
16747 cereal
16748 curl
16749 eigen
16750 htscodecs
16751 jemalloc
16752 libgff
16753 onetbb
16754 libstadenio-for-salmon
16755 xz
16756 zlib))
16757 (native-inputs
16758 `(("pkg-config" ,pkg-config)
16759 ("pufferfish" ,(origin
16760 (method git-fetch)
16761 (uri (git-reference
16762 (url "https://github.com/COMBINE-lab/pufferfish")
16763 (commit (string-append "salmon-v" version))))
16764 (file-name (git-file-name "pufferfish" version))
16765 (sha256
16766 (base32
16767 "0h12h4wv7k3if1m6as7wvrbd7djm0zsg1vs0xn84bnrswwv5z2l3"))))))
16768 (home-page "https://github.com/COMBINE-lab/salmon")
16769 (synopsis "Quantification from RNA-seq reads using lightweight alignments")
16770 (description "Salmon is a program to produce highly-accurate,
16771transcript-level quantification estimates from RNA-seq data. Salmon achieves
16772its accuracy and speed via a number of different innovations, including the
16773use of lightweight alignments (accurate but fast-to-compute proxies for
16774traditional read alignments) and massively-parallel stochastic collapsed
16775variational inference.")
16776 (license license:gpl3+)))
16777
16778(define-public scallop
16779 (package
16780 (name "scallop")
16781 (version "0.10.5")
16782 (source (origin
16783 (method url-fetch)
16784 (uri (string-append "https://github.com/Kingsford-Group/scallop"
16785 "/releases/download/v" version
16786 "/scallop-" version ".tar.gz"))
16787 (sha256
16788 (base32
16789 "0ylkhr5hsmw7bsdszrjz9yqknsijh2fl5n6rjqmdmcdky5hkr7mh"))))
16790 (build-system gnu-build-system)
16791 (inputs
16792 (list boost htslib))
16793 (home-page "https://github.com/Kingsford-Group/scallop")
16794 (synopsis "Reference-based transcriptome assembler for RNA-seq")
16795 (description "Scallop is a reference-based transcript assembler. Scallop
16796features its high accuracy in assembling multi-exon transcripts as well as
16797lowly expressed transcripts.")
16798 (license license:bsd-3)))
16799
16800(define-public python-fanc
16801 (package
16802 (name "python-fanc")
16803 (version "0.9.28")
16804 (source (origin
16805 (method git-fetch)
16806 (uri (git-reference
16807 (url "https://github.com/vaquerizaslab/fanc")
16808 ;; There are no tags. This commit corresponds to
16809 ;; version 0.9.28.
16810 (commit "d5d86085c920a4dca6e5f6be4857129d718243cc")))
16811 (file-name (git-file-name name version))
16812 (sha256
16813 (base32
16814 "0pfl35ancd0izw9w2dp85lznq9rsyv2nv5f5la6dnbvj20d1m06d"))))
16815 (build-system pyproject-build-system)
16816 (arguments
16817 (list
16818 #:test-flags
16819 '(list "-m" "not longrunning"
16820 ;; XXX: some of the tests here just take forever
16821 "--ignore=fanc/test/test_matrix.py"
16822 "--ignore=fanc/test/test_pairs.py")))
16823 (propagated-inputs
16824 (list python-biopython
16825 python-cooler
16826 python-deprecated
16827 python-future
16828 python-genomic-regions
16829 python-gridmap
16830 python-h5py
16831 python-imageio
16832 python-intervaltree
16833 python-matplotlib
16834 python-msgpack
16835 python-msgpack-numpy
16836 python-numpy
16837 python-pandas
16838 python-pillow
16839 python-progressbar2
16840 python-pybedtools
16841 python-pybigwig
16842 python-pysam
16843 python-pywavelets
16844 python-pyyaml
16845 python-scikit-image
16846 python-scikit-learn
16847 python-scipy
16848 python-seaborn
16849 python-tables
16850 python-tifffile))
16851 (native-inputs
16852 (list python-cython python-pytest python-setuptools))
16853 (home-page "https://github.com/vaquerizaslab/fanc")
16854 (synopsis "Framework for the analysis of C-data")
16855 (description
16856 "FAN-C provides a pipeline for analysing Hi-C data starting at
16857mapped paired-end sequencing reads.")
16858 (license license:gpl3+)))
16859
16860(define-public python-genomic-regions
16861 (package
16862 (name "python-genomic-regions")
16863 (version "0.0.10")
16864 (source (origin
16865 (method url-fetch)
16866 (uri (pypi-uri "genomic_regions" version))
16867 (sha256
16868 (base32
16869 "0hz811iyd1prml1r90qyzimmwyjwycwkjqw4vnl12bxy61rfzjz5"))))
16870 (build-system pyproject-build-system)
16871 (propagated-inputs
16872 (list python-future
16873 python-intervaltree
16874 python-numpy
16875 python-pandas
16876 python-pybedtools
16877 python-pybigwig
16878 python-pytest
16879 python-msgpack-numpy
16880 python-cython
16881 python-msgpack
16882 python-pysam))
16883 (native-inputs (list python-setuptools))
16884 (home-page "https://pypi.org/project/genomic-regions/")
16885 (synopsis "Consistently handle genomic regions")
16886 (description "This package aims to simplify working with genomic region /
16887interval data by providing a common interface that lets you access a wide
16888selection of file types and formats for handling genomic region data---all
16889using the same syntax.")
16890 (license license:expat)))
16891
16892(define-public python-goatools
16893 (package
16894 (name "python-goatools")
16895 (version "1.3.1")
16896 ;; Pypi tarball doesn't include test files.
16897 (source (origin
16898 (method git-fetch)
16899 (uri (git-reference
16900 (url "https://github.com/tanghaibao/goatools")
16901 (commit (string-append "v" version))))
16902 (file-name (git-file-name name version))
16903 (sha256
16904 (base32
16905 "0a295zk9jc8kny5vnka63q3gbksins42kcmgvskf8xy7hkca7cmq"))))
16906 (build-system pyproject-build-system)
16907 (arguments
16908 (list
16909 ;; Almost all tests require access to the internet.
16910 #:tests? #false
16911 #:test-flags
16912 ;; These have syntax errors.
16913 '(list "--ignore=tests/test_i195_sgd_gaf.py"
16914 "--ignore=tests/test_i206.py"
16915 "--ignore=tests/test_setup_dirs.py")))
16916 (propagated-inputs (list python-docopt
16917 python-numpy
16918 python-openpyxl
16919 python-pandas
16920 python-pydot
16921 python-requests
16922 python-scipy
16923 python-setuptools
16924 python-statsmodels
16925 python-xlsxwriter))
16926 (native-inputs (list python-pytest))
16927 (home-page "https://github.com/tanghaibao/goatools")
16928 (synopsis "Python scripts to find enrichment of GO terms")
16929 (description "Python scripts to find enrichment of GO terms. In addition,
16930this package is used for processing the obo-formatted file from Gene Ontology
16931website. The data structure is a directed acyclic graph that allows easy
16932traversal from leaf to root.")
16933 (license license:bsd-2)))
16934
16935(define-public python-loompy
16936 (package
16937 (name "python-loompy")
16938 (version "3.0.8")
16939 (source (origin
16940 (method git-fetch)
16941 (uri (git-reference
16942 (url "https://github.com/linnarsson-lab/loompy")
16943 (commit version)))
16944 (file-name (git-file-name name version))
16945 (sha256
16946 (base32
16947 "1v01imvhj3i7pz720y18cq00yc9w4qkwi0ds01claaxxddjclwsp"))))
16948 (build-system pyproject-build-system)
16949 (arguments
16950 (list
16951 #:phases
16952 '(modify-phases %standard-phases
16953 ;; See https://github.com/linnarsson-lab/loompy/issues/169
16954 (add-after 'unpack 'fix-h5py-error
16955 (lambda _
16956 (substitute* "tests/test_file_attribute_manager.py"
16957 (("h5py.File\\(f.name\\)")
16958 "h5py.File(f.name, 'a')"))))
16959 (add-after 'unpack 'numpy-compatibility
16960 (lambda _
16961 (substitute* "tests/test_connection.py"
16962 (("np.int") "int"))))
16963 ;; Numba needs a writable dir to cache functions.
16964 (add-before 'check 'set-numba-cache-dir
16965 (lambda _
16966 (setenv "NUMBA_CACHE_DIR" "/tmp"))))))
16967 (propagated-inputs
16968 (list python-click
16969 python-h5py
16970 python-numba
16971 python-numpy
16972 python-numpy-groupies
16973 python-pandas
16974 python-scipy))
16975 (native-inputs
16976 (list python-pytest python-setuptools))
16977 (home-page "https://github.com/linnarsson-lab/loompy")
16978 (synopsis "Work with .loom files for single-cell RNA-seq data")
16979 (description "The loom file format is an efficient format for very large
16980omics datasets, consisting of a main matrix, optional additional layers, a
16981variable number of row and column annotations. Loom also supports sparse
16982graphs. This library makes it easy to work with @file{.loom} files for
16983single-cell RNA-seq data.")
16984 (license license:bsd-3)))
16985
16986(define-public python-biothings-client
16987 (package
16988 (name "python-biothings-client")
16989 (version "0.4.1")
16990 (source
16991 (origin
16992 (method git-fetch)
16993 (uri (git-reference
16994 (url "https://github.com/biothings/biothings_client.py")
16995 (commit (string-append "v" version))))
16996 (file-name (git-file-name name version))
16997 (sha256
16998 (base32 "1yhrbripg4wr4hg1c9yfv8m1zns37w90fysbbrwm2wlvhmb4i2xq"))))
16999 (build-system pyproject-build-system)
17000 (arguments (list #:tests? #f)) ;require internet access
17001 (native-inputs (list python-pytest python-setuptools))
17002 (propagated-inputs (list python-httpx python-requests))
17003 (home-page "https://github.com/biothings/biothings_client.py")
17004 (synopsis "Python client for BioThings API services")
17005 (description "This package provides a Python client for BioThings
17006API services.")
17007 (license license:bsd-3)))
17008
17009(define-public python-mgatk
17010 (package
17011 (name "python-mgatk")
17012 (version "0.9.0")
17013 (source
17014 (origin
17015 (method git-fetch)
17016 (uri (git-reference
17017 (url "https://github.com/caleblareau/mgatk")
17018 (commit version)))
17019 (file-name (git-file-name name version))
17020 (sha256
17021 (base32
17022 "0lxq9k50a7qh5mnxi5r076c83fnq13q0264zxjvqbv38zsq1bbac"))))
17023 (build-system pyproject-build-system)
17024 (propagated-inputs
17025 (list python-bam-dedup
17026 python-biopython
17027 python-click
17028 python-matplotlib
17029 python-numpy
17030 python-optparse-pretty
17031 python-pandas
17032 python-pysam
17033 python-regex
17034 python-ruamel.yaml
17035 snakemake))
17036 (native-inputs
17037 (list python-pytest python-setuptools))
17038 (home-page "https://github.com/caleblareau/mgatk")
17039 (synopsis "Mitochondrial genome analysis toolkit")
17040 (description "This package is a Python-based command line interface for
17041processing .bam files with mitochondrial reads and generating high-quality
17042heteroplasmy estimation from sequencing data. The mgatk package places a
17043special emphasis on mitochondrial genotypes generated from single-cell
17044genomics data, primarily @acronym{mtscATAC-seq, mitochondrial single-cell
17045ATAC-sequence}, but is generally applicable across other assays.")
17046 (license license:expat)))
17047
17048(define-public python-multicore-tsne
17049 (let ((commit "c1dbf84eb550980876d8ed822af4e9dfd21c5e05")
17050 (revision "1"))
17051 (package
17052 (name "python-multicore-tsne")
17053 (version (git-version "0" revision commit))
17054 (source
17055 (origin
17056 (method git-fetch)
17057 (uri (git-reference
17058 (url "https://github.com/DmitryUlyanov/Multicore-TSNE.git")
17059 (commit commit)))
17060 (file-name (git-file-name name version))
17061 (sha256
17062 (base32
17063 "0dj805mmd35rfkj7jpkhvnj47x51lqpvascjwyaqxj7pwk6sbkzv"))))
17064 (build-system pyproject-build-system)
17065 ;; Tests require an old version of scikit-learn. See
17066 ;; https://github.com/DmitryUlyanov/Multicore-TSNE/issues/97.
17067 (arguments (list #:tests? #false))
17068 (propagated-inputs
17069 (list python-cffi python-numpy python-packaging))
17070 (native-inputs
17071 (list cmake-minimal
17072 python-scipy
17073 python-scikit-learn
17074 python-setuptools))
17075 (home-page "https://github.com/DmitryUlyanov/Multicore-TSNE")
17076 (synopsis "Parallel t-SNE implementation with Python and Torch wrappers")
17077 (description
17078 "This package contains a multicore Barnes-Hut implementation of the
17079t-SNE algorithm. The implementation is described here:
17080@url{http://lvdmaaten.github.io/publications/papers/JMLR_2014.pdf}.")
17081 (license license:bsd-3))))
17082
17083(define-public python-mygene
17084 (package
17085 (name "python-mygene")
17086 (version "3.2.2")
17087 (source
17088 (origin
17089 (method git-fetch)
17090 (uri (git-reference
17091 (url "https://github.com/biothings/mygene.py")
17092 (commit (string-append "v" version))))
17093 (file-name (git-file-name name version))
17094 (sha256
17095 (base32 "0f6mpbbcs72w20zxsnzdqbhn2ldxlafaq3qd0iwk6rfvwk66bb7w"))))
17096 (build-system pyproject-build-system)
17097 (arguments
17098 (list #:tests? #f)) ;they need network connection
17099 (native-inputs
17100 (list python-setuptools))
17101 (propagated-inputs
17102 (list python-biothings-client))
17103 (home-page "https://github.com/biothings/mygene.py")
17104 (synopsis "Python Client for MyGene.Info services")
17105 (description "MyGene.Info provides simple-to-use REST web services
17106to query/retrieve gene annotation data. It's designed with simplicity
17107and performance emphasized. Mygene is a Python wrapper to access
17108MyGene.Info services.")
17109 (license license:bsd-3)))
17110
17111;; We cannot use the latest commit because it requires Java 9.
17112(define-public java-forester
17113 (let ((commit "86b07efe302d5094b42deed9260f719a4c4ac2e6")
17114 (revision "1"))
17115 (package
17116 (name "java-forester")
17117 (version (string-append "0-" revision "." (string-take commit 7)))
17118 (source (origin
17119 (method git-fetch)
17120 (uri (git-reference
17121 (url "https://github.com/cmzmasek/forester")
17122 (commit commit)))
17123 (file-name (string-append name "-" version "-checkout"))
17124 (sha256
17125 (base32
17126 "0vxavc1yrf84yrnf20dq26hi0lglidk8d382xrxsy4qmlbjd276z"))
17127 (modules '((guix build utils)))
17128 (snippet
17129 '(begin
17130 ;; Delete bundled jars and pre-built classes
17131 (delete-file-recursively "forester/java/resources")
17132 (delete-file-recursively "forester/java/classes")
17133 (for-each delete-file (find-files "forester/java/" "\\.jar$"))
17134 ;; Delete bundled applications
17135 (delete-file-recursively "forester_applications")
17136 #t))))
17137 (build-system ant-build-system)
17138 (arguments
17139 `(#:tests? #f ; there are none
17140 #:jdk ,icedtea-8
17141 #:modules ((guix build ant-build-system)
17142 (guix build utils)
17143 (guix build java-utils)
17144 (sxml simple)
17145 (sxml transform))
17146 #:phases
17147 (modify-phases %standard-phases
17148 (add-after 'unpack 'chdir
17149 (lambda _ (chdir "forester/java") #t))
17150 (add-after 'chdir 'fix-dependencies
17151 (lambda _
17152 (chmod "build.xml" #o664)
17153 (call-with-output-file "build.xml.new"
17154 (lambda (port)
17155 (sxml->xml
17156 (pre-post-order
17157 (with-input-from-file "build.xml"
17158 (lambda _ (xml->sxml #:trim-whitespace? #t)))
17159 `(;; Remove all unjar tags to avoid repacking classes.
17160 (unjar . ,(lambda _ '()))
17161 (*default* . ,(lambda (tag . kids) `(,tag ,@kids)))
17162 (*text* . ,(lambda (_ txt) txt))))
17163 port)))
17164 (rename-file "build.xml.new" "build.xml")
17165 #t))
17166 ;; FIXME: itext is difficult to package as it depends on a few
17167 ;; unpackaged libraries.
17168 (add-after 'chdir 'remove-dependency-on-unpackaged-itext
17169 (lambda _
17170 (delete-file "src/org/forester/archaeopteryx/PdfExporter.java")
17171 (substitute* "src/org/forester/archaeopteryx/MainFrame.java"
17172 (("pdf_written_to = PdfExporter.*")
17173 "throw new IOException(\"PDF export is not available.\");"))
17174 #t))
17175 ;; There is no install target
17176 (replace 'install (install-jars ".")))))
17177 (propagated-inputs
17178 (list java-commons-codec java-openchart2))
17179 (home-page "https://sites.google.com/site/cmzmasek/home/software/forester")
17180 (synopsis "Phylogenomics libraries for Java")
17181 (description "Forester is a collection of Java libraries for
17182phylogenomics and evolutionary biology research. It includes support for
17183reading, writing, and exporting phylogenetic trees.")
17184 (license license:lgpl2.1+))))
17185
17186(define-public java-forester-1.005
17187 (package
17188 (name "java-forester")
17189 (version "1.005")
17190 (source (origin
17191 (method url-fetch)
17192 (uri (string-append "https://repo1.maven.org/maven2/"
17193 "org/biojava/thirdparty/forester/"
17194 version "/forester-" version "-sources.jar"))
17195 (file-name (string-append name "-" version ".jar"))
17196 (sha256
17197 (base32
17198 "04r8qv4rk3p71z4ajrvp11py1z46qrx0047j3zzs79s6lnsm3lcv"))))
17199 (build-system ant-build-system)
17200 (arguments
17201 `(#:tests? #f ; there are none
17202 #:jdk ,icedtea-8
17203 #:modules ((guix build ant-build-system)
17204 (guix build utils)
17205 (guix build java-utils)
17206 (sxml simple)
17207 (sxml transform))
17208 #:phases
17209 (modify-phases %standard-phases
17210 (add-after 'unpack 'fix-dependencies
17211 (lambda* (#:key inputs #:allow-other-keys)
17212 (call-with-output-file "build.xml"
17213 (lambda (port)
17214 (sxml->xml
17215 (pre-post-order
17216 (with-input-from-file "src/build.xml"
17217 (lambda _ (xml->sxml #:trim-whitespace? #t)))
17218 `(;; Remove all unjar tags to avoid repacking classes.
17219 (unjar . ,(lambda _ '()))
17220 (*default* . ,(lambda (tag . kids) `(,tag ,@kids)))
17221 (*text* . ,(lambda (_ txt) txt))))
17222 port)))
17223 (copy-file (assoc-ref inputs "synth_look_and_feel_1.xml")
17224 "synth_look_and_feel_1.xml")
17225 (copy-file (assoc-ref inputs "phyloxml.xsd")
17226 "phyloxml.xsd")
17227 (substitute* "build.xml"
17228 (("../resources/synth_laf/synth_look_and_feel_1.xml")
17229 "synth_look_and_feel_1.xml")
17230 (("../resources/phyloxml_schema/1.10/phyloxml.xsd")
17231 "phyloxml.xsd"))
17232 #t))
17233 ;; FIXME: itext is difficult to package as it depends on a few
17234 ;; unpackaged libraries.
17235 (add-after 'unpack 'remove-dependency-on-unpackaged-itext
17236 (lambda _
17237 (delete-file "src/org/forester/archaeopteryx/PdfExporter.java")
17238 (substitute* '("src/org/forester/archaeopteryx/MainFrame.java"
17239 "src/org/forester/archaeopteryx/MainFrameApplication.java")
17240 (("pdf_written_to = PdfExporter.*")
17241 "throw new IOException(\"PDF export is not available.\"); /*")
17242 ((".getPrintSizeX\\(\\), getOptions\\(\\).getPrintSizeY\\(\\) \\);") "*/")
17243 (("getCurrentTreePanel\\(\\).getHeight\\(\\) \\);") "*/"))
17244 #t))
17245 (add-after 'unpack 'delete-pre-built-classes
17246 (lambda _ (delete-file-recursively "src/classes") #t))
17247 ;; There is no install target
17248 (replace 'install (install-jars ".")))))
17249 (propagated-inputs
17250 (list java-commons-codec java-openchart2))
17251 ;; The source archive does not contain the resources.
17252 (native-inputs
17253 `(("phyloxml.xsd"
17254 ,(origin
17255 (method url-fetch)
17256 (uri (string-append "https://raw.githubusercontent.com/cmzmasek/forester/"
17257 "b61cc2dcede0bede317db362472333115756b8c6/"
17258 "forester/resources/phyloxml_schema/1.10/phyloxml.xsd"))
17259 (file-name (string-append name "-phyloxml-" version ".xsd"))
17260 (sha256
17261 (base32
17262 "1zxc4m8sn4n389nqdnpxa8d0k17qnr3pm2y5y6g6vh4k0zm52npv"))))
17263 ("synth_look_and_feel_1.xml"
17264 ,(origin
17265 (method url-fetch)
17266 (uri (string-append "https://raw.githubusercontent.com/cmzmasek/forester/"
17267 "29e04321615da6b35c1e15c60e52caf3f21d8e6a/"
17268 "forester/java/classes/resources/"
17269 "synth_look_and_feel_1.xml"))
17270 (file-name (string-append name "-synth-look-and-feel-" version ".xml"))
17271 (sha256
17272 (base32
17273 "1gv5602gv4k7y7713y75a4jvj7i9s7nildsbdl7n9q10sc2ikg8h"))))))
17274 (home-page "https://sites.google.com/site/cmzmasek/home/software/forester")
17275 (synopsis "Phylogenomics libraries for Java")
17276 (description "Forester is a collection of Java libraries for
17277phylogenomics and evolutionary biology research. It includes support for
17278reading, writing, and exporting phylogenetic trees.")
17279 (license license:lgpl2.1+)))
17280
17281(define-public java-biojava-core
17282 (package
17283 (name "java-biojava-core")
17284 (version "4.2.11")
17285 (source (origin
17286 (method git-fetch)
17287 (uri (git-reference
17288 (url "https://github.com/biojava/biojava")
17289 (commit (string-append "biojava-" version))))
17290 (file-name (string-append name "-" version "-checkout"))
17291 (sha256
17292 (base32
17293 "1bvryh2bpsvash8ln79cmc9sqm8qw72hz4xzwqxcrjm8ssxszhqk"))))
17294 (build-system ant-build-system)
17295 (arguments
17296 `(#:jdk ,icedtea-8
17297 #:jar-name "biojava-core.jar"
17298 #:source-dir "biojava-core/src/main/java/"
17299 #:test-dir "biojava-core/src/test"
17300 ;; These tests seem to require internet access.
17301 #:test-exclude (list "**/SearchIOTest.java"
17302 "**/BlastXMLParserTest.java"
17303 "**/GenbankCookbookTest.java"
17304 "**/GenbankProxySequenceReaderTest.java")
17305 #:phases
17306 (modify-phases %standard-phases
17307 (add-before 'build 'copy-resources
17308 (lambda _
17309 (copy-recursively "biojava-core/src/main/resources"
17310 "build/classes")
17311 #t))
17312 (add-before 'check 'copy-test-resources
17313 (lambda _
17314 (copy-recursively "biojava-core/src/test/resources"
17315 "build/test-classes")
17316 #t)))))
17317 (propagated-inputs
17318 (list java-log4j-api java-log4j-core java-slf4j-api
17319 java-slf4j-simple))
17320 (native-inputs
17321 (list java-junit java-hamcrest-core))
17322 (home-page "https://biojava.org")
17323 (synopsis "Core libraries of Java framework for processing biological data")
17324 (description "BioJava is a project dedicated to providing a Java framework
17325for processing biological data. It provides analytical and statistical
17326routines, parsers for common file formats, reference implementations of
17327popular algorithms, and allows the manipulation of sequences and 3D
17328structures. The goal of the biojava project is to facilitate rapid
17329application development for bioinformatics.
17330
17331This package provides the core libraries.")
17332 (license license:lgpl2.1+)))
17333
17334(define-public java-biojava-phylo
17335 (package (inherit java-biojava-core)
17336 (name "java-biojava-phylo")
17337 (build-system ant-build-system)
17338 (arguments
17339 `(#:jdk ,icedtea-8
17340 #:jar-name "biojava-phylo.jar"
17341 #:source-dir "biojava-phylo/src/main/java/"
17342 #:test-dir "biojava-phylo/src/test"
17343 #:phases
17344 (modify-phases %standard-phases
17345 (add-before 'build 'copy-resources
17346 (lambda _
17347 (copy-recursively "biojava-phylo/src/main/resources"
17348 "build/classes")
17349 #t))
17350 (add-before 'check 'copy-test-resources
17351 (lambda _
17352 (copy-recursively "biojava-phylo/src/test/resources"
17353 "build/test-classes")
17354 #t)))))
17355 (propagated-inputs
17356 (list java-log4j-api
17357 java-log4j-core
17358 java-slf4j-api
17359 java-slf4j-simple
17360 java-biojava-core
17361 java-forester))
17362 (native-inputs
17363 (list java-junit java-hamcrest-core))
17364 (home-page "https://biojava.org")
17365 (synopsis "Biojava interface to the forester phylogenomics library")
17366 (description "The phylo module provides a biojava interface layer to the
17367forester phylogenomics library for constructing phylogenetic trees.")))
17368
17369(define-public java-biojava-alignment
17370 (package (inherit java-biojava-core)
17371 (name "java-biojava-alignment")
17372 (build-system ant-build-system)
17373 (arguments
17374 `(#:jdk ,icedtea-8
17375 #:jar-name "biojava-alignment.jar"
17376 #:source-dir "biojava-alignment/src/main/java/"
17377 #:test-dir "biojava-alignment/src/test"
17378 #:phases
17379 (modify-phases %standard-phases
17380 (add-before 'build 'copy-resources
17381 (lambda _
17382 (copy-recursively "biojava-alignment/src/main/resources"
17383 "build/classes")
17384 #t))
17385 (add-before 'check 'copy-test-resources
17386 (lambda _
17387 (copy-recursively "biojava-alignment/src/test/resources"
17388 "build/test-classes")
17389 #t)))))
17390 (propagated-inputs
17391 (list java-log4j-api
17392 java-log4j-core
17393 java-slf4j-api
17394 java-slf4j-simple
17395 java-biojava-core
17396 java-biojava-phylo
17397 java-forester))
17398 (native-inputs
17399 (list java-junit java-hamcrest-core))
17400 (home-page "https://biojava.org")
17401 (synopsis "Biojava API for genetic sequence alignment")
17402 (description "The alignment module of BioJava provides an API that
17403contains
17404
17405@itemize
17406@item implementations of dynamic programming algorithms for sequence
17407 alignment;
17408@item reading and writing of popular alignment file formats;
17409@item a single-, or multi- threaded multiple sequence alignment algorithm.
17410@end itemize\n")))
17411
17412(define-public java-biojava-core-4.0
17413 (package (inherit java-biojava-core)
17414 (name "java-biojava-core")
17415 (version "4.0.0")
17416 (source (origin
17417 (method git-fetch)
17418 (uri (git-reference
17419 (url "https://github.com/biojava/biojava")
17420 (commit (string-append "biojava-" version))))
17421 (file-name (string-append name "-" version "-checkout"))
17422 (sha256
17423 (base32
17424 "13675f6y9aqi7bi2lk3s1z7a22ynccjiqwa8izh7p97xi9wsfmd8"))))))
17425
17426(define-public java-biojava-phylo-4.0
17427 (package (inherit java-biojava-core-4.0)
17428 (name "java-biojava-phylo")
17429 (build-system ant-build-system)
17430 (arguments
17431 `(#:jdk ,icedtea-8
17432 #:jar-name "biojava-phylo.jar"
17433 #:source-dir "biojava-phylo/src/main/java/"
17434 #:test-dir "biojava-phylo/src/test"
17435 #:phases
17436 (modify-phases %standard-phases
17437 (add-before 'build 'copy-resources
17438 (lambda _
17439 (copy-recursively "biojava-phylo/src/main/resources"
17440 "build/classes")
17441 #t))
17442 (add-before 'check 'copy-test-resources
17443 (lambda _
17444 (copy-recursively "biojava-phylo/src/test/resources"
17445 "build/test-classes")
17446 #t)))))
17447 (propagated-inputs
17448 (list java-log4j-api
17449 java-log4j-core
17450 java-slf4j-api
17451 java-slf4j-simple
17452 java-biojava-core-4.0
17453 java-forester-1.005))
17454 (native-inputs
17455 (list java-junit java-hamcrest-core))
17456 (home-page "https://biojava.org")
17457 (synopsis "Biojava interface to the forester phylogenomics library")
17458 (description "The phylo module provides a biojava interface layer to the
17459forester phylogenomics library for constructing phylogenetic trees.")))
17460
17461(define-public java-biojava-alignment-4.0
17462 (package (inherit java-biojava-core-4.0)
17463 (name "java-biojava-alignment")
17464 (build-system ant-build-system)
17465 (arguments
17466 `(#:jdk ,icedtea-8
17467 #:jar-name "biojava-alignment.jar"
17468 #:source-dir "biojava-alignment/src/main/java/"
17469 #:test-dir "biojava-alignment/src/test"
17470 #:phases
17471 (modify-phases %standard-phases
17472 (add-before 'build 'copy-resources
17473 (lambda _
17474 (copy-recursively "biojava-alignment/src/main/resources"
17475 "build/classes")
17476 #t))
17477 (add-before 'check 'copy-test-resources
17478 (lambda _
17479 (copy-recursively "biojava-alignment/src/test/resources"
17480 "build/test-classes")
17481 #t)))))
17482 (propagated-inputs
17483 (list java-log4j-api
17484 java-log4j-core
17485 java-slf4j-api
17486 java-slf4j-simple
17487 java-biojava-core-4.0
17488 java-biojava-phylo-4.0
17489 java-forester-1.005))
17490 (native-inputs
17491 (list java-junit java-hamcrest-core))
17492 (home-page "https://biojava.org")
17493 (synopsis "Biojava API for genetic sequence alignment")
17494 (description "The alignment module of BioJava provides an API that
17495contains
17496
17497@itemize
17498@item implementations of dynamic programming algorithms for sequence
17499 alignment;
17500@item reading and writing of popular alignment file formats;
17501@item a single-, or multi- threaded multiple sequence alignment algorithm.
17502@end itemize\n")))
17503
17504(define-public dropseq-tools
17505 (package
17506 (name "dropseq-tools")
17507 (version "1.13")
17508 (source
17509 (origin
17510 (method url-fetch)
17511 (uri "http://mccarrolllab.com/download/1276/")
17512 (file-name (string-append "dropseq-tools-" version ".zip"))
17513 (sha256
17514 (base32 "0yrffckxqk5l8b5xb6z4laq157zd9mdypr2p4b4vq2bhjzi1sj0s"))
17515 ;; Delete bundled libraries
17516 (modules '((guix build utils)))
17517 (snippet
17518 '(begin
17519 (for-each delete-file
17520 (find-files "jar/lib" "\\.jar$"))
17521 (delete-file-recursively "3rdParty")))))
17522 (build-system ant-build-system)
17523 (arguments
17524 (list
17525 #:tests? #f ;test data are not included
17526 #:test-target "test"
17527 #:build-target "all"
17528 #:source-dir "public/src/"
17529 #:jdk icedtea-8
17530 #:make-flags
17531 #~(list (string-append "-Dpicard.executable.dir="
17532 #$(this-package-input "java-picard")
17533 "/share/java/"))
17534 #:modules `((ice-9 match)
17535 (srfi srfi-1)
17536 (guix build utils)
17537 (guix build java-utils)
17538 (guix build ant-build-system))
17539 #:phases
17540 #~(modify-phases %standard-phases
17541 ;; FIXME: fails with "java.io.FileNotFoundException:
17542 ;; /gnu/store/…-dropseq-tools-1.13/share/java/lib/biojava-alignment.jar"
17543 (delete 'generate-jar-indices)
17544 ;; All dependencies must be linked to "lib", because that's where
17545 ;; they will be searched for when the Class-Path property of the
17546 ;; manifest is computed.
17547 (add-after 'unpack 'record-references
17548 (lambda* (#:key inputs #:allow-other-keys)
17549 (mkdir-p "jar/lib")
17550 (let ((dirs (filter-map
17551 (match-lambda
17552 ((name . dir)
17553 (and (string-prefix? "java-" name)
17554 (not (string=? name "java-testng"))
17555 dir)))
17556 inputs)))
17557 (for-each
17558 (lambda (jar)
17559 (symlink jar (string-append "jar/lib/" (basename jar))))
17560 (append-map (lambda (dir)
17561 (find-files dir "\\.jar$"))
17562 dirs)))))
17563 ;; There is no installation target
17564 (replace 'install
17565 (lambda* (#:key inputs #:allow-other-keys)
17566 (let* ((bin (string-append #$output "/bin"))
17567 (share (string-append #$output "/share/java/"))
17568 (scripts (list "BAMTagHistogram"
17569 "BAMTagofTagCounts"
17570 "BaseDistributionAtReadPosition"
17571 "CollapseBarcodesInPlace"
17572 "CollapseTagWithContext"
17573 "ConvertToRefFlat"
17574 "CreateIntervalsFiles"
17575 "DetectBeadSynthesisErrors"
17576 "DigitalExpression"
17577 "Drop-seq_alignment.sh"
17578 "FilterBAM"
17579 "FilterBAMByTag"
17580 "GatherGeneGCLength"
17581 "GatherMolecularBarcodeDistributionByGene"
17582 "GatherReadQualityMetrics"
17583 "PolyATrimmer"
17584 "ReduceGTF"
17585 "SelectCellsByNumTranscripts"
17586 "SingleCellRnaSeqMetricsCollector"
17587 "TagBamWithReadSequenceExtended"
17588 "TagReadWithGeneExon"
17589 "TagReadWithInterval"
17590 "TrimStartingSequence"
17591 "ValidateReference")))
17592 (install-file "dist/dropseq.jar" share)
17593 (for-each (lambda (script)
17594 (chmod script #o555)
17595 (install-file script bin))
17596 scripts)
17597 (with-directory-excursion bin
17598 (substitute* scripts
17599 (("^java")
17600 (which "java"))
17601 (("jar_deploy_dir=.*")
17602 (string-append "jar_deploy_dir=" share "\n")))))))
17603 ;; FIXME: We do this after stripping jars because we don't want it to
17604 ;; copy all these jars and strip them. We only want to install
17605 ;; links. Arguably, this is a problem with the ant-build-system.
17606 (add-after 'strip-jar-timestamps 'install-links
17607 (lambda _
17608 (let ((lib (string-append #$output "/share/java/lib/")))
17609 (mkdir-p lib)
17610 (for-each (lambda (jar)
17611 (symlink (readlink jar)
17612 (string-append lib (basename jar))))
17613 (find-files "jar/lib" "\\.jar$"))))))))
17614 (inputs
17615 (list icedtea-8
17616 java-picard-2.10.3
17617 java-log4j-1.2-api
17618 java-commons-math3
17619 java-commons-jexl-2
17620 java-commons-collections4
17621 java-commons-lang
17622 java-commons-io
17623 java-snappy-1
17624 java-guava
17625 java-la4j
17626 java-biojava-core-4.0
17627 java-biojava-alignment-4.0
17628 java-jdistlib
17629 java-simple-xml
17630 java-snakeyaml))
17631 (native-inputs (list unzip java-testng))
17632 (home-page "http://mccarrolllab.com/dropseq/")
17633 (synopsis "Tools for Drop-seq analyses")
17634 (description
17635 "Drop-seq is a technology to enable biologists to analyze RNA expression
17636genome-wide in thousands of individual cells at once. This package provides
17637tools to perform Drop-seq analyses.")
17638 (license license:expat)))
17639
17640(define-public pigx-rnaseq
17641 (let ((commit "1605b541da090e13d58dae6fed38ae8dda09f002"))
17642 (package
17643 (name "pigx-rnaseq")
17644 (version (git-version "0.1.1" "0" commit))
17645 (source (origin
17646 (method git-fetch)
17647 (uri (git-reference
17648 (url "https://github.com/BIMSBbioinfo/pigx_rnaseq/")
17649 (commit commit)
17650 (recursive? #true)))
17651 (file-name (git-file-name name version))
17652 (sha256
17653 (base32
17654 "1j5c0wlasmxvz9z64yga56m2hhbybl149kknsrpvmq0v2gl31rn5"))))
17655 (build-system gnu-build-system)
17656 (arguments
17657 (list
17658 #:parallel-tests? #f ; not supported
17659 #:phases
17660 '(modify-phases %standard-phases
17661 ;; "test.sh" runs the whole pipeline, which takes a long time and
17662 ;; might fail due to OOM. The MultiQC is also resource intensive.
17663 (add-after 'unpack 'disable-resource-intensive-test
17664 (lambda _
17665 (substitute* "Makefile.am"
17666 (("^ tests/test_multiqc/test.sh.*") "")
17667 (("^ tests/test_hisat2/test.sh.*") " tests/test_hisat2/test.sh\n")
17668 (("^ test.sh") ""))))
17669 (add-before 'bootstrap 'autoreconf
17670 (lambda _
17671 (invoke "autoreconf" "-vif")))
17672 (add-before 'configure 'set-PYTHONPATH
17673 (lambda _
17674 (setenv "PYTHONPATH" (getenv "GUIX_PYTHONPATH"))))
17675 (add-before 'check 'set-timezone
17676 ;; The readr package is picky about timezones.
17677 (lambda* (#:key inputs #:allow-other-keys)
17678 (setenv "TZ" "UTC+1")
17679 (setenv "TZDIR"
17680 (search-input-directory inputs
17681 "share/zoneinfo"))))
17682 (add-before 'check 'pre-check
17683 (lambda _
17684 ;; Needed for tests
17685 (setenv "HOME" "/tmp"))))))
17686 (inputs
17687 (list coreutils
17688 sed
17689 gzip
17690 snakemake
17691 megadepth
17692 multiqc
17693 star-for-pigx
17694 hisat2
17695 fastp
17696 htseq
17697 samtools
17698 r-minimal
17699 r-rmarkdown
17700 r-genomeinfodb
17701 r-ggplot2
17702 r-ggpubr
17703 r-ggrepel
17704 r-gprofiler2
17705 r-deseq2
17706 r-dt
17707 r-knitr
17708 r-pheatmap
17709 r-corrplot
17710 r-reshape2
17711 r-plotly
17712 r-scales
17713 r-summarizedexperiment
17714 r-crosstalk
17715 r-tximport
17716 r-rtracklayer
17717 r-rjson
17718 salmon
17719 pandoc
17720 python-wrapper
17721 python-deeptools
17722 python-pyyaml))
17723 (native-inputs
17724 (list tzdata automake autoconf))
17725 (home-page "https://bioinformatics.mdc-berlin.de/pigx/")
17726 (synopsis "Analysis pipeline for RNA sequencing experiments")
17727 (description "PiGX RNAseq is an analysis pipeline for preprocessing and
17728reporting for RNA sequencing experiments. It is easy to use and produces high
17729quality reports. The inputs are reads files from the sequencing experiment,
17730and a configuration file which describes the experiment. In addition to
17731quality control of the experiment, the pipeline produces a differential
17732expression report comparing samples in an easily configurable manner.")
17733 (license license:gpl3+))))
17734
17735(define-public pigx-chipseq
17736 (package
17737 (name "pigx-chipseq")
17738 (version "0.2.0")
17739 (source (origin
17740 (method url-fetch)
17741 (uri (string-append "https://github.com/BIMSBbioinfo/pigx_chipseq/"
17742 "releases/download/v" version
17743 "/pigx_chipseq-" version ".tar.gz"))
17744 (sha256
17745 (base32
17746 "09m1bpjapfxwhzrnvfs2g2zv28k6af7yf7s5ji861nb9bwlkmyi7"))))
17747 (build-system gnu-build-system)
17748 (arguments
17749 `(#:tests? #f ; parts of the tests rely on access to the network
17750 #:phases
17751 (modify-phases %standard-phases
17752 (add-before 'configure 'set-PYTHONPATH
17753 (lambda _
17754 (setenv "PYTHONPATH" (getenv "GUIX_PYTHONPATH"))))
17755 (add-before 'check 'pre-check
17756 (lambda _
17757 ;; Needed for tests
17758 (setenv "HOME" "/tmp"))))))
17759 (inputs
17760 (list grep
17761 coreutils
17762 r-minimal
17763 r-argparser
17764 r-biocparallel
17765 r-biostrings
17766 r-chipseq
17767 r-corrplot
17768 r-data-table
17769 r-deseq2
17770 r-dplyr
17771 r-dt
17772 r-genomation
17773 r-genomicalignments
17774 r-genomicranges
17775 r-ggplot2
17776 r-ggrepel
17777 r-gprofiler2
17778 r-heatmaply
17779 r-hexbin
17780 r-htmlwidgets
17781 r-jsonlite
17782 r-pheatmap
17783 r-plotly
17784 r-rmarkdown
17785 r-rsamtools
17786 r-rsubread
17787 r-rtracklayer
17788 r-s4vectors
17789 r-stringr
17790 r-tibble
17791 r-tidyr
17792 python-wrapper
17793 python-pyyaml
17794 python-magic
17795 python-xlrd
17796 trim-galore
17797 macs
17798 multiqc
17799 perl
17800 pandoc
17801 fastqc
17802 bowtie
17803 idr
17804 snakemake
17805 samtools
17806 bedtools
17807 kentutils))
17808 (native-inputs
17809 (list python-pytest))
17810 (home-page "https://bioinformatics.mdc-berlin.de/pigx/")
17811 (synopsis "Analysis pipeline for ChIP sequencing experiments")
17812 (description "PiGX ChIPseq is an analysis pipeline for preprocessing, peak
17813calling and reporting for ChIP sequencing experiments. It is easy to use and
17814produces high quality reports. The inputs are reads files from the sequencing
17815experiment, and a configuration file which describes the experiment. In
17816addition to quality control of the experiment, the pipeline enables to set up
17817multiple peak calling analysis and allows the generation of a UCSC track hub
17818in an easily configurable manner.")
17819 (license license:gpl3+)))
17820
17821(define-public pigx-bsseq
17822 (let ((commit "1b3a69bd5363fa882af4193215de7fb475bae066"))
17823 (package
17824 (name "pigx-bsseq")
17825 (version (git-version "0.1.10" "0" commit))
17826 (source (origin
17827 (method git-fetch)
17828 (uri (git-reference
17829 (url "https://github.com/BIMSBbioinfo/pigx_bsseq/")
17830 (commit commit)
17831 (recursive? #true)))
17832 (file-name (git-file-name name version))
17833 (sha256
17834 (base32
17835 "0r0gjfycgh1hqba7ma03bwxlvr2kz68yzclx5iba3wrxxqmivil6"))))
17836 (build-system gnu-build-system)
17837 (arguments
17838 (list
17839 ;; TODO: tests currently require 12+GB of RAM. See
17840 ;; https://github.com/BIMSBbioinfo/pigx_bsseq/issues/164
17841 #:tests? #f
17842 #:phases
17843 '(modify-phases %standard-phases
17844 ;; This file is meant for development, but it interferes with
17845 ;; Makefile.
17846 (add-after 'unpack 'delete-GNUmakefile
17847 (lambda _ (delete-file "GNUmakefile")))
17848 (add-before 'configure 'set-PYTHONPATH
17849 (lambda _
17850 (setenv "PYTHONPATH" (getenv "GUIX_PYTHONPATH"))))
17851 (add-before 'check 'set-timezone
17852 ;; The readr package is picky about timezones.
17853 (lambda* (#:key inputs #:allow-other-keys)
17854 (setenv "TZ" "UTC+1")
17855 (setenv "TZDIR"
17856 (search-input-directory inputs
17857 "share/zoneinfo"))))
17858 (add-before 'check 'pre-check
17859 (lambda _
17860 ;; Needed for tests
17861 (setenv "HOME" "/tmp"))))))
17862 (native-inputs
17863 (list tzdata-for-tests autoconf automake))
17864 (inputs
17865 (list coreutils
17866 sed
17867 grep
17868 r-minimal
17869 r-annotationhub
17870 r-dt
17871 r-genomation
17872 r-ggbio
17873 r-ggrepel
17874 r-matrixstats
17875 r-methylkit
17876 r-reshape2
17877 r-rtracklayer
17878 r-rmarkdown
17879 r-bookdown
17880 r-ggplot2
17881 r-ggbio
17882 pandoc
17883 python-wrapper
17884 python-pyyaml
17885 snakemake
17886 bismark
17887 bowtie
17888 bwa-meth
17889 fastqc
17890 methyldackel
17891 multiqc
17892 trim-galore
17893 cutadapt
17894 samblaster
17895 samtools))
17896 (home-page "https://bioinformatics.mdc-berlin.de/pigx/")
17897 (synopsis "Bisulfite sequencing pipeline from fastq to methylation reports")
17898 (description "PiGx BSseq is a data processing pipeline for raw fastq read
17899data of bisulfite experiments; it produces reports on aggregate methylation
17900and coverage and can be used to produce information on differential
17901methylation and segmentation.")
17902 (license license:gpl3+))))
17903
17904(define-public pigx-scrnaseq
17905 (package
17906 (name "pigx-scrnaseq")
17907 (version "1.1.10")
17908 (source
17909 (origin
17910 (method url-fetch)
17911 (uri (string-append "https://github.com/BIMSBbioinfo/pigx_scrnaseq/"
17912 "releases/download/v" version
17913 "/pigx_scrnaseq-" version ".tar.gz"))
17914 (sha256
17915 (base32 "082im1j6qpd2y8ax4msxw7mfc40zxpl29hx92skqdd55745f58z8"))
17916 (patches
17917 (list
17918 (origin
17919 (method url-fetch)
17920 (uri
17921 (let ((commit "fd556e2708b696cd6925f8f74430491afa0377ee"))
17922 (string-append "https://github.com/BIMSBbioinfo/pigx_scrnaseq/"
17923 "commit/" commit ".patch")))
17924 (sha256
17925 (base32 "1lbgq3jskkppw3p6i5h0p09n36bv1lmjifaq6914w4cndddrp3ds")))))))
17926 (build-system gnu-build-system)
17927 (arguments
17928 (list
17929 #:phases
17930 '(modify-phases %standard-phases
17931 (add-before 'configure 'set-additional-environment-variables
17932 (lambda _
17933 ;; Needed for tests
17934 (setenv "HOME" "/tmp")
17935 ;; Needed because of loompy
17936 (setenv "NUMBA_CACHE_DIR" "/tmp")
17937 ;; Needed to capture environment
17938 (setenv "PYTHONPATH" (getenv "GUIX_PYTHONPATH")))))))
17939 (native-inputs
17940 (list python-setuptools))
17941 (inputs
17942 (list coreutils
17943 perl
17944 fastqc
17945 flexbar
17946 icedtea-8
17947 jellyfish
17948 python-wrapper
17949 python-pyyaml
17950 python-pandas
17951 python-magic
17952 python-numpy-1
17953 python-loompy
17954 pandoc
17955 samtools
17956 snakemake
17957 star-for-pigx
17958 r-minimal
17959 r-argparser
17960 r-cowplot
17961 r-data-table
17962 r-delayedarray
17963 r-delayedmatrixstats
17964 r-dplyr
17965 r-dropbead
17966 r-dt
17967 r-genomicalignments
17968 r-genomicfiles
17969 r-genomicranges
17970 r-ggplot2
17971 r-hdf5array
17972 r-pheatmap
17973 r-rmarkdown
17974 r-rsamtools
17975 r-rtracklayer
17976 r-rtsne
17977 r-scater
17978 r-scran
17979 r-seurat
17980 r-singlecellexperiment
17981 r-stringr
17982 r-yaml))
17983 (home-page "https://bioinformatics.mdc-berlin.de/pigx/")
17984 (synopsis "Analysis pipeline for single-cell RNA sequencing experiments")
17985 (description
17986 "PiGX scRNAseq is an analysis pipeline for preprocessing and
17987quality control for single cell RNA sequencing experiments. The inputs are
17988read files from the sequencing experiment, and a configuration file which
17989describes the experiment. It produces processed files for downstream analysis
17990and interactive quality reports. The pipeline is designed to work with UMI
17991based methods.")
17992 (license license:gpl3+)))
17993
17994(define-public pigx-sars-cov-2
17995 (package
17996 (name "pigx-sars-cov-2")
17997 (version "0.0.9")
17998 (source (origin
17999 (method url-fetch)
18000 (uri (string-append "https://github.com/BIMSBbioinfo/pigx_sars-cov-2"
18001 "/releases/download/v" version
18002 "/pigx_sars-cov-2-" version ".tar.gz"))
18003 (sha256
18004 (base32
18005 "168hrafgsn165q3hcdn916vlbl0zbzri1lckaqapbrcqk00izxma"))))
18006 (build-system gnu-build-system)
18007 (arguments
18008 (list
18009 #:phases
18010 '(modify-phases %standard-phases
18011 (add-after 'unpack 'unpack-databases
18012 (lambda* (#:key inputs #:allow-other-keys)
18013 ;; The tests need to be able to write caches to HOME.
18014 ;; They also default to reading the databases from there.
18015 (setenv "HOME" "/tmp")
18016 ;; Unpack the three databases in the expected location.
18017 (let ((root "/tmp/.local/share/pigx/databases")
18018 (use-underscore (lambda (c) (if (equal? c #\-) #\_ c))))
18019 (for-each (lambda (db)
18020 (let ((where (string-append root "/"
18021 (string-map use-underscore db))))
18022 (mkdir-p where)
18023 (invoke "tar" "-C" where
18024 "-xf" (assoc-ref inputs db))))
18025 '("kraken-db" "krona-db" "vep-db")))))
18026 (add-before 'configure 'set-PYTHONPATH
18027 (lambda _
18028 (setenv "PYTHONPATH" (getenv "GUIX_PYTHONPATH")))))))
18029 (native-inputs
18030 (let ((bimsb-origin
18031 (lambda (name hash)
18032 (origin
18033 (method url-fetch)
18034 (uri
18035 (string-append "https://bimsbstatic.mdc-berlin.de/akalin/AAkalin_pathogenomics"
18036 "/databases_small-20221006/" name))
18037 (sha256 (base32 hash))))))
18038 `(("kraken-db"
18039 ,(bimsb-origin
18040 "kraken_db.tar.gz"
18041 "0sdm4xh5npg6c3y2pz8xgphim4qpglm8wdid6rlaaqsn6iikv0mz"))
18042 ("krona-db"
18043 ,(bimsb-origin
18044 "krona_db.tar.gz"
18045 "1rwy4gd3vw1gdjldrgf44c1xaa3vq8i3pgisjhrac81yx63x8f2h"))
18046 ("vep-db"
18047 ,(bimsb-origin
18048 "vep_db.tar.gz"
18049 "0d8hhi43zsw3wqm7gd0z0gpcdsc6h6ra0imn87hifl9a64jxqzxz")))))
18050 (inputs
18051 (list bash-minimal
18052 bedtools
18053 bwa
18054 ensembl-vep
18055 fastp
18056 fastqc
18057 ivar
18058 kraken2
18059 krona-tools
18060 lofreq
18061 multiqc
18062 python-pyyaml
18063 python-wrapper
18064 r-base64url
18065 r-data-table
18066 r-deconvr
18067 r-dplyr
18068 r-dt
18069 r-ggplot2
18070 r-htmltools
18071 r-jsonlite
18072 r-knitr
18073 r-magrittr
18074 r-mass
18075 r-minimal
18076 r-plotly
18077 r-qpcr
18078 r-r-utils
18079 r-reshape2
18080 r-rmarkdown
18081 r-stringr
18082 r-tidyr
18083 r-viridis
18084 samtools
18085 snakemake
18086 wget))
18087 (home-page "https://bioinformatics.mdc-berlin.de/pigx/")
18088 (synopsis "Analysis pipeline for wastewater sequencing")
18089 (description "PiGx SARS-CoV-2 is a pipeline for analysing data from
18090sequenced wastewater samples and identifying given variants-of-concern of
18091SARS-CoV-2. The pipeline can be used for continuous sampling. The output
18092report will provide an intuitive visual overview about the development of
18093variant abundance over time and location.")
18094 (license license:gpl3+)))
18095
18096(define-public pigx
18097 (package
18098 (name "pigx")
18099 (version "0.0.3")
18100 (source (origin
18101 (method url-fetch)
18102 (uri (string-append "https://github.com/BIMSBbioinfo/pigx/"
18103 "releases/download/v" version
18104 "/pigx-" version ".tar.gz"))
18105 (sha256
18106 (base32
18107 "1i5njdy1clj5ncw45d16p7mwmqvb1ilikl9n797pxklc3f4s7mq7"))))
18108 (build-system gnu-build-system)
18109 (inputs
18110 (list python pigx-bsseq pigx-chipseq pigx-rnaseq pigx-scrnaseq))
18111 (home-page "https://bioinformatics.mdc-berlin.de/pigx/")
18112 (synopsis "Analysis pipelines for genomics")
18113 (description "PiGx is a collection of genomics pipelines. It includes the
18114following pipelines:
18115
18116@itemize
18117@item PiGx BSseq for raw fastq read data of bisulfite experiments
18118@item PiGx RNAseq for RNAseq samples
18119@item PiGx scRNAseq for single cell dropseq analysis
18120@item PiGx ChIPseq for reads from ChIPseq experiments
18121@end itemize
18122
18123All pipelines are easily configured with a simple sample sheet and a
18124descriptive settings file. The result is a set of comprehensive, interactive
18125HTML reports with interesting findings about your samples.")
18126 (license license:gpl3+)))
18127
18128(define-public genrich
18129 (package
18130 (name "genrich")
18131 (version "0.5")
18132 (source (origin
18133 (method git-fetch)
18134 (uri (git-reference
18135 (url "https://github.com/jsh58/Genrich")
18136 (commit (string-append "v" version))))
18137 (file-name (git-file-name name version))
18138 (sha256
18139 (base32
18140 "0x0q6z0208n3cxzqjla4rgjqpyqgwpmz27852lcvzkzaigymq4zp"))))
18141 (build-system gnu-build-system)
18142 (arguments
18143 `(#:tests? #f ; there are none
18144 #:phases
18145 (modify-phases %standard-phases
18146 (delete 'configure)
18147 (replace 'install
18148 (lambda* (#:key outputs #:allow-other-keys)
18149 (install-file "Genrich" (string-append (assoc-ref outputs "out") "/bin"))
18150 #t)))))
18151 (inputs
18152 (list zlib))
18153 (home-page "https://github.com/jsh58/Genrich")
18154 (synopsis "Detecting sites of genomic enrichment")
18155 (description "Genrich is a peak-caller for genomic enrichment
18156assays (e.g. ChIP-seq, ATAC-seq). It analyzes alignment files generated
18157following the assay and produces a file detailing peaks of significant
18158enrichment.")
18159 (license license:expat)))
18160
18161(define-public sjcount
18162 ;; There is no tag for version 3.2, nor is there a release archive.
18163 (let ((commit "292d3917cadb3f6834c81e509c30e61cd7ead6e5")
18164 (revision "1"))
18165 (package
18166 (name "sjcount")
18167 (version (git-version "3.2" revision commit))
18168 (source (origin
18169 (method git-fetch)
18170 (uri (git-reference
18171 (url "https://github.com/pervouchine/sjcount-full")
18172 (commit commit)))
18173 (file-name (string-append name "-" version "-checkout"))
18174 (sha256
18175 (base32
18176 "0gdgj35j249f04rqgq8ymcc1xg1vi9kzbajnjqpaq2wpbh8bl234"))))
18177 (build-system gnu-build-system)
18178 (arguments
18179 `(#:tests? #f ; requires a 1.4G test file
18180 #:make-flags
18181 ,#~(list (string-append "SAMTOOLS_DIR="
18182 #$(this-package-input "samtools")
18183 "/lib/"))
18184 #:phases
18185 (modify-phases %standard-phases
18186 (replace 'configure
18187 (lambda* (#:key inputs #:allow-other-keys)
18188 (substitute* "makefile"
18189 (("-I \\$\\{SAMTOOLS_DIR\\}")
18190 (string-append "-I" (assoc-ref inputs "samtools")
18191 "/include/samtools"))
18192 (("-lz ") "-lz -lpthread "))))
18193 (replace 'install
18194 (lambda* (#:key outputs #:allow-other-keys)
18195 (for-each (lambda (tool)
18196 (install-file tool
18197 (string-append (assoc-ref outputs "out")
18198 "/bin")))
18199 '("j_count" "b_count" "sjcount")))))))
18200 (inputs
18201 (list samtools-0.1 zlib))
18202 (home-page "https://github.com/pervouchine/sjcount-full/")
18203 (synopsis "Annotation-agnostic splice junction counting pipeline")
18204 (description "Sjcount is a utility for fast quantification of splice
18205junctions in RNA-seq data. It is annotation-agnostic and offset-aware. This
18206version does count multisplits.")
18207 (license license:gpl3+))))
18208
18209(define-public minimap2
18210 (package
18211 (name "minimap2")
18212 (version "2.28")
18213 (source
18214 (origin
18215 (method url-fetch)
18216 (uri (string-append "https://github.com/lh3/minimap2/"
18217 "releases/download/v" version "/"
18218 "minimap2-" version ".tar.bz2"))
18219 (sha256
18220 (base32
18221 "1d50j9fdmmaj7sdf4f49xddc235f7032lwh5ijgi2afj6lkp39gz"))))
18222 (build-system gnu-build-system)
18223 (arguments
18224 `(#:tests? #f ; there are none
18225 #:modules ((guix build utils)
18226 (guix build gnu-build-system)
18227 (srfi srfi-26))
18228 #:make-flags
18229 (list (string-append "CC=" ,(cc-for-target))
18230 (let ((system ,(or (%current-target-system)
18231 (%current-system))))
18232 (cond
18233 ((or (string-prefix? "i586" system)
18234 (string-prefix? "i686" system))
18235 "sse2only=1")
18236 ((string-prefix? "armhf" system)
18237 "arm_neon=1")
18238 ((string-prefix? "aarch64" system)
18239 "aarch64=1")
18240 (else "all"))))
18241 #:phases
18242 (modify-phases %standard-phases
18243 (delete 'configure)
18244 (replace 'install
18245 (lambda* (#:key outputs #:allow-other-keys)
18246 (let* ((out (assoc-ref outputs "out"))
18247 (bin (string-append out "/bin"))
18248 (lib (string-append out "/lib"))
18249 (inc (string-append out "/include"))
18250 (man (string-append out "/share/man/man1")))
18251 (install-file "minimap2" bin)
18252 (install-file "libminimap2.a" lib)
18253 (install-file "minimap2.1" man)
18254 (map (cut install-file <> inc)
18255 (find-files "." "\\.h$"))
18256 ;; Not this file.
18257 (delete-file (string-append inc "/emmintrin.h"))
18258 (mkdir-p (string-append lib "/pkgconfig"))
18259 (with-output-to-file (string-append lib "/pkgconfig/minimap2.pc")
18260 (lambda _
18261 (format #t "prefix=~a~@
18262 exec_prefix=${prefix}~@
18263 libdir=${exec_prefix}/lib~@
18264 includedir=${prefix}/include~@
18265 ~@
18266 Name: libminimap2~@
18267 Version: ~a~@
18268 Description: A versatile pairwise aligner for genomic and spliced nucleotide sequence~@
18269 Libs: -L${libdir} -lminimap2~@
18270 Cflags: -I${includedir}~%"
18271 out ,version)))))))))
18272 (inputs
18273 (list zlib))
18274 (home-page "https://lh3.github.io/minimap2/")
18275 (synopsis "Pairwise aligner for genomic and spliced nucleotide sequences")
18276 (description "Minimap2 is a versatile sequence alignment program that
18277aligns DNA or mRNA sequences against a large reference database. Typical use
18278cases include:
18279
18280@enumerate
18281@item mapping PacBio or Oxford Nanopore genomic reads to the human genome;
18282@item finding overlaps between long reads with error rate up to ~15%;
18283@item splice-aware alignment of PacBio Iso-Seq or Nanopore cDNA or Direct RNA
18284 reads against a reference genome;
18285@item aligning Illumina single- or paired-end reads;
18286@item assembly-to-assembly alignment;
18287@item full-genome alignment between two closely related species with
18288 divergence below ~15%.
18289@end enumerate\n")
18290 (license license:expat)))
18291
18292(define-public python-mappy
18293 (package
18294 (name "python-mappy")
18295 (version "2.24")
18296 (source
18297 (origin
18298 (method git-fetch)
18299 (uri (git-reference
18300 (url "https://github.com/lh3/minimap2")
18301 (commit (string-append "v" version))))
18302 (file-name (git-file-name name version))
18303 (sha256
18304 (base32 "0k658659ivxk2xnyawrfqdhcji6a3xcqdr5a9r5myzb2ivypnjmh"))))
18305 (build-system pyproject-build-system)
18306 (arguments
18307 (list
18308 #:test-backend #~'custom
18309 #:test-flags
18310 #~(list "-c" (string-append "import mappy;"
18311 " print(mappy.revcomp("
18312 "mappy.Aligner('test/MT-human.fa')"
18313 ".seq('MT_human', 100, 200)))"))))
18314 (native-inputs
18315 (list python-cython python-setuptools))
18316 (inputs
18317 (list zlib))
18318 (home-page "https://github.com/lh3/minimap2")
18319 (synopsis "Python binding for minimap2")
18320 (description "This package provides a convenient interface to minimap2,
18321a fast and accurate C program to align genomic and transcribe nucleotide
18322sequences.")
18323 (license license:expat)))
18324
18325(define-public miniasm
18326 (package
18327 (name "miniasm")
18328 (version "0.3")
18329 (source (origin
18330 (method git-fetch)
18331 (uri (git-reference
18332 (url "https://github.com/lh3/miniasm")
18333 (commit (string-append "v" version))))
18334 (file-name (git-file-name name version))
18335 (sha256
18336 (base32
18337 "04dv5wv8bhsw1imxwyd438bnn9kby7svp44nbcz8lsadzjjci5gs"))))
18338 (build-system gnu-build-system)
18339 (inputs
18340 (list zlib))
18341 (arguments
18342 `(#:tests? #f ; There are no tests.
18343 #:phases
18344 (modify-phases %standard-phases
18345 (delete 'configure)
18346 (replace 'install
18347 (lambda* (#:key inputs outputs #:allow-other-keys)
18348 (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
18349 (install-file "miniasm" bin)
18350 (install-file "minidot" bin)
18351 #t))))))
18352 (home-page "https://github.com/lh3/miniasm")
18353 (synopsis "Ultrafast de novo assembly for long noisy reads")
18354 (description "Miniasm is a very fast OLC-based de novo assembler for noisy
18355long reads. It takes all-vs-all read self-mappings (typically by minimap) as
18356input and outputs an assembly graph in the GFA format. Different from
18357mainstream assemblers, miniasm does not have a consensus step. It simply
18358concatenates pieces of read sequences to generate the final unitig sequences.
18359Thus the per-base error rate is similar to the raw input reads.")
18360 (license license:expat)))
18361
18362(define-public bandage
18363 (package
18364 (name "bandage")
18365 (version "0.8.1")
18366 (source
18367 (origin
18368 (method git-fetch)
18369 (uri (git-reference
18370 (url "https://github.com/rrwick/Bandage")
18371 (commit (string-append "v" version))))
18372 (file-name (git-file-name name version))
18373 (sha256
18374 (base32 "1bbsn5f5x8wlspg4pbibqz6m5vin8c19nl224f3z3km0pkc97rwv"))))
18375 (build-system qt-build-system)
18376 (arguments
18377 (list
18378 #:modules '((guix build qt-build-system)
18379 ((guix build gnu-build-system) #:prefix gnu:)
18380 (guix build utils))
18381 ;; TODO: Once <https://issues.guix.gnu.org/47475> is fixed,
18382 ;; consider uncommenting the following:
18383 ;;
18384 ;; Prevent the (rarely updated) imagemagick/stable package from
18385 ;; ending up in the closure.
18386 ;; #:disallowed-references (list imagemagick/stable)
18387 #:phases
18388 #~(modify-phases %standard-phases
18389 (replace 'configure
18390 (lambda _
18391 (invoke "qmake" "Bandage.pro")))
18392 (replace 'check
18393 (lambda* (#:key tests? #:allow-other-keys)
18394 (when tests?
18395 (substitute* "tests/bandage_command_line_tests.sh"
18396 (("^bandagepath=.*")
18397 (string-append "bandagepath=" (getcwd) "/Bandage\n")))
18398 (with-directory-excursion "tests"
18399 (setenv "XDG_RUNTIME_DIR" (getcwd))
18400 (invoke "./bandage_command_line_tests.sh")))))
18401 (replace 'build (assoc-ref gnu:%standard-phases 'build))
18402 (replace 'install
18403 (lambda _
18404 (install-file "Bandage" (string-append #$output "/bin")))))))
18405 (inputs
18406 (list qtbase-5 qtsvg-5 qtwayland-5))
18407 (native-inputs
18408 ;; imagemagick/stable cannot be used here, as it will end up in
18409 ;; the closure. See <https://issues.guix.gnu.org/47475>.
18410 (list imagemagick))
18411 (home-page "https://rrwick.github.io/Bandage/")
18412 (synopsis
18413 "Bioinformatics Application for Navigating De novo Assembly Graphs Easily")
18414 (description "Bandage is a program for visualising de novo assembly graphs.
18415It allows users to interact with the assembly graphs made by de novo assemblers
18416such as Velvet, SPAdes, MEGAHIT and others. De novo assembly graphs contain not
18417only assembled contigs but also the connections between those contigs, which
18418were previously not easily accessible. Bandage visualises assembly graphs, with
18419connections, using graph layout algorithms. Nodes in the drawn graph, which
18420represent contigs, can be automatically labelled with their ID, length or depth.
18421Users can interact with the graph by moving, labelling and colouring nodes.
18422Sequence information can also be extracted directly from the graph viewer. By
18423displaying connections between contigs, Bandage opens up new possibilities for
18424analysing and improving de novo assemblies that are not possible by looking at
18425contigs alone.")
18426 (license (list license:gpl2+ ; bundled ogdf
18427 license:gpl3+))))
18428
18429(define-public libmaus2
18430 (package
18431 (name "libmaus2")
18432 (version "2.0.813")
18433 (source (origin
18434 (method git-fetch)
18435 (uri (git-reference
18436 (url "https://gitlab.com/german.tischler/libmaus2")
18437 (commit (string-append version "-release-20221210220409"))))
18438 (file-name (git-file-name name version))
18439 (sha256
18440 (base32
18441 "1hbkp3vjykkn8vkplzxyc6vnm69rzqhnj041jgfk61wvn5r1xzw8"))
18442 (patches
18443 (search-patches "libmaus2-fix-gcc-13-require-include-cstdint.patch"))))
18444 (build-system gnu-build-system)
18445 ;; The test suite attempts to execute ../test-driver, which does not exist.
18446 (arguments '(#:tests? #false))
18447 (inputs (list boost))
18448 (propagated-inputs
18449 (list zlib))
18450 (native-inputs
18451 (list pkg-config))
18452 (home-page "https://gitlab.com/german.tischler/libmaus2")
18453 (synopsis "Collection of data structures and algorithms useful for bioinformatics")
18454 (description "libmaus2 is a collection of data structures and
18455algorithms. It contains:
18456
18457@itemize
18458@item I/O classes (single byte and UTF-8);
18459@item @code{bitio} classes (input, output and various forms of bit level
18460 manipulation);
18461@item text indexing classes (suffix and LCP array, fulltext and minute (FM),
18462 etc.);
18463@item BAM sequence alignment files input/output (simple and collating);
18464and many lower level support classes.
18465@end itemize\n")
18466 ;; The code is explicitly available under the terms of either GPLv2 or
18467 ;; GPLv3 according to the AUTHORS file, though most files have a GPLv3+
18468 ;; license header.
18469 (license (list license:gpl2+ license:gpl3+))))
18470
18471(define-public biobambam2
18472 (package
18473 (name "biobambam2")
18474 (version "2.0.185")
18475 (source (origin
18476 (method git-fetch)
18477 (uri (git-reference
18478 (url "https://gitlab.com/german.tischler/biobambam2")
18479 (commit (string-append version "-release-20221211202123"))))
18480 (file-name (git-file-name name version))
18481 (sha256
18482 (base32
18483 "1ysj0y11wi5z9y05qhbzhd198iqv8d1fh9b5f7ky9c3dklh1nfba"))))
18484 (build-system gnu-build-system)
18485 (arguments
18486 ;; The test suite attempts to execute ../test-driver, which does not exist.
18487 `(#:tests? #false
18488 #:configure-flags
18489 ,#~(list (string-append "--with-libmaus2="
18490 #$(this-package-input "libmaus2")))))
18491 (inputs
18492 (list libmaus2 xerces-c))
18493 (native-inputs
18494 (list pkg-config))
18495 (home-page "https://gitlab.com/german.tischler/biobambam2")
18496 (synopsis "Tools for processing BAM files")
18497 (description "This package contains some tools for processing BAM files
18498including:
18499
18500@itemize
18501@item bamsormadup: parallel sorting and duplicate marking
18502@item bamcollate2: reads BAM and writes BAM reordered such that alignment or
18503 collated by query name
18504@item bammarkduplicates: reads BAM and writes BAM with duplicate alignments
18505 marked using the BAM flags field
18506@item bammaskflags: reads BAM and writes BAM while masking (removing) bits
18507 from the flags column
18508@item bamrecompress: reads BAM and writes BAM with a defined compression
18509 setting. This tool is capable of multi-threading.
18510@item bamsort: reads BAM and writes BAM resorted by coordinates or query name
18511@item bamtofastq: reads BAM and writes FastQ; output can be collated or
18512 uncollated by query name.
18513@end itemize
18514")
18515 ;; The COPYING file states that the code is distributed under version 3 of
18516 ;; the GPL, but the license headers include the "or later" clause.
18517 (license license:gpl3+)))
18518
18519(define-public r-disgenet2r
18520 (let ((commit "8d8ce37da7384004038b25e784b9f7cfe2353de1")
18521 (revision "1"))
18522 (package
18523 (name "r-disgenet2r")
18524 (version (git-version "0.99.2" revision commit))
18525 (source (origin
18526 (method git-fetch)
18527 (uri (git-reference
18528 (url "https://bitbucket.org/ibi_group/disgenet2r")
18529 (commit commit)))
18530 (file-name (git-file-name name version))
18531 (sha256
18532 (base32
18533 "0dvk75s6wqssdyfn5iczldb8krvrz2s0dslxns4571cb2pr09b84"))))
18534 (properties `((upstream-name . "disgenet2r")))
18535 (build-system r-build-system)
18536 (propagated-inputs (list r-data-table
18537 r-ggplot2
18538 r-gtable
18539 r-httr
18540 r-igraph
18541 r-jsonlite
18542 r-purrr
18543 r-reshape
18544 r-reshape2
18545 r-sparql
18546 r-stringr
18547 r-tidyr
18548 r-tidyverse
18549 r-venndiagram))
18550 (native-inputs (list r-knitr))
18551 (home-page "https://bitbucket.org/ibi_group/disgenet2r")
18552 (synopsis "Query, visualize, and expand DisGeNET data")
18553 (description
18554 "This is an R package to query and expand DisGeNET data, and to
18555visualize the results within R framework. The disgenet2r package is designed
18556to retrieve data from DisGeNET v6.0 (Jan, 2019).")
18557 (license license:expat))))
18558
18559(define-public r-dtmm
18560 (let ((commit "3a553b1e17d27d90a496d2e23e98e5dfe4abc266")
18561 (revision "1"))
18562 (package
18563 (name "r-dtmm")
18564 (version (git-version "0.1.0" revision commit))
18565 (source (origin
18566 (method git-fetch)
18567 (uri (git-reference
18568 (url "https://github.com/MaStatLab/DTMM")
18569 (commit commit)))
18570 (file-name (git-file-name name version))
18571 (sha256
18572 (base32
18573 "19279wafqfs9gk9489f8zsp52qcdb0mkxgvqszq4i733ckr2mmkk"))))
18574 (properties `((upstream-name . "DTMM")))
18575 (build-system r-build-system)
18576 (propagated-inputs (list r-ape r-rcpp r-rcpparmadillo))
18577 (home-page "https://github.com/MaStatLab/DTMM")
18578 (synopsis "Dirichlet-tree multinomial mixtures")
18579 (description
18580 "This package lets you perform unsupervised clustering of amplicon
18581sequencing data in microbiome studies with the Dirichlet-tree Multinomial
18582Mixtures.")
18583 (license license:cc0))))
18584
18585;; Needed for r-liana
18586(define-public r-omnipathr/devel
18587 (package
18588 (name "r-omnipathr")
18589 (version "3.15.3")
18590 (source (origin
18591 (method git-fetch)
18592 (uri (git-reference
18593 (url "https://github.com/saezlab/omnipathr")
18594 (commit (string-append "v" version))))
18595 (file-name (git-file-name name version))
18596 (sha256
18597 (base32
18598 "0sq32s3v7q5w9zym54fm0ws1d1wnwyhczazyk9g722ydx2zvbls4"))))
18599 (properties `((upstream-name . "OmnipathR")))
18600 (build-system r-build-system)
18601 (arguments
18602 `(#:phases
18603 (modify-phases %standard-phases
18604 (add-after 'unpack 'set-HOME
18605 (lambda _ (setenv "HOME" "/tmp"))))))
18606 (propagated-inputs
18607 (list r-checkmate
18608 r-crayon
18609 r-curl
18610 r-digest
18611 r-dplyr
18612 r-fs
18613 r-httr2
18614 r-igraph
18615 r-jsonlite
18616 r-later
18617 r-logger
18618 r-lubridate
18619 r-magrittr
18620 r-progress
18621 r-purrr
18622 r-r-utils
18623 r-rappdirs
18624 r-readr
18625 r-readxl
18626 r-rlang
18627 r-rmarkdown
18628 r-rsqlite
18629 r-rvest
18630 r-sessioninfo
18631 r-stringi
18632 r-stringr
18633 r-tibble
18634 r-tidyr
18635 r-tidyselect
18636 r-vctrs
18637 r-withr
18638 r-xml
18639 r-xml2
18640 r-yaml
18641 r-zip))
18642 (native-inputs (list r-knitr r-testthat))
18643 (home-page "https://github.com/saezlab/omnipathr")
18644 (synopsis "OmniPath web service client and more")
18645 (description
18646 "This package provides a client for the OmniPath web service and many
18647other resources. It also includes functions to transform and pretty print
18648some of the downloaded data, functions to access a number of other resources
18649such as BioPlex, ConsensusPathDB, EVEX, Gene Ontology, Guide to
18650Pharmacology (IUPHAR/BPS), Harmonizome, HTRIdb, Human Phenotype Ontology,
18651InWeb InBioMap, KEGG Pathway, Pathway Commons, Ramilowski et al. 2015,
18652RegNetwork, ReMap, TF census, TRRUST and Vinayagam et al. 2011. Furthermore,
18653OmnipathR features a close integration with the NicheNet method for ligand
18654activity prediction from transcriptomics data, and its R implementation
18655@code{nichenetr}.")
18656 (license license:expat)))
18657
18658(define-public r-liana
18659 (let ((commit "6cab46c54234f861ea176c3de77c4b8aa45ecb3d")
18660 (revision "1"))
18661 (package
18662 (name "r-liana")
18663 (version (git-version "0.1.14" revision commit))
18664 (source (origin
18665 (method git-fetch)
18666 (uri (git-reference
18667 (url "https://github.com/saezlab/liana/")
18668 (commit commit)))
18669 (file-name (git-file-name name version))
18670 (sha256
18671 (base32
18672 "1zkvkkvxyhn60b2rribz5fhvm9kvscq8xz6is440080ihpyfyadz"))))
18673 (properties
18674 '((upstream-name . "liana")
18675 (updater-extra-native-inputs
18676 . ("r-delayedmatrixstats" "r-sparsematrixstats"))))
18677 (build-system r-build-system)
18678 (arguments
18679 (list
18680 #:skipped-tests
18681 ;; These tests attempt to connect to the Internet.
18682 '(("test-liana_utils.R" "Test liana pipe")
18683 ("test-liana_tensor.R"
18684 ".*Test tensor wrapper.*"
18685 ".*Test decompose_tensor.*")
18686 ;; XXX: This test returns a data.frame instead of an error.
18687 ("test-liana_cytotalk.R" ".*Test Cytotalk Wrap.*"))
18688 #:phases
18689 '(modify-phases %standard-phases
18690 ;; This is needed to find ~/.config/OmnipathR/omnipathr.yml
18691 (add-after 'unpack 'set-HOME
18692 (lambda _ (setenv "HOME" "/tmp")))
18693 (add-after 'unpack 'seurat-compatibility
18694 (lambda _
18695 ;; The `slot` argument of `GetAssayData()` was deprecated in
18696 ;; SeuratObject 5.0.0.
18697 (substitute* '("R/cellchat_pipe.R"
18698 "R/sca_pipe.R"
18699 "R/liana_prep.R"
18700 "R/natmi_pipe.R")
18701 (("slot =") "layer =")))))))
18702 (propagated-inputs
18703 (list r-basilisk
18704 r-basilisk-utils
18705 r-complexheatmap
18706 r-dplyr
18707 r-ggplot2
18708 r-magrittr
18709 r-omnipathr/devel
18710 r-purrr
18711 r-rcolorbrewer
18712 r-readr
18713 r-reticulate
18714 r-rlang
18715 r-scater
18716 r-scran
18717 r-scuttle
18718 r-seuratobject
18719 r-singlecellexperiment
18720 r-stringr
18721 r-tibble
18722 r-tidyr
18723 r-tidyselect))
18724 (native-inputs
18725 (list r-delayedmatrixstats
18726 r-knitr
18727 r-seurat
18728 r-sparsematrixstats
18729 r-testthat))
18730 (home-page "https://github.com/saezlab/liana/")
18731 (synopsis "LIANA: a LIgand-receptor ANalysis frAmework")
18732 (description
18733 "LIANA provides a number of methods and resource for ligand-receptor
18734interaction inference from scRNA-seq data.")
18735 (license license:gpl3))))
18736
18737(define-public r-circus
18738 (package
18739 (name "r-circus")
18740 (version "0.1.7")
18741 (source (origin
18742 (method git-fetch)
18743 (uri (git-reference
18744 (url "https://github.com/BIMSBbioinfo/ciRcus")
18745 (commit version)))
18746 (file-name (git-file-name name version))
18747 (sha256
18748 (base32
18749 "0d1jz7r81zbcy1gkppggkjmgjxyjhva69s3cdb01m3f0790m4fv0"))))
18750 (properties `((upstream-name . "ciRcus")))
18751 (build-system r-build-system)
18752 (arguments
18753 (list
18754 #:phases
18755 '(modify-phases %standard-phases
18756 (add-after 'unpack 'disable-bad-tests
18757 (lambda _
18758 ;; These tests need Internet access.
18759 (substitute* "tests/testthat/test-loadAnnot.R"
18760 (("test_that.*Annotation.*" m)
18761 (string-append m "skip('guix')\n"))))))))
18762 (propagated-inputs
18763 (list r-annotationdbi
18764 r-annotationhub
18765 r-biocgenerics
18766 r-biomart
18767 r-data-table
18768 r-dbi
18769 r-genomeinfodb
18770 r-genomicfeatures
18771 r-genomicranges
18772 r-ggplot2
18773 r-hash
18774 r-iranges
18775 r-rcolorbrewer
18776 r-rmysql
18777 r-rtracklayer
18778 r-s4vectors
18779 r-stringr
18780 r-summarizedexperiment))
18781 (native-inputs
18782 (list r-knitr r-testthat))
18783 (home-page "https://github.com/BIMSBbioinfo/ciRcus")
18784 (synopsis "Annotation, analysis and visualization of circRNA data")
18785 (description "Circus is an R package for annotation, analysis and
18786visualization of circRNA data. Users can annotate their circRNA candidates
18787with host genes, gene features they are spliced from, and discriminate between
18788known and yet unknown splice junctions. Circular-to-linear ratios of circRNAs
18789can be calculated, and a number of descriptive plots easily generated.")
18790 (license license:artistic2.0)))
18791
18792(define-public r-domultibarheatmap
18793 (let ((commit "9e65afa0aa69fee631c61b7bf3e7742632c9cb95")
18794 (revision "1"))
18795 (package
18796 (name "r-domultibarheatmap")
18797 (version (git-version "0.1.0" revision commit))
18798 (source (origin
18799 (method git-fetch)
18800 (uri (git-reference
18801 (url "https://github.com/elliefewings/DoMultiBarHeatmap")
18802 (commit commit)))
18803 (file-name (git-file-name name version))
18804 (sha256
18805 (base32
18806 "0q9mrc6md08aff6hhzlw3igvv3w7pr1wildzm8i0km9xvbi9iyy9"))))
18807 (properties `((upstream-name . "DoMultiBarHeatmap")))
18808 (build-system r-build-system)
18809 (propagated-inputs (list r-ggplot2 r-magrittr r-rlang r-seurat))
18810 (home-page "https://github.com/elliefewings/DoMultiBarHeatmap")
18811 (synopsis "Produce heatmap from a Seurat object with multiple annotation bars")
18812 (description "This package builds on Seurat's @code{Doheatmap} function
18813code to produce a heatmap from a Seurat object with multiple annotation
18814bars.")
18815 (license license:cc0))))
18816
18817(define-public r-doubletfinder
18818 (let ((commit "554097ba4e2c0ed7c28dc7f0b5b75277f3a50551")
18819 (revision "1"))
18820 (package
18821 (name "r-doubletfinder")
18822 (version (git-version "2.0.3" revision commit))
18823 (source
18824 (origin
18825 (method git-fetch)
18826 (uri (git-reference
18827 (url "https://github.com/chris-mcginnis-ucsf/DoubletFinder")
18828 (commit commit)))
18829 (file-name (git-file-name name version))
18830 (sha256
18831 (base32 "1q1pnqw7ry4syp04wjmvz5bws6z4vg4c340ky07lk0vp577x2773"))))
18832 (properties `((upstream-name . "DoubletFinder")))
18833 (build-system r-build-system)
18834 (propagated-inputs (list r-fields r-kernsmooth r-rocr))
18835 (home-page "https://github.com/chris-mcginnis-ucsf/DoubletFinder")
18836 (synopsis "Identify doublets in single-cell RNA sequencing data")
18837 (description
18838 "DoubletFinder identifies doublets by generating artificial doublets
18839from existing scRNA-seq data and defining which real cells preferentially
18840co-localize with artificial doublets in gene expression space. Other
18841DoubletFinder package functions are used for fitting DoubletFinder to
18842different scRNA-seq datasets. For example, ideal DoubletFinder performance in
18843real-world contexts requires optimal pK selection and homotypic doublet
18844proportion estimation. pK selection is achieved using pN-pK parameter sweeps
18845and maxima identification in mean-variance-normalized bimodality coefficient
18846distributions. Homotypic doublet proportion estimation is achieved by finding
18847the sum of squared cell annotation frequencies.")
18848 (license license:cc0))))
18849
18850;; There have been no releases.
18851(define-public r-cytobackbone
18852 (let ((commit "4c1a0a35cc5ae1f8f516127cec92351d96fe26e7")
18853 (revision "1"))
18854 (package
18855 (name "r-cytobackbone")
18856 (version (git-version "1.0.0" revision commit))
18857 (source (origin
18858 (method git-fetch)
18859 (uri (git-reference
18860 (url "https://github.com/tchitchek-lab/CytoBackBone")
18861 (commit commit)))
18862 (file-name (git-file-name name version))
18863 (sha256
18864 (base32
18865 "0ahiad14zcgdk42xzw5xryic2ibn2l8lkrcdvl2b5sz2js028yb3"))))
18866 (properties `((upstream-name . "CytoBackBone")))
18867 (build-system r-build-system)
18868 (propagated-inputs
18869 (list r-flowcore
18870 r-flowutils
18871 r-fnn
18872 r-ggplot2
18873 r-preprocesscore))
18874 (native-inputs (list r-knitr))
18875 (home-page "https://github.com/tchitchek-lab/CytoBackBone")
18876 (synopsis "Merge phenotype information from different cytometric profiles")
18877 (description
18878 "This package implements an algorithm which increases the number of
18879simultaneously measurable markers and in this way helps with study of the
18880immune responses. Thus, the present algorithm, named @code{CytoBackBone},
18881allows combining phenotypic information of cells from different cytometric
18882profiles obtained from different cytometry panels. This computational
18883approach is based on the principle that each cell has its own phenotypic and
18884functional characteristics that can be used as an identification card.
18885@code{CytoBackBone} uses a set of predefined markers, that we call the
18886backbone, to define this identification card. The phenotypic information of
18887cells with similar identification cards in the different cytometric profiles
18888is then merged.")
18889 (license license:gpl2))))
18890
18891(define-public r-cytoexplorer
18892 (let ((commit "0efb1cc19fc701ae03905cf1b8484c1dfeb387df")
18893 (revision "1"))
18894 (package
18895 (name "r-cytoexplorer")
18896 (version (git-version "1.1.0" revision commit))
18897 (source
18898 (origin
18899 (method git-fetch)
18900 (uri (git-reference
18901 (url "https://github.com/DillonHammill/CytoExploreR")
18902 (commit commit)))
18903 (file-name (git-file-name name version))
18904 (sha256
18905 (base32
18906 "1y7dadsy15i47rjmdq6ns80jzm6p0zmixll37q68ba2c7xn5pq3v"))
18907 (snippet
18908 '(delete-file
18909 "docs/articles/CytoExploreR_files/vis-4.20.1/vis.min.js"))))
18910 (properties `((upstream-name . "CytoExploreR")))
18911 (build-system r-build-system)
18912 (arguments
18913 (list
18914 #:phases
18915 '(modify-phases %standard-phases
18916 (add-after 'unpack 'skip-bad-tests
18917 (lambda _
18918 (with-directory-excursion "tests/testthat/"
18919 ;; All of these fail because with_mock has been removed from
18920 ;; r-testthat.
18921 (substitute* "test-cyto_channels-helpers.R"
18922 (("^test_that.*cyto_channel_select.*" m)
18923 (string-append m "skip('guix')")))
18924 (substitute* "test-cyto_gate_draw.R"
18925 (("^test_that.*cyto_gate_draw.*" m)
18926 (string-append m "skip('guix')")))
18927 (substitute* "test-cyto_gate_helpers.R"
18928 (("^test_that.*cyto_gate_edit.*" m)
18929 (string-append m "skip('guix')")))
18930 (substitute* "test-cyto_helpers.R"
18931 (("^test_that.*cyto_markers_edit.*" m)
18932 (string-append m "skip('guix')"))
18933 (("^test_that.*cyto_details_edit.*" m)
18934 (string-append m "skip('guix')"))
18935 (("^test_that.*cyto_channel_match.*" m)
18936 (string-append m "skip('guix')")))
18937 (substitute* "test-cyto_spillover_compute.R"
18938 (("^test_that.*cyto_spillover_compute universal reference.*" m)
18939 (string-append m "skip('guix')"))
18940 (("^test_that.*cyto_spillover_compute internal reference.*" m)
18941 (string-append m "skip('guix')")))
18942 (substitute* "test-openCyto-plugins.R"
18943 (("^test_that.*cyto_gate_manual.*" m)
18944 (string-append m "skip('guix')")))
18945
18946 ;; These tests fail. Some fail because of unimportant
18947 ;; differences in printed messages.
18948 (substitute* "test-cyto_channels-helpers.R"
18949 (("^test_that.*cyto_channels_restrict.*" m)
18950 (string-append m "skip('guix')")))
18951 (substitute* "test-cyto_gate_helpers.R"
18952 (("^test_that.*cyto_gate_rename.*" m)
18953 (string-append m "skip('guix')"))
18954 (("^test_that.*cyto_gate_remove.*" m)
18955 (string-append m "skip('guix')")))
18956 (substitute* "test-cyto_helpers.R"
18957 (("^test_that.*cyto_compensate.*" m)
18958 (string-append m "skip('guix')"))
18959 (("^test_that.*cyto_empty.*" m)
18960 (string-append m "skip('guix')"))
18961 (("^test_that.*cyto_group_by.*" m)
18962 (string-append m "skip('guix')")))
18963 (substitute* "test-cyto_spillover_spread_compute.R"
18964 (("^test_that.*cyto_spillover_spread_compute internal reference.*" m)
18965 (string-append m "skip('guix')"))
18966 (("^test_that.*cyto_spillover_spread_compute universal reference.*" m)
18967 (string-append m "skip('guix')"))))))
18968 (add-after 'unpack 'process-javascript
18969 (lambda* (#:key inputs #:allow-other-keys)
18970 (with-directory-excursion "docs/articles/CytoExploreR_files/"
18971 (let ((source (search-input-file inputs "/dist/vis.js"))
18972 (target "vis-4.20.1/vis.min.js"))
18973 (invoke "esbuild" source "--minify"
18974 (string-append "--outfile=" target)))))))))
18975 (propagated-inputs
18976 (list r-biocgenerics
18977 r-bslib
18978 r-data-table
18979 r-dplyr
18980 r-embedsom
18981 r-flowai
18982 r-flowcore
18983 r-flowworkspace
18984 r-gtools
18985 r-magrittr
18986 r-mass
18987 r-opencyto
18988 r-purrr
18989 r-rhandsontable
18990 r-robustbase
18991 r-rsvd
18992 r-rtsne
18993 r-shiny
18994 r-superheat
18995 r-tibble
18996 r-tidyr
18997 r-umap
18998 r-visnetwork))
18999 (native-inputs
19000 (list esbuild
19001 r-cytoexplorerdata
19002 r-knitr
19003 r-mockery
19004 r-testthat
19005 (let ((version "4.20.1"))
19006 (origin
19007 (method git-fetch)
19008 (uri (git-reference
19009 (url "https://github.com/almende/vis")
19010 (commit (string-append "v" version))))
19011 (file-name (git-file-name "js-vis" version))
19012 (sha256
19013 (base32
19014 "09ldcqzzki5c0jlwas5992qjffqxnx6j5sl703qccfw7rg1hn469"))))))
19015 (home-page "https://github.com/DillonHammill/CytoExploreR")
19016 (synopsis "Interactive analysis of cytometry data")
19017 (description
19018 "This package has been developed under ROpenSci gudelines to integrate
19019conventional and cutting edge cytometry analysis tools under a unified
19020framework. It aims to represent an intuitive and interactive approach to
19021analysing cytometry data in R.")
19022 (license license:gpl2))))
19023
19024(define-public r-cytoexplorerdata
19025 (let ((commit "488edf083092247ad547172906efe6f8c2aa8700")
19026 (revision "1"))
19027 (package
19028 (name "r-cytoexplorerdata")
19029 (version (git-version "1.0.3" revision commit))
19030 (source
19031 (origin
19032 (method git-fetch)
19033 (uri (git-reference
19034 (url "https://github.com/DillonHammill/CytoExploreRData")
19035 (commit commit)))
19036 (file-name (git-file-name name version))
19037 (sha256
19038 (base32 "0mp3d8cv57psz5zjp7a1f07fxw9dw0w0x9fv32k46a566k1073p3"))))
19039 (properties `((upstream-name . "CytoExploreRData")))
19040 (build-system r-build-system)
19041 (native-inputs (list r-knitr))
19042 (home-page "https://github.com/DillonHammill/CytoExploreRData")
19043 (synopsis "Flow Cytometry Data for CytoExploreR")
19044 (description
19045 "This package contains @code{gatingTemplates}, example fcs files and compensation
19046controls for use in @code{CytoExploreR}.")
19047 (license license:gpl2))))
19048
19049(define-public r-giottoclass
19050 (let ((commit "15627a29bcdaf7e484546363b185a2ccee6470a5")
19051 (revision "1"))
19052 (package
19053 (name "r-giottoclass")
19054 (version (git-version "0.4.10" revision commit))
19055 (source
19056 (origin
19057 (method git-fetch)
19058 (uri (git-reference
19059 (url "https://github.com/drieslab/GiottoClass")
19060 (commit commit)))
19061 (file-name (git-file-name name version))
19062 (sha256
19063 (base32 "15kaf1wli8sc8d9k9l4bkl4z68yrva1zi9w5yqgbbw1n44khn8yx"))))
19064 (properties `((upstream-name . "GiottoClass")))
19065 (build-system r-build-system)
19066 ;; Tests require r-giottodata, which requires r-giottoclass.
19067 (arguments (list #:tests? #false))
19068 (propagated-inputs (list r-checkmate
19069 r-data-table
19070 r-dbscan
19071 r-deldir
19072 r-giottoutils
19073 r-igraph
19074 r-matrix
19075 r-matrixstats
19076 r-reticulate
19077 r-terra))
19078 (native-inputs (list r-knitr r-testthat))
19079 (home-page "https://github.com/drieslab/GiottoClass")
19080 (synopsis "Giotto suite object definitions and framework")
19081 (description
19082 "This package provides definitions for the Giotto object and its
19083subobjects. Functionalities relating to data ingestion, basic object
19084creation, data access within the Giotto object, and generics defined for the
19085Giotto classes are all found here. Applications of this framework and
19086convenience functions for loading specific technologies are found in the base
19087Giotto package.")
19088 (license license:expat))))
19089
19090(define-public r-giottodata
19091 (let ((commit "1dc55ee8195104a81549b9e3fad04bd459b226de")
19092 (revision "1"))
19093 (package
19094 (name "r-giottodata")
19095 (version (git-version "0.2.16" revision commit))
19096 (source
19097 (origin
19098 (method git-fetch)
19099 (uri (git-reference
19100 (url "https://github.com/drieslab/GiottoData")
19101 (commit commit)))
19102 (file-name (git-file-name name version))
19103 (sha256
19104 (base32 "0izlmfrghx5nixlx1m9bpd5qxlvj6llz898qd0ij5ihp5x2w7dqk"))))
19105 (properties `((upstream-name . "GiottoData")))
19106 (build-system r-build-system)
19107 (propagated-inputs (list r-data-table r-giottoclass r-giottoutils
19108 r-rprojroot))
19109 (home-page "https://github.com/drieslab/GiottoData")
19110 (synopsis "Datasets for Giotto")
19111 (description
19112 "This package stores information and scripts to work with, or load
19113various different spatial datasets that can be used with the Giotto Suite
19114workflow. It also contains example mini Giotto subobjects.")
19115 (license license:expat))))
19116
19117(define-public r-giottoutils
19118 (let ((commit "1ce82e5303b002540b41b6bf90ff543c26f41b31")
19119 (revision "1"))
19120 (package
19121 (name "r-giottoutils")
19122 (version (git-version "0.2.5" revision commit))
19123 (source
19124 (origin
19125 (method git-fetch)
19126 (uri (git-reference
19127 (url "https://github.com/drieslab/GiottoUtils")
19128 (commit commit)))
19129 (file-name (git-file-name name version))
19130 (sha256
19131 (base32 "04wm0ym07gz5zi639nm175vv7xsg0rja9vdb03jv969zbwcrd8mv"))))
19132 (properties `((upstream-name . "GiottoUtils")))
19133 (build-system r-build-system)
19134 (arguments
19135 (list
19136 #:phases
19137 '(modify-phases %standard-phases
19138 (add-after 'unpack 'find-python
19139 (lambda _
19140 (setenv "RETICULATE_PYTHON" (which "python3")))))))
19141 (propagated-inputs (list r-biocparallel
19142 r-checkmate
19143 r-data-table
19144 r-dplyr
19145 r-future
19146 r-gtools
19147 r-jsonlite
19148 r-lifecycle
19149 r-magrittr
19150 r-matrix
19151 r-progressr
19152 r-r-utils
19153 r-rcolorbrewer
19154 r-remotes
19155 r-reticulate
19156 python-scipy))
19157 (inputs (list python-wrapper))
19158 (native-inputs (list r-knitr r-testthat))
19159 (home-page "https://github.com/drieslab/GiottoUtils")
19160 (synopsis "Giotto suite utilities")
19161 (description "This package provides utility functions and imports for
19162Giotto Suite.")
19163 (license license:expat))))
19164
19165(define-public r-giottovisuals
19166 (let ((commit "556d75352a208507819f1d4e33ae61c179185435")
19167 (revision "1"))
19168 (package
19169 (name "r-giottovisuals")
19170 (version (git-version "0.2.14" revision commit))
19171 (source
19172 (origin
19173 (method git-fetch)
19174 (uri (git-reference
19175 (url "https://github.com/drieslab/GiottoVisuals")
19176 (commit commit)))
19177 (file-name (git-file-name name version))
19178 (sha256
19179 (base32 "1a9kdfvz7bpb92fjgsyjd12rp7c0zc3cbjvkcv5lf91lfjqivlhb"))))
19180 (properties `((upstream-name . "GiottoVisuals")))
19181 (build-system r-build-system)
19182 (propagated-inputs (list r-checkmate
19183 r-colorramp2
19184 r-cowplot
19185 r-data-table
19186 r-ggplot2
19187 r-ggrepel
19188 r-giottoclass
19189 r-giottoutils
19190 r-igraph
19191 r-plotly
19192 r-scales
19193 r-scattermore
19194 r-terra))
19195 (native-inputs (list r-knitr r-testthat))
19196 (home-page "https://github.com/drieslab/GiottoVisuals")
19197 (synopsis "Visuals for the Giotto spatial biology analysis suite")
19198 (description
19199 "This package provides expanded visualization and plotting
19200functionality for Giotto Suite.")
19201 (license license:expat))))
19202
19203(define-public r-giotto
19204 (let ((commit "7988300d59d7ca67c6203411794f1f3a813979d5")
19205 (revision "1"))
19206 (package
19207 (name "r-giotto")
19208 (version (git-version "4.2.2" revision commit))
19209 (source
19210 (origin
19211 (method git-fetch)
19212 (uri (git-reference
19213 (url "https://github.com/drieslab/Giotto")
19214 (commit commit)))
19215 (file-name (git-file-name name version))
19216 (sha256
19217 (base32 "1h3a6czswpczckc5cgcfsxjcil0pzq57fv8lfrgjl655qqs3riix"))))
19218 (properties `((upstream-name . "Giotto")))
19219 (build-system r-build-system)
19220 ;; Test data are not included.
19221 (arguments (list #:tests? #false))
19222 (propagated-inputs
19223 (list r-bluster
19224 r-biocparallel
19225 r-biocsingular
19226 r-checkmate
19227 r-data-table
19228 r-dbscan
19229 r-ggplot2
19230 r-ggraph
19231 r-giottoclass
19232 r-giottoutils
19233 r-giottovisuals
19234 r-igraph
19235 r-matrix
19236 r-matrixgenerics
19237 r-reticulate
19238 r-scales
19239 r-sparsematrixstats
19240 r-terra
19241 r-uwot
19242
19243 ;; The following are suggested packages
19244 r-arrow
19245 r-clusterr
19246 r-complexheatmap
19247 r-fitdistrplus
19248 r-future-apply
19249 r-ggdendro
19250 r-limma
19251 r-plotly
19252 r-r-utils
19253 r-rfast
19254 r-rlang
19255 r-rtsne))
19256 (native-inputs (list r-knitr r-testthat))
19257 (home-page "https://github.com/drieslab/Giotto")
19258 (synopsis "Spatial single-cell transcriptomics toolbox")
19259 (description
19260 "This package provides a toolbox to process, analyze and visualize
19261spatial single-cell expression data.")
19262 (license license:expat))))
19263
19264;; Variant of r-illuminahumanmethylationepicmanifest in the
19265;; (gnu packages bioconductor) module.
19266(define-public r-illuminahumanmethylationepicmanifest-latest
19267 (let ((commit "a9ffbad36f5e496ece6c4c37b80e2f4f7e02d0c3")
19268 (revision "1"))
19269 (package
19270 (name "r-illuminahumanmethylationepicmanifest")
19271 (version (git-version "1.0.0" revision commit))
19272 (source
19273 (origin
19274 (method git-fetch)
19275 (uri (git-reference
19276 (url
19277 "https://github.com/achilleasNP/IlluminaHumanMethylationEPICmanifest")
19278 (commit commit)))
19279 (file-name (git-file-name name version))
19280 (sha256
19281 (base32 "0v8f0hl0v8gwi61vgqw56rn5j09h95hj54rb8pzbn0znm162n4fc"))))
19282 (properties `((upstream-name . "IlluminaHumanMethylationEPICmanifest")))
19283 (build-system r-build-system)
19284 (home-page
19285 "https://github.com/achilleasNP/IlluminaHumanMethylationEPICmanifest")
19286 (synopsis "Illumina Human Methylation Manifest 1.0 B5 for R and minfi")
19287 (description
19288 "This is a drop-in replacement for the
19289@code{IlluminaHumanMethylationEPIC} package. It utilizes a Manifest based on
192901.0B5 annotation. As of version 0.3.0, the
19291@code{IlluminaHumanMethylationEPIC} package still employs the 1.0B2 annotation
19292manifest. A corresponding annotation package,
19293@code{IlluminaHumanMethylationEPICanno.ilm10b5.hg38}, is available to ensure
19294proper annotation. The decision to maintain the same name is due to
19295complications in downstream processing caused by array name lookup in certain
19296preprocessing options.")
19297 (license license:artistic2.0))))
19298
19299(define-public r-illuminahumanmethylationepicanno-ilm10b5-hg38
19300 (let ((commit "3db06910e27f626e0cc8b335ff45cf9a4050a36a")
19301 (revision "1"))
19302 (package
19303 (name "r-illuminahumanmethylationepicanno-ilm10b5-hg38")
19304 (version (git-version "0.0.1" revision commit))
19305 (source (origin
19306 (method git-fetch)
19307 (uri (git-reference
19308 (url
19309 "https://github.com/achilleasNP/IlluminaHumanMethylationEPICanno.ilm10b5.hg38")
19310 (commit commit)))
19311 (file-name (git-file-name name version))
19312 (sha256
19313 (base32
19314 "0y8fhiwmkldi57f8nq64njfgljw68cm6pb1vh44hjwcc12k48sqr"))))
19315 (properties `((upstream-name . "IlluminaHumanMethylationEPICanno.ilm10b5.hg38")))
19316 (build-system r-build-system)
19317 (propagated-inputs (list r-minfi))
19318 (home-page
19319 "https://github.com/achilleasNP/IlluminaHumanMethylationEPICanno.ilm10b5.hg38")
19320 (synopsis "Illumina Human Methylation EPIC Annotation version 1.0B5")
19321 (description
19322 "This package provides a companion annotation file to the
19323@code{IlluminaHumanMethylationEPICmanifest} package based on the same
19324annotation 1.0B5.")
19325 (license license:artistic2.0))))
19326
19327(define-public r-maxprobes
19328 (let ((commit "c2120dba972e12115280ef274ff80550cee5b264")
19329 (revision "1"))
19330 (package
19331 (name "r-maxprobes")
19332 (version (git-version "0.0.2" revision commit))
19333 (source (origin
19334 (method git-fetch)
19335 (uri (git-reference
19336 (url "https://github.com/markgene/maxprobes")
19337 (commit commit)))
19338 (file-name (git-file-name name version))
19339 (sha256
19340 (base32
19341 "1kij9bds2l9mwm519bzyd2608563qjlmbrayhva1s0vgml5iq9wh"))))
19342 (properties `((upstream-name . "maxprobes")))
19343 (build-system r-build-system)
19344 (propagated-inputs (list r-minfi r-minfidata))
19345 (native-inputs (list r-knitr))
19346 (home-page "https://github.com/markgene/maxprobes")
19347 (synopsis "Methylation array cross-reactive probes")
19348 (description
19349 "The Maxprobes package collects cross-reactive probes of Illumina
19350methylation array 450K and EPIC/850K.")
19351 (license license:gpl2+))))
19352
19353(define-public gffread
19354 ;; We cannot use the tagged release because it is not in sync with gclib.
19355 ;; See https://github.com/gpertea/gffread/issues/26
19356 (let ((commit "ba7535fcb3cea55a6e5a491d916e93b454e87fd0")
19357 (revision "1"))
19358 (package
19359 (name "gffread")
19360 (version (git-version "0.9.12" revision commit))
19361 (source
19362 (origin
19363 (method git-fetch)
19364 (uri (git-reference
19365 (url "https://github.com/gpertea/gffread")
19366 (commit commit)))
19367 (file-name (git-file-name name version))
19368 (sha256
19369 (base32
19370 "1dl2nbcg96lxpd0drg48ssa8343nf7pw9s9mkrc4mjjmfwsin3ki"))))
19371 (build-system gnu-build-system)
19372 (arguments
19373 `(#:tests? #f ; no check target
19374 #:make-flags
19375 (list "GCLDIR=gclib")
19376 #:phases
19377 (modify-phases %standard-phases
19378 (delete 'configure)
19379 (add-after 'unpack 'copy-gclib-source
19380 (lambda* (#:key inputs #:allow-other-keys)
19381 (mkdir-p "gclib")
19382 (copy-recursively (assoc-ref inputs "gclib-source") "gclib")
19383 #t))
19384 ;; There is no install target
19385 (replace 'install
19386 (lambda* (#:key outputs #:allow-other-keys)
19387 (let* ((out (assoc-ref outputs "out"))
19388 (bin (string-append out "/bin")))
19389 (install-file "gffread" bin))
19390 #t)))))
19391 (native-inputs
19392 `(("gclib-source"
19393 ,(let ((version "0.10.3")
19394 (commit "54917d0849c1e83cfb057b5f712e5cb6a35d948f")
19395 (revision "1"))
19396 (origin
19397 (method git-fetch)
19398 (uri (git-reference
19399 (url "https://github.com/gpertea/gclib")
19400 (commit commit)))
19401 (file-name (git-file-name "gclib" version))
19402 (sha256
19403 (base32
19404 "0b51lc0b8syrv7186fd7n8f15rwnf264qgfmm2palrwks1px24mr")))))))
19405 (home-page "https://github.com/gpertea/gffread/")
19406 (synopsis "Parse and convert GFF/GTF files")
19407 (description
19408 "This package provides a GFF/GTF file parsing utility providing format
19409conversions, region filtering, FASTA sequence extraction and more.")
19410 ;; gffread is under Expat, but gclib is under Artistic 2.0
19411 (license (list license:expat
19412 license:artistic2.0)))))
19413
19414(define-public fit-sne
19415 (package
19416 (name "fit-sne")
19417 (version "1.2.1")
19418 (source
19419 (origin
19420 (method git-fetch)
19421 (uri (git-reference
19422 (url "https://github.com/KlugerLab/FIt-SNE")
19423 (commit (string-append "v" version))))
19424 (file-name (git-file-name name version))
19425 (sha256
19426 (base32
19427 "1imq4577awc226wvygf94kpz156qdfw8xl0w0f7ss4w10lhmpmf5"))))
19428 (build-system gnu-build-system)
19429 (arguments
19430 `(#:tests? #false ; there are none
19431 #:phases
19432 ;; There is no build system.
19433 (modify-phases %standard-phases
19434 (delete 'configure)
19435 (replace 'build
19436 (lambda _
19437 (invoke "g++" "-std=c++11" "-O3"
19438 "src/sptree.cpp"
19439 "src/tsne.cpp"
19440 "src/nbodyfft.cpp"
19441 "-o" "bin/fast_tsne"
19442 "-pthread" "-lfftw3" "-lm"
19443 "-Wno-address-of-packed-member")))
19444 (replace 'install
19445 (lambda* (#:key outputs #:allow-other-keys)
19446 (let* ((out (assoc-ref outputs "out"))
19447 (bin (string-append out "/bin"))
19448 (share (string-append out "/share/fit-sne")))
19449 (for-each (lambda (file) (install-file file bin))
19450 (find-files "bin"))
19451
19452 (substitute* "fast_tsne.R"
19453 (("^FAST_TSNE_SCRIPT_DIR.*")
19454 (string-append "FAST_TSNE_SCRIPT_DIR = \"" out "\"\n")))
19455 (install-file "fast_tsne.R" share)))))))
19456 (inputs
19457 (list fftw))
19458 (home-page "https://github.com/KlugerLab/FIt-SNE")
19459 (synopsis "Fast Fourier Transform-accelerated interpolation-based t-SNE")
19460 (description "@dfn{t-Stochastic Neighborhood Embedding} (t-SNE) is a
19461method for dimensionality reduction and visualization of high dimensional
19462datasets. A popular implementation of t-SNE uses the Barnes-Hut algorithm to
19463approximate the gradient at each iteration of gradient descent. This
19464implementation differs in these ways:
19465
19466@itemize
19467@item Instead of approximating the N-body simulation using Barnes-Hut, we
19468 interpolate onto an equispaced grid and use FFT to perform the convolution.
19469@item Instead of computing nearest neighbors using vantage-point trees, we
19470 approximate nearest neighbors using the Annoy library. The neighbor lookups
19471 are multithreaded to take advantage of machines with multiple cores.
19472@end itemize
19473")
19474 ;; See LICENSE.txt for details on what license applies to what files.
19475 (license (list license:bsd-4 license:expat license:asl2.0))))
19476
19477(define-public python-scanpy
19478 (package
19479 (name "python-scanpy")
19480 (version "1.12.2")
19481 (source
19482 (origin
19483 (method git-fetch)
19484 (uri (git-reference
19485 (url "https://github.com/theislab/scanpy")
19486 (commit version)))
19487 (file-name (git-file-name name version))
19488 (sha256
19489 (base32
19490 "02mmsz267zyx1ndw9qqsrccxhjr65xpyyqbf5i1j761y7mm4aayh"))))
19491 (build-system pyproject-build-system)
19492 (arguments
19493 (list
19494 ;; tests: 2052 passed, 101 skipped, 100 xfailed, 12 warnings, 34
19495 ;; subtests passed
19496 #:test-flags
19497 ;; XXX: There is an "internet" marker but it has no effect when
19498 ;; deselected, forcing to download data from Internet during tests
19499 ;; anyway.
19500 #~(list "-m" "not gpu"
19501 "--numprocesses" (number->string (min 8 (parallel-job-count)))
19502 #$@(map (lambda (ls) (string-append "--deselect=tests/"
19503 (string-join ls "::")))
19504 ;; Tests requiring Internet access.
19505 '(("test_pca.py" "test_pca_rep")
19506 ("test_scaling.py" "test_clip")
19507 ("test_pca.py" "test_pca_n_pcs")
19508 ("test_pca.py" "test_pca_sparse")
19509 ("test_pca.py" "test_pca_chunked")
19510 ("test_paga.py" "test_paga_compare")
19511 ("test_pca.py" "test_pca_reproducible")
19512 ("test_plotting.py" "test_string_mask")
19513 ("notebooks/test_pbmc3k.py" "test_pbmc3k")
19514 ("test_plotting.py" "test_scrublet_plots")
19515 ("test_metrics.py" "test_modularity_adata")
19516 ("test_plotting.py" "test_umap_mask_equal")
19517 ("test_aggregated.py" "test_aggregate_axis")
19518 ("test_aggregated.py"
19519 "test_var_no_catastrophic_cancellation")
19520 ("test_datasets.py" "test_download_failure")
19521 ("test_pca.py" "test_covariance_eigh_impls")
19522 ("test_plotting.py" "test_highest_expr_genes")
19523 ("test_pca.py" "test_sparse_dask_input_errors")
19524 ("test_plotting.py" "test_umap_mask_mult_plots")
19525 ("test_plotting.py" "test_violin_scale_warning")
19526 ("test_preprocessing.py" "test_regress_out_int")
19527 ("test_aggregated.py" "test_aggregate_arraytype")
19528 ("test_aggregated.py" "test_aggregate_vs_pandas")
19529 ("test_highly_variable_genes.py" "test_keep_layer")
19530 ("test_score_genes.py" "test_score_with_reference")
19531 ("test_highly_variable_genes.py" "test_cutoff_info")
19532 ("test_aggregated.py" "test_aggregate_incorrect_dim")
19533 ("test_plotting.py" "test_umap_mask_no_modification")
19534 ("test_aggregated.py"
19535 "test_aggregate_bad_dask_array")
19536 ("test_highly_variable_genes.py"
19537 "test_no_filter_genes")
19538 ("test_highly_variable_genes.py"
19539 "test_dask_consistency")
19540 ("test_highly_variable_genes.py"
19541 "test_seurat_v3_warning")
19542 ("test_highly_variable_genes.py"
19543 "test_compare_to_seurat_v3")
19544 ("external/test_harmony_integrate.py"
19545 "test_harmony_integrate")
19546 ("test_plotting.py"
19547 "test_plot_rank_genes_groups_gene_symbols")
19548 ("test_highly_variable_genes.py"
19549 "test_pearson_residuals_batch")
19550 ("test_normalization.py"
19551 "test_normalize_pearson_residuals_pca")
19552 ("test_normalization.py"
19553 "test_normalize_matrix_types")
19554 ("test_highly_variable_genes.py"
19555 "test_pearson_residuals_general")
19556 ("test_highly_variable_genes.py"
19557 "test_subset_inplace_consistency")
19558 ("test_normalization.py"
19559 "test_normalize_pearson_residuals_errors")
19560 ("test_normalization.py"
19561 "test_normalize_pearson_residuals_recipe")
19562 ("test_normalization.py"
19563 "test_normalize_pearson_residuals_warnings")
19564 ("test_highly_variable_genes.py"
19565 "test_pearson_residuals_inputchecks")
19566 ("test_plotting_embedded/test_embeddings.py"
19567 "test_raise_save_future_warning")
19568 ("test_highly_variable_genes.py"
19569 "test_seurat_v3_mean_var_output_with_batchkey")
19570 ("test_plotting_embedded/test_embeddings.py"
19571 "test_embedding_colorbar_location")))
19572 (string-append "--deselect=tests/test_plotting.py"
19573 "::test_umap_categories_change_"
19574 "when_rerun_with_more_categories")
19575 (string-append "--deselect=tests/test_plotting.py"
19576 "::test_umap_categories_dont_change_"
19577 "when_rerun_with_fewer_categories")
19578 (string-append "--deselect=get/_aggregated.py"
19579 "::scanpy.get._aggregated.aggregate")
19580 (string-append "--deselect=external/pp/_magic.py"
19581 "::scanpy.external.pp._magic.magic")
19582 (string-append "--deselect=external/pp/_harmony_integrate.py"
19583 "::scanpy.external.pp."
19584 "_harmony_integrate.harmony_integrate")
19585 #$@(map (lambda (ls) (string-append "--deselect=tests/"
19586 (string-join ls "::")))
19587 ;; Tests failing with error: Image files did not match.
19588 '(("test_plotting.py" "test_rankings")
19589 ("test_plotting.py" "test_dotplot_obj")
19590 ("test_plotting.py" "test_stacked_violin_obj")
19591 ("test_plotting.py" "test_dotplot_add_totals")
19592 ("test_plotting.py" "test_rank_genes_group_axes")
19593 ("test_plotting.py" "test_scatter_no_basis_per_obs")
19594 ("test_plotting.py"
19595 "test_dotplot_matrixplot_stacked_violin")
19596 ("test_plotting_embedded/test_spatial.py"
19597 "test_spatial_general")
19598 ("test_plotting_embedded/test_spatial.py"
19599 "test_visium_empty_img_key")
19600 ("test_plotting_embedded/test_spatial.py"
19601 "test_spatial_external_img")))
19602 #$@(map (lambda (ls) (string-append "--deselect=tests/"
19603 (string-join ls "::")))
19604 ;; Failed on deprecation warnings.
19605 '(("external/test_magic.py" "test_magic_copy")
19606 ("external/test_magic.py" "test_magic_default")
19607 ("external/test_magic.py" "test_magic_pca_only")
19608 ("test_preprocessing.py"
19609 "test_regress_out_constants")
19610 ("test_preprocessing.py"
19611 "test_regress_out_reproducible")
19612 ("test_preprocessing.py"
19613 "test_regress_out_constants_equivalent")))
19614 #$@(map (lambda (ls) (string-append "--deselect=tests/"
19615 (string-join ls "::")))
19616 ;; TypeError: deprecate_kwarg() missing 1 required
19617 ;; positional argument: 'new_arg_name'
19618 '(("test_preprocessing.py" "test_regress_out_categorical")
19619 ;; TypeError: Cannot interpret
19620 ;; '<StringDtype(na_value=nan)>' as a data type
19621 ("test_combat.py" "test_norm")
19622 ;; TypeError: only integer scalar arrays can be
19623 ;; converted to a scalar index
19624 ("test_combat.py" "test_covariates")
19625 ("test_combat.py" "test_combat_obs_names")
19626 ("test_combat.py" "test_silhouette")
19627 ;; [XPASS(strict)] seaborn violin plot is
19628 ;; incompatible with pandas 3
19629 ("test_plotting.py" "test_rank_genes_groups")
19630 ;; pytest.PytestUnhandledThreadExceptionWarning:
19631 ;; Exception in thread ExecutorManagerThread
19632 ("test_preprocessing.py"
19633 "test_regress_out_categorical"))))
19634 #:phases
19635 #~(modify-phases %standard-phases
19636 (add-after 'unpack 'fix-pytest-config
19637 (lambda _
19638 (substitute* "pyproject.toml"
19639 ;; ModuleNotFoundError: No module named 'pyparsing.warnings'
19640 ((".*pyparsing.warnings.*") ""))))
19641 (add-before 'check 'pre-check
19642 (lambda _
19643 ;; Numba needs a writable dir to cache functions.
19644 (setenv "NUMBA_CACHE_DIR" "/tmp")
19645 ;; For Matplotlib.
19646 (setenv "HOME" "/tmp"))))))
19647 (propagated-inputs
19648 (list python-anndata
19649 python-certifi
19650 python-fast-array-utils
19651 python-h5py
19652 python-joblib
19653 python-legacy-api-wrap
19654 python-matplotlib
19655 python-natsort
19656 python-networkx
19657 python-numba
19658 python-numpy
19659 python-packaging
19660 python-pandas
19661 python-patsy
19662 python-pynndescent
19663 python-scikit-learn
19664 python-scipy
19665 python-scverse-misc
19666 python-seaborn
19667 python-session-info2
19668 python-statsmodels
19669 python-tqdm
19670 python-typing-extensions ;Python version <3.13
19671 python-umap-learn
19672 ;; [optional]
19673 python-dask
19674 python-harmonypy
19675 python-igraph
19676 python-leidenalg
19677 python-louvain
19678 python-magic-impute
19679 python-scikit-misc
19680 python-setuptools)) ;for pkg_resources
19681 (native-inputs
19682 (list nss-certs-for-test
19683 python-dependency-groups
19684 python-hatch-vcs
19685 python-hatchling
19686 python-pytest
19687 python-pytest-mock
19688 python-pytest-randomly
19689 python-pytest-rerunfailures
19690 python-pytest-xdist
19691 #;python-tuna)) ;no packaged in Guix yet
19692 (home-page "https://github.com/theislab/scanpy")
19693 (synopsis "Single-Cell Analysis in Python")
19694 (description "Scanpy is a scalable toolkit for analyzing single-cell gene
19695expression data. It includes preprocessing, visualization, clustering,
19696pseudotime and trajectory inference and differential expression testing. The
19697Python-based implementation efficiently deals with datasets of more than one
19698million cells.")
19699 (license license:bsd-3)))
19700
19701(define-public python-bbknn
19702 (package
19703 (name "python-bbknn")
19704 (version "1.6.0")
19705 (source
19706 (origin
19707 (method url-fetch)
19708 (uri (pypi-uri "bbknn" version))
19709 (sha256
19710 (base32
19711 "06q43cpi7wi6f2d2jqs8f9rbd94pg1hh7978gm92mi9gvzbaj08w"))))
19712 (build-system pyproject-build-system)
19713 (arguments
19714 (list
19715 #:tests? #f ;no tests are included
19716 #:phases
19717 '(modify-phases %standard-phases
19718 ;; Numba needs a writable dir to cache functions.
19719 (add-before 'check 'set-numba-cache-dir
19720 (lambda _
19721 (setenv "NUMBA_CACHE_DIR" "/tmp"))))))
19722 (propagated-inputs
19723 (list python-annoy
19724 python-cython
19725 python-numpy
19726 python-pandas
19727 python-pynndescent
19728 python-scikit-learn
19729 python-scipy
19730 python-umap-learn))
19731 (native-inputs (list python-flit-core))
19732 (home-page "https://github.com/Teichlab/bbknn")
19733 (synopsis "Batch balanced KNN")
19734 (description "BBKNN is a batch effect removal tool that can be directly
19735used in the Scanpy workflow. It serves as an alternative to
19736@code{scanpy.api.pp.neighbors()}, with both functions creating a neighbour
19737graph for subsequent use in clustering, pseudotime and UMAP visualisation. If
19738technical artifacts are present in the data, they will make it challenging to
19739link corresponding cell types across different batches. BBKNN actively
19740combats this effect by splitting your data into batches and finding a smaller
19741number of neighbours for each cell within each of the groups. This helps
19742create connections between analogous cells in different batches without
19743altering the counts or PCA space.")
19744 (license license:expat)))
19745
19746(define-public python-drep
19747 (package
19748 (name "python-drep")
19749 (version "3.7.1")
19750 (source
19751 (origin
19752 (method git-fetch)
19753 (uri (git-reference
19754 (url "https://github.com/MrOlm/drep")
19755 (commit version)))
19756 (file-name (git-file-name name version))
19757 (sha256
19758 (base32 "01dnh8rdhz6pzppqjify2v5a10gq5pcbcli5x16a0yi09bnm7nk1"))))
19759 (build-system pyproject-build-system)
19760 (arguments
19761 (list
19762 ;; tests: 27 passed, 12 skipped, 39 deselected, 1 warning
19763 #:test-flags
19764 ;; Tests depend on "near essential" and "optional" dependencies.
19765 #~(list #$@(map (lambda (test) (string-append "--deselect="
19766 "tests/tests/"
19767 test))
19768 (list "test_analyze.py::test_plot_5_1"
19769 "test_analyze.py::test_plot_5_2"
19770 "test_analyze.py::test_plot_6_1"
19771 "test_analyze.py::test_plotting_functional_1"
19772 "test_bonus.py::test_drep_scaffold_level"
19773 "test_bonus.py::test_drep_scaffold_level_2"
19774 "test_bonus.py::test_drep_scaffold_level_3"
19775 "test_bonus.py::test_drep_scaffold_level_4"
19776 "test_bonus.py::test_drep_scaffold_level_5"
19777 "test_bonus.py::test_parse_stb_2"
19778 "test_choose.py::test_centrality_1"
19779 "test_choose.py::test_centrality_2"
19780 "test_choose.py::test_choose_2"
19781 "test_choose.py::test_choose_3"
19782 "test_cluster.py::test_all_vs_all_mash"
19783 "test_cluster.py::test_cluster_functional_1"
19784 "test_cluster.py::test_cluster_functional_3"
19785 "test_cluster.py::test_cluster_functional_4"
19786 "test_cluster.py::test_cluster_functional_5"
19787 "test_cluster.py::test_compare_genomes"
19788 "test_cluster.py::test_fastANI"
19789 "test_cluster.py::test_goANI"
19790 "test_cluster.py::test_goANI2"
19791 "test_cluster.py::test_list_genome_load"
19792 "test_cluster.py::test_low_ram_primary_clustering"
19793 "test_cluster.py::test_skani"
19794 "test_dereplicate.py::test_dereplicate_10"
19795 "test_dereplicate.py::test_dereplicate_2"
19796 "test_dereplicate.py::test_dereplicate_3"
19797 "test_dereplicate.py::test_dereplicate_6"
19798 "test_evaluate.py::test_tertiary_clustering_1"
19799 "test_evaluate.py::test_tertiary_clustering_2"
19800 "test_filter.py::test_filer_functional_3"
19801 "test_greedy.py::test_greedy_secondary_clustering_1"
19802 "test_greedy.py::test_greedy_secondary_clustering_2"
19803 "test_greedy.py::test_multiround_primary_clustering_1"
19804 "test_greedy.py::test_multiround_primary_clustering_2"
19805 "test_rerun.py::test_unit_1"
19806 "test_rerun.py::test_unit_3"
19807 "test_rerun.py::test_unit_4")))))
19808 (native-inputs
19809 (list mash
19810 ;; nsimscan
19811 ;; mummer ;https://github.com/mummer4/mummer, asl2.0
19812 ;; fastani ;https://github.com/ParBLiSS/FastANI, asl2.0
19813 ;; checkm ;https://ecogenomics.github.io/CheckM/, gpl3
19814 ;; skani
19815 python-pytest
19816 python-setuptools))
19817 (propagated-inputs
19818 (list python-biopython
19819 python-matplotlib
19820 python-networkx
19821 python-numpy
19822 python-pandas
19823 python-scikit-learn
19824 python-seaborn
19825 python-tqdm))
19826 (home-page "https://github.com/MrOlm/drep")
19827 (synopsis "De-replication of microbial genomes assembled from multiple samples")
19828 (description
19829 "dRep is a Python program for rapidly comparing large numbers of genomes.
19830dRep can also \"de-replicate\" a genome set by identifying groups of highly
19831similar genomes and choosing the best representative genome for each genome
19832set.")
19833 (license license:expat)))
19834
19835(define-public instrain
19836 (package
19837 (name "instrain")
19838 ;; Git repository does not tag releases, use the latest commit from master
19839 ;; branch.
19840 (properties '((commit . "f172367e599851a6cb90048ae890d1bb6569063f")
19841 (revision . "1")))
19842 (version (git-version "1.10.0"
19843 (assoc-ref properties 'revision)
19844 (assoc-ref properties 'commit)))
19845 (source
19846 (origin
19847 (method git-fetch)
19848 (uri (git-reference
19849 (url "https://github.com/MrOlm/instrain")
19850 (commit (assoc-ref properties 'commit))))
19851 (file-name (git-file-name name version))
19852 (sha256
19853 (base32 "12rrkcckna7k095clir9100cz6i5dn77anih6aq1blbsg4yhprnr"))))
19854 (build-system pyproject-build-system)
19855 (arguments
19856 (list
19857 ;; tests: 10 failed, 86 passed, 15 skipped, 220 warnings
19858 #:test-flags
19859 #~(list #$@(map (lambda (test)
19860 (string-append "--deselect=test/tests/" test))
19861 ;; Mixture of "FileNotFoundError" and "AssertionError"
19862 ;; errors.
19863 (list "test_genes.py::test_genes_0"
19864 "test_genes.py::test_genes_1"
19865 "test_genes.py::test_genes_2"
19866 "test_genes.py::test_genes_3"
19867 "test_parse_gene_annotations.py::test_PA_2"
19868 "test_polymorpher.py::test_polymorpher_unit_0"
19869 "test_polymorpher.py::test_polymorpher_unit_3"
19870 "test_quick_profile.py::test_quick_profile_0"
19871 "test_quick_profile.py::test_quick_profile_1"
19872 "test_quick_profile.py::test_quick_profile_2")))
19873 #:phases
19874 #~(modify-phases %standard-phases
19875 (add-after 'unpack 'patch-relative-imports
19876 (lambda _
19877 ;; See: <https://github.com/MrOlm/inStrain/issues/218>.
19878 (mkdir "test/test_backend/")
19879 (substitute* (find-files "test/tests" "test_.*\\.py")
19880 (("from test_utils import BTO")
19881 "from .test_utils import BTO")
19882 (("import test_utils") "from . import test_utils"))
19883 (substitute* "docker/run_instrain.py"
19884 (("from s3_utils")
19885 "from .s3_utils")
19886 (("from job_utils")
19887 "from .job_utils"))))
19888 (add-after 'unpack 'relax-requirements
19889 (lambda _
19890 (substitute* "setup.py"
19891 (("biopython<=1.74") "biopython")
19892 ((".*pytest.*") "")))))))
19893 (propagated-inputs
19894 (list python-biopython
19895 python-h5py
19896 python-lmfit
19897 python-matplotlib
19898 python-networkx
19899 python-numpy
19900 python-pandas
19901 python-psutil
19902 python-pysam
19903 python-seaborn
19904 python-tqdm))
19905 (native-inputs
19906 (list python-boto3
19907 python-pytest
19908 python-setuptools))
19909 (home-page "https://github.com/MrOlm/inStrain")
19910 (synopsis "Calculation of strain-level metrics")
19911 (description
19912 "inStrain is a Python program for analysis of co-occurring genome
19913populations from metagenomes that allows highly accurate genome comparisons,
19914analysis of coverage, microdiversity, and linkage, and sensitive SNP detection
19915with gene localization and synonymous non-synonymous identification.")
19916 ;; The tool itself says that the license is "MIT", but the repository
19917 ;; contains a LICENSE file with the GPLv3.
19918 ;; See https://github.com/MrOlm/inStrain/issues/51
19919 (license license:expat)))
19920
19921(define-public gffcompare
19922 (let ((commit "be56ef4349ea3966c12c6397f85e49e047361c41")
19923 (revision "1"))
19924 (package
19925 (name "gffcompare")
19926 (version (git-version "0.10.15" revision commit))
19927 (source
19928 (origin
19929 (method git-fetch)
19930 (uri (git-reference
19931 (url "https://github.com/gpertea/gffcompare/")
19932 (commit commit)))
19933 (file-name (git-file-name name version))
19934 (sha256
19935 (base32 "0cp5qpxdhw4mxpya5dld8wi3jk00zyklm6rcri426wydinrnfmkg"))))
19936 (build-system gnu-build-system)
19937 (arguments
19938 `(#:tests? #f ; no check target
19939 #:phases
19940 (modify-phases %standard-phases
19941 (delete 'configure)
19942 (add-before 'build 'copy-gclib-source
19943 (lambda* (#:key inputs #:allow-other-keys)
19944 (mkdir "../gclib")
19945 (copy-recursively
19946 (assoc-ref inputs "gclib-source") "../gclib")
19947 #t))
19948 (replace 'install
19949 (lambda* (#:key outputs #:allow-other-keys)
19950 (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
19951 (install-file "gffcompare" bin)
19952 #t))))))
19953 (native-inputs
19954 `(("gclib-source" ; see 'README.md' of gffcompare
19955 ,(let ((commit "54917d0849c1e83cfb057b5f712e5cb6a35d948f")
19956 (revision "1")
19957 (name "gclib")
19958 (version (git-version "0.10.3" revision commit)))
19959 (origin
19960 (method git-fetch)
19961 (uri (git-reference
19962 (url "https://github.com/gpertea/gclib/")
19963 (commit commit)))
19964 (file-name (git-file-name name version))
19965 (sha256
19966 (base32 "0b51lc0b8syrv7186fd7n8f15rwnf264qgfmm2palrwks1px24mr")))))))
19967 (home-page "https://github.com/gpertea/gffcompare/")
19968 (synopsis "Tool for comparing or classifing transcripts of RNA-Seq")
19969 (description
19970 "@code{gffcompare} is a tool that can:
19971@enumerate
19972@item compare and evaluate the accuracy of RNA-Seq transcript assemblers
19973(Cufflinks, Stringtie);
19974@item collapse (merge) duplicate transcripts from multiple GTF/GFF3 files (e.g.
19975resulted from assembly of different samples);
19976@item classify transcripts from one or multiple GTF/GFF3 files as they relate to
19977reference transcripts provided in a annotation file (also in GTF/GFF3 format).
19978@end enumerate")
19979 (license
19980 (list
19981 license:expat ;license for gffcompare
19982 license:artistic2.0))))) ;license for gclib
19983
19984(define-public intervaltree
19985 (let ((commit "b90527f9e6d51cd36ecbb50429e4524d3a418ea5"))
19986 (package
19987 (name "intervaltree")
19988 (version (git-version "0.0.0" "1" commit))
19989 (source
19990 (origin
19991 (method git-fetch)
19992 (uri (git-reference
19993 (url "https://github.com/ekg/intervaltree/")
19994 (commit commit)))
19995 (file-name (git-file-name name version))
19996 (sha256
19997 (base32 "0rgv6q5fl4x5d74n6p5wvdna6zmbdbqpb4jqqh6vq3670gn08xad"))))
19998 (build-system gnu-build-system)
19999 (arguments
20000 `(#:tests? #f ; No tests.
20001 #:make-flags
20002 ,#~(list (string-append "PREFIX=" #$output) "DESTDIR=\"\"")
20003 #:phases
20004 (modify-phases %standard-phases
20005 (delete 'configure)))) ; There is no configure phase.
20006 (home-page "https://github.com/ekg/intervaltree")
20007 (synopsis "Minimal C++ interval tree implementation")
20008 (description "An interval tree can be used to efficiently find a set of
20009numeric intervals overlapping or containing another interval. This library
20010provides a basic implementation of an interval tree using C++ templates,
20011allowing the insertion of arbitrary types into the tree.")
20012 (license license:expat))))
20013
20014(define-public python-pypairix
20015 (package
20016 (name "python-pypairix")
20017 (version "0.3.9")
20018 ;; The tarball on pypi does not include the makefile to build the
20019 ;; programs.
20020 (source
20021 (origin
20022 (method git-fetch)
20023 (uri (git-reference
20024 (url "https://github.com/4dn-dcic/pairix")
20025 (commit version)))
20026 (file-name (git-file-name name version))
20027 (sha256
20028 (base32
20029 "1jlxj3xa67q1i58pmbi6imhvl6f5w9m5qxv0xd45ba86mp8mnmvz"))))
20030 (build-system pyproject-build-system)
20031 (arguments
20032 (list
20033 #:phases
20034 #~(modify-phases %standard-phases
20035 (add-after 'unpack 'respect-CFLAGS
20036 (lambda _
20037 (substitute* "src/Makefile"
20038 (("CFLAGS=")
20039 "CFLAGS?="))))
20040 (add-before 'build 'relax-gcc-14-strictness
20041 (lambda _
20042 (setenv "CFLAGS"
20043 (string-append "-g -O2"
20044 " -Wno-error=incompatible-pointer-types"
20045 " -Wno-error=int-conversion"))))
20046 (add-before 'build 'build-programs
20047 (lambda _ (invoke "make")))
20048 (add-after 'install 'install-programs
20049 (lambda _
20050 (copy-recursively "bin" (string-append #$output "/bin")))))))
20051 (native-inputs
20052 (list python-pytest
20053 python-setuptools))
20054 (inputs
20055 (list zlib))
20056 (home-page "https://github.com/4dn-dcic/pairix")
20057 (synopsis "Support for querying pairix-indexed bgzipped text files")
20058 (description
20059 "Pypairix is a Python module for fast querying on a pairix-indexed
20060bgzipped text file that contains a pair of genomic coordinates per line.")
20061 (license license:expat)))
20062
20063(define-public python-pyrodigal
20064 (package
20065 (name "python-pyrodigal")
20066 (version "3.6.3")
20067 (source
20068 (origin
20069 (method git-fetch)
20070 (uri (git-reference
20071 (url "https://github.com/althonos/pyrodigal")
20072 (commit (string-append "v" version))
20073 ;; XXX: vendor -> <https://github.com/hyattpd/Prodigal>
20074 (recursive? #t)))
20075 (file-name (git-file-name name version))
20076 (sha256
20077 (base32 "1gcvdrx0q730i0r3lndl7l7h0h8xvzsi09ymf14b498mj03yjdq9"))))
20078 (build-system pyproject-build-system)
20079 (arguments
20080 (list
20081 #:phases
20082 #~(modify-phases %standard-phases
20083 (add-after 'unpack 'patch-pyproject
20084 (lambda _
20085 (substitute* "pyproject.toml"
20086 ;; Extra keys present in "project": 'platform'
20087 (("platform =.*") ""))))
20088 (replace 'check
20089 (lambda* (#:key tests? #:allow-other-keys)
20090 (when tests?
20091 (invoke "python" "-m" "unittest" "pyrodigal.tests" "-vv")))))))
20092 (propagated-inputs (list python-archspec))
20093 (native-inputs
20094 (list cmake-minimal
20095 python-cython
20096 python-scikit-build-core))
20097 (home-page "https://github.com/althonos/pyrodigal")
20098 (synopsis "Cython bindings and Python interface for Prodigal")
20099 (description
20100 "This package offers Cython bindings and a Python interface for Prodigal.
20101 Prodigal is an ORF finder designed for both genomes and metagenomes.")
20102 (license license:gpl3)))
20103
20104(define-public python-pyfaidx
20105 (package
20106 (name "python-pyfaidx")
20107 (version "0.9.0.3")
20108 (source (origin
20109 (method url-fetch)
20110 (uri (pypi-uri "pyfaidx" version))
20111 (sha256
20112 (base32
20113 "0yaa64n5m4wxc02lxw6j9dzjk65rxdbak21dlvwhdjwdv4l4p2v4"))))
20114 (build-system pyproject-build-system)
20115 (arguments
20116 (list
20117 ;; tests: 107 failed, 54 passed, 8 skipped, 7 xfailed, 14 errors
20118 #:tests? #f)) ;most of them need remote data
20119 (native-inputs
20120 (list python-biopython
20121 python-fsspec
20122 python-numpy
20123 ;; python-pyfasta
20124 python-pytest
20125 python-setuptools
20126 python-setuptools-scm))
20127 (propagated-inputs
20128 (list python-packaging))
20129 (home-page "http://mattshirley.com")
20130 (synopsis "Random access to fasta subsequences")
20131 (description
20132 "This package provides procedures for efficient pythonic random access to
20133fasta subsequences.")
20134 (license license:bsd-3)))
20135
20136(define-public python-cooler
20137 (package
20138 (name "python-cooler")
20139 ;; 0.10.4 (2025-07-21), the latest changes provide support for Python
20140 ;; 3.12+; move back to git tag when released.
20141 (properties '((commit . "6c2d65b1420a636193b7f05100a96410ea252147")
20142 (revision . "0")))
20143 (version (git-version "0.10.4"
20144 (assoc-ref properties 'revision)
20145 (assoc-ref properties 'commit)))
20146 (source
20147 (origin
20148 (method git-fetch)
20149 (uri (git-reference
20150 (url "https://github.com/open2c/cooler")
20151 (commit (assoc-ref properties 'commit))))
20152 (file-name (git-file-name name version))
20153 (sha256
20154 (base32 "0xdb7lvyzj3wwv6jhkrxlj7gk830wkac4lwq5rjwk1r5qshjbn3n"))))
20155 (build-system pyproject-build-system)
20156 (arguments
20157 (list
20158 ;; tests: 141 passed, 4 skipped, 2 deselected, 270 warnings
20159 #:test-flags
20160 ;; This test depends on ipytree, which contains a lot of minified
20161 ;; JavaScript.
20162 #~(list "--deselect=tests/test_fileops.py::test_print_trees"
20163 ;; Network access is required.
20164 "--deselect=tests/test_create.py::test_roundtrip")))
20165 (native-inputs
20166 (list python-hatchling
20167 python-pytest))
20168 (propagated-inputs
20169 (list python-asciitree
20170 python-click
20171 python-cytoolz
20172 python-h5py
20173 python-multiprocess
20174 python-numpy
20175 python-pandas
20176 python-pyfaidx
20177 python-pyyaml
20178 python-scipy
20179 python-simplejson
20180 ;; [optional]
20181 python-biopython
20182 python-dask
20183 ;; python-ipytree ;no packaged in Guix
20184 python-ipywidgets
20185 python-matplotlib
20186 python-psutil
20187 python-pysam))
20188 ;; Almost all the projects of the Mirnylab are moved under Open2C umbrella
20189 (home-page "https://github.com/open2c/cooler")
20190 (synopsis "Sparse binary format for genomic interaction matrices")
20191 (description
20192 "Cooler is a support library for a sparse, compressed, binary persistent
20193storage format, called @code{cool}, used to store genomic interaction data,
20194such as Hi-C contact matrices.")
20195 (license license:bsd-3)))
20196
20197(define-public python-cooltools
20198 (package
20199 (name "python-cooltools")
20200 (version "0.7.1")
20201 (source
20202 (origin
20203 (method git-fetch)
20204 (uri (git-reference
20205 (url "https://github.com/open2c/cooltools")
20206 (commit (string-append "v" version))))
20207 (file-name (git-file-name name version))
20208 (sha256
20209 (base32 "04i8s414scrffi7xfwynyz7k9crgj93d1zmqgipvdh2kvpigifn3"))))
20210 (build-system pyproject-build-system)
20211 (arguments
20212 (list
20213 ;; tests: 65 passed, 134 warnings
20214 #:phases
20215 #~(modify-phases %standard-phases
20216 (add-after 'unpack 'fix-pytest-config
20217 (lambda _
20218 (delete-file "pytest.ini")))
20219 (add-before 'sanity-check 'set-HOME
20220 (lambda _
20221 (setenv "HOME" "/tmp"))))))
20222 (native-inputs
20223 (list python-cython
20224 python-pytest
20225 python-setuptools))
20226 (propagated-inputs
20227 (list python-bioframe
20228 python-click
20229 python-cooler
20230 python-joblib
20231 python-matplotlib
20232 python-multiprocess
20233 python-numba
20234 python-numpy
20235 python-pandas-2
20236 python-scikit-image
20237 python-scikit-learn
20238 python-scipy))
20239 (home-page "https://github.com/open2c/cooltools")
20240 (synopsis
20241 "Analysis tools for genomic interaction data stored in .cool format")
20242 (description
20243 "This package provides necessary tools for the analysis of the genomic
20244interaction data stored in @code{.cool} format. This collection of tools
20245includes operations like compartment, insulation or peak calling.")
20246 (license license:expat)))
20247
20248(define-public python-hicmatrix
20249 (package
20250 (name "python-hicmatrix")
20251 (version "17.2")
20252 (source
20253 (origin
20254 (method git-fetch)
20255 (uri (git-reference
20256 (url "https://github.com/deeptools/HiCMatrix")
20257 (commit version)))
20258 (file-name (git-file-name name version))
20259 (sha256
20260 (base32 "0pksh4k0k21jmiqvczpsb4i9i8ypip3a42s2j3j4z6iypakphakh"))))
20261 (build-system pyproject-build-system)
20262 (arguments
20263 (list
20264 ;; tests: 51 passed, 1 deselected, 2 xfailed, 1 xpassed, 8 warnings
20265 #:test-flags
20266 ;; Arrays are not equal
20267 #~(list "--deselect=hicmatrix/test/test_HiCMatrix.py::test_dist_list_to_dict")))
20268 (native-inputs
20269 (list python-pytest
20270 python-setuptools))
20271 (propagated-inputs
20272 (list python-cooler
20273 python-intervaltree
20274 python-numpy
20275 python-pandas
20276 python-scipy
20277 python-tables))
20278 (home-page "https://github.com/deeptools/HiCMatrix/")
20279 (synopsis "HiCMatrix class for HiCExplorer and pyGenomeTracks")
20280 (description
20281 "This helper package implements the @code{HiCMatrix} class for
20282the HiCExplorer and pyGenomeTracks packages.")
20283 (license license:gpl3+)))
20284
20285(define-public python-pygenometracks
20286 (package
20287 (name "python-pygenometracks")
20288 (version "3.9")
20289 (source
20290 (origin
20291 (method git-fetch)
20292 (uri (git-reference
20293 (url "https://github.com/deeptools/pyGenomeTracks")
20294 (commit version)))
20295 (file-name (git-file-name name version))
20296 (sha256
20297 (base32 "1xaw0yjdqnxd1d1aww1x2kkfydrmbdvpvma2ahmax68f5a68b0yk"))))
20298 (build-system pyproject-build-system)
20299 (arguments
20300 (list
20301 ;; tests: 1 failed, 205 passed, 4 skipped, 229 warnings
20302 #:test-flags
20303 ;; AttributeError: module 'bx.seq' has no attribute 'DNA_COMP'
20304 #~(list "--deselect=pygenometracks/tests/test_maf.py::test_first_maf_seq_zoom_dec")
20305 #:phases
20306 #~(modify-phases %standard-phases
20307 (add-after 'unpack 'relax-requirements
20308 (lambda _
20309 (substitute* "pyproject.toml"
20310 (("matplotlib >=3.1.1,<3.9")
20311 "matplotlib >=3.1.1")))))))
20312 (native-inputs
20313 (list python-pytest
20314 python-setuptools))
20315 (propagated-inputs
20316 (list python-bx-python
20317 python-future
20318 python-gffutils
20319 python-hicmatrix
20320 python-intervaltree
20321 python-matplotlib
20322 python-numpy
20323 python-pybedtools
20324 python-pybigwig
20325 python-pyfaidx
20326 python-pysam
20327 python-tqdm))
20328 (home-page "https://pygenometracks.readthedocs.io")
20329 (synopsis "Program and library to plot beautiful genome browser tracks")
20330 (description
20331 "This package aims to produce high-quality genome browser tracks that
20332are highly customizable. Currently, it is possible to plot: bigwig, bed (many
20333options), bedgraph, links (represented as arcs), and Hi-C matrices.
20334pyGenomeTracks can make plots with or without Hi-C data.")
20335 (license license:gpl3+)))
20336
20337(define-public python-iced
20338 (package
20339 (name "python-iced")
20340 (version "0.6.0")
20341 (source
20342 (origin
20343 (method url-fetch)
20344 (uri (pypi-uri "iced" version))
20345 (sha256
20346 (base32
20347 "1zkbq2xq16by8pys5ndqihydb9jfc35lsnznywvg77n44wl16whm"))))
20348 (build-system pyproject-build-system)
20349 ;; tests: 33 passed, 10 warnings
20350 (native-inputs
20351 (list python-cython
20352 python-pytest
20353 python-setuptools))
20354 (propagated-inputs
20355 (list python-numpy
20356 python-pandas
20357 python-scikit-learn
20358 python-scipy))
20359 (home-page "https://github.com/hiclib/iced")
20360 (synopsis "ICE normalization")
20361 (description "This is a package for normalizing Hi-C contact counts
20362efficiently.")
20363 (license license:bsd-3)))
20364
20365(define-public python-hic2cool
20366 (package
20367 (name "python-hic2cool")
20368 (version "1.0.1")
20369 (source
20370 (origin
20371 (method git-fetch)
20372 (uri (git-reference
20373 (url "https://github.com/4dn-dcic/hic2cool")
20374 (commit version)))
20375 (file-name (git-file-name name version))
20376 (sha256
20377 (base32 "0k0i43z43rxbpna4hfci406ma906w893frfj3cha1n8drvhdql6c"))))
20378 (build-system pyproject-build-system)
20379 (arguments
20380 (list #:test-backend #~'custom
20381 #:test-flags #~(list "test.py")))
20382 (native-inputs
20383 (list python-poetry-core))
20384 (propagated-inputs
20385 (list python-cooler
20386 python-h5py
20387 python-numpy
20388 python-pandas
20389 python-scipy))
20390 (home-page "https://github.com/4dn-dcic/hic2cool")
20391 (synopsis "Converter for .hic and .cool files")
20392 (description
20393 "This package provides a converter between @code{.hic} files (from
20394juicer) and single-resolution or multi-resolution @code{.cool} files (for
20395cooler). Both @code{hic} and @code{cool} files describe Hi-C contact
20396matrices.")
20397 (license license:expat)))
20398
20399(define-public python-scanorama
20400 (package
20401 (name "python-scanorama")
20402 (version "1.7.4")
20403 (source
20404 (origin
20405 (method git-fetch)
20406 (uri (git-reference
20407 (url "https://github.com/brianhie/scanorama")
20408 (commit (string-append "v" version))))
20409 (file-name (git-file-name name version))
20410 (sha256
20411 (base32 "1jpn4kq3qqa40xr0dwa9bw5cgga6h9ww9gfbyj6w3mfs8rv4w9rz"))))
20412 (build-system pyproject-build-system)
20413 (propagated-inputs (list python-annoy
20414 python-fbpca
20415 python-geosketch
20416 python-intervaltree
20417 python-matplotlib
20418 python-numpy
20419 python-scikit-learn
20420 python-scipy))
20421 (native-inputs (list python-anndata python-pytest python-setuptools))
20422 (home-page "https://github.com/brianhie/scanorama")
20423 (synopsis
20424 "Panoramic stitching of heterogeneous single cell transcriptomic data")
20425 (description
20426 "Scanorama enables batch-correction and integration of heterogeneous
20427scRNA-seq datasets, which is described in the paper \"Efficient integration of
20428heterogeneous single-cell transcriptomes using Scanorama\" by Brian Hie, Bryan
20429Bryson, and Bonnie Berger.")
20430 (license license:expat)))
20431
20432(define-public r-pore
20433 (package
20434 (name "r-pore")
20435 (version "0.24")
20436 (source
20437 (origin
20438 (method url-fetch)
20439 (uri
20440 (string-append "mirror://sourceforge/rpore/" version
20441 "/poRe_" version ".tar.gz"))
20442 (sha256
20443 (base32 "0pih9nljbv8g4x8rkk29i7aqq681b782r5s5ynp4nw9yzqnmmksv"))))
20444 (properties `((upstream-name . "poRe")))
20445 (build-system r-build-system)
20446 (propagated-inputs
20447 (list r-bit64 r-data-table r-rhdf5 r-shiny r-svdialogs))
20448 (home-page "https://sourceforge.net/projects/rpore/")
20449 (synopsis "Visualize Nanopore sequencing data")
20450 (description
20451 "This package provides graphical user interfaces to organize and visualize Nanopore
20452sequencing data.")
20453 ;; This is free software but the license variant is unclear:
20454 ;; <https://github.com/mw55309/poRe_docs/issues/10>.
20455 (license license:bsd-3)))
20456
20457(define-public r-xbioc
20458 (let ((revision "1")
20459 (commit "6ff0670a37ab3036aaf1d94aa4b208310946b0b5"))
20460 (package
20461 (name "r-xbioc")
20462 (version (git-version "0.1.16" revision commit))
20463 (source (origin
20464 (method git-fetch)
20465 (uri (git-reference
20466 (url "https://github.com/renozao/xbioc")
20467 (commit commit)))
20468 (file-name (git-file-name name version))
20469 (sha256
20470 (base32
20471 "0w8bsq5myiwkfhh83nm6is5ichiyvwa1axx2szvxnzq39x6knf66"))))
20472 (build-system r-build-system)
20473 (propagated-inputs
20474 (list r-annotationdbi
20475 r-assertthat
20476 r-biobase
20477 r-biocmanager
20478 r-digest
20479 r-pkgmaker
20480 r-plyr
20481 r-reshape2
20482 r-stringr))
20483 (home-page "https://github.com/renozao/xbioc/")
20484 (synopsis "Extra base functions for Bioconductor")
20485 (description "This package provides extra utility functions to perform
20486common tasks in the analysis of omics data, leveraging and enhancing features
20487provided by Bioconductor packages.")
20488 (license license:gpl3+))))
20489
20490(define-public r-cssam
20491 (let ((revision "1")
20492 (commit "9ec58c982fa551af0d80b1a266890d92954833f2"))
20493 (package
20494 (name "r-cssam")
20495 (version (git-version "1.4" revision commit))
20496 (source (origin
20497 (method git-fetch)
20498 (uri (git-reference
20499 (url "https://github.com/shenorrLab/csSAM")
20500 (commit commit)))
20501 (file-name (git-file-name name version))
20502 (sha256
20503 (base32
20504 "128syf9v39gk0z3ip000qpsjbg6l1siyq6c8b0hz41dzg5achyb3"))))
20505 (build-system r-build-system)
20506 (propagated-inputs
20507 (list r-formula
20508 r-ggplot2
20509 r-pkgmaker
20510 r-plyr
20511 r-rngtools
20512 r-scales))
20513 (home-page "https://github.com/shenorrLab/csSAM/")
20514 (synopsis "Cell type-specific statistical analysis of microarray")
20515 (description "This package implements the method csSAM that computes
20516cell-specific differential expression from measured cell proportions using
20517SAM.")
20518 ;; Any version
20519 (license license:lgpl2.1+))))
20520
20521(define-public r-bseqsc
20522 (let ((revision "1")
20523 (commit "fef3f3e38dcf3df37103348b5780937982b43b98"))
20524 (package
20525 (name "r-bseqsc")
20526 (version (git-version "1.0" revision commit))
20527 (source (origin
20528 (method git-fetch)
20529 (uri (git-reference
20530 (url "https://github.com/shenorrLab/bseqsc")
20531 (commit commit)))
20532 (file-name (git-file-name name version))
20533 (sha256
20534 (base32
20535 "1prw13wa20f7wlc3gkkls66n1kxz8d28qrb8icfqdwdnnv8w5qg8"))))
20536 (build-system r-build-system)
20537 (propagated-inputs
20538 (list r-abind
20539 r-annotationdbi
20540 r-biobase
20541 r-cssam
20542 r-dplyr
20543 r-e1071
20544 r-edger
20545 r-ggplot2
20546 r-nmf
20547 r-openxlsx
20548 r-pkgmaker
20549 r-plyr
20550 r-preprocesscore
20551 r-rngtools
20552 r-scales
20553 r-stringr
20554 r-xbioc))
20555 (home-page "https://github.com/shenorrLab/bseqsc")
20556 (synopsis "Deconvolution of bulk sequencing experiments using single cell data")
20557 (description "BSeq-sc is a bioinformatics analysis pipeline that
20558leverages single-cell sequencing data to estimate cell type proportion and
20559cell type-specific gene expression differences from RNA-seq data from bulk
20560tissue samples. This is a companion package to the publication \"A
20561single-cell transcriptomic map of the human and mouse pancreas reveals inter-
20562and intra-cell population structure.\" Baron et al. Cell Systems (2016)
20563@url{https://www.ncbi.nlm.nih.gov/pubmed/27667365}.")
20564 (license license:gpl2+))))
20565
20566(define-public jamm
20567 (package
20568 (name "jamm")
20569 (version "1.0.7.6")
20570 (source
20571 (origin
20572 (method git-fetch)
20573 (uri (git-reference
20574 (url "https://github.com/mahmoudibrahim/JAMM")
20575 (commit (string-append "JAMMv" version))))
20576 (file-name (git-file-name name version))
20577 (sha256
20578 (base32
20579 "0bsa5mf9n9q5jz7mmacrra41l7r8rac5vgsn6wv1fb52ya58b970"))))
20580 (build-system gnu-build-system)
20581 (arguments
20582 (list
20583 #:tests? #f ;there are none
20584 #:phases
20585 #~(modify-phases %standard-phases
20586 (delete 'configure)
20587 (delete 'build)
20588 (replace 'install
20589 (lambda _
20590 (let ((libexec (string-append #$output "/libexec/jamm"))
20591 (bin (string-append #$output "/bin")))
20592 (substitute* '("JAMM.sh"
20593 "SignalGenerator.sh")
20594 (("^sPath=.*")
20595 (string-append "sPath=\"" libexec "\"\n")))
20596 (for-each (lambda (file)
20597 (install-file file libexec))
20598 (list "bincalculator.r"
20599 "peakfinder.r"
20600 "peakhelper.r"
20601 "signalmaker.r"
20602 "xcorr.r"
20603 "xcorrhelper.r"
20604 ;; Perl scripts
20605 "peakfilter.pl"
20606 "readshifter.pl"))
20607
20608 (for-each
20609 (lambda (script)
20610 (chmod script #o555)
20611 (install-file script bin)
20612 (wrap-program (string-append bin "/" script)
20613 `("PATH" ":" prefix
20614 (,(string-append #$(this-package-input "coreutils") "/bin")
20615 ,(string-append #$(this-package-input "gawk") "/bin")
20616 ,(string-append #$(this-package-input "perl") "/bin")
20617 ,(string-append #$(this-package-input "r-minimal") "/bin")))
20618 `("PERL5LIB" ":" prefix (,(getenv "PERL5LIB")))
20619 `("R_LIBS_SITE" ":" prefix (,(getenv "R_LIBS_SITE")))))
20620 (list "JAMM.sh" "SignalGenerator.sh"))))))))
20621 (inputs
20622 (list bash
20623 coreutils
20624 gawk
20625 perl
20626 r-minimal
20627 ;;("r-parallel" ,r-parallel)
20628 r-signal
20629 r-mclust))
20630 (home-page "https://github.com/mahmoudibrahim/JAMM")
20631 (synopsis "Peak finder for NGS datasets")
20632 (description
20633 "JAMM is a peak finder for next generation sequencing datasets (ChIP-Seq,
20634ATAC-Seq, DNase-Seq, etc.) that can integrate replicates and assign peak
20635boundaries accurately. JAMM is applicable to both broad and narrow
20636datasets.")
20637 (license license:gpl3+)))
20638
20639(define-public ngless
20640 (package
20641 (name "ngless")
20642 (version "1.5.0")
20643 (source (origin
20644 (method url-fetch)
20645 (uri (hackage-uri "NGLess" version))
20646 (sha256
20647 (base32
20648 "0pljyrlpr9r3cl5311dhgxdl8y40szyi4vprn34i3piy0qrldymi"))))
20649 (build-system haskell-build-system)
20650 (arguments
20651 `(#:haddock? #f
20652 #:phases
20653 (modify-phases %standard-phases
20654 (add-before 'configure 'update-constraints
20655 (lambda _
20656 (substitute* "NGLess.cabal"
20657 (("\\b(base)\\s+[^,]+" all dep)
20658 dep))))
20659 (add-after 'unpack 'create-Versions.hs
20660 (lambda _
20661 (substitute* "NGLess/Dependencies/Versions.hs"
20662 (("bwaVersion = .+")
20663 (string-append "bwaVersion = \""
20664 ,(package-version bwa) "\""))
20665 (("samtoolsVersion = .+")
20666 (string-append "samtoolsVersion = \""
20667 ,(package-version samtools) "\""))
20668 (("prodigalVersion = .+")
20669 (string-append "prodigalVersion = \""
20670 ,(package-version prodigal) "\""))
20671 (("megahitVersion = .+")
20672 (string-append "megahitVersion = \""
20673 ,(package-version megahit) "\""))
20674 (("minimap2Version = .+")
20675 (string-append "minimap2Version = \""
20676 ,(package-version minimap2) "\"")))))
20677 ;; See NGLess/FileManagement.hs.
20678 (add-after 'install 'wrap-program
20679 (lambda* (#:key inputs outputs #:allow-other-keys)
20680 (let* ((out (assoc-ref outputs "out"))
20681 (bwa (search-input-file inputs "/bin/bwa"))
20682 (samtools (search-input-file inputs "/bin/samtools"))
20683 (prodigal (search-input-file inputs "/bin/prodigal"))
20684 (minimap2 (search-input-file inputs "/bin/minimap2"))
20685 (megahit (search-input-file inputs "/bin/megahit")))
20686 (wrap-program (string-append out "/bin/ngless")
20687 `("NGLESS_BWA_BIN" " " = (,bwa))
20688 `("NGLESS_SAMTOOLS_BIN" " " = (,samtools))
20689 `("NGLESS_PRODIGAL_BIN" " " = (,prodigal))
20690 `("NGLESS_MINIMAP2_BIN" " " = (,minimap2))
20691 `("NGLESS_MEGAHIT_BIN" " " = (,megahit))))))
20692 ;; Sanity check.
20693 (add-after 'wrap-program 'check-install
20694 (lambda* (#:key outputs #:allow-other-keys)
20695 (let* ((ngless (string-append (assoc-ref outputs "out") "/bin/ngless")))
20696 (invoke ngless "--check-install"))))
20697 (add-after 'register 'remove-libraries
20698 (lambda* (#:key outputs #:allow-other-keys)
20699 (delete-file-recursively (string-append (assoc-ref outputs "out") "/lib")))))))
20700 (inputs (list bash-minimal
20701 prodigal
20702 bwa
20703 samtools
20704 minimap2
20705 megahit
20706 ghc-missingh
20707 ghc-aeson
20708 ghc-ansi-terminal
20709 ghc-async
20710 ghc-atomic-write
20711 ghc-bytestring-lexing
20712 ghc-conduit
20713 ghc-conduit-algorithms
20714 ghc-conduit-extra
20715 ghc-configurator
20716 ghc-convertible
20717 ghc-data-default
20718 ghc-edit-distance
20719 ghc-either
20720 ghc-errors
20721 ghc-extra
20722 ghc-file-embed
20723 ghc-filemanip
20724 ghc-hashable
20725 ghc-hashtables
20726 ghc-hostname
20727 ghc-http-client
20728 ghc-http-conduit
20729 ghc-inline-c
20730 ghc-inline-c-cpp
20731 ghc-int-interval-map
20732 ghc-network
20733 ghc-optparse-applicative
20734 ghc-primitive
20735 ghc-random-shuffle
20736 ghc-regex
20737 ghc-resourcet
20738 ghc-safe
20739 ghc-stm-chans
20740 ghc-stm-conduit
20741 ghc-strict
20742 ghc-tar
20743 ghc-tar-conduit
20744 ghc-unix-compat
20745 ghc-unliftio
20746 ghc-unliftio-core
20747 ghc-vector
20748 ghc-vector-algorithms
20749 ghc-yaml
20750 ghc-zlib
20751 ghc-bzlib-conduit
20752 ghc-double-conversion
20753 ghc-safeio))
20754 (propagated-inputs
20755 (list r-r6 r-hdf5r r-iterators r-itertools r-matrix))
20756 (native-inputs (list ghc-hunit
20757 ghc-quickcheck
20758 ghc-tasty
20759 ghc-tasty-hunit
20760 ghc-tasty-quickcheck
20761 ghc-tasty-th))
20762 (home-page "https://ngless.embl.de/")
20763 (synopsis "DSL for processing next-generation sequencing data")
20764 (description "Ngless is a domain-specific language for
20765@dfn{next-generation sequencing} (NGS) data processing.")
20766 (license license:expat)))
20767
20768(define-public ghc-int-interval-map
20769 (let ((commit "678763de7fe6d7fa3f1c44b32d18ce58670270f4")
20770 (revision "1"))
20771 (package
20772 (name "ghc-int-interval-map")
20773 (version "0.0.0.0")
20774 (source
20775 (origin
20776 (method git-fetch)
20777 (uri (git-reference
20778 (url "https://github.com/ngless-toolkit/interval-to-int.git")
20779 (commit commit)))
20780 (file-name (git-file-name name version))
20781 (sha256 (base32 "0fd728b5if89vj5j4f9y7k0b2xv2ycz5a21iy15wbdcf5bhim7i8"))))
20782 (build-system haskell-build-system)
20783 (inputs
20784 (list ghc-either ghc-primitive ghc-vector ghc-vector-algorithms))
20785 (native-inputs
20786 (list ghc-hedgehog
20787 ghc-tasty
20788 ghc-tasty-hedgehog
20789 ghc-tasty-hunit
20790 ghc-tasty-quickcheck
20791 ghc-tasty-th))
20792 (home-page "https://github.com/luispedro/interval-to-int#readme")
20793 (synopsis "Interval map structure in Haskell")
20794 (description "An interval map structure that is optimized for low
20795memory (each interval is represented by about 3 words + whatever the
20796cargo is) and has semantics that are appropriate for genomic intervals
20797(namely, intervals can overlap and queries will return all matches
20798together). It also designed to be used in two phases: a construction
20799phase + query phase).")
20800 (license license:expat))))
20801
20802(define-public nanopolish
20803 (package
20804 (name "nanopolish")
20805 (version "0.14.0")
20806 (source
20807 (origin
20808 (method git-fetch)
20809 (uri (git-reference
20810 (url "https://github.com/jts/nanopolish")
20811 (commit (string-append "v" version))
20812 (recursive? #t)))
20813 (file-name (git-file-name name version))
20814 (sha256
20815 (base32 "1ha9v5ia0qrwgav0956cfc7n64wjm9a9w3rvkg21g37a994yixg5"))
20816 (modules '((guix build utils)))
20817 (snippet
20818 ;; TODO: unbundle slow5lib
20819 '(begin (for-each delete-file-recursively
20820 '("htslib" "minimap2"))))))
20821 (build-system gnu-build-system)
20822 (arguments
20823 (list
20824 #:make-flags
20825 #~(list "HDF5=noinstall"
20826 "EIGEN=noinstall"
20827 "HTS=noinstall"
20828 "MINIMAP2=noinstall"
20829 (string-append "CC=" #$(cc-for-target)))
20830 #:tests? #f ; no check target
20831 #:phases
20832 #~(modify-phases %standard-phases
20833 (add-after 'unpack 'find-eigen
20834 (lambda* (#:key inputs #:allow-other-keys)
20835 (setenv "CPATH"
20836 (string-append
20837 (search-input-directory inputs "/include/eigen3")
20838 ":" (or (getenv "CPATH") "")))))
20839 (delete 'configure)
20840 (replace 'install
20841 (lambda _
20842 (let ((bin (string-append #$output "/bin"))
20843 (scripts (string-append #$output "/share/nanopolish/scripts")))
20844
20845 (install-file "nanopolish" bin)
20846 (for-each (lambda (file) (install-file file scripts))
20847 (find-files "scripts" ".*")))))
20848 (add-after 'install 'wrap-programs
20849 (lambda* (#:key inputs #:allow-other-keys)
20850 (let ((pythonpath (getenv "GUIX_PYTHONPATH"))
20851 (perl5lib (getenv "PERL5LIB"))
20852 (scripts (string-append #$output "/share/nanopolish/scripts"))
20853 (guile (search-input-file inputs "bin/guile")))
20854 (for-each (lambda (file)
20855 (wrap-program file `("GUIX_PYTHONPATH" ":" prefix (,pythonpath))))
20856 (find-files scripts "\\.py"))
20857 (for-each (lambda (file)
20858 (wrap-script file #:guile guile
20859 `("PERL5LIB" ":" prefix (,perl5lib))))
20860 (find-files scripts "\\.pl"))))))))
20861 (inputs
20862 (list bash-minimal
20863 guile-3.0 ;for wrappers
20864 eigen
20865 hdf5
20866 htslib
20867 minimap2
20868 perl
20869 bioperl-minimal
20870 perl-getopt-long
20871 python-wrapper
20872 python-biopython
20873 python-numpy
20874 python-pysam
20875 python-scikit-learn
20876 python-scipy
20877 zlib))
20878 (native-inputs (list cmake-minimal))
20879 (home-page "https://github.com/jts/nanopolish")
20880 (synopsis "Signal-level analysis of Oxford Nanopore sequencing data")
20881 (description
20882 "This package analyses the Oxford Nanopore sequencing data at signal-level.
20883Nanopolish can calculate an improved consensus sequence for a draft genome
20884assembly, detect base modifications, call SNPs (Single nucleotide
20885polymorphisms) and indels with respect to a reference genome and more.")
20886 (license license:expat)))
20887
20888(define-public cnvkit
20889 (package
20890 (name "cnvkit")
20891 (version "0.9.13")
20892 (source
20893 (origin
20894 (method git-fetch)
20895 (uri (git-reference
20896 (url "https://github.com/etal/cnvkit")
20897 (commit (string-append "v" version))))
20898 (file-name (git-file-name name version))
20899 (sha256
20900 (base32 "0w81yl5v37r63d035mxdsycma8fgssyr0857rnvvjfw78wjjnvg9"))))
20901 (build-system pyproject-build-system)
20902 (arguments
20903 (list
20904 ;; tests: 70 passed, 211 warnings
20905 #:phases
20906 #~(modify-phases %standard-phases
20907 (add-after 'unpack 'fix-pytest-config
20908 (lambda _
20909 (substitute* "pyproject.toml"
20910 (("filterwarnings =.*")
20911 "")))))))
20912 (propagated-inputs
20913 (list python-biopython
20914 python-matplotlib
20915 python-numpy
20916 python-pandas
20917 python-pomegranate
20918 python-pyfaidx
20919 python-pysam
20920 python-reportlab
20921 python-scikit-learn
20922 python-scipy
20923 ;; R packages
20924 r-dnacopy))
20925 (inputs (list r-minimal)) ;for tests
20926 (native-inputs (list python-pytest python-setuptools))
20927 (home-page "https://cnvkit.readthedocs.org/")
20928 (synopsis "Copy number variant detection from targeted DNA sequencing")
20929 (description
20930 "CNVkit is a Python library and command-line software toolkit to infer
20931and visualize copy number from high-throughput DNA sequencing data. It is
20932designed for use with hybrid capture, including both whole-exome and custom
20933target panels, and short-read sequencing platforms such as Illumina and Ion
20934Torrent.")
20935 (license license:asl2.0)))
20936
20937(define-public python-pyfit-sne
20938 (package
20939 (name "python-pyfit-sne")
20940 (version "1.2.1")
20941 (source
20942 (origin
20943 (method git-fetch)
20944 (uri (git-reference
20945 (url "https://github.com/KlugerLab/pyFIt-SNE")
20946 (commit version)))
20947 (file-name (git-file-name name version))
20948 (sha256
20949 (base32 "0f3n7wcmxbnqiisgimhpa6p5chqpb1hj69i6rpg2hv2671i8nn68"))))
20950 (build-system pyproject-build-system)
20951 (arguments
20952 '(#:tests? #f)) ;there are none
20953 (propagated-inputs (list python-numpy))
20954 (inputs (list fftw))
20955 (native-inputs (list python-cython python-setuptools))
20956 (home-page "https://github.com/KlugerLab/pyFIt-SNE")
20957 (synopsis "FFT-accelerated Interpolation-based t-SNE")
20958 (description
20959 "t-Stochastic Neighborhood Embedding (t-SNE) is a highly successful
20960method for dimensionality reduction and visualization of high dimensional
20961datasets. A popular implementation of t-SNE uses the Barnes-Hut algorithm to
20962approximate the gradient at each iteration of gradient descent. This package
20963is a Cython wrapper for FIt-SNE.")
20964 (license license:bsd-4)))
20965
20966(define-public bbmap
20967 (package
20968 (name "bbmap")
20969 (version "39.01")
20970 (source (origin
20971 (method url-fetch)
20972 (uri (string-append
20973 "mirror://sourceforge/bbmap/BBMap_" version ".tar.gz"))
20974 (sha256
20975 (base32
20976 "1rlkw2mlkn699dk9n5lnigmvwq3zr2f8hnq9plx7zi1h06jqsq4q"))))
20977 (build-system ant-build-system)
20978 (arguments
20979 (list
20980 #:build-target "dist"
20981 #:tests? #f ; there are none
20982 #:make-flags
20983 #~(list (string-append "-Dmpijar="
20984 #$(this-package-input "java-openmpi")
20985 "/lib/mpi.jar"))
20986 #:modules '((guix build ant-build-system)
20987 (guix build utils)
20988 (guix build java-utils))
20989 #:phases
20990 #~(modify-phases %standard-phases
20991 (add-after 'build 'build-jni-library
20992 (lambda _
20993 (with-directory-excursion "jni"
20994 (invoke "make" "-f" "makefile.linux"))))
20995 ;; There is no install target
20996 (replace 'install (install-jars "dist"))
20997 (add-after 'install 'install-scripts-and-documentation
20998 (lambda _
20999 (substitute* "calcmem.sh"
21000 (("\\| awk ") (string-append "| " (which "awk") " ")))
21001 (let* ((scripts (find-files "." "\\.sh$"))
21002 (bin (string-append #$output "/bin"))
21003 (doc (string-append #$output "/share/doc/bbmap"))
21004 (jni (string-append #$output "/lib/jni")))
21005 (substitute* scripts
21006 (("\\$DIR\"\"docs") doc)
21007 (("^CP=.*")
21008 (string-append "CP=" #$output "/share/java/BBTools.jar\n"))
21009 (("^NATIVELIBDIR.*")
21010 (string-append "NATIVELIBDIR=" jni "\n"))
21011 (("CMD=\"java")
21012 (string-append "CMD=\"" (which "java"))))
21013 (for-each (lambda (script) (install-file script bin)) scripts)
21014
21015 ;; Install JNI library
21016 (install-file "jni/libbbtoolsjni.so" jni)
21017
21018 ;; Install documentation
21019 (install-file "docs/readme.txt" doc)
21020 (copy-recursively "docs/guides" doc)))))
21021 #:jdk openjdk11))
21022 (inputs
21023 (list gawk java-eclipse-jdt-core java-eclipse-jdt-compiler-apt
21024 java-openmpi))
21025 (home-page "https://sourceforge.net/projects/bbmap/")
21026 (synopsis "Aligner and other tools for short sequencing reads")
21027 (description
21028 "This package provides bioinformatic tools to align, deduplicate,
21029reformat, filter and normalize DNA and RNA-seq data. It includes the
21030following tools: BBMap, a short read aligner for DNA and RNA-seq data; BBNorm,
21031a kmer-based error-correction and normalization tool; Dedupe, a tool to
21032simplify assemblies by removing duplicate or contained subsequences that share
21033a target percent identity; Reformat, to convert reads between
21034fasta/fastq/scarf/fasta+qual/sam, interleaved/paired, and ASCII-33/64, at over
21035500 MB/s; and BBDuk, a tool to filter, trim, or mask reads with kmer matches
21036to an artifact/contaminant file.")
21037 (license license:bsd-3)))
21038
21039(define-public velvet
21040 (package
21041 (name "velvet")
21042 (version "1.2.10")
21043 (source (origin
21044 (method url-fetch)
21045 (uri (string-append "https://www.ebi.ac.uk/~zerbino/velvet/"
21046 "velvet_" version ".tgz"))
21047 (sha256
21048 (base32
21049 "0h3njwy66p6bx14r3ar1byb0ccaxmxka4c65rn4iybyiqa4d8kc8"))
21050 ;; Delete bundled libraries
21051 (modules '((guix build utils)))
21052 (snippet
21053 '(begin
21054 (delete-file "Manual.pdf")
21055 (delete-file-recursively "third-party")))))
21056 (build-system gnu-build-system)
21057 (arguments
21058 (list
21059 #:make-flags #~(list "OPENMP=t"
21060 "CFLAGS=-Wall -Wno-error=incompatible-pointer-types")
21061 #:test-target "test"
21062 #:phases
21063 #~(modify-phases %standard-phases
21064 (delete 'configure)
21065 (add-after 'unpack 'fix-zlib-include
21066 (lambda _
21067 (substitute* "src/binarySequences.c"
21068 (("../third-party/zlib-1.2.3/zlib.h") "zlib.h"))))
21069 (add-before 'build 'set-home-env
21070 (lambda _
21071 ;; TeXLive requires HOME to be set.
21072 ;; Permission denied: '/homeless-shelter'
21073 (setenv "HOME" "/tmp")))
21074 (replace 'install
21075 (lambda _
21076 (let ((bin (string-append #$output "/bin"))
21077 (doc (string-append #$output "/share/doc/velvet")))
21078 (mkdir-p bin)
21079 (mkdir-p doc)
21080 (install-file "velveth" bin)
21081 (install-file "velvetg" bin)
21082 (install-file "Manual.pdf" doc)
21083 (install-file "Columbus_manual.pdf" doc)))))))
21084 (inputs
21085 (list openmpi zlib))
21086 (native-inputs
21087 (list (texlive-local-tree
21088 (list texlive-ec
21089 texlive-infwarerr
21090 texlive-kvoptions
21091 texlive-pdftexcmds))))
21092 (home-page "https://www.ebi.ac.uk/~zerbino/velvet/")
21093 (synopsis "Nucleic acid sequence assembler for very short reads")
21094 (description
21095 "Velvet is a de novo genomic assembler specially designed for short read
21096sequencing technologies, such as Solexa or 454. Velvet currently takes in
21097short read sequences, removes errors then produces high quality unique
21098contigs. It then uses paired read information, if available, to retrieve the
21099repeated areas between contigs.")
21100 (license license:gpl2+)))
21101
21102(define-public vembrane
21103 (package
21104 (name "vembrane")
21105 (version "1.0.7")
21106 (source (origin
21107 (method git-fetch)
21108 (uri (git-reference
21109 (url "https://github.com/vembrane/vembrane")
21110 (commit (string-append "v" version))))
21111 (file-name (git-file-name name version))
21112 (sha256
21113 (base32
21114 "127wmwj0162nfaql68jwxlkz7rbnjya70xrj4j8zwvcnxcj7x5v3"))))
21115 (build-system pyproject-build-system)
21116 (arguments
21117 (list
21118 #:phases
21119 #~(modify-phases %standard-phases
21120 (add-after 'unpack 'use-poetry-core
21121 (lambda _
21122 ;; Patch to use the core poetry API.
21123 (substitute* "pyproject.toml"
21124 (("poetry.masonry.api") "poetry.core.masonry.api")))))))
21125 (inputs
21126 (list python-asttokens
21127 python-intervaltree
21128 python-numpy
21129 python-pysam
21130 python-pyyaml))
21131 (native-inputs
21132 (list python-poetry-core
21133 python-pytest))
21134 (home-page "https://github.com/vembrane/vembrane")
21135 (synopsis "Filter VCF/BCF files with Python expressions")
21136 (description "Vembrane simultaneously filters variants based on
21137any INFO or FORMAT field, CHROM, POS, ID, REF, ALT, QUAL, FILTER, and the
21138annotation field ANN. When filtering based on ANN, annotation entries are
21139filtered first. If no annotation entry remains, the entire variant is
21140deleted.")
21141 (license license:expat)))
21142
21143(define-public arriba
21144 (package
21145 (name "arriba")
21146 (version "1.0.1")
21147 (source
21148 (origin
21149 (method url-fetch)
21150 (uri (string-append "https://github.com/suhrig/arriba/releases/"
21151 "download/v" version "/arriba_v" version ".tar.gz"))
21152 (sha256
21153 (base32
21154 "0jx9656ry766vb8z08m1c3im87b0c82qpnjby9wz4kcz8vn87dx2"))))
21155 (build-system gnu-build-system)
21156 (arguments
21157 (list
21158 #:tests? #f ;there are none
21159 #:phases
21160 #~(modify-phases %standard-phases
21161 (replace 'configure
21162 (lambda* (#:key inputs #:allow-other-keys)
21163 (substitute* "Makefile"
21164 (("-I\\$\\(HTSLIB\\)/htslib")
21165 (string-append "-I"
21166 (search-input-directory inputs "/include/htslib")))
21167 ((" \\$\\(HTSLIB\\)/libhts.a")
21168 (string-append " " (search-input-file inputs "/lib/libhts.so"))))
21169 (let ((samtools (search-input-file inputs "/bin/samtools")))
21170 (substitute* "run_arriba.sh"
21171 (("^STAR ")
21172 (string-append (search-input-file inputs "/bin/STAR") " "))
21173 (("samtools --version-only")
21174 (string-append samtools " --version-only"))
21175 (("samtools index")
21176 (string-append samtools " index"))
21177 (("samtools sort")
21178 (string-append samtools " sort"))))))
21179 (replace 'install
21180 (lambda _
21181 (let ((bin (string-append #$output "/bin")))
21182 (install-file "arriba" bin)
21183 (install-file "run_arriba.sh" bin)
21184 (install-file "draw_fusions.R" bin)
21185 (wrap-program (string-append bin "/draw_fusions.R")
21186 `("R_LIBS_SITE" ":" prefix (,(getenv "R_LIBS_SITE"))))))))))
21187 (inputs
21188 (list bash-minimal
21189 htslib
21190 r-minimal
21191 r-circlize
21192 r-genomicalignments
21193 r-genomicranges
21194 samtools
21195 star
21196 zlib))
21197 (home-page "https://github.com/suhrig/arriba")
21198 (synopsis "Gene fusion detection from RNA-Seq data")
21199 (description
21200 "Arriba is a command-line tool for the detection of gene fusions from
21201RNA-Seq data. It was developed for the use in a clinical research setting.
21202Therefore, short runtimes and high sensitivity were important design criteria.
21203It is based on the fast STAR aligner and the post-alignment runtime is
21204typically just around two minutes. In contrast to many other fusion detection
21205tools which build on STAR, Arriba does not require to reduce the
21206@code{alignIntronMax} parameter of STAR to detect small deletions.")
21207 ;; All code is under the Expat license with the exception of
21208 ;; "draw_fusions.R", which is under GPLv3.
21209 (license (list license:expat license:gpl3))))
21210
21211(define-public adapterremoval
21212 (package
21213 (name "adapterremoval")
21214 (version "2.3.3")
21215 (source
21216 (origin
21217 (method git-fetch)
21218 (uri (git-reference
21219 (url "https://github.com/MikkelSchubert/adapterremoval")
21220 (commit (string-append "v" version))))
21221 (file-name (git-file-name name version))
21222 (sha256
21223 (base32
21224 "0wyr182667wqdmzhwwa6f7dddr8kk0scgzb8lsm23wim544mvn6i"))))
21225 (build-system gnu-build-system)
21226 (arguments
21227 (list
21228 #:make-flags
21229 #~(list "COLOR_BUILD=no"
21230 (string-append "PREFIX=" #$output))
21231 #:test-target "test"
21232 #:phases
21233 '(modify-phases %standard-phases
21234 (delete 'configure))))
21235 (inputs (list zlib))
21236 (home-page "https://adapterremoval.readthedocs.io/")
21237 (synopsis "Rapid sequence adapter trimming, identification, and read merging")
21238 (description
21239 "This program searches for and removes remnant adapter sequences from
21240@dfn{High-Throughput Sequencing} (HTS) data and (optionally) trims low quality
21241bases from the 3' end of reads following adapter removal. AdapterRemoval can
21242analyze both single end and paired end data, and can be used to merge
21243overlapping paired-ended reads into (longer) consensus sequences.
21244Additionally, the AdapterRemoval may be used to recover a consensus adapter
21245sequence for paired-ended data, for which this information is not available.")
21246 (license license:gpl3+)))
21247
21248(define-public checkm
21249 (package
21250 (name "checkm")
21251 (version "1.2.4")
21252 (source
21253 (origin
21254 (method url-fetch)
21255 (uri (pypi-uri "checkm_genome" version))
21256 (sha256
21257 (base32 "0wdjrz9v5cb6fa6rcd56v3x09yyffx18jjd9g8iw0i6i0lmw9abx"))))
21258 (build-system pyproject-build-system)
21259 (arguments
21260 (list
21261 #:test-flags
21262 #~(list "-k" (string-append
21263 ;; AttributeError: 'BinStatistics' object has no attribute
21264 ;; '_BinStatistics__calculateCodingBases'
21265 "not testCodingBases"
21266 ;; KeyError: 'GC'
21267 " and not testGC"
21268 ;; AttributeError: 'BinStatistics' object
21269 ;; has no attribute
21270 ;; 'calculateScaffoldLengthStats'
21271 " and not testScaffoldLengthStats"))
21272 #:phases
21273 #~(modify-phases %standard-phases
21274 (add-before 'check 'set-HOME
21275 (lambda _
21276 (setenv "HOME" "/tmp"))))))
21277 (native-inputs
21278 (list python-pytest
21279 python-setuptools))
21280 (inputs
21281 (list python-dendropy
21282 python-matplotlib
21283 python-numpy
21284 python-pysam
21285 python-scipy))
21286 (home-page "https://ecogenomics.github.io/CheckM/")
21287 (synopsis "Assess the quality of putative genome bins")
21288 (description
21289 "CheckM provides a set of tools for assessing the quality of genomes
21290recovered from isolates, single cells, or metagenomes. It provides robust
21291estimates of genome completeness and contamination by using collocated sets of
21292genes that are ubiquitous and single-copy within a phylogenetic lineage.
21293Assessment of genome quality can also be examined using plots depicting key
21294genomic characteristics (e.g., GC, coding density) which highlight sequences
21295outside the expected distributions of a typical genome. CheckM also provides
21296tools for identifying genome bins that are likely candidates for merging based
21297on marker set compatibility, similarity in genomic characteristics, and
21298proximity within a reference genome.")
21299 (license license:gpl3+)))
21300
21301(define-public chromap
21302 (package
21303 (name "chromap")
21304 (version "0.2.7")
21305 (source
21306 (origin
21307 (method git-fetch)
21308 (uri (git-reference
21309 (url "https://github.com/haowenz/chromap")
21310 (commit (string-append "v" version))))
21311 (file-name (git-file-name name version))
21312 (sha256
21313 (base32
21314 "099y3kac6npiqyx5prc9ggigw6248j7kchjznqvd9hxkq24rrsqs"))))
21315 (build-system gnu-build-system)
21316 (arguments
21317 (list
21318 #:tests? #false ;there are none
21319 #:phases
21320 #~(modify-phases %standard-phases
21321 (delete 'configure)
21322 (replace 'install
21323 (lambda _
21324 (install-file "chromap" (string-append #$output "/bin")))))))
21325 (inputs (list zlib))
21326 (home-page "https://github.com/haowenz/chromap")
21327 (synopsis "Fast alignment and preprocessing of chromatin profiles")
21328 (description "Chromap is a fast method for aligning and preprocessing high
21329throughput chromatin profiles. Typical use cases include:
21330
21331@itemize
21332@item trimming sequencing adapters, mapping bulk ATAC-seq or ChIP-seq genomic
21333 reads to the human genome and removing duplicates;
21334@item trimming sequencing adapters, mapping single cell ATAC-seq genomic reads
21335 to the human genome, correcting barcodes, removing duplicates and performing
21336 Tn5 shift;
21337@item split alignment of Hi-C reads against a reference genome.
21338@end itemize")
21339 (supported-systems '("x86_64-linux")) ;requires CPU with SSE4.1
21340 (license license:expat)))
21341
21342(define-public umi-tools
21343 (package
21344 (name "umi-tools")
21345 (version "1.1.6")
21346 ;; TODO: Delete generated Cython C files.
21347 (source
21348 (origin
21349 (method git-fetch)
21350 (uri (git-reference
21351 (url "https://github.com/CGATOxford/UMI-tools")
21352 (commit (string-append "v" version))))
21353 (file-name (git-file-name name version))
21354 (sha256
21355 (base32 "1liykfj4msvcgk8an5qq802jcxwlijqxrvijipqj1pwpxqzl9qnh"))))
21356 (build-system pyproject-build-system)
21357 (arguments
21358 (list
21359 #:test-flags
21360 #~(list "--ignore=tests/test_style.py"
21361 "--ignore=step1_unit_test.py")
21362 #:phases
21363 #~(modify-phases %standard-phases
21364 (add-after 'unpack 'fix-bash-path
21365 (lambda _
21366 (substitute* "tests/test_umi_tools.py"
21367 (("/bin/bash")
21368 (which "sh")))))
21369 (add-before 'check 'build-extensions
21370 (lambda _
21371 (invoke "python" "setup.py" "build_ext" "--inplace"))))))
21372 (inputs
21373 (list python-pandas
21374 python-future
21375 python-scipy
21376 python-matplotlib
21377 python-regex
21378 python-pybktree
21379 python-scipy
21380 python-pysam))
21381 (native-inputs
21382 (list python-cython
21383 python-pyaml
21384 python-pytest
21385 python-setuptools))
21386 (home-page "https://github.com/CGATOxford/UMI-tools")
21387 (synopsis "Tools for analyzing unique modular identifiers")
21388 (description "This package provides tools for dealing with @dfn{Unique
21389Molecular Identifiers} (UMIs) and @dfn{Random Molecular Tags} (RMTs) in
21390genetic sequences. There are six tools: the @code{extract} and
21391@code{whitelist} commands are used to prepare a fastq containing UMIs @code{+/-}
21392cell barcodes for alignment. The remaining commands, @code{group},
21393@code{dedup}, and @code{count}/@code{count_tab}, are used to identify PCR
21394duplicates using the UMIs and perform different levels of analysis depending
21395on the needs of the user.")
21396 (license license:expat)))
21397
21398(define-public ataqv
21399 (package
21400 (name "ataqv")
21401 (version "1.0.0")
21402 (source
21403 (origin
21404 (method git-fetch)
21405 (uri (git-reference
21406 (url "https://github.com/ParkerLab/ataqv")
21407 (commit version)))
21408 (file-name (git-file-name name version))
21409 (sha256
21410 (base32
21411 "031xr6jx1aprh26y5b1lv3gzrlmzg4alfl73vvshymx8cq8asrqi"))))
21412 (build-system gnu-build-system)
21413 (arguments
21414 `(#:make-flags
21415 ,#~(list (string-append "prefix=" #$output)
21416 (string-append "BOOST_ROOT="
21417 #$(this-package-input "boost"))
21418 (string-append "HTSLIB_ROOT="
21419 #$(this-package-input "htslib")))
21420 #:test-target "test"
21421 #:phases
21422 (modify-phases %standard-phases
21423 (delete 'configure))))
21424 (inputs
21425 (list boost-1.83 htslib ncurses zlib))
21426 (native-inputs
21427 (list lcov))
21428 (home-page "https://github.com/ParkerLab/ataqv")
21429 (synopsis "Toolkit for quality control and visualization of ATAC-seq data")
21430 (description "This package provides a toolkit for measuring and comparing
21431ATAC-seq results. It was written to make it easier to spot differences that
21432might be caused by ATAC-seq library prep or sequencing. The main program,
21433@code{ataqv}, examines aligned reads and reports some basic metrics.")
21434 (license license:gpl3+)))
21435
21436(define-public r-psiplot
21437 (package
21438 (name "r-psiplot")
21439 (version "2.3.0")
21440 (source
21441 (origin
21442 (method git-fetch)
21443 (uri (git-reference
21444 (url "https://github.com/kcha/psiplot")
21445 (commit (string-append "v" version))))
21446 (file-name (git-file-name name version))
21447 (sha256
21448 (base32 "08438h16cfry5kqh3y9hs8q1b1a8bxhblsm75knviz5r6q0n1jxh"))))
21449 (build-system r-build-system)
21450 (propagated-inputs
21451 (list r-mass
21452 r-dplyr
21453 r-tidyr
21454 r-purrr
21455 r-readr
21456 r-magrittr
21457 r-ggplot2))
21458 (native-inputs (list r-testthat))
21459 (home-page "https://github.com/kcha/psiplot")
21460 (synopsis "Plot percent spliced-in values of alternatively-spliced exons")
21461 (description
21462 "PSIplot is an R package for generating plots of @dfn{percent
21463spliced-in} (PSI) values of alternatively-spliced exons that were computed by
21464vast-tools, an RNA-Seq pipeline for alternative splicing analysis. The plots
21465are generated using @code{ggplot2}.")
21466 (license license:expat)))
21467
21468(define-public r-scopeloomr
21469 (let ((commit "99726f5f7da794042036b73924b6a10d6e7b4d5d")
21470 (revision "1"))
21471 (package
21472 (name "r-scopeloomr")
21473 (version (git-version "0.13.0" revision commit))
21474 (source
21475 (origin
21476 (method git-fetch)
21477 (uri (git-reference
21478 (url "https://github.com/aertslab/SCopeLoomR")
21479 (commit commit)))
21480 (file-name (git-file-name name version))
21481 (sha256
21482 (base32 "1ci17ms0c0hf7yfp9ckcg7a2y1s0nm19jj3cifsd55hwc0gdglmz"))))
21483 (properties `((upstream-name . "SCopeLoomR")))
21484 (build-system r-build-system)
21485 (propagated-inputs
21486 (list r-base64enc r-hdf5r r-igraph r-matrix r-plyr r-rjson r-rlist))
21487 (home-page "https://github.com/aertslab/SCopeLoomR")
21488 (synopsis "Build .loom files and extract data from them")
21489 (description
21490 "This is an R package to build generic @code{.loom} files aligning with
21491the default naming convention of the @code{.loom} format and to integrate
21492other data types e.g.: regulons (SCENIC), clusters from Seurat, trajectory
21493information... The package can also be used to extract data from @code{.loom}
21494files.")
21495 (license license:expat))))
21496
21497(define-public rscape
21498 (package
21499 (name "rscape")
21500 (version "2.0.0.q")
21501 (source (origin
21502 (method url-fetch)
21503 (uri (string-append "http://eddylab.org/software/rscape/"
21504 "rscape_v" version ".tar.gz"))
21505 (sha256
21506 (base32
21507 "1jabvm3fzh8iy4803ns12v1fsy28x6wdy8wx4ik8y0mfac4h787q"))))
21508 (build-system gnu-build-system)
21509 (propagated-inputs (list gsl openmpi))
21510 (native-inputs (list automake autoconf))
21511 (home-page "https://github.com/EddyRivasLab/R-scape")
21512 (synopsis "RNA structural covariation above phylogenetic expectation")
21513 (description
21514 "R-scape discovers RNA secondary structure consensus elements.
21515These elements include riboswitches and ribozymes. It utilizes probabilistic
21516modeling of sequence alignments, explicitly considering folding dependencies.
21517The tool enables the de novo search for new structural elements and
21518facilitates comparative analysis of known RNA families.")
21519 (license license:bsd-3)))
21520
21521(define-public r-databaselinke-r
21522 (let ((commit "cf3d6cc3d36f2e1c9a557390232e9a8ed5abb7fd")
21523 (revision "1"))
21524 (package
21525 (name "r-databaselinke-r")
21526 (version (git-version "1.7.0" revision commit))
21527 (source
21528 (origin
21529 (method git-fetch)
21530 (uri (git-reference
21531 (url "https://github.com/vertesy/DatabaseLinke.R")
21532 (commit commit)))
21533 (file-name (git-file-name name version))
21534 (sha256
21535 (base32 "0hk76sb3w1v8a7c1knpc572ypsbgqlrv0p49c9y55a0dr12n16s1"))))
21536 (properties `((upstream-name . "DatabaseLinke.R")))
21537 (build-system r-build-system)
21538 (propagated-inputs (list r-readwriter))
21539 (home-page "https://github.com/vertesy/DatabaseLinke.R")
21540 (synopsis
21541 "Parse links to databases from your list of gene symbols")
21542 (description
21543 "This package provides a set of functions to parse and open (search
21544query) links to genomics related and other websites for R. Useful when you
21545want to explore e.g.: the function of a set of differentially expressed
21546genes.")
21547 (license license:gpl3))))
21548
21549(define-public r-seuratextend
21550 (let ((commit "5dacd7c1e1da3bc0e78ab81d60056f6d7da3d386")
21551 (revision "1"))
21552 (package
21553 (name "r-seuratextend")
21554 (version (git-version "1.2.5" revision commit))
21555 (source
21556 (origin
21557 (method git-fetch)
21558 (uri (git-reference
21559 (url "https://github.com/huayc09/SeuratExtend")
21560 (commit commit)))
21561 (file-name (git-file-name name version))
21562 (sha256
21563 (base32 "1fnh1idf871jfkpzmr2py15h5v5d9ykh9p0kvlpx7riiidi8wsl2"))))
21564 (properties `((upstream-name . "SeuratExtend")))
21565 (build-system r-build-system)
21566 (propagated-inputs (list r-biocmanager
21567 r-dplyr
21568 r-ggplot2
21569 r-ggpubr
21570 r-glue
21571 r-hdf5r
21572 r-magrittr
21573 r-mosaic
21574 r-purrr
21575 r-remotes
21576 r-reshape2
21577 r-reticulate
21578 r-rlist
21579 r-scales
21580 r-seurat
21581 r-seuratextenddata
21582 r-seuratobject
21583 r-tidyr))
21584 (native-inputs (list r-knitr))
21585 (home-page "https://github.com/huayc09/SeuratExtend")
21586 (synopsis "Enhanced toolkit for scRNA-seq analysis")
21587 (description
21588 "This package is designed to improve and simplify the analysis of
21589scRNA-seq data. It uses the Seurat object for this purpose. It provides an
21590array of enhanced visualization tools, an integrated functional and pathway
21591analysis pipeline, seamless integration with popular Python tools, and a suite
21592of utility functions to aid in data manipulation and presentation.")
21593 (license license:gpl3+))))
21594
21595(define-public r-seuratextenddata
21596 (let ((commit "e7f17d4bacca436705b06b2cd0c879f83add9271")
21597 (revision "1"))
21598 (package
21599 (name "r-seuratextenddata")
21600 (version (git-version "0.2.1" revision commit))
21601 (source
21602 (origin
21603 (method git-fetch)
21604 (uri (git-reference
21605 (url "https://github.com/huayc09/SeuratExtendData")
21606 (commit commit)))
21607 (file-name (git-file-name name version))
21608 (sha256
21609 (base32 "1vl2wvpbv5q04mzc6z3f1jw2jc5i8pw5vm8y1rg5b1cihkwppvq5"))))
21610 (properties `((upstream-name . "SeuratExtendData")))
21611 (build-system r-build-system)
21612 (home-page "https://github.com/huayc09/SeuratExtendData")
21613 (synopsis "Data attached to SeuratExtend package")
21614 (description "This package provides data for the SeuratExtend tool.")
21615 (license license:gpl3+))))
21616
21617(define-public r-seuratwrappers
21618 ;; There are no releases or tags.
21619 (let ((commit "d28512f804d5fe05e6d68900ca9221020d52cf1d")
21620 (revision "1"))
21621 (package
21622 (name "r-seuratwrappers")
21623 (version (git-version "0.3.1" revision commit))
21624 (source (origin
21625 (method git-fetch)
21626 (uri (git-reference
21627 (url "https://github.com/satijalab/seurat-wrappers")
21628 (commit commit)))
21629 (file-name (git-file-name name version))
21630 (sha256
21631 (base32
21632 "0rm74y2fj3cmiqn7jz1ald8jbw53c2qxkj3mgl4pxih9vx39jhgy"))))
21633 (properties `((upstream-name . "SeuratWrappers")))
21634 (build-system r-build-system)
21635 (propagated-inputs
21636 (list r-biocmanager
21637 r-cowplot
21638 r-ggplot2
21639 r-igraph
21640 r-matrix
21641 r-remotes
21642 r-rlang
21643 r-rsvd
21644 r-r-utils
21645 r-seurat))
21646 (home-page "https://github.com/satijalab/seurat-wrappers")
21647 (synopsis "Community-provided methods and extensions for the Seurat object")
21648 (description
21649 "SeuratWrappers is a collection of community-provided methods and
21650extensions for Seurat, curated by the Satija Lab at NYGC. These methods
21651comprise functionality not presently found in Seurat, and are able to be
21652updated much more frequently.")
21653 (license license:gpl3))))
21654
21655(define-public python-ctxcore
21656 (package
21657 (name "python-ctxcore")
21658 (version "0.2.0")
21659 (source
21660 (origin
21661 (method git-fetch)
21662 (uri (git-reference
21663 (url "https://github.com/aertslab/ctxcore")
21664 (commit version)))
21665 (file-name (git-file-name name version))
21666 (sha256
21667 (base32
21668 "0nv4lc46cnzpg5gcdxrsv7b4srmkq55zl3rcadw5pn3yyz5fzd2k"))))
21669 (build-system pyproject-build-system)
21670 (propagated-inputs
21671 (list python-cytoolz
21672 python-frozendict
21673 python-numba
21674 python-numpy
21675 python-pandas
21676 python-pyarrow
21677 python-pyyaml
21678 python-tqdm))
21679 (native-inputs
21680 (list python-pytest python-setuptools python-setuptools-scm))
21681 (home-page "https://github.com/aertslab/ctxcore")
21682 (synopsis "Core functions for pycisTarget and the SCENIC tool suite")
21683 (description
21684 "ctxcore is part of the SCENIC suite of tools. It provides core functions for
21685pycisTarget and SCENIC.")
21686 (license license:gpl3+)))
21687
21688(define-public python-arboreto
21689 (package
21690 (name "python-arboreto")
21691 ;; 0.1.6 was released in 2021
21692 (properties '((commit . "79f916b0ea25c00989331b8db243826049c3d66c")
21693 (revision . "1")))
21694 (version (git-version "0.1.6"
21695 (assoc-ref properties 'revision)
21696 (assoc-ref properties 'commit)))
21697 (source (origin
21698 (method git-fetch)
21699 (uri (git-reference
21700 (url "https://github.com/aertslab/arboreto")
21701 (commit (assoc-ref properties 'commit))))
21702 (file-name (git-file-name name version))
21703 (sha256
21704 (base32
21705 "10h1xzvp5r4612icxd5mfhvmwyw57mlvw6z9nwgh37qpzjcnvddd"))))
21706 (build-system pyproject-build-system)
21707 (arguments
21708 (list
21709 ;; tests: 37 tests (skipped=2)
21710 #:test-backend #~'unittest
21711 #:phases
21712 #~(modify-phases %standard-phases
21713 (add-after 'unpack 'python-3.12-compatibility
21714 (lambda _
21715 (substitute* (find-files "tests" "\\.py")
21716 (("assertEquals") "assertEqual"))))
21717 (add-after 'unpack 'disable-failing-tests
21718 (lambda _
21719 (substitute* "tests/test_algo.py"
21720 ;; AssertionError: 'Timed out trying to connect to
21721 ;; tcp://127.0.0.2:12345 after 10 s' not found in 'Timed out
21722 ;; trying to connect to tcp://127.0.0.2:12345 after 30 s'.
21723 (("def test_address")
21724 "def __off_test_address")
21725 ;; AssertionError: 'closing' != 'closed'
21726 ;; - closing
21727 ;; + closed
21728 (("def test_client")
21729 "def __off_test_client")
21730 ))))))
21731 (native-inputs
21732 (list python-setuptools))
21733 (propagated-inputs
21734 (list python-bokeh ;XXX: for python-dask
21735 python-dask
21736 python-distributed
21737 python-numpy
21738 python-pandas
21739 python-scikit-learn
21740 python-scipy))
21741 (home-page "https://github.com/aertslab/arboreto")
21742 (synopsis "Gene regulatory network inference using tree-based ensemble regressors")
21743 (description
21744 "This package implements scalable gene regulatory network inference using
21745tree-based ensemble regressors.")
21746 (license license:bsd-3)))
21747
21748(define-public pyscenic
21749 ;; We use this commit because the last release is not compatible with the
21750 ;; current version of numpy. See
21751 ;; https://github.com/aertslab/pySCENIC/issues/579#issuecomment-2405207860
21752 (let ((commit "06bafba412792f6efa5a552a23bb221cc3bdea1b")
21753 (revision "2"))
21754 (package
21755 (name "pyscenic")
21756 (version (git-version "0.12.1" revision commit))
21757 (source
21758 (origin
21759 (method git-fetch)
21760 (uri (git-reference
21761 (url "https://github.com/aertslab/pySCENIC")
21762 (commit commit)))
21763 (file-name (git-file-name name version))
21764 (sha256
21765 (base32
21766 "15zkv082j1d7fh4pcznqss1q539ndg8ymwbs62xhypylwh7ry0sx"))))
21767 (build-system pyproject-build-system)
21768 (arguments
21769 (list
21770 #:phases
21771 '(modify-phases %standard-phases
21772 ;; The cli modules referenced here have been removed, so this
21773 ;; breaks the sanity check.
21774 (add-after 'unpack 'do-not-reference-deleted-modules
21775 (lambda _
21776 (substitute* "setup.py"
21777 (("\"db2feather = .*\",") "")
21778 (("\"csv2loom = .*\",") "")
21779 (("\"invertdb = .*\",") "")
21780 (("\"gmt2regions = .*\",") ""))))
21781 ;; Numba needs a writable dir to cache functions.
21782 (add-before 'check 'set-numba-cache-dir
21783 (lambda _
21784 (setenv "NUMBA_CACHE_DIR" "/tmp"))))))
21785 (propagated-inputs
21786 (list python-aiohttp
21787 python-arboreto
21788 python-attrs
21789 python-boltons
21790 python-cloudpickle
21791 python-ctxcore
21792 python-cytoolz
21793 python-dask
21794 python-diptest
21795 python-distributed
21796 python-frozendict
21797 python-fsspec
21798 python-interlap
21799 python-llvmlite
21800 python-loompy
21801 python-multiprocessing-on-dill
21802 python-networkx
21803 python-numba
21804 python-numexpr
21805 python-numpy
21806 python-pandas
21807 python-pyarrow ;XXX for dask
21808 python-pyyaml
21809 python-requests
21810 python-scikit-learn
21811 python-scipy
21812 python-setuptools
21813 python-tqdm
21814 python-umap-learn))
21815 (native-inputs
21816 (list python-pytest python-setuptools))
21817 (home-page "https://scenic.aertslab.org/")
21818 (synopsis "Single-Cell regulatory network inference and clustering")
21819 (description
21820 "pySCENIC is a Python implementation of the SCENIC pipeline (Single-Cell
21821rEgulatory Network Inference and Clustering) which enables biologists to infer
21822transcription factors, gene regulatory networks and cell types from
21823single-cell RNA-seq data.")
21824 (license license:gpl3+))))
21825
21826(define-public python-ikarus
21827 (package
21828 (name "python-ikarus")
21829 (version "0.0.3")
21830 (source
21831 (origin
21832 (method url-fetch)
21833 (uri (pypi-uri "ikarus" version))
21834 (sha256
21835 (base32 "1nzhy1a4mnr23wnxg7sy0pgyydfiavvk8b53cyxh1z8s6wqq1yqj"))))
21836 (build-system pyproject-build-system)
21837 (arguments
21838 (list
21839 #:test-backend #~'custom
21840 #:test-flags
21841 ;; There are no actual tests, it is a step from GitHub Actions.
21842 #~(list "-c" "'from ikarus import classifier, utils, data'")
21843 #:phases
21844 #~(modify-phases %standard-phases
21845 ;; Numba needs a writable dir to cache functions.
21846 (add-before 'build 'set-numba-cache-dir
21847 (lambda _
21848 (setenv "NUMBA_CACHE_DIR" "/tmp"))))))
21849 (propagated-inputs (list pyscenic
21850 python-anndata
21851 python-ctxcore
21852 python-numpy
21853 python-pandas
21854 python-scanpy
21855 python-scipy))
21856 (native-inputs (list python-setuptools))
21857 (home-page "https://github.com/BIMSBbioinfo/ikarus")
21858 (synopsis "Machine learning classifier of tumor cells")
21859 (description
21860 "ikarus is a stepwise machine learning pipeline that tries to cope with a task
21861of distinguishing tumor cells from normal cells. Leveraging multiple
21862annotated single cell datasets it can be used to define a gene set specific to
21863tumor cells. First, the latter gene set is used to rank cells and then to
21864train a logistic classifier for the robust classification of tumor and normal
21865cells. Finally, sensitivity is increased by propagating the cell labels based
21866on a custom cell-cell network. ikarus is tested on multiple single cell
21867datasets to ascertain that it achieves high sensitivity and specificity in
21868multiple experimental contexts.")
21869 (license license:expat)))
21870
21871(define-public tbsp
21872 (let ((commit "dc30c03868233c5504299c9cb0d7b2064ba9cb41")
21873 (revision "2"))
21874 (package
21875 (name "tbsp")
21876 (version (git-version "1.0.0" revision commit))
21877 (source
21878 (origin
21879 (method git-fetch)
21880 (uri (git-reference
21881 (url "https://github.com/phoenixding/tbsp")
21882 (commit commit)))
21883 (file-name (git-file-name name version))
21884 (sha256
21885 (base32 "1im0bik2hxkcb7jzkcxp5nqb30hd8lfraxml6i5ik52j6z3qqln1"))))
21886 (build-system pyproject-build-system)
21887 (arguments
21888 '(#:tests? #f ;no tests included
21889 #:phases (modify-phases %standard-phases
21890 (add-after 'unpack 'relax-requirements
21891 (lambda _
21892 (substitute* "setup.py"
21893 ((", <3.0")
21894 ""))))))) ;matplotlib
21895 (inputs (list python-matplotlib
21896 python-networkx
21897 python-numpy
21898 python-pybigwig
21899 python-biopython-1.73
21900 python-scikit-learn
21901 python-scipy))
21902 (native-inputs (list python-setuptools))
21903 (home-page "https://github.com/phoenixding/tbsp/")
21904 (synopsis "SNP-based trajectory inference")
21905 (description
21906 "Several studies focus on the inference of developmental and response
21907trajectories from single cell RNA-Seq (scRNA-Seq) data. A number of
21908computational methods, often referred to as pseudo-time ordering, have been
21909developed for this task. CRISPR has also been used to reconstruct lineage
21910trees by inserting random mutations. The tbsp package implements an
21911alternative method to detect significant, cell type specific sequence
21912mutations from scRNA-Seq data.")
21913 (license license:expat))))
21914
21915(define-public tabixpp
21916 (package
21917 (name "tabixpp")
21918 (version "1.1.2")
21919 (source (origin
21920 (method git-fetch)
21921 (uri (git-reference
21922 (url "https://github.com/ekg/tabixpp")
21923 (commit (string-append "v" version))))
21924 (file-name (git-file-name name version))
21925 (sha256
21926 (base32 "00aqs147yn8zcvxims5njwxqsbnlbjv7lnmiwqy80bfdcbhljkqf"))
21927 (modules '((guix build utils)))
21928 (snippet
21929 '(delete-file-recursively "htslib"))))
21930 (build-system gnu-build-system)
21931 (inputs
21932 (list bzip2 curl htslib xz zlib))
21933 (arguments
21934 (list #:make-flags #~(list (string-append "CC=" #$(cc-for-target))
21935 (string-append "CXX=" #$(cxx-for-target))
21936 "HTS_HEADERS="
21937 (string-append "HTS_LIB="
21938 (search-input-file %build-inputs
21939 "/lib/libhts.a"))
21940 "INCLUDES=")
21941 #:tests? #f ; There are no tests to run.
21942 #:phases
21943 #~(modify-phases %standard-phases
21944 (delete 'configure) ; There is no configure phase.
21945 ;; Build shared and static libraries.
21946 (add-after 'build 'build-libraries
21947 (lambda* (#:key inputs #:allow-other-keys)
21948 (invoke #$(cxx-for-target)
21949 "-shared" "-o" "libtabixpp.so" "tabix.o" "-lhts")
21950 (invoke #$(ar-for-target) "rcs" "libtabixpp.a" "tabix.o")))
21951 (replace 'install
21952 (lambda _
21953 (let ((lib (string-append #$output "/lib"))
21954 (bin (string-append #$output "/bin")))
21955 (install-file "tabix++" bin)
21956 (install-file "libtabixpp.so" lib)
21957 (install-file "libtabixpp.a" lib)
21958 (install-file "tabix.hpp" (string-append #$output "/include"))
21959 (mkdir-p (string-append lib "/pkgconfig"))
21960 (with-output-to-file (string-append lib "/pkgconfig/tabixpp.pc")
21961 (lambda _
21962 (format #t "\
21963prefix=~a~@
21964exec_prefix=${prefix}~@
21965libdir=${exec_prefix}/lib~@
21966includedir=${prefix}/include~@
21967~@
21968~@
21969Name: libtabixpp~@
21970Version: ~a~@
21971Description: C++ wrapper around tabix project~@
21972Libs: -L${libdir} -ltabixpp~@
21973Cflags: -I${includedir}~%"
21974 #$output #$version)))))))))
21975 (home-page "https://github.com/ekg/tabixpp")
21976 (synopsis "C++ wrapper around tabix project")
21977 (description "This is a C++ wrapper around the Tabix project which abstracts
21978some of the details of opening and jumping in tabix-indexed files.")
21979 (license license:expat)))
21980
21981(define-public smithwaterman
21982 (let ((commit "2610e259611ae4cde8f03c72499d28f03f6d38a7"))
21983 (package
21984 (name "smithwaterman")
21985 (version (git-version "0.0.0" "2" commit))
21986 (source (origin
21987 (method git-fetch)
21988 (uri (git-reference
21989 (url "https://github.com/ekg/smithwaterman/")
21990 (commit commit)))
21991 (file-name (git-file-name name version))
21992 (sha256
21993 (base32 "0i9d8zrxpiracw3mxzd9siybpy62p06rqz9mc2w93arajgbk45bs"))))
21994 (build-system gnu-build-system)
21995 (arguments
21996 (list
21997 #:tests? #f ; There are no tests to run.
21998 #:make-flags
21999 #~(list (string-append "CXX=" #$(cxx-for-target))
22000 "libsw.a" "all")
22001 #:phases
22002 #~(modify-phases %standard-phases
22003 (delete 'configure) ; There is no configure phase.
22004 (add-after 'unpack 'patch-source
22005 (lambda _
22006 (substitute* "Makefile"
22007 (("-c ") "-c -fPIC "))
22008 #$@(if (%current-target-system)
22009 #~((substitute* "Makefile"
22010 (("\tld")
22011 (string-append "\t" #$(%current-target-system) "-ld"))
22012 (("\tar")
22013 (string-append "\t" #$(%current-target-system) "-ar"))))
22014 '())))
22015 (add-after 'build 'build-dynamic
22016 (lambda _
22017 (invoke #$(cxx-for-target)
22018 "-shared" "-o" "libsmithwaterman.so"
22019 "smithwaterman.o" "SmithWatermanGotoh.o"
22020 "disorder.o" "BandedSmithWaterman.o"
22021 "LeftAlign.o" "Repeats.o" "IndelAllele.o")))
22022 (replace 'install
22023 (lambda* (#:key outputs #:allow-other-keys)
22024 (let* ((out (assoc-ref outputs "out"))
22025 (bin (string-append out "/bin"))
22026 (lib (string-append out "/lib")))
22027 (install-file "smithwaterman" bin)
22028 (for-each
22029 (lambda (file)
22030 (install-file file (string-append out "/include/smithwaterman")))
22031 (find-files "." "\\.h$"))
22032 (install-file "libsmithwaterman.so" lib)
22033 (install-file "libsw.a" lib)
22034 (mkdir-p (string-append lib "/pkgconfig"))
22035 (with-output-to-file (string-append lib "/pkgconfig/smithwaterman.pc")
22036 (lambda _
22037 (format #t "prefix=~a~@
22038 exec_prefix=${prefix}~@
22039 libdir=${exec_prefix}/lib~@
22040 includedir=${prefix}/include/smithwaterman~@
22041 ~@
22042 ~@
22043 Name: smithwaterman~@
22044 Version: ~a~@
22045 Description: smith-waterman-gotoh alignment algorithm~@
22046 Libs: -L${libdir} -lsmithwaterman~@
22047 Cflags: -I${includedir}~%"
22048 out #$version)))))))))
22049 (home-page "https://github.com/ekg/smithwaterman")
22050 (synopsis "Implementation of the Smith-Waterman algorithm")
22051 (description "Implementation of the Smith-Waterman algorithm.")
22052 ;; The licensing terms are unclear: https://github.com/ekg/smithwaterman/issues/9.
22053 (license (list license:gpl2 license:expat)))))
22054
22055(define-public sylamer
22056 (package
22057 (name "sylamer")
22058 (version "18-131")
22059 (source (origin
22060 (method git-fetch)
22061 (uri (git-reference
22062 (url "https://github.com/micans/sylamer/")
22063 (commit "aa75c3584797c0c15f860addb645f7bc1dd7627d")))
22064 (file-name (git-file-name name version))
22065 (sha256
22066 (base32
22067 "1ddiwlrdghhb4574rvfw0brjp9gs5l6nfsy82h0m4mvz1dr3gkj5"))))
22068 (build-system gnu-build-system)
22069 (arguments
22070 (list
22071 #:tests? #f ; no test target
22072 #:make-flags
22073 #~(list (string-append "GSLPREFIX=" #$(this-package-input "gsl")))
22074 #:phases
22075 '(modify-phases %standard-phases
22076 (replace 'configure
22077 (lambda* (#:key outputs #:allow-other-keys)
22078 (substitute* "Makefile"
22079 (("cp sylamer \\$\\(HOME\\)/local/bin")
22080 (string-append "install -D -t " (assoc-ref outputs "out")
22081 "/bin sylamer")))
22082 (install-file "Makefile" "src")
22083 (chdir "src"))))))
22084 (inputs (list gsl zlib))
22085 (home-page "https://www.ebi.ac.uk/research/enright/software/sylamer")
22086 (synopsis "Asses microRNA binding and siRNA off-target effects")
22087 (description "Sylamer is a system for finding significantly over or
22088under-represented words in sequences according to a sorted gene list.
22089Typically it is used to find significant enrichment or depletion of microRNA
22090or siRNA seed sequences from microarray expression data. Sylamer is extremely
22091fast and can be applied to genome-wide datasets with ease. Results are
22092plotted in terms of a significance landscape plot. These plots show
22093significance profiles for each word studied across the sorted genelist.")
22094 (license license:gpl3+)))
22095
22096(define-public multichoose
22097 (package
22098 (name "multichoose")
22099 (version "1.0.3")
22100 (source (origin
22101 (method git-fetch)
22102 (uri (git-reference
22103 (url "https://github.com/ekg/multichoose/")
22104 (commit (string-append "v" version))))
22105 (file-name (git-file-name name version))
22106 (sha256
22107 (base32
22108 "0ci5fqvmpamwgxvmyd79ygj6n3bnbl3vc7b6h1sxz58186sm3pfs"))))
22109 (build-system gnu-build-system)
22110 (arguments
22111 (list
22112 #:tests? #f ;Tests require node.
22113 #:phases
22114 #~(modify-phases %standard-phases
22115 (delete 'configure) ;There is no configure phase.
22116 (replace 'install
22117 (lambda _
22118 (let ((bin (string-append #$output "/bin"))
22119 (include (string-append #$output "/include")))
22120 ;; TODO: There are Python modules for these programs too.
22121 (install-file "multichoose" bin)
22122 (install-file "multipermute" bin)
22123 (install-file "multichoose.h" include)
22124 (install-file "multipermute.h" include)))))))
22125 (home-page "https://github.com/ekg/multichoose")
22126 (synopsis "Efficient loopless multiset combination generation algorithm")
22127 (description "This library implements an efficient loopless multiset
22128combination generation algorithm which is (approximately) described in
22129\"Loopless algorithms for generating permutations, combinations, and other
22130combinatorial configurations.\", G. Ehrlich - Journal of the ACM (JACM),
221311973. (Algorithm 7.)")
22132 (license license:expat)))
22133
22134(define-public fastahack
22135 (package
22136 (name "fastahack")
22137 (version "1.0.0")
22138 (source (origin
22139 (method git-fetch)
22140 (uri (git-reference
22141 (url "https://github.com/ekg/fastahack/")
22142 (commit (string-append "v" version))))
22143 (file-name (git-file-name name version))
22144 (sha256
22145 (base32 "0rp1blskhzxf7vbh253ibpxbgl9wwgyzf1wbkxndi08d3j4vcss9"))))
22146 (build-system gnu-build-system)
22147 (arguments
22148 (list #:make-flags #~(list (string-append "CXX=" #$(cxx-for-target)))
22149 ;; Unclear how to run tests: https://github.com/ekg/fastahack/issues/15
22150 #:tests? #f
22151 #:phases
22152 #~(modify-phases %standard-phases
22153 (delete 'configure) ; There is no configure phase.
22154 (add-after 'unpack 'patch-source
22155 (lambda _
22156 (substitute* "Makefile"
22157 (("-c ") "-c -fPIC "))))
22158 (add-after 'build 'build-dynamic
22159 (lambda _
22160 (invoke #$(cxx-for-target)
22161 "-shared" "-o" "libfastahack.so"
22162 "Fasta.o" "FastaHack.o" "split.o" "disorder.o")))
22163 (replace 'install
22164 (lambda* (#:key outputs #:allow-other-keys)
22165 (let* ((out (assoc-ref outputs "out"))
22166 (lib (string-append out "/lib"))
22167 (bin (string-append out "/bin")))
22168 (mkdir-p (string-append out "/include/fastahack"))
22169 (for-each
22170 (lambda (file)
22171 (install-file file (string-append out "/include/fastahack")))
22172 (find-files "." "\\.h$"))
22173 (install-file "fastahack" bin)
22174 (install-file "libfastahack.so" lib)
22175 (mkdir-p (string-append lib "/pkgconfig"))
22176 (with-output-to-file (string-append lib "/pkgconfig/fastahack.pc")
22177 (lambda _
22178 (format #t "prefix=~a~@
22179 exec_prefix=${prefix}~@
22180 libdir=${exec_prefix}/lib~@
22181 includedir=${prefix}/include/fastahack~@
22182 ~@
22183 ~@
22184 Name: fastahack~@
22185 Version: ~a~@
22186 Description: Indexing and sequence extraction from FASTA files~@
22187 Libs: -L${libdir} -lfastahack~@
22188 Cflags: -I${includedir}~%"
22189 out #$version)))))))))
22190 (home-page "https://github.com/ekg/fastahack")
22191 (synopsis "Indexing and sequence extraction from FASTA files")
22192 (description "Fastahack is a small application for indexing and
22193extracting sequences and subsequences from FASTA files. The included library
22194provides a FASTA reader and indexer that can be embedded into applications
22195which would benefit from directly reading subsequences from FASTA files. The
22196library automatically handles index file generation and use.")
22197 (license (list license:expat license:gpl2))))
22198
22199(define-public samblaster
22200 (package
22201 (name "samblaster")
22202 (version "0.1.26")
22203 (source (origin
22204 (method git-fetch)
22205 (uri (git-reference
22206 (url "https://github.com/GregoryFaust/samblaster")
22207 (commit (string-append "v." version))))
22208 (file-name (git-file-name name version))
22209 (sha256
22210 (base32
22211 "0g24fq5hplnfgqkh3xqpg3lgx3wmxwnh9c7m6yw7pbi40lmgl1jv"))))
22212 (build-system gnu-build-system)
22213 (arguments
22214 (list
22215 #:tests? #f ;there are none
22216 #:phases
22217 #~(modify-phases %standard-phases
22218 (delete 'configure) ;There is no configure phase.
22219 (replace 'install
22220 (lambda _
22221 (install-file "samblaster" (string-append #$output "/bin")))))))
22222 (home-page "https://github.com/GregoryFaust/samblaster")
22223 (synopsis "Mark duplicates in paired-end SAM files")
22224 (description "Samblaster is a fast and flexible program for marking
22225duplicates in read-id grouped paired-end SAM files. It can also optionally
22226output discordant read pairs and/or split read mappings to separate SAM files,
22227and/or unmapped/clipped reads to a separate FASTQ file. When marking
22228duplicates, samblaster will require approximately 20MB of memory per 1M read
22229pairs.")
22230 (license license:expat)))
22231
22232(define-public r-hdf5dataframe
22233 (let ((commit "61c52cb4ee940e623363ac7fdaa67766ed6947fa")
22234 (revision "1"))
22235 (package
22236 (name "r-hdf5dataframe")
22237 (version (git-version "0.99.3" revision commit))
22238 (source
22239 (origin
22240 (method git-fetch)
22241 (uri (git-reference
22242 (url "https://github.com/BIMSBbioinfo/HDF5DataFrame")
22243 (commit commit)))
22244 (file-name (git-file-name name version))
22245 (sha256
22246 (base32 "0awd2q5q2rh0lmls0cb5shhi20cs82jc43gphfhx10fwrc4cfmrg"))))
22247 (properties `((upstream-name . "HDF5DataFrame")))
22248 (build-system r-build-system)
22249 (propagated-inputs (list r-biocgenerics
22250 r-delayedarray
22251 r-h5mread
22252 r-hdf5array
22253 r-rhdf5
22254 r-s4vectors))
22255 (native-inputs (list r-knitr r-testthat))
22256 (home-page "https://github.com/BIMSBbioinfo/HDF5DataFrame")
22257 (synopsis "HDF5-backed DataFrame objects and methods")
22258 (description
22259 "This package implements bindings for h5 files that are compatible with
22260Bioconductor S4 data structures, namely the @code{DataFrame} and
22261@code{DelayedArray}. This allows HDF5-backed data to be easily used as data
22262frames with arbitrary sets of columns.")
22263 (license license:expat))))
22264
22265(define-public r-imagearray
22266 (package
22267 (name "r-imagearray")
22268 (version "1.0.0")
22269 (source
22270 (origin
22271 (method url-fetch)
22272 (uri (bioconductor-uri "ImageArray" version))
22273 (sha256
22274 (base32 "07zq5fcw2dsvm4qaksaj4gy9gj5lxcgq82l497c5kgvl4wba049c"))))
22275 (properties `((upstream-name . "ImageArray")))
22276 (build-system r-build-system)
22277 (arguments
22278 (list
22279 #:skipped-tests
22280 ;; RBiomFormats is not installed.
22281 '(("test-array.R" "check indexing \\(BFArray\\)"))))
22282 (propagated-inputs (list r-delayedarray
22283 r-ebimage
22284 r-hdf5array
22285 r-magick
22286 r-rarr
22287 r-rhdf5
22288 r-s4arrays
22289 r-s4vectors
22290 r-zarrarray))
22291 (native-inputs (list r-ggplot2 r-knitr r-testthat))
22292 (home-page "https://github.com/BIMSBbioinfo/ImageArray")
22293 (synopsis "Framework for on-disk and in-memory image arrays")
22294 (description
22295 "@code{ImageArray} provides a framework for on-disk and in-memory image
22296arrays, specifically for pyramidal images stored in HDF5, Zarr and life
22297sciences image file formats (OME Bio-Formats).")
22298 (license license:expat)))
22299
22300(define-public r-velocyto
22301 (let ((commit "d7790346cb99f49ab9c2b23ba70dcf9d2c9fc350")
22302 (revision "1"))
22303 (package
22304 (name "r-velocyto")
22305 (version (git-version "0.6" revision commit))
22306 (source
22307 (origin
22308 (method git-fetch)
22309 (uri (git-reference
22310 (url "https://github.com/velocyto-team/velocyto.R")
22311 (commit commit)))
22312 (file-name (git-file-name name version))
22313 (sha256
22314 (base32
22315 "16wqf70j7rd7pay2q513iyz12i8n9vrpg1bisah4lddbcpx5dz1n"))))
22316 (build-system r-build-system)
22317 (inputs
22318 (list boost-1.83))
22319 (propagated-inputs
22320 (list r-hdf5r
22321 r-mass
22322 r-mgcv
22323 r-pcamethods
22324 r-rcpp
22325 r-rcpparmadillo
22326 ;; Suggested packages
22327 r-rtsne
22328 r-cluster
22329 r-abind
22330 r-biocgenerics
22331 r-genomicalignments
22332 r-rsamtools
22333 r-edger
22334 r-igraph))
22335 (home-page "https://velocyto.org")
22336 (synopsis "RNA velocity estimation in R")
22337 (description
22338 "This package provides basic routines for estimation of gene-specific
22339transcriptional derivatives and visualization of the resulting velocity
22340patterns.")
22341 (license license:gpl3))))
22342
22343(define-public r-voltronstore
22344 (let ((commit "781a75ae73571a3a20387cdbf647f23184324a84")
22345 (revision "1"))
22346 (package
22347 (name "r-voltronstore")
22348 (version (git-version "0.1.1" revision commit))
22349 (source
22350 (origin
22351 (method git-fetch)
22352 (uri (git-reference
22353 (url "https://github.com/BIMSBbioinfo/VoltRonStore")
22354 (commit commit)))
22355 (file-name (git-file-name name version))
22356 (sha256
22357 (base32 "19mi9bbvym6jzlqnyqmzy83fv3wpj1jxq2np71j77l7sf1788cwj"))))
22358 (properties `((upstream-name . "VoltRonStore")))
22359 (build-system r-build-system)
22360 (propagated-inputs (list r-basilisk
22361 r-biocparallel
22362 r-bpcells
22363 r-delayedarray
22364 r-delayedmatrixstats
22365 r-hdf5array
22366 r-hdf5dataframe
22367 r-imagearray
22368 r-rarr
22369 r-reticulate
22370 r-rhdf5
22371 r-zarrdataframe))
22372 (home-page "https://github.com/BIMSBbioinfo/VoltRonStore")
22373 (synopsis "On-Disk support and dependancies for VoltRon")
22374 (description
22375 "@code{VoltRonStore} provides utilities and a resource for installing
22376dependencies of @code{VoltRon} package.")
22377 (license license:expat))))
22378
22379(define-public r-voltron
22380 (package
22381 (name "r-voltron")
22382 (version "0.2.6")
22383 (source
22384 (origin
22385 (method git-fetch)
22386 (uri (git-reference
22387 (url "https://github.com/BIMSBbioinfo/VoltRon")
22388 (commit (string-append "v" version))))
22389 (file-name (git-file-name name version))
22390 (sha256
22391 (base32 "00fl5dmyd9ad4hd0cblgi0415sf6q4q67wh04r7fws828vs5vaj1"))))
22392 (properties `((upstream-name . "VoltRon")))
22393 (build-system r-build-system)
22394 (arguments
22395 (list
22396 #:skipped-tests
22397 '(("test_conversion.R"
22398 ;; These fail to raise an error because of our patch in the
22399 ;; 'do-not-use-conda phase, which falls back to Python from Guix.
22400 "as.AnnData, python path"
22401 "as.ometiff, python path"))
22402 #:phases
22403 #~(modify-phases %standard-phases
22404 ;; By default VoltRon will use Basilisk, which uses Conda to set
22405 ;; up a Python environment. We override the fallback default
22406 ;; here. Users can still override the location of the Python
22407 ;; interpreter with the option "voltron.python.path".
22408 (add-after 'unpack 'do-not-use-conda
22409 (lambda* (#:key inputs #:allow-other-keys)
22410 (substitute* "R/conversion.R"
22411 (("return\\(NULL\\)")
22412 (string-append
22413 "source(paste0(system.file(package=\"VoltRon\"), \"/guix-refs.R\"));\n"
22414 "return(guix_python);")))))
22415 ;; We do this outside of the source code to ensure that
22416 ;; references are accessible to Guix.
22417 (add-after 'install 'record-python-reference
22418 (lambda* (#:key inputs #:allow-other-keys)
22419 (mkdir-p (string-append #$output "/site-library/VoltRon/"))
22420 (call-with-output-file (string-append #$output "/site-library/VoltRon/guix-refs.R")
22421 (lambda (port)
22422 (format port "\
22423Sys.setenv(GUIX_PYTHONPATH=\"~a\");
22424guix_python <- \"~a\";"
22425 (getenv "GUIX_PYTHONPATH")
22426 (search-input-file inputs "/bin/python3")))))))))
22427 (inputs
22428 (list opencv
22429 ;; These Python inputs are used via reticulate.
22430 python-wrapper
22431 python-numpy
22432 python-pandas
22433 python-anndata
22434 python-h5py
22435 python-natsort
22436 python-numcodecs
22437 python-packaging
22438 python-scipy
22439 python-tifffile
22440 python-zarr
22441 which ;tests/testthat/test_conversion.R
22442 zlib))
22443 (propagated-inputs (list r-biocsingular
22444 r-data-table
22445 r-dplyr
22446 r-ebimage
22447 r-ggplot2
22448 r-ggpubr
22449 r-ggrepel
22450 r-ids
22451 r-igraph
22452 r-irlba
22453 r-magick
22454 r-matrix
22455 r-rann
22456 r-rcdt
22457 r-rcpp
22458 r-rcppannoy
22459 r-rcpparmadillo
22460 r-rjson
22461 r-rlang
22462 r-s4arrays
22463 r-s4vectors
22464 r-shiny
22465 r-shinyjs
22466 r-sp
22467 r-stringr
22468 r-uwot
22469
22470 ;; Suggested packages
22471 r-anndata
22472 r-anndatar
22473 r-arrow
22474 r-bpcells
22475 r-circlize
22476 r-codetools
22477 r-complexheatmap
22478 r-delayedarray
22479 r-deseq2
22480 r-geojsonr
22481 r-ggforce
22482 r-ggnewscale
22483 r-giotto
22484 r-glmgampoi
22485 r-hdf5array
22486 r-hdf5dataframe
22487 r-imagearray
22488 r-music
22489 r-rhdf5
22490 r-rstudioapi
22491 r-s4vectors
22492 r-seurat
22493 r-seuratobject
22494 r-singlecellexperiment
22495 r-spacexr
22496 r-spatialexperiment
22497 r-summarizedexperiment
22498 r-viridislite
22499 r-vitesscer
22500 r-voltronstore
22501 r-xml
22502 r-zarrdataframe
22503 simpleitk))
22504 (native-inputs (list pkg-config r-testthat))
22505 (home-page "https://github.com/BIMSBbioinfo/VoltRon")
22506 (synopsis "VoltRon for spatial data integration and analysis")
22507 (description
22508 "@code{VoltRon} is a novel spatial omic analysis toolbox for
22509multi-omics integration using spatial image registration. @code{VoltRon} is
22510capable of analyzing multiple types and modalities of spatially-aware
22511datasets. @code{VoltRon} visualizes and analyzes regions of interests (ROIs),
22512spots, cells and even molecules.")
22513 (license license:expat)))
22514
22515(define-public r-zarrdataframe
22516 (let ((commit "f5f671521934b2afc3c511f8c09181bc7bb789a4")
22517 (revision "3"))
22518 (package
22519 (name "r-zarrdataframe")
22520 (version (git-version "0.0.0" revision commit))
22521 (source
22522 (origin
22523 (method git-fetch)
22524 (uri (git-reference
22525 (url "https://github.com/BIMSBbioinfo/ZarrDataFrame")
22526 (commit commit)))
22527 (file-name (git-file-name name version))
22528 (sha256
22529 (base32 "0klp2njn6qsa8n6c01v1z2dfaa93lhbzhwhbyhl23h8gg7d28yc1"))))
22530 (properties
22531 '((upstream-name . "ZarrDataFrame")
22532 (updater-extra-native-inputs . ("r-testthat"))))
22533 (build-system r-build-system)
22534 (propagated-inputs (list r-biocgenerics r-delayedarray r-rarr
22535 r-s4vectors r-zarrarray))
22536 (native-inputs (list r-knitr r-testthat))
22537 (home-page "https://github.com/BIMSBbioinfo/ZarrDataFrame")
22538 (synopsis "Bioconductor-friendly Bindings for Zarr")
22539 (description
22540 "This package implements bindings for zarr store that are compatible
22541with Bioconductor S4 data structures, namely the @code{DataFrame} and
22542@code{DelayedArray}. This allows Zarr-backed data to be easily used as data
22543frames with arbitrary sets of columns.")
22544 (license license:expat))))
22545
22546(define-public r-zarrarray
22547 (package
22548 (name "r-zarrarray")
22549 (version "1.0.0")
22550 (source
22551 (origin
22552 (method url-fetch)
22553 (uri (bioconductor-uri "ZarrArray" version))
22554 (sha256
22555 (base32 "1ny91qg257kgb1hz2h4jvb0rna9cwyw7fqyj5axv52r3b98xn040"))))
22556 (properties `((upstream-name . "ZarrArray")))
22557 (build-system r-build-system)
22558 (propagated-inputs (list r-biocgenerics
22559 r-delayedarray
22560 r-iranges
22561 r-rarr
22562 r-s4arrays
22563 r-s4vectors
22564 r-sparsearray))
22565 (native-inputs (list r-knitr r-testthat))
22566 (home-page "https://bioconductor.org/packages/ZarrArray")
22567 (synopsis "Bring Zarr datasets in R as DelayedArray objects")
22568 (description
22569 "The @code{ZarrArray} package leverages the Rarr package to bring Zarr
22570datasets in R as @code{DelayedArray} objects. The main class in the package
22571is the @code{ZarrArray} class. A @code{ZarrArray} object is an array-like
22572object that represents a Zarr dataset in R. @code{ZarrArray} objects are
22573@code{DelayedArray} derivatives and therefore support all operations (delayed
22574or block-processed) supported by @code{DelayedArray} objects.")
22575 (license license:artistic2.0)))
22576
22577(define-public methyldackel
22578 (package
22579 (name "methyldackel")
22580 (version "0.6.1")
22581 (source (origin
22582 (method git-fetch)
22583 (uri (git-reference
22584 (url "https://github.com/dpryan79/MethylDackel")
22585 (commit version)))
22586 (file-name (git-file-name name version))
22587 (sha256
22588 (base32
22589 "06kj76pyhzxfcjcpm840a3km3fa9994kfq4asglnb228pwak326z"))))
22590 (build-system gnu-build-system)
22591 (arguments
22592 (list
22593 #:test-target "test"
22594 #:make-flags
22595 #~(list "CC=gcc"
22596 "CFLAGS=-fcommon"
22597 "LIBBIGWIG=-lBigWig"
22598 (string-append "prefix=" #$output "/bin/"))
22599 #:phases
22600 '(modify-phases %standard-phases
22601 (replace 'configure
22602 (lambda _
22603 (substitute* "Makefile"
22604 (("install MethylDackel \\$\\(prefix\\)" match)
22605 (string-append "install -d $(prefix); " match))))))))
22606 (inputs
22607 (list curl htslib libbigwig zlib))
22608 ;; Needed for tests
22609 (native-inputs
22610 (list python-wrapper))
22611 (home-page "https://github.com/dpryan79/MethylDackel")
22612 (synopsis "Universal methylation extractor for BS-seq experiments")
22613 (description
22614 "MethylDackel will process a coordinate-sorted and indexed BAM or CRAM
22615file containing some form of BS-seq alignments and extract per-base
22616methylation metrics from them. MethylDackel requires an indexed fasta file
22617containing the reference genome as well.")
22618 ;; See https://github.com/dpryan79/MethylDackel/issues/85
22619 (license license:expat)))
22620
22621(define-public phast
22622 (package
22623 (name "phast")
22624 (version "1.9.9")
22625 (source
22626 (origin
22627 (method git-fetch)
22628 (uri (git-reference
22629 (url "https://github.com/CshlSiepelLab/phast")
22630 (commit (string-append "v" version))))
22631 (file-name (git-file-name name version))
22632 (sha256
22633 (base32 "0j8mgb833i1d0bl5faaxn087z2bjghqvdixwrgjr2hgpcwnd42ki"))))
22634 (build-system cmake-build-system)
22635 (arguments
22636 (list
22637 #:phases
22638 #~(modify-phases %standard-phases
22639 (delete 'check)
22640 (add-after 'install 'post-install-check
22641 (lambda* (#:key tests? inputs outputs #:allow-other-keys)
22642 (when tests?
22643 (with-directory-excursion "../source"
22644 (setenv "PATH" (string-append #$output "/bin" ":"
22645 (getenv "PATH")))
22646 ;; Only run the msa_view tests because the others fail for
22647 ;; unknown reasons.
22648 (invoke "make" "-C" "test" "msa_view"))))))))
22649 (inputs
22650 (list lapack pcre))
22651 (native-inputs
22652 (list perl))
22653 (home-page "http://compgen.cshl.edu/phast/")
22654 (synopsis "Phylogenetic analysis with space/time models")
22655 (description
22656 "Phylogenetic Analysis with Space/Time models (PHAST) is a collection of
22657command-line programs and supporting libraries for comparative and
22658evolutionary genomics. Best known as the search engine behind the
22659Conservation tracks in the University of California, Santa Cruz (UCSC) Genome
22660Browser, PHAST also includes several tools for phylogenetic modeling,
22661functional element identification, as well as utilities for manipulating
22662alignments, trees and genomic annotations.")
22663 (license license:bsd-3)))
22664
22665(define-public python-gffutils
22666 (package
22667 (name "python-gffutils")
22668 (version "0.13")
22669 (source
22670 (origin
22671 (method git-fetch)
22672 (uri (git-reference
22673 (url "https://github.com/daler/gffutils")
22674 (commit (string-append "v" version))))
22675 (file-name (git-file-name name version))
22676 (sha256
22677 (base32
22678 "148i7bk5bawrz19jp3nl0z859wdlldgrw8f0aw9wsprj8s3d713a"))))
22679 (build-system pyproject-build-system)
22680 (arguments
22681 (list
22682 ;; Failed: 'yield' keyword is allowed in fixtures, but not in tests
22683 ;; (test_region)
22684 #:test-flags #~(list "--ignore=gffutils/test/test_1.py")
22685 #:phases
22686 #~(modify-phases %standard-phases
22687 (add-before 'build 'set-HOME
22688 (lambda _
22689 ;; FileNotFoundError: [Errno 2] No such file or directory:
22690 ;; '/homeless-shelter/.gffutils.test'
22691 (setenv "HOME" "/tmp"))))))
22692 (native-inputs
22693 (list python-pytest python-setuptools))
22694 (propagated-inputs
22695 (list python-argcomplete
22696 python-argh
22697 python-biopython
22698 python-pybedtools
22699 python-pyfaidx
22700 python-simplejson))
22701 (home-page "https://github.com/daler/gffutils")
22702 (synopsis "Tool for manipulation of GFF and GTF files")
22703 (description
22704 "python-gffutils is a Python package for working with and manipulating
22705the GFF and GTF format files typically used for genomic annotations. The
22706files are loaded into a SQLite database, allowing much more complex
22707manipulation of hierarchical features (e.g., genes, transcripts, and exons)
22708than is possible with plain-text methods alone.")
22709 (license license:expat)))
22710
22711(define-public indelfixer
22712 (package
22713 (name "indelfixer")
22714 (version "1.1")
22715 (source (origin
22716 (method git-fetch)
22717 (uri (git-reference
22718 (url "https://github.com/cbg-ethz/InDelFixer/")
22719 (commit (string-append "v" version))))
22720 (file-name (git-file-name name version))
22721 (sha256
22722 (base32
22723 "10ak05x8i1bx2p7rriv2rglqg1wr7c8wrhjrqlq1wm7ka99w8i79"))))
22724 (build-system ant-build-system)
22725 (arguments
22726 `(#:jar-name "InDelFixer.jar"
22727 #:source-dir "src/main/java"
22728 #:test-dir "src/test"))
22729 (inputs
22730 (list java-args4j java-commons-lang))
22731 (native-inputs
22732 (list java-junit))
22733 (home-page "https://github.com/cbg-ethz/InDelFixer/")
22734 (synopsis "Iterative and sensitive NGS sequence aligner")
22735 (description "InDelFixer is a sensitive aligner for 454, Illumina and
22736PacBio data, employing a full Smith-Waterman alignment against a reference.
22737This Java command line application aligns Next-Generation Sequencing (NGS) and
22738third-generation reads to a set of reference sequences, by a prior fast k-mer
22739matching and removes indels, causing frame shifts. In addition, only a
22740specific region can be considered. An iterative refinement of the alignment
22741can be performed, by alignment against the consensus sequence with wobbles.
22742The output is in SAM format.")
22743 (license license:gpl3+)))
22744
22745(define-public libsbml
22746 (package
22747 (name "libsbml")
22748 (version "5.20.5")
22749 (source (origin
22750 (method git-fetch)
22751 (uri (git-reference
22752 (url "https://github.com/sbmlteam/libsbml")
22753 (commit (string-append "v" version))))
22754 (file-name (git-file-name name version))
22755 (sha256
22756 (base32
22757 "1bzsgwblh5l15xxy7kpdwiya5kwm26sj6daqr9i93h04manpqmfw"))))
22758 (build-system cmake-build-system)
22759 (arguments
22760 `(#:configure-flags
22761 ,#~(list "-DWITH_CHECK=ON"
22762 (string-append "-DLIBXML_LIBRARY="
22763 #$(this-package-input "libxml2")
22764 "/lib/libxml2.so")
22765 (string-append "-DLIBXML_INCLUDE_DIR="
22766 #$(this-package-input "libxml2")
22767 "/include/libxml2"))))
22768 (propagated-inputs
22769 (list libxml2))
22770 (native-inputs
22771 (list check swig-4.0))
22772 (home-page "https://sbml.org/Software/libSBML")
22773 (synopsis "Process SBML files and data streams")
22774 (description "LibSBML is a library to help you read, write, manipulate,
22775translate, and validate SBML files and data streams. The @dfn{Systems Biology
22776Markup Language} (SBML) is an interchange format for computer models of
22777biological processes. SBML is useful for models of metabolism, cell
22778signaling, and more. It continues to be evolved and expanded by an
22779international community.")
22780 (license license:lgpl2.1+)))
22781
22782(define-public kraken2
22783 (package
22784 (name "kraken2")
22785 (version "2.1.2")
22786 (source (origin
22787 (method git-fetch)
22788 (uri (git-reference
22789 (url "https://github.com/DerrickWood/kraken2")
22790 (commit (string-append "v" version))))
22791 (file-name (git-file-name name version))
22792 (sha256
22793 (base32
22794 "1pl6ml1ldg2hnhy8ps56q0fl1wq3g91qkhinj6pb4yjjhv1rxsjf"))))
22795 (build-system gnu-build-system)
22796 (arguments
22797 `(#:tests? #false ; there are none
22798 #:make-flags
22799 ,#~(list "-C" "src"
22800 (string-append "KRAKEN2_DIR=" #$output "/bin"))
22801 #:phases
22802 (modify-phases %standard-phases
22803 (delete 'configure)
22804 (add-before 'install 'install-scripts
22805 (lambda* (#:key outputs #:allow-other-keys)
22806 (let* ((bin (string-append (assoc-ref outputs "out") "/bin"))
22807 (replacements `(("KRAKEN2_DIR" . ,bin)
22808 ("VERSION" . ,,version))))
22809 (mkdir-p bin)
22810
22811 (with-directory-excursion "scripts"
22812 (let ((scripts (find-files "." ".*")))
22813 (substitute* scripts
22814 (("#####=([^=]+)=#####" _ key)
22815 (or (assoc-ref replacements key)
22816 (error (format #false "unknown key: ~a~%" key)))))
22817 (substitute* "kraken2"
22818 (("compression_program = \"bzip2\"")
22819 (string-append "compression_program = \""
22820 (which "bzip2")
22821 "\""))
22822 (("compression_program = \"gzip\"")
22823 (string-append "compression_program = \""
22824 (which "gzip")
22825 "\"")))
22826 (substitute* '("download_genomic_library.sh"
22827 "download_taxonomy.sh"
22828 "16S_gg_installation.sh"
22829 "16S_silva_installation.sh"
22830 "16S_rdp_installation.sh")
22831 (("wget") (which "wget")))
22832 (substitute* '("download_taxonomy.sh"
22833 "download_genomic_library.sh"
22834 "rsync_from_ncbi.pl")
22835 (("rsync -")
22836 (string-append (which "rsync") " -")))
22837 (substitute* "mask_low_complexity.sh"
22838 (("which") (which "which")))
22839 (substitute* '("mask_low_complexity.sh"
22840 "download_genomic_library.sh"
22841 "16S_silva_installation.sh")
22842 (("sed -e ")
22843 (string-append (which "sed") " -e ")))
22844 (substitute* '("rsync_from_ncbi.pl"
22845 "16S_rdp_installation.sh"
22846 "16S_silva_installation.sh"
22847 "16S_gg_installation.sh"
22848 "download_taxonomy.sh"
22849 "download_genomic_library.sh")
22850 (("gunzip") (which "gunzip")))
22851 (for-each (lambda (script)
22852 (chmod script #o555)
22853 (install-file script bin))
22854 scripts)))))))))
22855 (inputs
22856 (list gzip
22857 perl
22858 rsync
22859 sed
22860 wget
22861 which))
22862 (home-page "https://github.com/DerrickWood/kraken2")
22863 (synopsis "Taxonomic sequence classification system")
22864 (description "Kraken is a taxonomic sequence classifier that assigns
22865taxonomic labels to DNA sequences. Kraken examines the k-mers within a query
22866sequence and uses the information within those k-mers to query a
22867database. That database maps k-mers to the lowest common ancestor (LCA) of all
22868genomes known to contain a given k-mer.")
22869 (license license:expat)))
22870
22871(define-public lofreq
22872 (package
22873 (name "lofreq")
22874 (version "2.1.5")
22875 (source (origin
22876 (method git-fetch)
22877 (uri (git-reference
22878 (url "https://github.com/CSB5/lofreq")
22879 (commit (string-append "v" version))))
22880 (file-name (git-file-name name version))
22881 (sha256
22882 (base32
22883 "0qssrn3mgjak7df6iqc1rljqd3g3a5syvg0lsv4vds43s3fq23bl"))))
22884 (build-system gnu-build-system)
22885 (arguments
22886 '(#:test-target "bug-tests"
22887 #:tests? #false ;test data are not included
22888 #:phases
22889 (modify-phases %standard-phases
22890 (add-after 'unpack 'set-source-file-times-to-1980
22891 (lambda _
22892 (let ((circa-1980 (* 10 366 24 60 60)))
22893 (for-each (lambda (file)
22894 (let ((s (lstat file)))
22895 (unless (eq? (stat:type s) 'symlink)
22896 (utime file circa-1980 circa-1980))))
22897 (find-files "." #:directories? #t))))))))
22898 (inputs
22899 (list htslib python-wrapper zlib))
22900 (native-inputs
22901 (list autoconf automake python-setuptools which))
22902 (home-page "https://csb5.github.io/lofreq/")
22903 (synopsis "Sensitive variant calling from sequencing data")
22904 (description "LoFreq is a fast and sensitive variant-caller for inferring
22905SNVs and indels from next-generation sequencing data. It makes full use of
22906base-call qualities and other sources of errors inherent in
22907sequencing (e.g. mapping or base/indel alignment uncertainty), which are
22908usually ignored by other methods or only used for filtering.")
22909 (license license:expat)))
22910
22911(define-public louvain
22912 (package
22913 (name "louvain")
22914 (version "0.2")
22915 (source (origin
22916 (method url-fetch)
22917 (uri "mirror://sourceforge/louvain/louvain_latest.tar.gz")
22918 (sha256
22919 (base32
22920 "0hqlv5jqc889nbv7j1bchrx4zhh69hgr2mqvfdygc7kwrywn22lb"))))
22921 (build-system gnu-build-system)
22922 (arguments
22923 (list
22924 #:tests? #false ;there are none
22925 #:phases
22926 #~(modify-phases %standard-phases
22927 (delete 'configure)
22928 (add-after 'unpack 'patch-includes
22929 (lambda _
22930 (substitute* "main_community.cpp"
22931 (("using namespace std;" m)
22932 (string-append "#include <unistd.h> /* for getpid */\n" m)))))
22933 (replace 'install
22934 (lambda _
22935 (for-each
22936 (lambda (exe)
22937 (install-file exe (string-append #$output "/bin")))
22938 '("convert" "community" "hierarchy")))))))
22939 (home-page "https://sourceforge.net/projects/louvain/")
22940 (synopsis "Multi-criteria community detection")
22941 (description "This package offers a set of functions to use in order to
22942compute communities on graphs weighted or unweighted.")
22943 (license license:gpl3+)))
22944
22945(define-public ivar
22946 (package
22947 (name "ivar")
22948 (version "1.4.4")
22949 (source (origin
22950 (method git-fetch)
22951 (uri (git-reference
22952 (url "https://github.com/andersen-lab/ivar")
22953 (commit (string-append "v" version))))
22954 (file-name (git-file-name name version))
22955 (sha256
22956 (base32
22957 "1bwygjv81m4yv5ycxb5gx22k6njgwrzzs7jrsadq6363klcv4irh"))))
22958 (build-system gnu-build-system)
22959 (arguments
22960 (list
22961 #:parallel-tests? #false ;not supported
22962 #:phases
22963 '(modify-phases %standard-phases
22964 (add-after 'unpack 'patch-CXXFLAGS
22965 (lambda _
22966 (substitute* '("src/Makefile.am"
22967 "tests/Makefile.am")
22968 (("-Werror") "")))))))
22969 (inputs
22970 (list htslib zlib))
22971 (native-inputs
22972 (list autoconf automake))
22973 (home-page "https://andersen-lab.github.io/ivar/html/")
22974 (synopsis "Tools for amplicon-based sequencing")
22975 (description "iVar is a computational package that contains functions
22976broadly useful for viral amplicon-based sequencing.")
22977 (license license:gpl3+)))
22978
22979(define-public python-pyliftover
22980 (package
22981 (name "python-pyliftover")
22982 (version "0.4")
22983 ;; The version of pypi does not include test data.
22984 (source
22985 (origin
22986 (method git-fetch)
22987 (uri (git-reference
22988 (url "https://github.com/konstantint/pyliftover")
22989 (commit version)))
22990 (file-name (git-file-name name version))
22991 (sha256
22992 (base32 "1j8jp9iynv2l3jv5pr0pn0p3azlama1bqg233piglzm6bqh3m2m3"))))
22993 (build-system pyproject-build-system)
22994 (arguments
22995 `(#:tests? #f)) ;the tests access the web
22996 (native-inputs (list python-pytest python-setuptools))
22997 (home-page "https://github.com/konstantint/pyliftover")
22998 (synopsis
22999 "Python implementation of UCSC liftOver genome coordinate conversion")
23000 (description
23001 "PyLiftover is a library for quick and easy conversion of genomic (point)
23002coordinates between different assemblies.")
23003 (license license:expat)))
23004
23005(define-public python-cgatcore
23006 (package
23007 (name "python-cgatcore")
23008 (version "0.6.16")
23009 ;; The version of pypi does not include test data.
23010 (source (origin
23011 (method git-fetch)
23012 (uri (git-reference
23013 (url "https://github.com/cgat-developers/cgat-core")
23014 (commit (string-append "v" version))))
23015 (file-name (git-file-name name version))
23016 (sha256
23017 (base32
23018 "0kvfb6fpfncdfb8wjmn7n2vmqk3wd7sdrfw1rhlihfdxbfzb5fa8"))))
23019 (build-system pyproject-build-system)
23020 (arguments
23021 (list
23022 #:test-flags
23023 ;; Failed: 'yield' keyword is allowed in fixtures, but not in tests
23024 ;; (test_import)
23025 '(list "--ignore=tests/test_import.py"
23026 "-k"
23027 (string-append
23028 ;; This test actually does what it should, but the check fails with
23029 ;; TypeError: cannot unpack non-iterable Namespace object
23030 "not test_start_and_stop_are_logged_with_argparse"
23031 ;; These all attempt to connect to localhost with SSH
23032 " and not test_job_should_use_TMPDIR_and_clean_up"
23033 " and not test_job_should_use_TMPDIR_and_clean_up_after_fail"
23034 " and not test_job_should_write_to_explicit_temp_and_not_clean_up"))
23035 #:phases
23036 '(modify-phases %standard-phases
23037 (add-after 'unpack 'fix-references
23038 (lambda _
23039 (substitute* "cgatcore/pipeline/execution.py"
23040 (("#!/bin/bash") (string-append "#!" (which "bash")))
23041 (("executable=\"/bin/bash\"")
23042 (string-append "executable=\"" (which "bash") "\""))
23043 (("\\\\time") (which "time")))))
23044 (add-after 'unpack 'sqlite-compatibility
23045 (lambda _
23046 ;; Load apsw (and thus newer sqlite3) before importing Python's
23047 ;; older sqlite3 library.
23048 (substitute* "cgatcore/pipeline/__init__.py"
23049 (("import os")
23050 (string-append "import os\nimport apsw")))
23051 (substitute* "tests/template_pipeline.py"
23052 (("import sys" m)
23053 (string-append "import apsw\n" m))))))))
23054 (native-inputs
23055 (list inetutils
23056 lsof
23057 openssl
23058 python-pytest
23059 python-setuptools))
23060 (inputs (list time))
23061 (propagated-inputs
23062 (list python-apsw
23063 python-gevent
23064 python-pandas
23065 python-paramiko
23066 python-pyyaml
23067 python-ruffus
23068 python-sqlalchemy))
23069 (home-page "https://github.com/cgat-developers/cgat-core")
23070 (synopsis "Computational genomics analysis toolkit")
23071 (description
23072 "CGAT-core is a set of libraries and helper functions used to enable
23073researchers to design and build computational workflows for the analysis of
23074large-scale data-analysis.")
23075 (license license:expat)))
23076
23077(define-public perl-cworld-dekker
23078 (package
23079 (name "perl-cworld-dekker")
23080 (version "1.01")
23081 (source (origin
23082 (method git-fetch)
23083 (uri (git-reference
23084 (url "https://github.com/dekkerlab/cworld-dekker.git")
23085 (commit (string-append "v" version))))
23086 (file-name (git-file-name name version))
23087 (sha256
23088 (base32
23089 "1dvh23fx52m59y6304xi2j2pl2hiqadlqg8jyv2pm14j1hy71ych"))))
23090 (build-system perl-build-system)
23091 (arguments
23092 (list
23093 #:modules '((guix build perl-build-system)
23094 (guix build utils)
23095 (srfi srfi-26))
23096 #:phases
23097 #~(modify-phases %standard-phases
23098 (add-after 'unpack 'hardcode-references
23099 (lambda* (#:key inputs #:allow-other-keys)
23100 (let ((bedtools #$(this-package-input "bedtools"))
23101 (r #$(this-package-input "r-minimal")))
23102 (substitute* '("scripts/python/getEigenVectors.py"
23103 "scripts/python/matrix2EigenVectors.py")
23104 (("bedtools intersect")
23105 (string-append bedtools "/bin/bedtools intersect")))
23106 (substitute* "lib/cworld/dekker.pm"
23107 (("bedtools --version")
23108 (string-append bedtools "/bin/bedtools --version")))
23109 (substitute* '("scripts/perl/correlateMatrices.pl"
23110 "scripts/perl/matrix2scaling.pl"
23111 "scripts/perl/matrix2distance.pl"
23112 "scripts/perl/coverageCorrect.pl"
23113 "scripts/perl/matrix2anchorPlot.pl"
23114 "scripts/python/matrix2EigenVectors.py"
23115 "scripts/python/matrix2insulation-lite.py"
23116 "scripts/perl/matrix2compartment.pl"
23117 "scripts/perl/anchorPurge.pl"
23118 "scripts/perl/applyCorrection.pl"
23119 "scripts/perl/compareInsulation.pl"
23120 "scripts/perl/fillMissingData.pl"
23121 "scripts/perl/matrix2loess.pl"
23122 "scripts/python/getEigenVectors.py"
23123 "scripts/perl/aggregateBED.pl"
23124 "scripts/perl/collapseMatrix.pl"
23125 "scripts/perl/matrix2direction.pl"
23126 "scripts/perl/singletonRemoval.pl"
23127 "lib/cworld/dekker.pm"
23128 "scripts/perl/matrix2insulation.pl")
23129 (("(`|\")Rscript" _ pre)
23130 (string-append pre r "/bin/Rscript"))))))
23131 (add-after 'install 'install-scripts
23132 (lambda _
23133 (let ((share (string-append #$output "/share/cworld-dekker")))
23134 (mkdir-p share)
23135 (copy-recursively "scripts" share)
23136
23137 ;; Make all scripts executable and wrap them.
23138 (let ((r (find-files share "\\.R$"))
23139 (py (find-files share "\\.py$"))
23140 (pl (find-files share "\\.pl$"))
23141 (wrap (lambda* (script var #:optional (extra ""))
23142 (let ((path (string-append (getenv var)
23143 extra)))
23144 (wrap-program script
23145 `(,var ":" prefix (,path)))))))
23146 (for-each (cut chmod <> #o555) (append r py pl))
23147 (for-each (cut wrap <> "PERL5LIB"
23148 (string-append ":" #$output
23149 "/lib/perl5/site_perl"))
23150 pl)
23151 (for-each (cut wrap <> "GUIX_PYTHONPATH") py))))))))
23152 (inputs
23153 (list gd
23154 perl-gd
23155 bedtools
23156 python-wrapper
23157 python-scipy
23158 python-numpy
23159 python-matplotlib
23160 python-h5py
23161 python-scikit-learn
23162 r-minimal))
23163 (native-inputs
23164 (list perl-module-build))
23165 (home-page "https://github.com/dekkerlab/cworld-dekker")
23166 (synopsis "Utility and analysis scripts for 3C, 4C, 5C, and Hi-C data")
23167 (description "This package is a collection of Perl, Python, and R
23168scripts for manipulating 3C/4C/5C/Hi-C data.")
23169 (license license:asl2.0)))
23170
23171(define-public ensembl-vep
23172 (let* ((api-version "112")
23173 (api-module
23174 (lambda (name hash)
23175 (origin (method git-fetch)
23176 (uri (git-reference
23177 (url (string-append "https://github.com/Ensembl/"
23178 name ".git"))
23179 (commit (string-append "release/" api-version))))
23180 (file-name (string-append name "-" api-version "-checkout"))
23181 (sha256 (base32 hash))))))
23182 (package
23183 (name "ensembl-vep")
23184 (version api-version)
23185 (source
23186 (origin
23187 (method git-fetch)
23188 (uri (git-reference
23189 (url "https://github.com/Ensembl/ensembl-vep.git")
23190 (commit (string-append "release/" version))))
23191 (file-name (git-file-name name version))
23192 (sha256
23193 (base32
23194 "0nznmiln2q6bzd3xp8d5cw56higa5w3g9rmg66956bkfky53chvw"))))
23195 (build-system gnu-build-system)
23196 (arguments
23197 `(#:modules ((guix build gnu-build-system)
23198 (guix build utils)
23199 (ice-9 match))
23200 #:phases
23201 (modify-phases %standard-phases
23202 (delete 'configure)
23203 (delete 'build)
23204 ;; Tests need to run after installation
23205 (delete 'check)
23206 (replace 'install
23207 (lambda* (#:key inputs outputs #:allow-other-keys)
23208 (let* ((modules '(("ensembl" "/")
23209 ("ensembl-variation" "/Variation")
23210 ("ensembl-funcgen" "/Funcgen")
23211 ("ensembl-io" "/")))
23212 (scripts '(("convert_cache.pl" "vep_convert_cache.pl")
23213 ("INSTALL.pl" "vep_install.pl")
23214 ("haplo" #f)
23215 ("variant_recoder" #f)
23216 ("filter_vep" #f)
23217 ("vep" #f)))
23218 (out (assoc-ref outputs "out"))
23219 (bin (string-append out "/bin"))
23220 (perl (string-append out "/lib/perl5/site_perl")))
23221 (for-each
23222 (match-lambda
23223 ((name path)
23224 (let ((dir (string-append perl "/Bio/EnsEMBL" path)))
23225 (mkdir-p dir)
23226 (copy-recursively
23227 (string-append (assoc-ref inputs (string-append "api-module-" name))
23228 "/modules/Bio/EnsEMBL" path)
23229 dir))))
23230 modules)
23231 (copy-recursively "modules/" perl)
23232 (mkdir-p bin)
23233 (for-each
23234 (match-lambda
23235 ((script new-name)
23236 (let ((location (string-append bin "/"
23237 (or new-name (basename script)))))
23238 (copy-file script location)
23239 (chmod location #o555)
23240 (wrap-program location
23241 `("PERL5LIB" ":" prefix (,(getenv "PERL5LIB")
23242 ,perl))))))
23243 scripts)
23244
23245 ;; Fix path to tools
23246 (with-directory-excursion (string-append perl "/Bio/EnsEMBL")
23247 (substitute* '("Funcgen/RunnableDB/ProbeMapping/PrePipelineChecks.pm"
23248 "VEP/BaseRunner.pm"
23249 "VEP/Utils.pm"
23250 "VEP/AnnotationSource/Cache/VariationTabix.pm"
23251 "VEP/AnnotationSource/Cache/BaseSerialized.pm"
23252 "Variation/Utils/BaseVepTabixPlugin.pm"
23253 "Variation/Utils/VEP.pm"
23254 "Variation/Pipeline/ReleaseDataDumps/PreRunChecks.pm")
23255 (("`which")
23256 (string-append "`"
23257 (assoc-ref inputs "which")
23258 "/bin/which")))))))
23259 (add-after 'install 'check
23260 (lambda* (#:key tests? inputs outputs #:allow-other-keys)
23261 (when tests?
23262 (setenv "PERL5LIB"
23263 (string-append (getenv "PERL5LIB")
23264 ":"
23265 (assoc-ref outputs "out")
23266 "/lib/perl5/site_perl"))
23267 (copy-recursively (string-append (assoc-ref inputs "source") "/t")
23268 "/tmp/t")
23269 (for-each make-file-writable (find-files "/tmp/t"))
23270 ;; TODO: haplo needs Set/IntervalTree.pm
23271 (invoke "perl" "-e" (string-append "
23272use Test::Harness; use Test::Exception;
23273my $dirname = \"/tmp\";
23274opendir TEST, \"$dirname\\/t\";
23275my @test_files = map {\"$dirname\\/t\\/\".$_} grep {!/^\\./ && /\\.t$/} readdir TEST; closedir TEST;
23276@test_files = grep {!/Haplo/} @test_files;
23277runtests(@test_files);
23278"))))))))
23279 (inputs
23280 (list bioperl-minimal
23281 perl-bio-db-hts
23282 perl-dbi
23283 perl-dbd-mysql
23284 perl-libwww
23285 perl-list-moreutils
23286 perl-http-tiny
23287 perl-json
23288 which))
23289 (propagated-inputs
23290 (list kentutils))
23291 (native-inputs
23292 `(("unzip" ,unzip)
23293 ("perl" ,perl)
23294 ("api-module-ensembl"
23295 ,(api-module "ensembl"
23296 "10r576iqrz1p61mqbbfs87w4w3nldi45p51z52mq76f3n00l010h"))
23297 ("api-module-ensembl-variation"
23298 ,(api-module "ensembl-variation"
23299 "0ad03xnyyqpya1bkg6igq9abqxdmi58j89wn2kb3m4bvy1zs03mf"))
23300 ("api-module-ensembl-funcgen"
23301 ,(api-module "ensembl-funcgen"
23302 "1m3dxnr6k9x5hmcsxckpxlqx7vbc82lk74r84vcjijgxjkfa5rpp"))
23303 ("api-module-ensembl-io"
23304 ,(api-module "ensembl-io"
23305 "1xr6kdqqzmbi3m4bls589d1dfjvbs13dxlbf1y172xjyipvmag43"))
23306 ("perl-test-deep" ,perl-test-deep)
23307 ("perl-test-exception" ,perl-test-exception)
23308 ("perl-test-harness" ,perl-test-harness)
23309 ("perl-test-warnings" ,perl-test-warnings)))
23310 (home-page "http://www.ensembl.org/vep")
23311 (synopsis "Predict functional effects of genomic variants")
23312 (description
23313 "This package provides a Variant Effect Predictor, which predicts
23314the functional effects of genomic variants. It also provides
23315Haplosaurus, which uses phased genotype data to predict
23316whole-transcript haplotype sequences, and Variant Recoder, which
23317translates between different variant encodings.")
23318 (license license:asl2.0))))
23319
23320(define-public r-signac
23321 (let ((commit "f5a84118508d2f0d6b04bd7fd28ad7f3576de461")
23322 (revision "1"))
23323 (package
23324 (name "r-signac")
23325 (version (git-version "1.16.0" revision commit))
23326 (source (origin
23327 (method git-fetch)
23328 (uri (git-reference
23329 (url "https://github.com/timoast/signac/")
23330 (commit commit)))
23331 (file-name (git-file-name name version))
23332 (sha256
23333 (base32
23334 "1q80ynngskmkndsbfliikrmj8q9q73vx30cfzk6v14w0y6f8rak7"))))
23335 (properties
23336 '((upstream-name . "Signac")
23337 (updater-extra-native-inputs . ("r-testthat"))))
23338 (build-system r-build-system)
23339 (inputs (list zlib))
23340 (propagated-inputs
23341 (list r-biocgenerics
23342 r-data-table
23343 r-dplyr
23344 r-fastmatch
23345 r-future
23346 r-future-apply
23347 r-genomeinfodb
23348 r-genomicranges
23349 r-ggplot2
23350 r-iranges
23351 r-irlba
23352 r-lifecycle
23353 r-matrix
23354 r-patchwork
23355 r-pbapply
23356 r-rcpp
23357 r-rcpproll
23358 r-rlang
23359 r-rsamtools
23360 r-s4vectors
23361 r-scales
23362 r-seuratobject
23363 r-stringi
23364 r-tidyr
23365 r-tidyselect
23366 r-vctrs))
23367 (native-inputs (list r-testthat))
23368 (home-page "https://github.com/timoast/signac/")
23369 (synopsis "Analysis of single-cell chromatin data")
23370 (description
23371 "This package provides a framework for the analysis and exploration of
23372single-cell chromatin data. The Signac package contains functions for
23373quantifying single-cell chromatin data, computing per-cell quality control
23374metrics, dimension reduction and normalization, visualization, and DNA
23375sequence motif analysis.")
23376 (license license:expat))))
23377
23378;; This is a fork of the original unmaintained python-pyvcf.
23379(define-public python-pyvcf3
23380 (let ((commit "1fb3789153d1d8e28e2cedf121399f276b5f312a")
23381 (revision "0"))
23382 (package
23383 (name "python-pyvcf3")
23384 (version (git-version "1.0.3" revision commit))
23385 (source
23386 (origin
23387 (method git-fetch)
23388 (uri (git-reference
23389 (url "https://github.com/dridk/PyVCF3")
23390 (commit commit)))
23391 (file-name (git-file-name name version))
23392 (sha256
23393 (base32 "0i4j5bq5q32q216ja7yvg0mpww5j0b9p8ky5bya4d31wqmygal8z"))))
23394 (build-system pyproject-build-system)
23395 (propagated-inputs (list python-setuptools))
23396 (native-inputs (list python-pytest python-setuptools))
23397 (home-page "https://github.com/dridk/PyVCF3")
23398 (synopsis "Variant Call Format parser for Python")
23399 (description "This package provides a @acronym{VCF,Variant Call Format}
23400parser for Python.")
23401 (license license:expat))))
23402
23403(define-deprecated/public-alias python-pyvcf python-pyvcf3)
23404
23405(define-public nanosv
23406 (package
23407 (name "nanosv")
23408 (version "1.2.4")
23409 (source
23410 (origin
23411 (method url-fetch)
23412 (uri (pypi-uri "NanoSV" version))
23413 (sha256
23414 (base32 "1wl2daj0bwrl8fx5xi8j8hfs3mp3vg3qycy66538n032v1qkc6xg"))))
23415 (build-system pyproject-build-system)
23416 (arguments
23417 (list
23418 #:tests? #f ; No tests upstream, even in git.
23419 #:phases
23420 #~(modify-phases %standard-phases
23421 (add-after 'unpack 'relax-requirements
23422 (lambda _
23423 (substitute* "setup.py"
23424 (("'pyvcf'")
23425 "'pyvcf3'")))))))
23426 (native-inputs (list python-setuptools))
23427 (inputs (list python-configparser python-pysam python-pyvcf3))
23428 (home-page "https://github.com/mroosmalen/nanosv")
23429 (synopsis "Structural variation detection tool for Oxford Nanopore data")
23430 (description
23431 "NanoSV is a software package that can be used to identify
23432structural genomic variations in long-read sequencing data, such as data
23433produced by Oxford Nanopore Technologies’ MinION, GridION or PromethION
23434instruments, or Pacific Biosciences RSII or Sequel sequencers.")
23435 (license license:expat)))
23436
23437(define-public python-strawc
23438 (package
23439 (name "python-strawc")
23440 (version "0.0.2.1")
23441 (source
23442 (origin
23443 (method url-fetch)
23444 (uri (pypi-uri "strawC" version))
23445 (sha256
23446 (base32
23447 "1z1gy8n56lhriy6hdkh9r82ndikndipq2cy2wh8q185qig4rimr6"))))
23448 (build-system pyproject-build-system)
23449 (native-inputs (list python-setuptools))
23450 (arguments (list #:tests? #f)) ;No tests on either PyPI or Git.
23451 (inputs
23452 (list curl zlib))
23453 (propagated-inputs
23454 (list pybind11-2))
23455 (home-page "https://github.com/aidenlab/straw")
23456 (synopsis "Stream data from .hic files")
23457 (description "Straw is library which allows rapid streaming of contact
23458data from @file{.hic} files. This package provides Python bindings.")
23459 (license license:expat)))
23460
23461(define-public python-pybbi
23462 (package
23463 (name "python-pybbi")
23464 (version "0.4.1")
23465 (source
23466 (origin
23467 (method url-fetch)
23468 (uri (pypi-uri "pybbi" version))
23469 (sha256
23470 (base32 "0p1s6y9f33wzmvxdhfg9b37sas2kghnmvkfnb317aiad1p6ks6ba"))))
23471 (build-system pyproject-build-system)
23472 (arguments
23473 (list
23474 #:test-flags
23475 #~(list "-k" (string-join
23476 ;; Network is required to run these tests.
23477 (list "not test_aws_403_redirect"
23478 "test_chromsizes"
23479 "test_fetch_remote"
23480 "test_fetch_remote_https"
23481 "test_sigs")
23482 " and not "))
23483 #:phases
23484 #~(modify-phases %standard-phases
23485 (add-after 'unpack 'set-cc
23486 (lambda _ (setenv "CC" #$(cc-for-target))))
23487 (add-before 'check 'remove-local-bbi
23488 (lambda _
23489 ;; This would otherwise interfere with finding the installed bbi
23490 ;; when running tests.
23491 (delete-file-recursively "bbi"))))))
23492 (native-inputs
23493 (list pkg-config
23494 python-cython
23495 python-pandas
23496 python-pkgconfig
23497 python-pytest
23498 python-setuptools))
23499 (inputs
23500 (list libpng
23501 openssl
23502 zlib))
23503 (propagated-inputs
23504 (list python-numpy))
23505 (home-page "https://github.com/nvictus/pybbi")
23506 (synopsis "Python bindings to UCSC Big Binary file library")
23507 (description
23508 "This package provides Python bindings to the UCSC Big
23509Binary (bigWig/bigBed) file library. This provides read-level access to local
23510and remote bigWig and bigBed files but no write capabilitites. The main
23511feature is fast retrieval of range queries into numpy arrays.")
23512 (license license:expat)))
23513
23514(define-public python-dna-features-viewer
23515 (package
23516 (name "python-dna-features-viewer")
23517 (version "3.1.1")
23518 (source
23519 (origin
23520 (method url-fetch)
23521 (uri (pypi-uri "dna_features_viewer" version))
23522 (sha256
23523 (base32
23524 "10a5pmh73spdgfml88zjqg1rn2j2zdxn06ir8a5q3arspyqvyqcb"))))
23525 (build-system pyproject-build-system)
23526 (arguments
23527 (list
23528 #:tests? #false ;there are none
23529 #:phases
23530 '(modify-phases %standard-phases
23531 ;; See https://github.com/Edinburgh-Genome-Foundry/DnaFeaturesViewer/issues/73
23532 ;; and https://github.com/Edinburgh-Genome-Foundry/DnaFeaturesViewer/pull/74
23533 (add-after 'unpack 'fix-biopython-compatibility
23534 (lambda _
23535 (substitute* "dna_features_viewer/biotools.py"
23536 (("zip\\(aa1 \\+ \"\\*\", aa3 \\+ \\[\"\\*\"\\]\\)")
23537 "zip(aa1 + ('*',), aa3 + ('*',))")))))))
23538 (propagated-inputs
23539 (list python-biopython
23540 python-matplotlib
23541 python-packaging))
23542 (native-inputs (list python-setuptools))
23543 (home-page
23544 "https://github.com/Edinburgh-Genome-Foundry/DnaFeaturesViewer")
23545 (synopsis "Plot features from DNA sequences")
23546 (description
23547 "DNA Features Viewer is a Python library to visualize DNA features,
23548e.g. from GenBank or Gff files, or Biopython SeqRecords.")
23549 (license license:expat)))
23550
23551(define-public python-coolbox
23552 (package
23553 (name "python-coolbox")
23554 ;; TODO: Newer versions depend on python-polars, see
23555 ;; <https://codeberg.org/guix/guix/pulls/2570>.
23556 (version "0.3.9")
23557 (source
23558 (origin
23559 (method git-fetch)
23560 (uri (git-reference
23561 (url "https://github.com/GangCaoLab/CoolBox")
23562 (commit version)))
23563 (file-name (git-file-name name version))
23564 (sha256
23565 (base32 "1a9h0xrg7issgprzm6awabfw73ddm2910rqcvcfg5v0cfn599aws"))))
23566 (build-system pyproject-build-system)
23567 (arguments
23568 (list
23569 ;; tests: 29 passed, 7 deselected, 17 warnings
23570 #:test-flags
23571 ;; XXX: Maybe there is a build problem with python-pypairix?
23572 ;; FileNotFoundError: [Errno 2] No such file or directory: 'pairix'
23573 #~(list "--deselect=tests/test_browser.py::test_browser"
23574 "--deselect=tests/test_coverage.py::test_arcs_coverage"
23575 "--deselect=tests/test_frame.py::test_frame"
23576 "--deselect=tests/test_track.py::test_bedpe"
23577 "--deselect=tests/test_track.py::test_pairs"
23578 "--deselect=tests/test_track.py::test_arcs")
23579 #:phases
23580 #~(modify-phases %standard-phases
23581 ;; FIXME: Some issue with checking the correct versions of Jupyter
23582 ;; dependencies.
23583 (delete 'sanity-check))))
23584 (native-inputs
23585 (list pybind11-2
23586 python-pytest
23587 python-pypairix
23588 python-setuptools
23589 samtools))
23590 (propagated-inputs
23591 (list jupyter
23592 python-cooler
23593 python-dna-features-viewer
23594 python-fire
23595 python-h5py
23596 python-intervaltree
23597 python-ipywidgets
23598 python-matplotlib
23599 python-nbformat
23600 python-numpy
23601 python-numpydoc
23602 python-pandas
23603 python-pybbi
23604 python-scipy
23605 python-statsmodels
23606 python-strawc
23607 python-svgutils
23608 python-voila))
23609 (home-page "https://github.com/GangCaoLab/CoolBox")
23610 (synopsis "Genomic data visualization toolkit")
23611 (description
23612 "CoolBox is a toolkit for visual analysis of genomics data. It aims to
23613be highly compatible with the Python ecosystem, easy to use and highly
23614customizable with a well-designed user interface. It can be used in various
23615visualization situations, for example, to produce high-quality genome track
23616plots or fetch common used genomic data files with a Python script or command
23617line, interactively explore genomic data within Jupyter environment or web
23618browser.")
23619 (license license:gpl3+)))
23620
23621(define-public python-pyspoa
23622 (package
23623 (name "python-pyspoa")
23624 (version "0.0.5")
23625 (source
23626 (origin
23627 (method git-fetch)
23628 (uri (git-reference
23629 (url "https://github.com/nanoporetech/pyspoa")
23630 (commit (string-append "v" version))
23631 (recursive? #t)))
23632 (file-name (git-file-name name version))
23633 (sha256
23634 (base32 "1lgf2shzhxkcsircd6vy46h27pjljd5q95fyz1cm3lkk702qbnzx"))))
23635 (build-system pyproject-build-system)
23636 (arguments
23637 (list
23638 #:test-backend #~'custom
23639 #:test-flags #~(list "tests/test_pyspoa.py")
23640 #:phases
23641 #~(modify-phases %standard-phases
23642 (add-before 'build 'build-libspoa
23643 (lambda _
23644 (mkdir-p "src/build")
23645 (with-directory-excursion "src/build"
23646 (invoke "cmake" "-Dspoa_optimize_for_portability=ON"
23647 "-DCMAKE_BUILD_TYPE=Release"
23648 "-DCMAKE_CXX_FLAGS=\"-I ../vendor/cereal/include/\" -fPIC"
23649 "..")
23650 (invoke "make")))))))
23651 (propagated-inputs (list pybind11-2))
23652 (native-inputs (list cmake-minimal python-setuptools))
23653 (home-page "https://github.com/nanoporetech/pyspoa")
23654 (synopsis "Python bindings for the SIMD partial order alignment library")
23655 (description
23656 "This package provides Python bindings for spoa, a C++ implementation of
23657the @dfn{partial order alignment} (POA) algorithm (as described in
2365810.1093/bioinformatics/18.3.452) which is used to generate consensus
23659sequences")
23660 (license license:expat)))
23661
23662(define-public python-bwapy
23663 (package
23664 (name "python-bwapy")
23665 (version "0.1.4")
23666 (source
23667 (origin
23668 (method url-fetch)
23669 (uri (pypi-uri "bwapy" version))
23670 (sha256
23671 (base32 "090qwx3vl729zn3a7sksbviyg04kc71gpbm3nd8dalqp673x1npw"))
23672 (modules '((guix build utils)))
23673 (snippet
23674 '(for-each delete-file (find-files "." "\\.o$")))))
23675 (build-system pyproject-build-system)
23676 (arguments
23677 (list #:tests? #f ;no tests
23678 #:phases
23679 #~(modify-phases %standard-phases
23680 ;; TODO: it's possible that the import error points to a real
23681 ;; problem with the C sources.
23682 (delete 'sanity-check))))
23683 (propagated-inputs
23684 (list python-cffi python-setuptools))
23685 (inputs
23686 (list zlib))
23687 (home-page "https://github.com/ACEnglish/bwapy")
23688 (synopsis "Python bindings to bwa aligner")
23689 (description "This package provides Python bindings to the bwa mem
23690aligner.")
23691 ;; These Python bindings are licensed under Mozilla Public License 2.0,
23692 ;; bwa itself is licenced under GNU General Public License v3.0.
23693 (license license:mpl2.0)))
23694
23695(define-public python-scvelo
23696 (package
23697 (name "python-scvelo")
23698 (version "0.3.3")
23699 (source
23700 (origin
23701 (method git-fetch)
23702 (uri (git-reference
23703 (url "https://github.com/theislab/scvelo")
23704 (commit (string-append "v" version))))
23705 (file-name (git-file-name name version))
23706 (sha256
23707 (base32 "0xsi0bdsk24mf7zifizshlc3arc6fn2blmvjzbl21k66hc2xd2z9"))))
23708 (build-system pyproject-build-system)
23709 (arguments
23710 (list
23711 ;; tests: 173 passed, 1707 warnings
23712 #:test-flags
23713 ;; Run only core tests as other fail a lot in: datasets, preprocessing
23714 ;; and tools.
23715 #~(list "tests/core")
23716 #:phases
23717 #~(modify-phases %standard-phases
23718 ;; Numba needs a writable dir to cache functions.
23719 (add-before 'build 'set-numba-cache-dir
23720 (lambda _
23721 (setenv "NUMBA_CACHE_DIR" "/tmp"))))))
23722 (native-inputs
23723 (list python-pytest
23724 python-setuptools
23725 python-setuptools-scm))
23726 (propagated-inputs
23727 (list python-anndata
23728 python-loompy
23729 python-matplotlib
23730 python-numba
23731 python-numpy
23732 python-pandas
23733 python-scanpy
23734 python-scikit-learn
23735 python-scipy
23736 python-umap-learn
23737 ;; [optional]
23738 pybind11-2
23739 python-hnswlib
23740 python-igraph
23741 python-louvain))
23742 (home-page "https://scvelo.org")
23743 (synopsis "RNA velocity generalized through dynamical modeling")
23744 (description "ScVelo is a scalable toolkit for RNA velocity analysis in
23745single cells. RNA velocity enables the recovery of directed dynamic
23746information by leveraging splicing kinetics. scVelo generalizes the concept of
23747RNA velocity by relaxing previously made assumptions with a stochastic and a
23748dynamical model that solves the full transcriptional dynamics. It thereby
23749adapts RNA velocity to widely varying specifications such as non-stationary
23750populations.")
23751 (license license:bsd-3)))
23752
23753(define-deprecated-package scvelo
23754 python-scvelo)
23755
23756(define-public scregseg
23757 ;; 0.1.3 was released in 2023, there are a lot of comparability fixes on
23758 ;; master branch, use the latest commit for now.
23759 (let ((commit "78ebff8c3507752c3bfbc4db3f72f7e8a733e92f")
23760 (revision "0"))
23761 (package
23762 (name "scregseg")
23763 (version (git-version "0.1.3" revision commit))
23764 (source (origin
23765 (method git-fetch)
23766 (uri (git-reference
23767 (url "https://github.com/BIMSBbioinfo/scregseg")
23768 (commit commit)))
23769 (file-name (git-file-name name version))
23770 (sha256
23771 (base32
23772 "19iasx6zh305cn8p390ack78f4iklyk61xmnf99c2b8ibml7jmzj"))
23773 (snippet
23774 '(delete-file "src/scregseg/_utils.c"))))
23775 (build-system pyproject-build-system)
23776 (arguments
23777 (list
23778 #:test-flags
23779 #~(list "--pyargs" "scregseg")
23780 #:phases
23781 '(modify-phases %standard-phases
23782 ;; Numba needs a writable dir to cache functions.
23783 (add-before 'check 'set-numba-cache-dir
23784 (lambda _
23785 (setenv "NUMBA_CACHE_DIR" "/tmp")))
23786 ;; NumPy 1.20 deprecated the type wrappers for int and float.
23787 (add-after 'unpack 'compatibility
23788 (lambda _
23789 (substitute* "src/scregseg/_utils.pyx"
23790 (("np.float") "float"))))
23791 ;; XXX: python-notebook and python-jupyter-client versions
23792 ;; are incompatible.
23793 (delete 'sanity-check))))
23794 (native-inputs
23795 (list python-cython
23796 python-pytest
23797 python-setuptools))
23798 (propagated-inputs
23799 (list python-scikit-learn-1.6
23800 python-scipy
23801 python-numpy
23802 python-hmmlearn
23803 python-pandas
23804 python-numba
23805 python-anndata
23806 python-scanpy
23807 python-pybedtools
23808 python-pysam
23809 python-matplotlib
23810 python-seaborn
23811 python-coolbox))
23812 (home-page "https://github.com/BIMSBbioinfo/scregseg")
23813 (synopsis "Single-cell regulatory landscape segmentation")
23814 (description "Scregseg (Single-Cell REGulatory landscape SEGmentation) is a
23815tool that facilitates the analysis of single cell ATAC-seq data by an
23816HMM-based segmentation algorithm. Scregseg uses an HMM with
23817Dirichlet-Multinomial emission probabilities to segment the genome either
23818according to distinct relative cross-cell accessibility profiles or (after
23819collapsing the single-cell tracks to pseudo-bulk tracks) to capture distinct
23820cross-cluster accessibility profiles.")
23821 (license license:gpl3+))))
23822
23823(define-public megadepth
23824 (package
23825 (name "megadepth")
23826 (version "1.1.1")
23827 (source (origin
23828 (method git-fetch)
23829 (uri (git-reference
23830 (url "https://github.com/ChristopherWilks/megadepth")
23831 (commit version)))
23832 (file-name (git-file-name name version))
23833 (sha256
23834 (base32
23835 "0hj69d2dgmk2zwgazik7xzc04fxxlk93p888kpgc52fmhd95qph7"))))
23836 (build-system cmake-build-system)
23837 (arguments
23838 `(#:tests? #false ; some tests seem to require connection to
23839 ; www.ebi.ac.uk; this may be caused by htslib.
23840 #:phases
23841 (modify-phases %standard-phases
23842 (add-after 'unpack 'prepare-CMakeLists.txt
23843 (lambda _
23844 (rename-file "CMakeLists.txt.ci" "CMakeLists.txt")
23845 (substitute* "CMakeLists.txt"
23846 (("`cat ../VERSION`") ,version)
23847 (("target_link_libraries\\(megadepth_static") "#")
23848 (("target_link_libraries\\(megadepth_statlib") "#")
23849 (("add_executable\\(megadepth_static") "#")
23850 (("add_executable\\(megadepth_statlib") "#"))
23851
23852 (substitute* "tests/test.sh"
23853 ;; Disable remote test
23854 (("./megadepth http://stingray.cs.jhu.edu/data/temp/test.bam") "#")
23855 ;; Prior to installation the binary's name differs from what
23856 ;; the test script assumes.
23857 (("./megadepth") "../build/megadepth_dynamic"))))
23858 (replace 'check
23859 (lambda* (#:key tests? #:allow-other-keys)
23860 (when tests?
23861 (with-directory-excursion "../source"
23862 (invoke "bash" "tests/test.sh" "use-local-test-data")))))
23863 (replace 'install
23864 (lambda* (#:key outputs #:allow-other-keys)
23865 (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
23866 (mkdir-p bin)
23867 (copy-file "megadepth_dynamic"
23868 (string-append bin "/megadepth"))))))))
23869 (native-inputs
23870 (list diffutils perl grep))
23871 (inputs
23872 (list curl htslib libdeflate libbigwig zlib))
23873 (home-page "https://github.com/ChristopherWilks/megadepth")
23874 (synopsis "BigWig and BAM/CRAM related utilities")
23875 (description "Megadepth is an efficient tool for extracting coverage
23876related information from RNA and DNA-seq BAM and BigWig files. It supports
23877reading whole-genome coverage from BAM files and writing either indexed TSV or
23878BigWig files, as well as efficient region coverage summary over intervals from
23879both types of files.")
23880 (license license:expat)))
23881
23882(define-public megahit
23883 (package
23884 (name "megahit")
23885 (version "1.2.9")
23886 (source (origin
23887 (method git-fetch)
23888 (uri (git-reference
23889 (url "https://github.com/voutcn/megahit.git")
23890 (commit (string-append "v" version))))
23891 (file-name (git-file-name name version))
23892 (sha256
23893 (base32
23894 "1r5d9nkdmgjsbrpj43q9hy3s8jwsabaz3ji561v18hy47v58923c"))))
23895 (build-system cmake-build-system)
23896 (arguments
23897 (list
23898 #:modules '((guix build cmake-build-system)
23899 ((guix build gnu-build-system) #:prefix gnu:)
23900 (guix build utils))
23901 #:phases
23902 #~(modify-phases %standard-phases
23903 (add-after 'unpack 'fix-headers
23904 (lambda _
23905 (substitute* "src/localasm/local_assemble.h"
23906 (("#include <string>") "#include <string>\n#include <cstdint>"))))
23907 (add-after 'unpack 'fix-tests
23908 (lambda _
23909 (substitute* "src/megahit"
23910 (("os.path.join\\(script_path, '..'\\)")
23911 "os.path.join(script_path, '../source')"))))
23912 (replace 'check
23913 (lambda* (#:rest args)
23914 (apply (assoc-ref gnu:%standard-phases 'check)
23915 #:test-target "simple_test" args))))))
23916 (inputs (list python-wrapper zlib))
23917 (home-page "https://www.ncbi.nlm.nih.gov/pubmed/25609793")
23918 (synopsis "Meta-genome assembler")
23919 (description "Megahit is a fast and memory-efficient NGS assembler. It is
23920optimized for metagenomes, but also works well on generic single genome
23921assembly (small or mammalian size) and single-cell assembly.")
23922 (license license:gpl3)))
23923
23924(define-public mudskipper
23925 (let ((commit "effd3fac03bc09d313e84fa680f18fdc6f3a16a0")
23926 (revision "1"))
23927 (package
23928 (name "mudskipper")
23929 (version (git-version "0.1.0" revision commit))
23930 (source (origin
23931 (method git-fetch)
23932 (uri (git-reference
23933 (url "https://github.com/OceanGenomics/mudskipper")
23934 (commit commit)))
23935 (file-name (git-file-name name version))
23936 (sha256
23937 (base32
23938 "17jm39sbrwgjlynxsn4g7lvq5hx6rwyjg86p10v4mc74fmdn5xd5"))))
23939 (build-system cargo-build-system)
23940 (arguments
23941 (list #:install-source? #f
23942 #:phases
23943 #~(modify-phases %standard-phases
23944 (add-after 'unpack 'skip-doctesting-code-blocks
23945 ;; See also https://github.com/rust-lang/rust/issues/63193.
23946 (lambda _
23947 (substitute* "src/query_bam_records.rs"
23948 (((string-append
23949 "(pub )?fn ("
23950 (string-join
23951 '("get_next_query_records"
23952 "get_next_query_records_skip"
23953 "get_primary_record_of_sa_tag"
23954 "get_records_from_sa_tag"
23955 "group_records"
23956 "group_records_skip"
23957 "new")
23958 "|")
23959 ")")
23960 all)
23961 (string-append "#[cfg(not(doctest))]\n" all))))))))
23962 (native-inputs
23963 (list pkg-config))
23964 (inputs
23965 (cons* zlib (cargo-inputs 'mudskipper)))
23966 (home-page "https://github.com/OceanGenomics/mudskipper")
23967 (synopsis "Convert genomic alignments to transcriptomic BAM/RAD files")
23968 (description "Mudskipper is a tool for projecting genomic alignments to
23969transcriptomic coordinates.")
23970 (license license:bsd-3))))
23971
23972(define-public r-ascat
23973 (package
23974 (name "r-ascat")
23975 (version "2.5.2")
23976 (source (origin
23977 (method git-fetch)
23978 (uri (git-reference
23979 (url "https://github.com/Crick-CancerGenomics/ascat.git")
23980 (commit (string-append "v" version))))
23981 (file-name (git-file-name name version))
23982 (sha256
23983 (base32
23984 "0cc0y3as6cb64iwnx0pgbajiig7m4z723mns9d5i4j09ccid3ccm"))))
23985 (build-system r-build-system)
23986 (arguments
23987 `(#:phases
23988 (modify-phases %standard-phases
23989 (add-after 'unpack 'move-to-ascat-dir
23990 (lambda _
23991 (chdir "ASCAT"))))))
23992 (propagated-inputs
23993 (list r-rcolorbrewer))
23994 (home-page "https://github.com/VanLoo-lab/ascat/")
23995 (synopsis "Allele-Specific Copy Number Analysis of Tumors in R")
23996 (description "This package provides the @acronym{ASCAT,Allele-Specific Copy
23997Number Analysis of Tumors} R package that can be used to infer tumour purity,
23998ploidy and allele-specific copy number profiles.")
23999 (license license:gpl3)))
24000
24001(define-public r-battenberg
24002 (package
24003 (name "r-battenberg")
24004 (version "2.2.9")
24005 (source (origin
24006 (method git-fetch)
24007 (uri (git-reference
24008 (url "https://github.com/Wedge-lab/battenberg.git")
24009 (commit (string-append "v" version))))
24010 (file-name (git-file-name name version))
24011 (sha256
24012 (base32
24013 "0nmcq4c7y5g8h8lxsq9vadz9bj4qgqn118alip520ny6czaxki4h"))))
24014 (build-system r-build-system)
24015 (propagated-inputs
24016 (list r-devtools
24017 r-readr
24018 r-doparallel
24019 r-ggplot2
24020 r-rcolorbrewer
24021 r-gridextra
24022 r-gtools
24023 r-ascat))
24024 (home-page "https://github.com/Wedge-lab/battenberg")
24025 (synopsis "Subclonal copy number estimation in R")
24026 (description "This package contains the Battenberg R package for subclonal
24027copy number estimation, as described by
24028@url{doi:10.1016/j.cell.2012.04.023,Nik-Zainal et al.}")
24029 (license license:gpl3)))
24030
24031(define-public r-bayesprism
24032 (package
24033 (name "r-bayesprism")
24034 (version "2.2.2")
24035 (source
24036 (origin
24037 (method git-fetch)
24038 (uri (git-reference
24039 (url "https://github.com/Danko-Lab/BayesPrism")
24040 ;; The version string in the DESCRIPTION file was changed to
24041 ;; 2.2.2 in this commit.
24042 (commit "5d43190d5fdfc900571ae1b05b9dcad9ee6b8b2b")))
24043 (file-name (git-file-name name version))
24044 (sha256
24045 (base32 "0rlq6nv1adc9w1ync8834kv59ksixxzbpf3xlbxi5s8x54gv4q9y"))))
24046 (properties `((upstream-name . "BayesPrism")))
24047 (build-system r-build-system)
24048 (arguments
24049 (list
24050 #:phases
24051 '(modify-phases %standard-phases
24052 (add-after 'unpack 'chdir
24053 (lambda _ (chdir "BayesPrism"))))))
24054 (propagated-inputs (list r-biocparallel
24055 r-gplots
24056 r-matrix
24057 r-nmf
24058 r-scran
24059 r-snowfall
24060 r-r-utils))
24061 (native-inputs (list r-knitr))
24062 (home-page "https://github.com/Danko-Lab/BayesPrism")
24063 (synopsis "Bayesian cell type and gene expression deconvolution")
24064 (description
24065 "BayesPrism includes deconvolution and embedding learning modules.
24066The deconvolution module models a prior from cell type-specific expression
24067profiles from scRNA-seq to jointly estimate the posterior distribution of cell
24068type composition and cell type-specific gene expression from bulk RNA-seq
24069expression of tumor samples. The embedding learning module uses
24070@dfn{Expectation-maximization} (EM) to approximate the tumor expression using
24071a linear combination of malignant gene programs while conditional on the
24072inferred expression and fraction of non-malignant cells estimated by the
24073deconvolution module.")
24074 (license license:gpl3)))
24075
24076(define-public r-catch
24077 (let ((commit "196ddd5a51b1a5f5daa01de53fdaad9b7505e084")
24078 (revision "1"))
24079 (package
24080 (name "r-catch")
24081 (version (git-version "1.0" revision commit))
24082 (source (origin
24083 (method git-fetch)
24084 (uri (git-reference
24085 (url "https://github.com/zhanyinx/CaTCH")
24086 (commit commit)))
24087 (file-name (git-file-name name version))
24088 (sha256
24089 (base32
24090 "11c7f1fc8f57wnwk1hrgr5y814m80zj8gkz5021vxyxy2v02cqgd"))))
24091 (build-system r-build-system)
24092 (arguments
24093 `(#:phases
24094 (modify-phases %standard-phases
24095 (add-after 'unpack 'chdir
24096 (lambda _ (chdir "CaTCH"))))))
24097 (home-page "https://github.com/zhanyinx/CaTCH_R")
24098 (synopsis "Call a hierarchy of domains based on Hi-C data")
24099 (description "This package allows building the hierarchy of domains
24100starting from Hi-C data. Each hierarchical level is identified by a minimum
24101value of physical insulation between neighboring domains.")
24102 (license license:gpl2+))))
24103
24104(define-public r-spacexr
24105 (let ((commit "0a0861e3d1e16014a20e9b743d0e19d3b42231f3")
24106 (revision "1"))
24107 (package
24108 (name "r-spacexr")
24109 (version (git-version "2.2.1" revision commit))
24110 (source
24111 (origin
24112 (method git-fetch)
24113 (uri (git-reference
24114 (url "https://github.com/dmcable/spacexr")
24115 (commit commit)))
24116 (file-name (git-file-name name version))
24117 (sha256
24118 (base32 "0hqrllzq2hi6dsr8nykn1yp7s3rcbjrv3m624b61n4nxnzza458a"))))
24119 (properties `((upstream-name . "spacexr")))
24120 (build-system r-build-system)
24121 (propagated-inputs (list r-compquadform
24122 r-data-table
24123 r-doparallel
24124 r-dplyr
24125 r-fields
24126 r-foreach
24127 r-ggplot2
24128 r-knitr
24129 r-locfdr
24130 r-matrix
24131 r-metafor
24132 r-mgcv
24133 r-pals
24134 r-quadprog
24135 r-readr
24136 r-reshape2
24137 r-rfast
24138 r-rmarkdown
24139 r-tibble))
24140 (native-inputs (list r-knitr))
24141 (home-page "https://github.com/dmcable/spacexr")
24142 (synopsis
24143 "Cell type identification and differential expression in spatial transcriptomics")
24144 (description
24145 "This package is used for cell type identification in spatial transcriptomics.
24146It also handles cell type-specific differential expression.")
24147 (license license:gpl3))))
24148
24149(define-public r-spectre
24150 (package
24151 (name "r-spectre")
24152 (version "1.3.0")
24153 (source
24154 (origin
24155 (method git-fetch)
24156 (uri (git-reference
24157 (url "https://github.com/ImmuneDynamics/Spectre")
24158 (commit (string-append "v" version))))
24159 (file-name (git-file-name name version))
24160 (sha256
24161 (base32
24162 "15g9w08x0pz2ia9qfalhcg3z5z2zx2085mfbr8gx9w5yxnw475ld"))))
24163 (properties `((upstream-name . "Spectre")))
24164 (build-system r-build-system)
24165 (propagated-inputs
24166 (list r-biobase
24167 r-biocmanager
24168 r-caret
24169 r-class
24170 r-colorramps
24171 r-data-table
24172 r-dendsort
24173 r-devtools
24174 r-dplyr
24175 r-exactextractr
24176 r-factoextra
24177 r-flowcore
24178 r-flowsom
24179 r-flowviz
24180 r-fnn
24181 r-ggplot2
24182 r-ggpointdensity
24183 r-ggpubr
24184 r-ggraph
24185 r-ggthemes
24186 r-gridextra
24187 r-gridextra
24188 r-gtools
24189 r-hdf5array
24190 r-irlba
24191 r-patchwork
24192 r-pheatmap
24193 r-plyr
24194 r-qs2
24195 r-raster
24196 r-rcolorbrewer
24197 r-rhdf5
24198 r-rstudioapi
24199 r-rsvd
24200 r-rtsne
24201 r-s2
24202 r-scales
24203 r-scattermore
24204 r-sf
24205 r-sp
24206 r-stars
24207 r-stringr
24208 r-tidygraph
24209 r-tidyr
24210 r-tidyr
24211 r-tiff
24212 r-umap
24213 r-uwot))
24214 (home-page "https://github.com/ImmuneDynamics/Spectre")
24215 (synopsis "High-dimensional cytometry and imaging analysis")
24216 (description
24217 "This package provides a computational toolkit in R for the
24218integration, exploration, and analysis of high-dimensional single-cell
24219cytometry and imaging data.")
24220 (license license:expat)))
24221
24222(define-public r-compgenomrdata
24223 (let ((commit "24484cb77631e1123ead6c329b9d62c160e600c6")
24224 (revision "1"))
24225 (package
24226 (name "r-compgenomrdata")
24227 (version (git-version "0.1.0" revision commit))
24228 (source (origin
24229 (method git-fetch)
24230 (uri (git-reference
24231 (url "https://github.com/compgenomr/compGenomRData")
24232 (commit commit)))
24233 (file-name (git-file-name name version))
24234 (sha256
24235 (base32
24236 "06gdvz4m4qlb1ylv10qfx09zv4c95cm7nps4y2s67m946kv8czv8"))))
24237 (properties `((upstream-name . "compGenomRData")))
24238 (build-system r-build-system)
24239 (home-page "https://github.com/compgenomr/compGenomRData")
24240 (synopsis "Data for Computational Genomics with R book")
24241 (description "This package provides data for the book \"Computational
24242Genomics with R\".")
24243 (license license:gpl3))))
24244
24245(define-public r-cytonorm
24246 (let ((commit "166f9ff3d692278241018c2846cb4f86ab16065b")
24247 (revision "1"))
24248 (package
24249 (name "r-cytonorm")
24250 (version (git-version "0.0.10" revision commit))
24251 (source (origin
24252 (method git-fetch)
24253 (uri (git-reference
24254 (url "https://github.com/saeyslab/CytoNorm")
24255 (commit commit)))
24256 (file-name (git-file-name name version))
24257 (sha256
24258 (base32
24259 "0vbqy3b26j1zqmwgqx59kkn9pm2m0qwlcppskvahrxcwrj6m1s5y"))))
24260 (properties `((upstream-name . "CytoNorm")))
24261 (build-system r-build-system)
24262 (propagated-inputs
24263 (list r-cytoml
24264 r-dplyr
24265 r-emdist
24266 r-flowcore
24267 r-flowsom
24268 r-flowworkspace
24269 r-ggplot2
24270 r-gridextra
24271 r-pheatmap
24272 r-stringr))
24273 (home-page "https://github.com/saeyslab/CytoNorm")
24274 (synopsis "Normalize cytometry data measured across multiple batches")
24275 (description
24276 "This package can be used to normalize cytometry samples when a control
24277sample is taken along in each of the batches. This is done by first
24278identifying multiple clusters/cell types, learning the batch effects from the
24279control samples and applying quantile normalization on all markers of
24280interest.")
24281 (license license:gpl2+))))
24282
24283(define-public r-kbet
24284 (let ((commit "f35171dfb04c7951b8a09ac778faf7424c4b6bc0")
24285 (revision "1"))
24286 (package
24287 (name "r-kbet")
24288 (version (git-version "0.99.6" revision commit))
24289 (source (origin
24290 (method git-fetch)
24291 (uri (git-reference
24292 (url "https://github.com/theislab/kBET")
24293 (commit commit)))
24294 (file-name (git-file-name name version))
24295 (sha256
24296 (base32
24297 "1r91prl2kki3zk694vhlmxdlqh0ixlhs8jfcqw6wc7cdsa0nv67k"))))
24298 (properties `((upstream-name . "kBET")))
24299 (build-system r-build-system)
24300 (propagated-inputs (list r-cluster r-fnn r-ggplot2 r-mass r-rcolorbrewer))
24301 (native-inputs (list r-knitr))
24302 (home-page "https://github.com/theislab/kBET")
24303 (synopsis "k-nearest neighbour batch effect test")
24304 (description
24305 "This tool detects batch effects in high-dimensional data based on chi^2-test.")
24306 ;; Any version of the GPL
24307 (license license:gpl3+))))
24308
24309(define-public python-vireosnp
24310 (let ((commit "e3654633f7663732572c03c5dcf9fb00ec43b653")
24311 (revision "0"))
24312 (package
24313 (name "python-vireosnp")
24314 (version (git-version "0.5.9" revision commit))
24315 (source
24316 (origin
24317 (method git-fetch)
24318 (uri (git-reference
24319 (url "https://github.com/huangyh09/vireoSNP")
24320 (commit commit)))
24321 (file-name (git-file-name name version))
24322 (sha256
24323 (base32 "1wd4llm54fvc1pc4nqfdc43g637gfx1f4z4aznvdr3biy9jksqza"))))
24324 (build-system pyproject-build-system)
24325 (arguments
24326 (list
24327 #:phases
24328 #~(modify-phases %standard-phases
24329 (replace 'check
24330 (lambda* (#:key tests? #:allow-other-keys)
24331 (if tests?
24332 (with-directory-excursion "examples"
24333 (invoke "bash" "demo.sh"))
24334 (format #f "test suite not run.~%")))))))
24335 (propagated-inputs (list python-matplotlib python-numpy python-scipy))
24336 (native-inputs (list python-setuptools))
24337 (home-page "https://github.com/huangyh09/vireoSNP")
24338 (synopsis "Deconvolution based on SNP for multiplexed scRNA-seq data")
24339 (description
24340 "This package provides a deconvolution based on Single Nucleotide
24341Position (SNP) for multiplexed scRNA-seq data. The name vireo stand for
24342Variational Inference for Reconstructing Ensemble Origin by expressed SNPs in
24343multiplexed scRNA-seq data and follows the clone identification from
24344single-cell data named @url{https://github.com/PMBio/cardelino, cardelino}.")
24345 (license license:asl2.0))))
24346
24347(define-public ccwl
24348 (package
24349 (name "ccwl")
24350 (version "0.5.0")
24351 (source
24352 (origin
24353 (method url-fetch)
24354 (uri (string-append "https://ccwl.systemreboot.net/releases/ccwl-"
24355 version ".tar.lz"))
24356 (sha256
24357 (base32
24358 "1pna61cqhhg69qpa682x911x85nlin1wpp29naqzq3r0s951qxi6"))))
24359 (build-system gnu-build-system)
24360 (arguments
24361 `(#:make-flags '("GUILE_AUTO_COMPILE=0") ; to prevent guild warnings
24362 #:modules (((guix build guile-build-system)
24363 #:select (target-guile-effective-version))
24364 ,@%default-gnu-modules)
24365 #:imported-modules ((guix build guile-build-system)
24366 ,@%default-gnu-imported-modules)
24367 #:phases
24368 (modify-phases %standard-phases
24369 (add-after 'patch-source-shebangs 'patch-more-source-shebangs
24370 (lambda* (#:key inputs #:allow-other-keys)
24371 (substitute* "scripts/ccwl"
24372 (("^exec guile")
24373 (string-append "exec "
24374 (search-input-file inputs "/bin/guile"))))))
24375 (add-after 'install 'wrap
24376 (lambda* (#:key inputs outputs #:allow-other-keys)
24377 (let ((out (assoc-ref outputs "out"))
24378 (effective-version (target-guile-effective-version)))
24379 (wrap-program (string-append out "/bin/ccwl")
24380 `("GUILE_LOAD_PATH" prefix
24381 (,(string-append out "/share/guile/site/" effective-version)
24382 ,(getenv "GUILE_LOAD_PATH")))
24383 `("GUILE_LOAD_COMPILED_PATH" prefix
24384 (,(string-append out "/lib/guile/" effective-version "/site-ccache")
24385 ,(getenv "GUILE_LOAD_COMPILED_PATH"))))))))))
24386 (inputs
24387 (list bash-minimal
24388 guile-3.0
24389 guile-libyaml))
24390 (native-inputs
24391 (list pkg-config
24392 lzip
24393 guile-run64
24394 ;; To build documentation
24395 cwltool
24396 graphviz
24397 skribilo))
24398 (home-page "https://ccwl.systemreboot.net")
24399 (synopsis "Concise common workflow language")
24400 (description "The @acronym{ccwl, Concise Common Workflow Language} is a
24401concise syntax to express CWL workflows. ccwl is a compiler to generate CWL
24402workflows from concise descriptions in ccwl. It is implemented as an
24403@acronym{EDSL, Embedded Domain Specific Language} in the Scheme programming
24404language.")
24405 (license license:gpl3+)))
24406
24407(define-public hh-suite
24408 (package
24409 (name "hh-suite")
24410 (version "3.3.0")
24411 (source
24412 (origin
24413 (method git-fetch)
24414 (uri (git-reference
24415 (url "https://github.com/soedinglab/hh-suite")
24416 (commit (string-append "v" version))))
24417 (file-name (git-file-name name version))
24418 (sha256
24419 (base32
24420 "1bcmzg0ii6nkda2xm5jdddbwkgsag7k38j20af0c9chr2mbxwx4d"))
24421 (modules '((guix build utils)))
24422 (snippet
24423 '(delete-file-recursively "lib/simde"))))
24424 (build-system cmake-build-system)
24425 (arguments
24426 (list
24427 #:tests? #false ;no test target
24428 #:phases
24429 #~(modify-phases %standard-phases
24430 (add-after 'unpack 'fix-gcc-14
24431 (lambda _
24432 (substitute* "src/a3m_compress.h"
24433 (("#include <climits>")
24434 "#include <climits>
24435#include <cstdint>")))))))
24436 (inputs
24437 (list openmpi simde))
24438 (native-inputs
24439 (list perl pkg-config xxd))
24440 (home-page "https://bmcbioinformatics.biomedcentral.com/articles/10.1186/s12859-019-3019-7")
24441 (synopsis "Remote protein homology detection suite")
24442 (description "The HH-suite is a software package for sensitive protein sequence searching
24443based on the pairwise alignment of hidden Markov models (HMMs).")
24444 (license license:gpl3+)))
24445
24446(define-public wfmash
24447 (package
24448 (name "wfmash")
24449 (version "0.21.0")
24450 (source
24451 (origin
24452 (method url-fetch)
24453 (uri (string-append "https://github.com/waveygang/wfmash/releases/download/v"
24454 version "/wfmash-v" version ".tar.gz"))
24455 (sha256
24456 (base32
24457 "0v9giqrqxl9kkcrs6zrfj1y07j6p9r8d82kkwigvndlg1708457w"))
24458 (snippet
24459 #~(begin
24460 (use-modules (guix build utils))
24461 ;; Unbundle atomic-queue.
24462 (delete-file-recursively "src/common/atomic_queue")
24463 (substitute* "src/align/include/computeAlignments.hpp"
24464 (("\"common/atomic_queue/atomic_queue.h\"")
24465 "<atomic_queue/atomic_queue.h>"))
24466 ;; Remove compiler optimizations.
24467 (substitute* (find-files "." "CMakeLists\\.txt")
24468 (("-march=native ") ""))))))
24469 (build-system cmake-build-system)
24470 (arguments
24471 (list
24472 ;; Tests time out on riscv64-linux.
24473 #:tests? (and (not (%current-target-system))
24474 (not (target-riscv64?)))
24475 #:configure-flags
24476 #~(list "-DWFA_PNG_AND_TSV=ON")
24477 #:phases
24478 #~(modify-phases %standard-phases
24479 (add-after 'unpack 'fix-cmakelists
24480 (lambda _
24481 (substitute* "CMakeLists.txt"
24482 ;; Remove broken configure of CTestCustom.cmake.
24483 (("^configure_file[^\n]*") "")
24484 ;; Do not hard-code wfmash executable.
24485 (("\\./build/bin/wfmash") "wfmash"))))
24486 (add-before 'check 'build-check-prerequisites
24487 (lambda _
24488 (let ((wfa2-lib #$(string-append "../wfmash-v"
24489 version
24490 "/src/common/wflign/deps/WFA2-lib")))
24491 (substitute* (string-append wfa2-lib "/Makefile")
24492 ;; Remove architecture-specific flags.
24493 (("-march=x86-64-v3") ""))
24494 (substitute* (string-append wfa2-lib "/tests/wfa.utest.sh")
24495 ;; Fix time command.
24496 (("\\\\time -v") "time"))
24497 ;; Build wfa2-lib.
24498 (invoke "make" "-C" wfa2-lib
24499 #$(string-append "CC=" (cc-for-target))))))
24500 (add-after 'install 'install-scripts
24501 (lambda _
24502 (copy-file (string-append "../wfmash-v" #$version
24503 "/scripts/split_approx_mappings_in_chunks.py")
24504 (string-append #$output "/bin/split_approx_mappings_in_chunks")))))))
24505 (inputs
24506 (list atomic-queue
24507 gsl
24508 htslib
24509 python-wrapper
24510 libdeflate
24511 zlib))
24512 (native-inputs
24513 (list pkg-config
24514 samtools))
24515 (synopsis "Base-accurate DNA sequence aligner")
24516 (description "@code{wfmash} is a DNA sequence read mapper based on mash
24517distances and the wavefront alignment algorithm. It is a fork of MashMap that
24518implements base-level alignment via the wflign tiled wavefront global
24519alignment algorithm. It completes MashMap with a high-performance alignment
24520module capable of computing base-level alignments for very large sequences.")
24521 (home-page "https://github.com/waveygang/wfmash")
24522 (license license:expat)))
24523
24524(define-public gdcm
24525 (package
24526 (name "gdcm")
24527 (version "3.2.2")
24528 (source (origin
24529 (method git-fetch)
24530 (uri (git-reference
24531 (url "https://github.com/malaterre/gdcm")
24532 (commit (string-append "v" version))
24533 (recursive? #t)))
24534 (file-name (git-file-name name version))
24535 (sha256
24536 (base32
24537 "1d9dm1wawgjy6vgw3shqchqpjcic6hprwhn0v7dw1qkgn3y8508w"))))
24538 (build-system cmake-build-system)
24539 (outputs '("out" "doc"))
24540 (arguments
24541 (list
24542 #:test-exclude (string-join (list "TestSCUValidation"
24543 "TestWriter"
24544 "TestAnonymizer4"
24545 "TestPrinter1"
24546 "TestEcho"
24547 ;; The scanner tests depend on TestWriter output.
24548 "TestStrictScanner1"
24549 "TestStrictScanner2_1"
24550 "TestStrictScanner2"
24551 "TestStrictScanner2_2"
24552 "TestFind"
24553 ;; Fail with 'Unsupported JPEG data precision 12'.
24554 "TestImageReaderRandomEmpty"
24555 "TestTransferSyntax"
24556 ;; Relies on non-existent file.
24557 "TestJSON1")
24558 "|")
24559 #:configure-flags
24560 #~(list "-DGDCM_BUILD_DOCBOOK_MANPAGES=ON"
24561 "-DGDCM_BUILD_TESTING=true"
24562 "-DGDCM_DOCUMENTATION:BOOL=ON"
24563 (string-append "-DGDCM_INSTALL_DOC_DIR="
24564 #$output:doc "/share/doc/" #$name)
24565 "-DGDCM_PDF_DOCUMENTATION:BOOL=OFF"
24566 "-DGDCM_USE_SYSTEM_CHARLS=ON"
24567 "-DGDCM_USE_SYSTEM_EXPAT=ON"
24568 "-DGDCM_USE_SYSTEM_JSON=ON"
24569 "-DGDCM_USE_SYSTEM_OPENSSL=ON"
24570 "-DGDCM_USE_SYSTEM_UUID=ON"
24571 "-DGDCM_USE_SYSTEM_ZLIB=ON")
24572 #:phases
24573 #~(modify-phases %standard-phases
24574 (add-after 'unpack 'refer-to-charls
24575 (lambda _
24576 ;; Resolve the absolute path to libcharls.so instead of exporting
24577 ;; a bare '-lcharls' reference in GDCM targets.
24578 (substitute* "CMakeLists.txt"
24579 (("set\\(GDCM_CHARLS_LIBRARIES charls\\)")
24580 (string-append
24581 "find_library(CHARLS_LIBRARY NAMES charls REQUIRED)\n"
24582 " set(GDCM_CHARLS_LIBRARIES ${CHARLS_LIBRARY})")))))
24583 (add-before 'build 'set-HOME
24584 ;; The build with documentation spams ‘Fontconfig error: No writable
24585 ;; cache directories’ in a seemingly endless loop otherwise.
24586 (lambda _
24587 (setenv "HOME" "/tmp"))))))
24588 (native-inputs (list docbook-xsl doxygen graphviz libxslt))
24589 (inputs (list charls
24590 expat
24591 json-c
24592 openssl
24593 (list util-linux "lib")
24594 zlib))
24595 (home-page "https://sourceforge.net/projects/gdcm/")
24596 (synopsis "Grassroots DICOM library")
24597 (description
24598 "Grassroots DICOM (GDCM) is an implementation of the DICOM standard
24599designed to be open source so that researchers may access clinical data
24600directly. GDCM includes a file format definition and a network communications
24601protocol, both of which should be extended to provide a full set of tools for
24602a researcher or small medical imaging vendor to interface with an existing
24603medical database.")
24604 (license license:bsd-3)))
24605
24606(define-public wiggletools
24607 (package
24608 (name "wiggletools")
24609 (version "1.2.11")
24610 (source
24611 (origin
24612 (method git-fetch)
24613 (uri (git-reference
24614 (url "https://github.com/Ensembl/WiggleTools/")
24615 (commit (string-append "v" version))))
24616 (file-name (git-file-name name version))
24617 (sha256
24618 (base32
24619 "1g3qla4l1g583nzlgyww5jqxpq87ndpn9cmjls098bgqjyn5292q"))))
24620 (build-system gnu-build-system)
24621 (arguments
24622 (list
24623 ;; Tests require internet access
24624 #:tests? #false
24625 #:make-flags
24626 #~(list "Wiggletools"
24627 (string-append "CC=" #$(cc-for-target)))
24628 #:phases
24629 #~(modify-phases %standard-phases
24630 (delete 'configure)
24631 (replace 'install
24632 (lambda _
24633 (install-file "bin/wiggletools"
24634 (string-append #$output "/bin")))))))
24635 (inputs
24636 (list curl ; XXX: needed by libbigwig
24637 htslib libbigwig gsl xz zlib))
24638 (home-page "https://github.com/Ensembl/WiggleTools/")
24639 (synopsis "Operations on the space of numerical functions defined on the genome")
24640 (description "The WiggleTools package allows genomewide data files to be
24641manipulated as numerical functions, equipped with all the standard functional
24642analysis operators (sum, product, product by a scalar, comparators), and
24643derived statistics (mean, median, variance, stddev, t-test, Wilcoxon's rank
24644sum test, etc).")
24645 (license license:asl2.0)))
24646
24647(define-public flair
24648 (package
24649 (name "flair")
24650 (version "1.6.4")
24651 (source
24652 (origin
24653 (method git-fetch)
24654 (uri (git-reference
24655 (url "https://github.com/BrooksLabUCSC/flair")
24656 (commit (string-append "v" version))))
24657 (file-name (git-file-name name version))
24658 (sha256
24659 (base32 "0jviacx6qx5rwgi3wvl7a8a8ml19r6cpngddivlk13f6g9072din"))))
24660 (build-system pyproject-build-system)
24661 (arguments
24662 (list
24663 #:tests? #false ;there are none
24664 #:phases
24665 #~(modify-phases %standard-phases
24666 (add-after 'install 'wrap-executable
24667 (lambda _
24668 (for-each
24669 (lambda (script)
24670 (wrap-program script
24671 `("R_HOME" ":" = (,(string-append #$r-minimal "/lib/R")))
24672 `("R_LIBS_SITE" ":" = (,(getenv "R_LIBS_SITE")))))
24673 (find-files (string-append #$output "/bin"))))))))
24674 (propagated-inputs
24675 (list python-mappy
24676 python-numpy
24677 python-ncls
24678 python-pybedtools
24679 python-pysam
24680 python-rpy2
24681 python-scipy
24682 python-tqdm))
24683 ;; Used by rpy2
24684 (inputs
24685 (list bash-minimal
24686 r-minimal ;for R_LIBS_SITE
24687 r-apeglm ;for runDE
24688 r-deseq2 ;for runDE
24689 r-drimseq ;for runDS
24690 r-ggplot2 ;runDS, runDU
24691 r-lazyeval ;for rpy2
24692 r-qqman ;for runDE
24693 r-rlang)) ;for rpy2
24694 (native-inputs
24695 (list python-pypa-build python-setuptools))
24696 (home-page "https://flair.readthedocs.io/en/latest/")
24697 (synopsis "Full-length alternative isoform analysis of RNA")
24698 (description "This package implements FLAIR (Full-Length Alternative
24699Isoform analysis of RNA) for the correction, isoform definition, and
24700alternative splicing analysis of noisy reads. FLAIR has primarily been used
24701for nanopore cDNA, native RNA, and PacBio sequencing reads.")
24702 (license license:bsd-3)))
24703
24704(define-public go-github-com-biogo-graph
24705 (package
24706 (name "go-github-com-biogo-graph")
24707 (version "0.0.0-20150317020928-057c1989faed")
24708 (source (origin
24709 (method git-fetch)
24710 (uri (git-reference
24711 (url "https://github.com/biogo/graph")
24712 (commit (go-version->git-ref version))))
24713 (file-name (git-file-name name version))
24714 (sha256
24715 (base32
24716 "1kpzs5dfd5dsk4mg1g2qjz1prqd84ixhrcxxnf90hq25vxcnk7lh"))))
24717 (build-system go-build-system)
24718 (arguments
24719 '(#:import-path "github.com/biogo/graph"
24720 #:tests? #false)) ;TODO: one of 13 tests fails for unknown reasons
24721 (propagated-inputs
24722 (list go-gopkg-in-check-v1))
24723 (home-page "https://github.com/biogo/graph")
24724 (synopsis "Undirected graph analysis for biogo")
24725 (description "The package @code{graph} implements graph manipulation
24726functions.")
24727 (license license:bsd-3)))
24728
24729(define-public go-github-com-biogo-store
24730 (package
24731 (name "go-github-com-biogo-store")
24732 (version "0.0.0-20201120204734-aad293a2328f")
24733 (source (origin
24734 (method git-fetch)
24735 (uri (git-reference
24736 (url "https://github.com/biogo/store")
24737 (commit (go-version->git-ref version))))
24738 (file-name (git-file-name name version))
24739 (sha256
24740 (base32
24741 "0skizrp1j6vgbl0g1kmh73picagqlvwckaqs0gkl6rai5lckxj8a"))))
24742 (build-system go-build-system)
24743 (arguments
24744 (list
24745 #:skip-build? #t
24746 #:import-path "github.com/biogo/store"
24747 #:test-flags #~(list "-vet=off")))
24748 (propagated-inputs
24749 (list go-gopkg-in-check-v1
24750 go-github-com-kr-pretty))
24751 (home-page "https://github.com/biogo/store")
24752 (synopsis "Interval store type for biogo")
24753 (description
24754 "The @code{store} package provides a number of data store types that are
24755useful for bioinformatic analysis.")
24756 (license license:bsd-3)))
24757
24758(define-public go-github-com-biogo-hts
24759 (package
24760 (name "go-github-com-biogo-hts")
24761 (version "1.4.4")
24762 (source (origin
24763 (method git-fetch)
24764 (uri (git-reference
24765 (url "https://github.com/biogo/hts")
24766 (commit (string-append "v" version))))
24767 (file-name (git-file-name name version))
24768 (sha256
24769 (base32
24770 "1vkcqxyajghx5p5j7g2i376nbsxh8q2smk0smlv8mi34yr7hlw5b"))))
24771 (build-system go-build-system)
24772 (arguments
24773 (list
24774 #:skip-build? #t
24775 #:import-path "github.com/biogo/hts"
24776 ;; Tests try to get samples from <https://github.com/samtools/htslib>.
24777 #:test-flags #~(list "-skip" "TestHasEOF|TestRead")))
24778 (native-inputs
24779 (list go-gopkg-in-check-v1))
24780 (propagated-inputs
24781 (list go-github-com-ulikunitz-xz
24782 go-github-com-kortschak-utter))
24783 (home-page "https://github.com/biogo/hts")
24784 (synopsis "HTS module for biogo")
24785 (description
24786 "This package provides tools for handling BAM, SAM, Tabix, bgzf, CRAM,
24787CSIv1, CSIv2 and FAI files.")
24788 (license license:bsd-3)))
24789
24790(define-public go-github-com-biogo-biogo
24791 (package
24792 (name "go-github-com-biogo-biogo")
24793 (version "1.0.4")
24794 (source (origin
24795 (method git-fetch)
24796 (uri (git-reference
24797 (url "https://github.com/biogo/biogo")
24798 (commit (string-append "v" version))))
24799 (file-name (git-file-name name version))
24800 (sha256
24801 (base32
24802 "0ali1mqf3dc26myv6l7wmqfr8i25461rbq3qdad8s0wi29622199"))))
24803 (build-system go-build-system)
24804 (arguments
24805 '(#:import-path "github.com/biogo/biogo"))
24806 (propagated-inputs
24807 (list go-gopkg-in-check-v1
24808 go-github-com-biogo-store
24809 go-github-com-biogo-hts
24810 go-github-com-biogo-graph))
24811 (home-page "https://github.com/biogo/biogo")
24812 (synopsis "Bioinformatics library for Go")
24813 (description
24814 "Bíogo is a bioinformatics library for the Go language.")
24815 (license license:bsd-3)))
24816
24817(define-public python-gseapy
24818 (package
24819 (name "python-gseapy")
24820 (version "1.1.12")
24821 (source (origin
24822 (method git-fetch)
24823 (uri (git-reference
24824 (url "https://github.com/zqfang/GSEApy")
24825 (commit (string-append "v" version))))
24826 (file-name (git-file-name name version))
24827 (sha256
24828 (base32
24829 "0xdh2v0s2jwj5n541z9zlcq5f6ka0r8jk03jdv8z3j27hc6azf3s"))))
24830 (build-system cargo-build-system)
24831 (arguments
24832 (list
24833 #:install-source? #false
24834 #:features '(list "extension-module")
24835 #:cargo-test-flags '(list "--features=extension-module")
24836 #:imported-modules
24837 (append %cargo-build-system-modules
24838 %pyproject-build-system-modules)
24839 #:modules
24840 '((guix build cargo-build-system)
24841 ((guix build pyproject-build-system) #:prefix py:)
24842 (guix build utils))
24843 #:phases
24844 #~(modify-phases %standard-phases
24845 (add-after 'install 'prepare-python-module
24846 (lambda _
24847 ;; We don't use maturin, nor do we use setuptools-rust.
24848 (delete-file "pyproject.toml")
24849 (call-with-output-file "pyproject.toml"
24850 (lambda (port)
24851 (format port "\
24852[build-system]
24853build-backend = 'setuptools.build_meta'
24854requires = ['setuptools']
24855")))
24856 (delete-file "setup.py")
24857 (call-with-output-file "setup.cfg"
24858 (lambda (port)
24859 (format port "\
24860[metadata]
24861name = gseapy
24862version = ~a
24863
24864[options]
24865packages = find:
24866
24867[options.packages.find]
24868exclude =
24869 src
24870 docs
24871 tests
24872 Cargo.toml
24873" #$version)))))
24874 ;; We delete the Cargo checks but run the Python tests later.
24875 ;; See https://github.com/zqfang/GSEApy/issues/207
24876 (delete 'check)
24877 (add-after 'prepare-python-module 'enable-bytecode-determinism
24878 (assoc-ref py:%standard-phases 'enable-bytecode-determinism))
24879 (add-after 'enable-bytecode-determinism 'build-python-module
24880 (assoc-ref py:%standard-phases 'build))
24881 (add-after 'build-python-module 'install-python-module
24882 (assoc-ref py:%standard-phases 'install))
24883 (add-after 'install-python-module 'install-python-library
24884 (lambda _
24885 (let ((site (string-append #$output "/lib/python"
24886 #$(version-major+minor
24887 (package-version python))
24888 "/site-packages")))
24889 (mkdir-p site)
24890 (copy-file "target/release/libgse.so"
24891 (string-append site "/gseapy/gse.so")))))
24892 (add-after 'install-python-library 'add-install-to-pythonpath
24893 (assoc-ref py:%standard-phases 'add-install-to-pythonpath))
24894 (add-after 'add-install-to-pythonpath 'check
24895 (lambda* (#:key tests? #:allow-other-keys)
24896 (when tests?
24897 (invoke "pytest" "-vv" "tests"
24898 ;; These tests need access to the internet
24899 "-k" "not test_enrichr and not test_prerank")))))))
24900 (inputs
24901 (cons python-wrapper (cargo-inputs 'python-gseapy)))
24902 (native-inputs
24903 (list python-pytest python-setuptools))
24904 (propagated-inputs
24905 (list python-numpy
24906 python-scipy
24907 python-pandas
24908 python-matplotlib
24909 python-requests))
24910 (home-page "https://github.com/zqfang/gseapy")
24911 (synopsis "Gene Set Enrichment Analysis in Python")
24912 (description "GSEApy is a Python/Rust implementation for GSEA and wrapper
24913for Enrichr. GSEApy can be used for RNA-seq, ChIP-seq, Microarray data. It
24914can be used for convenient GO enrichment and to produce publication quality
24915figures in Python.")
24916 (license license:bsd-3)))
24917
24918;;;
24919;;; Avoid adding new packages to the end of this file. To reduce the chances
24920;;; of a merge conflict, place them above by existing packages with similar
24921;;; functionality or similar names.
24922;;;